Gmail Contact Sync

Google released the API for contacts. How long before someone comes up with a Thunderbird plugin to sync up with it? Any takers?

I’d love to know why they decided the API route, rather than use LDAP. It can be secured using TLS, and require a bind DN and bind password. If they did it that way, most email clients would be compatible right out of the gate.

There’s also Google Calendar Sync, but only supports Outlook. Still no CalDAV.

I’m slightly disappointed, but at least with an API thinks are workable. Standards would still be best.

Thunderbird Sync With iPhone/iPod touch

I’ve gotten quite a few emails over the past several months from people who want to know how to sync their iPhone (or iPod touch) with Thunderbird. Quite a few are disappointed to find mozPod doesn’t support these newer devices. It’s not quite my fault as I’ve yet to see any indication that it’s practical to implement.

I should note I do not own either device, but from what I’ve read, it doesn’t matter. Hopefully by 2nd or 3rd generation when I’m on the market Apple will have come to their senses.

The problem is that Apple hasn’t provided a good method for anyone to provide sync with the iPod. Even on older devices it wasn’t pretty, but it was workable. There is no real sync API outside of iSync, which is Mac only and not a public API. Instead what was done is mount the iPod file system and send it your data. While not awesome, this has been workable and provided many Thunderbird users with mobile data.

On the iPhone and iPod touch it’s not even possible to easily mount the filesystem. The best method I’ve heard of is hacking it so you can mount your phone using sshfs with something like FUSE. I know myself and some Linux and Mac users (horray for MacFUSE!) could manage, but I wouldn’t dare try to explain to someone how to do that. From what I’ve read the iPhone manages data using SQLite 3. Therefore it seems possible to use mozStorage to interface with it. Perhaps someone with more experience with mozStorage and db’s generated outside mozStorage would know better about any potential compatibility issues.

Calendar:
/var/root/Library/Calendar/Calendar.sqlitedb

Address BookL
/var/root/Library/AddressBook/AddressBook.sqlitedb
/var/root/Library/AddressBook/AddressBookImages.sqlitedb

Seems to me Apple could turn this into an API pretty easily by re-creating the old iPod style USB storage device mounting and give us access to these files.

In my mind the ideal implementation would be for Apple to just have a iTunes embed a mini web server locally accessible (obviously) and create a REST api to work with all data on the device. That would open up a whole new way of interacting with the device. Essentially you would interact with 127.0.0.1:[port#] and GET/POST your way through the interface. Perfect for Calendar, Address Book, Notes, or whatever else Apple comes up with.

To get a vCard for someone:

  GET /contact/vcard/?last_name=Jones HTTP/1.1
  Host: localhost
  User-Agent: mozPod/0.3

vcard can also be done as xml (ooh DOM parsing for iPhone!), so there’s lots of possibilities.

To add a contact:

  POST /contact/add/ HTTP/1.1
  Host: localhost
  User-Agent: mozPod/0.3
  Content-Length: 450
  Content-Type: application/x-www-form-urlencoded

  fname=John&lname=Doe&address=1%20Large%20Road...

Though it would likely make sense to go with a more vcard like naming structure.

For calendar iCalendar or vCalendar would make most sense:

 GET /calendar/ical/?start=1-1-1970&end=1-19-2038 HTTP/1.1
  Host: localhost
  User-Agent: mozPod/0.3

You get the idea. Dead simple access. You could then use something likecurl to manipulate the iPhone’s address book via your existing application. It would be only accessible locally, so it’s as secure as your system. It would actually make things more secure since it would be one less reason for tinkering on the actual device, and it would open up a whole new market of iPod/iPhone software to go with all those accessories that have helped boost Apple’s market share. SyncML is cool, but SyncML is also a beast and reminds me of SOAP, WSDL etc.

In Search Of The Missing Sync?

I had another silly thought this evening, and thought I’d just mention it for anyone interested. I’ve been reading through some bugs, and wiki documents on the state of synchronization of various devices with Mozilla based products.

It would be great to have a generic XPCOM wrapper for interacting with Bluetooth support on various platforms (yes, you read that right, and trust me it’s not that crazy). It would need to have the ability to detect what Bluetooth implementation is used by the user for Windows (Broadcom/WIDCOMM vs. Windows XP), Apple’s Bluetooth implementation and of course Linux (I believe it’s Bluez, but I’m not to familiar with Bluetooth on Linux). Note that this does not mean having Mozilla drivers for Bluetooth hardware. Just an easy way for developers to interact with Bluetooth without the concept of platform specific software.

With projects like Lightning, Thunderbird maturing, and MiniMo it’s important to be able to interact with other devices for the sake of forward progress, and this may prove to be the best solution for many cases.

There are several approaches to device sync from what I’ve seen from things that are device specific likePalmSync to the more generic iSync, but the problem that comes up is that it’s a lot of work for relatively limited devices. For example, even with iSync, as robust as it is, your still limited in devices it supports, and it’s Mac only (leaving Windows and Linux users in the cold). Others still require commercial software (Palm) to work with iSync. So for all the work, all Windows users have no benefit from iSync support. For all the effort on PalmSync for Windows done thus far (and that’s a fair amount of effort), no Mac users have been able to benefit thus far. SyncML has some potential, but the lack of support thus far still leaves many without any support. Anyone without a newer device likely won’t ever have SyncML support, so again the problem is a limited device set. And still not all newer devices support SyncML, and it could even depend on your service provider, as they sometimes disable features.

The advantage of Bluetooth is standardization. Lets face it, love it or hate it Bluetooth is becoming more and more available. More and more portable devices are shipping with it. By having support for it, Mozilla products gain compatibility with devices as they come out. It also would provide good device support over multiple platforms. For example, Thunderbird’s Address Book could have a small database of device types (phone/PDA models) and the format of an address book they support (such as vCard) or Calendar (vCalendar or iCal).

It looks like Synchronization Profile (SYNC) and File Transfer Profile (FTP) would be necessary to get most devices going (seems not all support SYNC, so supporting FTP would allow you to at least dump your Address Book or just an Address Book card from time to time onto your phone.

If included with Firefox, there would be an easy way for product developers, and extension developers to add a “send with Bluetooth” menu option. Save snippets of a web page, an hCard, the possibilities are endless.

This wouldn’t work for every device (such as the iPod thus far which is Bluetooth free, but I’ve got you covered on that ;-)), but it’s a big gain with supporting 1 protocol.

I could even see this as an interesting approach to keeping bookmarks in sync. Perhaps store your bookmark file on your cell phone… well you get the picture, mobile devices are without question the future, the question we need to ask is, how do we transport data back and forth?

It doesn’t look like something I’m personally up to implementing (I’m not very strong when it comes to this stuff), but it would be pretty cool to see someone take on. The key to this is that it needs to support SYNC and FTP, as well as be as multi-platform as possible. That’s not an easy task, but the possibilities are rather impressive.

I’m curious what others think of such an idea. I’m not saying it’s 100% workable, or warrantied for any particular use. Just some idea in my head I felt like putting into text and sending down the series of tubes we call the internet.

Google Calendar

Google Calendar seems to have now launched. Overall it’s a solid ajax friendly web app. Very good user interface, fast, sleek, all the typical stuff you’d expect in a Google service.

Though, when will we see “Google Sync” so we can use it with our client side program, PDA, Cell Phone, etc? Seems like until then, it’s just a toy. I don’t know about anyone else, but at least 50% of the time I use a calendar… it’s not in front of a computer.

Palm OS Address Program

Does Palm OS 5 support “Contacts” or “Address” as the address book program?

From how I see it, all but 3 models, use Address. But I have yet to see this in writing beyond a reasonable doubt (I just made my conclusion based on my findings). Can anyone help David and myself out here with some info?

I personally wish Palm Source would bring Contacts to Palm OS 4/5, and update the CDK to support it. Would make development a bit easier, and great functionality.

Not to mention, seeing a product supported for an extended period of time, makes one more inclinded to consider the brand in the future. Apple supports their computers very well “officially” for years. A great deal. Where most PC manufacturers don’t support PC’s after a year or two. When the XP upgrades came out, most older PC’s (over a year), weren’t officially “supported” by their manufacturer under XP. You were at your own risk if you upgraded. When I see how long my Mac can go with up to date software, it’s reassuring. Years later, still have current software, and completely supported hardware.

Enough of my rant about supporting products. What’s the verdict on Palm OS’s address program? What’s the standard?

I could use some Palm Support in Thunderbird

The one thing keeping me from using Thunderbird as my default mail client (and allowing Firebird to be my Browser) is the lack of Palm Sync Support.

I wish someone would build it as an extension or something.

As soon as I get it… I’m in. Testing full time, on a database containing thousands of emails.

I wish someone with the know-how to fix it would do so. Getting it going would really be a plus.