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

[DE | EN | FR | JA | ES]

Willkommen zu Georg's Brave GNU World. Diesen Monat habe ich vor allem mehrere kleine Projekte, die ein relativ breites Spektrum abdecken. Anfangen möchte ich mit einem wirklich interessanten Mailreader.

Sylpheed

Sylpheed [5] ist ein sehr benutzerfreundlicher Mailreader, der von Hiroyuki Yamamoto und anderen entwickelt wurde. Der Anlaß für die Entwicklung von Sylpheed lag in der Unzufriedenheit Hiroyuki Yamamotos mit den vorhandenen Mailprogrammen.

Die Emacs-basierten Mailprogramme tun sich mit Attachments schwer, sind relativ gewichtig und es muß der Emacs gestartet werden, um Mail zu lesen. Andere, GUI-orientierte, Mailprogramme haben z.T. recht gewöhnungbedürftige Interfaces, unterstützen keine Threads, wissen nicht um die Existenz anderer Mailprogramme oder lassen sich nicht vollständig über die Tastatur bedienen. Wer sich mit einigen dieser Probleme gut identifizieren kann, der sollte definitiv Sylpheed einmal ausprobieren.

Die Vorteile von Sylpheed sind recht beeindruckend. Basierend auf dem GTK+ Toolkit verfügt es über eine ansprechende Oberfläche. Wichtig für die Übersicht ist, daß Mails gefiltert werden können und dann in Threads angezeigt werden. Es unterstützt selbstverständlich Multipart MIME und besitzt einen integrierten Bildbetrachter. X-Faces werden ebenso unterstützt wie "clickable URIs". Doch trotz dieser starken GUI-Orientierung ist es vollständig mit der Tastatur bedienbar.

Außergewöhnlich positiv fällt das XML-basierte Addreßbuch auf - es ist sichergestellt, daß die Daten verfügbar und portabel sind. Da die Emails im MH Format gespeichert werden, können sie auch von anderen Mailreadern wie z.B. Mew gelesen werden.

Zusätzlich kann man mit Sylpheed News lesen (aber nicht schreiben) und es unterstützt die Verwendung der externen Programme fetchmail und procmail zum Beschaffen frischer Email. Ausgehende Post kann in einer Queue gesammelt werden, bevor sie abgeschickt wird.

Sylpheed ist noch relativ jung, daher verfügt es noch über eine recht lange TODO-Liste, die u.A. IMAP4, LDAP, PGP/GPG Support, SSL Unterstützung, Mailarchiv-Kompression u.A. beinhaltet. Auch die Anpassung an die Englische Sprache muß noch gesteigert werden - dies sollte dank gettext jedoch ein relativ überschaubares Problem sein. Debian Nutzer können Sylpheed übrigens direkt über die angegebene Quelle installieren; alle Anderen haben es jedoch auch nicht viel schwerer, da es Autoconf/Automake unterstützt.

Wer also gerade mit seinem alten Mailreader unzufrieden ist, könnte hier sicherlich mal einen Blick riskieren.

Xzgv

Bei Xzgv [6] handelt es sich um einen Bildbetrachter für X11, der stark an dem Konsolen-Tool zgv angelehnt ist. Die Gründe für seine Entstehung liegen in der Konsolen-Affinität des Autors Russell Marks, dem die gängigen Bildbetrachter unter X11 nicht gefielen. Dabei wollte er ursprünglich nur eine zgv Portierung für X schreiben, stellte jedoch schnell fest, daß dies nicht das gewünschte Resultat erzielen würde.

Xzgv kann gleichermaßen über Maus und Tastatur bedient werden und verwendet zur Auswahl und Darstellung nur ein Fenster - das lästige Fenstergewimmel mancher Bildbetrachter entfällt also. Da es ganz bewußt auf dem GTK+ Toolkit ohne GNOME oder KDE Awareness aufbaut, spricht das Programm sehr direkt auf Tastaturbefehle an verfügt über eine exzellente Benutzbarkeit.

Der Autor möchte übrigens gerne darauf hingewiesen wissen, daß es keinesfalls so trivial ist, einen guten Bildbetrachter zu schreiben, wie viele Leute glauben. Natürlich ist es nicht weiter schwer, einfach nur ein Bild darzustellen. Aber einen generellen Bildbetrachter zu schreiben, der "es richtig macht", ist durchaus nicht trivial, da es eine ganze Menge an nicht-offensichtlichen Problemen beinhaltet.

Xzgv ist schon ein sehr fertiges Projekt - die Pläne für die weitere Entwicklung beschränken sich darauf, evtl. von der Imlib 1.x-Bibliothek wegzukommen und das Betrachten wirklich großer Bilder zu optimieren.

Da es zudem der GNU General Public License unterliegt, ist es alles in allem ein Programm, das von mir mit gutem Gewissen empfohlen werden kann.

Weiter geht es mit einem sehr speziellen Programm, daß gerade neu ins GNU Projekt aufgenommen wurde.

Solfege

Solfege [7] ist ein Programm, um das Gehör zu trainieren. Auf diesem Gebiet waren bisher nahezu ausschließlich proprietäre Programme zu finden, die unter MS Windows oder MacOS liefen. Geschrieben wurde es von Tom Cato Amundsen, einem Musiklehrer, der das Projekt für seinen eigenen Unterricht begann.

Bemerkenswert an dem Programm ist, daß es über "lesson files" im ASCII Format erweiterbar ist, jemand mit musikalischer Vorbildung also leicht eigene Lektionen hinzufügen kann. Mehr von diesen Files sowie mehr Dokumentation sind daher auch das drängendste Problem.

Auf lange Sicht möchte er jedoch gerne große Teile des Programms neu implementieren, da einige Lösungen noch verbessert werden können. Dabei wäre ihm übrigens die Hilfe von jemandem mit Erfahrung in OSS-Programmierung sehr willkommen.

Der Autor weist darauf hin, daß die offensichtliche Zielgruppe, Musik-Schülen & -Studenten, im Moment keine zu hohen Erwartungen haben sollten da es noch einen kleinen Augenblick bis zur 1.0 Version von Solfege dauern wird.

Auch das nächste Programm wurde kürzlich ins GNU Projekt aufgenommen und kommt aus dem schulischen Umfeld.

Ggradebook

Wie der Name schon suggeriert, ist Ggradebook [8] von Norbert de Jonge und ein paar Freiwilligen ein Programm zur Verwaltung von Noten - diesmal allerdings im Sinne von Bewertungen.

Ggradebook basiert auf dem GTK+ Toolkit und kann optional auch mit GNOME Support kompiliert werden. Es verfügt über die Möglichkeit, Noten in Prozent, abstrakter numerischer Form oder Buchstaben zu verwalten; letzteren können auch prozentuale Werte zugeordnet werden. Außerdem sind die Skalen der numerischen oder alphabetischen Form veränderbar.

Aktuelles Problem ist, daß bei prozentualer Wertung oder der alphabetischen Form noch kein "+" oder "-" zur Modifikation verwendet werden kann - dies ist im Moment nur bei der abstrakten numerischen Form möglich. Weitere Pläne beinhalten export/import Filter zu ähnlichen Programmen, Internationalisierung und mehr Features. Zudem ermöglicht das Interface zwar den Zugriff auf alle Funktionen, bietet aber noch Spielraum zur benutzerfreundlicheren Gestaltung.

Die größten Schwierigkeiten bereitet den Autoren im Moment die Tatsache, daß sie mehr Feedback von Benutzern brauchen. Alle Leser mit Bedarf auf diesem Gebiet sind also dazu angehalten, es zumindest einmal auszuprobieren.

Weiter geht es mit drei Projekten für Entwickler.

Common C++

Common C++ [9] begann ursprünglich als das von David Sugar geschriebene APE Projekt und im März 2000 wurde es mit Common C++ von David Silverstone verbunden. Da David Sugar der Name Common C++ besser gefiel, wurde dieser die Bezeichnung des Gesamtprojekts.

Das Common C++ Projekt setzt da an, wo die ANSI Std C++ Bibliothek aufhört. Das Ziel ist eine portable Klassenbibliothek, die Dinge wie abstraktes Threading, Sockets, serielles I/O und persistente Klassen-Serialisation auf Posix und Win32 Systemen zur Verfügung stellt.

Viele dieser Funktionen werden bereits einzeln durch andere Bibliotheken ermöglicht. Die Vorteile von Common C++ liegen für David Sugar darin, daß es eine einheitliche Struktur für alle diese Aufgaben bereithält. Dabei ist es sehr portabel und anstatt auf eine universelle Bibliothek zu setzen, verwendet Common C++ einzelne Libraries für die verschiedenen Systeme. Hierdurch wird es möglich, die Bibliotheken so maschinen- und systemnah zu schreiben wie möglich, was den Overhead außerordentlich gering hält. Gleichzeitig sind jedoch Common C++ basierte Applikationen auf beiden Architekturen lauffähig.

Was den Compiler angeht, so ist es sehr genügsam und unterstützt auch etliche der C++ Compiler, die sich nicht an den Standard halten obwohl davon ausgegangen wird, daß in Zukunft hierauf verzichtet werden kann.

Wie den meisten Entwicklern bekannt ist, verfügt nahezu jedes Unix Derivat über seine eigene, nicht dem Standard entsprechende, Thread-Implementation. Für diese besitzt Common C++ eine extensive Anzahl an Tests während der Konfiguration, um diese sauber abstrahieren zu können. Obwohl es nicht direkt mit GNU Pth (GNU Portable Threads, siehe Ausgabe 7 der Brave GNU World) zusammenarbeitet, so sollte es doch bereits mit deren pthread Emulation funktionieren und für die Zukunft ist geplant, GNU Pth direkt zu unterstützen.

Momentan ist eine 2.0 "rewrite" Version für den Herbst geplant, die auf die Anachronismen für die alten C++ Compiler verzichten wird. Außerdem soll am Support weiterer Plattformen (BeOS) und an der Implementation einer Netzwerkprotokoll-Bibliothek gearbeitet werden. Der Mangel hieran stellt seiner Ansicht nach momentan auch die größte Schwäche von Common C++ dar. Im Hinblick auf die weitere Entwicklung sagt David Sugar, daß seine Aufgabe scheinbar mehr und mehr administrativ wird, da es eine sehr rege Beteiligung anderer Entwickler gibt. So betont er, daß vor allem Henner Zeller und Gianni Marianni viel Arbeit in die letzte Release gesteckt haben.

Als Lizenz kommt die GNU General Public License mit ein paar Sonderklauseln zur Anwendung, wie sie in der Guile Lizenz zu finden waren. Dies plaziert sie irgendwo zwischen GPL und GNU Lesser General Public License, was die gewährten Rechte & Freiheiten betrifft. Da dies in der Vergangenheit jedoch zu einiger Verwirrung geführt hat, wird die Version 2.0 vermutlich unter der GNU LGPL herausgebracht.

Common C++ ist bereits jetzt die Basis für etliche Projekte aus dem Bereich Freier Software wie z.B. Bayonne (siehe Brave GNU World Ausgabe 16). Daher überrascht es kaum, daß Common C++ seit April 2000 ein offizielles GNU Projekt ist.

GNU marst

GNU marst [10] ist ein Programm zur Übersetzung von Algol nach C von Andrew Makhorin, daß ebenfalls kürzlich dem GNU Projekt hinzugefügt wurde.

Das Projekt implementiert die vollständige Algol 60 Programmiersprache, wie im "Modified Report on the algorithmic Language Algol 60" [11] spezifiziert. Da sich diese Sprache kaum mehr verändert, ist das Ziel des Autors nun, eine front-end Shell zu schreiben, die die Handhabung für den Benutzer einfacher macht. Zudem ist er auf der Suche nach (freien) Algol 60 Programmen jeder Art.

Gengetopt

Auch Gengetopt [12] ist ein neues GNU Projekt. Es handelt sich dabei um ein Tool von Roberto Arturo Tena Sanchez, daß aber nun von Lorenzo Bettini betreut wird. Seine Aufgabe ist es, automatisch eine C Funktion zu generieren, die die Kommandozeilen-Optionen überprüft und auswertet. Die Ergebnisse werden in einer struct gespeichert.

Dies ist ein sehr nützliches Tool für jeden C/C++ Programmierer, da es einen von der Notwendigkeit befreit, die Kommandozeile selber auszuwerten, was im Normalfall eine recht langweilige aber doch sehr wichtige Tätigkeit ist. Man übergibt gengetopt einfach die gewünschten Optionen, ob diese notwendig oder optional sind und ob sie einen Parameter erfordern oder nicht. Der von gengetopt generierte C-Sourcecode wird dem eigenen Programm hinzugefügt und durch einen einzelnen Funktionsaufruf wird die Kommandozeile ausgewertet.

Zum Schluß möchte ich mich noch einem Projekt widmen, daß nicht so direkt mit Software zu tun hat.

OpenTheory

Das OpenTheory Projekt von Stefan Meretz versucht, die Grundsätze und Mechanismen der Entwicklung Freier Software auf Texte jeder Art zu übertragen. Denkbar ist dabei alles von Dokumentationen über Büche bis hin zu Konzepten oder Theorietexten. Alle diese Texte unterstehen dabei der GNU Free Documentation License.

Die Webseite [13] bietet dabei eine koordinative Schnittstelle, in der über ein Web-basiertes Tool die Gedanken ausgetauscht werden können. So können Projekte direkt online gegründet und Texte zur Diskussion gestellt werden. Die Texte werden dabei im ASCII Format übertragen und in einer MySQL-Datenbank gespeichert. Die Seiten für die Projekte werden mittels PHP3 dynamisch aus der Datenbank generiert, was die Seite im höchsten Maße interaktiv macht.

Jedes der Projekte verfügt zudem über eine Mailingliste, auf die Kommentare auch über das Web-Interface verschickt werden können. Außerdem können verwandte Projekte miteinander verknüpft werden und Mailinglisten miteinander teilen.

Das Einzige, was Stefan Meretz momentan noch fehlt, ist eine Mailschnittstelle, die die OpenTheory-Funktionen ansteuern kann - Texte können daher noch nicht per Mail veröffentlicht werden.

Das Projekt hat bereits einige hochinteressante Anwendungen erfahren. So ist beispielsweise das Oekonux Projekt (Brave GNU World Ausgabe 18) dort entstanden aber es wurden auch Vorträge für den LinuxTag in Stuttgart vorher als OpenTheory-Projekte debattiert und verändert.

Das OpenTheory Projekt selber - also die Software, die diese Interaktion ermöglicht - unterliegt vollständig der GNU General Public License und ist erst bei Version 0.4. Interessierte Entwickler sind ausdrücklich dazu eingeladen, sich an der Weiterentwicklung zu beteiligen.

aus die Maus...

So, das war es wieder einmal für diesen Monat. Mit etwas Glück habe ich nächstes Mal ein besonderes Schmankerl für Euch - aber das kann ich noch nicht versprechen.

Trotzdem möchte ich Euch wie immer ermutigen, mit neuen Projekte, Ideen, Fragen und Anregungen zu mir zu kommen [1].

Infos

[1] Ideen, Anregungen, Kommentare an die Brave GNU World: column@gnu.org
[2] Homepage des GNU-Projektes: http://www.gnu.org/
[3] Homepage von Georg's Brave GNU World: http://www.gnu.org/brave-gnu-world/
[4] "We run GNU" Initiative: http://www.gnu.org/brave-gnu-world/rungnu/rungnu.de.html
[5] Sylpheed Homepage: http://members.linuxstart.com/~sunnyone/mylinux/sylpheed.en.html
[6] Xzgv Homepage: http://rus.members.beeb.net/xzgv.html
[7] Solfege Homepage: http://www.gnu.org/software/solfege/
[8] Ggradebook Homepage: http://www.gnu.org/software/ggradebook/
[9] Common C++ Homepage: http://www.commoncpp.cx/
[10] GNU marst Homepage: http://www.gnu.org/software/marst/
[11] Modified Report on the Algorithmic Language Algol 60. The Computer Journal, Vol. 19, No. 4, Nov. 1976, pp. 364-79
[12] Gengetopt Homepage: http://www.gnu.org/software/gengetopt/
[13] OpenTheory Homepage: http://www.opentheory.org


[ vorherige Ausgabe | Brave GNU World Homepage | nächste Ausgabe ]

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) 2000 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 Nov 13 11:20:54 CET 2000