Subscribe to the Free Software Supporter — the monthly update from the Free Software Foundation
 [image of a Brave GNU World]
Brave GNU World - Ausgabe 49
Copyright © 2003 Georg C. F. Greve <greve@gnu.org>
Permission statement below.

[CA | CN | DE | EN | IT | ZH ]

Willkommen zu einer neuen Ausgabe der Brave GNU World. Für den Ausfall letzten Monat möchte ich mich entschuldigen, leider gab es Ärger zwischen dem deutschen Linux-Magazin und der Brave GNU World, nachdem in Ausgabe 48 [5] ein Teil der Kolumne ("Freie Software Laptops") herausgeschnitten worden war.

Dies hat zu einiger Verunstimmung und damit auch zum Ausfall des letzten Monats geführt, doch nach intensiven Gesprächen sollte dies der Vergangenheit angehören und nicht wieder zum Problem werden.

Skidbladnir

Den Anfang macht diesen Monat das Projekt Skidbladnir, [5] dessen Name vielen Menschen ähnlich wenig sagen dürfte wie seine Beschreibung. Mit den Worten des Autors, Lars Brand, handelt es sich um eine "Toolbox mit Informationen und Programmen zum Thema Computer Aided Innovation".

Da Lars sich die Mühe gemacht hat, einiges zum Hintergrund zu schreiben, was den meisten Menschen nicht bekannt, aber für sie interessant sein dürfte, soll dies nicht unterschlagen werden.

Die wissenschaftliche Grundlage von Skidbladnir ist bekannt als als "Theorie des erfinderischen Problemlösens"; im Deutschen mit dem russischen Akronym TRIZ, im Englischen als TIPS ("Theory of Inventive Problem Solving") bezeichnet. Begonnen hat diese Theorie 1946 mit Prof. Altschuller, als dieser von der Armee als Patentingenieur eingesetzt wurde.

Nachdem Prof. Altschuller die ersten Grundzüge seiner Theorie in einem Brief Stalin mitteilte, ließ dieser ihn als verdächtiges Subjekt inhaftieren und in ein Lager verbringen. In den Jahren seiner Inhaftierung traf er auf viele ältere Professoren aus unterschiedlichen Wissensgebieten, die ihm halfen, Wissen über diverse Fachgebiete zu kombinieren.

Aus dem Lager entlassen und gegen Ende der 60er bis Mitte 70er Jahre erneut in Ungnade gefallen, begann er seine Erkenntnisse in Form von SciFi-Erzählungen zu veröffentlichen, um Geld für die wissenschaftliche Arbeit zu haben -- siehe G. S. Altow: "Der Hafen der steinernen Stürme."

Die TRIZ Theorie selber fußt darauf, daß unabhängig von Wissenschaftszweig oder Industriesparte, sich abstrahierte Problemstellungen und deren Lösungen immer wiederholen. So wurde bei Analyse von etwa 40.000 besonders erfolgreichen Patenten festgestellt, daß diese nur auf etwa 40 unterschiedlichen Lösungsprinzipien basieren.

Weitere Grundlagen der Theorie sind, daß die evolution technischer Systeme nach bestimmten Tendenzen verläuft und sich grundlegende Innovation oft nur durch fachfremde wissenschaftliche Erkenntnisse hervorbringen lassen.

Es geht also um eine Abstraktion von Problemlösungsstrategien, eine häufig gebrauchte Beispielaufgabe ist: "Ein massiver Stahlwürfel von 1m Kantenlänge ist in eine tiefe Grube zu bewegen, ohne daß Kräne, Seile oder ähnliche Hilfsmittel benutzt werden. Er darf aber auch nicht geworfen werden. Entwickeln Sie binnen 10 Minuten 3 entsprechende Verfahren."

Das wohl bekannteste Projekt zur softwaregestützen Lösung solcher und anderer Probleme ist der TechOptimizer, der, wie auch die anderen Applikationen auf diesem Gebiet, proprietär und sehr teuer ist.

Skidbladnir soll nun diese Funktionalität auch Nutzern Freier Software zur Verfügung stellen. Das Projekt besteht neben den Installations-Komponenten aus andax, welches die Grundprinzipien zur Lösung technischer Widersprüche beinhaltet, sporadikus für das Web-Brainstorming und perplexus, in dem über 250 Effekte verfügbar sind.

Das Projekt ist noch nicht vollständig und in der Bedienung noch nicht sehr komfortabel. Außerdem ist geplant, die Effekt-Datenbank noch weiter auszubauen und zudem speziell die Vernetzung der Effekte untereinander, die sehr effiziente Kombinationen ermöglicht.

Ein sehr einfaches Beispiel: 1. Leuchtstoffe wandeln UV-Licht in sichtbares Licht um; 2. feinverteiltes Metall verhindert das Leuchten von Leuchtstoffen; 3. bevor der Defekt eines bewegten Maschinenteils auftritt, werden Metallpartikel in das Öl abgegeben. Kombiniert man diese drei Sachverhalte, so entsteht die Idee, dem Öl Leuchtstoffe zuzugeben, so daß das Leuchten aufhört kurz bevor ein bestimmtes Maschinenteil ausgewechselt werden muß.

Reale Situationen sind oft sehr viel komplexer und benötigen eine umfangreiche Datenbank von Effekten, deren Zusammenstellung mühsam ist, da sie gewöhnlich über die Fachliteratur zusammengetragen werden müssen.

Geschrieben wurde Skidbladnir in Perl, PHP und MySQL und es wird unter der GNU General Public License (GPL) herausgegeben. Im Vergleich zu den proprietären Projekten mag Skidbladnir noch über vergleichsweise wenige Effekte verfügen, es enthält allerdings dafür bereits Software-Effekte; möglicherweise als erstes Projekt seiner Art.

Für die weitere Arbeit ist Lars Hilfe in jeder Form sehr willkommen; sowohl von Entwicklern, wie auch von Anwendern, die ihm mitteilen, was ihnen fehlt. Auch Daten über mehr Effekte und Zugang zu realen Problemen wäre sehr hilfreich.

Mittel- bis langfristig ist Lars überzeugt, daß gerade Freie Software auf diesem Gebiet besonders erfolgreich sein wird, da sowohl die TRIZ Methode, als auch Freie Software darauf ausgelegt sind, das Wissen der Welt zu bewahren und erfahrbar zu machen.

Diese Erkenntnisse und Methoden allen Menschen zugänglich zu machen, ist ein wichtiges, einer Enzyklopädie nicht unähnliches Projekt, das der Unterstützung würdig scheint.

Ganz nebenbei reduziert es auch die Markteintrittsbarriere in diesem Gebiet, da sich viele potentielle Nutzer die proprietären Lösungen finanziell nicht leisten können. Es kann also dazu beitragen, den technischen Bereich wieder stärker zu beleben.

Interessierten und Menschen vom Fach sei der Blick also nahegelegt. Wer weitere Informationen zum Hintergrund sucht, wird im Web [7] fündig.

Lush

Auch das zweite Projekt dieser Ausgabe stammt eher aus dem wissenschaftlichen Bereich, wenn es auch nicht auf diesen begrenzt ist. Lush [8] ist eine objektorientierte Programmiersprache, die vor allem für Wissenschaftler, Experimentatoren und Ingenieure mit Interesse an größeren numerischen und grafischen Applikationen gedacht ist.

Das Design von Lush ist darauf ausgerichtet, die Stärken von drei verschiedenen Ansätzen von Programmiersprachen miteinander zu kombinieren. Tatsächlich macht Lush aus drei Sprachen eine. Die erste Sprache ist eine interpretierte, dynamische Lisp-ähnliche Sprache mit automatischer Garbage Collection und schwachen Typen, die zweite Sprache ist eine kompilierte, lexikalische Sprache mit derselben Syntax aber starken Typen und die dritte Sprache ist C, die mit der Lush-Syntax innerhalb eines Programms oder sogar einer Funktion gemischt werden kann.

Lush wurde seit 1987 unter dem Namen "SN" als Skriptsprache für einen Simulator für neurale Netzwerke entwickelt und hat sich im Laufe der Jahre in eine vollständige Programmiersprache mit Kompiler weiterentwickelt. Wesentliche Akteure bei der Entwicklung waren Bell Labs (später "AT&T Labs"), in Holmdel, NJ, USA, Neuristique S.A. in Paris, Frankreich und NEC Labs in Princeton, NJ, USA.

Nachdem Lush/SN über mehrere Jahre innerhalb von AT&T für Forschungs- und Entwicklungsprojekte eingesetzt wurde, haben sich die beteiligten Parteien irgendwann auf die GNU General Public License (GPL) als Lizenz geeinigt und Lush somit als Freie Software herausgegeben.

Heutzutage wird das Projekt von Yann LeCun — der auch die Brave GNU World Fragen beantwortete — und Leon Bottou aus den "NEC Labs America" in Princeton geleitet. Unterstützung erfahren sie dabei von einer großen Zahl von Freiwilligen aus der ganzen Welt, z.B. Fu Jie Hang, Patrice Simard, Patrick Haffner, Yoshua Bengio, Pascal Vincent, Jean Bourrelly, Xavier Drancourt oder Secil Ugurel. Weitere Freiwillige sind immer herzlich willkommen.

Obwohl hauptsächlich als freier Matlab-Ersatz für Wissenschaftler, Forscher und Studenten entwickelt, bietet Lush eine vollständige Programmiersprache für jeden Zweck. Durch die einfache Integration mit C ist Lush eine sehr geeignete Skripting- oder Integrations-Sprache, um verteilte Funktionalität in einer komfortablen GUI-Applikation zu kombinieren.

Tatsächlich macht es diese Integration auch sehr einfach, vorhandene Bibliotheken einzubinden, weshalb Lush über vielfältige Anbindungen an wissenschaftliche, grafische oder audiovisuelle Bibliotheken, wie z.B. die GNU Scientific Library (GSL; siehe Ausgabe #35 [9]), OpenGL/GLU/GLUT, ALSA, Video4Linux oder die Intel Vision Library verfügt.

Im Vergleich mit Python schneidet Lush im Bezug auf die Anzahl der aus der GSL unterstützten Funktionen daher mit 4000 im Vergleich zu ein paar Hundert sehr gut ab. Die Syntax ist sauberer als bei Perl und sollte leichter zu lernen sein als Scheme. Und im Leistungsvergleich mit Octave oder Matlab ist es je nach Situation zwischen 15 und 300 mal schneller.

Diese Vorteile lassen Lush sehr interessant und auf jeden Fall einen Blick wert erscheinen. Tatsächlich gibt es auch bereits kleinere Spiele, die in Lush geschrieben wurden, wie z.B. einen einfachen Mond-Lander, dessen Screenshot auf der Lush Homepage zu finden ist.

Geschrieben wurde Lush in C und Lush und es läuft traditionell auf GNU/Linux, Solaris, Irix und OpenBSD, wobei jedoch seit Februar 2003 auch eine mit Cygwin auf Windows lauffähige Version verfügbar ist.

Zu den Problemen des Projekts gehört, daß das Design des Kompiler bereits mehr als 10 Jahre alt ist und er daher ein paar starre und bizarre Einschränkungen aufweist. Den Kompiler bei Gelegenheit neu zu schreiben ist daher auf der ToDo-Liste des Projekts.

Dort finden sich auch das Unterstützen von noch mehr Bibliotheken sowie eine Verbesserung des Dokumentationssystems. Auch ein Template-Mechanismus soll mittelfristig zu Lush hinzugefügt werden.

Weiterhin gibt es großes Interesse an einer Mac OS-X Portierung, für die noch Freiwillige gesucht werden. Ein automatisierter Parser für C/C++ Header-Files zur automagischen Einbindung in Lush wäre ebenfalls ein sehr erwünschtes Projekt.

Leserinnen aus den Vereinigten Staaten haben übrigens gute Chancen, bereits indirekt mit Lush in Berührung gekommen zu sein. Einige Geldautomaten von NCR verwenden Lush-generierten Code auf Embedded DSP Prozessoren, um automatisch die Beträge auf deponierten Schecks zu lesen. Und eine in Lush geschriebene Engine liest etwa 10% aller in den USA deponierten Schecks in den Hochgeschwindigkeits-Scheck-Lesern.

jMax

Wie regelmäßigen Lesern der Brave GNU World bekannt sein dürfte, ist die Free Software Foundation Europe Partner im AGNULA Projekt [10], welches die Zusammenstellung einer vollständig freien GNU/Linux Distribution für professionelle Audio-Anwender zum Ziel hat.

Ein weiterer Partner des AGNULA Projekts ist das "Institut de Recherche et Coordination Acoustique/Musique" (IRCAM) — das Musikzentrum des Centre Pompidou in Paris, Frankreich. Aus dem Hause des IRCAM stammt jMax [11], eine grafische Entwicklungsumgebung für interaktive Multimedia-Applikationen.

Audio-Applikationen hatten traditionell das Problem, daß sie oft für spezifische Hardware geschrieben wurden und daher in hohem Maße plattformabhängig waren. Wegen der schnellen Weiterentwicklung führte dies dazu, daß die Programme im Wesentlichen alle drei Jahre für eine neue Plattform entwickelt werden mußten. Ansonsten drohte, die für für diese Programme geschriebene Musik verloren zu gehen.

Dies schaffte die Motivationslage für die Entwicklung einer reinen Software-Lösung, die nicht von einer bestimmten Plattform abhängig ist.

Das in jMax verwandte Paradigma erlaubt es, bestimmte Grundelemente wie Frequenzgeneratoren, Signalfilter, Effekte, Eingabe- und Ausgabemodule, variable Regler, DSPs, Verstärker miteinander zu verschalten und zu sogenannten "Patches" zu verbinden.

Diese können aufgrund von Verschachtelungen nahezu beliebig komplexe Konstrukte bilden, so daß es prinzipiell möglich ist, jede Form und Art digitaler Signalbearbeitung, Effekt oder Synthesizer abzubilden.

Eine sehr bekannte Implementation dieses Paradigmas ist das bei Musikern recht bekannte proprietäre "Max". jMax begann 1995 mit dem Ziel, eine plattformunabhängige Version von Max zu schaffen. Mitte 1999 wurde jMax dann als Freie Software unter der GNU General Public License (GPL) herausgegeben.

Das bei IRCAM mit jMax betraute Team besteht im Wesentlichen aus François Déchelle und Patrice Tisserand. François, der auch die Brave GNU World Fragen beantwortete, sieht die Vorteile von jMax vor allem darin, daß es gleichermaßen auf auf GNU/Linux, Mac OS X und Windows läuft und flexibler ist als das ursprüngliche Max oder auch PD, eine andere Implementation desselben Paradigmas.

Zu den wesentlichen Vorteilen gehört darüber hinaus auch, daß jMax aus zwei Komponenten besteht. Die zentrale Komponente ist der Server, eine in C geschriebene Echtzeit-Engine, die die Berechnungen ausführt. Dies erlaubt es, die Engine ohne GUI laufen zu lassen, alternative GUIs zu schreiben, oder auch die Engine in eine Plugin-Umgebung einzugliedern (LADSPA).

Mit diesem Server kommuniziert ein Client, der in Java geschrieben wurde. Die Wahl von Java sollte grundsätzlich sicherstellen, daß der Client mit wenig Problemen auf den unterschiedlichsten Plattformen lauffähig ist. Leider ist die Situation von Java im Bezug auf Freie Software nicht ganz unproblematisch.

Java-Abhängigkeiten

Das Problem von Java besteht nicht in der Technik oder ihrer Umsetzung; auch wenn diese natürlich nicht unumstritten sind, stellen sie kein Problem für Freie Software dar.

Es geht vielmehr um das Problem wie Java selbst entwickelt und vertrieben wird, da es im Wesentlichen zwei weit verbreitete Implementationen gibt, die beide proprietär sind: Eine von Sun und eine von IBM. Diese mögen kostenlos zu beziehen sein, bieten jedoch nicht die für Freie Software notwendigen Freiheiten.

Als Resultat gilt für jede auf diesen Plattformen laufende Applikation — auch für Software, die einer Freien Software Lizenz untersteht — daß sie die Freiheit ihres Benutzers gefährdet. Eine Situation, die der Freier Software auf Windows nicht unähnlich ist.

Es gibt einige Ansätze, Java als Plattform vollständig in Freier Software zu implementieren (siehe "GNU and the Java language" [12]). Doch da die dominanten Referenzimplementationen proprietär sind, müssen die freien Projekte nachbauen, womit deren aktuelle Version herausgekommen ist.

Nicht jeder Entwickler hat Spaß an einem solchen Wettlauf, der obendrein nicht gewonnen werden kann. Freie Software ist hier also effektiv benachteiligt und hat infolgedessen zumeist einen geringeren Umfang in der Funktionalität.

Machen Entwickler von Java-Programmen nun Gebrauch von den erweiterten Funktionen der proprietären Implementationen, so sind diese im Allgemeinen nicht mehr lauffähig auf den Freie Software Java Implementationen und im Resultat damit auf die proprietären Plattformen angewiesen. Eine Situation ähnlich Freier Software, die ausschließlich auf Windows läuft und auf keinem Freie Software Betriebssystem benutzt werden kann.

Dies ist präzise das Problem des jMax-Client. Und da die Beifügung proprietärer Software zu AGNULA für alle Partner außer Frage steht, droht die Gefahr, jMax nicht mit vollständig lauffähiger GUI anbieten zu können.

pyMax

Da die alternativen Ansätze keine Aussicht auf rechtzeitigen Erfolg zeigten — genauere Informationen finden sich auf der Homepage der FSF Europe [13] — wurde nun beschlossen, auf Java gänzlich zu verzichten und den Client in Python neu zu implementieren.

Die Wahl fiel dabei auf Python, weil es wie auch Java eine recht gute Plattformunabhängigkeit erlaubt und zudem relativ schnelle Entwicklung ermöglicht, dabei aber vollständig Freie Software ist.

Ob es das IRCAM allerdings alleine schaffen wird, den Client rechtzeitig fertigzustellen, ist zweifelhaft. Daher suchen sie momentan Freiwillige, die dabei helfen, den Python-Client für jMax zu schreiben.

Nach Angabe von François können sie zwar keine großen Versprechen machen, bieten aber an, Fragen zum Python Client bevorzugt zu behandeln und an Wochentagen garantiert innerhalb von 24 Stunden zu beantworten. Wer also Lust hat, an dem Projekt mitzuarbeiten, sei an die jMax Entwicklerliste verwiesen. [14]

Genug fürs Erste

Damit soll es fürs Erste genug der Brave GNU World für diesen Monat sein. Solltet Ihr über ein interessantes Projekt stolpern, laßt es mich wissen, es waren in vielen Fällen Leser, die die Perlen der Kolumne ausgegraben haben — das Lush Feature ging beispielsweise auf einen Tip von Stefan Kamphausen, dem Autor des Brave GNU World Logos, zurück.

Doch wie immer bitte ich natürlich auch um generelle Anregungen, Fragen, Ideen und Kommentare an die übliche Adresse. [1]

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] Brave GNU World Ausgabe #48: http://brave-gnu-world.org/issue-48.de.html
[6] Skidbladnir Homepage: http://mitglied.lycos.de/altow/
[7] TRIZ-Online: http://www.triz-online.de
[8] Lush Homepage: http://lush.sf.net
[9] Brave GNU World Ausgabe #35: http://brave-gnu-world.org/issue-35.de.html
[10] AGNULA Homepage: http://www.agnula.org
[11] jMax Homepage: http://www.ircam.fr/jmax/
[12] GNU and Java Homepage: http://www.gnu.org/software/java/
[13] AGNULA Java Issues: http://fsfeurope.org/projects/agnula/java.html
[14] jMax Entwickler-Mailingliste: http://listes.ircam.fr/wws/info/jmax


[ 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) 2002 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 Jun 11 21:40:20 Westeuropäische Sommerzeit 2003