• Categories

  • Archives

  • Recent Posts

Really poor web programming at AA.com

I travel a fair amount on business, though it can really vary from year to year and even during a given year. As it happened, I traveled a lot last year, requalifying for Platinum status on American Airlines. My wife traveled with me a lot as well, and she actually ended up with Gold status, the first time she’s had elite status in about 15 years.

So, tomorrow I’m flying to New York, and my wife is coming with me, the first such trip we’ve taken together this year. My tickets (as always) are coach, but I always put in requests for upgrades to first class, using electronic upgrades that I purchase, and as it turns out, we were upgraded to first class for the leg from Denver to Dallas-Ft. Worth. But when I went to check in this afternoon (in advance, in order to be on the upgrade waitlist from DFW to La Guardia), the AA.com website wouldn’t let me, saying that I didn’t have enough upgrades in my account.

Hmm. I log onto AA.com and see that, yes, in fact, I actually have about 3 times the number of upgrades needed. So I call American Airlines, explain the problem, and get passed to the AA.com help desk. The guy I’m talking to knows immediately what the problem is: both I and my wife have an ‘elite’ status, and so the website doesn’t know whose account to take upgrades from.

Full stop #1: Really? You have a single reservation with two people with elite status on it, and you have no code to handle the high-likelihood situation of both being upgraded to first class for an on-line check-in? Even solving for the general case — M people in a single reservation of which N have elite status of which P have upgrades in their accounts — shouldn’t be that hard.

I then ask the nice man (who was apologetic, probably because he goes through this any number of times per day) if it would help if I bought upgrades for my wife’s account. The answer: no.

Full stop #2: Really? If A and B are traveling together on the same reservation, both have elite status and both have sufficient upgrades in their accounts, you can’t simply take the requisite upgrades for each person from that person’s account for an on-line check-in? The answer: no.

The nice man (and he was nice) then tries a solution: he removes my wife’s FF# (and thus, in theory, her elite status) from the reservation and has me try to check in again. No, that doesn’t work, probably due to some leftover state in there (e.g., it may still think she’s Gold status even though her FF# is no longer in the record).

He then recommends that for future travel, I not put my wife’s FF# in when I make the reservation, but instead have it added after I have checked in.

Full stop #3: Really? That’s actually counter-productive, because we only get upgraded to first class if both of us are upgraded, and the likelihood of that is higher when we both have elite status. (At least, I assume that’s the case; if it’s not, then what’s the point of elite status?)

Now, you may ask, what’s the big deal if you check in on-line ahead of time vs. checking in at the counter? Well, since we live in Denver, most of our American Airlines flights go through either DFW or Chicago (O’Hare), with a 2nd leg to my/our final destination. And once the check-in window opens, a new waitlist of upgrades is created among those passengers who have checked in. I/we have to be checked in to get on that waitlist for the 2nd leg. So I’m now delayed 18 hours or more before I can get onto that waitlist.

Beyond that, I suspect it also means that we’ll have to check in at the ticket counter rather than via the skycap, for exactly the same reason (that is, determining which account to take upgrades out of). However, I’m going to buy some upgrades on my wife’s account and see if it at least solves that problem.

The irony, of course, is that none of these problems occur if my wife doesn’t have elite status. And, yes, I could book my wife’s flights as a separate reservation, except that causes all sorts of problems with seating, upgrades, flight changes and cancellations, and so on. Been through that before, don’t want to go through it again.

All things considered, I’m generally happy with AA.com; I use it (and the AA apps for iPhone and iPad) to book and manage all my American Airlines travel. But this is just plain sloppiness/laziness on someone’s part. In effect, AA has given me disincentives to travel with my wife while she has elite status.

That’s just not smart.  ..bruce..

 

A possible game-changer in industrial robots

Via Slashdot come a link to this MIT video (sorry, can’t find a way to embed it) about the work that Rodney Baxter (founder of iRobot) is doing to develop a new kind of industrial robot: cheap (~$22K), safe, and programmable by factory workers. What rings true in Brooks’ commentary is that people will find unexpected and unanticipated uses for such a robot, “and then it gets really exciting.”  ..bruce w..

[Cross posted at and-still-i-persist.com]

“Ground-truth documents”

A great post by Eric S. Raymond[*] (yes, that esr) on what he terms ground-truth documents:

Here is an example: AIVDM/AIVDO protocol decoding. It describes the behavior of Marine AIS radios; I wrote it as preparation for coding the GPSD project’s AIS driver. It isn’t exactly or completely a hardware-interface specification, and some of its claims are derived from standards documents and not yet tested – but the point is that it tells you which claims have been tested and which have not. It also tells you where the observed behavior of AIS doesn’t match the standards.

Casting about semi-consciously for a way to distinguish this from a “design document”, I found one. What this is, is a “ground-truth document”.

The thing about ground-truth documents is that they don’t make promises, don’t erect requirements, and don’t talk about the future. They’re just the facts, ma’am. They describe what is, warts and all. Mine evolved into the best single reference on the AIS protocols anywhere, and has since been used as a spec by at least three decoder projects other than GPSD itself.

The practice that goes with this term is simple: always put your ground-truth document together before you start on production code (test tools to reverse-engineer the device are not production code). Maintain it with the code, treat it as the authority for how the code should behave, and when the code doesn’t behave that way treat the divergence as a bug. When your knowledge about how the device behaves changes, change the code second; change the ground-truth document first. (Of course you have it under version control, so you also have a history of your knowledge of the device.)

Go read his whole post and then ask yourself: what ground-truth documents should you have in place (and under change control) in your IT project? ..bruce..

 

[*] D’oh! Not only did I misspell esr’s last name (I originally wrote “Reynolds”), I did so with “The Cathedral and the Bazaar” sitting in a bookshelf at eye-level 4′ behind my monitor. Senility in the young is a sad thing.

 

New series of posts (at bfwa.com): Readings in Software Engineering

Over at bfwa.com, I’ve started a new series of posts that will present brief reviews of and excerpts from my library of software engineering and IT project management texts. Here’s the introduction to the series; and here’s the first post, covering Jerry Weinberg’s The Psychology of Computer Programming.  ..bruce..

Rebuilding a WHS 2003 box, part I

A few years ago, I bought an off-the-shelf (well, delivered from Amazon) Acer Aspire easyStore Home Server. It came with a single 2TB hard drive, 2 GB of RAM, an Intel Atom CPU 230 (1.6 ghz), three empty hot-swap drive bays, and Windows Home Server 2003 pre-installed; I added three more 2TB drives to the box. After some initial issues, it generally worked fine until last fall, when problems began to surface. However, I’ve held off because I knew I would have to back up over a terabyte of files from the various shares on the WHS box…which is why I’m now into March without having done anything.

However, while logging into the WHS box to do some system maintenance, I found that the system partition was full, which was causing system problems. I thought, “How can the system partition be full? That’s a 2TB drive!” Well, Acer in its infinite wisdom partitioned that drive (not a bad idea) and made the C: system partition only 20 GB in size. Now, I’m an old-school geek and can talk about dealing with paper tape and cassette drives, but when you have 2 terabytes[1], why do you only allocate 1% to the system partition? Particularly when, as I quickly discovered, WHS systems have a habit of eating up the entire system partition with log files and $ntuninstall folders.

OK, so now what I really need to do is resize the partitions on the WHS boot drive. Which means, yeah, I really will need to rebuild WHS, which is what I’ve needed to do for some time. Which means I am now backing up all the shares onto external USB hard drives.

Speaking of which: I ran into a problem doing that, namely that WHS wouldn’t recognize the external USB drive. After googling around, I came up with the following solution:

  • Plug the USB drive in.
  • Go to the Device Manager and look under Universal Serial Bus controllers. There I found the USB drive with a yellow triangle. I right-clicked and brought up Properties.
  • In the Properties panel, go to the Driver tab and asked to reinstall the driver. When asked, I told it to go find the drivers itself.

To my delight, it did so, installing the drivers for USB Mass Storage Device, after which the USB drive mounted.[2]

So I’ve been backing up shares (photos, music, videos, etc.) since yesterday afternoon. I’m going to duplicate some of the shares — that is, back them up onto two different external hard drives — just because I’m paranoid.

Stay tuned.  ..bruce..

 

[1] Yes, I’m very much aware that the marketing types sold us out with regards to how big a terabyte actually is, which means that a “2 terabyte” drive really only holds 1.8 TB. Stop interrupting me.

[2] Actually, the first time I did this, it failed — because there was not enough free space on the C: partition. I went and deleted more stuff, then tried it again, and it worked.