Rückblick auf den Deutschen Perl-Workshop 2008

Der Deutsche Perl-Workshop fand in diesem Jahr vom 13. bis 15. Februar an der Friedrich-Alexander-Universität in Erlangen, genau gesagt am Regionalen Rechenzentrum (RRZE) statt. In diesem Rückblick habe ich jedem Punkt des Konferenzprogramms einen kleinen Abschnitt gewidmet. Dabei gebe ich nur eine kurze Inhaltsangabe, hauptsächlich aber meine Eindrücke wieder.

Perl für Fortgeschrittene

Für mich als Trainer war Max Maischeins Workshop interessanter als der ebenfalls am Mittwoch vormittag laufende mit dem Thema "XS - Perl mit C erweitern". Dieser war zwar bestimmt praxisorientierter, sein Thema betrifft mich im Alltag aber deutlich weniger als das Weitergeben fortgeschrittener Perl-Techniken.

Max deckt in seinen Vorträgen vielfältige Aspekte der Perl-Programmierung ab und versteht es, sie unterhaltsam zu vermitteln. Dieses Mal wandte er sich an versierte Programmierer im ungefähren Mittelfeld seiner folgenden Einteilung:

  • Novize: Perl und CGI sind das selbe
  • Initiierter: Denkt, Perl sollte wie Java sein
  • Anwender: Kennt und nutzt CPAN, verwendet
  • Adept: Verwendet s///e, schreibt eigene Module in Perl
  • Hacker: Verwendet AUTOLOAD
  • Guru: Kann alles mit Perl schreiben, und tut es
  • Zauberer: Schreibt keine Spiele in Perl, denn Perl ist das Spiel

Ich bin, offen gesagt, nicht sicher, ob es Max gelungen ist, Fortgeschrittenen viel neues beizubringen. Ich verlor oft meine Aufmerksamkeit, weil ich vieles schon wusste; umgekehrt dürfte es aber für jemanden, der die beschriebenen Aspekte noch nicht kannte, schwer gewesen sein, sich schnell genug hineinzudenken.

Wie so oft waren es aber viele kleine, Wissenslücken schließende Hinweise, die ich aus dem Workshop mitnehmen durfte. Ich glaube, ich werde nie hundert Prozent über Perl wissen, auch nicht in Teilgebieten, in denen ich mich schon gut auskenne.

Offizielle Begrüßung

Beim offiziellen Start nach dem Mittagessen war der Hörsaal geradezu überraschend voll. Ich bin gespannt, wie viele Teilnehmer vom Organisationsteam gezählt wurden.

Die Begrüßung unseres Gastgebers war vorbildlich: kurz, knackig und witzig. Ich vermute, dass die Vorlesungen des Professors (dessen Name mir leider entgangen ist) zu den besseren gehören.

"Hat das jemand getestet?"

Andreas König startete das Vortragsprogramm, indem er uns einen Einblick in das CPAN-Testing gab. Schwierigkeiten mit dem Videokabel warfen Andreas zwar zunächst etwas aus der Bahn, aber er vermittelte anschaulich die Bedeutung der von CPAN::Reporter übermittelten Fehlerberichte für die Qualitätssicherung unserer Perl-Bibliothek.

Wenn das als Grund, sich daran zu beteiligen, nicht ausreicht, gibt es noch einen zweiten: Andreas verbrachte im vergangenen Jahr einen Großteil seiner Zeit mit CPAN-Tests. Wenn sich diese Arbeit auf mehr Schultern verteilt, kommt er auch wieder dazu, Bugs in CPAN.pm zu beheben!

Web::Scraper

Max Maischeins zweiter Vortrag beschrieb, wie er mit dem Modul Web::Scraper Inhalte aus Webseiten extrahiert. Dabei ging er hauptsächlich auf XPath ein, die Sprache, mit der die gewünschten Seiteninhalte identifiziert werden. Es war also mehr ein XPath- als ein Perl-Vortrag.

Da ich aber immer wieder in die Verlegenheit komme, Daten aus Webseiten klauben zu müssen, wird mir dieses Werkzeug sicher mal nützlich sein.

Debuggen mit Coroutinen

Marc Lehmann schloss sich mit einer Beschreibung an, wie er dazu kam, Coro::Debug zu entwickeln und was mit diesem Modul möglich ist. Parallele Programmierung gehört nicht zu meinen Interessensgebieten, weshalb ich mit seinen Ausführen leider nur wenig anfangen konnte.

Zukünftige Perl-Workshops

Einen Rückblick auf 10 Jahre DPWS gab Jürgen Christoffel, Gründer des Deutschen Perl-Workshops und noch immer Mitglied des Organisationsteams. Er streute viele lustige Begebenheiten ein, wies aber auch darauf hin, dass er aufgrund privater Pläne im nächsten Jahr die Verantwortung für den Workshop nicht übernehmen könne.

Es ist daher wichtig, dass sich wieder ein effektives Organisationsteam und ein geeigneter Konferenzort findet. Eine Möglichkeit, die später in einem Gespräch anklang, wäre es, den Workshop nach Karlsruhe zu holen. Mal sehen, ob ich dazu etwas beitragen kann.

Erfahrungen beim Einsatz von "Perl Best Practices"

Der erste Vortrag am Donnerstag Morgen beschäftigte sich mit der Umsetzung der Empfehlungen für guten Programmierstil, die Damian Conway in seinem Buch aufführt, in der Praxis.

Leider eignete sich Steffen Winklers Vortrag nicht zum wach werden, was daran lag, dass er sich recht unmotiviert von Folie zu Folie hangelte, die er mit Blick auf die Projektion statt zum Publikum erklärte. Sein ruhiger Sprachduktus und viele Pausen verstärkten den Effekt zusätzlich.

Auch inhaltlich hatte ich mehr erwartet. Steffen erklärte lediglich einige der wichtigsten Empfehlungen Conways anhand von Beispielen. Das Gleiche tat Alvar Freude im letzten Jahr unterhaltsamer und in kürzerer Zeit (http://www.perl-workshop.de/talks/58/view). Die kontroverse Einleitung von Steffens Abstract, "So einfach, wie Damian Conway das in seinem Buch beschreibt, ist es nicht.", fand in seinem Vortrag leider ebenso wenig Vertiefung wie die im Titel angekündigten Erfahrungen.

Automatisierung und Integration von RT-Systemen mittels REST

Stefan Hornburg stellte seinen Ansatz vor, Request-Tracker-Systeme über deren REST-Schnittstelle zu integrieren. Dazu stellte er vor, wie die Kommunikation über REST grundsätzlich funktioniert und welche Schnittstellen RT auf dieser Basis anbietet.

Auch Stefan strapazierte die Aufmerksamkeit des Publikums durch von Pausen durchsetztes Sprechen. Normalerweise sind Folien mit wenigen Stichworten ein gutes Zeichen dafür, dass der Sprecher im Mittelpunkt steht. Es gelang Stefan aber leider nicht, seine Stichpunkte so zu verknüpfen, dass ich einen Gedankengang hin zu besonderen Erkenntnissen aufbauen konnte. Viel mehr als die Tatsache, dass RT eine REST-Schnittstelle anbietet, wusste ich auch hinterher nicht.

Perl Gotchas

Steffen Ulrich machte mir mit seiner deutlichen und flüssigen Sprechweise von Anfang an Hoffnung auf einen interessanten Vortrag -- und erfüllte diese auch. Er demonstrierte böse Fallen in Perl und Perl-Modulen anhand augenfälliger Beispiele. Hinterher war ich um einige Erkenntnisse reicher und einige Missverständnisse los.

Auch Steffen beging jedoch eine Referenten-Sünde: er überzog seine Redezeit.

XSS, CSRF, WTF

Tina Müller referierte ebenfalls über böse Fallen, dieses Mal ging es aber um Fallen bei der Entwicklung von Webanwendungen. Trifft man hier keine Vorkehrungen gegen böswillig gestaltete Eingabedaten oder unerwünschte Zugriffe, sind Missbräuchen Tür und Tor geöffnet. Wie man dies vermeidet, erklärte sie stichpunktartig, aber gut verständlich.

base.pm

Max Maischein erklärte in diesem Vortrag sein Missfallen mit einigen Eigenschaften des base-Moduls, deren Problematik aus der Dokumentation kaum zu entnehmen ist.

Nun wäre Jammern ohne Lösungsvorschlag sehr unkonstruktiv; deshalb hat Max nach erfolglosen Eingaben an Michael Schwern eine Alternative in Form des Moduls parent.pm entwickelt, die eine Elternbeziehung mit einem Minimum an Code und Merkwürdigkeiten definiert.

Ob ich ihm dankbar sein sollte, dass er mir noch im letzten Satz die Begeisterung für das Modul Class::Std nahm, das ich gerade erstmalig für ein Projekt einsetze, muss ich abwarten...

Druckvorlagen mit Perl und AppleScript

Das programmierte Erzeugen von Dokumenten ist ein Thema, das mich auch in diesem Jahr besonders interessierte. Wolfgang Kinkeldei behandelte es mit der Erklärung, wie er das automatisierte Erzeugen von PDFs mit Mac::Glue, Applescript und Quark XPress löste, nachdem sich LaTeX und PDF::API2 als nicht ausreichend erwiesen.

Für mich als Mac-Anwender waren seine Ausführungen doppelt interessant.

Ein Videomixer mit OpenGL und Perl

Sehr psychedelisch wurde es dann mit Max Maischein, der demonstrierte, wie er einen Videostream in Perl so aufbereitet, dass dieser anschließend von der OpenGL-Engine verfremdet und dargestellt werden kann.

Rakudo

So ungewöhnlich seine Haartracht ist, so ungewöhnlich sind auch die Kenntnisse von Jonathan Worthington. Er arbeitet derzeit an Rakudo, einer Implementierung von Perl 6 auf Basis von Parrot. Seine Fortschritte der letzten Minuten (!) stellte er in Form eines Lightning Talks vor.

EV -- das bessere Event-Modell

Marc Lehmann, Spezialist für parallele Programmierung, ging in diesem Vortrag auf das Thema Ereignissteuerung ein. Mit EV stellte er seinen Ansatz und dessen Vorteile vor.

Wieder war es ein Thema, mit dem ich wenig anfangen kann; aber zu wissen, dass es mit POE, EV und Co. auch für parallele Programmierung einen großen Werkzeugkasten gibt, ist schon mal brauchbar.

Parallel New World

Jonathan Worthington könnte ich stundenlang zuhören. Ich finde es faszinierend, wie unterhaltsam er komplexeste Zusammenhänge vermittelt. Sicher ist dabei für mich auch die Geschwindigkeit, in der er sie auf Englisch darstellt, eine interessante Herausforderung.

In diesem Vortrag behandelte er die Herausforderungen paralleler Programmierung, wobei er zur Visualisierung Bilder seiner China-Reise verwendete.

Lightning Talks

Zahlreiche Teilnehmer nutzten die Gelegenheit, in einem fünfminütigen Minivortrag ein eigenes Projekt oder sonst wichtiges Thema vorzustellen. Damit endete der Donnerstag.

Am Abend schloss sich noch ein gemeinsames Abendessen an, an dem ich aber leider nicht teilnehmen konnte, weil ich berufliche Verpflichtungen erledigen musste.

Telefonanwendungen mit Asterisk

Mit diesem Vortrag begann die Vortragsreihe am Freitag. Nathanael Obermayer wendete zu Beginn seines Vortrags viel Zeit darauf, die Software-Telefonanlage Asterisk vorzustellen und hatte dann leider auch noch Probleme mit seinem Laptop. In all der Zeit wurde mir zunächst nicht klar, was das Ganze mit Perl zu tun hat. Schließlich kam Nathanael dann aber doch beim Asterisk Gateway Interface und dem Perl-Modul Asterisk::AGI an, das es ermöglicht, Asterisk zu steuern. Und spätestens nach der Demonstration seiner "Sex-Hotline für Perl-Hacker" ("Jaaa, manipuliere meine Typeglobs!") hatte ich ihm die Wartezeit verziehen.

Net::XMPP2

Robin Redeker stellte in diesem Vortrag sein Perl-Modul für Instant Messaging vor. Net::XMPP2 entwickelte er, weil den existierenden Module für Jabber veraltet sind oder ihnen Funktionen fehlen.

Ich bin gespannt, ob und wann es mich in den Fingern jucken wird, damit einen Jabber-Bot zu schreiben...

Perl und AJAX

Renée Bäcker stellte hier unter anderem CGI::AJAX und OpenThought vor, zwei Perl-Module, die AJAX-Code erzeugen und diesen mit dem Perl-Programm verknüpfen.

Webanwendungen testen mit Selenium

Nach der Kaffeepause stand Renée wieder vorn; dieses Mal stellte er die Selenium IDE vor, mit der Webanwendungen getestet werden können. Da Selenium manuelle Tests als Perl-Scripts abspeichert, die man verändern und wiederholen kann, scheint mir die IDE ideal für die Qualitätssicherung von Perl-Webanwendungen geeignet zu sein.

State of the SOAP

Martin Kutter sprach in diesem Vortrag über die verschiedenen Möglichkeiten (sprich Module), um in Perl eine SOAP-Schnittstelle anzubieten bzw. anzusprechen.

Workshop Net::LDAP

Mit Martin Fibiani schloss sich ein weiterer Martin an; bei diesem ging es um die Programmierung mit Net::LDAP. Ich werde das Modul mal meinem LDAP-Team empfehlen.

Workshop ADSI mit Win32::OLE

Nach der Mittagspause stand wieder ein Martin vorn, nämlich erneut Martin Fabiani. Es ging dieses Mal nicht um die Anbindung von Perl-Programmen an ein LDAP-Verzeichnis, sondern an ein Microsoft Active Directory (Zitat: "Die Schöne und das Biest -- die Schöne war vor dem Mittagessen.").

Perl::Critic

Ein weiteres Werkzeug zur Qualitätssicherung stellte Renée Bäcker in seinem zweiten Vortrag dieses Tages vor. Er demonstrierte, wie man den Regelsatz, auf dessen Einhaltung Perl::Critic Quellcode prüft, selbst erweitern kann.

GUI-Applikationen schnell und einfach mit Wx::XRC

In diesem abschließenden Vortrag zeigte Herbert Breunung, wie er, unterstützt durch das GUI-Werkzeug XRC, seinen Editor "Kephra" auf der GUI-Bibliothek wxWindows aufbaut.

Herberts Erläuterungen waren ziemlich hektisch, was die zu diesem Zeitpunkt ohnehin schon geschwundene Aufmerksamkeit des Publikums weiter verringerte. Aber wenn er nur eines vermitteln konnte, dann war es seine Begeisterung für GUI-Toolkits.

Fazit

Leider erlaubte es mir mein Fahrplan nicht, an der Abschlussrunde teilzunehmen. Daher bedanke ich mich auf diesem Weg beim Orgateam und Erlangen.pm herzlich für diesen gelungenen Perl-Workshop. Das Preis/Leistungs-Verhältnis war erneut unschlagbar!

Die Vorträge rangierten für mich im gesamten Spektrum von "unterhaltsam" und "lehrreich" bis "langweilig". Nun gibt der Workshop bewusst auch den Vortragenden Gelegenheit, dazuzulernen. Für sie ist es aber wichtig, Grundsätze der Präsentation zu kennen:

  • Die Folien vorlesen ist einschläfernd. Wer sich entsprechend vorbereitet, kann sich frei durch seinen Vortrag bewegen und die Folien als optische Meilensteine in den Hintergrund stellen.
  • Den Folien vorlesen ist tödlich. Wer Kontakt mit dem Publikum haben will, muss in dessen Richtung sprechen!
  • Flüssiges Sprechen ist wichtig. Wenn der Vortragende längere Denkpausen braucht als das Publikum, verliert er dessen Aufmerksamkeit.
  • Probeläufe des Vortrags machen nicht nur sicherer, sondern zeigen auch, wie sehr man den Inhalt komprimieren muss, um die Redezeit einzuhalten.

Aber auch den Zuhörern seien einige Dinge ans Herz gelegt:

  • Moderne Mobiltelefone kann man auf lautlos stellen. Gedudel stört den Vortragenden und sein Publikum!
  • Gespräche, die hinten im Raum geführt werden, stören den Vortragenden kaum. Die Zuhörer in den hinteren Rängen aber garantiert.
  • Nach den Newtonschen Gesetzen können Glasflaschen nicht vom Tisch fallen, wenn man sie gleich auf den Boden stellt. Durch geeignete Platzwahl ist sogar das lästige Flaschenkicken zu vermeiden.

Im Rückblick waren die drei Tage gut investierte Zeit, um den Kontakt zur deutschen Perl-Szene aufzufrischen und Hinweise auf interessante Anwendungsfälle und Problemlösungen zu erhalten. Im kommenden Jahr werde ich hoffentlich auch selbst wieder etwas dazu beitragen können.

Wer eines Beweises bedarf, dass Perl lebt, der besuche den Deutschen Perl-Workshop!

Kommentar hinzufügen

Der Inhalt dieses Feldes wird nicht öffentlich zugänglich angezeigt.