I was really impressed by Michael Bebenita’s Broadway.js, the recent port of an H.264 decoder to pure Javascript using Emscripten, a LLVM-based C-to-JS converter … but of course this is the opposite of what we want! Who needs H.264? We want WebM!

I’ve spent the past few weekends digging into Broadway.js, stripping out the H.264 bits and replacing them with libvpx and libnestegg. Now it’s working, to a degree. You can see it for yourself at the demo page (so far tested only in Firefox 7…).

I’m not going to be able to take this much further … at least not right now. It’s been a fun exercise though. I invite all interested comers to read some more details and then fork the repo.

Take this thing, and make it your own.
Continue reading Route9.js


After our usual Thanksgiving feast, I watched my aunt and cousin play scrabble … over the internet on two iPads, because the Scrabble board was upstairs.

This seemed a bit silly at first, but it has its advantages. My aunt needn’t be bored waiting for my cousin (with my mother and I serving as consultants) to choose his word; she was playing 5 other randomly selected people at the same time.

The free dictionary lookup also changes the game. My aunt won with words like shives, shaw, and kent.

No Sheep

It looks like the sheep experiment is off the table. Not literally. As a literal matter, the sheep may still be on the actual table at this very moment, but I wasn’t able to perform any sonography due to a particularly restrictive interpretation of the hospital’s experiment regulations.

I suppose it wouldn’t be a Ph.D. without some hard-learned lessons about negotiating bureaucracy. A new plan will be required.

P.S. ’til Brooklyn.


Saw Fat Free Sour Cream at the grocery yesterday, store brand for 89 cents. Had to buy it, just to experience Progress and Science. Could it actually be good?

No. Tastes like nothing with a hint of cheese. Thick, yes; creamy, no. Better to stick with yogurt.


I’ve never been much for text messages. I figured I was just a little too old and curmudgeonly for kids these days and their miniature communiques.

The truth is, on my old phone I was never sure whether I was being charged for text messages, thanks to a family plan where I never saw the bill (seriously, thanks!). That made me reluctant to send or receive; people would SMS me and I’d call them back to reply rather than risk an expensive back and forth. When I did send messages I would try to use every last character to make sure I was getting my money’s worth. Overall, SMS was stress.

Now I have a plan that includes unlimited text messaging … and it’s a radically different experience. A text is now an easy way to contact someone without disturbing them, to send a number or address without worrying about it being misheard, to share a single thought without the whole setup and teardown overhead of a phone call.

I still try to use all the characters though. They’re free!

No more Facebook notes

When I log in to Facebook, I see this message at the top:

You currently automatically import content from your website or blog into your Facebook notes. Starting November 22nd, this feature will no longer be available, although you’ll still be able to write individual notes.

Looks like Facebook is dropping the RSS feed mirroring feature that for the past several years has allowed my Friends to read my weblog. There’s no replacement.

I could probably whip up some sort of hacky Note-writing daemon to do this client-side … and someone probably will. I don’t think I’ll use it, though. My enthusiasm for Facebook is distinctly on the wane. I’m not about to start jumping through hoops for their sake.

So no more Facebook notes from me. If you care to be notified of my blatherings, you’ll have get a feed reader and point it at


Here’s the problem:

~$ touch somefile
~$ ln -s somefile /tmp/linkname
~$ cat /tmp/linkname
cat: /tmp/linkname: No such file or directory
~$ ls -l /tmp/linkname
lrwxrwxrwx 1 bens bens 8 2011-11-12 22:42 /tmp/linkname -> somefile

“ln -s” acts a little like “cp” … but its behavior depends on your PWD when you invoke it. I’m sure there’s a good reason for this, but I really don’t care. It doesn’t do what I want, nor what any sane command line user wants.

To avoid this problem you could try to use “cp -s”, which causes it to “Make symbolic links instead of copies of non-directories”.

~$ cp -s somefile /tmp/linkname
cp: `/tmp/linkname': can make relative symbolic links only in current directory

Oops! The Info page says

All source file names must be absolute (starting with `/’) unless the destination files are in the current directory.

It seems there’s no standard utility that Just Works when you want the classic “cp” invocation with concise paths, but producing symlinks. There are, however, a thousand different shell scripts on the web that attempt to provide the right behavior.

Command-line boosters would have more luck if the utilities were ever upgraded for usability.


I always take friends up on the opportunity to visit their labs, especially if I get to participate in the experiment. This week I was invited to help test out a new MEG/EEG system, measuring the magnetic and electric fields produced by a patient’s brain. To make good contact with the EEG, they needed someone without too much hair on their head, so I am an excellent candidate. I even told my barber to make it extra short this time.

Then last night I got a message asking me one final question:

Do u have any permanent metal things in your body? Like teeth retainers etc?

Oops. I have about 2 cm of metal wire glued behind my front lower teeth, supposedly helping reduce depreciation of that adolescent investment in braces. Apparently even small bits of metal such as this can distort the MEG signal; the lab director explained that the metal particles in one patient’s mascara swamped her brain’s magnetic field. My friend’s groggy younger brother, metal-free, was roped in as a last-minute substitute.

In the end, I probably came out ahead. He had to suffer the scalp covered in EEG gel and stare at the wall, while I got to look at his brain waves on the monitor.

The MEG itself looked unremarkable, just a small table with a shallow angled dish for the patient’s head. Only the rime ice on a valve at one end hinted at the presence of 75 liquid-helium-cooled ultra-low-noise SQUID sensors. The MEG lives inside a raised, intensely shielded chamber, decorated by the scientists with copious cartoon nature decals for the comfort of pediatric patients. The shielding is important for EEG too; outside the chamber, the EEG signals were more noise than signal, but inside they were clean and beautiful. At a glance, the scientists identified alpha and gamma oscillations, eyeblink potentials, and the (lack of apparent) synchronization with stimuli.

I still don’t know anything about acquiring and interpreting *EG signals … but at least I know what the systems look like, and a little bit about what they can detect. One more field of science demystified.


I spent the weekend with VoiceLab at a nice spot on the beach. I thought I’d document it:
Panorama of a Plymouth beach

This image is a photocomposite of 8 shots from my new N950. It’s seriously flawed, despite several days of work: just look at the gray/green sky behind the bushes, the glitch in the horizon, or the overall loss of detail during tonemapping. Hugin and Qtpfsgui are great tools, but they’re not quite up to the challenge of a seaside gully on a clear afternoon.