<D <M <Y
Y> M> D>

Yesterday I decided to try to become a vegan, after right around 17 years of lacto-ovo-vegetarianism. My current thought is that I'll always be strictly lacto-ovo-vegetarian, but that I should be able to buy only vegan food when buying food for myself. (I would still eat lacto-ovo-vegetarian when eating food that other people had provided, or somewhere where vegan food isn't available.) Following that practice doesn't actually constitute "being vegan", but rather something like "preferring a vegan diet". In San Francisco, this seems remarkably easy; the only time I regularly eat eggs or milk today is in desserts, pizza, and nachos. Perhaps 80% or more of my meals in the last month were already vegan or had only trivial amounts of eggs or milk in them. (About 80% of the food I usually prepare for myself is also already vegan, and my favorite cuisines are high-carb versions of Ethiopian and Asian foods where the vegetarian dishes are typically vegan.)

I find it really exciting to pursue a project like this. It reminds me very much of something that I might have done when I was younger, and stirs up all sorts of feelings of possibility and nostalgia. It's also very convenient that I'm about to get a third housemate who's a longtime vegan.

Thanks to Mako, I heard about a remarkable piece of reverse engineering. A reverse engineer (Nils Schneider) wanted to study the firmware of the Apple iPod in order to figure out how to write software that runs on iPods. But he experienced a chicken-and-egg problem: after learning how to write simple programs to run on an iPod, he found that he couldn't figure out how to use the iPod's I/O hardware (in order to extract a copy of the firmwire) without studying the firmwire first to see how Apple does I/O. At the same time, he couldn't study the firmware without first extracting a copy of it.

His ingenious solution was to use someone else's technique for making the iPod squawk and squeak, in order to write a program that output the firmware as a series of sounds (which could then be recorded using a microphone, and analyzed using software on a PC in order to convert them back into a digital representation of the firmware). In effect, he turned the iPod and microphone system into an acoustic modem, and wrote his own modulation scheme for representing data as sound. He wasn't using the iPod's headphone jack; he was making the iPod itself squeak and squawk, using a piezoelectric element somewhere inside the iPod. To protect against background noise, he had to put the iPod and the microphone together inside a padded box, and let them sit for eight hours.

Somehow this reminds me of the scene in William Gibson's "Johnny Mnemonic" in which Johnny is made to recite (for three hours) a memorized computer program to which he has no conscious access. "And then it all faded to cool gray static and an endless tone poem in the artificial language. I sat and sang dead Ralfi's stolen program for three hours." In the story, the program in question is a misappropriated secret; here, despite the interesting aesthetic parallel, I think Schneider's purpose in studying the iPod's firmware is perfectly proper.

In fact, Nils Schneider's remarkable creativity with the iPod gives me a kind of hope for the future. In seventh grade, when I had a computer with a dead monitor (I think it turned out to be unplugged), I wrote a routine to give output in terms of beeps on the speaker; you could tell if a program was working by counting the number of beeps it output. (Strings could be translated into binary and then beeped at you that way, but it was a little tedious writing them down and trying to decode them.)

Schneider's ingenious approach shows several important virtues:


[Main]
Support Bloggers' Rights!
Support Bloggers' Rights!


Contact: Seth David Schoen