My parents got us ice skates, but for most of January it was ironically too cold to use them. Today was unexpectedly warm so we finally put them to use at the Bryant Park ice rink.

I think the last time I wore figure skates was probably in second grade, and sure enough the toe pick did catch me off guard a bit. I only fell twice.

Then we came home and watched the Olympic women’s short program, and scoffed at their under-rotated triple toe loops.

Southwest Airlines

I don’t normally fly Southwest. This might be my first time, certainly first in a long time. I’d heard good things.

Southwest, I learned when I bought the tickets, has an open seating policy: sit wherever you want. Like a bus. The European budget carriers have a similar approach. It’s a little disconcerting, but after the first flight I was pretty happy with it. (I picked an exit row window seat with amazing legroom, no upgrade required.)

The gate agent did try to take my boarding pass, but I snagged it back, since I had my next leg printed on the back.

On the second leg, though, there was a snafu. After boarding, a flight attendant said two men’s names over the intercom, asking if they were on board. There was no response. Then they counted the cabin, checking that the expected number of people were on board. It didn’t match, and they counted again. Still no match.

The flight attendant asked everyone to pay close attention, to tap their neighbors if they had earbuds in, then repeated the names. No luck.

So the flight attendant asked everyone to take out their photo IDs, and announced that the flight attendants would be checking the names of everyone on board.

For a few minutes they tried to avoid this, double-checking subsets of people, like those who were continuing on this plane from a previous segment, but they couldn’t locate the mismatch. Eventually they started to map the cabin, asking everyone’s name (but not checking ID), one notetaker starting from the front and one from the rear. They also announced the two men’s names again.

As an airline anecdote, this is pretty boring … but I think it might be an interesting lesson in fault-tolerant data structure design. The major problem here, the open seating plan, could be seen as choosing to store passengers in a structure that’s neither indexed nor sorted, like a flat file. That allows efficient insertion and clearing, but it makes validity checking O(N). Even worse, the boarding pass could have made every member of the set self-validating, but they collected them all upon boarding, preventing the use of, say, a handheld barcode scanner to accelerate the process. Instead, the linear scan has to compare each name to a very slow master database (a paper roster).

With sufficient foresight, the seatback screens could have an app that allowed each passenger to enter their own name, sharding the process and rebuilding the seatmap in parallel. Unfortunately, there was not such foresight, nor were there any seatback screens at all.

An hour after scheduled departure, the count had completed, and the crew was huddled at the front of the plane, scanning through the results and trying to figure out what to do next, and periodically calling out names of people to press their call button.

A few minutes later, a flight attendant explained that the printed roster had more people on it than there are seats on the plane. The master database must be corrupted, making the consistency check worthless.

At 75 minutes, we were told to deplane, but leave our bags. When in doubt, rebuild the database from ground truth. We were told that we could save our seats by leaving something on them … but please don’t mark any open seats, because more people will be joining us. There will be “a gesture of good will on our reservation”. In Southwest’s lingo, this is a “GOG”.

Deplaning and then reboarding a 737 takes a bit over 30 minutes, using photo IDs instead of boarding passes.

Two hours after scheduled departure, the database is finally consistent and we are ready to go.


I switched to Linux around 2003, and eventually wound up on Gentoo with an XFCE desktop. That gave me just about all the latitude one could hope for in customizability, and so I installed a little script that used daytime and nighttime satellite images of the earth to synthesize a map, showing city lights in the places where it’s currently night, etc. It was actually almost useful, when communicating across time zones. The script would also download the latest cloud images from NASA every day, so I could watch hurricanes and fronts roll across the map. Fun stuff.

Eventually I discovered that NASA publishes aurora maps, and I hacked the script to download daily aurora images and overlay them too.

That was maybe 2007.

I just got a new phone, and one of the default backdrops available is a world map exactly like the one I found in 2005, but rendered as a globe. It even has the updated cloud map. In a way this feels like a microcosm of the story that’s played out recently with quadcopters and 3d printing, where hobbyists have been about ten years ahead of the mainstream.

No aurora though.

The Play that Goes Wrong

In honor of the State of the Union, it seemed like the perfect night to see The Play that Goes Wrong. From the description, it sounded like the second coming of Noises Off, which I think turned out to be a fair guess. It’s hilarious, of course, especially if you get orchestra seats at the Rush price.

I count myself a fan of these British slapstick frame-device productions, not that I’ve seen more than a few. There’s The Black Comedy of course, and … that’s all I can remember. Wrong is very much part of the genre, an Agatha Christie homage that rapidly descends into hysterical mayhem.

Wrong might be the most technical comedy I have ever seen. Yes, the actors are amazing; without breaking character, they spend the entire production playing bad actors, each terrible in their own very peculiar way. But above all it’s the set that is the star of this show. From the very start, the play’s central theme is that the set is badly constructed and not quite finished. In fact, the set is a technical marvel, full of impossible and terrifying misbehaviors that literally place the actors in increasingly awkward positions, until it all comes crashing down at the end. The set is so intricately designed and precisely actuated for its purpose that I think it might qualify as puppetry. The set is a member of the cast, operated by a highly skilled but invisible team of set crew/puppetmasters.

It’s a miracle that no one gets hurt.

That means that unlike Noises Off, which my high school’s theatre group once performed, you won’t be seeing The Play that Goes Wrong with anyone but professionals — so you might as well see it on Broadway.


I’m in Singapore. I’ve been here for a week. I … really can’t figure out what to say.

I was here for a conference, at a convention center that’s attached to a giant upscale mall. That seems to be a common theme here: there’s more than one such place.

Singapore is incredibly British. Everything is in English and everyone speaks English that ranges from excellent to native. But it’s not just that. For one thing, it’s very Christian in a very English way. There are two churches on this block, the old-fashioned kind with a steeple, one with columns and the other (built in 1841) with gorgeous stained glass in all the windows. I saw a couple walking in in a dark suit and white dress, when the bells were ringing on Sunday morning.

There are also other signs of Britishness, like the double-deck buses, or the occasional London-style black cab. What’s really British, though, is the amount of Christmas.

In the US, Christmas shopping starts on Black Friday. It is traditional for Americans to complain about the Entire Month of Nonstop Christmas, with carols playing over the PA systems in all the stores. We should be grateful: in Singapore, in the absence of a fall-holiday firewall, Christmas starts November 1st.

The malls are all decorated to high heaven with boughs and ornaments and giant green cones that are supposed to be Christmas trees. Because, of course, we’re thousands of miles from the nearest Douglas Fir. It’s 90 degrees and 100% humidity outside, every day year-round. We are in the tropics of Southeast Asia here. Oh, and the Christmas carols are here too. I’ve heard most of the classics already, definitely Noel, Jingle Bells (!!), and White Christmas (!!!).

It’s so weird.

At least it’s not completely everywhere. I walked over to Little India after the conference was over today, and there was a clear and rapid shift, from Timberland and Nine West and Victoria’s Secret in the air-conditioned corridors, to tiny owner-operated storefronts selling everything from pasta to pianos. (That very cute store was about 1.5 pianos wide, with floor-to-ceiling shelves of sheet music all the way around.) Then in Little India, everything was “Sarees” and gold. No sign of Christmas.

On the way back I spotted a Chinese-Christian church, built in a modern style. It made me think that other areas of the city might a little different, with some actual local culture. Not here. As a friend pointed out, if you dropped an American from into this district, it could easily take them a full day to figure out that they weren’t in Los Angeles (or maybe Honolulu).

Maybe that’s really what Singapore is about. It’s a bite-sized portion of high-grade Anglo culture, in a part of the world where that is in high demand and short supply. I can understand why that might appeal, if you’re living in Kuala Lumpur or even Seoul. If you’re in the USA … you could probably just visit your local mall at Christmastime instead.

Natural Science Fiction

I recently saw a movie with the following basic plot. A mad physicist has been working on a groundbreaking android, a humanoid robot, in the form of a beautiful young woman. He refers to her as his daughter, and names her “Olympia”. Just as he is putting on the finishing touches, a lovelorn student arrives at his laboratory, and learns of this “daughter”. The student is lonely, and very interested in meeting Olympia, but he catches only a glimpse.

The physicist’s former collaborator, lurking outside the laboratory, bumps into the student, and agrees to sell him a pair of augmented-reality glasses that offer superhuman visual acuity, night-vision, etc. The student starts wearing these glasses around, amazed at his new perception of the world. Unbeknownst to him, the glasses have special features connected to the android, making Olympia appear to be a living human girl. At her debut performance, Olympia sings and dances beautifully, and the student falls in love with her, although the rest of the audience can see the mechanical malfunctions and battery life issues. Eventually, the student dances with Olympia, and confesses his love to her, but her “father” takes her away before he can get a reply.

That night, the physicist and his former collaborator fight over the ownership of Olympia. They cannot agree on who is the rightful owner, and by morning they have destroyed the android rather than share credit for its creation.

The student arrives the next day to propose to Olympia, and is horrified to discover that she has been destroyed, and was never real after all.

You might reasonably complain that this movie seems somewhat derivative. It sounds an awful lot like the plot of Her, or especially Ex Machina, or probably half the episodes of Westworld. It’s practically cliche, except for one thing.

This is not a movie. This is Act I of Les Contes d’Hoffmann, a French opera from 1851. The plot is a slightly simplified but mostly unaltered version of Der Sandmann, an 1816 short story by E. T. A. Hoffmann. (We saw it at the Met, in a grand production featuring Erin Morley as an amazingly robotic Olympia.)

This story is 200 years old. OK, the original libretto doesn’t use the words “android” or “augmented reality”, but how could it? The original libretto is in French!

Today we tell these stories because they are almost plausible. We have early prototypes of all the relevant technologies (humanoid robots, augmented reality glasses, realistic rendering of human faces). We already have hints at the kinds of social problems that might result from young men obsessing with simulated women, rather than actual people.

But this tale is from 1816. ├śrsted had not yet discovered that electricity is related to magnetism. There were no passenger trains, and no trains at all outside of England. The best concrete in the world was still not nearly as good as the Romans’.

Maybe some people are just far-sighted … or maybe there is a trick to predicting the future: focus on flawed human nature. Human nature is unchanging, and technology advances as needed to enable our worst vices and expose our deepest faults.


I saw Jonathan Coulton live! Somehow I came into possession of a couple of comped tickets to his show during New York Comic-Con, and we decided it was worth the trek out to Brooklyn.

I was a little surprised. Jonathan Coulton’s studio tracks are often backed by intriguing electronica or heavy rock beats, but live he was purely acoustic (almost…)

Like a lot of people, the first JoCo track I heard was Code Monkey. It was the first time I heard a song for nerds that wasn’t entirely a joke. That turns out to be JoCo’s specialty. The other JoCo songs I knew well (apart from Chiron Beta Prime, a scifi Christmas Carol) were IKEA, Re: Your Brains, All This Time, Still Alive, and First of May (which I’m not going to link; you can find it on your own if you must).

I figured that like most established artists, JoCo would play some old songs for the fans, and some new ones to promote the new album, and indeed that’s what happened. What I didn’t expect is that he would sing every single one of the songs I knew. The audience sang along, being full of people who, like me, have been listening to them on repeat for the last 10 years.

Of the new music, the one that really stuck with me was Brave, which he described as being about “an internet troll who lives in his mother’s basement and is really broken inside”. (Well, that and Mr. Fancypants, on a bat’leth Zendrum LT.)

As always, Paul and Storm opened the show. They’re truly musical comedians; JoCo seems sincere and plaintive by comparison. I think my favorite song of theirs was Opening Band, which might also have been their least jokey number.


When I started this blog, it was 2004, and I was heading to Fitzwilliam College, Cambridge, where bandwidth that didn’t go through the college’s proxy was charged by the megabyte. I started running WordPress on my laptop, but for efficiency I would scrape a static copy locally, rsync it to my home directory at MIT, and serve it statically there.

Since then I’ve gone through a number of hosting solutions: sometimes a box hidden somewhere in my parents’ house, sometimes a computer that was also serving as the DVD player and sound system for my roommates and me. For the past four years, it’s been an Atom-powered desktop wedged into some dusty corner, and doubling as my wifi router. A couple years ago the power supply fan died, and I fixed it with duct tape.

Amazingly, it’s still working, but part of maturity is recognizing when to put away childish things before they really become a problem. In its latest location, perched over the stove in the kitchen, sucking in oil vapors, this arrangement was likely to go up in flames, possibly literally. We already found ourselves needing two wifi networks due to Windows compatibility issues, and that was creating its own headaches. When living alone, this was an annoyance, but now that I’m responsible for two people’s internet access, sometimes for work purposes, it’s critical.

So starting today, this blog is hosted on an honest-to-goodness cloud server (on Google Compute Engine). In a way, this is the end of my campaign for a decentralized internet, and the beginning of grown-up-style website deployment. I still hope that We of the Internet will figure out how to decentralize the internet some day, but for now, for me, the overhead of hardware operation and the risk of data loss are too high. (It doesn’t hurt that Compute Engine has a free usage tier that is fine for this purpose.)

Of course, there have also been some major changes in my life over the past few years, with the result that I increasingly have better things to do with my time than maintain flaky hardware and write backup script cron jobs. So this change marks a wonderful turning point: a life too full of joy and excitement to make everything into a high-maintenance hobby project.


I saw the eclipse!

It wasn’t easy. I flew out to Colorado to meet my brother, and then we all drove up to the middle of nowhere, Wyoming, through endless pastures and fields of sunflowers, plus plenty of empty land and the occasional geological portent. On an average Monday it would have taken a bit over three hours; it took us six, along with all the countless thousands of other enthusiasts winding through those two-lane roads.

We got there with half an hour to spare, in perfect sunshine. At half-eclipse, it still felt like any other bright summer day, but around 90%, things began to change. The shadows grew strangely sharper, and the light felt oddly blue compared to normal dusky twilight. Insects really did begin to chirp as if at nightfall.

Then, in a moment, totality. The horizon was ringed by impossibly pink sunset, planets were visible, and the moon appeared as a perfect black circle at the top of a navy blue sky.

People say it’s just sheer luck that the apparent size of the sun and moon are so nearly the same, so that eclipses are possible but exceedingly rare. There’s another lucky coincidence of sorts that’s less discussed: the solar corona is exactly the right brightness for appreciation by the human eye. Too bright, like the sun, and you wouldn’t be able to even look at it; much dimmer and it might be hard to see.

From Goshen County, Wyoming, just north of Lingle, the corona looked like a four-tailed white flame, frozen in time. Through standard binoculars, laminar striations were visible, reinforcing the sense of fire. A candle flame taller than a hundred earths, in perfect lily white.

And then, it was over. Two minutes of shock, and then back on the road.

Pictures here, including a spherical VR timelapse movie(!), and the grand finale courtesy of my brother.