Lowell Hotel Registration Fixed

Some people had reported that the reservation system for the YAPC::NA 2012 conference center hotel at the Lowell Center wasn’t allowing them to book a room. Someone at Lowell had entered our room block wrong, it was set to force everyone to check out on June 15th, rather than allowing people to choose to stay until the 16th if they wanted. This has been fixed.

If you would like to stay at the conference facilities (Lowell Center) for YAPC::NA 2012, you can now register here

[From the YAPC::NA Blog.]

Winobot, the IRC Bot You Can Party With

There's a new Perl IRC bot on the block. Built on AnyEvent. And he likes to party.

Details and GitHub

Perl is faster than C -- can benchmarks get compared?

Interpreting byte code can never be faster than native code. We all know. But two benchmarks generated in different programs might tell a different story. So I thought I should share my wisdom.

Some days ago, I was experimenting with the Redis noSQL Database in order to find an alternative to file based session storage for Catalyst web applications. Redis comes bundled with a benchmark tool redis-benchmark which reveals the speed of this database. On my Macbook I get these counts when benchmarking the database with single concurrency:

Komodo 7, first try

I do not test Komodo for years. Decided to give it a chance. Sometimes I miss autocomplete in emacs (any emacs user suggesting any emacs plugin?). But first script I edit with Komodo, and it doesn't know how to highlight the file, when I have a line like:

@files = <????/*.abs>

It thinks that is starting a regular expression. Oh damn :)

Fixed it with glob, of course. But didn't like :)

MetaCPAN API and Android

Sterling Hanenkamp will give a talk at YAPC::NA 2012 described as:

I’ve been building an Android application to access Perl documentation through the MetaCPAN API. This talk will give a brif look at the MetaCPAN API and how it can be used to build a mobile app like this.

[From the YAPC::NA Blog.]

Welcome to my Perl blog.

Hi. I'm Nathan. I go by Ravenhall on Perl Monks/PAUSE for those of you in the Perl world. I'm starting this blog to record my work revolutionizing things here at FedEx.

As far as I know, I'm the only full-time Perl programmer here. Perl is used heavily in my group - for both system automation and administration, as well as a few simple web applications. Most of this code is functional in nature, and was written between 12-5 years ago. It's also spread across many servers, and is not very maintainable or portable. It was written under Perl 5.4 - 5.8, so there's lots of room to improve things and bring them up to date.

Call of the callback: Inversion of Control or just coolness?

Suppose I have a Runner which holds a Prober object. I need the Runner to call the Prober and update stuff according to the result. Pretty simple, right?


my $prober = Prober->new(...);
my $result = $prober->check;
if ( $result eq 'whatiwant' ) {
$self->update($stuff);
}

However, I'm running in asynchronous mode, which means I need the prober and update to run somewhere in the loop, and I can't just sit around and wait for a reply. I gotz otha dingz to do, mon! So, I have two options:

- I call the Prober and sends it the Runner object ($self to you). Once the Prober is done, it will call the correct update method in the Runner object object.
- The Runner calls the Prober and sends it a callback containing updating code.

I asked around at $work and had been suggested to use the first method. Instead, I actually went for the second. (let this be a lesson to you: always listen to suggestions, but make up your mind youself!)

A Tale of CPAN Testers

So the most important takeaway from this blog post is that Test::File version 1.31 is now available on CPAN, with some new functions for your testing pleasure: dir_exists_ok, dir_contains_ok, file_contains_like, and file_contains_unlike.  Check it out.

But I thought it might also be enlightening if I went into a little more detail about the story behind this release.  Now, I already talked about how I became co-maintainer for this module.  At the time, I asked brian d foy if there was anything special he wanted me to do for releasing, any particular procedures he wanted followed.  As I said, it’s his car—I’m just driving it for a bit—so I want to do things the way he expects them done.  The only thing he really mentioned was that he typically puts out a developer release and makes sure it passes CPAN Testers before doing an official release.  Of course, I replied, I do that too.

Workshops Over Half Full

Both the Perl Testing Workshop and the Zero to Perl Workshop at YAPC::NA 2012 are over half full. There are less than 10 seats remaining in each workshop; and at the rate they’re filling we expect them to be completely filled by the end of next week, if not sooner. 

If you are planning on attending the workshops, then please sign up sooner rather than later so you don’t miss your chance.

[From the YAPC::NA Blog.]

Findus Internet-OPAC sponsors YAPC::Europe 2012!

FindusBlog.JPGFindus Internet-OPAC sponsors YAPC::Europe 2012! Thanks!

Findus is a media search engine for public libraries written in Perl. With this software users can check if a book is available in their library and what they already have lent.

"What began as a personal project is now serving more than 4 million books, CDs, DVDs etc. and about 800,000 readers accounts in about 90 libraries into the web. Automatically, daily, no work for my librarians. And they love to have no work with it :-)" (http://www.findus-internet-opac.de/findus/perlrunsfindus.html)

Findus is a regular sponsor of Perl events like YAPC::Europe and German Perl-Workshop. And the development team gets new ideas at every Perl event they attend.

soma.fm

I like

  • soma fm
  • command line interfaces
  • Perl most of the time

I don't like

  • All media players except cmus
  • Shell syntax

So I made something simple to scratch my itch.

Screen Shot 2012-01-29 at 11.26.07 AM.png

Download from GitHub

YAPC Achievements

Want to make YAPC a game? Want elite points for doing things at YAPC? Want to be the person to give out the points?

JT Smith was at the Windy City Perl Mongers last night giving his The Game Crafter talk as an exemplar of the talks he wants at YAPC in Madison. It's more about his application of Perl to one of his businesses than just explaining another module or framework.

After the talk when JT and I were headed back uptown, we started talking about achievements for YAPC. You do something and you get some sort of recognition. That might be for giving a talk, showing up at the keynote, donating money, talking to Schwern, posting a picture of YAPC on Twitter, and all sorts of other things.

The trick however, is to find the capacity to implement all the ideas. Someone must already have implemented something close.

Yanick already has perl achievements (although it's not on CPAN, wtf Yanick? :)

Introduction to the Perl Data Language

David Mertens will give a talk at YAPC::NA 2012 described as:

Perl is awesome as processing text, but did you know that Perl can handle high performance computing, too? With the Perl Data Language, Perl can process large data at C speeds while using idiomatic Perl.

The Perl Data Language describes itself as “giving standard Perl the ability to compactly store and speedily manipulate the large N-dimensional data arrays which are the bread and butter of scientific computing.” What does this mean? In this talk, I will give an introduction to PDL from a Perl programmer’s perspective. I will cover basic PDL operations from creation and access to standard manipulations and will explaing basic plotting. Some of the more advanced topics will include slicing arbitrary chunks of data and, if time allows, writing code that interfaces with PDL’s processing engine.

[From the YAPC::NA Blog.]

Perl first world problems #1

  • Some github users name their Perl repositories perl-*, some p5-*, yet some perl5-*. I can't decide.
  • I use cpanm all the type, but can't use tab completion because "cpan" exists. I can add aliases but have to do this on every system.
  • perlbrew takes too long compiling a new perl.
  • I used to be hip because I use Perl, not anymore.
  • I'm spoilt with optional semicolon in Ruby/Python/JavaScript, now I can't go back.
  • There are too many modules on CPAN (okay too obvious).

The Case of the Incompatible Safe

When I entered our rooms, I found C. Auguste Dupin lounging in his fauteuil by the window. His eyes were on the paper in his hand, but he seemed to be gazing beyond it in abstracted thought.

"A death?" I asked, smiling, remembering the events of a few days previous.

"Non, mon ami, simply a puzzle, and a rather pretty one. It appears that one M. Tueur, in attempting to improve his Perl, has entrapped himself in a web of conflicting requirements from which he can not extricate himself."

"Better him than me," I observed. "How did this come about?"

"Very simply. He found himself in a position where he had a string containing Data::Dumper output, which he needed to load back into his code. Now, normally this requires a stringy eval, but since he was justly cautious about doing this, he decided to use the Safe module instead."

"A wise precaution," I remarked, trying to hold up my end of the conversation.

"But then he wanted to do coverage testing."

DateTime is annoying

Am I the only one who always uses

my $dt = DateTime->from_epoch(1327673580);

as opposed to the correct

my $dt = DateTime->from_epoch(epoch => 1327673580);

??

Parking at YAPC::NA

If you plan on driving in to YAPC::NA 2012 each day, or are staying in the dorm rooms and driving to Madison, then you’ll need a place to park. All other lodging besides the dorm rooms has parking available, you simply have to ask for it. 

If you need parking, then you need to fill out this PDF form and submit it back to University Parking no later than May 15th. 

[From the YAPC::NA Blog.]

Big Number::Phone update soon

There's lots of changes coming soon to Number::Phone - see github for a sneak preview.

They're mostly as a result of me pulling in data from Google's libphonenumber and automatically generating perl classes for all of the countries which I don't already handle. I refer to these as "stub" classes, because while many of them do have a lot of data, some don't, and in any case libphonenumber is missing some features that "full-fat" Number::Phone subclasses support. This isn't a criticism of libphonenumber, it's just a result of the two projects aiming at slightly different targets: libphonenumber is primarily designed for embedding in handsets; Number::Phone was primarily designed for telco billing, routing, and provisioning.

So, the major changes in detail ...

Dear LazyPerl, looking for a logger

I'm looking for a logger module like Log::Log4Perl but one I can hand a filename to and be done with it. No /etc configuration files or other crap to deal with, and still have debug/warn/etc log levels.

Any ideas? Something like:

use Log::EasyLog;

my $logger = Log::EasyLog->new( file => '/tmp/mylogfile' );

Deprecated not depreciated

I've seen a number of modules marked as depreciated, rather than deprecated.

deprecate: To mark (a component of a software standard) as obsolete to warn against its use in the future so that it may be phased out.
depreciate:
  1. To lessen the price or value of.
  2. To write off an expenditure for (a tangible asset) by prorating over a certain period, usually the estimated useful life of the asset.

I'm guessing that people aren't using their CPAN work to help balance their books...

Definitions from thefreedictionary.com

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.