Skip to content
This repository has been archived by the owner on May 8, 2020. It is now read-only.

Nice work! #1

Open
ryanstout opened this issue Oct 14, 2015 · 6 comments
Open

Nice work! #1

ryanstout opened this issue Oct 14, 2015 · 6 comments

Comments

@ryanstout
Copy link

This looks great, I've been looking for a decent OT implementation to possibly integrate into a web framework I'm working on (voltframework) I'm curious what the status of this is? Is this still a work in progress? Are you using it on anything?

Thanks!

@ball-hayden
Copy link
Owner

Thanks!

As mentioned in the README, I've currently only ported TextOperation from OT.js. That is complete, and (as far as my testing so far has gone) seems to be behaving correctly.

I would happily accept pull requests for any of the other operations that are defined by OT.js. Unfortunately, I expect I won't have time to port any that don't line up with my requirements.

I'm a final year student at the University of Edinburgh, and I've put this together as part of my honours project (which concerns collaborative code editing).

Building on this library I have created Collaborate, a gem using ActionCable to allow collaborative editing of a text document. As you may guess based on the lack of a README or any meaningful documentation, that is still very much a work in progress (although, if you are interested, the dummy app should be functional at the moment). I will aim to write some sort of introduction in the next day or so.

I hope this is helpful - I'd briefly looked at Volt while doing some preliminary research in this area.

@ryanstout
Copy link
Author

@ball-hayden thanks for the info. I'll take a look at Collaborate. A quick intro should be great. I read through the one on OT.js, and have read a few OT papers, so for me its more about how to hook it up. I'm sure I could put it together from the rails project if needed, but an intro would be helpful. Thanks.

@ball-hayden
Copy link
Owner

Apologies for the delay. I've added a README to Collaborate which I think explains the basic setup.

@ryanstout
Copy link
Author

Thanks a bunch. The way this works is to broadcast the events to every other client, then apply right?

@ball-hayden
Copy link
Owner

Not quite - the server transforms and applies an incoming operation, and then broadcasts the transformed operation to all other clients.

The idea is based around https://github.com/Operational-Transformation/ot.js/blob/master/lib/server.js, which the author has visualized: https://operational-transformation.github.io/visualization.html

@ryanstout
Copy link
Author

Thanks. I thought the server had to do something. Its been a while since
I read any OT papers. :-)

On Tue, Oct 20, 2015 at 2:23 PM, Hayden Ball [email protected]
wrote:

Not quite - the server transforms and applies an incoming operation, and
then broadcasts the transformed operation to all other clients.

The idea is based around
https://github.com/Operational-Transformation/ot.js/blob/master/lib/server.js,
which the author has visualized:
https://operational-transformation.github.io/visualization.html


Reply to this email directly or view it on GitHub
#1 (comment).

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants