Archiv für Januar 2009

h1

Perl rocks

Januar 30, 2009

Charly und ich haben die Aufgabe PHP-Code nach bestimmten Qualitätsstandards zu überarbeiten. Zum Beispiel dürfen für Variablennamen keine Abkürzungen verwendet werden. Man könnte jetzt also eine Datei nach solchen falschen Variablennamen durchsuchen und sie mit den Besseren ersetzen, indem man die Editor-Funktionen für globales Ersetzen verwendet. Das Problem ist, dass Variablen nicht nur in einer Datei verwendet werden, sondern teilweise überall im Projekt, verstreut in verschiedenen Dateien. Welcher Editor kann aber von Hause aus rekursiv in allen Dateien des Projekts Variablennamen ersetzen? Meiner jedenfalls – soweit ich weiß – nicht.

Eine Lösung ist Perl in Verbindung mit find:

perl -pi -e ’s/$schlechteVar/$guteVariable/g’ `find . -name „*.php“`

Das ersetzt alle Vorkommen von ‘$schlechteVar’ mit ‘$guteVariable’ in allen Dateien unterhalb des aktuellen Verzeichnisses, die auf .php enden.

Eine weiterer Standard wurde festgelegt, der besagt, dass alle geschweiften Klammern auf eine einzelne Zeilen müssen. Also statt z.B. (wie eigentlich üblich):

if (Bedingung) { …

soll es so aussehen:

if (Bedingung)

{

Auch hier hilft wieder Perl! Diese beiden Befehle, sollten dafür sorgen, dass alle geschweiften Klammern auf einzelnen Zeilen landen:
perl -pi  -e ’s/([^[:blank:]]+?)[[:blank:]]*?{/$1\n{/g’ `find . -name *.php`

perl -pi -e ’s/}[[:blank:]]*([^[:blank:]]+.*?\n$)/}\n$1/g’ `find . -name *.php`
Wie gesagt: Perl rocks!
h1

Django Cheatsheet

Januar 29, 2009

Hab gerade eine recht nützliche Übersicht, bestehend aus 2 A4 Seiten, über Django gefunden. Es ist vielleicht nicht der Renner, aber einen Blick auf jeden Fall wert:

http://www.mercurytide.co.uk/news/article/django-cheat-sheet/

h1

Latex fullpage.sty not found

Januar 18, 2009

Ein Problem, eine Lösung. So gefällt mir Linux:

charly@lucy:~/texmf$ sudo apt-get install texlive-latex-extra

h1

awk und syncN

Januar 14, 2009

awk hat mir tatsächlich geholfen ;) wer hätte das gedacht. Ich glaube ich habe die kleine Skriptsprache deutlich unterschätzt.

Aber von Anfang an: In meinem Skript syncN gibt es eine Funktion „–check“. Die zwei Files miteinander vergleicht. Bisher nur über das Datum. Das sieht bis jetzt so aus :

check ()
{
	ssh user@host "ls -lah /Route/to/SyncDir/ > /tmp/checkreturn"
	scp user@host:/tmp/checkreturn /tmp/checkreturn
	cat /tmp/checkreturn
	rm /tmp/checkreturn
}

Die Ausgabe des ganzen ist relativ unschön.

insgesamt 352K
drwxr-xr-x 2 noqqe noqqe 4,0K 2009-01-09 16:10 .
drwxr-xr-x 7 noqqe noqqe 4,0K 2009-01-13 12:29 ..
-rw-r–r– 1 noqqe noqqe 337K 2009-01-14 20:07 $FILE

Jetzt gibt es da wunderschön, awk.

ssh user@host "ls -lah /Route/to/SyncDir/ | awk '{ print $6 " " $7 }' > /tmp/checkreturn"

und schon bekommt man nur noch das Datum und die Uhrzeit ;)

2009-01-14 20:09

Demnächst gibts übrigens zusätzlich zur wunderschönen awk Ausgabe noch einen md5 Summen Vergleich ;)

h1

Zeilen aller Dateien des Ordner rekursiv zählen (bash)

Januar 14, 2009

Gestern wollte ich zählen, aus wieviel Zeilen Code ein Projekt an dem ich programmiere besteht. Darum sollten alle Zeilen in den Dateien und den Unterordnern des aktuellen Ordners gezählt werden. Das hat sich dann als schwieriger rauszufinden herausgestellt als ich zuerst annahm. Lange Rede kurzer Sinn, hier die Lösung:

charly@lucy:~/py$ wc -l `find -iname „*.py“`

Zu beachten sind die Anführungszeichen um .py, die verhindern, dass „find“ bei falschen Dateinamen abbricht. In diesem Beispiel werden, wie man leicht erkennen kann, nur Dateien die auf  „.py“ enden gefunden. Wer die Suche einengen will, braucht dagegen etwas kompliziertere Parameter. Hier schließe ich nun den ordner „framework“ von der Zählung aus:

charly@lucy:~/py$ wc -l `find -iname „framework“ -prune -o -iname „*.py“`

Prune dient zum Ausschließen von Ordnern aus der Suche, und -o dient zum Verbinden mehrer Befehle. Würde man zum Beispiel zwei Ordner ausschließen würde dies so aussehen:

charly@lucy:~/py$ wc -l `find -iname „framework“ -prune -o -iname „django“ -prune -o -iname „*.py“`

„wc“ kann übrigens neben den Zeilen (-l) auch die Wörter (-w), die Zeichen (-m) und die Bytes (-c) zählen.


h1

Der alte Neue

Januar 13, 2009

Hallo, da jetzt noqqe auch schon was geschrieben hat und ich schon länger Teil dieses Blogs bin, mich aber bisher immer im Hintergrund gehalten habe hielt ich es für nötig jetzt auch mal was zu schreiben. Mein echter Name ist Chris, bin einiges jünger als Flo und habe in einigen Bereichen der Programmierung schlechte bis gute Erfahrung (Python, Lua, C++).

Momentan führe ich auch noch sowas wie eine Homepage (Wenn man es Homepage nennen möchte). Die meisten Mitglieder von Codecocktail kenne ich schon länger, am längsten wohl noqqe. Kennen gelernt habe ich sie alle über meinen ehemaligen Blog.

h1

Der Neue

Januar 13, 2009

Guten Morgen allerseits,

Kurz vielleicht ein Wort zu mir: Flo, 19 , komme von www.noqqe.de, habe programmiertechnisch nicht ganz so viel zu bieten wie der Rest der Truppe(lediglich meine Projekte unpack und syncN die in Bash geschrieben sind)  und kenne die 4 von Codecocktail eigentlich schon ziemlich lange ;) Hoffe ich kann meinen Beitrag zu Codecocktail leisten. Ich freu mich sehr hier mitbloggen zu dürfen :)

Auf ein gutes miteinander,
der fünfte im Bunde,

noqqe.

h1

MSN funktioniert unter Pidgin nicht mehr

Januar 12, 2009

Wie auch schon andere feststellten, gibt es seit gestern ein Problem, wenn man sich mit Pidgin bei seinem MSN-Account einloggen möchte, die Fehlermeldung lautet: „Konnte das MSN-Adressbuch nicht abrufen“.

Warum das so ist, weiß ich leider nicht. Vielleicht ist Pidgin bei irgendeinem Protokollupdate von MSN nicht hinterhergekommen. Bei aMSN und meebo.com kann man sich jedenfalls noch wie gehabt mit seinem msn-account anmelden und fleißig chatten – aber Lust umzusteigen habe ich wenig, also warte ich lieber auf ein Pidgin-Update.

Vielleicht wäre das doch mal der richtige Zeitpunkt MSN ganz in die Tonne zu kloppen? =) Schade nur, dass viele Freunde nur MSN besitzen und nicht wenigstens noch icq, wobei dass ja auch nicht soviel besser ist, soweit ich das beurteilen kann.

Alle Welt sollte zu Jabber wechseln, jetzt, sofort!

Edit: Mitlerweile hat sich das Problem wie von selbst gelöst, also brauch ich doch (noch) nicht weg wechseln. =P

h1

XChat Plugins/Scripte

Januar 12, 2009

Da ich jetzt ab und zu auch mal im IRC mit XChat herumlunger, habe ich mal nachgeschaut, wie man sein XChat noch weiter anpassen und konfigurieren kann. Dabei bin ich darauf gestoßen, dass es Schnittstellen für 8 verschiedene Script- bzw. Programmiersprachen gibt (z.B. Python, Perl, C/C++).

Man kann sich also ein kleines Modul schreiben, dass dann auf bestimmte Nachrichten reagiert und vieles mehr – ok, so genau weiß ich es noch nicht =P

Die Dokumentationen und ein Überblick über die verfügbaren Implementierungen gibt es hier.

Und hier gibt es sogar einen ganzen Forumsbereich über XChat-Plugins und  Scripten.

h1

Warum haben manche Menschen Angst vor Sicherheitsmaßnahmen?

Januar 11, 2009

Datenschützer sind generell paranoid, sie haben Angst vor Gesetzen die allen normalen Menschen völlig egal sind.  Meine Mutter hat keine Angst vor Videoüberwachung und selbst meine kleine Schwester, einer Expertin wenn es um’s Telefonieren geht, kümmert es nicht, wenn gespeichert wird wann sie wen anruft. Auch meine Lehrer wollen vor Terroristen geschützt sein. Da klingt es auch ganz plausibel von allen Menschen die Fingerabdrücke zu nehmen oder eben sämtliche PCs per Trojaner zu durchsuchen, ganz nach Geschmack.

Und selbst wem manches davon nicht ganz geheuer ist, das ist ja alles nur zur Bekämpfung von Terroristen und darf laut Gesetz auch nur dafür verwendet werden. Dass heißt also, solang ich keinen langen Bart und kein Turban trage bin ich in Sicherheit.  Und wenn man mir heimlich einen Finger abschneidet, um meinen Fingerabdruck zu fälschen, dann würde ich das wahrscheinlich auch recht schnell merken, ich brauch also keine Angst davor haben, jemand könnte sie fälschen.

Naja, und solch eine Sicherheit kann man sich schonmal etwas kosten lassen, zum Beispiel mehr als für’s Renovieren von Schulen und dem Bildungssystem, denn was nützen mir schöne Schulen, wenn überall Terroristen frei rumlaufen und sie wieder kaputt bomben? Und noch einen Vorteil hat die ganze Sache, sind gerade mal keine Terroristen unterwegs, kann man die schönen Daten gleich für andere Zwecke nutzen, zum Beispiel freut sich die Medienindustrie über mehr Abmahnungen von Musikdownloadern, und auch Finanzämter und Soziale Behörden bekommen unterdessen schon Zugang zu den Basisdaten aller Konten, die zuerst nur zur Terrorbekämpfung freigegeben wurden.

Vielleicht haben wir ja Glück und die lebenslängliche Steueridentifikationsnummer, die jeder von uns bekommt, darf auch bald zum Überwachen der privaten Geschäfte benutzt werden und nicht nur zur Verwaltung von Steuern. Das würde sich ja auch gar nicht lohnen, so ein teurer Aufwand, da kann man doch noch viel mehr draus machen. Noch ist das zwar verfassungswidrig, aber wir haben ja noch eine handvoll Top-Politiker in diesem Land, die für unsere Sicherheit kämpfen und spätestens nach der nächsten Machterhöhung des BKA wird der Topterrorist Osama-bin-Grundgesetz endlich zur Strecke gebracht sein.