SyncML server is down again for maintenance

February 1, 2010

Sorry for the inconvenience: it should be back online in a few hours.

Edit: it’s online again.

Synchronization panel added

December 25, 2009

A small tool has been added to picoBeat to help with synchronization: under the Tools menu is now a Synchronization panel that gives a list of existing ties between picoBeat databases and synchronized devices. Double clicking on a tie will give a brief log of the last synchronization operation.

The panel currently list synchronization done with both SyncML and picoBeat Sync for Windows Mobile. Log informations are currently limited but will be progressively expanded to give more and more details and help diagnostic possible synchronization issues.

In other news, Merry Christmas to everyone :)

SyncML improvement: support calendar with tasks added

December 7, 2009

Within picoBeat, tasks and events are considered very different objects with different properties, and are stored in two separate databases. While this is how most phones and PIM software work, there are a few devices out there that consider that tasks and events should be stored and moved around together. This is a problem for synchronization as those phones will send all updates for tasks and events together while picoBeat will expect to synchronize them separately against two distinct database.

To get around this problem picoBeat now has a new virtual database available for synchronization called “caltasks”. It will synchronize both tasks and events at once by presenting what looks like a single database to the phones who work that way.

Why doesn’t SyncML synchronization works?

October 29, 2009

The short answer

This is most often because:

  1. You haven’t supplied the proper database names (spelling mistake or just didn’t change the default ones)
  2. You haven’t supplied the proper user name and passwords (the later is case sensitive)
  3. There is a bug in your device/program or in picoBeat SyncML module. Or possibly both (ugh!).

The long answer

There’s a lot to say about the standards developed by the telecom industry. Somehow, while a cell-phone is just a tiny computer, the telecom guys seem to live on a different planet than the computer guys, and they seem to insist on doing things “their way”.

When it was decided to bring the Internet to cell-phones, HTML would have been an obvious choice. But no, a different standard was built from scratch: WML. WML 1.0 wasn’t really a big success, for many reasons including the fact that Web developers do not like having to learn a whole new markup language, so WML 2.0 tried to correct this by being some limited form of HTML. Similarly, pictures were expected to be stored in a new WBMP format, rather than one of the many existing image format that already exists and are widely supported.

This bring us to SyncML: it’s a synchronization standard by the telecom industry. Two good things about it: it’s built with XML and it’s pretty flexible. Two bad things about it: XML is encoded in a new custom format called WBXML, somewhat negating the advantage of using XML, and it’s way too flexible. This comes from contradicting constrains: making the standard as flexible and open-ended as possible, but making it work on underpowered devices such as entry-level cell phones. As such the standard requires devices to accept informations in many different ways and to be very flexible in exchanging data, which requires complicated programming and a lot of processing power. But at the same time it allows the phone to signal that it has little memory capacity and bandwith. Why would a device capable of processing a complex XML-based protocol be only capable of storing a handful of appointments or processing more than 2,5 Kb at a time is beyond my understanding.

This flexibility is also the reason there’s no standard name for databases (tasks, appointments, contacts, etc.)  in SyncML and why users have to type them in when configuring their cell-phone. This complexity also means a lot of cell-phones have bugs – some of them so bad as to reboot when receiving certain standard-compliant SyncML data. Sadly there are dozens of phone manufacturers and thousands of models out there and it’s impossible to properly test every one of them with picoBeat, so I know for a fact that some phones just won’t work. Things will improve over time and hopefully most devices will work.