Wednesday, September 12, 2007

There's No Hills in This Country

If you're an up-and-coming musician trying to catch a break, here's a trick for the new millennium. Give your songs the same names as ones people might be searching for (they don't even have to be covers, as you'll see in a moment), and get them into iTunes (okay, so maybe I contradict myself...). Indeed, I've lately been downloading versions of songs by artists I've never heard of, often to great musical advantage.

Poking about in this fashion, I came across a song by a singer named Wenche. It's a confusingly poor choice of name: if you're playing it for the hoots you'd spell it right, and if you're not, it seems an unfortunate association.

There was something else about Wenche, too. She was a good singer with solid (if entirely traditional) arrangements, and she'd pass for a country singer in any of the Red States of America...except she was just a little too country, you know? Her accent was just a little too pure, her drawl just a little too acute, her contralto trilled just a little too much. And there was still that Renfest-gone-bad name. Wenche?

Well, wouldn't you know, the too-country-to-be-true Wenche is Wenche Hartmann, and she's Danish. It was like Sue Foley all over again.

For a moment I hoped that Wenche would be playing in Denmark the week after next, but her Web site, despite claiming that “Wenche keeps a close contact with her audience”, doesn't list a tour date until early 2008. And as for her position in the musical pecking order, she's still thrilled that she “had the great honour of being the opening speaker at the Fish Festival in Strandby”.

Gaunt from Charts

I've never really cared for Gantt charts. I've seen them but never really studied them, because they invariably represent the graphical representation of something entirely fake (such as time-lines of work in grant applications). Indeed, they've always seemed mildly worthy of suspicion. When 37signals got into some trouble for refusing to support them in Basecamp, that just confirmed my opinion that 37signals was a slightly eccentric but righteous organization.

Two weeks ago I was scheduling the dates when homeworks would be assigned and due in my course this semester (programming languages), and I wanted to check on the distribution of homeworks and ensure there were never more than two homeworks out concurrently. I set the dates in a calendar and tried to view multiple months at a time, but the result was somehow unsatisfying. I thought for a moment about how I'd like the information presented. What I really wanted, I thought, was a picture—a picture of the homeworks stacked as bars—

Oh wow. I wanted a Gantt chart. (As is so often the case, wisdom follows from necessity.)

Now nothing spells corporateness like a Gantt chart, and nothing spells corporateness like Microsoft, so I figured it to be an ideal match. (Besides, I already knew there was no point trying to do this via 37signals.) Creating a table of the dates in Excel was trivial, so all I needed was to find the Gantt chart mode....

This is how Microsoft wants you to create a Gantt chart (short of buying Microsoft Project, I guess). It's startling to think someone actually wrote those instructions with a straight face. For what it's worth, there's a fine YouTube video that explains this process interactively. Reading the comments is interesting: compared to the usual drivel that people post, just about everyone here is focused, on-topic...and damn grateful.

Thursday, September 06, 2007

MIR3, This is Earth Calling

In the aftermath of the Virginia Tech massacre, campuses are creating emergency notification systems. Brown has outsourced this to a company called MIR3 Intelligent Notification. We had a test run today.

I was aware this morning that there was going to be a test. But I was out for much of the afternoon so I forgot all about it.

I was at my desk this afternoon working on something important when I got a call. It was clearly an automated message (initial pause, followed by a slightly robotic voice), and all it said was something along these lines: “This is an important call. Please press 1 for an important message.” (Certainly the second sentence was verbatim.)

That's it. No identifying information, nothing, nada.

If you've ever worked from home, you know that this is precisely the kind of message that you get mid-day from guys trying to sell you timeshares in Florida. Same kind of voice, same lack of identifying information, same pretend sense of urgency to con you into listening further.

So I hung up, quietly cursing that the damn telemarketers had somehow managed to get my office line.

Only an hour later did I realize what the call was about.

Today they also sent us emergency notification email messages. The messages came in the name of a Brown administrator but from the MIR3 domain name, and the headers had enough to trigger the suspicion of many a spam filter:

Date: Thu, 6 Sep 2007 12:34:00 -0700 (PDT)
From: Walter Hunter <>
Reply-To: MIR3 System <>
To: my Brown email address
Subject: Faculty/Staff Notification - Test Only issued at 9/6/07 12:30 PM

It's even more likely to be binned in my case, because I know and have corresponded many times with Walter Hunter, and never through this email address.

Unsatisfied by my unresponsiveness it sent me the same message again, eleven minutes later.

The message body also demonstrated good attention to detail:

We are attempting to verify the accuracy of our data base. Please press or select "1" if you are a staff member

How's that again? I keep pressing 1 at my keyboard...but my email program doesn't seem to know what to do about it. (Don't overlook the charming Victorian prose touch: “data base”.)

And then:

!!! You may respond by doing one of the following: !!!

Nice touch, the three-exclamatory-marks. If the headers made it through a spam filter, this should give the message a fighting chance of being trapped.

And finally, one of my response options:

* Reply to this email with the corresponding number to your response on the top line within the body of the email, e.g., 1 for indicating that you wish to use response option 1.

Option# Response:
1 Faculty or Staff Member
2 Contacted in Error

Clearly these folks are adherents to the rule that, in an emergency, you should make your sentences maximally complicated. The logic is obvious: that's how you test whether the recipient is still clear-headed or is already suffering from smoke-inhalation.

Of course, this is why we conduct tests: so we understand how well our systems work and can, in turn, improve them for when we actually need them. But this first run does not give me a lot of confidence in this company's knowledge of how to create trustworthy communication.

Now I'm waiting to hear now many millions we spent on these “professionals”.

Resolving Unanticipated What, Again?

My homies Ducasse, Wuyts, Bergel and Nierstrasz have a paper at the upcoming (2007) OOPSLA entitled User-Changeable Visibility: Resolving Unanticipated Name Clashes in Traits. Their abstract, as listed on the OOPSLA Web site:

A trait is a unit of behaviour that can be composed with other traits and used by classes. Traits are an alternative to multiple inheritance. Conflict resolution of traits, while flexible, does not completely handle accidental method name conflicts: if a trait with method m is composed with another trait defining a different method m then resolving the conflict Mayo prove delicate or infeasible in certain cases. In this paper we present freezeable traits that provide an expressive composition mechanism to support unanticipated method composition conflicts. Our solution introduces private trait methods and lets the class composer change method visibility at composition time (from private to public and vice versa), something which is not possible in mainstream languages. Two class composers Mayo use different composition policies for the same traits. [...]

Thanks to Microsoft Word, perhaps? Or the Web-publishing software?

Time Travel

On Windows, a file has at least three attributes: Created, Modified and Accessed. while Modified and Accessed could be in any order (it may have been modified after you last accessed it), the one invariant you would expect to hold is that Created is older than either of the other two. Here's a file I just saw on my file system:

Created: Wednesday, August 29, 2007, 9:45:20 AM
Modified: Friday, April 06, 2007, 11:34:55 AM
Accessed: Friday, August 31, 2007, 2:33:41 PM

After considerable searching I finally found a Microsoft knowledge base article about this that explains how such a thing might have happened and, even more usefully, an article that explains the true semantics of these names and articulates the issues clearly. This latter article shows just how subtle it is to define precisely what these times mean—and equally, why it is equally important to define these concepts precisely.

Where's (Candidate) Waldo?

A few enterprising young folks, including (full disclosure) a graduate student at Brown CS, have created a map mashup to track the US election candidates, Map the Candidates. The time-travel feature is quite interesting, and will become more so as the primaries approach.

The site has much more potential. Every press pundit takes pride in predicting who will become a candidate one or two years hence (of course, we only remember their hits, not their misses). By tracking news articles a site like this could perform similar forecasts, and take the bloviators largely out of the mix.