Wertvoller Rohstoff
04/12, S. 84: Ich habe den Artikel im Linux-Magazin zur Wiederverwendung von Quellcode in der Open-Source-Welt gelesen. Haben Sie auch Kenntnisse über diesen Sachverhalt bei Closed-Source-Projekten?
Patrick Heckeler, per E-Mail
Kindle an der Datenbank
05/12, S. 92: In Perlmeister Mikes Artikel “Datensauger”, der Kindle-Notzen in einer Datenbank speichert, fällt mir mehreres auf: Erstens ist »prepare()« je nach Optimierungsgrad der Datenbank eine teure Operation. Sie erstellt nämlich einen Ausführungsplan, was unter Umständen aufwändiger ist als die eigentliche Ausführung.
In diesem Fall sind es nur wenige Prepare-Aufrufe, sodass es sich empfiehlt, für jeden eine globale Variable zu definieren, die »$sth_xyz ||= $dbh->prepare( ‘…’ )« nur dann zuweist, wenn man sie das erste Mal braucht, um sie dann immer wieder zu benutzen. Sind hingegen mehr Aufrufe als Variablen zu verwalten, gibt es die Variante »prepare_cached()« , wobei DBI zu jeder SQL-Zeichenkette das Statement Handle intern ablegt und bei wiederholtem Aufruf ohne weiteren Aufwand zurückgibt.
Der andere Punkt: Warum überhaupt eine zweite Anweisung? In MySQL würde ich den Unique Key auf die Datentabelle legen, sodass mein Haupt-Insert beides auf einmal erledigt. Aber vielleicht gibt es da bei FTS Einschränkungen?
Ein letzter Punkt ist möglicherweise bei SQlite irrelevant, aber wenn Netzwerklatenzen im Spiel sind, habe ich enorme Beschleunigung dadurch erzielt, dass ich bis zu einem »n x (?,?,?)« -Tupel mit Komma konkateniere und die Werte der zugehörigen Reihen in einer großen Liste sammle, um sie auf einen Satz einzufügen. Ist die Gesamtanzahl von Reihen nicht durch n teilbar, muss ich am Ende noch mal eine Anweisung vorbereiten, die weniger Tupel enthält.
Daniel Pfeiffer, per E-Mail
Arping
06/12, S. 52: Das Programm Arping aus den Tooltipps las sich interessant. Nach der Installation war ich aber rasch ernüchtert. Ich bin auf der Suche nach einem Netzwerk-Tool, das für mich VoIP-Hardware in einem Kundennetz sucht. Bisher erledige ich das mit folgender Nmap-Befehlszeile:
nmap -F -T4 Netzadresse/Maske
Das mache ich, um über den Ausgeber der MAC-Adressen die VoIP-Telefone eines bestimmten Herstellers zu finden. Es wäre mir jedoch lieber, nicht die ganzen Clients abscannen zu müssen. Geht so etwas mit Arping?
Timm Schneider, per E-Mail.




