Skip to Content

Don't get in the way of your users!

I just had another frustrating experience with Microsoft Windows. And it didn't have to be frustrating at all, except for the poor manner Microsoft seems to treat their customers, users, and developers.

Here's the scoop. I'm working on a more complex JavaScript application that will create page elements on the fly. These elements must be draggable. When they are dropped on the appropriate item, the database gets updated, then the table row containing the element is removed, and re-added using the updated info in the database. So far so good. But I used the Scriptaculous library for the drag/drop routines. It works great and helped to condense my code a fair bit. But in the above scenario, dragging a newly created element (after the update) causes Internet Explorer 7 to crash.

So, off I go to figure out why. Starting with my code. Hmm, this works just fine in FireFox, without any JavaScript errors at all. So, the code seems to be fine. But even then I dutifully destroy the draggable objects when the item is reloaded to see if that makes a difference, nope. So someone on the #javascript IRC channel suggest using Microsoft's script debugger to see what's going on. Nice simple solution.

WRONG!!! You see, I'm testing my application with Windows XP in a virtual machine (ala VMWare), and have purposely kept the XP instance as pristine as possible. This means there is no script debugger installed. No big deal I thought, off I go to the Microsoft site to download the debugger. Well, what do you know, they refuse to install a script debugger unless you have the so called Windows Genuine Advantage update installed. (I say "so called" because all it really does it report back to MS what software you are running, along with your serial numbers, so MS can determine if you are a pirate or not.) Did I mention I was trying to keep this virtual machine in pristine condition?

But that's not all. The so debugger is written for Win NT 4.0 or later. Um, that doesn't really inspire confidence in me - the same debugger they were using for NT 4? That's some 10 or 15 years old. Chances are it's not going to be helpful. But wait, it's even more fun. This debugger is a "free" download, but to do so, you have to agree to all the restrictive licensing for the updates, then agree to tell MS what software you are running (via the Genuine Advantage tool), to get this "free" tool. To me "free" means "here you go, use it as is, no warranty implied. But no restrictions on you using it either." So much for the no restrictions bit.

So I search for an alternative. What do ya know, MS has Visual Studio Express, which includes a more modern debugger. But of course, now you have to install the .NET libraries, and spend MORE time downloading/installing software, and agree to yet another restrictive license.

So let me recap.

  1. As a developer, I need to figure out why my app is causing a problem.
  2. To figure that out, I have to now stop my train of thought with regards to coding, and shift to system maintenance, to install system updates and install software that shouldn't be needed in the first place
  3. To do these system maintenance tasks, I have to agree to give up my soul and first born son (accept all the licenses), or I'm out of luck. For a free tool.
  4. I must also reboot my computer multiple times so the updates and software will run properly.
  5. I must also waste anywhere from 30 minutes to 3 hours (depending on what software I decide to install for this). Just to figure out something that shouldn't take more than 5 minutes.
  6. And even then I may not be able to solve my problem, leaving me to remove the libraries that everyone else seems to be using just fine, simply because I'm working with more dynamic code than most others. Which is highlighting a flaw in IE7.

So much for keeping my train of thought on the job at hand.

Now you see why I prefer using Linux, Open Source, and Firefox.

Firefox has this nice tool called Firebug. It nicely tells me EXACTLY where there is problems with my code. It does all the jazz with inspecting the DOM, dynamic elements even, and CSS. Great tool for debugging purposes. As an added bonus, it took no more than 1 minute to install, and is available right on the web page in question, so it's not needing me to shift my train of thought at all.

Linux and open source are very similar. They just work. Updates are done at my liesure. They do not demand a system reboot (unless a kernel gets updated, but that's expected). They do not force me to stop my train of thought just to say Yes, I agree to the license, when I have no other choice. Simply doing the update assumes you are also agreeing to the license. Er, wait a minute. USING Linux implies I agree to the license. So why prompt me YET again? Oh that's right, open source licenses don't arbitrarily change their terms requiring people to re-agree to them.

And the end result of all this? Resentment. Dislike. Abandonment.

I resent an operating system, or software package that gets in the way of me doing my job. I dislike interfaces that prompt me for no good reason. I dislike licenses that effectively remove my freedoms, while claiming to give a right. And this leads me to abandon such systems or packages. If you get in my way too often, I'll stop using you.

Unfortunately, I can't outright abandon such systems. I do need to deal with customers who are using them. But wherever possible, they are gone, AND those customers are gradually encouraged to do the same.

Here we are 2 HOURS after starting to fix this, and I FINALLY have an environment that MIGHT tell me what is going on... *scurries off to test... Nope, same crash, and it takes out the debugger too, so it seems. Enough of this crap, I'll look into this again tomorrow.

Yep, I LOVE when I can focus on the task at hand, just like this demonstrated.