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

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

Willkommen zu einer weiteren Ausgabe von Georg's Brave GNU World. Diesen Monat habe ich wieder einmal eine recht bunte Mischung aus verschiedenen Themen, die Einblicke in einige Gebiete ermöglichen, mit denen die Meisten normalerweise nicht in Berührung kommen dürften.

GCompris

GCompris [5] von Bruno Coudoin ist ein noch recht frischer Neuzugang zum GNU-Projekt im Bereich "Freie Software und Bildung."

Kinder lernen sehr viel im spielerischen Umgang mit ihrer Umwelt, weshalb sich viele Programme bemühen, ihre Inhalte in Form eines Spiels zu vermitteln. Leider sind diese Programme zumeist proprietär. Diese Lücke im Bereich der pädagogischen Software zu schließen, ist das Ziel von GCompris.

Das Programm baut auf sogenannten "Boards" auf. Dabei versteht Bruno unter einem Board eine Einheit, die ein Konzept einführt oder übt. Es geht weniger um tiefergehendes Wissen sondern vielmehr um den spielerischen Umgang mit einem Konzept.

Es gibt etliche Programme, die Bruno zu den "board based" Programmen zählt - allerdings besitzen diese alle unterschiedliche Benutzerschnittstellen und Bibliotheken und entwickeln sich in sehr unterschiedlichen Geschwindigkeiten weiter. Diese Tatsachen machen es schwer, sie zu finden und stellen zudem Hürden in der Benutzung dar.

Daher besteht des GCompris Projekt aus zwei wesentlichen Teilen: einer Engine zum Erstellen, Ändern und Ausführen der Boards und einer Sammlung von Boards für unterschiedliche Konzepte.

Die Engine ist in C unter Verwendung der GNOME Bibliotheken geschrieben worden und verfügt über eine sehr einfache und speziell für Kinder entworfene Benutzerschnittstelle. Das Programm ist in 7 Sprachen verfügbar und wird bereits weltweit erfolgreich in Schulen und zu Hause eingesetzt, was Bruno natürlich außerordentlich freut. Da das Projekt erst ein Jahr alt ist, ist dies durchaus beachtlich.

Mit der grafischen Seite von GCompris ist der Autor noch nicht zufrieden, allerdings hat sich jetzt Linuxgraphics [6] dieser Aufgabe angenommen und wer Lust hat, sich in die grafische Arbeit einzubringen, der ist dazu aufgefordert, sich ihnen anzuschließen.

Die nächste Aufgabe in der Programmierung wird die Erstellung eines Board-Editors sein, der auch von Computer-Laien benutzt werden kann. Bisher werden die Boards als C Plugins mit XML als Datenformat geschrieben, was für manchen Lehrer einen zu großen Aufwand darstellt. Hilfe beim Erstellen des Board-Editors ist willkommen.

Doch auch wenn der Board-Editor noch nicht fertig ist, stehen bereits etliche Boards zur Verfügung. Dazu zählen u.A. Training für Tastatur und Maus, Lesen der Uhr, ein Puzzle mit berühmten Gemälden und einfache Rechenaufgaben.

Um das Programm einfach zu halten, wird ausschließlich die GNOME Canvas zur Implementierung der Boards verwendet. Die Erweiterung auf andere "widget drawing areas" stellt ein technisches Problem für die Zukunft dar.

Das in Frankreich beheimatete Programm spricht sich übrigens in französisch "j'ai compris" aus, was soviel heißt wie "ich habe verstanden" und wurde von Bruno Coudoin ursprünglich für seine eigenen Kinder geschrieben. Und eben seinen Kindern möchte er für ihre Geduld mit GCompris danken, da es sich für ihren Geschmack viel zu langsam entwickelt.

FSFE - Freie Software und Bildung

In diesem Zusammenhang möchte ich kurz darauf hinweisen, daß die Free Software Foundation Europe [7] die Förderung Freier Software in der Bildung auf ihrer Mitgliederversammlung zu einem der erklärten Ziele in diesem Jahr gemacht hat.

Dieses Ziel wird gemeinsam mit der "Organization for Free Software in Education and Teaching" (Ofset) [8], seit kurzem assoziierte Organisation der FSF Europe, verfolgt.

Um zunächst die vielfältigen Initiativen, Personen und Organisationen, die sich auf diesem Gebiet tummeln, an einen Tisch zu bringen, wurde eine eigene Mailingliste [9,10] eingerichtet. Auf dieser Liste haben sich bereits etliche Teilnehmer eingefunden, um sich vorzustellen und der nächste Schritt wird sein, alle Beteiligten an einen Tisch zu bringen.

Dann kann gemeinsam beratschlagt werden, welche konkreten Maßnahmen sinnvoll Freie Software in der Bildung unterstützen können. Wer sich in diesen Prozess einbringen möchte, ist herzlich willkommen.

Chemical Development Kit

Bei diesem Beitrag handelt es sich genau genommen um einen Folgebeitrag zu dem "Jude" Teil in Ausgabe #27 [11], in dem Jude anhand seiner spezifischen Anwendung im Fachbereich Chemie der Universität von Bologna, Italien vorgestellt wurde. Es wurde dabei nicht auf die zugrundeliegenden chemischen Funktionalitäten eingegangen, was an dieser Stelle nachgeholt werden soll.

Genau genommen wird in diesem Beitrag neben dem Chemical Development Kit (CDK) [12] auch auf Jmol [13] und JChemPaint [14] eingegangen, deren Maintainer Christoph Steinbeck und Dan Gezelter gemeinsam mit Egon Willighagen das CDK vor etwa einem halben Jahr ins Leben riefen.

Das Chemical Development Kit (CDK) ist eine Java-Bibliothek, die alle grundlegenden Klassen und Werzeuge für chemische Software unter der GNU General Public License zur Verfügung stellen soll. Dabei wird u.A. auf die Erfahrungen zurückgegriffen, die Egon Willighagen mit seiner CompChem/CDK Bibliothek gemacht hat, da deren API für einige Anwendungen nicht geeignet war.

Das Projekt selber ist noch in einem frühen Stadium, daher soll an dieser Stelle nicht viel über bereits implementierte Klassen und Funktionalitäten gesprochen werden. Mehr und aktuellere Informationen hierzu finden sich in der Dokumentation des API auf der CDK Homepage [12].

Jmol [13] ist ursprünglich ein Programm zur einfachen 3D-Visualisierung von chemischen Strukturen als Alternative zu XMol. Zusätzlich dazu ist geplant Funktionalitäten für die Editierung von Molekülen, einfache Minimalisierungen basierend auf Kraftfeldern sowie Molekulardynamik (mikrokanonisches Ensemble) und Langevin Dynamik (kanonisches Ensemble) hinzuzufügen.

Auch Jmol basiert auf Java und für die grafische Oberfläche wurde auf das SWING Toolkit zurückgegriffen. Es ist ebenso wie das CDK unter der GNU General Public License verfügbar. Der große Vorteil Java-basierter Applikationen ist sicherlich ihre hohe Portabilität. Zudem kann Jmol auch als Applet auf Webseiten eingesetzt werden und ist skriptfähig.

JChemPaint [14] ist ein 2D-basierter Editor für chemische Strukturen, dessen Ziel es ist, eine 2D-Ergänzung zu Jmol zu bieten. Es unterstützt bereits eine Vielzahl der gängigen Features proprietärer Programme und kann neben Bitmap-Ausgaben sowohl Postscript als auch Scalable Vector Graphics (SVG) erzeugen.

Auch JChemPaint basiert auf Java, allerdings kam als Lizenz hier die GNU Lesser General Public License zum Einsatz. Es ist demnach so portabel wie auch Jmol und kann im Übrigen auch als Applet auf Webseiten verwandt werden.

Die Chemical Markup Language (CML) [15] wird selbstverständlich von beiden Programmen unterstützt.

Es ist geplant, sowohl Jmol als auch JChemPaint auf das CDK umzustellen und die langfristige Perspektive ist, beide Projekte miteinander zu verschmelzen.

Damit bietet sich Chemikern, Biologen und anderen auf dem molekularen Level Arbeitenden eine bereits sehr umfassende Funktionalität auf Basis Freier Software. Selbst wenn vielleicht eine bestimmte benötigte Funktionalität noch nicht unterstützt wird, so rate ich dazu, sich lieber an diesen Projekten zu beteiligen und sie in diesen Projekten zu implementieren, als in proprietäre Software zu investieren.

Dies mag auf den ersten Blick schwieriger erscheinen, bietet jedoch deutliche Vorteile in der langfristigen Perspektive.

Neue Ideen können beispielsweise konsequent verfolgt werden, ohne an die Grenzen proprietärer Software zu stoßen. Dies ist letztlich eine direkte Folge der Tatsache, daß die Philosophie Freier Software stark an den Grundprinzipien der wissenschaftlichen Methode angelehnt ist. Außerdem kann nur Freie Software wirklich nachvollziehbare Ergebnisse garantieren.

Wissenschaftliche Software sollte immer Freie Software sein.

Alma

Guillaume Desnoix ist der Autor von Alma [16]. Dabei steht Alma für "Atelier Logiciel de Modelisation er d'Analyse", was "Werkstatt für Softwareanalyse und -modellierung" bedeutet.

Die Aufgabe von Alma ist es, verschiedene Quellen (Modelle, Sourcecode) zu lesen, den Benutzer beim Entwurf und der Modifikation der objektorientierten Modellierung zu unterstützen, die Struktur und den Code zu modifizieren und am Ende eine neue Ausgabe zu erzeugen.

Dabei unterstützt Alma eine Vielzahl an Formaten. Für die Eingabe können Java, Idl, XMI, C, C++, Fortran, Rose MDL, Class, JavaP, Taglip, JSP verwandt werden, die Ausgabe kann z.B. in Form von Sourcecode, Dokumentation, Diagrammen oder einer natürlichen Sprache erfolgen.

Alma bietet eine einfache Möglichkeit, neue Klassen zu deklarieren und ändern. Besonders nützlich ist es für Entwickler, die bestehenden Code in ein neues Projekt einbinden wollen oder aber ein Projekt in eine neue Programmiersprache übersetzen möchten. Auch bei Ports oder Encapsulation kann Alma hilfreich sein.

Der besondere Vorteil von Alma liegt nach Ansicht von Guillaume darin, daß es eine echte NxN-Zuordnung mit einem gemeinsamen veränderbaren Modell unterstützt. Es gibt zwar andere Projekte zur Analyse, Übersetzung oder Verschönerung von Sourcecode, doch diese arbeiten oft nur unidirektional zwischen zwei Sprachen.

Da Alma ein sehr umfangreiches Projekt ist, sind die Hälfte der Parser und Generatoren für die einzelnen Sprachen noch im Alpha-Stadium. Aus diesem Grund sind die oben erwähnten speziellen Programme oft noch besser in ihrer spezifischen Aufgabe, jedoch vom Ansatz deutlich limitierter.

Alma selbst ist in Java 1.1 geschrieben und kann somit auf nahezu jedem Computer benutzt werden. Es läßt sich sowohl über Kommandozeile wie auch GUI benutzen, wobei der Konsolen-Teil mit Hilfe von GCJ kompiliert oder auf Kaffe ausgeführt werden kann.

Augenblicklich gibt es etwa eine neue Release pro Monat, wobei sich die Versionsnummer um 0.01 erhöht. Daher ergibt sich rein rechnerisch die Version 1.0 des Projektes im Juli 2006, dem interessierten Entwickler sei jedoch nahegelegt, sich ruhig vorher mit diesem Projekt zu beschäftigen.

Veröffentlicht ist Alma unter der GNU General Public License Version 2, es ist also Freie Software. Normalerweise wird ein Programm unter die GPL Version 2 oder - nach Entscheidung des Benutzers - jede spätere Version gestellt. Die Beschränkung auf Version 2 der GPL ist eine Eigenheit, auf die ich hier kurz eingehen möchte, da sie hin und wieder auftritt.

Das Argument, mit dem dieser Schritt oft begründet wird, ist, daß spätere Versionen im Augenblick noch nicht bekannt seien. Daher wisse man noch nicht, ob man die späteren Versionen auch gut finde. Dies mag zunächst einleuchtend erscheinen, verringert jedoch die Rechtssicherheit.

In dem Fall, daß eine spätere Version der GPL dem Autor oder den Benutzern nicht gefällt, kann das Programm noch immer unter Version 2 der GPL verwandt werden, denn es existiert kein Zwang zur Verwendung der späteren Lizenz.

Wird jedoch aus irgendeinem Grund ein Update der GPL notwendig, da sich beispielsweise die Rechtslage ändert und Version 2 nun in Konflikt mit geltendem Recht steht, so ist das Programm bei Beschränkung auf Version 2 ohne gültige Lizenz. Für den Fall, daß alle Autoren erreichbar sind, ist dies ein lösbares Problem, doch manchmal verschwinden Autoren von der Bildfläche oder verlieren ein Projekt aus den Augen.

Wofür der Autor von Alma übrigens sehr dankbar ist, ist, daß viele Leute scheinbar bereits den Unterschied zwischen freiem Bier und Freier Software verstehen. Auf seiner Seite befindet sich neben einem Fragebogen eine Möglichkeit, das Programm für 10 USD zu kaufen.

Es gibt keinen Zwang zum Zahlen dieser Summe, jedoch wird man dazu aufgefordert, sie zu zahlen, wenn man einen der zahlreichen automatischen Installer für verschiedenste Plattformen in Anspruch nimmt. Dies ist eine der Möglichkeiten, in Harmonie mit der GPL Software zu "verkaufen," die vermutlich mit funktionierenden Micropayment-Systemen gerade für kleine Projekte eine größere Verbreitung finden wird.

libgcrypt

Dank der fleißigen Arbeit von Werner Koch ist nun mit libgcrypt endlich eine Bibliothek kryptografischer Routinen unter der GNU General Public License verfügbar. Diese ist als Teil der GNU Privacy Guard (GPG) Projekts auf dessen Homepage zu finden [17].

Andere kryptografische Bibliotheken sind entweder nicht frei oder unter GPL-inkompatiblen Lizenzen wie z.B. OpenSSL. Da der Großteil Freier Software unter der GNU General Public License steht, wird mit der libgcrypt also eine sehr wichtige Lücke geschlossen.

Obwohl libgcrypt auf die solide Basis des GnuPG Projektes zurückgreift, die kryptografischen Routinen also als durchaus getestet betrachtet werden können, ist Werner der Ansicht, es solle trotzdem zunächst als Alpha-Software betrachtet werden, da die API erst kürzlich festgeschrieben wurde.

Doch trotz dieser Warnung kann libgcrypt bereits eingesetzt werden - und wird es auch. Nikos Mavroyanopoulos, der Werner bei der Entwicklung von libgcrypt unterstützt hat, setzt es z.B. in der von ihm geschriebenen GNUTLS Bibliothek ein, die bereits in Ausgabe 25 [18] vorgestellt wurde.

Besondere Stärken der libgcrypt liegen laut Werner in der erweiterbaren API für Public Key Funktionen sowie dem Zugriff auf die internen Funktionen für große Integer-Zahlen. Außerdem können Erweiterungsmodule dynamisch eingebunden werden.

Neben Unix-artigen Systemen ist die libgcrypt auf W32 Plattformen einsetzbar. Die Pläne für die weitere Entwicklung sind zunächst eine stabile Release und die Verbesserung einiger interner Implementationen, außerdem sollen ein paar high-level Funktionen zum Umgang mit OpenPGP Datenstrukturen hinzukommen und natürlich soll GnuPG auf die libgcrypt umgestellt werden.

Eine Sache, die Werner dabei gerne erwähnt sehen möchte, ist die Tatsache, daß auch die Benutzung der libgcrypt ein wenig Beschäftigung mit Kryptopgrafie voraussetzt. Es genügt nicht, einfach nur ein paar Algorithmen in ein Programm einzuhängen, wenn das Design des Programms nicht solide ist.

Angesichts der Neigung mancher Entwickler, Panzertüren in Papphäuser einzusetzen, scheint dies ein angebrachter Hinweis.

Bis dann

Okay, das war die Brave GNU World für diesen Monat, wie üblich möchte ich Euch ermuntern, nicht mit Kommentaren, Anregungen, Kritik und Fragen zu sparen.

Was neue Projekte angeht, so haben besonders die treuen Leser der Brave GNU World oft genug den Grundstein für so manches interessante Feature gelegt, wenn sie durch Zufall über ein interessantes Projekt gestolpert sind und geistesgegenwärtig genug waren, es mir mitzuteilen [1].

Info
[1] Ideen, Anregungen, Kommentare an die Brave GNU World: column@brave-gnu-world.org
[2] Homepage des GNU-Projektes: http://www.gnu.org/
[3] Homepage von 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 Homepage: http://savannah.gnu.org/projects/gcompris
[6] Linuxgraphics Homepage: http://www.linuxgraphic.org
[7] Free Software Foundation Europe Homepage: http://fsfeurope.org
[8] Ofset Homepage: http://www.ofset.org
[9] "Freie Software und Bildung" Mailingliste: <edu@fsfeurope.org>
[10] "Freie Software und Bildung" Mailingliste Homepage: http://mailman.fsfeurope.org/cgi-bin/mailman/listinfo/edu
[11] Brave GNU World Ausgabe #27 http://www.gnu.org/brave-gnu-world/issue-27.de.html
[12] Chemical Development Kit (CDK) Homepage: http://cdk.sourceforge.net
[13] Jmol Homepage: http://jmol.sourceforge.net
[14] JChemPaint Homepage: http://jchempaint.sourceforge.net
[15] Chemical Markup Language Homepage: http://www.xml-cml.org
[16] Alma Homepage: http://www.memoire.com/guillaume-desnoix/alma/
[17] GNU Privacy Guard Homepage: http://www.gnupg.org
[18] Brave GNU World Ausgabe #25 http://www.gnu.org/brave-gnu-world/issue-25.de.html

[ 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) 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: Wed Jul 25 16:18:11 CEST 2001