Welcome to Perl 5 Porters Weekly, a summary of the email traffic of the
perl5-porters email list. Usually I go Monday to Sunday, but just to keep
things tidy, we'll make this the final summary of 2012 by including the 31st.
Topics for this week include:
cPanel version of "Storable 2.39_01" breaks backwards compatibility
Please separate fixes to spelling from changes to code layout in patches
In
a previous post, I showed a self-parsing grammar,
written in Marpa's new BNF interface.
That grammar was in a tradition going back to the 70's.
Following the tradition, I cheated a bit.
That grammar required,
but did not include, a lexer to make a prepass over
its input.
This post contains a self-parsing
and self-lexing grammar,
the one for Marpa's forthcoming Scanless interface.
This grammar is about as self-contained as a grammar can get,
short of being encoded into a
Universal
Turing machine.
Many readers will
prefer to be introduced to the Scanless interface
by way of
a simpler example,
but based on the response to the previous post I know
there are others who share my fascination with
self-description and self-exemplification.
And there is something to be said for reading an example
that is a final authority on itself.
This is just a quick note to let everyone know that MetaCPAN is moving to a new hosting sponsor today (Dec 31st). Our old hosting relationship with speedchilli.com has unfortunately come to an end. We've been quite grateful for and more than satisfied with their sponsorship over the last 1.5 years or so. Having the hardware and bandwidth which speedchilli freely made available to us was instrumental in the early days. (Initially everything was running off a tiny instance in the Rackspace cloud. It wasn't much, but it was all we could afford after passing the hat around). Having speedchill sponsor us allowed everyone who contributes to MetaCPAN create something truly special.
This Sunday post is the last one before the new 2013 year begins. So, a beautiful chance to have an opportunity to list some results that we achieved during the year and share some plans for the next one.
One glaring deficiency: does not take PAUSE deletions into account (is there a MetaCPAN API for this?) Thus, the number of actual dists on the graph is monotonically increasing and might be higher than the number of actual dists on CPAN.
Generated graph is still rough and number of authors is limited at three because I'm too lazy to tweak the sample script from Chart::Lines.
A better LinkedIn makes the world a slightly better place for me. Our ill-defined, disparate, and disperse community has many parts that can be improved and I spend a couple of minutes each morning moderating some LinkedIn stuff. Other people help out in other sites. There are a couple of things that I'd like to encourage.
I want to recruiters to see that CPAN Developer's Group badge and ask candidates why they don't have it. Even if that means the person only ever uploaded one module, that means they've gone through the process once, which I think is the biggest obstacle to sharing. Once they get over that hump, even if just to get the badge, they are a slightly better Perler. And, it's all about a long journey where each step makes them slightly better. If they are hiring better Perlers, I'm dealing with better Perlers when I show up.
Zotero is in my opinion the best solution to citation management available. It's a firefox/xulrunner based solution for collecting and maintaining bibliographic data and it's associated full text. Zotero has a cloud based API but also an internal (largely undocumented) Javascript API. I find the JS API much more interesting than the cloud API due to having total control over my data (and works offline etc etc...).
Two frustrations I've had with a lack of good alternative to the msword integration code, and problems with interacting with the internals of a running firefox/xulrunner. I finally cracked open mozrepl, and the cpan module MozRepl and prototyped a bidirectional bridge between Zotero and perl.
The code is here, and should be a useful start for anyone who wants to do any bibliographic data mangling in perl. I'm not going to publish it to CPAN until I work out how to test it properly.
Today I'm working on some code. That's not surprising. It's also not surprising that the person I'm working on the code with is on holiday until the new year starts. Before he left, he made some significant changes to optimize our code, but for one subsystem he didn't have the time to apply his changes. This means that we have 7 tests failing out of 397. In a quick check we found there were plenty of conflicts between his code and mine and my work was generating even more conflicts. This meant we had two choices for how to deal with this while he was gone:
I could continue my work with passing tests and deal with even more conflicts when he returns
I could merge his code, deal with some failing tests. get rid of the conflicts and have a much faster code base
Previous end-of-year report for 2011. Previous quarterly report: Apr-Jul 2012.
2012 is my most productive year yet in my "CPAN career": 943 releases (compared to 495 in 2011). That's about 2.5 releases per day! So far I have about 215 distributions under my account, almost half of them (96) are new modules in 2012. The reasons the number of distributions is high include: Perinci modules family being split into many distributions (and then some, to avoid recursive dependencies problems that I seem to keep bumping into), the various Task distributions, and also the fact that releasing CPAN modules is so darn fun! A little too much fun, I'm afraid.
Almost all the BackPAN distributions have also been analyzed.
Personal Feed
You can subscribe your kwalitee report feed of your distributions (http://cpants.cpanauthors.org/author/PAUSEID/feed).
Metrics
Finally Moose and friends are correctly considered as "use strict" equivalents, and new valid_signature metric is introduced (both have been implemented in Module::CPANTS::Analyse 0.86 months ago, but have not been introduced on the previous site for various reasons). On the other hand, some of the experimental metrics about debian packages are disabled because the data source has not been updated for a while.
Issues?
If you find anything, tell me via github's issue tracker:
Dear YAPC::Europe attendees and those who would like to come to Kiev in August 2013,
We are very happy to announce the launch of the conference site: yapc.eu/2013.
Together with that, I am correcting the week countdown counter: there's no week minus 34, and the week -35 is followed by the week -33. The dates of the conference are 12-14 August 2013. There's a negligible small change that the dates will be changed, so we will make additional announcement when we are ready. It's Christmas and New Year time, that's why we have to wait a little bit more to be 100% sure. Vyacheslav vti and Anatoly sharifulin have just returned from Saint Petersburg where they attended the celebration of the 25th birthday of Perl, which is a good excuse :-)
A few days ago, I announced the release of Mojolicious::Plugin::ModuleBuild. After some thinking I realized that without much (any?) changes it would work more generally, even with the ExtUtils::MakeMaker toolchain. Therefore I am now announcing the availability of Mojolicious::Plugin::InstallablePaths.
The general concept is that Mojolicious applications assume a certain directory structure for use locally. To make a CPAN-installable distribution out of that application one must move some directories. Further, if packaging using Module::Build, even more changes had to be applied.
Mojolicious::Plugin::InstallablePaths allows a consistent usage in all phases of development and with either build tool (EUMM or Module::Build). Hopefully this helps encourage people to think of their Mojolicious apps as candidates for CPAN and makes it easier for them to share them with the world that way!
The old module will be marked for deletion and the old blog entry will be removed as well, so don’t try to use it, its going away.