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.

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.

[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).

Perl 5 Porters Weekly: November 26-December 2, 2012

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

Topics this week include:

  • rand() on Windows only uses 15 bits of entropy
  • RFC: Removing several undocumented functions from the Perl core
  • 5.18 VT in \s
  • Comment period extended for Unicode's changing some common characters from Punctuation to Symbol

Silent Night for KephraXP

Yes there are still some (hard to find) bugs, but Kephra, the most curious and perlish editor had a small and silent breakthrough. The new (complete) rewrite is now self hosting and will be from now on used to program Kephra in itself.

Please provide an abstract for posts to blogs.perl.org

When writing on blogs.perl.org, you can provide the first paragraph or two as an abstract, with the rest of your post as the "extended" body. In this post I'll try and convince you that doing this is more considerate of the readership, and good for you too!

Perl community motivation survey - results

Perl community motivation survey is over. Thanks to all those who participated in it!

Here are the results: berekuk.github.com/perl-motivation-survey/.

The results contain various aggregated statistics, as well as the link to the raw data, so I'll spend the rest of this blog post talking about my interpretations and my overall experience from organizing this survey.

YAPC::Europe 2013 in Kiev, week minus 36. A brief update

Dear attendees,

We are very close to signing the contract with the venue. There are a number of things we have to do before we finally sign it. So, please excuse us for doing that so long. We have to negotiate, for example, the place for catering, internet connectivity infrastructure, sound and media equipment, -- all that goes into the contract.

Today I will quote the site of our venue, The Ukrainian House (ukrdim.org.ua, UA). We will rent the following rooms.

Concert hall (782 m²). The room for hosting concerts, literature and art events, congresses, conferences and presentations. It has 490 stationary seats, the stage and a screen. It is equipped with theater, regular and dynamic lightening systems (whatever that means :-) and the 7 kW system of sound amplification. There is a direct connection with the radio studio nearby.

A Look at Cartesian Products

A new post in my blog about Cartesian products.

Problem: You have a number of sets and you want all the combinations when choosing one element from each set.

In mathematics, these combinations are called the Cartesian products. They are also known as cross-products. In the database world, they are sometimes called cross-joins.

Perl case studies

I've often thought it would be interesting and useful to read about how various companies are using Perl. Richard Jelinek's talks at LPW 2012 have encouraged me to see whether (a) there's enough general interest in this to make it worth while, and (b) I/we can kick-start it. In this post I'll outline what I'm currently thinking about, to get feedback.

CGI is dead, long live CGI

Yesterday's (not so pleasant) experience of trying to deploy Pastedance *) on an internal web server at work makes me appreciate the simplicity of CGI. CGI might be out of favor for production sites, but for personal and internal applications, it's still the best choice for me.

Finding Duplicate Code in Perl

When working with legacy code, it's useful to have a variety of tools that let you better understand your code base. For example, I recently wrote about finding unused subroutines. That heuristic approach was fine because I was still going to inspect the code manually rather than automatically remove the code.

So now I hacked out a rough "duplicate code finder" for Perl. It focuses on cut-n-drool code and has found more than I would have thought (even in my code!). If a developer changes variable names, it won't find it, but if I hacked around with B::Deparse, I could fix that, too.

Count-up to 100 CPAN Distributions: Test-XML-Ordered, SDLx-Betweener, and more

Well, it's no longer a secret that I'm craving to join the "100 CPAN Distributions Club" by releasing some code that is hopefully not too useless. Here I would like to blog about the two new additions to my CPAN page which are the 83rd and 84th distributions respectively. The story is a bit more complicated than that.

The first upload is SDLx-Betweener, which allows for creating high-performance and smooth animations in SDL by making use of Perl/XS. Almost all of the coding (and a related YAPC::Israel talk) was done by Ran Eilam, who is a very cool guy, a good friend and a former boss of mine, and I've just done (with his permission) some last-minute cleanups and did the initial upload to CPAN. So I kinda feel like the frog that sat on top of the elephant who crossed the river and said "We did it!".

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.