<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<title>Perl Weekly Issue #176 - 2014-12-08 - Advent ahoy!</title>
</head>
<body>
<style>
* { text-align: left; }
table {
font-family: helvetica, arial, sans-serif;
width: 700px;
}
@media (max-width: 800px) {
table {
width: 370px;
}
}
p { margin: 1.2em 0em 1.35em 0em; line-height: 1.4em; }
a { color: #04c; }
#menu {
border-bottom: 1px solid #ccc;
}
#menu ul {
text-align: center;
margin: 0;
}
#menu li {
font-size: 12px;
display: inline;
list-style-type: none;
padding-right: 10px;
}
#social_icons {
margin-top: 10px;
}
</style>
<table border="0" cellpadding="0" cellspacing="0" align="center" bgcolor="#ffffff">
<tr><td>
<p id="logo">
<a href="http://perlweekly.com/" style="
background-color: #004065;
color: #FFF;
text-decoration: none;
font-size: 40px;
font-weight: bold;
font-family: Gadget;
border-radius: 5px;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border: 1px solid #000;
padding: 10px;
">Perl Weekly</a>
</p>
<p id="issue"
style="border-bottom: 1px solid #ccc;
padding-bottom: 8px;
font-size: 18px;">
Issue #176 - 2014-12-08 - Advent ahoy!
</p>
<div style="text-align: center">
You can <a href="http://perlweekly.com/archive/176.html">read the newsletter on the web</a>, if you prefer.
</div>
</td></tr>
<tr><td>
<table>
<tr><td>
<p style="font-size: 16px">
Hi,
</p>
<p style="font-size: 16px">
Lots of Advent articles in the last week, and plenty more besides.
</p>
<p style="font-size: 16px">
The articles are all written by volunteers — why not see if you can help out?
</p>
<p style="font-size: 16px">
Developer releases of Catalyst and Perl::Critic need their tyres kicking, so get ya boots on!
</p>
<p style="font-size: 16px">
Editor #3, Neil
</p>
</td>
<td>
<img style="right:0; bottom: 0;" src="http://perlweekly.com/img/neil_bowers.png" />
</td></tr>
</table>
</td></tr>
<tr><td>
<hr style="color: red" id="sponsors" />
<div style="font-size: 18px; font-weight: bold;">Sponsors</div>
</td></tr>
<tr><td>
<table><tr><td>
<div
style="
background-color:#EEEEEE;
border-radius: 10px;
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
padding-left: 10px;
"
>
<p style="margin-left: 1.5em;">
<a href="http://bit.ly/1uwKNXC" style="
font-size: 18px;
font-weight: bold;
">Perl Recruitment by a CPAN contributor</a>
<br />
<p style="font-size: 16px">
I'm a Perl programmer and open-source developer who also specialises in Perl recruitment in Europe. If you want to know if you're being paid enough, want some help with your CV, or just want to talk to a recruiter who knows the difference between 'local' and 'my', say hello at: <a href="http://bit.ly/1uwKNXC">http://perl.careers/</a>.
</p>
</div>
</td></tr></table>
</td></tr>
<tr><td>
<table><tr><td>
<div
style="
background-color:#EEEEEE;
border-radius: 10px;
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
padding-left: 10px;
"
>
<p style="margin-left: 1.5em;">
<a href="http://bit.ly/1rM04mw" style="
font-size: 18px;
font-weight: bold;
">We are Hiring a Senior Perl Software Developer - Grant Street Group</a>
<br />
<p style="font-size: 16px">
We are a growing software company using open source software/modern Perl practices to build innovative e-payment, auction, and tax collection web applications. We are looking for talented, motivated professionals committed to flawless work and customer service.
</p>
</div>
</td></tr></table>
</td></tr>
<tr><td>
<hr style="color: red" id="roles" />
<div style="font-size: 18px; font-weight: bold;">Roles</div>
</td></tr>
<tr><td>
<table><tr><td>
<div
>
<p style="margin-left: 1.5em;">
<a href="http://bit.ly/1u7JfiT" style="
font-size: 18px;
font-weight: bold;
">Of course you can `requires` attributes!</a>
<br />
<p style="font-size: 16px">
Philippe Bruhat presents a problem with use of <a href="http://bit.ly/1u7Jf2z">requires</a> when working with roles, and also presents a solution.
</p>
</div>
</td></tr></table>
</td></tr>
<tr><td>
<table><tr><td>
<div
>
<p style="margin-left: 1.5em;">
<a href="http://bit.ly/1CXS4VZ" style="
font-size: 18px;
font-weight: bold;
">Using Roles as Partial Classes</a>
<br />
<p style="font-size: 16px">
Curtis Poe describes how roles can be treated as <a href="http://bit.ly/1CXS4VW">partial classes</a>, a concept in some languages, where a class can be split into multiple files. A bit like roles, you might be thinking.
</p>
</div>
</td><td><img src="http://perlweekly.com/img/curtis_ovid_poe.jpg" title="Curtis 'Ovid' Poe" width="80" />
</td></tr></table>
</td></tr>
<tr><td>
<hr style="color: red" id="module_news" />
<div style="font-size: 18px; font-weight: bold;">Module news</div>
</td></tr>
<tr><td>
<table><tr><td>
<div
>
<p style="margin-left: 1.5em;">
<a href="http://bit.ly/1CXS6x5" style="
font-size: 18px;
font-weight: bold;
">Test-Simple release candidates</a>
<br />
<p style="font-size: 16px">
Chad Granum posted an update on changes to <a href="http://bit.ly/1u7Qd7z">Test::Builder</a>, <a href="http://bit.ly/1u7QbfX">Test::Simple</a>, and <a href="http://bit.ly/1u7Qd7E">Test::More</a>. These changes will be part of Perl 5.22.
</p>
</div>
</td><td><img src="http://perlweekly.com/img/chad_granum.png" title="Chad Granum" width="80" />
</td></tr></table>
</td></tr>
<tr><td>
<table><tr><td>
<div
>
<p style="margin-left: 1.5em;">
<a href="http://bit.ly/1CXS7RD" style="
font-size: 18px;
font-weight: bold;
">Development release 001 of Catalyst 5.90080</a>
<br />
<p style="font-size: 16px">
John Napiorkowski announces a developer release with a lot of fixes related to UTF-8 and encoding. "If you never bother to test development releases of Catalyst, this is the one time you really should".
</p>
</div>
</td><td><img src="http://perlweekly.com/img/john_napiorkowski.png" title="John Napiorkowski" width="80" />
</td></tr></table>
</td></tr>
<tr><td>
<table><tr><td>
<div
>
<p style="margin-left: 1.5em;">
<a href="http://bit.ly/1CXS6xc" style="
font-size: 18px;
font-weight: bold;
">Test::Perl::Critic Is Now Wicked Fast</a>
<br />
<p style="font-size: 16px">
Jeffrey Thalhammer announced a developer release of a new version of <a href="http://bit.ly/1CXWxI6">Perl::Critic</a>, which now uses <a href="http://bit.ly/1CXWuMw">MCE</a> to run tests in parallel.
</p>
</div>
</td><td><img src="http://perlweekly.com/img/jeffrey_thalhammer.png" title="Jeffrey Thalhammer" width="80" />
</td></tr></table>
</td></tr>
<tr><td>
<hr style="color: red" id="perl_maven_pro" />
<div style="font-size: 18px; font-weight: bold;">Perl Maven Pro</div>
<p style="font-size: 16px">The <a href="http://perlmaven.com/pro">Perl Maven Pro</a> subscribers receive two new articles and screencasts every week. The last week these were the two screencasts:</p>
</td></tr>
<tr><td>
<table><tr><td>
<div
style="
background-color:#EEEEEE;
border-radius: 10px;
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
padding-left: 10px;
"
>
<p style="margin-left: 1.5em;">
<a href="http://bit.ly/1CXS6Nt" style="
font-size: 18px;
font-weight: bold;
">Add "404 Not Found" page</a>
<br />
<p style="font-size: 16px">
Added a custom 404 error page to your project.
</p>
</div>
</td></tr></table>
</td></tr>
<tr><td>
<table><tr><td>
<div
style="
background-color:#EEEEEE;
border-radius: 10px;
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
padding-left: 10px;
"
>
<p style="margin-left: 1.5em;">
<a href="http://bit.ly/1CXS885" style="
font-size: 18px;
font-weight: bold;
">Protecting from a crash</a>
<br />
<p style="font-size: 16px">
Something about protecting from a crash.
</p>
</div>
</td></tr></table>
</td></tr>
<tr><td>
<hr style="color: red" id="misc" />
<div style="font-size: 18px; font-weight: bold;">Misc</div>
</td></tr>
<tr><td>
<table><tr><td>
<div
>
<p style="margin-left: 1.5em;">
<a href="http://bit.ly/1CXS88b" style="
font-size: 18px;
font-weight: bold;
">Pretty-printing multiple arrays</a>
<br />
<p style="font-size: 16px">
Curtis Poe posted a small programming challenge, and a bunch of people gave their solutions (in the comments, gists, etc).
</p>
</div>
</td><td><img src="http://perlweekly.com/img/curtis_ovid_poe.jpg" title="Curtis 'Ovid' Poe" width="80" />
</td></tr></table>
</td></tr>
<tr><td>
<table><tr><td>
<div
>
<p style="margin-left: 1.5em;">
<a href="http://bit.ly/1CXS88d" style="
font-size: 18px;
font-weight: bold;
">Adventures with XML</a>
<br />
<p style="font-size: 16px">
Nestoria describe how they process a lot of data in XML using <a href="http://bit.ly/1CXWxIb">XML::Simple</a>.
</p>
</div>
</td></tr></table>
</td></tr>
<tr><td>
<table><tr><td>
<div
>
<p style="margin-left: 1.5em;">
<a href="http://bit.ly/1CXS88f" style="
font-size: 18px;
font-weight: bold;
">Perl 5 Regex quantifiers</a>
<br />
<p style="font-size: 16px">
Gabor explains regular expression <em>quantifiers</em>, which specify how many of a given sub-pattern you want to match.
</p>
</div>
</td><td><img src="http://perlweekly.com/img/gabor_szabo.png" title="Gabor Szabo" width="80" />
</td></tr></table>
</td></tr>
<tr><td>
<table><tr><td>
<div
>
<p style="margin-left: 1.5em;">
<a href="http://bit.ly/1CXS8oE" style="
font-size: 18px;
font-weight: bold;
">Time is a scarce resource</a>
<br />
<p style="font-size: 16px">
Sinan Unur muses (<a href="http://bit.ly/1CXS8ox">more than</a> <a href="http://bit.ly/1CXS6NG">once</a>) on the right thing to do when you hit problems trying to install someone else's software. These resonated with me, since I spent way too long trying to get <a href="http://bit.ly/1u7Qdo5">GD</a> and <a href="http://bit.ly/1u7QbwD">GD::Graph</a> working on a machine last week. Sometimes, when you've got the damn thing working, you're out of time and energy, and just need to move on. And sometimes not.
</p>
</div>
</td><td><img src="http://perlweekly.com/img/sinan_unur.png" title="Sinan Unur" width="80" />
</td></tr></table>
</td></tr>
<tr><td>
<table><tr><td>
<div
>
<p style="margin-left: 1.5em;">
<a href="http://bit.ly/1CXS8oL" style="
font-size: 18px;
font-weight: bold;
">NICEPERL's lists</a>
<br />
<p style="font-size: 16px">
Miguel Prz's regular lists: <a href="http://bit.ly/1CXS8oL">Great modules released last week</a>; <a href="http://bit.ly/1CXS8oN">MetaCPAN weekly report</a>; <a href="http://bit.ly/1CXS8oO">StackOverflow Perl report</a>.
</p>
</div>
</td></tr></table>
</td></tr>
<tr><td>
<hr style="color: red" id="community" />
<div style="font-size: 18px; font-weight: bold;">Community</div>
</td></tr>
<tr><td>
<table><tr><td>
<div
>
<p style="margin-left: 1.5em;">
<a href="http://bit.ly/1CXS742" style="
font-size: 18px;
font-weight: bold;
">Interview with Olaf Alders</a>
<br />
<p style="font-size: 16px">
Viacheslav Tykhanovskyi interviewed Olaf Alders, the founder of MetaCPAN. Topics covered: how he got started in Perl, what led to MetaCPAN, and his current web framework of choice.
</p>
</div>
</td><td><img src="http://perlweekly.com/img/viacheslav_tykhanovskyi.png" title="Viacheslav Tykhanovskyi" width="80" />
</td></tr></table>
</td></tr>
<tr><td>
<table><tr><td>
<div
>
<p style="margin-left: 1.5em;">
<a href="http://bit.ly/1CXS8F8" style="
font-size: 18px;
font-weight: bold;
">Nestoria's module of the month: Perl::Critic</a>
<br />
<p style="font-size: 16px">
Each month Nestoria tip their hat, and wallet, to a favourite module. November's choice was <a href="http://bit.ly/1CXWxI6">Perl::Critic</a>.
</p>
</div>
</td></tr></table>
</td></tr>
<tr><td>
<table><tr><td>
<div
>
<p style="margin-left: 1.5em;">
<a href="http://bit.ly/1CXS8Fc" style="
font-size: 18px;
font-weight: bold;
">The patch -p2 hackathon in Lyon is over</a>
<br />
<p style="font-size: 16px">
Philippe Bruhat might count as a professional workshop organiser. He reports on a recent hackathon held in Lyon, without actually mentioning what they were hacking on.
</p>
</div>
</td></tr></table>
</td></tr>
<tr><td>
<hr style="color: red" id="cpan_news" />
<div style="font-size: 18px; font-weight: bold;">CPAN News</div>
</td></tr>
<tr><td>
<table><tr><td>
<div
>
<p style="margin-left: 1.5em;">
<a href="http://bit.ly/1CXS74c" style="
font-size: 18px;
font-weight: bold;
">First release of lib::projectroot</a>
<br />
<p style="font-size: 16px">
Thomas Klausner has released <a href="http://bit.ly/1u7QdEs">lib::projectroot</a>, which makes it easier to load all the project-specific, non-CPAN code ("DarkPAN") in your project's scripts
</p>
</div>
</td></tr></table>
</td></tr>
<tr><td>
<table><tr><td>
<div
>
<p style="margin-left: 1.5em;">
<a href="http://bit.ly/1CXS8VD" style="
font-size: 18px;
font-weight: bold;
">Pod::Readme can now be used with Dist::Zilla</a>
<br />
<p style="font-size: 16px">
Robert Rothenberg has released a new version of <a href="http://bit.ly/1u7QdEw">Pod::Readme</a> which has hooks for working with <a href="http://bit.ly/1u7QdEB">Dist::Zilla</a>. This means your pod can now include sections just for inclusion in the README, for example.
</p>
</div>
</td></tr></table>
</td></tr>
<tr><td>
<hr style="color: red" id="things_written_in_perl" />
<div style="font-size: 18px; font-weight: bold;">Things written in Perl</div>
</td></tr>
<tr><td>
<table><tr><td>
<div
>
<p style="margin-left: 1.5em;">
<a href="http://bit.ly/1CXS7kw" style="
font-size: 18px;
font-weight: bold;
">i-Mage announced</a>
<br />
<p style="font-size: 16px">
Steve Cookson emailed the wxPerl mailing list, "After six years of graft and toil we have just launched our project i-Mage at a medical conference in Rio de Janeiro, Brazil".
</p>
</div>
</td></tr></table>
</td></tr>
<tr><td>
<table><tr><td>
<div
>
<p style="margin-left: 1.5em;">
<a href="http://bit.ly/1CXS8VL" style="
font-size: 18px;
font-weight: bold;
">What's new in OTRS 4?</a>
<br />
<p style="font-size: 16px">
OTRS is an open-source ticketing system written in Perl (<a href="http://bit.ly/1CXS8VK">Wikipedia page</a>). Version 4 was released recently; one of the changes was to move to the <a href="http://bit.ly/1u7QdEG">Template</a> toolkit.
</p>
</div>
</td></tr></table>
</td></tr>
<tr><td>
<hr style="color: red" id="perl_foundation_grants" />
<div style="font-size: 18px; font-weight: bold;">Perl Foundation Grants</div>
</td></tr>
<tr><td>
<table><tr><td>
<div
>
<p style="margin-left: 1.5em;">
<a href="http://bit.ly/1CXS8VN" style="
font-size: 18px;
font-weight: bold;
">Tony Cook's grant report</a>
<br />
<p style="font-size: 16px">
This kind of work is critical to keeping Perl moving forward, and stopping the bit-rot.
</p>
</div>
</td></tr></table>
</td></tr>
<tr><td>
<table><tr><td>
<div
>
<p style="margin-left: 1.5em;">
<a href="http://bit.ly/1CXS7kD" style="
font-size: 18px;
font-weight: bold;
">Inline grant weekly report #7</a>
<br />
<p style="font-size: 16px">
Ingy and David describe their recent work to make "auto-stubbing" a reality. This lets you create lightweight modules in C using Inline, rather than going full-fat XS.
</p>
</div>
</td><td><img src="http://perlweekly.com/img/ingy_dot_net.png" title="Ingy döt Net" width="80" />
</td></tr></table>
</td></tr>
<tr><td>
<hr style="color: red" id="advent_calendars" />
<div style="font-size: 18px; font-weight: bold;">Advent calendars</div>
</td></tr>
<tr><td>
<table><tr><td>
<div
>
<p style="margin-left: 1.5em;">
<a href="http://bit.ly/1z72lt4" style="
font-size: 18px;
font-weight: bold;
">The Perl 5 Advent Calendar</a>
<br />
<p style="font-size: 16px">
Mark Fowler has been doing a sterling job on this advent calendar thus far, covering <a href="http://bit.ly/1z72mgn">Test::TempDir::Tiny</a>, <a href="http://bit.ly/1CXS9c7">Mac::Safari::JavaScript</a>, <a href="http://bit.ly/1CXS9c9">HTTP::Tiny</a>, <a href="http://bit.ly/1CXS7kK">Plack</a>, <a href="http://bit.ly/1CXS7B0">Sub::Util</a>, <a href="http://bit.ly/1CXS9cb">Test::DatabaseRow</a>, and <a href="http://bit.ly/1CXS9cc">Time::Limit</a>.
</p>
</div>
</td><td><img src="http://perlweekly.com/img/mark_fowler.png" title="Mark Fowler" width="80" />
</td></tr></table>
</td></tr>
<tr><td>
<table><tr><td>
<div
>
<p style="margin-left: 1.5em;">
<a href="http://bit.ly/1CXSawR" style="
font-size: 18px;
font-weight: bold;
">The Perl 6 Advent Calendar</a>
<br />
<p style="font-size: 16px">
A selection of authors have so far covered: <a href="http://bit.ly/1CXS7B8">The State of Perl 6 in 2014</a>, <a href="http://bit.ly/1CXS7Bc">Rakudobrew</a>, <a href="http://bit.ly/1CXS7Be">Cap your junctions</a>, <a href="http://bit.ly/1CXSawF">Composers, Coercers, and the Case of a Camel's Curious Corner</a>, <a href="http://bit.ly/1CXSawJ">Act with great Responsibility</a>, <a href="http://bit.ly/1CXSawL">Running External Programs from Perl 6</a>, and <a href="http://bit.ly/1CXS9cg">That's how we .roll these days</a>.
</p>
</div>
</td></tr></table>
</td></tr>
<tr><td>
<table><tr><td>
<div
>
<p style="margin-left: 1.5em;">
<a href="http://bit.ly/1CXSaNk" style="
font-size: 18px;
font-weight: bold;
">PERLANCAR's Advent Calendar</a>
<br />
<p style="font-size: 16px">
Steven Haryanto is being greedy or impressive, or both, describing one of his 2014 modules each day. So far: <a href="http://bit.ly/1z72lt3">App::jpath</a>, <a href="http://bit.ly/1CXSawW">App::nauniq</a>, <a href="http://bit.ly/1CXS9cm">DBIx::Diff::Struct</a>, <a href="http://bit.ly/1CXSaNd">App::datecalc</a>, <a href="http://bit.ly/1CXSaNe">App::rmhere</a>, <a href="http://bit.ly/1CXSaNg">File::umask</a>, and <a href="http://bit.ly/1CXS9sE">App::SetScreensaverTimeout</a>.
</p>
</div>
</td></tr></table>
</td></tr>
<tr><td>
<table><tr><td>
<div
>
<p style="margin-left: 1.5em;">
<a href="http://bit.ly/1CXSb3G" style="
font-size: 18px;
font-weight: bold;
">Matt Trout's Advent Posts</a>
<br />
<p style="font-size: 16px">
Matt Trout is giving his thoughts on themed modules each day. So far: <a href="http://bit.ly/1CXSaNo">web frameworks</a>, <a href="http://bit.ly/1CXSaNp">web deployment</a>, <a href="http://bit.ly/1CXSaNq">XML</a>, <a href="http://bit.ly/1CXS9sK">HTML</a>, <a href="http://bit.ly/1CXSaNt">Files</a>,
</p>
</div>
</td></tr></table>
</td></tr>
<tr><td>
<table><tr><td>
<div
>
<p style="margin-left: 1.5em;">
<a href="http://bit.ly/1CXSbkf" style="
font-size: 18px;
font-weight: bold;
">Dancer Advent Calendar</a>
<br />
<p style="font-size: 16px">
The Dancer project have their own advent calendar too. Topics so far: <a href="http://bit.ly/1z72lJn">Another year of Dancing</a>, <a href="http://bit.ly/1CXSb3M">Starting anew</a>, <a href="http://bit.ly/1CXSb3Q">Migrating to Dancer 2</a>, <a href="http://bit.ly/1CXSb3S">Your website in a Carton box</a>, <a href="http://bit.ly/1CXS9sO">Packing the Fat</a>, <a href="http://bit.ly/1CXSb3Y">Static file serving in Dancer 2</a>, and <a href="http://bit.ly/1CXS9sP">Doing an API mashup with Dancer</a>.
</p>
</div>
</td></tr></table>
</td></tr>
<tr><td>
<div id="footer" style="
border-top: 1px solid #ccc;
border-bottom: 1px solid #ccc;
">
<p>
You joined the Perl Weekly to get weekly e-mails about the Perl programming language and related topics.
<br />
Want to see more? See <a href="http://perlweekly.com/archive/">the archives</a> of all the issues.
<br />
Reading this as a non-subscriber? <a href="http://perlweekly.com/">click here to join us</a> free of charge.
<br />
(C) Copyright <a href="http://szabgab.com/">Gabor Szabo</a>. The articles are copyright the respective authors.</p>
You can <a href="http://perlweekly.com/unsubscribe.html">unsubscribe here</a> if you don't want to receive mails any more.
</p>
<p>
You can freely redistribute this message if
you keep the whole message intact, including
the Copyright notice and this text.
</p>
<div>
</td></tr>
</table>
</body>
</html>