Archive for January, 2008

Fail Loud

January 27th, 2008 No comments

Yesterday, my wife had to print out a PDF; she went to our aging Windows box (I know, but every so often it’s useful) and double clicked on the file in question. Nothing happened. Adobe Reader didn’t open and no errors were displayed. I thought that was rather strange so I tried another PDF – as expected, it sprang to life. Huh – well, let’s take a look at versions. Sure enough, we were a rev or two behind so I downloaded the latest and greatest. We tried the original file again and there it was in all its glory.

Now, I can’t for the life of me understand what was so special about this file that it required the most up to date version of the software but it did. The lack of any notification is what sticks in my craw (and violates a couple of Nielsen‘s usability heuristics.) Apparently Adobe just expects everyone to update their products in a timely fashion but if our proverbial grandparents are any indication, this might be a mistake. Should I have updated? Sure and I did, but is a simple message box saying something about needing version X to open this file too much to ask?

Categories: Software, Usability Tags:

Duplicate Flights

January 21st, 2008 12 comments

In early December, I did something that, a mere year earlier, I thought was pretty darn strange. I spent a Saturday in the last month of the year on a plane. Travel you say? Gee, you’ve never, ever, ever written about that. Ever. No, this trip was different, this trip was special – I wasn’t going anywhere; this time I was just getting status. I flew from Minneapolis to Chicago, walked one gate over to take a flight to Detroit, bought some chocolate for my mother-in-law (at Gayle’s Chocolates you see!) and then retraced my steps back home. Since I’m not quite as frequent a traveler as Ted, Neal, Brian, Venkat or the rest of the gang, I needed a few more legs to put me over the top and spending a few hours in the air was the cure.

Of course I’m not the only one to do something like this – heck, the previous year a good friend of mine flew to Germany to retain her status. Yep, all the way to the land of Riesling where she spent a few hours in the airport only to return home. I thought she was crazy, but now I get it.

Anyway, I checked my mileage summary a month or so ago and noticed I’d only received credit for two of the four legs leaving me ever so short of my goal. Luckily, the website has a form one can use to request credit so I gave them a few bits of information and sat back. A couple of weeks later I still didn’t have the legs so I submitted the request again. Now, my miles program knows several ways to get in touch with me – they have my home address, a phone number and of course my email address. Yet I never received anything via any of these means explaining why my credit hadn’t shown up. So, after digging around the site for a few minutes I finally found a phone number.

Today I called. As you might expect, I faced off with an elaborate phone tree that mostly wanted to tell me things I either already knew or could easily find online. Saying “Help” didn’t, ah, help but pounding zero got the job done (should have used get human.) After explaining my situation to the very helpful (I mean it!) agent, she quickly diagnosed the problem. You see, the software had decided my flights were duplicates since they occurred on the same day. Huh.

Now, I’ll grant that what I did isn’t on the happy path and represents a bit of an edge case but lets reason through this a bit. Let’s imagine the query: select flights where date = whatever they entered on the form. OK, so if that returns multiple records we somehow decide some of those clearly are the same because, you know, they happened on the same day. Hmm, what *other* information might we be able to use to discriminate? Well, there’s the departure and destination airports and last I checked flying to Chicago from Minneapolis isn’t the same as flying to Minneapolis from Chicago. But, perhaps the system doesn’t check for locations – after all the form only asks for frequent flier number, date, and ticket number.

If we grant that the location information might not be that helpful we’re left to ponder…what else could we use to disambiguate these aberrational flights? How about flight number? Why yes, I think we’ve hit on something here! Each of these flights had a unique flight number. Wow, I can’t imagine how a software program could possibly tell the difference between flight 656 and 676 (or whatever the numbers might be.) Yeah, that right there is one of those unsolvable problems, maybe the X Prize Foundation can get involved.

The agent (again, she really was very nice) took care of the problem but oddly, she couldn’t just fix it for me. Nope – she had to send an email to a clerk and have them manually add my legs into the system (which apparently takes up to two weeks.) Boy, not only can’t the system correctly tell the difference between two, ah, different flights, they don’t even have an easy way for an agent to fix the problem. Sigh.

Categories: Off Topic, Software, Travel Tags:

Human Computers

January 19th, 2008 2 comments

Ours is a very young profession – we don’t have hundreds or thousands of years of experience. But we are blessed with some amazing pioneers that did truly groundbreaking work – discovering things that are still amazingly powerful today. Sometimes I think we forget our history or at a minimum fail to understand it. When you think about the essential paradigm of mainframe computing, it isn’t that different from web applications, something I mentioned at Code Freeze (and something Douglas Crockford covers in his State of Ajax talk.)

Of course it isn’t just raw technology that echoes its past – no, our development languages do as well. Look at the features we are trying to add to mainstream languages today – despite what some developers think, these aren’t new ideas. Languages exist on a spectrum, and many believe Lisp, invented fifty years ago, is the most powerful language around (though it’s hard to get paid to write it.) Usually, things improve with time; I don’t think any of us would trade in our MacBook Airs for an Altair but apparently not so with languages – I’m not really sure what to make of that.

Anyway, back to history. On the way home from the Code Freeze speakers dinner the other night I was listening to the radio when I stumbled upon A Technical Camelot, the story of Jean Bartik whose first job was as a “computer.” Let me repeat that – her title was literally human computer (which makes more sense than some of the titles I’ve held frankly.) In the mid 40s, she found herself in the midst of history as one of the first programmers on the ENIAC and listening to her describe how she became a programmer and the kinds of things she was working on was quite something.

My point here is simple: history matters. With the advances in hardware, we’ve done some amazing things, but let’s not forget where we came from and the people that propelled us to where we are today.

Categories: Development, Off Topic, Software Tags:

Enso is Free!

January 19th, 2008 No comments

In case you missed it, I just wanted to point out that Enso, a program launcher (though really, that description doesn’t do the product justice) is now free! I’ve been following Enso since Humanized announced it and I was really impressed by the things Aza was showing off at the Rich Web Experience. If you’ve ever seen Neal Ford‘s productive programmer talks, you know he’s a fan as well, and after using it for an afternoon, I already can’t imagine working on a Windows box without it. The user interface is remarkable – give it a try, you won’t regret it!

Categories: Off Topic, Usability Tags:

You say Hacker…

January 4th, 2008 No comments

You’d think after the hubbub over Sony’s rootkit problems of 2005, companies would know better but apparently Sears has decided that “community participation” has a very special meaning. I have no idea how any company could possibly think this was a good idea… BTW, if you’re not reading Schneier on Security you’re really missing out.

Categories: Rants Tags:

Seat 21C

January 4th, 2008 185 comments

When I was in graduate school, one of my professors gave us a trip report on a conference he had attended. After class we started chatting and he told me that the goal was to travel enough that you wanted to start traveling less – needless to say, I now know exactly what he meant (see here, here and here for various tales of the glories of trips past…) For those of you that don’t fly much, the Jet Lagged blog’s A User’s Manual to Seat 21C pretty well covers the joy that is getting on an airplane these days. Of course some of my friends fly so much that they haven’t seen a seat past row 4 in years but even they have their own horror stories to share ;) .

Categories: Off Topic, Travel Tags:

New England Java Users Group

January 2nd, 2008 4 comments

It’s a new year and that means more speaking (not that I haven’t enjoyed the winter lull mind you!) Code Freeze kicks the year off right and the No Fluff season is rounding into shape. In February, I’m heading out to the Boston area to speak at one of the top JUGs around. My friend Mark Richards used to run this group and based on what I’ve heard, it’s a top notch collection of developers. I’ll be giving one of my favorite talks, Designing for Ajax; if you’re in the neighborhood, I hope to see you there!

Categories: Ajax, Talks Tags: