| Golf | 0 Comments

Last week Friday afternoon it was an honor and a pleasure being able to play on De Pan which is one of the most prestigious golf courses in Holland.

Since I will be playing next week in the International Dutch Senior Open, I qualify for one free practice round. Normally the green fee is one hundred euros and you can only play if you are invited by one of the members.

Thirteenth hole par four at De Pan.

Hopefully next week I will play better than I have recently (pull my iron shots badly to the left or drive duck hooks off of the tee), but most importantly I will take the next few days to relax and prepare myself mentally.

| Golf | 0 Comments

This is how it all started, little did I realize the consequences of my carelessness.

Last week Thursday, I was late for the train home and ran as quickly as I could to try and catch it. Normally a brisk fifteen minute walk, I dashed at full speed and covered the same distance in half that time. This turned out not to be a very great idea. Carrying my heavy leather bag dangling from the right shoulder didn't help things out either. At the last possible moment when the train doors started to slide shut I hurled myself through the opening. My back was jerked out of place in a split-second forceful thud of gravity as my left foot landed inside. Oops and ouch.

Not being able to get out of bed is a bizarre and slightly frightful experience. Fortunately, I have a fantastic nurse for a wife who knows all the ins and outs of patient care, including the helping hands pulling me out of bed as well as the administration of the proper types and doses of pain killers.

Of course I was in complete denial. I'm alright just a little stiff is all. You see, all year long I had been looking forward so much to playing in this famous Rotterdam Open Golf Tournament. I was even entertaining exotic fantasies that I could very well win this thing, and was not about to let some stupid back problem get in my way.

Little did I know then that I'd never finish because of stupid back problems.

Didn't play that great, but considering the situation (could only swing with my arms with severely limited back rotation) I managed to make the cut by shooting a conservative 39+37=76 (one double bogie but no birdies).

That evening proved to be fairly unbearable, and even my macho brain had to give in to the pain. After all, you need to listen to your body's warning system and accept things once in awhile. Or not?

In the end, it was very hard for me to give in but I was forced to cancel the round with tears in my eyes. Let another happy and healthier soul from the reserve list take my place and appreciate it.

Next weekend is the second most important golf tournament of my golf club, and I do not want to risk missing that because of my being too hard-headed and stubborn.

Hopefully I can get out of bed tomorrow morning and make it to work.

| Golf | 0 Comments

Looks like I've qualified to be able to play in the International Dutch Senior Open this year.

The tournament will take place July 9 - 11 at the prestigious De Pan golfclub, one of the nicest golf courses in The Netherlands.

Here's the email invitation I received today:

Dear players,

Hereby you receive the participation list for the International Dutch Senior Open 2015 at Utrechtse Golfclub de Pan.


We are looking forward to a great tournament!
Met vriendelijke groeten,

Can't wait to play.

| Family and friends | 0 Comments

Welcome to the real world, Liam!

At exactly 7:06 this morning, I became an official grandpa for the first time. The new baby boy weighed in at a healthy 3638 grams (8 pounds), and his name is Liam Lennart.

liam-and-kiffin-1.png liam-and-kiffin-2.png liam-and-kiffin-3.png

| Vacation | 0 Comments

We had a fantastic trip to Andalusia, Spain. We stayed in fancy hotels and traveled by car to the following places: Granada, Cordoba, Jerez, Seville, Ronda, Mijas and Malaga.

Check out the photo album

| Vacation | 0 Comments

This is where we are spending our thirtieth wedding anniversary together. Actually, today also marks thirty-five years when we first met which is also a life changing moment for both of us. We couldn't have chosen a better spot to celebrate. This is where we first met.

| Golf | 0 Comments


I managed to defend my title and I am very happy to have won it again two years in a row with a fantastic first round (after which my handicap dipped to an all time low of 4.2 but only for a day) followed by two so-so rounds: 74+83+83=240.

| Internet | 0 Comments

Yesterday I was lucky and by chance happened to discover that the domain name kiffin.nl was available. So without blinking an eye I claimed it immediately.

For the time being until I figure out a better way to use it, this future famous website can now be reached using that domain name as well.

I've been waiting a long time now for the kiffin.com domain name to become free. Currently it points to an ugly and boring website which hasn't changed in ten years and doesn't do justice to my honorable name.

I have to wait patiently and hope that I can claim it in the not so distant future.

| Music | 0 Comments

Planet Claire has pink air
All the trees are red
No one ever dies there
No one has a head

– The B-52's

| Golf | 0 Comments

For some unknown and crazy reason, I have been unable to putt anymore. This has lasted a few months now, and no matter what I try I cannot shake it off. On average I miss two to four putts per round within just a couple feet. This is driving me crazy and I am desperate to discover what the root cause is. Yes I've got the putting yips and would give anything to find the cure. More than likely there is something loose in my head, some kind of mental block and nothing more. No matter how many extra hours I train on the practice green, it doesn't help at all. C'mon, just loosen up and relax. Stroke the ball confidently straight into the hole in one smooth pendulum-like motion. Do not doubt, just do stand up and address the ball like a man and do it. Time to fill my mind not with what I do not want the ball to do but what I want the ball to do.

Mantra: straight back, straight through and roll it into the middle of the hole.

| Music | 0 Comments


Remember this album? I must have listened to it at least a million times as a freshman. Love it still.

Now it's a long dark road. Yes, a long dark road. And you know I loved you. Yes, you know I loved you ...

| Agile and scrum | 0 Comments

In his book Kanban: Successful Evolutionary Change For Your Technology Business, David Anderson comes up with a a so-called recipe for success.

Basically, it is an ordered list of key steps for the starting technical function manager to follow in order to create positive change and make progress quickly in a volatile and chaotic environment.

The recipe for success looks like this:

  • Focus on quality
  • Reduce work-in-progress
  • Deliver often
  • Balance demand against throughput
  • Prioritize
  • Attack sources of variability to improve predictability
| Golf | 0 Comments

behind-a-tree.png I had a pretty good drive but it was a little bit too far and ended up right behind a tree. The ball was leaning right against the trunk and to make my shot even more impossible the ball had settled right between two roots which radiated out from the trunk like two thick octopus legs. I felt pretty frustrated but upon closer look I noticed something very special. Despite my actions and random thoughts about what club to use, the tree was there in total acceptance in all its natural glory. The bark consisted of curls and other intricate patterns, and other pieces of life like purple and green moss, hundreds of little insects and other beings running around in the minuscule universe. Managed to chip safely into the fairway and par the hole. Have a closer look yourself by clicking on the image at the left.

| Work and play | 0 Comments

Looks like it's back to getting up early again, well actually not that early. It's a great feeling having work and a new purpose in life. Much better than sleeping late and having nothing to do all day but golfing and hanging around the house. Tons of new stuff to learn, but like I always say proudly: I am never too old to learn new stuff.

Waiting for the train.

The total travel time is: 10 minutes by bike, 5 minutes wait for train, 40 minutes in the train plus 15 minute walk to the office equals 70 minutes, 40 minutes of which I can relax and read a book in the train, so not that bad I guess.

Walking from the train station to work.

Being so busy the whole day takes some getting used to, but I can really appreciate my free time now like enjoying the evenings and playing golf in the weekend. My golf game is suffering but let's stop taking this sport so seriously and enjoy it as an extra form of entertainment.

This is the building where I work.

| Spiritual | 1 Comment

Never underestimate the powers of your Buddha shrine. Every time I pass this treasured spot in my house, I let my body and mind absorb its spiritual and healing force. Just a slight glance is sufficient, a moment in time, a sliver of thought.


| Work and play | 1 Comment

Looks like it's back to work for me. After a short period on the dole, I've managed to get myself hired as a release manager at Blokker Holding in Amsterdam. They've launched a new state-of-the-art ecommerce platform called Nextail and I will be responsible for the software releases. As I always say, you're never too old to learn new stuff.

| Philosophy and poetry | 0 Comments

Welcome to our Introduction to Mathematical Philosophy. The goal of our course is to demonstrate that mathematical methods can be as useful in philosophy as they are in the sciences.

Sounds pretty interesting, so I'll try it out and see how far I get. Hopefully by the end of the course I too will be able to use such mathematical methods in order to acquire more philosophical insight.

Here's a useful reference to keep me going: Stanford Encyclopedia of Philosophy.

| Golf | 3 Comments

Thijs, Maurits, Jeroen, Danny, Erik and Kiffin.

| Golf | 0 Comments

Jordon Spieth, Masters 2015 winner (only 21 yrs. old).

Good going Jordan, a truly amazing feat at such a young age. We're all very proud of you!

| Golf | 0 Comments

Lately I am trying really hard to resist becoming too negative about my bad golfing days which is not always that easy.

Nowadays when someone asks me how it went, I answer politely that it went "een beetje moeizaam" rather than complaining that I played really lousy.

In the wonderful world of golf, it is important to keep your cool and not to let a bad day on the links get you down.

The trick is to remain as positive as possible, just like it is in real life. Try it and it will make you feel better.

| Nature and universe | 0 Comments


This is what I saw through the windshield when I got into my car to head off to an early morning round of golf.

I was so struck by the beauty of the colors and the way the sunshine danced across the thin layer of ice that I had to take a picture of it.

One could almost say that it's a true masterpiece of art and sell the painting for millions of dollars.

However, we all know that the beauty of nature is priceless and no amount of money can ever do it justice. Just appreciate the fleeting moment while we can.

| Golf | 2 Comments

This weekend while rummaging through my old stuff which I saved all these years, I happened to come across a yellowing vanilla envelope in which I found this picture from the distant past. See if you recognize anyone in it.

Salinas High Golf Team 1974.

Those were the days my friend, and back then I had a blast playing the wonderful sport of golf with my friends. We were a pretty strong team and played well against the other posh high schools who thought they were so great.

| Programming | 0 Comments

In Elixir, the pipe operator '|>' takes the output of the expression on the left of it, and feeds it in as the first argument to the function on the right of it.

You can even tag on additional functions together in an endless chain to form a pipeline of functions to be called, very similar to the Unix method of piping command utilities together, e.g. 'ps ax|grep vim|awk '{ print $1 }'.

In other words, the following statement using the pipe operator |> :

f( a ) |> g( b ) |> h( c )

is equivalent to:

h( g( f( a ), b ), c )

This can be extended to include functions with multiple parameters like this:

f( a, b ) |> g( c, d )

being equivalent to:

g( f( a, b ), c, d )

See if you can figure out what the following does:

-5 |> abs |> Integer.to_string |> IO.puts

Here's a small hint to help you along:


Here are some references in which you might be interested:

No I didn't forget. The answer is 5 of course.

| History | 4 Comments


Wow, has it already been fifty years ago since the launch of Gemini III? Those were the very first steps on our way to landing on the moon. For me it seems like it was just yesterday.

Poor Gus Grissom died later in the awful Apollo fire (God bless his soul), but John Young ended up living a very successful life as an astronaut undertaking many more missions (he's now 84 believe or not).

Gemini IV impressed me so much that I drew a picture of the Gemini capsule floating in space above the Earth and sent it to astronauts Ed White and Jim McDivitt. Below the letter they sent back to me:


Some interesting links:

| Javascript | 0 Comments

One should not take the precise definition of 'undefined' too non-nonchalantly as it forms an important basis for understanding the JavaScript fundamentals. I'd be curious to know how many so-called expert JavaScript developers really understand what it is. In my many years of learning the ins and outs of the JavaScript programming language, this is perhaps the best explanation of 'undefined' that I've ever heard.

"When I declare 'var a', 'a' is placed into memory during the creation phase. So the execution context saw 'var a' and setup 'a' in memory. And so even though I haven't set it to a value, the JavaScript engine, which is doing more than what I'm just writing in my code, already set it to the special value called 'undefined'. So 'undefined' is not like empty, or doesn't exist, it doesn't literally not exist. It's actually a value, it's actually taking up memory space. It's a special keyword, a special value that means this is the value that was initially set by JavaScript. And that leads to a little bit of a warning... Never set yourself a variable equal to 'undefined'. Because actually you can... That's perfectly valid JavaScript, but it's a little dangerous. It's better to let 'undefined', that special keyword, mean I, the programmer, never set the value..."


"... That will really help you when debugging code. If you make a habit of setting values equal to 'undefined', then it's really hard to tell if something is 'undefined' because you set it or because the JavaScript engine set it and you never set it to anything else. It's always better to let 'undefined' mean I never set this value. That's really useful, and it will help you in your debugging. So 'undefined', this is a special value, that is also a special keyword in JavaScript, and it's the value that variables receive during the creation phase, the first phase of creating an execution context, sets up the memory of the variable, and in that memory space puts the value called 'undefined'. I would have called it something else personally like 'not set' but that's what JavaScript calls it, 'undefined'. And if you don't in your code set it to anything else, that is what it will be. Or if you set it to something else later, and use it beforehand that is what it will be. Alright, so that's JavaScript and 'undefined'."

JavaScript: Understanding the Weird Parts, Lecture 11: Conceptual Aside: JavaScript and 'undefined'

| Life in Holland | 0 Comments

Dit heb ik gekocht bij http://bol.com : Uni Inbouw Stopcontact - 3-voudig - Rond - Crème - http://go.bol.com/tb/9200000010588167 ...


Life is full of fun and interesting surprises which make it all worthwhile.

| Golf | 2 Comments


I cherish these golden tees and save them for very special moments. For example, an important golf tournament or a difficult and important tee shot on a par three.

| Programming | 0 Comments

When working with ember-cli and things seem to get messed up and you cannot figure out for the life of you what's wrong you can always resort to nuking it all and refreshing the environment.

This often helps me alot, and although I do not know for sure the exact details behind the reason it fixes things, I don't care as long as it works.

In my ~/.bash_aliases I've added the following aliases, a "regular" fix nom and a "nuke-it-all-and start-over-again" fix nomallas follows:

alias nom='rm -rf node_modules && npm cache clear && npm install'
alias nomall='rm -rf node_modules && npm cache clear && npm install && rm -rf bower_modules && bower cache clean && bower install'
alias realias='$EDITOR ~/.bash_aliases; source ~/.bash_aliases'

Just run realias to make the required changes and you're all set.

| Programming | 0 Comments

The Erlang notation [ F(X) || X <- L] means "the list of F(X) where X is taken from the list L."

1> L = [1,2,3,4,5].
2> [2*X || X <- L ].

Thus, [2*X || X <- L ] means "the list of 2*X where X is taken from the list L."

There's tons of other really really cool stuff you can do. Like qsort(L) for quick sorting lists:

qsort([]) -> [];
qsort([Pivot|T]) ->
	qsort([X || X <- T, X < Pivot])
	++ [Pivot] ++
	qsort([X || X <- T, X >= Pivot]).

Or perms(S) for generating all possible permutations of a string:

perms([]) -> [[]];
perms(L)  -> [[H|T] || H <- L, T <- perms(L--[H])].

Or pythag(N) for generating all Pythagorean triplets (sets of integers {A,B,C} where A2 + B2 = C2):

pythag(N) ->
    [ {A,B,C} ||
        A <- lists:seq(1,N),
        B <- lists:seq(1,N),
        C <- lists:seq(1,N),
        A+B+C =< N,
        A*A+B*B =:= C*C 

Ad infinitum into the wee hours of the morning...

| Programming | 0 Comments

The absence of side effects means that we can parallelize our software programs.

The technical term for memory areas that can be modified is mutable state. Erlang is a functional programming language and has immutable state.

If you use a conventional programming language such as C or Java to program a multicore CPU, then you will have to contend with the problem of shared memory.

In order not to corrupt shared memory, the memory has to be locked while it is accessed. Programs that access shared memory must not crash while they are manipulating the shared memory.

In Erlang, there is no mutable state, there is no shared memory, and there are no locks. This makes it easy to parallelize our programs.

Programming Erlang (2nd edition)
by Joe Armstrong

Random entries

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

Recent Assets

  • ugc_de_pan_hole_13.png
  • rotterdam-golf-open-2015.jpg
  • dutch-senior-open-2015.png
  • liam-and-kiffin-3.png
  • liam-and-kiffin-2.png
  • liam-and-kiffin-1.png
  • Liam-Lennart-Gish.png
  • andalusia_spain.png
  • Clubkampioenschappen-Strokeplay-2015.png
  • 5-22650-Gallant-Fox-Rd-Monterey-CA.png
  • 4-35-La-Mirada-Ct-Salinas-CA.png
  • 3-700-Camellia-St-Turlock-CA.png

Recent Comments

  • 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
  • Buddha shrine: I keep Buddhas in my plants outside on the deck du ...
    - 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 2181 entries and as many as 1876 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.