Stories
Slash Boxes
Comments

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

Thursday May 08, 2008
01:17 PM

Why People Are Passionate About Perl

[ #36356 ]
The Portugeuse Perl Workshop is less than a month away, and I'm giving a keynote about "Why People Are Passionate About Perl" on June 4. So, why are you passionate about Perl?

I've been thinking about this quite a bit since we selected the topic. I can only really talk about why I am passionate about Perl. I want to talk more about that in the keynote. Post your story somewhere. If you don't think I'll find it, send me a link. I'll google the title "Why People Are Passionate About Perl" though :)

I've also been thinking that I want to do this keynote without slides, or at least the boring sort that are really just talking points. Chicago doesn't have 10 of the world most dangerous anythings, so Damian's approach is right out (and I don't have the Chicago accent anyway). I can't think fast enough or clever enough to use the Takahashi Method. I don't especially like orange, so copying Leon's slides don't quite fit either.

I figured I'd take a few good stories of people and their passion for Perl and show their picture on the screen while I told it. Then, in the audio that I'll record for Perlcast, I'll figure out how to make the album artwork be the slides. Or do something else like that.

Here's a set of questions, mini interview style, to get you started on your own post:

  • The person who introduced me to Perl showed me that...
  • I first starting using Perl to...
  • I kept using Perl because...
  • I can't stop thinking about Perl...
  • I'm still using Perl because...
  • I get other people to use Perl by...
  • I also program in ... and ..., but I like Perl better since...


[Note: I've turned off comments. If you want to tell me why you are passionate about Perl, make a blog post somewhere. Explain to the world why you really, really like Perl (and I mean like like!). I think they call this thing a meme. ]

[Note note: Steal this meme for Python, or Ruby, or Java, or LISP, or whatever. I think the most enjoyable posts from my "Five Things I Hate About Perl" where actually the ones from other languages. I learned the most from those. ]
12:42 PM

Visiting Bruxelles.pm

I'm spending May in Lille, France, so on May 13, I'm going to visit Bruxelles.pm just up the road. It's a quick train trip. I'll be at the Greenwich Café around 18:00 if anyone wants to meet earlier. I have to catch the last train back to Lille at 21:00, so don't come late!

I thought about visiting London.pm tonight, which is also not that far by train. Eurostar wants $800 per person for the trip, so I guess that is right out. Even booking two weeks in advance they want a lot more than I'm willing to pay to have a few drinks with one of the biggest Perl Mongers groups. So, sorry London :(.
Thursday May 01, 2008
12:07 PM

Pre-order Learning Perl, Fifth Edition

Our latest update to Learning Perl is now available for pre-order on O'Reilly and Amazon. It should be here before OSCON 2008, but I don't know how soon before OSCON that is.

In the new edition, we've updated the text for Perl 5.10. The 5.10 features we cover are:

  • using say()
  • defined-or operator
  • named captures in regular expressions
  • smart matching
  • stacked file test operators
  • state variables
  • given-when


Along with that, we've updated the text for the latest Perl history and happenings, and made modules a more important part of the book.
Wednesday April 30, 2008
12:35 PM

Updating perl-mode and vi macros answers in perlfaq3

I notice that Jon Rockway updated cperl for Perl 5.10. Since I don't use emacs I'm just getting that news. However, perlfaq3 is even more out of date. Can someone with up-to-date emacs knowledge read through perlfaq3 and update anything emacs related?

I figure the vi crowd should get the same chance too. I use vi, put without the fancy macros. Rather than try to update the vi stuff myself, I figure someone who really loves vi should get a chance.

The latest perlfaq are at https://svn.perl.org/modules/perlfaq/trunk/ (as noted in perlfaq). You can send patches to me directly, or to the mailing list address listed in perlfaq.

Thanks, :)
03:07 AM

Base conversions

I think I might have posted these before, but my Perl class at Big Nerd Ranch wanted to see them somewhere they could copy them.

I have shell aliases to convert number bases:

alias d2h="perl -e 'printf qq|%X\n|, int( shift )'"
alias d2o="perl -e 'printf qq|%o\n|, int( shift )'"
alias d2b="perl -e 'printf qq|%b\n|, int( shift )'"
alias h2d="perl -e 'printf qq|%d\n|, hex( shift )'"
alias h2o="perl -e 'printf qq|%o\n|, hex( shift )'"
alias h2b="perl -e 'printf qq|%b\n|, hex( shift )'"
alias o2h="perl -e 'printf qq|%X\n|, oct( shift )'"
alias o2d="perl -e 'printf qq|%d\n|, oct( shift )'"
alias o2b="perl -e 'printf qq|%b\n|, oct( shift )'"
03:01 AM

A Perl blog about programming Perl

If you're going to make a post to use.perl.org to game search engine optimization, you have to actually say something like "I like Perl programming", or "I enjoy programming in Perl". Or maybe, I don't know, have some real content about programming Perl, why you program Perl, why programming Perl makes your job easier, how programming Perl saved you a lot of money, or how programming Perl let you finish before the project deadline. Why waste time optimizing Google for a bunch of script kiddies reinventing stupid web applications who don't care what you think anyway?

Of course, the next trick is to get everyone to link to your Perl blog, so you need to set up new planets to constantly replicate every post multiple times. One Planet Perl aggregating Perl blog posts about Perl programming isn't enough. Set up several. Everyone can have their own. Get those links out there.

Now that you have that out of the way, you need to add your comment spam to every one of the top blogs in the search results so you get more links to your favored Perl blogs. I like Tim Bunce's Perl blog, even though it's mostly not about Perl and mostly about why advocating anything is fraught with peril and usually full of lies and personal agendas.

Of course, this is just as bad as what everyone else does and why search engines suck so hard now. With the flood of information whose only purpose is to affect search engines rankings, it's tougher to find any real information without some serious keyword kung fu. I guess it's fine when our group does it though, because we are us and they are them.
Sunday April 27, 2008
04:16 AM

Master Classes at YAPC::NA

The Perl Review is conducting three master classes at this year's YAPC::NA. Each class is two full days of training on the two days after YAPC, June 19-20, from 9am to 5pm. The price for each class is $200, and you can register for the classes through The Perl Review.



Master Classes are offered especially at conferences and are cut-rate, extremely low cost offerings of regular courses taught by training organizations.
Friday April 18, 2008
10:17 AM

PAUSE gets a CAcert signed certificate tomorrow

The Perl Authors Upload Server (PAUSE) has had a self signed cert for it's SSL stuff. Tomorrow Andreas is installing a cert signed by CAcert, a certificate authority. You might need to install the CAcert root certificate so your browser recognizes the authority and you don't get a warning, but you don't strictly need it to access PAUSE.
Friday April 11, 2008
01:32 PM

My Oslo QA Hackathon Wrapup

I'm back from Oslo and back to normal life. One of the biggest benefits of the hackathon was simply setting aside that time to work on something and not think about anything else. Linpro provided the space, network (and network support), food, tram passes, and other things. I just had to show up each day. The Perl Foundation covered my plane flight, and LogicLab took care of my hotel expenses.

I laid out my goals in earlier use.perl post: I wanted to work on Module::Release so it could test multiple perls in one run, and work on my index of BackPAN.

I finished the Module::Release stuff the first day by getting up early. While working on that, I was mostly sitting across from Adam Kennedy, who has his own release.pl. He does things very differently: I start in a working directory and release from there while he starts anywhere he likes, creates a working directory, and generates all his module internals on the fly. I like some of his features, so I pulled some of them into Module::Release so I can have them in the next version. H. Merijn Brand started using Module::Release to test his Text::CSV_XS modules, and he provided a lot of feedback on things he'd like to have. Most of these were cleanups to make the process work smoother for everyone. Since my release script is mostly how I do things, I didn't cover the cases that didn't bother me, such as leaving files behind after a run. On the plane ride home I started moving some of the functionality around to make the major functional groups into modules. A lot of the core stuff deals with CVS and Sourceforge, which not many people use anymore. I'm working on a lightweight mixin process to load plugins. I've actually had that for awhile, but I just have to make it releasable.

My big project was indexing BackPAN. I got quite a bit of code under control, but only about 10% of the way through BackPAN. My goal is for anyone to be able to go from an installed module file and find which distribution it came from. I'll collect file meta-data and code signatures (e.g. $VERSION, etc) to connect the installed files to the distributions. I released Module::Extract::Namespaces and Module::Extract::VERSION as functional units for the process. The rest of the code is ugly and cobbled at the moment, but I should be able to clean that up soon. I was able to index about 2,000 distributions for dual-lived modules and only run into about 200 errors. That sounds like a lot of errors, but usually an entire chain of distros will fail. Most of the CPAN.pm distros don't like my indexer, for instance, so every CPAN.pm distro fails. The other failures are related to operating system dependencies or perl compilation options such as thread support.

My BackPAN indexer tries each distro in a separate process. Adam Kennedy passed on a lot of wisdom about using PPI for some of this. Sometimes PPI can spin out of control in very odd situations, for instance. I was already thinking about forking to handle the indexing in parallel, so I added that to isolate separate runs of using the PPI too. I can use alarm to shut down any runs that take too long. Initially I thought a 15 second alarm would be generous, but the Encode modules needed more time. We also talked about caching PPI's Perl-DOMs, and that's a feature in PPI, but I'd like to make those caches part of the index. No need to parse stuff yourself, just load the stored cache. Adam thinks this might not be portable.

The output of the indexer is just a YAML dump of everything it recorded. I'll worry about a database server later, but even then it will probably just be sqlite.

I got most of the coding for the indexing done, although not the actual full indexing. I still have to deal with a couple common situations, such as distros using Module::Install. I'm working on a module, Distribution::Guess::BuildSystem, which will help the indexer figure out what might happen when it tries a build so it can delegate the indexing to something that knows how to handle that system, including any oddities it might have.

I'll clean up the code and turn it loose on the full BackPAN. I also want to look at running it in some virtual machines so I can pick up the operating system specific modules too.

David Golden and rjbs were talking about a CPAN Metabase as a store of any sort of data that we can collect, so I figure the BackPAN data will get in there too.

Finally, I'm going to try to pull all of this together for a Perl Mongers talk, so I should have slides and a perlcast soon. :)
Sunday April 06, 2008
10:47 AM

New cpan script version

Adam Kennedy explained to me why people like to type "install" after the cpan command. Previously, this found the junoscript, which as an install.pm. Linux people type things such as "apt-get install", so the muscle memory to type "install" is there.

cpan-script-1.54 is now in PAUSE. If you want to do the extra typing, now you'll won't see the annoying warning.

Adam says I'll get 50 thank yous for this small change, but we'll see. :)