programmierung - 16.3.2005 - 20.6.2005

del.icio.us mal Wiki = Code Snippets

Code Snippets ist ein System in das man kleine Code-Schnipsel reinhauen kann und denen Tags verpassen kann. Also wirklich sowas wie ein Wiki für Sourcecode mit Tags. Man kann fix nach Tag-Kombinationen gruppieren und dann alle Schnipsel für dieses Thema sehen. Und kann natürlich leicht eigene Snippets zufügen. Könnte mit etwas mehr Masse sehr interessant sein - sozusagen lebende Cookbook-Bücher.

WebKit, WebCore und JavaScripCore - Open Source

Surfin' Safari berichtet darüber das WebKit (das Objective-C API für den Renderer von Safari), WebCore (der Basis-Code) und JavaScriptCore (der Basis-Code für die JavaScript Implementierung) ab sofort Open Source sind. Mit CVS Repository und öffentlichem Bugtracking System.

Letzten Endes ist das natürlich damit ein Fork von khtml und kjs, aber durch die Offenlegung der Sourcen kann sich jetzt jede Seite bei der anderen frei bedienen und damit sollten die Probleme zwischen den Projekten erstmal vom Tisch sein. Zumal auch Contributions angenommen werden sollen.

WebObjects Bestandteil von XCode 2.1

In den WebObjects 5.3 Release Notes gesehen und gleich mal nachgeguckt: WebObjects ist jetzt Bestandteil der XCode 2.1 (für ADC-Member verfügbar) Distribution. Ich hab mir die über 700 MB mal gezogen und nachgeguckt: ja, da ist ein WebObjects.mpkg drin. Schon seltsam, denn bisher war WebObjects ein nicht ganz billiges Paket - ist jetzt der ganze Einsatz frei, oder braucht man für die generierten Anwendungen noch eine irgendwie geartete Runtime, die dann wieder Geld kostet?

Emacs on the metal

Aus der Movitz Mailingliste: Emacs on the metal. Jemand hat einen Emacs-Clone in Common Lisp geschrieben und diesen dann bootfähig als Movitz-Kernel-Image erstellt. Movitz ist ja ein System zur Programmierung von Embedded Applications in Common Lisp - und damit ist der Emacs-Clone somit der erste wirklich bootfähige Emacs geworden. Krank

The CHICKEN Scheme Compiler

Eine häufig (auch von mir) übersehene Scheme-Implementation ist der CHICKEN Scheme Compiler. Das besondere an dieser Implementation: nebem dem interaktiven Interpreter gibt es einen Compiler der portables C produziert und mittels C-Compiler in ladbare Module kompiliert. Dadurch ist dieser Compiler besonders gut bei der Integration von C-Libraries. Im Prinzip ist das noch recht ähnlich zu Gambit-C, einer anderen Scheme-Implementierung die auf C als Zwischensprache aufsetzt.

Aber Chicken geht beim generierten C-Code noch über Gambit-C hinaus - das System ist explizit darauf ausgelegt das es mit C gemixt wird, wärend Gambit-C einfach nur C als portablen Assembler benutzt. In Chicken sind die FFIs (Foreign Function Interfaces) wesentlich einfacher. Das zeigt sich dann in fertigen Interfaces zu diversen Datenbanken wie metakit (wird im Python Desktop Server benutzt), PostgreSQL und sqlite.

Zusätzlich hat Chicken mit den Eggs eine nette Infrastruktur an über das Netz installierbaren Erweiterungen bekommen - mit Webserver, Datenbank und vielen anderen Schmankerln. Das hilft natürlich ungemein bei der Programmierung - ich hab eine solche Infrastruktur an fertigem Code mit MZScheme, Python und Perl lieben gelernt.

Chicken kompiliert auch unter Mac OS X. Im Moment rödelt gerade bei mir der Compiler im Hintergrund

Algol 68 Genie - An Algol 68 interpreter. Obercool. Algol 68 ist ja zwar eine Vintage Language, aber eine faszinierende: die einzige, wo für die Definition der Sprache selber eine Metasprache definiert wurde, in der die Definition der Sprache selber geschrieben ist. Der Algol68 Report ist immer noch einer der faszinierendsten Programmiersprachenstandards den ich kenne.

LispWorks Personal 4.4.5

LispWorks Personal - die freie (Freibier-freie) LispWorks-Version ist in der neuen 4.4er Release verfügbar und läuft auch mit Tiger. LispWorks ist im Moment die interessanteste Lisp-Umgebung für den Mac, da sie sich relativ gut in das System integriert. Und zum Spielen reicht die Personal Version ohne weiteres.

TBNL - A Toolkit for Dynamic Lisp Websites ermöglicht es mit Common Lisp dynamische Inhalte zu generieren. Im Prinzip sowas wie eine FastCGI-Lösung für Common Lisp.

Dive Into Greasemonkey ist ein freies Online-Buch von Mark Pilgrim über die Programmierung von Userscripts für Greasemonkey. Mit diesen Userscripts kann man Webseiten bei Anzeige per JavaScript verändern - z.B. fest integrierte Werbeblöcke ausschneiden, Links mit Afiliate-IDs umschreiben so das die eigene benutzt wird, einfach nur seltsames HTML reparieren so das man mit der Webseite überhaupt was anfangen kann oder alle möglichen anderen spassigen Sachen.

FramerD ist eine Objektdatenbank (ok, ein Framestore - ist aber was ähnliches) mit integriertem DB-Server, CGI-Interface und Scheme-Scriptsprache. Ideal um Wissensdatenbanken aufzubauen, da FramerD auf die dabei anfallenden pointerlastigen Strukturen optimiert ist. Aber auch so sehr spannend, da man ein Scheme mit Server und ODB bekommt. Muss ich unbedingt mal mit spielen, zumal es auch auf OS X kompilieren soll (was es bei mir aber derzeit nicht tut). Und es ist unter GPL lizensiert. Und für die Schlangenbeschwörer unter den Klammeraffen gibts auch eine experimentelle Pythonlibrary zum Zugriff auf FramerD...

CamlServ ist ein Webserver in OCaml. Ich habs mir noch nicht genauer angeguckt, aber könnte interessant sein - OCaml ist eine Sprache der ML-Familie (bzw. der ML-ähnlichen Sprachen) mit diversen sehr interessanten Erweiterungen (z.B. einem leistungsfähigen Objektsystem). Leider scheint das Projekt nicht mehr sonderlich aktiv zu sein - letzter Release aus 2003 ...

Quartus Forth 2.0.0 ist die neue Version des native-Code-Forth für die Palm Plattform. Ich hab damit (und mit dem Vorgänger PilotForth) lange rumgespielt - ich bin halt ein alter Forth-Fan

yadis: yet another distributed identity system ist eine Spezifikation für ein verteiltes Identity-System. Mal näher angucken.

Free Pascal 2.0 ist raus

Free Pascal ist ein Turbo-Pascal und Delphi kompatibler Pascal-Compiler. Die neue Version unterstützt wesentlich mehr CPUs und Plattformen - unter anderem auch Mac OS X. Und für Panther gibts auch eine XCode-Integration. Endlich mal wieder ein Pascal das für den Mac funktioniert. Nicht das ich damit heute noch viel machen würde - aber irgendwie war Pascal ein Stück meiner Programmiergeschichte (immerhin habe ich lange Zeit die in Turbo Pascal geschriebene Gatewaysoftware Erwinsgate für das MausNet betreut).

Mai scheint der Monat der Vintage Languages zu sein bei mir

OpenCOBOL - a COBOL compiler

OpenCOBOL ist ein Cobol-Compiler der Cobol nach C compiliert und dann darauf den gcc loslässt. Ja, ich gestehe, 10 Jahre meiner beruflichen Laufbahn wurden mit Cobol verschwendet

XDS Modula-2 / Oberon-2 Compiler

Die XDS Compiler sind eine ganze Familie von extrem guten Compilern für Modula-2 und Oberon-2. Ich kenne die noch aus meiner DOS-Zeit, ich hab viel damit gearbeitet - früher waren sie rein kommerziell, jetzt sind sie Freeware (aber nicht Free Software oder Open Source - Free as in Free Beer, not Free Speech). Es gibt native Compiler für Windows und Linux 86 und - mein persönlicher Favorit - XDS/C-Compiler, die von Modula-2 und Oberon-2 in erstaunlich lesbares C compilieren. Leider ist auch der XDS/C Compiler nur für Windows und Linux 86 verfügbar - eine OS X Version wäre nett, aber ist leider nicht verfügbar.

Sparkline PHP Graphing Library liefert kleine kompakte Grafiken die sich gut in Text einpassen - ideal z.B. um Verläufsdaten besser zu visualisieren.

KDE-Entwickler verärgert über Apple - weil sie mal wieder nicht kapieren wie man im Team arbeitet und Patches an ein Upstream-Projekt schickt. Zusammenarbeit von Firmen mit Open Source Projekten ist eben immer noch problematisch - Firmen haben schlicht eine ganz andere Agenda als das OS Projekt.

Das .emacs File von Bill Clementson. Zeigt sehr schön warum man eigentlich überhaupt drüber nachdenken sollte Emacs zu benutzen. Besonders interessant für Common Lisp User natürlich sein Customizing für Slime zur Integration diverser Common Lisps.

Wer mit PostgreSQL nur gelegentlich arbeitet, es sozusagen als Desktopdatenbank benutzen will: PostgreSQLX ist eine Zusammenstellung des PostgreSQL Servers die einfach als Mac Applikation gestartet und gestoppt werden kann. Ideal für Entwickler. Dazu dann noch die PGAccess Oberfläche und man kann auf sowas wie Microsoft Access verzichten. Auch das alles natürlich wieder nur ab 10.3 (wird Zeit das 10.4 kommt und ich zu Hause wieder mal auf aktuellem Stand bin).

Borland open sources JBuilder - huch. Da hatte ich jetzt so nicht mit gerechnet - im Prinzip ist es ja sowas wie Aufgabe. Ob Borland ohne JBuilder noch was hat das sie über Wasser halten kann?

Streifenkalender für WordPress

Als erstes Plugin aus meinem Bilderblog (mitlerweile aus) gibts jetzt den Streifenkalender. Im Prinzip ein ganz normaler WordPress Kalender - nur eben nicht als Block für den Sidebar, sondern als Streifen um ihn über den Inhalt drüberzustellen. Da man in der Regel in der Länge einer Seite mehr Platz verschwenden kann als in der Breite und da mancher ja vielleicht mit dem doch recht ausgelutschten Format wo der Kalender in einem Sidebar steckt brechen will, kann man jetzt einfach den Streifenkalender einbauen. Der Code zum Einbau ist trivial:


< ?php get_strip_calendar(); ?> ```

Einfach das in das header.php oder wo auch immer man den Kalender haben will einbauen. Fertig (natürlich vorher das Plugin nach wp-content/plugins/ auspacken und in der Administration auspacken!).

Practical Common Lisp ist ein neues Buch über Common Lisp mit vielen praktischen Beispielen. Endlich mal ein Common Lisp Buch das sich nicht nur in eher theoretischen Beispielen ergeht sondern sich so praktischen Themen wie Spam-Filter, Webserver, HTML Generierung, ID3 Tags und anderem Kram widmet. Der Buchinhalt ist online lesbar.

Bistro Intro ist eine Smalltalk-Variante die auf der Java VM läuft. Kannte ich bisher noch nicht.

'Cool it, Linus' - Bruce Perens - ein bischen mehr Infos rund um die BitKeeper-Geschichte. Und ich bin da einer Meinung mit Bruce - Linus hätte einfach von vornherein diese alberne BitKeeper-Hoppelei garnicht anfangen sollen. Andrew Tridgell macht nur das, was er gut kann - propreitäre Protokolle knacken. Ihn dafür anzugreifen ist albern.

Selbstgemachtes System als BitKeeper-Ersatz - manchmal stört mich die Arroganz der OSS-Programmierer die immer meinen sie selber könnten alles besser als andere. Wieviel mehr Synergieeffekte kämen zum Tragen wenn diese Programmierer ihre - zweifelsfrei vorhandenen - Programmierqualitäten mal auf wenige Projekte konzentrieren würden? Ein gutes Sourceverwaltungssystem mit schnellem Patchhandling könnten wir alle gebrauchen - aber keinem ist mit zwei Dutzend halbgaren Lösungen gedient ...

/IE7/ ist ein Projekt das mittels JavaScript-Library dem IE6 CSS vernünftig beibringt. Damit sollen auch :before und :after in Kombination mit content: funktionieren - für HTML-freie rounded corners oder HTML-freie Link-Kennzeichnung durch Symbole nicht ganz unwichtig ...

Simulation von :before mit content: in IE6

Der IE6 kann ja nunmal nicht mit :before klarkommen, wenn man darüber per content: über das CSS Inhalt in die Seiten bringen will. Ziemlich nervig, wenn man das benutzt. Das IE7-Projekt von dem ich im vorigen Artikel schreibe funktioniert bei mir aber auch nicht verlässlich - z.B. unter einem Citrix-Server will er das nicht ausführen, warscheinlich fehlen ihm irgendwelche Sicherheitseinstellungen dort. Strange. Egal, ich hab mir das Problem selber mal angeguckt und eine recht kompakte Lösung gefunden, jedenfalls für meine spezielle Spielart des Problems: ich will nämlich nur Icons vor einen Link stellen.

Dazu haben Links eine von drei Klassen oder keine Klasse: class="zu" definiert ein zugeklapptes Navigationselement, class="auf" ein aufgeklapptes, class="ohne" einen Link der nicht speziell angehübscht werden soll und alle anderen Links kriegen ein Standard-Icon.

Dazu hänge ich einfach unten in die Datei kurz vor dem /body folgenden Code:


var links = document.getElementsByTagName("a");
for (var i=0; i

Den ganzen Kram packe ich dann am besten noch in einen bedingten Kommentar für den IE, so das er nur von diesem überhaupt ausgeführt wird. That's it. Simpel und wirksam. Deaktiviertes JavaScript ist in meinem Fall nicht kritisch, da ohne JavaScript auf dem System (ist eine Business-Lösung mit hoher Interaktivität) demnächst eh nix mehr laufen wird- Ajax braucht nunmal JavaScript als eine Komponente ...

SISC - Second Interpreter of Scheme Code

SISC Scheme ist ein in Java geschriebener, sehr vollständiger Scheme-Interpreter und Compiler. Besonders interessant: es gibt ein continuation-basiertes Webframework dafür.

Weitere interessante Eigenschaften sind die gute Integration in die Java-Welt durch das Java-Scheme-Interface. Im Prinzip stehen alle Bibliotheken aus der Java-Welt auch in Scheme zur Verfügung.

SISC Scheme unterstützt auch SLIB (eine Erweiterungsbibliothek für Scheme mit vielen nützlichen Modulen) und diverse SRFIs (Scheme Requests for Implementation - der formale Weg zur Erweiterung der Scheme Sprache mit Standardmodulen).

Das Studs MVC Framework ist eine Portierung und Erweiterung des Java Struts Frameworks nach PHP. Dabei sind Frameworks die erstmal eine J2EE-ähnliche Grundstruktur für Servlets in PHP abbildet. Für mich klingt das natürlich nach Den Teufel mit dem Beelzebub austreiben

Tags aus Terms

Jonathan Luster hat sein Y! Terms Extraction Plugin für WordPress veröffentlicht. Es benutzt die Yahoo-Services um aus einem Postingtext relevante Schlüsselwörter herauszuholen und präsentiert diese dann als Technorati-Tags im Posting. Wenn jemand das mal ausprobiert: mich würd interessieren wie gut das mit deutschen Texten klarkommt.

Ausserdem würde mich natürlich auch mal interessieren wann blogg.de ein API anbietet, ich mein, wird doch langsam mal Zeit mit den Features von Technorati und Yahoo aufzuholen, oder?

FeedWordPress ist ein Plugin das mit einer WordPress-Installation eine Planet-Site erzeugt: im Prinzip ein öffentlicher Aggregator, nur das halt die Einträge in eine WordPress-Datenbank laufen.

Source-Verwaltungssystem BitKeeper nur noch kommerziell - für mich war die Wahl von BitKeeper sowieso eine saublöde Idee. Und das Argument das die anderen Alternativen damals noch nicht weit genug waren zieht nicht - dann hätte man eben noch ein Weilchen auf CVS gearbeitet und gewartet bis SVN oder andere Alternativen weit genug sind.

TheMonadReader soll eine regelmäßige Veröffentlichung rund um Haskell werden. Verlinkt ist die erste Ausgabe. Das ganze soll weniger formell als klassische wissenschaftliche Journale sein, könnte also durchaus interessant werden. Über Pugs (Perl6 in Haskell) ist auch ein Artikel in der ersten Ausgabe drin.

Pugs - pugscode ist eine Perl6 Implementierung in Haskell. Noch verrückter: das ganze Projekt wird primär in einem IRC-Chat koordiniert und die gemeinsame Arbeit wird mit SubEthaEdit gemacht. Ist das schon Nirvana?

Javascript Windows bilden einen Desktop in einer Webseite ab. Man hat einen Launch-Bar und kleine Applikationen die natürlich HTML-basiert sein müssen, die dann in Fenstern erscheinen die der Benutzer verschieben, minimieren, maximieren und schliessen kann - halt ein Desktop, nur eben innerhalb einer Webseite. Verrückte Idee

Html Validator for Firefox and Mozilla - wow. Klasse Extension: macht direkt eine Validierung der angezeigten Webseite und integriert sich in den Source-View zwecks Debugging der Fehler. Sehr nett - und in den letzten Tagen durch mehrere Weblogs gelaufen (weiss nicht mehr wo ich es zuerst gesehen habe).

upcoming change in PLT Scheme v300 - lambda, filter und fold raus. Jawoll. Schliesslich hat das der Python-Guido ja auch schon gefordert.

class.jabber.php ist eine PHP-Klasse zur Programmierung von Jabber-Diensten.

Cat2Tag Plugin

Das Cat2Tag Plugin ist etwas das mir noch für mein Fotoblog fehlte: eine Möglichkeit mit den WordPress Kategorien wie mit Flickr-Tags zu arbeiten.

Es werden die häufigsten Tags (20 Stück, kann auf alle umgestellt werden) angeboten in einer kleinen JavaScript Leiste und zusätzlich gibts ein Eingabefeld für Tags in die man einfach manuell weitere eingeben kann (oder eben aus der Liste der häufigsten welche reinklicken kann). Die Default-Kategorie wird einfach als Wort in der Tagliste aufgeführt. Neue Tags können einfach durch Verwendung derselben angelegt werden. Sehr praktisch.

Einzig die Hierarchie der Kategorien wird natürlich nicht abgebildet - die ist aber bei Tags eh nicht so wirklich interessant, die Hierarchie spielt bei Tags ja keine echte Rolle. Genauso wird die Tagbeschreibung (Kategorienbeschreibung) nicht gepflegt, die muss man dann nachträglich von Hand überarbeiten wenn man da was sinnvolles stehen haben will (z.B. für die Feeds).

Ein Problem hat das Plugin noch: es setzt das scharfe s "ß" nicht korrekt um bei der Kürzung von Umlauten aus Tagnamen. Scheint aber ein Problem zu sein das WordPress auch hat - auch bei manueller Kategorienanlage wird das "ß" nicht korrekt aufgelöst. Mit denen sollte man also vorsichtig sein. Und natürlich werden Umlaute nicht auf ihre Langform gewandelt sondern auf ihre Grundform - aus "ä" wird "a". Was die Tag-URLs dementsprechend etwas problematisch macht, da User wissen müssen wie der Tagname sich auf die URL umsetzt, wenn sie die URL selber hacken wollen. Das ist aber ebenfalls ein generelles Problem der Internationalization.

Eine Idee der Verbesserung wäre noch eine zusätzliche Querystring-Regel mit der man URLs mit Tag-Kombinationen (Natur+Tiere) realisieren könnte.

Ansonsten aber ein wirklich nettes Plugin mit einer für mich sehr praktischen Funktionalität.

APLX Version 2: The exciting cross-platform APL

APLX ist eine APL2 Implementation für verschiedene Systeme: Linux, Windows, Mac OS X. Leider etwas teuer - eine Personal-Version gibts nur für Linux billiger, ansonsten gibts auf dem Mac nur eine Evaluation-Version. Und wie die das Problem mit den APL-Sonderzeichen gelöst haben steht da auch nicht - vermutlich über kombinierte Tasten oder ähnliches. Ich wüsste jedenfalls nicht das es eine APL-USB-Tastatur gäbe.

Irgendwie hätte ich mal wieder Spaß mit APL rumzuspielen - die Sprache ist herrlich verrückt und hat ein paar Ecken die heute noch (ausser in Sprachen wie J und K natürlich, bedingt auch in Sisal) ihr Gegenstück suchen können. Speziell die Möglichkeit ganze Arrays von Werten auf einen Schlag zu bearbeiten und mit mächtigen Higher-Order-Funktionen zusammenzufassen ist wirklich spannend.

J gibt es mitlerweile auch in einer OS X Version, leider erst ab 10.3. Wäre noch eine Alternative, J kann im Prinzip als APL-in-ASCII betrachtet werden (wobei es eine ganze Menge Bereinigungen in der Sprachtheorie bietet gegenüber APL).

Alice ist jetzt in der Version 1.1 verfügbar - dabei ist auch ein Mac OS X Port. Leider nur über den Unix-Weg, also mit X11-Interface und ohne den native Code Just-in-Time-Compiler, aber immerhin kann man mit der Sprache mal spielen auf dem Mac. Zur Erinnerung: Alice ist ein ML-Dialekt mit starkem Fokus auf guter Unterstützung von Parallelität.

DrScheme 300er Serie

freshmeat.net: Project details for DrScheme: Yeeeehaaaa!!!! DrScheme wird Unicode-tauglich. Sehr schön. Ok, die anderen Features klingen auch sehr gut, vor allem die über Threads portablen Continuations - gibt ganz neue Möglichkeiten für Schweinereien im Code

Auf jeden Fall gehts bei der besten Scheme-Umgebung weiter und sie wird noch besser.

PythonEggs sind sowas wie .jar-Files für Python. Nur das sie auf ZIP aufbauen. Wird auch endlich Zeit, das man Python-Anwendungen als ein einzelnes File mit Abhängigkeitsdefinitionen runterladen kann und die Installation von Python Anwendungen damit endlich einfacher wird.

Ajaxing the Rails - die neueste Release von Ruby on Rails bietet auch Ajax-Support. Wobei hier der eigentliche Ajax-Teil wesentlich stärker integriert ist als bei anderen Frameworks - könnte interessant sein, denn bisher ist Ajax doch eher frickelig zu nutzen in grösseren Projekten.

Advanced Bash-Scripting Guide - alles was ihr schon immer über Bash-Scripting wissen wolltet aber nie zu fragen gewagt habt. Und noch ein bischen was ihr nie auf die Idee gekommen wäret zu fragen. Und dann noch das, was ihr eigentlich niemals hättet wissen wollen, aber trotzdem drin steht

The Man in Blue > Experiments > widgEditor ist ein Wysiwig-Editor für HTML der Textareas im Browser austauscht und in JavaScript geschrieben ist. Er hat einen integrierten Fallback auf normale Textareas, so das Browser ohne JavaScript immer noch mit normalem Text arbeiten können. Und er produziert sauberes XHTML. Und: er funktioniert bei mir tatsächlich mal vernünftig.

Bildbeschneidung mit DHTML und PHP dahinter. Könnte in einem Photo-Plugin ganz praktisch sein.

Agata Report ist sowas wie Crystal Reports, nur für Linux und Open Source. Könnte mal gelegentlich ganz praktisch sein, zumal es wohl auch Reports generieren kann die leicht auf einem Webserver laufen können.

Clement kapiert Demokratie nicht

Anders kann man die Lügen um die Position des Wirtschaftsministerium zur Patentrichtlinie nicht interpretieren. Es gibt einen eindeutigen und von allen Fraktionen getragenen Beschluss des Bundestages. Aber das Wirtschaftsministerium scheisst auf die Meinung des Parlamentes wie auch der Experten.

Übrigens ist das angebrachte Beispiel von der "zeit und platzsparenden Speicherung von Daten" eines das genau die Probleme anzeigt: es gab immer wieder Probleme mit Patenten auf Kompressionsalgorithmen die Formate defakto versiegelten für die Nutzung in Open Source Programmen - was gerade der in aller Munde geführten Interoperabilität ein ziemliches Bein stellt. Microsoft bräuchte nur die XML-Formate einfach in einem eigenen binären XML-Format speichern und könnte so per Patent in Europa verhindern das Open Source Software die Dokumente liest.

Andere - ältere - Beispiele für genau dieses Problem sind die GIF-Speicherung und der LZW-Algorithmus. Beides hat massive Probleme bereitet bei der Interoperabilität und genau das steht uns mit der vorliegenden Richtlinie auch in Europa bevor.

Die Behauptung des Wirtschaftsministerium das da nichts zu befürchten wäre ist also nichts weiter als eine dumme und durchschaubare Lüge. Letzten Endes wird hier von der Bundesregierung den Branchenriesen in die Hände gespielt und das auf Kosten des Mittelstandes und auf Kosten der Open Source Software.

Mehr dazu wie üblich beim FFII.