PodWorks 2.1(.2) Released
Wednesday, April 30th, 2003Monday afternoon, while everyone else in the Mac universe was happily checking out Apple’s new music service, I had my head down in Project Builder, frantically trying to find and fix any incompatibilities that had cropped up between PodWorks and Apple’s iPod Firmware 1.3. Most of Apple’s firmware updates have been surprisingly kind to PodWorks, but this time 1.3 and iTunes 4 conspired to make a change to the database big enough to actually break my parser.
The problem initially manifested itself rather subtly: when using PodWorks 2.0 with a 1.3 iPod, the user-defined playlists would show up, but the main song list would be missing. After a little investigation, I discovered that this was caused by a change in the way Apple identifies the main song list within the database.
Expecting to wow the world with my prowess, I quickly put together an update (2.1) that seemed to work perfectly and fix the problem on with all of the iPods I have access to (which is about 5). Within minutes of sending an email notification to registered users, however, I started to receive complaints that 2.1 was simply crashing upon attempting to parse the database.
This, of course, put me squarely into a situation that is every programmers nightmare: trying to solve a problem that is not readily reproducible. Crash logs revealed nothing, except an “attempt to insert nil,” which was not very helpful. Reports of the problem jammed my inbox. One particularly helpful user sent an email that read as follows:
Subject: Bugy!
Body: Please, Send Fix!
Fortunately, not all of the bug reporters were that unhelpful (in fact, most of them weren’t). In particular, I owe an enormous debt of gratitude to Christopher Frey of Oakland, California, who had sufficient UNIX chops to open the terminal and send me a copy of his iPod’s iTunesDB. It was Mr. Frey’s database that finally allowed me to reproduce the crashes myself and discover the source of the problem.
As it happened, the crashes were occurring because my intial fix for the 1.3 firmware was incomplete, owing to my lack of knowlege of changes to the iTunesDB. Fortunately, I was able to do a follow-up release, 2.1.2 (2.1.1 being an unreleased, failed attempt at solving the problem), which seems to have universally solved the problem.
All I can say now is that I’m really, really looking forward to the release of 2.0 (in June, I think I’ve heard). Yes sir, just can’t wait…


