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.

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.

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

•
references

•
finding, installing and using modules

•
reusable code

•
sorting

•
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 Benchmark.pm 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.

www.template-toolkit.org 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.

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 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 perl.org (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).

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.