While OTs (there are several variants) are a promising approach for distributed authoring, I think the complexity of implementing them is still prohibitive. Surely there is a better way...
I have been reading papers on this looking for a "clean" way to solve this (in the context of packet loss, latency, etc).
There are other approaches out there. One example which uses character based changes and is worth checking out is here:
PAPER wikisym.org/ws2010/tiki-download_wiki_attachment.php?attId=15
CODE https://github.com/gritzko/ctre
I feel like it is time someone solved this collab. editing thing once and for all and shared the code with everyone. (Firepad? https://github.com/firebase/firepad/)
I wrote a simulator to help me understand Differential Sync. The nice part about DS unlike OT is that you can still work offline and sync later. Here is the simulator:
Yup, I've actually read all those papers, and then some. I think OT is often misunderstood and poorly documented, and really needs a solid go-to library. (Along with clear, accessible documentation.)
ShareJS and "Operational-Transformation" (used by Firepad) are decent, but in my opinion aren't general enough and may even have some algorithmic flaws.
And yes, it's time this was solved, and it wasn't necessary to re-implement the basics for every collaborative project.
http://sharejs.org/ is in use for a number of production sites, and we've had users report that it is quite reliable. How would you like to see it further generalized?
OT works naturally with linear data structures, but is tougher to use correctly with more complex data, which Mozilla seems to have here with Towtruck.
We provide a similar service here at Firefly: http://usefirefly.com/ Except our stuff is definitely production-grade software, works across all browsers, and supports dynamic DOM changes.
Good to see some big names taking their own spin on co-browsing.
Interesting. It seems this may be one of Mozilla's first(?) forays into a potentially paid service: hosted TowTruck accounts.
Since it runs on a central server, that server will either be Mozilla's or yours. I know I don't want to deal with that hassle -- I'd much rather pay someone else to run the service -- and I can't imagine Mozilla's going to do it for free at scale.
Mozilla hasn't yet pulled a Reader, as far as I know, but I would be worried about their dedication to a hosted service like this.
The server is super-simple, it just relays messages between the clients, it doesn't interpret or change messages at all. We're keeping the server simple so that we can do things like replace it with WebRTC data channels, or... just basically keep our options open. It's also great for development or freezing – since the changes are almost exclusively in the client there's no special coordination you have to do to switch versions, you just make a copy of the client code.
I'm guessing at some point we'll have to make the server a little more sophisticated, like maybe for authorization. But maybe not! We'll try our best to find other ways.
Also of course it's completely open source, so we can't actually pull a Reader ;)
Mozilla is already running Persona free at scale. If they let WebRTC do most the heavy lifting I don't see why they would have any issues running TowTruck free at scale.
I made a (much shittier, slightly different) version of this for a hackathon a while ago as a chrome extension! Basically, it lets people go through a webpage and talk about it together, or let one person "present" a webpage to others. The element the presenter is hovering over is highlighted to all others, they automatically follow his/her scrolling and navigation (to other pages), you can annotate with stickies on a page and it has a chatbox.
Yes, and you can actually have multiple domains - one primary one, and set up aliases with any others. They also host Jabber on your own domain with Family and Business accounts.
There's also an Addon (https://github.com/mozilla/towtruck/wiki/Addon) which is basically equivalent to a bookmarklet like this where you activate the bookmarklet every time you load a new page. It's only intended to trying TowTruck out (like the bookmarklet).
I worked for a company that did this years ago as a commercial tool. Also the solution worked on IE8+ with plugins for chrome and FF. Nice that Mozilla is doing the same.
Sorry. I should had explained better. That company solution didn't need plugins to work. Plugins were just an addition to the solution. And the solution also works on any mobile device with JavaScript. Funny that the company solutions is called "Cobrowse".
Which makes a major difference if you plan to use it on mobile devices, or on desktops with no admin rights (read: office use). Also: one less thing to explain to clients.
Looks like it uses WebRTC, at least for audio and avatars. The state of the DOM as it changes is handled elsewhere. Is this FF / Chrome only at the moment?
Really like the mention of audio/video integration coming soon.
Likely not the market they really had in mind, but this could be an awesome extension to forums. Definitely an upgrade on the standard chatbox so many are still stuck with, and it's great that you don't need to give out personal details to start a call or private IM.
The killer feature here is "Real-time authoring" but this still doesn't exist for virtually any web application, like PHP, Rails, etc. without refreshing and gets even worse with compiled languages/frameworks such as Java/.NET/etc.
So, is this aimed solely as a mockup collaboration tool?