The Perl Foundation Review 2011 - 2012

Karen Pauley will give a talk at YAPC::Europe 2012 described as

Over the past year The Perl Foundation has continued to work on its goal of advancing Perl and supporting the community. This talk will provide a review of our recent successes and failures, and take a brief look at the plans for the year ahead.

Any d/l-able list of given names and their meanings?

Hi Folks

By googling I found many sites, but they all require you to click on a long list of links to step through the alphabet, so I'm thinking: Ask first, and as a last resort write a scraper.

Logging your SQL statements with Log::Any

In the accidental quest of conquering the logging world with Log::Any, presenting Log::Any::For::DBI. I needed something like DBIx::Log4perl but for Log::Any, so I wrote one. Internally it's much simpler than DBIx::Log4perl currently and only logs method calls like connect(), prepare(), do(), selectrow_hashref(). Suggest or send a patch if you want more features. The module builds upon the more general Log::Any::For::Class.

To quickly demonstrate it, we'll use something like Log::Any::App to show logs to the terminal:

We're making a proposal to host YAPC::EU 2013

The bad news we heard today about ZERO number of proposals for 2013 made us active enough to produce good news: we decided to make a proposal for hosing YAPC::Europe 2013 in Kiev (still no visas required for EU/US/UK/RU citizen).

"We" are the Kiev.pm + Moscow.pm groups, namely, the guys who made the recent fantastic YAPC::Russia in 2012 (100+ people) in Kiev and myself. We'll add up the facts about the venue, prices etc. to our proposal in the following few days, definitely long before Frankfurt event in August, and well public full text soon. We've got a venue in mind already.

As an organiser of YAPC in Riga and from the attendees feedback I have some ideas of where we failed and how we can fix that. And of course, all the great things that worked should be repeated.

SNA::Network - Social Network Analysis with Perl

Darko Obradovic will give a talk at YAPC::Europe 2012 described as

In this talk the SNA::Network module from CPAN is presented. It allows the fast and flexible analysis of network structure data, which is present in many Web 2.0 Internet platforms, not only in the social networks.

We present state of the art centrality and community identification algorithms, and compare the performance to Graph.pm.
We also show how to easily extend it with own algorithms, data fields and import/export filters with a very simple plugin mechanism.

CPAN Testers Summary - June 2012 - Seventeen Seconds

MDK is the man! A big thank you to Mark Keating for a great post about how to donate to the CPAN Testers Fund. I have received some feedback about how to make the fund and the donation process a little more prominent on the websites, and I plan to address that in the coming months. I have also been very encouraged by some of the feedback, and hopefully we shall see more donations and sponsorship in the coming years too. Aside from asking your company if they can donate, or writing on your blog about how CPAN Testers have helped you, if you're so inclined, you might want to add a note to your README or POD to tell users how they can donate. There are plenty of other funds you might want to advertise too, so don't feel restricted to the CPAN Testers Fund. CPAN Testers can also benefit indirectly from the other funds, so its all good.

still no YAPC::Euope 2013 proposals

The deadline for submitting proposals to host YAPC::Europe 2013 was a few days ago (5th July, see the Call for Venue), but no group submitted one.

If nobody steps up, there might be no YAPC::Europe 2013!

(unless I can convince the responsible parties that in case there is no group hosting the next YAPC, the current group is forced to has the honor to do it again :-)

Copy'n'pasting from my last post on this issue:

It's really not much work, and all reports from previous organizers stating otherwise are grossly exaggerated!

Here's the whole Call for Venue, and here is a detailed document on what to do to bring YAPC::Europe 2013 to your wonderful hometown. And for even more organizers know-how, check out Perl Jam an upcoming book about "How to organise a conference ... and live to tell the tale." by barbie et.al. (also available on github)

Popular ebooks on perlybook.org in week 27/2012

Here are the most popular ebooks from Jul 2 2012 to Jul 8 2012:

Module
  1. Moo
Release
  1. Moose
  2. Mojolicious
  3. Net-SSH
  4. Meta
  5. Plack
  6. WebService-Google-Reader
  7. Poet
  8. WWW-REST
  9. ppt
  10. App-cpanminus

A discussion on how to organize a Perl Mongers group

Salve J Nilsen will give a talk at YAPC::Europe 2012 described as

Whatever you call a technical community (mongers, masons, monks, mongrels or misfits), there's some work behind organizing one. The speaker has been involved in one of these groups - Oslo.pm - for almost 10 years, and in this time gathered a few impressions on what works and what doesn't.

In this talk we'll explore some of the events Oslo.pm has organized, share how they turned out and try to figure out why they went well - or didn't. We'll touch upon topics like money, volunteering, burn-out and the importance of fun.

But this isn't an Oslo.pm talk only! We'll also make room to for other .pm group members that have something to share! Bring your experiences, or if you haven't any - bring your questions and curiosity.

If all goes well, we'll end up with some ideas for an even better community! :D

What's new on the Perl Beginners' Site

The last update on the news feed for The Perl Beginners's site was almost a year ago. While the site continued to improve, I neglected writing a new entry until now, so I hope this one will compensate for that.

So without further ado, here is what is new:

  1. We now have a page about Perl Humour, which was restored from a page in the now offline perl.net.au wiki.

  2. Also originally from that wiki is the Freenode's #perl channel Frequently Asked Questions (FAQ) List, which is well worth a read.

  3. Another restored page is the list of CPAN Wrappers for Distributions.

  4. We added a page about web automation in Perl, and one about manipulating files and directories.

  5. The Perl on Windows page was enhanced with new links to Strawberry Perl and DWIM Perl.

  6. We have a new page about Perl Training Providers, which currently only contains a link to the Perl Training Directory.

  7. The "Perl Elements to Avoid" page contains many new entries.

  8. Our mirror of the book Modern Perl by chromatic was updated to its latest edition.

We hope you find these additions useful or enlightening.

C++ has `local'!

Not exactly Perl post, but very related!
I wanted to add the `local' feature to C++ and this is how i did it:

The code:

The Mind-killer

I happen to be a TDD proponent.  Now, right there I’ve probably lost about half of you, and the rest are probably going, “okay, yeah, get on with it.” TDD is one of those things that people either love or hate.  For a full meditation on the ins and outs of technical hype, I’ll refer you to my other blog.  In the meantime, if you’re one of those people whose sneer at the thought of TDD is still stuck to your face, I’ll ask you to indulge me for a few more paragraphs (two of which are only one sentence long).  After that, if you still feel like TDD is the stinkiest thing to come along since Pepé Le Pew, you can either jump over to the link above, or just continue on, mentally subsituting “TDD” with some technical process you actually like.  Or, you know, find something else to do entirely.

What the sponsors use Perl for (Part 1)

One person asked what the sponsors use Perl for. Here you can find the first answers...

Webfusion


Here at Webfusion, Perl is at the core of our business. It delivers web pages, communicates with internal and external APIs, builds servers, registers domains, configures products and services, and even makes the tea! (That last bit might not be true ... yet!). Our systems are developed in-house, using the best of CPAN, including Catalyst, Moose, DBIx::Class, Plack among many others. Our websites are delivered via Catalyst and mod perl applications, and most of our underlying system and networking tools are written in Perl.

All our customer's domains are registered and managed using Perl. All our server hosting is implemented using Perl from building the basic servers, to managing the applications installed as part of our shared web hosting packages. We make use of many 3rd-party products to help you design, develop and protect your website, create and use online mailboxes, all of which are configured and managed using Perl.

Is PCLI possible?

At the French Perl Workshop (and probably elsewhere before), Matt Trout talked about why and how some ideas could succeed and most other fail. An interesting talk. The last part was a rant against the numerous modules on the CPAN to parse command-line options. His proposal was to do the same thing to command-line programs (CLI) than PSGI did to web applications: formulate a generic specification, that developers can use to build applications and not depend on a specific implementation.

A very interesting idea. We were a few (BooK, cmaussan, niels and myself) to begin thinking about what this PCLI specification could look like. I wrote down on paper what I've been doing in the numerous CLI programs (for a broad value of the terms) I wrote over the past years.

A CLI program has to go through these steps:

Two new interfaces to Marpa

"You get to create your own world, and the only thing that limits what you can do are the capabilities of the machine -- and, more and more often they days, your own abiliites" Linus Torvalds, Just For Fun, p. 74

As of Marpa::R2 2.010000, Marpa has two new, documented, interfaces. (For those new to this blog, Marpa is something new in parsing -- it parses anything you can write in BNF and, if your grammar is in one of the classes currently in practical use, parses it in linear time. Marpa's parse engine is written in optimized C, so that Marpa's speed is competitive with parsers of far less power. Marpa's stable version is Marpa::XS.)

Announcing Marpa's C library: Libmarpa

The first new interface is Libmarpa, a C language library. Previously, Marpa's only documented interfaces required the programmer to use it through Perl. Using Marpa through Perl had major advantages -- it gave the programmer convenient access not just to Perl's capabiliites, but to all of CPAN as well.

Localizing Variables in Coroutines

While I was browsing the CPAN the other day, I came across Coro::LocalScalar and I said to myself, oh, what a useful idea… it lets you localize globals to a thread. An important feature if you do anything in your thread with those pesky globals from perlvar, for instance.

But, said I, its calling convention is the rather gross Coro::LocalScalar->new->localize($scalar); and it’s implemented using tie and only for scalar values. It would be nice to have a new keyword and support for arrays and hashes as well. As it happens, I’d also recently run across Begin::Declare, which is a Devel::Declare based module that provides custom variable declarations.

A few hours later, with the example of Begin::Declare to work from, I bring you Coro::Localize (now on a CPAN mirror near you). It’s localization is achieved through a combination of Coro’s on_enter /on_leave blocks and Data::Alias.

So you might use it this way:

Moose Role Usage Patterns

Shawn Moore will give a talk at YAPC::Europe 2012 described as

Roles are one of the most exciting and powerful features provided by Moose, but also one of the most misunderstood. This talk will explore, in depth, some common usage patterns (and antipatterns) for roles and how best to use them in the design of your classes. I will also talk about the philosophy of roles and how they fit in with the larger OO toolset.

Module versions in multi-module distributions

If a distribution contains multiple modules, how should VERSION be set in each module?

There are a number of options:

  • Every module has the same version number, and it's the version number of the dist.
  • Each module has its own version number. The version number of the dist might be different from all of them, or it might be take from the lead module, if there's an obvious one.
  • The lead module has a version number defined, but none of the other modules have a version defined.

The first option makes most sense to me, and until recently I thought it was the approach most people follow. Sure, it's a pain updating version number in every module for every release, but Dist::Zilla (and other tools?) can handle this for you automatically.

How to reach recruiters?

This question came up recently on the comments of a blog post. I can’t really answer that question. What I can try and answer is how to get more recognition as a Perl programmer and how to create a public portfolio, making it easier for you to find a job.

This is mostly a clean up of what I originally wrote in the comment, and I would thank you to add your own comments. John Napiorkowski has proposed a recruiters resource page on Perl.org and is working on how such a page would look. This information might be useful for a counterpart to it, completing both questions of how recruiters could reach programmers and how programmers can be more visible to recruiters and other viable employers. John has written a first post on his website. That’s a good place to start.

Finding Unused Subroutines, but with PPI

Can I find all unused Perl subroutines with PPI? Ovid tried it with a quick shell script, which is probably good enough for his purposes, and certainly shorter than my solution.

I don't know if I've covered all of the cases, but it seems to mostly work.

About blogs.perl.org

blogs.perl.org is a common blogging platform for the Perl community. Written in Perl with a graphic design donated by Six Apart, Ltd.