When it comes to cell phones, I'm a trailing-edge guy. Fancy, new smartphones are appealing, but small-town New Hampshire lacks the network to support them. So when I dunked my phone into a pond this fall while reporting a loon sighting from my canoe, my replacement options were limited.
I went to eBay and bought the telephonic equivalent of my 1996 Honda: a Qualcomm CDMA device called the LG VX4400. It's an unimpressive but solid piece of equipment with one piece of PDA functionality that I wanted to incorporate into my routine -- a simple calendar.
It sounded straightforward. You buy the USB data cable, you buy the sync software, problem solved. Although the FutureDial sync software claims support for Outlook's address book, nobody -- not the Radio Shack store that was prepared to sell me the software nonrefundably, not the FutureDial Web site, not the LG Web site -- could tell me whether it would also sync calendar events. My hunch, supported by postings I found on various discussion forums, was that it would not.
When my e-mails to vendors went unanswered, I turned to open source. A Google query for "sourceforge vx4400" yielded this first result: "Welcome to BitPim."
On the BitPim project site, I found not only sync software for Windows, Linux, and OS X, but also a wealth of useful documentation, including a beautifully written online help system. Thanks to these docs, I avoided buying the straight-through USB cable that would evidently have caused problems with my particular phone model, and instead got the alternate USB-to-serial cable.
It wasn't all clear sailing. I couldn't get the recommended FutureDial USB driver to work, so I wound up using a different USB-to-serial driver from Prolific Technology. After I sorted that out, BitPim could read and write the phone's contact and calendar records.
That was a good start. Although BitPim can import and export various contact formats, it as yet has no similar support for calendar events. You can move events back and forth interactively, but I wanted to automate the process. Happily, BitPim offers all the tools I need to make an easy job of it.
Because it's written in Python and uses the wxPython cross-platform GUI library, it's open and easily extensible. What's more, BitPim's developer, Roger Binns, thinks the same way I do about managing collections of simple objects. To export calendar entries to the phone, I only had to write a simple script that emits the ASCII serialization of a Python dictionary. Sweet!
I haven't taken the next step yet, which is to bypass the GUI and move data directly to and from the phone by means of a scheduled task, but it's clear that BitPim's architecture will make that undertaking a straightforward one.
When people talk about the heroes of open source, you tend to hear such familiar names as Linus Torvalds, Larry Wall, Brendan Eich, Guido van Rossum, Monty Widenius, Miguel de Icaza, and Rasmus Lerdorf. No question about it: These people are my heroes. But so is Roger Binns, and so are the countless other unsung heroes of open source. For solving a host of vexing problems with quiet competence, and for doing it in ways that invite others to stand on their shoulders, I salute them all.