Talks

Opening Ceremony - The Organisers
Wednesday, 30th August 2006, The Morgan Stanley Room, 0845, 20 mins

Introductions and welcome speeches. Plus a little extra :)


How to Get the Most of a YAPC - José Castro
Wednesday, 30th August 2006, The Morgan Stanley Room, 0905, 15 mins

For those new to the YAPC experience, this short talk explains what you can expect. What IRC is, what IRC channels to listen in on, the wiki, the people and most of all, how you can join in.


Keynote - Larry Wall
Wednesday, 30th August 2006, The Morgan Stanley Room, 0925, 30 mins

Larry Wall's keynote


TPF talk at YAPC::Europe - Ovid
Wednesday, 30th August 2006, The Morgan Stanley Room, 1000, 30 mins

A talk about The Perl Foundation.


How to Join the Perl Community - José Castro
Wednesday, 30th August 2006, The Morgan Stanley Room, 1100, 40 mins

Discovering the Perl community: use.Perl, Perlmonks, IRC channels and servers, PM groups, conferences, mailing lists and much more. How it all works, how to fit in and how to get the most out of it all.


CPAN and its tools - domm
Wednesday, 30th August 2006, The Onion Room, 1100, 40 mins

I'll take a very close look on CPAN and its tools. The talk is aimed at CPAN beginners to intermediate users, though pros should also learn a thing or two.

  • CPAN itself
    • what various files (02packages.details.txt.gz, ..) do
    • tools to work with those files (Parse::CPAN::*)
    • history
  • PAUSE
    • how to get an account
    • upload/delete stuff
  • Installation of dist using CPAN.pm and CPANPLUS (very brief)
  • mirroring (rsync, CPAN::Mini)
  • search.cpan.org
  • BackPAN
  • CPAN Testers
  • RT
  • CPAN Forum and Ratings
  • AnnoCPAN
  • CPANTS
  • future of CPAN (6PAN, FreePAN, ..)
  • Bonus Material (targeted at authors):
    • dist layout
    • dist housekeeping (Module::Build etc)
    • META.yml

I think that a lot of CPAN-releated info is hidden in some mailing lists and only known to a certain few people. One goal of my talk is to collect this knowledge and make it more easily accessable - heh, now the talk even fits to the conference theme :-)


DBI and DBD from an end-users perspective - Tux
Wednesday, 30th August 2006, The Camel Room, 1100, 90 mins

Why you need portable DBI scripts, and how to write them.

  • DBI basics
    • Connections, selections, updates
    • DBI interaction with Perl scripts
    • Database data and Perl hashes
    • Fetching methods
  • DBD differences
    • Unify
    • Oracle
    • PostgreSQL
    • MySQL
  • Incompatabilities
    • Table and Field names
    • Quotation
    • NULL values and blanks
    • Encoding and Character sets
    • Triggers and Store Procedures
    • Transactions and AutoCommit
  • Performance
    • Fetch methods
    • Miscelaneous
  • Modularity
    • PROCURA::DBD
    • a generic singleton
    • PROCURA::DBD_create
    • a DDD interface
  • Scripts
    • vol
    • describe
    • qs & qs0
    • dbload

The Inaccessability of Perl - Stray Toaster
Wednesday, 30th August 2006, The Morgan Stanley Room, 1145, 20 mins

Cursed with explaining to systems engineers why their perl4 sucks? Doomed to decoding some built-up-over-the-years regex that runs to 300 characters? Fated to forever wander to THE FAR SIDE OF THE OFFICE to fix other people's scripts? Why is perl so damned inaccessible? This is the true story of an innocent abroad, one who was brought up with Proper Perl, then released into the full horror of the Real World(tm). With examples, video nasties and primal scream therapy, this is a jaunt through perl through the eyes of others viewed by me, fixed by me and screamed at by me.


Sorry, you're not my type - Jonathan Worthington
Wednesday, 30th August 2006, The Onion Room, 1145, 20 mins

Type systems are useful because they allow us to turn down bad programs either at compile time, run time or a combination of the two. In this talk I'll give a quick tour of some key aspects of typing, using simple examples to cut through the maze of jargon. I'll spend some time discussing the type system in Perl 6, which will be somewhat richer than that of Perl 5. While you can write Perl 6 without caring much about typing, just as in Perl 5, this talk will explain why you might want to think about types a bit more.

OUTLINE

  • What the heck are types and type systems, anyway?
  • What do type systems provide?
  • Why can type systems be bad?
  • Visiting the terminology zoo: static vs. dynamic typing, strong vs. weak typing, duck typing, hybrid type systems, type inference, type checking
  • Polymorphism
    • What is it all about?
    • Subtyping (through "subclassing")
    • Parametric polymorphism
  • Refinement types
  • Wrap-up, where to look to learn more
  • Questions

How to get IRC addicts pay attention to your talk - domm
Wednesday, 30th August 2006, The Morgan Stanley Room, 1210, 20 mins

During the German Perl Workshop, Michael Kröll (PEPL) and me hacked together a quick and dirty way to get the attention of all those "attendees", who use conferences mainly for uninterrupted IRCing.

We wrote an IRC-Bot that posts the content of my slides to an IRC channel.

In this half funny, half technical talk I will present the problem and our solution to it. Which involves JavaScript/AJAX, CGI-scripting, FIFOs and writing an IRC bot.


Perl Eye for the Ruby Guy - Adrian Howard
Wednesday, 30th August 2006, The Onion Room, 1210, 20 mins

A brief look at Ruby from the perspective of a Perl coder. What's similar, what's different. Ways you can play with "the Ruby way" in Perl 5 and Perl 6. Aimed at Perl coders who have heard about Ruby and what to know what all the fuss is about. Very much /not/ an advocacy "my language is better than your language" talk.


Perl Hacks You May Not Know - chromatic
Wednesday, 30th August 2006, The Morgan Stanley Room, 1400, 40 mins

Perl is a rich language with decades of history. Unlike other languages that revel in oversimplicity, Perl has dark and hidden corners that reward careful programmers willing to experiment and play.

Why should you have to devote yourself to years of study to find them? Why not skip ahead in your education and learn a few weird and wonderful features waiting for you to tame and use them to solve difficult and fun problems? chromatic will demonstrate at least five Perl hacks you probably don't know about. It's up to you to use them productively.

Additional information: I plan to take three of the hacks from the book. I do have some new ideas about some of the hacks, so there will be new material. I also hope to show off at least one of user-defined pragmas, improved coderef-in-@INC, and using C libraries without a compiler.


Introduction to Parrot - Leopold Tötsch
Wednesday, 30th August 2006, The Onion Room, 1400, 20 mins

Parrot is a virtual machine intended to mainly run dynamic languages, especially Perl6.

The talk summarizes Parrot basics from its origin, its overall structure, major parts, to its most distinguished features.


Advanced Databases for Beginners - Dave Cross
Wednesday, 30th August 2006, The Camel Room, 1400, 180 mins

Everyone knows how to use databases right? You just create a few tables and bung some data in them. Later on you can select the data back again or update it.

Well, that's only really half the picture. And many people only see that half of the picture. Which is why so many database designs are so bad.

In this tutorial, we'll look at the bits of database design that most people seem to forget about. We'll learn some techniques that can make your databases more robust, easier to use and perhaps even faster.

Amongst the topics we'll cover are:

  • Normalisation
  • Data types
  • Constraints
  • Indexes
  • Relationships
  • Triggers

All of the examples will be based on MySQL 5 but the principles will be application to most database systems.


Catalyst/DBIx::Class BOF - Matt S Trout
Wednesday, 30th August 2006, The Shadowcat Room, 1400, 180 mins

Basically, it'd be nice if we could steal a room for a few hours at some point. The two projects share enough committers I think the best bet would be to have it be a sort of general thing so whoever turns up and has the time can come in - also I can do some running down of roadmaps and plans and we can discuss in more detail who's going to get volunteered for what.


Parrot Specials - Leopold Tötsch
Wednesday, 30th August 2006, The Onion Room, 1420, 20 mins

Parrot is a virtual machine intended to mainly run dynamic languages, especially Perl6. This talk is covering some more advanced Parrot features including lexical variable handling and closures, OO-support, multimethod dispatch, the Parrot Grammar Engine (PGE) and more.


Accessible applications in Perl - Jouke Visser
Wednesday, 30th August 2006, The Morgan Stanley Room, 1445, 20 mins

This talk will introduce the audience in how to get started if they want to create accessible applications in Perl.

I will speak from my own experience, since I've been working on this subject for the past 5 years, creating pVoice and other accessible programs. End-users, specifically disabled users, aren't developers. They are not interested in the programming language we all love, nor in installing dozens of modules to get them to start the application. They need a solution for a specific problem. It's your task as a developer to hide the complexity of all of this, and think about functionality. Not an easy task for the average geek ;-)


The Parrot Compiler Tools - Allison Randal
Wednesday, 30th August 2006, The Onion Room, 1450, 40 mins

The core of the Parrot compiler tool suite is the fuel-injected dual-turbine of PGE and TGE, Parrot's parser and tree transformation engines. While these tools have their roots in regular expressions, recursive descent parsing, and attribute grammars, they are so far beyond these dusty archaic fields of study that they have been called "revolutionary".

This talk is a tour through some of the languages currently being implemented on Parrot (APL, Scheme, Perl 1, and Perl 6) and the tools that make them possible. You'll walk away from it secure in the knowledge that your horizons have been expanded like a slice of lemon wrapped around a large gold brick. Who knows, you might even be be bitten by a suspiciously compelling urge to implement a language on Parrot.


Searching With Perl - Kevin Falcone
Wednesday, 30th August 2006, The Morgan Stanley Room, 1510, 20 mins

In the last few years, several new searching modules for Perl have come into being. These challengers have risen to provide some choices other than Plucene, which was the only option for a long time. Kinosearch and Search::Xapian approach the same problem set with new techniques. CLucene and Lucene attempt to provide a similar set of functionality as Plucene but be much much faster.

Speed isn't the end all and be all of searching, but it is important. In this talk I'll compare indexing and searching over my corpus, but I'll also consider the more mundane tasks of programming with the library you've chosen. Some common things (filtering what is indexed, highlighting results, finding relevance) have very different techniques depending on the library you choose. Hopefully some sample code and results of the benchmarks will help people in choosing what modules to build their application around.


POE - a field guide - Merijn Broeren
Wednesday, 30th August 2006, The Morgan Stanley Room, 1600, 60 mins

The wonderful world of POE is bristling with strange names, labels and high concept. This talk opens up the power by offering a guided tour along implementations of systems and services using POE in a financial instution.


My First CPAN Module - Marty Pauley & Karen Pauley
Wednesday, 30th August 2006, The Onion Room, 1600, 60 mins

So you've heard lots of people talk about this CPAN thing but you aren't really sure what it's for or how to get your work onto it.

This tutorial will cover the basics of:

  • what's CPAN
  • how to use it
  • how to upload your modules
  • how to submit patches

Testing the Test::Class way - Adrian Howard
Wednesday, 30th August 2006, The Morgan Stanley Room, 1705, 20 mins

Introduction to the xUnit / Test:Class style of testing. The Test::Class origin story: the refactoring of some large Perl test suites. Compare and contrast Test::Class to other Perl xUnit implementations. Compare and contrast xUnit with other styles (procedural, declarative, etc.) Not /the/ way - just another way. Introduction to the new features of the next/latest [depending whether I get off my arse and finish it off] Test::Class release (tagged test methods, ability to arbitrary test methods in arbitrary orders.)


Lithp - Marty Pauley
Wednesday, 30th August 2006, The Onion Room, 1705, 20 mins

Larry Wall said "Lisp is the most beautiful language in the world, but every program written in Lisp is ugly". Marty will explain why.


Announcements - The Organisers
Thursday, 31st August 2006, The Morgan Stanley Room, 0845, 10 mins

Daily announcements and updates.


Parsing in Perl - ambs
Thursday, 31st August 2006, The Morgan Stanley Room, 0900, 40 mins

A quick overview of the main used tools for parsers generation in Perl. How easy they are to use and how efficient they are. The talk will focus on Parse::RecDescent, YAPP+Perl for simplicity and YAPP+Flex for efficiency.


Net::Proxy, making the network accessible - BooK
Thursday, 31st August 2006, The Onion Room, 0900, 40 mins

Net::Proxy provides accessibility for those who find that there are too many firewalls and hurdles on the way of their network packets.

It can be used to bypass firewalls, setup several TCP services on the same port (magic!), add TLS support to servers which do not support it, etc.

I will go into details about the generic Net::Proxy architecture and the concept of connectors, how to use it, and how to create new connectors. The peak being running two distinct TCP services on the same port, transparently.


What's new with Perl DBI? - Tim Bunce
Thursday, 31st August 2006, The Camel Room, 0900, 40 mins

Audience Level: General
Audience Type: Anyone using Perl DBI

Been using Perl DBI for a few years and think you know it well? You might be surprised. New to Perl DBI and want to learn a few tricks? Come and take a look.

We'll be covering how to:

  • select data directly into a nested hash tree.
  • profile code that doesn't use placeholders.
  • find the time spent within the DBI by a single http request.
  • find all sth for a dbh, or dbh for a drh, with weakrefs.
  • fire callbacks around DBI method calls.
  • know if connect_cached has reconnected.
  • explore brain transplantation with swap_inner_handle.

Perl Testing Workshop - Marty Pauley
Thursday, 31st August 2006, The Shadowcat Room, 0900, 180 mins

Marty will start by explaining why you should test, when you should test, and how you should test. He will then make you get out your laptops and prove that you have been listening!

This workshop will cover the following modules:

  • Test::Simple
  • Test::More
  • Test::Exception
  • Test::Class
  • Test::Differences
  • Test::Builder

The workshop will be more than a module using tutorial: we will describe and explain strategies and design patterns to develop great tests and great code.

Participants should be encouraged to bring their own code so we can work together to write better tests to make our lives happier.


Testing Web Applications - Paul Johnson
Thursday, 31st August 2006, The Morgan Stanley Room, 0945, 20 mins

Testing web applications can be a tricky business. As web applications get more complex, their testing becomes more difficult. especially if they are buzzword compliant and full of dynamic AJAXy goodness.

This talk will look at some strategies for testing rich web applications, focuses primarily on WWW::Mechanize and Selenium. In particular we will look at Selenium's Remote Control mode, using Perl to drive the testing.

Selenium is a fairly new tool which is still in a state of rapid development. It allows web applications to be tested by running JavaScript in the browser itself, ensuring that you are testing exactly what the browser will run and saving you from having to deal with the application's JavaScript directly.


Why Web Services Are Painful In Perl And Why We Should Care - Jonathan Stowe
Thursday, 31st August 2006, The Onion Room, 0945, 20 mins

This is a further episode in my ongoing mumble about web services.

Because of Perl's dynamic nature it makes it rather difficult to share "objects" with web services made in different languages. The web services toolkits that we have available in Perl don't make it easy to understand web services messages from services or clients written in different languages either.

WSDL (Web Service Description Language) is a mechanism to enable interoperability between systems without prior knowledge of the underlying architecture providing the service. Whilst now we can work around the difficulty in mapping the "types" described in a WSDL document, largely by ignoring it, if Perl is to have a part in the SOA (service oriented architecture) plans, that the major software vendors are setting forth, then it will need to interoperate more strongly with the systems that currently support these standards.

The understanding of WSDL and the accurate passing of document/literal messages is mandated by a number of recent and important standards such as BPEL (business process execution language) and up coming WS- orchestration standards.

The talk will discuss the ways that Perl currently fails to support the de facto standards and the reasons for this, and will go on to sketch out how this lack might be fixed. In passing the reason that REST and other ad-hoc "standards" do not fill the ticket will be discussed.


DBIx::DataModel - Classes and UML-style Associations on top of DBI - Laurent Dami
Thursday, 31st August 2006, The Camel Room, 0945, 20 mins

There is definitely more than one way to design an object-to-relational mapping framework (so-called ORM). This talk will briefly cover the design dimensions in this area, and then will highlight the main features of DBIx::DataModel : UML-style associations, modelling of joins through multiple inheritance, variable-size objects, flexible SQL generation at each method call, etc.


Excel on the Command Line - JJ
Thursday, 31st August 2006, The Morgan Stanley Room, 1010, 20 mins

Perl 'one-liners' are a great way to quickly search and manipulate data without writing a full blown script, but they only work if your data is in plain text.

This talk will show how to extend the 'one-liner' concept to process Microsoft Excel documents just as easily as a text file.


pVoice - using Perl to enable the disabled - Jouke Visser
Thursday, 31st August 2006, The Onion Room, 1010, 20 mins

This 20 minute talk will explain what pVoice is, how it's used, and why none of the users are aware that it's powered by Perl.

pVoice is an application for Augmentative and Alternative Communications. It enables people who have very limited possibilities to operate a computer (or any device for that matter) and who can't speak themselves, to communicate. Users can select images that are displayed on the screen to form sentences, and once they're done they can let the computer pronounce it using a Speech Synthesizer.


How Perl gives the edge to Telcos - John Jewitt & René Tonon
Thursday, 31st August 2006, The Camel Room, 1010, 20 mins

SysMech offer a refreshing operator centric approach to Network and Service Management in the field of Telecommunications. The presentation highlights how Perl, Ajax and OpenThought are used to add value to the traditional Fault Management Systems.


Hash Crash Course - Simon Cozens
Thursday, 31st August 2006, The Morgan Stanley Room, 1100, 20 mins

Audience: Beginner-Intermediate

We all know why scalars are useful. And arrays make sense - for carrying around a bunch of scalars. But hashes? Perl's third data structure is a bit more difficult to get to grips with. We'll take a gentle look at what hashes are for and how they're used in our real-life programs. We'll look beyond "mapping one thing to another" to see how hashes form the basis of many time-saving and expressive Perl idioms, to make your code cleaner adn more "Perlish".


Hash Crash Course - Simon Cozens
Thursday, 31st August 2006, The Morgan Stanley Room, 1100, 20 mins

Audience: Beginner-Intermediate

We all know why scalars are useful. And arrays make sense - for carrying around a bunch of scalars. But hashes? Perl's third data structure is a bit more difficult to get to grips with. We'll take a gentle look at what hashes are for and how they're used in our real-life programs. We'll look beyond "mapping one thing to another" to see how hashes form the basis of many time-saving and expressive Perl idioms, to make your code cleaner adn more "Perlish".


Introduction to wxPerl - Jouke Visser
Thursday, 31st August 2006, The Onion Room, 1100, 40 mins

This tutorial will get the audience started in the multi-platform GUI toolkit wxPerl, which is based upon the popular wxWidgets (C++) toolkit. The tutorial will teach you how to create simple applications with nice windows, menus, and all kinds of controls (widgets) that a GUI needs. You will learn how to use sizers (the wxPerl layout-system), a little about the platform-specific implementations, and the use of the documentation.


Fun with POE - Jan-Pieter Cornet
Thursday, 31st August 2006, The Camel Room, 1100, 90 mins

This talk shows a demonstration of a simple POE project: an IRC bot that is extended to include some very special functionality that turns the audience into a dynamic DNS zone, thus welcoming the audience to join in the fun with their laptops (a substantial portion of the people in the audience will be chatting on irc anyway, so why not try and drag them into the Talk some more by allowing some interaction).

The talk explains the big, easy stuff first: POE Components, and sets you smack in the middle of the POE universe. Only after those basics are covered, do we dive into some nitty-gritty detail that delves down to low-level POE stuff like Drivers, Wheels and Filters.

This introduction is intended for everyone that has no or only little prior knowledge of POE, but contains a few gems that makes it interesting for the more advanced users (like a UDP SendRecv Driver :).

I will then also describe POE signalling some more, using time-out mechanisms as an example, and give some in-depth examples and explanation of the most commonly used POE modules, such as P::W::SocketFactory, P::W::Run, P::C::Client::TCP and P::C::Server::TCP, and P::Filter::Line.

I originally held a first version of this talk at the Dutch Perl Workshop, with example code available online at: http://www.xs4all.nl/~johnpc/Talks/POE_DPW2006/


Dammit, Jim, I'm a... - Simon Cozens
Thursday, 31st August 2006, The Morgan Stanley Room, 1120, 20 mins

Audience: All

Simon Cozens has attempted to "retire" from Perl programming on several occasions over the past three years. But like many retirees, he found himself coming back to the office "to see old friends"; then he was "helping out from time to time". Now, as a full-time mission worker, he's still programming Perl as much as ever - but this time he codes to help his work. Come and see what missionaries need from Perl, how he solved those problems, and find out some techniques from his experience that you can use as well.


MVC - More Vulnerable Code - mock
Thursday, 31st August 2006, The Morgan Stanley Room, 1145, 20 mins

New technologies reveal new ways of shooting yourself in the foot. This talk is a litany of new security problems, and twists on old ones, found in "web 2.0" applications and their associated perl modules. Astound your friends with AJAX cross site scripting. Stun your co-workers by abusing serializers. Shock your parents by spoofing web services. Learn how to create vulnerable code with object relational mapping and exploit poorly documented MVC frameworks. Fun for the whole Family!

Exploits will be shown, examples given, and fixes hand waved into existence. Amusement and embarrassment promised for all.


What's Wrong With ORM - Dave Cross
Thursday, 31st August 2006, The Onion Room, 1145, 20 mins

MVC frameworks are really cool at the moment. An important part of an MVC framework is the model, and that means that Object Relational Mapping (ORM) is really cool at the moment.

But most current ORM systems leave a lot to be desired. In this talk we'll take a look at the state of the ORM marketplace, largely in Perl but we'll touch on other languages too, and make some suggestions on how they can be improved.

There may well be some incidental ranting on database metadata and the people who don't use it properly.


Wile Coyote's Toolbox: The Acme Namespace, 20 Minutes, 60 Modules - José Castro
Thursday, 31st August 2006, The Morgan Stanley Room, 1210, 20 mins

20 minutes, 60 modules. The world of Acme. Surreal, unreal, and sometimes, just too damn useful.


ORM sans frontiers - bridging continents and SQL dialects - Matt S Trout
Thursday, 31st August 2006, The Onion Room, 1210, 20 mins

The genesis of DBIx::Class and how its freedom with commit bits and obsession with cross-database compatibility and stable interfaces has resulted in a large and active user and developer community. Or, "how I found cool people all over the world and persuaded them to write code and docs".

Main points:

  • Origin of DBIC as a tmtm-approved research project to build a better CDBI
  • users, developers, and how to convert them
  • why you need a profound and vehement hatred of databases to maintain an ORM
  • documenters, or, "no, I didn't write the docs. that's a good thing."
  • optimising repositories for distributed development
  • letting people get on with stuff, or, "an effective BDFL never dictates"
  • dear lord, they're talking to AS/400s with it now. seriously.

Out of the Crucible - Catalyst Quickstart - Matt S Trout
Thursday, 31st August 2006, The Morgan Stanley Room, 1400, 20 mins

Runs through the basics of getting a Catalyst + Template Toolkit + DBIx::Class app up and running complete with authentication and authorization and a little AJAX magic.

Main points:

  • Initial application scaffolding
  • Database setup and deployment
  • CRUD interface generation
  • Templating and static files
  • Sessions and authentication
  • AJAX with dojo

Advanced Perl DBI - Tim Bunce
Thursday, 31st August 2006, The Camel Room, 1400, 180 mins

Audience Level: Experienced

Audience Type: Intermediate to advanced Perl programmers with a basic understanding of the DBI and a desire to know more.

Learn how the DBI works and how to get the best out of it, including how to maximize speed, safety, reliability, and portability.

This year, Bunce has updated his popular tutorial again to include more coverage of recently added DBI features.

Course Outline:

  • Speed, speed, speed: what helps, what doesn't; database design, application partitioning, network latency, stored procedures, caching etc. Profiling and working with DBI::Profile data.
  • Handling handles and binding values; your TYPE or mine?
  • Error checking, recovery, and transactions; PrintError, RaiseError, and HandleError; the importance of error checking and the virtues of eval.
  • How transactions and RaiseError work together.
  • Wheels within wheels: The architecture and how to see inside it using trace.
  • DBI for the Web: Connect speed, state-less-ness, browsing pages of results, concurrent editing and optimistic locking, security tainting.
  • Handling LONG/BLOB data.
  • Database and Platform Portability: Database and driver metadata, SQL dialects.
  • DBD::Proxy and DBD::Multiplex.
  • DBI::PurePerl.
  • What's new and what's planned.

CPANTS Hackathon - domm
Thursday, 31st August 2006, The Shadowcat Room, 1400, 180 mins

In hosting a CPANTS hackathon I'd like to:

  • Give a short intro on CPANTS.
  • Show how to write metrics .
  • Brainstorm for more metrics.
  • Code them!

Every participant will need a laptop with WiFi capabilities, svn/svk clients and some CPAN modules preinstalled (I can provide a list). I will provide a tarball with ~100 dists to test metrics on and an svn server.

The Hackathon itself could last from 60-180 minutes (and could very well be informally extended afterwards. :-)

After the Hackathon I could integrate the new metrics and start a proper run over the whole of CPAN. Which will take several hours, so results would be available on the next day.


Beautiful and Unique Snowflakes - Cooking with Catalyst - Matt S Trout
Thursday, 31st August 2006, The Morgan Stanley Room, 1420, 20 mins

A run-down of tips, tricks and available modules that serve to make Catalyst internationalisable, localisable, capable of dealing with a wide variety of domain models and templating systems.

Main points:

  • URI mapping flexibility
  • supported environments
  • Models
  • Views
  • authentication stores
  • UTF8 and I18N
  • mad plugin foo (laundry list)
  • Javascript
  • prototype, dojo, mochikit

What was that again? - acme
Thursday, 31st August 2006, The Morgan Stanley Room, 1445, 20 mins

It's looking peachy: you've created your database full of accurate data and your users have generated useful metadata - but the users can't find what they are looking for! Via the wonders of automated information retrieval and graph theory we'll find the best ways to analyze and present the right data using practical searches, related items and item clusters.


Translating .Net Libraries To Parrot - Jonathan Worthington
Thursday, 31st August 2006, The Onion Room, 1445, 20 mins

For around the last year I've been working on translating .Net assemblies to Parrot intermediate code. With many instructions and other constructs now being translated, I'm slowly closing in on being able to translate useful stuff. That means that one day soonish you might be able to say "use dotnet:System::Collections;" in your Perl 6 programs and have it work as expected. This talk gives an overview of the translator and how it was built, including the Perl build tools and declarative micro-language I developed to make the process easier.

OUTLINE

  • Motivation: the library re-use problem virtual machines create
  • Possible solutions; why bytecode translation is a good bet
  • Comparing the .Net and Parrot runtimes
  • Building a translator
    • Declarative instruction translation
    • Pluggable stack to register mapping
    • A Perl script to tie it all together
  • A quick look at translating a couple of interesting constructs
  • Evaluation of what's done so far, future directions
  • Time for a few questions

Enigmatic Perl - Why Idioms Work - Paul Johnson
Thursday, 31st August 2006, The Morgan Stanley Room, 1510, 20 mins

A look at some common and not so common Perl idioms, what they really do and why they work.

This is not aimed at teaching basic idioms, but rather at explaining why some idioms work, probably things that you have seen in other programs or modules. For example, a programmer may understand that $|++ unbuffers the currently selected filehandle, but may wonder what would happen if some module had set $| = -1 beforehand.

Potential topics include:

  • $|++
  • while (<>)
  • $count = () = /.../g
  • local $/;
  • local $/ = 16;
  • for ($val) { }
  • select((select($h), $| = 1)[0])
  • local $^I = ""

This talk would be aimed at an intermediate to advanced audience.


Moose - it's the new Camel! - Sam Vilain
Thursday, 31st August 2006, The Onion Room, 1510, 20 mins

Moose is a module for building perl classes, that gives you many of the powers of Perl 6's object system in Perl 5 - including Roles and subset types. Despite being a young module, it is rapidly becoming the 'accessors module' of choice for the discerning module author.

This talk will give a tour through Moose - its features and how to use them, and show a design process example of an application written using Moose.


Perl As A Glue Language - Abigail
Thursday, 31st August 2006, The Morgan Stanley Room, 1600, 45 mins

Audience: All programmers.

One of the areas Perl shines is the domain of the system administrator. She often has the need to write small programs that interface with other programs, massage data, manipulate databases, etc. And she needs it now. Perl is often the administrators best friend.

In this presentation I'll show a selection of small "glue" programs that have helped me a lot.


CPAN6, CPAN for Perl6 - MarkOv & Sam Vilain
Thursday, 31st August 2006, The Onion Room, 1600, 90 mins

With Perl6 far underway, it is time to look at all kinds of tools which surround Perl5. Some of them will certainly need an overhaul to facilitate the new language's needs. Probably the most important reason for people to prefer Perl over other languages is CPAN. What are the needs for CPAN to support Perl6?

In their quest for the new requirements, Mark and Sam discoved the limitations of the CPAN system; battles over name-spaces, weak authentication, and Perl5 dependencies, to name just a few. So they started designing CPAN's follow-up.

CPAN6 is meant to preserve the best of CPAN: simple to contribute new software, simple to install modules. At the same time, with CPAN6 everyone can start their own CPAN-like archive, for any programming language. CPAN6 is a meta-archiving infrastructure, which has no equivalent yet. The current CPAN can smoothly fit in as a single instance of an archive, within the CPAN6 framework.


Translators Tools Implemented in Perl - Uri Bruck
Thursday, 31st August 2006, The Morgan Stanley Room, 1650, 40 mins

This talk will discuss perl implementation of software tools for translators such as Translation Memory, Document Alignment, etc. This talk is based on a talk previously given in Israel's 2006 OSDC.


Programming Languages and Perl - Dave Cross
Thursday, 31st August 2006, The Morgan Stanley Room, 1735, 20 mins

Are people still writing new projects in Perl? If not, what are they using instead? And why?

In this talk we'll look at the programming language ecosystem and, in particular, Perl's place in it. What factors do people take into account when choosing a programming language and rational are those decisions?

We may even come to some conclusions as to how we can encourage more people to use Perl.


micro-ISV - jonasbn
Thursday, 31st August 2006, The Onion Room, 1735, 20 mins

Level: Introductory, non-technical

This talk is somewhat of a sequel to a presentation given in Belfast for YAPC::Europe::2004. The talk was on working as a freelance Perl programmer and among other things it used very valuable advice from Eric Sink's blog on MSDN.

Today Eric has published a book on the business of software and ISVs. jonasbn, since the presentation in Belfast, has come closer to his vision of becoming an ISV instead of working as a freelance consultant.

This talk is founded on my own experiences and ideas, together with two titles published by Apress on the subject of ISVs and the new buzzy term micro-ISVs.

  • Eric Sink on the Business of Software
  • Bob Walsh, micro-ISV from vision to reality

jonasbn is in the process of releasing his first SW product logicShop under the label of micro-ISV. The presentation will list advice and pitfalls on the bumpy road-map to product delivery for small independent software vendors.


Lithp? APL! - Bernd Ulmann
Thursday, 31st August 2006, The Camel Room, 1735, 20 mins

This talk was inspired by yesterday's Talk titled "Lithp" where some discussion concerning Lisp and APL took place. The talk will give a quick overview of APL's language features and shows some really cool features of the languages, since I think there is much to be learned from APL. Maybe future Perl version might incorporate some of APL's features.


Announcements - The Organisers
Friday, 1st September 2006, The Morgan Stanley Room, 0845, 10 mins

Daily announcements and updates.


Plagger - pluggable RSS/Atom remixing platform - Tatsuhiko Miyagawa
Friday, 1st September 2006, The Morgan Stanley Room, 0900, 40 mins

Plagger (http://plagger.org/) is a platform to remix RSS/Atom feed content. Each Plagger component is implemented as a small plugin and you can mash them up together to do lots of things dealing with RSS/Atom feeds.


SNMP for the masses - beatnik
Friday, 1st September 2006, The Onion Room, 0900, 40 mins

Target Audience: People with some general understanding what Networking is all about.

SNMP is generally used for network management and monitoring of large networks. Companies spend thousands of $currency on tools just to keep their network up and running. But SNMP can be used for other things as well. In this talk I will discuss how SNMP can be used by regular folks. I will demonstrate some general polling processes, as well as creating a general SNMP proxy, an HTTP tunnel over SNMP, writing your own MIBs, adding general OID handlers to Net-SNMP and using Net::SNMP for polling for perl variables.


Packaging Perl Applications - ivorw
Friday, 1st September 2006, The Camel Room, 0900, 40 mins

This is an enhanced talk from the original given at Braga and LPW, as much has happened in the area of packaging. I intend to cover more technical detail than in the original talk.

The slides for last year's talk are at the following URL: http://myweb.tiscali.co.uk/ivorw/slides/packapp/contents.html


CPANTS Followup BOF - domm
Friday, 1st September 2006, The Morgan Stanley Room, 0945, 20 mins Following the Hackathon, this is a short session for Thomas to present his results.


Speeding up SNMP queries - Jan Henning Thorsen
Friday, 1st September 2006, The Onion Room, 0945, 20 mins

I want to talk about a module I've written called SNMP::Effective. What makes this module special is that it can query a lot of hosts at the same time. It relies on SNMP to do the queries, so the module itself is just to control when to send the SNMP-queries. I will not go in-depth, but talk about the obstacles that occurred while developing it, its main methods, how to call it, and how to retrieve the results from the hosts. The reason I wrote it was that I need a really fast library to get data from cable-modems. There can be quite a lot of hosts in such a network, so therefore speed is a necessity. I would like to present the module, since someone might have the same need as I.


Perl on MVS/USS and the Art of SWIFT-Message Handling - Bernd Ulmann
Friday, 1st September 2006, The Camel Room, 0945, 20 mins

SWIFT is the worldwide inter-bank-communication-network - nearly every transaction spanning banks is handled by SWIFT-messages. These messages have a very clumsy format which is indeed hard to parse. There are numerous commercial solutions for the generation and parsing of SWIFT messages but these are normally very expensive and do not necessarily integrate well into every environment.

We decided to develop our own solution for the generation of several SWIFT-message formats as well as the parsing of some other types. Therefore we decided to run Perl on our Mainframe (it seems that we are one of the very, very few shops doing this in a production environment and we encountered quite a lot of problems with Perl in an EBCDIC-environment which are partially still unresolved).

This turned out to be a good decision - due to Perl we were able to write a prototype parser for so called MT541/3-messages in a single, whereas external sources claim to need one to two man months using Java. :-) We now have a solution which is running in production mode and processes incoming SWIFT-messages, representing trades worth several 10 to 100 million Euros a day.

This solution is far ahead of most commercial packages and is easily extendable. Without the decision to run Perl on the Mainframe (which made some problems without "hosties", who always are quite afraid of new technologies on "their" mainframe), we would not have been able to accomplish the project's time and performance goals at all.


AJAX with Perl - root
Friday, 1st September 2006, The Morgan Stanley Room, 1010, 20 mins

AJAX - Asynchronous JavaScript And XML. Using a set of technologies that have been around for some years, with a little bit of JavaScript knowledge and a tiny bit of experience with CGI scripts, this talk will show you how to get things working with some practical examples.

Topics: JavaScript, XML, CSS, HTML and, of course, Perl.


logicShop - jonasbn
Friday, 1st September 2006, The Onion Room, 1010, 20 mins

Level: Introductory-intermediate

This is a presentation of the primary product of the evolving micro-ISV logicShop.

logicShop is an open source e-commerce platform implemented using Perl and PostgreSQL. Its aim is managing the complexity of products, price strategies and customers and all of the aspects involved in, and required by, a modern e-commerce/web-shop solution.

logicShop provides all the basic functionality required by an online shopping platform at the same time it addresses a few aspects and special cases using a flexible data model and the power of Perl. The platform, in its current implementation, has been implemented using Class::DBI and several other CPAN modules. Front-ends are being implemented in several different frameworks, Catalyst being one of them.

This paper will not go through all of the implementation of logicShop, but will focus on some of the special cases and their implementations.

  • Flexible customer datamodel, model and object mapping.
  • Integration toward logicstic and day-to-day business via a rule-based back-end.
  • Controlling presentation from the model.
  • Architecture, views and tables.
  • Prices, currencies and taxes.
  • Controlling business-logic from the model.
  • The intelligent cart.

logicShop is the flagship product in logicLAB and integrates with several other products in the logicLAB portfolio.


Internet publication of Geneva justice decisions, powered by Perl - Laurent Dami
Friday, 1st September 2006, The Camel Room, 1010, 20 mins

Since the beginning of 2006, decisions of some Geneva justice courts are made accessible to the public and to lawyers at URL http://justice.geneve.ch/jurisprudence. This is fully powered by a Perl and mod_perl infrastructure, performing tasks such as document conversions, content analysis, automatic cross-references, fulltext indexing and boolean searches.

The talk will present the architecture, and will also briefly mention some difficulties encountered in advocating Perl internally for major enterprise developments.


Barely Legal XXX Perl - Jos Boumans
Friday, 1st September 2006, The Onion Room, 1100, 40 mins

This is the successor of the talk '20 things you might not know about perl', which has been given at several other conferences and proved quite successful. So by popular demand here is its follow up.

The talk shows several features of perl you might not have known that existed, which are being (ab)used to run a program that was designed never to be able to run in the first place... It's a high paced, humorous and entertaining look at Perl's slightly less obvious features.


Writing Better Regular Expressions - Abigail
Friday, 1st September 2006, The Camel Room, 1100, 90 mins

Target Audience: Beginning to intermediate (Perl) programmer.

A lot of people find it hard to write regular expressions. In this presentation we will use a few case studies to show some hints and tips to write better (more efficient, more readable, more maintable) regular expressions.


A Month of Getopt: 31 Modules in 20 Minutes - Aaron Crane
Friday, 1st September 2006, The Morgan Stanley Room, 1120, 20 mins

There are (at least) 31 distributions in CPAN's Getopt::* namespace - one for every day of the month. Which should you use? Choosing one involves examining all of the available modules in some depth, so you'll be glad to hear that I've done all that work for you. This is a breakneck-pace romp through all of the Getopt modules, looking at why you might want to pick one of them over all the others. Expect to be surprised by the conclusions!


Interviewing Perl Programmers - Smylers
Friday, 1st September 2006, The Morgan Stanley Room, 1145, 20 mins

Interviewing for Perl Vacancies: Tips for Grilling Job Applicants

"It takes one to know one", apparently. But if you're trying to recruit another Perl programmer, how do you determine whether an applicant is up to the task? Being a Perl hacker means you often have to play a part in job interviews, despite likely having no experience of interviewing. This talk aims to help with that.

It covers:

  • musings on job vacancy descriptions.
  • things to look out for on a CV, both good points and 'red flags'.
  • testing candidates -- suggestions for written and practical tests, what does and doesn't work in testing, how to conduct tests.
  • guidelines for posing pertinent questions at applicants, and evaluating their answers.

This talk is specifically about recruiting Perl programmers, not just IT recruitment in general: it considers what are the distinguishing characteristics of a Perl hacker, and how best to spot these.


rsnapshot, a remote filesystem snapshot utility based around perl and rsync - David Cantrell
Friday, 1st September 2006, The Onion Room, 1145, 20 mins

rsnapshot is a filesystem snapshot utility for making backups of local and remote systems. Using rsync and hard links, it is possible to keep multiple, full backups instantly available. The disk space required is just a little more than the space of one full backup, plus incrementals.

In the talk I'll probably cover:

  • history of rsnapshot,
  • why you might want to use it,
  • who else uses it,
  • why you might not want to use it,
  • how it works:
    • hard links,
    • perl as wrapper and glue;
  • design choices, in particular external dependencies,
  • problems we've found.

Neuro Linguistic Hacking: Getting more from your Perl Programmers - Karen Pauley
Friday, 1st September 2006, The Morgan Stanley Room, 1210, 20 mins

No matter what size your team is there are always ways to improve how you work together. Whether it's improving your coding standards or trying to find a way to get your two most creative programmers to agree on anything.

This talk will present you with a variety of tips on how to manipulate creative people to improve the team's output.


Spam filtering with Perl (or how to make your email more accessible with perl :)) - Jan-Pieter Cornet
Friday, 1st September 2006, The Onion Room, 1210, 20 mins

This will partly be a quick talk about MIMEDefang, and how we use that at XS4ALL, updated with some new features. Another part will show some examples of how to extend spamassassin, one ugly way and the "right" way.


Lightning Talks - R Geoffrey Avery
Friday, 1st September 2006, The Morgan Stanley Room, 1400, 90 mins

The legendary lightning talks. See the following for more details:


Presentations - TBC
Friday, 1st September 2006, The Morgan Stanley Room, 1600, 15 mins

Presentations


Auction - TBC
Friday, 1st September 2006, The Morgan Stanley Room, 1620, 90 mins Tons of stuff and nonsense to auction, to help raise funds for this year's and next year's conferences.


Closing Ceremony - The Organisers
Friday, 1st September 2006, The Morgan Stanley Room, 1750, 10 mins

Final speeches, thank yous and goodbyes.