Random Musings

about me

Married 12 years to a loving and patient woman.

Father to 3 very energetic boys.

Addicted to cycling.

I do geeky stuff with machines, electronics, and computers.

recent public projects

Status updating…

found on

contact at

me@ryangeyer.com

Caddy - Hibernating for the Summer?

- - posted in 1967 Cadillac Sedan Deville, Worklogs | Comments

Time for a quick update on the Cadillac. Last time you read about the caddy, I shared my discovery that it had the rather desirable “Switch Pitch” variation of the Turbo 400 transmission. As such, I decided it was best to have it examined before I put the car back together. I took it over to Alphonso’s Transmission in Goleta, hoping that it just needed to be cleaned up, and perhaps have a few smaller parts repaired or replaced. Unfortunately, this was not to be. As he started dismantling the transmission he very quickly discovered that the main forward band was broken, the forward drum was burnt, and the 2/3 clutch pack was nearly worn down to the steel. So, the only real choice at that point was to go ahead and rebuild the transmission completely.

Now, I’m totally stoked that the trans was rebuilt, and Alphonso has been building these things for longer than I’ve been alive, and did a spectacular job. I also have a brand new variable pitch torque converter. All for the (quite reasonable) price of $1100. Problem is, I only had $600 to spend, which I was hoping would be enough to get the trans repaired, and buy a few small parts I needed to get the car back together. Instead, I had to borrow the rest of the money from our savings. This means for the next 3 months I’ll be paying our savings back from the caddy’s fund, at which point we’re expecting our new son Tate! So as you can imagine I’m not going to have the time, nor the presence of mind to be working on the caddy for a while after that, and I won’t have any money to spend on it until then.

As a result, I’m trying to do little things on the caddy until Tate is born that don’t cost me anything. So I’m tearing the motor down a bit further, and trying to clean it up. I popped the timing cover off to check the timing chain/gears. Turns out this is yet another part which is going to need replaced! The chain is SUPER loose, like enough that I almost feel like I could cause it to skip a tooth with the slack. Also, apparently in the late 60’s it was all the rage to install and market “silent” timing gears. I had the same get-up on my 1967 Ford Thunderbird. It’s essentially a hard plastic cam gear for the timing set, which is supposed to reduce the normal timing set noise. I seriously don’t get this, since the other noises that these machines make more than drown out any noise that the timing set might make. But, I digress.. The point is that the hard plastic cam gear is also showing signs of stress, with hairline cracks forming down the middle of each tooth. It’ll definitely have to be replaced.

I had hoped that I could just throw the engine back together without buying a whole lot more parts for it, and as such had sorta planned not to inspect it too thoroughly. With events unfolding as they have, I think I am going to go ahead and check all the rest of the clearances and see what else (if anything) may need replaced. Depending on how things turn out, I may or may not stick with this motor. As I’ve stated before, the 429 is a low production motor and the parts are surprisingly hard to find, as well as expensive. If I find that it needs more than bearings (a cam, or some machine work for instance) I may simply sell this motor to someone who’s working on a numbers matching restoration and buy a 472/500 to put in it’s place. The good news is that my 429 is in generally good shape, and certainly does not need a lot of work, so it should have some reasonable value to someone who’s looking for original parts.

So that’s where we stand. I had hoped to have her all back together and be driving ‘er by now, but it looks like I’m going to be taking my time even a bit more, and being even a bit more methodical. I can’t wait to experience that finely crafted and tuned transmission! ;-)

Grails and Tomcat6 - Deployment Notes

- - posted in Grails/Groovy | Comments

Things have been busy, and I haven’t had the time to devote to writing updates on either the Caddy, or my work in Grails.  But enough complaining, to pass the time until I can get some more quality content here, I wanted to share this little gem that took me entirely too long to figure out.

I wanted to be able to deploy my grails applications to a sub context, or sub directory of the root of my site.  This way I could leave my blog at the root of my domain, and categorize my grails apps a bit.  Take the following example.  Suppose I wanted to deploy a bunch of example grails apps in a subdirectory named “examples” off of the root of my web host.  Something like http://<yourserver>/examples/<your-app-name>.  This is how I was able to finally accomplish it.

Deploy to a Tomcat Sub-Context

If you’re a Tomcat guru this is all going to seem elementary, and it is, but it was superbly difficult for me to mine the information I needed from the web, so I’m sharing what I’ve learned here.  If, on the other hand, you’re a Tomcat newbie like me, you hopefully have a running instance of the Tomcat service.  If you don’t there are a number of great tutorials, including the official installation guide.

Most of the stuff that you’ll read out there says that to deploy your grails app, you just upload your *.war file to the Tomcat “webapps” directory and you’re in business.  This is true, but of course when you do this, you just end up with a URL that looks like http://<yourserver>:8080/<your-app-name>.  Now, this is fine if you only intend to deploy a few apps and you dont mind that application being at the root for your domain/server name.  But we’re trying to put our apps in a sub directory of our site, off of the root.

My first instinct to accomplish this was to use some of the properties of the grails app itself, and I found many examples which recommended this.  So, I happily set my app.context in application.properties to the path I wanted.

application.properties (snippet)
1
 app.context=/examples/MyExampleApp

This works great when I do a grails run-app, I get the app deployed to http://localhost:8080/examples/MyExampleApp just like I wanted.  But, when I create a war and toss it in my Tomcat webapps directory, I still get the same old behavior of the application being deployed to the root of Tomcat with the same name as the war file.  So how the heck do I deploy my war into a sub directory of my Tomcat site?!

The secret lies in not simply dumping your war file into an existing “context” for Tomcat, but instead creating your own, and pointing that context to your war file. The first step toward this is to prepare a place for our webapp directories, outside of the Tomcat root webapp directory.  I choose /srv/tomcat-webapps but you’re obviously welcome to put this anywhere you like.  So let’s create the directory where we’re going to deploy our first example app.

1
mkdir -p /srv/tomcat-webapps/examples/MyExampleApp

Now, we need to find the Catalina configuration directory for our Tomcat deployment.  On Ubuntu, which is the environment I’m using, this is at /etc/tomcat6/Catalina/localhost.  What you’ll find there, are a number of XML files each one describes a “context”.  You can define sub-contexts by using a special syntax in the filename which is just barely mentioned in passing in the Tomcat docs.  You can set a multi level context name by using the # character.  So lets create a new sub-context for our example app at the correct path.

#!/bin/sh mark:2
1
2
cd /etc/tomcat6/Catalina/localhost
vim examples#MyExampleApp.xml

Now we need to add the content to this context file which will tell Tomcat where to find the applications files. Remember back when we created a new directory for our tomcat webapps, this is where we’ll use it.

examples#MyExampleApp.xml
1
2
3
<?xml version="1.0" encoding="UTF-8"?>
<context antiresourcelocking="false"
docbase="/srv/tomcat-webapps/examples/MyExampleApp" path="/examples/MyExampleApp" privileged="true">

Now if you restart Tomcat, and unzip your war file to /srv/tomcat-webapps/examples/MyExampleApp you should be able to navigate to http://<yourserver>:8080/examples/MyExampleApp and see your application!

MacBook Pro - First Impressions

- - posted in Hardware, Reviews | Comments

I just took delivery of my latest new computer from my employer.  This time, instead of another run of the mill IBM compatible laptop or desktop it was a fancy new 17" MacBook Pro.  We're developing software which we're supporting in Safari using the Silverlight plugin and I needed to be able to develop and test in that native environment.

First, let me give you some background.  See, I'm an Apple geek from days of yore.  We're talking Mac II and Quadra days here.  I was raised around Apples because my father owned his own business in the desktop publishing industry.  Around 1996 or so, I started to defect to "the dark side" and use the Windows OS, and only a few short years later I started dabbling with Linux, which is my current OS of choice.

Now, I knew that OSX was BSD based, and I knew I'd like it.  I also knew that the Apple hardware was pretty stinkin' elegant.  But man…. I had no idea.  This feels all so new and exciting, but at the same time comfortable and familiar.  In the ~3hrs I've had it I've installed pretty much an entire Groovy/Grails development tool set as well as installing and configuring things I'll be using on a daily basis.

I'm discovering some things which require are requiring a bit of research, but once I find the answer it usually fits some pattern or concept that is very familiar.  I'll likely be blogging about a few of those items as I continue to "move in" to my new machine.

I Dub Thee “Bionic Caddy”

- - posted in 1967 Cadillac Sedan Deville, Worklogs | Comments

It's been a while since I've provided an update about the progress of on the Caddy.  Mostly because things have been slow due to a busy work and family schedule.  Here's the rundown of what I have gotten done though.

I have rebuilt the carb, and realized that a broken vacuum pot on the carb was actually only used to crack the throttle open a bit and increase the idle RPM when the A/C was running.  Since the A/C system is not holding pressure, and looks like it hasn't in many many years, I went ahead and removed this "extra" part.  Hopefully this'll fix the hesitation problem that I detected on the few short drives I took.  

Modularizing Your Grails Application - Domain Classes

- - posted in Grails/Groovy, Reviews | Comments

This is the second installment of my What Grooves You? series of posts, this time discussing how to modularize your Grails application. While Grails does an awesome job of enforcing MVC once your application reaches a certain size, or you have multiple applications which may have shared components, you’re going to have to start thinking about how your going to modularize the reusable parts of your code.

Epiphanies

- - posted in Parenting, Personal Expressions, Quincy | Comments

I have been having a whole lot of epiphanies of late. Be it about the new chores I have to take care of, I’m still figuring all that out but to be honest I am really getting the hang of them. I am still learning to change with Q’s wants and needs. I’m sure all these years of learning and growing with the hubs has helped me a great deal. I’m still trying to figure out life and the meaning of it for me and my role as mother, wife, friend, sister, daughter and grand daughter. I’m thinking that I may have to continue to experiment.

I’m starting to realize all over again that I know nothing at all. I keep learning more and more and feeling like maybe I have a handle on life and then again I find myself surprised and feeling clueless all over again.

What brought all this on? I’m at a new cross roads. In the not too distant future we will be welcoming a new family member to our home and I’m still trying to figure out just how we will approach this change. The first question everyone has is how am I going to go about my recover from delivery. I am sure that this time I will do all I can not to try to jump back into full swing of things until a couple weeks postpartum. I’m simply determined to focus on my new beautiful addition and my beautiful big boy and my incredible husband.

The other question that keeps coming up is will I be working after having our newest bundle of joy and I have yet to figure out the answer to that one. The hubs has made his decision and though I think it is sweet I’m not sure if that works best for our family. We shall see.

I guess it all goes back to the entire stay at home mom vs. the working mom debate. I love contributing financially to my family. I love my job. Don’t get me wrong, my job is tough, even stressful but I do get something out of my job that is really satisfying. On the other hand, the idea of staying home with my babies, keeping a home and leaving the money making to the hubs is exciting. There is so much I fee like I am missing from the day to day with my toddler. I can only imagine what I would miss from his relationship with his newest sibling. I enjoyed my 10 weeks home with Q and I am excited about having at least as much time with our newest baby. I’m already dreading leaving my boys for work. But there is still the question if I will be as good of a mom without work. I am able to drop everything quickly to play with or cuddle my son. Will I be so quick to do that without my working? Do I get some kind of down time or selfish time when at work when all I have to think about is work and the goal directly in front of me?

The epiphany here is that maybe just maybe things in this aspect of life aren’t so straight forward. If you asked me five years ago I would have told you that I had every intention of being a stay at home mom from the moment I found out that I was pregnant. That I just couldn’t ever imagine working once I had my first child. Now, shockingly, I have no idea what the plan is while I am expecting my second child. I just want what is best for my family and I am still trying to figure out just what that means to our family.

I’m still trying to figure out what is best for me. With my myriad of health problems I know that pushing too hard is a huge detriment to myself. I’m starting to really take the time to stop and rest. I’m figuring out what my body needs and how to meet those needs. I’m learning to put myself as a priority, which is incredibly hard as a mother.

The big epiphany is there is just so much to figure out and that I may NEVER figure it all out and that is ok. That is half the fun of this ride we call life. Don’t worry, in time you will hear me spout lots of stories about my boobies again. What did you think I would post without mentioning my boobs? LOL! Yeah, no, not going to happen, after all I’m a mom. :-P

Fitting Grails in an Active Directory and NTLM SSO Groove

- - posted in Grails/Groovy, Reviews | Comments

This is my first installment in the What Grooves You? series of posts, and it deals with the first thing you’re going to need to consider if you are deploying your Grails/Groovy applications in the average corporate IT infrastructure, Single Sign On with Active Directory and NTLM. Like it or not, because all of our existing applications are based on Microsoft technologies our users have gotten used to just going to the URL for the application they intend to use and being instantly recognized and authenticated. Forcing them to sign in again, or worse still forcing them to setup a new username and password for your system would be completely unacceptable! Below, I’ll take you through the steps I took to solve this problem, including the detours that cost me time!

What Grooves You?

- - posted in Grails/Groovy, Reviews | Comments

In my "Day Job", we design and build our applications using Microsoft technologies. In particular, we’re using C#, Silverlight, and IIS to build and deploy our web applications. This makes good sense because the vendors we use are well versed in the Microsoft technology, and like the IT infrastructure of a lot of medium and large companies Microsoft solutions are at the forefront. It’s becoming apparent though that we’re going to have to consider our options and possibly embrace a different technology stack to properly scale and support the applications we’re building.

While I knew that Java servlets and the Spring Framework were the answers, credit goes to my boss Scott Ellis for really doing a deep dive into what technologies are on offer, and coming up with using Grails and Groovy as the best solution for us. Which brings me to the reason for this blog post. I’ve been spending some time playing around with Grails and Groovy, and familiarizing myself with the technology and what is on offer. I intend to do a series of posts here about my discovery process, what problems I encounter, and how I resolve them.

From the searching I’ve had to do in order to get answers or better understanding about the challenges I’ve faced, I think I have a chance to be a real resource to others who are just starting out with Grails and Groovy. What’s more I’m writing from the perspective of a relative newbie to the Java world. Stay tuned as you follow my journey into Grails and Groovy. *Spoiler alert* - I like it, a LOT!

Mystery Solved!

- - posted in 1967 Cadillac Sedan Deville, Worklogs | Comments

CulpritWell there she is, the source of my clunk! And, the way it’s sitting in there explains why the engine wouldn’t turn past TDC as well since that thing woulda been right in the way. So far as I can tell it’s a small(ish) washer that got folded in half. You can see a few more shots of it over in my Flickr set. What remains a bit of a mystery is how it got there. I’m guessing it entered through the intake, and it’s possible it was sitting on top of the throttle blades of the carb. Tough to say if it was there when I got it, or if I managed to drop it there while I was working.

All in all, there doesn’t seem to be much (maybe any?) damage from the whole debacle. The you can see both the cylinder wall and the combustion chamber for that cylinder, and they both appear unharmed!No Worse for WearCombustion Chamber Remember back when I described that one of the cylinders had a spark plug that had 0 gap and appeared damaged? Yup, you guessed it, that plug came from this cylinder. Makes sense, all of the steel for the cylinder wall, piston, and head are harder than the washer would have been, and the spark plug would have been a softer metal as well. Soft enough to sustain some damage from that thing flinging around in the cylinder. This also explains why it seemed fairly inconsistent, when that cylinder was not on it’s power stroke the washer would have happily just moved up and down the cylinder wall in place. Then when there was ignition in that cylinder, the pressure probably sent it flying around!

Until Next TimeI also made another discovery while I was working. The bolt on the front of the crank that I’d been using to turn the motor over, doesn’t actually belong there! The balancer is simply pressed onto the crank with no big bolt to hold it on like you find on many other motors. It’s becoming more and more apparent to me that one or more people who’ve worked on this thing haven’t been terribly methodical, and clearly didn’t have a service manual to reference. In spite of that, the motor appears to be fairly low mileage and it quite good condition.

The plan now is to do some more inspection and measure things to see if they match the tolerances set out in the service manual. If everything checks out, I think I may just put her all back together and run her. Going to keep my fingers crossed that everything is as tight as it appears to be so I can get some miles outta this thing!

Engine Autopsy

- - posted in 1967 Cadillac Sedan Deville, Worklogs | Comments

Cadillac 429 on Hoist

I got the engine out of the Caddy this weekend! The first lesson I learned is that I should have either removed all of the pulleys and water pump, or removed the front clip of the car. I had a TON of trouble getting the motor out past the radiator core support! In fact, I wound up yanking the water pump off while the motor was in limbo just to buy myself a few more inches of clearance.

Once it was finally out, and safely on an engine stand, I started my investigation and search for the source of my “clunk” sound.Dipstick Shrapnel First, I yanked the intake manifold and the cover for the lifter valley. I found nothing particularly interesting there, certainly no obvious foreign object which would account for the noise I’ve been hearing. So, I tipped the thing over and started pulling out oil pan bolts and upon removing the pan I was greeted with what you see on the left.Sabotage! Now I expected to find chunks of oil dipstick in the engine, since I’d previously reported that the dipstick appeared broken. What I did not expect though was that the dipstick would be so completely mismatched! The photo on the right shows the engraving of “Ford” on the dipstick. Apparently the previous owner just decided to toss whatever dipstick he had handy into the tube, and call it a day.

Not knowing what the original design of the Cadillac dipstick is, I can’t be sure, but it feels like this is a bit of a poor design.Dipstick Interference If the dipstick is straight, and goes down the dipstick tube straight, it appears as though it’ll run right smack dab into the rotating assembly as you can see on the left.

As satisfied as I was with my discovery, I realized pretty quickly that this couldn’t be the source of the “clunk” I was chasing down. The bits of dipstick were simply too small and light weight to account for the sound I was experiencing. Plus, when I pulled the oil pan off, all of the bits were sitting right inside the oil pickup which means they were likely “stuck” there by suction from the oil pump any time the engine was running. So I kept inspecting, looking for any other foreign object big enough to account for what I’d heard.

After several minutes of looking around with a flashlight, I figured I’d start turning the motor and seeing if anything seemed out of place. I pulled all the plugs so that compression wasn’t an issue, and started turning the motor over. It turned nice and easy until it neared top dead center (TDC), where it halted and I couldn’t seem to continue turning it no matter how much (reasonable) force I applied. Perplexed, I went ahead and turned the engine the opposite direction. Again it turned smoothly until I had reached a full rotation in the opposite direction and it again stopped dead in it’s tracks. Hrrmnnn..

So that’s the current mystery, the engine doesn’t seem to turn over freely any more now that I’ve pulled it out, and turned it upside down! I knew it couldn’t be piston to valve contact, since it’s a hydraulic lifter motor and almost all of the lifters had lost pressure allowing all the valves to stay closed. So, more likely it’s piston to head contact. I didn’t notice any obvious signs of bent connecting rods or loose connecting rod caps so the cause isn’t readily apparent. Next step will be to yank the heads off and see if there is any obvious damage which might indicate which cylinder is causing the problem. The title to this post may be a bit premature, but I don’t suspect I’m going to find anything minor. Stay tuned as I continue to tear it down to find the problem!