There's Always a Reason

Back in middle school, my algebra teacher had a saying. Every time one of us would try to get through a proof by declaring that “we can just see that [some assertion] is true”, she would interrupt us and emphatically declare that she couldn’t see anything. Meaning, of course, that not even the most basic things are always obvious and we should do our due diligence and be precise in our proofs.

Every once in a while something happens that reminds me of that lesson. One such thing happened last night.

First, a bit of backstory. I picked up an Acer Aspire One back in September 2008. It was one of the Linux models with a solid state harddrive and 1GB RAM, running Acer’s idea of a mainstream user friendly Linux OS — Linpus. It was a little basic and rather ugly, but worked well enough for someone like me who had dabbled in Red Hat 5 back in the day but hasn’t stepped outside the Windows box in a few years.

Then a few months later, wireless stopped working. No amount of fiddling with software settings or the wireless toggle on the front of the netbook helped. I looked at that as an opportunity to dump Linpus and move on to something a little more mainstream – Ubuntu.

If my goal had been to just fix the wireless, I really should’ve hit Google first for information. I didn’t find out until weeks later that apparently there was a known (or, at least, experienced by several people) issue with wireless on Aspire Ones running Linpus. But, by then it was too late. I was happy with Ubuntu, except for the part where neither wired nor wireless connection now worked.

The laptop sat on a shelf gathering dust for a few months until last night when I decided that that was it. It was time to fix it once and for all, and this time I was going to be prepared first. I did a bit of research and found Easy Peasy — a flavour of Ubuntu developed specifically for netbooks. Perfect!

A couple hours later, I had a bootable USB stick with the distro on it. The installation went by very smoothly, but when it was all said and done, I was disappointed to find out that the wireless connection was still broken. But, I was one step ahead of where I was with my previous attempt. This time, the wireless interface was available and seemingly configured right out of the box.

So, I dug deeper. Or so I thought. The symptoms were easy –Network Manager applet would attempt to establish a connection, but then come back with a prompt for the WPA password. I knew the password was correct and the network was properly configured, since I had two other laptops and a game console connecting to it without trouble. The issue, I thought, must surely have been with the OS. Somehow the password I’m entering isn’t being used properly.

Google to the rescue! I found a couple sites that reported similar issues and blamed the password store Easy Peasy comes with, the Gnome Keyring. They advised removing the password on the default keyring to trade off security for a working wireless connection. “Great!”, I thought. Lowering security on passwords isn’t a good idea by any means, but I wasn’t planning on using the netbook for anything important and above all, I just wanted to get a connection going to prove that it could be done at all.

None of the suggestions I’d read worked. I thought I was going insane. I came quite close to replacing the network manager app and even the wireless drivers. By this point, it was pushing 1:30 a.m. and I’d been at this for about 3 hours. Up to that point, I’d held off on ranting on Twitter and Facebook, but this was it. The proverbial straw breaking the proverbial back.

A couple 140-character posts later, I decided to make one last-ditch effort: reinstall Easy Peasy, make sure I didn’t miss anything during the installation, and get back to a clean slate before I messed around with deleting keyrings and compromising security and configuration. Sometime during that, I pushed the wireless switch on the front of the netbook… and once the installation completed, the connection “magically” same to life.

The LED that’s supposed to indicate whether the card is enabled or not doesn’t work out of the box in Ubuntu and I’d forgotten about the switch entirely, assuming that the card was enabled because the interface appeared in the ifconfig report.

So the moral of the story is, I can’t see anything. Nothing is obvious. Always check all your assumptions, no matter how trivial they seem, because a problem elsewhere in the system may be leading you down the wrong path. And whatever you do, hold your public ranting until you’ve eliminated possibilities and know for sure what’s going on.

As for that LED, I hear there’s a fix. I think I’ll look for it tonight.


But I shouldn't have to!

It amazes me sometimes how dismissive developers and advanced computer users can be of issues people have with applications. For example, FireFox 3.5 came out and Frans Bouma is reporting uncomfortably long start-up times on his blog. Now, I haven’t run FF3.5 myself and therefore can’t comment on my own experience running it, but I want to talk about a trend I’m noticing in the comments on that post.

Quite a number of people think it is acceptable to say things along the lines of “well, you should just clear out your cache”. Well, no. He shouldn’t. There is absolutely no reason for a user to change the way they work to accomodate an application as common and replaceable as a browser.¬†For that matter, there should never be a reason to accomodate any finicky application, but I can see how in some niche markets that could be unavoidable. This is a problem in user experience design that seems to be quite prevalent, especially in the realm of open source development.

In a similar vein are posts on Coding Horror and bitquabit, calling out calling out developers for claiming a complex site like StackOverflow is “trivial”. Guess what, folks? As developers, we should be paying more attention to user experience, testing more scenarios, and not dismissing bad experience reports with nothing but a “oh, you should just use it the way we do and then it’s great”. It is naturally impossible to please everyone, but opting to use algorithms that do not depend on a state of the user’s system that’s completely outside the developer’s control seems to me a good start in the “consistent experience” direction.