Month: October 2005

| 1 Comment

An elegant way to mix and match hash entries is by using the technique of hash slices. For example, let's just say that you have defined the following hash:

my $config = {
  firstname => 'Joseph',
  lastname => 'Smith',
  user => 'pickle',
  database => 'fruits',
  password => 'z4KLf3&3z',
  host => '',

Suppose that you are only interested in the hash-keys related to the database stuff. Then you can use the following fancy one-liner:

my ($dbhost, $dbdatabase, $dbuser, $dbpassword) =
  @$config{ qw( host database user password ) };

As the saying goes, there is always more than one way to do it with Perl. Pretty neat stuff, wouldn't you say?

There are very few achievements in life more honorable than having a dog named after you, well kind of that is.

Just the other day, I received an email from someone who had been researching Welsh words and names and came across one of my relevant web pages.

It turns out that this kind person is going to be getting a Welsh Pembroke Corgi puppy, and she has chosen to name it Kyffin.

Thanks alot Cecelia. I feel very honored that you have chosen this name for your puppy, and I feel confident that he will grow up to be a fine pet of whom you can be proud and also with whom you will have much fun.

Named after Kiffin.

Every last Thursday of the month we have our company meeting followed by our evening out to some cafe nearby.

Escaping the stress of work and all those daily never-ending pursuits, this gathering always proves to be a fine opportunity to get to know one's fellow workers as the normal folks they were always meant to be.

When I was a growing boy
Rockin' on my Daddy's knee
Daddy took an old guitar and sang
"Bury me on the lone prairie"

- Far From Home, Neil Young

The more you drink the merrier you get. If you really want to impress your family and friends just keep on drinking and drinking. If you succeed to an excess, you even get to wobble around, dall over and if you are lucky even throw up. Behind a tree, from your weaving bike, or out the car window.

The following day, more than likely late in the morning or into the afternoon, you get out of bed and wonder what the heck made you do that. You feel so lousy that if someone handed you a revolver you would more than likely place it to your forehead and pull the trigger.

After a day or two it's back to the real world.

Now you can call up your friends, invite them over and spend the next two hours repeating over and over again how hilarious it was that you became so unbelievably sick and spilled your vomit all over the place.

Congratulations, you are a true hero in the eyes of all your friends.

They found my wallet and I excitedly went to the central lost and found place in Utrecht to pick it up.

When I finally found the place, walking a couple of kilometers in the rain, I handed her the letter. She disappeared out back for a couple of minutes and reappeared with her poker-face caked with make-up. Try not to look too grumpy now or your face might crack open.

Here you go she said to me and then turned away from me not caring if I was thankful or not.

There it was in my hand again that black wallet looking as intact as the first day I bought it. Fortunately, 'almost' everything was still in there.

Unfortunately, everything 'except' for the sixty-five euros in cash and the hundred-eighty euros worth of train tickets.

So it looks like it was a pick-pocket after all. That jerk.

For the third time now in less than a year, I am rereading that fantastic Perl Template Toolkit book.

Not only is this a great read and each time around I discover new and interesting tidbits I had missed before, the framework allow a robust plugin design allowing one easily to extend the tool in advanced ways.

Here it is in a nutshell

  • Define the framework from the requirements
  • Place the front-end on top of this
  • Implement the processing between elements
  • Define the underlying interface to drive these processes
  • Snap in the various plugins to achieve this
  • Test it all based on the original requirements

For more information about this great tool, you might want to check out the official template toolkit website.

Have fun.

Hey Geo::Coder::US is here, and you can even use the native SOAP extension if you want to be really cool.

Build Your Own Geocoding Solution with Geo::Coder::US.

Has it really been exactly five years ago to the day that my father passed away?

Funny how even after so long you still miss him as much as the day it happened, if not even more.

| 1 Comment

Having spent more than a year and a half struggling on my own as an independant IT-consultant specializing in web analytics (I was reseller for this product), it never ceased to amaze me how poorly the innocent and brainwashed folks understood this wonderful world of measuring things.

So much magical hocus-pocus really. Ironically enough, if only you could truly understand what it all 'really' meant, you would fork in alot more profit than you ever thought was possible.

When the beautiful stallion was first brought out for royal inspection, he bucked wildly and galloped in angry motions, refusing to heed any commands whatsoever.

Indeed it was a nearly hopeless situation, like what happens so often in real life, but even the finest of the soldiers, cavalry and experienced horsemen were unable to appease this wild beast.

The mighty King Philip of Macedonia ordered the horse to be taken away and dealt with properly. Take him away now!

Upon seeing this, the young prince stood up, shouted stop! He had become enthralled by the display of the beast's energy and wildness, seeing what had been broiling inside him all this time. That's when he dashed out towards the fated horse, hands raised before him, promising to master even the impossible.

He noticed that it was merely skittishness caused by seeing one's own shadow in the bright sun, so the boy patted and gently stroked the animal's mane, until the horse was soothed and became still.

The name of the horse was Bucephalas and it was Alexander's for the keeping. He was to be his companion through war and prosperity for the next twenty years of conquest.

Famous worldly conquest, and even more.

No one thinks that it could have been otherwise, and this is the essence that makes history what it is.

To master the impossible is much of what it is all about.

So why the heck would anyone in their right mind want to choose SOAP over XML-RPC?

Well for one thing, SOAP has more capabilities and supports a document model which is less restrictive than the more typical request and response call patterns typical of XML-RPC. For example, there is no easy way in XML-RPC to return error codes of different types.

Also, SOAP conversations can be designed around multiple service nodes, splitting up and divvying out the various message parts to be taken care of by the most relevant server. Later all of the responses are collected and passed back in a unified message response, just like magic.

Finally, messages can define for themselves what encoding they want to use, e.g. the one that they know is the most appropriate for a given conversation.

Yes, but what about all the extra amount of overhead? Isn't there a big performance hit?

Actually, SOAP is nothing more than a thin additional envelope around XML-RPC. What most people do not realize is that XML-RPC is already based to a large degree on the core elements of SOAP architecture.

The truth of the matter is that XML-RPC was split off from the initial design when someone became impatient with the slow progress of moving on with the original SOAP specifications.

For those of you still awake who find this tantalizing stuff, here is another interesting reference.

When I arrived home, that is when I discovered that my wallet had disappeared. Somewhere between getting on the tram in Amsterdam and getting off the train in Gouda, a clever pickpocket had robbed me without me even noticing it.

That evening the news showed scenes of devastation caused by the earthquake in Pakistan, the death toll having reached eighty-thousand.

My dismay is merely a small droplet in the massive ocean of human suffering. So what do I have to complain about?

| 1 Comment

One big advantage of VoIP over traditional telephony is that the call-management functions are decoupled from the voice transmission functions.

This means that when offering new services it is no longer necessary to alter the core network anymore thereby greatly speeding up time-to-market.

One disadvantage however is that some form of quality-of-service must be supported in the protocol in order to make VoIP as reliable as good old telephones are.

The postman came by again and brought me two more books that I ordered some time ago:

  • Perl & XML
  • Programming Web Services with Perl

Thanks alot!

Few people can deny that forty-eight is a nice round number.

Multiply it by two and you get a good approximation of my life expectancy.

Divide it in half and you get the age I truly feel like still.

Natural disasters stike on a regular basis claiming thousands of innocent lives in a blink of the eye.

In the meantime daily life continues, and to think that one complains so much about losing one's keys.

We become what we end up finding, and the complete randomness of this pursuit is much more powerful than we now realize.

In the good old days, this was a relatively simple process which we pretty much had under control.

Now with the advent of Internet this responsibility has been put in the hands of others.

Be careful out there.

Since I am absolutely convinced that Internet Telephony is quickly becoming the name of the game, I have decided to give it a go myself by building my very own ultimate hacker's PBX based on Asterisk.

That's why I was so happy when the doorbell rang and the smiling mailman greeted me with my latest shipment from Amazon which included the book Asterisk: The Future of Telephony.

Here is a a reference guide to all things VOIP in case you are interested.

Wish me luck with this noble pursuit (not that I am busy enough with other stuff).


Is there anyone out there who can tell me what the following piece of code actually does?

@list_out = keys %{ {map {$_=>1} @list_in} };

If so then please leave a comment if you dare. I am willing to bet a good many euros that not a single person out there knows the answer to this abstract perlishness.


So for the last week I kept needling my poor son about the upcoming squash match, asking him over and over again if he was ready to get creamed.

Well this evening the historical match took place.

After a grueling forty-five minutes of sweating and running and jumping all over the place, I have to admit that in the end the better man won of course.

There was this guy a very long time ago who came down the stairs and called my name when he spotted me down there in the distance.

He yelled out 'Hey Gish' in a gruffy and tough guy way.

When I noticed that he held out his hand in welcome, I reacted full of hope by reaching out to give him the well-deserved and friendly handshake.

When my metacarpals began to creak, my tendons were ready to snap and the pain became almost unbearable, that's when I knew for sure that this first meeting would lead to a long-lasting and valuable friendship.

Thanks alot, Baum.

This fine weekend I made a number of very important decisions that will more than likely make my life much less complicated and therefore much more enjoyable, namely the following:

  • Dump that annoying Windows XP completely and replace it with the much more advanced FreeBSD operating system.
  • Forget about XFCE for now and concentrate on adapting to the slightly more fattening Gnome desktop instead.
  • Remove Firefox which is unstable and slow anyway, and just use the default Epiphany web browser which is native to the Gnome desktop.
  • Stay with the standard integrated Evolution mail program rather than the more boring Thunderbird mail client.

My feeling is that while those products like Firefox and Thunderbird started out innocently enough, because of their wonderful success they have just become too bloated and unwieldly for me. Too bad, but see you later.

I prefer speed and simplicity to advanced functionality ninety percent of which I will never ever use anyway.

Random entries

Here are some random entries that you might be interested in:

Recent Comments

  • Long time no see: I remember them, as well. I remember Donald was my ...
    - Charles
  • Bridge to the moon: Yes it was a drawing and my older brother told me ...
    - jpmcfarlane
  • Bridge to the moon: Wow, that's quite a coincidence that we both sent ...
    - Kiffin
  • Bridge to the moon: Hello I was in my teens when Gemini 4 went up that ...
    - jpmcfarlane
  • Back to work: Congratulations Kiffin, I hope it is something you ...
    - KathleenC

Golf Handicap


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 2498 entries and as many as 1877 comments.

Important events

Graduated from Stanford 6-5-1979 ago.

Kiffin Rockwell was shot down and killed 9-23-1916 ago.

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

First met Thea in Balestrand, Norway 6-14-1980 ago.

Began well-balanced and healthy life style 1-8-2013 ago.

My father passed away 10-20-2000 ago.

My mother passed away 3-27-2018 ago.

Started Gishtech 04-25-2016 ago.