The following contains the proceedings for most of the talks given at
yapc::Europe 2.0.01.
Tutorials
Developing GUI applications with Gtk.pm
(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
strict.pm
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.
Speeches
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
perl.com.
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 Inline.pm
(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 JavaScript.pm
by Claes Jacobsson, Contiller AB
The JavaScript.pm 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 JavaScript.pm module is capable
of, why to use JavaScript.pm, how to use JavaScript.pm,
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
|