An up-to-date look at free software and its makers

Projects on the Move


Redet helps you create regular expressions, and solving Go problems is a good way to relax. We also examine the latest events at Debian, including recent talk about the GNU Free Documentation License.

By Oliver Frommel and Martin Loschwitz

Perhaps no innovation of the Unix environment has been more influential than regular expressions. Regular expressions really do give you a world of opportunities, if you know what you are doing. You can use regular expressions to define filters and simplify searches. Regular expressions are supported by a great variety of Linux programs, such as the popular Emacs, Vi, and Nedit editors, and even OpenOffice Writer. And if you use scripting to process text files, you'll find no genuine alternative to regular expressions.

Help for Regular Expressions

On the downside, composing complex search patterns with regular expressions is an error-prone process. Conceptual searches boil down to cryptic shorthand, and various dialects handle details differently, forcing programmers to put more effort into testing. The Redet [1] tool can help you compile regular expressions without advanced knowledge of the shorthand (Figure 1). The program supports interactive testing based on a variety of tools, and it can give you ready-to-use regular expressions.

Figure 1: Redet helps you compile complex regular expressions.

Before you can run Redet, there are a few requirements you have to satisfy. Redet is written in Tcl, and although this is not a problem in itself, the tool uses the object-oriented extensions, Itcl, Itk, and Iwidgets, which are not available as binaries for some distributions. Unfortunately, it is not easy to build the extensions from source. If your distribution includes the packages I just referred to, you can sit back and relax; just launch the Redet script after downloading.

Non-Standard Characters

Bill Poser, the Redet developer, who also happens to be a professor of linguistics, recommends the Tcl package by Active State [2]. This is a no-cost software package including the Tcl core packages and a whole bunch of practical extensions. To install, just unpack the package and modify your path to include it.

After launching the program, the main window appears with menus, a text field for test data, and another field for the result returned by the regex search. The online reference on the website and the internal help function give users detailed descriptions of all menu items.

Redet uses a selection of tools to test regular expressions, and you will need to install these tools, however, the program does test Tcl regexes internally. The software is excellent for creating regular expressions to match foreign-language or multiple-language text patterns, loading its own character set to do so. Redet provides a large selection of accented characters and will accept UTF8 code as input.

Machines on View

The idea behind regular expressions is the theory of finite state machines, which is also used in other fields of computer science. The Context Free program takes a more playful and optically pleasing approach to this topic, creating recurring patterns with an intrinsic value of their own based on fairly simple language descriptions (Figure 2).

Figure 2: Context Free generates neat pictures using the theory of context-free grammars.

Chris Coyne [4] originally worked in the field of context free grammars, and he finally developed a simple language known as CFDG that was capable of creating pictures. On the website of a related project that uses similar techniques to generate computer science papers [5], two other programmers discovered a link to Chris' homepage and were really thrilled by their discovery. Mark Lentczner decided to create a Macintosh version, and John Horigan took on the Windows part.

By now, the Macintosh version is the most advanced and is capable of drawing graphics in realtime. Linux users still have to make do with the command line variant, viewing the resulting images in a separate viewer. However, a programmer known as Momo has written a small GUI in Python that at least shows you the graphics, although it does not give you rendering in realtime [6]. Context Free not only creates quality images, it can also give you more or less any size you like. If you don't feel like learning the CFDG language (although it is quite easy to learn), you can select from a wide range of completed files, which you can modify to suit your taste.

Go Problems

If you have ever played the game of Go, you may be aware of the complexities of devising a useful game plan. Go has less, and far simpler, rules than the western world's chess, with which it is often compared. Although you might consider this an advantage at first sight, Go's simplicity can be a real challenge. Where do you start on the enormous board, and where do you put your counters without any rules to restrict your choice?

The best answer to this kind of confusion is experience, and you can gain experience on the Internet Go Server, IGS, if you don't have anyone to play against [7]. To supplement the Go Server, the GoGrinder program by Tim Kington gives players Go puzzles to solve [8]. The Java software comes with a selection of about 350 Go puzzles, but you can add new challenges in SGF format - or download from [9], for example.

Figure 3: The Java program GoGrinder reads Go puzzles, and lets users solve them on screen.

Just like many other free software projects, GoGrinder is looking for donations. However, this money does not go into the programmer's pockets; instead it goes to the Electronic Frontier Foundation (EFF) [10], which has supported the right to freedom in the electronic space for many years.

Debian News

The GNU Free Documentation License - GFDL for short - has repeatedly caused a stir at Debian in recent months. Richard Stallman himself recently poured oil into the flames by calling on Debian to finally accept the GFDL in a posting on the EMacs mailing list. Making the GFDL compatible to the GPL would mean abolishing it, says Stallman. Of course, Debian takes a different view and plans to remove all GFDL-licensed documentation prior to the Debian GNU/Linux Etch release. It remains to be seen what the outcome will be.

Former Debian release manager Anthony Towns recently proposed a vote on publicizing parts of the Debian-Private mailing list archives. Towns stated that the time had come to allow the public to read the discussions that led to the Debian Social Contract and the Debian Free Software Guidelines. Towns argued that it was important to publish the historic correspondence in the light of Debian's credo of transparency.

The members of the Debian project did not follow Towns' argument, and the proposal was turned down when the deadline for the vote expired December 31. Although the developers made a vague promise that email from the private list could be published under certain circumstances in the future, Towns definitely failed to achieve his objective [11].

It has taken a while, but the first update for Debian GNU/Linux Sarge is now available, although the word "update" has to be taken with a pinch of salt. The only changes introduced to a stable Debian version are critical changes such as security patches. An update would also be acceptable if a Sarge package were completely broken.

Stable Release Manager Martin Schulze has published a list of changes to the distribution at [12]. The revised distribution is denoted by the 3.1r1 version number. The update includes a total of 189 security patches released after the first official version 3.1. One of the few non-security-relevant changes associated with the next version of Debian is that the revised version of Samba now supports the 64-bit version of Windows XP.

All of these patches were made available to security-aware users via the Debian FTP server over the course of the past few months. If you already have a patched Sarge system, there is no need to update to version 3.1r1. However, it makes sense to use the CD images provided by Debian for future installations [12].

Debian Release Schedule

Andreas Barth, a member of the Debian release team, recently reported on the progress of the upcoming Debian releases on the Debian-Devel-Announce list [13]. Barth reports that, thus far, the release team has kept to the release schedule that was published in December 2005. Based on the current status of the project, Debian GNU/Linux Etch would support eight architectures.

In the process of re-qualification for the various architectures, the Debian developers checked whether the architectures supported by Sarge fulfilled specific criteria, such as the number of packages for the architecture in the Debian archive and whether those packages actually worked. Architectures that failed to meet these criteria were temporarily excluded from the Etch release. Debian intends to have another qualifying round in two months that will give all architectures an opportunity to re-qualify.

Barth also announced that the most critical transitions for the Etch project have been completed. In other words, Etch now uses GCC 4 as its default compiler, a safe investment in the future, considering that the GCC developers have promised not to introduce any changes to the compiler in the next few months.

On the other hand, Barth sees the need to do something about the enormous numbers of release-critical errors that have so far plagued the development effort. The graph in the Debian bug diagram at [17] skyrocketed during the transitions in the past few months (Figure 4). The developers working on Debian simply couldn't squash bugs as quickly as they occurred.

Figure 4: Release-critical errors at Debian sky-rocketed during various transitions in the past few months.

To counter this continuing problem with bugs, the release team reintroduced the submission rules that applied in the months preceding the Debian Sarge release. These rules state that a developer is allowed to upload a package after removing critical errors, and after informing the package maintainer. Let's hope the 24x7 bug squashing party has the positive effect it had last time.

INFO
[1] Redet: http://www.billposer.org/Software/redet.html
[2] Active Tcl: http://www.activestate.com/Products/ActiveTcl
[3] Context Free: http://www.ozonehouse.com/ContextFree
[4] Chris Coyne: http://chriscoyne.com/cfd
[5] Scigen: http://pdos.csail.mit.edu/scigen
[6] Linux GUI for Context Free: http://dospeixos.net/projects/contexteditor
[7] Internet Go Server: http://www.pandanet.co.jp/English
[8] GoGrinder: http://gogrinder.sourceforge.net
[9] Go problems: http://goproblems.com/download.html
[10] EFF: http://www.eff.org
[11] Website with voting results: http://www.debian.org/vote/2005/vote_002
[12] Martin Schulze's posting on Debian Sarge 3.1r1: http://www.debian.org/News/2005/20051220
[13] Mail from Andreas Barth from the archive: http://lists.debian.org/debian-devel-announce/2006/01/msg00001.html
[14] Official website of the Debian project: http://lwww.debian.org/
[15] Debian Social Contract: http://www.debian.org/social_contract
[16] Debian Free Software Guidelines: http://www.debian.org/social_contract#guidelines
[17] Debian bug diagram: http://bugs.debian.org/release-critical/