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.

Corvisa is Hiring!

Corvisa has a Perl Developer position open that looks quite interesting.

Department:Software Development
Compensation:Competitive with benefits

Job Description

As a Software Developer, you will be responsible for the design and development of our RESTful API and backend processing jobs to add new system functionality that will support our growing customer base.

You will accurately and rapidly write code for various software products, which entails using proper coding conventions as well as following any specific desired coding conventions. Emphasis is on producing clean and lean code that is capable of functioning and scaling in highly demanding business environments.

Qualifications

Downvoting unsupported modules

A new, late, new year's resolution for 2012: rate unsupported modules with 1 star. Two such examples. By unsupported, I mean tickets are not responded at all (let alone bugs fixed) for months or even years. Perhaps module-starter should emit this POD section template instead:

=head1 BUGS

Please report any bugs or feature requests to
C<bug-foo-bar at rt.cpan.org>, or through the web interface at
L<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Foo-Bar>.
I will be notified, and then you'll automatically be notified of 
progress on your bug as I make changes.

BUT KEEP IN MIND THAT I MIGHT GO ON, HAVE A LIFE, AND FORGET 
COMPLETELY ABOUT THIS MODULE, THAT YOU SHOULD RELINQUISH 
ANY HOPE OF GETTING TIMELY RESPONSE FOR INQUIRIES ABOUT 
THIS MODULE, IF EVER.

No, I'm not bitter, really :)

Mojolicious Full and Lite apps - understanding the difference

The mojocasts have thus far used lite apps exclusively to demonstrate basic Mojolicious functionality. This has led some to believe that Mojolicious is a one-file micro-framework; however, that is not the case.

Mojolicious a full-featured framework, supporting what some would call Catalyst-level deployments, in addition to one-file simple applications.

Mojolicious::Lite is a thin layer on top of the full framework - literally a 68-line module that provides Sinatra-like syntax, including the ability to embed base64-encoded binary files.

Full apps are a good choice for teams, and for sanely separating concerns for large web apps.

I've uploaded a sample application to demonstrate the differences, and allow folks to see first hand how to translate from Full to Lite, and vice-versa.

The example application demonstrates DBIx::Class integration, how to test your web app with Test::Mojo, as well as how to use EP templates with and without tag helpers. For those unfamiliar with testing in general, there are even examples of DBIC schema tests.

Dancer updates

First, a short introduction to the state of the Dancer community.

Dancer really is a community, in every sense. You can see it by pull requests from fresh developers, pull requests from people who've been there for a while now, and you can see it in the channel and on the mailing list. I can't explain in words how thrilling it is to this day to see someone on the list reply to someone else. Dancer clearly isn't mine, it's ours, all of us, including those who take a few minutes to actually reply and say "hey, I might not know what your problem is, but how about you try this and that and let me know if it works out. I'd like to help you fix it" or "hey, I know that one, it's..."

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.