No Go GSoC

I am sorry to report that the Perl Foundation will not be participating in this year's Google Summer of Code. A number of stumbling blocks were created the most important being the failure in accurately planning workload for which I take full responsibility.[1]

I have spoken with Duke and Paul who performed magnificently for me, as always, and our plan going forwards is to move the planning and preparation to a rolling event. This means that we will start gathering more ideas, volunteers and approaching students now in preparation for 2016.

So although we have failed to get onto the programme in 2015, we can perhaps make a stronger effort for next year and subsequent years.

I would like to thank all those people who took the time and effort to help out with this year's attempt and to ask them not to get too downhearted as we will be using their hard work to guarantee success in the future.

[1] This year we were struck by a lot of timing issues and some problems with the wiki which meant re-doing the whole of the wiki.

Adopting in the hope to improve maintenance

I am interested in getting these modules under good maintenance again:

  • Term::EditLine (Ulrich Burgbacher) (update thanks to Neil Bowers and Ulrich Burgbacher I am now the maintainer of this dist)
  • Win32API::ProcessStatus (Ferdinand Prantl) (update thanks to Neil Bowers I am now the maintainer of this dist)
  • File::Which (Adam Kennedy, Per Einar Ellefsen) (update Thanks to Adam Kennedy and the modules list I am now the maintainer of this dist)
  • Regexp::Assemble (David Landgren)
  • PerlIO::gzip (Nicholas Clark)

I am happy to adopt these modules in the event that the original authors are unable or unwilling to continue maintaining them. I have what I think is a pretty good record in adopting modules while maintaining backwards compatibility and the original author’s intent. Examples include Alien::LibYAML, Mojolicious::Plugin::TtRenderer, PkgConfig, String::Template, Test::Fixme.

eMortgage Logic is Hiring!

eMortgage Logic, an Assurant Company, is looking for Senior Perl Web Application Developers. Our offices are located in North Richland Hills (Dallas-Fort Worth Metroplex) AND we are open to remote positions for the right candidate.

We want your experiences and talent to influence our architecture and our team. We’ve got a wide variety of projects to keep work interesting and fun, ranging from the epitome of legacy apps to self-contained services running on the latest and greatest of Modern Perl. Having an appreciation for the evolution of the Perl web development community will be your greatest asset in modernizing and growing our stack together with us.

If any of the below practices or technologies make you excited, apply at http://jobs.assurant.com/dallas/information-technology/jobid7063768-lead-software-engineer-jobs and come aboard – let’s have fun! :)

  • Agile / Scrum / Kanban
  • Moops / DBIC / Dancer2 / Mojolicious
  • PostgreSQL 9.4 / Sybase
  • Apache 2 + mod_perl / nginx
  • Sencha Ext JS / Node.js
  • git + Stash / JIRA / Confluence
  • Memcached / ActiveMQ
  • Jenkins / Docker
  • RHEL / VMware
  • ELK / Nagios / Cacti

P.S. Like contributing to CPAN? We support open source!

A big week in Oslo

Next week I will be returning once again to beautiful Oslo, for a visit brim-full of all things Perlish.

For a start, I'm running two public classes on Wednesday March 4 and Thursday March 5,
in conjunction with Oslo.pm and Redpill Linpro.

On Wednesday, I'll be teaching the follow-up to my Perl Best Practices class (which we ran in Oslo several years ago). In this new course, Perl Even-Better Practices, I'm revisiting the guidelines that I first devised nearly ten years ago now, updating my advice and suggestions to reflect the huge number of changes both in Perl itself, and in the CPAN ecosystem, during the intervening decade. I'll be demonstrating and explaining 50 new guidelines, designed to make your Perl code even cleaner, safer, and faster.

Public Voting through Twitter

Last week, we organized a charity party. It was more like a contest, or a show, in which 10 teams participated. Each team was supposed to perform a show on their choice: dance, music, or even a play. We also had a judge of 5 people to grade performances. These people were not the only ones to decide who wins the night, though. There was going to be a public voting, that anyone can participate.

So I wrote a Perl script for the party. We picked an event keyword starting with a # character, and listened Twitter for tweets including that word. Then, we had different keywords for each team. Anyone who wanted to cast their vote would just tweet with event keyword + team keyword, and that would be it.


Image: People asking their followers to vote for their teams

Dancer2 0.159000 waiting for you on CPAN!

Hi everyone,

It's been a little while since we had a release. We took longer this time because this release provides a few major improvements we wanted to mature.

With 13 contributors and 23 tickets closed, I'd like to present Dancer2 0.159000.

Strawberry Perl 5.20.2.1 released

Strawberry Perl 5.20.2.1 is available at http://strawberryperl.com

More details in Release Notes:
http://strawberryperl.com/release-notes/5.20.2.1-32bit.html
http://strawberryperl.com/release-notes/5.20.2.1-64bit.html

I would like to thank our sponsor Enlightened Perl Organisation for resources provided to our project.

On OP_SIGNATURE

Since it is not possible to write p5p criticism to the mailing list, I'll have to do it in my blog. @p5p: think over your guidelines. I don't believe that stuff like that needs to be blogged.

DaveM now introduced a new OP_SIGNATURE which assigns run-time args according to the compiled signature.

New Perl Module: AWS::SNS::Verify

I’m pleased to announce the release of AWS::SNS::Verify. If you’re using Amazon Simple Notification Service then you need a way to verify the authenticity of messages coming from SNS. This module handles that easily for you.

[From my blog.]

Building a Thin Controller

I haven't updated about Veure in a while and though this post isn't really about Veure, per se, I'll use some code from it to illustrate a "thin controller."

There's a lot of confusion about the thin controller/fat model advice which gets passed around. In fact, I've seen some developers get upset about the idea, claiming that it's the model which should be as thin as possible. I'll explain what's really going on and give some real-world examples, using code from Veure.

CPAN to MetaCPAN auto redirect for Chrome released

Like most of you, I prefer MetaCPAN over CPAN. The biggest issue I had was any google search and older blog posts all linked directly to CPAN.

I found 'MetaCPAN Helper' on the Chrome Web Store however using it caused google to pop up a page about me being redirected whenever I clicked on a CPAN link costing me a few extra seconds to get where I wanted to go. Like many of you I thought this was unacceptable so a little while back I created my own extension that does not have this issue.

What the extension does is rewrite all search.cpan.org url's to search.mcpan.org without any tracking, annoying popups, or redirect pages.

Hopefully this will help some of you out. If you have any issues or features you would like to add you can do so at: https://github.com/bvierra/chrome-metacpanredirect/issues or send me a pull request.

Source Code is available at: https://github.com/bvierra/chrome-metacpanredirect

Extension is available at: https://chrome.google.com/webstore/detail/meta-cpan-redirect/blakeebdldmplhhegjofiaidnijmiphj

How do you join the conversation?

blogs.perl.org is great in that it's a stream of blog posts around a specific technology. Since I, like many of you, blog about other technologies too, I'd like to learn from you about other conversation streams. For me personally, the list of topics include:

  • Web development (JavaScript, CSS, etc)
  • Lifehacks
  • Unix, Linux, shell scripting
  • General tech / tech business
  • Database

I'll add what little knowledge I have on the topic:

More

Removing AUTOLOAD from CGI.pm

I'm about to release an update to CGI.pm that will strip out all of the AUTOLOAD and deferred compile optimization. I'm reasonably confident that this will have no impact other than adding a few tens of milliseconds to the startup time for any scripts using CGI.pm. Of note is that CGI::Pretty will now be deprecated, along with the -complile pragma and ->compile method. If you are using the -any pragma and have arbitrary tags (or typo's) in your code then your code *is* likely to break.

This optimization was added twenty years ago, it has little to no benefit now and makes the code difficult to deal with as well as falsifying test coverage metrics. It needs to go. Given the legacy sprawl of CGI.pm there may be bugs lurking; if you're using CGI.pm please test this release. The DEV release is available on CPAN:

https://metacpan.org/release/LEEJO/CGI-4.13_02

Avoid a Common Software Bug By Using Perl 6

Back in 2001 I was working for a company who had a client who was in a serious bind: the maker of their point of sale (POS) system suddenly jacked up the license fee to the point where our client would go out of business. They needed a new POS in 21 days.

We grabbed an open source POS system and identified all of the features it was missing that our client would need. Then it was 21 days of overtime and no days off. Back in the days of use.perl.org, I blogged about this hell almost every day. It was also, interestingly, the first project I wrote software tests for. The other main dev on the project was teaching me how Perl's testing tools worked and as the days went on, I found myself incredibly proud of seeing all of those tests pass and catching bugs I would not have otherwise caught.

RFC: Limiting grant duration

I am thinking about adding this to the grants operation rules:

If the grant does not finish within three times of the proposed duration or within two years, the grant will be considered a failure.

First of all, it should be noted that it won't affect most grants (see the reason 2).

Reason 1: Budget structure & allocation to new grants

TPF does not allow over-allocation of the budget. If we have 3 x $3,000 grants running and our budget is $9,000, no more grants can be funded.

If a grant worth $3,000 is running for five years, this $3,000 is stuck in the TPF safe. Even if we get good proposal, we cannot fund it using this money.

The aim is to increase liquidity of the fund.

Reason 2: If a grant runs more than a year, chance of failure increases

During 2009-2013, we managed 17 grants. Here is the breakdown:

CPAN.io, yearly boards and gamification

The CPAN once-a-week has been running for more than three years now, with several active leaderboards. NEILB introduced the monthly and daily releases competitions, and the notion of NeoCPANisms. CPAN.io extended the game to seven different contests, over more release types and periodicities.

Note: The CPAN.io Pulse also has [a post about what follows]((http://cpan.io/pulse/2015/02/new-cpan-board-and-all-yearly-boards.html).

Analysing CPAN Testers' Reports

The task

In the second round of the Pull Request Challenge, I was assigned Olson::Abbreviations. At work, we've been bitten by the ambiguity of the EST timezone, so I liked the general idea of the module. Moreover, there were some test failures reported at CPAN Testers Reports, so the task was clear: Make all the tests pass!

Always make_immutable (unless you have a very good reason not to)

One hears that __PACKAGE__->meta->make_immutable is a must all your Moose classes. ( edit, ht ribusushi: never immutate your moo classes, it'll inflate them into Moose classes automatically thus defeating the point). Here's a stark reminder of why.

I was doing some benchmarks on a web application that I've been moving from mod_perl to plack. Here's the performance of 350 requests forking off in batches of 7 before I remembered to make_immutable:

$ time perl 002-hammer_lightly.t 
# Total number of requests = 350
real    1m11.095s
user    0m3.003s
sys 0m1.336s

And after:

Looking for YAPC::NA News?

It is very frustrating when there is a conference you want to attend and you can't get any information about it. It is even more frustrating when you are a conference organizer receiving complaints about no news despite all your efforts to keep people informed. Here is a guide to finding out what's going on inside YAPC.

Starting with the official channels:

The first and foremost way to find out what's happening with YAPC is yapcna.org. The home page of the conference site contains a news banner that will take you to recent announcements. It also has a list of links to places you might want to subscribe to receive information.

But wait, there's more...

New Djet blog entry

Moved to a new blog

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.