Lost in LoC


Microsoft Windows Automatic Updates. A Case Study in Usabability Failure

Posted in Usability by Ryan Baldwin on October 1, 2008
Tags: , , ,

I just booted my Windows XP virtual machine using VMWare’s Amazing Fusion. After a couple minutes of waiting I finally have a usable desktop. I’m instantly greeted with Windows Update.

“Why hello!” I greet the friendly notification bubble.
“Did you know that you have a huge… update?” it asks me, flirtatiously.
“I get that a lot… from you!” I reply with grand wit. “What is it this time?”
“Windows XP Service Pack 3… wouldn’t you just love to install it?”
Without hesitation I reply. “Yes.”

Slowly and graciously my virtual machine starts to do it’s thing. Caressing my hard drive, checking out my RAM… making sure that everything’s ready to go. And just then, my computer backs out! “Ah-ah-aaaaaaaaaaah!” she teases. “I’m sorry, but I can’t go any further until you plug me in to AC power.” Hastily I stumble for the AC power cable, clumsily plugging it in. “There!” I say victoriously. “Now… where were we?” I click [OK] and… she gets up and leaves. I’m sitting there, ready and able, and she’s…. nowhere to be found.

Imagine my confusion and my utter annoyance. All I want to do is explicitly invoke a Windows XP update – the same update I’ve been notified has been downloaded and is ready to install on my computer.

In Apple OS X this is easy.
[Apple Menu] –> Software Updates…

In Ubuntu it’s almost equally as easy.
[Open Terminal] –> sudo aptitude upgrade

But in Windows XP… you just… well, what do you do? There’s nothing in my start menu there’s no “Windows Update” (although there is an “Apple Software Update” – oh the irony). I look in my Administrative Tools… nothing. I look in my Control Panel. A-Ha! Automatic Updates! I double click it to find that it’s simply a settings panel that allows me to control how frequently I allow windows to check for Microsoft updates. I look and I look, but there is no single launch point for updating Microsoft Windows.

Finally, in defeat, I commence what is apparently the most natural to way to commence the process of updating your Windows operating system: I open a web browser. I then navigate to http://updates.microsoft.com – a url that apparently doesn’t exist. So I Google it and find the link. I navigate to the update link, only to be redirected to some other page telling me I need Internet Explorer. Exasperated, I open Internet Explorer and do the Google once again, and click on the link.

Microsoft starts scanning my computer for updates. 1 minute… 2 minutes… 5 minutes go by. I’m surprised, because Windows has already determined what updates need to be applied to my system. I know this because it told me when I first logged on. Finally, the Windows Update web application (am I the only one who things this is absurd?) finishes and I’m presented with a Download and Install Now button. WTF? I already have downloaded, I don’t want to download again just so I can install that which I’ve already downloaded. Finally, I completely give up and I simply reboot my virtual machine so I can get the Updates Ready to Install balloon. I wait a couple minutes and I’m back at my nice, new, freshly rebooted desktop. I wait. I wait some more. Still waiting… no update balloon. Awesome.

This is a perfect example of why I use a Mac now. Updating my system should be straight forward and easy, but Microsoft has found a way to make it a nearly impossible task in Windows XP. The funny thing is, for a dozen years this never bothered me, but I feel like the proverbial blind man who can now see, and I realise that not only does it not have to be this way, but that it shouldn’t be this way and, for the rest of the world, it isn’t this way.

I don’t recall what this process was like under Vista… please tell me that Microsoft has made some of these standard work flows more accessible and more usable in Vista.

Microsoft Yet Again Confounds Me In Ways I Never Would Have Predicted – A Trajedy in One Part

Posted in Development,Technology by Ryan Baldwin on August 26, 2008
Tags: , , , ,

I know this will come as a surprise to some of you, but Microsoft Windows really is a terrible operating system. A joke. A bad car accident. The underage kid that’s getting drunk for the first time at a yuck-a-flucks party and is vomiting uncontrollably in the back corner of the hosts basement where the mess won’t be found for a few days. I discovered the most obscure, nonsensical bug in Windows XP today (for the record I’m running SP3). I’d be very curious to know if this bug exists in Vista – please chime in if you know.

What I Tried to Do


I’m in the middle of writing an application that’s heavily file based. As part of this application I have an archive of definition files that can be updated by the user whenever they want. When the application starts up it checks for a new and improved version of the archive and decompresses it. We’re not talking rocket science here… pretty straight forward and simple, hey? I thought so too… until my Unit Test was inexplicably failing… repeatedly… for hours.

I debugged and debugged… I read and I read… what the heck is wrong? The error made zero sense:
System.ArgumentException: FileStream will not open Win32 devices such as disk partitions and tape drives. Avoid use of “\\.\” in the path.
Sure, the message makes sense, but the context doesn’t, because I was passing an absolute path to an area deep inside the bowels of my local file system… not on a fileshare or UNC’d uri. No sir, mine was starting at the good ol’ c:\ and all was fine.

More debugging. More reading. More frustration. Less hair. Lots of tears.

A Revelation!


And then my good friend Janak showed me… THIS! Well well well, it just so happens that the file I was attempting to decompress was named “con.xsd”. Apparently that violates Windows’… err… guidelines/internal-workings/stupid-programmer-hack-fix.

Now, I can understand that perhaps “con” is a reserved filename for keyboard input… i can understand that Windows needs to reserve it… but does it need to reserve that name across an entire file system that spans hundreds of gigs? Am I the only one that thinks that it’s absolutely ridiculous to have blanket protection like that? It’s crazy! Compare it to, oh, I don’t know… POSIX’s guidelines for device files.

Microsoft – get your crap together and stop puking all over Peter’s new bath towels. Yeesh….

Life After Blue Screens of Death

Posted in Technology by Ryan Baldwin on February 13, 2008
Tags: , , ,

As far back as I can remember I’ve always had a computer. In my earliest memories exists an Apple II Plus. I remember sitting in front of that brown clunky keyboard and, for the most part, randomly hitting keys with all my weight an in attempt to make it do… something. Despite being a toddler, I remember pulling the lid off and blowing on the various boards, thinking that dust on the inside was causing all those command not found errors. Coincidentally, this solution solved my various Nintendo problems a few years later.

When I was 9 my family shelled out what I could only imagine was a gazillion dollars for a IBM PS/2 . The thing was a cutting edge beast at the time, running an Intel 486sx on Windows 3.1 . On top of the already outrageous horsepower, my parents splurged on a Creative CD-ROM and a SoundBlaster 16 sound card. We were on cloud nine.

This was my true entry point into the world of computers. While my mother became obsessed with Minesweeper, I became obsessed with watching the family-friend-tech-guy install and trouble shoot the multimedia peripherals; peering over his shoulder to watch him modify various autoexec.bat and config.sys files, enter cryptic commands and make the computer bend to his will. He taught me the basics of computer hardware; what the CPU is, the difference between the hard drive and RAM, software vs. hardware, etc. We paid him a plate of brownies, he produced a working computer and a kid interested in technology.

Not only was this my first jaunt into the world of home computing, it also became my first jaunt into the world of the Usenet and the Internet. My mother was a student at the University of Saskatchewan, and as such I could telnet into campus and peruse Usenet, hit up some bulletin boards, develop a crush on some goth chick from the Southern United States and engage in juvenile flame wars with other kids. I was hooked, but for the most part I kept my new found love of computers to myself. I never took any computer courses all through high-school, I never spoke of computers, and I never expressed any outward interest. My passion at this time was geared towards the arts – music and theater (and for the most part, this passion still exists today). It wasn’t until my second year of post-secondary education that I decided to switch from a major in Drama to acquiring a degree in Computer Science.

Thus commenced the long, serious road of Windows and Blue Screens. When I began, the systems at our school were running NT4.0. Then, between my first and second year, the system admins cut to Windows 2000. My classes were, for the most part, all done within a Microsoft environment. Our C programming and Introduction to Internet Programming classes were done on Linux RedHat 5.0 using sweet, sweet KDE 1.1. Our networking classes were all done from a Novell perspective (which was unfortunate for many reasons, as Novell was on its way out with the release of Microsoft’s ActiveDirectory, and much of our classes concentrated on Novell proprietary technology and protocols). So while at school I received a good mix of operating systems, for the most part we lived in Windows and our classes focused on Microsoft based technology. Thus, most of what I used at home was also Microsoft technology.

The home OS roadmap over my lifetime has been as varied as the wind. I started off on the Apple II Plus and whatever OS that thing was running, then switched over to Windows 3.1. Few years later I bought a new machine with Windows95, then upgraded to Win98, Win98SE, WinME, Windows 2000, then to Windows XP. After running XP for a few years I became increasingly frustrated with the amount of security vulnerabilities. I finally said enough was enough and bought an iBook G4 running OS X 10.3. I then upgraded to OS X 10.4. About a year later I acquired employment with a different company and they provided me with a Lenovo Thinkpad T60, so I essentially retired the iBook and was back in Windows XP. I then put together a new home system running XP Professional, and then about 6 months ago upgraded to Vista 64bit. It was at this point that, yet again, I said enough was enough.

I believe that all things should be given equal and ample opportunity prior to making a final decision. This philosophy and approach was applied to Microsoft Vista. While I didn’t experience the software compatibility problems experienced by large portions of the population, I did share in their pain of the incisive “Are You Sure? We need your password” dialogue boxes, the inconsistency of the user experience (was anybody co-ordinating a set of standards?), the lack of responsiveness, the complete mish-mash of the overall user experience, handcuffing DRM, and everything I once knew had been completely re-branded, moved, or removed.

To compliment this festival of confusion, Microsoft started to splinter the .NET Framework (which has been my bread and butter for the past 6 years) into so many fragments that I can no longer keep up. You have the .NET Framework 2.0, .NET Framework 3.0 (which is still a 2.0 runtime), .NET Framework 3.5 (which, also, is still a 2.0 runtime), .NET ASP.NET Extensions, Dynamic Data, etc. etc. What actual features and libraries that reside in which versions of the .NET Framework is becoming more and more convoluted, and it’s impossible to properly plan for a long term project because Microsoft is continuously publishing new technology, changing release dates, etc.

The world of Microsoft, after a 15 year relationship, had become completely fuzzy. I no longer knew who this crazy Operating System was. I was tired of its problems with punctuality, and I never knew what it was going to do next. So I took a deep breath and I figured out what I really used my computer for. I had some personal .NET projects I was working on, but the time I was alotting towards completing those projects was becoming less and less – besides, my job grants me a laptop and any Windows development work could be done on that. So outside of personal Microsoft development projects, my computer usage boiled down to 4 regular things:

  1. Internetting
  2. Emailing
  3. Multimedia
  4. Playing EVE-Online

Figuring that EVE-Online can now be played on all 3 major platforms (Windows, Linux, and Mac OSX), and considering I didn’t want to fork over the money for a new Mac, I decided to try Ubuntu 7.10 for AMD 64, marking the first time I’ve tried Linux since SuSE was purchased by Novell 4.5 years ago. And I have to admit, the experience of transition was almost completely painless. Within 60 minutes I had a full install of Ubuntu up and running, EVE-Online was downloaded and installed, my wifi was up and running, my NVidia graphics card was configured for dual screens, I had Eclipse downloaded and installed with the Aptana and RadRails plugins. I was emailing family, surfing the web, and staring at Ruby code. My machine, despite being over 2 years old, had never performed faster or better, and the user experience, from installation (those Live CD’s should be standard for every OS) to desktop, blew Vista out of the water.

Despite having a bit of a learning curve (re-learning about the Linux file system, where things reside, and all the deep-under-the-covers knowledge of how the OS worked), I’m looking forward to home computing again. Linux has come a long, long way, and literally every day it improves. After having to put up with the Vista debauchle for 6 months, and then switching over to Linux, I’m starting to understand the power of Open Source Software. No more having to wait for some monolithic software company to round up its 3 billion programmers to fix a single security bug that was reported 2 years ago, no longer having to wait years for a specific feature only to be sadly disappointed at its short-sited implementation. No longer having to pay for every single piece of software that makes my computer actually useful. No longer having to wait 30 seconds for my computer and bluetooth mouse reestablish their love affair when the system returns from sleep mode. No longer must I wait for Microsoft to grace me with 400 megs of updates once every 2 years. Ubuntu solved everything in 30 minutes, and it works, reliably, with almost no configuration at all.

While Linux still has a long ways to go before it’s accessible by the “typical” desktop user, most of the issues are “simple” usability problems. Specifically the home-user distros (such as Ubuntu) need to do a better job at abstracting the low-level details of the System from the user – but they’re definitely getting there; enough such that I can safely say there is definitely life after Microsoft.