I started off a few weeks ago with the notion that I could hack up some sort of IrDA sync between my phone and my laptop. I'm not running Windows, so this immediately becomes non-trivial. The phone spits out vCards if correctly abused, so I thought I'd have a look at the vCards it produced and see how I'd go about parsing them. The primary addressbook on the laptop is
BBDB, which is written in Emacs Lisp and is really (at this point) a godawful piece of code that I'd throw away if I wasn't so dependant on the damn thing. In particular, BBDB is absolutely terrible at dealing with anyone else's software. Various people have tried to fix this, including
jwz - who wrote the original BBDB - and all the efforts have foundered, usually on a flaw in the thing being interfaced with, because BBDB is pretty damned flexible. So that led me to consider vCards in Emacs Lisp, which Noah Friedman has written the canonical code for, and Chris Beggy wrote some code for a previous release of BBDB to import vCards, and I looked at that and scrapped it and started writing my own. So I've got this chunk of lisp that reads in a directory full of vCards and attempts to match by phone number - the most unique identifier in /my/ phone's addressbook - against the contents of the BBDB. Then I thought I should get my Palm V in on the act, too. I sync that up using another incompatible piece of software which can optionally produce vCards, but they're awful vCards that miss out on some crucial information. So I started beaming vCards from the Palm to a program that'd dump out the raw vCards the Palm sends, and only then do I start reading the vCard spec because lo and behold the Palm actually sends a vCard version as part of its data. And then I start fixing up the incompatible piece of software to do proper Palm-shaped vCards, but also retaining the ability to handle the old junk in case I get this finished and want to submit it back to the masses. Then I get distracted by an intermittent timeout bug in the code and, well, it's now 1am, several weeks later, and STILL none of this stuff syncs.
And this is why I have so many unfinished scriptlets on my website.