<<

SPEAKERS Lunacy V Nicholas Clark Scott Collins & Whirl ’05 Mark Jason Dominus Andrew Dunstan Running Concurrently Jon “maddog” Hall Southwestern Caribbean Andrew Morton OCTOBER 2ND TO 9TH, 2005 Ken Pugh Linux Lunacy V and Perl Whirl ’05 run concurrently. Attendees can mix and match, choosing courses from Randal Schwartz both conferences. Doc Searls Ted Ts’o Michael Warfield

DAY PORT ARRIVE DEPART CONFERENCE SESSIONS

Sunday, Oct 2 Tampa, Florida — 4:00pm 7:15pm, Bon Voyage Party Monday, Oct 3 Cruising The Caribbean — — 8:30am – 5:00pm Tuesday, Oct 4 Grand Cayman 7:00am 4:00pm 4:00pm – 7:30pm Wednesday, Oct 5 Costa Maya, Mexico 10:00am 6:00pm 6:00pm – 7:30pm Thursday, Oct 6 Cozumel, Mexico 7:00am 6:00pm 6:00pm – 7:30pm Friday, Oct 7 Belize City, Belize 7:30am 4:30pm 4:30pm – 8:00pm Saturday, Oct 8 Cruising The Caribbean — — 8:30am – 5:00pm Sunday, Oct 9 Tampa, Florida 8:00am —

Perl Whirl ’05 and Linux Lunacy V Perl Whirl ’05 are running concurrently. Attendees can mix and match, choosing courses Seminars at a Glance from both conferences.

You may choose any combination Mastery (half day) Programming with Iterators and Generators of full-, half-, or quarter-day seminars Speaker: Mark Jason Dominus Speaker: Mark Jason Dominus (half day) for a total of two-and-one-half Almost everyone has written a regex that failed Sometimes you’ll write a function that takes too (2.5) days’ worth of sessions. The to match something they wanted it to, or that long to run because it produces too much useful conference fee is $995 and includes matched something they thought it shouldn’t, and information. A search function might locate ten all courses, course materials, and often it can be hard to predict what a regex will thousand matches. A database query might return the Bon Voyage Cocktail Party. do. This class will fix that. ten million records. What can you do? The first section will explore the algorithm that Perl provides a simple and familiar model for Introduction to Perl 6 (half day) perl uses internally to do regex matching. Under- dealing with such problems: The filehandle! Speaker: Allison Randal standing this algorithm will allow us to predict Instead of reading every file in one giant gulp, we This talk is an introduction to Perl 6, the next whether a regex will match, which of several can use filehandles to staunch the flow of infor- major version of Perl. The primary focus is on matches Perl will find, and which regexes will be mation, trickling it into the program in manage- the syntax of Perl 6, but beyond the syntax, we’ll faster than others. During this discussion we’ll able gulps. briefly look at the some of reasons behind the pause to discuss practical applications that illus- In this class, we’ll see several important modules, changes. What makes one feature more desir- trate features of the algorithm. We’ll examine the such as File::Find and DBI, which use this ap- able than another? What makes it Perlish? What essential but frequently misunderstood concept of proach. We’ll go inside these modules and see how makes it DWIM? How on earth does Larry decide? ‘greed’, and we’ll learn why commonly-used regex to implement filehandle-like data structures and You’ll leave with a better understanding of the symbols like ‘.’, ‘$’, and ‘\1’ might not mean what objects ourselves. We’ll see how to write functions changes in Perl 6, and the fundamental nature of you thought they did. that suspend themselves and then pick up later Perl itself. In the second section, we’ll apply our knowledge where they left off. We’ll learn how to take long- of the internals, examining at several common running slow functions and convert them into Parrot and the Perl 6 (half day) disasters, a few practical parsing applications, speedy filehandle-like data generator objects. Speaker: Allison Randal and some new features such that would have been This fundamental technique is a mainstay of hard to understand before. We’ll see an example Parrot is the virtual machine that will run Perl 6, in other languages, but isn’t as well- of every regex metacharacter and modifier. We’ll as well as Python, Ruby, PHP, and a host of other known as it should be. You’ll be amazed at how finish with a discussion of some of the new optimi- dynamic languages. But more than that, it’s a many difficult problems become simple when you zations that were added in Perl 5.6, and why you suite of tools for compiler writers. It boasts its unleash the power of filehandles. should avoid the ‘/i’ modifier. own object-oriented assembly language, which is • Introduction a breath of fresh air to anyone who’s worked with • Inside the Regex Engine – Filehandles are Iterators XS. It even plays Tetris! This talk is an introduc- – Regular Expressions are Programs – Iterators are Objects tion to Parrot: what it is, how it works, and what – Backtracking – Common Examples of Iterators: readdir, each, you can do with it today. We’ll also dig into the – Quantifiers and DBI implementation of the Perl 6 compiler as a stan- – Greed • Building iterators and Examples dard compiler module in Parrot. – Anti-greed – File tree scanning – Anchors and assertions – Permutations – Backreferences – Genomic Sequence Generator • Disasters and Optimizations – Filehandle Iterators – Where machines come from – A Flat-File Database – Disaster examples – Searching Databases Backwards – Regex modifiers – Random Number Generation – Tokenizing • Alternatives to Iterators – New optimizations • Filters and Transforms: ‘map’ and ‘grep’ – Matching strings with balanced parentheses for iterators • Recursively-Constructed Iterators • The Semipredicate Problem • Alternative Interfaces to Iterators: Tied scalars and handles • An Extended Example: Web Spiders Testing Perl (half day) Developing Web Applications Using When Perl is Not Quite Fast Enough (half day) Speaker: brian foy CGI::Prototype (half day) Speaker: Nicholas Clark Speaker: Randal Schwartz Learn how to test your scripts and modules using This is a tutorial on how Perl run faster, Perl’s test harness, Test::More, Test::Simple, and Randal presents an introduction to what Captain without having to use or XS. In it you will learn the popular Test modules available from CPAN. Neil calls “the most significant web application ways I’ve found to make your troublesome slow You don’t have to be a Perl expert to start testing module since CGI.pm”, the recently released scripts go faster, and how you can try to avoid your creations. Spend a little time with testing CGI::Prototype module. some problems in the first place. and spend a lot less time debugging. Attendees Learn how every CGI application can be reduced The tutorial starts with ways to cheat and duck should know how to create and run Perl scripts, to “figure out what state we’re in ... what got sent the whole optimising problem, as that’s usually and experience using Perl modules is helpful but ... what to respond”, and how to represent that in a much better solution. I present a systematic not necessary. If you want to make your Perl more this flexible framework. The framework maxi- approach to optimising in general, and show robust and have more confidence in your work, mizes code re-use through easy creation of data the Perl tools available to help you carry it out. this course is for you. accessors and methods in a hierarchical class By explaining why the cause of slowness in Perl structure, including trivial one-off lightweight ob- programs often differs from your experience of Creating Perl Distributions (2 hours) ject classes for unusual situations or exceptions. compiled languages, you will gain a better feel for Speaker: brian foy The framework also leverages the industrial- the right types of trade-offs to make to gain speed. strength for generating output. Learn how to put together a Perl distribution, The second half presents a smorgasbord of optimis- including an installer, a test suite, documentation, Full and robust “MVC” applications can be ing ideas to try out, and speed traps to locate and and all of the other things that go into sharing created using CGI::Prototype for the Controller, avoid. There’s bound to be at least one approach your creations with the world. Learn how to use Template Toolkit for the View, and Class::DBI for you’ve never seen before . Module::Release to distribute your Perl creations. the Model data. And although the name begins The tutorial will demonstrate the techniques using Attendees should know how to create and run Perl with CGI, this module is also fully compatible with specific real code as examples, showing code be- scripts, and experience creating Perl modules is mod_perl as well, either as a direct handler or as fore and after. Running this interactively will give helpful but not necessary. If you want to share your an Apache::Registry “script”. Even in CGI mode, a feel for what sort of results can be achieved. Perl code with the world, this course is for you. many things are lazy-loaded and can be cached, for rapid response! Creating Applications with PostgreSQL Introduction to Mod_perl 2.0 (half day) The last half of the class will be spent building and Perl (half day) Speaker: Randal Schwartz a complete application using CGI::Prototype, Speaker: Andrew Dunstan including deployed Class::DBI classes using DBD:: Learn about the heavy-lifting mod_perl interface SQLite for the database. In this seminar learn to use the features of Post- for Perl embedded in the popular Apache web greSQL in an application — with the emphasis server in this introduction. We’ll go over the on Perl-based applications. This session is about API, including sample code, and installation Debugging Web Applications (quarter day) putting the knowledge from the previous sessions instructions. A light introduction to the emerging Speaker: Randal Schwartz to practical use. Especially suitable for data mod_perl 2.0 for Apache2 will also be included. Debugging web applications can be annoying at architects, application architects, and application best, and virtually impossible if you don’t follow programmers. some basic guidelines. Randal talks about his • Using layered application design methodologies of debugging web applications, • ServerSide vs. ClientSide programming starting with the basics of avoiding those “500 • Loading serverside language(s) errors” through a simple placement of CGI::Carp. • Trusted and Untrusted languages He then shows how to use a death handler that • Simple functions incorporates Data::Dumper as a means of placing • Triggers a breakpoint in your web code to reveal the state • Returning a record of the application at any selected point. Randal • Returning a set of things also talks about using Devel::Cover and good web • Calling back to the database tests with WWW::Mechanize (and its cousin, • PLPerl limitations, and future plans CGI::Prototype::Mecha) to ensure that the testing • Getting and installing the client libraries covers your code, so you won’t have as many sur- • libpq – what it is, who uses it and who doesn’t prises in the field once your code is deployed. • Using DBI with PostgreSQL • PostgreSQL programming for web apps (including mod_perl) • Prepared Statements, and why you should use them whenever possible • Other client interfaces (perl and non-perl). • Case Studies from the speaker’s experience • Best Practice tips

Linux Lunacy V and Perl Whirl ’05 Linux Lunacy V are running concurrently. Attendees can mix and match, choosing courses Seminars at a Glance from both conferences.

You may choose any combination Intrusion Detection (quarter day) The Linux Boot Process (quarter day) of full-, half-, or quarter-day seminars Speaker: Ken Pugh Speaker: Ted Ts’o for a total of two-and-one-half We’ll explore the basics concepts of intrusion Ever wondered what happens when your Linux (2.5) days’ worth of sessions. The detection, concentrating on how suspicious traffic box boots? This talk will take you through the conference fee is $995 and includes is detected, as well as common types of attacks. boot process, starting from Lilo or Grub, and mov- all courses, course materials, and Then we’ll use snort. Finally, we’ll examine some ing through the kernel initialization and initial the Bon Voyage Cocktail Party. of the built-in rules and write a few rules of our ram disks, to the /etc/rc.d boot scripts. own. Bring your Linux laptop with a wireless card Risk Management (quarter day) to this session. Recovering From Hard Drive Disk Disasters Speaker: Ken Pugh (half day) Risk management revolves around minimizing Socket Programming for Linux (quarter day) Speaker: Ted Ts’o your exposure to risk and your losses when a risky Speaker: Ken Pugh Ever had a hard drive fail? Ever kick yourself event occurs. In this session, we’ll examine the This session covers programming TCP and UDP because you didn’t keep backups of critical files, basic methods for managing risks. We’ll explore using sockets. We cover creating both a client and or you discovered that your regular nightly backup risk assessment techniques with some interactive a server. Bring your Linux laptop to this session. didn’t? (Of course not, you keep regular backups exercises and develop a risk management plan for This session assumes that you either attended and verify them freuqently to make sure they are a Linux system. the Firewall Basics session or that you have the successful.) For those of you who don’t, this tuto- knowledge of TCP and UDP and that you have rial will discuss ways of recovering from hardware Firewall Basics (quarter day) programmed in C. or software disasters. Topics covered will include Speaker: Ken Pugh backup strategies as well as low-level techniques

to recover data from a corrupted ext2/ext3 filesys- This session encompasses network concepts and New Developments in ext3 Filesystem tem when backups are not available: recovering packet filtering. It starts with an examination of (quarter day) from a corrupted partition table, using e2image the common Internet protocols IP, TCP, UDP, and Speaker: Ted Ts’o to back up critical ext2/3 filesystem metadata, ICMP. It pays particular attention to the packet This talk will discuss upcoming new features and using e2fsck and debugfs to sift through a headers. It then covers how packet filtering that are being developed for the ext3 filesystem, corrupted filesystem. works in both a stateless and stateful manner. In including extent-based allocation, enhanced an interactive mode, the attendees will create a scaleability features, allocation reservations, and security policy to implement in the “Setting up Hands-On GUI Programming with Qt 4 delayed reservations. iptables” session. (half day) Speaker: Scott Collins Introduction to the (full day) Setting Up iptables (quarter day) Qt is the dual-licensed (GPL and commercial), Speaker: Ted Ts’o Speaker: Ken Pugh cross-platform, GUI at the heart of KDE. This talk will be an introduction to the Linux This session starts with a review of the security This session will start with an overview of Qt and kernel, and will touch upon the basic structure policy that a firewall is to implement. We’ll then Qt programming, briefly examining the changes of the kernel, what features it provides, and the set up iptables to implement the firewall. We’ll from Qt3 to Qt4, and then dive into a hands-on most important algorithms it employs. It will not create rules and chains to perform the necessary tutorial implementation. Attendees will build contain any detailed examination of the source packet filtering. Bring your Linux laptop with a a working, non-trivial application using Qt. code, but will, rather, offer an overview and wireless card to this session. This session assumes Programmers new to Qt or to GUI programming roadmap of the kernel’s design and functionality. that you either attended the Firewall Basics ses- in general will gain a working knowledge of the Qt Topics covered will include the Linux scheduler, sion or that you have the equivalent knowledge. toolbox, how to apply it to their specific problems, virtual memory system, filesystem and I/O layers, and how easy it becomes to expand the domain and networking stacks. of their Linux app to other platforms. Current Qt3 users will learn the changes in the landscape for Qt4, and the tools available to migrate their existing code. This session is aimed at C/C++ programmers from just above the novice level and up, who want to learn about building GUIs and/or what’s new in the latest generation of Qt.

An Introduction to Voice- and Video-Over-IP PostgreSQL: Seminars of (half day) Speaker: maddog Tired of paying those phenomenal phone bills? Interest to both Linux Lunacy Tired of paying for every little service that the telephone company deems you should have? Want to save your business heaps of money, yet still and Perl Whirl Attendees get the type of phone service you dream of? Then welcome to the wonderful world of OpenVoIP. Through projects like Bayonne, GnomeMeeting and Asterisk people can finally do the things that PostgreSQL: Advanced Topics (half day) Introduction to PostgreSQL (quarter day) were demonstrated at the 1969 World’s Fair, at a Speaker: Andrew Dunstan Speaker: Andrew Dunstan price they can afford. By the end of this half-day The advanced facilties of PostgreSQL can make How and why to get PostgreSQL up and running. session you will be able to: your applications work efficiently and securely. Designed for those who don’t know much about • make a long distance phone call We explore what those facilities are, and how to databases, and those who know about databases from PC to PC for free make sure they are working well. This seminar but don’t know much about PostgreSQL. Bring • make a long distance phone call from will be very useful for database administrators, laptops -- we might include an installfest if time PC to any phone for pennies systems administrators, data architects, applica- permits. • make a video call PC to PC for free tion architects and application programmers. • What is a database? Why use one? • learn about various low-cost devices to enhance • Composite types, nested types, Why PostgreSQL? your VoIP experience and many more things. domains, and arrays • Installing PostgreSQL This talk will be aimed at a minimum of “tech- • Views • Introduction to PostgreSQL Server nobabble” and a maximum of “here is how you • Permissions and Security and Client programs do it, and here is where you get more informa- • Schemata • Configuring PostgreSQL tion”. Remember, the author wrote the first • Rules • Using the psql client edition of Linux for Dummies. • Triggers • Adminstrative GUIs • Stored Procedures and Functions • PostgreSQL directions The Brave New World of IPv6 (quarter day) • Transactions (or why I helped on the Windows Speaker: Michael H. Warfield • Tuning PostgreSQL port even though I’m a Linux fan) • Configuration parameters IPv6 is the “Next Generation” IP protocol but has • Statistics been largely ignored in areas of the world rich in PostgreSQL and Database Basics • Using EXPLAIN ANALYSE IPv4 addressing capacity. (quarter day) • Vacuuming Speaker: Andrew Dunstan But, IPv6 is available anywhere the Internet is • Connection pooling available, whether end users realize it or not. • Replication Introductory or refresher session covering the ma- IPv6 has been gaining ground in various regions • Backup and Restoration jor concepts that underlie most database systems. of the world and segments of Internet Society If you don’t know or can’t remember what a LEFT and represents new challenges to the established OUTER JOIN is, or what the difference is between infrastructure. a UNION and a JOIN, this session is for you. What will be learned: • Relations (a.k.a. tables) • What IPv6 is, how is it deployed and how • PostgreSQL data types well is it supported • The four basic operations • What IPv6 addressing looks like and what (SELECT INSERT UPDATE DELETE) various address fields mean • Functions and expressions • Support in various operating systems and • Table JOINs and their flavors environments • Table UNIONs • How to access IPv6 anywhere on the IPv4 Internet • Indexes • Some security features and issues with IPv6 • Foreign keys • Various advanced techniques in IPv6 access • Constraints and security • Sequences and ID fields Though IPv6 has been in existance for many many years, people in North America are largely unaware of how easy it is to access IPv6. This will be a fresh look at accessing and using IPv6 over current Internet infrastructures and some of the conse- quences of ignoring it (by end users or ISPs). Pricing and Andrew Morton Booking Information

Andrew Morton is the lead maintainer for the Linux Kernel Disk I/O (half day) Linux public production kernel. Morton works Speaker: Andrew Morton with Linux creator , the kernel Course Fees: $995 for Perl Whirl and/or Linux This seminar will provide a description of the de- subsystem maintainers, Lunacy (mix and match without any additional sign and implementation of the 2.6 kernel’s disk companies, hardware vendors and other interested cost). Only passengers booked through Geek bulk-I/O design. Topics covered will include: parties to ensure that the public production ker- Cruises will be admitted. nel meets their needs. He is the final arbitrator • read-ahead Deposit: $400 per person, due at time of booking. on determining what code is accepted into the • write-back Linux production kernel. Morton has worked in • cache coherence Cabin Type Cruise Rate (per person) software development for more than 20 years. As • the relationship between page-cache Standard Inside $ 699 (GS* available) principal engineer at Digeo, he was responsible • disk buffers Standard Outside $ 799 (GS,* available) for the base in the company’s • disk block mappings Outside w/ Verandah $ 899 (GS,* available) broadband digital home entertainment products. Mini Suite $ 999 The new-in-2.6 disk “BIO” layer will also be de- Prior to Digeo, he was product development Full Suite $1,499 ( available) scribed, as well as the new-in-2.6 direct-IO driver. manager for Nortel Networks Australian &D labs. (Cruise rates subject to change and availability.) Andrew previously served as managing director of an Australia-based personal computer firm Linux Kernel Memory Reclaim (half day) 3rd and/or 4th Person Rate: ages 19 and older, and also worked as a hardware engineer for an Speaker: Andrew Morton $649; ages 2 – 18, $549; under 2 years old, $499. Australian maker of digital gaming equipment. In this seminar you will learn about the design Single Occupancy: 150% for some inside cabins; and implementation of the 2.6 kernel’s caching, 200% for all other cabins. Linux Kernel Development (quarter day) swapping, and memory reclaim architecture. Port Charges and Taxes: Port charges/taxes Speaker: Andrew Morton Some of the topics we will cover include: are $192 per person. The gratuity fee is $70 per Curious as to how, why, and whose code finds its person; this fee covers the Dining Room Waiter, • page reclaim way into the kernel? This high-level, after-hours Assistant Waiter, Head Waiter, Maitre D’, and • page aging discussion (and Q&A) will cover the various Cabin Steward. • the role of swap-cache roles and responsibilities of kernel developers, • swap-out and swap-in Pre-cruise Hotel Stays: Sightsee Tampa from resourcing, motivational, and management issues your home base at the luxurious Hilton Tampa and how these have changed over time. Also the The discussion will also cover the reclaim of VFS Airport Westshore. (Pricing is per person.) kernel’s requirements, development, review, and cache memory and the balancing between page 1 Night 2 Nights 3 Nights testing processes will be revealed. reclaim and VFS cache reclaim. Shared Double $83 $165 $248 The audience will come away with an understand- Single Occupancy $165 $325 $490 ing of why kernel developers do what they do 3rd Person $30 $60 $90 — and how they do it. Full payment is due on July 1, 2005 (or, if you book after July 1, at the time of booking). Please note: space will be very limited by July 1.

Foreign Booking Fees and Additional Payment Physically challenged available Information: There is a FedX shipping charge *Guaranteed Share (GS) Fares: This plan is (cruise tickets) of $60 per foreign residence ($35 Geek Cruises, Inc. for passengers who are coming on a Geek Cruise per Canadian residence). There is a $25 charge 1430 Parkinson Avenue by themselves and wish to share a cabin with for returned checks. Palo Alto, CA 94301 another Geek Cruises passenger (not the same Air Add-ons: Airfare from most major cities is gender) in an inside or outside cabin only. The 650-327-3692 available through the cruise line. You can call prices are the same as the per person double oc- 928-396-2102 fax our office for this pricing. (These rates include cupancy rates. Share Passengers who smoke are 215-519-0141 cell transfers to/from the dock/airport plus transfers not to do so in the cabin, unless okayed by fellow [email protected] to/from your hotel if we’ve booked the hotel as roommates. We try to match passengers with CST# 2065380-40 well.) In most cases, however, you will find better someone close in age, whenever possible. airfares on your own. Note: Carnival Cruise Lines will not accept any booking unless a fully completed Reservation Form is accompanied with a per-person deposit: http://www.geekcruises.com/booking/ ® ll05_booking.htm