SVG Mapping in Perl: Bag o' Tricks

Using a simplified example of generating a network map overlaid with geographical information, the presentation shows a possible decomposition of the task into small manageable chunks and proceeds with implementing them, talking about gotchas along the way and how to solve them.

Highlights: obtaining free geoshapes on a country/continent level, selecting suitable projection, clipping shapes, introducing elements of interactivity to your SVGs, making maps look less cluttered.

Go to presentation.

Last presented: Nordic Perl Workshop 2013, November 23rd 2013, Copenhagen, Denmark

Replacing Relational DB with Redis: a Case Study

While relational databases represent a valuable and versatile tool, they have their problems. For many workloads the performance offered by many RDBMSes does not cut it.

This talk considers one such case, and walks through the implementation of one possible solution, namely the replacement of a PostgreSQL instance with an in-memory key-value store Redis.

The general steps necessary for such conversion are defined and elaborated upon.

The limitations of using Redis instead of an RDBMS are discussed as well.

As a bonus, using Redis as a message bus is described. An implementation of a generic queue for watching Best Practical's Request Tracker's transactions is used as an illustration.

Go to presentation.

Last presented: Nordic Perl Workshop 2011, June 19th 2011, Malmö, Sweden

An Optimization Primer: DBIx::Perlish

The DBIx::Perlish module allows one to use a domain-specific declarative language with Perl syntax instead of SQL for making database queries. This ability comes at a price, however - the parsing of Perl opcode tree that the module performs takes a surprizingly large amount of time.

The talk delves into the implementation details of DBIx::Perlish and its helper modules and then proceeds to discuss challenges involved in making the module cache the generated SQL, together with the solutions to those challenges.

While most of the advanced concepts used by the module will be briefly introduced in the talk, it will help if the audience has at least some level of familiarity with perl optrees.

Go to presentation.

Last presented: YAPC Europe 2010, August 5th 2010, Pisa, Italy

Creating FreeBSD Ports

This talk is about the FreeBSD ports collection, with the emphasis on practical things you need to know should you decide to make a port of some software yourself. A number of "how" and some "whys" are explained.

Three ports are created during the session as an illustration.

Go to presentation.

Fetch a tarball with the complete presentation.

Last presented: The Camp, July 20th 2008, Eskebjerg, Denmark

Serializing Code

Sometimes you want to get an existing sub or a closure and have it stored on disk or in the database, and execute it at some later stage. This talk discusses why you might want to do that, and how you might proceed doing it. The solution involves using one of the more underappreciated CPAN modules out there.

Go to presentation.

Fetch a tarball with the complete presentation.

Last presented: NPW2008, May 25th 2008, Stockholm, Sweden

DBIx-Perlish - Bringing perlish DB handling to the unwashed masses

The DBIx::Perlish module provides the ability to work with databases supported by the DBI module using Perl's own syntax for four most common operations: SELECT, UPDATE, DELETE, and INSERT.

By using DBIx::Perlish, you can write most of your database queries using a domain-specific language with Perl syntax. Since a Perl programmer knows Perl by definition, and might not know SQL to the same degree, this approach generally leads to a more comprehensible and maintainable code.

Go to presentation.

Fetch a tarball with the complete presentation.

Older version from NPW2007, April 29th 2007, Copenhagen, Denmark

Go to presentation.

Fetch a tarball with the complete presentation.

Last presented: YAPC::EU, August 28th 2007, Vienna, Austria

Object-Oriented Perl

This intermediate-level talk is aimed at people who already know Perl but are not very familiar with its OO model. It discusses at length the standard language constructs provided by Perl that facilitate object-oriented programming, its advantages and deficiencies. The methods are described to work around some of the limitations of the object model. Some more advanced topics include discussing multiple inheritance, building automatic properties accessors and creating singleton classes. Finally, non-idiomatic ways of doing OO in Perl are described, in partilular objects as closures with state, inside-out objects, and objects with dynamic methods via the Class::Prototyped module.

Go to presentation.

Fetch a tarball with the complete presentation.

First presented: AAUUG Meeting, February 12th 2007, Aarhus, Denmark
Last presented: NPW2007, April 28th 2007, Copenhagen, Denmark

Perl6, Parrot, and Pugs: bird's eye view

Perl6 is an ongoing effort by the Perl community to design a dynamic programming language following the principles established by Perl5, but substantially better. Parrot is the virtual machine on which Perl6 (and other languages) will run. Pugs is the initial implementation of Perl6. This talk aims to describe, in broad strokes, the design, the philosophy, and the features of all three.

Go to presentation.

Fetch a tarball with the complete presentation.

Last presented: AAUUG Meeting, January 18th 2006, Aarhus, Denmark