Thursday, December 31, 2009

Software Deployment: Old vs New

I’m pumped on some really kick-ass strong coffee right now, so I may be typing way ahead of my brain, but I can’t be sure.  Anyhow, here goes…

Part of (or most of, depending upon whom you ask) my “day job” revolves around packaging software for mass deployment.  What does that mean? (you ask).  In layman’s terms it means we take a commercial software product (not always, but usually) and wrap it with some programming code (aka “script”) to make it so it will install without prompting for any input or clicking any “next” buttons along the way.  We do more than that also.  We remove or create shortcuts, we copy additional files and modify registry keys, etc.   Anything we need to do so that it installs in a way that suits the needs of our customer.  Our customer is a huge, 10,000 headed beast that beats on computers with four hands and never looks at the keyboard.  So we have to be sure we nail everything down to weather the storm ahead of time.

The Old Way: Package and Install

Because we’re pushing out unattended installations, we have to take enough time early on to predict problems, scenarios, and build in solutions to handle them without any eyeballs watching it “go”.  We find out later how it went by collecting log files and looking at reports.  It’s a laborous process and involves following a meticulous path from start to finish. 

Questions that need to be addressed along the way:

  • Is this a new install or an upgrade?
  • Does it depend on any other products or components?
  • Are there any previous versions on the clients?
  • Do previous versions need to be removed before running the install?
  • Are there issues with machine vs user settings?
  • Are there pre-requisite issues like JRE, .NET, etc. to worry about?
  • Does it install with an MSI package or older Setup.exe garbage?
  • Does the vendor even support an unattended installation?
  • What system requirements need to be validated?
  • What conflicts are known with other products or components?
  • Does the product create or rely on any services running?
  • How does the product behave on first-launch for a limited-rights user?
  • Does it run properly with a limited-rights user?

And this is only dealing with the installation.  We also have to build in the logic and code to handle a requested uninstall.  That involves other steps:

  • How does the product handle uninstalls?  MSI or Setup.exe?
  • What is left behind? Folders? Files? Registry keys? Services?
  • Does it leave behind user-profile components that need to be removed?

So our installation code might typically follow this logic path:

  1. Check user rights
  2. Check system requirements
  3. Check for existing previous versions
  4. Remove (and clean-up) existing previous versions
  5. Install new version
  6. Configure, Tweak, Adjust
  7. Request a new client inventory scan
  8. Exit

Each and every step along the way involves a lot of code and a lot of log file output.  The log file output is necessary to support deployment assessment and troubleshooting.

When the product is replacing a long ancestry of previous versions, the code can get quite ugly and long, as it has to check for each and every version and most often approaches the removal and clean-up in unique ways for each version.

The New Way – Application Virtualization

Before I get started, let me say that App-Virt is not a panacea.  It will not work with every single software product on the market.  But it works with the majority of them, with caveates of course.  Since each vendor has their own unique way of smoking crack and snorting acid as they write their product code and (even worse) shooting up heroin and peanut butter as they develop their installation packaging.  Some examples I like to toss out are Adobe and Oracle.  For whatever reason, these two come to mind as being some of the worst writers of installation packaging code, but whatever, I digress.

Because of how (most) application virtualization technology works, most of the headaches involved with the “old way” are simple non-existent.  There are still some issues to deal with, and it varies by product and vendor, but the level of effort is typically much lower and the consistency of reliability is typically much higher, so I’d call anyone who dismisses the technology without actually having put it to use is simply a complete fucking idiot.  But alas, I digress again. :)

I will summarize application virtualization as follows (mainly because there’s already 40 bazillion web sites and articles that explain it better and in more detail):

It places an abstraction layer between the application and the operating system environment.  It doesn’t even matter if the operating system environment is “physical” or “virtual”.  Anywhere that the application wants to reach out and write to, or read from, the registry, a system folder, etc. it is intercepted by the abstraction layer and everything is fine.  Even though, under the hood, in a dark alley filled with smoke and bad guys, the requests are simply redirected to safer places which do not impact or even rub up against the real host system.  So the application wants to read or write to something in HKEY_LOCAL_MACHINE, or C:\WINDOWS\SYSTEM32 or \PROGRAM FILES\ or whatever, the AppVirt layer redirects that to files within the user’s profile.  The entire application is housed in a logical bubble that remains intact and cohesive yet has no direct impact on the host system.

What does this mean?  What does this solve?

  • The new application doesn’t “see” or even care about any previous versions of the application.
  • The application might require Administrator rights but works fine even when launched by a user with limited rights
  • The installation has ZERO impact on the host
  • The removal has ZERO impact on the host
  • There is much less (usually ZERO) effort involved with chasing down conflicts, versions, clean-up, etc.
  • Removals are simple, clean, effortless
  • Upgrades are easier than picking your nose (assuming you have a normal nose, and hands with working fingers)

What does a typical “packaging” scenario look like then?

Well, first off, they don’t always call it “packaging”.  Some vendors assign different names, such as “sequencing” and so on.  But the process works much like the older “capture” process used for older Wise install Setup.exe packaging processes.

Put simply, you start a capture process on a clean “reference” computer.  You run your product installation, perform any after-install tweaks, clean-ups, and so on.  Then you “end the capture” and it rolls up a sequence of what changed from the initial capture point.  It then offers you a logical dialog interface in which to make additional adjustments and then you save it and post it for deployment.  The deployment process varies from one vendor to another. 

For example, Microsoft App-V (formerly SoftGrid) requires pre-deploying a client agent that allows you to “stream” new product packages to clients on a bit-by-bit level, using RTS or RTSP (for secure, over the web deployments), or you can wrap the package in an MSI and deploy it using traditional means like scripts, Group Policy, SMS/SCCM/Altiris/Tivoli/whatever. 

VMware ThinApp (formerly Thinstall) bundles the client agent inside the package itself, making it completely portable.  So you can deploy it using file shares, web pages (HTTP or SSL for web deployments), Group Policy, scripts, etc.

There are others and each provides additional features and caveates to address deployment issues such as bandwidth concerns, restarted deployments (think laptops), access control (Active Directory, etc.), versioning and so on.

So in the case of App-V using streaming:

  • Launch a clean reference computer (I prefer within VMware)
  • Launch the App-V sequence capture
  • Launch the vendor software product installation
  • Run the product
  • Adjust settings, modify files, folders, registry, etc.
  • End the sequence capture
  • Adjust the package in the sequencer utility
  • Post the package to your streaming server
  • Clients request the package and stream it to their desktop

Using ThinApp:

  • Launch a clean reference computer
  • Launch the ThinApp capture process
  • Launch the vendor software product installation
  • Run the product
  • Adjust settings, modify files, folders, registry, etc.
  • End the capture
  • Adjust the package in the capture utility
  • Save the package and post it to a file share or web folder

The Deployment

Let’s say you have Windows Server 2008, even on one domain controller, so you now have Group Policy Preferences in your environment.  Use it.  Configure a GPO to place a shortcut on the user’s desktop or start menu.  They click the shortcut to a ThinApp package which resides on a shared folder or web folder.  It streams down in the background and launches.

But what if you don’t have Windows Server 2008 and don’t have GPP?  No problem, you can place the shortcut, or even download the entire application package, using scripts, Group Policy or other tools at your disposal like SMS, System Center ConfigMgr, Tivoli, Altiris, etc.

Updates

So now you need to deploy “service pack 1” to all these clients?

No problem. 

  • Open the package within the package sequencer/editor
  • Install the service pack
  • End the capture
  • Increment the package “version” number
  • Post it back on the deployment share

Clients automatically check for a newer version number each time the package is launched.  If the source location has a newer version number, it’s automatically downloaded and cached and launched.  User now has SP-1.

Summary

The biggest differences between traditional scripted/packaged deployments and virtualized deployments, is that the latter provides:

  • Shorter preparation and deployment cycle
  • Shorter upgrade and update deployment cycle
  • Shorter removal/clean-up time
  • Reduce or Eliminate application conflicts
  • Reduce or Eliminate user rights “holes” for admin-only apps
  • Running otherwise incompatible products on the same desktop (at the same time)

Caveates

Nothing is perfect.  Not even Kim Kardashian.  The only “downside” to most of the App-Virt products is that they’re aimed (and priced) at larger customers.  I’m talking large enough to where you actually use Microsoft SELECT or EA licensing (even if you plan on using VMware products, it’s about the scale of your environment).  You can look at the pricing yourself and see what I’m talking about.  It’s cool enough for a shop with only 30 desktops or laptops to support, but may not be worth the price tag until you get to a much larger number.  It’s one of the peaves I have with Microsoft and EMC/VMware.

Wednesday, December 30, 2009

5 Uncomfortable Truths about Hampton Roads

 

1. As much as this area tries to pretend otherwise, it really is all about the military

2. Virginia Beach citizens HATE the idea of mass transit

3. We will never become a real “metropolitan” region.

4. None of the cities really like each other.  They hate being lumped into a common name like “Hampton Roads” or “Tidewater” (yeck!)

5. Imitation is the sincerest form of admitting defeat.

Sunday, December 27, 2009

More Air Travel Fun

In addition to the stories I touched on below (earlier), I might post more as well.  But in the meantime, here’s just some suggestive titles:

  • Keep the kids away from the fire alarm*
  • Oops, not sure where the exits are*
  • When you REALLY have to go
  • Oops?  Wrong passenger Mr. TSA
  • Eh, “nobody cares what flight you’re on”
  • Short Staffed at the Gates

* (this occurred the very week after 9/11)

Air Travel Stories

It seems there’s no shortage of great air travel stories.  During the late 1990’s and into about 2004 or so, I was flying a lot more than I do now (which is about zero, actually).  But during that brief period of travel, I amassed a few stories of my own.  Here’s a few to start my list off…

Lost Engine at Newark

One early afternoon, while waiting at Newark for my connecting Northwest flight to Chicago, we were told our flight was late getting in.  So we waited and waited until the announcer told us the plane was on approach.  We moved to the window (because we were really bored and this was the only entertainment).  As the plane touched down, there was commotion and louder talking, and one guy says out loud “was that the engine?!”  We looked intently and saw something bouncing and rolling into the field to the side of the runway but couldn’t tell what it was.  It was the port-side tail engine of our DC-9, which cracked off, and rolled off into the field.  The plane slowed to a stop on the runway and the emergency vehicles scrambled out.  The passengers were loaded onto a bus and the plane was towed back as we were re-scheduled to a different pane.

Lost door latch at DC/Reagan

On an early morning United flight from Washington DC to Denver Stapleton in 1974, we were told that we might be delayed due to mechanical problems.  We heard loud thumping and bumping from the front of the plane.  It was the crew taking turns ramming the door shut, but it wouldn’t latch.  Turned out that a latch bracket had come loose and couldn’t grab the counterpart.  They tried for about ten minutes before we had to “de-plane” and get on another plane.  All of the passengers and luggage had to be unloaded and reloaded onto another plane several ramps over.

Lost fuel cap at Detroit

While waiting for departure at Detroit/Wayne, we felt the plane shaking and caused us (passengers) to look out the starboard windows.  We saw a 300+ lb ground crewman trying to walk on the wing to disconnect the fuel line but he slipped and fell, sliding down the wing slope and onto his ass on the concrete below.  The gas was seeping from the connection.  He climbed again, slowly, awkwardly, and managed to disconnect the hose but was struggling to get the cap back in place.  After three more people arrived to help, the captain announced that this was a “recurring problem and was on an official “watchlist”” but that we had nothing to worry about.  We took off fifteen minutes behind schedule but arrived on time.

Lost luggage at Norfolk

While waiting to depart Norfolk (VA) for Chicago in 1991 on our US Airways flight, we were quietly watching luggage being loaded onto the plane to our left (port side).  The winds were gusting to about 30 mph that day, but it was otherwise sunny and mild temps.  The conveyor on the adjacent plane was busy with luggage, packages, and suit covers going up and into the plane’s holding bay.  As the ground crew tossed one hard-shell suitcase onto the conveyor, it popped open and the wind took hold of the contents and immediately blew it all out onto the tarmac. The crewman just waived it off as if saying “f—k it” and loaded the next, which was a suit bag, which also caught the wind and blew off.  Neither of the items were retrieved.  The owner probably thinks they were sent somewhere else instead of into a perimeter fence.

Iced Plane at Detroit

Waiting to depart Detroit in 1992 on a Northwest airlines flight to somewhere (heading home to Norfolk), it was snowing hard.  De-icing crews were sweeping all of the planes and then turning around to do them again since the planes would ice up by the time the others were visited.  It was really nasty.  We were told they might cancel flights, but they continued on as if that wasn’t decided yet.  One of the passengers in the front of the plane started getting angry and pounded the stewardess call button with his fist repeatedly.  When she came to him, he yelled out that “blue stuff” was dripping on his head and shoulders.  I know I’ve seen pink and green fluid used, but this was blue indeed.

The stewardess tried to calm him down by saying that it was normal for some of the de-icing fluid to leak in through cracks in the fuselage seams until the plane was at cruising altitude and the cabin pressurized.  The passengers went completely silent.  Then one guy near us, in the back, said “we have cracks in the fuselage?”  That caused even more commotion and the crew spent another ten minutes calming everyone down.  We also slid sideways while taxiing out onto the runway and had to rev up the engines several times to get the starboard wheel back onto the pavement from the soft ground.  We almost didn’t get un-stuck.  We took off and got to our destination only a few minutes behind schedule. We were the last plane allowed to leave that day.  The rest were grounded.

Bounced landing at Dallas

On a day of heavy cross winds, we landed at Dallas, on our Delta route connecting to LAX.   The plane came in at a noticable angle from normal alignment with the runway, as we could see the right edge of the runway ahead out through the starboard windows.  We touched down hard and things fell out of the overheads, the engine speed went up and down and we picked up and touched down again twice.  The last (third) time was good contact and we rolled but not after a violent backthrust slow-down the put everyone almost face-first into the seats in front of them.  As we calmly rolled to the gate, the captain muttered quietly on the sound system: “Thank God”

Turbulence Free-Fall Freak-Out

On a People’s Express Airlines flight from Norfolk (VA) to Chicago, we were enjoying a very sunny and calm day without any turbulence.  Then the captain announced we had some turbulence ahead and to get in our seats and buckle up.  We hit some strong bumps and then suddenly we fell for, honestly, a good 10-15 seconds.  We were weightless.  A few things (drink ups, cards, kids toys) flew up and bounced off the overhead.  Babies cried and screamed and then one old woman in the middle of the plane shrieked in a strange low voice “we are all going to die!!!” and she dragged the word “die” on for a few seconds.  It wasn’t helpful at all.  The turbulence ended and all was well afterwards.

Fat People to the Rear of the Plane

This was one of the funniest yet worrisome moments I can recall.  I was sitting on a small Western Air connector puddle-jumper from Washington DC to Pittsburgh in the 1990’s.  I think the plane was equipped to carry about 20 passengers.  The rear seats were empty, as the plane only had half the seats filled.  As we began to roll back from the “gate” (rolling staircase), the stewardess tried to quietly ask the obese couple immediately to my left if they would move to the rear.  They asked why and she kept asking them to just “please move to those seats” (pointing to them). 

After they refused a more discreet requests, she said “folks, we need to redistribute our cabin weight for takeoff”.  They moved but not without letting her know they didn’t like it.  Everyone was worried, you could see it in all our faces.  Then the stewardess began her announcements and safety crap, but ended it with a notice saying that “some of our luggage had to be moved to the next flight in order to make weight limits for takeoff”.  Needless to say, it made that couple feel very uncomfortable and made the rest of the passengers a bit worried.

Disclaimers:  None of the photos inserted were taken by myself.  I make no claims to the photos or the ownership or origin.  They were inserted from Google search results.  I have no intention, make no claims, of singling out particular airlines for mismanagement or faulty aircraft.  There are more stories of pretty much all airlines.  However, the bulk of my travels in the late 1990’s was on Northwest due to scheduling and the points of departure and arrival.

Saturday, December 26, 2009

Twas the Week of Christmas

And all through the house, not a creature was stirring, except for three teenage girls fighting and a son with his headphones on rocking out.  Oblivious to the turmoil.  So what’s going on…

  • Saw Avatar in 3D and it was very good.
  • Saw The Blind Side in 2D and it too was very good
  • Ate lots of food
  • Drank some Belgian Ales
  • Helped my daughter clean out her car that was totalled last Wednesday
  • Logged about eight miles of walking
  • Read some more of my Ray Bradbury book
  • Ate more food

Say “Bing!”


EMBED-Dude Gets Fired By Steve Balmer - Watch more free videos

Freaking hilarious!

Friday, December 25, 2009

Merry Christmas!

I would like to wish everyone who visits my blog a very Merry Christmas!  Thank you for taking the time to read my drivel and post feedback on occassion.  I hope you have a really nice Christmas weekend and may you enjoy time with your family, and friends.

Wednesday, December 23, 2009

Real World Flu Recommendations

I got a chuckle out of the latest re-hash of the PSA’s for fighting off the Flu with good hygene.  The latest one has Sen. Mark Warner telling us to sneeze in our sleeves, etc. etc.  Here’s my advice…

Sneeze or Cough into the face of the most annoying co-worker.

You’ll be the hero of your office.

Sunday, December 20, 2009

What Constitutes Humane Treatment?

This is one for the lawyers to debate over martini’s of course, but I felt bold enough to propose this discussion for whomever cares.

The “neighbor” who lives behind me (term used extremely loose here) actually comes to the house about once per week.  The other six days it sits quiet, except for his two dogs: a Beagle and a black Lab.  They remain outdoors 24 x 7 x 365 regardless of weather.  I mean that most sincerely.  Heavy rain (including Nor-Easter storms, hurricanes, etc.), snow and ice, strong wind, extreme heat (above 95), day and night.  They remain outside in the yard.  They also bark 24 x 7 x 365.  I’ve called the city and the animal control folks, but they say the same thing every time they stop by to check on it:

“He left food out and they have a cover to hide under, so there’s nothing more we can do.  They are being cared for.”

I’m sure that last night when the temperature dropped into the upper 20’s (F) that their bowl of “water” was anything but liquified.  How they survive is beyond my comprehension given the lack of interaction I’ve seen.  In fact, when the “neighbor” does stop by the house, he always does the same thing as if it is a ritual of some kind:

He walks in.  Throws a piece of the food he’s eating on the ground.  When the dogs get excited and jump on him, he kicks them.  He doesn’t nudge or shove them.  He kicks them. 

I have a dream that one day I will look out of my window and see the dogs attack him and chew his nuts off.  I would probably laugh myself so hard I’d pull a muscle, but I wouldn’t call for help until they were done with him.  I think that would be fair.  I wish Mother Nature would take care of this.  Maybe there’s a self-help book for dogs that teaches them to become more confident and more like Pit Bulls.

A Flaw with Mother Nature

I thought Nature was fault-proof.  What often seems like a mistake usually turns out to have a rational explanation that justifies it.  But I found one glaring mistake:

Ever notice how animals (mammals in particular) in cold climates often have white covering?  White fur.  White feathers (ok, fowl, not mammal, but indulge me for a moment please?) and so on.  But their shit isn’t white.  A-ha!!  A major goof.  All this camoflage and stealth and yet they drop a glaring brown turd on top of the pristine white snow blanket?  Say what?!  If Nature was foolproof, their turds would be white also.  And I’m talking about white turds from the moment of the “big pinch” not just after they freeze.  I’m lodging a complaint.

Saturday, December 19, 2009

Underwater Volcano Video (CNN, NOAA)

Twitter Quitter – Or Bitter Shitter? – or just STFU

I decided to stop posting to Twitter, but I’m not deleting my account.  At least not yet.  I prefer to keep it active so I can watch my Twitter feeds and keep up with fast-moving information.  From what I’ve seen over the past year, breaking news and industry trend topics tend to leak out on Twitter much sooner than to web sites, TV news and so on.  Sometimes it’s too fast and things get bent out of shape, but for things like technological announcements, research and development, product updates, and event schedules it’s simply superior to anything on the traditional “web”.

Twitter is not perfect.  It’s not “for everyone” either, obviously.  But I find it disturbing how emotional people get when voicing their opinion about technical subjects.  It’s the same with Operating Systems, CAD products, ERP products, web browsers, media players, and now it’s infecting Social Networking services.  The masses are brainwashing themselves, which I’m sure makes the suits more than happy (saves them the effort).

What I’m talking about is how people knee-jerk into saying things like “___ sucks!” or “___ is stupid!” and so on.  Typical ignorant comments that scream out loud: “I haven’t got a God-damned fucking clue what I’m talking about so I’m going to mask my ignorance with brash adjectives and expletives and things like ‘stupid’, ‘dumb’ and ‘worthless’”.

I hear it when people bash Twitter, Facebook, LinkedIn, MySpace and so on.  All the time.  It seems no one is capable of just saying: “I have tried it but it doesn’t fit my needs” and just leave it at that.  Trying to impress upon others that something is useless is disingenuous and misleading.  It’s trying to force an opinion upon someone else when you should instead recommend they just give it a try.  What the fuck ever happened to seeing things first hand?!  Remember those days?  The days of trying something yourself and making up your own mind.  (sigh) good days those were.  Ok, maybe not.  But regardless, it seems when people don’t like Facebook or Twitter, they can’t restrain themselves from prosthelytizing the pagans into repenting and giving up on them before they’ve even tried it themselves.  Sad.

So, you hate Twitter.  Who cares?  You hate Facebook.  Who cares?  You hate blogs like this one.  Who cares?  Those are rhetorical questions of course.

You cannot accurately, honestly, say to anyone “Twitter is stupid” or “Facebook is stupid” because you can’t know for sure what will (a) turn out to be useful or (b) turn out to be appealing to someone else.  Let them make up their own mind and just STFU.

Thanks.  Oh, and Merry Christmas!  Happy Hannukah!  Happy Kwanzaa!  Happy Ramadan!  and whatever else floats your boat.

Peace

No Snow for you – Virginia Beach

  • Washington DC: Snow
  • New Jersey: Snow
  • Maryland: Snow
  • Richmond, VA: Snow
  • Roanoke, VA: Snow
  • Virginia Beach: Rain.  Sucky-ass rain.  Rain rain rain rain rain.  Blowing, sideways, soaking, chilly-cold rain.  I hate Winter rain.

PowerPoint 2010 for Web Graphics and The Missing “Fun”

I’ve been building web sites for quite a few years and have bounced around different graphics tools as well.  I’m never happy with one product.  Photoshop, The Gimp, PhotoEdit, Microsoft Image Editor (defunct), Paint.NET, PaintShop, CorelDraw, Illustrator, ArtRage, etc. etc.  But one tool I seem to come back to a lot is Microsoft PowerPoint.  I don’t have a prepared answer for that, but I suspect that it may be due to the simplicity of it.  It’s just easier to do some things with it than with more complicated tools like Photoshop or The Gimp.

The image below shows some simple graphic buttons I created in PowerPoint 2010.  The entire set of objects took literally 5 minutes to create and arrange.  No custom plug-ins or scripts or configuration settings required.  I simply dropped the shapes, picked a theme style, adjusted the gradients and transparency, reflection and edited the text.  Done.

image

By the way: Where’d the “Fun” Go?

I’m just saying that it seems in the rush to flood the other tools with so many incredible features, something gets lost in the shuffle.  The simplicity and intuitiveness seem to suffer as more tools are stuffed into their ever-growing menu and toolbar collections.  They also seem to take longer and longer to launch with each new version.  Another thing that seems to be missing in those is “fun”.  Sure, there’s geeky fun, but intuitive, reptilian brain, instinctive fun, is just fading away.  Some of the products that seem to understand how “fun” should be part of the equation are Kagi’s ArtRage Studio and Disney Magic Artist, which are great for burning hours and hours of playing for no reason other than playing (if you get that luxury).

I’m not saying Microsoft PowerPoint brings the “fun” to your graphics work.  No, it really doesn’t.  But it does bring ease, simplicity and a feeling of least-effort for really basic shape creation and editing.  Another product that brings simplicity is Paint.Net, but it’s showing signs of slipping into the same fast lane as the more complicated (and pricey) products when it comes to features vs simplicity.  The latest version (3.5 as of this writing) restores some of the clarity of the UI that the prior release was gradually slipping away from, which is very nice.  I’m really looking forward to version 4 when it’s released.  I’m focusing on Windows graphic products exclusively of course, which is what I’m most familiar with, so forgive me for not mentioning others which are only available for OSX or Linux.  In the meantime, I will continue to bounce around to find a chain of tools to meet my needs.

Just my two cents

Friday, December 18, 2009

My Blog was Mentioned by the GPO Folks!

Wow! I was really surprised that one of my blog posts on Group Policy
was actually mentioned on the Group Policy Team Blog site recently.

http://blogs.technet.com/grouppolicy/archive/2009/12/15/reposted-5-group
-policy-myths.aspx

It's from a blog I used to maintain on BlogCastRepository.com. I really
appreciate that, especially coming from the folks (GPTeam) that I
respect and follow on Google Reader.

Thursday, December 17, 2009

HRT Finally Speaks – and Says NOTHING at all.

Finally, a response from our good friends at HRT (those good friends that don’t answer the phone, reply to e-mails for months and pay no attention to their Twitter replies, yes, those same wonderful knuckleheads).  I should be more kind.  After all, why should I be upset with only three months waiting for a reply?

 

Dear: Sir

 

Thank you for contacting Hampton Roads Transit with your concerns.   I apologized for the late response.   We constantly strive to provide the best transportation and customer service possible for all of our passengers and the communities we serve.  On behalf of HRT management, please accept our apology if we failed to live up to your service expectations.

Our Planning Department evaluated your route suggestion.  There are no current plans on adding a route from Silver Leaf to Indian River Park and Ride.  We appreciated your concern and suggestion.  Please continue to suggest.

Your experience, safety, and patronage are our number one priority.  Please let us know if you have further concerns regarding this or other issue relative to our service.  We can be reached at (757)222-6100 or via e-mail atcustomerservice@hrtransit.org.  Thank you in advance for your continued patience.  HRT appreciates you as a customer.

Best regards

Roberto Gomez
Customer Advocate
Ext. 6070

The most important resource: people.   The most important person: the customer

Wednesday, December 16, 2009

Things that Irritate me

I should have titled this “things that irritate the shit out of me” but I was going for a PG-13 instead of an R, oh well.

  • Calls from businesses that answer with a recording that says “please hold for the next available representative…”  No!  I always hang up immediately.  Don’t call ME and tell ME to hold.
  • Drivers that can’t drive.  I won’t even bother enumerating the examples of idiots in traffic.
  • Hidden Agendas.  Every news show.  Every “expose”.  Every article.  Seems like if there’s a sponsor, there’s a censorship thing going on also.
  • People that can’t speak their mind.
  • Rabid Conservatives
  • Rabid Liberals
  • People who preach.  Leave it to God, please.
  • Problems with Obvious Solutions, held up only by laziness.

Tuesday, December 15, 2009

Short Story 1

[I dusted this old college paper I had submitted as an exercise for developing vignettes without an explicit introduction or conclusion.  Just a slice from the middle, so to speak.  Anyhow, I thought it was kind of interesting, so I posted it on my blog.  I may dig up more if anyone cares.  Enjoy.]

The guard casually turned the old bulky key in the cage door lock and it made a deep clanking sound as it released and sprung open.   He walked in to the waiting room as the guard held the door open for him.  The entire facility was dimly lit and an overhead fluorescent tube was flickering as if soon it would die, but it somehow flickered on.

“Sign in, please” the guard murmured.  Handing the visitor a tattered clipboard with crinkled papers attached, and a pen dangling from a knotted string.  Tired from long hours inside a world without daylight, only the all-too familiar buzz of fluorescent tubes.  It wouldn’t matter anyway, since it had been raining heavily for days and was still pouring down even on this darkened, early Winter evening.  Outside was violent winds and rain, yet inside was an almost complete silence, as if the weather were miles away.

He scribbled on the clipboard as the guard waited.  He handed it back as the guard turned to put it through the office window porthole opening.

“Wait here.  He should be out in a minute or two.” and the room fell silent.  So quiet, in fact, that the only sounds he could hear was the soft buzz of the fluorescent lights above and his own heart beating.

It was probably only a matter of seconds, but it seemed like hours passed in this dreary silent room.  Then suddenly: the clank of a metal door opening.  A clank that would startle anyone else, but not him.  He was expecting it.  The door was on the other side of the room, with only the simple, flat table and two chairs in between.  The door swung open slowly as the guard held it for the inmate to walk in.  Shuffling his feet, motion limited by the leggings and shackles which were also chained up to the chain between his cuffs.  His dull orange overalls were smudged and wrinkled.  Probably not changed in weeks at least.

The guard sat inmate 10040505 down across from him and the two were now face to face at the same level.  The guard sauntered to the corner and slowly, tiredly, leaned against the wall and began to fumble with his keys on the large ring.  He announced in a drone, “fifteen minutes.” His voice a long, spacious Southern drawl.

And they sat.

Not a word was spoken.  The two men just studied the expressions on each others face.  At first, the inmate looked down at the table without forcing his eyes upward.  The visitor stared directly at him, but not with angry intent.  His expression was almost serene.  As calm and emotionless as a funeral director might have while greeting mourners to a viewing.  He sat completely still.

After what seemed like an eternity, the inmate blinked nervously and alternated his focus on the table and his visitors face, only as many times as it took for him to become frightened at the incessant gaze of the visitor.  His boyish yet worn face looked uneasy, compared to the stoic wrinkled face of his graying visitor opponent.

“What do you want from me?” the inmate mumbled in a half-baked defiance. “Haven’t you had enough?” and his face turned into a slight sneering demeanor.

The visitor didn’t respond.  He didn’t flinch.  Silence.  Silence dominated for another full minute.  Then he ever so calmly reached into his shirt pocket and gently removed a pack of cigarettes, tapped it against his other hand and pulled out a cigarette as if in slow-motion.  Never once did he look away from the inmate’s face.

“You can’t do anything to me now.” the inmate sighed and blinked slowly as if to impress upon the visitor his over-relaxed disconcern. “I’m in here for life, you know.”

Another minute of silence.  The guard coughed and cleared his throat.  The inmate turned to see it himself but never committed to full eye contact before turning his attention back to his adversary, sitting calm, motionless, across the table.  The guard shuffled over to the table.  As the visitor put the cigarette in his mouth, an arm reached out with a pewter ash tray, he took it kindly and place it on the table to his left.  After lighting his cigarette and flipping the lighter cap shut, he took a long mouth puff on the cigarette, causing the ash to glow bright and his eyes squinted.  He kept his focus firmly on the inmate’s face the entire time, even as he exhaled the smoke directly towards his face, but not overtly so.

And he spoke.

“The thing is, Ned…” and he took another drag on the cigarette and exhaled, “I know something you don’t.”  He exhaled an endless volume of smoke through only his nostrils.  His eyes sank into a look of derision.  Half-opened lids without a blink to be found.

Ned stared at the visitor’s left hand, which was slowly rotating the lighter around and around in a mantra.  But Ned didn’t speak.  He listened.  His breathing was quicker now, but his eyes remained fixed on the rotating lighter and gentle finger movements.  The movements looked like a skilled card magician performing slight-of-hand in front of a close audience.

For the first time during the entire encounter, the visitor looked down at the ash tray, slowly and deliberately, as if tracking a slow-moving bug going from Ned’s face to the ash tray, as he tapped the ash off his cigarette.  He continued, while his eyes were still watching the motion, “I know when… and where… you… are going to die.”  His words were sparse.  Separated with relaxed pauses that seemed to make the sentence float among clouds of uncertainty, yet every word was certain.  Deliberate.

“Five minutes left.” the guard droned from the distant corner.  His voice was monotone and tired.  It trailed off in volume with an almost haunting sound, magnified by the short echo against the bare brick walls and smooth cement floor.  It enveloped the room in an aura of despair and emptiness.

Ned sat stunned and motionless, staring through his visitor’s chest into nothing at all.  When the visitor finally looked back up at Ned, he could see Ned was slack-jawed and dazed.  He recalled the last time Bob said those words.  It led to this place, and Ned being the only survivor of the twelve desperate men who had once tried to cross Bob.  Bob didn’t like to be crossed.

Bob cracked a faint smile, almost impossible to detect, “Do you remember, Ned?”  His voice was soft and calming, as if reading a bedtime story to a child. “Do you?”

“Yeah.” he nodded gently. “I remember”

Sunday, December 13, 2009

2008, 2009, 2010…

11_12_64---Dice_web[1] I felt like reflecting on the past year, if only for a minute.  Thinking back, it was a truly mixed bag of fortunes.

2008 was probably the worst year since my parents passed away in the 90’s.  I lost my job early in the year, and began a long a struggle back from financial chaos that ensued.  It was early in the Recession, so things were declining pretty quick.  It all started to turn around for me in June of that year, when I was hired back at a former employer, and so far has continued to be a very positive experience.  I was lucky indeed.

2009 was going pretty well, until mid/late Summer, when I lost two friends without any warning.  One died of a sudden heart attack, the other from suicide by cop (seriously).  Neither of them ever showed signs that would have indicated their fates were even remotely possible.  I still think about them often.  It’s a hole in my life that will take some time to heal.

During 2009, I was fortunate enough to be allowed to take some courses towards an MCSA and an MCITP certification, which I achieved.  My oldest daughter graduated high school.  We still have a house and electricity.  We still have a family.

I’m not sure what to expect from 2010.  The past two years have been rocky, but with bright spots as well.  If that means 2010 will be bad but will offer up more bright spots, then I suppose that’s not entirely bad.  Stay tuned…

Friday, December 11, 2009

WalMart iPod Shopping Fail

So I took two of my four tax deductible offspring with me to hunt down an iPod for a Christmas gift.  I started by searching the WalMart web site, which shows they have 8, 16 and 32 GB iPod Touch models.  I’m looking for the 8 GB model only.  It says that in order to get a price quote, I need to plug in my ZIP code.  I did, and it shows (present tense, mind you) that both WalMart stores near me have them “In Stock” and at $181.00 ($185.00 with some bullshit blingy crappy accessory bullshit kit).

So we drive.

We get to the store on Lynnhaven Pkwy near Landstown (the big Wally World for us), only to find they only carry 32 GB models and they’re $295.00.  The empty rack for the 8 GB models is stamped $195.00.  Not $181.00.  When asking the clerk about this, he said they hadn’t carried the 8 or 16 GB models in at least a few weeks.  Strike 1.

So we drive.

We get to the store on Phoenix Road, which is a few miles NorthEast along Lynnhaven Pkwy near Lynnhaven Mall (handy, isn’t it?).  Same story.  Strike 2.  Only this time the clerks didn’t have time to help me since they were too busy explaining Call of Duty Modern Warfare 2 to some 60 year old guy with his wife, who just stared at the box while the clerk yakked away on some caffeine drip, with some expression like they were wondering just what the fuck the clerk was even saying.  I doubt they had even ever seen an XBox 360, much less played one.  Strike 3

So we left.

Message for WalMart:  I know you don’t read blogs like this, you’re too busy counting your profits.  But if by some weird chance you do… Please consider fixing your broken-ass piece of shit web inventory system so that it not only shows what’s really “in stock” but maybe, possibly, shows the real price as well.  Ok, I’m kidding.  I know that’s how it’s supposed to work.  Bait and switch got me.  You guys are funny.

Wrong. Wrong. Wrong.

image

Sarah McLachlan – I Love You (Live)

I really love a wide range of music.  From country to Jay Z to Frank Zappa to Chick Corea to Sinatra to Coltrane to Gwen Stefani to …     This is one my all-time favorites.  Enjoy…


Sarah McLachlan - I Love You - The funniest bloopers are right here

Random Thoughts

Don’t hover next to me in a traffic jam and stare at me as if saying “can I cut in front of you?” unless you have your turn signal on.  I can’t read your fucking mind and having a larger vehicle means nothing in the pecking order unless we’re moving along at normal speed.

Yes, those pants do, in fact, make your ass look big.  Huge is the word.

If you weight 400lbs and wear tight-fitting clothing (spandex, lycra, etc.) you should be jailed and your mug shot shown on every highway billboard for 50 miles.

If you speed up in the next lane to cut in front of me and my lane is already moving along at a pace the ends up preventing you from wedging in ahead, don’t get pissed at anyone but your own stupid-ass dumbshit self.

Wearing a bluetooth earphone in traffic is good sense.  Walking around with one on your head makes you a complete fucking dick.

Trend following is for dumbasses.  Future Janitors of America (FJA) have enough sense to pull their pants up to cover their shit-stained underwear.  You should too.

If you ride my ass while I’m already going over the posted speed limit, I may very likely STOMP my brakes without warning.  I hope you have insurance.

Olive Garden is *not* Italian food.  It’s just a smidge closer than a Marie Callendar’s meal.

There is a big difference between being a “musician” and being a “band member” or “entertainer”, no matter how successful the band/entertainer may be.

Anytime you get excited about something and want to bother the shit out of your friends with all the details, stop and ask yourself one question: is this as cool as completely curing cancer?  Keep everything in perspective.

If you drive a car, at least try to act as if you give a shit about your own life.

If you have kids, take care of them.  They’re YOUR fault.  They didn’t get born without you doing something to cause it.  Put your bullshit hobbies and dreams on hold until you’ve raised them to stand on their own.  Give up the stupid fucking mountain climbing, skydiving, and car racing.  Doing dangerous things when you have little kids depending on you is just selflishly retarded.  You die and they’re left growing with friends telling them how stupid their dad was.

If you have parents, family, friends who can babysit your kids, don’t even open your mouth to complain even once how tough your life is.  Just STFU and do your job and know that there are MANY more who have no one to lean on.

Why do we pick one month out of a year to be “Christmasy”?  So, does that mean 11/12ths weight is placed on being ogres and 1/12th on being nice?

Thursday, December 10, 2009

Business Tips: 101

  1. Always under promise and over-deliver.
  2. Don’t blame your own team in front of a customer.
  3. Don’t bash the competitor more than once per customer visit, and do it nicely.  Don’t sound like a sore sucky-ass jealous loser.
  4. If you don’t know, say that you’ll look into it.  Don’t guess.
  5. Keep a close eye on your competition at all times.  Know their products and services as well as any customer of theirs would.
  6. Try to see the arguments from all points of view, even if they don’t make any sense from yours.
  7. Never send an angry e-mail.  Type it up, save the draft, come back in a few hours and re-read it before doing anything.  Never send within the same hour as being pissed off.
  8. Don’t wear vendor logo shit to work.
  9. A Business is really just people.  Don’t treat it like organizational modules that can be assembled like bricks: accounted, modified, reduced, transformed.  Remember that the people make it work.  People run on knowledge and emotion.
  10. Don’t blame a business.  Find the person within it to blame, and start from there.

I'm Just Sayin...

When it comes to economics, there's already a shitload of so-called "pundits" shilling for their share of the sponsor buck (don't think those commercials on CNBC are just for your enjoyment). But when it comes to consumer behavior, man, these "pundits" are as bad and wrong as a 3rd-string weatherman doing a 7-day forecast. I believe that the term for TV pundits working for salaries funded by the markets for which they report is called: "whore". But that's semantic I suppose.

First off, the biggest factor of personal spending habits is debt. Period. Consumers don't adjust their spending on how the Dow-Jones' is doing. Sorry. And they don't go on a shopping spree when they hear pork belly futures or light sweet crude goes up or down. Sorry again. Consumers look at their ever-growing stacks of bills, then their checking account, savings account (if they even have one) and then the credit card statement. That's it. Then they prioritize any leftovers by medical, house repair, transportation, and then "discretionary" stuff like food, clothing, kids needs and maybe a pinch of entertainment (a six-pack of Bud and a carton of Marlboros). It's human nature.

But there's a hidden candle burning at both ends: gasoline.

Yep. Petrol. The stuff that not only feeds the lifeblood of our industrial AND consumer economies, it controls it. When gas prices go up, everything you buy costs more. Quantities per package are reduced to shore up bottom lines. You pay more to receive even less. And you base personal travel decisions on it too. When gas is near $4/gallon, you probably cancel that road trip across the states. You also defer air travel as fares increase to absorb the fuel costs.  It costs you more to drive to places which will charge you even more when you get there.

But even when gas is "reasonable" (whatever that is), you fall back to basing decisions on personal debt. Priorities get compressed or decompressed as debt rises or falls, since income is rarely as variable as debt.

The catch here is that the two industries which ultimately control these two economic forces (petroleum and personal credit) are relatively treated laisse faire by our government. Sure, they get called in front of a congressional hearing, rarely, but nothing ever happens from that. When was the last time a government hearing caused a reduction in gasoline prices or APR terms?

Here, let me answer that for you….: Never.

Here we have two major, no, wait… GINORMOUS forces directly and indirectly controlling our economy with little or no direct oversight. They work on a broken leash essentially. Which means they are really in control, not the Fed or Treasury. The Fed says that they "influence" (their words, not mine) the U.S. economy, even though the Fed is not a government agency. And the Treasury is now simply an extension of Goldman-Sachs. There was another government that long ago followed this very same path: Rome.

If Exxon-Mobil, RD Shell, Chevron and Texaco decided gas should be $5/gallon, it would be $5/gallon. We'd bitch a lot, maybe even carry cardboard signs around in front of news cameras, and the whores in Congress and the Senate would postulate and act as if bringing on the heat, but that’s about it.  It is a "free market" system, after all, and those companies are well within their legal right to pursue profits within the law, even if it causes consumers a little pain. Where else would you go? What could you really do?  To another gas station?  And why would they keep their prices low?  If Exxon posted $5.00/gallon, WaWa would just rise up to $4.95 and the lines would be around the block.  Oldest game in the book.

The same goes for credit card services and jacking up interest rates. Oh wait, they already are.

Sure, the credit services are facing a looming change in legal guidelines, but the new laws really don't eliminate the gouging, they simply require them to tell you before they gouge you. Read it yourself. But most (all but a few actually) have preemptively raised interest rates to hedge their coffers before the new law goes into effect.  Not one government shill has raised voice over this obvious gang rape of the American working class. Not one.  A few PR statements, that’s it.  Nothing official has been put into action to challenge this behavior, because they just don’t care.

So, these two industries control your spending behavior, whether you want to believe it or not, and directly (and indirectly) exert control over the U.S. and global economies yet almost nothing has been done to put a leash on them.  Nothing beyond lip service and PR stunts.  Think about this:  Our government directly regulates air traffic, drugs, food, transportation, banking (sort of), communications, product safety, marriages, defense and intelligence, even prices your utilities can charge.  But they don’t bother placing any such controls on gasoline or credit cards.

Still don't believe our government is not really in control? Hmmm.

Saturday, December 5, 2009

The Windows 7 Black Screen Debacle

stfu You might have seen the deluge of stories about the so-called “black screen of death” affecting Windows 7 computers recently. 

First off: there really isn’t any “death” involved.  The cursor works, the keyboard works, the Task Manager works, just the desktop and shortcuts don’t display.  That’s it. 

Secondly: it’s not due to a bad patch, as has been touted to death (the only “death” involved here after all, is the press going berzerk and reprinting lies to death).

The actual “attack vector” is by way of a web popup ad that says “your computer may be infected with malware!  click here to remove it now!”, which my daughter fell for.

The malware installs itself as a “anti malware” application, with a peculiar name (randomly defined it seems), but which appears in the Add/Remove Programs list (dumb move on their part).  It reconfigures the firewall settings and turns off the Microsoft Security Essentials service, so real-time scanning was disabled.  I was able to clean it out and get the machine back to normal state.  No rootkits or leftovers appear to be on it and it doesn’t appear to have propagated to other computers or shares.

I know, because it affected one of my home computers.  The actual cause was malware.  That’s right: malware.  But actually, that’s not the “root cause”.  The root cause was an oversight on my part.  I added my daughter’s user account into the local Administrators group so she could install some games while I was away.  Bad decision.  Normally, I would not have done that and would have made her ask me to install them when I was at home.  I got lazy. 

Other people I’ve talked to who have run into this have either encountered it the same way, or by tuning UAC down until it’s useless.  Leave UAC alone!  It works fine!  UAC is the lock on the front door of your house/apartment.  Sure, it sucks at times to whip your keys out and unlock with a load of groceries, but does it make sense to remove the lock for that reason?!  Hell no!  People that whine about UAC are just whiners.  Get over it.  It’s for YOUR own good so, whatever…

Thursday, December 3, 2009

1959: Flying a T-33 through the Grand Canyon

Best and Worst Dressed Windows Apps

I’ve read enough “best” and “worst” app reviews, but mine is better.  These were rated based upon the stated versions with their default UI configuration running on Windows 7.

Best UI Design

  1. TweetDeck 0.32.1
  2. Paint.NET 3.5.1
  3. Microsoft Office 2010 (beta)
  4. Google Chrome 4
  5. Bing (2009-12-03)
  6. Autodesk AutoCAD 2010 and Inventor 2010

Close (but no cigar)

  1. Microsoft Paint 7
  2. Windows Media Center 7
  3. Google Picasa 3.5

Best Functional UI Design

  1. Google Reader (2009-12-03)
  2. TextPad 5.3
  3. CamTasia 5
  4. Google Earth 5.1
  5. VMware Player 3
  6. Mozilla Firefox 3.6

Worst UI Design

  1. Apple iTunes 9
  2. Newsbin Pro 5.5x
  3. Internet Explorer 8
  4. DivX Player 7
  5. Microsoft.com (main web, 2009-12-03)

Great Function w/ Ugly Design

  1. www.TubeRadio.fm (2009-12-03)
  2. BitTorrent 6.3
  3. UltraISO 9.3
  4. AudioGrabber 1.83

My Ideal Scripting Language

I’ve sat around and been pulled into more conversations than I can count regarding what my “perfect” or “ideal” programming or scripting language would look like and how it might work.  So, I thought I’d take a stab at.

It would involve some built-in enumerations for things like operating system platforms.  For example…

iOS_OverPriced = “Apple OSX”
iOS_OverZealous = “Microsoft Windows”
iOS_OverHyped = “Linux”

Functionally, it would probably be somewhere between PowerShell, VBScript and KiXtart with more emphasis on KiXtart.  But it would also include dynamic typing and evaluation from LISP (e.g. cond() and apply() functions for example, but also lambda() and mapcar() … why not?).

The script engine would be self-contained and portable, and would run on any modern OS without any installation required.  Something like how KiXtart runs on Windows already.  The same code syntax regardless of platform, but allow for extensions.  Sound familiar?  I thought so.

No type-defs or declarations required, but optional (like VBScript and KiXtart).  Consistent syntax regardless of noun/verb modal use or situational use.  For example, one example, no requirement to prefix “Set” before instantiating an object.  Because that is just stupid fucktarded 80’s mentality, that’s why.

The syntax structure would be aimed at administrators, not programmers.  KiXtart is aimed at administrators, which I *LOVE*.  PowerShell is aimed at programmers.  I don’t count cmdlets as programming, unless you’re making them, and if you’re making cmdlets, you’re not likely a true administrator, you’re a closet programmer at the very least.

The engine component would support encoding and obfuscation features for code protection as well as compression, using auto-detection for runtime expansion.  There would be a default system log for all scripts unless explicitly overridden by the script itself.

It would support .NET interfaces and invocation, and would be packaged as a DLL or suitable component for OSX, Linux and so on to allow for it to be marshalled or invoked by other processes.

It would include functions for all standard types such as numerics, simple and complex arithmetic, strings and string manipulation, dates and regular expressions.  There would be no function left out from the other languages mentioned above which would result in “going backwards” for a particular functional use.  For example, calculating DateDiff() with PowerShell (don’t even get me started).

I’m sorry, but going from this…

days = DateDiff(“d”, date1, date2)


to this…



$a = New-TimeSpan $(Get-Date) $(Get-Date -month 12 -day 31 -year 2006 -hour 23 -minute 30)
$days = $a.Days

Is mind-numbingly irritating to me.

Oh well, dinner calls.  Gotta run.  More later…