This blog is no longer being updated. I've moved on to The Accidental Weblog. Hope to see you there.

Tuesday, March 01, 2005

Let us now praise great software

Try to forgive the geek exuberance, but I just thought I'd take a moment and say that the CPAN shell is a beautiful, beautiful thing.

So I need to test this big mound of hexdump I'm pretty sure represents a sizeable prime. Don't happen to have a widget at my fingertips to do so... but I've got a Debian box I use for a buncha slush projects sitting there.

So I tell the CPAN shell: get me Crypt::Primes.

For you non-geek types, just quickly: CPAN is this magnificent console-oriented modules management system for Perl. Crypt::Primes is a module that allows you to generate big primes and test big numbers for primality from friendly bread 'n butter Perl--the language in which I still do pretty much everything I can get away with. I follow the dictum: if you can do it with a shell script, do. If you can't, use Perl. If you absolutely must, sure, compile something in C or C++. But c'mon. Apart from doing protocol stuff, stuff seriously close to hardware in new and adventurous ways, and stuff calling for serious performance, how often does that actually happen? So Perl and I, we do pretty much everything together.

Anyway: called upon to do its magic, CPAN figures out the system I've got has a copy of PARI (a marvellously capable system for doing number theory stuff), but not the build directory (PARI came in via a Debian binary; wasn't built locally). Crypt::Primes needs one of these at hand to install--along with a handful of other Perl modules.

So CPAN sez: shall I just go get one of these and build it for you? And all that other stuff the Crypt::Primes module feels it needs?

And I sez: sure.

And it does. Switches light up, drive spins, gcc grinds away.

A few minutes later, I'm testing primes, using Perl.

Now that's what I call software.