[image of a Brave GNU World]
Brave GNU World - Issue #44
Copyright © 2002 Georg C. F. Greve <greve@gnu.org>
Permission statement below.

[CN | DE | EN | FR | IT | JA | ES | KO | PT | ZH]

Welcome back to the Brave GNU World. Firstly I'd like to apologize to all of you who were disappointed to not find the Brave GNU World in its usual place when going through the magazine(s) or web. Directly before the column needed to be written I broke my clavicle. This put typing way beyond my capabilities.

After this extremely unvoluntary pause things should continue as usual with a good mix of different subjects.

Gnuzza (CryptChat)

Still in beta-testing, but already being used is Gnuzza (ChryptChat) by Timo Schulz. The project began when a friend of his was asking him for a secure chat program that would work on GNU/Linux and Windows. So Timo began writing one and July 2001 version 0.0.3 of Gnuzza was published under the terms of the GNU General Public License (GPL) as Free Software.

Gnuzza is a "peer to peer" (p2p) chat progam with strong cryptography, so it allows two people to chat via keyboard while preserving their privacy. Also they can mail each other files through the encrypted channel.

Based on the GNU cryptography library libgcrypt, [6] Gnuzza supports Diffie Hellman key exchange (1024 up to 4096 bit) as well as the symmetrical algorithmy 3DES, BlowFish, Twofish, CAST5 and Rijndael. Gnuzza default is to use asymmetrical encryption, though, since this makes commonly known passwords unnecessary. Authentification of users is easily done through OpenPGP compliant keys in this case.

Gnuzza has been written in ANSI C with a ncurses user interface, which makes it fast and resource friendly. It runs on GNU/Linux, on which the required libraries are installation standard for most distribution, and Windows, for which dependency on DLLs has been minimized.

Owing to ncurses the program has a text-based user interface, but some users would probably prefer a truly graphical user interface. For these Timo is considering a GTK+/GNOME/KDE GUI - but he does not have any experience with GTK+ and is therefore looking for volunteers to take care of this part of the project.

Besides the aforementioned, tracing down and eliminating bugs is in the focus of his interest. Should you be wondering now whether you should give it a try, it should be pointed out that thanks to thoroughly considered default settings, knowledge about cryptography is only required for the advanced functionality. So if you are not afraid of beta software, you should not find it difficult to use Gnuzza.

A word of warning for those intending to use it on Windows, however: Don't put too much trust into the security of the application, because every chain is only as strong as its weakest link. So it could happen that data is transmitted into the Gnuzza client on Windows securely only to be passed on by the operating system itself to a third party.

Or to put it plainly: Building steel doors into cardboard houses is only of limited use.

GNU Aspell

Among the applications that are generally useful for most users are certainly automatic spell checkers. GNU Aspell [7] is such a program and since August 2002 it is part of the GNU Project.

Until the Aspell project was started, there was only one spell checking program that was Free Software: International Ispell. [8] Naturally, Ispell turned out to be rather widespread on most Unix machines and was also the standard spell checker for the GNU System. Unfortunately, the intelligence of suggestions made by Ispell was noticeably below those made by proprietary spell checkers.

For this reason and based on the "Lawrence Philips' Metaphone Algorithm," which allows approximating the English pronounciation of a written word, Kevin Atkinson began working on Aspell in 1998. It was first released in September 1998 under the name Kspell, but since the KDE spell checking project was also called Kspell, he changed the name to Aspell.

During the next years, Kevin dedicated a lot of his time to the rather intensive development of Aspell. Concepts were tried, overhauled and sometimes discarded. He for instance sought to create one generic interface for all spell checkers present on the system called Pspell. Unfortunately it complicated rather than simplified life of everyone involved. Therefore Pspell hs vanished into Aspell since version 0.5.

Something else he put a lot of effort in were generating better word lists based on the ones provided with Ispell. Very carefully he separated the English lists into British, American and Canadian spelling. The results of that work are also published separately. [9]

After the August 2002 release of GNU Aspell 0.5, Aspell is now seeking to replace Ispell especially on GNU/Linux distributions. Given its pretty impressive track record, it seems like this will merely be a matter of time.

GNU Aspell cannot only be used directly as a spell checking program with nice ncurses user interface, it also allows being linked by other programs as a library. And the suggestions made by GNU Aspell are significantly better than those of Ispell or those by Netscape 4.0 or Microsoft Word 97. To quantify this, Kevin developed a test environment that is available along with the results it created on the GNU Aspell web page. [7]

It appears that those tests were only made for the English language, however, even if word lists for other languages exist. For these languages it would probably be useful to find native speakers who would be willing to come up with similar tests. But even if you are just a normal user you can improve the results, because GNU Aspell learns from the mistakes users make.

Whether used as a program or linked to as a library, GNU Aspell is multi-process aware. Personal dictionaries of a user are available to all Aspell process of that user and changes are automatically being propagated between the GNU Aspell processes. Any user can have several personal dictionaries, though.

In order to keep the memory usage acceptable with all these extended capabilities, all GNU Aspell running on one system share the general/common dictionaries. The price GNU Aspell still had to pay for its extended features are a higher memory profile than Ispell.

This might also be caused by the circumstance that Ispell supports the so-called "Affix Compression" and GNU Aspell currently does not. Affix compression works because many words consist of one base word combined with different affixes. So the final word is built by one base word with an infix, prefix or postfix.

Word lists with affix compression contain the base word with possible affixes. The English words "alarm alarms alarmed alarming" might for instance be compressed to "alarm/SDG". Especially for languages with massive affixation (like German, for example) this might make quite some difference.

Although GNU Aspell is geared towards multi-process enviroments, developers should note that it should not be considered "Thread Safe" yet. Achieving this is currently quite high on the priority list.

Other items are work on the manual, adaptation to the GNU coding standards, completion of UTF-8 support, support for dynamically loadable filters and writing a C++ interface. Also customizing the ispell.el EMACS module is yet to be done.

And finally Kevin Atkinson plans to import the affix compression code written by Kevin Hendricks for the OpenOffice lingucomponent into GNU Aspell.

But even if there is still quite some work going on with GNU Aspell, this should not discourage anyone from using it already, because since version 0.50.2, GNU Aspell certainly is up to par with other spell checkers currently being used. Although Kevin did not feel he should name it version 1.0 yet, which is rather typical for Free Software developers.

It should be noted that Kevin Atkinson essentially did all the work on GNU Aspell himself. But he would certainly appreciate help and if you are looking for an interesting project that will be around and used by many users for a long time to make your name immortal, this is certainly a good possibility.

Experienced readers of the Brave GNU World will have noticed that so far no word about the license status of GNU Aspell has been said, although it should be clear that GNU Aspell is Free Software, since it is part of the GNU Project.

GNU Aspell has originally been released by Kevin Atkinson himself under the GNU Lesser General Public License (LGPL). In order to secure the legal maintainability and therefore the long-term survival of his project, Kevin assigned his rights to the Free Software Foundation North America, making it the fiduciary for his interests.

Despite the fact that the FSF North America would consider it more useful to release GNU Aspell under the GNU General Public License (GPL), it continues to release GNU Aspell under the GNU Lesser General Public License because Kevin considered this very important to him.

There quite a bit of reasoning behind these different positions that is not only interesting but also important, so I would like to try and shed some light on them.

GPL or LGPL?

Kevin Atkinson wants to see GNU Aspell become the de-facto spell checker for GNU/Linux and other Free operating systems. Especially in projects such as OpenOffice and Mozilla he would like to see adaption of GNU Aspell.

Since there are also proprietary spin-offs of OpenOffice and Mozilla, he is afraid that the projects won't use GNU Aspell at all if it was licensed under the GNU GPL.

Of course the proprietary spin-offs could use GNU Aspell through an external program execution. This might be less effective, but it is a possible alternative.

So Kevins position is largely based on his wish to see GNU Aspell spread as much as possible and the fear that including GNU Aspell under the GNU General Public License would create too many problems for projects with proprietary spin-offs.

Undoubtedly it would be very good if GNU Aspell was widely adopted by many people since it would bring all these users freedom in their spell checking. But there is also another side to the issue.

One of the fundamental understandings on which the GNU General Public License is built is that there will always be people who are willing to profit even at someone elses expense. And you can not rely on the goodness at heart of companies and managers alone.

Or shortly: Those who do not defend their freedom are bound to lose it!

The GNU Lesser General Public License (LGPL) is a modification of the GPL, purposefully limiting the protection of freedom in one significant aspect: It allows to link the code with proprietary applications.

In the past this has often been useful or even necessary and central components such as the GNU C library have been published under the LGPL.

Free Software offers a new paradigm for software with many advantages. Fast and "predatory" profits sought by some companies are not one of its properties; the rewards and advantages of Free Software are more in the mid- to long-term.

By burning large amounts of money, proprietary software can sometimes create problems for Free Software in the short term to push Free Software out of or ban it from an area in order to protect or gain a monopoly. This may then be very hard to undo later.

When people choose their software based on short-term, technical features because they have not understood that software always has a macro-economical, cultural, social and ethical component, that danger increases. Because someone not understanding the bigger gestalt will switch back to proprietary software as quickly as he or she tried Free Software.

Within the Free Software scene, we're seeing that some people are more involved with the Free Software mentality and others heading more towards Open Source. This shows that even within the classic scene of Free Software this understanding is not yet fully developed. Outside of this group things look even worse.

As long as the understanding of these questions is not common knowledge, Free Software is facing a problem: Proprietary software can exploit unprotected or too weakly protected Free Software almost totally, whereas the opposite is clearly not true.

Unsatisfactory protection of Free Software creates an imbalance favoring proprietary software. This at least makes it harder for Free Software to gain also a short-term, technical advantage over proprietary software.

As already mentioned, Free Software is a new paradigm, it creates a new market with new rules and mechanisms. Every market has its rules and it is important for all participants to uphold and protect these rules in order to protect the individual and the market as a whole.

The market of Free Software is still being built and in a somewhat early phase. The majority of participants has not yet fully understood the rules and mechanisms, although most of them abide them.

Considering what has been said before, it is not surprising that the GNU General Public License with its strong protection of freedom has become the predominating license, under which more than 50% of all Free Software is published.

To me this seems like it is the natural consequence of the mechanisms at work and it is also strong evidence that the GPL hasn't taken over the market, it rather created it. This means that the market of Free Software has shaped itself largely because of and around the GNU General Public License.

To prevent misunderstandings I'd like to emphasize that this does not mean the GPL is the only acceptable license. Other licenses like the LGPL or licenses with even fever protection like the BSD style licenses are also a part of Free Software and can at times even be the most useful choice.

The question whether weak protection is the best choice for GNU Aspell is what started this article. From the perspective of the FSF, things look different than they do for the author.

Thanks to Ispell, Free Software already has a widely established spell checker that may have its weaknesses, but it was able to fill the gap for many years with a non-protective license.

Building upon this, GNU Aspell could now give every Free Software package dealing with text a significant technical advantage over similar proprietary products in order to balance the short-term power relationship in favor of Free Software.

Also it would increase the incentive to release projects based upon GNU Aspell as Free Software.

In reference to the projects OpenOffice and Mozilla, the possible problems of which were a major reason for Kevin to prefer the LGPL, it should be noted that there seems to be no striking reason to release the commercial versions as proprietary software.

Especially with OpenOffice the major reasons for people to buy the proprietary StarOffice seems to be the apparently very good handbook, the support and the liability. None of these depends on StarOffice being proprietary, they wouldn't change if it was released as Free Software.

If somebody thinks they really have to create a proprietary version of one of these projects, of course they could. But we as the Free Software community should as ourselves why we would want to give them GNU Aspell to produce better proprietary software.

Enough of this topic, I hope I've at least managed to shed some light from different angles on this sometimes pretty complex topic.

If you are interested in reading more about these questions or would like to see it covered from a different angle, reading the article by Richard Stallman on the GNU web page is recommended. [10]

Gnutemberg! Free Documentation Database

Simo Sorc, the Italian translator of the Brave GNU World, recommended the "Gnutemberg! Free Documentation Database" (GFDD) project [11] from Italy.

Being part of the "Gnutemberg!" project, [12] GFDD aims to create and maintain a database of Free Documentation. In order to ensure its freedom, only documents published under a FSF approved Free Documentation License [13] are being added to the database.

The technical implementation is done in PHP and PostgreSQL, based upon the "Dublin Core Metadata Element Set" abd tge "Open Source Metadata Framework." [14] Naturally, all code is being published as Free Software under the GNU General Public License.

A user can publish documentation or translate it and with a search engine it is possible to search for fields like author, publication date, title, language, translations, ISBN No., pages, price or other notes.

The project is being maintained by Gaetano Paolone, Marco Presi, Simone Merli, Marco Milanesi, Alceste Scalas and Donato Molino, but they are still looking for help on both the technical and the content side.

Sice documentation is an incredibly important and much too often neglected area, I hope that they will find many volunteers.

See you

That should be enough for this month; unless other catastrophes happen, the next column will arrive next month.

Of course I cannot close the column without having asked for lots of feedback, information, ideas, questions or hints about potentially interesting projects by mail. [1]

Info
[1] Send ideas, comments and questions to Brave GNU World <column@brave-gnu-world.org>
[2] Home page of the GNU Project http://www.gnu.org/
[3] Home page of Georg's Brave GNU World http://brave-gnu-world.org
[4] "We run GNU" initiative http://www.gnu.org/brave-gnu-world/rungnu/rungnu.en.html
[5] Gnuzza (CryptChat) home page http://www.winpt.org/cryptchat/
[6] Libgcrypt home page http://www.gnupg.org/
[7] GNU Aspell home page http://aspell.net
[8] International Ispell home page http://fmg-www.cs.ucla.edu/fmg-members/geoff/ispell.html
[9] GNU Aspell word lists http://wordlist.sourceforge.net
[10] Richard Stallman - "Why you shouldn't use the Library GPL for your next library" http://www.gnu.org/licenses/why-not-lgpl.html
[11] GFDD - Free Documentation Database home page http://www.gfdd.org
[12] Gnutemberg! home page (Italian) http://www.gnutemberg.org
[13] Free Documentation Licenses http://www.gnu.org/philosophy/license-list.html#FreeDocumentationLicenses
[14] Dublin Core Metadata initiative http://www.dublincore.org

[ previous issue | Brave GNU World home ]

Return to GNU's home page.

Please send FSF & GNU inquiries & questions to gnu@gnu.org.
There are also other ways to contact the FSF.

Please send comments on Georg's Brave GNU World (in English or German) to column@gnu.org,
send comments on these web pages to webmasters@www.gnu.org,
send other questions to gnu@gnu.org.

Copyright (C) 2002 Georg C. F. Greve

Permission is granted to make and distribute verbatim copies of this transcript as long as the copyright and this permission notice appear.

Last modified: Sat Oct 12 20:03:10 CEST 2002