Author Archives: alex

HTML-Entities mit WP-Syntax 0.9.2

Für die Darstellung von Code-Schnipseln, speziell das Syntax-Highlighting setzen wir das Plugin WP-Syntax ein. Probleme gab es bisher immer mit Code, der die speziellen HTML-Entities enthielt, also hauptsächlich die öffnenden und schließenden spitzen Klammern, die in der einen oder anderen Sprache irgendwie als Vergleichsoperatoren eingesetzt werden: < und >.

Bisher bin ich Problemen damit so aus dem Weg gegangen, dass ich entsprechende Zeichen im Beitragseditor durch &lt; und &gt; ersetzt hatte. Damit das Plugin damit umgehen konnte, war bei jedem Update eine kleine Änderung notwendig, für Version 0.9.1 sah der Patch beispielsweise so aus:

--- wp-syntax.php  2008-08-24 19:22:12.000000000 +0200
+++ wp-syntax.php  2008-08-25 15:26:48.000000000 +0200
@@ -97,7 +97,8 @@
     $line = trim($match[2]);
     $code = wp_syntax_code_trim($match[3]);

-    $geshi = new GeSHi($code, $language);
+    $geshi = new GeSHi(htmlspecialchars_decode($code), $language);
     $geshi->enable_keyword_links(false);
     do_action_ref_array('wp_syntax_init_geshi', array(&$geshi));

Ab WP-Syntax 0.9.2 ist das nicht mehr notwendig. Die Release Notes sagen ganz lapidar:

**0.9.2** : Updated to use GeSHi v1.0.8.2; Added optional `escaped=”true”` support in case code snippets are already escaped with html entities.

In der Praxis sieht das dann so aus:

    <pre lang="xml" escaped="true">
    &lt;xml&gt;Hello&lt;/xml&gt;
    </pre>

Das vereinfacht zukünftige Upgrades von dem Plugin, ist also eine feine Sache. Für vergangene Beiträge musste ich jetzt allerdings nochmal von Hand diesen Parameter setzen. Wenn mir da irgendwo was durch die Lappen gegangen sein sollte, einfach mal kurz anpiepsen, dann behebe ich das.

Kein Usenet bei O₂

Wir haben in unserer WG einen DSL-Anschluss, der Provider ist O2. Auch wenn da öfter als mir lieb ist die Verbindung neu aufgebaut wird und der von denen gestellte Router besser funktionieren könnte, läuft das ganze doch recht zufriedenstellend.

Soweit so gut, nun bin ich von Fli4l und eisfair gewohnt das Usenet zu nutzen, dort laufen die Diskussionen zwischen Nutzern in Newsgroups ab, die auf einem freien Newsserver verfügbar sind und die ich auch regelmäßig nutze. Dieser Server hat allerdings nur diese Gruppen gelistet. Andere Gruppen aus den Weiten das Usenet wie z.B. de.comp.text.tex oder de.comp.lang.perl.misc habe ich vor unserem Umzug 2007 auf dem Newsserver von T-Online abgerufen, aber nur gelegentlich gelesen, so dass ich hier bisher darauf verzichtet habe.

Heute nun hatte ich eine Frage bezüglich Perl und hab die reflexartig erstmal über Google Groups in de.comp.lang.perl.misc abgesetzt. Grundsätzlich würde ich die Gruppe aber schon gern in einem normalen Newsreader lesen. Ich dachte mir, dass O2 wohl auch einen Newsserver bereitstellt und suchte nach der entsprechenden Information. Auf der Homepage von denen war leider nichts zu finden, also rief ich die Hotline an.

Das Telefonat dauerte sechseinhalb Minuten wovon gefühlt fünf Minuten Ansagen und Melodien vom Band kamen. Die Mitarbeiter dort waren alle ganz freundlich, nur leider kam derjenige, der dann bescheid wusste mit der enttäuschenden Nachricht um die Ecke: »Newsserver gibt’s nicht bei O2.« Schade! :-(

GRUB Error 2

Manchmal findet man seltsame Sachen heraus. Wusste hier jemand, dass nicht alle Versionen von GRUB alle Versionen von ext3 lesen können? Ok, klingt erstmal logisch, dass das für ziemlich alte Versionen von GRUB und für ziemlich neue Versionen von ext3 gilt. Gut da fragt man sich erstmal, wie es denn überhaupt Versionen bei ext3 geben kann, aber egal, vielleicht fang ich die Geschichte doch besser vorn an.

Letze Woche hat sich eine meiner alten Festplatten verabschiedet, wo zu Testzwecken ein Debian Sid installiert war. Gestern bekam ich von Tux Ersatz und heut dachte ich mir, schiebst Du »mal eben kurz« wieder das System drauf. Die Installation verlief auch zügig und glatt. Den Bootloader ließ ich in den MBR von /dev/hdc schreiben und laden wollte ich das ganze wie üblich, nämlich über folgenden Eintrag im GRUB von /dev/hda (das zu nem Ubuntu gehört):

title       hdc: Debian Sid
configfile  (hd2,0)/boot/grub/menu.lst

Das funktioniert üblicherweise wunderbar. Man gelangt zunächst in das Bootmenü vom GRUB auf /dev/hda und von dort über obigen Eintrag in das Menü von /dev/hdc. So können die Systeme auf jeder der Platten ihre eigenen Bootloader eigenständig verwalten und kommen sich auch bei Kernelupdates nicht ins Gehege. Heute führte das allerdings zum Error 2. Das Handbuch von GRUB sagt dazu lapidar:

2 : Bad file or directory type
This error is returned if a file requested is not a regular file, but something like a symbolic link, directory, or FIFO.

Die Recherche nach der Lösung zu solchen Fehlern gestaltet sich natürlich schwierig. Ich hatte ein wenig Glück und fand diesen Thread im Ubuntu-Forum. Dort näherte man sich Stück für Stück einem ähnlichen Problem. Ich konnte ebenfalls mit der GRUB-Shell verifizieren, dass das GRUB aus dem MBR meiner /dev/hda nicht in der Lage war das Filesystem auf /dev/hdc1 zu lesen, obwohl letzteres ein sauberes (fsck von GRML drüberlaufenlassen) ext3 war. Mit anderen ext3 kam das bis dahin ja auch klar. Recht weit unten in dem Thread schreibt dann jemand:

Did you upgrade to Hardy from an earlier version of Ubuntu? Then you might of have older version of grub which cannot read ext3 partition with 256 inodes.

Da hab ich nicht schlecht geschaut. Das heißt einerseits wie eingangs angedeutet, dass es vorher (dieses mysteriöse »früher«) ext3 nur mit weniger inodes gab und ältere Versionen von GRUB mit so vielen nicht umgehen können. Das GRUB ist tatsächlich ein wenig älter, das Ubuntu ist ungefähr 2005 auf die Kiste gekommen, also wahrscheinlich ursprünglich als Dapper Drake oder vielleicht sogar noch Breezy Badger. Na und der aktuelle Installer von Debian Lenny scheint derart neue ext3-Formatierungen zu schreiben. Einfaches Neuschreiben des Bootloaders mit dem aktuellen GRUB von Intrepid Ibex hat dann jedenfalls im Handumdrehen das Problem behoben. Ich sag ja, seltsame Sachen gibt’s.

Erfahrungsbericht »Getting Things Done«

An diesem Wochenende hatte ich die Gelegenheit ein Buch zu lesen, das jetzt schon einige Zeit hier bei mir rumliegt. Ich zitiere mal Auszüge von Seite 4:

7. Auflage, November 2007
Titel der amerikanischen Originalausgabe: »Getting things done«

Ich kann mich nicht genau erinnern, wann ich das Buch gekauft habe, muss wohl so Anfang 2008 gewesen sein – so lang lag das hier in der Sonne. Der Umschlag ist ausgeblichen und wie ich gerade bei Amazon sehe, gibt es seit Mai wohl eine neue deutsche Übersetzung, die hoffentlich etwas besser ist als meine. Dass das Buch hier so lang ungelesen rumlag, zeigt wohl, dass ich es tatsächlich brauche.

Meine Mitautoren hier im Blog sind seit einiger Zeit schon intensive Nutzer von GTD und ich habe auch andernorts viel positives über die Methoden (die Methoden, nicht das Buch selbst) gehört. Nun denn, der feste Vorsatz (was gibt es klassischeres zum Jahresanfang) ist gefasst: ich werde das Buch durcharbeiten und ich werde meine Erfahrungen in diesem Blog veröffentlichen.

Ich erwarte folgendes:

  • Ich werde mich zu Anfang schwer tun mir die neuen Abläufe anzugewöhnen. Das dürfte nicht sehr ungewöhnlich sein, mit zunehmendem Alter (ich gehe immerhin auch auf die 30 zu) nimmt die Lernfähigkeit ab und sein eigenes Verhalten nachhaltig zu ändern fällt den meisten Menschen ziemlich schwer.
  • Ich werde meinen ganz persönlichen und ureigenen Weg finden, die Methoden umzusetzen. Der Erfahrungsbericht kann daher für andere nur als Anregung dienen.
  • Sobald es an die Umsetzung mit irgendeiner Form von Software geht, werde ich auf freie Software zurückgreifen und zur Not meine eigenen Tools entwickeln müssen, weil mir die anderen Tools alle nicht passen (siehe auch der letzte Punkt).

Ich erhoffe oder verspreche mir davon:

  • Wieder öfter den Kopf wirklich frei kriegen mit allen positiven Nebenwirkungen davon.
  • Nichts wichtiges vergessen. Ich vermute, dass es in Zukunft nicht weniger Verantwortung für mich selbst und andere geben wird und wirklich wichtige Sachen verpeilen wäre da ziemlich doof.

Ich werde die folgenden Beiträge alle hier verlinken, um eine Übersicht zu schaffen. Stay tuned! ;-)

Erinnerung an unser Gewinnspiel

Wer dachte, dass es sich im Artikel Gewinnspiel zum Jahreswechsel, den ich am 11.11. veröffentlichte, um einen Faschingsscherz handelte, liegt falsch. Wir verlosen tatsächlich ein Shirt, und zwar unter allen, die unsere drei Fragen dazu richtig beantworten können. Klickt einfach oben auf »win!« oder hier um alle Einzelheiten zu lesen.

Ganz nebenbei sei erwähnt, dass mit dem heutigen Tag die Anzahl der notwendigen richtigen Einsendungen, um die eigentliche Verlosung zu starten, von 23 auf 19 gesenkt wurde!

Vorsicht Kunde!

Ich bin ein Freund freier Software und ich verwende diese sehr gern auf alten Rechnern. Das ökologische Bewusstsein lässt mich vom Kauf neuer Hardware stets zurückschrecken, wenn die alte noch funktioniert. In einem dieser Rechner ist (bis auf den im Notebook) mein einziger DVD-Brenner eingebaut, ein mittlerweile etwas älteres Teil von LG (GSA-4163A), das auch DVD-RAM brennen kann. Auf dem Rechner ist »nur« Debian installiert und das Brennen mit k3b funktioniert tadellos.

Nun hatte ich letzte Woche nach längerer Zeit mal wieder neue DVD-Rohlinge gekauft, weil mir die alten ausgegangen waren. Ich dachte, es könne nicht schaden, mal nach neuer Firmware für den DVD-Brenner zu schauen, die Hersteller optimieren ja doch die Brennrezepte und packen das in neue Firmware.

Leider war es mir mit Firefox/Iceweasel auf dem Debian nicht möglich auf der Webseite von LG die entsprechende Firmware zu finden. Auf dem Windows-Notebook mit Firefox und Opera sah das dann genauso aus, also machte ich meinem Ärger beim Kundenservice Luft:

Sehr geehrte Damen und Herren,

mir ist es leider mit drei verschiedenen Browser nicht gelungen eine aktuelle Firmware für meinen DVD-Brenner von Ihrer Website zu laden. Entweder wurde überhaupt keine Suchfunktion angezeigt oder es wurden keine Ergebnisse gefunden. Einfache Listen ohne Javascript und Flash, wo man schnell und einfach findet was man sucht, wären wesentlich kundenfreundlicher. :-(

Mit freundlichem Gruß
Alexander Dahl

Im Anschluss daran fand ich noch die »richtige« Supportseite und die aktuelle Firmware. Das hätte mich allerdings keinen Schritt weiter gebracht, denn dort heißt es:

1.verbinden Sie das Laufwerk als Master mit dem secondary IDE-Controller
setzen Sie den Jumper auf der Rückseite des Laufwerkes auf Master. Verbinden
Sie kein anderes Gerät an diesem IDE-Kabel.

Abgesehen von dieser widersinnigen Bastelei hätte mir aber noch etwas anderes einen Strich durch die Rechnung gemacht:

Diese Firmware ist nur für den Gebrauch an PC`s mit den Betriebssystemen:
Windows XP, Windows 2000, Windows Millennium Edition (ME), und
Windows 98SE.

Das ist so natürlich Unsinn. Richtig ist, dass die Software zum Firmware-Upgrade nur unter den oben genannten Betriebssystemen läuft. Alle anderen sind außen vor. Glücklicherweise ist die »neueste« Firmware für das Gerät schon älter. Ein kurzer Check verriet mir, dass diese bereits installiert war.

Damit hätte die Geschichte abgeschlossen sein können, das war wie gesagt alles letzte Woche. Der Kracher kommt aber noch, nämlich die Antwort auf meine Anfrage beim Support:

Sehr geehrter Herr Dahl,

herzlichen Dank, dass Sie mit LG Electronics Deutschland GmbH Kontakt aufgenommen haben.

Wahrscheinlich benutzen Sie den Browser Mozilla Firefox. Da unsere Seite fuer den Internetexplorer optimiert ist, moechten wir Sie bitten diesen zu verwenden.
Dann haben Sie auch bei der Suchoption den gewuenschten Erfolg.

Bei Rueckfragen senden Sie bitte den gesamten Mailverkehr als Anhang mit.

Wenn Sie noch weitere Fragen oder Anregungen haben sollten, können Sie sich jederzeit wieder an uns wenden.

Mit freundlichen Gruessen

Fragen hätte ich keine, aber eine Anregung an LG: Gestalten Sie doch bitte Ihre Webseiten so, dass nicht nur Nutzer des Internet Explorer alle gewünschten Informationen erhalten und ermöglichen Sie Nutzern freier Betriebssysteme auch ein Firmware-Upgrade, zur Not über irgendeine Bootdiskette oder -CD!

Nachtrag: Ich dachte mir, dass LG das hier wohl nicht lesen würde, also antwortete ich per Mail:

Sehr geehrte Damen und Herren,

Sie boten in der Antwort auf meine Anfrage an, mich mit weiteren
Anregungen an Sie zu wenden – gern.

Ich würde es zunächst begrüßen, wenn Sie Ihre Webseiten nicht nur auf
einen einzigen Browser optimieren würden, sondern der wachsenden Zahl
von Nutzern alternativer Browser und Betriebssysteme ebenso ermöglichen,
an die gewünschten Informationen zu gelangen.

Desweiteren empfinde ich es als klare Einschränkung, Firmware-Upgrades
nur unter den teuren Betriebssystemen von Microsoft durchführen zu
können. Nutzer von Linux, BSD oder Solaris sind praktisch nicht in der
Lage Ihre Hardware sinnvoll einzusetzen, weil Ihnen Firmware-Upgrades
verwehrt bleiben. Wie wäre es stattdessen Images für Boot-Disketten oder
-CDs bereitzustellen, von denen das Firmware-Upgrade
betriebssystemunabhängig möglich ist?

Mit freundlichem Gruß
Alexander Dahl

Was kommt zurück?

I’m sorry to have to inform you that your message could not
be delivered to one or more recipients. It’s attached below.

For further assistance, please send mail to

If you do so, please include this problem report. You can
delete your own text from the attached returned message.

The Symantec Mail Security program

: host 156.147.51.142[156.147.51.142] said: 550 gsfs@lge.com…
No such user (in reply to RCPT TO command)

Gut, wer nicht will, der hat schon – dann halt nicht.

Freie Paketentwicklung für eisfair

eisfair ist grundsätzlich ein tolles Projekt. Die Idee ist toll, die Software ist toll und die Leute, die für das Projekt arbeiten auch. Neben reinem Eigenbedarf sind das alles Gründe, Zeit in das Projekt zu investieren. Aber es gibt immer zwei Seiten der Medaille und in solchen Projekten auch immer Sachen, die besser laufen könnten.

Ein Punkt, den ich persönlich bedauere ist die Offenheit des Projekts. Es hat sich historisch so entwickelt, dass es ein Kernteam von offiziellen Entwicklern gibt, diejenigen, die das Basis-System betreuen, das Kernel-Paket und diverse große Pakete wie Mail, Samba, MySQL, Apache usw. Das ist grundsätzlich erstmal nichts verkehrtes, man kann z.B. einfach nicht der ganzen Welt Schreibzugriff auf das zentrale Entwicklungs-Repository geben – Lesezugriff hingegen schon. Leider ist nicht nur dieses Repo der Öffentlichkeit verborgen, sondern es läuft auch viel Kommunikation an den öffentlichen Newsgroups vorbei. Dafür gibt es Gründe und die meisten Entwickler und Anwender sind mit der Situation so auch zufrieden.

Ich persönlich denke, dass ein öffentliches Repository (read-only ;-) ) und ein öffentlicher Bugtracker die Entwicklung und Popularität eines Projektes fördern, auch wenn die Entwickler dann möglicherweise mehr Zeit für Support aufbringen müssen und sie diese Zeit nicht für die Entwicklung zur Verfügung haben. Weil ich das so sehe und weil ich mit meinen eigenen Paketen natürlich machen kann, was ich will, gib es eben diese ab sofort frei – so frei wie in Freiheit und so frei wie in Freibier: http://www.lespocky.de/eisfair/

Jeder eisfair-Entwickler und -Nutzer kann also ab sofort meine Pakete nicht nur installieren, sondern den Quellcode auch abseits der Paketdateien direkt im Repository anschauen, auschecken, ändern, mir Patches schicken, Tickets anlegen usw. – wie man das von vielen anderen OpenSource-Projekten kennt. Ich weiß, dass ich keinen Ansturm erwarten darf und genau genommen erwarte ich eher, dass alles genauso ruhig abläuft wie vorher – aber es besteht die Möglichkeit und ich habe die leise Hoffnung, dass sich andere eisfair-Paketentwickler ein Beispiel nehmen und dem Projekt durch mehr Offenheit zu mehr Popularität und dadurch mehr Verbreitung, neuen Entwicklern und letztendlich mehr Qualität verhelfen werden.

:-)

Gewinnspiel zum Jahreswechsel

Ich will nicht lange um den heißen Brei rumreden: wir verlosen ein Shirt. Das ganze passiert nicht, weil andere Blogs, die ich hier nicht verlinken möchte, das auch tun und auch nicht um möglichst viel Leute auf dieses Blog zu locken. Wir machen das, weil wir das Motiv des T-Shirts für so genial halten, dass es mindestens noch ein drittes Exemplar davon geben sollte. ;-) Alles weitere auf der soeben verlinkten Seite, stay tuned!

Wer das super klasse und genial findet und glaubt, dass er sowieso keine Chance hat, das zu gewinnen, kann das natürlich auch im antiblau shirt shop kaufen.

Keysigning auf dem ersten Magdeburger Open-Source-Tag

Das sind ja gleich zwei Themen auf einmal… nun ich fang mit dem kürzeren an. Auf dem Magdeburger Open-Source-Tag 2008 wird es ein Keysigning-Event geben, leider ist die Ankündigung sehr versteckt ganz unten im Programm. Das ganze wird von Jens Kubieziel organisiert und der gute Mann bittet um Anmeldung für den Spaß bis zum 8.10. – also bis Mittwoch. Einfach eine (signierte ;-) ) Mail mit dem eigenen Fingerprint an Jens schicken, schon ist man angemeldet. Alles weitere auf der zuvor genannten Seite.

Der Open-Source-Tag selbst findet zum ersten Mal statt und wird von Stefan Schumacher organisiert. Unterschrieben ist das mit »Entwicklung trifft Anwendung«, die Themenschwerpunkte gehen in Richtung Erziehung, Bildung, Publishing. Natürlich sind auch ein paar thematisch anders gelagerte Vorträge im Programm. Jenes liest sich übrigens sehr interessant, man kann sich kaum zwischen den vier Tracks entscheiden.

Ich persönlich werde mir wohl die Vorträge anhören, die in Richtung LaTeX gehen und ich werde natürlich selbst auch auf der Keysigningparty zugegen sein. Dort sind übrigens auch ein paar Leute anwesend, die Punkte für CAcert vergeben können und wollen. ;-)

HowTo: Migration von Subversion Repositories mit eisfair

eisfair-2 steht vor der Tür, ich erwähnte es bereits im letzten Jahr und auch dieses Jahr anlässlich des LinuxTag. Da es kein Upgrade von eisfair-1 auf eisfair-2 geben wird, muss man die Kiste mehr oder weniger von Hand migrieren. Wie man seine Subversion-Repositories umzieht, beschreibe ich in diesem Artikel.

Falls aktiv und häufig mit den Repositorys gearbeitet wird, sollte der erste Schritt darin bestehen, die Schreibrechte auf dem alten Server zu entziehen. Das einfachste ist, in der Subversion-Konfiguration die Variablen SVN_REPOS_?_ANON_ACCESS und SVN_REPOS_?_AUTH_ACCESS für das umzuziehende Repository auf ‘read’ oder auf ‘none’ zu setzen.

Dann folgt das Backup des alten Repositorys. Dies sollte man an dieser Stelle manuell anstoßen, weil man nicht sicher sein kann, dass nicht noch jemand nach dem letzten automatischen Backup was eingecheckt hat. Dazu wählt man im Setup-Menü den entsprechenden Punkt für das Backup und im folgenden Dialog aus einer Liste das entsprechende Repository. Danach läuft der Dump vom Repository durch. Wenn das abgeschlossen ist, wird beim Subversion Paket ab 0.5.0 dann der Pfad und Name vom soeben erstellten Backup angezeigt, den man sich merken sollte, um zu wissen, welche Datei man gleich auf den Zielrechner zu kopieren hat. Bei älteren Paketversionen muss man im Setup-Menü nochmal den Menüpunkt ‘List backup files’ auswählen. Das grad erstellte Backup steht wahrscheinlich ganz oben, im Zweifelsfall schaut man auf Datum und Uhrzeit, die im Dateinamen mit drin stehen.

Der nächste Schritt besteht darin, die Backupdatei auf den Zielrechner zu kopieren, auf dem man bereits das Subversion-Paket installiert hat. Um das Backup über das Setup-Menü wieder einspielen zu können, muss der Zielpfad für die Kopieraktion der in SVN_BACKUP_TARGET angegebene sein. Außerdem sollte man ein neues leeres Repository einrichten, in das gleich das Backup eingespielt wird.

Aus dem Setup-Menü des Subversion-Pakets wählt man dann den Punkt ‘Restore repository’. Aus der Liste wählt man das soeben neu erstellte leere Repository. Das war es schon. Jetzt nur noch den Nutzern die neue Adresse mitteilen und fröhlich mit dem umgezogenen Repository weiter arbeiten. Das ganze nochmal in Kürze:

  • altes Repo auf dem Quellrechner deaktivieren oder wenigstens die Schreibrechte entziehen, nicht löschen natürlich!
  • setup -> Administration of services -> subversion administration -> Subversion Administration Tools -> Subversion backup and restore -> Backup repository
  • gewünschtes Repo auswählen
  • bei Paket vor 0.5.x: List backup files, entsprechende Datei steht wahrscheinlich ganz oben, auf die Zeit achten, um von cron-generierten zu unterscheiden, hier: /mnt/data2/backup/svn/repos1-2008-09-24-095600.backup.bz2
  • ansonsten angezeigten Dateinamen des Backup kopieren
  • auf den Zielrechner kopieren in das Verzeichnis was dort bei SVN_BACKUP_TARGET angegeben ist
  • neues Repo anlegen auf Zielrechner
  • Restore repository: richtiges Backup-File aus der Liste wählen
  • das neu erstellte Repo aus der Liste wählen