Java in Your Stereo?
For the past few weeks, I've been playing with MacSense's new HomePod device. The HomePod is a compact MP3 player with WiFi built-in, a scroll-wheel interface not unlike that of Apple's iPod, and peer-to-peer media streaming software developed by Gloo Labs.
Unfortunately, the HomePod user interface does not work like the iPod. After playing with it for a few days, the differences between the iPod and the HomePod really began to bother me and my wife. If the HomePod were like any of the other consumer electronic devices in our home, we'd just live with it. But in this case, I can take matters into my own hands: the HomePod runs Java!
I downloaded the source code to the HomePod, tweaked the interface code in a few hours, FTP'd the new class files to the device, rebooted, and shazam! The HomePod user interface now behaves just as the iPod. Cool! This is one of the first times I could take my career skills and actually do something useful around the house.
The HomePod isn't the first consumer device I've owned that allowed me to run Java on it -- I'm still recovering from the pains of MIDP 1.0 -- but it is the first Java device that I've enjoyed playing with. I think that enjoyment is related to the following factors:
- The HomePod runs J2SE 1.3. I don't have to do HomePod development in a subset of the "real" Java that I'm used to working in (i.e., J2ME).
- The HomePod exposes everything to developers. The HomePod's user interface, its networking code, the application that streams music from my servers to the HomePod, it's all in Java! How refreshing this is compared to today's Java-enabled cell phones which continue to expose a subset of handset functionality to Java developers. I can tweak this thing in every way imaginable. There are some components written in C (device drivers, audio codecs), but even in those cases, the source is still made available.
The advantage of owning a device I can modify became especially apparent to me when the Wall Street Journal's Walter Mossberg recently reviewed another WiFi streaming home MP3 player. While he generally gave the product high ratings, at the end of his review, he had a stinging criticism:
[This] system doesn't let you just select "All Tracks" and then play them randomly, as you can on an iPod portable player... [This feature's] omission is a real loss.
While I fixed the HomePod's lack of "iPod fidelty" in a hurry, if I had a closed-source media player like the one reviewed, I'd be stuck singing the blues with Walt.
After my glowing experience with the HomePod, you can bet I'll be shopping for more Java-powered open-source consumer devices in the future.