I ended up buying that Ram last week (http://redneckprogrammer.blogspot.com/2007/02/is-this-truck.html
), and I have to say it's awesome. It's a 2003 Ram 1500 SLT Quad Cab 4x4 with short bed and the 5.7 liter 345 HEMI V8. It hauls lots of serious ass. It's kind of hard to open her up with all the snow and ice we've had, but you can feel it growling under that big bulging RAM hood. The kids love and and always aks to ride in Daddy's truck.
I filled it up late last week to the tune of $50, then filled it up again last night. I did a little basic math and found that I got a little (very little) over 13 miles per gallon mileage. It was a little bit of a shock to fill that 26 gallon tank, and a bit of a shock to get 13 mpg, but it really can't be too much worse than the Jeep with 4.11 gears, 33" tires, and the aerodynamic qualities of a brick. I don't know for sure because I never actually calculated what the Jeep got. I figured I just didn't care enough to run the numbers. Anyone who drives a lifted and modified Jeep is not in it for the economic benefits. Same goes for driving a full size truck with a big V8.
The truck has all the goodies, towing package with the hidden hitch, trailer wiring, trailer brake controller, leather seats, overhead console, bed liner, "Infinity premium sound" system with the CD and cassette, fold out flat cargo deck in back seats, with storage under that, heated side mirrors, power locks/windows/driver's seat, auto transmission, etc.
BibleGateway.com Verse Of The Day
Tuesday, February 13, 2007
Monday, February 12, 2007
Tonneau Covers
I'm looking to get a tonneau cover for the new Dodge Ram this spring. My father has one for his Dakota that attached very similar to the soft top on a Jeep. The problem is when it gets cold the material gets stiff and shrinks a bit. If you get it off, you'll never get it back on, as we found out when we were packing for our bear hunting trip last November. Lund and a couple other companies make a cover with the bows and frame built right in, so you just clamp it down to the bed rails. It folds up in 3 sections, and installs in minutes no matter what the weather.
The Lund is the Lund Genesis Tri Fold, and it's amazing how much of a range exists in pricing. At the cheapest, I have found Amazon.com has it for $282.74 with free shipping, and as high was 423.95 at Auto Parts Warehouse, with free shipping (gee, thanks, charge me and extra $140 but give me free shipping).
I was kind of amazed Amazon.com had it at all, let alone them being the cheapest by far. Remember when they sold books? And maybe CD's and movies? Now they are like the Super Walmart of the internet world.
Price list for Lund Genesis Tri Fold model 95064 for Dodge Ram 1500 Quad Cab short bed (6'3")
The Lund is the Lund Genesis Tri Fold, and it's amazing how much of a range exists in pricing. At the cheapest, I have found Amazon.com has it for $282.74 with free shipping, and as high was 423.95 at Auto Parts Warehouse, with free shipping (gee, thanks, charge me and extra $140 but give me free shipping).
I was kind of amazed Amazon.com had it at all, let alone them being the cheapest by far. Remember when they sold books? And maybe CD's and movies? Now they are like the Super Walmart of the internet world.
Price list for Lund Genesis Tri Fold model 95064 for Dodge Ram 1500 Quad Cab short bed (6'3")
- Summit Racing - $329.95
- JEGS - didn't have it
- Truck Addons.com - $330.99, free shipping
- Truck Stuff USA - 369.99
- JC Whitney - $359.99
- Auto Parts Warehouse - $423.95, free shipping
- Amazon.com - $282.74, free shipping
Labels:
truck
Saturday, February 03, 2007
Apple Picking Fall 2006
This past fall we went apple picking at Morgan Farms out here in 315 land. Here are a few pictures.

Daddy And Taryn

Mommy and Raina
Labels:
photos
Pix From The Cabin (Last Fall)
Just going through some pictures on my hard drive. Here are a few from the cabin last fall.

Grammy and the girls coming back from a walk

Taryn, Teddie, and Charlie sleeping together. I think Charlie liked being able to sleep with Taryn, where she normally would have been sleeping in a brib at home.
Thursday, February 01, 2007
Winter Warmth
One of my favorite winter time recipes...
1. Fill a rocks glass with ice
2. Fill with bourbon
3. Enjoy responsibly.
1. Fill a rocks glass with ice
2. Fill with bourbon
3. Enjoy responsibly.
Labels:
recipes
Wednesday, January 31, 2007
Chicken Mushroom Soup
Came up with this one trying to emulate a soup I had at Chilis once. Not sure how close it is since they seem to have it when I go there anymore.
INGREDIENTS
1 can cream of mushroom soup
1 can chicken broth
1 can sliced mushrooms
1 boneless chicken breast
garlic powder
black pepper
salt
DIRECTIONS
Cut chicken into 1" cubes & brown. Combine all ingredients in slowcooker and cook on low. Scale up for larger pots of soup.
INGREDIENTS
1 can cream of mushroom soup
1 can chicken broth
1 can sliced mushrooms
1 boneless chicken breast
garlic powder
black pepper
salt
DIRECTIONS
Cut chicken into 1" cubes & brown. Combine all ingredients in slowcooker and cook on low. Scale up for larger pots of soup.
Labels:
recipes
Italian Beef
Got this one from my Mom. Makes good sandwiches on hard rolls.
INGREDIENTS
6 lbs sirloin tip roast
2 onions
1 stalk celery
1 green pepper
1/2 bottle ketchup
2 T. BBQ sauce
2 T. Vinegar
1 t. Pepper
2 T. Salt
2 T. Chili powder
2 cups water
DIRECTIONS
Cook roast all night in crock pot. Flake meat & take off any fat. Put back in crock pot. Combine all other ingredients pour over meat. Leave on low all day.
INGREDIENTS
6 lbs sirloin tip roast
2 onions
1 stalk celery
1 green pepper
1/2 bottle ketchup
2 T. BBQ sauce
2 T. Vinegar
1 t. Pepper
2 T. Salt
2 T. Chili powder
2 cups water
DIRECTIONS
Cook roast all night in crock pot. Flake meat & take off any fat. Put back in crock pot. Combine all other ingredients pour over meat. Leave on low all day.
Labels:
recipes
Stuffed Mushrooms
Ingredients
1 package whole mushrooms
pepperoni
sliced salami
sliced ham
grated parmesan cheese
1 egg
either heavy cream, provolone, or mozzarella cheese.
Directions
1. Pull stems from mushrooms.
2. Lay out mushroom caps on baking pan.
3. Put stems, Pepperoni, salami, & ham in food processor to chop finely.
4. Combine meat w/ egg & mix well.
5. Add grated cheese to desired consistency.
6. Pack mushroom caps w/ mixture.
7. Put cheese on the caps, or pour cream over them.
8. Bake (~350 deg) until cheese in bubbly & turning brown.
1 package whole mushrooms
pepperoni
sliced salami
sliced ham
grated parmesan cheese
1 egg
either heavy cream, provolone, or mozzarella cheese.
Directions
1. Pull stems from mushrooms.
2. Lay out mushroom caps on baking pan.
3. Put stems, Pepperoni, salami, & ham in food processor to chop finely.
4. Combine meat w/ egg & mix well.
5. Add grated cheese to desired consistency.
6. Pack mushroom caps w/ mixture.
7. Put cheese on the caps, or pour cream over them.
8. Bake (~350 deg) until cheese in bubbly & turning brown.
Labels:
recipes
Beer Can Chicken
This is a yummy treat in the warmer weather. Speaking of warmer weather, who the hell turned off Global Warming? I was starting to enjoy the warm December, but now it's freakin cold!
Anyway, beer can chicken. Slow roasted on an open fire and still tender and juicy.
1. Fire up the grill. I like charcoal and wood chips, but you can use gas.
2. Rub the whole chicken with Montreal seasoning or any other spice you like. Salt, pepper, garlic powder is a nice simple rub.
3. Drink half a can of beer, leave the other half in the can.
4. Sodomize the chicken carcass with the can of beer, making sure not to spill any beer.
5. Prop up the bird on the grill so it looks like he's taking a dump. The can should be fully upright.
6. Cover up and let it sit until done.
Don't worry too much about overcooking, the evaporating beer will keep it moist.
Anyway, beer can chicken. Slow roasted on an open fire and still tender and juicy.
1. Fire up the grill. I like charcoal and wood chips, but you can use gas.
2. Rub the whole chicken with Montreal seasoning or any other spice you like. Salt, pepper, garlic powder is a nice simple rub.
3. Drink half a can of beer, leave the other half in the can.
4. Sodomize the chicken carcass with the can of beer, making sure not to spill any beer.
5. Prop up the bird on the grill so it looks like he's taking a dump. The can should be fully upright.
6. Cover up and let it sit until done.
Don't worry too much about overcooking, the evaporating beer will keep it moist.
Labels:
recipes
Tuesday, January 30, 2007
Robb's "Award Winning" Chili Recipe
For printable copy http://frontiernet.net/~nicholson150/Chili.pdf
Instead of duplicating the recipe here, I'll just include it with a handy iframe....
Instead of duplicating the recipe here, I'll just include it with a handy iframe....
Friday, January 19, 2007
DAO Generator Update
Progress has been somewhat slow, but I fixed some issues with the Velocity templates, as I got a chance to generate the persistence layer for a mini project, which surfaced a few issues.
Also, main bulk of work now is with the custom query generation. At first I started with a custom query tab, then a different tab for each table. That screen got really busy and unusable really fast, so I decided to do more of a popup, screen-by-screen "wizard" type approach.



The DAO generation for stored procedures has been a pain in the butt, so I shelved that chunk for now. One of the databases I ran this against had 2 stored procedures in the same schema with the same name, and as far as I could tell the params looked the same too. That of course puts duplicate methods in the DaoFactory but only generates one DAO class instead of two. Maybe I should just make that whole thing more generic, like the DAO "execute" method takes a single array of parameters instead of being a finely grained typed call. And then the binding is done on the fly. If you sent too many or too few params, you lose, Exception thrown.
Once I get the custom query stuff done, the next chunk of work will be to make this work with other database servers. I can test it against Oracle, MySQL, and SQL-Server without too much effort since I have all those installed on my PC.
Also, main bulk of work now is with the custom query generation. At first I started with a custom query tab, then a different tab for each table. That screen got really busy and unusable really fast, so I decided to do more of a popup, screen-by-screen "wizard" type approach.
Click on the table, hit "Custom Method" button...

And it pops up a screen with the current custom methods for that table (if any)....

Then you can edit, delete, or create new. New button launches a screen that will look something like this (but needs some way to display all the parms as they are added, with way to edit or delete parms)....

The DAO generation for stored procedures has been a pain in the butt, so I shelved that chunk for now. One of the databases I ran this against had 2 stored procedures in the same schema with the same name, and as far as I could tell the params looked the same too. That of course puts duplicate methods in the DaoFactory but only generates one DAO class instead of two. Maybe I should just make that whole thing more generic, like the DAO "execute" method takes a single array of parameters instead of being a finely grained typed call. And then the binding is done on the fly. If you sent too many or too few params, you lose, Exception thrown.
Once I get the custom query stuff done, the next chunk of work will be to make this work with other database servers. I can test it against Oracle, MySQL, and SQL-Server without too much effort since I have all those installed on my PC.
Labels:
java,
programming
HTTP Proxy - BURP Suite
As more and more of our development centers around integrating various systems, we find that troubleshooting issues gets more and more complicated. Instead of just walked through my own code with a debugger or examining log files, you have to involve other groups and application owners. Part of the hassle is convincing other people that there is a problem at all, let alone where the problem might lie. Complicate that with the fact that you may not have as much visibility into the whole transport layer as you might like.
I trace through all my code to the last point before it fails, and that is a call into the SOAP connector. So the request may or may not be getting to the target system OK. The SOAP requet you think you created and the one actually getting transmitted may be different.
Enter the BURP suite, a set of tools to act as an HTTP proxy and capture requests and responses. Now you know exactly what your app is spewing out and what the target system is responding (or not). It can be a simple proxy, showing you all the requests and responses, or you can intercept requests/responses, alter them, and forward that.


There are also other tools in the suite, like spider, repeater, etc. but I mostly find the proxy and intercepter useful for troubleshooting and testing. This thing is definitely worth the free download, esp if you are doing any kind of web services type crap and dealing with less-than-cooperative developers from other teams or systems.

BTW - You can click on any of the pictures for a bigger view. Closeups aren't just for porn anymore.
I trace through all my code to the last point before it fails, and that is a call into the SOAP connector. So the request may or may not be getting to the target system OK. The SOAP requet you think you created and the one actually getting transmitted may be different.
Enter the BURP suite, a set of tools to act as an HTTP proxy and capture requests and responses. Now you know exactly what your app is spewing out and what the target system is responding (or not). It can be a simple proxy, showing you all the requests and responses, or you can intercept requests/responses, alter them, and forward that.
Below: Main screen

Below: Detail screen showing a particular request, your altered request, and the response, each in tabs. I did some censoring to take out specific server names and stuff.

There are also other tools in the suite, like spider, repeater, etc. but I mostly find the proxy and intercepter useful for troubleshooting and testing. This thing is definitely worth the free download, esp if you are doing any kind of web services type crap and dealing with less-than-cooperative developers from other teams or systems.
Below is a screenshot of the configuration screen for the proxy. You can configure exactly what to capture and automatically alter some header info, etc.

BTW - You can click on any of the pictures for a bigger view. Closeups aren't just for porn anymore.
Labels:
programming,
tips
Sunday, January 07, 2007
Raising Chickens In The Backyard
Well, now that we have two boats, a lawn mower, a snow blower, and a broken down Jeep YJ stored on our property (none of which belong to us, this is all in addition to our lawn mowers and Jeep) we just couldn't deny that we are true 315-ers, even if we do still carry a 585 area code. We are true Wayne County rednecks -- we eat critters from the woods out back, we have a pool that contained thousands of tadpoles this past spring, and now we have a Sanford and Son collection started. The cap it all off, we really need some livestock running around. And hence, our decision to raise chickens for food....
We're starting to move forward on our plan to raise chickens this spring. Our thought is this will be somewhat educational for the girls, as well as a source of meat and eggs. Mmmmm, barbecue chicken!! Doesn't get much fresher than killing it and grilling it 30 minutes later. The breeds we picked are good all around birds that lay a decent amount of eggs but still get to be good eating size.
There is a block building in the back yard, the size of a good size shed. We will turn that building into the coop by adding some perches and nest boxes in there, and adding a fenced in run. We have a very large barn so we really don't need that small outbuilding for any real storage or anything.
Since we live in an area that is known for having rough winters, we will order the chicks closer to spring so we don't have to worry too much about them freezing. We also settled on breeds that are known for doing well in the northeast: Rhode Island Reds and Buff Orpingtons.


We'll be ordering 25 day old chicks from Murray McMurray hatchery, along with a starter kit (water bottles, feeders, brooding light, etc. We will get some feed, grit, fencing, and waterers at local suppliers like Country Max or Tractor Supply Company. In warmer weather we plan to let the chickens free range during the day so they eats bugs and stuff from the yard.
This should be an interesting, fun, educational, and hopefully rewarding experience. I have a smoker that could cook up probably 10 chickens at time and still have room for corn on the cob, so COCK A DOODLE DOO!!
We're starting to move forward on our plan to raise chickens this spring. Our thought is this will be somewhat educational for the girls, as well as a source of meat and eggs. Mmmmm, barbecue chicken!! Doesn't get much fresher than killing it and grilling it 30 minutes later. The breeds we picked are good all around birds that lay a decent amount of eggs but still get to be good eating size.
There is a block building in the back yard, the size of a good size shed. We will turn that building into the coop by adding some perches and nest boxes in there, and adding a fenced in run. We have a very large barn so we really don't need that small outbuilding for any real storage or anything.
Since we live in an area that is known for having rough winters, we will order the chicks closer to spring so we don't have to worry too much about them freezing. We also settled on breeds that are known for doing well in the northeast: Rhode Island Reds and Buff Orpingtons.
We'll be ordering 25 day old chicks from Murray McMurray hatchery, along with a starter kit (water bottles, feeders, brooding light, etc. We will get some feed, grit, fencing, and waterers at local suppliers like Country Max or Tractor Supply Company. In warmer weather we plan to let the chickens free range during the day so they eats bugs and stuff from the yard.
This should be an interesting, fun, educational, and hopefully rewarding experience. I have a smoker that could cook up probably 10 chickens at time and still have room for corn on the cob, so COCK A DOODLE DOO!!
Friday, January 05, 2007
2007 IRS Tax Withholding Calculator
To figure out how to full out your W-4 to maximize in-pocket money year round without having to pay ... http://www.irs.gov/individuals/page/0,,id=14806,00.html
Labels:
tips
Thursday, December 14, 2006
Ant Visualization Tool - yWorks Ant Explorer
Found this free tool last night that shows a visual graph of an Ant build.xml and shows the hierarchy of task dependencies. Can be stand-alone installed or Webstart, or IDE plugin for Eclipse or Netbeans.
http://www.yworks.com/en/products_antexplorer_about.htm
http://www.yworks.com/en/products_antexplorer_about.htm
Labels:
java,
programming,
tips
Wednesday, December 13, 2006
DAO Gen Update 12/13
Between other tasks and our Christmas party, I got some work done on the DAO generator tool.
Completed Tasks

Outstanding Tasks
Completed Tasks
- ResourceManager - getConnection() for when Connection is not supplied: Currently it's guts are commented out. Should put a JNDI lookup for a data source in there. That's how we do it, most likely anyone doing server-side code also does this. They could always customize for using DBCP or some other mechanism.
- DB query tab. Lets you enter queries and run them. Results come out to output tab as tab-separated text, along with number of rows retrieved and how long it took to run.
- simple Batch file launcher for Windows.
- Fixed an elusive NPE on describe that only happened once in a blue moon.
- Usability stuff: there are validations now for required fields being blank, and clicking on describe button will take you to output tab to show what is going on. When done, it goes to DB explorer tab. If a field is blank when validation runs, the config tab is selected so user can fill in,and some other things that make it all more usable.
Screenshot of simple query runner tab:

Outstanding Tasks
- DaoFactory - generated factory class is missing factory methods for stored procedure DAO's (easy fix, but have been busy with GUI)
- Stored Proc DAO's - need a lot of work
- CLOBS/BLOBS/BFILES - haven't accounted for those at all. they are a pain to write by hand so they should be done right in the generated code.
- Generated DAO's and all classes need to be fully tested to make sure the templates are right.
- Dist - need to come up with a distribution package mechanism, with shell and batch files to launch, special directory for templates, etc.
- Custom Queries - not implemented in generator or GUI yet.
- Saving new project file - app should put .prj extension on filename automatically if it isn't there.
- Help screen needs content
- Code cleanup w/ respect to comments, package names, etc.
- Pick a better name for application and update the package names
- Documentation would be helpful
- Pick an open source license and OS project hosting
Labels:
java,
programming
Tuesday, December 12, 2006
DAO Gen Update 12/12
I got lots of cosmetic and functional work done on the GUI side of my persistence generator. Still need to work on the Velocity templates, implement custom query generation, clean up code/comments, pick a better name, open source it somewhere, and some more GUI features to add.
Progress this week:
Output tab (used to be separate window)

DB Explorer tab:
Look And Feel is controlled by View menu, below are the Windows (native) and the crappy "Motif" look-a-like that comes with Java:


Outstanding task list:
Progress this week:
- Added a Browse button for the template directory to make it more consistant with the generated code destination field. Also improved the layout a little bit on the screen.
- Switched to a tabbed interface. The main screen from last week is now the configuration tab. There will be a tab for writing the custom query methods, running queries against the current DB, the output window has been nixed in favor of an output tab, and a tab that visually shows the DB objects to some extent.
- Add mnemonics to menu and toolbar controls.
- Open and Save/Save As now fully work, and described database meta data gets saved with project.
- Help "about" and "contents" actually launch screens, even if there is no real content yet.
Output tab (used to be separate window)
DB Explorer tab:
Look And Feel is controlled by View menu, below are the Windows (native) and the crappy "Motif" look-a-like that comes with Java:

Outstanding task list:
- ResourceManager - getConnection() for when Connection is not supplied: Currently it's guts are commented out. Should put a JNDI lookup for a data source in there. That's how we do it, most likely anyone doing server-side code also does this. They could always customize for using DBCP or some other mechanism.
- DaoFactory - generated factory class is missing factory methods for stored procedure DAO's (easy fix, but have been busy with GUI)
- Stored Proc DAO's - need a lot of work
- CLOBS/BLOBS/BFILES - haven't accounted for those at all. they are a pain to write by hand so they should be done right in the generated code.
- Generated DAO's and all classes need to be fully tested to make sure the templates are right.
- Dist - need to come up with a distribution package mechanism, with shell and batch files to launch, special directory for templates, etc.
- DB query tab - not implemented yet
- Custom Queries - not implemented in generator or GUI yet.
Labels:
java,
programming
Tuesday, December 05, 2006
A Few Unix Shell Tricks
If you want to set a value in a shell script, but only if it isn't already set (e.g. set a default value but let it be overridden), try this. The following command will set PROJECT to be mqbridge, unless PROJECT is already set. In that case, the current value overrides. I have used this trick in ksh and bash. Not sure what other shells it works in.
export PROJECT=${PROJECT:-"mqbridge"}
Redirecting stderr to stdout: If you are trying to capture output of a command into a file, you will notice the regular output goes into the file, but errors go directly to the screen instead. If you want to capture both, use shell redirection like this (2>&1) after your command.
export PROJECT=${PROJECT:-"mqbridge"}
Redirecting stderr to stdout: If you are trying to capture output of a command into a file, you will notice the regular output goes into the file, but errors go directly to the screen instead. If you want to capture both, use shell redirection like this (2>&1) after your command.
For example, to have all output go to the screen and to a file, you can do something like this:
run.sh 2>&1 | tee output.log
Labels:
programming,
rants,
tips
Wednesday, November 29, 2006
Crontab Format
Every time I need to put something in cron, I forget the format or layout of each job. I stripped this decent explanation from this site:
The format of the crontab file is as follows:
Minute (0-59) Hour (0-23) Day of Month (1-31) Month (1-12 or Jan-Dec) Day of Week (0-6 or Sun-Sat) Command
0 2 12 * 0,6 /usr/bin/find
This line executes the "find" command at 2AM on the 12th of every month that a Sunday or Saturday falls on.
The format of the crontab file is as follows:
Minute (0-59) Hour (0-23) Day of Month (1-31) Month (1-12 or Jan-Dec) Day of Week (0-6 or Sun-Sat) Command
0 2 12 * 0,6 /usr/bin/find
This line executes the "find" command at 2AM on the 12th of every month that a Sunday or Saturday falls on.
Labels:
programming,
tips
Wednesday, November 08, 2006
In Loving Memory...
Charlie (AKC "Good Grief Charlie Brown")
April 27, 1998 - November 7, 2006
Airedale Terrier
Charlie was our first dog, our first baby. He was diagnosed with Lymphoma (cancer of the lymph node system) about 2 weeks ago, and we had to put him down last night. It was not an easy decision, but it was what was right for him so he wouldn't suffer and be in pain any longer.
The Lymphoma was a horrible disease, because early detection doesn't really buy you anything. We took him to the vet because his throat was swollen and his eyes were red. We thought he had an allergic reaction or infection. We weren't prepared to hear the doctor say the "C" word, especially since Charlie was acting completely normal, looked normal, was still playing and happy, wagging his tail, eating and drinking, and just being himself.
Charlie was a great dog. Even when we had children, he took to them very well and welcomed them to the family. He soon became very protective of them, like they were his own. He would sleep in the hallway outside their doors at night. If someone he didn't know came to the house, he made sure to be between the girls and the stranger at all times. When they cried in their crib, he would go investigate and come barking at us so we knew something was up.
(Left: Charlie and Morgan taking a break from playing)He was of course every bit a terrier though, we can't forget that. He was smart, but stubborn. When training him, he would reach a point where he would get bored and just wouldn't cooperate. He was big enough to do his share of "counter surfing" -- getting up on the counters to steal any food that wasn't bolted down. He had no use for other animals, especially strange dogs. Sure he played with the dogs he knew, like Morgan, Pongo, Sage, Wolf, etc. But any other dog he would go nuts barking and lunging at them. As a very small puppy, he actually started barking and "picking a fight" with a full grown rottweiler. That's terrier attitude for you.
(Left: classic example of Charlie being in the middle of the action during Taryn's birthday party)When we first went to get Charlie as a puppy, we were "just going to look". I liked Airedales from what I knew about them, but had no real intention of actually getting one right then. I was still in an apartment that didn't allow dogs, but I was closing on my first house in a few weeks. Plus I was going to ask my girlfriend to marry me. I wanted it to be a surprise, so I kept telling her I didn't have the money for the ring. Well in her mind, I had no money for a ring but I just dropped $500+ for a puppy. I just couldn't resist once I saw them. There were about 4 puppies left when we got to the breeder's house, and Charlie was running around with a little purple ribbon tied around his neck like a collar. For some reason we gravitated right to him, but he kept running under their porch. The breeder spent a good 15 minutes or so trying to get him to come out so we could take him home. We're glad he finally came out. And my wife has since forgiven me for the ring incident once she found out I had already purchased the ring.

(Right: Upside-down Bear)
If Charlie was laying down, and any of us walked near him, he would roll over on his back with all 4 paws up in the air. We would say "Charlie's upside-down" and then rub his belly. After getting used to this behavior, he would sometimes "go upside-down" even if you weren't near him, knowing you would go over and rub his belly anyways. We even taught our daughters that any time he was upside-down, they had to rub his belly.
He was never much for the game of Fetch in the traditional sense. Throw a ball or frisbee and he would run over, grab it, and then lay down to chew on it. So we turned it into a game of "I'm Gonna Get You". We would run after him, and he would grab the toy and run away, purposely getting himeself into situations where we could corner him and grab the toy, but then running past us in the other direction.
Sometimes Charlie would kind of sigh in his sleep, so it sounded like he was "leaking" air. Another strange thing he did was he would lick my head when I got down on the floor to play with him. It was funny when he would get done eating or drinking, then walk the length of our bed rubbing one side of his face on the comforter, then back the other way rubbing the other side of his face, like our bed was a giant napkin just for him. Speaking of napkins, he would go on one his marathon water drinking sessions, then come up to you with his terrier beard dripping wet and put his head on your lap (usually when you're wearing shorts!).
We will miss Charlie a lot. I didn't really feel ready to say goodbye, but I wouldn't have been any more ready next week, next month, or even 8 years from now when he would have been "old". We did the right thing for him instead of being selfish and keeping him around in misery. We'll always remember him and love him. He was our first baby.
(Left: "You lookin' at me?")(Below: Just hangin' out)
Subscribe to:
Posts (Atom)
