Etherpad Or The Textarea Is A Lonely Place

This is where I type my entries. It is a lonely place. The other I like tight pants contributors are nowhere in sight, it is just me typing away in the browser. Only when I hit a submit button the information is sent to the server.

Were my colleagues to try and edit this article at the same time, the system would not allow it. Content management systems put in place editing locks, allowing only one user to edit at a time. This is because the text form I write in can not be updated while I am editing it. So if other users were allowed to update the entry inbetween the time that I open the text field and the moment I press the submit button, their changes would effectively be overwritten. Wikipedia employs a sophisticated merging tool to merge various edits together.

Baseline, who works with OSP, has introduced me to Etherpad. Etherpad presents you with an online document allowing you to start typing. As you do, you might see others connected to the pad start typing as well. There is no submit button. Everything is saved while you type so that it can be shown to your collaborators at the same time. You are no longer solitary with your text box:

Once you have used Etherpad to write, it becomes difficult to imagine writing collaboratively without it. In a book sprint in Rotterdam, we used Booki, which allows for sophisticated pdf and ebook creation. Yet like many content editing tools it imposes a single-user content lock on each chapter. At the end of the session it turned out everyone had used Etherpad to write their chapters together, before copy and pasting it into the Booki platform.

If you have not used etherpad, changes are you have used the technology through Google Docs. It is Google who in 2009 bought Etherpad. At the time of the acquisition the source code gets released under a permissive license. So if the code is out there, why are we not seeing more Etherpad-style collaboration online?

7 Comments

There’s two challenges that need to get solved, before you can have easy access to etherpad style collaborative editing in any website. The first is implementing the algorithm that takes care of making all the edits work together:

The solution is Operational Transformation (OT). If you haven’t heard of it, OT is a class of algorithms that do multi-site realtime concurrency. OT is like realtime git. It works with any amount of lag (from zero to an extended holiday). It lets users make live, concurrent edits with low bandwidth. OT gives you eventual consistency between multiple users without retries, without errors and without any data being overwritten.

Unfortunately, implementing OT sucks. There's a million algorithms with different tradeoffs, mostly trapped in academic papers. The algorithms are really hard and time consuming to implement correctly. We need some good libraries, so any project can just plug in OT if they need it.

This is from the ShareJS website. They’ve indeed come up with a pluggable solution: once you’ve setup a share.js server, you can call it on another site with a simple JavaScript. But it can’t easily integrate deeply into existing systems, because it uses its own database.

There is in fact no easy way to integrate with older tools like Wordpress and Django (integration: the second challenge). These are built for traditional webservers, that send you a new page when you visit a new address: tools like Etherpad require a more intimate, persistent connection between client and server. 

We either have to wait for the tools to catch up, or for new web frameworks and CMS’s to appear that have this kind of connectivity built in. Meteor is one of the libraries to appear in this space, and since one of its founders codeveloped Etherpad, I am hoping they will provide an easy to use collaborative textarea. 

Wordpress Integrates etherpad. See participad and see http://etherpad.org The screenshot you have shown is from a really old version of etherpad. Be careful using Titanpad, it's really unstable and provides no guaranteed uptime / availability. ShareJS isn't an editor library so isn't really ideal. You can easily deeply integrate Etherpad into most popular databases as it uses database abstraction. Check out the plugins in etherpad too, you can extend functionality with things such as table of contents and headings :) I'd suggest you redo your research :)

Thanks for the link to Participad. It looks really nice (I am a fan of the Roy Rosenzweig Center for History and New Media and Zotero). I guess what bnf is getting at is that the process of setup still requires setting up two systems (etherpad, wordpress) with two databases and then configuring the interaction between them… Where I imagine in future CMS’s we will just be able to create an ‘etherpad field’ in the same way one adds a date field or a text field etcetera…

Yeah you are right it is good to note that the screenshot is the original Etherpad software—at OSP we just installed the new version (a.k.a. Etherpad Lite) and Steph is super excited. Among other things, we now finally have support for images (through a plugin). 

Actually, John, can you recommend a good (& preferably free) hosted Etherpad solution running the latest version? http://beta.etherpad.org/ is reset every now and then… Titanpad is maybe old school but it’s been an easy way to get started with doing collaborative editing in teams.

I use PrimaryPad for my service.

Disclaimer: I have a financial interest in Primarypad.

Its Time to Catch the Big Growth in CNC Systems in the UK
Reply

Leave a comment