This evening I completed a new bit of code which has been uploaded to the bongo-web projects; it’s a Z-Push back-end and is only barely functional at this point: however, it works well enough that on my HTC Desire phone I can set up an ActiveSync account, it authenticates and synchronises contacts into my Bongo. To make it usable for just contacts will take a little bit more work, because at the moment it’s not storing them in the Bongo-native format, and it’s difficult to test that syncing is actually working without so more clients – then after that we get to do the same dance again with the calendar (although at that point, 60% or so of the code needed would have been written).

However, even though it’s are the “barely walking” stage it is actually doing useful things, so hooray! If nothing else, I already have a system to back-up my phone contacts working, and in maybe another week or something I’ll have something pretty awesomely functional which I can take on the road. Plus there’s no reason why shared contacts/etc. won’t be sync-able, which is even more awesome.

But there is a black lining to this cloud. Z-Push, although it seems to be reasonably well-developed and commercially backed software, has a problem: ActiveSync is pretty heavily patented in the US, and it requires a license to develop software which uses the protocol. Hence Google buying a license for the protocol to cover Android 2.2 and above, where the support will be native.

This doesn’t pose much of a problem for us as a project: there’s really nothing in the back-end as designed which would be infringing on anything except good taste. However, it’s also totally useless without Z-Push, and as it stands it looks unlikely that Z-Push will be entirely “clean” for USA-based users and developers to try any time soon.

I’ve really been dabbling with this to scratch the personal itch of being able to sync contacts and events on my phone, and so far it looks like that will be straightforward. I can’t help feeling a bit guilty though…