Friday, December 23, 2011

Mein Perl-Jahr 2011

Wie in den vergangenen Jahren, möchte ich auch in diesem Jahr wieder einen kleinen Rückblick auf mein Perl-Jahr geben. Eins schon vorneweg: Es ist viel passiert und ganz toll verlaufen, aber von vorne...

Januar:
  • Die Smart-Websolutions GbR wurde aufgelöst und ich mache alleine unter Perl-Services.de weiter. Das bringt auch besser zum Ausdruck, was ich mache: Alles rund um Perl ;-)
  • Ich starte planet.perl-magazin.de, ein Aggregator für deutschsprachige Perl-Blogs. Wer noch solche Blogs kennt, meldet sie mir bitte.
  • Ein großes Projekt steht an: OTRS-Einführung und -Anpassungen für ein Bankennahes Unternehmen.
  • Meine Zeit bei der OTRS AG endet.

Februar:

März:
  • Ich habe wieder Zeit für einen Vortrag auf der CeBIT bekommen. Ich nutze das, um das Repository für OTRS-Erweiterungen (OPAR) vorzustellen.
  • Für einen eigenen Perl-Stand bei den Chemnitzer LinuxTage war es zu spät, aber wir waren mit am Stand der OTRS-Community. Außerdem habe ich einen Vortrag über Perl::Critic gehalten.

April:
  • Ich bin wieder bei etecture aktiv. Es ist schön, wenn man immer wieder vertraute Gesichter sieht.

Mai:
  • Die 18. Ausgabe von $foo erscheint

Juni:
  • Ich fahre zum 2. OTRS-Usertreffen in Dormagen und halte einen Vortrag über OPAR

August:
  • Die 19. Ausgabe von $foo erscheint
  • Es wird ein Spendentopf für Perl 5 eingerichtet. Ich finde das eine super Sache und gebe den Gewinn vom Perl-Magazin der Perl Foundation. Vielen Dank an die Leser!
  • Ich bin bei der YAPC::EU 2011 in Riga - mal wieder ein haufen netter Leuter und interessanter Vorträge. Wir haben uns um die Ausrichtung der nächsten YAPC beworben - und gewonnen. Die Frankfurt Perlmongers freuen sich schon auf möglichst viele Besucher im nächsten Jahr!
  • Direkt aus Riga geht es weiter nach St. Augustin zur FrOSCon - Dort gibt es wieder einen Perl-Stand und einen Developer Room. Für das nächste Jahr planen wir, das etwas anders aufzuziehen.

September:

Oktober:

November:
  • Die 20. Ausgabe von $foo erscheint
  • Ich bin zum ersten Mal auf der OpenRheinRuhr. Ich bin nicht nur einfach ein Sponsor, nein, wir haben die $foobar gesponsort. Wir haben dort auch wieder einen Perl-Stand.
  • Die Frankfurt Perlmongers gründen einen Verein. Wir machen schon relativ viel in Sachen Perl (Ausrichten von Perl-Veranstaltungen, Teilnahme an anderen Veranstaltungen, Perl-Stände an Veranstaltungen, etc.) und nächstes Jahr richten wir die YAPC::Europe aus. Eine gute Gelegenheit, einen Verein zu gründen, um alles auf eine solidere Basis zu stellen.
  • Der dritte Mitarbeiter bei Perl-Services.de fängt an.

Dezember:
  • Noch 7 Projekte bis zum Jahresende... Viel zu tun!

Ich hatte extrem viel zu tun über das Jahr, nicht nur ältere Projekte übernehmen und pflegen, sondern auch einige komplett neue Projekte in Perl realisiert. Einige der Kunden sind auch OpenSource-freundlich und werden sehr wahrscheinlich einiges auf CPAN bzw. OPAR einstellen.

So darf es weitergehen!

Ausblick auf 2012:
Natürlich habe ich schon wieder einiges für das nächste Jahr geplant. Deswegen hier ein Ausblick in Kurzfassung: Teilnahme an mehreren Veranstaltungen wie Dt. Perl-Workshop in Erlangen, FrOSCon in St. Augustin und viele mehr... Start eines englischsprachigen Perl-Magazins, Weiterführung "$foo", Start eines OTRS-Magazins, Organisation YAPC::Europe 2012 in Frankfurt. Viele Perl-Projekte, Durchführen eines OTRS-Workshops direkt nach dem Perl-Workshop in Erlangen,...

Tuesday, November 01, 2011

Winter 2011: Die Ausgabe 20 des Perl-Magazins "$foo" ist da!

Auch die Geister, die gestern durch die Straßen geschlichen sind, konnten uns nicht aufhalten. Heute ist die neue Ausgabe des Perl-Magazins "$foo" erschienen. Die Abonnenten sollten in den nächsten Tagen Post bekommen und die Online-Version steht schon zur Verfügung. Viel Spaß beim Lesen!

Webseite: http://www.perl-magazin.de

Inhalt dieser Ausgabe:

* SNMP::Info
Thomas Fahle zeigt in seinem Artikel, wie man mit dem Modul SNMP::Info sehr einfach Informationen z.B. über Cisco Router bekommt.

* Rezension - Programmiersprachen
Für diese Ausgabe hat Herbert Breunung wieder zwei Bücher gelesen. Diesmal sind es "Sieben Sprachen, Sieben Wochen" von Bruce A. Tate und "Visionäre der Programmierung" von Federico Bancuzzi und Shane Warden.

* Perl in Multithreaded Programmen einbetten
Perl ist eine Skriptsprache, die sich einfach in die Programmiersprache C einbetten lässt. Dies ermöglicht Perl-Code direkt aus C zu nutzen und die Vorteile beider Sprachen (schneller Code in C gegenüber schnell geschriebenem Code in Perl) miteinander zu vereinen (bekannt ist dies insbesondere durch mod_perl, welches Perl in den Apache Webserver einbettet). Im Falle von parallelem Zugriff auf Perl aus einem multithreaded Programm ist die Einbettung jedoch nicht mehr trivial, da der Perl Interpreter selbst nicht thread-safe ist.

* $foo als ebook
Die Artikel dieses Magazins werden im Pod-Format geliefert. Doch wie wird daraus ein ebook? Dieser Artikel zeigt, wie mit Hilfe von CPAN-Modulen, das Pod umgewandelt wird und ein ebook daraus generiert wird.

* Perl für Vortragende
Nichts ist peinlicher als eine Live-Demo während eines Vortrags, die nicht funktioniert. In diesem Artikel werden zwei Module vorgestellt, mit denen Vortragende sich das Leben vereinfachen können.

* 2D Spieleprogrammierung mit OpenGL - Teil 2
Im ersten Teil wurde gezeigt, wie Objekte gezeichnet werden und wie die Oberfläche für das Spiel "PONG" gebaut wurde. In dieser Ausgabe zeigt Tom Kirchner, wie die Spieler und der Ball animiert werden. Auch Shader sind ein Thema.

Thursday, October 20, 2011

Perl@OpenRheinRuhr

Der 13. Deutsche Perl-Workshop ist noch in vollem Gange (Bericht folgt noch) und die nächsten Veranstaltungen sind schon wieder in Sichtweite. Eine davon ist die OpenRheinRuhr! Wir werden dort auch einen Perl-Stand haben - direkt neben dem Stand der OTRS-Community.

Für mich ist es die ersten OpenRheinRuhr und ich bin mal gespannt, was ich dort so alles erlebe. Im Hinblick auf die nächste YAPC::Europe, schaue ich mir jetzt Veranstaltungen immer mit etwas anderen Augen an.

Zurück zur OpenRheinRuhr. Wir werden dort nicht nur einen Perl-Stand haben, es wird auch eine $foo-Bar geben ;-) Die Idee aus dem Namen des Perl-Magazins und dem bekannten "foobar" etwas zu machen kam von den ORR-Orgas und ich war sofort begeistert.

Außerdem gibt es einen Vortrag von Gerd Pokorra: Einführung in Perl 6.

Ich freu mich schon auf die Veranstaltung und darauf, viele Leute dort zu treffen.

Friday, September 23, 2011

OTRS-Community-Treffen Frankfurt

Gestern abend fand das OTRS-Community-Treffen Frankfurt statt. Doch vorher habe ich mich noch mit Alexander Halle vom OTRS Community Board getroffen, um verschiedene Sachen wie Perl- bzw. OTRS-Stand auf der OpenRheinRuhr zu besprechen. Dazu haben wir uns im MoschMosch, dem Stammlokal der Frankfurt Perlmongers getroffen.

Nach leckeren gebratenen Nudeln und zwei Stunden Gespräch sind wir in Richtung "Haus der Jugend" gelaufen. Insgesamt waren wir zu sechst bei diesem Treffen, in Zukunft dürfen ruhig etwas mehr Teilnehmer kommen.

Anfangs haben wir eine sehr ausgedehnte Vorstellungsrunde gemacht, in der jeder etwas zu seinem Hintergrund und seiner OTRS-Installation erzählt hat. Mich haben besonders die Zahlen eines Teilnehmers fasziniert, der von 2,5 Millionen Tickets mit über 6 Millionen Artikeln berichtet hat. Das ist doch mal ne fette Installation. Ist ja nur um ein 1200faches größer als meine eigene Instanz.

Bei den großen Installationen werden dann natürlich etliche Anstrengungen unternommen, um das System performant zu halten. Über diese Anstrengungen haben wir auch eine Zeitlang gesprochen - sehr interessant. Da ging es zum Beispiel um eine Volltextsuche mit Sphinx.

Danach habe ich einen Vortrag mit einer Kurzeinführung von OPAR und der Vorstellung von 5 meiner Erweiterungen gehalten. In der anschließenden Diskussion hat sich rausgestellt, dass die meisten der Teilnehmer nichts über die Erstellung von OPM-Paketen wussten. OPM ist das XML-Format für OTRS-Pakete.

Deshalb haben wir vereinbart, dass ich Anfang nächsten Jahres einen kleinen "Hackathon" halte, bei dem gezeigt wird, wie man eigene OTRS-Pakete packen kann.

Alexander hat dann noch seine Arbeit für die OTRS-Community vorgestellt und erläutert, wie die Zukunft des (noch nicht gegründeten) Vereins und der OTRS-Community aussehen könnte.

Monday, August 22, 2011

FrOSCon 2011

Freitags von Riga zurückgekommen, ging es für mich am Samstag früh gleich weiter in Richtung St. Augustin zur FrOSCon 2011.

Wie in den vergangenen Jahren waren wir wieder mit einem Perl-Stand und einem Perl-Dev-Room vertreten. Durch zeitliche Komplikationen habe ich es nicht geschafft, das Vortragsprogramm für den Dev-Room online zu stellen. Sorry!

Ich hatte den Eindruck, dass auf der FrOSCon insgesamt weniger Leute waren als in der Vergangenheit. Und auch bei uns am Stand war es ziemlich ruhig. Dafür hatten wir mehr Zeit, uns mit anderen Projekten zu unterhalten. In unserer Nähe war auch Alexander mit dem Stand der OTRS-Community.

Auch im Dev-Room war wenig los, dafür gab es sehr interessante Diskussionen. Vor allem zum Thema OPAR und Analyse/Tests der Pakete habe ich einige Ansatzpunkte mitgenommen. Die ich demnächst mal genauer betrachten und evaluieren muss.

Auch über Möglichkeiten bei der nächsten YAPC::Europe gab es in einem anderen Raum Diskussionen. Wie man z.B. einen Einsteiger-Workshop gestalten etc.

Für das nächste Jahr könnte ich mir eine etwas andere Vorgehensweise vorstellen: Keine einzelnen Vorträge, sondern eine Art "Hackthon" zu machen. Da könnte man das Thema auch früher ankündigen und muss nicht groß auf Vorschläge warten. Eine Idee wäre, ein bekannteres Modul zu nehmen, das ein paar Bugs hat, diese Bugs zu fixen und Tests dafür zu schreiben. Dann könnte man in dem Hackathon mehrere Sachen abdecken: Profilen des Moduls, Bugfixing, Tests mit Test::More und verwandten Modulen.
Jede Untergruppe könnte dann mal kurz präsentieren was so gemacht wurde und alle hätten etwas davon... Sonstige Ideen?

YAPC::EU 2011 - Tag 3

Leider dauert die YAPC nur drei Tage, das heißt, dass der letzte Tag anstand.

Nach der Eröffnung durch Andrew Shitov, stand die Keynot von Jesse Vincent, aktueller Pumpking von Perl, auf dem Plan. Er hat dabei über seine Pläne für die Zukunft von Perl 5 berichtet. Ich finde, er macht seinen Job als "Manager" sehr gut und es ist eine klarere Linie in die Perl Kernentwicklung gekommen.

Jesse möchte mehr Teile des Kerns in Module auslagern, damit die Wartbarkeit zunimmt. Die Programmierer werden es ihm danken. Außerdem möchte er Perl 5 fit machen, dass es zwei Distributionen gibt: Zum einen eine große Distribution, in der relativ viele Module schon mitgeliefert werden - so wie es zur Zeit auch schon ist - und zum anderen eine sehr schlanke Distribution, in der nur so viel mitgeliefert wird, dass Module von CPAN installiert werden können.
Aus dieser schlanken Distribution können dann andere Perl-Pakete/Perl-Distributionen gebaut werden. Z.B. ein Bio-Perl oder ein Web-Dev-Perl oder oder oder. Ich finde diese Idee sehr spannend.

Nach der Kaffeepause standen wieder die "normalen" Vorträge an. Heute habe ich mir diese Talks angeschaut:

  • ‎Introduction to writing readable and maintainable Perl‎ von Alex Balhatchet
  • ‎Introduction to the Dancer web application framework‎ von Job van Achterberg
  • ‎Running legacy mod_perl with Plack‎ von Peter Makholm
  • ‎‎I <3 my Community‎ von Mark Keating
  • Terms of endearment - the ElasticSearch query language explained‎ von Clinton Gormley
  • ‎ActiveState, Perl and the Cloud‎ von Ingy döt Net

Nach diesen Vorträgen stand die dritte und letzte Serie der Lightning Talks auf dem Plan. Diese Art von Vorträgen ist auch eine gute Möglichkeit, sich als Redner auszuprobieren und vielleicht auch mal das Thema anzutesten.

Anschließend gab es den "State of the Velociraptor" von Matt S Trout. Darin beschreibt er, was so alles im letzten Jahr in der Perl 5 Welt los war. Darin hat er auch gezeigt, wie "Idioten" und "Trolle" bei der Entwicklung helfen können: Indem man sich z.B. von den "Idioten" erklären lässt, was sie alles "blöd" finden und anders machen würden. So kann man sich Ideen für Verbesserungen holen.

Zum Abschluss hat Max noch Frankfurt als Ausrichter der nächsten YAPC::Europe präsentiert.

Mein Fazit: Es war wieder eine wunderbare Konferenz mit vielen alten und neuen Freunden. Ich habe einige gute Punkte für die Orga 2012 mitgenommen und auch etwas Verbesserungspotential ausgemacht.
Riga ist eine tolle Stadt - vor allem im Innenstadtbereich ist vieles restauriert und schön gemacht worden. Etwas außerhalb ist es nicht immer ganz so schön - aber dennoch interessant. Es lohnt sich dort hin zu fahren.

Saturday, August 20, 2011

YAPC::EU 2011 - Tag 2

Da die Voträge erst um 10 Uhr begannen, gab es erst um 9 Uhr Frühstück. Vollkommen ausreichend und der Schlaf war nötig gewesen. Vor 10 Uhr sollten keine Vorträge stattfinden!

Diesmal haben wir zu viert gefrühstückt, bevor es zum Veranstaltungsort ging. Als erster Vortrag stand Damians Keynote auf dem Plan. Darin hat er gezeigt, wie er einige seiner Module von Perl 5 nach Perl 6 umgeschrieben hat - und dabei nur ein Drittel der Zeilen benötigte aber mindestens genauso gut lesbar war.

Diese Vorträge habe ich gehört:

  • Monkey-patching, subclassing, and accidental overriding‎ von Aaron Crane
  • ‎App-ffeedflotr - plot data using Firefox and flot‎ von Max Maischein
  • ‎Dancing into Web Development‎ von Andrew Solomon
  • use types‎ von Reini Urban
  • ‎Cool, bonsai, cool - An introduction to ElasticSearch‎ von Clinton Gormley
  • ‎The Perl Foundation: Year in Review‎ von Karen Pauley
  • ‎Mojolicious - A New Hope von‎ Marcus Ramberg
  • Adventures in Marketing‎ von Mark Keating


Aus dieser Liste möchte ich zwei Vorträge hervorheben:
Den Vortrag über ElasticSearch fand ich sehr gut und hat mir wieder ein paar Ideen gebracht womit ich mich mal beschäftigen könnte. Als Beispiel fiele mir eine bessere Ticketsuche für OTRS ein.

Zum anderen den Vortrag von Karen Pauley über die Perl Foundation. Sie hat hier gezeigt, was die Perl Foundation macht, wofür sie Geld ausgibt und woher das Geld stammt. Auch den Aktuellen Stand zum Perl 5 Core Maintenance Fund hat sie genannt: knapp über 32.000 USD. Wobei das mittlerweile auch nicht mehr aktuell ist, da Net-a-Porter, Dijkmat und Oslo.pm noch während der YAPC::EU Geld für den Spendentopf gegeben, so dass der Topf auf über 48.000 USD angewachsen ist.

Bevor es zum Social Event ging, gab es die zweite Serie von Lightning Talks...

Der Social Event fand in einem Braukeller statt. An sich war es eine nette Location, nur für Unterhaltungen war es nicht ganz so gut geeignet. Die besten Gespräche fanden vor der Tür statt. Hier haben wir einige Anregungen - auch von anderen - mitgenommen. Ich hoffe, wir können das dann umsetzen.

YAPC::EU 2011 - Tag 1

Ich weiß, dass ich der Zeit etwas hinterher hinke, aber ich bin einfach nicht früher dazu gekommen...

Der erste Tag hat mit einem Frühstück mit Michael begonnen. Danach sind wir zum Veranstaltungsort gelaufen - und das lag nur wenige Gehminuten von unserem Hotel entfernt. Wirklich sehr günstig gelegen.

Dort angekommen erwartete uns schon eine gaaaaaanz lange Schlange an der Registrierung. So lange wollte ich aber nicht warten. Also bin ich ohne Anmeldung in den Hauptsaal gegangen und habe auf die Eröffnung gewartet.

Nach der Eröffnung wurde die Ausrichterstadt der nächsten YAPC::EU bekanntgegeben: Frankfurt. Nachdem wir im letzten Jahr vergebens gehofft haben, dürfen wir die 13. YAPC::Europe ausrichten. Dort haben wir auch einen Scheck von der YAPC::Europe Foundation bekommen, der uns mit einer Startfinanzierung ausstattet.

Danach war Larry Wall mit seiner Keynote an der Reihe. Dabei ging es um die verschiedenen Epochen wie Classic, Romantik, Moderne und jetzt natürlich die Postmoderne. Dabei hat er etliche Eindrücke aus Riga mit eingebaut.

Diesen Vorträgen habe ich an diesem Tag gelauscht:

  • Dependency Injection von Zbigniew Lukasiak
  • HTML5: What is is, what it isn't, and should you use it?‎ von Mallory van Achterberg
  • bending syntax with 5.14‎ von Zefram
  • Replacing Relational DB with Redis: a Case Study‎ von Anton Berezin
  • why time is difficult‎ von Zefram
Im Anschluss gab es die erste Serie von Lightning Talks. Diese 5-Minuten-Vorträge sind meistens sehr nütliche kleine Informationshäppchen, die häufig auch recht lustig sind. Hier hat mir der Vortrag von Dave Cross über Perl Marketing/Perl Masons/... besonders gut gefallen! Er hat gesagt, dass man über Perl nicht sprechen sollte und dass es einen geheimen Club geben sollte. Dann wäre alles rund um Perl ganz exklusiv und damit etwas ganz Besonderes.

Als Nick zu mir sagte, dass wir den diesjährigen Deutschen Perl-Workshop doch auch in einem Lightning Talk vorstellen sollten, musst ich das leider von mir weisen - mit dem Hinweis, dass wir ein ganz exklusiver und besonderer Haufen sind ;-)

Als letzer Punkt am heutigen Tag stand die Auktion auf dem Programm. Hier zeigte sich, dass ein vor zwei Jahren ersteigertes Trainingsprogramm mit Damian Conway gute Früchte trägt: Jose Castro schaffte 100 Liegestütze, wobei die Zuschauer 5 EUR pro Liegestütz zahlten. Da die kritischen Stimmen über die Auktion zunehmen und wir (Max und ich) selber nicht besonders große Freunde dieser Art von Auktion sind, wissen wir noch nicht wie wir das bei der "unserer" YAPC machen werden.

Im Anschluss an die Veranstaltung waren Michael und ich noch am Fernsehturm von Riga. Abseits gelegen und weit weg von Touristen, sieht es hier aus, als wäre seit dem Ende der UdSSR kein Geld mehr investiert worden. Und die Fenster an der Aussichtsplattform waren fast komplett blind. Das was man dennoch sehen konnte, lies erahnen, wie schön das hier wäre wenn man den Fernsehturm genaus pflegen würde wie die Innenstadt.

Wir waren dann noch Sushi essen bevor Roman zu uns stieß und wir noch etwas trinken waren. Dabei haben wir noch eine Gruppen spanischer Perl-Programmierer getroffen.

An der Hotelbar ließen wir den Tag dann ausklingen...

Sunday, August 14, 2011

YAPC::EU 2011 - Tag 0

Jetzt beginnt die YAPC-Zeit - und darauf freue ich mich schon ein ganzes Jahr! Nachdem ich im letzten Jahr leider nicht Pisa dabeisein konnte, war die Vorfreude auf Riga umso größer. Heute früh hieß es dann ab zum Flughafen, letzte Besorgungen machen und auf in Richtung Riga.

An meinem Gate angekommen, haben schon ein paar andere Perl-Freunde zusammengesessen und weitere sind im Laufe der Zeit dazugekommen. Auch wenn ich nicht alle (er/ge)kannt habe, bin ich auf mindestens 10 Perl-Leute im Flieger gekommen.

Nach einem ruhigen Flug (naja, ich habe bestimmt die Hälfte verschlafen), sind wir im verregneten Riga angekommen, und die "Dresden-Connection" sowie Markus - von den Erlangen Perlmongers - und ich sind zusammen im Taxi in die Innenstadt gefahren. Markus und ich sind im gleichen Hotel.

Nachdem die Koffer soweit ausgepackt waren sind wir zusammen in die Altstadt gelaufen und nach und nach haben wir immer mehr Perl-Programmierer getroffen und beim Mittagessen war unsere Gruppe um mehrere 100% gewachsen. Das ist das was ich an der YAPC so schätze - jede Menge Leute mit mindestens einer Gemeinsamkeit und man lernt unheimlich schnell viele neue Leute kennen.

Nach dem Mittagessen waren wir noch im "Occupation Museum" und sind quer durch die Altstadt gelaufen, bevor es zumLink Pre-Conference-Meeting ging. Auf dem Domplatz waren schon an die 50 Perl-Programmierer und im Laufe des Abends wurden es bestimmt 120-140 Leute. Und viele nette Bekannte, die ich hier gar nicht aufzählen kann ohne nicht ein paar Leute zu vergessen.

Insgesamt ein toller Abend mit vielen tollen Unterhaltungen wie z.B. mit Gabi, die mir von Ihrer Anreise mit dem Auto quer durch Polen etc. erzählt hat oder mit Mark über Promotion von Perl, Michael über Nachwuchs, und und und.

Jeder der nicht in Riga ist, sollte jetzt neidisch werden ;-) 2006 hat mich das YAPC-Fieber gepackt und ich habe viele neue Freunde kennengelernt und ich freue mich auf 3 spannende Tage mit vielen Vorträgen, lustigen Abenden und jeder Menge interessante Teilnehmer. Ich werde auf jeden Fall weiter berichten. Morgen dann auch wieder mehr mit Bezug auf Perl...

Wednesday, August 03, 2011

Herbst 2011: 19. Ausgabe des Perl-Magazins ist da!

Mit einem Tag Verspätung ist heute morgen die 19. Ausgabe des Perl-Magazins aus der Druckerei eingetroffen. Die Abonnenten werden in den nächsten 2-3 Tagen ihr Heft in den Händen halten können.

Viel Spaß bei der Lektüre!

Inhalt dieser Ausgabe:

* Moose Tutorial V - Introspektion

In diesem Teil des Moose-Tutorials geht es um Introspektion. Damit ist das Sammeln von Informationen über Objekte und Klassen zur Laufzeit gemeint. Auch können die Objekte und Klassen zur Laufzeit geändert werden.

Zu den gesammelten Informationen gehören Daten wie die Attribute eines Objektes, welche Rollen in der Klasse eingebunden werden und welche Methoden ein Objekt kennt. Natürlich gibt es viele weitere Informationen, die gesammelt werden können. Dazu werden ein paar Beispiele von Anwendungsfällen gezeigt.

* 2D Spieleprogrammierung mit OpenGL - Teil 1

In dieser Artikelreihe gibt Tom Kirchner eine kleine Einführung in die Spieleprogrammierung mit OpenGL und GLUT. Dabei wird das Spiel PONG programmiert und in mehreren Ausbaustufen verschönert. Der Einfachheit halber wird die gesamte Spielgrafik in 2D gehalten, aber die vermittelten Konzepte lassen sich leicht in 3D übertragen.

* Rollen für Nicht-Moose-Anwendungen - Role::Basic

In den letzten Jahren wurde Moose immer beliebter und damit auch das Tool "Rollen". Wer sich intensiver mit Rollen auseinandergesetzt hat, wird sie vermutlich nicht mehr missen wollen. Bisher war es so, dass das Stichwort "Rollen" im Zusammenhang mit "Moose" zu sehen war. Für die Standard-Objektorientierung in Perl 5 gab es keine Rollen.

Curtis 'Ovid' Poe hat das geändert und das Modul Role::Basic geschrieben. Aber erst werden die Ideen hinter den Rollen gezeigt, bevor die Möglichkeiten des Moduls näher gezeigt werden.

* WxPerl Tutorial - Teil 8: Reiche Applikationen

In diesem Teil des WxPerl Tutorials von Herbert Breunung dreht sich alles um das Hinzufügen von Bequemlichkeit und Auswahl. Denn TIMTOWTDI bedeutet auch: Es gibt mehr als einen Weg der Ein- und Ausgabe. Deshalb werden Zwischenablage, Drag'n Drop, Drucken und weitere Themen beschrieben.

* Serialisieren von Datenstrukturen in binäre Sequenzen

In diesem Artikel von Rolf Rost geht es um die Erzeugung binärer Sequenzen, wobei dafür ein spezieller Algorithmus auf die vorliegende Datenstruktur angewandt wird. Beispiele für Algorithmen zum Serialisieren von Arrays und Hashes werden im Verlauf des Artikels vorgestellt, ohne dabei einen Anspruch auf Vollständigkeit zu erheben.

* Perl 6 - Der Himmel für Programmierer

Wieder ging ein Jahr, und was tat sich um Perl 6? Nicht sehr viel und das ist gut so. Denn wie aufmerksame Leser dieser Reihe wissen, bezeichnet Perl 6 nur die Sprache. Das umfasst lediglich die Spezifikation in ihren 3 bereits vorgestellten Teilen: Synopsen (menschlich lesbare Form), Testsuite (aka roast) und der STD.pm (Defintion der Syntaxregeln mit Perl 6-Grammatiken).

Herbert Breunung zeigt was sich bei den einzelnen Implementierungen von Perl 6 getan hat.

* Verknüpfte Objekte in OTRS

OTRS bietet aber nicht nur die Möglichkeit, Anfragen zu verknüpfen, sondern beliebige Objekte miteinander zu verbinden. Das ist praktisch wenn die ITSM-Erweiterung im Einsatz ist und man Anfragen mit Configuration Items verknüpfen kann. So kann man schnell die notwendigen Zusatzinformationen für das Ticket finden.

In bestimmten Fällen reichen die eingebauten Verknüpfungsmöglichkeiten nicht aus. In diesem Artikel wird erst gezeigt, wie neue Verknüpfungsmöglichkeiten für existierende Objekte erschaffen werden können und danach wird darauf eingegangen, wie neue Objekte und damit neue Verknüpfungen eingeführt werden.

* Rezension - Perl - Klassiker

Herbert Breunung stellt zwei Klassiker in Sachen Perl-Bücher vor: Einführung in Perl, das mittlerweile in der 6. Ausgabe vorliegt und auf aktuelle Perl-Versionen angepasst wurde und Perl Best Practices.

* Perl Tipps - Modulorte erkennen

Perl-Programmierer fragen nicht "Ey Mann - Wo is' mein Auto?", sie fragen "Ey Mann, Wo is' mein Modul?". Gerade unter Linux, wo schon das Betriebssystem sie an mehreren Orten lagert und eigenmächtige Installationen die Lage noch verkomplizieren, stellt sich die Frage schnell.

Und Herbert Breunung zeigt in diesem Artikel, wie diese Frage beantwortet und noch mehr Informationen besorgt werden können.

Wednesday, July 06, 2011

Frankfurt oder Sofia - das ist hier die Frage...

Heute hat die YAPC::Europe Foundation (YEF) bekanntgegeben, dass es zwei Bewerber um die YAPC::EU 2012 gibt: Frankfurt und Sofia. Jetzt gilt es natürlich Daumen drücken, damit die Veranstaltung im nächsten Jahr in Frankfurt stattfindet...

In den nächsten Wochen wird sich das Venue Committee der YEF für einen der Bewerber entscheiden und es am ersten Tag der diesjährigen YAPC::EU in Riga (15.-17. August) bekanntgeben.

Es wäre toll, wenn wir nach dem 13. Deutschen Perl-Workshop (19.-12. Oktober 2011) auch die 13. YAPC::EU ausrichten dürften... Dann wären wir ja quasi schon voll eingearbeitet und könnten die Organisation gut stemmen ;-)

Übrigens ist unsere Bewerbung unter http://www.perl-magazin.de/stuff/BewerbungYAPC2012.html für jeden ersichtlich.

Friday, June 24, 2011

Deutscher Perl-Workshop - Call for Papers

Besser spät als nie ;-)



Call for Papers / Participation

Vom 19.10.2011 bis 21.10.2011 (Mittwoch bis Freitag) findet der 13. Deutsche Perl-Workshop im Haus der Jugend in Frankfurt am Main statt. Zielgruppe des Workshops sind alle ernsthaften Perl-Anwender und die, die es werden wollen.

Unser Workshop steht und fällt mit den Vorträgen. Üblicherweise sind Vorträge 5, 20 oder 40 Minuten lang. Alle Themen, die in irgendeiner Weise mit Perl oder dem Perl-Umfeld zu tun haben, können als Vorträge für den Workshop interessant sein.

Du hast im Moment nur eine vage Idee für ein Thema? Kein Problem: uns interessieren im Prinzip alle Themen, die in irgendeiner Weise mit Perl zu tun haben. Frag' im Zweifelsfall einfach früh genug bei uns (wsorga@perl-workshop.de) nach. Wir helfen gerne dabei, ein vages Thema zu konkretisieren.

Alle Vorträge werden im Plenum (120 - 150 Teilnehmer) angeboten. Zusätzlich zu den eigentlichen Vorträgen wird es zwei oder drei halbtägige Tutorials zu jeweils einem größeren Thema geben; auch hierzu sind uns Vorschläge von Referenten hochwillkommen. Konferenzsprache ist Deutsch, aber Du kannst Deinen Vortrag auch auf Englisch halten, wenn Deutsch nicht Deine Muttersprache ist.

Deinen Vorschlag schickst Du uns bitte bis spätestens Sonntag, den 14.08.2011 als Abstract. Du kannst natürlich gerne auch mehrere Themen vorschlagen. Dein Abstract sollte in rund 2000 Zeichen (das sind ca. 30 Zeilen a 72 Spalten) das Thema beschreiben, was besonders an Deinem Ansatz ist und weshalb Perl als Sprache in diesem Fall besonders nützlich ist.

Zum Einreichen eines Vorschlages, melde Dich bitte auf der Perlworkshop-Webseite an und verwende danach das Formular unter Neuen Vortrag einreichen.

Die Zuhörer sind, dem Workshop-Charakter gemäß, in erster Linie erfahrene Perl-Anwender. Auf Grund der Räumlichkeiten haben wir aber auch Platz für weniger erfahrene Anwender. Vorträge sollten, müssen aber nicht, technisch ausgerichtet sein. Optimal wäre es, wenn wir Deinem Beitrag praktisch nutzbare Anregungen für die eigene Arbeit entnehmen könnten.

Ultrakurzvorträge (5 Minuten)

Ein Nachmittag des Workshops wird wieder für "Lighting Talks" zur Verfügung stehen. Hier können insbesondere diejenigen, die sich (noch) keinen langen Vortrag zutrauen, einen aktiven Beitrag zum Workshop leisten und ihren ersten Auftritt als Vortragende versuchen.

Ebenso ist hier Platz für Vorträge unter dem Motto "Mein liebstes Modul", in denen ein interessantes, nützliches und evtl. zu wenig bekanntes Perl-Modul kurz vorgestellt wird.

Kurzvorträge (20 Minuten)

Vortrag von 20 Minuten sowie anschliessend 5 Minuten Zeit für Fragen und Antworten. Kurzvorträge sind zum Beispiel zur Vorstellung von Projekten interessant.

Langvorträge (40 Minuten)

Vortrag von 40 Minuten sowie anschliessend 5 Minuten Zeit für Fragen und Antworten. Langvorträge sollten detailliert auf einen oder zwei besonders interessante technische Aspekte des Themas eingehen.
Tagungsband / CD

Wir produzieren zum Workshop im Rahmen unserer Möglichkeiten einen gedruckten Tagungsband sowie eine CD-ROM mit den Beiträgen aller bisherigen Workshops. Dazu benötigen wir eine schriftliche Ausarbeitung Deines Vortrags und Dein schriftliches Einverständnis für die Publikation in den Tagungsmaterialien [und im Web].
Termine

Bis Sonntag, den 14.08.2011, nehmen wir Vorschläge für Vorträge an. Bis Sonntag den 28.08.2011 wirst Du von uns eine Rückmeldung erhalten. Die schriftliche Ausarbeitung des akzeptierten Vortrags muss uns bis spätestens Freitag den 30.09.2011 vorliegen, damit er in den Tagungsband aufgenommen werden kann.

Im Zweifelsfall hilft es uns und Dir, wenn Du frühzeitig mit uns per Email (wsorga@perl-workshop.de) Kontakt aufnimmst, um Fragen zu stellen bzw. Unklarheiten zu klären.

Unverbindliche Themenvorschläge

Als Anregung (nicht als Ausschlussliste!) bieten wir hier eine Reihe von stichwortartigen Anregungen zu Themenbereichen, zu denen wir uns interessante Vorträge oder Tutorials vorstellen können:

* Debugging (Nutzung vorhandener Debugging-Tools)
* Testen (speziell z.B. Unit Testing, Test-First-Ansatz)
* Refactoring (im Sinne von Kent Beck/Martin Fowler)
* Entwurf
* Dokumentation (Automatisierung/Generierung)
* Codegenerierung (Code aus Spezifikationen)
* Mein liebstes CPAN-Modul
* Grundlagen-Vorträge zu den obigen Themen

Weitere Themen, zu denen wir uns interessante Vorträge vorstellen können (ohne Anspruch auf Vollständigkeit):

* Aktuelle Web-Frameworks: Catalyst, Jifty, AxKit2, ...
* Objektorientierung: Moose, Moose::Autobox, ...
* Datenbankabstraktion: DBIx::Class
* SPAM-Abwehr/Erkennung
* Unicode
* Perl-IO
* Perl 6
* Perl6-in-Perl5-Integration und vice versa
* "wirklich große" Perl-Systeme
* Releasemanagement
* Vergleich von "gleichen" Softwaresystemen (Template-Engines, Wikis, XML-Engines, ...)
* Verträglichkeit mit anderen Systemen
* (plattformübergreifende) GUI-Programmierung
* Erfahrungsberichte zum Einsatz von Perl (z.B. Inbetriebnahme grösserer Perl-Systeme (WebGUI, ...))
* Grundlagen-Tutorials zu allen Perl-Themen (XML, Web, DBI, ...)

Tuesday, June 21, 2011

Perl-Releases

Im Moment geht es Schlag auf Schlag:

Veröffentlicht wurden innerhalb von 4 Tagen im Juni Perl 5.12.4, Perl 5.14.1 als stabile Versionen und Perl 5.15.0 als Entwicklerversion.

Änderungen in Perl 5.12.4: http://search.cpan.org/dist/perl-5.12.4/pod/perldelta.pod

Änderungen in Perl 5.14.1: http://search.cpan.org/dist/perl-5.14.1/pod/perldelta.pod

Änderungen in Perl 5.15.0: http://search.cpan.org/dist/perl-5.15.0/pod/perldelta.pod

Perl-Versionen < 5.12 werden nicht mehr weiterentwickelt! Man sollte sich also überlegen, ob man nicht auf neuere Versionen umsteigen will - die auch viele nützliche Änderungen bringen. Die wichtigsten Änderungen in Perl 5.12 bzw. Perl 5.14 habe ich für das $foo-Magazin aufgeschrieben.

Ich bin sehr glücklich darüber, dass die neuen Release-Regeln (jedes Jahr ein neues Major-Release und dann innerhalb von einem Jahr drei Minor-Releases) so gut funktionieren.

Ein Dank an die Perl 5 Porters!

Sunday, June 19, 2011

Perl@FrOSCon2011 - Call for Papers

Die Organisatoren der FrOSCon 2011 haben uns auch in diesem Jahr wieder einen Raum für einen Tag für Perl-Vorträge zur Verfügung gestellt. Am 21. August 2011 wird es also wieder Perl-Vorträge geben.

Insgesamt haben wir 7 Stunden für die Vorträge zur Verfügung. Die Vorträge sollten entweder 20, 40 oder 60 Minuten lang sein und logischerweise etwas mit Perl zu tun haben.

Der Raum, der uns zur Verfügung steht, fasst ca. 40 Personen und im letzten Jahr waren bei den Vorträgen zwischen 20 und 30 Leuten anwesend.

Bitte reicht die Vortragsvorschläge bis zum 22. Juli per E-Mail an froscon2011@perl-magazin.de ein. Bis zum 29. Juli werden wir dann ein Programm zusammenstellen und euch darüber informieren.

Der Vortragsvorschlag sollte eine kurze Zusammenfassung über den Vortragsinhalt sowie eine Längenangabe beinhalten.

Friday, June 17, 2011

Zweites OTRS-Community-Treffen Rheinland am 30.06.

Am 30.06. findet in Dormagen das 2. OTRS-Community-Treffen Rheinland statt. Ich werde auch dort sein und einen Vortrag über OPAR halten. OPAR habe ich als eine Art CPAN für OTRS geschrieben und hoffe, dass im Laufe der Zeit viele OTRS-Erweiterungen dort eintrudeln.

Momentan gibt es noch einige Bugs, aber nach meinem aktuellen Projekt möchte ich eins, zwei Monate Vollzeit daran entwickeln.

Vielleicht liest hier ja der eine oder andere OTRS-Interessierte mit, der zu dem Treffen kommen möchte. Ich würde mich über viele neue Bekanntschaften freuen.

Ich bedanke mich auch schonmal bei Bo Feng von Maxcence für die Einladung zu dem Treffen.

Wednesday, May 04, 2011

Nachtrag zum Artikel "openSUSE Build Service" im $foo Perl-Magazin 18

Gestern hat mich eine Mail zu dem Artikel "openSUSE Build Service" erreicht, die ich natürlich nicht für mich behalten möchte.

Jürgen Weigert:

Ein Nachtrag zu CPAN-Distributionen im openSUSE Build Service.

Im englischen openSUSE wiki pflege ich eine weitere Bauanleitung, speziell für perl
Pakete:

http://en.opensuse.org/openSUSE:Packaging_Perl

Dort werden einige weitere Vereinfachungen und auch Alternativen geboten.

Friday, April 29, 2011

Ausgabe Nr 18 des Perl-Magazins "$foo" ist da!

In ca. zwei Wochen wird es die ePub-Ausgabe des Magazins geben, aber jetzt gibt es schon die PDF-Version und die Print-Ausgabe.

Abonnenten der Print-Ausgabe sollten Anfang nächster Woche ihr Heft in den Händen halten können.

Die Themen in dieser Ausgabe:

* Wie erweitere ich Perls Syntax - Teil 2

Im zweiten Teil der Reihe zeigt Rolf Langsdorf, wie er mit Templates und Introspektion Macros für Perl schafft und so das "gather-take"-Konstrukt in Perl 5 bekommt.

* CPAN-Distributionen im openSUSE Build Service paketieren

Mit dem openSUSE Build Service können Programme und Bibliotheken als binäre Pakete zur Verfügung gestellt werden. Matthias Weckbecker stellt diesen Service vor und zeigt, wie Perl-Programmierer ihre Module als binäre Pakete auch in Repositories zur Verfügung stellen können.

* Tapper Testinfrastruktur

AMD hat mit der Software "Tapper" ein Tool veröffentlicht, mit dem sich die meisten Bereiche des Testens automatisieren lässt.

Steffen Schwigon beschreibt in seinem Artikel die einzelnen Komponenten von Tapper und wie diese zusammenarbeiten.

Auch die Konfiguration von verschiedenen Testszenarios wird dargestellt.

* Hack your applications!

Rolf Langsdorf veranschaulicht, wie Protokolle und die damit verbunden Aktionen für eigene Zwecke benutzen kann. Konkret beschreibt er, wie er mit "mailto:"-Links Anwendungen aus seinen Präsentationen starten kann.

* Moose Tutorial IV - Rollen

Rollen sind ein elegantes Mittel für zusätzliches Verhalten von Klassen und Objekten.
In dieser Form gibt es das nicht in anderen Sprachen - in Moose sind sie von Anfang an dabei.
Der Artikel zeigt, wie eigene Rollen umgesetzt werden können und welche nützlichen Rollen es auf CPAN schon gibt.
Auch Stärken und Schwächen von Rollen werden aufgezeigt.

* WxPerl Tutorial VII - Gestaltung komplexerer Programme

Herbert Breunung zeigt im siebten Teil des WxPerl-Tutorials, wie der Wx "Malkasten" - der draw context - eingesetzt wird. Auch Validatoren für Eingabefelder werden vorgestellt.

* Rezension - Programmieren mit Stil

Zwei Bücher werden in dieser Ausgabe besprochen: "Modern Perl" von chromatic und "Clean Code" von Robert C. Martin. Beide Bücher werden von Herbert Breunung vorgestellt.

* CPAN-News

Auch in dieser Ausgabe werden wieder sechs neue Module vorgestellt. Darunter auch ein Modul, mit dem man sich die kürzesten Verbindungen in Londons U-Bahn ausgeben lassen kann.

Thursday, April 28, 2011

Perl Schnellstart

Einführung in die Perl-Programmierung - Ein Beispiel mit Strawberry Perl für Windows



Jeder fängt mal an. Im Falle von Perl beginnt man mit der Installation des Perl-Interpreters. Der Interpreter ist sozusagen das Programm, das den Quellcode, den man schreibt, in Anweisungen für den PC übersetzt. Dann installiert man sich einen geeigneten Editor und schreibt sein erstes Programm. Dann lernt man mit strict, cpan und Foren umzugehen und schon ist man mitten drin im Perl-Abenteuer.

Strawberry Perl


Den Perl-Interpreter gibt es für Windows von verschiedenen Anbietern. In diesem Beitrag wird Strawberry Perl verwendet. Eine Übersicht über alle Perl-Interpreter gibt es hier: http://win32.perl.org/ (englisch)

Strawberry-Perl-Distributionen gibt es für 32-bit und 64-bit-Windows. Wer sich nicht sicher ist, ob er ein 32-bit oder 64-bit-System benutzt, sollte zur 32-bit-Version greifen. Wenn das nicht geht, zur anderen. Hier geht’s zum Download: http://strawberryperl.com/

Perl-Editor


Viele Bücher schwärmen davon, dass man nur Perl, einen Editor und eine
Kommandozeile braucht, um Perl zu programmieren. Das stimmt schon, aber das ist so, als würde man sagen, dass man zum Bauen eines Hauses nur Bretter, Nägel und einen Hammer bräuchte.

Um den Einstieg etwas angenehmer zu gestalten, bietet sich die Verwendung eines Editors an, der folgende zwei Funktionen bietet:

  • Hervorhebung der Perl-Syntax

  • Ausführen von Code per Tastendruck


Ein solcher Editor kann zum Beispiel die Open Perl IDE (OPI) sein.
Diese gibt es hier: http://open-perl-ide.sourceforge.net/

OPI entpackt man einfach in ein Verzeichnis seiner Wahl ( z.B. C:\Perl\OPI ). Dort führt man die Datei PerlIDE.exe aus. Im Editor selbst kann man Perl-Skripte einfach per F9-Taste starten.


Abbildung 1 - So sieht die Open Perl IDE aus


Perl-Programm


Wer anfängt, eine Programmiersprache zu lernen, hat meistens ein Ziel. Das kann auch ruhig höher gesteckt sein, z.B. ein Warenwirtschaftssystem oder ein Content-Management-System. Hauptsache, man hat ein Ziel vor Augen, denn dann kann man kleinere Aufgaben abspalten und während der Umsetzung Perl lernen – ganz automatisch.

Ein erstes Perl-Programm (first.pl) sähe zum Beispiel so aus:

#!perl
use strict;
use warings;

print “This is perl!\n”;
my $ergebnis = 4 + 7;
print “4 + 7 = $ergebnis\n”;

exit(0);


Der geneigte Leser kann sich diesen Quellcode gerne schon einmal in OPI kopieren, als Datei speichern (Perl-Dateien enden per Konvention gerne auf .pl) und mit F9 ausführen. Das Ergebnis erscheint in der Konsole unten.

Eine Referenz zur Programmiersprache Perl gibt es übrigens hier: http://perldoc.perl.org/ und ein gutes Buch für den Einstieg ist Perl lernen. Anfangen, Anwenden, Verstehen (ISBN-10: 3827316502).

Perl-Foren / Perl-Community



Wenn man nicht weiß, womit man anfangen soll, oder wer nicht weiter weiß, der sollte einfach mal fragen. Gerade zu Beginn ist die Wahrscheinlichkeit hoch, dass schon jemand anderes genau dasselbe Problem hatte und helfen kann.

Es gilt dann nur noch, ein Perl-Forum aufzusuchen (am besten gleich anmelden) und dort richtig zu fragen. Die erste Antwort ist übrigens fast immer RFTM. Die kann man getrost ignorieren, auf gar keinen Fall sollte man sich dadurch angegriffen fühlen. Meistens sieht der Antwortende den Verweis auf RTFM sogar als hilfreich an und meint es nicht offensiv.

Um dem Problem zu entgehen, kann man tatsächlich vorher mal kurz eine beliebige Suchmaschine verwenden und nach dem Problem suchen, das man hat. Wenn man dann nichts findet, kann zusätzlich zu seiner Frage im Forum schreiben, nach was man bereits gesucht hat. Hat man falsch gesucht, bekommt man dann meistens Verbesserungsvorschläge. Das hilft auf Dauer.

Diese beiden Foren sollte man kennen:



Von Perl.de würde ich persönlich erst einmal abraten.

Module und CPAN


Perl bietet eine unheimlich große Sammlung von gekapselten Funktionalitäten – sog. Modulen – die bereits andere Menschen geschrieben haben – das CPAN (Comprehensive Perl Archive Network). Man darf diese Module i.d.R. einfach benutzen, auch um Geld zu verdienen. Der Preis, den man für die Nutzung zahlen muss, ist die Notwendigkeit, sich an die CPAN-Konsole zu gewöhnen, um die Module vom CPAN auf den lokalen PC zu laden. Es gibt so viele Module, die kann man einfach nicht alle bei Perl dazulegen. Außerdem finden sich auf CPAN immer die aktuellsten Versionen.

CPAN gibt es hier: http://www.cpan.org und Module kann man hier suchen: http://search.cpan.org.

Ein Modul, mit dem man grafische Benutzeroberflächen erstellen kann, nennt sich Tk. Man ruft dazu einfach cpan auf (das gibt es bei Strawberry-Perl als Verknüpfung) und tippt dann ein: install Tk

Danach kann man in OPI folgendes Programm schreiben (tk_first_shot.pl):
#!perl

use strict;
use warnings;
use Tk;

my $mw = Tk::MainWindow->new();
$mw->packPropagate(0);
$mw->Label(-text => "This is perl!")->pack();
$mw->MainLoop();

exit(0);



Abbildung 2 - tk_first_shot.pl abgespeichert und ausgeführt


Zusammenfassung


Zum Programmieren mit Perl braucht man:

Monday, March 21, 2011

Chemnitzer LinuxTage

Am vergangenen Wochenende (19./20. März) fanden wieder die Chemnitzer LinuxTage statt und Perl war wieder mit dabei. Wir haben uns einen Stand mit der OTRS-Community geteilt und es gab zwei Vorträge über Perl (plus ein paar über OTRS).

Am Donnerstag ist mir noch ganz kurzfristig aufgefallen, dass ich weder meinen Vortrag noch etwas für den Stand vorbereitet hatte. Also habe ich ein paar Sachen zusammengesucht und Flyer ausgedruckt. Auch Hotel und Bahnticket habe ich dort erst besorgt ;-) Egal, hat ja alles geklappt.

Am Freitag bin ich dann nach Chemnitz gefahren - 6 Stunden Zugfahrt. Wenigstens war die Bahn so ziemlich pünktlich. Nachdem ich kurz im Hotel war, bin ich zur TU gefahren, da dort der LinuxTag stattgefunden hat. Dort habe ich dann einige von der c.a.p.e IT getroffen und ich habe ein paar Sachen für den Perl-Stand vorbereitet.

Später sind dann noch Alexander, Daniel und André vom OTRS Community Board und Shawn von der OTRS AG gekommen und wir waren gemütlich was essen.

Am Samstag früh ging es dann los. Die restlichen Sachen für den Perl-Stand waren schnell aufgebaut. Steffen von den Erlanger Perlmongers war auch schon da und hat mit mir den Stand betreut. Später kamm dann noch Markus dazu.

Um 10.00 Uhr war ich dann mit meinem Vortrag über Perl::Critic gehalten. Insgesamt waren geschätzt 25-30 Zuhörer da. Insgesamt ist der Vortrag wohl ganz gut angekommen, jedenfalls waren danach noch ein paar Leute am Stand und haben gesagt, dass sie sich Perl::Critic näher anschauen wollen.

Direkt nach mir waren Maik Hentsche und Florian Ragwitz mit einem Vortrag über "Modern Perl" an der Reihe. Hier waren es geschätzt 40 Zuhörer. Ich denke, dass dieser Vortrag einigen gezeigt hat, dass sich Perl stetig weiterentwickelt.

Am Samstag mittag gab es dann noch Kuchen für alle. Vor 9 Jahren gab es das erste Release von OTRS. Neben der Online-Geburtstagsfeier gab es also auch eine Reallife-Geburtstagsfeier. Der Kuchen wurde gut angenommen und hat für viel Betrieb am Stand gesorgt...



Der Sonntag war dann wesentlich ruhiger. Nachmittags gab es noch ein OTRS Community Treffen, auf dem aber nicht allzu viel los war.

Insgesamt hat sich die Teilnahme wieder gelohnt, aber für nächstes Jahr sollten wir versuchen, einen eigenen Perl-Stand zu bekommen!

Sunday, March 13, 2011

Perl Foundation: Ideen für Google Summer of Code 2011 gesucht

Wie schon in den letzten Jahren, werden die Perl Foundation und die Parrot Foundation am Google Summer of Code teilnehmen - jedenfalls haben Jonathan "Duke" Leto und Florian Ragwitz die Organisationen angemeldet.

Jetzt werden noch Ideen gesucht, die im Rahmen des Programms umgesetzt werden können. Wer also Ideen hat, kann sie unter http://epo.means.no/gsoc2011/ideas eintragen. Es wäre toll, wenn noch ein paar Ideen hinzukommen würden.

Hier noch der Zeitplan:

* 18.03. Teilnehmer-Organisationen werden bekanntgegeben
* 18.-27.03. interessierte Studenten stimmen mit den Organisationen die Ideen, die umgesetzt werden sollen, ab
* 28.03. Studenten können sich bewerben
* 08.04. Deadline für Studentenbewerbungen
* 25.04. akzeptierte Studentenbewerbungen werden bekanntgegeben
* 23.05.-22.08. Coden ;-)

Wednesday, February 23, 2011

Neuheit auf der CeBIT: Offene Biblio­thek für OTRS-Erweiterungen

OPAR archiviert erstmals Open Source Erwei­terungen für HelpDesk-System OTRS / Unternehmen profitieren in Kundenmanagement vom öffentlichen Know-how anderer


Ich halte am 05.03.2011 um 10:30 Uhr einen Vortrag über OPAR auf der Univention/Linuxhotel-Bühne (Halle 2, Stand D36). OPAR ist/wird ein Archiv nach dem Vorbild CPAN.

Leider ist es so, dass zur Zeit noch kein zentrales Repository für OTRS-Erweiterungen existiert, aber viele Leute schon so etwas programmiert haben und auch der Öffentlichkeit zur Verfügung stellen würden.

Mit OPAR wird das dann möglich sein.

Noch ist es nicht fertig programmiert, aber bis zum Vortrag auf der CeBIT werden die wichtigsten Teile fertig sein.

Das ganze setzt auch Moose, DBIx::Class und ähnliches ein. Den Code werde ich in den nächsten Wochen auch auf Github stellen, so dass eine Mitarbeit leicht möglich ist. Die Dokumentation ist im Moment zwar noch nicht wirklich vorhanden, aber das möchte ich nach den ganzen Veranstaltungen im März ändern...

Tuesday, February 08, 2011

grep für Code auf CPAN

Wer kennt nicht das geniale Tool "grep"? Wer kennt nicht die geniale Sammlung "CPAN"? Ich musste schon häufiger im Code von CPAN-Modulen suchen. Wer das bequem auf einer Webseite machen will, kann sich mal http://grep.cpan.me/ anschauen.

Ist zwar noch Alpha, aber jetzt schon ist das Tool von David Golden super!

Saturday, February 05, 2011

Nützliche Module: B::Deparse und B::Concise

In OTRS habe ich heute morgen folgendes diff gefunden:
--- UnitTest.pm 2 Feb 2011 09:20:20 -0000 1.46
+++ UnitTest.pm 4 Feb 2011 23:37:31 -0000 1.47
@@ -265,4 +265,7 @@
}
}
+ elsif ( system 'uname -s' eq 'FreeBSD' ) {
+ $ResultSummary{Vendor} = 'FreeBSD ' . system 'uname -r';
+ }
else {
$ResultSummary{Vendor} = 'unknown';
Da sind bei mir gleich alle Alarmglocken angesprungen - das kann nicht funktionieren. Schon allein dass "system" das Ergebnis (sprich: die Ausgabe) des ausgeführten Kommandos nicht zurückliefert.

Um aber dem Autor des Codes zu zeigen, was tatsächlich passiert, kann man B::Deparse und B::Concise nehmen. Für den Test habe ich dann einen Einzeiler genommen, der aber genau den Code oben abbildet.

B::Concise

$ perl -MO=Concise,-exec -e 'print "yes\n" if system "uname -s" eq "Linux"'
1 <0> enter
2 <;> nextstate(main 1 -e:1) v
3 <0> pushmark s
4 <$> const[SPECIAL sv_no] s
5 <@> system[t2] sK
6 <|> and(other->7) vK/1
7 <0> pushmark s
8 <$> const[PV "yes\n"] s
9 <@> print vK
a <@> leave[1 ref] vKP/REFC
-e syntax OK

Das zeigt gleich noch ein anderes Problem: Präzedenz! Das "eq" wird vor dem "system" ausgeführt. Das "eq" liefert "unwahr" (sv_no) und übergibt das an "system". Ein "system sv_no" funktioniert immer - jedenfalls unter Ubuntu...

Aber was wird dann tatsächlich ausgeführt? Das kann man sich mit B::Deparse anschauen:

$ perl -MO=Deparse -e 'print "yes\n" if system "uname -s" eq "Linux"'
print "yes\n" if system !1;
-e syntax OK

Wie man sieht können die beiden Module sehr gut dabei helfen, Probleme zu identifizieren. Über ein paar B::*-Module habe ich übrigens in der Frühjahr 2009 Ausgabe von $foo geschrieben und darüber wie B::Concise bei Präzendenz-Problemen hilf in der Sommer 2008 Ausgabe.

x-Modifier bei Regulären Ausdrücken

Über Perl liest man häufiger, dass es eine "write-only" Sprache sei. Als Beispiel folgt dann meist ein Regulärer Ausdruck.

Auch gestern war es wieder soweit:

definitely a write-only language: can't understand A THING of the code I wrote few weeks ago if($_ =~ /^\d*\s([^\s]*)\s(.)/){ }
Erstens hat das Verständnis von Regulären Ausdruck nicht wirklich viel mit Perl zu tun. Die gibt's in (fast) jeder Sprache. In Java wäre es wohl noch kryptischer:

if ( string.matches( "\\d*\\s([^\\s]*)\\s(.)" ) ) { }
Na, wer bemerkt die doppelten "\\"? Aber darum geht's hier nicht. Zweitens kann man in Perl den x-Modifier verwenden. Damit verlieren Leerzeichen in Regulären Ausdrücken ihre Bedeutung und mit "#" kann man Kommentare in Regulären Ausdrücken anfangen:

if ( $plz_ort =~ /
^
\d{5} # Postleitzahl
\s+ # mindestens 1 Leerzeichen
[A-Za-zäöüß-] # Ortsnamen
$
/x ) { }

Damit kann man seine Regulären Ausdrücke wunderbar dokumentieren und versteht somit auch komplexere Ausdrücke auch noch nach Jahren...

Ich kann es nur empfehlen, diesen Modifier zu verwenden.

Gibt es diesen Modifier auch in anderen Sprachen?

Auf jeden Fall kann man so in Perl auch mit komplexen Regulären Ausdrücken sauber und lesbar programmieren.

Wednesday, February 02, 2011

Perl auf dem LinuxTag in Berlin

Auch in diesem Jahr soll es wieder einen Stand für Perl auf dem Berliner LinuxTag (11.-14. Mai 2011) geben. Dafür brauchen wir noch Leute, die helfen.

Außerdem wäre es schön, wenn es ein paar Vorträge über Perl auf dem LinuxTag geben würde. Die Frist für Vortragsvorschläge läuft aber schon bald ab - am 8. Februar. Wer also Lust hat, einen Vortrag einzureichen, sollte sich http://wiki.linuxtag.org/w/vp:Call_for_Papers anschauen.

Helfer sollten sich unter https://www.socialtext.net/perl5/index.cgi?events_2011_linuxtag_berlin eintragen. Es wäre toll, wenn sich viele Helfer finden. Dann wird es für alle ein schöneres Erlebnis.

Monday, January 31, 2011

Ausgabe Nr 17 des Perl-Magazins "$foo" ist da!

Ein neues Jahr beginnt und auch das Perl-Magazin (http://perl-magazin.de) ist wieder da. Mit der 17. Ausgabe gehen wir in das 5. Jahr von "$foo".

Die Hefte für Abonnenten gehen morgen früh mit der Post raus...


Inhalt dieser Ausgabe:

* JMX4Perl

Um auf Java EE Management Server Interfaces mit zugreifen zu können, gibt es das Modul jmx4perl. Das Modul setzt einen Agentenbasiertern Ansatz um. Dr. Roland Huß berichtet in diesem Artikel, wie man das Modul in eigenen Programmen einsetzen kann.

* Perl und SVG

SVG ist vielleicht nicht die Neuigkeit schlechthin, aber es ist immer wieder sehr nützlich und gut. Dieser Artikel zeigt, wie mit Perl und verschiedenen Modulen - auch unter Perl 6 - SVG-Graphiken erstellt und verändert werden können.

* OTRS-Community-Meetings

Die Community spielt bei der Software OTRS, die komplett in Perl geschrieben ist, eine immer wichtigere Rolle. Alexander Halle berichtet vom ersten OTRS Community Meeting und lädt zum zweiten Treffen ein.

* In HTML5 eintauchen mit WebSockets und Perl

Die nächste Generation von HTML steht vor der Tür. Welche Möglichkeiten WebSockets bieten und wie man solche WebSockets mit Perl benutzen kann, beschreibt Viacheslav Tykhanovskyi in seinem Artikel.

* Was ist neu in Perl 5.14

Im April wird es das nächste stabile Release von Perl geben - Perl 5.14. Seit Perl 5.12.x hat sich wieder einiges getan. Die wichtigsten und spannendsten Änderungen werden in diesem Artikel gezeigt.

* WxPerl Tutorial VI - Menüs, Toolbars, ...

Seit Jahrzehnten verstehen Entwickler unter Applikationen Programme für Endanwender mit graphischer Oberfläche. Diese Folge widmet sich den Teilen, die bisher dazu fehlten: Menü, Werkzeugleiste, Statuszeilen sowie Tastatur und Mauseingaben.

* Moose Tutorial III - Vererbung

Nachdem in den letzten beiden Ausgaben die Themen "Attribute" und "Methoden" behandelt wurden, ist in dieser Ausgabe das Thema "Vererbung" an der Reihe. In der nächsten Ausgabe werden dann "Rollen" besprochen. Einige Programmierer bevorzugen "Rollen" gegenüber der "Vererbung". Beides hat seine Daseinsberechtigung.

* Rezension "Effective Perl Programming"

Thomas Kappler hat das Buch "Effective Perl Programming" gelesen und gibt einen Einblick in das Buch.

* Rezension Bücher zur IT-Geschichte

Gleich über zwei Bücher berichtet Herbert Breunung: "Coding for Fun" und "Computergeschichte(n)-nicht nur für Geeks", die beide im Galileo-Verlag erschienen sind.

* HowTo: Parallel::Iterator

In diesem Artikel zeigt Thomas Fahle, wie man mit Parallel::Iterator mehrere Aufgaben parallel erledigen kann.

* Verschiedenes

Auch in dieser Ausgabe gibt es wieder die Neuvorstellung von 6 CPAN-Modulen, Neues von der TPF und Termine

Saturday, January 29, 2011

Vortrag auf den Chemnitzer LinuxTagen

So langsam muss ich planen, auf welchen Veranstaltungen 2011 ich teilnehmen will. Es gibt ja jede Menge Möglichkeiten. Ich werde auf jeden Fall nach Chemnitz auf die LinuxTage fahren, denn ich werde dort auch einen Vortrag halten - über Perl::Critic.

Dazu muss ich meinen alten Perl::Critic-Vortrag nochmal überarbeiten...

Ich würde mich freuen, wenn viele Leute nach Chemnitz kommen.

Friday, January 07, 2011

Pod::Simple::XHTML und Pod in UTF-8

Ich bin fast fertig mit der ersten Runde beim Versuch $foo auch als epub zu generieren. Die Ergebnisse sehen auch schon einigermaßen gut aus. Innerhalb des Umwandlungsprozesses benutze ich Pod::Simple::XHTML und die Artikel liegen in Pod vor - gespeichert als UTF-8.

Der Parser wurde bisher so benutzt:

my $parser = Pod::Simple::XHTML->new;
$parser->parse_file( 'article.pod' );

So kam dann aber "Müll" bei den Umlauten raus. Der Doctype und die charset-Angabe im Metatag waren korrekterweise auf UTF-8 gestellt.

Ein Blick in den Code von Pod::Simple::XHTML hat gezeigt, dass der Text durch HTML::Entities::encode_entities läuft. Also musste hier etwas schieflaufen.

In der Doku von HTML::Entities nichts bezüglich UTF-8 gefunden. Also schnell ein Testskript geschrieben und folgendes festgestellt:

use HTML::Entities;
my $text;
{
local $/;
open my $fh, '<', 'article.pod'; $text = <$fh>;
close $fh;
}

print encode_entities( $text );

bringt falsch Entities. Ein

use HTML::Entities;
my $text;
{
local $/;
open my $fh, '<', 'article.pod'; binmode ":encoding(utf-8)"; $text = <$fh>;
close $fh;
}

print encode_entities( $text );

funktioniert. Ich muss also den IO-Layer nehmen, damit die Perl die Datei gleich als UTF-8 einliest (über IO-Layer habe ich hier mal was Kurzes geschrieben).

Also liegt das Problem nicht bei HTML::Entities. Aber wie kann ich Pod::Simple::XHTML sagen, dass die Text UTF-8 sind? In der Doku nichts gefunden. Nachgeschaut, wie die Datei beim parse_file geöffnet wird. Heraus kam

{
local *PODSOURCE;
open(PODSOURCE, "<$source") || Carp::croak("Can't open $source: $!"); $self->{'source_filename'} = $source;
$source = *PODSOURCE{IO};
}

Also nix mit IO-Layern und auch die 2-arg-Form von open (siehe auch diesen Blogpost).

Bei Pod::Simple ist es so, dass auch neuere Releases rückwärtskompatibel gehalten werden bis pre-5.8. Da funktioniert das mit den IO-Layern nicht. So geht das also nicht.

Was aber Pod::Simple unterstützt ist parse_file( *FILEHANDLE ). Also setze ich das jetzt so ein:

open my $pod_fh, '<:encoding(utf-8)', 'article.pod' or die $!; my $parser = Pod::Simple::XHTML->new;
$parser->parse_file( $pod_fh );

Saturday, January 01, 2011

Neues Unternehmen

Gestern war der letzte Tag von Smart-Websolutions Windolph und Bäcker GbR. Aus zeitlichen Gründen ist mein Kompagnon ausgestiegen. Da ich weiter als selbständiger arbeiten will und auch das Perl-Magazin weiterführe, habe ich ein neues Unternehmen angemeldet. Dazu gibt es auch eine neue Webseite: Perl-Services.de

$foo wird es also auch weiterhin geben und ich werde weiterhin sehr viel mit Perl zu tun haben ;-)

planet.perl-magazin.de

Der Vorschlag eines Aggregators deutschsprachiger Perl-Blogs wurde schon vor längerer bei den Frankfurt Perlmongers diskutiert. Gestern habe ich mich dann mal hingesetzt, Perlanet installiert und eingerichtet.

Perlanet braucht HTML::Tidy, was widerum tidyp braucht. Auf meinem Server gibt es das nicht als Paket, also musste ich mir das selbst bauen. Danach klappte die Installation von Perlanet und HTML::Tidy einwandfrei.

Das Ding ist schnell konfiguriert. Dann noch Cronjob eingerichtet, der momentan alle Stunde läuft - und schon steht planet.perl-magazin.de.

Dort gibt's auch die Liste mit den eingebundenen Blogs. Falls noch etwas fehlt, dann bitte Bescheid geben.