YAPC::NA Will Be Televised!

We wanted to do something that, to our knowledge, has never been done before at YAPC, so I’m pleased to announce that YAPC::NA 2012 will be streamed live out to the internet for free! We will have professional videographers in all four of our main track rooms (not the workshop or hackathon rooms). Those feeds will be streamed live to the internet so that anyone who couldn’t make it to YAPC will be able to watch in real-time for free. 

These feeds will also be recorded, however, we don’t know yet what to do with those recordings. We’ll probably upload them to YouTube or some other online video service, but we’re hoping to get some volunteers to help with that task, as we’d like to automate that process as much as possible. If you have experience with this, and want to help, please email admin at yapcna dot org. 

[From the YAPC::NA Blog.]

The syntax of English is undecidable

The question of parsing English and other natural languages has come up in the course of my work on the Marpa parser. As in the case of Perl, I first posed the question of whether any algorithm running on a Turing machine can parse the target language. This post contains what I hope the reader will find to be a rigorous demonstration that the syntax of the English language is undecidable.

When I say “undecidable”, I mean that term in the strict sense. Undecidability is not vagueness or uncertainty -- undecidability is the certainty that a “decision” of the matter is not possible. I will give a specific example of an English-language sentence which is unsyntactic if and only if it is syntactic.

The Demonstration

Logging in Dancer

I don't remember whether I blogged about Dancer::Logger::Log4perl or not, but a recent post by Ovid in Dancer's mailing list made me think that it would fit his use case. Unfortunately it seems that some of my messages did not make it into the mailing list (I didn't find them in the archived thread, anyway), so I'm blogging it here for a wider audience to bother.

If I understood Ovid's needs correctly, he needs an additional logging level in Dancer that allows to pass messages whatever the log level. Apart from the semantic level considerations here, the use case seemed to fit perfectly with using Log::Log4perl because it has a wide range of logging levels and the possibility to separate different logs in different parts.

A possible proof-of-concept is the following example:

Why I love my job

When I was just starting out in my career a very wise person told me:

”The day you find a job you love, is the last day you’ll ever have to work.”

For me, that day was the day I discovered public speaking.

And for the past decade I’ve made my living doing almost nothing apart from standing in front of an audience and telling them stuff.

Of course, I still code every day…just not for pay. I’ve also done quite a bit of design over the past ten years, but again not for any direct remuneration. It’s teaching and presenting and keynoting that pays the bills and, conveniently, it’s those three activities that I enjoy above all.

Unicode Regexes

Tom Christiansen will give a free workshop at YAPC::NA 2012 described as:

In a world where Unicode is increasingly essential for text processing, Perl offers the best and least painful support of any major language, smoothly integrating Unicode everywhere—including in Perl’s most popular feature: regular expressions.

Simple patterns like [a-z] or \d no longer cut the mustard, partly because Unicode is such a large character set, and partly because of multiple ways of writing characters with diacritics. There are many land mines in regular expressions now that Unicode has to be taken into account.

This session details how to use Perl regular expressions on Unicode text. Augumented versions of familiar idioms now do a lot more than they used, and brand new ones have been added. Beyond these shortcuts, thousands of Unicode properties are available to let you say exactly what you mean. Learn how to tailor your own properties and character sequences, how to portably handle word and line boundaries, how to match several different kinds of grapheme clusters, and how to define your own character properties.

[From the YAPC::NA Blog.]

Forward::Routes block syntax

Forward::Routes provides routes for framework developers.

The following feature refers to the Github version and is experimental: https://github.com/forwardever/Forward-Routes

Commit

Forward::Routes supports the nesting of routes, which can result in better performance and maintainability.

However, as your project grows, route stuctures can quickly become confusing.

The following routes:

Solving Carl Mäsak's "Counting t4 configurations" problem... in pure Perl 5

The problem: Counting t4 configurations

The solution:

$ time perl t4.pl 
total: 4783154184978

real    0m0.185s
user    0m0.176s
sys     0m0.004s

The code:

Report on the Israeli Perl Workshop 2012

Well, I've got a lot of stuff I'd like to blog about in the various blogs of mine, and so I'm starting with this report on the Israeli Perl Workshop of 2012, which had taken place in 28 February, 2012. Moreover, April Fools' Day is approaching, and I had an idea for a Perl-related April Fools' gag, but after telling it to RJBS (the current Perl pumpking), he and I agreed that it would hit too many nerves. (PerlJam on IRC said he liked it, though). Maybe I'll publish it on 2 April with a big disclaimer on top, just for kicks.

Anyway, here is the report. I had originally posted it to the Perl in Israel mailing list for review, but did not get any reviews, so it may not be too letter-perfect, but I guess that's life.

Introduction to Git

Randal Schwartz will give a free workshop at YAPC::NA 2012 described as:

Randal Schwartz, the uber perl monger/author and host of the FLOSS Weekly podcast, will be presenting an in depth introduction to the open source distributed version control system of the decade, Git.

Designed with an emphasis on speed by Linus Torvalds in 2005, git can be used to manage simple repositories of scripts and is used in the larger open source projects such as the Linux Kernel, Perl, and Gnome. Git’s ease of cloning complete repositories and ability to post enhnancements has led to a new generation source code hosting sites such as github and gitorious that help drive open source software innovation.

In this presentation Randal will provide a quick overview of the history, then delve into a detailed review of the features and how git can be used to manage code for various sized projects.

[From the YAPC::NA Blog.]

Thoughts from my Houston Perl mongers appearance

After practicing a proto-talk--and getting very good feedback--at the Houston Perl mongers meeting last week, I wanted to pass on some of the points that came up over beers on the patio of Velvet Melvin Pub. Discuss, or not.

The YAPC::Asia Tokyo 2012 Venue Is ...

Moving out from our beloved Tokyo Institute Of Technology, YAPC::Asia Tokyo 2012 is going to be held at a new location: Ito International Research Center, in University Of Tokyo.

This is a brand new facility that opens come April 1st 2012, and us Perl hackers are going to take over the place September 27, 28, 29.

This year we're inviting Tim Bunce, Adam Kennedy, and Larry Wall to the festivities. And as always, I'm sure we're going to have many many interesting talks from hackers from the far east.

If you have any questions, please let us know! If you've never been to YAPC::Asia Tokyo before, take a look at our photos and videos. You won't regret coming to visit us!

Same feeds, less spam

I subscribe to both blogs.perl.org and ironman.enlightenedperl.org, so whenever "JT Smith" posts something, I receive 2-3 copies, when I would rather receive 0. Today, I finally took a few minutes to fix this with one of the few useful things Yahoo has ever created: Pipes. Enjoy Perl news with less spam (RSS).

NoiseGen: Generate Sound With Perl. Blips and Beeps.

Brock Wilcox will give a talk at YAPC::NA 2012 described as:

Let’s create a sound synthesizer in about 20 minutes!

Along the way, we’ll learn a little something about digital sound, function composition, and stateful functions (generators) using lexical closures.

Oh. And we’ll make some deliciously horrible noise to amaze/annoy your friends!

[From the YAPC::NA Blog.]

Some Perl things I hope the lazy web does for me

I always have more ideas than time to work on them.

  1. Something in Mojolicious to act as a credential wallet, like LWP's credentials. I got about half way to implementing it while learning the code base at the same time. I know I could do that on my own, but I'd like Mojo to handle it. I think it's just got to do the same things that the Cookies module does its work.
  2. An updated version of twiddle-regex program. John Klassa wrote this years ago. It's a Tk app that I've found it again and created the twiddle-regex github project for it.
  3. I thought briefly about a WWW::Mechanize based on Mojolicious, but I don't really care what the implementation is as long as it does what I want.
  4. There's a Parse::Yapp grammar for JavaScript on Perlmonks, but I'd like a module for that with a way to walk the structure. I could have used it in a Stackoverflow question that wanted to extract data from the script portion of a webpage.
  5. BBEdit allows for all sorts of "clipping" files that act as templates. I have the Perl Glossary set, but now I'm thinking I want a set of templates for particular tasks instead of a general script. The one I want right away? A script that's mostly configuring Mojo::UserAgent.

The Latest State of Perl ZMQ Bindings

I just uploaded the latest batch of zeromq (libzmq) bindings for Perl. They will eventually replace the current binding, ZeroMQ.pm. It's a big refactor, but it's one that will allow me to provide a far more stable bindings.

Note: they are still all dev releases, so will not show up by default in your CPAN client.

If you have comments, please speak up now!

WTF is 0MQ/ZMQ/ZeroMQ ?

Read it here. It's a fairly complicated library, one that allows for a fairly complex networking framework with ease. One thing that people often get confused is that it's not a "message queue" a.la RabbitMQ/ActiveMQ/Q4M. It's a "message oriented" networking framework.

Mongrel2 is a good real-life use case. While I haven't actually seen the code, I hear that dotCloud also builds their auto-deploy infrastructure around ZMQ.

Rationale For Making All This Change

Perl Teasing Challenge

Feeling about Perl what I feel almost makes me scream at other developers things like "why the f*ck are you using X language and not Perl?".
I 'think' this kind of approach would not be very productive in terms of giving my peers the opportunity to feel the same kind of enthusiasm I feel.

I want to ask you what should an efficient Perl Teasing Presentation include?

I have expressed my opinions in this blog post.
My post was inspired by Gabor Szabo's challenge to give a 4 hour Perl Presentation

cPanel is Hiring!

cPanel has an opening for an Internal Systems Perl Developer. They describe the job as:

Are you?

cPanel is growing its Internal Systems Development department and looking for a software craftsman with advanced knowledge of Perl and working knowledge of Linux and FreeBSD operating systems.  You’ll be tasked with developing, implementing, and maintaining cPanel’s internal and external software products.  Sound like this could be you?  Read on. 

Israeli & German Perl Workshop Survey Results

For those that follow the conference surveys, you'll be pleased to hear that I have now put the results of both the Israeli Perl Workshop and the German Perl Workshop online. These are the first events this year to take advantage of the surveys, although several more are to come.

This marks the second survey for the German Perl Workshop and notes some small differences, while it was the first for the Israeli Perl Workshop. I hope the future organisers can make use of the results and that they allow me to continue the surveys with these workshops next year, and for the years to come.

Although the Israeli Perl Workshop was in English this year, Gabor and I are hoping to be able to provide the survey in Hebrew next year. The German Perl Workshop marked the first survey not in English last year, and it helped to start building up a language pack, which can be used to plugin to the survey software. I plan to formalise this during the year, so that other events, using languages other than English, can still take advantage of the surveys.

Thanks to all the organisers and the survey participants for taking the time to respond to the questions. It is very much appreciated.

Cross-posted from Memoirs of a Roadie

Sets operations

To help some coworkers I whipped up a program to perform set operations in Perl. It's quite basic but it's been pretty effective so far and it's on github.

Sets are assumed to be files where each line is a different element. It is assumed that equal lines are either not present or can be filtered out with no consequence. The inner working assumes that at a certain point the input files are sorted, and in general the external sort program is used automatically, which limits the applicability in some platforms.

The three basic operations that are supported are union, intersection and difference.

Alien::Base Perl Foundation Grant Report Month 1

Once again I would like the thank the Perl Foundation for supporting me in my effort to provide a mechanism to ease the creation of Alien:: modules. Further I’d like to thank the many Perlers who have commented in various places that this project is of interest and that they are looking forward to providing that Alien:: module that they have always meant to write. This is exactly the response that I had hoped to receive.

Down to the details. This month I did a lot of work on Alien::Base; partially do the excitement about the grant and partially because our scientific camera was out for repairs, thus not much science going on in the lab. I hope to keep the pace high, but looking over the git log I’m not sure that they can be this productive! I’ll list some high points:

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.