|
|
|
|
|
by jahfer
2604 days ago
|
|
A number of years back, I wrote an OT implementation in Clojure/ClojureScript as a hobby project [1] and learned a lot along the way. I even extracting out the core client/server implementations to their own package [2]. It's an incredibly fun topic, and one that's also really challenging. It also gave me first-hand experience with fuzz-testing where I could simulate all kinds of concurrent-edit conflicts and ensure both clients came out with the same end-result. While the end client/server implementations are working, it was a lot more effort than I anticipated building a full-fledged editor on top. I was too stubborn at the time to attempt to integrate with existing RTEs though, so the most notable part of the project was the core lib, not the end product. For those interested in implementing it for themselves, I can't recommend this piece [3] by @djspiewak enough. [1] https://github.com/jahfer/ot
[2] https://github.com/jahfer/othello
[3] http://www.codecommit.com/blog/java/understanding-and-applyi... |
|
http://archagon.net/blog/2018/03/24/data-laced-with-history/