Perl Whirl 04 Seminars

Eastern Mediterranean • October 10th to 17th, 2004



Use this form to familiarize yourself with Perl Whirl '04 offerings. (Linux Lunacy IV, Perl Whirl '04, and MySQL Swell will be running concurrently. Conference attendees may take up to five seminars from the other two conferences at no additional charge.)

To help us tailor the Perl Whirl '04 program, please select those courses that might interest you — were you to come along on our cruise.

You may choose any combination of full-, half-, or quarter-day seminars for a total of three (3) days' worth of sessions (and you may mix and match from any of the three tracks). The conference fee is $995 and includes all courses, course materials, and the Bon Voyage Cocktail Party.


My Name is:

My Home Email Address:

My Work Email Address:


Home Address

Address Line 1:

Address Line 2:

State or Region:

ZIP / Postal Code:

Home Phone Number:

Home Fax Number:

  Company Address

Company / Business Name (if applicable):

Title / Position:

Address Line 1:

Address Line 2:

State or Region:
ZIP / Postal Code:

Work Phone Number:

Work Fax Number:


Introduction to Perl 6 (full day)
Speaker: Allison Randal

This talk is an introduction to Perl 6, the next major version of Perl. The primary focus is on the syntax of Perl 6: what's changed from Perl 5, what's the same, and what you can do with the language today. Topics include operator changes, the extended importance of closures, smart matching, switches and loops, exceptions, argument binding, aliasing, properties, and exciting new features like junctions and grammars.

Beyond the syntax, we'll briefly look at some of the reasons behind the changes. What makes one feature more desirable than another? What makes it Perlish? What makes it DWIM? How on earth does Larry decide? You'll leave with a better understanding of the changes in Perl 6, and the fundamental nature of Perl itself.

Building Web Applications with Perl (full day)
Speaker: Casey West

Building complex, interactive websites is a daunting and difficult task. In this full-day course you will learn how to develop web applications from the ground up, giving examples based on some of the best open source software available to do the job. At the end of this course you will have a functional road map for further exploration, or to get your job done faster when you get off the boat.

Topic include: the database, database interaction and abstraction, application logic, testing, web interface development, session and user management, and scalability.

The course is presented as a series of sections that build on each other. By the end of the course we will have built a functional, database-driven web application.

Do you PHP? (full day)
Speaker: Rasmus Lerdorf

PHP is many things to many people. Today, little is left of the first version written more than 10 years ago, yet somehow the original ideas and concepts are very much alive and being used to drive everything from the tiniest personal sites to the largest web companies in the world. In these two indepth talks I will discuss the various ways people use PHP to solve the web problem. I will go through a long list of technologies such as SQL, XML, RSS/RDF, Flash, PDF, image generation, SOAP and many more and how to manage these using PHP. I will also present a systematic approach to designing, securing, tuning, benchmarking, and profiling your PHP-based web applications.

Learning Perl Objects (half day)
Speaker: Randal Schwartz

Randal Schwartz presents an introduction to Perl's object system, including creating classes and instances, defining inheritance, overriding, persistence, object destruction, and using AUTOLOAD. Prior knowledge of other object systems is helpful but not required. Prior knowledge of Perl basics, including packages and references, will be assumed.

Idiomatic Perl (half day)
Speaker: Dave Cross

This tutorial teaches you the bits of Perl that most beginners books miss out, enabling you to take your Perl expertise to the next level.

Topics covered include:

use strict/use warnings

package and lexical variables


finding, installing and using modules

reusable code


perl special variables (aka cartoon swearing)

and a number of other techniques.

Tieing and Overloading Objects in Perl (half day)
Speaker: Dave Cross

Tieing and overloading are two techniques that can make your Perl objects easier to use, but they are often underused. This tutorial explains how to use these powerful techniques in your own code.

Topics covered include:

Why tie or overload

Tieing objects

What you can tie

Using tie

Being lazy (using Tie::StdFoo)

Easier tie interfaces (Attribute::Handlers)

Extended examples

Overloading objects

Overloaded methods vs overloaded operators

Overloading operators

Stringification and numerification

Copy constructors

Overloading constants

Extended examples

Writing Better Perl (half day)
Speaker: Marty Pauley

No matter how long you have been programming in Perl, or how great your code is, you can still improve. In this talk I will explain how you, as a beginner or expert, can write better Perl. I also hope to show how you can identify other ways to help yourself improve, because I don't have all the answers!

Optimize Your Perl Code (half day)
Speaker: Robert Spier

This tutorial is an introduction to optimizating Perl applications. It's important knowledge for anyone writing time-sensitive applications, from a CGI script to a large application.

It covers the following four major components:

1. A brief introduction to complexity theory: Just enough complexity theory to have a basic language to talk about runtimes of functions. O(1), O(n), O(n^2), etc. Complexity of common Perl idioms like map, sort, nested loops, etc. Why is some code slow? (And it's not perl's fault!)

2. Real world / real code examples and how to make them faster: Examples of O(n^2) or worse functions and how they can be improved by an order of magnitude by rewriting the algorithm, and possibly changing the data structures used to store things. Memoization/Caching/Persistency/Precomputing.

3. Some simple Benchmarking: Devel::DProf and can help to isolate problem spots in your code. Learn how to properly interpret data and how to pick the "important" pieces.

4. Is it worth it? Not all time spent optimizing the code is worth it. There are tradeoffs of time, readability, and speed. We will discuss development strategies, pre-optimization, and over-optimization.

Filtering Your Email with Perl (quarter day)
Speaker: Casey West

You will learn how to filter your email with Perl. Taking advantage of Perl's parsing abilities and CPAN resources, you'll take back control of your inbox. Topics discussed in this recipe-style course include parsing email, filtering incoming email, sorting email and mailing lists, black-lists and white-lists, handling attachments, auto-responders, reformatting email, virus and spam protection, and more. Basic Perl knowledge recommended.


Template Toolkit for Non-Web Applications
Speaker: Marty Pauley (quarter day) says "The Template Toolkit is a fast, powerful and extensible template processing system. It is ideally suited to the production and maintenance of web content and other dynamic document systems."

Template Toolkit is an excellent system for web content, but it is also really useful for many other tasks.

If you've thought about using the m4 macro language to help manage your system configuration files, but you didn't like it, you should try Template Toolkit. If you need to run a mail merge but you hate Windoze and/or Word, you should try Template Toolkit. If you're being forced to use Java and your IDE won't write at least half your code, you should try Template Toolkit. Or in Perl, if h2xs and ModuleMaker don't do it for you, you should try Template Toolkit.

This tutorial will explain how to use Template Toolkit in the above situations.

Managing Your Own Open Source Project
Speaker: Robert Spier (quarter day)

How to manage an open source project on SourceForge or by hosting it yourself. Covers Mailing Lists, Downloads, Source Control (CVS/SVN), Wikis, chat rooms, and more!

RT in a Nutshell (quarter day)
Speaker: Robert Spier

Tracking tasks, issues, and projects is an activity common to all business and technical disciplines, from software development to customer service. RT, the Request Tracker, is a robust, open-source ticketing system that supports efficient, agile workflow by tracking projects, issues and requests, from inception to resolution, in a community of users.

RT is a flexible, lightweight, extensible set of tools and technologies, including Web, email, and command-line interfaces; an SQL database backend; granular access control that allows users to do their work but also protects the system; a flexible 'keywords' system which allows a local site to keep track of ticket metadata sensibly; extensible linking that ties tickets to each other and to external databases; and clean, object-oriented design based on perl and other open source technology.

RT has achieved broad acceptance worldwide in businesses, educational institutions and development organizations that rely on agile workflow to provide customer support, bug tracking, software development, trouble ticketing, and other activities for which a group of folks need to keep track of a list of tasks. Join Robert to discover how to put this flexible, extensible platform to work in your organization.

GnuGuerrilla (45 minutes)
Speaker: Marty Pauley

Often the best way to convince someone that Free Software systems can solve their problem is to install them before they can stop you! But you must be careful: "one man's freedom fighter is another man's terrorist". This short talk will describe some real world GNU Guerrilla experiences and provide tips for success. If you really want to use Free Software in your workplace but cannot convince your boss, I hope this talk will help.

Kongoogo (45 minutes)
Speaker: Marty Pauley

It is well known that Larry Wall stole lots of good bits from other programming languages to create and then extend Perl. But Perl's position as the most eclectic Programming language has been threatened by Ruby, created by Yukihiro Matsumoto by stealing all the best bits from Perl.

Larry's responded by stealing all the good bits from Ruby to use in Perl6, but he soon realised that this would not be enough. To defeat Ruby, Larry will use his impressive linguistic skills to steal from Matz's native language: Japanese.

This talk starts by examining the existing similarities between Perl5 and Japanese, then looks at some of the new Perl6 features that Larry stole from Japanese, Ruby, and the mind of a crazy Australian. If you want to join the cool kids at the front of the Perl crowd, and learn some Japanese, this talk is for you.

A Quick CVS and Subversion Tutorial (45 minutes)
Speaker: Robert Spier

A 45-minute introduction to using CVS for your own projects as well as for accessing open source projects like Parrot, Python, and many many others.

Behind the Scenes at (45 minutes)
Speaker: Robert Spier

How a small army of programmers and users is supported by a small staff that manages hundreds of mailing list messages a day, archives going back years, spam protection, many active websites, source control and DNS, using open source tools, and a little help from friendly corporate sponsors.


Linux Certification Exams Provided by LPI

Linux Lunacy, Perl Whirl, and MySQL Swell attendees may, for a flat $250, take any and all of the exams offered. At least four different exams will be offered -- others will be added to the list as well. Contact Kara Pritchard to see if your exam(s) will be available in a language other than English (if necessary).

Junior Level Administration (LPIC1)

101 - Hardware & Architecture; Linux Installation & Package Management; GNU & Unix commands; Devices, Linux Filesystems, Filesystem Hierarchy Standard; The X Window System

102 - Kernel; Boot, Initialization, Shutdown
and Runlevels; Printing; Documentation;
Shells, Scripting, Programming, and Compiling; Administrative Tasks; Networking Fundamentals; Networking Services; Security

Intermediate Level Administration (LPIC2)

201 - Linux Kernel; System Startup; Filesystems; Hardware; System Maintenance; System Customization and Automation; Troubleshooting

202 - Networking; Mail & News; DNS;
Web Services; Network Client Management; System Security; Network Troubleshooting

Other Exams Planned To Be Offered

the OSAC (Open Source Applications Certification)

LPIC3 (Level 3 Security)

Alternative Language Translated exams

Additional Exam Topics to be announced
in Summer '04

Included will be two Q&A Sessions to answer final questions as well as to provide some final advice to everyone taking the exams. Finally, those that sign up will be added to the geekcruises-LPI mailing list. Our goal is for everyone to be as prepared, ahead of time, as possible.