Learning Perl Challenges

I'm starting a series of Learning Perl Challenges at www.learning-perl.com, the blog I maintain for Learning Perl. While I was posting about the Student Workbook for Learning Perl, I started thinking about the difference for exercises based on a particular chapter or feature, and capstone exercises that would use anything or everything in the book.

The first challenge is to reimplement which to find programs based on a pattern instead of an exact name.

I’m quite pleased to announce that Shadowcat Systems has...

I’m quite pleased to announce that Shadowcat Systems has decided to sponsor YAPC::NA 2012!

Shadowcat Systems is a developer, sponsor of, and contributor to open source software projects including Catalyst, Moose, Moo, Tak, Devel::Declare and DBIx::Class. Shadowcat provides consultancy, training and support for these projects and for most of CPAN; systems management and automation; the design and implementation of network architecture; the development of proprietary and open source custom web applications; and offers Perl refactoring and project crisis management.

Shadowcat Systems are based in the United Kingdom but delivers solutions to a global community of clients via onsite supervision along with traditional and internet based communications. 

[From the YAPC::NA Blog.]

A milestone for Alien::Base

I have been working on a set of base classes intended to make creating a new Alien:: distribution for some library as easy as making a simple Module::Build based distro. So far the code isn’t on CPAN yet, follow its progress on GitHub.

I haven’t been feeling so well today, so I have been sitting around watching movies (which I own on DVD) on TV. Of course I can’t sit still that long without doing anything so Alien::Base saw a burst of activity today.

Along with testing I am also keeping an Alien::Base-based Alien::GSL (which provides the Gnu Scientific Library) in the examples folder. The big news today is that this example distro can now query the GNU FTP server, pick the newest version of the library. It then downloads, extracts and builds the library in a temporary folder. Finally it “installs” the library in a File::ShareDir directory in the Alien::GSL root/share directory. Even this isn’t as cool as how it does this:

cpXXXan is moving ...

... although you probably won't notice.

Executive summary: your disks hate you

Until about 20 minutes ago, cpXXXan ran in a virtual machine on a box that I rent. That box also hosts VMs for CPANdeps, for some of my own CPAN-testing activities, and a few other things. I did it that way because it was cheap and convenient. However, over the three years that it's been running (gosh, is it really that long?!?) this has become a rather, umm, "sub-optimal" solution.

That's because the CPAN has got much larger, as has the number of CPAN-testers reports. Even worse, the rate of increase of both has been consistently increasing. This means that the amount of work to be done for the daily imports of new data, both for cpXXXan and for CPANdeps, has increased dramatically. This means that the jobs take longer, and scheduling them has become a Hard Problem.

Perl and Opendata

Thiago Rondon will give a talk at YAPC::NA 2012 described as:

Opendata is the idea that certain data should be freely available to everyone to use and republish as they wish, without restrictions from copyright, patents or other mechanisms of control.

In Brasil, we worked last year with some solutions with opendata, that government can be transparent and make a good comunication with society.

And the result of this work are three websites that use Catalyst, DBIx::Class and a lot modules of CPAN.

One of this websites is “Where does my money go ?” -  http://www.paraondefoiomeudinheiro.com.br/.

Another one, is about where is crime in one state of Brasil, that with a map you can see where it is happy by time. - http://www.ondeacontece.com.br/

At last, one about our representants - http://www.deputando.com.br.

In this talk, I explain how Perl can be a good language to make nice and fast websites with opendata.

[From the YAPC::NA Blog.]

The Perl Learning Environment

For YAPC::NA, I'm creating a new course called "From Zero to Perl" (although I'll probably actually call it "0..Perl"). JT Smith wants to create not only new Perlers, but new programmers, and he wants to start them with Perl. I'm up for the challenge. However, there are some things that you might have opinions and suggestions on.

The Learning Perl course I teach assumes that you already know how to program, just not in Perl. Some non-programmers do alright, many struggle, and a few outright fail. Most of those have nothing to do with Perl as a language. Programming as a way of thinking is hard, especially for the complex things people what to do right away with Perl. It's easy to make a turtle draw geometric shapes, it's not conceptually easy to design a blogging platform.

Why is this "use" a syntax error?

Many Perl developers are unaware that they can assert a module version with an import list at the same time. For example:

use Test::More 0.96 tests => 13;

However, the following is a syntax error:

use Test::More  .96 tests => 13;

Frankly, I don't know why. Here's a program which demonstrates my confusion. It exhibits more or less the same behavior on 5.8.9, 5.10.1, 5.12.4 and 5.14.2.

And the output is:

SV = NV(0x7fc84083a5e8) at 0x7fc84082be90
  REFCNT = 2
  NV = 0.96
SV = NV(0x7fc84083a5e0) at 0x7fc840800fd0
  REFCNT = 2
  NV = 0.96
Argument "2.121_17" isn't numeric in subroutine entry at (eval 2) line 2.

Error is: none
String found where operator expected at (eval 3) line 1, near ".01 'Dumper'"
        (Missing operator before  'Dumper'?)

Error is: syntax error at (eval 3) line 1, near ".01 'Dumper'"

The Devel::Peek shows that both numbers are the same, as far as Perl is concerned, but using .96 for the version is a syntax error. Reading perldoc use hasn't cleared this up for me. Is this a parsing bug or is there something else going on?

Video Recordings for YAPC::Europe 2012

We are looking at recording some or all talks at YAPC::Europe. The most promising option for recording and publishing the talks seems to be to hire a professional team. We don't want to hire that team just to find out that posting of the talk material is unwanted, like Andrew did in Riga.

As a way forward, we will likely ask for the (audio/video) publishing rights on your talk if you submit one. This will not mean that your talk will necessarily get recorded and published, because we don't know whether we will record all rooms on all days. But all other things being equal, we will give submitted talks preference that allow us to publish the video afterwards.

If you think that recording talks is a waste of money and time, as nobody will watch them anyway, please also comment below. It would save us a great deal of organization if there is consensus that videos are undesireable anyway.

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.