CNet has a review of Rockbox, a project I worked on a couple years ago. It was nice to see Rockbox mentioned in the main stream media, since I had something to do with its development.
If you do a search of the Rockbox archives, you’ll find my tiny contribution to the Rockbox source: bookmarking. When I got my first Archos, I got it to listen to audio books as much as anything else. As with real life, being able to bookmark is a must have capability. Unfortunately the default OS that shipped with my Archos lacked this (and many other) critical feature. I was readying to return the device to Circuit City when I decided to surf the web to see what hacks were out there. That’s when I stumbled upon Rockbox.
Rockbox is a firmware replacement for various MP3 players. At the time it was struggling towards 2.0, but the easy install, the availability of source code, and the great support from the developers made me reconsider returning my MP3 boombox. Although it was lacking my crucial bookmarking capability, that available source screamed at me to add it. After all, I am a developer.
So I downloaded the source and scoured the mailing lists (this was before they had a bulletin board) and documents to figure out how to develop on the code base. It meant I had to get a Linux box running, but it was a promising possibility. After about 2 weeks, I could successfully compile Rockbox on my local machine and I started trying to understand the code.
The overall layout at the time was easy to learn. The previous developers had been relatively self-documenting in their code, so with a little effort I had a good understanding on which to implement bookmarking. Without any approval from the Rockbox team or any sort of real design (beyond “add bookmarking”), I started hacking away. After about a week or so, I had a basic fundamental version, capable of writing a bookmark to a file, read it up, and queue the MP3 to the bookmarked spot. It was neat.
I spent the next week or so polishing the source and on January 12th, 2003 I published it on the Rockbox mailing list. There was mixed reception, with people asking how it worked, others loving the idea. I had published it late, so I didn’t include any real documentation on it’s inner workings, so the next morning I responded with a follow up explaining how it functioned. People liked the idea of bookmarking, but there was some disagreement on my implementation. Fortunately my code was relatively modular, so I took their feedback and updated my code.
This went on for a while. I added features like “bookmark on stop”, automatic resume, settings, most recent bookmark (MRB) list, and a host of others. Heinrik Black came on board as a major contributer, refining (fixing) my code, adding features (such as Unique Only bookmarking for the MRB list, which to this day I still don’t understand how it works). During this period, I kept continuing to check my code into the Rockbox patch system as well as keeping a fresh build with my changes. People would download my version when they wanted bookmarks and the regular version when they didn’t. I would often go weeks without updating my version which on more then one occasion made it difficult to integrate my changes.
On March 11th, 2004, almost a year-and-a-half after my initial release, Rockbox version 2.2 was released including the “much requested” bookmarking feature, effectively ending my need to support the code separately. I fixed a bug here and there, but with the source now official, it was available to everyone to hack and submit patches (somebody added the ability to speak the bookmarks!). Eventually it changed enough that my simple bookmarking code all but vanished into a collective work of developers from around the world. I can’t take credit for it’s evolution, but I can for it’s start. It is Open Source at its best.
I stuck with Rockbox for a while, replacing my busted $200 Archos Recorder 20 with a, well, Archos Recorder 20 bought from eBay for $50. But early last year I got a free iPod from the TiVo rewards program. Since then I’ve been using the Apple built OS, despite it’s initial lack of a real bookmarking feature (it has gotten better, but no where near MY implementation). My Rockbox sat on a shelf with the 2.5 OS literally gathering dust (damn dogs) until my wife asked if she could use it to listen to her audiobooks. It now regularly sits on her waist playing away as she does work around the house or while at work. I’m glad it’s getting used.
And while I continue to use my iPod, I do miss the Rockbox OS (my name is still in the Rockbox source). More importantly I miss the sense of developing something meaningful (programming wise
. I’ve had people write me to thank them for adding the bookmarking (and others complaining about bugs
.
I want to run RockBox to run on iPod. And now I can. That collective group of developers from around the world, with the help of iPodLinux, has gotten it to work on my generation of iPod (4th). It’s neat. There are features I wish it had such as the ability to read the iTunes database, but it works and that’s a tribute to that world wide development community of like minded people. Maybe I should download the source and hack in a datbase reader. I mean, how long would would I have to support it
?