Thursday, October 29, 2009

12. Ausgabe von $foo

Ab heute ist die neue Ausgabe des Perl-Magazins "$foo" (http://perl-magazin.de/) erhältlich. Wie immer können Einzelhefte und/oder Abonnements auf der Webseite bestellt werden.

Inhalt dieser Ausgabe:

* Methoden-Signaturen

Java-Programmierer kennen sie von Anfang an und auch immer Perl-Programmierer wollen sie - die Signaturen bei Methoden.

Dieser Artikel zeigt, wie man auch in seinen Perl-Programmen darauf nicht zu verzichten braucht.

* Modern Art des Profilens

In Ausgabe 3 von $foo hat Mike Schilli schon einen kurzen Artikel über das Profilen von Perl-Code geschrieben.

Den für Optimierungen muss man erstmal wissen, wo man optimieren sollte.

Damals wurden die Module Devel::DProf und Devel::SmallProf kurz angerissen. Mittlerweile gibt es aber einen neuen und besseren Profiler. In diesem Artikel wird Devel::NYTProf vorgestellt.

* Elchtest (Moose)

Rolf Schaufelberger zeigt an Hand eines Beispiels aus der Praxis, wie "Rollen" bei Moose eingesetzt werden. So bekommen Objekte mit nur wenig Code ein ganz neues Verhalten.

* Perl und XML

Gerade als "Schnittstellensprache" wird XML sehr häufig eingesetzt. Und für Perl gibt es etliche Module, um mit XML umzugehen. Der Artikel geht auf drei der Module näher ein und zeigt Vor- und Nachteile der jeweiligen Module.

* DPath ist nicht XPath!

Welche Daten liegen tief in einer Datenstruktur? Muss ich wirklich mit einer Menge Schleifen und Abfragen arbeiten, nur um an die gewünschte Information zu kommen? Steffen Schwigon zeigt in seinem Artikel, wie man mit einer XPath-ähnlichen Abfragesprache Informationen aus Datenstrukturen in Perl bekommt.

* Neue Syntax dank Devel::Declare

Perl kennt kein 'class' und kein 'method' als Schlüsselwort. Was, wenn ich das haben möchte? Mit Devel::Declare können neue Schlüsselworte in die Perl-Syntax eingebracht werden und dieser Artikel zeigt, wie das geht.

* WxPerl-Tutorial (Teil 1)

Viele Computernutzer kennen sich nicht mit Konsolen oder Eingabeaufforderung aus. Schreibt man für sie ein Programm, sollte es eine GUI haben. Herbert Breunung stellt in einem mehrteiligen Tutorial das Framework WxPerl vor.

* Perl Scopes Tutorial - Teil 2

Wann ist eine Variable gültig, wann ist sie sichtbar? Gültigkeitsbereiche sind nicht immer ein leichtes Thema.

Im zweiten Teil des Perl Scopes Tutorials von Ferry Bolhár-Nordenkampf geht es um persistente lexikalische Variablen, lexikalische Variablen in verschachtelten Funktionen und vieles mehr.

* Renzension "Automating System Administration with Perl"

Thomas Fahle hat dieses Buch für uns gelesen. Lesen Sie seine Meinung dazu...

* und vieles mehr...

* Neues vom CPAN
* "Merkwürdigkeiten"
* Neues von TPF
* Win32 Tipps und Tricks

Saturday, October 24, 2009

CPAN-Module auf Github

Ich habe gerade angefangen, meine CPAN-Module auf Github zu stellen. Warum ich das mache? Zum einen, weil der Code für jeden zugänglich sein sollte, jeder relativ einfach damit rumexperimentieren sollte und weil ich mich endlich mal etwas ausführlicher mit Git beschäftigen möchte als ich es bisher getan habe.

Außerdem kann ich so mein eigenes SVN Repository entlasten ;-)

Den Anfang habe ich mit dem Modul Sub::Called gemacht...

Tuesday, October 20, 2009

Marketing Kommitee der Perl-Foundation

Curtis 'Ovid' Poe hat heute im Blog der Perl-Foundation das Marketing Kommitee angekündigt/vorgestellt. Dieses Kommitee soll sich um einige Dinge in Sachen Marketing kümmern:
1. Blog der TPF
2. Design der Webseite
3. Marktforschung
4. Pressemitteilungen
5. News-Artiekl
6. Social networking
Vorsitzender ist Dan Magnuszewski.

Allerdings fehlt meiner Meinung nach etwas in dieser Liste:
Konferenzen
Denn auf Konferenzen wie die OSCON oder FOSDEM können sich Perl und auch Perl-Projekte darstellen und so auch anderen Leuten zeigen, dass Perl eine geniale Sprache ist.

Ich finde das eine ziemlich gute Sache, da Perl in diesem Bereich einiges den anderen Programmiersprachen hinterher hinkt. Schon auf der diesjährigen YAPC::Europe gab es einen Marketing BOF, bei dem einiges besprochen wurde.

Ich bin gespannt, was dieses Kommitee so alles auf die Beine stellt. Ich freue mich schon drauf.

Sunday, October 11, 2009

WxPerl-Workshop im Altmühltal

An diesem Wochenende fand im Altmühltal ein kleiner WxPerl-Workshop statt. Dazu haben sich 11 Teilnehmer getroffen, die etwas über WxPerl lernen wollten. Am Samstag ging es um kurz nach 9 Uhr mit dem Workshop los und an Hand von Code-Beispielen und vielen Erläuterungen begann der Einstieg in die Welt der Plattformunabhängigen GUI-Programmierung.

Im Laufe des Tages stellte sich dann heraus, dass nicht alles ganz so plattformunabhänig ist. So wollten die Macs die Buttons partout nicht in der Höhe verändern - trotz wxEXPAND bzw wxGROW. (Das ist eigentlich dazu da, dass Elemente den ganzen Platz einnehmen, der noch "frei" ist)

Ich habe viel über WxPerl kennengelernt. Wofür ich das brauche? Ich schreibe ein paar kleine private Tools und ich möchte mir Kephra und Padre selbst etwas angenehmer machen. Und ich habe schon damit angefangen. Durch eine kleine Diskussion angestachelt, habe ich schnell ein Skript geschrieben, das in Kephra ganz schnell ein "use Wx ':everything'" durch ein "use Wx qw(wx...)" ersetzt. Das spart Arbeitsspeicher.

In dieser Diskussion wurde auch der Begriff "schwäbisch programmieren" geprägt - bei dem man sparsam mit Arbeitsspeicher umgeht ;-)

Durch das oben genannte Skript werden eben nicht mehr alle Konstanten aus Wx importiert, sondern nur noch die benutzten Konstanten. Das ist noch nicht ganz ausgereift, weil es erstmal nur die Konstanten findet, die mit "wx" anfangen, aber das ist schnell erweitert.

Der Code sieht wie folgt aus:

Auch dieses Bild wurde dank des Workshops auf Knopfdruck aus Kephra heraus erzeugt. Ich hatte endlich Zeit, mein kleines Skript zum "Bild aus Code" generieren in ein Modul umzuwandeln (das ich nächste Woche auf CPAN stellen werde) und auch eine entsprechende Erweiterung für Kephra zu programmieren. Es hat noch zwei, drei kleinere "Macken" und eine ansprechende Konfiguration fehlt noch, aber es ist ein Anfang.

Außerdem hatte ich endlich Zeit, mich mehr mit Kephra auseinanderzusetzen, so dass ich bald noch weitere Erweiterungen machen kann, die mir das Leben einfacher machen - z.B. bei meiner Arbeit bei OTRS. Darüber werde ich dann aber zu gegebener Zeit berichten.

Vielen Dank an Alexander Demmler für die Organisation des Workshops.

Es sind schon Ideen für weitere solcher kleinen Workshops aufgekommen. Workshops in dieser Größenordnung sind sehr gut geeignet, um die Teilnehmer ganz gut kennenzulernen und intensiv in das Thema einzusteigen.

Ich empfand die Teilnehmerrunde als sehr angenehm und das Wochenende war sehr lehrreich. Da haben sich auch die über 2 Stunden Stau bei der Anreise gelohnt.

Auch auf anderem Gebiet war das Wochenende lohnend für mich. Alexander Demmler kennt sich gut im Bereich Druck, Druckvorstufen, Druckvorbereitung aus und da ich ja das Perl-Magazin "$foo" herausbringe, wurden ein paar Tipps ausgetauscht.

Thursday, October 08, 2009

Das Kreuz mit XML::Simple

Im Perl-Forum gab es gerade mal wieder einen Post zu XML::Simple. Der Fragesteller wollte wissen, wie man nach einer Änderung der XML-Daten auf die Inhalte zugreifen kann. Ursprünglich sah es so aus:

<root><receive>
<audiorate>##Network.Advanced.Receive.AudioRate##</audiorate>
<videorate>##Network.Advanced.Receive.VideoRate##</videorate>
</receive>
</root>


Da kann man mit

use XML::Simple;
# ...
my $doc = XMLin( $xml );
print $doc->{receive}->{audiorate};


bequem auf Inhalte zugreifen.

Jetzt hat sich aber wie gesagt das XML geändert:

<root>
<receive item="1">
<audiorate item="1">##Network.Advanced.Receive.AudioRate##</audiorate>
<videorate item="1">##Network.Advanced.Receive.VideoRate##</videorate>
</receive>
<receive item="2">
<audiorate item="2">##Network.Advanced.Receive.AudioRate##</audiorate>
<videorate item="2">##Network.Advanced.Receive.VideoRate##</videorate>
</receive>
</root>


Und schon funktioniert der Code nicht mehr. Ein Riesennachteil an XML::Simple ist, dass man bei Änderungen am XML auch den Code ändern muss.

Bei dem geänderten XML kann man dann so auf die Inhalte zugreifen:

for my $rx_val ( @{$doc->{receive}} ) {
print $rx_val->{audiorate}->{content};
}


Generell empfiehlt es sich, sich die Datenstruktur mal genauer anzuschauen.

#!/usr/bin/perl

use strict;
use warnings;
use XML::Simple;
use Data::Dumper;

my $xml = do { local $/; <data> };
my $doc = XMLin( $xml );

print Dumper $doc;

__DATA__
<root>
<receive item="1">
<audiorate item="1">##Network.Advanced.Receive.AudioRate##</audiorate>
<videorate item="1">##Network.Advanced.Receive.VideoRate##</videorate>
</receive>
<receive item="2">
<audiorate item="2">##Network.Advanced.Receive.AudioRate##</audiorate>
<videorate item="2">##Network.Advanced.Receive.VideoRate##</videorate>
</receive>
</root>


Ich benutze (fast) nur noch XML::LibXML.

Übrigens ist "Perl und XML" ein Thema in der nächsten Ausgabe des Perl-Magazins "$foo", die am 01. November erscheint.

Saturday, October 03, 2009

Perl: Alive and Kicking and Stronger than ever!

Die Perl-Entwicklung ist aktiver als je zuvor: Jesse Vincent hat eine neue Entwickler-Version von Perl 5 veröffentlicht. Damit wird interessierten Perl-Programmierern schon ein Einblick in das gegeben, was die Version Perl 5.12 werden wird.

Es hat sich einiges getan, darunter auch das implizite aktivieren von use strict bei der Verwendung von "use 5.11" - was auch alle anderen neuen Features von Perl 5.11 aktiviert.

Eine Auflistung von Änderungen ist unter http://search.cpan.org/~jesse/perl-5.11.0/pod/perl5110delta.pod zu finden.

Gleichzeitig ändert sich auch der Release-Prozess von Perl 5. In Zukunft wird es an jedem 20. eines Monats ein Perl 5.11.x-Release geben.

chromatic hatte schon vor längerem geschrieben, dass auch Perl 5 regelmäßige Releases haben sollte.

Thursday, October 01, 2009

Perl-Entwickler hoch im Kurs...

Als Perl-Entwickler/in hat man wohl ziemlich gute Chancen auf dem Arbeitsmarkt. In letzter Zeit finde ich wieder vermehrt Job-Angebote im Internet, die ich für das Perl-Communit.de-Forum sammele. Und bei Perl-Nachrichten.de werden auch immer mehr Angebote gepostet...

Und da sind auch Firmen wie XING oder Siemens Healthcare darunter...

Perl: Alive and Kicking and Stronger than ever!
Allen Unternehmen wünsche ich viel Erfolg bei der Suche, denn ich habe ja schon vor über zwei Jahren geschrieben, dass es gar nicht so einfach ist, (gute) Perl-Programmierer zu finden.

Sollten Unternehmen diesen Blog-Post lesen, dann hier noch ein paar Tipps, wo man Stellenangebote veröffentlichen kann:


Überall kostenlos und zumindest bei den beiden letzteren auch ohne Registrierung.

Und natürlich kann man auch Stellenanzeigen im Perl-Magazin "$foo" schalten ;-)

Vielleicht gibt es auch auf dem nächsten Deutschen Perl-Workshop wieder eine Job-Messe.