An update on my Thunderbird work…

It’s been a really long time since I posted any updates about what I’ve been doing with Thunderbird.

There’s a good reason – I’ve been hauling ass. My Unity Launcher and Messaging Menu extensions have gone through several iterations, and are shaping up well.  The plan is to bundle those extensions with the latest Thunderbird 5.0 beta to get some more user feedback.

The majority of my work lately has been on a project called EDS Contacts Integration.  Do you remember when I talked about Ubuntu One contacts sync, and how I wanted to integrate that with Thunderbird’s address book?  Well, I went to UDS a few weeks back, and I learned that a bigger / better goal would be to integrate with EDS (Evolution Data Server), which acts like the global address book, task list, calendar, etc for Ubuntu.  If I integrate here, then *all* Evolution address books (including the Ubuntu One address book and Google Contacts address books) should be available in Thunderbird.  So it’s a pretty big win.

So, like the Unity Launcher and Messaging Menu integration, this integration is currently being implemented as a Thunderbird add-on.

Currently, this add-on has basic read-only.  I can view EDS address books, contacts and mailing lists.  EDS contacts appear in the auto-complete when I start typing an e-mail address.  They’re searchable.  I can view the photos of EDS contacts.  There are some edge cases that I haven’t addressed yet (reading address books that require authentication, for example).  That’ll be coming soon.

Here’s a screenshot.

I’ve also started work on write capabilities.  I can now add and remove addresses on a mailing list, and set whether or not I want e-mail addresses to be hidden when I send mail to the list.

So, in short, I’m making pretty decent progress.  Not bad for a month’s work.

But I can’t just fork over the add-on for you to play with, because this work has several other moving parts.  The first moving part is the core address book de-RDF’ing work I started a few months backThe patch for this is landing in Thunderbird’s trunk shortly, which I’ve very excited about.  And the second moving part:  a patch in trunk where I’ve made a few slight modifications to the address book infrastructure.  This makes it easier for add-ons (like my EDS integration add-on) to extend the behaviour of the address book.  This will also, hopefully, be landing shortly once I’ve polished it up, and gotten it through review.

Once those patches land, my add-on should work properly on trunk.  And not long after that, the patches will land in an Early Bird release for you all to try!

More blogging soon.  And more screenshots.  And maybe a video.  Stay tuned.

My New Project: Integrate Thunderbird with a Casio Calculator Watch

Today, I’ve decided to put my Thunderbird + Unity integration project on hold while I focus on something a little more dire:

Integrating Thunderbird with the Casio Calculator Watch.

It’s a tough platform, but I’ve already made some progress.  Check it out:

 

The super-extendable Casio Platform

It's your mail! On your watch! In the 80s!

I’ll let you know when the add-on is available.

Getting the RDF Out

As I mentioned last time, I want to extend the Thunderbird address book to support Ubuntu One contacts synchronization.

But there’s a problem:  currently, the address book relies on something called RDF, which prevents me from extending the address books outside of C++.

“So why not just write it in C++?”, I hear you cry!

The answer:  because Thunderbird has been trying to shake RDF like a bad cold.  A developer named Joey Minta officially declared war on RDF in March of 2008.  The campaign to rid Thunderbird of RDF is almost complete.

So I’d hate to damage the war effort by adding more RDF code to Thunderbird.

The solution?  I have to finish what Joey Minta started – at least for the address book.  I have to replace all RDF-dependant code with something better – something extendable.

Then I can get down to work on the Ubuntu One sync.

So saddle up.  We have to hunt this RDF bum down.  For justice.