
Etherpad Shows Google Docs How It’s Done (By AppJet) - drm237
http://www.techcrunch.com/2008/11/19/etherpad-shows-google-docs-how-its-done/
======
aaroniba
People have asked us for a way to try it out with other people, so here's a
set of pads for news.yc readers to play with:

<http://etherpad.com/ep/newsyc>

For the curious, I added this URL to our running web server in 5 minutes with
12 lines of JavaScript:

    
    
      function render_newsyc_get() {
        function countUsers(p) {
           return getCollab().getDocument(p).getNumConnectedUsers();
         }
         var body = BODY({style: 'padding: 20px; font-family: monospace;'});
         body.push(H3("Welcome news.ycombinator readers! ",
       	       "Join us in an EtherPad of your choosing:"));
         pads.forEach(function(p) {
           body.push(A({href: p}, p), '   ('+countUsers(p)+' users)', BR());
         });
         response.write(HTML(body));
      }
    

Just a taste of the AppJet Web Platform. (A separate 1-time script generated
the array "pads").

~~~
axod
Just crashed my safari :/ and now url seems down...

~~~
arthurk
Same here, WebKit nightly didn't crash but I'm getting a "Lost connection with
the EtherPad synchronization server." error.

~~~
axod
Scalability is harder than it looks ;)

------
smoody
"Changes are made in absolute real time, something even Google hasn’t been
able to do (Google docs update every fifteen seconds)."

To imply that Google 'hasn't been able to do it' is kind of silly. It's more
likely that they chose not to do it and/or their scaling requirements made it
impractical.

~~~
pg
It's not Google's scaling requirements that limit their simultaneity (or,
obviously, a deliberate choice). Google Docs uses a different architecture,
where a master copy of the document is kept on the server and broadcast every
n seconds to all the clients. This is easier to implement, but can't be made
fast enough to feel realtime.

Etherpad uses a different approach: they ship all the edits to all the users
as soon as they happen, and each client processes them to produce an updated
document. The hard part is making sure each user is seeing the same thing.
This is easy with the Google Docs model where a single master copy is
regularly rebroadcast. To do it the Etherpad way, without a master copy, is
extremely hard. From what I've heard about what they had to do, it sounds like
one of the more impressive hacking achievements by a YC-funded co to date.

~~~
zhyder
Hopefully the mechanism they chose is amenable to cross-user undo. (Though
it's currently missing, I'm assuming single-user undo can be added easily
enough.)

~~~
aaroniba
Undo works, just type control-Z (on windows) or command-Z (on a mac). It will
undo only your own edits.

We haven't figured out a way to let people undo other users' edits. (We can
perform the manipulation on the document, we just haven't figured out a
sensible UI for it).

~~~
boucher
I don't think there is a sensible UI for it. I'd leave it out completely.

------
ph0rque
What would make this application killer for me is if was embeddable in other
applications as a widget (think rich-text editor on steroids). This, plus a
git-like backend for revision history, would be just absolutely amazing.

~~~
rapind
Agreed. Imagine this sort of collaboration in the Heroku editor... Or online
collaborative versions of Textmate, emcacs, vim, etc.

Be nice if they offered textile and markdown rendering.

~~~
ph0rque
> The AppJet team plans on releasing this new server-side software (similar to
> their previous release but with the addition of Comet functionality and
> other pieces) completely Open Source as well.

\-- from here: <http://news.ycombinator.com/item?id=369500>

~~~
pdubroy
Is their other stuff really "open source"?

They definitely released their source code (available here:
<http://appjet.com/download>) but the only mention of a license on that page
is:

 _Disclaimer: The appjet.jar software is provided "as is", and you use it at
your own risk. AppJet Inc. is not responsible for anything bad that may
happen._

From that, it's not really clear whether it's open for modification and
redistribution. Any of the AppJet guys care to comment?

~~~
yan
They definitely _didn't_ release their code. That jar is full of built class
files, dependencies and some of their library in javascript.

------
jbyers
What a fun service. I can't remember the last time I used the word "fun" in
reference to a plain text editor. :)

It's really interesting to watch the POSTs fly by and consider the
implications of out-of-order updates, breaks in the open downstream "comet"
channel, interleaving potentially conflicting text from different clients. A
lot of difficult tradeoffs that they seem to have made good -- or at least
plausible -- decisions on.

------
tocomment
Maybe this will change how people code. Instead of programmers hanging out in
IRC, they can hang out in the code and fix things instead of just complaining
:-)

~~~
there
create a mashup with this and github to pull in code from a github url and
edit it

~~~
axod
Stir in half a pint of Mibbit IRC widget, and you could have quite a
productive environment.

~~~
misuba
There's already a Chat pane in the sidebar...

------
aneesh
SubEthaEdit has been one of the coolest pieces of software I've used, but it's
1) not free, 2) desktop-based, 3) OS X only. Etherpad offers all the
functionality without those restrictions.

This is a really impressive product.

------
adamsmith
This would be useful for getting candidates to write code during phone
interviews!

~~~
pg
That was one of the applications the Appjets had in mind. Aaron told me that
when he worked at Google one of the main reasons they used to fly candidates
in was just to watch them write code. Part of that step could now happen
before the flight.

 _Air Etherpad. Official Airline of the Recession._

~~~
volida
except that you can't know if the person who is typing is the real one

~~~
pg
That's why I said _part_ of that step could happen before the flight. You
would also want to have some tests in person for the people who made it past
the remote test. They probably wouldn't be needed that much, though, because I
don't think most applicants would go so far as to have someone else type their
answers if they were doing it live on the phone with someone from the hiring
co.

~~~
volida
yeah, on a second thought in the potential to limit the stress I suppose this
could be used by putting the intervwee alone in a different room and watch
them code remotely from another room.

------
ph0rque
Just had an idea... when you show the revision view for a given revision,
attach the chats that happened during the same time as _comments_ to the page.

------
ntoshev
There is no test etherpad on their page where you can actually test it on a
document with others editing simultaneously, so I created one for HN:

<http://etherpad.com/a4jtHYAoF9>

Just join in and try it!

------
humanlever
My first thought while playing with it during class was that it'd make a great
replacement for Basecamp's crappy Writeboard feature.

I was also thinking that instead of unnamed, you could build a list of
celebrity names that are used until the user changes it (which should be
pretty quick if you wind up with something like Danny Glover or Hans Blix). If
not, at least you'd have a way to distinguish between people.

------
nihilocrat
Hey, where have I seen this before?

Oh yeah, here: <http://gobby.0x539.de/trac/>

~~~
ErrantX
Which is a desktop app...

;)

~~~
nihilocrat
And yet it's the same functionality. Personally, I would prefer a desktop app
when working on anything sensitive (i.e. code at work)

~~~
ErrantX
yeh I have to agree there.

~~~
nihilocrat
Another plus: you don't have to worry about it getting slashdotted / digged /
whatever like what's happening now :)

------
sh1mmer
This seems like SubEthaEdit but for the web. Maybe it was the barrier to entry
or the technical wrangling to get it working that killed SEE; But even among
Mac-heads I haven't seen it being used in years.

I'm not sure how much this will fly.

~~~
boucher
I've used SEE almost exclusively for the last three years. I know plenty of
other people who do too.

------
tsally
Interesting app; it looks like it has a lot of potential.

On an unrelated note, something about Arrigton's journalism just bothers me.
It's like every title has to involve some tired old cliché or unsubstantiated,
conflicting statements.

------
ErrantX
neat but hardly killer.

Yes they have the handiness of true realtime updates (and I am not denying
that isn't a huge feature) but that's hardly a unique feature (or wont be for
long).

But then the rest of the UI / feature set is far too bland :( at least get
some code highlighting and stuff in there.

Also in our short test earlier it didnt handle mass deletions & editing very
well (if I deleted a block of text as someone was adding to it merry hell
broke loose :P).

IMO a nice demo of a cool idea but badly executed enough to be no real use.
Make me a real time white board and THEN I might take notice :D

~~~
tlrobinson
They do have syntax highlighting for JavaScript.

One thing I've often wished for was a standard syntax for specifying syntax
highlighting modes. Right now basically every text editor has a different way
of doing it, so you have to write dozens of modes when you create a new
language or editor.

~~~
ErrantX
I know what you mean :D that would be rather cool

Thinking about it (going back slightly) there are not many situations where I
see anyone actually coding with others in REAL time. Perhaps on hackathons
(actually it would be ace for them) or suchlike - but for real work I doubt it
would work. So the big selling point is gone: and there is nothing else to
support it as a useful app (when Google docs has 100x the features).

That said I hope that will change in the future because it is rather nifty :D

------
shaunxcode
This is very cool for sure. I really think it would be nice for brainstorming
on code with other developers.

