Aus Linux-Magazin 08/2009

Auf den Punkt gebracht

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.

Fehlender Status

07/09, S. 71: Bei dem beschriebenen Befehl zur Nutzung von Twitter per Curl fehlt beim Parameter »–data-ascii« die Angabe »status=«. Es muss also heißen:

--data-ascii "status=Blafasel"

Ansonsten bekommt man lediglich eine Fehlermeldung zu Gesicht.

Hans-Georg Fischer, per E-Mail

In meinem Beispiel fehlt tatsächlich »status=«. Es sollte allerdings außerhalb der Anführungszeichen stehen, richtig wäre:

[...] -d status="hier steht mein Tweet" http://twitter.com/statuses/update.xml 

(Charly Kühnast)

Java in Kürze

06/09, S. 95: In Ihrer Einführung “Sorglos oder gedankenlos” haben Sie in der Tat ein beeindruckendes Java-Beispiel für unnötig komplexe Programmierung aufgeführt. Wenn dies allein dem Ziel diente, Java einfach als geschwätzige Sprache darzustellen, war es natürlich erfolgreich.

Wenn dies jedoch als Versuch einer exemplarischen, neutralen Gegenüberstellung gemeint war, so muss ich Folgendes anmerken: Abgesehen davon, dass die im Text genannte Aufgabenstellung (Lesen einer Zeile von der Standardeingabe) im Java-Beispiel nicht erfüllt ist (es liest aus einer Textdatei), lässt sie sich in Java dennoch in genau einer Zeile erledigen:

String s = new Scanner(System.in).nextLine(); 

Heribert Hirth, per E-Mail

Danke für Ihren Code, der mit nur drei Klasseninstanzen und zwei Methodenaufrufen auskommt. Das Beispiel war übrigens mehr oder weniger Originalcode von Java-Erfinder James Gosling. (mg)

Deko mit Nutzen

06/09, S. 96: Zu dem Artikel über Dekoratoren in Python: Ein bisschen kritisch geht der Artikel ja an das Thema ran. Aber das von Java bekannte Grundübel lautet auch hier: “Wir denken nicht darüber nach, was wir tun!”

Mag der Rückgabewert-Cache manchmal sinnvoll sein, so kaschiert er hier nur einen ineffizienten Algorithmus und verbrät eine Menge Speicher. Und nur weil der Aufrufer weiß, wie “geschummelt” wird, kann er nebenbei das Problem der Rekursionstiefe lösen, indem er sich langsam nach oben tastet.

Das hätte zumindest hinter der Fassade versteckt bleiben sollen, was aber kaum geht, da der Dekorator nicht wissen soll, dass er auf eine Funktion mit genau diesem einzigartigen Problem angewandt wird. Dann sollte man den Cache gleich in die Funktion integrieren. Wenn man sich, statt Dekofassaden zu bauen, die Problemstellung noch mal ansieht, so steht da nichts von doppelter Rekursion.

Das Problem ist doch ein rein iteratives, wobei man sich ab dem Wert 2 immer nur die letzten beiden Ergebnisse merken muss. Eine alternative Lösung zeigt Listing 1 – ich habe allerdings Perl verwendet.

Alex Tobler, per E-Mail

Mein Ziel war es, Dekoratoren vorzustellen und an einem Beispiel (Fakultät) zu entwickeln, wie man sie einsetzen kann. Dass mein Algorithmus zur Berechnung der Fakultät sowohl bei der Laufzeit als auch beim Speicherverbrauch sehr schlecht war, war von mir so gewollt. Durch naives Anwenden der Dekoratoren, wie Sie richtig anmerken, konnte ich seinen Ressourcenverbrauch deutlich senken, ohne wirklich den Algorithmus zur Berechnung der Fakultät zu verstehen.

Ich als Aufrufer weiß zwar, wie geschummelt wird, um inkrementell immer größere Fakultäten auszurechnen. Das weiß ich aber erst durch meine Analyse der Aufrufhäufigkeit meiner Fakultätsfunktion mit Hilfe des Signatur-Dekorators. Den Cache direkt in die Fakultätsfunktion einzubauen, bietet sich natürlich nach der Analyse des Fakultätsfunktion mit Hilfe der Dekoratoren an. Dies widerspricht aber dem Hauptanliegen meines Artikels: Die Trennung der Kern- von der erweiterten Funktionalität mit Hilfe der Dekoratoren darzustellen. (Rainer Grimm)

Listing 1: Fibonacci in
Perl
01  my( $i, $v_1, $v_2 ) = (2, 1, 0);  # Init
02  ($v_1, $v_2) = ($v_1 + $v_2, $v_1) # Calculate next iteration
03      while $i++ <= $n;              # Until we reach the limit
04  return $v_1;                       # Result we last calculated

X2go für Gentoo

07/09, S. 79: X2go gibt es auch als Ebuilds für Gentoo. Sie sind mehrheitlich im NX-Overlay enthalten. Hier sind bereits einige Pakete der Version 3 verfügbar. Die Kcontrol-Module sind ebenfalls in der aktuellen Version vorhanden. Als Client gibt es derzeit jedoch lediglich das Qt-Programm.

Joachim Langenbach, per E-Mail

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