Whither Cocoalicious?
One thing I’ve been meaning to do for a very long time is talk a little bit about the state of my other popular Mac app, Cocoalicious. As readers of my old blog probably realize, the last officially released version of Cocoalicious had developed some serious problems when the good people at del.icio.us decided to finally switch their API URL—something they had always warned might happen, and something that Cocoalicious should have been able to handle. Unfortunately, a combination of bad implementation decisions I made, the outright obtuseness of the Mac OS X Keychain APIs, and a lack of testing (to be fair I didn’t have any other del.icio.us API URLs to test against at the time) resulted in an authentication bug that took some complicated work on the user’s part to get around.
Unfortunately, at the time I was also in the throes of a major project for my “real” job, and I didn’t have the time to fight with the Keychain API to figure out the problem myself. I was even too distracted to integrate submissions from anyone else who took a crack at it, which, of all the bad things about the situation, is certainly the thing I feel worst about.
Sadly, my inattention to the problem gave rise to a bit of a schism. An enterprising Mac developer emailed me about a fix, which I politely thanked him for, even though I knew I probably wasn’t going to have time to do anything about it. When I proved intransigent, he emailed me again, saying he might post his code somewhere himself, to which I said “fine” and promptly forgot about it.
It wasn’t until after I had left Apple, and had time to pay attention to Cocoalicious again, that I became aware of the extent of his “fix.” Far from merely posting a patch, he had gone so far as to register cocoalicious.org, write a blog post claiming he was taking over the Cocoalicious project, revamp the app’s UI according to his own ideas, and begin posting his own updates (e.g. Cocoalicious 1.1) on sites like MacUpdate and iusethis.
When I discovered all of this I was livid to say the least. I welcome contributions to Cocoalicious, and will integrate them at my discretion, but in the end I have done the lion’s share of the work on the app and I want to remain its maintainer. Cocoalicious may be an open source project, but it’s still my project, and the name Cocoalicious is my trademark. I intentionally made the license on the code very liberal, so if anyone differs with the way I’m running the project, I would certainly support their right to fork. But they can’t call what they produce “Cocoalicious.”
Fortunately, the guy in question backed off pretty quickly once he caught wind of my public ire, which left me to finally get the project back on track. I have to admit, it hasn’t been my highest priority since leaving Apple (getting PodWorks back in shape was actually a much bigger and more important project initially), but I have devoted some time to solving the fundamental keychain/authentication problem, moving the project away from Sourceforge to Google Code, and even getting Spotlight support integrated (thanks to Eric Blair for implementing it). I plan to release the first of what will hopefully be a series of more regular Cocoalicious updates today, and I’m even pondering taking on some interesting feature ideas for the near future (e.g. building in Tumblr cross-posting support, or maybe finally implementing my old meta tag sorting idea) as well as some more fundamental improvements (like a more sensible multiple account management system).