Hateful Software Installation Practices

George Carlin once asked, “Did you ever get so mad at someone that you forgot where you’re going?” Well, that just happened to me, but I’m at my desk, not in my car.

Here I am, calmly sitting at my desk1 trying to figure out why one of our webapps wasn’t working on my boss’s machine until he upgraded certain components that it uses. I knew his version was out of date, but from what little I can tell from the vendor’s release notes,2 the older version wasn’t old enough to give us any major problems.

So, I figure I’ll just install the older version on my machine and see if the problem appears. (You can stop giggling now.) Among the major obstacles here is that the vendor’s website breaks in strange and spectacular ways in Firefox — but only on one platform. (?!)

So, having switched to MSIE, I started again. The main page for the plug-in isn’t much help. Release notes? Feh, we don’t need no stinkin’ release notes. The support page lists some older versions, apparently chosen by /dev/random on the webserver. Eventually, it becomes clear that the most effective way to find older versions is to run don’t walk by any large blinking signs that read “Older Versions, Keep Right” and instead use the downloads search engine and wade through the results.

Oh, hey! While I’m in here, I might as well just grab the current version so I can fix my machine when I finish. (Didn’t I tell you to stop giggling?) You might think that, being a list of search results in the downloads section, that the results are, well, downloads. In fact, the “download” for the current version only is instead a link to the Marketing Department’s merry-go-round. You know what happens when you go in the front door and ask for a plug-in driving MSIE? You get a self-installing ActiveX Control instead. Not the plug-in.

This is where my memory gets fuzzy. Looking at my desktop, I can only presume that I gave up on finding the installer for the current version. I double click the installer, it tells me to smeg off. I run Add Remove Programs, click the Remove button, and run the installer again. I run Add Remove Programs again, reading more carefully, clicking the other Remove button, and run the installer again. Old version installed, and the webapp still works. A couple more cycles of remove+reinstall, and I find a way to install it that yields the behavior my boss was seeing.

He didn’t install it this way, so that’s not the answer.

So, I cool off for a while, write a first draft of this rant, and then go talk to my boss about this stupidity. While talking to him, it occurs to me what the real answer is (you don’t win anything for having figured it out already). He hadn’t installed it the way I did, he didn’t even download an installer (I was telling him how he had installed the plug-in once I realized what had happened). The thing is, when you see the magic self-install dialog box that MSIE posts when it doesn’t have an ActiveX Control for something, the installer is almost never complete. It might install the old-style or new-style plug-in, and any other browser that exists and runs on Windows might find it, but something about it is probably broken.

If you want a plug-in that is fully functional, you usually have to download and run an installer. If you go in with a plug-in using browser, you’ll usually get bits to install a working plug-in and ActiveX Control. If you go in with MSIE, no promises. That was what he had done; use the bits MSIE found for him and hope for the best. I removed everything from my machine again, went to the website in MSIE, let it install the bits it found, closed MSIE and started Firefox, and that was the answer.

Oh, so the title. About the time my memory went fuzzy, I started getting shortcuts repeatedly installed on my desktop and in my quicklaunch box. Fucking shortcuts. Anyone who makes installers that add shortcuts anywhere should be shot. And then we should go to work on them. The entire company should be barred from doing business in any country Americans think they know how to pronounce. Fucking shortcuts.

Did I mention that this happened on a Friday afternoon? Thank God it’s Friday. Lins left a note on my desk at home saying, basically, lets go find a place for dinner that knows how to make a decent steak. Thank God it’s Friday.

  1. Anyone who knows me personally would know that I never lose my calm demeanor while seated at my desk (italicized text dripping with sarcasm). []
  2. For those following along at home, lousy release notes eliminates…exactly zero plugin vendors from being today’s winner — I think writing browser plug-in release notes is secretly a front for the qualifying round of the International Cryptography Olympiad. []

Rants | Permalink | No Comments

LiveConnect-less

Last week, I decided to fix some of the problems with one of our webapps, so I started reading and coding. It turns out that WMP for the Mac is still built as a CFM object, so communication between it and JavaScript in any modern browser was right out. I had this great idea — QuickTime. It runs everywhere that we have problems with WMP, and is scriptable everywhere.

Except Safari. 1.2 adds LiveConnect, but only for conversations between JavaScript and Java applets, not between JavaScript and plugins. So, I can make our stuff work on modern Mac browsers, except for (arguably?) the most common one. Sigh.

Work | Permalink | No Comments

Beautiful

AppleScript — maybe you’ve heard of it. In fact, if you’re reading my website, you’ve probably heard of it. What’s cool about AppleScript is basically what I have been known to say is cool about PHP; its a big spool of bungie cord and a bag of clip-on ends. But that’s entirely beside the point.

This very website is driven by a CMS, and I have a plugin installed that adds some source code formatting features. This plugin, unsurprisingly, doesn’t know much about AppleScript1 — so I added a really simple one myself. On my PowerBook, it worked perfectly — on the public webserver, it didn’t.

The reason why turned out to be fairly simple, but it was one of those “simple problems” that you can only find the next day and several meals later. The code formatting package the plugin is based on is a perl translation of an existing PHP package, but most of the syntax definitions haven’t been translated along with it yet.2 What’s more, of the small number of definitions present, half of them map to lousy search keywords.

That’s the thing — there are only about 6, one of them is the language the CMS is implemented in, another is a word that gets used in comments a lot, a third gets abbreviated to AS. Getting the picture?

So, to make a long story infinitesimally shorter, I picked one of the remaining definitions to find all the right places that my new syntax had to be registered in order to get used. By some strange coincidence, the C# binding (a.k.a., “csharp”), which I used as an example, was the newest of the lot, and itself wasn’t registered in all the right places, given the way I use everything.

So, by copying the registration details from one non-functional syntax, as if by magic, my new syntax was also non-functional. Yay!

Someday soon, when I’m feeling less cynical, there will be another Cookbook entry on this, with more technical details, probably including my lame syntax definition, and connected to the upstream source so this all gets fixed.

  1. Hey, its cool, but how many people have the good sense to own a Mac? []
  2. Don’t get me wrong, there are an awful lot of them. []

Movable Type | Permalink | No Comments

Wishlist

So, my birthday is coming up, and that means that being pestered by friends and family for gift ideas will start soon. If you don’t know me personally (and are still reading this for some reason), you might think that posting a wishlist when your birthday is coming sounds needy or bossy or something — I can only say you’d have to meet my family to understand.

Continue reading…

Life | Permalink | No Comments

Cheap shot

I followed a link to Iomega today to read about their new removable hard drive, and was pleasantly (albeit mildly) surprised to discover a whitepaper on dropability (given the undue pain and suffering that certain previous products caused), and mailed a friend about it. His response:

I’m so excited about a new format from Iomega that I forgot to look at the web site.

Rants | Permalink | No Comments

And another thing!

SmartDisk PowerBook G4 Dual-Slot Battery Charger

I’d been looking for one of these for a while, and I found one. Or, more accurately, I asked PowerBook Guy to find one for me, and he was only too happy to oblige. Now all I need is some spare batteries. And possibly another spare power supply. And my SuperDrive to stop dry-ejecting. Oh, and one more thing — someone to make a PowerBook G5 Dual-Slot Battery Charger, preferably in advance of my TiBook flying apart at the seams from nearly continuous use since I got it.

Raves | Permalink | No Comments

Camera Phones

I like the idea — really.

I’ve had good cameras off and on for much of my life, and I appreciate the difference between a good SLR and a cheap Point-and-Shoot. On the other hand, a good camera always separated me from whatever was going on around me so much that I generally didn’t want to use the thing whenever an occasion came along that called for taking pictures.

So, I guess the point of all this is that I like the spontaneous nature of having a camera handy most of the time. The problem, however, is that it is such a miserable camera — nevermind the open question of whether its qualities as a phone surpass my cat’s qualities as a grapefruit.

I dunno…maybe I carry enough inane devices with me everywhere that adding a pocket-sized digital camera wouldn’t be an imposition.

Life | Permalink | No Comments

Aggregrators

Okay, so for ages, I thought the whole idea of RSS aggregators was silly. Not that other people shouldn’t be using them, but that I would never have the slightest interest in them. But then, I downloaded NetNewsWire — and liked it. So I was wrong; long live RSS.

Raves | Permalink | No Comments