2015 CPAN Pull request Challenge - collected links

As a minor contribution to the challenge, I've started to collect the links
about the CPAN PRC If something is missing, please send a pull request. (No, that pull request won't count as being part of the challenge :)

Hey Bedrock, the 21st Century is calling!

I was a bit taken aback by Gabor's Perlweekly mention of my Bedrock blog. I guess there really are a few people that read these blogs! ;-)

Then of course, I was a little disheartened by the something from the last century reference. Having been born in the last century like many programmers today, I don't necessarily think everything that comes from the 20th century is bad, obsolete or not worthy of our attention. But, in the end, he's actually spot on.

CPAN Cleaning Day 2457027: Changes and README

I spent another day of prosaic adjustments to my CPAN distributions. For quite awhile the chaos of the Changes and README files have bothered me, so I wanted to think about those. And, many of the files I scheduled for deletion disappeared from PAUSE today.

I'd like Changes to have structured information that a program can turn into a data structure (and query, such as "What version fixed GitHub issue #137?". We don't quite have that, but there is the start of a specification in CPAN::Changes::Spec and a test module, Test::CPAN::Changes to check it. There's even a Changes Kwalitee at CPAN HQ. I'm not doing so well at the moment. Dave Rolsky has some thoughts on Changes files too. Of course, Neil has already written about it in A convention for Changes files, and Jonas covers many of the same things.

CPAN as publishing platform

There are quite a bit of modules on CPAN that does not really contain code, but have content/data as their raison d'être. On a more "serious" note there are things like Games::Word::Wordlist::*. Then there are also "less serious" things like Acme::CPANAuthors.

Recently some PerlMongers::* modules have also been uploaded to CPAN (a couple of examples). They mostly contain a POD with a bunch of links to respective PM group's website, meetup page, IRC channel, and so on. Which got me thinking whether Acme::IAm::$CPANID is a good idea (probably not): sorta like your homepage on CPAN, where an author would introduce (him|her)self and post links to (his|her) website or whatnot. Perhaps even a picture or two.

I have a few other ideas for (abusing|misusing) CPAN as a content publishing platform. Why not? It's mirrored all over the globe, has lots of tools associated with it, you can search with metacpan.org, grep with grep.cpan.me. Your content is automatically tested, past versions are archived.

Anyway, just some random idea. Back to our regular programming.

PR-Challenge: January 1st PR

So, yeah, to make me more active in the Perl community I decided to join the Pull Request Challenge. I have a quite big number of modules to maintain, but sometimes it is good to look to some other people code to learn something.

My attribution for January was Data::ObjectDriver. I am not sure, yet, what this module is about, but I learned some stuff already, dealing with Module::Install. That was enough for a simple Pull Request [see here]. Hopefully it will be useful for other people as well. Also, hope it gets accepted.

Although this is enough for the Challenge, I expect, in the next days, to prepare at least one more Pull Request. So, stay tuned.

EDIT: The second pull request [here] did not take that much time. Fixed a test that was failing given new error message on DBD::SQLite.

Test-Simple release plan

Unless something comes up, I plan to release the new Test-Simple, with refactored and new internals, on Saturday January 10'th.

Test-Simple-1.301001_096

This trial version has been on cpan since December 28'th. No issues have been reported against this trial version. Assuming that does not change I will re-release it as stable. Now is absolutely the time to check your code against this new version.

The goal from the start has been to maintain compatibility as much as possible. That said I was not able to maintain compatibility for things that munged the internals of Test::Builder too much. However I was able to maintain support for the most common cases of monkey-patching. I also maintained the existing APIs.

If you find something that is broken by the new internals please file a bug on github. All issues will be evaluated, if the issue can reasonably be resolved by patching Test-Simple, then that will happen. However if the issue is that you replace the Test::Builder singleton, or make significant modifications to subs in Test::Builder, then you may be asked to patch your module instead.

Note: This version is also in perl-blead, and was in perl-5.21.7.

Downloading Welcome to Night Vale podcast episodes

I started getting into podcasts recently and one that I heard mentioned a few times was Welcome to Night Vale. I didn't get to listen to it yet, but decided I'll try it out.

When I start with a podcast, I want to download the episodes. I don't listen on my computer, I listen on my mp3 player. (Yes, I still havhttp://commonplacebooks.com/welcome-to-night-vale/e one, and no, it's not an iPod.)

At the same time, I'm sick of going over lists of pages, opening each, and then looking for the download button, so I wrote a Perl script that downloads all episodes for this podcast.

New perl5 Porting/bench.pl

Dave Mitchel finally got fed up by the lack of stable perl benchmarks, and the impossibility do catch performance regressions.

This was his announcement, with the sample:

$ Porting/bench.pl -j 8 --raw --fields=Ir,Dr,Dw \
   --tests=expr::assign::scalar_lex \
   perl5210o perl5211o perl5212o perl5213o perl5214o perl5215o perl5216o

....

expr::assign::scalar_lex
lexical $x = 1

   perl5210o perl5211o perl5212o perl5213o perl5214o perl5215o perl5216o
   --------- --------- --------- --------- --------- --------- ---------
Ir     155.0     155.0     155.0     155.0     161.0     161.0     161.0
Dr      54.0      54.0      54.0      54.0      57.0      57.0      57.0
Dw      30.0      30.0      30.0      30.0      31.0      31.0      31.0

and the bisect usage sample:

D=/home/davem/perl5/git/bleed

$D/Porting/bisect.pl              \
 --start=v5.21.3                  \
 --end=v5.21.4                    \
 -Doptimize=-O2                   \
 -j 16                            \
 --target=miniperl                \
 -- perl5201o $D/Porting/bench.pl \
      -j 8                             \
      --benchfile=$D/t/perf/benchmarks \
      --tests=expr::assign::scalar_lex \
      --perlargs='-Ilib'               \
      --bisect='Ir,153,157'            \
      ./miniperl

About blogs.perl.org

blogs.perl.org is a common blogging platform for the Perl community. Written in Perl and offering the modern features you’ve come to expect in blog platforms, the site is run by Dave Cross and Aaron Crane, with a design donated by Six Apart, Ltd.