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

[DE | EN | FR | JA | ES | KO | PT]

Welcome to another issue of Georg's Brave GNU World. This issue covers a rather wide spectrum of applications that most people should normally not be concerned with but might be interested in learning about.


GCompris [5] by Bruno Coudoin is a rather fresh addition to the GNU Project in the "Free Software and Education" area.

Children tend to learn a lot while playing with their environment, which is why many programs try to teach their lessons in game-form. Unfortunately these programs are usually proprietary. Closing this gap for pedagogical software is the goal of GCompris.

The program itself is based upon "boards." Bruno sees a board as a unit that introduces or exercises a concept. The goal is not so much deep knowledge but rather making training a concept a fun process.

There are several programs that Bruno would consider to be "board based" - but they all use different libraries, have different user interfaces and their development proceeds with wildly varying speeds. These circumstances complicate finding and using them.

To avoid this, GCompris has two essential parts: the engine to create, modify and execute boards and a collection of boards for different concepts.

The engine has been written in C using the GNOME libraries and has a very simple user interface that has been created especially for children. The program is available in 7 languages and is already being used successfully in schools and homes around the world. This means a lot to Bruno and is also quite remarkable as the program is only one year old.

He is not yet satisfied with the graphical side of GCompris, but now Linuxgraphics [6] will be handling this part. If you are interested in participating in the graphical part, they would be the ones to contact.

The next programming task will be the creation of a board-editor that can also be used by computer-illiterates. Right now boards are being written as C plugins with XML as the data format, which is asking a little too much of some teachers. Help creating an easy-to-use board-editor is welcome.

But even if the board-editor is not yet ready, there are already several boards available. Mong them are training for keyboard and mouse, reading the clock, a puzzle with famous paintings and easy calculus.

To keep the program simple only the GNOME canvas is currently used for implementation of the boards. Extending this to other widget drawing areas is a technical task for the future.

This French program is pronounced "j'ai compris," which means as much as "I have understood" and was originally written by Bruno Coudoin for his own children. And he would especially like to thank his children for their patience because the program evolves far too slowly for them.

FSFE - Free Software and Education

Related to this I would like to point out that the Free Software Foundation Europe [7] has made the support of Free Software in Education one of its declared goals at its general assembly this year.

This goal is pursued together with the "Organization for Free Software in Education and Teaching" (Ofset) [8], which has recently become an official associate organization of the FSF Europe.

In order to bring together all the different initiatives, people and organizations that are active in this area, a special mailing list [9,10] has been created. Several people have already joined and introduced themselves. The next step will be to launch a meeting of everyone involved.

Then we can discuss together which concrete measures can effectively support Free Software in Education. If you would like to join this process, you're very welcome.

Chemical Development Kit

In a way, this feature is a followup to the "Jude" feature of issue #27 [11], which introduced Jude by its usage in the Crystal Engineering Laboratory of Ciamician, the chemical department of University of Bologna, Italy. In this feature the chemical functionality has not been discussed, which is what I would like to do now.

I will talk not only about the Chemical Development Kit (CDK) [12], but also about Jmol [13] and JChemPaint [14], whose maintainers Christoph Steinbeck and Dan Gezelter launched the CDK together with Egon Willighagen about half a year ago.

The Chemical Development Kit (CDK) is a Java-Library aiming at providing all the basic classes and tools for chemical software under the GNU General Public License. Its design is partially based on the experiences Egon Willighagen made with his CompChem/CDK library that had some flaws in the API.

The project itself is still in a rather early stage, so it makes no sense to talk about already implemented classes and functionalities. More recent information about this can be found in the documentation of the API on the CDK home page [12].

Jmol [13] was originally a program for the simple and easy 3D-visualization of chemical structures as an alternative to XMol. Functionality for editing molecules, simple minimalizations based on force-fields, molecular dynamics (microcanonical ensemble) and langevin dynamics (canonical ensemble) is planned.

Jmol is also based on Java and uses the SWING toolkit for its graphical user interface. Just like the CDK it is available under the GNU General Public License. The big advantage of Java-based applications is certainly their high portability. Additionally, Jmol can be used as an applet in web pages and is scriptable.

JChemPaint [14] is a 2D-based editor for chemical structures with the intention to provide a 2D extension for Jmol. It supports a lot of the standard features of proprietary programs already and can create output in bitmap, Postscript and Scalable Vector Graphics (SVG) form.

Like the other two, JChemPaint is based on Java, but it is licensed under the GNU Lesser General Public License. It is as portable as Jmol and can also be used as a web site applet.

The Chemical Markup Language (CML) [15] is being supported by both programs.

The long-term plan is to make both Jmol and JChemPaint use the CDK; and ultimately to unite the two.

These projects already provide chemists, biologists and others working on the molecular level an impressive array of features based on Free Software. Even if a particular piece of functionality is not yet supported, I would recommend people help these projects along rather than invest in proprietary software.

Although this may seem more complicated at first, it does offer many advantages in the medium and long term.

New ideas can be followed through subsequently without being stopped by the limits of proprietary software. This is essentially a direct result of philosophy of Free Software being based upon the scientific principle. Also only Free Software can guarantee reproduceable results.

Scientific software should always be Free Software.


Guillaume Desnoix is the author of Alma [16]. Alma stands for "Atelier Logiciel de Modelisation er d'Analyse," which means "workshop for software analysis and modelling."

Alma reads different sources (models, source code) and helps the user design and modify the object-oriented model, modify the structure and code and create new output in the end.

This can be done in many formats. Alma supports Java, Idl, XMI, C, C++, Fortran, Rose, MDL, Class, JavaP, Taglip, JSP as input formats and the output can be done in the form of source code, documentation, diagrams or a natural language.

Alma offers easy capabilities to declare and change classes. It is especially useful for developers who seek to incorporate old code in a new project or who wish to translate a project into a new programming language. It can also be very useful for ports or encapsulation.

According to Guillaume, the special advantage of Alma is its real NxN mapping with a common editable model. There are other projects to analyze, translate or beautify source code, but these usually only work unidirectionally between two languages.

But Alma is a very big project. Therefore half of the parsers and generators for the different languages are still alpha-stage. This lets the specialized programs mentioned above still do a better job in their respective tasks, but their concept has strong limitations.

Alma is written in Java 1.1 and can be used on almost any computer. It can be used commandline-based or through a GUI. The console part can even be compiled with GCJ or run on Kaffe.

Currently, there is about one release per month, increasing the version number by 0.01. Taken as a basis, this would mean that version 1.0 of the project would be ready in July 2006. Interested developers should risk a look before that, though.

Alma is published under version 2 of the GNU General Public License, so it is Free Software. Normally, a program is licensed under the GPL version 2 or - at the users discretion - any later version. Limiting the choice to version 2 is something seen sometimes, so I'd like to say a few words about it.

The argument for this step is usually that later versions of the GPL are not yet known. Because of this one cannot know whether the later versions will be good. This may seem logical, in the end it does create weaknesses, however.

Given the case that a later version of the GPL is not accepted by the author or the users, the program can still be used under version 2 of the GPL, there is no enforcement to use the later license.

But in the case that an update of the GPL becomes necessary because the laws change and version 2 now has problems with the law, a restriction to version 2 will leave the program without a valid license. If all authors are reachable, this can be solved easily. But very often authors disappear or lose track of a project.

So limiting the license to version 2 does not offer any benefits and creates potential problems.

Another thing should also be said. The author of Alma is very happy that so many people apparently understand the difference between free beer and Free Software. On his page you'll find a questionnaire and a possibility to purchase the program for 10 USD.

There is no enforcing this payment, but the user is being asked to pay if he/she uses one of the many automated installers for the different platforms. This is one of the possible ways to "sell" GPL software in harmony with the GPL and we can only hope this will become more common with working micropayment systems.


Thanks to the work of Werner Koch, we now have libgcrypt, a library of cryptographic functions under the GNU General Public License. This library is part of the GNU Privacy Guard (GPG) Project and can be found on its home page [17].

Other cryptographic libraries are eiter not free or under GPL-incompatible licenses like OpenSSL. Since the majority of Free Software is under the GNU General Public License, libgcrypt closes a very important gap.

Libgcrypt falls back on the very solid base of the GnuPG project, so the cryptographic routines are thoroughly tested already. Still the project has to be considered Alpha-Software according to Werner, because the API has only been finished very recently.

Despite this warning, libgcrypt can already be used - and is. Nikos Mavroyanopoulos, who supported Werner with the development of the libgcrypt, is using it in the GNUTLS library that was featured in issue #25 [18].

The special strengths of the libgcrypt are the extensible API for public key functions and the access to the internal functions for big integers. Also extension modules can be loaded dynamically.

The library can be used on Unix-like systems and W32 platforms. Plans for further development are generating a stable release and improving some of the internal implementations, also some high-level functions to deal with OpenPGP data structures are to be added. And of course GnuPG will be ported to libgcrypt.

One thing Werner would like to see mentioned is that usage of the libgcrypt requires a certain awareness of cryptography. Just using a few algorithms in a program will do no good if the design isn't structurally sound.

Given the tendency of some developers to put steel doors in cardboard houses, this seems to be a good advice.

see you

Alright. That was the Brave GNU World for this month. As usual I'd like to encourage you to comment. Ideas, criticism and questions are very welcome.

With regard to new projects, I'd like to emphasize the importance of the readers of the Brave GNU World. Very often they made an interesting feature possible by remembering to send mail [1] when stumbling upon an interesting project.

[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] GCompris home page http://savannah.gnu.org/projects/gcompris
[6] Linuxgraphics home page http://www.linuxgraphic.org
[7] Free Software Foundation Europe home page http://fsfeurope.org
[8] Ofset home page http://www.ofset.org
[9] "Free Software and Education" mailing list: <edu@fsfeurope.org>
[10] "Free Software and Education" mailing list home page http://mailman.fsfeurope.org/cgi-bin/mailman/listinfo/edu
[11] Brave GNU World issue #27 http://www.gnu.org/brave-gnu-world/issue-27.en.html
[12] Chemical Development Kit (CDK) home page http://cdk.sourceforge.net
[13] Jmol home page http://jmol.sourceforge.net
[14] JChemPaint home page http://jchempaint.sourceforge.net
[15] Chemical Markup Language home page http://www.xml-cml.org
[16] Alma home page http://www.memoire.com/guillaume-desnoix/alma/
[17] GNU Privacy Guard home page http://www.gnupg.org
[18] Brave GNU World issue #25 http://www.gnu.org/brave-gnu-world/issue-25.en.html

[ previous issue | Brave GNU World home | next issue ]

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) 2001 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: Mon Jul 2 16:23:05 CEST 2001