Yet Another Perl Conference Europe 2001
August 2-4, 2001

Hogeschool Holland
Amsterdam, Netherlands

   YAPC::Europe Home
 Alternative tshirt
 Mailing List



 Call For Participation
 Speaker Bios

 About Amsterdam
 Getting There
 On Campus
 Venue Photos

   Other YAPCs
 YAPC::America 2001
 YAPC::Europe 2000

YAPC Europe

Talks / Proceedings

The following contains the proceedings for most of the talks given at yapc::Europe 2.0.01.


Developing GUI applications with (Slides). by Redvers Davies, Critical Integration Ltd
GTK is a graphical toolkit for building X based Graphical applications (GUIs). The tutorial will help attendees move from the more familiar world of command-line to the world of graphical applications. This tutorial is not for Perl novices.

Disciplined Programming or How To Be Lazy Without Really Trying (Slides). by Michael G Schwern, Just Another Stupid Company
This tutorial will teach attendees how to think about programming as an engineering discipline. Software engineering heuristics and techniques to reduce bugs, risk and stress, as well as improve maintainability will be shown. Above all, it will be made clear that there is a better way. The target audience is programmers who are comfortable with a language and project managers. This tutorial is for people who are having difficulty maintaining quality and flexibility in larger projects, meeting deadlines and staying happy. A working knowledge of a modern programming language (especially Perl) will be helpful.

Introduction to Parse::RecDescent (Slides). by Abigail, Open Solution Providers
This is an introduction to recursive descent parsing (retrieving information about the structure of data) using Parse::RecDescent, which incrementally generates top-down recursive-descent text parsers from simple yacc-like grammar specifications.

Minimal Perl for the Impatient (Slides). by Tim Maher, CONSULTIX
This tutorial will present a carefully selected minimal subset of Perl that gives immediate access to some of its powerful capabilities and serves as a solid foundation for additional learning. The target audience is non-programmers who want to learn simple data processing tasks without learning too much and programmers who already know another language and want to learn just enough Perl to gain access to some of its capabilities.

Object Oriented Programming in Perl (Slides). by Johan Vromans, Squirrel Consultancy
Attendees will learn the basic principles of Object Oriented Programming and how to do it with Perl. This tutorial is aimed at experienced Perl users that want to extend their capabilities into the realm of object oriented programming.

Perl/Tk for Perl Programmers (Slides). by Mark Overmeer, AT Computing
This tutorial is aimed for experienced Perl programmers. It will show some ways to link Perl/Tk programs to existing software. It was also presented at SANE2000, a UNIX System Administrator's Conference.

Security track

Bondage and Discipline, or Strict beyond by Michael G Schwern, Just Another Stupid Company
There are several techniques for searching out questionable code ranging from overriding core functions, filters and using the infamous backend compiler (B modules). This talk will go over some of the things to look for--sloppy and insecure use of files, truly private methods, hashes with fixed keysets, type-safe code--and how to look for them before the code is ever run.

CPAN Testing Service, or CPANTS. CPANTS Run. Run, PANTS, Run! (Slides). by Michael G Schwern, Just Another Stupid Company
Comprehensive Perl Archive Network Testing Service (CPANTS) proposes to tackle the Herculean task of testing CPAN and separating good modules from bad. A synopsis of CPANTS is available.

Cryptographically Secure Anonymous Elections in Perl (Slides). by Jan-Pieter Cornet, XS4ALL Internet B.V.
This talk will outline the anonymous voting system used by XS4ALL for a work council election in March 2000. It will include an outline of the voting algorithm, an example session, a walk-through of the program, and a discussion of the voting process in action.

DNSSEC and extensions to Net::DNS by Olaf Kolkman, RIPE NCC
The Domain Name System (DNS) is a critical part of the Internet Infrastructure, but the original design did not take the security threads that exist on the current Internet into account. Within the IETF people have been adding security extensions to the DNS protocol (DNSSEC, RFC2535). Some groups have started to work and experiment with deployment of DNSSEC, which has led to the realization that there is a strong need for tools. RIPE NCC is using Michael Fuhr's Net::DNS package and extending it with the DNSSEC features needed to build tools. This talk will present a small overview of DNSSEC and give an example of the use of the Net::DNS security extensions.

Perl and Network Intrusion Detection Systems -- a summary and perspective by Scott A. McIntyre, XS4ALL Internet B.V.
This will consist of a brief discussion of Perl-based applications and utilities to aid in network intrusion detection systems and applications. Popular applications for host-based NIDS and statistical programs for analyzing larger amounts of data will be covered, along with a real world example of the role Perl has played in a government research organization's use of NIDS.

Perl as a hacking tool (Slides). by Stephanie Wehner, ITSX
Perl can be a great help in penetration testing, from simple examples such as upload and retrieval tools to more complex tools such as ITSX's Perl module which works with FreeBSD's divert sockets, using Perl's text processing capabilities to alter packets on the fly.

Safe Serialization - The Pitfalls of Persistence (Slides). by Jonathan Stowe
Serialization--the rendering of data objects in a format that can be made persistent--is becoming increasingly common in modern software applications. The fact that the program that recreates the object doesn't need to know the creation circumstances is at the root of a potential security concern: a program could be vulnerable to malicious or badly created data. A particular instance of the vulnerability and a scheme for mitigation will be presented.

Security Bloopers by Jan-Pieter Cornet, XS4ALL Internet B.V. and Antony Antony
Security is not easy; even experienced, security-minded people can make mistakes. Some such bloopers will be revealed in this talk.

Security-aware programming with Perl (Slides). by Arjan de Vet, Madison Gurkha
More and more security vulnerabilities arise due to badly written applications which can often be forced into doing things they were not supposed to do. Many of these applications are written in Perl, especially on web sites. This talk will discuss examples of past security problems in Perl scripts, discuss hints and tips in avoiding security problems and show how Perl can help you avoid security problems--to a certain extent.

Tainting and Regexes (Slides). by Hugo van der Sanden
This talk will build up to code which applies a security policy to Perl scripts.


12 Step Perl by Piers Cawley, Iterative Software Ltd.
Have you ever written a chunk of 'real life' code and found yourself thinking "If I changed that bit there, and that bit, I'll have a JAPH to rival Abigail"? Have you ever used a complicated Schwartzian Transform to sort an array that was never going to have more than 10 elements? You have? Come to the supportive environment that is Manglers' Anonymous.

AxKit -- integrated XML processing solution (Slides). by Jan Pazdziora, Masaryk University, Brno, Czech Republic
AxKit is a package integrating flexible XML processing management into an Apache/mod_perl environment. This presentation will introduce the AxKit architecture and steps that are done during a data processing. If you are not familiar with AxKit, this talk serves as an introduction for the material presented in Data Layer in Dynamic Applications and Presentation Formatting.

Data Layer in Dynamic Applications and Presentation Formatting (Slides). by Jan Pazdziora, Masaryk University, Brno, Czech Republic
To achieve multiple user designs and page layouts of web applications, including output for paper media or handheld devices from one code base, the data must have a well defined and described structure. The approach presented is aimed at large systems with hundreds of applications where embedding the code into HTML markup leads to unmanageable setup and code lost in formatting details. As the markup is not produced by function calls in applications but rendered in a single place using fast XSLT transformers, the performance is comparable with templating approaches. This talk assumes a basic knowledge of AxKit; AxKit -- integrated XML processing solution serves as an introduction to this speech for anyone unfamiliar with AxKit.

e-smith server and gateway by Kirrily "Skud" Robert
The e-smith server and gateway is a specialized Linux distribution suitable for small-to-medium enterprises or home networks. One of its great strengths is its modular, extensible architecture, which uses Perl to trigger events and actions, expand templated configuration files, generate a sophisticated web-based administration system, and more. As seen at

A fractal camel in Postscript... almost (Slides). by Philippe Bruhat
This talk will deconstruct three obfuscated scripts: the boustrophedon Mandelbrot/Julie generator the author presented for Obfuscated Perl Contest 5 (OPC5), Erudil's Camel Code, and the bilingual Perl/PostScript program the author presented for OPC5 which was quoted as "The Best Ever" in The Perl Journal 19.

GCC XML Node introspector Project in Perl by Michael Dupont, MCI Worldcom GmbH
The goal of the GCC XML Node introspector project is to extract the intermediate representation of the GNU Compiler nodes into XML and then be able to access this information at runtime when needed by a program. Perl is the prototyping and testing tool for the project and has played an important role for a number of reasons. This talk will consist of an overview of the project, graphs, sample source code, and an overview of other projects working on similar goals which shows how unique this project is.

Embperl 2.0 - Building dynamic Websites with Perl by Gerald Richter
Embperl is a full-featured system for building dynamic content. This talk starts with an introduction to the basics of Embperl, continues with object-oriented website building and finally talks about Embperl 2.0, covering the definition of syntaxes, XML and performance.

Instant Compilers (Slides). by Léon Brocard, Iterative Software
This talk will explain how to use either the Parse::Yapp or Parse::RecDescent modules to construct an optimizing interpreter and then an optimizing compiler for a simple Perl-like toy language, much like the Template Toolkit does.

Interpreter based thread (ithreads) by Artur "sky" Bergman, Contiller AB
This talk includes a short history of Perl and thread, including why 5005threads were considered a failure and why multiplicity and ithreads were developed; how to use the ithread module to create, manage and destroy threads; and the pitfalls with threads in perl and the changes to that have been made to the regex engine to make threads work.

Lightning talks hosted by Frank Ederveen
Lightning talks consist of a series of 5-minute talks. This session will include:

  • ColorMapper, a talk about how one can draw nice and colorful maps on the fly, by Briac Pilpré; (Slides).
  • A semi-humourous balance to the security track advocating concepts such as 'security through obscurity,' provided by Jeremy Gurney entitled You don't really need CGI security anyway; (Slides).
  • The [other] YAPC::Europe-2.0.01 T-shirt, where the code on the alternate T-shirt will be explained by Phillipe Bruhat;
  • A description by Marty Pauley of Quantum::Usrn, which uses encryption to simulate random noise; and
  • Jan Pazdziora's discussion of how Replication using DBI made interconnection possible at a university.

Lightning talks hosted by Léon Brocard
Lightning talks consist of a series of 5-minute talks. This session will include:

  • Dave Cross explaining why the generally accepted wisdom that Perl advocacy is a Good Thing is off the mark in Why Perl Advocacy Is a Bad Idea; (Slides).
  • Nicholas Clark speaking about floating point/integer conversion in 5.7.1 in 64 bit integers - How to avoid insanity and dragons and yet still have almost everything (*) work, even in ANSI C [or that's the plan, at least];
  • tcpbug as a teaching tool, using Richard Clamp's Perl wrappers;
  • Alex Batko's overview of User-Account Archival and Restoral Utility; and
  • James A. Duncan explaining that Just because it's in Perl doesn't mean it's good.

Mail::Box (Slides). by Mark Overmeer, AT Computing
The Mail::Box module is meant to replace the popular Mail::Folder with a more modern implementation of a Mail User Agent back-end. The talk will discuss how autoloading on data is used to transparently implement the delayed parsing of messages. This talk may be of interest even to more trained Perl-programmers because this way of autoloading, although less frequently used, has great potential.

Making Stone Soup by Greg McCarroll
There is an old story about beggars who were making soup but put stones in. This story was the basis for examining the problem with Perl. When building beggar objects you can learn different ways to improve their chances of getting more out of the deal and they can learn over time and develop trust relationships with other beggars. You can also put different beggar objects together in a simulation to see how they adapt.

mod_perl 2.0 (Slides). by Gerald Richter, ecos gmbh
Following a short introduction to mod_perl this talk will provide an overview of what's new in version 2.0-dev and what else is planned for the future. Learn how mod_perl-2.0 has adjusted to Apache 2.0's threaded architecture using new features in Perl 5.6.0 to provide significant improvements over 1.xx versions. This session will also discuss how and where mod_perl fits in the new APIs and module hooks introduced in Apache 2.0.

Mutagenic modules (Slides). by Robin Houston, Kitsite Ltd.
Perl modules can change the meaning of subsequent code in some way. Pragmas such as 'use integer' alter meaning in this way but require significant co-operation from the interpreter. However, there are many ways you can write your own "mutagenic modules".

organizing sound with Perl by Alex McLean
The talk will consist of performing music live while explaining how it was done. Topics include subjects such as generative music, map-based composition, polyrhythms, realtime parametrical control over compositional processes, sonifying common algorithms, finding beauty in data through sonic transformations, and why Perl is so suitable for making music. This talk will differ from last year's YAPC::Europe talk in that there will be more focus on demonstration and explanation.

POE by Artur "sky" Bergman, Contiller AB
POE is a framework for building Perl programs that lends itself naturally to tasks which involve reacting to external data, such as network communications or user interfaces. This speech will describe event loops, POE, how to write a small network application using POE, examples of what POE has been used for, and the history of POE.

Parallel Processing with Perl and PVM (Slides). by Benjamin Holzman, Longitude, Inc.
One way of dealing with performance issues is to distribute work among multiple processors. There are many different ways to do this. The Parallel Virtual Machine (PVM) architecture and API takes care of all the details of starting servers, maintaining network connections and marshaling and demarshaling data between heterogeneous platforms. A sample program involving coarse-grained parallelism will be introduced and a single-process implementation converted into a distributed program using PVM.

Pathologically Polluting Perl with C, Java, and other Rubbish using (Slides). by Brian "Ingy" Ingerson
The Inline module allows you to put source code from other programming languages directly "inline" in a Perl script or module. The code is automatically compiled as needed, and then loaded for immediate access from Perl. Various aspects of Inline and its languages will be discussed.

Perl for the People: A Modest Proposal for Increasing Perl Usage Using a Combination of Legal and Technological Means (Slides). by Dave Cross, Iterative Software Ltd.
This talk will propose ways to increase Perl usage using a combination of legal and technological means. Two main areas that will help achieve our aims: disability legislation and minorities discrimination. It will take a look at what could be--how the world would look if the proposals were adopted and all but a rigorously controlled number of programming languages were declared illegal.

PerlPoint: present and document with Perl (Slides). by Lorenz Domke, Pixel GmbH and Jochen Stenzel, Pixel GmbH
PerlPoint is a text format to write presentations in and a toolset to make presentations from such documents. Existing translators produce HTML, LaTeX and SDF, and projects are underway for the PPresenter and XML formats.

pVoice - Using Perl to enable the disabled (Slides). by Jouke Visser
pVoice is an application written in Perl with Perl/Tk. It is a simple speech application which pronounces words associated with symbols and/or photos. It was originally started for the author's daughter, who has limited computer operation possibilities and can't speak. She now uses the application to communicate.

Quantum::Entanglement --- Perl gets (quantum) physical (Slides). by Alex Gough
The Quantum::Entanglement module attempts to "port" some of the functionality of the universe into perl. This talk will not feature maths but will instead concentrate on fuzzy principles and their application in Perl.

Reefknot by Kirrily "Skud" Robert
The Reefknot project is an attempt to create a toolkit for developing RFC-compliant calendaring and scheduling applications in Perl. The Reefknot project's first task has been to reimplement Net::ICal in pure, idiomatic Perl. The next step will be to allow programmers to avoid most of the tedium of calendar-parsing by creating more abstract interfaces. It is the hope of the team that people will be able to use Reefknot to easily create calendar and scheduling systems.

Scripting Perl applications using by Claes Jacobsson, Contiller AB
The module incorporates the SpiderMonkey JS engine into Perl and provides a simple API for developers so that they can run JS code within their applications. This talk will cover what the module is capable of, why to use, how to use, security aspects, and future ideas and improvements, such as an Inline version.

Strict to porter - How use strict made me a perl5-porter (Slides). by H. Merijn Brand
Being faced with an apparently simple problem of converting a list of plain data to a report, the author wrote a solution which worked well and was developed further--until the script wouldn't compile. This talk will deal with why symbolic links were chosen for a project, what the impact of 'use strict;' was to the script, and what eventually made the author find the location in the Perl guts that caused the problem.

The Current Tragedy of Common Free & Open Source Quality by Hugh Daniel, The Linux FreeS/WAN Project.
OpenSource software has taken much of the computer world by storm over the last decade and changed how many of us both view and work with computers and the community's that depend on them. Yet a decade is a long time in computer time, half a generation in Human time, and communitys change and sometimes even forget where they come from as the goal of the day changes, as so often happens in computers. The Free & Open Source community's face a huge problem in continuing the Unix tradition of very solid software that can be depended on while developing vast ammounts of new software. What are the problems and possible solutions and shoud we even bother since our main competitor is so bad?

Wax::On Wax::Off (Slides). by Mark Fowler, Profero and Richard Clamp
Instruction of computer programming is problem solving transfer. How do we teach this ability? Most teaching places too much emphasis on syntax. Using the metaphors of the Kung Fu movie, this talk takes a look at "when to bonk your student on the head and when not to", "reading the secret manual" and "combining styles". This is a light-hearted look at an important day-to-day issue in your Perl team.

* except negative zero


Last modified on August 9, 2001 by
All content copyright © 2001 Yet Another Society, Inc.