Abstracts

01.03.2006

Higher Order Perl
VortragenderMaximilian Maischein
Typ/DauerTutorial
Zusammenfassung
=head1 Was ist Perl Höherer Ordnung ?

"Higher Order Perl" ist ein Buch von Mark Jason Dominus
(2005), in dem er sehr interessante Programmiertechniken

erläutert.

"Ein echter Fortran Programmierer
 programmiert Fortran in jeder Sprache"

Eine harte Aussage, aber einen gewissen Dialekt
behält man von jeder Sprache, die man lernt.

Perl steht in der Tradition von "C" und "*sh"
(und "sed" und "awk"), bzw.
wurde durch Programmierer gelehrt, die
selber Programmieren in "sed" und "awk"
(und "C" und "*sh") gelernt haben.

Wenn man einen Blick über diesen Tellerrand wirft,
und Perl und C mit Lisp vergleicht, so fällt auf,
daß Perl viel mehr Features mit Lisp gemein hat
als C:

=head2 Vergleich mit Lisp

Perl und Lisp haben viel mehr gemeinsam
als Perl und C :

  * Automatische Speicherverwaltung
  * Dynamischer Zugriff auf die Symboltabelle
  * Der gesamte Sprachumfang ist immer vorhanden ("eval")
  * Funktionen als Werte erster Klasse

Lisp-Programmierer verwenden diese Features eit 1957,
und hatten also genug Zeit herauszufinden, welche
Techniken funktionieren und welche nicht.

"Lisp has the visual appeal of fingernail clippings
 in oatmeal" -- Larry Wall

Niemand möchte aber Lisp-Programmierern zuhören - sie sind
sehr überzeugt von ihrer Programmiersprache und halten damit
auch nicht hinterm Berg. Mark Jason Dominus hat sich mit
den Themen ausführlich beschäftigt und zeigt, wie
man Lisp-artige Techniken in Perl verwenden kann.

=head1 Überblick

Drei der Features, die Perl und Lisp gemeinsam haben,
werden genauer betrachtet:

* Automatische Speicherverwaltung
  - Fast zu trivial
  - aber nur fast

* Dynamischer Zugriff auf die Symboltabelle
  - Ein Cache-Mechanismus, der ohne Änderung des Codes auskommt

* Funktionen als Werte erster Klasse
  - map, grep
  - Callbacks
  - Iteratoren
  - unendliche Listen

=head1 Zielgruppe

Da Tutorial wendet sich an fortgeschrittene Programmierer,
aber nicht unbedingt Perl-Gurus.
Kenntnis der Kontrollstrukturen von Perl sowie
grundsätzliche Erfahrung mit Referenzen und anonymen
Datenstrukturen sind notwendig:

  my $years = [ 2001, 2002, 2003, 2004, 2005, 2006 ];
  my $hash_ref = { gpw => 'Deutscher Perl Workshop' };

Erfahrung in der Entwicklung komplexeren Codes ist
auch hilfreich. Rekursion sollte eine bekannte
Programmiertechnik sein, Callbacks und Iteratoren
werden anhand von Beispielen eingeführt.

Die Inhalte orientieren sich eng an Mark Jason Dominus'
Buch "Higher Order Perl" (Morgan Kaufmann, 2005),
das Buch ist aber nicht Voraussetzung.

                
Parrot Spezialitäten
VortragenderLeo Toetsch
Typ/DauerLangvortrag (40 min)
Zusammenfassung
Parrot ist eine virtuelle Maschine (VM), eine Software-CPU,
maßgeschneidert für die Ausführung dynamischer Sprachen wie
Perl6.

Nach einer Einführung in die Struktur von Parrot zeigt
dieser Vortrag die herausragenden Eigenschaften von Parrot,
wie direkte Unterstützung von objekt-orientierten
Hochsprachen, Unicode-Zeichenketten, Continuations,
Serialisierung von Objekten und mehr. Schließlich folgt ein
Vergleich der maximalen Programmausführungsgeschwindigkeit
mit Perl5 oder Python.
                
Perl und Unicode (wahlweise: Perl und UTF-8 oder Perl und Encodings)
VortragenderSlaven Rezic
Typ/DauerLangvortrag (40 min)
Zusammenfassung
Perl 5.8.x hat inzwischen eine brauchbare Unicode-Unterstützung
bekommen. Trotzdem ist die Arbeit damit alles andere als intuitiv und
sogar Experten werden immer wieder von Unwägbarkeiten überrascht. Der
Vortrag wird Hilfe zur Selbsthilfe bei Unicode-Problemen bieten und
Hinweise zur Benutzung von Unicode in populären Modulen wie DBI, Tk,
HTML::*, CGI, XML::* geben.
                
HTML::Template::Compiled - Yet another Template System
VortragenderTina Müller
Typ/DauerLightning Talk (5 min)
Zusammenfassung
Ich werde kurz auf die Gründe eingehen, warum ich das Modul
geschrieben habe und zeigen, warum es sich manchmal doch lohnt, das
Rad neu zu erfinden.
                
Perl Hoch Drei
VortragenderMaximilian Maischein
Typ/DauerLightning Talk (5 min)
Zusammenfassung
In diesem Lightning-Talk stelle ich vor, was mit Perl und OpenGL so
alles möglich ist:

* OpenGL-Hardware Unterstützung
* Möglichkeiten mit OpenGL:
  - Spiegelungen
  - Texturen
  - Beleuchtungseffekte
* Das Modul OpenGL::Simple
* Live Demos
* Literatur

---

Wenn es in den Plan passt, kann ich daraus auch noch einen Kurz-Talk
(20 Minuten) machen. Bisher habe ich nur den Code geschrieben und
keinen Talk dazu, deswegen ist das Abstract auch eher knapp.
                
Language::Prolog::Yaswi
VortragenderSteffen Schwigon
Typ/DauerLightning Talk (5 min)
Zusammenfassung
Nicht, dass es mein Lieblingsmodul wäre, aber ich zeige kurz, wie man
das Modul Language::Prolog::Yaswi verwenden kann und ein einfaches
Beispiel, wofür sich die Einbindung von Prolog lohnt.
                
Was stimmt mit Parrot und Perl 6 nicht?
VortragenderMarc Lehmann
Typ/DauerMittlerer Vortrag (30 Min.)
Zusammenfassung
- Welche Design-Probleme hat Parrot, welche Perl6 (welches Design hat
  Perl6 überhaupt?)
  - Welche Design-Entscheidungen führen zu schlechteren Programmen.
  - Warum Parrot langsamer ist, wenn man Perl als Perl benutzt.
- Wohin führt der Weg (Ziele von Perl6/Historie)
- Was hat Perl6 mit Perl[12345] zu tun?
- Welche Ziele sind überhaupt verwirklichbar, welche sind Fantasie?
- (teilweise lustige) Beispiele für Fehlentwicklungen.
- Warum Perl 6 zur Zeit mehr schadet als nützt.
                

02.03.2006

VeraCG - A Verification Application with Configurable GUI
VortragenderGerhard Petrowitsch
Typ/DauerLangvortrag (40 min)
Zusammenfassung
VeraCG - A Verification Application with Configurable GUI  
(trotz des Titels wuerde ich den Vortrag eigentlich lieber in 
Deutsch halten).

VeraCG ist eine Perl- bzw. Perl/Tk Application, die ich 
geschrieben habe und die in unserer Firma (Philips 
Semiconductors GmbH, Starnberg) dazu benutzt wird, die 
Verification neuer ASICs (Chips), die wir dort designen, 
einfach, nachvollziehbar und gut dokumentiert durchzufuehren.
Verification heisst in diesem Fall, dass Muster eines neu 
entwickelten Chips, auf Herz und Nieren ueberprueft werden, 
ob sie all das tun was die Hardware-Entwickler so reingepackt haben.

VeraCG parst dazu sogenannte test case configuration (TCC) 
files, die in einer einfachen Syntax GUI-Elemente wie 
Buttons, Checkbuttons, Scales etc.
erzeugen und damit mehr oder weniger einfache Perl-Snippets 
ausfuehren, welche wiederum den Chip ueber ein 
Hardware-Interface steuern.

Darueberhinaus wird in einem Teil der Oberflaeche eine vom 
Autor des Testcases erzeugte Doku angezeigt (die er in einem 
Subset von HTML formuliert). Diese Doku soll den Benutzer des 
Testcases durch denselben fuehren und ihm mitteilen, wie der 
Chip auf bestimmte Ereignisse reagieren soll.

Perl ist hier aus mehreren Gruenden eine gute Wahl:
1. Viele ASIC-Designer koennen ganz gut Perl (wobei fuer VeraCG ein
   recht niedriger Perl-Experience-Level ausreicht)
2. Da Perl das eval-Statement hat, kann man sehr einfach zur
   Laufzeit Code snippets der User ausfuehren.
3. Durch die Moeglichkeit, das GUI zur Laufzeit aufzubauen, koennen
   Designer sehr einfach Test-Cases mit GUI bauen, ohne gross Kenntnisse
   in Perl/Tk zu benoetigen
4. Durch die Moeglichkeit C-Module anzusprechen hat man einen
   einfachen Weg den Chip ueber einen Hardware-Treiber anzusprechen,
   der z.B. einen seriellen I2C-Bus bedient.

Da die meisten Perlies Software-Leute sind, wir dies ein Langvortrag
werden, da man etliche Sachen erklaeren muss, die fuer einen Hardware-Fuzzy 
selbstverstaendlich sind. Ich hoffe, dass auch das, was ein
Hardware-Guy wie ich programmiert, die Software-Cracks interessiert
oder gar beeindruckt.

                
Project Lancelot: Auf in den Kampf gegen die Drachen der Mailinglisten-Verwaltung
VortragenderAnselm Lingnau
Typ/DauerLangvortrag (40 min)
Zusammenfassung
Die effiziente Verwaltung von Mailinglisten bleibt ein Problem -- die
meisten existierenden Lösungen sind unflexibel, riesengroß, an
bestimmte MTAs gekoppelt oder eine Kombination davon. Project Lancelot
ist ein neues freies, in Perl geschriebenes Programmpaket, das
versucht, auf der Basis eines einfachen Workflow-Mechanismus und einer
anpassungsfähigen Datenhaltung eine Mailinglistenverwaltung zu
realisieren, die vor allem überschaubar, an verschiedene Anforderungen
anpaßbar und verständlich ist.  Der Vortrag gibt einen Einblick in die
Entwurfsziele von Project Lancelot, zeigt die Softwarearchitektur und
beschreibt den aktuellen Entwicklungsstand sowie die künftigen Pläne
des Entwicklerteams.
                
Learning Haskell
VortragenderAudrey Tang
Typ/DauerKurzvortrag (20min)
Zusammenfassung
What's faster than C++, more concise than Perl, more regular than
Python, more flexible than Ruby, more typeful than C#, more robust
than Java, and has absolutely nothing in common with PHP? It's
Haskell!

Tired of writing unit tests to cover corner cases? Let the computer
write it for you with QuickCheck. Find regex-based parsing
unmaintainable? Learn how to write a complete parser for Perl 6's
grammar in 15 minutes with Parsec. Stuck in deadlocks and race
conditions? STM solves all your concurrency woes. XS and SWIG gives
you headaches? FFI lets you embed C code quickly and safely.

Haskell is an emerging general-purpose functional language, with
unique features that enable extremely rapid development of bug-free,
concise, and maintainable code. This talk shows how to apply Haskell
to day-to-day tasks, tips for integrating it with other languages, and
secrets for boosting your productivity by an order of magnitude.
                
XIMS Web Content Management System
VortragenderMichael Kröll
Typ/DauerKurzvortrag (20min)
Zusammenfassung
XIMS (http://xims.info/) is ein web-basiertes Open Source Content
Management system. XIMS bietet neben einem rekursiven Rollen- und
flexiblem Rechtevergabesystem auf Objektebene, bietet es die
Möglichkeit sowohl Inhalte als auch die Verwaltungsoberfläche mit
XSL-Stylesheets anzupassen ("skinnen"). Benutzerdefinierte Objekttypen
ermöglichen eine einfache Erweiterbarkeit des Systems.  Dieser Talk
gibt einen kurzen Überblick über das Projekt und dessen
OO-Perl/XML/(Oracle|Pg) Implementierung.

                
Browser-Transfers überwachen mit Sniffer::HTTP
VortragenderMaximilian Maischein
Typ/DauerKurzvortrag (20min)
Zusammenfassung
Ethereal bzw. Net::PCap können den TCP-Verkehr einer
Netzwerkverbindung mitschneiden. Sniffer::HTTP ist ein Modul von mir,
welches aus diesem TCP-Datenstrom wieder HTTP::Request und
HTTP::Response-Objekte herstellt. Damit kann man:

  * Den eigenen Browser überwachen, insbesondere Flash- und Java Applets
  * Den Datenverkehr gezielt mitschneiden

Sniffer::HTTP ist damit eine Alternative zu Browsererweiterungen wie
FireFox Live HTTP Headers oder Perl Modulen wie HTTP::Proxy.

Es werden (kurz) die Risiken und Negativanzeigen betrachtet:
  * Datenschutz
  * XS Code, libpcap
  * Testen / Überwachen von Programmen

Und auch die Positivanzeigen:
  * Testen / Überwachen von Programmen
  * Verdoppeln des Datenstroms bzw. Replay auf einen zweiten Server

Der Talk ist eigentlich auf 10 Minuten konzipiert - zu lang für einen
Lightning Talk, zu kurz für einen 20 Minuten Talk. Für den 20 Minuten
Slot würde ich noch einen (kurzen) Überblick über die Protokoll-Layer
(Ethernet->IP->TCP->HTTP) geben.

Eine erste Version dieses Talks wurde im November auf dem Frankfurt.pm
Treffen gehalten und ist unter
http://datenzoo.de/pub/sniffer-http/sniffer-http.html zu finden.
                
HTTP::Server::Simple
VortragenderMaximilian Maischein
Typ/DauerKurzvortrag (20min)
Zusammenfassung
HTTP::Server::Simple ist ein stand-alone Webserver in Perl, der sich
sehr gut dazu eignet, um "mal schnell" einer Anwendung ein
Web-Frontend zu verpassen. In dem Talk wird das Modul vorgestellt, die
Anwendungsgebiete (und nicht-Anwendungsgebiete) vorgestellt und ein
kleines Web-Frontend für einen Shell Aufruf entwickelt.

 * HTTP::Server::Simple ist ein Webserver, der keine weitere Konfiguration braucht
 * Der Perl-Code wird direkt im Server eingebettet
 * Kwiki, Maypole und andere Web-Frameworks laufen damit
 * Ein Frontend für beliebige Aufgaben kann schnell erstellt werden.

Eine erste Version des Talks wurde im November auf dem Frankfurt.pm
Meeting probegehalten, der Talk ist unter
http://datenzoo.de/pub/http-server-simple/http-server-simple.pl
online.
                
Ajax mit Perl
VortragenderSteffen Schwigon
Typ/DauerKurzvortrag (20min)
Zusammenfassung
Ich zeige, wie man Ajax-Technologie in ein Perl-Projekt integrieren
kann. Der Vortrag umfasst die Javascript-Client-Seite mit typischen
Hürden wie Asynchronität und Closures und ich erläutere paar
CPAN-Module, die man auf der Perl-Server-Seite gut verwenden kann.
                
TWiki Plugins selbst gemacht
VortragenderSusanne Ruppel
Typ/DauerMittlerer Vortrag (30 Min.)
Zusammenfassung
Wikis haben sich als praktische Helferlein im Web und Intranet
bewährt - mit wenig Grundkenntnissen steht dem Anwender nichts im Weg,
Informationen schnell und plattformunabhängig zu speichern und
auszutauschen.  In diesem Vortrag wird die Perl-basierte Wiki-Engine
TWiki und deren API vorgestellt. Der Zuhörer erfährt anhand eines
Beispiels, wie er sich TWiki passend machen kann.
                
Visual Basic Rocks!
VortragenderAudrey Tang
Typ/DauerLightning Talk (5 min)
Zusammenfassung
In the Open Source world, VB has long been held in disdain and
contempt. However, ever since the VB team was infiltrated by lambda
ninjas, it took a strange turn and introduces some mind-bendingly
advanced concepts not found in free dynamic languages. You'll
have to see it to believe it!
                
Tree::Simple::View::DHTML
VortragenderJürgen Christoffel
Typ/DauerLightning Talk (5 min)
Zusammenfassung
Tree::Simple::View::DHTML ist eine Klasse die Tree::Simple ergänzt, um
die Objekte des Baumes mittels DHTML auszugeben. Es wird normales HTML
erzeugt, dass mit CSS und Javascript kombiniert wird, um einen
dynamisch auf- und zuklappbaren Baum auf Webseiten darzustellen.
                
LWP::Authen::Negotiate - a GSSAPI based Authentication Plugin for LWP.
VortragenderAchim Grolms
Typ/DauerLightning Talk (5 min)
Zusammenfassung
Since Windows 2000 a Windows domain controller (DC) is able to act as
Kerberos "Key Distribution Center" (KDC). This makes kerberized
applications able to authenticate against a Windows domain via
Kerberos. Using mod_auth_kerb the Apache webserver is able to use
Windows domains as user database and to do authentication not only via
basicauth but also via SPNEGO Kerberos. That means the browser does
not send username/password to the webserver but a Kerberos ticket
instead. See
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsecure/html/http-sso-1.asp
for a more technical description.


Benefits of SPNEGO Kerberos authentication:

User has to type his password only once (when logging into his Windows
Machine) No password is sent to the webserver. Instead the browser
sends a service ticket that is checked by the webserver

Browsers that can use that GSSAPI based Authentication are

- Internet Explorer
- KDE Konqueror
- Mozilla Firefox
- Lynx

Now by use of LWP::Authen::Negotiate LWP::UserAgent can use that
WWW-Negotiate scheme too and is able to do authentications to
Webservers via GSSAPI.

WWW-Negotiate supporting Webservers are Microsoft IIS or Apache with
mod_auth_kerb for example.

usage example:

 #! /usr/bin/perl -w
   use strict;
   require LWP::UserAgent;
   # uncomment if you want see what is going wrong messages
   #
   #use LWP::Debug qw(+);
   my $ua = LWP::UserAgent->new;
   my $response = $ua->get('http://testwurst.grolmsnet.lan:8090/geheim/');
   if ($response->is_success) {
      print $response->content;  # or whatever
   }
   else {
       die $response->status_line;
   }
   
The actual version is available at CPAN
http://search.cpan.org/search?query=LWP-Authen-Negotiate&mode=all

Further readings:

http://perlgssapi.sourceforge.net/
(Project homepage)

http://www.grolmsnet.de/kerbtut/
(Integration of Apache + mod_auth_kerb into Windows2000/2003
authentication structure)
                
CPANTS
VortragenderThomas Klausner
Typ/DauerLightning Talk (5 min)
Zusammenfassung
CPAN Testing Service - Neuigkeiten
                
Rxvt-Unicode: jetzt mit Mega-Perl!
VortragenderMarc Lehmann
Typ/DauerKurzvortrag (20min)
Zusammenfassung
Seit Anfang des Jahres besitzt der X11 Terminal-Emulator
"Rxvt-Unicode" einen eingebetteten Perl-Interpreter.

Dieser wird jetzt schon benutzt, um z.B. die Selection intelligenter
zu gestalten, um mehrere Terminals durch Reiter zu kombinieren,
Popup-Menüs zu implementieren, Text zu formatieren, den
Scrollback-Puffer durchsuchbar zu machen, OnTheSpot-Editing für
Eingabemethoden zu implementieren und vieles, vieles mehr.

Dies erfüllt meinen lang gehegten Traum, meine Hauptschnittstelle zum
Rechner noch besser anpassen zu können.

In meinem Lighting-Talk möchte ich kurz ein paar Codebeispiele
erläutern, die Geschmack auf Terminal-"Programmierung" machen sollen.
                
Perl 6, genau jetzt!
VortragenderFlorian Ragwitz
Typ/DauerLangvortrag (40 min)
Zusammenfassung
Ziel des Vortrags ist es dem Teilnehmer zunaechst mit den aktuellen
Entwicklungen um Perl 6 vertraut zu machen, die Grundzuege der
Sprache, und insbesondere die Unterschiede zu Perl 5 aufzuzeigen und
im Anschluss gemeinsam eigene Module der Teilnehmer, oder bei Bedarf
auch anderen Code, von Perl 5 auf Perl 6 zu portieren und die
Ergebnisse anschliessend in die Modulkollektion im SVN Baum von Pugs
einzugliedern.
                
Introduction to Pugs
VortragenderAudrey "autrijus" Tang
Typ/DauerLangvortrag (40 min)
Zusammenfassung
Started in February 2005, Pugs is an implementation of the Perl 6
language that contains an interpreter based on Haskell and a compiler
that targets multiple backends, including Parrot and Haskell.

In this talk, Pugs author Autrijus Tang presents the design of Pugs
and the current state of the project. This talk also covers ways to
put Pugs to immediate practical use and the roadmap for future
development of Pugs and Perl 6.
                
Key Signing Party
VortragenderJürgen Christoffel
Typ/DauerBOF (variabel)
Zusammenfassung
Wenn wirklich noch Zeit übrig ist, ich wollte schon seit Jahren auf
dem Perl-Workshop eine "Key Signing Party" machen, allerdings dachte
ich, dass in einen BOF zu quetschen, so groß wird das Interesse ja
vielleicht nicht sein ...

                

03.03.2006

Perl::AI
VortragenderRenee Bäcker
Typ/DauerLangvortrag (40 min)
Zusammenfassung
Künstliche Intelligenz ist in aller Munde, aber nicht nur in der
Robotik mit dem Sony-Roboter ist künstliche Intelligenz gefragt,
sondern in vielen anderen Gebieten auch.

Perl bietet sehr vielfaeltige Moeglichkeiten kuenstliche Intelligenz
zu nutzen und zu erzeugen. Ich moechte an zwei kleinen Beispielen
zeigen, wie "kuenstliche Intelligenz" mit Perl geschaffen wird.

*) Die Funktionale Programmierung bietet einige Vorteile gegenueber
der Prozeduralen Programmierung. In der logischen Programierung werden
funktionale Beziehungen zu Prädikatenlogischen Ausdrücken erweitert
und eignet sich so

hervorragend zur Wissensgewinnung. Perl bietet mit dem Modul
AI::Prolog und Language::Prolog::YASWI zwei einfache Möglichkeiten mit
Prolog zu arbeiten...

*) Neuronale Netze sind bekannt fuer die Effizienz und Komplexitaet im
Bereich der kuenstlichen Intelligenz. Mit AI::NNFlex gibt es ein
Modul, mit dem sich sehr einfach Neuronale Netze trainieren lassen...
                
Perl und Debian GNU/Linux
VortragenderFlorian Ragwitz
Typ/DauerMittlerer Vortrag (30 Min.)
Zusammenfassung
Die Linux Distribution Debian liefert bereits sehr viele CPAN Module
und andere Perl Erweiterungen mit. Dennoch steht man als Debian
Benutzer haeufig vor dem Problem ein bestimmtes Modul zu benoetigen,
welches noch nicht im Paketpool von Debian vorhanden ist. Im Vortrag
soll unter anderem erlaeutert werden, wie man mit solchen und
aehnlichen Situationen umgeht, ohne gleich zur CPAN shell greifen zu
muessen umd Module zu installieren, von denen die Paketverwaltung
nichts weiss, was zu schwer auszumachenden Problemen fuehren
kann. Desweiteren wird auf diverse Gruppierungen in Debian, welche
sich mit der Sprache Perl beschaeftigen, eingegangen und gezeigt, wie
man zu selbigen beitragen kann.

Desweiteren ist ein Ausblick auf SixPan, das CPAN fuer Perl 6,
moeglich, welches viele Gemeinsamkeiten mit der aktuellen Debian
Paketverwaltung haben wird, denkbar.
                
Ereignisgesteuerte Programmierung
VortragenderMarc Lehmann
Typ/DauerLangvortrag (40 min)
Zusammenfassung
- Wie programmiert man "ereignisgesteuert"
- Welche wenigen Dinge muss ich als Modul-Autor beachten, damit meine Module
  - einfach blockierend benutzt werden können.
  - parallelisiert werden können.
  - unter verschiedenen GUI-Toolkits o.ä. funktionieren.
- Welche Event-Module gibt es (Event, Qt, Gtk, Tk usw.)
- Welche Alternativen gibt es (Threads, Coro), und welche Vor-/Nachteile
  haben diese.
- Inwiefern sind verschiedene Systeme kompatibel oder kompatibel zu machen
  - welche Workarounds gibt es für unkooperative Module (AnyEvent, Glib::Event ...)

Anders als viele meiner anderen Vorträge gehts hier nicht um ein
bestimmtes Modul, sondern um allgemeine Probleme und Lösungen: Was
macht ein gutes/flexibles design/API aus, wie umschifft man
Praxisprobleme.
                
Using Use
VortragenderThomas Klausner
Typ/DauerLangvortrag (40 min)
Zusammenfassung
Perl waere eine recht langweilige und wenig nutzliche Sprache gaebe es
nicht die nette kleine Funktion "use". Und obwohl "use" eigentlich
recht einfach und simple zu sein scheint ("use Some::Module"), kann es
ein sehr maechtiges Werkzeug sein, wenn man es entsprechend einsetzt.

Wir werden sehr genau unter die Lupe nehmen, was waehrend eines
einfache "use Some::Module" passiert:

* Compile Time vs. Run Time
* Umwandlung Modulename in Filename
* %INC
* @INC

Ausserdem werden die verschiedenen Moeglichkeiten behandelt, @INC zu
manipulieren (push, lib, FindBin, ..)

Nach diesen basics wenden wir unsere Aufmerksamkeit dem Code zu, der
verwendet wird, d.h. der "import"-Funktion und verschiedenen
Implementierungen derselben (Exporter, Exporter::*)

Wirklich lustig wirds aber, sobald man selber spezielle
"import"-Funktionen schreibt. Wir werden uns ein paar anschauen.

Wenn es sich ausgeht, koennen wir auch noch Coderefs-in-@INC
behandeln.

Sollte das nicht allzu interessant klingen, ist der Vortrag aber schon
allein deshalb hoerenswert, weil man mir beim zungenbrechenden
Versuch, "Waak::Gorshle" zu sagen, zuschauen kann. (Der Vortrag ist
100% 'foo'-frei)
                
Embperl::Form - Sophisticated Webforms
VortragenderGerald Richter
Typ/DauerLangvortrag (40 min)
Zusammenfassung
Embperl::Form ist ein neues Framework, welches es erlaubt auf einfache
Art und Weise anspruchsvolle Webformulare zu erstellen. Es ist
komplett objekt-orientiert aufgebaut und damit leicht zu erweitern.

Out of the box, bietet es neben den Standardcontrols wie
Eingabefeldern, Radio- und Checkboxen, sowie Selectboxen,
kompliziertere Controls wie Tabbed Dialoge und Grids. Natürlich
kümmert sich Embperl::Form auch um Layout, Datenbeschaffung und
Eingabevalidierung.

Der Vortrag zeigt anhand konkreter Beispiele den Einsatz und die
Anwendung von Embperl::Form, sowie das Erstellen von eigenen
Erweiterungen.
                
Objektorientiertes Perl bei automatischen GUI-Tests unter Windows
VortragenderPhilip Zembrod
Typ/DauerKurzvortrag (20min)
Zusammenfassung
Die Automatisierung von Softwaretests auf GUI-Ebene greift in der
Regel auf sogenannte Capture-Replay-Tools zurück, die in einer meist
proprietären Skriptsprache programmiert werden. Im hier beschriebenen
Fall war das Tool Rational Visual Test, dessen Skriptsprache eine
VB4-Variante ist. Die Grenzen dieser Sprache wurden im Laufe des
Projektes wiederholt schmerzlich spürbar.

Zur Überwindung dieser Grenzen wurde ins Visual Test ein
Perl-Interpreter eingebettet, dessen Aufgabe in erster Linie die
objektorientierte Speicherung von Testdaten war. Diese Arbeitsteilung
– Visual Test für's Bedienen der Controls der zu testenden
Clients, Perl für die Datenhaltung und Datenbankanbindung –
bewährte sich zunächst.

Später entstand auch beim Bedienen der Controls Bedarf nach
OOP. Deshalb wurde die Ansteuerung von Win32-Standardcontrols mit
Perl, XS und C neu implementiert und die Basis dafür gelegt, sich von
Visual Test zu lösen und ganz auf Perl zu setzen. (Dies geschah
unabhängig von und zunächst auch ohne Kenntnis des Moduls
Win32::GuiTest.) Auch beim Ansteuern von Controls erwies sich OO-Perl
als Erfolgsmodell.

Derzeit wird Visual Test aus unserem Projekt hinausmigriert. Die
Hälfte aller Testcases sind bereits reines Perl, die übrigen befinden
sich in der Umstellung.

Der Vortrag wird u.a. folgende Themen behandeln:
- Einbettung von ActivePerl via PerlEz.dll und Realisierung von
  OO-Aufrufen über eine reine Stringschnittstelle, mit Strings als
  Objekthandles, einschließlich Debugging des eingebetteten Perls.
- Ein Generator, der anhand von Quelltexten der getesteten Applikation
  Test-Geschäftsklassen erzeugt und anpaßt.
- Ansteuerung von Common und Custom Controls in Perl mit
  C-Unterstützung via XS.
- Wie Perl das Debugging automatischer Tests erleichtert.
- Der Wert des vollständigen OO-Ansatzes in der GUI-Test-Automatisierung.
- Welche Eigenschaften Perl zu einer idealen Sprache für die
  Automatisierung von GUI-Tests machen.
                
Success-Story: Metadirectory und Datenynchronisierung
VortragenderMartin Fabiani
Typ/DauerKurzvortrag (20min)
Zusammenfassung
Derzeit entwickle ich für einen Kunden ein Metadirectory mit etwa
160.00 Benutzern mit Schnittstellen zu verschiedenen Systemen
(Personalsysteme, ActiveDirectory, ...). Die Synchronisation findet
groesstenteils mit Perl statt. Leider habe ich vom Kunden noch keine
Antwort, inwieweit ich ins Detail gehen darf; von daher ist die
Vortragszeit noch sehr flexibel (10-30 Minuten)
                
StratSync
VortragenderMartin Fabiani
Typ/DauerKurzvortrag (20min)
Zusammenfassung
In meiner Freizeit entwickle ich ein OpenSource-Synchronisationstool
für verschiedene Formate (LDAP/LDIF, ADSI, DBI, CSV, ...). Es gibt
zwar schon ähnliche Tools (z.B. Siemens DirX Metahub), aber die sind
teilweise echt teuer, für manche Synchronisationsarten nicht flexibel
konfigurierbar genug, und verwenden auch nicht Perl als
Konfigurationssprache ;-)
x) Warum StratSync?
x) Konzept und Aufbau
x) Erklaerung einiger Schnittstellen
x) Aufruf zur Mitentwicklung

                
PCE - Editor in Perl
VortragenderHerbert Breunung
Typ/DauerMittlerer Vortrag (30 Min.)
Zusammenfassung
Ich möchte mein Projekt Vorstellen, kurz auf die verwendeten techniken
eingehen, auch kurz was wir planen, aber Schwerpunkt setzen beim Thema
Perl philosophie und wie das auf einen Editor angewendet
aussieht. Auch was was man für Werkzeuge brauch (besonders bei
Perl-Programmierung) Link: http://proton-ce.sf.net

                
eof