| Perl | 1 Comment | 0 TrackBacks

Or perhaps better yet I should rephrase the title above and instead write: Is agile development conducive to Perl?

For the last ten years or so there's been a big rage about the benefits of agile software development and how much better this methodology is compared to good old Waterfall or RUP or Ruby on Rails or whatever.

I would like to claim that Perl is just as good if not better than any other programming language when it comes to going agile. I've used it often enough and it has resulted in successful products hitting deadlines and bringing in big bucks. Who ever told us that early-to-market is an impossible task?

Perhaps Perl is not ideal, but it's flexible enough. Perl fosters creativity in such a way as to bring about visible results very quickly. There are many ways of doing things, and these alternative can be compared, the good with the not so good and even the bad with the outright bad, when choosing the most viable direction to take. Perl means moving forward not backwards.

Is speed the most important? Sure. Should we keep quality in mind? Yes, of course. Is there enough time to test? You better or else. Should we demo even though it's not quite ready. Yes and yes.

Let's have a look at Scrum which is one way of being agile. Since I've had more experience there, I feel more comfortable discussing it in light of the Perl programming language.

Scrum's success is based on a number of important concepts including the following:

  • Describe requirements as user stories
  • Prioritize tasks by business value
  • Commit to short-term goals and go for it
  • Allow the team to do anything to accomplish the goal
  • Do not disturb development during each cycle
  • Develop quickly and pragmatically

  • Take part in daily stand-up meetings
  • Measure speed by iterative development cycles
  • Empower the development team to make any and all decisions
  • Embrace change because it will happen
  • Review and improve
  • Foster bleeding-edge technology that might break things
  • Accept delays as part of life and make them public
  • Tackle risks early and do not fear failure
  • Verify, rework and move forward
  • Be proud of what you create
  • Have a fun and relaxing time getting things done

I could go on and on explaining the fine art of doing Scrum within the wonderful world of Perl, but I believe I've said enough for the time being.

Hopefully my short discussion here has tickled enough people out there to make them think and reflect upon their own experiences. Enough so at least that they are inspired to leave comments of all kinds, foster even more discussion, defending and/or judging good old Perl as a agile way of doing things (or not).

So is Perl really conducive to agile development? I think so.

 | Golf | 0 Comments | 0 TrackBacks
This morning I had the perfect birdie. There was not the slightest hesitation in my mind. Three shots in a row, each one straight at the flag.

My drive was a real screamer down the left side of the fairway. The ball easily cleared the sand trap and hit the down slope which meant an extra thirty yards easy.

The pitching wedge swept the surface of the grass and made solid contact with the ball launching it with a nice arch right down the smoke stack.

Finally while the short putt was not quite a gimme I scoped the lie from behind the pin and then to the side before giving the ball a nice run to the middle of the cup.

The birdie sounded real sweet when the ball hit the bottom of the cup.
 | Golf | 0 Comments | 0 TrackBacks

Looks like we've got some ideal golfing weather ahead, and I'm definitely going to take advantage of this fantastic stroke of luck.

Sunny days ahead ...

Here's my golfing schedule: tomorrow early shotgun with the oldies, Friday afternoon practice round by myself, Saturday morning 1st round club stroke play championship, Saturday afternoon golf lessons, and Sunday if I qualify 2nd round club play championship.

The clubs have been cleaned and polished and I'm ready to have a fun and relaxing time.

 | Golf | 0 Comments | 0 TrackBacks
The problem with offering your opponent advice on the golf course is that if it helps then he beats you out of a couple more bucks and if it doesn't help then he can blame his lousy score on your poor suggestions.

I also am superstitious in that giving an outsider part of your good advice energy will only deplete your own magical skills a little bit more.

So I told my opponent on the back nine that according to me he was hitting the ball inconsistently because he was swaying too much front to back and should concentrate on taking a wider stance and keeping his balance.

That's when he drilled his tee shot right down the middle of the fairway and I sliced my ball badly out of bounds.

Fortunately this time around we weren't playing for money.
 | Television | 1 Comment | 0 TrackBacks
Farrah_fawcett.jpg

I cannot believe that she died today.

As a teenager I had the biggest crush on her and that poster of her in that skin-tight red swimming suit was an all time classic that's for sure.

Well, if it means anything to you now, thanks alot for all of the pleasure you brought me while I was growing up and trying to make sense of the world as a crazed young man in need of direction.

 | Perl | 2 Comments | 0 TrackBacks

Recently I've been setting up an extensive test harness suite for a web-based application running on the Catalyst Web Framework for Perl.

In addition to the popular Test::MoreCPAN module, many of the tests make use of the CPAN module Test::WWW::Mechanize::Catalyst where I run automated scripts to access various pages, fill in fields with various values, submit forms and check for success or failure.

One of the tests involves creating a new user account that generates a notification email which is sent to the new user. Within the message text there is a verification link. The idea is that upon receiving this email, the user will click on this link and be redirected back to the application to a welcome page. This welcome page verifies that registration has been completed successfully. The user is invited to login in by submitting a form with the username and password pre-filled.

The problem is that I do not want to be generating all kinds of external emails into the big bad world for these tests. Besides, how can I use automated scripts when they depend on external events like users having to click on links in emails wherever they might be?

So here's the trick. First of all I redefine the Email::Send::send() method so that I can hook into it thereby mocking it's behavior. This redefined method is used to scrape out the embedded validation link we must click on in order to finish the registration process.

our $email_mime_ref;
{
    no warnings qw/once redefine/;
    *Email::Send::send = sub {
        my ($self, $message, @args) = @_;
        $main::email_mime_ref = $message; return 1; };
}

Note that we use no warnings qw/once redefine/ in order to disable the warning messages for redefining the method and only using it once.

Whenever Email::Send::send() is called, we copy the message for later use. Note that since we are in the namespace of Email::Send when this is called, we need to make sure that the message is copied back into the namespace of where we are calling from, namely $main::*:

$main::email_mime_ref = $message;

Later on in the test suite it is time to submit the form like this:

$mech->submit_form(
    form_number => 0,
    fields => $fields,
    button => 'submit' );

Now scan through the message text and extract the uri, there should only be one present. I'm using the CPAN module URI::Find to simplify life.

my @uris;
my $finder = URI::Find->new( sub { push @uris, shift; } );
$finder->find(\$email_mime_ref->body_raw);

As a sanity check (you never know) I check that indeed only one link is present in the message text:

is(@uris, 1, "Found only one URI '$uris[0]' in email message");

Finally, we simulate clicking on this link which should bring us back to the welcome page:

$mech->get_ok($uris[0], "Click on URI '$uris[0]'");
$mech->content_contains("Welcome " . lc($username) . 
    ", your email has been validated. Please log in.");

We did it, so let's pat ourselves on the shoulders and call it a night.

 | Computers and stuff | 0 Comments | 0 TrackBacks
Hey, it turns out that the del-key on my laptop doesn't stick anymore, and I hadn't even noticed it. Remember that blog entry back in April where I was feeling irked enough that I even had to dedicate a whole entry? I guess that due to lots of usage something or other has loosened up beneath the key, and no matter how hard I try now I cannot get it to stick any more. That's fantastic news, even though it's a bit strange how I hadn't even noticed it.
 | Computers and stuff | 0 Comments | 0 TrackBacks
I've learned an awful lot about the many ins and outs of managed virtual servers the last few weeks. It's been a fun adventure talking with companies and the experts about the fine art of managed hosting.

There are many advantages to choosing a virtual environment over the more commonly accepted hardware options. It really boils down to a choice between two options:

  1. Make a big one time investment in hardware and write it off over a five year period. Hopefully within that time frame one can use the costs more effectively by maximizing the use of computer resources.
  2. Or rent the computer resources (CPU, memory, storage, etc) on a monthly basis. As time progresses one can easily expand the resource depending on current needs. Costs are kept more under control and growth should be more predictable.
Another interesting topic of discussion which can get hairy and even philosophical at times is the difference between fair use and bundled bandwidth policies for network usage. A couple of people have discussed it with me but I'm still not convinced about one being any better than the other.

 | Work and play | 0 Comments
So I figured that I'd work from home today so I could concentrate better and be much more productive.

Woke up extra early to make a good start, enjoying a nice hot cup of coffee and typing away behind my good old laptop.

As it turns out, right across the street there's some @#$! idiot sawing wood with this high-pitched electrical saw the whole morning.

What a jerk. I hope he quits real soon before I get insane and attempt something desperate.
 | Meaning of life | 2 Comments
That line over there in front of the cash register was shorter than the others, so I took that one because the others were waiting for me outside. I could see in advance that the girl sitting in front of the cash register was not in the greatest of moods. She had this smirk painted on her face, and she never once raised her eyes to look directly back at the important customers.

The same treatment was repeated with me. She stabbed the flat screen with dagger-like motions, rang up two-fifty-five, and I handed her the blue ten euro note. I held my hand in place hovered in the air as she groped around for the money. She handed me back the small change, along with a red twenty euro note.

Caught off guard for an instant, I hesitated slightly before gathering up enough courage to react. I told her politely that I thought perhaps she had mistakingly given me back the twenty euro note when it should have been a five, because you see I had paid with ten.

For the first time she raised her eyes and looked at me directly with pierced vision, her grumpy glance becoming even more irate. She had been trained well to beware of bums like me trying to short change the store.

"That's impossible," she snapped back at me. I responded with a smile, "Excuse me but I originally gave you ten, so I think you meant to give me five back, not twenty." Trained not to think, she kept her lips sealed and just shook her head back and forth. She waved me off and tarted helping the next customer in line.

I'm normally a pretty honest guy. I should have insisted until she called the police to take me away, but that look on her face combined with the growing line of impatient customers and  their rattling overflowing shopping carts hinted that I should just accept this turn of fate and continue with my life.

I walked away wiithout making a big deal, accepting my good twist of fate although underneath I still feel a little guilty about it all.

Information

This personal weblog was started way back on July 21, 2001 which means that it is 7-21-2001 old.

So far this blog contains no less than 1706 entries and as many as 1756 comments.

I graduated from Stanford 6-5-1979 ago.

I first met Thea 6-14-1980 ago.

Believe it or not but I am 10-11-1957 young.

Twitter Updates

Recent Comments