Wednesday, January 31, 2007

DB2 on Ubuntu

I stated in my last post that I found a resource for installing db2. I'm going to quote that article verbatim here just in case that one ever goes away. Also, where my install differed from the instructions presented at
I highlighted in red. Also, my Ubuntu is Edge Edge instead of Dapper Drake. I'm not sure this matters but it is a difference.

I do this because you never know when someone's going to delete their blog or have it removed by higher powers.

Installing DB2
The DB2 installation package is rpm-based, so we’ll need to install an rpm-compatible installer for Ubuntu. For this, we apt-get alien, an rpm package installer:

$ sudo apt-get install alien

also installed pdksh

sudo apt-get install pdksh

sudo apt-get install openssh-server

openssh-client was alread installed

sudo ./db2_install (from installation directory)

Now we may db2_install installation script that is bundled with DB2. This needs to be done as root:

$ tar xzvf db2exc_91_LNX_x86.tar.gz
$ sudo exp/disk1/db2_install

Here I simply used Archive Manager. In my installation is ran ./db2install from the directory where I extracted the tar file.

This should take a few minutes to install. At the time of this writing, the installation procedure had approximately ten steps and lasted about three to five minutes. Note that depending on the version of gcc that you have installed (if at all), you may need to install libstdc++5, as it is required for successful installation. This is easily obtained:

$ sudo apt-get install libstdc++5

Setting Up Groups/Users
Now that we have DB2 installed, we need to configure it for use. We start by creating the standard DB2 user groups: instance owners, fenced users, and administrators. (Note that these commands need to be run as root — the sudo is dropped here for notational simplicity and a # is added in its place for clarity).

# groupadd -g 999 db2iadm1
# groupadd -g 998 db2fadm1
# groupadd -g 997 dasadm1

Now we’ll create a default user for each group:

# useradd -u 1002 -g dasadm1 -m -d /home/dasusr1 dasusr1 -p password2
# useradd -u 1003 -g db2fadm1 -m -d /home/db2fenc1 db2fenc1 -p password3
# useradd -u 1004 -g db2iadm1 -m -d /home/db2inst1 db2inst1 -p password4

Creating the Adminstrative Database
Now we need to create a DB2 Administration Server to administer all instances of DB2 under the purview of this installation:

# /opt/ibm/db2/V9.1/instance/dascrt -u dasusr1

Note here that dasusr1 may be any user that is a member of the dasadm1 group we set up earlier.

DB2 Instance Semantics. Creating an Instance.
A DB2 instance is an environment that acts as a logical container for a collection of databases. It’s an abstraction that allows the creation and usage of multiple independent DB2 environments using the same physical resources.

We need an instance to hold all of our databases. We’l create a default instance using the db2inst1 user we just created as its owner:

# /opt/ibm/db2/V9.1/instance/db2icrt -u db2fenc1 db2inst1

As we noted, db2inst1 is the instance owner, while db2fenc1 credentials are used to execute fenced stored procedures and executables.

Below lists the commands and output of the commands presented in the referenced blog.

The execution completed successfully.

For more information see the DB2 installation log at
rkathey@delllaptop:~/db2install$ sudo groupadd -g 999 db2iadm1
rkathey@delllaptop:~/db2install$ sudo groupadd -g 998 db2fadm1
rkathey@delllaptop:~/db2install$ sudo groupadd -g 997 dasadm1
rkathey@delllaptop:~/db2install$ sudo useradd -u 1002 -g dasadm1 -m -d /home/dasusr1 dasusr1 -p password2
rkathey@delllaptop:~/db2install$ useradd -u 1003 -g db2fadm1 -m -d rkathey@delllaptop:~/db2install$ useradd -u 1003 -g db2fadm1 -m -d /home/db2fenc1 db2fenc1 -p password3
useradd: unable to lock password file
rkathey@delllaptop:~/db2install$ useradd -u 1003 -g db2fadm1 -m -d /home/db2fenc1 db2fenc1 -p password3
useradd: unable to lock password file
rkathey@delllaptop:~/db2install$ sudo useradd -u 1003 -g db2fadm1 -m -d /home/db2fenc1 db2fenc1 -p password3
rkathey@delllaptop:~/db2install$ sudo useradd -u 1004 -g db2iadm1 -m -d /home/db2inst1 db2inst1 -p password4
rkathey@delllaptop:~/db2install$ sudo /opt/ibm/db2/V9.1/instance/dascrt -u dasusr1
SQL4406W The DB2 Administration Server was started successfully.
DBI1070I Program dascrt completed successfully.
rkathey@delllaptop:~/db2install$ sudo /opt/ibm/db2/V9.1/instance/db2icrt -u db2fenc1 db2inst1
DBI1070I Program db2icrt completed successfully.

Starting and Stopping an Instance
A DB2 instance is an environment that acts as a logical container for a collection of In order to start and stop the DB2 instance (remember, we may have multiple instances for a given installation on a physical host), we log in as the owner and call db2start after inializing the DB2 environment:

$ su db2inst1
$. ~/sqllib/db2profile

db2inst1@delllaptop:~$ db2start
ADM12026W The DB2 server has detected that a valid license for this product has not been registered.
SQL1063N DB2START processing was successful.
db2inst1@delllaptop:~$ db2sampl

Creating database "SAMPLE"...
Connecting to database "SAMPLE"...
Creating tables and data in schema "DB2INST1"...
Creating tables with XML columns and XML data in schema "DB2INST1"...

'db2sampl' processing complete.

Stopping the environment is just as simple: we’d call db2stop instead of db2start.

You may enable (or disable) automatic DB2 instance start/stop on system start-up/shut-down by calling:

$ db2iauto -on db2inst1

where db2inst1 is the login name of the instance. Replacing the -on flag with -off disables this feature.

The Sample Database
If you wish to build the sample database bundled with DB2 in order to play around, call db2sampl while logged into a DB2 instance owner account:

$ su db2inst1
$ . ~/sqllib/db2profile
$ db2sampl

After this I logged into db2inst1, ran the db2profile (as above) and launched db2ca to enter the graphical user interface. Thanks to the original author for the ubuntu db2 install.

The Great Ubuntu Reinstall of January 07

Well, I did it. I royally hosed up my new Ubuntu Linux install trying to get my laptop to play a microsoft media file. Oh sure, it wasn't easy. I had to install and reinstall about twenty packages but I finally managed to bugger up the the O/S. I could claim it's all part of Microsoft's attempt to take over the world but in the end I have only myself to blame.

So its back to a thirty minute operating system load then another hour spent reloading things I'd already loaded once. If I find the packaged that did me in I'll post it here so other will know what not to do.

Thus shows the true value of blogs and the internet. Don't do as others have done. Do as others wish they had done.

Ok, that said, here's a list of steps I performed.
First I backed up the old home directory. Basically I just copied the files to a blank CD

Next I reinstalled Ubuntu by placing the Ubuntu install CD into the drive and rebooting. It'll boot Ubuntu off the CD. There is an icon on the desktop labled "Install". Double click that.

Follow the install menu options. I choose to reformat the drive in order to blow away my old install. Wait forever for that to finish then allow the software updater to update what you just installed. You'll need to rebot after that.

Here's where I did things differently from the last install.

I edited the /etc/apt/sources.list and added universe and multiverse to the end of the first two lines so they look something like

deb edgy main restricted universe multiverse
deb-src edgy main restricted universe multiverse

Next I ran

sudo apt-get update

The reason this was needed is the fact that java-5 isn't in the application list of the default entries in /ect/apt/sources.list

After that I went to the System->Administration->Synaptic Package Manager, found Java 5 (and some cool 3d star system packages) and updated my system. I decided not to install java 6 this time.

I rebooted my system after this just to make sure all the java stuff was set correctly. This probably isn't needed, after all this isn't Windows I'm using, but I decided to do it anyway just to make sure.

After this I installed Eclipse using the package updater under Applications->Add/Remove menu

Next, so I won't have to do another full install, I did a system backup. To accomplish this, first read this post in the Ubuntu Forums for details but it boils down to the following two statements.
cd /
sudo tar cvpzf backup.tgz --exclude=/proc --exclude=/lost+found --exclude=/backup.tgz --exclude=/mnt --exclude=/sys /

After the backup finished, I copied it off to an external drive. The files was over a gig so it wouldn't fit on a CD.

I'll update the blog with more information as I run into other snags.

My next effort will be to install DB2. Luckily I found another blogger who's written instructions for this at

Tuesday, January 30, 2007

In the beginning

Looking over my blog I noticed that the majority of my posts are about my son, Zack so I'm changing the name of the blog.

In this post I'll discuss the first time someone called me Zack's dad and why it brought tears to my eyes.

I'm married to a beautiful woman named Debbie. We met at work. She had two daughters from a previous marriage and so we decided, going in, not to have any additional children. We were too old, we thought, and there were enough folks in the world.

Note that this isn't the first time we've changed our mind on important subjects. When we began dating we both stated we weren't looking for a relationship and were happy being single. Within a month I knew she was the lady I wanted to marry and I think she'd decided I'd be a good husband as well. We were married nine months later.

Things were going along well when the world changed. 9/11, for some reason, made us decide it was a good idea to bring another person into the world. I know there was a minor population boom in the USA after the event. I don't know if more people is society's way of handling stress or if its something more basic in human nature that causes us to have children when angry or unsure. But whatever the reason, Zack was born in February of 2003.

His mom was in her late thirties at the time so carrying a large baby boy (9.8 lbs at birth) was an ordeal. She had the flu. She threw up a lot at the end. This caused Zack to get distressed which caused problems. She entered the hospital dehydrated and sick. This caused Zack to breath in meconium in the amniotic fluid while still in his mom's tummy. Meconium is poop. Breathing it in causes bad things to happen inside a baby's lungs.

To make a long story short, after one joy filled day with my son, he entered ICU as fever struck from pneumonia. I went from the happiest person on the planet to the saddest. The doctors assured me everything would be fine but that did nothing to comfort me.

After Zack entered ICU I was allowed to visit. There as a nurse at the front desk who asked who I was. She said, "Oh, you belong to the hairy baby." Remember that most babies in ICU are premature. Zack went full term. In fact he went a little beyond full term. He liked it in there.

She called to the nurse in the back. "Zack's Dad is here." It was four simple words On the face of them they were nothing special but it was like a lightening bolt hit me in the chest. It was my first time being called "Zack's Dad." I don't know why the impact was so great but a big smile came to my face as tears of joy rolled down my face. The nurse asked, "Are you ok?" I said "Yes, I think I am." I was Zack's dad and, God willing, I always would be.

I pulled out of my funk just in time for Debbie to enter her's. Odd how things work out that way. There are few things sadder than a mother leaving her new born in the hospital. Debbie stayed at her mother's, which was near the hospital, while I went back to an empty house. It wasn't a pleasant week.

Of course, as the doctors predicted, Zack was fine and the pain of leaving him in the hospital soon vanished. I have many titles: Architect, Husband, Son, and Brother but the one I'm proudest of is being Zack's Dad.

Monday, January 29, 2007

Of Networks and Bandersnatch

Recently, AT&T VPN caused a problem at my house. I bought a new Linksys SRX 200 wireless router but regardless of my attempts and calls to Linksys support, I could not get my VPN to work with it. So, I would disconnect the rest of the household to work during the day. This caused problems due to the fact that
a) A tech person today seldom works an eight hour shift and
b) Teenagers are addicted to

The solution turned out to be to use the old router connected directly to the cable modem the attach the new, high speed router to the first. I had to subnet them differently (added a 1 to the third network octet) but it seemed to work. So now I have a DMZ in my home network. Computers attaching to the old router have one firewall between them and the outside world while the folks using the newer network have two firewalls between them and the evils of the open internet.

As I tried out the new setup I discovered that the folks on the second segment of my LAN were very slow retrieving web pages. The solution seemed to be to turn off the wireless setting on the older router (which has no wireless clients). After that things sped up considerably.

If you want to run your own speed test, I recommend

The have cool graphics and its the service Time Warner uses to test their cable modem connections.

If anyone else finds the solution to the Linksys SRX200 and AT&T VPN dialer client let me know.

Friday, January 26, 2007

Shadow Dancing

On a late summer night in '05, Zack discovered the fun of shadows.

Shadow Dance:

It began with Deb and I sitting in our white, fake wicker chair by the drive way. We have one of those security lights that illuminates when it senses motion. It a fairly powerful light, complete illuminating the drive way.

Zack was pushing his play police car around the drive way when I discovered the security light made for excellent shadows. Not the multiple shadows you normally get but one, strong black shadow usually reserved for dark rooms and flash lights.

I made the age old rabbit shadow. Zack was fascinated by the construct. He tried to grab it but the wascally wabbit was too quick. He laughed and giggled until he discovered he had a shadow as well. At this point the fascination began.

I felt like I was watching something out of Peter Pan as my son tried to catch the his own dark image which was always just a little too fast for him. After chasing the shadow down the drive way, he found that the shadow would also chase him as well. Zack ran away from the dark boy on the ground watching the shadow as he ran. He was so intent was he on the dark image that he ran head long into Jessica’s car falling to the ground the ground in a heap of giggles.

Deb and I showed Zack how to control the shadow with his own movements. He waved his arms and laughed. Then he raised his foot into the air watching the shadow detach from his form. He tried to touch the shadow but it was always just out of reach. Finally he learned to squat down. The shadow squatted as well and at last he could touch the illusive being.

Zack was having so much fun it was hard to get him in for the night. Finally I was able to coax him into my arms to look at the stars. Zack likes stars so I sang him a song as we walked back toward the house. The rhythm was to a Louis Armstrong song “What a wonderful world” but the words were my own. Zack enjoyed it and didn’t fuss at all as we walked into the house. Once inside, Deb had to call her mom to describe the evening. Zack and I played ‘Tent on the couch’ where his folding tent goes on one section of the couch and he climbs in and out. We sang twinkle, twinkle little star for a while until Deb got off the phone with her mom.

Its nights like this when everything seems right with the world. I wish there were more of them.

My Dog Pillow!

This was originally written on Monday 9/26/05

You know that your son is progressing well when everything in the house becomes MINE. In Zack’s mind, everything is his and you can not convince him otherwise. This was made more evident than usual when Deb brought home a new dog pillow.

We have an older dog that likes to lay around. I am her human so she's usually found laying around me. As I type this she lays near by waiting for me to go to bed. Now Jessica the dog loves my son. I would go so far as to say they are best friends. She doesn’t sleep with him but that is only because we keep the door closed to Zack’s room at night.

Food solidifies Zack’s place in the dogs heart. At every meal he finds some way to slip her food. For this she shows a greater than normal maternal instinct towards my son. The dog tries to rescue him from the swimming pool and barks at us as if to say WHAT ARE YOU DOING! On Zack’s forays into the pasture the dog assumes the vanguard scouting to make sure the path is clear. She trots in front checking for whatever dogs check for to make sure Zack will be OK.

Now saying this I also have to say dogs have a great sense of where they are in the pack. Deb and I are the dominant dogs in Jessica’s mind and as such our offspring must be deferred to. Jessica the dog has always treated Zack with a great deal of understanding to the point of letting Zack touch her eyeball. Yes, the dog laid there and let Zack explore her eye.

Thus we thought it extremely rude when Deb brought home the new dog pillow and Zack instantly claimed it and chased the dog away. In Jessica the dog’s mind, the matter was settled. Zack had a new bed. In Jessica the step daughter’s mind, the matter was far from over. ( Yes we have child and a dog named the same name. )

Jessica the teenager saw this as a completely unfair situation. Deb bought the pillow for Jessica the dog. Zack had no right to it. She ordered Zack off the pillow. At 2.5, Zack doesn’t order well. A fight broke out between siblings with Jessica the dog on the sidelines. Jessica the teenager would take Zack off the pillow and order the dog onto it. Jessica the dog would obey. Zack would then through a fit and order the dog off the pillow. The dog was caught in an obedience loop. You could tell she wanted to be left out of fight. Finally, the dog jumped up on the couch and laid her head down, ignoring any further commands to lay on the pillow.

The fight between Jessica the teenager and Zack raged on however. Obstinate teenager vs. the unwavering MINE! In the end I think MINE won but its hard to tell. Zack spent some time in his room. Jessica the teenager finally went to the TV room and shut to door. Jessica the dog just lay on the couch.

Time will tell if Jessica the dog will accept her new pillow or if she now thinks of it as Zack’s bed. Then again, when we come home from work Jessica the dog is often on Zack’s bed so I suppose its only fair that Jessica’s bed is now MINE!

In the end I don’t think the dog minds Zack sleeping on an item bought for her. The two lay together on the floor often. Zack throws her arm over her, leans against her belly and watches TV. She looks up, gives him one lick on the face then lays back down. Zack wipes the dog saliva off then kisses the dog. In the grand scheme of things, what’s one pillow between friends.

Sunday, January 21, 2007

Linux, Commies, and Capitolism

Note: How To's are located at bottom of post

Ok, for those of you who don't know what Linux is, crank up google and do a search. Its ok, I'll wait.

Ok, so now you know that Linux is a free operating system with a number of distributions from companies like Red Hat, SuSe, and others. Recently, at the advise of my java programing guru, I decided to try the Ubuntu version of Linux.

At first I typed in the wrong URL and went to which is a left leaning world community web site. I have nothing against left leaning community sites but I thought it was an odd place to store a Linux distribution. But then again, some raging capitalist believe the Linux development effort is lead by leftist radicals out to destroy the capitalist system as a whole. After all the thing is free!

What those folks don't understand is that the open source movement is built on the economics of ego, not dollars. You can download the source to the Linux kernel, make changes to it, compile it, and walla! You have your own operating system. For those of us with a semblance of life and a brain somewhat smaller than Jupiter this is a daunting task that we would never, ever, in a gagillion years undertake.

But luckily for us there are folks with brains the size of Jupiter that can do that and do it as a labor of love, pride the the ability to look down their nose at the rest of us that have, at least once in our lives, kissed a member of the opposite sex. But I digress.

I'm a wood-be java developer who is being guided on his virginal steps into Javadom but an experiance hack who works on an open source project that displays graphics for some of the games I enjoy. If you're interested you can go to the RPTools project web site.

I needed to reformat my aging laptop and decided to install Linux on it. I use Linux often and its my operating system of choice for home because I have teenagers who regularly virus anything with a Microsoft logo. Linux solved my woes and kept me from reinstalling Windows every other month.

So I took my old Dell Inspiron 8100 and and installed Ubuntu Linux. I liked the install process because it tool only one CD vs. the 4 that are required for Red Hat's Fedora Core or Suse Linux. The install went smoothly and I was up and running in no time. I installed Eclipse for Java development and upgraded the Java 1.4 to Java 5. Later I upgraded to Java 6.

Here's a list of things I did to get Ubuntu running on the laptop.

To install Java 5:
Open a terminal window.
sudo apt-get install sun-java5-jdk

And that's all there was to it.

Here's a link that discusses installing Tomcat as well.

The next problem I ran into was Netscape Firefox had an issue. When I used the touch pad Firefox would navigate back to previous pages. This problem with Firefix and Unbuntu Linux was solved at the following link.

Here's a quote from that page.

To configure the horizontal scroll of the touchpad to actually horizontally scroll a webpage, open Firefox, type about:config in the address box, and use that page's "Filter" text box to search for mousewheel.horizscroll.withnokey.action. Double-click the line in the results and set the value to 1, rather than 2. The change will be instant and permanent.
Later I decided to upgrade to Java 6 on Unbuntu Linux. Here are the steps I followed for that.

download java from
cd to dowload directory
chmod a+x jdk-6-linux-i586.bin
sudo ./jdk-6-linux-i586.bin
sudo mv jdk1.6.0 /usr/lib/jvm/
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.6.0/bin/java" 1
sudo update-alternatives --set java /usr/lib/jvm/jdk1.6.0/bin/java
java -version

For those of you who want to just install the Java runtime, go to my fellow blogger's page for those instructions.

The only downside to the install is that my Dell 725 printer wouldn't work on Linux. I contacted Dell support and was told that printer wouldn't work with Linux. This runs contrary to what I know about print drivers but who knows what Microsoft has done to squash other peoples attempt break away from the Microsoft and enter a world with people are paid with praise and knowledge of a job well done.

Rocky the Airplane

This is the story about Rocky the Airplane and Albin the Double-decker bus. It took place in January of '07.

Zack loves three things in life: Trains, planes and automobiles. Something about the speed and power of these machines fascinates him. His favorite movies are Pixar's Cars and Disney's Polar Express.

Zack, at times, thinks he is a train. He'll pump his arm like the driving pistons of a steam train and either make car or train noises (as appropriate to the situation). For planes, he doesn't pump his arms as he usually has a plane in his hand and makes high pitched jet engine noises as the plane streaks at high speed near someone's face. He does this so they can have the full effect of the plane's speed. Well, that and the ability to make people blink is pretty cool.

So, when Deb and I go out to shop the question from Zack is always, "Are we going to the train store?" The ordeal of the train store is documented in other blog posts so needless to say, we don't go there often.

On this day's trip my wife and I were looking for carpets and bar stools. We wound up with neither but on this day we went to World Market. Now World Market is an all around nice store with lots of nick-nacks and items from the world over (but mostly made in China). The have a good selection of wines, glassware (which we purchased), furniture, carpets, and ornamental stuff you put on shelves and in curios. Zack generally enjoys the store since they have ornamental trains, cars, boats, and planes to play with.

On this day, he was very good and sat in one place while Deb and I picked out some new glasses. We were so proud of him we agreed he could have one of the ornamental planes to take home. On the way to the register, he also found a double-decker bus he wanted.

Now Deb and I both agreed he could have one but not two. So at the register we tried the fruitless task of making a three year old see logic. Deb gave up and punted to me. So I asked, "If you could only have one, which would you choose?"

"I choose 2," replied Zack.

Well, in some ways a 2 is only one number so I think I lost that round. My next question was completely stupid. "If you had to choose between having both and going to college which would you choose?"

"But I want both," protested Zack.

To be honest, I was surprised he didn't give up college. I stood there scratching my head wondering how a three year old got the better of me in the argument. The people around us were all smiling. So next on the better parenting through deception method of child rearing, I decided to hide one of the items at the register.

Now our clerk that day was a red-headed youth with multiple facial piercings. This isn't someone you'd normally consider a nice guy. He had a dour expression on his face that showed no joy or love for the world so what he did next was a surprise.

As he rang up the airplane he applied a 40% discount. Debbie asked, "Are those on sale."

The clerk just looked down at Zack then up and Deb. His expression didn't change. He never smiled but he said "They are today."

He rang up the bus with a 40% discount as well.

I'm still not sure why he did it. Did he think Zack was cute? Did he overhear the conversation and decided to reward us for getting our son something special? Or was he just 'sticking it to the man' a.k.a. his boss.

I'm not sure but I think he thought the entire conversation with Zack was interesting enough to warrant a discount. Whatever his reasons were, I'm glad he did it. Zack played with the things for days. They went into the bath with him. He's named them Rocky the Plane and Albin the bus.

Rock and Albin sitting on my desk as I write this. Happy to have a home with a little boy that loves them.

Thursday, January 18, 2007

Happiness is a Train Ride

I remember when I was young, the joy of going to Old City Park. I think the park has another name, maybe Graham park, but to us it was always Old City Park. The reason, you may ask, is because we had a new city park called The New Park. This may lack in imagination but everyone knew the difference.

Allow me a brief aside to describe the parks. Wright Park was the New Park. It had tennis courts, a golf course and butted up next to one of the nicer neighborhoods in Greenville. Old City Park was, well, old. It was in a failing part of Greenville but for a child, it had much more to offer.

Old City Park had a lake with ducks, a bear, the oldest house in Greenville, and a motorized boat and car ride the usually worked. But the thing that set Old City Park off from any other park was the train. We’re not talking a full sized train though. It was simply a gasoline engine that was mounted onto a miniature train frame. The track ran around one of the playgrounds and as you rode it you couldn’t help but laugh and wave at all the people on the slides, monkey bars, and merry-go-rounds (not the motorized kind, you had to push).

For a kid, it was possibly the neatest place in Greenville.

The lake had a small island in the middle. We would dare each other to swim to it. In the end we were all too chicken to try. Some of those ducks looked mean and rumor had it there were snakes in the water.

The oldest house in Greenville had all sorts of antiques inside but we never got to go inside. It was always locked. We had to placate ourselves by looking in the window and making up stories about the ghosts that lived inside.

The playground contained all sorts of equipment that would send a modern OSHA inspector screaming into the night. It’s amazing how many things are dangerous these days. When I was growing up, it was called fun. Today they’re called law suites waiting to happen.

The boat ride was some boats sitting in a tub of water attached to arms that went round and round. As I recall the best thing about them was a bell on each boat you could ring. All four passengers had a steering wheel.

The car ride was much the same except, of course you were in a car not a boat. We all still had stirring wheels but it lacked the cool bell on the boats. Eventually both these rides went away but the trained remained for years afterward.

It was a special occasion to go to Gram Park. The bear was cool. The ducks were fun. The hokey car and boat rides were good for one ride. But the train was the best part. Something about it just made you smile.

I remember when they took the train out. It was sad. Still, as we get older, those sorts of things don’t matter like they used to.

Free Spirits and Scream Tests

As I watch Zack discover the world and put things together, it amazes me the progress a child makes. I don’t know if my son is different from others. I do know he exhibits an amazing imagination for a three year old. Of course, having a father that routinely goes into a fantasy world to write and game must help.

Thomas the Tank Engine is a favorite world of his engine shunt troublesome trucks and get into all sorts of trouble. Luckily their friends are always there to help.

A second world he loves is that of sharks, dolphins, whales and sea turtles. We have a pool and he has a set of these creatures that migrate between the pool and the bath tub. Indeed, there are some nights with bath protests turn into shouts of joy with the introduction of a shark to the tub.

He and I explore the house looking for flying sharks, dinosaurs, or even the mundane black frogs with yellow eyes. We also chase non-imaginary butterflies, play with caterpillars, and talk to Buddy the Lizard.

Buddy deserves special note. He is a gecko that lives in an old banana plant husk by the pool. The only remarkable thing about Buddy is that he is always in the banana plant. Zack talks to him. Asks how he is doing and then screams at him trying to get him to move.

Zack explores the world in bursts of speed followed by motionless but intense scrutiny. He experiments with animals seeing how the react to various stimuli. Normally this starts with a finger, followed by gentle tones of reassurance. He play with the worm, insect, frog, cat, dog, or other subject showing the animal to Debbie and I. Eventually, however, it always winds up with the scream test.

Sometimes I worry about Zack. :-)

T-Rex and the train table

At one time the train table my son received for Christmas was a happy care-free place. Rhino, zebra, and a plant eating dinosaur roamed the lush grassy center of the table. An American Indian tee pee was erected on the site with a canoe that rode on the river flowing from the tables water fall. Then, one day, everything changed for the worse.

A T-Rex, who once resided on a shelf in my son's room, arrived on the verdant plain. It ate the trees placed there with so much love and care, ripping the foliage from it spray foam base. The Indians were never seen again, obviously leaving for less hostile domains. The other animals all vanished; eaten, I assume, by the ravenous Rex.

Now, all is calm on the train table. Nothing lives there. The T-Rex left going back to his shelf during my wife's next cleaning. The other animals haven't returned living now safe in their box of plastic 'stuff'. Now, cars and trucks drive the roads and the trains go down their tracks but no living thing dares inhabit the center of the table for one never knows when the terrible Rex might return. Rar!