Email Analytics Developer Wanted

At the MadMongers meeting last week a local entrepreneur, Adam Braus, stopped by to pitch his idea for a new email analytics system.

He's looking to hire a Perl developer to help him with this. If you're interested, please contact him.

Adventures with clang and ASan


LLVM's clang (at least 3.1) can be easily used via -Dcc=clang.

The benefit is that your generated code will be faster on DEBUGGING (optimized not so far), compile + link times are much faster and use much less memory, the diagnostics are better and because its AST does not simplify the code beyond repair (as with gcc) it is easy to add various code check passes and diagnostics such as ASan.

I found several warnings which I previously ignored in my code.

Storable.xs:5400:2: warning: expression result unused [-Wunused-value]
SvREFCNT_inc(sv); /* XXX seems to be necessary */
../../sv.h:233:2: note: expanded from macro 'SvREFCNT_inc'
_sv; \
Storable.xs:5440:2: warning: null passed to a callee which requires a non-null argument [-Wnonnull]

Socket.xs:837:47: warning: conversion specifies type 'int' but the argument has type 'STRLEN' (aka 'unsigned long') [-Wformat]
croak("Bad arg length for %s, length is 
%d, should be %d",


$ grep scripts=21 build-5.15.*/log.test

debugging -O0 -g3

Using Dist::Zilla to extract parts of your distribution

Imagine you are working on a smallish Catalyst project with an DBIx::Class model. You have been a good citizen and adhered to the principal of separation of concerns. Now you would like to extract the schema to use it anywhere else (in my case a monitoring interface that is in place and allows simple plugins). Creating a whole distribution with the related infrastructure out of the schema classes is just to much work for this one-off task. Dist::Zilla to the rescue.

DuckDuckGo is a general purpose search engine, primarily written...

DuckDuckGo is a general purpose search engine, primarily written in Perl. DDG offers way more instant answers, way less spam/clutter and real privacy. DuckDuckGo has been giving back to open source, and we’re proud to include them as our sponsor for YAPC::NA 2012. A growing portion of DDG itself is open, including user-contributed Perl goodies

As a side note, we’re also using DuckDuckGo as our search engine on the official YAPC::NA blog. The search results are so much more accurate now.

Which Marpa distribution to use?

Which distribution of Marpa should you use? Marpa::XS or Marpa::PP or the "bare name" Marpa? Use Marpa::XS if you can, Marpa::PP otherwise. The "bare name" Marpa is a legacy distribution, and should be avoided by new users and in new implementations.


Marpa::XS incorporates all of my C language speedups. As well as the fastest of the Marpa distributions, it is also the only one in beta -- in particular, I will be at pains to keep the interface stable. Marpa::XS is best both for the casually curious, and for those intending to use the Marpa algorithm in their applications. Note that since Marpa::XS remains beta, caution is still advised.

Marpa::XS DOES require a C compiler, as well as glib and a few other GNU prerequisites. To run and install Marpa::XS and its documentation, you DO NOT need POSIX, glibc, gcc or TeX.


YAPC Needs Development Volunteers

We’re trying to pull off a fairly major overhaul of Act, the conference registration system in time for YAPC::NA 2012. So far we’ve already converted it from mod_perl 1 to Plack, and added Twitter and Facebook authentication. We have another dozen features to add, and more that we could add if we had help. 

Our git repo is available on GitHub. And you can contact our software development team leader, Rob Hoelz, to get started. 

Even if all you want to do is scratch an itch that has been bothering you about Act, we’ll be happy to help you get started working on that as well. Perhaps you have the same itches we do!

Mentor as anything

The Google Code-in 2011 is open and I'm one of the mentors for The Perl Foundation's projects. If you are or know a 13- to 17-year-old budding open source developer, check out the site and start knocking down tasks!

Perl's threading model,not that bad afterall

I've been checking the latest developments in the new C++ standard, C++11, and noticed that it now has support for thread local storage.

It adopts a "hybrid" approach; sharing by default but also using TLS slots for storing globals with thread scope
This reminded me that the last .NET version has an option like that
"New in .NET 4.5: ThreadLocal.Values"
as well as the "It's Not Always Nice To Share" article which concludes that it is better to share nothing by default but share explicitly

Now, I know that Perl's threading model takes TLS one step further down and that it has been heavily criticized as being "not true threading"
but all this makes me think that it is not that bad after all, but rather simplifies things and mirrors Perl's philosophy of "just getting things done"

So what's after that ? The next .NET version or C++ standard fully embracing Perl's threading model in a "back to the future" fashion ? (active since version 5.8)
Would love to see that !

About is a common blogging platform for the Perl community. Written in Perl and offering the modern features you’ve come to expect in blog platforms, the site is run by Dave Cross and Aaron Crane, with a design donated by Six Apart, Ltd.