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].
It came to my attention via brian d foy's blog post that the next Nordic Perl Workshop will take place in Iceland - which sounds very interesting. At the same time I decided that I need to take a longish break after working very hard for the last two years. So I will combine my holiday with NPW!
My current plan is bike from Vienna via Prague to Berlin, spend a few days there to visit some friends, take a plane to Rekjavik, attend NPW, and then either cycle a bit more through Iceland or treck a bit (probably combined with public transport). Then take the plane back to Berlin and a train back to Vienna.
The plan still has some issues:
Anyway, I'm really looking forward to this!
The Perl QA Hackathon 2010 will take place in the lovely MetaLab , a grass-root non-profit hack-space in the middle of Vienna (more on Wikipedia). There will be lots of space, workplaces, sofas, wireless and wired network and a big fridge full of drinks.
Vienna.pm has also proud to announce that we will sponsor the hackathon with 10.500 Euro. We will reserve a small part for catering during the event, but most of the money will go into paying for transport and hotel of invited guests.
If you want to hack on a QA / Toolchain project, please add yourself to the Attendees page of the wiki.
Thomas Klausner,
on behalf of Vienna.pm and the Perl QA Hackathon 2010 team
After typing ack 'sub foo' lib for the approximately
thousandth time during some refactoring sessions, I couldn't be bothered
anymore and added the following snippet to my realias
(after some googling on how to get params into an alias, which does not
work in bash, so I had to solve it via a bash function):
sack () {
ack "sub $1" lib
}
To find a given method in some of our labyrinthine code, I now say
~/projects/Foo-Bar$ sack annoying_method
and get a list of all occurrences.
yay!
P.S.: The name sack has nothing do with subroutine ack, but of course comes from the Austrian
saying "Gemma ned am sack, oida!"
During YAPC::Europe, Nicholas Clark mentioned a new util called perlthanks. It's basically perlbug, but for submitting thank-you-notes instead of bug reports. Nicholas said nobody had submitted a proper perlthank yet. So after installing 5.10.1 today, I said thanks.
It seems that I missed "first post" by two slots, but well...
Thanking p5p for the tremendous work they're doing for us, is now only a short perlthanks away!
For a lot of reasons I prefer vinyl to CDs as my primary medium for
music. But I still want to carry my music around, and not only is vinyl
rather heavy, the real killer is the lack of portable turntables
that work while cycling...
A few days ago I packed one of my turntable and my old and crappy mixer
into my bike trailer and hauled them and a selection of records to my
office. Now I can listen to proper music while working, and convert it
to mp3 at the same time.
As the setup is kind of interesting, here's a quick rundown through the
hard- and software used:
The turntable connects to the mixer, which does the preamp needed to
convert the weak signal from the turntable into something line-in can
take. The mixer than connects to my USB sound device (rather ancient, I
got it when we lived in Berlin in 2000). The USB thingy is plugged into
my desktop machine (of course running Debian), where
I use Audacity to
record the audio signal.
After I recored a whole record, I have to do some manual fiddling to
remove the gaps in the recording left when I had to switch records. I
than add a 'label track' and add track marks at appropriate places
(silence auto detecting just does not work good enough). Then I hit
'Export multiple' and let audacity convert the wavs to mp3.
Now I have a bunch of ugly-named mp3-files lacking proper meta data. I
wrote several small scripts and tools to first rename the files to
something like '01.mp3'. I fetch the CDDB data from freedb.org (or if I
cannot find it there, I can write up a small file containing the
meta data from hand or copy it from wikipedia). Another script then
parses the meta data, finds the matching mp3 file, adds ID3 tags, moves
it to my music archive and generates a proper filename (which of course
is '02_guns_dont_kill_people_rappers_do.mp3').
And that's it!
If you've been at YAPC::Europe 2009 (or still are there...), I've probably shown you my still rather simple space invaders clone, which is totally boring besides the fact that it's written in Perl (and based on SDL). It's now on github: http://github.com/domm/Game-PerlInvaders. Please clone and patch!
BTW, if you want to try it out and have problems installing SDL from CPAN, try the most recent version from github, see http://wiki.github.com/cthulhuology/SDLPerl
As I can't get to my screen-session my irssi-session lives in, I'll have to announce this here:
The slide for my talk Writing Reusable Code are now available from here: http://domm.plix.at/talks/writing_reusable_code.html and also listed on the YAPC::Europe 2009 Wiki.
If you held or will hold a talk, please add links to your slides too!
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)