Metamorphosis

Published
2016-09-04
Tagged

Hello folks! Do you use omniboard, my sparkling-fresh ruby-only program that pushes your Omnifocus database to an HTML-styled Kanban board? If so, and if you keep it up-to-date, you may have noticed some hiccups recently.

In with the new

OmniGroup recently announced that they would be encrypting server-side documents held on their Omni Sync Server, which is awesome! Stuff should be encrypted! Encryption is good. Of course, for the hobbyist programmer with people using their tools, encryption means yet another layer between their program and usefulness, and a lot more spots where things can get wrong.

Thankfully, this encryption only applies to server-side databases - your local copy of the OmniFocus database is still accessible to you without having to trust a somewhat hacked-together version of AESWRAP coded by someone who stopped taking Comp. Sci courses when the memory allocation got tricky.1

However. OmniGroup did take this opportunity to also spruce up the way in which patches are applied to OmniFocus documents. If you’ve never explored the depths of a .ofocus file: each file consists of a base document and a series of XML “patches” applied to it as updates. In the past, an update used to be a complete read-out of the task, project, context, what-have-you as it stood post-edit, so (for example) if you changed a project’s name, the update would still list the start and end dates, flagged status, note, etc. etc.

Now, patches are a lot leaner, showing only the variables that have changed. That makes a lot of sense! It also means that if you’re using OmniFocus >2.6.1 you may spot projects that lose their names, unsorted folders, or all sorts of chaos in Omniboard. As of the latest release of Rubyfocus (the library which Omniboard uses), this should all be fixed (knock on wood).

But also in with the old?

I expect that these changes may slightly break Omniboard if your database is old (i.e. pre-OF2.6.1). At this stage, I’d rather somewhat-break old OF databases, rather than completely break new ones. I’m hoping that in the next update, I’ll have a version that won’t break either!

If you’re running Omnifocus’ old database, and you notice problems, you can help. Create an issue on the Rubyfocus repo, and let me know how it’s breaking. The more info I have, the better I can fix things.


  1. That’s me I’m referring to there.