Thread: .Mac Sync
View Single Post
Originally Posted by Shawn Wright
Is it really that hard to implement .mac support? I am not a programmer at all so this is a question and not sarcasm. I would think that if Yojimbo or even iGTD use it then it couldn't be that difficult. Am I wrong?
The actual SyncServices mechanism for .Mac is not terribly complicated, no. The trick with sync'ing of any sort is getting the conflict resolution algorithms correct. It takes a *lot* of testing and there are lots of edge cases. Smaller shops sometimes skimp on that, and figure "good-enough" if it works in 90% of the cases.

I believe Omni is the kind of company that wouldn't want to ship it unless it were rock solid in 99% of the cases, which means quite a bit more testing.

In addition, the data model in OF is far more complicated than something like Yojimbo (which I use and love the .Mac syncing, BTW!!). There is so much state captured in tasks and projects. Start to imagine all the cases, and how you'd handle them:

- What happens if you mark a task completed on machine A, change it's context and recurrence fields on machine B, and delete it on machine C, what is the expected output when those machines all try to sync?

- If the machines you are using it on are each in different time zones from each other and from .Mac, how do you manage the date columns for tasks?

- Would you want all preferences also sync'ed, like perspectives, empty projects and contexts, View Bar settings, etc. Or just data? Or maybe a preference for what is kept in sync. Maybe folders, so you could have your work and home projects on your home machine, but just your work projects on your work machine. etc., etc.

Those are just a few things off the top of my head, but I'm sure Omni has a much more comprehensive list of hard questions regarding .Mac sync'ing.

Anyway, that's my fear, but I sure hope they'll prove me wrong!