Perl Platform as a Service Shootout

Mark Allen will give a talk at YAPC::NA 2012 described as:

There are a lot of “Platform as a Service” (PaaS) providers popping up all over the place like dotCloud, Stackato and OpenStack.  They all say they support Perl.  How do these services compare to one another in price, performance and ease-of-use?

[From the YAPC::NA Blog.]

Tel Aviv Perl Mongers Meeting on 02 Tel Aviv Perl Mongers Meeting on 02 May, 2012May, 2012

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

שימו לב: הפגישה נדחתה בעקבות יום הזכרון ותתקיים ב-2 במאי

ב-2 במאי 2012 (יום רביעי) נערוך את מפגש הפרל החודשי שלנו, על אודות שני קצוות מנוגדים של עולם הפרל. אנו נפגשים ב-18:30 ומתחילים ב-19:00. כתובת: מכללת שנקר, בניין ראשי ברחוב אנה פרנק, רמת גן, חדר 300.

פרטים נוספים ניתן למצוא באתר של שוחרי הפרל של תל אביב ובאתר של שוחרי הפרל הישראלים.

במפגש זה יהיו ההרצאות הבאות:

  • גולף פרל - מאת ינון פרק. גולף קוד הינו אתגר שבו יש לכתוב תוכנית המבצעת משימה מסוימת במספר המינימלי של תוים.

  • שיפוץ קוד פרל - מאת גאבור סבו. שיפוץ קוד (Code refactoring) הינו טכניקה ממושמעת לשינוי המבנה של קוד קיים על מנת לשפר את האיכות הפנימית והאלגנטיות שלו.

לאחר ההרצאות נשתתף במיני-האקאתון בו נעבוד ביחד על מודולים של סיפאן.

המפגש הוא חינמי וכולם מוזמנים. נתראה שם!

English Version

Note: the meeting was delayed due to the Israeli Memorial day

How Perl Documentation Could Look Like

Yes this is in a way my 5th grant report in a row, but even for Perl 5 people that might get insightful and even useful.

As I prepared a piece for the Perlzeitung which will not happen, i interviewed several people - some names you know for sure - about the current state of the core documents. Yes there slowly improving, the d did IMO good stuff, the new ooptut is good but there needs to be much more done. And instead of dropping here a blob of text, just have a look (Appendix A is really impressive). Its hardly started but I'm sure you get the idea (short but comprehencive explanation of everything + 7 different appendices giving alternative entry point to find what you need). Please just think about. The dream needs the hands of many.

DC-Baltimore Perl Workshhop 2012

Nearly a week late, but I've finally managed to write a short report about the DC-Baltimore Perl Workshhop 2012 which you can find on my Perl blog

Basic System Administration

Bradley Anderson will give a talk at YAPC::NA 2012 described as:

If you are new to Perl, chances are one of the first things you’ll be doing is some light system administration.  You will soon discover that there are several things you do repeatedly … like, every day, or, multiple times per day.  My rule is: if I have to do it more than once, I write a script to do it.  In this talk, I’ll show you how to hop along as a system admin if you’re a Perl programmer.  It’s better than unicorn meat.

[From the YAPC::NA Blog.]

One Unit of Stepping Up

In the mold of Buddy Burden’s great post Stepping Up, I wanted to share a recent pleasant result of contacting a wayward author.

One or two of you may have seen my MooseX::Types::NumUnit which brings “dimensional” (read: units) types to Moose objects. I had been using two different unit engines Math::Units::PhysicalValue and Physics::Unit. This was essentially because I hadn’t been able to figure out how to get the functionality of both out of just one, though I was rather sure it should be possible. Recently though, I spent some of my diversion time on the problem and settled on using only Physics::Unit. This is new version was pushed to CPAN a few days ago.

The Price of Cleverness (YAML is not Safe)

Today I wasted a few hours tracking down this delightful bug:

Undefined subroutine &main::main:: called at 
...lib/site_perl/5.12.4/YAML/Mo.pm line 5.

So what does YAML::Mo line 5 look like?

That's right. That's line 5. I've wrapped it to make it easier to read. When you load the latest YAML, you load YAML::Mo and that contains the above monstrosity. And it has a serious bug. Do you see it?

A late Perl QA Hackathon 2012 post scriptum

First post, the post that hurts the most. Well ... not ... but still in time before the y2k12-maya-bug triggers.

I am late in writing this summary about my hackathon but it fits the prolongation style I exercised this time. I had quite a slow start as I found it difficult to flush my overfull @work mindset and resume my open source projects. I used my flight delay to carefully prepare a TODO list which finally helped on that flush'n'resume exercise. So what did I do? My pet project is benchmarking Perl. There I have one major problem:
  • The visible benchmarks are boring and the interesting parts are invisible.

My benchmarks are rather straight lines without interesting changes: they are straight in the 5.8 timeline; they are straight in the 5.10+ timelines.

However, both straight lines are different to each other, so obviously something must have happened during the 5.9.x times. Unfortunately, exactly that interesting timeline did not work well in my benchmarking toolchain.

So the mission was:

About YAPC Game Night

We’ve had a few people email in to ask how to “submit” a game for the cPanel Game Night at YAPC::NA 2012. The event is free-form. There’s no reason to submit a game in advance. However, you are welcome to organize game events on the conference wiki.

[From the YAPC::NA Blog.]

Big Announcements on PrePAN

Today, I'm proud that I can announce 2 big things about PrePAN:

PrePAN is now open source!

PrePAN team finally published the source code onto GitHub repository. You can freely commit the actual code. Any contributions including submitting issues, improving documentations, etc. are welcome!

PrePAN has been taken over by Kyoto.pm!

PrePAN had been developed with my personal efforts and resources. But, from now, Kyoto.pm, Kyoto-based new Perl Mongers, took over it, so you can expect continuous and more active development of the features with organizational support.

Kyoto.pm is planning to hold a hackathon to hack the site in July. Keep your eyes on us!

Still alive, Inline::Lua?

I was reading about the Inline module the other day, so naturally I looked to see if there was a binding for one of my other favorite languages, Lua. Sure enough, Inline::Lua exists; however, it has not seen a new release in nearly five years, and it doesn't even build on perls newer than 5.10. I like this idea enough that I'd like to put some time into it and cut a new release; however, I haven't been able to reach the author. So, in accordance with the guidelines I read in the CPAN FAQ, I'm making a post asking if the original author, Tassilo von Parseval, is still in the Perl community and interested in updating this module.

-Rob

Perl vs Shell Scripts

Last week, I posted on my Other Blog about how I still prefer to use tcsh for my interactive shell.  Of course, I maintained that bash was the only real choice for shell scripts.

At YAPC::NA 2012 we’re introducing YAPC Bingo! These cards...



At YAPC::NA 2012 we’re introducing YAPC Bingo! These cards are a fun way to help make sure you get the most out of YAPC. You can cross each thing off as you accomplish it working your way toward a bingo. Or maybe, if you’re an over achiever, you’ll attempt to cross off all 25 and achieve a mega-bingo!

[From the YAPC::NA Blog.]

User friendly command line apps with even less suffering

I love to write command line applications (eg. App-iTan, Business-UPS-Tracking, Game-Lacuna-Task, Mac-iPhoto-Exif and many more not publicly available). However most of the CPAN tools I generally use to build these applications either are not as user-friendly as I would like them to be, or are not flexible enough.

I decided to change that and wrote MooseX-App.

It handles commands with multiple subcommands, generates usage text, error messages on wrong user-input, validates options, and lets you write your program as easy-to-test and reusable classes. Just as App-Cmd (or MooseX-App-Cmd respectively). However compared to these options it ...

  • is more flexible
  • supports plugins that can overdrive almost all of its behaviour
  • does not impose a certain application structure on you (thus making code reusage and testing easier)
  • does not pollute your command classes with many methods since most of its logic is implemented via meta classes
  • and is quite user friendly by providing useful input hints, better error messages as well as optional colorful output and bash completion

So let me give you a short example:



Hope you like it.

The Simplest Thing That Could Possibly Work

It should go without saying that when you are writing a book, you need to know how long the chapters are. I'm writing mine in vim, with various customizations to fit the needs of the book. However, I then need to convert my book into MS Word format. As I'm using Word 2008 for Mac, and as its the only version that does not have a scripting language built-in, formatting my plain text to the publisher's requirements is a long, tedious process. There are different headings, code, sample exercises, tables, images, "Try it out" sections, and many tiny, tiny details that need to be formatted correctly to ensure the book can be laid our properly.

And now Lisbon too...

So, apart from London, Oslo, and Zurich, I’m delighted to say that I’m now also going to be visiting Lisbon during my current European speaking tour…on May 3rd and 4th.

We’ll definitely be offering a public talk one evening for the local Open Source community (I’ll update when I have the details), but we’re also running a couple of public classes in Portugal for the first time in several years.

The classes are the recently updated Features of Modern Perls and the hugely popular Mastering Vim, and you can sign up for either (or both, with a discount) on the Caixa Mágica website.

I’m very much looking forward to catching up with many friends in Portugal next month. And, after what will have been nearly a full month in London and Oslo, and as lovely as those two cities are, I suspect I will secretly also be looking forward to some warm and sunny weather as well. ;-)

Damian

Start Planning Your YAPC Strategy

From guest contributor brian d foy:

Conferences are virtually non-stop activity, networking, hacking, and socializing. YAPC, which is only three days, will have over 400 people moving around between talks, between buildings, and to other places in Madison. There’s a lot more going on besides the conference schedule: you don’t need to show up to hear the talks (they’ll be uploaded), but you do need to be there to hang out with people, carry on unstructured conversations in real life, and drink with other attendees.

The problem, though, is that many things are already in motion by the time that you step up to the registration table to get your badge. YAPCs have been going on for over a decade and many of the people already know each other in meatspace. They already know who they’ll go out with in the evening, they already know who they want to pair program with, and .

You need to start planning your YAPC strategy early and start lining up the things you want to accomplish.

running perl with -MO=Deparse in node.js

I've hacked a '-MO=Deparse' option to perlito5. Now I can check the parser by comparing the output with perl:

$ node perlito5.js -Isrc5/lib -MO=Deparse -e ' ${ xxx{zzz}[3] } '
# Do not edit this file - Generated by Perlito5 9.0
use v5;
use Perlito5::Perl5::Runtime;
package main;
$xxx{'zzz'}->[3];
1;


compare to:

$ perl -MO=Deparse -e ' ${ xxx{zzz}[3] } '
$xxx{'zzz'}[3];
-e syntax OK

Reading the Federal Register with Perl

In case you're curious:

% grep -rli assassin federal_register | wc -l
      50

That's 50 mentions of "assassin" in the US Federal Register since early 2000. There's some interesting stuff buried in this publication.

Recently I wrote a post about more Americans giving up citizenship than reported. While I don't have exact numbers (they're hard to find), I managed to put together some information that seems to show that far more Americans are giving up citizenship than the Federal Register reports, but I'll skip the background.

Basically, I decided to download the entire Federal Register in XML format (it's in the public domain, too). Unfortunately, this snippet of code is not going in the book.

Announce: CGI::Snapp::Dispatch with PSGI support

I've uploaded to CPAN:

o CGI::Snapp::Dispatch V 1.00.

This distro includes CGI::Snapp::Dispatch::Regexp.

Both modules support usage in a PSGI environment.

This module is a partner for CGI::Snapp, and together they are almost drop-in replacements for CGI::Application, CGI::Application::Dispatch, CGI::Application::Dispatch::Regexp and CGI::Application::Dispatch::PSGI.

The default for logging is to not create a logger, as per CGI::Snapp V 1.01 below.

There are 63 tests.

PSGI is supported without needing a module called CGI::Snapp::Dispatch::PSGI.

o CGI::Snapp V 1.01.

This has a new mutator _psgi() for use by CGI::Snapp::Dispatch.

Also, the default for logging is now to not create a logger.

PSGI is supported without needing a module called CGI::Snapp::PSGI.

o CGI::Snapp::Plugin::Forward V 1.01.

The tests explicitly create a logger since CGI::Snapp V 1.01 now does not.

o CGI::Snapp::Plugin::Redirect V 1.01.

The tests explicitly create a logger since CGI::Snapp V 1.01 now does not.

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.