Zwischendrin
pbouda am 29. Dez 16:47
In letzter Zeit war es hier leider recht ruhig, Arbeit und andere Aktivitäten hielten mich weitgehend vom Posten ab. Das soll sich ab jetzt aber wieder ändern. Hier erst einmal ein kleiner Zwischenbericht, was in letzter Zeit so passiert ist:
- Ich war bei der Codebits in Lissabon. Eine sehr feine Veranstaltung rund um einen 48-Stunden-Programmierwettbewerb. Wobei es eher um die Kreativität geht als um Code-Qualität oder Ähnliches. Und dieses Jahr haben wir den ersten Preis gewonnen! Hingefahren bin ich mit einer groben Idee, zurück kam ich dann mit einem Haufen Technik. Ich hatte aber auch großartige Unterstützung von Pedro und Rosana, die ich erst bei der Veranstaltung kennengelernt habe und die zusammen mit mir das Lego-Coding-Team gebildet haben. Danke an alle! Und vielleicht gibt's hier bald mehr über das Projekt zu berichten...
- Mein erstes Buch ist fertig! PyQt und PySide. GUI- und Anwendungsentwicklung mit Python und Qt
. Gibt es ab Januar in jedem gut sortiertem Buchladen. Mit zahlreichen Highlights über die GUI-Entwicklung mit Python, PyQt und PySide wie eine komplette Einführung in QML und die Anwendungspaketerstellung für Linux und Windows. Wer schon immer einmal wissen wollte, wie man Anwendungen samt Installer plattformunabhängig entwickelt, der sollte sich das Werk unbedingt zulegen.
Soweit erst einmal für heute. Ich wünsche allen Lesern einen guten Rutsch ins Neue Jahr 2012!
Buchempfehlung: Mastering Regular Expressions von Jeffrey E.F. Friedl
pbouda am 13. Mai 12:28
Und da dachte ich, ich weiß schon so Einiges über reguläre Ausdrücke. Aber nichts da: spätestens im dritten Kapitel von Mastering Regular Expressions von Jeffrey E.F. Friedl schwand der Glaube an meine Fähigkeiten. Die Einsatzmöglichkeiten von Atomic Groupings und Possessive Quantifiers waren mir gar vollkommen fremd. Nach Lektüre des Buches war der Glaube aber wieder da.
Das Buch beginnt mit drei sehr praxisorientierten Kapiteln über reguläre Ausdrücke, die sich zu Beginn auch dem Anfänger erschließen. Die Beispiele sind schön ausgewählt, werden im Laufe der Kapitel immer komplexer, und zeigen den Einsatz der Basisfunktionen in regulären Ausdrücken. Gleich in der Einleitung empfiehlt Herr Friedl auch dem fortgeschrittenen Leser, das Buch von vorn bis hinten zu lesen, und dem kann ich unbedingt zustimmen: selbst wenn man die Basis schon drauf hat, lernt man gleich zu Beginn Vieles über die Geschwindigkeitsvorteile und -nachteile bestimmter Alternativen bei Ausdrücken in unterschiedlichen Einsatzgebieten.
Ab dem vierten Kapitel geht es dann ans Eingemachte. Die interne Verabeitung der verschiedene Implementierungen werden besprochen, zunächst grob nach der Einteilung in deterministische bzw. nicht-deterministische Automaten, in beiden Fällen aber auch immer wieder mit Hinweisen auf einzelne Implementierung der verschiedenen Programmiersprachen. Wer hätte es gedacht: Tcl hat die schnellste Maschine für reguläre Ausdrücke, Perl dafür den umfangreichsten Wortschatz an Ausdrücken. Das Backtracking als zentrale Idee des Parsens regulärer Ausdrücke wird ausführlich und verständlich erläutert, fast denkt der Leser daran, rasch selber eine solchen Parser zu bauen. Gerade in diesem Kapitel merkt man die langjährige Erfahrung des Autors, der durch den Einsatz unterschiedlicher Engines und Fehlersuche in zahlreichen Projekten einen großen Einfluss auf die ein oder andere Implementierung hatte.
Nach den Interna der Verarbeitung folgen dann zwei Kapitel, nach deren Lektüre man sich durchaus als Experte einordnen darf. Zunächst geht es um den allgemeinen Aufbau eines regulären Ausdrucks, wiederum an Praxisbeispielen, und dieses Mal mit dem gesamten, im vorhergegangenen Kapitel erarbeiteten Inventar. Das darauf folgende Kapitel geht noch ausführlich auf die Performanz von regulären Ausdrücken ein, so dass man sich als Leser schließlich für alle Anwendungsfälle gerüstet fühlt. Als wäre das alles noch nicht genug, folgen schließlich noch vier Kapitel über die regulären Ausdrücke und ihren praktischen Einsatz in vier Programmiersprachen bzw. Frameworks (Perl, Java, .NET, PHP). Schade, dass hier Python keine größere Rolle spielt, aber die derzeitige Implemtierung scheint auch einfach noch nicht besonders ausgereift zu sein. Mit dem neuen Python regex-Modul steht aber wohl schon der Ersatz in den Startlöchern.
Am Ende bleibt tatsächlich keine Frage offen. Im der täglichen Entwicklungsarbeit blättert man schnell immer wieder an die entsprechenden Stellen des Buches, und reift so langsam zum Experten auch in der Praxis. Atomic Groupings, Possessive Quantifiers, Backtracking, Laziness vs. Greediness? Alles kein Problem...
Zu kaufen bei Amazon:
