Month: October 2009

Too many so-called affirmations are overly positive and unrealistic, making them trite and meaningless. Have a random look on the Internet and you'll see what I mean. They are becoming such a hype that what was once a fairly good concept has turned into one big laughing contest.

So here's one I happened to think up while jogging in the dark late this afternoon. I found it an interesting play on words considering what I wrote above, kind of an unusual mix of the seemingly positive versus the more realistic (yet not too obvious).

Affirmation #86

Laughing can be good for the soul because it makes you feel good, but too much laughing at inappropriate times can give you a painful side-ache.

The Dutch government has decided to call it normal time instead of winter time. The clocks have been turned back an hour and we have "returned" to so-called normalcy. I guess that sounds alot less depressing. Leaving the wonderful, sunny climate comforts of summer time only to be blanketed in the darkness of winter time is not easy, so why not just pretend that everything is returning to normal mode?

Here is the dilemma. Outside it is drizzling down rain pretty hard, and the ground is soaked and muddy. I could go out and play golf. However, grovelling all afternoon in the blubbery rough looking for my balls and never finding them would make be regret my decision. This inner feeling is growing and becoming an impassioned urge, a very familiar intoxication. I've got to play golf today or else.

So how does one deal with such urgent situations? My gut-feeling says yes who cares and the common sense of nature says no you better not. How does one day make a tiny difference anyway?

Tomorrow they predict better weather, so we can wait. (Since when have they ever been able to predict the weather accurately here?) At the same time, it is slowly and surely becoming cooler as winter approaches, soon it will be bitter cold. During those winter months, I will not be able to play at all, or be forced to play the shortened holes with their roundish winter greens with my thick gloves on.

Get out there and make a difference. Hey, I need to make the best of it while I can.

As a not unrealistic compromise I'll stay home today, do my mental golfing meditations (improving my swing at a higher plain of consciousness). I can pick up one of my books about golfing, I've purchased a pile of maybe fifteen books that I still haven't touched.

I've finally made my mind, just stay home for the day, a difficult decision to say the least. I feel much better now. But looking out the window, I see that the sun is slowly appearing from behind the darkish clouds, and that drizzle has become very slight indeed.

Too late, I've already promised to lend my car to my son and daughter. That way they won't have to bicycle to work in the pouring down rain. Such a nice sacrifice on my part: golf versus family, and family wins.

Every time I hear this number and no matter how often it gets better and better. That guitar playing is nothing less than a miracle as the solo parts vibrate through my bones and inner soul. I have to crank it up and risk blowing out my eardrums, but the risk is worth it.

| 2 Comments

Freshman-Year-Donner.jpg
So who was I trying to kid back then?

Why would any system administrator worth his/her weight in salt prefer to use something like this:

if [ "$X" -eq "$Y" ]; then echo 'X equals Y'; fi

when you could just as easily use the following simpler and more logical form?

if ((X==Y)); then echo 'X equals Y'; fi

Forget about always using those quotes, drop the dollar signs, and stop making sure that there is white space between the right and left brackets. Even better would be:

((X==Y)) && echo 'X equals Y'

For those lazy typists among us (like me) who like to impress others, and disdain the risks of confusing the bash newbies with a slightly more cryptic yet elegant style.

So why retain the single quotes in the last statement, you may ask? Well, I've learned that by making it a habit always to enclose echo stuff between single or double quotes will save you lots of headaches due to trouble-shooting the obvious.

By the way, the difference between "double" and 'single' quotes is that variables between double quotes will be expanded while those between single quotes will not.

$ X=10
$ echo '$X equals 10'
$X equals 10
$ echo "$X equals 10"
10 equals 10

((So be "very very" careful, and 'do things' right))

I'm watching this older man negotiating his way up the stairs, pausing every few steps to catch his breath. He's almost reached the top where a new challenge awaits him.

At the bottom of the stairs the woman who could be his wife is looking at this old man's back while she chews on a large sandwich with tomatoes falling out.

Suddenly feeling like I too am being watched from somewhere near, I turn my head to see a young stylish woman glancing at me just before she embarrassingly looks down at the ground.

Just beyond her I see some unshaven teenager with a slight belly carrying a guitar case staring at the young woman who was looking at me.

At any moment in time there is a web of visual interactions criss-crossing the platform as the crowd collects and then disperses again.

How far back or how far forward this unpredictable broken path of connected people watching other people extends is impossible to measure and not easily imagined.

There might be ten people connected this way, and then none, and then more than fifty, and then just a few again.

The more crowded it is the more connections there are, increasing and decreasing as the evening progresses, oscillating more and less, damping out until there is not a single soul left in the world.

What normally is a one-hour commute from Amsterdam to Gouda turned out to be nearly two and a half hours of waiting, standing compressed in crowded aisles, and taking three different trains. All because some stupid bovenleiding was stuk,.

The nice, invisible lady with the soft voice announced every five minutes that there would be a delay "door een defecte bovenleiding tussen Woerden en Gouda".

From Amsterdam I took a different train to Utrecht, from there all the way back west to Alphen a/d Rijn, and finally from there back to Gouda. Zigging and zagging all over the Dutch countryside. I finished four chapters of my new book, so it could have been worse.

I was feeling the can of coke in my bladder and was glad to get home to familiar territory at last, what a relief.

A bovenleiding is that length of parallel thick wires held tightly above the train providing it with energy in the form of high voltage electricity, and causing sparks to fly in the air once in awhile. Defect or stuk or kapot, in case you haven't figured it out, meaning broken.

I hope it's fixed by tomorrow morning.

After struggling for quite some months with my back problems, I finally decided to become a wimp and stop carrying my golf bag around the course. So for my birthday I received a fancy Bag-Boy push cart and a big black-and-red Cobra golf bag. This was my wife's idea not mine, so don't accuse me of being greedy.

I've always prided myself with being able to lug a full bag of clubs around for eighteen holes, unlike all of the other losers who used push/pull carts. The extra exercise also gave me a kick, climbing up and down the hill toning my sexy leg muscles. I had a good sweat and a nice workout at the same time.

That is until two problems popped up, each related to the other. First my back, which after a round of golf would ache badly for the following day or two. Second, my golf game was notorious for always failing me badly on the final few holes, as if my energy reserves were suddenly depleted and I could not strike the ball worth beans.

So here I am with a nice fancy bag and push cart. This will certainly take some getting used to. At first I felt kind of embarrassed, worried about all kinds of snide comments from my fellow golfers, but not a single smirk or joke from anyone. I stood there right next to the eighteenth hole talking to a couple of late afternoon finishers, and no one even noticed!

One big improvement asides from the lessened weight on wheels is the extra pocket space. There's so much space in there I don't know how to fill it. I can even put twenty golf balls in the front pocket and it's not even half full.

Next week Wednesday morning at 8:52 I will finally be able to officially put my fancy new golfing attributes to the test. Let's see if my game is affected or not.

During the long one hour commutes by train, there are basically a limited number of activities I care to do before arriving at work. In order of preference:

  • Read a book.
  • Stare out the window.
  • Do things on my netbook.
  • Listen to music.
  • Talk to the person next to me.

Just killing time is not the correct term for this, but in a way it does seem like that sometimes. Retaining a sense of usefulness and/or oneness with nature is a worthy pursuit.

What an exciting afternoon it was. I was six under par for the round with not a single three putt. Pretty amazing.

Well, at least that was on the practice putting green, but it is still a pretty good accomplishment which took me an hour and a half to achieve.

During golf practice I try to be creative and make up challenges in order to improve my game. One such challenge takes place on the putting green and goes like this:

  • Start somewhere random on the putting green with your three luckiest golf balls.
  • Choose one practise hole, either in the clockwise or the counter-clockwise direction, and putt the three balls in the hole.
  • This is your starting and finishing hole. You will be playing all the holes keeping along the perimeter of the green as much as possible.
  • The goal is to make it once around the perimeter, playing each hole in order until the finishing hole.
  • You must putt every single ball no matter how close it is to the hole, no gimmies.
  • If you three putt then you have to start all over again.
  • If the ball goes off of the green, e.g. onto the fringe or further, you also have to start all over again.
  • When starting over, if you are more than two holes away, you may optionally putt back to the starting hole. Sink this long putt, and you do not have to start over. Simply continue playing where you left off (after you gleefully walk to the hole, grab the ball out, and return). However, if you three putt any of the balls (making it two three putts in a row), you cannot begin until you have putted back and forth between the same two holes without a single three putt.
  • The rules above are repeated until one circuit around the perimeter of the green is completed, of course trying to get the lowest score possible.
  • An ace is counted as one under (a birdie) and a two is considered a par. A three putt, just as in real life, is a big bad no-no for which you are severely punished.

So far my record is six under which I tied today. This I was able to achieve despite the fact that it was raining down pretty hard, rain drops falling from the visor of my cap and all of those grass blades clogging up my putter.

Strange how human nature causes us all to attach symbolic meaning to round numbers of the largish kind.

Take for instance the number thousand and consider it's significance in history, as explained in detail in the current book I'm reading: "Millennium" by Tom Holland.

In the Bible it is written that the millennium will bring about much war and destruction to the planet earth. Many poor souls during the Middle Ages were pretty pre-occupied with the coming of the millennium, and much history of that period was greatly influenced by such predictions.

The amazing thing is that even to this day people remain gullible about the number thousand, thinking that the end of the world will still come when it hasn't. I bet that it will never come.

Wasn't the failure of the first millennium proof enough not to believe in such a ridiculous prediction?

First it's pouring down rain. Then it stops for awhile.

After about thirty minutes it starts raining again. This time much harder. Then after ten minutes it clears up again.

Right when I grab my clubs and open the garage door, it starts pouring down rain again.

No golf for me today. Mother nature is playing around with my mind.

I'll just have to figure out something else to do.

How can I remember what I was doing ten years ago when all of the atoms in my brain are being replaced every couple of weeks?

All of these atoms inside of my head are vibrating and colliding with each other. Their movement allows the intricate web of electrical impulses scatter and come together in new designs never thought of before.

These are some more thoughts that have been inspired by Richard P. Feynman in his essay The Value of Science which like most of the other stuff he wrote I enjoyed immensely.

"So what is this mind of ours: what are these atoms with consciousness? Last week's potatoes! ... To note that the thing I call my individuality is only a pattern or dance ... the atoms come into my brain, dance a dance, and then go out."

So this evening I happened to find out about autodie, thanks to the latest entry in the Modern Perl Books blog by chromatic. Cool stuff.

So I had to run home right away and try it myself, and it works! The following simple snippet:

#!/usr/bin/perl

use strict;
use warnings;

use autodie;
open (my $fh, "<", 'this-file-does-not-exist');
...

generates the following error message:

Can't open 'this-code-does-not-exist' for reading: 'No such file or directory' at x.pl line 8.

No need to waste all that time trying to remember where to stick all those die() statements all over the place (do I use || or do I use or?). So from now on I'll be using autodie just for fun and for work and for play.

Check out Modern::Perl for yourself.

A Buddhist monk once told the famous physicist Richard P. Feynman the following proverb of the religion:

"To every man is given the key to the gates of heaven; the same key opens the gates of hell."

Taken from his book What Do You Care What Other People Think? which I just finished reading and thought was great.

| 1 Comment

All those weird Dutch characters were messing me up, and my Perl code was generating all kinds of cryptic errors, like: Malformed UTF-8 character, Wide character in print, etc.

You see, buried deep in the Perl innards somewhere, something was choking bad with such double dotted characters like ë, ö, etc.

I struggled with a number of my own home-grown solutions, but they didn't work well with all possible situations.

Finally in desperation, while perusing through one of my favorite recluses for inspiration, the good old CPAN, I happened to spy the Encode module.

A little bell rang in my head, and I knew I was in the right place. Getting warm, getting warmer, warmer, boiling, boiling hot ... bingo.

$text = Encode::decode('iso-8859-1', $text);

That's the simple and basic little statement that saved me and made my day. What could possibly be easier than that, and why was it so hard for me to find?

Maybe in the future I should visit CPAN more often and earlier, and not think so much of myself. As if I can always solve these grueling problems on my own.

I'm a pretty smart guy, but a little assistance from my Perl friends is always a welcome helping hand.

| 3 Comments

Being the hard-core developer type person that I am, every couple of years or so I like to take up a new programming language. This activity provides me with new insights into the wonderful world of programming, seeing how other people tackle interesting problems in different ways.

So last month I picked up a copy of Programming in Lua, and boy has it been a fascinating read. I can definitely recommend purchasing a copy of this book to add to your arsenal of programming literature.

Since my favorite programming language is Perl, each new book I study makes me rethink and compare things about other programming language with Perl (and its potential limitations). This is what I have been doing with Lua.

Two interesting features of Lua which would be great if Perl could do something similar are: "tail-call elimination" and "coroutines".

Tail-call elimination

Basically a tail-call is a goto in disguise. Place as the last statement in a function a return g(x) and you've got a tail-call:

function f(x) return g(x) end

Since the function f(x) has nothing else to do, it doesn't make sense having it wait around until the tail-call returns, using up unused resources like the stack. Might as well avoid using the extra stack space, making it possible to call an unlimited number of nested calls without worrying about the stack overflowing. The following example function can be called forever and the stack will never run out.

function foo(n)
    if n > 0 then return foo(n -1) end
end

A useful example application mentioned in the book, would be traversing a maze with the tail call providing a simple state machine describing going from one cell to the other. Each step goes north, south, east or west into the adjacent room, the exit being the tail-call which transports you from one room to the next.

Coroutines

A coroutine is another wonderful Lua concept. Very similar to threads, it provides a single line of execution within its own context. Several coroutines can work hand in hand, for example in a producer-consumer relationship. You can create, yield and resume coroutines.

Take the example of a producer coroutine reading lines from a file, passing the text to the consumer coroutine. The consumer coroutine receives from the producer.

function consumer (prod)
    while true do
        local x = receive(prod)
        io.write(x, "\n")
    end
end

The send and receive functions provide the gates on each side of the read-write pipe.

function receive (prod)
    local status, value = coroutine.resume(prod)
    return value
end

function send (x)
    coroutine.yield(x)
end

Finally, the producer-coroutine looks like this:

function producer ()
    return coroutine.create(function ()
        while true do
            local x = io.read()
            send(x)
        end
    end)
end

Coroutines can be used for many other things, like iterators or non-preemptive multi-threading applications.

What about Perl?

An interesting challenge could be to see how Perl might be used to implement similar functionalities like those that Lua does natively. As Perl advances and becomes more powerful, it makes sense to see how other programming languages work, and whether or not Perl could be extended to include more advanced concepts.

You'll also want to check out meta-tables and meta-methods, which I believe could be made part of Perl in the not-so distant future.

Official Website

If this all sound confusing, get the book where it's explained clearer and in more detail.

Be sure to check out The Official Lua Website where you will find alot of documentation and tons of examples to whet your curiosity.

I felt a little nervous standing so close to that guy on the tram. He had greasy hair, these large tattoos on his arms, and when he saw me looking at him, he stared back hard as if he was considering stabbing me.

He looked like a hooligan and kept staring in my direction. The tram was too crowded and it was impossible to move. So I patiently stood there hoping that we'd reach the train station quicker than usual.

At the next stop, another mob of people pushed itself into the tram. Everyone was getting squeezed more and more together. There was this old guy who was obviously having problems standing on his wobbly legs in such an uncomfortable situation.

Much to my surprise, the hooligan guy stood up, gave the old man a friendly grin and offered him his seat. The old guy thanked him sincerely and plopped down hard on the seat.

I'm always on the guard not to be prejudiced, and I often pride myself that I do not make quick judgments about people, especially those that I may not know well.

This was therefore a good reality check for me to start being more that way again.

Leaves-on-the-green.jpg
Lots of leaves keep getting in the way.

So how am I going to manage this interesting putt? Not only is it way uphill, but I've also got to putt the ball through all of these leaves. I have a good look above the hole, walk down to the ball, and then I kneel down to get a better angle from behind the ball.

I could spend time sweeping away all of the leaves in my path, but that has turned out to be an impossible task. You see, the wind is blowing strongly enough.

Each time I brush my path clean, the wind kicks up and brings more leaves to replace those I've removed. In fact, just my simple act of trying to clean my path of leaves makes nature mock me in the face. She's challenging me purposely by filling it up with more and more leaves.

Alright. I've got the distance down right. I feel confident that the ball is going to break about seven inches to the left. Uphill so I've got to hit it harder, but not too hard.

I give the ball a good whack. The putter hits clean, and I barely feel the ball making impact. There it is, off and rolling on its sweet journey to the hole.

A direct hit on the first leave and there's only a slight diversion. A second larger leaf gets blasted and the velocity of the ball is halved. As if that is not bad enough, as the ball curls to the left, another smaller more pointed leaf gets nicked, causing the ball to ricochet at right angles to the right.

I've got another five feet to the hole. The wind picks up in my face, making sure that I do not forget who is the boss.

I ended up three putting that hole. For a bogie. I could have gotten more angry than I did, but that would not have accomplished anything. As Ben Hogan always said, treat the next hole like it's the very first hole of your day.

Man versus nature, and more often than not it is nature who wins.

Random entries

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

Recent Assets

  • Freshman-Year-Donner.jpg
  • Kiffin-Stanford-1975.jpg
  • Cobra-golf-bag.jpg
  • Bag-boy-automatic.jpg
  • Richard_feynman.jpg
  • train-tracks.png
  • the-fifth-green.png
  • Leaves-on-the-green.jpg

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

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 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.