Archiv für Februar 2009

Schäuble Google
Februar 22, 2009
„underscored to camelCase“-Hack
Februar 21, 2009Charly und ich müssen auf Arbeit gerade alten Code nach einigen Qualitätsstandarts überarbeiten. Dabei gilt auch, dass nun nur noch die camelCase-Methode verwendet wird. Bisher wurden aber sehr häufig Variablen nach der underscore-Methode benannt. Jetzt jede einzelne Variable im Editor zu ersetzen, wäre bei über 120 Dateien recht aufwändig geworden. Deswegen folgender Perl-Einzeiler:
perl -pi -e ’s/\$([\w]+?)_([\w]+)([\W])/\$$1\u$2$3/g’ `find . -name „*.php“`
Das sucht alle PHP-Variablennamen, die einen Unterstrich enthalten, löscht den Unterstrich und ersetzt den darauf folgenden Buchstaben, mit dem gleichen Großbuchstaben. Sind in manchen Variablennamen mehrere Unterstriche vorhanden, so muss man den Befehl mehrmals ausführen, weil immer nur ein Unterstrich pro Aufruf pro Variablenname ersetzt wird.

Python Shell Einzeiler
Februar 18, 2009Wenn ich mit der Shell arbeite mag ich am liebsten die Einzeiler. Ich weiß zwar noch nicht, ob das wirklich nützlich ist, aber eben gerade habe ich gelesen wie man Python als Einzeiler ausführt:
charly@lucy:~$ python -c ‘print „Hello World“‘
Wenn sowas jemanden interessiert, dann kann er sich auch hier: http://www.rosettacode.org/wiki/Shell_One_Liner den Spaß in einer ganzen Reihe von Programmiersprachen angucken. Am aller besten finde ich das Beispiel in C:
charly@lucy:~$ touch /tmp/T0.c /tmp/T && chmod 600 /tmp/T0.c /tmp/T && echo -e „#include<stdio.h>\nint main(){printf(\“Hello\\\n\“);return 0;}“ >/tmp/T0.c &&
> gcc /tmp/T0.c -o /tmp/T && /tmp/T && rm -f /tmp/T0.c /tmp/T
Hello

Schäuble wechselt die Seiten
Februar 11, 2009Schäuble unterstützt jetzt die Gegner der Vorratsdatenspeicherung! Ok – nicht ganz freiwillig. Seine private Homepage wurde durch eine Lücke in Typo3 gehackt und er machte plötzlich Werbung für vorratsdatenspeicherung.de. Dabei hatten die Hacker auch Zugriff auf seine Daten bekommen und ermittelten u.A. sein Passwort. Ich denke, Schäuble dürfte nichts dagegen haben, wenn jeder weiß, wie sein Passwort lautet, sowas ähnliches verlangt er ja auch von uns: gewinner – klingt irgendwie paradox.
Das sind richtige kompetente Leute, die davon reden, Terroristen per Internetüberwachung aufzuspüren! Im Ernst, wenn wir auf diesen Schäuble zählen, dann sind wir vor jedem Anschlag sicher!
Wer die ganze Story hören will:
Gruß,
Thomas

Die Google-Ameise
Februar 9, 2009Mein Bruder hat im Buch „Expeditionen an den Rand der Schöpfung“ eine Ameise mit dem besonderem Namen „Google“ entdeckt. Sie wurde von einem Forscher auf Madagascar entdeckt und von ihm „Proceratium google“ genannt. Auf GoogleWatchBlog heißt es, dass es zu dieser Namensgebung kam, weil ihm bei der Suche das Google Earth-Team erheblich geholfen haben soll, während im Buch steht, dass sie außergewöhnliche Beute gefunden haben soll und deswegen nach der größten und besten (!!!) Suchmaschine benannt wurde.
Wäre das nicht ein schönes Maskottchen für Google, in etwa wie der Pinguin Tux für Linux? =)
Gruß,
Thomas
PS.: Die Gruß-Formel, weil man bei dem neuen Theme leider nicht erkennt, wer der Autor ist.

Ein paar Verändungen und mehr
Februar 8, 2009Wie man unschwer sehen kann, haben wir unserem Blog ein neues Theme verpasst. Zum Einen, weil immer mehr Unzufriedenheit über das alte Theme aufkam und zum Anderen, weil wir ein individuelles Logo wollten, dass zum alten Theme nicht passte. Das ist aber erst der Anfang der Veränderungen.
Jetzt, wo wir zu fünft sind und der Blog sich doch einiger Besucher erfreut, arbeiten wir an einem etwas größeren Projekt. Zusammen wollen wir uns in Python mit Django eine eigene Blog-Software schreiben, da wir uns hier bei WordPress ziemlich gefangen fühlen. Allerdings befindet sich das ganze Projekt noch im Anfangsstadium und man wird sich noch eine ganze Weile gedulden müssen.
Bis dahin erscheinen hier natürlich weiterhin neue Artikel und wir hoffen auf viele Leser und deren Kommentare. =)

Programmausgabe in Variable speichern Python
Februar 7, 2009Die Ausgabe von einem Programm oder einem Prozess in einer Variable zu speichern ist in Python gar nicht so leicht, wie man das zuerst erwarten würde. Benutzen sollte man dafür das subprocess Modul, da os.system() nicht nur deprecated ist, sondern auch nicht sehr flexibel. Es gibt jegliche Ausgabe nämlich einfach auf der stdout aus. Besser geht es dagegen mit subprocess.Popen():
1 from subprocess import Popen, PIPE
2
3 output = Popen(„fortune„, stdout=PIPE).communicate()[0]
4 output = Popen(["programm", "argument"], stdout=PIPE).communicate[0]
Weitere Infos zu subprocess gibt es hier: http://docs.python.org/library/subprocess.html

fortunes – Lyrik und Witz gefällig?
Februar 4, 2009Mal etwas „anderes“ in der shell. Das Paket fortunes-de füllt das Terminal auf Abruf mit netten/weisen Sprüchen.
noqqe@zwetschge:~$ apt-get install fortunes-de
noqqe@zwetschge:~$ fortune
Alle Kinder lutschen am Daumen. Außer Ulla. Die hat ‘n Schnulla.
noqqe@zwetschge:~$ fortune
Ein Physiker, ein Mathematiker und ein Windows-Programmierer fahren in
einem Auto, als dieses plötzlich der Geist aufgibt. Der Physiker
schlägt vor, mal das Benzin zu kontrollieren. Der Mathematiker sagt,
er verstehe nicht viel von Autos, aber man solle mal das Kühlwasser
überprüfen. Der Windows-Programmierer meint, er würde zuerst alle
Fenster schließen, aussteigen, erneut einsteigen und dann alle
Fenster wieder öffnen.
noqqe@zwetschge:~$ fortune
Schlanke sind nur zu doof zum Essen.
noqqe@zwetschge:~$ fortune
Stilblüten aus Schreiben von Versicherungsnehmern:
Ihre Argumente sind wirklich schwach. Für solche faulen Ausreden
müssen Sie sich einen Dümmeren suchen, aber den werden Sie kaum
finden.

Emails von der Kommandozeile – sendmail und mailx
Februar 3, 2009Hängt man viel in der Kommandozeile, ist es manchmal viel sinnvoller, eine kurze Nachricht direkt aus der Konsole zu senden, als erst aufwendig seinen Mail-Clienten zu öffnen und die Mail von dort zu schreiben. Um allerdings von seinem geliebten Terminal Emails versenden zu können, muss man sich sendmail und mailx installieren, was aber per apt-get (unter Ubuntu) sehr sehr einfach geht:
sudo apt-get install heirloom-mailx
sudo apt-get install sendmail
Das sollte auch schon reichen. Jetzt kann es los gehen. Um eine Mail an xyz@abcd.com zu schicken, tippt man folgenden Befehl:
mailx xyz@abcd.com
Dann wird man nach dem Subject gefragt und anschließend kann man den eigentlichen Mail-Inhalt schreiben. Es wird gelesen, bis ein einzelner Punkt auf einer Zeile getippt wird bzw. bis EOF also dem Ende der Eingabe. Da mailx von der Standardeingabe liest, kann man auch zunächst mit seinem Lieblingseditor den Body erstellen und mailx dann wie folgt aufrufen:
cat email_inhalt.txt | mailx -s „subject“ xyz@abcd.com
Als Absender wird bei dieser Form der Vor- und Zuname des Benutzers verwendet. Man kann aber natürlich den Absender „fälschen“, indem man die Option -r verwendet:
cat email_inhalt.txt | mailx -s „subject“ -r von@mir.com xyz@abcd.com
Wichtig ist allerdings, dass man die Optionen wie -s und -r am Anfang verwendet, bevor man die Empfänger-Adresse angibt, sonst wird alles als Empfängeradresse verwendet. Will man mehrere Empfänger angeben, hängt man diese einfach durch Leerzeichen getrennt ans Ende des Aufrufs.
Weitere Infos:
- man mailx
- man sendmail


