Aus Linux-Magazin 08/2001

Brave GNU World

Diese Kolumne berichtet über aktuelle Entwicklungen innerhalb des GNU-Projektes und versucht, Einblicke in die zugrundeliegende Philosophie zu vermitteln. In dieser Ausgabe: GCompris, FSFE – freie Software und Bildung, Chemical Development Kit, Alma und Libgcrypt.Georg C. F. Greve

Willkommen zu einer weiteren Ausgabe von Georgs Brave GNU World. Diesen Monat habe ich wieder einmal eine bunte Mischung zusammengestellt, die Einblicke in Themen erlauben, mit denen die meisten normalerweise nicht in Berührung kommen.

GCompris

GCompris [5] von Bruno Coudoin ist ein 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 so genannten “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 dem Konzept.

Mit GCompris können kinder das Rechnen lernen

Mit GCompris können kinder das Rechnen lernen

Auch für die Uhrzeit gibt es ein "Board" bei GCompris

Auch für die Uhrzeit gibt es ein “Board” bei GCompris

Mit der Darstellungs-Qualität mancher "Boards" ist der Autor des Programms noch nicht zufrieden.

Mit der Darstellungs-Qualität mancher “Boards” ist der Autor des Programms noch nicht zufrieden.

Es gibt etliche Programme, die Bruno zu den “board based”-Programmen zählt – allerdings besitzen sie alle unterschiedliche Benutzerschnittstellen und Bibliotheken. Auch entwickeln sie sich in sehr unterschiedlichen Geschwindigkeiten weiter. Das macht sie schwer benutzbar.

Daher besteht des GCompris Projekt wesentlich aus zwei 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, und verfügt über eine sehr einfache, speziell für Kinder entworfene Benutzerschnittstelle. Das Programm ist in sieben Sprachen verfügbar und wird bereits weltweit erfolgreich in Schulen und zu Hause eingesetzt, was Bruno natürlich außerordentlich freut. Ein beachtlicher Erfolg für ein Projekt, das erst seit einem Jahr besteht.

Mit der grafischen Darstellung von GCompris ist der Autor noch nicht zufrieden. Allerdings hat sich jetzt Linuxgraphics [6] dieser Aufgabe angenommen; 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 ein Board-Editor sein, der auch für Computer-Laien benutzbar ist. Bisher werden die Boards als C Plugins mit XML als Datenformat geschrieben, was für manchen Lehrer einen zu großen Aufwand bedeutet. Auch beim Erstellen des Board-Editors ist Hilfe von außen jederzeit willkommen.

Auch wenn der Board-Editor noch nicht fertig ist, stehen bereits etliche Boards bereit. Dazu zählen 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 Gnome Canvas zur Implementierung der Boards verwendet. Die Erweiterung auf andere “Widget drawing areas” wird ein technisches Problem für die Zukunft.

Das in Frankreich beheimatete Programm spricht sich übrigens in seiner Muttersprache wie “j’ai compris” aus, was soviel heißt wie “ich habe verstanden”. Der Autor Bruno Coudoin hatte es 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

Ich will kurz darauf hinweisen, dass die Free Software Foundation Europe [7] die Förderung freier Software im Bereich der Bildungs- und Lehr-Programme 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 diese Liste haben sich bereits etliche Teilnehmer eingeschrieben, um sich vorzustellen. Der nächste Schritt wird sein, alle Beteiligten an einen Tisch zu bringen.

Dann kann gemeinsam beratschlagt werden, welche konkreten Maßnahmen die 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 sich genau genommen um einen Folgebeitrag zu dem “Jude”-Teil der letzten Ausgabe [11], in dem Jude anhand seiner spezifischen Anwendung im Fachbereich Chemie der Universität von Bologna, Italien vorgestellt wurde.

Ich bin dabei nicht auf die zugrunde liegenden chemischen Funktionalitäten eingegangen, was ich jetzt nachhole.

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.

JMol, ursprünglich nur zur Darstellung von Molekülen gedacht, wird bald auch das Editieren erlauben.

JMol, ursprünglich nur zur Darstellung von Molekülen gedacht, wird bald auch das Editieren erlauben.

Das Chemical Development Kit (CDK) ist eine Java-Bibliothek, die alle grundlegenden Klassen und Werkzeuge für chemische Software unter der GNU General Public License zur Verfügung stellen soll.

Dabei wird unter anderem 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 selbst 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 der 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 ist geplant, weitere Funktionalitäten hinzuzufügen, darunter das Editieren von Molekülen, einfache Minimalisierungen basierend auf Kraftfeldern sowie Molekulardynamik (mikrokanonisches Ensemble) und Langevin Dynamik (kanonisches Ensemble).

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.

JChemPaint ist in Java geschrieben, Es untersteht der GNU Lesser General Public License. JChemPaint ist demnach so portabel wie auch Jmol und kann im Übrigen auch als Applet auf Webseiten verwandt werden. Selbstverständlich wird die Chemical Markup Language (CML) [15] von beiden Programmen unterstützt.

Mit der benutzerfreundlichen Oberfläche von JChempaint können die chemischen Verbindungen in zwei Dimensionen erstellt werden, die JMol nachher dreidimensional darstellt.

Mit der benutzerfreundlichen Oberfläche von JChempaint können die chemischen Verbindungen in zwei Dimensionen erstellt werden, die JMol nachher dreidimensional darstellt.

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

Damit bietet sich Chemikern, Biologen und anderen, die auf molekularer Ebene arbeiten, eine bereits sehr umfassende Funktionalität auf Basis freier Software. Selbst wenn vielleicht eine bestimmte Funktionalität noch nicht unterstützt wird, so rate ich sehr dazu, sich lieber an diesen Projekten zu beteiligen und die Funktionalität selbst 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 konsequent verfolgt werden, ohne an die Grenzen proprietärer Software zu stoßen. Dies ist letztlich eine direkte Folge der Tatsache, dass 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]. Alma steht für “Atelier Logiciel de Mod?lisation et 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 liefern.

Dabei unterstützt Alma eine Vielzahl von Formaten. Für die Eingabe können Java, Idl, XMI, C, C++, Fortran, Rose MDL, Class, JavaP, Taglip, JSP verwandt werden, die Ausgabe kann zum Beispiel 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, dass 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.

Alma verschafft den nötigen Überblick bei Softwareprojekten in Java, C, C++, Fortran und vielen anderen Programmiersprachen.

Alma verschafft den nötigen Überblick bei Softwareprojekten in Java, C, C++, Fortran und vielen anderen Programmiersprachen.

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 in ihrem Ansatz deutlich limitierter.

Alma selbst ist in Java 1.1 geschrieben und läuft somit auf jedem Rechner, der eine JVM installiert hat. Es lässt sich sowohl über Kommandozeile wie auch über ein 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 nahe gelegt, sich ruhig vorher mit diesem Projekt zu beschäftigen.

Problematische Beschränkung

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, dass 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.

Für den Fall, dass 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 in Konflikt mit geltendem Recht steht, so steht das Programm ohne gültige Lizenz da. Wenn 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.

Der Autor von Alma ist übrigens sehr dankbar dafür dass 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 US-Dollar zu kaufen.

Es gibt keinen Zwang zum Zahlen dieser Summe, jedoch wird man dazu aufgefordert, 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 mehr Verbreitung finden wird.

Libgcrypt

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

Andere kryptographische Bibliotheken sind entweder nicht frei oder unter GPL-inkompatiblen Lizenzen wie zum Beispiel OpenSSL. Da ein 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 kryptographischen Routinen also durchaus als 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 (sinnvoll) eingesetzt werden – und wird es auch. Nikos Mavroyanopoulos, der Werner bei der Entwicklung von Libgcrypt unterstützt hat, setzt es zum Beispiel in der von ihm geschriebenen GNUTLS-Bibliothek ein, die bereits in der Brave GNU World in Heft 05/2001 [18] vorgestellt wurde.

Die besonderen 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 Betriebssystemen ist die Libgcrypt auf Win32-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, dass auch die Benutzung der Libgcrypt ein wenig Beschäftigung mit Kryptographie 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.

Infos

[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.de.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 https://www.linux-magazin.de/ausgabe/2001/07/GNUWorld/gnuworld.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 https://www.linux-magazin.de/ausgabe/2001/05/GNUWorld/gnuworld.html

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 auch geistesgegenwärtig genug waren, es mir die Details mitzuteilen [1]. ( tfr)

Der Autor

Dipl.-Phys. Georg C. F. Greve hat schon früh begonnen, sich mit GNU/Linux zu befassen und hat seit Kernel 0.9 nur unter Protest andere Systeme verwandt. Mit dem Xlogmaster ist er zum GNU-Projekt gekommen, dessen Unterstützung er sich in immer größerem Maße gewidmet hat. Die Hauptaufgabe der letzten Monate war der Aufbau der Free Software Foundation Europe, deren Präsident er ist. Mehr Informationen finden sich unter http://www.gnu.org/people/greve/.

LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben