Mobile Self in Sync - Part 1
This is the first of a series of articles describing my journey to keeping all my personal data synchronized. I think I have finally found a solid way to keep all of my data (Contacts, Events Calendar, To-Do List, Notes) across all of my devices. Of course, my ultimate goal is to get all this data to be synchronized two ways to a centralized location no matter what device or location I make changes from.
So far, I’ve toyed with a couple different solutions, but they all have their flaws:
Outlook/Exchange Server:
Outlook Web Access is bulky, too dependent on IE, and not a great option for mobile devices. This software is great until I throw in a mobile device. I know the newer exchange servers have over the air sync’ing options, but I never liked my smart phone all that much compared to other phones on the market, plus lately, the idea of being tied down to Microsoft proprietary stuff doesn’t sit well with me.
Gmail/Google Calendar:
I guess I shouldn’t call this a ‘organizational solution’, but it is what I have been using for awhile now. It’s been ‘OK’ to use, as having google store all my info on their servers and strictly using web browsers to access it eliminates the need for ’synchronization’ here. Again, when you throw a mobile device into the mix, things become ugly.
You can use gmail in a wap browser with good results, but google calendar has no wap browsing support, and the SMS message system it uses is a bit archaic for my tastes (plus you can’t send sms’s to GVENT from canada yet). If you use your calendar a lot, the current google calendar mobile offerings leave a LOT to be desired.
Finally, google calendar has no form of a To-Do list, Notes, or really any sort of Contacts synchronization. Though, I’ll admit that I myself do not sync my gmail contacts, as gmail adds contacts automatically too easily for me. My phonebook would be far too cluttered if I sync’d all the contacts in my gmail.
I’ve been sort of living without all those things just because I like google’s web interface for gmail and calendar so much! But really, it alone is a much less complete setup than Outlook.
The Solution
Ok, so the above cases kinda suck. They don’t really do what I want or how I want. Now, I recently got a new Sony Ericsson w810i and dumped my smart phone. I love the phone’s interface, it’s fast, slick, etc., and I’ll post another entry in a couple days about the phone itself, but this post is about my data, so let’s stay on topic.
My solution to these problems has 4 pieces of the puzzle so far. These pieces include 3 devices, and a centralized SyncML server for storing the data in one place. I have a Computer, a Cell Phone, and an iPod (why not?) for my devices. The 4th piece of the puzzle, the SyncML server is provided by ‘ScheduleWorld’.
Now, I want all of these devices to be able to sync with the data two ways (save the ipod, which should be a read sync only since it can’t ‘create’ new data to sync two ways). We’ll use ScheduleWorld to be our data store for everything to synchronize with.
The key here is that I don’t want to have any of my devices needing to synchronize with another device or application which acts as a proxy to sync it with the SyncML server. I’ve seen other setups for instance that you must sync your pocketpc device first with outlook, which then sync’s with the server. This method presents problems and makes the pocketpc device dependent on outlook for it’s data, and makes the sync server depend on outlook to get new data from the pocketpc. This is ugly and asking for problems. I want every device to sync directly with the server, end of story!
So Here is the solution. First a diagram to understand how everything fits together, then some explanation of it:

1. Any Computer
Ok, so the computer is the easy one. I built myself a little program called ‘GStuff’ some time ago which has basically two toolbar items (one for gmail, one for google calendar). All it does is embed internet explorer windows into the app so I have a standalone window/application for checking my mail and calendar. This way I always have it on those pages, and it minimizes to my system tray easily.

You don’t have to do this, but either way this device is easy since it is just a website to go to, so you don’t really ever ’sync’ data with the computers, it’s always on google’s servers.
As for your contacts, to-do list, and notes, well, right now the ScheduleWorld.com interface is a little bit lacking right now, but as it improves, you can probably check/edit these parts from that interface (you can check/edit your contacts and calendar from here too for that matter). Let’s hope this interface improves!
2. Mobile Device with SyncML - My Cell Phone
Here’s the tough one. I struggled a lot with figuring out how to keep my last phone (Motorola MPX220 Smart Phone) sync’d with google calendar mainly. I used to have a scenerio that i wanted to avoid this time where the phone would sync with outlook which would sync with the server. This was ugly, and I wanted my phone this time to sync directly with the server. Moreover, I wanted my phone’s built in calendar, contacts, to-do list, and notes functionality to be used instead of some third party java app.
With ScheduleWorld, I’m able to sync directly with the server using a common protocol called SyncML which many newer phones directly support. With this I am able to achieve 2-way sync over the air with my cell phone.
3. Other SyncML Devices - iPod, Outlook, Palm, PocketPC, Blackberry, Evolution Mail, etc.
Ok, here’s the icing on the cake. There’s this wonderful company called Funambol which makes several SyncML ‘connectors’ for various devices. They make one for the iPod, Outlook, Palm, PocketPC, Blackberry, etc. These little gems allow you to connect these applications or devices with a SyncML server which is what ScheduleWorld essentially is. This means we can synchronize even more stuff with ScheduleWorld!
Also, it doesn’t end here. Since SyncML is an open standard, more applications have implemented it. You can sync with Evolution Mail, there is some talk of a thunderbird plugin supporting it, etc. The standard keeps gaining momentum, and I think we will continue to see more devices and applications support it.
4. ScheduleWorld SyncML Server
This is the big piece of the puzzle for me. Essentially, it is a SyncML server. Now, this is nothing new, SyncML servers have been around for awhile, but the difference with this one is that it can keep in sync with your Google Calendar behind the scenes, 2-ways! So, what this does for you is eliminate the need for you to find a way to sync google calendar directly with all your devices, it just happens for you!
You’ll want to go sign up for a new account at http://www.scheduleworld.com/ and hook it up with your google calendar. The interface to the site lacks a bit, but you won’t really need to use it after you have everything setup.
This really is the most important piece of this whole puzzle if you are truly intent on using google calendar in your setup at some point. You can think of Google as just another Device that sync’s directly with the sync server, just like your cell phone would.
Pitfalls and Shortcomings, Room for Improvement:
Ok, so I lied a little bit when I said I didn’t want to allow any devices to NOT sync directly with the server. Since I’m using google calendar, the computer technically syncs first with Google Calendar, which in turn synchronizes with ScheduleWorld. It’s unfortunate, but I don’t quite qualify this as indirect syncing, and I’ll let it slide in this case.
Another shortcoming is that there is no single interface to access your To-Do Lists and Notes on your computer. You can use ScheduleWorld’s interface for this, or you could use Outlook with Funambol’s connector, but that would defeat the whole purpose in the first place. I’m currently investigating the possibility of helping ScheduleWorld’s creator make a better interface to his site… Perhaps he can even make a separate page for Todo Lists and Notes to look like googe’s interface so that I may add them as toolbar icons to my ‘GStuff’ program discussed earlier. This would be ideal.
What’s Next?
Next I look at my mobile phone in more detail. I want to tell you about my experiences with it (it’s only been 2 days), how I’ve customized it, and I also have a solution for making the built in messenger program able to communicate with msn/live messenger contacts.
Links:
Here is a quick list of links to things mentioned in the article:
http://www.funambol.com/opensource/downloads.html
http://www.scheduleworld.com
http://en.wikipedia.org/wiki/SyncML
