Open vinipsmaker opened 9 years ago
That's a really interesting read! If you haven't already seen it, you might be interested in the transaction log system we're using for undo/redo support. @pythonesque had some really interesting ideas on using transaction semantics for all editing operations, which he wrote up in #52.
Do you know of any open source projects using a system like this?
Oh, I found the Google Drive/Docs links about Operational Transformation:
The Wave protocol has some extensions to the Operation Transformation algorithm. However, checking the documentation, they see more important in the context of network-facing applications: http://www.waveprotocol.org/whitepapers/operational-transform
Do you know of any open source projects using a system like this?
Google Wave is open source: http://incubator.apache.org/projects/wave.html
And here's a lib from an ex-Google wave engineer: http://sharejs.org/
The opencoweb framework also implements OT: http://opencoweb.org/ocwdocs/intro/openg.html
CRDTs are a fantastic approach for some problems (assuming you can find commuting operations). There's also been very useful work on symmetric lenses: http://www.cis.upenn.edu/~bcpierce/papers/symmetric.pdf.
Operational Transformation might help to implement collaborative features.
http://dl.acm.org/citation.cfm?id=66926.66963&coll=portal&dl=ACM