Projects on the Move


Authors and editors can use EtherPad to edit a column online in real time. Then, anything they can't handle in writing, they can discuss in detail by launching Mumble.

By Mela Eckenfels

Beboy and Sandor Jackal, Fotolia

At the end of 2009, howls of protest resounded through the Internet when Google acquired the popular EtherPad [1] platform and announced its plans: The developers of EtherPad would be investing their know-how in Google Wave [2]. This sealed the fate of EtherPad and the switch was scheduled for March 2010. Google seemed to hope to convince former EtherPad users of the virtues of Google Wave. But sometimes even Google's wishes are not fulfilled; instead, a wave of protest crashed against the Google fortress. Meanwhile, an EtherPad community gathered, and they were not prepared to abandon their EtherPad speedboat for the ponderous Google Wave battleship.

Google gave in a couple of days later and released the EtherPad code under the Apache license. The first privately operated EtherPad clone was up and running just a few days later, and, in collaboration with providers of public EtherPad installations [3], the EtherPad Foundation [4] was founded to promote the ongoing development of the free code.

Keep It Simple, Stupid

What makes EtherPad so interesting that Google grabbed all of the company's know-how? Why did such a huge community of fans sprout up in so short a time? The answer is, EtherPad is the software incarnation of the KISS principle [5] - all you need user-side is a JavaScript-capable browser. Surf to the homepage of a public EtherPad provider, such as TypeWith.me [6], press the Click to Create a New Document button, and you're ready to create a new document. To collaborate, simply distribute the link to the public document to invite other people to join in.

The new pad has three panels (Figure 1). Changes show up immediately as you type in the editing section. The sidebar shows a list of collaborators and has a chat window for exchange of information.

Figure 1: A pad in action: Editing this article in the pane on the left with a list of users and a chat box on the right.

EtherPad assigns a separate color to each author, which makes it easy to see who contributed what in the editor window. Also, you can change colors at run time by clicking the box next to your name; the pad will accommodate the changes. EtherPad automatically stores your changes and keeps them available on a timeline. To remove editing conflicts or vandalism, it is also a good idea to save any revisions manually.

Launch, Work, Done?

The intuitive user interface makes EtherPad the ideal tool for less technologically minded people. A shared pad could help a school class plan an open day or help an amateur theater group rewrite the text of a play they are staging. With no complex user account configuration or cumbersome access privileges, everybody can get started right away.

The disadvantage of a public pad is fairly obvious, however: Anybody who knows the link address can change the pad and thus destroy your work. Secure EtherPads [7] can deal with this (Figure 2). Besides using a separate subdomain (e.g., http://lpm.ietherpad.com/), they let the administrator set up various areas to meet the team's requirements. For example, you can assign staff to certain pads and keep some areas public or private. Secure pads, which require you to sign in, used to be commercial products before EtherPad was sold to Google. They are now free on all the sites listed at the EtherPad Foundation [4].

Figure 2: Secure EtherPads add the Security tab to the menubar.

Under the Hood

It is far too early to dream of your own EtherPad installation in leased web space. EtherPad requires MySQL 5.1 along with Java 1.6.0, Scala 2.7.4, and the MySQL Java connector version 5.1.0 - requirements that practically no web hosting package fulfills. Even if you work around these obstacles, the installation [8] needs a fair amount of manual attention, especially if you want to set up the secure version or include the PDF and OpenOffice export features [9]. The only distribution to offer a prebuilt package for EtherPad as of this writing is Debian, and the package comes courtesy of an external repository [10]. Client-side, EtherPad also turns out to be more finicky than its competitors. Memory becomes scarce in most browsers if you open four to six pads at the same time. This known bug should be fixed in future versions.

The first post-Google EtherPad developments have been restricted to cosmetic changes. For example, the developers increased the maximum number of pad users and increased the colors from 16 to 32. The next version of EtherPad, which is currently in testing, envisages a plugin system to make EtherPad more modular [11]. Additionally, the developers plan a wiki-style feature that will let users interlink pads and insert hash tags that EtherPad converts into links. Clicking a link would launch a keyword-based search over other pads with hash tags (Figure 3). The next milestone release will also include a Windows installer, add an Emacs client, and integrate an XMPP gateway for Jabber [12].

Figure 3: The current beta version offers a sneak preview of future EtherPad features, including links to other pads and hash tag-based searches.

Don't Mumble ... Mumble!

From collaborative editing in real time, you can move on to talking in real time - but don't worry, in Mumble's case, the name is nothing to go by. Speech quality is not an issue if you use Mumble [13] instead of a phone. The VoIP program uses Celt [14] and Speex [15] codecs and relies on their advanced audio compression to reduce bandwidth requirements. However, the developers are not happy to rest on their laurels. Voice is preprocessed to remove irritating noise and improve the sound quality noticeably.

Besides enabling voice transmissions, Mumble includes a text-based chat component. Although this might sound redundant, the chat feature is very useful for a simple exchange of links or other information.

Strictly speaking, Mumble is just a collection of voice-conferencing tools that are available for any popular desktop operating system. Installers are available for Linux, Windows, and Mac OS X, and FreeBSD users can at least read the how-to [16].

If you Mumble, you also have to Murmur. In other words, to have a Mumble-based voice conference, you also need a Murmur server. Although a number of public Murmur servers are available on the web, your only choice will probably be to install your own Murmur server for professional use [17].

Murmur is built on the Qt library and prefers a complete X Window System - which is annoying for admins on servers without a GUI. One possible workaround is uMurmur [18], which is written in C and released under the BSD license. To compile and run the server components, you additionally need to resolve dependencies on OpenSSL, PolarSSL, Libconfig, and Protobuf-c. Having said that, uMurmur does not provide the same performance as the original Murmur server. One failing is its IRC-style chat channels, which are hard-coded in the configuration so you can't modify them on the fly to reflect your user's needs.

Although Mumble is fairly impressive already, it looks like the software is in for a very exciting future - especially if the roadmapped video support really is implemented [19]. Also, the planned Mumble clients for smartphones should take some of the complexity out of audio and video conferencing.

Public PDF

To make web servers more secure and stable, administrators tend to avoid installing an X server. Whenever you add a program or a library, you must consider the benefits and risks carefully, which explains why programs like Murmur can reduce admins to tears. Developers and web server administrators often hear, "Please build a PDF export feature into our web software." Although newbies will tend to install Ghostscript [20] and X11, experienced administrators know how to avoid the X components, although they will still worry when they see Ghostscript asking for one library after another. These concerns are likely to grow because Ghostscript regularly shows up in security advisories [21].

An easier approach is available - at least if you have PHP in place. The PHP TCPDF [22] class by IT consultant Tecnick is licensed under the LGPL and does not require any additional libraries for its core functionality. Many projects already benefit from TCPDF. For example, Joomla, Drupal, and Moodle all use PHP classes to generate PDF documents.

TCPDF's feature list is impressive: It is the only PHP-PDF class that supports UTF-8 and right-to-left text orientation. TCPDF also supports a full set of popular graphics formats and PDF properties such as footers, headers, or comments, and it can convert various barcode standards to PDF. TCPDF can also create digital signatures, which means you can, for example, digitally sign your invoices in countries where that is legally required.

TCPDF is regularly listed as one of the top 10 most active projects on SourceForge. The documentation on the project homepage is exemplary, and the examples section contains a large number of code snippets to help developers interested in experimenting with TCPDF get started (Figure 4).

Figure 4: The "Examples" section on the TCPDF homepage offers introductory material for newcomers and more advanced sample code. All of the examples are available as source code and pre-built PDF documents.
INFO
[1] EtherPad: http://www.etherpad.com
[2] Google Wave: https://wave.google.com
[3] Public EtherPads: http://etherpad.org/etherpadsites.html
[4] EtherPad Foundation: http://etherpad.org
[5] KISS principle: http://en.wikipedia.org/wiki/KISS_principle
[6] TypeWith.me EtherPad: http://typewith.me/
[7] iEtherPads : http://ietherpad.com
[8] EtherPad installation guide: http://code.google.com/p/etherpad/wiki/Instructions
[9] Known issues: http://code.google.com/p/etherpad/wiki/KnownIssues
[10] EtherPad for Debian: http://doc.etherpad.org/ep/pad/view/ro.lRwwt2zukr/latest
[11] Planned features: http://doc.etherpad.org/
[12] EtherPad milestones: http://github.com/ether/pad/issues/labels/Milestone%202.0#list
[13] Mumble: http://mumble.sourceforge.net
[14] Celt: http://www.celt-codec.org
[15] Speex: http://www.speex.org
[16] Mumble installation on FreeBSD systems: http://mumble.sourceforge.net/BuildingFreeBSD
[17] Murmur: http://mumble.sourceforge.net/Running_Murmur
[18] uMurmur: http://code.google.com/p/umurmur
[19] Planned Mumble extensions: http://mumble.sourceforge.net/Upcoming
[20] Ghostscript: http://www.ghostscript.com
[21] Latest Ghostscript exploit: http://seclists.org/fulldisclosure/2010/May/232
[22] TCPDF: http://www.tcpdf.org
THE AUTHOR

Mela Eckenfels is a freelance author and trainer who previously worked as a Unix system administrator. She co-authored Das Kochbuch für Geeks (Geek Cookbook) with Petra Hildebrandt; the book, which was published by O'Reilly Germany, just goes to show that cooking has much in common with programming.