I'm also head of Vienna.pm [pm.org], maintainer of the CPANTS [perl.org] project, member of the TPF Grants Commitee [perlfoundation.org] and the YAPC Europe Foundation [yapceurope.org].
I've got stuff on CPAN [cpan.org], held various talks [domm.plix.at] and organised YAPC::Europe 2007 in Vienna [yapceurope.org].
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
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.
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 Vienna.pm 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 cpan.org)
In our recent drive to spend some of the money earned by YAPC::Europe 2007, Vienna.pm 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!
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:
$self->do_something(
$c, {
rs => $c->model('DB::Foo')->search( { bar => 'baz' } ),
fluxcompensator => '1.21 jigowatts'
});
using
--stack-opening-tokens
--stack-closing-tokens
--opening-brace-always-on-right
--opening-token-right
I also tried --line-up-parentheses like this (additional to the above options):
--line-up-parentheses
--closing-token-indentation=0
--vertical-tightness=2
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?
Vienna.pm 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 Vienna.pm
PS: A Perl 5 related grant will be announced shortly
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?
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?
In the end, most/all of the people who could do the hard things (like working on Perl internals, releasing new Perl versions,
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, Vienna.pm 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.
http://returnvalues.useperl.at
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)
I should rather post this to we.hates-software.com, but a) I don't care for yet another subscription and b) I'm not sure if it's still running
Anyway..
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.
HATE!
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?