Saturday, November 10, 2007

Review: iRobot Roomba

Got an iRobot Roomba a few months ago from Fry's. I don't recall which model it is, but it doesn't matter because they've since come out with a new generation.

At first, Roomba only worked in fits and starts. After running for a while, it would bump into something that appeared to knock it silly. It would spin backwards in a circle for a minute or two until it gave up, confused. Amusing though it was, it really made the whole thing pointless since you couldn't leave it unattended. iRobot customer service turned out to be a joke. I was about to take it back to Fry's, but out of nerdiness and ultimately stubbornness, I decided to tinker.

First, I found the Roomba diagnostics that some poor guy apparently reverse-engineered. Kudos to the Roomba engineers for putting in the testing routines, and shame on the writers for not including the instructions in the manual. Double shame on the web guys for not posting it on their website.

Armed with this information, it was soon apparent that the cliff sensors weren't seeing the ground. Roomba thought it was perpetually about to fall off a cliff. I tried the usual (for Roomba owners) sensor tricks with tape, aluminum foil, even mirrors, but to no avail. With a digital camera CCD and an infrared remote I proved that the sensors themselves were working. Eventually I deduced that the sensors, located on the bumper, had a loose connection that the bumping would aggravate.

Now, it was time to put my college degree to use. I located the sensor that was most troublesome, and I repeatedly applied rapid, blunt force to that part of the bumper. That is, I hit it. I hit it over and over until it worked. Not only was it an effective repair, but it was quite satisfying.

The only other problem I had with it was the battery, which took quite a while to break in. I think the trick was to run it on "max" mode a few times to deplete the battery, and let it charge long after the LED says it's done. I can't be sure, though, since I tried a lot of things; draining the battery is a routine fix for rechargeables. Nowadays I almost always run it into the red, either in one shot or across multiple rooms.

I haven't had any troubles from Roomba since. Occasionally I clean it. More often I don't, and it keeps on trucking anyway. Bottom line: If you want one, get one, but buy it at a place where you can take it back for a refund, not just a replacement.

Thursday, October 25, 2007

Still Open

For my next unfinished project, I present Basically it's supposed to tell you what restaurants would still be open by the time you got there. I've successfully deployed version 0.01, which is an empty error page. Coming soon: version 0.02, which is a single entry for "Denny's."

Tuesday, June 26, 2007


Yesterday in Morse v. Frederick, Big Chief Roberts had this to say about ‘bong hits’:

Gibberish is surely a possible interpretation of the words on the banner, but it is not the only one …

Some others are “that the sign advocated the use of illegal drugs” (emphasis mine) and that “the phrase could be viewed as celebrating drug use.” I count three interpretations here, though Roberts counts only two. Surely, there are more than one.

‘Bong hits’ may or may not be advocating the use of illicit drugs. If it were, it might not be protected speech, since encouraging kids to break the law is a no-no. So what does it take to advocate something? As it turns out, Roberts has something to say about advocacy in Power v. Money on the very same day:

… [A]n ad is the functional equivalent of express advocacy only if the ad is susceptible of no [other] reasonable interpretation ….

‘Bong hits’ is an ad for Joseph Frederick. It says, ‘Look at me, I'm a wild teen rebel.’ And it worked, because I now know who he is, yet I am no more likely to smoke a plant or to worship a carpenter. The only difference between 'bong hits' and a thinly-disguised political smear is that Frederick is only a whore for attention, not for power and money and the occasional sexual favor.

In his dissent, Justice Stevens points out Roberts' hypocrisy with a satisfyingly large bitch-slap:

… THE CHIEF JUSTICE announces today … that when the “First Amendment is implicated, the tie goes to the speaker,” … and that “when it comes to defining what speech qualifies as the functional equivalent of express advocacy … we give the benefit of the doubt to speech, not censorship” …

However, this isn't even a tie-goes-to-the-runner situation. It is up to the censor (the power-wielder) to demonstrate that the danger of a speech justifies its suppression, not the speaker to prove its meaning, harmless or otherwise. Without evidence that Frederick was advocating drug use, nor evidence that anyone would have been persuaded to do anything illegal, there's no argument supporting denial of First Amendment rights. As best as Stevens could tell, the only reason the Court could find for supporting Frederick's suspension was that it was now up to school officials across the country to interpret the Constitution:

… it is hard to understand why the Court would so blithely defer to the judgment of a single school principal.

Finally, one could argue (especially, but not exclusively, if one is a follower of any of a number of backwards and repressive religions) that some “social events,” such as prom, are school-sanctioned advocacy of underage sex. Couple that with an official denouncement of safe-sex practices, and suddenly a bong hit should seem a small worry to those concerned with high-school students' well-being.

Tuesday, May 08, 2007

D-Link DGL-3420

Just bought a DGL-3420 from Fry's to act as a wireless adapter for my girlfriend's old iMac. Configuration of some of the functions, including WEP, only works with Microsoft Internet Explorer due to stupid broken JavaScript. No Firefox, no Mozilla, no Netscape, no nothing.

"No problem," I think. "Just update the firmware, that'll probably fix it." The box ships with firmware version 1.01, and firmware 1.02 is out there. But guess what else is broken in 1.01? Yep, firmware update.

In summary, you'll need IE just for a moment to use this thing. Once up to firmware 1.02, though, enabling WEP works in Firefox. Naturally, it's quite possible that newer boxes will ship with 1.02 and Fry's is just unloading the old inventory.

Thursday, February 15, 2007

Office simulator

Ever wonder what it's like to be a firmware engineer? Here's a Flash simulation of what goes on in my office. And here's another for the mechanical engineers.