| 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 | 0 Comments

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

| Life in Holland | 0 Comments

Nowadays at the gas station you cannot just fill up your tank and pay for it at the checkout counter without getting flooded with a barrage of questions and entreaties to purchase extra stuff, even though you don't feel like it and just want to get away.

"Do you have a discount card? Would you like to buy one? Would you like to take advantage of our special deal today two candy bars for the price of one? Do you collect stickers to buy gifts? Would you like the receipt? Thank you sir, and have a nice day!"

It's pretty predictable and I always answer the same, "No, no, no, no, no, you too have a good day." Until yesterday, when I answered, "No, no, no, no, see you later."

Wait a minute, what's happening? Something very fishy going on here. Rewinding through my recent memory and scanning the events of the last thirty seconds, my mental analysis pinpointed the anomaly.

I smiled and asked the young lady in a serious voice, "Aren't you going to ask me about the special deal today two candy bars for the price of one?

The poor person blushed and started to speak nervously, "I'm sorry, I forgot to ask you. Really, I'm very very sorry. Please take two for the price of one if you will. Please."

I was just joking but she took me very seriously, like I was going to get her fired. I was some kind of secret agent spying on her for her supervisor and I would report her misconduct immediately, yes I would.

I told her, "Don't worry, I'll try and keep my mouth shut and not tell your boss." Trying to look casual and relaxed, so she would realize there was no danger here at all.

When I left and drove away, I could see her through the glass still looking pretty flabbergasted with a flushed face. It was obvious that I had inadvertently ruined an otherwise pleasant evening. Sorry about that.

| Golf | 0 Comments
Prijzen en winnaars van 2014

Tijdens de nieuwjaarsreceptie zijn er diverse prijzen uitgereikt op basis van behaalde resultaten in 2014. 

Nogmaals van harte proficiat aan al deze winnaars! 

Golfster en Golfer van het jaar 2014
* De winnaars zijn Lotte Hoekstra en Kiffin Gish. Zij ontvingen volgens traditie een greenfee van Serge Ray.

Birdie klassement 2014 
* De winnaars zijn Annemiek de Langen en Kiffin Gish.

Hans Kruis Bokaal 2014 
* De grootste verlaging in handicap is gerealiseerd door Lotte Hoekstra.
| Health and happiness | 0 Comments

Now researchers are claiming that more than half the cases of cancer are purely bad luck and have absolutely nothing to do with eating habits, lifestyle or heredity.

The majority of poor folks have absolutely no way of influencing this unfortunate outcome of nature playing with dice. You will be unlucky and just get it or you'll dodge it and follow your fate as it was intended.

To be honest, it's hard to believe one way or the other as scientific research which provided fashionable results a decade ago are replaced by more modern techniques of applied research and statistical mumbo jumbo.

Live one day at a time and you will reach your end just as quickly, or slowly for the others. The roll of nature's dice will be fairly unpredictable so just get on with life and happiness or else.

| Books | 0 Comments

more-books.png

You'd think that by now my head would be crammed full enough and there wouldn't be much more room left to learn even more stuff. Yet as this fine and shining pile of books keeps staring at me, I cannot resist sawing through even more interesting books in order to explore more complicated jungles of thought.

These should keep me busy for some time to come, but it being fun reading I think I'll saw through them in no time. Eleven is my lucky number anyway.

| Javascript | 0 Comments

The decision will certainly become a bureaucratic one made by management folks who don't care about the low-level details. So which one will it be?

  • Ember.js – "Framework for Creating Ambitious Web Applications", or
  • AngularJS – "Superheroic JavaScript MVW Framework"

So if these so-called enterprise companies have to undergo a big change anyway, and they have to choose between something totally new (Ember) or something new but kind of related to a previous version (Angular), then the choice seems completely predictable though perhaps not the most logical.

Who cares if the next version of Angular is a complete rewrite, oh dear.

Ember will have to appeal to the rest of the world, all those early adopters, starters, and other small to medium sized companies ready to make the transition and start with a clean slate.

For me Angular is merely a tool to build web frameworks (although they claim otherwise), whereas Ember is truly a web framework in itself. I'm choosing to go the Ember way despite the somewhat steep learning curve, never could get into Angular anyway.

The following quote has been borrowed from the Ember Core Concepts section, and explains the essence of this fine framework.

Ember_or_AngularJS.png

"Ember.js is designed to help developers build ambitiously large web applications that are competitive with native apps. Doing so requires both new tools and a new vocabulary of concepts. We've spent a lot of time borrowing ideas pioneered by native application frameworks like Cocoa and Smalltalk.

However, it's important to remember what makes the web special. Many people think that something is a web application because it uses technologies like HTML, CSS and JavaScript. In reality, these are just implementation details.

Instead, the web derives its power from the ability to bookmark and share URLs. URLs are the key feature that give web applications superior shareability and collaboration. Today, most JavaScript frameworks treat the URL as an afterthought, instead of the primary reason for the web's success.

Ember.js, therefore, marries the tools and concepts of native GUI frameworks with support for the feature that makes the web so powerful: the URL."

| Health and happiness | 0 Comments

Over a period of nearly six months, consisting of several visits to the family doctor, some X-rays followed by more tests and an MRI scan, the results are finally official.

When I arrived at the doctor's office, he smiled and asked me if I was nervous. I answered no, but I was a bit afraid that after so much research they hadn't found anything. That perhaps it was all in my mind.

Don't worry he said, we definitely found something. That's when I started to get nervous. In the back of my mind, I feared that my golfing career was over. I'd have to relearn the sport from a wheelchair, and it would be frustrating.

Turns out that the diagnosis is a so-called a bone bruise. Like a normal bruise to the skin which turns black and blue, but this takes place inside of the bone tissue.

bone-bruise.jpg
This is exactly what it looked like in the scan picture.

He showed me the pictures of the MRI scan, and indeed I could perceive quite clearly a whitish blob. Quite large I would say, as the pain was pretty much localized to a smaller almost pinpoint area. Unlike a normal skin bruise, this type of bruising is more painful and takes much longer to heal, up to six months or even a year. Excess fluid fills up within the bone tissue, and the body has to work extra hard drying to dissolve and remove this minor blood spill.

So I guess that's positive news. Just have to be patient and let nature take its normal course of healing slowly but surely. Now that it's winter, I do not need to play that much golf, maybe just hit balls on the driving range once in awhile and putt around. Trying to swing a club from a wheelchair would not have been easy.

| Computers and stuff | 0 Comments

desktop-ubuntu-14.04-LTS.png

I've been staring at this screen all day, it was supposed to be my day off. Trying to learn new stuff is really addictive sometimes. Especially when it's cold and raining outside, and I cannot play any golf.

| Music | 0 Comments

Punish them all for they speak too much
Hate the world for what it did to us
Will I ever see heaven again?

Laura Marling

Random entries

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

Recent Assets

  • 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
  • elixir-logo.png
  • winter_moon.jpg
  • The-B52s-live.png
  • Fate-is-calling.png
  • more-books.png

Recent Comments

  • New putter grip: Finally gave up on this crazy grip, just never cou ...
    - Kiffin
  • Back from Madeira: The Madeira island travel is one of the most wonde ...
    - travelmadeira
  • Back from Madeira: Great place, wonderful people! And if you need tra ...
    - Miguel
  • Cinnamon girl: Yeps, one of my favorite versions. Reminds me a lo ...
    - Kiffin
  • Cinnamon girl: https://www.youtube.com/watch?feature=player_detai ...
    - marlies.gish

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 2159 entries and as many as 1863 comments.

Important events

This blog came into existence 7-21-2001 ago.

Thea and I first met 6-14-1980 ago.

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

I began my well-balanced and healthy life style 1-8-2013 ago.

My father passed away 10-20-2000 ago.