Aus Linux-Magazin 10/2011

Auf den Punkt gebracht

Nervtötendes Encoding

09/11, S. 98: Zum “Bash Bashing 16”: Das Thema Encoding besitzt noch eine weitere nervtötende Facette. Bei der Art, wie in UTF-8 zusammengesetzte Zeichen (ó oder ö) kodiert werden, unterscheidet man die Formen C und D. Form C bildet das zusammengesetzte Zeichen komplett als eigenen 2-Byte-Wert ab. Form D kodiert zuerst den Basisbuchstaben, gefolgt von einem »cc« -Byte, gefolgt von dem Composite-Zeichen, wodurch ein kodiertes ó oder ö 3 Byte belegt.

Apple hat sich (teilweise) für Form D entschieden – die restliche Welt für Form C. Die Hex-Bytefolge des Dateinamens »olé« lautet unter Linux:

6f 6c c3 a9

Und unter Mac OS X:

6f 6c 65 cc 81

Die resultierenden Probleme sind vielfältiger Natur. Einige Apple-Programme schaffen es nicht, mit Form-C-Dateinamen umzugehen, beispielsweise auf einem NFS-Share. Auch Rsync fasst beim Abgleich zwischen einem Linux- und einem Mac-OS-X-Ordner Dateinamen mit zusammengesetzen Zeichen als unterschiedliche Dateien auf.

Harald Nikolisin, per E-Mail

Web-basierte Groupware

09/11, S. 68: Schade, dass die beiden recht unbekannten, aber technisch sehr interessanten Kandidaten Tine 2.0 und Group Office nicht Eingang in den Groupware-Vergleich gefunden haben. Beide sind Web-basierte Lösungen, die durchaus zeigen, dass man keinen “Fat Server” benötigt, mobile Endgeräte kein Problem sind und Webapplikationen durchaus Charme und Vorteile haben.

Den in den letzten Jahren aufgekommenen Newcomer Tine 2.0 der Hamburger Firma Metaways kann man als modernen Nachfolger der einst durchaus populären E-Groupware verstehen. Die Programmierer haben noch einige Hausaufgaben zu machen, doch bietet Tine 2.0 schon jetzt viele interessante Features und eine schöne Usability.

Die niederländische Firma Intermesh arbeitet seit 2004 an Group Office, und es gibt eine relevante Anzahl sehr gut laufender Installationen bei niederländischen Behörden und Unternehmen. In Deutschland ist Group Office zu Unrecht noch unbekannt. Bei der Heinlein Support GmbH haben wir mit Group Office bereits mehrere Kunden glücklich gemacht, Unternehmen und Universitäten, auch mit größeren Anwenderzahlen.

Peer Heinlein, per E-Mail

Perl und Bash

09/11, S. 104: Im Perl-Snapshot ist mir etwas an Mike Schillis Bash-Funktion »lcd« aufgefallen. Sie funktioniert nicht, wenn im Verzeichnisnamen Leerzeichen vorkommen wie im folgenden Beispiel:

lcd() { cd `symlinkdir $1`; }
mkdir foo\ bar\ baz
ln -s foo\ bar\ baz bli\ bla\ blubb
lcd bli\ bla\ blubb

Daher ist es sinnvoller, die Funktion »lcd« folgendermaßen zu definieren:

lcd() { cd "`symlinkdir \"$1\"`"; }

Damit ist sowohl der Parameter des Perl-Skripts »symlinkdir« mit Quotes versehen als auch dessen Ausgabe. So funktioniert »lcd« auch mit Leerzeichen im Parameter oder im Zielverzeichnis.

Ich nehme an, dass diese Beispiele die Perl-Aufrufe »readlink()« und »-l« demonstrieren sollten. Ansonsten besteht nämlich die Möglichkeit, die Aufgabe komplett in der Bash zu lösen. Mir fiel zuerst Folgendes ein:

lcd() { cd "$1" && cd "`pwd -P`"; }

Das macht aber die praktische Variable »$OLDPWD« für das vorhergehende Arbeitsverzeichnis kaputt, in das man am schnellsten mit »cd -« wechselt.

Als ich mich neulich mit einem Freund bei einem Bier darüber unterhalten habe, hat er auch noch an das Programm »readlink« gedacht, das vermutlich auch auf jeder Linux-Kiste installiert ist. Bei Debian steckt es im Paket Coreutils. Damit lässt sich die Aufgabe vermutlich am schönsten und schnellsten in der folgenden Form lösen:

lcd() { cd "`readlink -f \"$1\"`"; }

Und weil ich manchmal ein wenig tippfaul bin, habe ich irgendwann die folgende Bash-Funktion in »~/.bashrc« eingebaut:

mkcd() { mkdir -p "$1" && cd "$1"; }

Damit bin ich das erste Mal reingefallen, weil ich die Quotes vergessen hatte.

Tobias Gneist, per E-Mail

Erratum

08/11, S. 42: In dem Artikel “Sockets und Flags” sind die Socket-Typen versehentlich vertauscht. Korrekt ist, für TCP-Verbindungen »SOCK_STREAM« und für UDP »SOCK_DGRAM« zu verwenden. Dank an Magazin-Leser Alexander Köppe für den Hinweis.

LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben