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

buddha-shrine.png

| 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

Heren-1-Team-2015.png
Thijs, Maurits, Jeroen, Danny, Erik and Kiffin.

| Golf | 0 Comments

jordan-spieth-masters-2015.jpg
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

early-morning-sunshine.png

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.

shs-golf-team-1974.jpg
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:

IO.puts(Integer.to_string(abs(-5)))

Here are some references in which you might be interested:

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

| History | 1 Comment

geminiIII-grissom-and-white.png

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:

letter-gt4-mcdivitt-and-white.png

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

undefined-javascript.png

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

inbouw-stopcontact.jpg

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

| Golf | 2 Comments

lucky-golf-tees.png

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].
[1,2,3,4,5]
2> [2*X || X <- L ].
[2,4,6,8,10]

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.

jaerlang2_xlargecover.jpg
Programming Erlang (2nd edition)
by Joe Armstrong

| Golf | 0 Comments

Here are a number of very valuable tips that Chris (PGA Professional from Scotland) gave me during my golf lesson this morning. They worked so well that I will write them down now while they are fresh in my mind before I forget.

When addressing the ball:

  • Ball a bit more forward
  • Stance slightly open
  • Posture straight up (not slouched over)
  • Club face perpendicular and flat to the ground (not with heel)

When hitting the ball:

  • On back swing drag club as low as possible
  • Slide down through the ball from high and slightly outside
  • Snap wrists at last possible moment before ball impact
  • (Do not hit down on the ball but through it)
  • After impact continue swing inside and upwards
  • Complete with a high finish
| Programming | 0 Comments

All the code runs inside lightweight threads of execution (called processes) that are isolated and exchange information via messages.

Due to their lightweight nature, it is not uncommon to have hundreds of thousands of processes running concurrently in the same machine. Isolation allows processes to be garbage collected independently, reducing system-wide pauses, and using all machine resources as efficiently as possible (vertical scaling).

Processes are also able to communicate with other processes running on different machines in the same network. This provides the foundation for distribution, allowing developers to coordinate work across multiple nodes (horizontal scaling).

The unavoidable truth about software running in production is that things will go wrong. Even more when we take network, file systems and other third-party resources into account.

To cope with failures, it provides supervisors which describe how to restart parts of your system when things go awry, going back to a known initial state that is guaranteed to work.

elixir-logo.png

| Computers and stuff | 0 Comments

For a couple decades we have been able to take a free ride on the technological advances in speed and performance of improved hardware capabilities. First there was the 386, Pentium, Pentium 4, Dual-Core Titanium 2, and on and on. If your software was a bit slow at first, just wait a few months or maybe even weeks and the next generation of hardware will become so much faster that you won't have to worry any more about possible hiccups or performance dips.

However, this is changing faster than you realize so be careful. While this does not mean that Moore's Law is no longer valid, it does mean that the software we write will need to be concurrent in order to fully exploit CPU throughput of multi-core and distributed systems.

"If you haven't done so already, now is the time to take a hard look at the design of your application, determine what operations are CPU-sensitive now or are likely to become so soon, and identify how those places could benefit from concurrency. Now is also the time for you and your team to grok concurrent programming's requirements, pitfalls, styles, and idioms.."

"A few rare classes of applications are naturally parallelizable, but most aren't. Even when you know exactly where you're CPU-bound, you may well find it difficult to figure out how to parallelize those operations; all the most reason to start thinking about it now. Implicitly parallelizing compilers can help a little, but don't expect much; they can't do nearly as good a job of parallelizing your sequential program as you could do by turning it into an explicitly parallel and threaded version..."

"Thanks to continued cache growth and probably a few more incremental straight-line control flow optimizations, the free lunch will continue a little while longer; but starting today the buffet will only be serving that one entrée and that one dessert. The filet mignon of throughput gains is still on the menu, but now it costs extra--extra development effort, extra code complexity, and extra testing effort. The good news is that for many classes of applications the extra effort will be worthwhile, because concurrency will let them fully exploit the continuing exponential gains in processor throughput...

Taken from the article The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software by Herb Sutter.

| Golf | 0 Comments

"The reason for Tiger's fall is his ill-fated mythical quest for perfection..."

"There is a linear beauty to numbers that is simple and indisputable, and to someone as talented and as malleable and as addicted to perfection as Tiger, irresistible..."

"But the problem is, golf is not like that. It's not linear, it's abstract. It's not beautiful, it's messy."

"The mathematical-perfection trend in this game, which has Tiger by the throat and teachers in a tizzy, requires vigilant attention to swing mechanics, and that is not what this game is about. We need all of our sense to corroborate what we see and the imagination thrives on that information to help us create. That is the highest form of this game and is, perhaps above all else, what is beautiful about golf and sad about Tiger."

See: Woods' quest for perfection causing his downfall

For me golf is mostly mental and much less physical, meaning that a good player can overcome the bio-mechanical restrictions using the power of the mind. I am not only some mechanical contraption, there's a mind inside that thinks and plans and controls the future. Sure it's important to have a sound technical basis, but in the long run it is the mental game that will come through and lead to success. Just like in life.

| Nature and universe | 0 Comments

winter_moon.jpg

During my evening walk with the dog, I was struck by how unusually beautiful and serene the moon appeared in the freezing cold winter night sky. I attempted to capture the scene by snapping a picture using my smartphone, but this fuzzy picture is all that I could manage. Use some extra imagination, look beyond the graininess, and you can sense the timeless moment.

| Computers and stuff | 0 Comments

As if I didn't already have enough stuff to learn, that's when I hit yet another jackpot and discovered life's new elixir.

"By being immutable, Elixir also helps eliminate common cases where concurrent code has race conditions because two different entities are trying to change a data structure at the same time..."

And it doesn't stop there either. The deeper I delve into that morass the more there is to discover.

Good old erlang shows up around the corner, the phoenix arises from the ashes.

There's that cowboy living on the ranch that also tempts me.

You're never too old to learn new stuff.

| Books | 0 Comments

The following book passage touched me so much and struck a deep chord within me that I decided to take the liberty to include it in my blog.

"Why an angel? Because I believe that, in time, that is what we become in sobriety, if we last long enough, to the end. Not the winged type, no. Not some haloed cupid or sword swinger but a kind of flawed angel, without wings, that belongs to no religion but rather to a species of human heartbreak unlike any other known.

Alcoholics and addicts are unlike any other people I've ever met. I am unlike most people. A blazing mutant of some kind. A wondrous freak. In my mind lurks an urge that will be with me to the end, to put a bottle to my lips and drink myself to death. A judge and jury that I wake up to each morning has pronounced a verdict of guilt on me for no crime that I have committed, just for being alive, and has sentenced me to death, not by guillotine or rope but by a single drink.

It is the strangest thing, this sentence of death, this disease I have which tests me to the max and each day holds my existence accountable to the very universe, a god no religion can know as we drunks know it.

A god of drunks who goes with us into our prisons and gutters, bedrooms and businesses, flophouses and alleys, hospitals and mansions, and patiently waits with hand on our shivering shoulders as we groan through yet one more night of near death, waits to see if maybe this time we've had pain enough, loss enough, enough hangover, illness, fear, to ask for help....

Because when death sits on your shoulder each day, whispering, urging you to your end, there is no time to lose, so much light to grasp for, struggle to embrace. We are struggling with light. And yet we are only human after all, so terribly flawed and foolish, selfish and ridiculous. Sobriety can be messy. At times, I have seemed to myself the most awful of persons. But even then I am ascending, even then I am going up the ladder of light with eyes wide open and hands outstretched, to clasp the next rung up. And I climb."

Taken from "Drunken Angel" by Alan Kaufman.

| Internet | 0 Comments

Decided to nuke my facebook account and get out of there before it was too late. Obliterated every last remnant of my mind and soul from that evil place. Hopefully, at least. The idea that they can freely abuse my personal information, chop up my DNA and redistribute it randomly, and then make money off of it behind my back is not only unfair but in my view unethical as well. The sad part is that so many poor souls out there still do not realize what they are getting into. Like giving candy to an unknowing and naive kid. Tracking my behavior, saving information about me and analyzing who I am is a repugnant thought. Maybe I am exaggerating and sounding overly emotional, getting slightly paranoid in my old age, but I feel much better now. What a relief, it feels as if I've been liberated just in the nick of time from some entangled web of doom. Good riddance facebook ...

Permanently delete your Facebook account in four easy steps.

| Javascript | 0 Comments

"You should begin moving your app to Ember CLI as soon as possible," writes Tom Dale in The Road to Ember 2.0 RFC #15. My future famous Ember HAL Client has been migrated successfully, thanks.

| Computers and stuff | 0 Comments

Have you ever wondered how many methods Object has in Ruby? Well, here it is.

$ irb
>> Object.methods
=> [:allocate, :new, :superclass, :freeze, :===, :==, :<=>, :<, :<=, :>, :>=, :to_s, :inspect, :included_modules, :include?, :name, :ancestors, :instance_methods, :public_instance_methods, :protected_instance_methods, :private_instance_methods, :constants, :const_get, :const_set, :const_defined?, :const_missing, :class_variables, :remove_class_variable, :class_variable_get, :class_variable_set, :class_variable_defined?, :public_constant, :private_constant, :singleton_class?, :include, :prepend, :module_exec, :class_exec, :module_eval, :class_eval, :method_defined?, :public_method_defined?, :private_method_defined?, :protected_method_defined?, :public_class_method, :private_class_method, :autoload, :autoload?, :instance_method, :public_instance_method, :pretty_print_cycle, :pretty_print, :pretty_print_instance_variables, :pretty_print_inspect, :nil?, :=~, :!~, :eql?, :hash, :class, :singleton_class, :clone, :dup, :taint, :tainted?, :untaint, :untrust, :untrusted?, :trust, :frozen?, :methods, :singleton_methods, :protected_methods, :private_methods, :public_methods, :instance_variables, :instance_variable_get, :instance_variable_set, :instance_variable_defined?, :remove_instance_variable, :instance_of?, :kind_of?, :is_a?, :tap, :send, :public_send, :respond_to?, :extend, :display, :method, :public_method, :singleton_method, :define_singleton_method, :object_id, :to_enum, :enum_for, :pretty_inspect, :equal?, :!, :!=, :instance_eval, :instance_exec, :__send__, :__id__]
| Music | 0 Comments

I don't know what we're afraid of
But I know, I don't mind
Oh no, I don't mind
If I fall in love to the sound of birds

Short movie - Laura marling

Also highly recommended: When Brave Bird Saved

| Psychology | 0 Comments

Here is an interesting neuropsychiatric disorder which I think that everyone suffers to one degree or the other, some poor souls worse than others.

Bothersome sounds include: slurping, throat-clearing, people clipping their nails, brushing their teeth, chewing crushed ice, eating, drinking, breathing, sniffing, talking, sneezing, yawning, walking, chewing gum, laughing, snoring, typing on a keyboard, coughing, humming, whistling, singing, saying certain consonants, repetitive sounds ...

Not that I break out into a cold sweat, but getting pretty irritated about something so very trivial is something to be careful about.

| Music | 0 Comments

The-B52s-live.png

Remember these guys? Planet Claire, Rock Lobster, Private Idaho, 6060-842, Dance This Mess Around, Lava ...

Driving around town and the countryside in my little red Datsun racing car I would crank up their music and feel great singing along. I don't want to go to the devil.

All in all fantastic numbers.

I was honored to witness their very first performance on Saturday Night Live way back on 26 January 1980, and have been hooked ever since.

Here are some More videos for your late night entertainment.

| Way of life | 0 Comments

Fate-is-calling.png

On the road again, looking around ...

Some call it bad luck, but for me fate is calling.

Random entries

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

Recent Assets

  • buddha-shrine.png
  • Heren-1-Team-2015.png
  • jordan-spieth-masters-2015.jpg
  • early-morning-sunshine.png
  • shs-golf-team-1974.jpg
  • letter-gt4-mcdivitt-and-white.png
  • geminiIII-grissom-and-white.png
  • undefined-javascript.png
  • my-desk.png
  • inbouw-stopcontact.jpg
  • lucky-golf-tees.png
  • jaerlang2_xlargecover.jpg

Recent Comments

  • 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
  • Heren 1 Team: Yes, this is the one :) I prefer to say a lot wis ...
    - KathleenC
  • Heren 1 Team: Do you mean this one? I'm alot balder than back th ...
    - Kiffin
  • Heren 1 Team: Great picture Kiffin! Looks very similar to the o ...
    - 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 2167 entries and as many as 1873 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.