The YAPC::NA 2012 Job Fair and Expo Hall has sold out! We have...



The YAPC::NA 2012 Job Fair and Expo Hall has sold out! We have 20 exhibitors at our expo hall who will be looking for people to fill their Perl jobs. If you’re looking for a job, or are thinking that it might be time to make a switch, then the YAPC job fair is going to be an excellent place to gain some first-hand intel on some prospective employers. 

The YAPC Job Fair will be held at the Pyle Center on Thursday, June 14th from Noon to 4:30pm. It is free to both YAPC attendees and the general public. We hope to see you there!

[From the YAPC::NA Blog.]

Archive::Tar::Wrapper vs. Archive::Tar

If you don't know it, Archive::Tar is SLOW; it even says so. Running NYTProf recently on a project revealed that the major part of the program was taking a little more than 27 seconds to run and a little over 24 seconds of this was Archive::Tar reading the archive into memory. Since I did not need the in memory feature, I switched to Archive::Tar::Wrapper. That sub now takes about 2.5 seconds to run and the equivalent portion to Archive::Tar->new($file); is now Archive::Tar::Wrapper->new; $arch->read($file); now takes 631 ms.

Perl Podcasts

I had to make a last-minute drive to Chicago last Friday, which is about a two-and-a-half hour trip from Madison. So naturally, to pass the time, I loaded up my phone with podcasts. When I was about halfway home, it hit me: I didn't have any Perl podcasts on my phone! Unfortunately, I don't know of Perl podcasts; I've seen Perlcast, but it looks like it hasn't been updated in a year and a half. So, this is a call to the Perl community: are there any Perl podcasts out there?

Request sent for String::Strip comaintainership

String::Strip has a problem on 64 bit environments, and a release has not been made in over 10 years. I have sent an email to modules@perl.org asking for COMAINT as the author has apparently not been responding to RT tickets.

https://rt.cpan.org/Public/Bug/Display.html?id=70028

http://search.cpan.org/dist/String-Strip

If anyone sees this post and has the magic powers to make this happen, I'd be very appreciative if they could help out.

Zero to Perl Workshop SOLD OUT!

The Zero to Perl Workshop at YAPC::NA 2012 is officially sold out! It joins the Perl Testing Workshop that sold out last week.

We still have a handful of seats left for the Hackathon / Hardware Hackathon if you’re looking for a pre-conference activity. Those will likely be gone by Monday, so if you’re interested in either the Hackathon or Hardware Hackathon then please get your badge soon.

We still have about 75 seats left for the conference itself also. Though with two months left to go, we expect to sell out of those as well. The moral of the story, get your badge now.

PS. If you are a speaker, you are not required to purchase a badge, as it will be provided for you. If you are a speaker and have already purchased a badge, your entire badge fee will be donated to The Perl Foundation to continue the development and maintenance of Perl.

[From the YAPC::NA Blog.]

Sponsor a Perl QA hacker!

Until this weekend I was only vaguely aware of the Perl QA Hackathons. Something led me to the attendees page for the Perl QA Hackathon 2012. If you scroll down to the section "Registered, seeking sponsorship", you'll see a list of names, many of which you'll recognise, along with a list of things they're planning on working on.

If you see something listed that you want, or think Perl will benefit from, why not donate.

I'm not going, but I liked the sound of a PAUSE web service, DBIx::Racer, and MetaCPAN work, and we all benefit from CPAN Testers.

ExtUtils::MakeMaker make release

I often wonder why people praise Dist::Zilla for ease of use. Recently I heard this argument: 'It was never easier to make a release. You cannot do that with EUMM'.

So I here is my little make release snippet from one of my Makefile.PL.

There is more in it. make README, make gcov and make gprof for XS extensions.

How to Estimate like an Adult

New post on my Software Engineering blog: How to Estimate like an Adult

Basic Regular Expressions Workshop

Bradley Anderson will be giving a free workshop at YAPC::NA 2012 described as:

Those TIFF files

While releasing and compiling Prima 1.33 for 5 different perls, I'm taking a moment to send a couple of warm ones towards the TIFF specification. Prima originally was written to be used in (among other) software for microscopy recordings, and recently a former colleague sent me a bunch of tiffs no software could read. Heh, here's the challenge, thought naive me. Indeed, these were 10-bit grayscale tiff bitmaps, and as bit-shuffling was some long time ago an interesting topic for me, I've implemented these in Prima's tiff codec. Everyone's happy.

DistZilla from one newb to another

I'm giving a talk tonight at Houston.pm about Dist::Zilla . The slides from the presentation are after the cut. Also, there's a set of links about DistZilla here .

The guinea pig CPAN release for this talk is a Perl binding for the Cron.IO service. It uses Franck Cuny's cool Net::HTTP::API library. A complete binding in like 60 lines of code. Very cool.

CPAN Testers Summary - January 2012 - Bringing It All Back Home

January ended up being quite a productive month, with several issues with websites getting sorted finally.

A few people noticed that the leaderboards weren't producing the right numbers on the Statistics site. Due to it being January a rather deceptive bug came to light regarding the calculations of previous months. Thankfully I found and fixed the bug before the end of January, as for the remaining months of the year, the bug doesn't surface :)

Next up was the Preferences site. After several weeks trying to get the SSL certificate set up correctly, I left it to work on the Statistics site bug, only to return to look at it again a couple of weeks later to discover it all working! No idea what the problem was, but suspect something was caching somewhere with the wrong settings. Any road up, if you've been wanting to change any preference settings for emails, you can now login and update these for yourself again.

YAPC::NA is 75% sold out!

With just over 2 months before the conference we’ve sold more than 300 tickets to YAPC::NA 2012 so far! That’s great news. The bad news is that the conference facility maxes out at 400 people, so if you are coming to YAPC, you need to get your badge sooner rather than later. 

Also, we only have a couple more tickets left to sell before the Zero to Perl Workshop is full. And we only have about 10 more spots left for the Hackathon that precedes the conference, which includes the Hardware Hackathon led by Robert Blackwell. 

I don’t want anybody to miss out on the great program we’ve got set for YAPC::NA 2012. So please don’t hesitate, sign up today!

[From the YAPC::NA Blog.]

Israeli Perl Workshop 2012 - 28 February 2012

(The Hebrew text will be followed by an English one).

סדנת הפרל הישראלית לשנת 2012 תתקיים ב-28 בפברואר, 2012. זהו כנס יומי שיתקיים במכללת שנקר ברמת-גן. לעיונכם נתונה רשימת המצגות שתינתנה בסדנה, בה יהיו שני מסלולים.

אף על פי שהכנס הוא ללא תשלום, הרי שיש צורך להירשם, אז הקדימו להירשם היום. בנוסף, אם אתם, או חברה מסחרית אחרת שאתם מכירים מעוניינים לתת חסות לסדנה, אנא פנו למארגניה.

פרל הינה שפת תכנות דינמית וחזקה שנמצאת תחת פיתוח פעיל, ושיש לה מאגר הרחבות פעיל ופורה בשם CPAN (Comprehensive Perl Archive Network). דף הבית של שוחרי הפרל הישראליים מכיל מידע נוסף וקישורים נוספים לגבי הפעילות של חובבי השפה בישראל.

English Version

The Israeli Perl Workshop of 2012 will take place at 28 February, 2012. It will be a daily conference which will take place in Shenkar College in Ramat Gan. One can view the list of talks that will be given in the conference, where there are going to be two tracks.

Unicode and Passwords

As I was doing some reading on Unicode, I had to sign up for a free account with ft.com site in order to read one of their articles. I normally use strong passwords, but this Web site presented me with the following error message:

Your password must be at least 6 characters long and include letters and numbers only

Ignoring the bad user interface — please tell me before I typed the damned password — it's also suggestive of security issues (ask Bobby for one reason why programmers have such bad password restrictions).

And that got me to thinking about Å, also known as U+212B.

Module review updates

I've just updated the review of modules for defining constants :
  • Christian Walde (MITHALDU) pointed out I'd missed enum, which is used to define sets of constants with values in sequence, akin to C's enum type.
  • As a result, I found enum::fields, which similarly is used to define sequences of constants. But it's aimed at defining names for accessing fields in class which uses an array ref under the hood, and supports extending the sequence of constants in a subclass.
  • I mailed p5p with some questions that came out of the review, and Zefram pointed out his modules Lexical::Import and Lexical::Var, both of which can be used to define compile-time immutable variable style constants, which can be used in the constant folding conditional compilation idiom. I always learn things about Perl when I do a review.
The first review I wrote covered modules for generating passwords . I've moved it out of blogs.perl.org and added two more modules. Both Crypt::PW44 and Crypt::XkcdPassword were inspired by the same xkcd cartoon !

Get More Out Of Your Meetings

Abigail will give a talk at YAPC::NA 2012 described as:

Many people, specially developers, hate meetings. They have to invest a lot of time, for little reward. Meetings, however, can not be avoided completely. At work, I can easily have a dozen meetings in a week. In this presentation, I will share some ideas and tips we use to make meetings more efficient; so the participants get “more bang for the buck”.

[From the YAPC::NA Blog.]

The unexpected case of -Mblib

I'm in constant worry of unnecessary bloat because our perls have to run fast. "Bloat" means added dependencies, loading new files at startup, needing more time.
Generally little benefit for more cost.

With the perl compiler I can analyze code and dependencies at compile-time and strip unneeded packages.
My recent concerns have been:

The Case for Simplicity

Part of my design goal for Tie::Array::CSV was to be an elegant blend of tied objects making hard things easy both at the user and author (me) levels.

A few months back I announced that Tie::Array::CSV is now more efficient on row ops. Since then I have had a nagging thought; this change cost me elegance and simplicity.

To implement the deferred row operations, I made my row objects wait until their destructor to update the file. Sounds nice until you realize that you now have race conditions all over the place. So you hunt them down and store/update more internal data, always keeping track of what has been changed. A simple change became a big undertaking. As the project finished I couldn’t help but yearn for the simplicity of the original design goal.

The case of the non-standard non-PSGI unbuffered input

It all started with a question. Ain't it always the case? A question, a simple little question?

I was at my desk at work, hacking along as usual, when a message popped up. Suspicious, since I'm unlisted, I probed the lines carefully. The message was from a dear friend, who had been wondering about a special use case for a web framework. Not just any web framework, but the web framework that I loved. Dancer, her name.

He had been struck with the interesting requirement of writing a web application to upload files. These were no ordinary files, but rather very large ones. The question was whether it is possible, using Dancer, to upload just a header of the file, verify the type, and upon that verification allow or disallow further uploading.

After a short examination, it was clear that Dancer buffers the input files prior to giving you access to them, such as many other frameworks do. We had left it at that.

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.