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 ]

chrisv (8116)

  (email not shown publicly)

Journal of chrisv (8116)

Monday March 30, 2009
05:33 AM

Perl is dead! Long live PROPERL!

Update 20090424chrisv: now redirects to as they basically have the same goals.

Thank you for your attention. This is a rant. A long one. If you love Perl just like I do and you want it back on its feet as the good (or best) choice for professional software development, please bear with me and read on. If you don't want to invest in Perl anymore for your future and you think all is lost, please move out of the way.

Ok, here I go. Hold on and please keep reading. It's really important.

I'm sick of hearing that "Perl is dying" and to have to observe how the share of Perl in the programming community is diminshing in favor of other dynamic languages like Python and Ruby, in all sorts of areas: books published, novice programmers adopting Perl, share of Perl on open source repos and major conferences, etc.

What I'm even more sick of is having such a difficult time finding local Perl programmers to work with me on professional projects, let alone customer-friendly and experienced analysts to go help customers out onsite.

I've seen lots of colleagues in my part of the world (Belgium) simply leave Perl behind as a professional languague and jump ship to more "popular" ones like PHP, Python, Ruby and even ASP.NET. None of them came back. Perl is clearly not where the money is anymore.

If you really really want to keep on making money with creating software in Perl, it seems you have no choice but to join the few listed powerhouses like that were built on Perl a decade ago and have too big an investment in it to even consider another, more programmer-friendly programming language even if they wanted to, or move to South-California to hook up with a startup that was created out of stuff that Bradfitz or Ingy wrote [1] or stubbornly go into the consulting business and try to get Perl contract jobs, in which case you end up just keeping old Perl 4 stuff running most of the time. I wish you good luck finding a Perl contracting job if you live in Belgium BTW.

But what made me want to finally stand up and DO something was Louis-David Mitterand's post on the modperl mailinglist a few days ago which he titled the "decline and fall of modperl?" [2]. What ensued was a fantastic thread, with feedback from both the older and new generation of perl programmers, but most importantly: from recruiters (!).

What I got from this thread, from many previous rants about the would-be demise of Perl (based on sales-figures, opensource repo-stats and the like), as well as from the seemingly neverending deathmarch that is Perl6 (and the resulting fatalistic nihilism of many Perlers), is that there is nothing wrong with Perl, but that there is a problem with its perceived image, and the hippie-mentality of its community.

I am kicking around right now, and I'm gonna step on lots of toes. I know this. Some people will probably also think I'm a complete nitwit and say I don't know what I'm talking about. I don't care about them (although I will probably allow their hurtful words get to me personally, but I am prepared to stand up to that). I don't want to be the popular guy. I care about Perl and I don't see anybody in the Perl community stand up and say that we need to do something (although Matt Trout came very close when we talked about Enlightened Perl [3] during the Belgian Perl Workshop). I'm in a stage where it's all or nothing. If this doesn't work, at least I will have tried and done what I could as a member of the Perl community before I hike up my pants and move on. My ego and popularity is nothing compared to the potential loss if we don't act now and try to save Perl from obscurity and neglect. Because let's face it: Perl is never going to die, just like COBOL is never going to die. I'm sure COBOL once was in the same situation Perl is in now.

I want to make an attempt at rallying people to get real, wake up and smell the coffee. Because there are basically 2 types of people: a very small percentage that doesn't care what other people think and simply use what they consider the best tool for the job (which is, as we all know, Perl). This small majority has the luxury of not caring what other people think because they don't have any responsibilities beyond themselves. Then there is the other type, which makes up most of us. We look around, see and hear, and adapt to the change around us. We do this to survive. On both a financial and social level. Again: Perl is not where the money is anymore.

Now, if Perl wants to remain a viable way of building both great products and allowing one to make a living of it, we need new blood. Lots of it. And fast. We need new projects. Major projects built in Perl. They will convince those people that look around and observe change that Perl is, indeed, great. That people are actually using it to build great things with.

This is becoming a long rant. Please bear with me a little longer. I'm almost there.

To let Perl shine and attract people and projects, we need to lock down on the freedom a bit. We need to step back and describe in one (1) single clear and lucid way of how you go about building great stuff in Perl. We need to carefully pick a single toolset, sex it up, document it towards normal people, and market the hell out of it in all ways possible. The most efficient way being building cool and highly visible products with it.

So what I did (because nobody else has AFAIK) is set up a project called PROPERL that proposes and aims to popularize the idea that there should be one — and preferably only one — obvious way to do it in Perl in order to make it more accessible, adoptable and maintainable. If this sounds like The Zen of Python, it's because it is. I realize this is utter blasphemy towards the basic notion of TIMTOWTDI, but I don't want to wait voicing my heresy until I'm almost dead like Darwin. It will be too late by then.

So if any of this makes any sense to you, please head over to the PROPERL wiki [4] and subscribe to the Google Group [5].

I've also set up a twitter account to log all progress as we go along [6] - please follow, and I will make sure that you're followed back, because that is the curteous thing to do ;-)

If on the other hand all of this does NOT make sense to you, please don't start nitpicking on things I've written here. If you can't say anything constructive, I'd rather that you didn't say anything at all, because you won't be helping at all.

Please join me in giving Perl a good ass-kicking. It needs one badly. If you really love Perl, you know this can't go on and you know it needs some tough love. It's hard, but it really needs to be done.

I'm all ears for all your suggestions at chrisv(at)cpan(dot)org. But maybe instead of mailing only me, put your suggestions and (constructive) critiques on the PROPERL google group [5] - that way everybody can chime in.

Let's RIDE the Camel!

Thanks for reading this. Really appreciate it.

All the best -- @chrisv

[1] Socialtext, Livejournal, Vox, ...

Saturday February 07, 2009
05:15 AM

howto (temporarily) disable edits in pmwiki

How to (temporarily disable edits) in pmwiki (this is a dirty quickfix; Auth is obviously a better solution):

edit the pmwiki.php file and change:

179 'edit' => 'HandleEdit', 'source' => 'HandleSource',


179 'edit' => 'HandleBrowse', 'source' => 'HandleSource',

To enable the editing, just switch back.

04:55 AM

err debian upgrade

Upgraded 2 Debian Etch servers today (with an "apt-get update" and subsequent "apt-get upgrade") one of which hosts the site. There was an upgrade for the kernel included (2.6.18-6-686) but after reboot Apache2+mod_perl wouldn't come up again, complaining about

I tried an apt-get remove perl (which yielded the debian packages below), but to no avail.

apache-common build-essential defoma dpkg-dev fontconfig-config libalgorithm-c3-perl libapache-mod-perl libapache2-mod-perl2 libapache2-request-perl libappconfig-perl libarchive-tar-perl libbit-vector-perl libcache-cache-perl libcache-fastmmap-perl libcarp-assert-more-perl libcarp-assert-perl libcarp-clan-perl libcatalyst-engine-apache-perl libcatalyst-modules-extra-perl libcatalyst-modules-perl libcatalyst-perl libcatalyst-view-tt-perl libcgi-simple-perl libclass-accessor-chained-perl libclass-accessor-perl libclass-c3-perl libclass-container-perl libclass-data-accessor-perl libclass-data-inheritable-perl libclass-dbi-perl libclass-factory-util-perl libclass-inspector-perl libclass-singleton-perl libclass-throwable-perl libclass-trigger-perl libclone-perl libcompress-zlib-perl libconfig-any-perl libdata-dump-perl libdata-page-perl libdata-visitor-perl libdate-calc-perl libdatetime-format-strptime-perl libdatetime-locale-perl libdatetime-perl libdatetime-timezone-perl libdbd-mysql-perl libdbi-perl libdbix-class-perl libdbix-class-schema-loader-perl libdbix-contextualfetch-perl libdevel-stacktrace-perl libdevel-symdump-perl libdigest-hmac-perl libdigest-sha1-perl libemail-valid-loose-perl libemail-valid-perl liberror-perl libexception-class-perl libexporter-lite-perl libextutils-autoinstall-perl libextutils-cbuilder-perl libextutils-parsexs-perl libfile-copy-recursive-perl libfile-modified-perl libfile-slurp-perl libfontconfig1 libformvalidator-simple-perl libgd-gd2-perl libgd-securityimage-perl libgd2-xpm libhtml-fillinform-perl libhtml-mason-perl libhtml-parser-perl libhtml-prototype-perl libhtml-scrubber-perl libhtml-tagset-perl libhtml-tree-perl libhtml-widget-perl libhttp-body-perl libhttp-request-ascgi-perl libhttp-server-simple-perl libima-dbi-perl libio-stringy-perl libio-zlib-perl libipc-sharelite-perl libjson-perl liblingua-en-inflect-number-perl liblingua-en-inflect-perl liblist-moreutils-perl liblocale-maketext-lexicon-perl liblocale-maketext-simple-perl liblog-log4perl-perl libmailtools-perl libmime-types-perl libmodule-build-perl libmodule-find-perl libmodule-install-perl libmodule-pluggable-fast-perl libmodule-pluggable-perl libmodule-scandeps-perl libnet-daemon-perl libnet-dns-perl libnet-domain-tld-perl libnet-ip-perl libobject-signature-perl libossp-uuid-perl libpar-dist-perl libparams-validate-perl libpath-class-perl libplrpc-perl librpc-xml-perl libset-object-perl libsql-abstract-limit-perl libsql-abstract-perl libsub-uplevel-perl libtemplate-perl libtemplate-plugin-class-perl libtemplate-timer-perl libtest-exception-perl libtest-longstring-perl libtest-mockobject-perl libtest-use-ok-perl libtest-www-mechanize-perl libtext-simpletable-perl libtie-ixhash-perl libtimedate-perl libtree-simple-perl libtree-simple-visitorfactory-perl libuniversal-can-perl libuniversal-exports-perl libuniversal-isa-perl libuniversal-moniker-perl libuniversal-require-perl liburi-perl libversion-perl libwww-mechanize-perl libwww-perl libxml-parser-perl libyaml-perl mysql-client-5.0 mysql-server mysql-server-5.0 perl perl-modules perltidy ttf-dejavu

After some googling, I found the following thread on Google Groups: 936bb

which talks about a "buggy" arch-check in /usr/local/share/perl/5.8.8/

11 "$Config{'archname'}-$Config{'osvers'}" eq
12 "i486-linux-gnu-thread-multi-" or
13 die "Errno architecture (i486-linux-gnu-thread-multi- does not match executable architecture ($Config{'archname'}-$Config{'osvers'})";

So I commented these lines out and perl worked fine again (after having reinstalled Perl and accompanying debian packages of course), so apparently this "bug" hasn't been fixed yet in the current perl-base package.

Also, mod_perl2 had been disabled from the Apache modules-loading after the upgrade of the Apache2 server, so I had to create a new (symbolic) link:

ln -s /etc/apache2/mods-enabled/perl.load /etc/apache2/mods-available/perl.load

Saturday October 27, 2007
11:11 PM

BPW2007 photos & slides

[ #34764 ]
The first Belgian Perl Workshop was, IMHO, a success. My congrats to the Bruxelles Perl Mongers to organize it. Hopefully there are many more BPWs to come. Here are the slides from my talks:

And here are the photos I took. I for one am already looking forward to next year.

Sunday October 07, 2007
07:17 PM

Howto install mod_perl2 and HTML::Mason on Debian-etch

I ordered myself some webservers at recently with Debian (etch) preconfigured on them.

Apache2 (2.2.3) was already installed on them; this is how I added mod_perl2 and HTML::Mason:

#uname --all
Linux cl-t088-250cl 2.6.18-5-686 #1 SMP Sun Aug 12 21:57:02 UTC 2007 i686 GNU/Linux

#apt-get install apache2-dev
#apt-get install libapreq2
#apt-get install libapache2-mod-perl2
#apt-get install libhtml-mason-perl

#mkdir /etc/apache2/mason
#mkdir /etc/apache2/obj
#mkdir /etc/apache2/cache
#chown -R www-data /etc/apache2/mason

#vim /etc/apache2/mods-available/perl.load
LoadModule perl_module /usr/lib/apache2/modules/

#ln -s /etc/apache2/mods-available/perl.load /etc/apache2/mods-enabled/perl.load

then update the /etc/apache2/sites-available with HTML::Mason configs (see
Friday October 05, 2007
02:30 PM website resurected

The long comatose website just received an adrenaline shot right in the heart and is now back alive. Now we get busy reviving the community itself, which no doubt will be helped a lot by the upcoming Belgium Perl Workshop.