Flying Meat
FS • FlyStash & Boomerang: The Birth of Boomerang
Make sure to check out the new wiki located at http://flyingmeat.com/wikka/. This one will eventually be retired.

The Birth of Boomerang.

So here's the story on how Boomerang and FlyStash came to be, and the current state of things as of August 4, 2005.

A long, long time ago VoodooPad 1.1 introduced a new feature known as "Remote Editing". This feature would allow you to connect to a custom built wiki server known as "vpwiki", and allow you to click through the pages, edit, and save back to the server. These pages were also editable from the web.

However, there was one very large problem- VoodooPad uses rich text to store it's contents, but web-browsers have no way to view and edit this format- so when VoodooPad saved to the server it sent two versions of the page- one in rich text format, and one in plain text format (so web visitors could see the page). If someone edited a page from the web, then the rich text version was thrown away because it was now out of date. And there goes all the fancy bolding and highlighting, and embedded images, files, and the text layout you put together. Bummer.

Alot of work was put into VoodooPad 2.0 improve the situation. VoodooPad moved to using plugins to talk to the wiki server, so in theory a plugin could be made to talk to a Wikimedia wiki, Twiki, or any other wiki providing someone was willing to do the work to write the plugin. And now instead of sending two formats to the server, VoodooPad sent three- rich text, plain text, and a in-between format which could be thought of as "textile lite". VoodooPad (and now vpwiki) also supported the uploading of attachments- so if a VoodooPad page had an image displaying in it, you could now also see it from the web.

But some basic problems still remained. All the rich text formatting was still lost if edited from the web, multiple people working on the same page at the same time would be overwriting each other's work, and it just wasn't very a smooth experience.

Some major features that were missing were things like conflict resolution, having a local copy of the contents for offline editing and viewing, syncing, security, and basic account management.

And besides not having all the features it needed, the remote editing api was actually holding VoodooPad back from evolving on it's own. Since so much was shared in the code between the two editing modes (local vs. remote) design decisions were made that crippled the way VoodooPad worked when just editing on regular documents. That sucked.

So the (very hard) decision was made to split the remote editing out of VoodooPad 2.1, and put it in a separate application. And thus Boomerang was made, and vpwiki was redesigned and reborn as "flystash".

I'll be honest and say not as much work has gone into Boomerang as I'd like, which is why it isn't talked about much and why it is still considered a "research project" (but it's a project that I'm just dying to do.). In it's current state however, it is still much better than what was provided in VoodooPad for remote editing. Current features include authentication, http gzip compression, offline editing, syncing, and conflict resolution. It still obviously has a long way to go, but it's a start.