An up to date review of implementations of the Perl 6 language. About each one: description, summarized history, contributors, architecture, features, status, future plans. Implementations are Rakudo, Pugs, Viv, Mildew, Elf, Perlito (MiniPerl6), KindaPerl6, Sprixel, Niecza, Yapsi, 6model, Vill, v6-alpha, Perl 5.xx.
When hashes grow too big for memory, and sometimes even for DB_File, alternatives are available, but most of the time that needs a lot of recoding.
Tie::Hash::DBD is a drop-in replacement for DB_File hash ties that connects to databases a-la Tie::DBI
It supports deep nesting using Storable and persistence.
The DBDI project aims to provide a low-level database driver interface for Perl 6 and Parrot. DBDI provides a common low-level API on which high-level interfaces, like MiniDBI and DBI v2, can be built for Perl 6 and other languages targeting Parrot.
This talk will cover the role of DBDI, the rationale behind it, the current state and future plans of the project, and how you can get involved.
PostgreSQL lets you write stored procedures in PL/Perl - a Perl interpreter embedded in the database server. The PostgreSQL 9.0 release includes significant enhancements to PL/Perl.
This talk will show you how to make the best use of the new features. You'll also learn how to use Devel::NYTProf to profile your PL/Perl code, and a new efficient and sugary way to call other stored procedures.
"A loaf of bread," the Walrus said,
"Is what we chiefly need:
Pepper and vinegar besides
Are very good indeed--
Now if you're ready, Oysters dear,
We can begin to feed."
True oysters of the group /Ostreidae/ include the edible kind, favoured not only by Walruses (and Carpenters) but also connoisseurs of seafood all over the world, including London. These oysters definitely provide *flavour*.
But it's another (mostly unrelated) family /Pteriidae/, where we sometimes find Pearls. Pearls grow from irritations; recently the NorthWestEngland perlmongers invited proposals for a project to adopt for the hackday. Some of them were about irritations with Perl's current tools, and about how to improve them. One of these -- the repetitive, laborious provisioning of web-servers -- led to one of the projects adopted for the next year "Oyster - an incubator for Perls in the Cloud". We'll look at the hackday, which took place a fortnight before LPW, and look at the outcome, the technologies, and the people, the community that helped make it happen.
A story of how we went about packaging perl and all of the dependencies that our project has.
Where we were before, the chosen path, and the end result.
The pitfalls and a view on the pros and cons of the previous state of affairs versus the pros/cons of the end result.
As multi-core and multi-processor systems become ever more widespread, programmers are faced with a new challenge: writing software that can take full advantage of the parallelism in the hardware.
Concurrent code has a reputation for being tricky to get right, but with the right tools, that needn’t be true. This talk is a case study of how a vanilla serial-execution Perl program was parallelised, using Unix’s fork as the fundamental primitive rather than threads. The simplicity of programming with fork meant that the work only took an evening, but the result is also efficient — we got a near-linear speedup in the number of CPU cores.
If you’ve got code you’d like to run faster on multi-core hardware, this talk will open your eyes to simple, powerful, stable approaches to writing parallel software.
Moose (and, in particular, Moose traits) have made Perlanet far easier to maintain and enhance. This talk explains how (and why).
Life sciences in general such as genetics and biology have traditionally benefitted from Perl with excellent projects leading the way such as bioperl. Unfortunately, in medical research and epidemiology, the picture is different. Researchers are struggling with the ever increasing size and complexity of datasets. This presentation will briefly describe the situation I faced when I first joined a research team working on coronary heart disease, what I did to make things better and how I achieved one small victory for Perl.
This talk will introduce the basics of message queueing, STOMP (the Streamed Text Oriented Messaging Protocol) and AMQP (the Advanced
Message Queuing Protocol), including why message queuing is a good idea for scalability and reduced latency in web applications.
After the initial theory, an in-depth analysis will be conducted; comprising a number of useful messaging based patterns and a discussion of practical implementations, with reference to
CPAN modules available to build message based systems.
This talk will introduce the Net::RabbitFoot AMQP client, discuss the specific advantages that the AMQP protocol gives you over other messaging implementations
After the initial theory, the talk will focus on specific applications over AMQP, with practical applications.
It will cover simple available utilities to interact with RabbitMQ, such as the utilities included in Net::RabbitFoot, onto those which (whilst still simple), build upon them (such as App::RabbitTail).
It will also cover the job scheduling and status system I have written (CatalystX::JobServer), including how to use it for basic tasks, its architecture, and how to extend it with custom messaging components for your application(s).
Web::Hippie is an abstraction for creating persistent HTTP pipes - I will discuss (and demonstrate) this as used by CatalystX::JobServer to feed back realtime status information to users.
When writing asynchronous code, it is common to pass code references around to represent what to do next after some operation completes. This is a continuation. This talk discusses this technique along with the "CPS" CPAN module, which assists with solving a number of control-flow problems.
IO::Async is a framework for building event-driven programs, based on the idea of continuations
An overview of the state of play of remote geocoding services from one of the maintainers of Geo::Coder::Many.
I look forward to seeing you at 51.52067372491456, -0.14013469219207764
Talk about a dependency solver, which automatically schedules
iterative updates to a shared resource such that they do not conflict
with one another, and allows for parallelism where possible.
The shared resource is a table with multiple columns. Each update is
assumed to modify every row in the table, but only specific columns.
By requiring that clients need permissions to read/write to columns,
one can infer the correct ordering to schedule client requests on the
table.
The approach of using rather fine-grained permissions also makes the
clients' intentions clearer than might otherwise be the case. This is
a common argument for static typing, and its merits are well exhibited
in Haskell programs.
If your not using an ORM (object relational mapper) and are still writing SQL by hand, here's what you need to know.
An introduction into DBIx::Class and some of the concepts and goodies you should be aware off.
The web lets people from all over the world touch your code inappropriately. This is going to expose bugs you might not know how to deal with and that almost everybody gets wrong. I'll teach you how to deal with the common pitfalls of working with an internationally available website.
WebNano is a minimalistic PSGI based web framework with controllers in request scope. It's design converges to http://misko.hevery.com/2008/08/21/where-have-all-the-singletons-gone/
Imagine a text where you can choose different qualities of the content before reading it. Want more background info in your text? Done. Don't have time to read everything? Choose the "executive overview" aspect. Want more relevant examples? Choose a story that is closer to your field of expertise... We're imagining texts that have aspects: variations of the text, especially tailored for specific needs. Texts flavoured to your personal taste and needs, so to speak.
Kaizendo is a project about making texts like these possible. We're aiming for any text that can be told in different ways and that can benefit from public scrutiny and continuous improvement - whether it's a textbook, technical documentation, a public hearing or a contract.
This presentation is mainly an introduction to the Kaizendo hackathon Tomas "t0m" Doran is organizing on Sunday, but we're aiming to have enough code ready to give a demo at LPW, even if you're not coming to the hackfest.
On that note: if you're interested in helping the project, feel free to join us on #kaizendo on irc.freenode.net! :)
This talk is an introduction to Mojolicious, a next generation web framework for Perl. We will look at how the routes dispatcher works, the built in rendering system as well as cutting edge features like HTTP Web Socket support and the CSS3 XML parser. This talk also covers the Mojo HTTP client.
PostgreSQL 9.0 features and capabilities of interest to perl developers. Covers security, performance, operations, and other features.
In the Real World, companies have large legacy web applications that need testing. Often the only way in is via HTTP.
Test::WWW::Mechanize is a step in the right direction, but what's the next step? This talk examines two useful techniques we've been using at Net-A-Porter to take some of the pain out of writing tests for a large and complex application.
"The usual example given to illustrate an Outside Context Problem was imagining you were a tribe on a largish, fertile island; you'd tamed the land, invented the wheel or writing or whatever, the neighbours were cooperative or enslaved but at any rate peaceful and you were busy raising temples to yourself with all the excess productive capacity you had, you were in a position of near-absolute power and control which your hallowed ancestors could hardly have dreamed of and the whole situation was just running along nicely like a canoe on wet grass... when suddenly this bristling lump of iron appears sailless and trailing steam in the bay and these guys carrying long funny-looking sticks come ashore and announce you've just been discovered, you're all subjects of the Emperor now, he's keen on presents called tax and these bright-eyed holy men would like a word with your priests."
— Iain M. Banks
Hemp is a C library with wrappers for Perl (and ultimately other programming languages) which implements a fast, flexible and memory-efficient toolkit for parsing, compiling and rendering document-based languages. These include template languages (TT2, TT3, HTML::Template, etc), mini-markup languages (POD, Markdown, Textile, etc) and data serialisation languages (JSON, YAML,
etc).
This presentation will provide an introduction to Hemp, an overview of what it does, how it works, how you can use it from C, Perl, or the command line, and where the project is ultimately heading. We will also touch on some of the more interesting technical challenges that have had to be addressed during development to-date.
The presentation should be of interest to anyone who has ever written a template language, or has wished that the template languages they were using were better, stronger, faster, or available in a different shade of orange.
A summary of some of the entertainment surrounding getting characters in various encodings into and out of Perl without mishap.
The venerable pastime of Perl golf is too restrictive, encourages bad habits, and fails to inspire. This talk will present a variation on golf that opens up new directions of exploration and provides a better programming exercise than traditional golf.
A few anecdotes about perils encountered because tests didn't exist and perils encountered because tests did exist.
How to use the Java-oriented tool Hudson as a build and test tool for Perl, drawing on my experiences at Photobox
New original Perl book in french (i.e. not a translation) written by French Perl Mongers (i.e. it may be of some quality).
Buy it. We are already rich, but we could do with more fame.
LT will be done by dams, on of the author of the book.
A little fun with the internals of Perl.
(Not actually that related to the title, but telling you more would ruin the fun.)
Get an compile time error instead of weird, legacy behaviour when you typo your hash slices.
This talk will be about my adventures attempting to get a reprap-inspired 3d printer working, and some things that I have made with it.
It may or may not involve any perl, depending on if I actually get anywhere wiring my minecraft to plastic converter.
Referencing to the very important talk of DICE about "Design Outside the Box", I want to introduce the position of Twitter
and Facebook in the current world, showing a bit about "achivements" and how it drives the community, how big all this stuff really
is, and how much impact it can do on marketing for a company, and how you can get money out of this all. Also giving a small overview
of what can be done for Perl Marketing in this sector, and how a little Perl dude can do it right without getting pissed all day.
Giving a small overview what Clouds can offer to people, what are clouds at all, what is the difference of the clouds,
what does the word cloud means at all for the different companies, what can be done with a cloud, how much they cost, what i get
for my money. Introducing a more special overview of the companies Linode, Amazon and Rackspace. Target is not here to be most
specific, it is more like to introduce to people to this "marketing word", and taking them the fear for it, and showing them the
options for products and what can be achieved by concentrating on cloud development.
Interactive demo of progtorial, interactive learning site
In this lightning talk I'd like to introduce the TPF Events group that is organizing Perl presence on various non-Perl events and Perl Ecosystem Group that tries to bridge the gap between companies using Perl and the open source Perl Community.
Mostly by getting money from the companies and spending on things that mutually benefit both the companies and the Perl Community.
Of course I'm going to do a lightning talk. But I don't know what yet.
How to avoid boring your audience, making them go crosseyed, or any of the other pitfalls of slide writing.
Caution. Presentation comes with slides.