Perl for Big Data

Martin Holste will give a talk at YAPC::NA 2012 described as:

Hadoop is overrated.  Come see what modern Perl can do with map/reduce on terabytes of data with an extremely simple, maintainable architecture by orchestrating the inserting and querying of data on enormous scales.  This talk will deconstruct the Enterprise Log Search and Archive (ELSA) project which is fully written in asynchronous, object-oriented Perl and provides a framework for Big Data analytics in a modular, pluggable architecture with the flexibility and customization that only Perl can provide.

[From the YAPC::NA Blog.]

For Want of a Newline

Recently I had the pleasure of spending three hours debugging an obscure bug. An obscure bug I caused by introducing a newline. That little punk, 0x0A.

I released a new version of a command line program. For me, it’s an elegant piece of work, combining a marvelously complex-but-intuitive configuration for system administrators with an absolutely simple interface for users. To use the command, the user runs it with a couple of arguments and it prints out a single line of useful text derived from that marvelously complex configuration.

But, it doesn’t print a newline.

It’s never printed a newline. The original author didn’t include one for some reason. Anyone who has ever encountered a command like this knows well my irritation.

my awesome prompt> some_lame_command
my awesome prompt>e answer

Argh!

The workaround I’ve seen used, after seeing the above is to face-palm, then run the command again, only differently.

When is line 1 not line 1?

When eval-ing a simple use without a final semicolon, and doubly so on Solaris.

Sometimes eval 'some deadly code' dies at line 2 instead of line 1.

Compiler progress with 5.16

The latest B::C package on CPAN 1.42 works stable for almost all perls until 5.14, but so far did not work good enough for the upcoming 5.16 release.

I couldn't even pinpoint to a specific perl change which caused the problems. I know that hashes need a different initialization now. Empty hashes need to declare

HvTOTALKEYS(hv) = 0

after creation, and readonly hashes must be set readonly after they were created.

DynaLoader and %INC handling is much stricter now with 5.16.

DBIx::Class - the whirlwind overview

Frew Schmidt will give a talk at YAPC::NA 2012 described as: 

This talk will be a whirlwind overview based on the talk I did a couple years ago.  The general overview version of that talk ended up in https://metacpan.org/module/DBIx::Class::Manual::Features.  This talk will cover (most of) that material, but additionally at least give examples of more advanced topics like correlated subqueries, deployment with DBIx::Class::DeploymentHandler, and will additionally have a bit of my own opinions on modules you should be using with DBIx::Class.

Beginners will certainly find the talk a good jumping off point for DBIC, but I hope to include about 10-20 minutes of advanced topics at the end if seasoned users want to join late.

[From the YAPC::NA Blog.]

Building C/C++ libraries and applications with Module::Build‎

Alberto Simões will give a talk at YAPC::Europe 2012 described as

In this talk I will present the recipe I am using to build Perl Modules that depend on C or C++ libraries (and that ship those C or C++ libraries with the module itself).

The recipe uses a mixture of Module::Build custom building module, ExtUtils::CBuilder for C compiler interface, ExtUtils::LibBuilder to adapt some ExtUtils::CBuilder defaults that make standards library build impossible, and Config::AutoConf for externals libraries and headers detection.

This recipe has been used in a lot of different modules I maintain: Lingua::Identify::CLD, Text::BibTeX, Lingua::Jspell and the recent Lingua::FreeLing2 (still beta) and Lingua::NATools (still not released at the date).

Quantum-Relativistic Time-Travel in Lisbon

My brief visit to Portugal just expanded a little.

In addition to the two public classes we’re running (and, yes, there are still a few seats left for either day), I’m now also going to be delivering my infamous Temporally Quaquaversal Virtual Nanomachine Programming In Multiple Topologically Connected Quantum-Relativistic Parallel Spacetimes…Made Easy! presentation, as a free seminar next Thursday night.

This talk has already melted hundreds of geek neocortexes in both London and Oslo in the past fortnight; next week it will wreak its terrible destruction on Lusitanian minds as well.

So, if you’re in Lisbon, don’t miss out on my most brain-twisting talk ever. Thursday May 3 from 7pm at Edifício Fórum Picoas. Entry is free and everyone is welcome (though you do need to register to ensure a seat).

Damian

PS: My sincere thanks to SAPO for sponsoring this event.

Eclipse: Unable to locate companion shared library

Eclipse executable launcher error: Unable to locate companion shared library now includes my answer for when Cygwin's unzip utility fails (hint: use another unzip program).

DuckDuckHack

DuckDuckGo has launched a new plugin system that enables individual developers and Perl community members to build plugins on DuckDuckGo (http://duckduckhack.com/). The plugins will be available for all our users. Gabriel’s post introduces the plugin platform and different ways to get started: http://ye.gg/ddh

[From the YAPC::NA Blog.]

Ninja Code

As this is only my second post—my first merely being a plug for a Damian Conway talk at my local Perl Mongers meeting—I thought I’d keep it short and silly.

At OSCON 2008, Amazon had a prominent booth advertising heavily that they were hiring. They didn’t want to hire just anyone. No, the question posed on the large sheet of poster board was, “Are you a ninja coder?” This was combined with a raffle, which as anyone who has ever been to a conference knows, is the most common tool used to get people to hand over their contact information. To enter, one had simply to look over some Perl code written out on that same poster board and tell them what it did. It looked a little something like this:

Alien::Base Perl Foundation Grant Report Month 2

After last month’s breakneck development pace, I knew this month wouldn’t be as gratifying, and indeed it turned into quite a slog.

This month involved lots of little bug fixes, posting dev releases to CPAN, then waiting for test results from CPANtesters. As a side note, there are a larger number of reports coming from Solaris and BSD than I would have expected. Sadly one of the bugs that still hasn’t been sorted out is this recurring Solaris bug when changing working directory. It would appear that I am going to have to find a Solaris box or VirtualBox appliance, since waiting for test results for every fix attempt would take far too long.

Post-mortem Linguistics in Zurich

For reasons I don’t entirely understand, it’s been quite a few years since I last gave a public talk in Zurich. Happily, we’ve been able to remedy that on this visit.

Digicomp run a regular seminar series entitled ”Open Tuesday” on the first Tuesday of each month, and I’m going to be speaking at that event on (no surprise) Tuesday May 8, from 6pm. Specifically, I’ll be giving my Fun with Dead Languages seminar.

The event is completely free, but they do need people to register so they can manage numbers correctly (just follow the “shopping cart” link on the Open Tuesday webpage)

Meanwhile, my various Perl-related classes at ETH are slowly filling, but there are still plenty of places left if you’re interested in some (entirely new) classes on Test-Driven Development, OO or API design, or optimizing your Perl development processes.

So if you’re in Zurich in early May, sign up for one (or more!) of my events. At very least, drop in to the “Open Tuesday” talk and see me do great and terrible things with ancient langauges.

Damian

Perl SDL Games and Hacks

Scott Walters will give a talk at YAPC::NA 2012 described as:

Many Perl programmers, given a free weekend, can’t think of anything more fun than playing with computer graphics.  This talk shows off a number of my own adventures as well as hacks by other members of the Perl community.

I’ll talk about:

  • Opening that window or going full screen
  • Reading from the keyboard and mouse
  • Getting stuff onto the screen
  • Animation
  • Gravity and velocity
  • Collision detection
  • Simple enemies (finite state automata)
  • Geometry for games

Seeing several examples of Perl SDL and how they were written should educate and inspire you to dabble with your own ideas.

[From the YAPC::NA Blog.]

Continuous deployment with Perl

Lenz Gschwendtner will give a talk at YAPC::Europe 2012 described as

Continuous Deployment is a big topic if you want to push out code to production as fast as possible. The little pitfall is that it is not that straight forward if you want to use a PP approach. We at iWantMyName came up with a pure perl tool chain all the way from your git repository via integration testing to deployment to your production servers.

My first perl blog

write down my thought, experience and life about perl.

This is why I love Template Toolkit

So I recently learnt about Template Toolkits META directive - I mean I've seen it scattered around here and there but never really seen it do much more than provide default page titles.

I have been annoyed at the inelegant workarounds I've had to use when organising a web app with a site wrapper template and keeping all the view control in the right templates rather than in either the controller or as special cases in the wrapper.

Today I finally sorted that.. yesterday I used the meta tag to add javascript and css links to the header part of the page from a template deep inside the body of the html and today I replaced a special case flag with a sub-template specified by the meta tag, which then contains the wrapped content - rather elegant.. AND it allowed me to solve the layout issues I had after I moved the app from bootstrap 1 to bootstrap 2

*edit*

At YAPC::NA 2012 we’re introducing social badge ribbons....



At YAPC::NA 2012 we’re introducing social badge ribbons. At the registration desk you’ll be able to choose ribbons to apply to your badge as a call out to other attendees about who you are or what you do. You’ll be able to choose from interest areas like “DBIx::Class” and “Web Frameworks” to roles like “Author” and “Speaker” to fun stuff like “Crotchety” and “Rockstar”. There will be dozens of different types of ribbons available. We hope you make use of this tool to make new social connections at YAPC.

[From the YAPC::NA Blog.]

Padre 0.96 has been released...

Padre, the Perl IDE has just hit version 0.96, only 1 more release before, numerically speaking, it hits 1.0.

Now this is interesting, as one of the big coders for Padre is Adam Kennedy ( Alias ), and he wanted to use the remaining release version numbers to get various bits and pieces of housekeeping in order before hitting the big 1.0.

However, it seems that Adam is moving (has moved by now) to the US, and to date, seems modus incommunicado, and lots of work has been done by Kevin Dawson (bowtie) and Ahmad Zawawi (azawawi) and as such I have been asked to roll out a new Padre 0.96 for the world to enjoy.

So given the last release was at the beginning of the year, and clearly from the Changes file for this release a lot has been done, it was well and truly time to don my Release Managers hat and get on with getting Padre out the door.

My personalized Perl bumper sticker

Hi Folks

Yep - See it in all it's glory:

A Perl-powered Toyota hybrid.

Actually, up close, with the sun reflecting on all the little rainbow coloured dot means this pix doesn't do it justice.

And yes, I should have caps on the 'open source' part...

Sigh... Next time. These last about a year exposed to the weather.

PS: Luckily for me a Toyota Prius has an almost-vertical window at the back.

Ubic - status report

It's been almost a year since my last Ubic post.
So just a quick remainder: Ubic is a polymorphic service manager which makes creating daemons easy, while being extensible in a several different ways.
(github; cpan).

This post is going to be pretty long.
If the rest of it is tl;dr for you, but you have any opinion about what constitutes a perfect service manager / daemonizer tool, or about what would convince you to use one, please consider commenting anyway :)

Technical improvements

The most important improvement was the addition of ini config files. Now you can write this:
# cat /etc/ubic/service/foo.ini
[options]
bin = sleep 100
instead of this:

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.