Slash Boxes
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

domm (4030)

  (email not shown publicly)

Just in case you like to know, I'm currently full-time father of 2 kids, half-time Perl hacker, sort-of DJ, bicyclist, no longer dreadlocked and 33 years old

I'm also head of [], maintainer of the CPANTS [] project, member of the TPF Grants Commitee [] and the YAPC Europe Foundation [].

I've got stuff on CPAN [], held various talks [] and organised YAPC::Europe 2007 in Vienna [].

Journal of domm (4030)

Friday July 10, 2009
03:07 PM


I'm off to Crete for one week of doing nothing (besides sleeping, swimming, diving & eating). I have some vague plans on working on the slides for my YAPC talk, but as I'm traveling without laptop, I'm not sure I'll actually do anything...
Thursday July 02, 2009
03:49 PM

Need for Speed Part I: DBIx::Class vs DBI

Yesterday I had to write some code that goes through ~700.000 datasets (seperated into 6 tables) and denormalise them (see the yet unwritten Part II). As we're using DBIx::Class, I first used it. Even though I avoided some in/deflators and used columns to only get the stuff I needed, the process took ages (~50 items per second or aprox 4 hours for the whole job). Well, 4 hours might be bearable, but this was only the Swiss dataset. The German one, which we have to tackle soon, is at least 10 times as big, and 40 hours is just a way too long runtime.

So I rewrote the core of the programm using raw DBI calls (I had several flashbacks to the 90's :-) The results were quite astounding, as I was now getting 500 items a second. 10 times faster!

And that was before koki told me to set work_mem to a bigger value. I choose 30MB, and got another speedup to ~900 items per second. Sweet!

Of course, it's completely unfair to compare DBI with DBIx::Class performance wise, because DBIx::Class is so much nicer to work with. But if speed is an issue, dropping back to raw DBI is the way to go.

Monday June 29, 2009
03:02 PM

looking for CPANTS (co-) maintainers

After another year of doing basically nothing with CPANTS, I think it is finally time to look for somebody to take over maintainership. I don't see any tuits to emerge in the next 3 months (thanks to two big, cool, all-perl jobs) to fix all the bugs that become more an more apparent, as CPANTS data is used by more and more third parties. Plus there are lots of interesting new projects (mostly Metabase) that could and should be considered.

As a first step, I moved the repo from google code (and svn) to github for easier collaboration. But to really move CPANTS forward, the switch to git is by far not enough...

So if you're interested in taking a very close look at the ugly parts of CPAN, or want to tweak the algorithm of the CPANTS game to make you finally show up on top, drop me a line and I'll either add you as co-maint (or even as full maintainer, if somebody wants to take over completely (which I'd prefer)).

I guess that we can keep the site hosted on the server, unless somebody wants to move the site to their own machine. I could also give an inofficial short/long intro/tutorial at YAPC::Europe to help the new maintainers find their way round the code.

CPANTS consists of three components, two of which (M:C:Analyse & M:C:Site) are rather easy to understand, while M:C:ProcessCPAN is a bit more complex. It has no real tests and takes ages for a complete run - so it's quite a pain in the ass to fix bugs and implement new features (hm, bad advertising...).

So if you're interested in taking over (parts) of CPANTS, please comment below and/or drop me a line (domm AT

Wednesday June 10, 2009
01:53 PM donates 2.500 Euro to YEF

In our recent drive to spend some of the money earned by YAPC::Europe 2007, decided to donate 2,500 Euro to the YAPC::Europe foundation (YEF).

The money will be used by YEF to kick-start other Perl events in Europe and to keep the credit card payment system used by ACT running.

We not only hope that this donation will help YEF to support future conferences and workshops, but to also motivate other financially successful events to donate some money back to YEF. After all, YEF has absolutely no income, but an important job!

Tuesday June 09, 2009
02:28 PM

perltidy help needed

As we all know, perltidy is a very cool and powerful tool, and I love it. But there's one thing I cannot get it to do, which is best explained as code...

I would like to get this as a result:

$self->do_something( $c, {
    rs              => $c->model('DB::Foo')->search( { bar => 'baz' } ),
    fluxcompensator => '1.21 jigowatts',

Specifically, I want the ( $c, { on the same line and the contents of the hash only indented on level deeper.

I played around with a lot of settings, but could only get this:

    $c, {
        rs              => $c->model('DB::Foo')->search( { bar => 'baz' } ),
        fluxcompensator => '1.21 jigowatts'



I also tried --line-up-parentheses like this (additional to the above options):


with this result:

$self->do_something( $c, {
                        rs =>
                            $c->model('DB::Foo')->search( { bar => 'baz' } ),
                        fluxcompensator => '1.21 jigowatts'
                     } );

Now the $c and { line up, but I do not like the fact that rs=> etc is indented that much.

So, dear lazyweb: What's the right perltidy setting? Or does perltidy simply not support my favourite coding style?

01:36 AM funds Patrick R. Michaud one Rakudo-Day a week is proud to announce that we will fund Patrick R. Michaud to work one day a week (or ~4 days a month) on Rakudo Perl. Like Jonathan Worthington, Patrick will receive 150 Euro per 8-hour day starting from now until the end of 2009.

Patrick is being funded through the Ian Hague grant for some of his Rakudo Perl work, but that grant is really focused on building large-scale components needed for Perl 6 development (such as the parser and regex/grammar engine, which are multi-week tasks). As the Rakudo Perl 6 pumpking, Patrick finds himself doing lots of smaller 1-or-2-day tasks that are high profile and critical for Rakudo development, but for which it's difficult to obtain any sort of funding or support. Until now...

Patrick promised to blog about his Rakudo days, and we're looking forward to see all the good stuff he's going to create.

We would like to thank all Sponsors and participants of YAPC::Europe 2007 in Vienna, who made it possible for us to fund this and other projects.

Thomas Klausner,
on behalf of

PS: A Perl 5 related grant will be announced shortly

Tuesday June 02, 2009
06:05 AM

flash from the past

While cleaning up my harddisk I stumbled upon the results of my first contract, a very small and static website. I'm not sure whether I did this in the summer of 1995 or 1996, but of course is looks totally awful. There was no Perl involved, only notepad and some basic knowledge of HTML. I cannot recall how I got that contract, but I think I basically got an email from a complete stranger who said that somebody told him I could "program" a website. I think I charged the now ridiculous low fee of 1.000 Schilling (which are ~70 Euros, but even if you take inflation into acount and say that 1.000 Schilling of 1995 are now 200 Euro, it's still cheap).

Anyways, of course I googled for the site and found it still up and running here. It looks quite similar to my original "design", but it seems to have been created using the HTML export function of MS Word. I assume the owner of the site just took my handcrafted HTML, opened it in Word, changed minor stuff, and exported it again.

Hm, should I contact him and ask him if he want's an upgrade to some Catalyst based DBIC powered CMS? :-)

Thursday May 21, 2009
11:31 AM

Spending money to help Perl?

During our annual meeting I asked Nicholas a small question ("When will we get 5.10.1" - ok, not a small question..), which resulted in some interesting ranting and discussions. Of course, we didn't find any silver bullet, but I'd still like to get some feedback from whoever cares...

So, say you have a quite bigish amount of money, let's say 25.000 Euro [0]. How would you spend it to help Perl?

  • Splitting it up in small grants is a lot of work, already done by TPF, and usually projects funded this way do not affect Perl as a whole.
  • Hiring somebody to work full time seems like the best option. But who of the "Perl seniors" would quit his/her job for an amount of money that pays for one year max (more likely half a year)? Would you? And even if you would, what would you be able to do?
  • Hiring "juniors" should be cheaper, but they need guidance, which takes time and is not fun.
  • Maybe we should get a non-programmer as a cat herder [1]? But some/most of the cats don't want to be herded. Plus, the cat herder wouldn't have a stick (and neither a carrot)
  • Most of us code for fun, and leave out the non-fun parts (documentation, screen design, sometimes even testing). Maybe we should hire people who are good in this field to free more time for the fun stuff?
  • Or maybe we need a first-level support person (or team?) for p5p, who goes through all the bug reports, classifies them, discard the crap/resolved/duplicate tickets and assigns the rest to the right person(s)?
  • ...???

In the end, most/all of the people who could do the hard things (like working on Perl internals, releasing new Perl versions, ..) have jobs (and persumably are happy with their job) and no time [2]. So money does not actually help here. Plus, most of this proposed 'jobs' involve some kind of control from the paying party, and e.g. I don't want to spend even one hour a week with such boring administrative tasks.

Anyway, if somebody comes up with a convincing plan, it might be realised if we can get the needed money (but see [0]!


0: as you might know, actually has that much money earmarked for "advancements of Perl", so this post isn't that hypothetical.

1: read 'project manager'

2: Of course there are exceptions like Jonathan who are a) exceptionally well suited for their "community job" and b) actually have some time they can trade for money.

Friday May 15, 2009
09:36 AM

Acme::ReturnValues is back

Now with a nice and shiny (-ish) design and with lots of false-positive crap stashed away to "Bad return values". As you might have expected, the most common "cool" return value is 42.

A tiny bit more context can be found here.

Next: set up a cronjob (but before that, write out which dists have already been checked, so we only check new uploads)

Monday May 04, 2009
02:10 AM

Module::Install hate

I should rather post this to, but a) I don't care for yet another subscription and b) I'm not sure if it's still running


From time to time I do this to update my CPAN stack:

~/$ cpanp
CPAN Terminal> x
CPAN Terminal> o
.. list of modules needing an update
CPAN Terminal> i 1 .. $last_module

As I have set up my CPANPLUS to automatically install all dependencies, this should work completely without my interaction. If I'm feeling courageous, I add --skiptest and/or --force for even less interaction.

But the comes along a distribution using Module::Install, which trys to be smart (something computers fail at more often than not) and uses its own dependency installation scheme. Which includes asking me if I want to install required dependencies.


Not only did I explicitly tell my computer to NOT ask me, how should the dist I'm installing work if some required dependencies are missing?