Replaying history

In his writeup on Google Wave, Dare Obasanjo says:

I’m sure there are thousands of Web developers out there right now asking themselves “would my app be better if users could see each others’ edits in real time?”,”should we add a playback feature to our service as well” [ed note – wikipedia could really use this] and “why don’t we support seamless drag and drop in our application?”. All inspired by their exposure to Google Wave.

Indeed, every application that preserves a change history needs playback. Wikipedia, as Dare notes, is a prime candidate. Back in 2006, I made this LazyWeb request:

Animation is the best way to visualize the flow of change, as I discovered when I made my Wikipedia screencast. For Wikipedia, and indeed for all kinds of living documents supported by revision history and diff tools, I can imagine being able to isolate a paragraph or section and autogenerate the screencast of its evolution. I can even imagine the content of such visualizations being considered not just cutting-room floor debris but, rather, part of the “real” document, like footnotes.

Andy Baio responded by sponsoring a contest for a tool that would do just that. And I made a screencast demonstrating Dan Phiffer’s winning entry.

That script is unavailable at the moment because, ironically, Dan’s server reports:

Oh noes! I got HACK*D. I’m sifting through my files and should restore things back to normal soon.

In any case, it probably wasn’t practical for routine use. Fetching every revision on the fly really hammers Wikipedia. What’s really needed — again, not just for Wikipedia but everywhere — is a general way to query change history, and return a stream of versions and differences.

One way of doing the latter would be to use FeedSync, an open extension to RSS/Atom that supports synchronization in Live Mesh. Another would be to use Google’s Wave protocol. Because FeedSync deals with lists of items, which can be arbitrary chunks of content, whereas Wave deals with lists of document-mutation operations, like delete-element and start-annotation, it seems to me that FeedSync is more general, albeit less immediately useful for collaborative editing.

To explain why generality matters, consider change animation in a very different domain: software configuration. My wife, for example, sometimes changes her settings — in Word or Firefox — in ways that cause problems. If these apps persisted their settings to Live Mesh, as they could and arguably should, I’d be able to debug a mishap locally or remotely. But ideally, the change visualization would be sufficiently user-friendly so that she’d have a shot at figuring it out for herself.

PS: Speaking of history and restoration, I’ve been feeling like an amnesiac ever since my InfoWorld archive went dark. So in spare moments I’ve been reconstructing and republishing it. I’ll have the text of all the old blog entries up soon. And I’ve been restoring the screencasts as well. I’m keeping track of my progress at

Posted in .

5 thoughts on “Replaying history

  1. I’ve been thinking about this too, in the context of software modeling. The approach we are using right now involves Git, which also supports distributed editing. What is the intersection between a feed and a set of git ids? One thing I can think of would be non-linearity in Git vs. (mostly) linear changes in Wikipedia.

  2. > What is the intersection between a feed
    > and a set of git ids?

    I’ve got a few things up at github, but there’s no network of activity surrounding them, so I don’t yet have a feel for the dynamics.

    But based on the description of the network graph, it sounds like there would have to be many feeds, each from the perspective of one id active in the repository?

  3. Martin and Fernanda are wizards, and I love everything they do.

    Thanks for reminding me about History Flow.

    I’d seen the images before. Now I’m wondering about the tool. Was it ever released?

    1. I don’t really know much beyond what that site says. I saw Martin speak once a few years back and I think he said something about History Flow never being released because it wasn’t built to access data from the live Wikipedia site or something along those lines.

      I’d be very happy to see them release it though, or better yet the source code. Not sure how IBM would feel about that.

Leave a Reply