C got me an Lego Mindstorms NXT for my birthday. A great birthday present is something you're pleased to have been given, but would never have bought for yourself, either because you hard to justify or because you would never have thought of it. I think this qualified on the former count — I knew if I got one, it'd be a terrible time sink. But I forgot Bertrand Russell's quote that "The time you enjoy wasting is not wasted time". I've certainly enjoyed almost all the time I've wasted on NXT fun (even browsing the technical docs).

It seems to be developing quite a community. There are several blogs, including

There are also a ton of ways to program the thing. I've mostly used the provided NXT-G graphical programming environment and NXC.

It's also pretty amazing what people have managed to do with NXT-G. For example, I'd never have attempted something as complex as a radar display what struck me as a fairly primitive and awkward language. I guess it's more capable than I thought, but I still think it's an insanely awkward way to express anything remotely complex.

I've built all the roaming robot designs that come with the set, but I like the basic TriBot best for versatility. I need to try doing some other designs too. LegoEdWest has build instructions for various straightforward variations on the original theme, such as Brian Davis's JennToo robot.

For coolness-factor, here's a Segway clone built using just the light sensor (and another cooler one), and a PackBot clone (which requires various extra parts to build.

And if you want more fun than what comes in the box, there are some really interesting hardware pieces on the horizon, including compass, acceleration, and gyro sensors, as well as input and output multiplexors. See

There sure is a lot going on here.