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 ]

Robrt (1414)

  (email not shown publicly)

robert at perl dot org

Journal of Robrt (1414)

Thursday November 03, 2005
11:40 PM

Off By One Error

I updated the Parrot smokeserver today, and suddenly the output display was horribly garbled. I started taking apart the regular expression, converting it into a //x with comments, and suddenly the answer was clear!

Someone added a field to the middle of the data set, and didn't increment all the following field id's. (I.e., $7, $8, $8, $9...).

Lesson #1: Be careful when inserting to the middle of a set. If you can safely insert at the end, do so.

Lesson #2: Don't use the numbered regexp capture syntax for large numbers of capture groups. Use ($foo, $bar, $baz) = /(.)(.)(.)/ instead.

I didn't write the original code - I just had to fix it. (Luckily, I like fixing things.)

07:28 PM

Producing Open Source Software

I've only read the table of contents and skimmed a few chapters, but Karl Fogel (of CVS and Subversion fame) has written a "must read" book.

Producing Open Source Software - How to Run a Successful Free Software Project (read online, Buy buy from Amazon, buy from O'Reilly) is an overview of most aspects of the open source world. He covers everything from Version Control Systems to Hired Guns to Releases and Version Numbering. Karl's been doing open source for years, and has some great anecdotes to share, and he does it in a friendly and explanatory manner.

Even if you've been doing open source for years, you'll get something out of the book, even if it's just reassurance that you're not the only one who thinks that way.

Karl has been one of the driving forces behind the Subversion project. I'm consistently impressed with how Subversion is run. Decisions are well thought out, things are planned, flamewars are rare, discussions are civil. You too can have a happy project.

Friday September 30, 2005
07:10 PM


Brian and Andrew of Ejelta LLC (creators of donated a blade server to It's a few years old, but still quite capable. We're not totally sure what we're going to use it for once we get it running. It's a RLX 300ex.

Ask and I spent yesterday afternoon playing with it, and have it mostly figured out, although we need a little more time to get it just right.

The management interface on it is sweet (to use one word.) Built in console server, remote management, etc all in a very snappy and easy to use web interface.

Blades. They are the way of the future.

07:06 PM

Fire! (Again.)

The hills above my house are on fire again. Fun to look at, not so great to breathe. Its close enough that (if I could get past the firemen) I could go roast marshmallows if I wanted. (No, this is not the "big" Los Angeles fire of the week, but a smaller one.) I am perfectly safe.
06:59 PM


Go see Serenity. It's good.

The movie was consistently enjoyable, same high quality as the show, good story, good action. (No spoilers here.)

I went to see a 1:30 matinee and the theatre wasn't close to packed. I suspect tonight will be a lot busier. The audience definitely enjoyed it, and managed to turn off their cell phones and clap only at the beginning and end.

If I do have one misgiving it is that I didn't see it on a digital projector. (I've been spoiled.) It was a fresh print, no scratches or dirt, and everything was quite nice... but I would have liked just a little more sharpness.

Still reading? Get thee to a theatre!

Sunday August 21, 2005
10:13 PM

RT Essentials found (almost) in the wild

Jesse has snagged Tim's copy of Essential RT. There's photographic evidence.
Friday August 05, 2005
06:31 PM

Conference Dangers

Sunday July 17, 2005
02:25 AM

RT: Mass Custom Field Update

Steve Peters asked if I could consolidate the Win32 and mswwin32 types in the Operating System CustomField in perlbug. Definitely a reasonable request, especially since we couldn't figure out what the difference was.

First try was to use RT's bulk update, but it didn't want to let me change custom fields... so... I wrote a script:

use strict;
use warnings;
use RT;
use RT::Queues;
use RT::Tickets;
my $tx = RT::Tickets->new($RT::SystemUser);
my $cf = RT::CustomField->new($RT::SystemUser);
my $q  = RT::Queue->new($RT::SystemUser);
$tx->FromSQL(q[queue="perl5" and "cf.perl5.{Operating System}" = "Win32"]);
$cf->LoadByNameAndQueue(Queue => $q->Id,
                        Name => 'Operating System');
while (my $t = $tx->Next) {
    my $os = $t->FirstCustomFieldValue("Operating System");
    $t->DeleteCustomFieldValue(Field => $cf->Id,
                               Value => $os);
    $t->AddCustomFieldValue(Field => $cf->Id,
                            Value => 'mswin32');

It gets the job done. There's a few things that aren't quite "simple enough"... but we'll see about knocking those out in the next version.

Learn more about RT in the soon to be published book RT Essentials.

Thursday July 07, 2005
10:00 PM

Room at the RT inn at OSCON

Apparently there are still a few seats available for the RT Tutorial at OSCON this year. Get them while they're hot.

Everyone who has attended the class loves it. It's based on our full day tutorial, which leaves people stunned. (And I mean that in a good way.)

Sunday June 26, 2005
12:14 AM

Bundle::Everything 0.04

Apparently some one actually uses Bundle::Everything. So, I uploaded an updated version tonight.