Month: January 2014


Technical debt is a very bad thing for software development. As time passes, the more debt you collect and the worse things get. Before you realize it, you have accrued tons of interest. Your whole life starts getting bogged down. You find yourself in an impossible situation, slowly sinking deeper and deeper into the pool of quicksand. Your nose is barely above the surface, and you are taking your last desperate gasps of air. This is often a very cruel disease that sneaks up on you when you least expect it. A good example is trying to maintain legacy code. Or pushing new functionality atop a product that is not yet ripe for change. Focusing too deeply at the details in bug-fixing mode and not spending enough time looking at the whole picture will eventually cause much havoc and suffering.

More often than not, this is caused by doing too much too quickly and having to cut corners in order to achieve impossible deadlines. If you prefer it, you can just keep on sweeping the leftover dirt and dust under the carpet, as if nothing is happening. Sooner or later small bumps will appear and grow larger until they become impossible to hide. You reach a point in time when you cannot keep on ignoring these bumps. Even if everyone else seems to be ignoring them. Human nature blinds us when the so-called more important short-term goals are threatening our comfort zone, and we sacrifice the more important long-term survival for quick satisfaction. Our chances of surviving from one day to the next decrease pretty drastically.

Please, do not cut corners or you will be very sorry in the end. Step back, take a breather and do something before it is too late. Have the courage to speak up and make the world around you aware of it's folly. Unless of course you prefer to sink below the surface of quicksand at an early age, it's up to you really.


My new job is at Zarafa in Delft.

Here is my first release.


This afternoon was my first shank free day on the driving range, hurray and congratulations. Glad to have finally shaken off those obnoxious shanks, that's for sure. Not that it was getting that bad, but every time I went to the driving range to hit my usual three buckets of balls, I managed to shank several shots. My goal then was to have a shank-free practice session for the first time this year. I was down to one to two shanks, and a couple times it even came down to the very last few balls. The previous time things were going exceptionally well, but the unexpected hosel clunker abruptly ruined my day with just a couple of balls to go. This afternoon however it was a different story. I got more and more nervous as I reached the last few balls. To make matters worse, it was very cold outside. Shivering made me that much more instable and inaccurate, on the verge of shanking at any second. But one for one I swung that mighty swing and completed a shankless afternoon.


We are now all one happy family again. Due most porbably to very intensive usage by all members of our family over a period of two plus years, our previous coffee machine (Gaggia Titanium) kept breaking down. We sent it in several times to get repaired, and finally on the fourth return followed by gentle complaining on our side, they were nice enough give in to our urgings and replace it with a brand-new nicer version (Gaggia Accademia).

Gaggia Accademia


In my childhood days, my father would often bring me out to the golf course to play a father and son round of golf. In particular, I remember quite well the Salinas Golf and Country Club. We were members there and my father kept his own fancy electric golf cart in a large shed out back.

The 5th hole was a long 175 yard par three with a steep downhill drop of around 75 feet, an out-of-bounds fence on the left past which a bunch of straggling cows meandered around in an arid meadow. In front of the tee box, there were a bunch of trees in the way, so you had to launch the ball high enough in order to clear the tree tops. In those days I was a big slicer and hit the ball low, so this hole was especially challenging for me. Most of the time I'd hit my ball right into a tree or just graze the top and have the ball swatted down to the ground with a thud. I had never hit that green in regulation with my father, and standing on the tee box I was especially nervous.

I dearly wanted to prove my worthiness, that indeed I had become a true golfer, in my father's eyes a hero of exceptional qualities. To make matters worse, my father occasinally prodded me on with a challenge. He said that if I hit the green he would give me five dollars. Wow, five dollars! Back in those days you could buy a popsicle for a dime (ten cents) and a can of Coke for a quarter (twenty-five cents), so five whole dollars seemed like an amazing amount of money to me, true riches beyond imagination.

This challenge where winning money was the name of the game made me extra nervous, drastically decreasing the chances of me hitting the ball very well at all.

My arms and legs felt rubbery and my swing became weak and sluggish due to the extra pressure. However, this process proved to be an excellent proving ground for me, honing my skills of concentration under pressure. Then one day it happened. I teed my ball up extra high, aimed to the left of the hole right along the out-of-bounds fence, and managed to make a mighty swing.


The little white ball flew high and disappeared into the sky. Way over the trees. Instead of slicing like it always did, the ball had the sweetest little fade you could imagine. Once launched into the celestial realm, it was now in God's hands.

The trajectory was mathematical in form, that natural parabola to which the laws of nature and physics constrain ball flight. Things looked very promising. Bounce, bounce and bounce, and the ball rolled right up onto the front of the green. I did it! From that day on, my father called me the "Sweet Swatter" a title which I carried proudly and with honor.

Even to this day when I have an especially tricky shot under pressure and need to concentrate, I remember the good old "Sweet Swatter" days which (more often than not) helps me play much better.



Here's proof that I got Ubuntu 13.10 installed and running on my new Thinkpad T431s.


I decided to give the Computer Networks | Coursera online course another go. This is an excellent course anyone can take for free. Last year I tried and made it through about half way, but due to time constraints was unable to complete it. I already know a lot about network technology and the Internet, but a refresher course like this will give me a broader overview and provide insights to the latest changes.



Old man lying
by the side of the road
With the lorries rolling by,
Blue moon sinking
from the weight of the load
And the buildings scrape the sky,
Cold wind ripping
down the alley at dawn
And the morning paper flies,
Dead man lying
by the side of the road
With the daylight in his eyes.

Don't let it bring you down
It's only castles burning,
Find someone who's turning
And you will come around.

Blind man running
through the light
of the night
With an answer in his hand,
Come on down
to the river of sight
And you can really understand,
Red lights flashing
through the window
in the rain,
Can you hear the sirens moan?
White cane lying
in a gutter in the lane,
If you're walking home alone.

Don't let it bring you down
It's only castles burning,
Just find someone who's turning
And you will come around.

Don't let it bring you down
It's only castles burning,
Just find someone who's turning
And you will come around.

-- Neil Young (video)


Completed and solved my first problem of the year. I know that today is only the first day of the year, but why wait when there are so many interesting challenges to pursue in life? Here is what I encountered on the RubyMonk website.

Problem Statement:
Given a 3 or 4 digit number with distinct digits, return a sorted array of all the unique numbers than can be formed with those digits.

Given: 123
Return: [123, 132, 213, 231, 312, 321]

My solution:

def number_shuffle(number)
  number.to_s.split(//) {|a| a.join.to_i }

Tutorial solution:

def number_shuffle(number)
  no_of_combinations = number.to_s.size == 3 ? 6 : 24
  digits = number.to_s.split(//)
  combinations = []
  combinations << digits.shuffle.join.to_i while combinations.uniq.size!=no_of_combinations

My solution is not only conciser but in my opinion more elegant as well. Applying Occam's razor principle here, I'll let you decide for yourself

Random entries

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

Recent Assets

  • Zarafa.png
  • Gaggia-coffee-machine.png
  • ubuntu-on-thinkpad-t431s.png
  • computer-networks.png
  • positive-thinking.png
  • where_my_father_is_buried.png

Recent Comments

  • Human highway: I was reading your article and wondered if you had ...
    - DanielHeller
  • 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

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 2316 entries and as many as 1878 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.

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

My father passed away 10-20-2000 ago.

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