

Mozilla TowTruck – real-time collaboration on any site - aeontech
https://towtruck.mozillalabs.com/

======
human_error
I feel like Mozilla is currently what Google was once upon a time (around
2005).

~~~
srobertson
Well, sure like Google 2005 they don't have to make sure every idea is a
multi-billion dollar enterprise.

------
general_failure
Mozilla are on a roll, aren't they :)

~~~
smosher
Ever since their CTO was outed as a necromancer they must have run with the
army of undead programmers thing.

A lot of the recent stuff was in the wings, but the announcements have been
coming incredibly fast lately.

~~~
ndesaulniers
WAT?

------
pie
I am very curious to see what happens with this issue:
<https://github.com/mozilla/towtruck/issues/5>

Given Mozilla's profile and resources, maybe they'll come up with a novel
solution!

~~~
ivan_ah
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).

One good approach I was able to understand is Neil Fraser's Differential Sync
<http://neil.fraser.name/writing/sync/eng047-fraser.pdf>

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/>)

~~~
pie
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.

~~~
nateps
<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?

------
meltzerj
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.

------
rattray
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.

~~~
ianb
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
;)

~~~
rattray
haha fair points! Best of luck; exciting work!

------
zaptheimpaler
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.

------
combataircraft
Dear Mozilla: Please save people from Gmail instead of building this kind of
apps.

~~~
nicholasreed
Save people from Gmail in what way? Didn't Mozilla already build Thunderbird?

~~~
jlmendezbonini
I think she/he means a hosted email replacement. At least that's what I'm
hoping for.

~~~
MatthewPhillips
Fastmail.fm. Even updated their web app recently and it is, in my opinion
better than Gmail's.

~~~
abrowne
As a light email user, I wish I could use my own domain without jumping up to
the $40/year plan. (Yeah, it's only $3.33/month, but still.)

Hmm, it looks like I could do a "family" plan with one user for $15/year with
custom domain.

~~~
thelibrarian
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.

------
Tautologistics
Here's a bookmarklet:

    
    
      javascript:(function () { var script = document.createElement('script'); script.onload = function () { TowTruck(); }; script.src = 'https://towtruck.mozillalabs.com/towtruck.js'; document.getElementsByTagName('body')[0].appendChild(script); })();

~~~
ianb
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).

------
marizmelo
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.

~~~
jwandborg
But without plugins.

~~~
MDCore
Well... include these snippets of code on your website means it's a plugin for
your site, instead of a plugin for your browser.

~~~
Samuel_Michon
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.

------
toddmorey
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?

~~~
ianb
Yes, Firefox/Chrome only for now:
<https://github.com/mozilla/towtruck/wiki/Supported-Browsers>

------
michaelmartin
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.

------
mbesto
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?

------
cromwellian
Didn't google release something similar a few weeks ago?

~~~
carey
That would be the Google Drive Realtime API,
<https://developers.google.com/drive/realtime/>, discussed at
<https://news.ycombinator.com/item?id=5403021>. I don’t know enough about
either of them to know how they compare.

Edit: Actually, they’re really different things.

