Thoughts and Stuff

photography and coding and running and bananas

Thesis Redux

I’ve been pretty busy the past half year, and haven’t found time to work on OT. Fortunately, I recently have recovered my workflow and will update my status on OT, as well as a secret project I’ve been kicking around in the back of my head for the last several years. My college physics thesis was a simulation and analysis of a system of close-packed spheres. Specifically, I was looking what crystalline structure arises in the system as the density of spheres increases, which is a small part of the grand question, “How do objects freeze? Continue reading

Google Wave Whitepapers

Google Wave (sadly deprecated) has pioneered a lot of what drives modern-day Google Docs, Slides, etc. in terms of an OT framework – thankfully, the project has led to a series of whitepapers discussing the technologies present in Wave, and even more happily, the original source code was open-sourced.

Sources

  1. Google Wave whitepapers
  2. High-Latency, Low-Bandwidth Windowing in the Jupiter Collaboration System (Nichols 1995)

An Update on dOPT

In the process of implementing Cormack’s correction to the dOPT algorithm, I’ve come across several other papers which provide a more complete background of operational transforms and may be of use in the future. They are listed here for sake of documentation – a review of these papers will be provided once I read them carefully.

Resources

  1. A Calculus for Concurrent Update (Cormack 1995)
  2. Proof of Correctness of Ressel’s adOPTed Algorithm (Lushman and Cormack 2003)
  3. Transformation-Based Concurrency Control in Groupware Systems (Lushman 2002)

Concurrency Control in Groupware Systems

What follows is an overview of a 1989 journal article by Ellis and Gibbs regarding collaborative editing. It is the origin of the use of operational transforms. For me, it is particularly useful as the dOPT algorithm for reconstructing a cohoerent global state is introduced here. The global state, in the case of the concurrent text editor, is the contents of the document. In more complex scenarios, the state can consist of much more ill-defined properties – in the case of Google Docs, the state would consist of not only the document text, but also the style rendered (bold, italic, etc. Continue reading