hello world!

hello world! this is my perl blog!

Linux testing with Tapper

Maik Hentsche will give a talk at YAPC::Europe 2012 described as

At the OSRC we run a test infrastructure to test Linux in many orthogonal dimensions: hardware generations, software visible features, kernel branches, Linux-based distributions, virtualization with upstream or distro-specific Xen and KVM, multi-machine scenarios, and running in simulators. Inside of those dimensions we cover regression, functional, and stress tests, benchmarks, guest migration, and reboot and suspend/resume tests.

This talk will give an overview of our test infrastructure (codename "Tapper") and dive deeper into some interesting technical topics like the machine scheduler and the query interface, show the combination of open-source standard protocols and tools to glue everything together, and how we break down that complexity into easy but powerful, scriptable APIs with no client-side toolchain dependencies for the users.

Adapting PDL to a Big Data Landscape

Note: although this article is directed at current PDL users, I would particularly appreciate the opinion of Perl users who are considering using PDL. Does my assessment seem accurate to you?

I was just watching a few of the talks on youtube from from YAPC::NA that I wanted to attend in Madison but could not because I was busy (writing my talks) or attending other talks. And it reminded me of the revelation that I had at YAPC. Although I am not looking for a job, I spoke with the sponsors at their job booths, just to get a feel for what's out there. Is it possible for a Perl programmer to get a job doing real data crunching? The answer, happily, was "yes".

A distributed design challenge

I have a distributed design problem that I thought Monks might find interesting and perhaps be willing to offer suggestions on.

The Setup

I'm writing real time bidding software. It works like this:

  1. My software receives a request to bid on an auction
  2. I return a bid on said request (I must respond in 85 to 100 milliseconds)
  3. Later, I receive a notification on whether or not I won the auction

Point number 3 above means I don't find out if I've won a request until shortly after I've made the request.

Currently, on a server farm of about 36 boxes, we're receiving roughly 400 bid requests a second, or about 11 requests/second per box. This is an extremely light load and will likely increase by one or two orders of magnitude when the system goes live.

We have various campaigns, each with individual daily and total budgets that cannot be overspent (a bit of wiggle room is allowed). The servers run separate databases and the only shared data source we have is a Redis server with two slaves, though we could implement others.

So that's the setup. Now on to the problem.

Brainturk - Cognitive Games

Packaging basics

Lars Dɪᴇᴄᴋᴏᴡ (‎迪拉斯‎) will give a talk at YAPC::Europe 2012 described as

Have you ever encountered this situation? "My script requires an (external binary|additional CPAN module), but perhaps it's not installed. I know, I'll have my script install the dependency by itself!" As people on the net are wont to say, now you have two problems.

The talk deals with the basics and some intermediate aspects of packaging: making a CPAN-ready distro, declaring dependencies, the CPAN toolchain, how to use and extend installer modules (MakeMaker, Module::Build/::Install and friends), the customary `inc` subdirectory, Alien, RPM specfiles, and perhaps local::lib::c if it's stable by the time of the talk.

Want The Game Crafter to get sposoring? Use your Facebook to vote ASAP!

The Game Crafter is a Perl-shop that allows anyone to create their own board game or card game. The website and the backend code is in Perl. It's providing Perl jobs, and more important, Perl initiative. It shows not only that Perl is alive and well, but that it creates some of the more fun things that are going on.

They were at YAPC::NA 2012 and provided game night with lots of board decks (many of which were given away) and board games for all of us to play.

There is a competition to get $250,000 (!!) of sponsorship for startups. If you have Facebook, you can vote for The Game Crafter to get this money.

Here are the five step instructions.

They have only two more days of voting. Get to it!

I Want My Objective-C

The other day, as they idea of the defined-dereference operator (~> is the favorite at the moment), I proposed the idea of implementing a pragma that changed what Perl does when it's faced with a dereference of, or a message sent to, undef. Right now, of course, it dies.

This bit me hard this evening as we put up some new code; I have a Mason template that calls a series of methods to get a particular piece of status information to be shown to the user. I had bullet proofed it, or so I thought.

Data::Dump::Color (proof of concept)

rjbs' blog post mentioning Data::Printer prompted me to try it out just now. Coincidentally, earlier today I was investing terminal's 256-color support, Emacs color themes, mc skins, all those color-related stuffs.

After seeing Data::Printer output, I think I want colors in my dumps, but I don't want some new syntax/format; I just want to see Perl. So I quickly hacked Data::Dump::Color. Data::Dump's output is nicely formatted enough as a basis, all I need is to sprinkle some colors to it. The module is barely functional and to make it more proper I'll need Data::Dump to give access to more info.

Sample output:

Eventually I think I'll use Data::Printer. It's just that glancing from the docs, there's no easy way to generate Perl-code (Data::Dumper- or Data::Dump-style) dumps.

Messaging, interoperability and log aggregation - a new framework

Tomas Doran will give a talk at YAPC::Europe 2012 described as

Yet Another YAPC::NA Report

Finally, I can sit down to write my report!

This was my first YAPC, and it was fantastic! For many years my knowledge of the Perl community has been through the PDL mailing list, through the many Perl blogs, and through occasional IRC. I attended few Chambana.pm meetings, but they were social and didn't really get me fired up for Perl. My first experience with a collection of Perl programmers would be joining Chicago.pm last fall, and my first Perl conference was DC/Baltimore Perl Workshop this spring. But wow, 400+ Perl programmers in one place!

I gave two talks at the conference: an introduction to the Perl Data Lanuage (PDL) and an introduction to my new plotting library called PDL::Graphics::Prima. Both were well attended and well recieved, and I have gotten a handful of follow-up email and irc discussions as a result of both talks. Building the PDL community was one reason I attended YAPC::NA and I get the impression that it's paying off.

Would you help a small Perl startup?

The Game Crafter is a small Perl startup. We've applied for a $250,000 grant to help us achieve our goals faster. But we need 250 votes to qualify.

One of the things we'd do with that grant money is hire at least one more developer to help add features to The Game Crafter. If you'd be willing to help out, please vote for us to win this grant.

Introducing Template::Plugin::StashValidate

I've been using MooseX::Params::Validate more and more recently for checking incoming parameters. I'm a big fan of the Moose type system, and love the implicit documentation you get from having a block at the top of your sub that lays out exactly what you're expecting to be passed in.

A coworker was recently looking for something similar for Template Toolkit - rather than simply digging around in the Stash for values that you hope are there (and are the right type), could you actually insist that they were there? I said I thought it was a pretty simple plugin, and then went about proving it...

Template::Plugin::StashValidate allows you to specify a minimum set of values (and their types) that your Template Toolkit template is expecting to recieve. You invoke it as a plugin, with exactly the same arguments as MooseX::Params::Validate:

[% USE StashValidate {
'advice_discrepant' => { 'isa' => 'ArrayRef | HashRef', 'optional' => 1 },
'title' => { 'isa' => 'Str', default' => 'My great page' }
} %]

O'Reilly Verlag sponsors YAPC::Europe 2012

O'Reilly Verlag supports the German Perl community since many years and the sponsor this years' YAPC::Europe as well. Thanks!

oreilly_logo_blog.jpg

The O'Reilly Verlag is the German subsidiary of the internationally successful publisher O'Reilly Media, Inc.

O'Reilly provides information on important and cutting-edge technologies through high-quality textbooks, digital content, websites and conferences.

All O'Reilly authors are part of various international user groups and technology communities - they therefore have first-class practical knowledge.

Main topics of O'Reilly's publications are programming software, websites and mobile applications, operating systems, networks, web design, digital photography, social media and physical computing.

The useful, the playful, the easy, the hard and the beautiful

The useful

I am now using a useful new tool on CPAN, Peter Stuifzand's MarpaX::Simple::Rules. Marpa grammars are often best expressed like this:

    pair ::= a a
    pair ::= pair a
    pair ::= a pair
    pair ::= pair pair
Peter's module allow you to do this, and all the examples in this blog post were run using it.

For those new to this blog Marpa is something new in parsing -- it parses anything you can write in BNF and, if your grammar is in one of the classes currently in practical use, parses it in linear time. Marpa's parse engine is written in optimized C, so that Marpa's speed is competitive with parsers of far less power. Marpa's stable version is Marpa::XS.

The playful

Popular ebooks on perlybook.org in week 25/2012

Here are the most popular ebooks from Jun 18 2012 to Jun 24 2012:

Module
  1. MooseX-IOC
  2. local-lib
Release
  1. Moose
  2. perl
  3. Dancer
  4. local-lib
  5. AnyEvent-RFXCOM
  6. DBI
  7. CHI
  8. SOAP-WSDL
  9. Catalyst-Runtime
  10. Mojolicious

YAPC through the eyes of a recruiter

Last week I attended the YAPC:NA 2012 in Madison, WI and I wanted to pass along a few observations from a recruiters point of view. Having recruited Perl developers for Shutterstock in NYC , there is a perception in the recruiting community that Perl is a dying language, there is a lot of unmaintainable code, and that Perl programmers are nearly impossible to find. Shutterstock has had a lot of success with Perl so why all the negativity? And while the company does have a lot of really smart, cool Perl developers, it is a hiring challenge. Anyway, when I arrived at the conference, I was surprised at how down to earth and friendly everyone seemed to be, not to mention a fairly large number of younger developers and recent graduates who loved Perl. You could really sense the power of the community they all shared. One of the guys I spoke with had graduated from an engineering program several years back and had learned perl on his own. He claimed it was a fun and powerful language and sure, he does stuff in other languages, but Perl is his workhorse. He went on and on about how quickly and efficiently you can get stuff done using the free tools that Perl provides. No shame. The other observation was how much support there is around the language. My Perl coworker was able to recognize just about anyone from their IRC handle. Apparently the IRC chat is a place where most Perl people hang out to ask questions and help out the the newbie. Seems to me that Perl is alive and well, but unless you live in the Perl world, it can be hard to see that. Perhaps it's time we bring a new message about Perl to recruiters.

Next week: Deadline for talk proposals...

This is just a reminder for you if you plan to submit a talk to YAPC::Europe 2012 in Frankfurt: The talk submission deadline is 15th July 2012. This is next week!

Please also remember

Proceedings

We'd like to print the proceedings, so talk handouts are important too! We think that proceedings are a good way to call back the talks you have heard and to get more information about topics you were unable to attend.

The deadline to submit the articles to us is July 25th!

Videos

We'd like to record the talks. Please let us know when you want us to not record your talk.

YAPC Videos On YouTube

YAPC Videos On YouTube :

We’ve begun uploading all the videos for YAPC::NA 2012 to YouTube. By the end of the week we should have them all complete. They’ll also be added to PresentingPerl.org. Enjoy!

[From the YAPC::NA Blog.]

YAPC::NA 2012 After Action Report

YAPC::NA 2012 was excellent! I really want to congratulate the organizers, staff, and sponsors for putting together such a well-organized, informative, and fun event. I had not been to a YAPC in a couple of years, and this year's conference made me wonder why I had stayed away so long. It was great to hear so many people using Perl for so many cool and exciting things!

Regarding my own talk: After talking to several attendees about Helios, and being encouraged to be less of a "Kirk" and more of a "Picard," I've created a repository on Github for Helios. Going forward it will be easier for others to follow development, contribute, and take advantage of all the goodness Github provides. If you missed my "Distributed Processing Applications with Helios" talk and want some more information, the talk is now available on YouTube (thanks again MadMongers and all the YAPC::NA volunteers!) and the slides are available here.

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.