Sync4j is an opensource Java implementation of the SyncML protocol, which is used to synchronise mobile-user-interesting information such as contact details (addressbooks), bookmarks and calendars. SyncML is used by and supported in a number of different products, mostly synchronising clients for PDAs and mobile phones, and is notably lacking in some other high-profile products (Microosft Outlook and Exchange). This usually means that each particular PDA or phone has it’s own Outlook-like information store which may or may not synchronise with Outlook.
I find this particularly annoying.
As an actively mobile user (and aren’t we all?) I want to be able to take my information store with me wherever I go. I want to be able to have one addressbook, one calendar, and one set of bookmarks. If I upgrade my phone (or buy a new toy) I don’t want to have to screw around with syncs and merges and all that guff. I want access to my phonebook if I’m in an Internet café. I don’t want to re-enter information ever again.
Most importantly, I don’t want to have to install fifteen clients and manually kick of the synchronisation process. Automated until conflicts require attention, I want to be able to set my sync and never look at it again.
Nor am I alone in feeling this way. My friend Warrick and I, for example, have discussed this at length over a refreshing ale or three. And since nobody else is going to write this for us, we will have to do it — so let’s start a FOSS project!
I’m predominantly a Java developer, hence the reference to Sync4j at the start of this entry, so at least the first iteration of the server and some client tools will be in Java. The way I see it, we will need to have a central server, a web-interface to that server, and some client-side synchronise plugins and/or services (actually a single service with its own plugins for each type of client-side datastore: Outlook, Evolution, Dashboard and different phones and PDAs).
The question, then, is where do we start? Looking at some other opensource projects, I’d probably say that the first thing to do is cut some code (after the initial design stages, which will happen at the aforementioned distribution center for refreshing ales), then register a Sourceforge project.
Hey, if anyone out there stumbles across this and has some advice, leave a comment or just email me? That’d be grand.