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

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

Willkommen zu einer weiteren Ausgabe der Brave GNU World. Diesen Monat gibt es wieder eine recht bunte Mischung und einen halbexperimentellen Beitrag am Ende, der in Zusammenarbeit mit Bernhard Reiter entstand. Doch zunächst zum technischen Teil.

TINY

Ziel des TINY [5] Projekts ist eine minimale GNU/Linux Distribution. Gestartet wurde es von Odile Bénassy, wobei das vollständige Team noch Jean-François Martinez, Mathieu Roy und Roger Dingledine mit einschließt. Der Name TINY steht dabei für "'Tis Independence 'N Yet", was eine Anspielung auf "Independence Linux", das Hauptprojekt von Jean-François Martinez, darstellt.

Die Beweggründe für das Projekt waren dabei einerseits die persönliche Erfahrung einer mit Odile verwandten Lehrerin, in ihrer Schule GNU/Linux einzuführen, wie auch der Gedanke, Entwicklungsländern die Chance zu geben, am Informationszeitalter teilzuhaben und von Freier Software zu profitieren. Um dies zu gewährleisten, wurde großer Wert darauf gelegt, die Hardwareanforderungen möglichst gering zu halten. Die untere Grenze liegt im Moment etwa bei einem 386 DX 33 ohne Festplatte.

Natürlich gibt es gerade in den Entwicklungsländern noch viele andere Probleme und auch wenn man diese außer acht läßt, so stellt die fehlende technische Infrastruktur oft ein Problem dar. Nicht nur fehlt der Internetanschluß und Disketten erweisen sich in dem herrschenden Klima als extrem unzuverlässig, oft fehlt es sogar schon an der Elektrizität.

Doch es existieren Programme, um Elektrizität und Telefon auch in entlegenere Gebiete zu bringen. Odile hat mit Wissenschaftlern und Ärzten gesprochen, die freiwillig in Afrika beim Aufbau dieser Strukturen helfen, um dafür zu sorgen, daß TINY den herrschenden Anforderungen gerecht wird.

TINY basiert auf einer Slackware 4.0 und verwendet die glibc2 sowie Kernel 2.2; als Lizenz kommt dabei selbstverständlich die GNU General Public License zum Einsatz. Im Gegensatz zu manchen anderen Minimal-Distributionen ist sie bei aller Minimalisierung voll einsatzfähig und taugt zur täglichen Arbeit. Daher sollte TINY auch für Leute interessant sein, die einfach nur auf der Suche nach einer minimalen Distribution sind.

Die Distribution läßt sich erfolgreich installieren, wie auch die Meldungen auf der sechssprachigen Homepage [5] belegen. Allerdings wäre ausführlichere Dokumentation und eine längere und besser gepflegte Applikationsliste wünschenswert.

Aufgrund akuten Zeitmangels steht das Projekt im Moment still. Zudem fehlt ausreichendes Feedback von Benutzern aus Entwicklungsländern. Das aktuelle Team wünscht sich daher eigentlich die Übernahme des TINY Projekts durch ein neues Team, dem es jegliche Hilfe und Unterstützung gewähren würde.

Wem daran gelegen ist, anderen Hilfe zur Selbsthilfe zu geben, der findet in dem TINY Projekt sicherlich eine gute Grundlage. Doch auch anderen Interessenten an Minimaldistributionen sei der Blick auf TINY empfohlen.

GNU TeXmacs

GNU TeXmacs [6] beschäftigt sich mit der Erstellung eines wissenschaftlichen what-you-see-is-what-you-get Texteditors auf Basis Freier Software. Inspirieren ließ sich Autor Joris van der Hoeven dabei von GNU EMACS und LaTeX, wie der Name bereits vermuten läßt.

Anders als das zunächst verwandt erscheinende Projekt LyX [7] handelt es sich bei GNU TeXmacs jedoch nicht um ein LaTeX Frontend, es ist ein eigenständiges Projekt. Die Inspiration bezieht sich vielmehr auf die Satzqualität und speziell die Möglichkeiten zur Formeldarstellung, bei denen LaTeX bisher unbestritten führend war. Weiterhin werden von GNU TeXmacs die TeX Zeichensätze verwandt und es gibt Import-/Exportfilter für TeX/LaTeX Dokumente.

Die EMACS-Inspiration äußert sich vor allem in der Erweiterbarkeit. GNU TeXmacs ist in C++ mit Guile/Scheme als Erweiterungssprache geschrieben. Das Benutzerinterface kann über Guile-Anweisungen angepasst werden und auch die Erweiterung des Editors ist möglich.

Gleichzeitig erlaubt es GNU TeXmacs, wissenschaftliche Berechnungen direkt auszuführen, da es über Schnittstellen zu Maxima, Pari GP, GTybalt, Yacas, Macaulay 2, Mupad und Reduce verfügt. Die Schnittstelle zu Scilab sollte ebenfalls bald einsatzfertig sein und weitere Schnittstellen sind leicht zu implementieren.

Kombiniert mit der geplanten Erweiterung zu einem kompletten XML-Editor bietet GNU TeXmacs u.A. interessante Perspektiven für interaktive mathematische Dokumente auf dem Internet.

Dank professioneller Satzqualität, einem guten anti-aliasing der TeX Zeichensätze, der Möglichkeit strukturierter Dokumente und dem Potential für dynamische Makros und Style-Files, bietet GNU TeXmacs gerade dem wissenschaftlichen Anwender viele Möglichkeiten.

Der aktuelle Stand des Projektes ist kurz vor der Version 1.0, nachdem bereits etwa 4 Jahre durch Joris van der Hoeven, Andrey Grozin, Thomas Rohwer und einigen Anderen daran gearbeitet wurde. Probleme sind augenblicklich noch nicht vollständig implementierte Features sowie die noch verbesserungsfähigen Filter für LaTeX-Dokumente. Außerdem ist die Dokumentation noch recht kurz geraten.

Die unmittelbaren Pläne sehen daher auch vor, diese Probleme zu beseitigen und eine Version 1.0 zu veröffentlichen. Auf längere Sicht sollen dann Tabellenkalkulation und die XML/HTML Erweiterungen hinzukommen. Zukunftsmusik ist die Portierung auf nicht-Unix Plattformen sowie die Erweiterung zur Erstellung technischer Zeichnungen.

Hilfe ist dabei in jeglicher Form willkommen; von Dokumentation, Übersetzungen, Schreiben von Filtern, Portierung auf andere Plattformen und GNOME-Unterstützung bis hin zu Bekanntmachung und Vergrößerung der Nutzerbasis.

CD-ROM Control

Da in letzter Zeit die ganz kleinen Projekte eher zu kurz gekommen sind, wird es mal wieder Zeit, einen ihrer Vertreter zu seinem Recht kommen zu lassen.

CD-ROM Control [8] von Paul Millar ist ein kleines Applet zur Kontrolle des CD-ROMs geschrieben in Tcl/TK mit einem kleinen Teil in C. Neben einer Statusanzeige bietet es einfache Möglichkeiten zum Mounten/Unmounten/Auswerfen der CD-ROM per Mausklick. Für das GUI gibt es die Wahl zwischen nativem Tk oder dem GTK+.

Das Besondere dabei ist das Autostart-Feature, mit dem grafische Filemanager, Web Browser oder Audio-Applikationen automatisch bei Einlegen einer CD gestartet werden können.

Auch wenn die integrierten Oberflächen Teile dieser Funktionalität bieten, gilt dies jedoch nicht für alle Window-Manager, weshalb das Projekt gerade für manchen Einsteiger interessant sein mag.

Saxogram

Mit Saxogram [9] hat Matt Dunford sicherlich das ungewöhnlichste Projekt dieser Ausgabe geschrieben. Der Name des Projekts leitet sich ab von dem relativ unbekannten dänischen Historiker Saxo Grammaticus, dessen Chroniken eine entfernte Referenz für Shakespeare's Hamlet darstellen. Dies legt nahe, daß das Programm sich mit Literatur befasst.

Tatsächlich erlaubt Saxogram, eine Vokabelliste für Texte in fremden Sprachen anzulegen, um das Erlernen einer neuen Sprache zu vereinfachen. Wie so viele Leute vor ihm hat Matt Latein und Griechisch gelernt, wobei häufig jedes dritte Wort nachgeschlagen werden mußte und als er eines Tages ein lateinisches Wörterbuch [10] auf dem Netz entdeckte, begann er mit der Arbeit an Saxogram.

Saxogram durchsucht einen Text nach Worten und schlägt diese automatisch im Wörterbuch nach. Die gefundenen Worte werden dann gemeinsam mit ihrer Erklärung ausgegeben. Dabei ist Saxogram sehr erfolgreich darin, auch konjugierte bzw. deklinierte Worte korrekt zuzuordnen.

Ein kritischer Punkt ist die freie Verfügbarkeit von Wörterbüchern, um die es leider nicht besonders gut bestellt ist. Zwar gibt es das "Internet Dictionary Project" [11], doch deren Wörterbücher sind noch nicht stabil genug. Auch das Online-Dictionary LEO [12] ist nur eine begrenzte Hilfe, da es nur zwischen Englisch und Deutsch übersetzen kann. Bei den griechischen Wörterbüchern ist auch Matt bisher nicht fündig geworden - für Hinweise ist er dankbar.

Das Programm wurde in Python geschrieben und unterliegt der GNU General Public License. Das Hauptproblem ist dabei die Geschwindigkeit. Es werden sehr viele "regular expressions" und Diskzugriffe verwandt, da beim Entwurf des Programms die Geschwindigkeit nicht zu den entscheidenen Kriterien gehörte. Dieses Manko zu beheben ist daher auch erstes Ziel von Matt für die weitere Entwicklung.

Es werden momentan nur Deutsch, Latein und ein wenig Italienisch unterstützt, wobei die Arbeitssprache Englisch ist. Weitere Sprachen hinzuzufügen ist ein großes Ziel von Saxogram. Außerdem strebt er an, auch ein GUI zu entwerfen.

Hilfreich wären für die weitere Entwicklung vor allem mehr Tester und Wörterbücher.

GNU libiconv

Die GNU libiconv [13] ist die "character set conversion library" des GNU Projekts, die über die iconv() Funktion Programmen die Funktionalität zur Verfügung stellt, Texte zwischen verschiedenen Zeichensätzen zu konvertieren.

Ein paar Worte zum Hintergrund: traditionell besteht die normale Zeichensatztabelle aus 256 Werten, denen je ein Zeichen zugeordnet wird. Angesichts asiatischer Sprachen und lokaler Besonderheiten wie Umlauten oder Euro-Zeichen wird jedoch unmittelbar klar, daß diese 256 Werte nicht ausreichen, um alle international möglichen Zeichen abzubilden.

In den einzelnen Sprachräumen wurden dann teilweise abweichende Tabellen eingeführt, um die lokal benötigten Zeichen zur Verfügung zu stellen. Dies hat jedoch dazu geführt, daß die Zuordnung von Werten und Zeichen nicht mehr eindeutig, sondern vom Sprachraum abhängig ist. Der gültige Sprachraum wird daher mit Hilfe der sogenannten Kodierung, des "encodings" angegeben.

Für die saubere Internationalisierung eines Programms ist es notwendig, daß dieses die unterschiedlichen Kodierungen ineinander überführen kann. Gerade für textverarbeitende Programme ist dies eine Grundvoraussetzung.

An einer Standardisierung dieses Problems hat bereit Ulrich Drepper vor zwei Jahren für die glibc gearbeitet - allerdings wurde es aufgrund von Problemen bei der Portierbarkeit nicht in die glibc aufgenommen, was wiederum zu einer Zersplitterung der konvertierenden Bibliotheken geführt hat. Dies soll sich mit libiconv von Bruno Haible ändern.

Libiconv stellt die bereits erwähnte iconv() Funktion zur Verfügung, wie sie auch in der glibc 2.2 implementiert wurde. Da libiconv portabel, schnell und von anderen Bibliotheken unabhängig ist, kann mit ihr die iconv() Funktionalität auf allen Systemen zur Verfügung gestellt werden, die keine glibc 2.2 besitzen.

Autoren können ohne Portierbarkeitssorgen auf iconv() zurückgreifen und gerade Autoren von Mailprogrammen sollten dies tun, da viel zu viele Mailclients noch nicht richtig mit der MIME-Zeichensatzkodierung umgehen können.

Wie die glibc unterliegt übrigens auch die libiconv der GNU Lesser General Public License, kann also auch mit proprietären Programmen verlinkt werden, um endlich die Konversionsprobleme allgemein zu lösen.

Bemerkenswert an der libiconv ist, daß sie ebenfalls begrenzt Transliteration unterstützt. Ein Zeichen, daß im Zielzeichensatz nicht vorhanden ist, kann durch ein oder mehrere ähnlich aussehende Zeichen angenähert werden, wenn "//TRANSLIT" angefordert wird.

Mozart/Oz

Mozart/Oz [14] ist eine recht interessante Entwicklungsplattform, auf die an dieser Stelle kurz hingewiesen werden soll. Eine vollständige Darstellung würde den Rahmen sprengen, es sei daher nur auf ein paar Rahmenpunkte eingegangen, um Entwicklern eine erste Idee zu geben, worum es sich dabei handelt.

Mozart wurde 1991 im europäischen ACCLAIM Projekt gestartet und ist seitdem in intensiver Kooperation unter einer X11-artigen Lizenz weiterentwickelt worden. Auch wenn die Lizenz sicherlich nicht optimal ist, qualifiziert sie sich als Freie Software.

Es handelt sich bei Mozart um eine Entwicklungsplattform für intelligente, verteilte Applikationen. Gerade im Bereich des "distributed computings" liegt eine der Hauptstärken von Mozart, da es das Netz komplett transparent macht. Zudem unterstützt es multiple Paradigmen, paralleles Arbeiten durch sehr effiziente Threads, von denen mehrere tausend pro Anwendung verwendet werden können sowie mobile agents und einiges mehr.

Die Oz virtual machine ist recht portabel und läuft sowohl auf fast allen Unix-Varianten als auch MS Windows. Für das Benutzerinterface steht eine objektorientierte Bibliothek zur Verfügung, die eine gute Anbindung an Tcl/Tk besitzt.

Das Projekt ist bereits voll einsetzbar und als das größte Problem gelten mittlerweile Entwickler, die sich schlechte Gewohnheiten abgewöhnen müssen. Dennoch gibt es natürlich noch immer Dinge, an denen gearbeitet wird.

Pläne für die Zukunft beinhalten eine Verbesserung der Verläßlichkeit, Sicherheit, Netzwerktransparenz und mehr Hilfsmittel.

Hilfe kann das Mozart Consortium in Form eines Freiwilligen für eine Windows IDE gebrauchen. Die augenblickliche IDE basiert auf dem GNU EMACS, was nicht jedem gefällt. Außerdem wird an einem Port auf Macintosh gearbeitet - allerdings geht dies nur langsam voran und Hilfe ist sehr willkommen.

Wer sich jetzt für einen näheren Blick auf Mozart/Oz interessiert, dem sei der Blick auf die Homepage [14] empfohlen.

Freie Software und 3D?

Dieses Feature wurde angeregt und ganz wesentlich geprägt durch Bernhard Reiter, der Stammlesern der Brave GNU World noch aus dem GRASS GIS Beitrag [15] der Ausgabe 14 bekannt sein dürfte. Als deutscher Repräsentant der FSF Europe und Mitgründer der Intevation GmbH, einer ausschließlich auf Basis Freier Software arbeitenden Firma, verbringt er einen Großteil seiner Zeit mit Freier Software.

Bei der Suche nach einem Freie Software 3D Modellierungswerkzeug am letzten Wochenende war das Ergebnis recht mager, was zum Nachdenken anregt.

Eigentlich ist die 3D-Modellierung ein sehr spannendes und wichtiges Thema, nicht umsonst ging der letzte FSF-Award an Brian Paul für seine Arbeit an der Mesa 3D Grafikbibliothek. Voll entwickelte Werkzeuge zur Modellierung scheinen dennoch nach wie vor Mangelware zu sein, was vermutlich zwei Gründe hat.

Zunächst einmal war es nicht möglich, eine gute Übersichtsseite zu Freier 3D Software zu finden. Oft wissen scheinbar nicht einmal verwandte Projekte von der Existenz des anderen.

Außerdem stellen proprietäre Produkte, die oft vordergründig günstig zu haben sind, offenbar eine effektive Entwicklungsblockade dar. Nutzer lassen sich durch den zunächst günstigen Preis blenden und vergessen darüber, daß dieser Schritt ihnen die Möglichkeit nimmt, die Software in Zukunft pflegen zu können.

Wie Bernhard es ausdrückt: "Hier haben wir ein klassisches Beispiel dafür, daß Pragmatismus und zu frühe Kompromisse an die Freiheit der Software einen Anwendungsbereich stark bremsen, auch weil kein Druck da war, mehr Freie Lösungen zu entwickeln."

Gerade durch Vernetzung kann selbst ein nicht-Programmierer die Entwicklung auf einem Gebiet stark vorantreiben, wie Dave Phillips mit seiner "Sound & MIDI Software for GNU/Linux" Seite [16] gezeigt hat. Eine vergleichbare Seite für 3D-Modellierung unter GNU/Linux wäre ein sehr wesentlicher Beitrag zu diesem Gebiet.

Genug für heute

So, das war die Brave GNU World für diesen Monat. Ich hoffe, einige Anregungen vermittelt zu haben und rufe wir üblich dazu auf, Anregungen, Kommentare, Ideen und Projektvorstellungen an die übliche Adresse [1] zu schicken. Gerade Hinweise auf Freie Software aus dem 3D Gebiet wären mir willkommen.

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] TINY GNU/Linux Distribution Homepage: http://tiny.seul.org/de/
[6] GNU TeXmacs Homepage: http://www.texmacs.org
[7] LyX Homepage: http://www.lyx.org
[8] CD-ROM Control Homepage: http://sourceforge.net/projects/crcontrol
[9] Saxogram Homepage: http://saxogram.sourceforge.net/
[10] Online Latin Dictionary: http://king.tidbits.com/matt/LatinDictReadMe.html
[11] Das "Internet Dictionary Projekt": http://www.june29.com/IDP/
[12] LEO English/German Dictionary: http://dict.leo.org
[13] GNU libiconv Homepage: http://clisp.cons.org/~haible/packages-libiconv.html
[14] Mozart/Oz Homepage: http://www.mozart-oz.org
[15] Brave GNU World, Ausgabe 14: http://www.gnu.org/brave-gnu-world/issue-14.de.html
[16] Sound & MIDI Software for GNU/Linux: http://www.bright.net/~dlphilp/linuxsound/

[ 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: Sun Jun 17 17:37:39 CEST 2001