Building the network you need with OpenBSD's PF

Peter N M Hansteen

Tutorial, Full day

This tutorial focuses on building the high performance, low maintenance network you need. Along the way we explore the whys and hows and cover all bases from the basic one machine configuration and basic local area networks, all the way up to configurations with traffic shaping and load balancing with "self healing" networks and spamming. A basic understanding of TCP/IP and some Unix knowledge is assumed.

Effective Spam and Malware Countermeasures

Network noise reduction using free tools

Peter N M Hansteen

Talk, 45 minutes

A certain proprietary software marketer stated in 2004 that by 2006 the spam and malware problems would be solved. This paper explores what really happened, and presents evidence that the free software world we are in fact getting there fast and having fun at the same time. We offer an overview of principles and tools with real life examples and data, and cover the almost-parallel evolution of malware and spam and effective counter-measures. We present recent empirical data interspersed with examples of practical approaches to ensuring a productive, malware and spam free environment for your colleagues and yourself, using free tools. The evolution of content scanning is described and contrasted with other methods based on miscreants' (and their robot helpers') behaviour, concluding with a discussing of recent advances in greylisting and greytrapping with an emphasis on those methods' relatively modest resource demands.

Managing Monitoring in Distributed Environments

Simon Wilkinson (University of Edinburgh)

Talk, 45 minutes

Implementing a reliable, redundant, distributed system requires the use of some form of system monitoring to detect and resolve failures. As network size grows maintaining an accurate monitoring configuration becomes more and more difficult. This talk discusses the ways in which an existing system configuration database may be used to produce a monitoring definition for an entire site. Through our local perl-based implementation on top of the Nagios monitoring system, and the LCFG configuration language, we'll discuss the ways in which dynamically creating a monitoring model can ease system management. We'll consider the overall reliability of such a system, as well as the pitfalls that automating the production of the monitoring model may introduce.

Building a new model for account management

Simon Wilkinson (University of Edinburgh)

Talk, 45 minutes

Identity Management is a popular buzzword in today's enterprise software market. However, most Open Source identity management products are focussed on very specific use cases, and lack sufficient generality for use in large institutions. We'll examine the current state of the art in account provisioning, and discuss the challenges facing these systems when dealing with the increasing desire for management delegation, and the necessity for compartmentalising aspects of a single identity. We'll introduce a new distributed account management system under development by the School of Informatics at the University of Edinburgh which uses a central LDAP data store, and perl or python based data propagation scripts. The design motiviation for this system will be discussed, and feedback solicited on ways it could be of use to a more general audience.

System Configuration : An end to hacky scripts?

How a system configuration tool can be used to improve the life of a system administrator.

Stephen Quinney (University of Edinburgh)

Talk, 45 minutes

Most system administrators have a personal toolbox full of handcrafted scripts which they use to install and configure their machines. Every change in requirements, system quirk and configuration file peculiarity leads to another quick hacky code alteration. We will discuss how using a configuration management system, such as LCFG, you can leave those days behind. We will show that it is simple to write system-independent configuration scripts, in Perl or shell, using the framework provided by LCFG. We aim to demonstrate why it is better to specify the required state of a machine rather than write scripts to achieve a particular configuration change. We will also show how having a well-specified description of the requirements for systems simplifies the management of the relationships between systems in a network. This can allow the administrator to avoid mistakes and remove the drudgery from the frequent housekeeping chores.

LCFG is an established configuration framework for managing large numbers of Unix systems which has been in production use for many years. It is particularly concerned with specifying and managing the relationships between clients and servers in large installations.

Flexiscale : Next Generation Data Centre Management

a system to automatically manage the migration of virtual machines for load-balancing and resilience against failures.

Gihan Munasinghe (Xcalibre Communications)

Paul Anderson (University of Edinburgh)

Talk, 45 minutes

Flexiscale, is a next generation data centre solution. Based on virtualisation technology, the services are intended to be location and hardware transparent. It currently employs Virtual Iron as the virtualisation management platform, and Xen as the virtualisation platform.

In this talk, we will describe the current architecture and some of the problems that we encountered with Phase I of the project, which is already in production use. We will then discuss the second phase of the project which is currently under research and development; this is intended to allow data centres to automatically cater for usage fluctuation with a guaranteed QoS level for underlying services.

Using various algorithms for load prediction, hotspot detection, and migration, we hope to guarantees the maximum utilisation of the data centre hardware without breaking the QoS levels -- the current prototype of phase II is able to add and remove virtual servers for a specific service bound by QoS levels. Within an 18 minute period of fluctuating usage, the prototype system is able to scale up the service on to 6 new virtual servers and load balance them. When the usage goes down the service is scaled down by removing the extra virtual servers and only keeping only the number of virtual servers to satisfy the QoS level.

Utilisation of virtual infrastructures for efficient realisation of SaaS

Utilisation of virtual infrastructures to assist SOA for efficient realisation of SaaS

Sas Mihindu (University of Salford)

Talk, 45 minutes

SOA (Service Oriented Architecture) is targeted for organising the 'spontaneous enterprise' that consists of solutions (dynamically organised services) which promote reuse, growth and interoperability. As one of its implementation strategies Internet Technologies have been exploited to a great detail. The utilisation of Virtualisation Technology for the facilitation of SOA has become highly relevant for realising the SaaS (Software as a Service) model by every organisation. The paper promotes this notion as a timely way forward.

Advances in OpenSolaris Network Administration

Phil Kirk (Sun Microsystems)

Talk, 45 minutes

For sometime network administration on Solaris has been perhaps harder than it should be and harder than it is on other platforms. This presentation covers the recent projects that have been undertaken to address this problem making OpenSolaris a more compelling platform for developers, administrators and users. The projects that this presentation covers are:

  • NWAM (Network auto magic) - Making network configuration easier
  • Clearview - Providing a uniform set of features across all network interfaces
  • Brussels - Simplifying NIC configuration and tuning
  • Crossbow - NIC virtualisation and resource management

ZFS - The last word in File Systems

Presentation highlighting some of the high level design decisions for ZFS

George Shepherd (Sun Microsystems)

Talk, one hour

The breakthrough Zettabyte file system, meets the needs of a file system for everything from desktops to data centers, and offers; Simple administration, Provable data integrity, Unlimited scalability, and Enhanced performance.

This talk goes into the design for end-to-end data integrity and how raidz gets around the raid5 write hole.

Using cross-platform virtualisation for enterprise workload mobility

Geraint North (Transitive)

Talk, 45 minutes

This presentation examines the impact on IT infrastructure management of the workload mobility that is made possible by deploying cross-platform virtualisation, and the new opportunities provided by the Linux Kernel Based Virtual Machine (KVM), which raises the possibility of a radically different and exciting form of cross-platform virtualisation.

By allowing enterprise workloads such as Solaris/SPARC applications to be no longer tied to a particular server, this introduces a number of opportunities and challenges to systems administrators. For example, such a capability makes it possible to cost-effectively replicate Solaris/SPARC workloads for scaling applications and for redundancy (to provide high availability and disaster recovery). It also means that workloads that were previously managed with separate utilities can now be managed within a single environment (either Solaris or Linux). The result is a simplified environment for system administrators to manage, yet it can embrace a broader and more diverse range of workloads. Examples include IBM's new PowerVM Lx86 as well as the QuickTransit range of enterprise cross-platform virtualisation solutions.

Today's Software ... Is It Really Bloated?

Dr Randy Appleton (University of Northern Michigan)

Talk, 30 minutes

Many people complain that today's software is increasingly bloated and slow and demanding of resources. But few people can offer any numbers to quantify the problem. This talk answers the question by presenting the results of two studies. We measured the change in speed and resource consumption of user level applications such as word processors, paint programs and compilers over a six year time span. We also measured the change in size and performance of the Linux kernels over a four year period. This talk presents the results.


Dr Martin Wright (West Midlands Police)

Talk, 45 minutes

The creation of WARPs, where people work together and share information on threats, incidents and solutions can address many of these problems very cost effectively. WARPs (Warning, Advice and Reporting Points) are being promoted by the UK government's Centre for Protection of the National Infrastructure CPNI since they contribute to the overall reduction of ICT vulnerabilities generally.

A WARP is set up to provide a service to members of a particular community, usually of between 20 and 100 members (in order to preserve a personal community feel). The Midlands WARP operates alongside the National e-Crime Prevention Centre and uses a website, email, telephone, SMS, and occasional meetings (where possible) to send a personalised service of warnings and advice to ITS members. The Midlands WARP undertakes to:

  • filter relevant information and deliver it to the community;
  • facilitate the sharing of advice and best practice within the members of that community.
  • help build trust within the community thereby encouraging members to report incidents to each other;
  • anonymise these reports and where relevant, share them with other WARPs.

Dr Wright will argue in his paper that the UKUUG community should join the Midlands WARP in establishing a UKUUG WARP.

Feeding the BBC Homepage

Mark Gledhill (BBC Internet)

Robin Doran (BBC Internet)

Talk, 45 minutes

The BBC homepage is a Web 2.0 style application populated by constant streams of data from around the website. Perl is used to continually collect feeds, process data and publish content in order to keep the web-page up-to-date and give it a dynamic feel, and the application was developed rapidly using industry-standard development tools.

In four months the BBC homepage went from initial design to a Beta release. A key part of the project was the concept of continually updating the page with content from sites around the BBC. In order to achieve this data feeds needed to be set up and obtained from these sites, and then an application had to be developed in order process these feeds and continuously feed the homepage with fresh content. The application, given the working title of the FeedEngine, was developed in Perl using Catalyst, Continuous Integration, Agile and Test Driven Development, and achieved the goal of running on an infrastructure based best suited to providing static content while giving the homepage a dynamic appearance.

Backstage is a BBC service that aims to support and encourage innovation within the UK developer community, this paper is brought in conjunction with backstage.


Brian McCaulay (University Hospital Birmingham)

Talk, 30 minutes

Gems are small items of high value and/or great beauty typically found in a mass of worthless material. Usenet is the original global distributed discussion group network. Usenet, mailing lists and other online forums are a major part of the Perl social scene, providing an extensive free resource of expert (and not so expert) advice on a range of technical issues in and around Perl.

This talk explores briefly some of the rules and pitfalls of social interaction in a technical discussion forum and then looks at some 'Gems' where often seemingly simple questions have revealed surprising and/or fascinating things about Perl.

OpenLDAP 2.4 Improvements

Gavin Henry (Suretec Systems)

Talk, 30 minutes

OpenLDAP has been replacing proprietary directory server offerings in business critical areas at an increasing pace. This is largely due to its performance and scalability, dynamic configuration capabilities and flexible extensibility via bundled modules.

In this talk, an overview of the latest OpenLDAP 2.4 offering will be given and the numerous new features and improvements since the 2.3 release cycle will be discussed.

This is not just a talk about the list of changes since the 2.3 release cycle, it will also briefly cover how these features and changes can be put into practice in various scenarios and how they can help your project or product.

Dynamic Languages

An Introduction to Python

This tutorial is aimed at people who may have some programming knowledge in other languages and who want a fast track into Python. If you have no Python experience, or have 'picked up' a little, it will suit you.

John Pinner (Clockwork Software Systems)

Tutorial, Full day

The tutorial will start by getting to know the Python interpreter and taking a look at Python's introspective features, moving onto data types, sequences and dictionaries. This will be followed by functions, classes and modules and by the end of the day you will know how to develop your Python knowledge further. Just right in fact to take advantage of Dave Jones' tutorial on Functional Programming later in the conference!

Perl Teach-In

Dave Cross (Magnum Solutions)

Tutorial, Full day

The demand for Perl programmers is higher now than it has been for some time. There are many people who use Perl as part of their job but who don't know Perl well enough to apply for some of the Perl jobs that are being advertised.

This full day tutorial addresses this by covering some of the more advanced Perl topics that might be missing from your Perl programming knowledge. by the end of the tutorial, attendees should be more confident it their Perl abilities and have a better idea of how Perl experts approach Perl programming.

Topics covered include: CPAN tools, templating, ORM, testing, benchmarking and object oriented Perl.

The tutorial is aimed at people who have some Perl experience and who would like to take their Perl knowledge to the next level.

Testing with Selenium

Barbie (Birmingham Perl Mongers)

Talk, 45 minutes

Selenium is a web testing tool, primarily used to test websites. Unlike some static web testing tools, Selenium provides a way to reliably test dynamically generated sites, including those that have Javacsript

embedded in the page or use Ajax. This talk looks how Selenium works, demostrates how to create tests and test your website. Regardless of your language choice (Selenium supports Perl, Python, Ruby, PHP,

Javascript, HTML and Java), this talk will interest you if you have to maintain websites and a need a test suite. Audience: Beginner level.

Testing with Perl

Barbie (Birmingham Perl Mongers)

Talk, 45 minutes

On CPAN, the Perl code repository, there are over 100 testing distributions, many looking at a distinct aspect of testing. This talk takes a selection of the most valuable testing distributions and highlights how to get the best out of your test suite. Code examples of test suites and demostrations of running test suites included. Audience: Beginner level.

Option and Configuration Processing with Perl

Option and Configuration Processing Made Easy

Jon Allen (Birmingham Perl Mongers)

Talk, 30 minutes

Many useful programs take arguments and configuration options. It's easy to add one or two, but as your program gains more features, the difficulty of allowing configuration concisely and intelligently also grows.

This talk demonstrates how to unify argument and configuration processing in a way that keeps your code readable and concise, and also simplifies the interface for end-users.

Excel on the Command Line

Using Perl to Process Excel Spreadsheet Data

Jon Allen (Birmingham Perl Mongers)

Talk, 30 minutes

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.

Introduction to Functional Programming with Perl

Jon Allen (Birmingham Perl Mongers)

Tutorial, 45 minutes

The Perl language supports many different programming styles. While procedural and object-oriented are generally the most common, complementing these with code written in the functional style can bring many advantages.

This talk introduces functional programming - no prior knowledge is required - and shows how functional concepts can be used to make your code easier to maintain, by simplifying complex algorithms and separating control flow from implementation.

Extract, transform and load tabular data using Python

An introduction to using Python as a data processing tool, to specify & perform Extract Transform and Load (ETL) operations.

Alex Wilmer (MoD)

Talk, 30 minutes

Database administrators are often asked to migrate data in to, out of and between disparate systems. The data can be scattered across systems, in various formats, in adherence (or not) to a range of business rules and time is short. Python softens the blow. With only a few lines of code this powerful and simple programming language allows one to connect to all those systems, extract the data, convert & transform it, then load into the new system. With these steps Python can form the basis of an Extract Transform and Load tool.

This talk will describe common tabular data formats such as Comma Separated Values (CSV), XBase/DBF, Hierarchical Data Format (HDF), Javascript Object Notation (JSON), relational databases, spreadsheets & XML. It will cover their limits, characteristics & demonstrate Python routines to extract their contents. The talk will then demonstrate typical transformations - including selection of attributes/columns, filtering, translation, derivation of new values and validation. Finally the talk will show how the data may be loaded into a target system, directly or by saving to a suitable import format.

Introduction to Functional Programming in Python

A brief introduction to functional programming techniques in Python. Including lambda.

David Jones (Ravenbrook Limited)

Tutorial, 45 minutes

Python supports many programming styles: object oriented; data-driven; procedural. One of Python's strengths is that it doesn't prevent you from programming how you want to. Functional programming is another style of programming for which Python has good support.

Functional programming is typified by functional languages such as ML and Haskell with their emphasis on immutable values and higher-order functions. In functional languages it's hard to do anything but functional programming, but of course functional programming can be done in any language, and in this tutorial I introduce a few of the functional programming techniques and ideas, and show how they can be used in Python.

The Great Language Debate

Dr Russel Winder

Talk, one hour

The main programming languages used today are Java, C++, C, C# and Visual Basic. Dynamic languages such as Python, Ruby and Groovy are however rising very rapidly. Why? Because they make applications programming easier. In this session we will do a bit of a compare and contrast of the features and capabilities of these languages.

Until recently "use static typing" had been an unchallenged mantra in programming. The rise of the agile methods, and the acceptance that static languages do require longer to build systems, has changed things.

Python, Ruby and Groovy are the three main dynamic languages that people see as having a core place in programming over the next few years. Ruby is rising on the back of the success of Ruby on Rails. Groovy is rising on the back of Java being the main language of development and being symbiotic rather than competitive with Java. So where does that leave Python?

Arguably Python is more mature, more stable, has more installed applications than Ruby and Groovy. Actually this is not entirely true as stated, but what is certainly the case is that many applications that might in the past have been written in C, C++ or Java, are now being written in Python. Many Gnome applications certainly are now Python applications rather than C or C++ applications as the Gnome bindings for Python are as good as the C and C++ bindings -- something that cannot be said for Ruby or Groovy!

The question though is: Is this the right thing to do? Should dynamic languages replace static languages? Perhaps, reality is that some applications will always be written in C, C++, Java, etc. because that is the right thing to do.

Dynamic Tracing and Dynamic Languages

John Levon (Sun Microsystems)

Talk, 45 minutes

I will be talking about the marvellous synthesis of dynamic tracing and dynamic languages, in particular Solaris's DTrace and Python. I'll show the unique features of this combination helps Python users answer questions about their script's behaviour that was almost impossible to answer before, along with a quick demo.

An Introduction to DBIx::Class

Tom Hukins

Talk, 30 minutes

Most Perl developers know DBI as a convenient module that provides a standard interface to various relational databases.

Many extensions to DBI exist: this talk examines DBIx::Class and its related modules. Developers considering using more than plain DBI might find this talk interesting.

DBIx::Class translates database records to Perl objects, dealing not only with simple mappings between the two, but also complex relationships that help developers work with legacy databases and optimise their code's performance.

Perl Web application packaging and deployment

Matt S Trout (Shadow Cat Systems)

Talk, 45 minutes

The different approaches available to managing development, packaging and deployment of Perl web applications in a Unix environment, including;

  • distro package building
  • single-file application deployment
  • compartmentalised CPAN install trees
  • mod_perl and fastcgi
  • versioning and zero-downtime upgrade strategies

derived from Shadowcat's work with client companies to rationalise their approaches to their development and production perl environments.

Perl is

Mike Whitaker (Yahoo! UK)

Talk, 30 minutes

A look at the nature of Perl as it comes up to its 21st birthday - examining what it is, what it isn't, what it can do for you, and dispelling some of the myths and FUD surrounding what is still a relevant, powerful programming language.

Perl-based Mobile Production Ssystems - the WAP Admin Tool

Daniel Giribet (BBC Mobile)

Barnabas Aspray (BBC Mobile)

Talk, 45 minutes

The BBC has been focusing on providing extensive time-sensitive information on the go as well as attractive messaging services, drawing both from its comprehensive content production capacity and its numerous partners. Perl technologies are playing a central role in the content production, operation, exchange and publishing of the BBC's Mobile Platform.

Backstage is a BBC service that aims to support and encourage innovation within the UK developer community, this paper is brought in conjunction with backstage.

Perl Regex processing

Brian McCaulay (University Hospital Birmingham)

Talk, 30 minutes

A quick look at the Perl pattern matching grammar (historically, but increasingly inaccurately, known as 'regular expressions'). A review of how features of pattern match grammars have moved like viruses from language to language.

Command Line Option Processiing with Python

John Pinner (Clockwork Software Systems)

Talk, 30 minutes

A guide to the various means of processing command line options with Python, this talk will explain the methods available, from simple manipulation of the arguments themselves through to using a powerful object oriented argument parser.


Welcome and PostgreSQL in the UK

Simon Riggs (2nd Quadrant)

Talk, 30 minutes

The PostgreSQL developers are constantly surprised to hear about new and interesting ways that their code is put to use throughout the world, and the UK is no exception. In this talk PostgreSQL use and growth within the UK over the last few years will be discussed.

How the PostgreSQL Project Works

Dave Page (EnterpriseDB)

Talk, 30 minutes

The PostgreSQL project is a global effort with hundreds of contributors from dozens of countries and companies. This talk will examine how the project is organised, and how it differs from 'the other Open Source DBMS'. The development process will be examined, along with the life cycle of a typical patch, from initial idea to inclusion in a release.

PostgreSQL at

Chris Fewtrell (Claranet)

Talk, 30 minutes

Claranet Group's proprietary business order management and invoicing system, Messina, is currently used at 7 sites in Europe and the United States with PostgreSQL at it's core. Disaster recovery procedures rely on Write Ahead Log Shipping, and there is currently work underway investigating and testing the use of Slony I to consolidate data into a global database.

Chris will be discussing these aspects of the Messina system, as we as it's internal use of adaptive triggers and functions which are able to adjust their operation dynammically based on the database schema.

PostgreSQL Performance Features in 8.3

Simon Riggs (2nd Quadrant)

Talk, 45 minutes

In his second talk Simon describes each of the new performance features in 8.3, and some viewpoints on performance in the next release. One of the most popular talks at the recent FOSDEM conference in February.

Availability of PostgreSQL in the Data Centre

Detlef Ulherr

Talk, 45 minutes

In addition to Sun's PostgreSQL strategy, this presentation will detail the integration of PostgreSQL into Solaris OS and Open HA Cluster / Solaris Cluster. The presentation will cover the various methods and architectures used to increase the availability of PostgreSQL in the data centre as well as how to integrate built-in PostgreSQL features such as WAL file shipping, pg_standby and the Slony-I project. If time permits there will be a short live demonstration.

Experience with Full Text Search

Richard Huxton (Archonet)

Talk, 15 minutes

PostgreSQL 8.3 finally brings full-text indexing into the core distribution. This talk will give a brief tour of the components making up the full-text search system and explore two real-world uses of it.

There will be exploration of its strengths and weaknesses and a brief discussion of some of the issues scaling from a thousand documents to a million and more.

Integrating Map Data with PostGIS

Mark Cave-Ayland (Sirius)

Talk, 30 minutes

Integrated Monitoring for PostgreSQL

Tim Retout (Credativ)

Talk, 30 minutes

PostgreSQL can collect a variety of statistics about database performance and usage, which administrators can gather with database queries or via SNMP. They can then integrate this data into software such as Munin to produce performance graphs, or Nagios to generate notifications.

This talk will outline the more important measurements that can be made, how to find these across different PostgreSQL releases, and how to use them with monitoring tools to tune the performance of installations.

Explaining EXPLAIN

Greg Stark

Talk, 45 minutes

One of Postgres's more powerful features is the EXPLAIN utility statement which details a step-by-step plan for your query. Explain can show you where time is being spent in your queries and why, and is critical to optimising performance. We'll survey the supported plan nodes in Postgres and demonstrate some of the tricks of the trade used to understand query plans.


Lightning Talks, Draw and Close

Plenary Event (whole conference), 90 minutes

Lightning Talks are a popular feature, and are ideal for people who have something to say but are not ready for a full talk. You can float an idea, describe a project you're working on, solicit help, or even have a rant. The idea is that each speaker is given just 5 minutes to talk, and no more.

Lightning Talks are less formal than the full talks, and are often prepared during the conference, maybe in response to something you heard in a talk, or in conversation with another delegate. Wednesday's Lightning Talk session is right at the end of the conference, so you'll have time to get your ideas over.

After the Lightning Talks there will be a Grand Draw for a number of prizes, and the presenter of the best Lightning Talk will win a specially-donated award.

Open Space for BoFs

Meeting, 90 minutes

During this time slot the Arena Foyer is available for Birds of Feather sessions, arranged by the delegates.

You can arrange BoFs through the Conference wiki, or during the Conference itself.

Open Space for BoFs

Meeting, 90 minutes

During this time slot the Arena Foyer is available for Birds of Feather sessions, arranged by the delegates.

You can arrange BoFs through the Conference wiki, or during the Conference itself.


Meeting, one hour

A full hour available for the first PGUK Birds of Feather sessions.

You can arrange BoFs through the Conference wiki, or during the Conference itself.

PostgreSQL UK User Group Meeting and wrap-up

Meeting, 30 minutes

A great opportunity to get involved in the PostgreSQL UK User Group.

Software patents and open standards

Pieter Hintjens

Plenary Event (whole conference), 30 minutes

An explanation of the current situation with respect to software patents in Europe, how these affect open standards, and the initiatives we (the FFII community) are undertaking to make things better.

Python was used to build this site Valid XHTML 1.0 Transitional Valid CSS!