By far the best paper i saw at the whole conference was the Whyline work by Andrew Ko. The Whyline is an interrogative debugging tool: you run your program, and when something unexpected happens, you ask the debugger "Why did that happen?" or "Why didn't that happen?" And it tells you! It will say things like "That didn't happen because this method was never called." More interestingly, it will correct your false assumptions: it might say "Actually, it did happen. It just didn't have the effect you were expecting." The answer is illustrated with a timeline of the events that happened during the run, with arrows to show what caused what. It's a beautiful implementation, but most impressively it is backed up by studies of debugging problems. The studies showed that a huge amount of debugging time is expended by programmers chasing down false hypotheses; the Whyline acts to correct mistaken assumptions and direct you toward the correct explanation for the failure, even if it can't give you the entire solution.
I met a talking penguin named Melvin. He's outfitted with a stereo camera and turns his head to keep looking at you while he talks to you, which is kind of eerie. When he asks you questions, he can understand when you nod or shake your head. He has a voice recognition system and some logic to figure out how to continue the conversation.
I got to try an eye tracker at one of the demo booths. It was surprisingly accurate, quick to calibrate, and non-intrusive. I just sat down in front of the monitor, a camera picked up my eyes, and i followed a spot to six or seven calibration points on the screen. Then i was all set. The tracker was accurate enough to let me type by looking at letters on the screen — they were arranged in a typical keyboard layout, about 12 buttons across. The pointer would drift off if i changed my distance from the monitor, but after i kicked the habit of leaning in closer and closer, the tracker was pretty consistent.
A guy from the Sony labs in Germany found me during one of the breaks to tell me that they had been developing something very similar in spirit to the peephole interface i had presented last year. After the day ended, he lugged in a big pile of equipment and gave me a private demo of the Spotlight Interface (scroll to V07), which consists of a handheld projector with inertial trackers inside. You walk up to a wall, projector in hand, and turn it on; it projects a spotlight image of part of your desktop on the wall. As you wave the spotlight around, it shows you different parts of your desktop, using the inertial trackers to determine its orientation so it looks like you're lighting up different parts of an image that's fixed on the wall. A thumbwheel on the projector gives you infinite zoom, so you can zoom into individual events on a day of your calendar or see the entire year, for example. Pretty cool stuff (though i think my hand might get tired waving around the projector for long periods of time.)
Someone from the Sony CSL in Japan suggested "tranSticks", a replacement for cables. To get rid of the tangle of cables behind your computer, he proposed using a pair of memory sticks to represent the two ends of each cable. The information on the cable would be transmitted over a wireless network; the memory sticks just provide a tangible interface for making the connection. (Each pair could be colour-coded so you would know which ones went together.) So, for instance, to hook up your computer to a printer, you would grab a couple of sticks and pop one in the printer port on your computer and the other into the printer, and the wireless network would figure out the rest. The obvious drawback, though, is that you can't follow cables to find out where they go anymore. When someone asked about this, the speaker joked, "You could connect the two memory sticks with a string." I thought of another solution: what if each memory stick contained inertial sensors and a little LCD that showed an arrow pointing to the location of its mate?
The neatest toy at the conference was Topobo, a construction system made of passive and active parts. The active parts are motors that record and play back motions. To make a walking creature, you build a creature with active parts attached to its legs, hit a button, wiggle the legs, and hit the button to play back your walk cycle repeatedly. With multiple active parts connected together, you can record all the channels independently at the same time; or you can use a "queen" to make many motors behave the same way. It's probably best understood by watching a video.
So many great ideas come out of the MIT Media Lab. I'm tempted to go there, as i've been tempted in the past — a lab full of creative people, creative ideas, lots of equipment and expertise to design and build all kinds of inventions, art, and toys. The closest thing to a mad-scientist existence i might hope to achieve. The thing that convinced me not to go was that, although it looks like the most fun of any research career i could choose, i'm not sure how useful the results would be. I don't know. I guess they seem impractical, though they could bring joy to a lot of people.