Gobby LINUXUSER TEAMWORKCollaborative editing of text documents If you are looking for a tool for collaborative text editing across a network, Gobby might be the answer. Gobby lets multiple users edit text documents collaboratively and discuss the changes online. BY CARSTEN SCHNOBER

elpful colleagues: Knowing that content. Different colors highlight contri- know the server address and enter the the letter has to be out by the butions by individual users, and the ses- address manually if this doesn’t work, Hend of the business day, they sion participants can discuss the results which will be the case for an Internet have lined up behind your desk, shoul- in a separate chat area. connection. Bad luck for Windows users der-surfing your screen and pointing out – the Windows version of Gobby does typos, tacky phrasing, or whatever. They Classical Model not have Zeroconf support. mean well, but honestly, I would prefer Gobby relies on the tried-and-trusted cli- to complete the sentence before they ent/server model: Users install the pro- Internet with Some jump on it – and it would be a big help gram locally on their desktops, and one Concessions if they took turns shouting! of the clients additionally acts as a Collaborative editing with Gobby on the Gobby offers a convenient group ap- server that the other users log in to. It Internet can be tricky because Gobby proach to editing a document [1]. The doesn’t really matter which operating will share with any application. In many collaborative editor (Figure 1) gives mul- system you have because Gobby is avail- cases, NAT routers prevent incoming ex- tiple users the opportunity to work on a able for Linux, Windows, and Mac OS X. ternal connection requests for computers single document without getting in each Establishing a connection is easy; on the internal network. In addition, the others’ way. The texts appear on your thanks to Zeroconf support [2], Gobby Internet address will typically change own screen across the net- automatically locates a server on the between sessions, leaving the server op- work, and you can collab- local network and offers point-and- erator with the chore of informing the orate to your heart’s click login. Users need to other participants. A simple workaround andresr, Fotolia

83

083-085_gobby.indd 83 14.11.2007 18:23:52 Uhr LINUXUSER Gobby

static IP, the Gobby SourceView, GnuTLS, and Gtk. If you project gives you a will be using automatic network config- more elegant ap- uration, you will also need the Zeroconf proach. The Sobby library. program provides a The Gobby developers also rely on the dedicated server that MinGW cross-compiler; the package is accepts and manages called mingw or mingw32, depending on Gobby client connec- your distribution. I also recommend in- tions but does not stalling Gettext, which provides lan- have a graphical guage support for the front-end. The li- front-end. braries and programs are included with all major distributions. Installation The long trek to a do-it-yourself ver- Users with Ubuntu sion of Gobby starts with the Net6 pack- and can in- age, which handles network communi- stall Gobby version cations between Gobby clients and the 0.4.1 via their distri- server. After unpacking by typing tar Figure 1: Gobby lets network users collaborate on a single docu- bution’s package -xzf net6-1.3.5.tar.gz and changing to the ment. Users can discuss changes in a separate chat window. management system new net6-1.3.5 directory this creates, or by typing apt-get type ./configure, make, and make install does not exist for these issues. Services install gobby. Ubuntu users will need to to build and install the Net6 library. such as DynIP [3] and DynDNS [4] will enable the Universe repository. Fedora Net6 is followed by Obby, the library give you a permanent Internet address, users can type yum install gobby to that synchronizes collaboratively edited though. To run a server on an internal install Gobby 0.4.1 conveniently after documents. Build and install the archive network behind a NAT router, you need binding the Fedora Extras package by first unpacking and then typing to configure the router to forward the source. Gentoo users can emerge gobby ./ configure, make, and make install. port you use, which defaults to 6522 for to launch into the install. Users with Now it’s Gobby’s turn – you can fol- Gobby. openSUSE 10.2 (Gobby 0.4.1) and SUSE low the same steps to build and install. If you have an Internet server with a Linux 10.1 (Gobby 0.3.0) can run YaST If you also require the dedicated server, to install the packages referred to further don’t forget to give Sobby the same GLOSSARY down. Next, become root and type rpm treatment. -Uhv *.rpm to install the RPM packages. Zeroconf: This technology automates Starting a Session the configuration of computers on a net- work by automatically advertising ser- Do-it-Yourself Gobby After covering the installation mileage, vices such as shared printers, files or di- If you have any other Linux distribution, which could be considerable depending rectories, and other services to all net- or simply prefer to use the latest 0.4.4 on your distribution, you can now work clients. Network addresses are as- version, you will need to build Gobby launch the program by typing gobby. signed automatically. Apple’s Appletalk from scratch. Building Gobby means in- First, you are given the option of open- and Microsoft NetBIOS provide this stalling a number of developer packages ing a session in the main window (Fig- functionality on Mac OS and Windows, up front. Besides the typical require- ure 2) or of joining an existing session respectively; however, the Zeroconf ments, such as the and C++ compilers (Figure 3). The buttons for this are aptly project is looking to develop a solution (gcc, g++) and Make, would-be Gobby named Open session… and Join ses- based on open standards and with com- builders will need the developer versions prehensive documentation. – versions ending in -dev (Debian) or No Undo Function? NAT router: When several machines on -devel (RPM-based distributions) – of a LAN share an Internet connection to Previous versions of Gobby had an Libsigc++, Gtkmm, Libxml++, Gtk- communicate with the outside world, Undo function that the developers just the method of choice typically relies on lifted from GtkSourceView. However, a NAT-capable router (NAT = Network the Undo function failed to distinguish Address Translation). The router estab- between contributions by different users lishes a connection to the Internet ser- in Gobby, meaning that a user clicking vice provider and is assigned an Internet on Undo would not undo their last edit, address. Computers on the internal net- but the last edit by anyone in the ses- work contact the NAT router, which for- sion. The developers decided that this wards their requests to the Internet. function did more harm than good and Cross compiler: a compiler that runs on removed it. A new, improved Undo one platform but can compile programs function is on the wish list for future ver- for another. For example, Mingw on sions of Gobby, but right now, it does Linux will create programs that run on not appear to be advanced enough to Figure 2: Any Gobby client can also be a Windows if needed. make the cut for version 0.5. server for other clients.

84 ISSUE 86 JANUARY 2008

083-085_gobby.indd 84 14.11.2007 18:23:56 Uhr Gobby LINUXUSER

sion…. Nothing prevents collaboration version of a previous session. In contrast a spellchecker, but worse, it also lacks between Gobby client versions 0.4.1 and to the text-only documents, the session an Undo function (see the “No Undo 0.4.4 or collaboration across operating file contains both the document content Function?” box). system borders. Gobby 0.3 is excluded, and Gobby-specific details of what Users can save both the text and the however, because of network protocol changes where made by which users. whole session at any time. To do so, se- changes; the current ver- lect Gobby | Save session…. The advan- sion uses encrypted data Documents tage of saving a session is that it stores transmission. After establishing the both the file content and information on When you launch a Gobby session, any partici- the session participants and the changes new session or join an pant can create new docu- they made. If you only need the text in existing session, the pro- ments or open existing future, you can save it to disk by select- gram will prompt you to files. A message to all ing Session | Save document. enter the network port, users appears in the lower your username, and your part of the Gobby window, No Competition choice of color. Typically, the user chat area. The Gobby has virtually no competition in you need not change the Figure 3: Thanks to Zero- message contains the the field of free collaborative text edit- default network port of conf, Gobby detects current name of the document that ing. Nothing has been heard from the 6522. Users can identify sessions on the local net- the participants can now KDE-based MateEdit [5] project for more each other and individ- work, allowing users to click edit collaboratively. than two years. MoonEdit [6] is a free ual contributions by to join. The Document list but- (as in beer) but unfree (as in freedom) color. ton or the Window | Docu- product that has not seen a new release Gobby sessions cur- ment list menu takes you for more than two years, although the rently running on the to a dialog box that shows developers have announced a new, local network are auto- a list of files available to probably commercial, version dubbed matically displayed in the current Gobby session MoonEdit Pro. That said, web services the Join session dialog, (Figure 4). Click on Sub- like Google Docs [7] question the neces- assuming that Zeroconf scribe to open a file in the sity of a local application such as Gobby is running. Manual con- editor. in many work scenarios. figuration means enter- The Gobby editor is In some cases, one might prefer not to ing the server address in reminiscent of the default allow all participants in a session to edit the Host box and then Gnome editor, , and view every single document. More clicking on OK. Figure 4: The document list which is no coincidence granular access would be useful; anyone If you launch your window shows the docu- because both editors use with the optional password automati- own Gobby session, you ments opened by other the GtkSourceView basic cally becomes a peer in the session. can enter a password in users in the session. library. This means that The solution is simple: You can always the dialog, if needed; the Gobby editor also of- launch a second Gobby instance and any users joining the session will need to fers syntax highlighting for any major establish a session on another port. know the password. Additionally, the programming language. Compared with The lack of an alternative to Gobby is Session file box lets you open a saved Gedit, the integrated Gobby editor lacks nothing to worry about. The program has a fairly complete set of features, al- though the lack of an Undo function and an integrated spellchecker are annoying. Aside from those problems, the Gobby does an admirable job and is very stable. Thanks to Gobby's Zeroconf support, users should have no trouble establish- ing connections. I was left with a good overall impression. I

INFO

[1] Gobby: http:// gobby. 0x539. de/ trac/ [2] Zeroconf: http:// www. zeroconf. org [3] DynIP: http:// www. dynip. com [4] DynDNS: http:// dyndns. com [5] MateEdit: http:// mateedit. sourceforge. net [6] MoonEdit: http:// www. moonedit. com [7] Google Docs: http:// docs. google. com FIgure 5: Gobby‘s user list helps you keep your place in complex multiuser collaborations.

JANUARY 2008 ISSUE 86 85

083-085_gobby.indd 85 14.11.2007 18:23:57 Uhr