Test::Class + Moose?

I recently wrote about finding duplicate code in Perl and I've just uploaded Code::CutNPaste to the CPAN. Hopefully folks will find it useful.

However, what's not yet on the CPAN is Test::Class::Moose. People have asked me repeatedly how to mix the two, so I whipped up a quick alpha.

Happy Birthday Perl

Happy 25th Birthday, Perl! I made you a card:

perl -C -e'print map+(v9635 x8^unpack B8).(v10)[++$n%9],(unpack u,"MK__^=^WW_S_WK)FNO\$3F5U\$7BJJ.=>U51S-WK)GNM>UF=W%[K[N>?___SW__")=~/./g'

How to find CPAN modules that need help on Windows?

Recently Neil Bowers wanted to identify CPAN distributions you could help out with and Michael Roberts mentioned the smoke testing effort on Windows .

Assuming someone would like to help with Windows, how could he generate a list of modules that are especially problematic on Windows?

Is there a way to fetch all the distributions that have no successful test reports on Windows?

Is there a way to create the ratio of (failed test reports)/(all test reports) on MSWin32 for each distribution, and then show the top 100 of that list?

The Joy of Perl

Tomorrow is the 25th birthday of Perl. The Perl programming language.

When I've first heard about it, it was named PERL, the spelling that now is a nice indicator of awareness in the row with Perl and perl. Honestly, I never thought of Perl as of a practical extracting and reporting language, I simply had no clue about which reports and which extractions were mentioned in that definition.

I have first seen the name of the language on the book covers in a book shop in my home town years ago. I cannot tell you when exactly, but it was definitely before 1998. At that time it was only something related to web and programming for me.

Perl is not my first programming language. The first one was C++ (with ++ from the start), and I still find it one of the best languages and tend to use it as soon as there's a small need.

cpantimes

OK, so I decided to hack in support for submitting CPAN testers reports into cpanminus. I've uploaded the result to CPAN in case anybody else wants to use it. After CPANPLUS and cpanminus, the logical name for it was cpantimes.

Here's how to use it...

Perl 5 Porters Weekly: December 3-December 9, 2012

Welcome to Perl 5 Porters Weekly, a summary of the email traffic of the perl5-porters email list.

Topics this week include:

  • security notice: Storable
  • security notice: Locale::Maketext
  • Does Unicode mandate a collation order?
  • a job for someone? SvREFCNT_dec_NN()
  • CERT Perl Secure Coding Standard

Smoke testing on Windows

As a Perl programmer on Windows, I've often had moments of supreme frustration. I can't use SSH or SFTP from Perl, and I can't use some of the mail handling modules. When I got started back in the early years of the century, I couldn't even use CPAN; I had to compile my own Perl and accept the fact that tests just mostly had no chance of working. Over the past year or two, however, especially as I've come to rely on CPANtesters for my own modules, I've started to realize that one reason for this is the lack of dense testing of modules on Windows. (Yeah, Paul Evans had something to do with that realization, too.)

But then Gábor Szabó posted on Google+ that he hoped to make it to #20 on the Windows smoke tester leaderboard. (As of today, he's at #19 - congrats!)

Wait. There's a leaderboard?

The shit of booking.com

A few times every month someone asks me how is it to work at booking.com. People know that I worked there some time ago and they tend to gather more information about the company in which they are going to be interviewed for a position of a developer.

The dates before the 21 December 2012 are the best ones to stop thinking about the company where I spent 1.5 years. Although both booking.com and I are strongly related to the Perl programming language and its community, the text below the cut-line is not about any technical issue in Perl, but is about the way booking.com stops the contracts with their employees. I intentionally use the feature of MovableType that allows splitting the abstract and the body. So, please do not read further if you don't want to read things that are there.

Oh Carp!

Recently got hit with this error:

Goto undefined subroutine &Carp::shortmess_real at /usr/share/perl/5.10/Carp.pm line 41.

What's going on?

Building a Search Web App with Dancer and Sphinx

In this article, we'll develop a basic search application using Dancer and Sphinx. Sphinx is an open source search engine that's fairly easy to use, but powerful enough to be deployed in high-traffic sites, such as Craigslist and Dailymotion.

In keeping with this year's Dancer Advent Calendar trend, the example app will be built on Dancer 2, but it should work just as well with Dancer 1.

Alright, let's get to work.

Task::DWIM 0.04 for DWIM Perl

In the recent month or two I did not have any time to work on DWIM Perl, the Perl distribution with batteries included, but yesterday I managed to do something little that might help.

I created a Task distribution listing all the modules DWIM Perl should contain. Actually, it is only a first list, but it already has quite a few modules.

YAPC::Europe 2013 in Kiev, week minus 35. Extra activities

Hi,

This week I didn't fix the countdown week counter but I think I will do it next time. This week Viacheslav (vti) was negotiating the contract with the venue, and I am happy to tell you that he managed to save a few thousand euros by reorganising the room configuration that was initially proposed. We did not lose any space, and we still have the big and nice concert hall, so no worries. Huge thanks to vti! We hope to sign the contract next week.

It is very likely that we will have no extra paid classes around the conference. But still, if you are reading this and would like to give a class, please contact us.

[FB]izzBuzz in Perl

I finally sat down and organized my unsorted bookmarks in Firefox. In doing so I came across Jeff Atwood's blog post describing the FizzBuzz test:

Write a program that prints the numbers from 1 to 100. But for multiples of three print "Fizz" instead of the number and for the multiples of five print "Buzz". For numbers which are multiples of both three and five print "FizzBuzz".

I must have bookmarked the link while preparing for interviews before graduation. After skimming over the material I was curious to know the smallest amount of Perl code I could use to write a solution.

Here's my attempt:

Any shorter solutions? I suppose I could just use print if I wanted a one-liner...

Identifying CPAN distributions you could help out with

The other day Andy Lester posed a question Where can someone find Perl modules to contribute to? My first answer was to look at the dists with the most bugs. I continued thinking about it, wondering how you could identify a module that is ripe for help.

This post outlines my next idea, and the top 20 dists based on my first implementation.

Stupid Joomla Tricks: Using /images to get PHPUnit coverage results

If your website is powered by Joomla! but you want to display your PHPUnit HTML coverage results like the rest of the webpages, you can stick the coverage results in a subdirectory of images, like http://developer.example.com/images/coverage/.

I haven't tried it, but I expect this trick would work for other CMS-driven sites.

CPAN module recommendation system

A little confession/reasoning/backstory: I love CPAN surfing. You know, watching the latest releases, browsing module dependencies and other modules by the same authors... And favoriting the interesting stuff. Stats show that I'm not supposed to be the only one. If so, wouldn't it be nice to provide a crowdsourced recommendation for CPAN modules? Think: "People who favorite Mojolicious often favorite: AnyEvent, Data::Printer, Devel::NYTProf, Dist::Zilla...". Plus, given the user's favorites, own releases & own release dependencies, a custom-tailored module suggestion list could be build for any PAUSE ID subscribed to the MetaCPAN. Enter the CPAN::U experiment.

CPAN Testers Summary - December 2012 - Shabooh Shoobah

November turned out to be a very eventful and productive month. Aside from various code updates with some CPAN-Testers distributions, including porting many of the tests to Test::Database, and discovering the usefulness of Test::Trap for testing some of the scripts, we also got a handle on the missing reports. For the past few months, questions about missing reports has increased. Back in August I started to look at a more thorough catch-up. After some suggestions and ideas from David and Andreas, I also added some to code to collect data in a similar way to the tail log. As a consequence of the tail parsing, the improved catch-up code and the rewritten generate code, it now means that not only have we caught up, but we now have a much more robust mechanism in place to ensure we're not missing any reports.

More On Finding Duplicate Code in Perl

While at the Quack and Hack, I wrote Code::CutNPaste. This tries to find duplicate code in Perl and does a fairly decent job, right down to finding code where people have changed the variable or subnames.

At the suggestion of Liz, I add a --jobs switch. For one project with almost 400 .pm files, I originally had this:

time find_duplicate_perl lib > report.txt
real    65m52.922s
user    39m2.998s
sys 24m27.776s

I now have this (a multi-core machine helps):

time find_duplicate_perl --jobs 4 lib > report.txt
real    22m49.700s                                                    
user    41m22.387s
sys 34m36.146s

pmtools-1.20 (Perl Module Tools) Released

I've released pmtools-1.20 with these fixes:

  • pminst now only displays unique names.
  • pminst now ignores non-existent directories in @INC.
  • I added pmcheck, a utility to check whether Perl is set up for Perl modules. At the moment, pmcheck just reports problems with @INC (missing directories, etc.)
Thanks to Matthew Persico and Andrew Pam for their help with pminst .

Mojolicious, Plugins and Ebooks

The "cpan-2-ebook" site perlybook.org comes with some minor updates for winter holidays.

Below the "front lid" there are some interesting changes. We replaced the caching module CHI with the wrapper Mojolicious::Plugin::CHI. The module is quite new. But after some exchange with and bugfixing by (thanks!) the module author this module can now be recommended together with Starman and nginx - as we use it at Perlybook.

BTW: the Perltuts Tutorial ebooks finally get their title and author in the meta information... (I'm actually wondering why nobody ever complained about this).

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.