I’m very pleased to announce that Michael Schwern has...



I’m very pleased to announce that Michael Schwern has agreed to be our keynote speaker at YAPC::NA 2012. He’s got an interesting and diverse portfolio of work in the Perl community, but most of you probably know him as the guy that created Test::More, although my favorite module of his is URI::Find. He’s one of the most entertaining and dynamic speakers the Perl community, and I’m sure this talk will be no exception. 

How to get astride a zombie.

Hi everyone!
I have written an article about defunct processes under UNIX. I think it will help someone what is going on inside UNIX IPC :) Everyone is welcomed: IT Remarks

Deadline for YAPC::Europe 2011 Survey Submissions

The deadline for submissions of the YAPC::Europe 2011 Conference Survey and Talk Evaluations is tomorrow. If you attended YAPC::Europe in Riga, and haven't already done so, please take some time to complete the survey and give your feedback both to the current organisers and future organisers. Whether you only attended for the first time this year, or have been attending for years, all feedback is useful and worthwhile.

So far we've had 144 surveys and 713 evaluations submitted, and a big thank you to all those complete the forms.

I plan to work on the talk evaluations over the weekend and send them out to speakers early next week. I shall then work on the survey results, which will be posted on the YAPC Conference Surveys site.

Variable Names

I wrote this on beginners@perl.org today in a thread which was discussing short variable names:

This is a shot of the rooftop terrace on the Pyle Center roof...



This is a shot of the rooftop terrace on the Pyle Center roof where the YAPC::NA 2012 banquet will be held on Wednesday, June 13th. 

Tool for Perl Scripting - Devel::Comments


One of the advantages to Perl is that as a scripting language, a small script can be coded to perform a simple task. For example, I enjoy sharing photos of family over the internet, but all the images are at least 2.4Mb in disk size! Using a mix of Perl and Unix commands, I have a script no bigger than 1 page to resize entire folders for me.

I like to use an iterative method of programming. Code some lines, execute and test. Rinse and repeat. But I found my method of debugging annoying. $\ = "\n"; and print() statements to sanity check my variables, only to delete or comment those lines later.

Enter a great Module: Devel::Comments A module to help with debugging in the development stage by using the comment lines in your scripts.

Make the comments in your code work for you. Now to view the value of a variable: write:

### $mainDirectory

and STDERR will print out:

### $mainDirectory: /home/tyler/perl

CPAN Testers Server - Update 14/09/2011

Initial checks on the database highlighted some discrepancies, which have now been fixed. The databases have now been archived and are now rebuilding. It is hoped that this will be completed within the next few days.

Once the database are all rebuilt and sync'ed, the websites will slowly be switched back on. The first sites that will appear will be the Statistics and Devel sites, with the Reports website coming back online once the bulk of the support files (JSON, JS & HTML) have been recreated.

given/when and lexical $_ ...

... or happy debugging!

TL;DR Upd: Use for instead of given, as Aristotle suggests.

Here are some code snippets to show what's wrong with given/when.

use 5.010;
use strict;
use List::MoreUtils qw/any/;

given ('test') {
    when ('test') {
        say "any" if any {$_ == 2} (2, 3);
    }   
}   

The above code prints nothing. Ok, let's change any to grep to see if it works:

I’m very pleased to announce that Best Practical...



I’m very pleased to announce that Best Practical Solutions is sponsoring YAPC::NA 2012. Best Practical Solutions are the creators of RT: Request Tracker, the leading open-source issue tracking system.

Best Practical was founded to deliver value to RT’s established base of users by providing custom development and user support for RT. We are fully committed to supporting RT as an open source technology, while providing the quality development and support necessary to operations in commercial enterprises and corporations.

Twin City Perl Workshop 2011

Twin City Perl Workshop 2011 in Vienna and Bratislava is now open for registration. The event will take place on Friday, 4th November, in Vienna (@ Metalab), and on Saturday, 5th November, in Bratislava (@ Hotel Barónka).

If you want to present anything Perl-related in English, Slovak and/or German, please submit a talk!

Train transfer between Vienna and Bratislava is sponsored by Booking.com - thanks a lot! If you or your company / organization would like to sponsor, too, do not hesitate to contact us!

See you in Vienna & Bratislava!

(Crossposted from domm.plix.at)

Find the exploit…

Two of these can permanently drop the UID to 1000. The other two however results in a state where a previous privileged state can be restored. Can you spot which ones are right and which ones not? And most importantly: why?

$< = 1000;
$> = 1000;

$> = 1000;
$< = 1000;

$< = $> = 1000

$> = $< = 1000

I'm making a note here: HUGE SUCCESS

Thanks to the Philadelphia Perl Mongers for hosting my DB Critic talk last night. I got over my public-speaking jitters and it went really well, with great questions and ideas from the whole group.

Internationalization and Act

An interesting question came up today regarding our team’s Act development for YAPC::NA: Are we going to take the effort to maintain internationalization for the new features we add? My answer was an emphatic yes!

We’re a US conference, with a team largely composed of US programmers (we have a few foreigners lending us a hand; thanks, guys!). Even so, Perl is not exclusively a US programming language; people all over the world use Perl for just about everything! The Act team has been doing a great job making their application available to people speaking a variety of languages, and I’m proud to carry on that tradition. Now, if you’ve never written internationalized code before, the prospect may seem a bit daunting; so here’s a tip you can use when working on Act:

Mojocast #3: Authentication, Helpers, and Plugins

The response for Mojocast #2 was even more overwhelming than the first episode.

How overwhelming?

mojocast e2 #1 on hackernews.png

That's right, your upvotes matter. Within 6 minutes of posting, it was secured on the front page. Within 20 minutes, it was #1.

Consider the reality here: the most watched site on the internet by hackers/developers had a Perl-related post in the top spot. It remained on the front page for 6 hours, which is pretty good for a screencast with no article attached. That's a solid group of folks with a lot of potential aha moments in Perl's favor.

Bottom line: If you care about the marketing of Perl and its exposure among the masses, consider upvoting the Mojocast, leave a comment, and spread the word!

Hooray Perl!

Speaking of which,

Mojocast #3: Authentication, Helpers, and Plugins

Hackernews post

Announcing Marpa::XS 0.010000

Some time ago I released Marpa::XS 0.010000. The core Marpa algorithm had already been converted to C, speeding it up considerably. Marpa::XS 0.010000 cleans up a lot of code left over from development, further speeding things up.

What is Marpa?

Marpa is an advance over recursive descent and yacc. I hope the Marpa algorithm will become the standard parser for problems too big for regular expressions.

Padre blog revisited

First post - moving to blogs.perl.org from use.perl.org

We’re pleased to announce that Shutterstock has become...



We’re pleased to announce that Shutterstock has become Gold Sponsor of YAPC::NA 2012. Shutterstock loves Perl.  They’re a stock photo and video company, and are at the forefront of technology and research.  They do fascinating things with search, discovery, recommendation engines, and scalability.  They’re looking for really smart people and great engineers to help them to continue to be a leader in the industry.  They focus on fast, iterative development (over 150 deployments/month) and collaborative, interactive programming. Developers work on small cross-functional teams (4-6 people) that have a voice in setting their own priorities and are expected to build and deploy applications quickly and iteratively.

If that’s not enough, check out these other perks:

Heads up: LLVM (e.g. C/C++)-to-JavaScript compiler

Hi Folks

Yep, head on over to emscripten.

poor man's cfv/cksfv (CRC checksum)

Lately I wanted to compute CRC-32 checksums for some videos. At first, I took a look at Digest::CRC and wrote this one-liner:

perl -MDigest::CRC=crc32_hex -E 'say crc32_hex <>' file.mkv

But of course that didn't work, since I was only reading a line off the first file in @ARGV. Realizing I need to read in the file, I added IO::All in the mix:

perl -MDigest::CRC=crc32_hex -MIO::All -E 'say crc32_hex io($ARGV[0])->all' file.mkv

That worked, but it was too slow since it read files into a string, and I was dealing with large (~1GB) file sizes. After a bit of looking around, I found the Digest::file module, so my one-liner finally becomes:

perl -MDigest::file=digest_file_hex -E 'say "$_ cksum: \U@{[digest_file_hex $_, q|CRC-32|]}\E" for @ARGV' file1.mkv file2.mkv files*.avi

Of course, I could have gotten something like cfv or cksfv from my Ubuntu repository, but curiosity got the better of me ;)

(edited: make use of perl's -E switch to implicitly enable features.)

Presenting DB Critic at Philadelphia Perl Mongers tomorrow night

Just a quick FYI that I'll be presenting DB Critic (née DBIx::Class::Schema::Critic) tomorrow night at the monthly Philadelphia Perl Mongers meeting. We're in Room 307 of Levine Hall on the University of Pennsylvania starting at 7:00 PM.

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.