EtherPad
Encyclopedia
Etherpad is a web-based collaborative real-time editor, allowing authors to simultaneously edit a text document, and see all of the participants' edits in real-time, with the ability to display each author's text in their own color. There is also a chat box in the sidebar to allow meta
Meta
Meta- , is a prefix used in English to indicate a concept which is an abstraction from another concept, used to complete or add to the latter....

 communication.

First launched in November 2008, the software was acquired by Google
Google
Google Inc. is an American multinational public corporation invested in Internet search, cloud computing, and advertising technologies. Google hosts and develops a number of Internet-based services and products, and generates profit primarily from advertising through its AdWords program...

 in December 2009 and released as open source
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...

 later that month. Several services now use the Etherpad software, including PiratePad, PrimaryPad, TypeWith.me, Sync.in
Sync.in
Sync.in is a web-based collaborative real-time editor, from Cynapse. It allows multiple people to edit the same text document simultaneously. Participants can see the changes in real-time, with each author's text in their own color...

, TitanPad and iEtherPad.com. Further development is coordinated by the Etherpad Foundation.

Features and implementation

Anyone can create a new collaborative document, known as a "pad". Each pad has its own URL, and anyone who knows this URL can edit the pad and participate in the associated chats. Password-protected pads are also possible. Each participant is identified by a color and a name.

The software auto-saves the document at regular, short intervals, but participants can permanently save specific versions (checkpoints) at any time. A "time slider" feature allows anyone to explore the history of the pad. The document can be downloaded in plain text, HTML
HTML
HyperText Markup Language is the predominant markup language for web pages. HTML elements are the basic building-blocks of webpages....

, Open Document, Microsoft Word
Microsoft Word
Microsoft Word is a word processor designed by Microsoft. It was first released in 1983 under the name Multi-Tool Word for Xenix systems. Subsequent versions were later written for several other platforms including IBM PCs running DOS , the Apple Macintosh , the AT&T Unix PC , Atari ST , SCO UNIX,...

, or PDF format.

Automated markup of JavaScript
JavaScript
JavaScript is a prototype-based scripting language that is dynamic, weakly typed and has first-class functions. It is a multi-paradigm language, supporting object-oriented, imperative, and functional programming styles....

 code was made available shortly after the launch.

Etherpad itself is implemented in JavaScript, on top of the AppJet
AppJet
AppJet was a website that let users create web based applications in a client web browser, with no other client software. AppJet was founded by 3 MIT graduates, 2 of whom were engineers at Google before starting AppJet...

 platform, with the real-time functionality achieved through Comet
Comet (programming)
Comet is a web application model in which a long-held HTTP request allows a web server to push data to a browser, without the browser explicitly requesting it. Comet is an umbrella term, encompassing multiple techniques for achieving this interaction. All these methods rely on features included by...

 streaming.
At the time of its launch, Etherpad was the first web application
Web application
A web application is an application that is accessed over a network such as the Internet or an intranet. The term may also mean a computer software application that is coded in a browser-supported language and reliant on a common web browser to render the application executable.Web applications are...

 of its kind to achieve true real-time performance, a feat previously only achieved by desktop applications such as SubEthaEdit
SubEthaEdit
SubEthaEdit is a collaborative real-time editor designed for Mac OS X. The name comes from the Sub-Etha communication network in The Hitchhiker's Guide to the Galaxy series....

 (for Mac
Macintosh
The Macintosh , or Mac, is a series of several lines of personal computers designed, developed, and marketed by Apple Inc. The first Macintosh was introduced by Apple's then-chairman Steve Jobs on January 24, 1984; it was the first commercially successful personal computer to feature a mouse and a...

), Gobby
Gobby
Gobby is a free software collaborative real-time editor available on Windows and Unix-like platforms. It was initially released in June 2005 by the 0x539 dev group....

, or MoonEdit
MoonEdit
MoonEdit is a collaborative real-time editor. It supports Linux, Windows and FreeBSD. While it is free for non-commercial use, it is not free software / open source software.MoonEdit was originally written by Tom Dobrowolski under the name Multi-Editoro....

 (both cross-platform
Cross-platform
In computing, cross-platform, or multi-platform, is an attribute conferred to computer software or computing methods and concepts that are implemented and inter-operate on multiple computer platforms...

). Existing collaborative web editors at the time could only achieve near-real-time performance.

Launch

Etherpad was launched in 19 November 2008 by David Greenspan, Aaron Iba, and J.D. Zamfirescu (the latter two being former Google
Google
Google Inc. is an American multinational public corporation invested in Internet search, cloud computing, and advertising technologies. Google hosts and develops a number of Internet-based services and products, and generates profit primarily from advertising through its AdWords program...

 employees).
They were later joined by former Googler Daniel Clemens and designer David Cole. The original website was etherpad.com.

Etherpad was covered by Slashdot
Slashdot
Slashdot is a technology-related news website owned by Geeknet, Inc. The site, which bills itself as "News for Nerds. Stuff that Matters", features user-submitted and ‑evaluated current affairs news stories about science- and technology-related topics. Each story has a comments section...

 on November 21, 2008, resulting in server slowdown and downtime
Slashdot effect
The Slashdot effect, also known as slashdotting, occurs when a popular website links to a smaller site, causing a massive increase in traffic. This overloads the smaller site, causing it to slow down or even temporarily close. The name stems from the huge influx of web traffic that results from...

. This led the developers to temporarily revert the tool to closed beta, not allowing new pads to be created (but providing full and unrestricted access to the existing ones), while the server infrastructure was being improved.
After the rewrite of the software was completed, the new version went live on 29 January 2009, and on 3 February, the site became again open to all.

Acquisition

When Google Wave
Google Wave
Apache Wave is a software framework for real-time collaborative editing online. Google Inc. originally developed it as Google Wave.It was announced at the Google I/O conference on May 27, 2009....

 was announced, the Etherpad team wrote on their blog comparing the two platforms and stating that the minimalist and targeted Etherpad interface could be an advantage in some use cases.
Still, on 4 December 2009, Etherpad announced on its blog that it had been acquired by Google for integration into Google Wave. Existing Etherpad users would receive invites for Google Wave.
On 31 March 2010, Etherpad announced that creation of new pads would be allowed until April 14 (pad creation was still allowed as of April 18, though) and existing pads could still be accessed and used until May 14. Options for download/export were available. The Etherpad service terminated on May 14.

Open-source

Google released the source code for Etherpad under the Apache License
Apache License
The Apache License is a copyfree free software license authored by the Apache Software Foundation . The Apache License requires preservation of the copyright notice and disclaimer....

 version 2.0 on December 17, 2009.
Subsequently, Google asked the Etherpad code maintainers to remove JSMin from its code tree due to a clause in its license stating, "The Software shall be used for Good, not Evil," which is not compatible with Open Source licensing.

After the release of the software as open source, a number of people have set up Etherpad servers, as clones of the original website. Soon after, users and programmers of Etherpad, after an initial meeting in the #etherpad channel on freenode
Freenode
freenode, formerly known as Open Projects Network, is an IRC network used to discuss peer-directed projects. Their servers are all accessible from the domain name [irc://chat.freenode.net chat.freenode.net], which load balances connections by using the actual servers in rotation...

, created the Etherpad Foundation to coordinate further development. Their website maintains a list of a growing number of sites that run the Etherpad software.

Etherpad Lite

Etherpad Lite is an almost complete rewrite of the original Etherpad software, based on different technical foundations and written by different authors.
While the original Etherpad is written in Scala and has quite big system requirements
System requirements
To be used efficiently, all computer software needs certain hardware components or other software resources to be present on a computer. These pre-requisites are known as system requirements and are often used as a guideline as opposed to an absolute rule. Most software defines two sets of system...

, Etherpad Lite is written in server-side JavaScript
JavaScript
JavaScript is a prototype-based scripting language that is dynamic, weakly typed and has first-class functions. It is a multi-paradigm language, supporting object-oriented, imperative, and functional programming styles....

 using node.js
Node.js
Node.js is a software system designed for writing highly-scalable internet applications, notably web servers.Programs are written in JavaScript, using event-driven, asynchronous I/O to minimize overhead and maximize scalability....

. The original realtime synchronization library (called Easysync) remains the same.

At the moment, this new version is not on the par with the original Etherpad feature-wise. Etherpad Lite does, however, have some distinctive features which are not available in the original version:
  • An HTTP
    Hypertext Transfer Protocol
    The Hypertext Transfer Protocol is a networking protocol for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web....

     API
    Application programming interface
    An application programming interface is a source code based specification intended to be used as an interface by software components to communicate with each other...

     which allows the user to interact with the pad contents, and with user and group management
  • A jQuery
    JQuery
    jQuery is a cross-browser JavaScript library designed to simplify the client-side scripting of HTML. It was released in January 2006 at BarCamp NYC by John Resig...

     plugin exists which helps embedding the collaborative editor in other sites
  • A PHP
    PHP
    PHP is a general-purpose server-side scripting language originally designed for web development to produce dynamic web pages. For this purpose, PHP code is embedded into the HTML source document and interpreted by a web server with a PHP processor module, which generates the web page document...

     client which interfaces with the API
  • A Python
    Python (programming language)
    Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...

     client which interfaces with the API
  • A Ruby
    Ruby (programming language)
    Ruby is a dynamic, reflective, general-purpose object-oriented programming language that combines syntax inspired by Perl with Smalltalk-like features. Ruby originated in Japan during the mid-1990s and was first developed and designed by Yukihiro "Matz" Matsumoto...

     client which interfaces with the API
  • A JavaScript
    JavaScript
    JavaScript is a prototype-based scripting language that is dynamic, weakly typed and has first-class functions. It is a multi-paradigm language, supporting object-oriented, imperative, and functional programming styles....

     client which interfaces with the API

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK