Upcoming Events

November 27th, 2017

  1. Alex Littlejohn :: Building apps with Flutter

    Our learnings from attempting to re-implement the Pulse app in the Flutter SDK.

  2. Kayla Meduna :: Imposter Syndrome: The Battle Begins

    Imposter syndrome: feeling inadequate despite evidence of success. Come learn more about what impostor syndrome is, what it can turn into, how to overcome it, and how to help others who are struggling. There will be activities.

  3. Mickey Nasriachi :: Dancer from Scratch

    A web-framework is great. In fact, it's awesome. it's way more stable/secure and tested than anything you will build yourself in one afternoon.

    But.... you will better use the framework if you understand how it works and there's no better and more fun way to do that than to build your own - so attend my talk to find out how you can easily do that using a few simple building blocks.

Previous Events

June 8th, 2018

  1. brian d foy :: A survey of the most interesting Perl 5.26 features

    Perl 5.26.0 just came out and it carries quite a few interesting things with it. Hear all about it!

  2. brian d foy :: PrettyDump'ing in Perl 6

    brian presents his PrettyDump module, a data dumper for Perl 6, along with the interesting Perl 6 features in its implementation.

    He started working on this as a way to create quick data dumps for Learning Perl 6 examples but things got a little out of control.

Feb 27th, 2017

  1. Stevan Little :: Hold my beer and watch this!

    Perl has been described in many ways; a Shinto Shrine, executable line noise, a Swiss Army Chainsaw, the Duct Tape of the Internet, etc. But I think Perl is more like a old pop star, always reinventing itself to stay relevant, never truly leaving our consciousness, always just a melody away. What is the state of Perl today? Will Perl 6 be the big comeback? Will 2017 be the year we make Perl great again?

  2. Sawyer X :: Perl 5.24, 5.26, and the Future of Perl 5

    Perl 5 is doing well in its latest stable version: 5.24. It will soon see it's newest version: 5.26. So why is 5.24 exciting, why will 5.26 be even more exciting, and what can we expect of future versions of Perl 5?

    This is my talk given at FOSDEM, for those who could not attend and would like to know what the status and the future of Perl 5 is.

May 30th, 2016

  1. Frederico Recsky :: Translate Perl to Javascript

    Using Perlito "perl dialect", we translate perlito to javascript and run it on browser.

    The only goal is to introduce new comers to out beloved language.

  2. Yati Sagade :: Writing (parts of) Android apps in Perl using Perlito

    A demo of using the Perl -> Java compiler from the Perlito project to "run" Perl on the Android Java runtime.

  3. Flávio :: Perl to Java compiler

    Compile Perl to Java source code, run your Perl in smaller and bigger places like Android, Hadoop. Learn more about how Perl works in a different memory system, with access to a different set of libraries.

  4. Bosko Devetak :: Perl as a first class citizen in Hadoop land

    In Hadoop land (MapReduce, Hive, HBase) all non-jvm languages are second class citizens that mostly depend on the REST or thrift servers in order to get access to different functionality. But not all is available so it can be limiting at times.

    Luckily, Perlito Java Backend opens up the possibility of accessing native hadoop/hive/hbase java APIs from Perl.

    This talk will give some examples of that, like writing Hive UDF’s in Perl using Perlito Java Backend.

March 22nd, 2016

  1. James Laver :: Not Your Grandad's C++

    Build Your Own Modern C++

  2. Frederico Recsky :: Translate Perl to Javascript

    Using Perlito "perl dialect", we translate perlito to javascript and run it on browser.

    The only goal is to introduce new comers to out beloved language.

  3. Ben Tyler :: Playing with shiny things: Introduction to Elixir

    Erlang! Functional programming! Concurrency! Distributed systems! Nine nines uptime! Custom sigils! (wait, custom sigils??)

    Elixir is a nifty language built on top of the Erlang VM -- it pairs the Erlang superpowers (concurrency, reliability, distributed systems) with a Ruby-ish syntax and some revisions/reinterpretations of the Erlang standard library.

    We'll go through some of the strong and weak points, then build a simple application together.

    Along the way, we'll compare some of the properties of the Erlang concurrency model to the event loops we often use for writing asynchronous programs in Perl.

January 25th, 2016

  1. Mickey Nasriachi :: PONAPI - The anti-bikeshedding tool for your REST API

    Tired of arguing over how JSON responses should be formatted?

    Come to my talk and I'll show you how you can avoid it.

  2. Gonzalo Diethelm :: Devel::QuickCover - Quick & dirty code coverage for Perl

    A lean and mean XS module that gathers runtime code coverage information

    We will briefly describe how Perl uses an optree and how we can hook into it for our own nefarious purposes.

    Then we will discuss the very simple implementation of Devel::QuickCover, which tracks what lines in each loaded Perl module are actually executed.

    The talk will end with some real world instances of using Devel::QuickCover.

  3. Dana Jacobsen :: Practical Cryptography

    This talk will discuss cryptographic hashes, signing with DSA, encrypting with RSA, and random numbers.

    Rather than discussing the theory and the hundreds of modules available, the focus is on a few good tools to get things done.

  4. Vikentiy Fesunov :: Rust inside Perl

    Rust is a new systems language with strong focus on memory safety.

    It tries to help programmers write more correct code with as little runtime overhead as possible.

    XS is an interface used by the perl interpreter to talk to native code, built on top of the C language.

    This project's goal is to bring XS API to Rust and explore ways Rust can make development of well behaved perl extensions simpler.

November 30th, 2015

  1. Gonzalo Diethelm :: HTTP::XSHeaders -- reimplementing the interface of HTTP::Headers in C (30 min)

    HTTP::Headers is a library that handles a collection of headers and their values;

    this talk presents the fascinating voyage from working but slow(er) Perl code to fast(er) and (almost) working C code.

  2. Stefan Hornburg (Racke) (30 min) :: DBIx::Class - Can of Worms || Best Thing Since Sliced Bread

    DBIx::Class is both a very useful tool for applications using SQL databases and an intimidating piece of software.

    You can find comprehensive documentation about DBIx::Class on CPAN, but it is not easy to find the stuff that makes it the best thing since sliced bread.

    In this talk we brush through the rough edges of DBIx::Class and look how they can be alleviated with goodies like Candy, Helpers and other amazing add-ons for DBIx::Class.

    Also I will make a case why using DBIx::Class is a splendid idea, for example getting rid of embedded SQL, painless database upgrades and keeping the business logic outside of your main applications.

  3. Sawyer X :: RFC: Ref::Util: accurate functions in XS for checking references (possibly using custom op codes) (30 min)

    "ref($ref) eq $ref_type" is very common but inexact. instead, I wrote some functions in XS to do it accurately. What? XS? How? Let me show you.

October 26th, 2015

  1. Jader Dias :: Parallel Crawler in Perl6 and Go (15 min)

    how a new Perl6 feature can make scheduling new workers during the execution of older ones easier and terser

  2. Vikentiy Fesunov :: Writing JIT compiler in Perl (10 min)

    An overview of a project to write a JIT compiler for a simple language in Perl.

  3. Julian Levens :: Proper symlinks for Windows perl (30 min)

    Windows has had hardlinks and junctions for some time (circa 2000). However, you needed to call the Windows API to use them. For perl circa 2004 Win32::Hardlink and Win32::Symlink came to CPAN but as junctions are not symlinks these are not a seamless replacement. Since Vista, Windows has had POSIX compliant symlinks. This talk will cover the development of Win32::Links to transparently support symlinks in Windows perl scripts.

  4. Maxim Vuets :: very iterators. so lazy. amaze! (20 min)

    An iterator is a neat concept to hide complexities of accessing a data collection behind a simple interface. Moreover it enables one to benefit from lazy evaluation, modular code design, and code-as-data.

    In this talk I want to refresh your memory on Perl built-in iterators and closures. Then take an iterator-less example of code and step-by-step bring it to an iterator-ful shape.

    Don't be hold off by all the buzz words---I'll have kittens!

July 27th, 2015

  1. Eli Abramovitch :: Breathing life into perl with an Intellij Plugin

    We all love perl and it's been long overdue to have a decent IDE to support it.

    In order to make our coding life more easier and attract more new developers - we created Perl Intellij Plugin.

    In this talk I will demonstrate the plugin benefits and how it contributes to the daily life of a Perl hacker.

  2. Mathias Rørbo Jessen :: PowerShell - Next-level Automation in Windows-land

    Since late 2006, a new scripting language has come to dominate the way IT Pros manage Windows-centric environments. What is PowerShell, where did it come from, does it bring anything new to the table and what's up with the weird mix of C# and Perl-like syntax? This talk will try to answer some of those question!

  3. Maxim Vuets :: Processing toki pona with Perl

    Toki pona is a constructed language, it strives for making the world simple. Perl is a programming language, it's known to be good at text processing (mangling? cruching?). They both are good, TIMTOWTDI, fun and intensively rely on context.

    In this talk I want to take Perl to the next level and demonstrate how it can be applied for language processing (mangling? crunching?) using toki pona as an example. We will take a look at parsing free-form text with a help of Marpa and writting a rubbish generator with the help of Markov chains.

June 29th, 2015

  1. Maxim Vuets :: Warm and fuzzy text matching

    I had a problem: got two somewhat-structured music playlists that were overlapping and I wanted to merge them together.

    In this talk I will explain what fuzzy text matching is; cover a couple of techniques to do it; and showcase how Text::Fuzzy helped me to solve the problem. Colored terminal examples included.

  2. Peter Rabbitson (Ribasushi) :: From 2D to Tree-D

    This talk will go over the internals of the DBIC rowparser, showcasing a practical example when code generation is useful (and thus justified). This is purely an algorithmic presentation - no knowledge of DBIC or even databases is necessary.

  3. Ben Tyler :: Distributed Systems 102: CRDTs for Poets and Perl Hackers

    In which a humanities major reads a bunch of papers on distributed systems theory and attempts to explain them in plain language.

    Fortunately, conflict free replicated data types (CRDTs) are just a straightforward monotonically increasing join semi-lattice with a least upper bound accomplished by enforcing idempotent and commutative merge functions (producing strong eventual consistency as long as the transport is eventually reliable). No sweat!

    Come learn about conflict free replicated data types, what they can do for you, and why they might be interesting for all kinds of applications, not just for the Amazons and Googles of the world.

April 29th, 2015

  1. Stevan Little :: Surprise talk


  2. Mattia Barbon :: Devel::StatProfiler: lightweight profiling of production systems

    Profiling is like the crack cocaine of programming -- Tim Bunce

    Now you can cook your own profiling data, directly on your production systems!

  3. Andrew Shitov :: Parallel Features of Perl 6

    I'd like to talk about things for parallel computing, which are available in the Perl 6 language. The long-lasting design process made these features so syntactically simple that it's not always possible to instantly understand the real power of them. I'd like to share my current understanding of what we've got in Perl 6 today.

  4. Ben Tyler :: Mojo::Pg and managing callbacks with Mojo::IOLoop::Delay

    Still feeling Node.js envy? Looking longingly at the Go master class at YAPC::NA? Wait! Perl has you covered! Mojo::Pg is a lovely little wrapper around the asynchronous bits of DBD::Pg: it allows your web app to serve other requests while the database is crunching on that hairy query with fifteen JOINs. When combined with the world's tiniest callback manager (Mojo::IOLoop::Delay), you end up with a set of tools for writing sane async web applications without overflowing the right margin of your editor. Good times!

March 30th, 2015

  1. Abigail :: Sharding a database

    When an organization grows, the database(s) it may reach a point where it will be reaching one or more of its resource limits. Action will be needed, and one of the solutions is to use a sharded setup; that is, having several databases with identical structure, and data residing in one (or subset) of the databases.

    At, we have several sharded databases. In this talk, we will look how we transformed a highly volatile database to a sharded setup, without its users noticing and how Perl helped us to achieve this.

  2. Sawyer X :: Dancer2 best practices

    You're probably doing it wrong and don't want to read a bunch of articles. Here's the summary with plenty of code examples instead.

  3. Andrew Shitov :: Approaching the Perl 6 Grammars

    There will be no slides in this presentation. It will be one big live demo. During the talk we will create a mini compiler for the mini language using the Perl 6 grammars.

    Along the talk, elements of the new syntax and concepts available in Perl 6 will be emphasised when needed.

    Also, this is to demonstrate that today's Perl 6 can be used and debugged in real time.

  4. Theo Van Hoessel :: Do you speak-a my language?

    HTTP-Authoring, REST APIs in a multilingual environment

  5. Stevan Little :: Designing with Roles

    Roles (originally called Traits) are a concept that originated in research being done into better OO design practices using the Smalltalk language. Early in the Perl 6 design process Roles were added to the language and have since become an integral part of Perl 6. The idea of roles were also adopted by the Perl 5 community, which has many implementations of them, including Moose::Role, Moo::Role, Role::Tiny and more.

    In this talk, we will discuss some of the core concepts of roles and how they fit into and augment the normal OO design process. We will also spend some time looking at some of the well established patterns of Role usage, discussing the pros and cons of each approach.

January 20th, 2015

  1. Stevan Little :: Big world, Little Stevan

    Revealing truths (without revealing), exposed secrets (without exposing), promises and lies, love and deceit, actions and consequences, mystery and brutal honesty, one word juxtapositioned against another.

    Will it be YET ANOTHER FREAKIN' MOP? Will it be a new language I enjoyed working with? Is it The 10 Best Coding Practices of 2014 or The Worst, Most-Shared BuzzFeed Articles I will be covering? The subject of this talk is going to surprise you. Hell, it's going to surprise me!

    Join me (or don't) to hear magical stories of enchanted youths fooled by enigmatic and theatrical descriptions in order to attend a still-vaguely-themed talk of a questionable topic.

    I will also apologize for not providing talk descriptions ahead of time which made Sawyer X write mine.

  2. Borislav Nikolov (jackdoe) :: Extreme (Elastic)Search

    This is a story about search, distributed systems, complexity, tackling extreme conditions, and about which decisions we made at to make it work.

    P.S.: The talk has almost nothing to do with Perl.

  3. Mickey Nasriachi :: A killer API for a killer feature

    CPAN is Perl's killer feature.

    The information available in CPAN is massive, but without a proper API, it's difficult to work with.

    MetaCPAN provides this API, and MetaCPAN::Client provides the ability to work with the API in a sophisticated and comfortable way.

  4. Sawyer X :: Modern web scrapping

    Web scrapping is fun. It makes data accessible, works around API limits, and makes us feel like gods.

    I'll show Web::Query, a module I joyfully started using recently in my scrapping, and few examples on stuff I've scrapped with it.

November 25th, 2014

  1. H.Merijn Brand (tux) :: What I miss in "pack" and "unpack"

    Pack and unpack enable us to view binary data as structured data. Using advanced patterns, these data chunks might even be perceived as dynamic data sources. There is one drawback on the implementation of unpack in the CORE: it only works on scalar values.

    I will not show you how it can be done (that will be quite an job), but I will try to show you how code could change if unpack were to work on data streams as well. I'll use PerlMonk posts as examples, though my original idea came from something I'll also show.

    I hope this will be some kind of interactive, and there will be a discussion on weather this is a useful feature to implement. It will not be a slick slideshow.

  2. Damien Krotkine (dams) :: Exceptions with no strings attached

    Perl exceptions can be anything, as long as they are scalars. This bring issues. Exception::Stringy aims to fix that

  3. Peter Rabbitson (Ribasushi) :: DBIx::Class - what is it and what is it good for?

    DBIx::Class is a widely used and just as widely misunderstood SQL metaprogramming framework (no, it is not an ORM, it just plays one on TV).

    Come to see the primary maintainer of DBIx::Class (a.k.a. DBIC) give an overview of its architecture, show some more advanced use cases where the library really shines, and generally rant about the sorry state of the RDBMS universe. ;)

  4. Stevan Little :: Plack::Debugger: A new debugger for Plack Applications

    Plack::Debugger is a newly released addition to the Plack toolbox. It is a rethinking of the excellent Plack::Middleware::Debug module designed specifically to work with the AJAX heavy web applications of today. This talk will provide an overview of the straight-out-of-the-box functionality this module provides, as well as examples of how to extend it for your particular environment.

September 30th, 2014

  1. Rafaël Garcia-Suarez (rgs) :: De anatomische les van Dr. RGS

    Watch a Perl 5 patch being written, as if you were in the perl5-porter's brain!

  2. Ingy döt Net :: Surprise talk

    (written after the meeting) Ingy joined in and talked about awesome stuff he's been working on

  3. Karen Pauly :: The Perl Foundation (TPF)

    Karen, the president of The Perl Foundation (TPF), will talk to us a bit about TPF.

July 29th, 2014

  1. Yves Orton (demerphq) :: Breaking Perls Old Hash Function

    Yves will talk about the hash randomization in the perl core, or phrased differently: Key Discovery Attack on Bob Jenkins One-At-A-Time Hash (as used in earlier perls).

    Yves will explain the mechanism, the weakness, and how it was solved in modern versions of the perl interpreter.

  2. Abigail :: Releasing perl

    For many years, perl releases were infrequent, with a single person (the "pumpking") responsible for several subsequent releases.

    This has changed in the last years, and perl is released on a frequent schedule, with many people ("release managers") taking turns and making a release of perl. In this talk, we will look at what it takes to make a perl release, and show that "everyone" is able to become a release manager.

    Abigail can speak from personal experiences, having released perl twice before. Abigail is also the acting release manager, and will do a release at the end of July 2014.

May 27th, 2014

  1. H.Merijn Brand :: CSV looked at with an end-user view

    • New functionality
    • RFC 7111
    • Callbacks and hooks
    • Parse CSV safe without writing object-oriented loops
  2. Simon Bertrang :: Stylesheet Compression for Fun and Profit

    CSS::Compressor is a pure Perl implementation of the CSS compression parts of Yahoo!'s YUIcompressor.

    This talk is about motivation, insights, benefits and more, including facts and numbers from production.

  3. Mickey Nasriachi :: MetaCPAN::API is dead!

    MetaCPAN::Client provides the official interface to MetaCPAN's abundance of features and introspection.

    Reading the documentation is boring, come to my talk instead!

March 24th, 2014

  1. Simon Bertrang :: Automating Execution, Deployment and Configuration... with Perl!

    In the DevOps world quite some noise is made around configuration management and deployment systems - Perl also has an option in this area: Rex.

    This talk presents how Rex works, shows a few use-cases, gives examples and ideas on how to solve recurring tasks by automating them away.

  2. Sawyer X :: Perl and the Web - A Love Story

    In the beginning of the great kingdom of the Internet, there was one ruler: Perl. With time, fallen from grace, the beautiful princess language lost its place on the throne, giving way to Ruby, Python, and to the dismay and horror of everyone in the kingdom, PHP.

    But all is not lost. While underground, Perl has schemed a plot to overthrow the competitors. That plan is Plack/PSGI.

January 28th, 2014

  1. Philippe Bruhat (BooK) :: Programming Slides

    Every time I write slides I want something different, and each time the tool I used previously does not quite fit the next talk. After having used plain HTML, Magic Point, S5, LibreOffice Impress, and PDF::API2, I'm probably settling on PostScript for some time.

  2. Peter Rabbitson (Ribasushi) :: Fun with tracking Perl references - going beyond Devel::LeakTrace

    Back in August I presented a half-successful attempt to better auto-test for leaks in the DBIC test suite.

    This time I'll present the final (working) version of this code that is finally on CPAN, and may even be worth extracting as a standalone module.

November 25th, 2013

  1. Rob Hoelz :: Perl Power Tools

    Tools are the unseen force behind programming; they're not the "killer apps" of the world, but they're often instrumental in delivering them.

    Come discover some of the tools that the Perl community has developed over the years to make working with Perl easier.

  2. Kang-Min Liu (Gugod) :: perlbrew, tips and tricks

    perlbrew is a tool to manage multiple perl installations for various purposes.

    I'll briefly go through some basic introduction of the tool and some common usages of perlbrew for development and operational purposes.

  3. Sawyer X :: do_this() and die;

    If serial killers would use these coding patterns as reasons for their killing sprees we would set them free of charge. Innocent men and women who could not be expected to remain silent in the face of such bothersome behavior.

    I will provide a (hopefully extensive) list of coding patterns I do not like to see, and will urge you to follow me into the righteous path of coding cleanly and understandably.

    This will also shield you as best as possible not to be hurt physically by me when working with me, which - by the end of the talk - you may not wish to do anyway.

October 29th, 2013

  1. Simon Bertrang :: Pipeworks: Pipeline Processing Framework for Perl

    Presentation of a message oriented pipeline processing framework that allows separation of concerns and organization of functional units into small steps.

    The talk explains the concepts, ideas and how it is used in production to make typical cron jobs more testable, maintainable and extensible.

  2. Flávio Glock :: An Introduction to Perlito5

    Perlito5 is the Perl5 compiler in the Perlito compiler collection.

    In this introduction we will discuss some applications of Perlito5, and then go through some of the internals.

    1. The Perlito project, Perl5 and Perl6 compilers
    2. Perl 5 to Javascript, running Perl in node.js and browser
    3. Perl 5 to Perl 6 and automatically refactoring code
    4. The Very Experimental Stuff - compile to XS, JIT
    5. Tour of the Perlito source code

    Recommended reading:

  3. Damien Krotkine :: Forcing timeouts on sockets (PerlIO, Redis, Riak)

    When using a web service with high expectation on the speed and latency, you often want to abort connection if it's too slow / latency is too high.

    I present a portable way to automatically make a Perl socket aware of read / write timeouts. And I explain why I did that and how.

September 24th, 2013

  1. Steffen Mueller :: Fusing Perl and Lua: presenting PLua

    Interfacing between Perl and Lua as seamlessly and efficiently as unreasonably possible!

  2. Philippe Bruhat (BooK) :: Perl Secret Operators

    Perl is more cryptic than its critics say and more fun than its fans imagine.

  3. Stanislaw Pusep :: Zen and the Art of Yak Grooming

    Which is better: awful tests or no tests at all? What defines a good test suite?

    Software is never born perfect, it evolves. So do tests. Why do we write software in the first place? Is it the same reason that makes us write tests?

August 26th, 2013

  1. Brad Lhotsky :: The Elephant in the Room: PostgreSQL for Perl Programmers

    PostgreSQL shares a lot of common threads with Perl. It's free, open source, extensible, and has a vibrant community.

    We'll compare and contrast Postgres to similar technologies. Then we'll delve into some seriously cool features you won't find in other RDBMS! We'll see how the PostgreSQL community derives inspiration from the Perl Community and how we can help!

  2. Manuel Ceron :: Avoiding Callback Hell in Asynchronous Programming

    Callbacks can lead to messy and hard to read code in asynchronous programming. I will show some ways to overcome these problems using promises, greenlets and other approaches in different programming languages.

  3. Peter Rabbitson (Ribasushi) :: All Your Leaks are Belong to Us

    The quest for reliable leak detection and reporting in a complex project.

July 22nd, 2013

  1. Nicholas Perez :: It's all about the CloudPAN

    Ever wanted to try a module out without installing it? Then CloudPAN might do what you want.

  2. Sawyer X :: Asynchronous programming FTW!

    The new age is all about non-blocking asynchronous creative responsive deconstructive refactored decoupled conjectured applications. If you're not on the event loop wagon loop, you're missing out!

    What the hell am I talking about? Am I just drunk? How many of the above words are totally made-up? These questions and more will be answered at this talk!