Haben Sie Anregungen, Statements oder Kommentare? Dann schreiben Sie an redaktion@linux-magazin.de. Die Redaktion behält es sich vor, die Zuschriften und Leserbriefe zu kürzen. Sie veröffentlicht alle Beiträge mit Namen, sofern der Autor nicht ausdrücklich Anonymität wünscht.
Windows-Netbooks
06/09, S. 32: Irgendwie war ich nach dem Lesen enttäuscht: Nur Windows-Netbooks! Gibt es kein einziges Linux-Netbook mehr? Oder haben Sie nur Angebote mit 1 GByte RAM und 160 GByte Festplatte in die engere Wahl genommen? War Ihnen nur wichtig, diese auf Linux umzustellen?
Die Entscheidung, die neuesten Netbooks oder ausschließlich die aktuellen Linux-Netbooks vorzustellen, mussten wir in der Tat fällen. Wie man sieht, haben wir uns für zeitnah erschienene Geräte entschieden. Wir gehen davon aus, dass Linux-Nutzer ihr Lieblings-Linux ohnehin drüberinstallieren.
Davon abgesehen sind wir bei der Recherche nach den neuesten Netbooks nicht auf Linux-Vertreter gestoßen. Lediglich das Dell-Netbook war angekündigt, wie in der Tabelle vermerkt ist. (ake)
Bash 4.0
06/09, S. 46: Der Artikel zur neuen Bash-Version 4.0 verweist auf acht Änderungen, die der Posix-Kompatibilität dienen. Auf diese spielte Chet Ramey wohl auch an, als er im Interview stolz behauptete, die neue Version sei “so abwärtskompatibel wie nur möglich, aber an einigen Stellen war das Verhalten von Version 3.2 einfach fehlerhaft”. Leider scheint er dabei die Realität etwas aus den Augen verloren zu haben. Seit Version 4.0 der Bash sind die Parameterlisten »$@« und »$*« ziemlich inkonsequente “Halb-Variablen”. »bash -uc ‘echo $@’« löst die Meldung »$@: unbound variable« aus, aber »@=1« resultiert in »@=1: command not found«. Die »COMPAT«-Datei erwähnt das aber nicht.
Durch diese Änderung entfernt sich die neue Shell vom Posix-Standard. Dort steht: “If there are no positional parameters, the expansion of ‘@’ shall generate zero fields […].” Zu Deutsch: Gibt es keine Parameter, so soll die Auswertung von »$@« die leere Menge ergeben.
Bash 4 jedoch behandelt »$@« und »$*« nun einfach als undefiniert, wenn keine Parameter übergeben worden sind. Primär zeigt sich dieses Problem nur, wenn man die Option »nounset« verwendet (»-u«), welche davor schützt, undefinierte Variablen zu verwenden, und somit Skripte sicherer und robuster macht. Es wäre aber durchaus denkbar, dass das neue Verhalten auch andere Probleme mit sich bringt.
Ich sehe diese Änderung als einen leichtsinnigen Rückschritt an. Bei Debian habe ich deshalb diese Änderung zum gravierenden Fehler erklärt, siehe [http://bugs.debian.org/519165].
Martin F. Krafft, per E-Mail
Aktuelles PHP-Syslog-NG
06/09, S. 66 Die URL, die Sie als Quelle für PHP-Syslog-NG angeben, bietet nur eine ältere Version an. Neuere Releases gibt es unter [http://code.google.com/p/php-syslog-ng/]. Ein Installer via Browser ist auch dabei. Die Daten via Named Pipe in die Datenbank zu schieben lief bei mir nicht stabil. Eine andere Möglichkeit, direkt mit MySQL die Daten zu importieren, ist in der aktuellen Ausgabe beschrieben.
Diese Version bietet auch die CEMDB (Cisco Error Management Database) zur optionalen Installation. Sie enthält Standardmeldungen von Cisco mit zusätzlichen Informationen. Als Windows-Client nutze ich Evtsys, zu finden unter [https://engineering.purdue.edu/ECN/Resources/Documents/UNIX/evtsys].
Danny Hillienhoff, per E-Mail
Java einfach
06/09, S. 95: Prinzipiell haben Sie mit dem Artikel “Sorglos oder gedankenlos” sicher recht, wenn Sie sagen, dass die Unterteilung einer Software in zu viele Abstraktionsebenen der Software und der Wartbarkeit schadet.
Nicht nachvollziehen kann ich jedoch das Beispiel mit Java. Man kann sicher in jeder Programmiersprache unnötige Umwege in eine Lösung einbauen – in manchen vielleicht einfacher, in anderen schwerer. Allerdings kann man in Java statt der abgebildeten Version einfacher »FileReader inc = new FileReader(“demo.txt”);« schreiben. Die Methode »int read()« liest somit immer noch ein Zeichen aus der Datei. Soll das Ganze nun doch wieder gepuffert werden, verwendet man wie im Artikel eine Klasse zu Pufferung:
BufferedReader inc = new BufferedReader(
new FileReader("demo.txt"));
Wie man sieht, lässt sich die Anzahl der Klassen auch in Java noch reduzieren. Im Original zähle ich sechs, in meinem Beispiel je nach Variante zwei oder drei.
Joachim Lusiardi, per E-Mail
| Erratum |
|---|
| 06/09, S.4: Im Inhaltsverzeichnis stand irrtümlich die Zeile “Google kauft mal eben Sun”. Der Käufer ist selbstverständlich Oracle, wie es auch in der Rubrik “Zahlen und Trends” vermeldet war. |





