Wrong. This time I was mailmerging with XML data, and I was using XML::Simple. Lesson of the day: know your tools. XML::Simple's default behaviour for an empty element is to create an empty hash. I had been expecting an empty string. (This reflects my mindset of "I'm using XML to delimit fields of data" and the XML mindset of "hierarchical data, baby"). So, anyway, I sent out 373 mail messages and everybody who didn't have a middle initial got a middle name of "HASH(0x37836df3)" (or similar) courtesy my bad code.
"Oh you fool! Testing would have caught this!" I hear you cry. You're right, testing against data that had no middle initial would have caught it. But I didn't think, or rather thought too quickly. My logic was "middle initials are rare, I want to test the rare cases, therefore I will test with a middle initial". So "Dutch Q Bungstopper" was my test name. Unfortunately, this logic sucked. The logic should have been "things break when data is missing, so test it with missing data". Oh well, hindsight is 20/20 and all that.
I immediately sent a "whoops, sorry for mangling your name" letter. Double spamming sucks, but I couldn't think how else to ease the impression that we were clueless. In particular, that Vee was clueless, as all these messages were faked to come from her. We're now getting a ton of mail from people, and almost everyone's laughing at it. There was surprisingly little ribbing about it, thank goodness. (Even Guido said he liked his new middle name of "HASH(...)").
These letters, by the way, were the "thanks for submitting a proposal, but we didn't choose it" letters for OSCON. The bit that makes me rethink OSCON every year is the "why didn't you choose my talk?" letters. I can take the letters that are phrased like that. It's the ones that say "you didn't choose me! you suck!" or "I deserve to be in there! You suck!" or, my favourite, "You didn't choose me, therefore you and O'Reilly are no longer the trusted friends of open source, you must be evil and are therefore to be shunned! PS, you suck!"
Tomorrow morning (my time) I'll be writing letters to those folks who politely asked why their talk wasn't selected and what they could have done to make it better. In most cases the answer is "not much"--I had a lot more great talks than I could fit in. What governed the selection of one over another was creating a balanced program--something for sysadmins, something for web designers, something for business app programmers, something for hackers. In the case of most tracks, I could have had an entire track on each of these aspects for each of the technologies, but there just wasn't room.
Well, that was me. I did the Perl, Emerging Topics, PostgreSQL, Apache, and PHP tracks, with help where needed. In the case of Python, Ruby, MySQL, Java, Apps, and XML, other people made all the decisions. But I imagine they had roughly the same goals and criteria as I did.
So, to summarize in advance of the email you'll receive, if your talk wasn't selected then I am truly sorry. But please don't take it personally. I am evil and possessed by the devil and no longer a friend of open source, but unfortunately that has nothing to do with why your talk wasn't selected.
And so ends a day in which I got absolutely none of the Perl Cookbook work done that I had to do. Pooey.