I’m not dead (nor is this website), I’m just extremely busy!

School, work and life sure have a way of making life crazy for you. I’m hoping to get to the point where I can update everything on my site from random thoughts that have been bouncing around my head to talking about the new workout routine which I haven’t had a chance to get off the ground — and if I’m feeling saucy, my PhD work.

Once I get my PhD proposal done and accepted, I’m hoping life can slow down just a shade so I can catch my breath, then push on through to the end when I find out if the light at the end of the tunnel is a train or daylight.

Fixing jExcel’s performance issue while running in a web application

Hopefully this post will help people who are experiencing performance problems with jExcel inside of a web application environment like Apache Tomcat, Websphere, and the like.  The short version of the post is this: if you’re experiencing a lot of slow-down while jExcel is being called set this switch in your web-application environment: jxl.nogc=true.  If you’re using Tomcat you’d modify the CATALINA_OPTS setting to be something like this:

CATALINA_OPTS=”…. -Djxl.nogc=true ….”

Now, the full explanation:

I use jExcel to create Excel documents on-the-fly.  It works really well, is simple to use, and is extremely fast; however, we were running into issues after creating the first Excel document.  The time spent creating the Excel spreadsheets to be written increased more than seven times after the first spreadsheet document was created.  Of course, this unacceptable, so I was tasked with finding the solution.

I loaded up the jExcel source code and began tracing through it figuring out how Excel documents are created within jExcel.  While I was searching, I was sent the following tidbit of information by one of my coworkers who was looking at the high level and stumbled upon it through this website (I would have eventually found this bit comment, but I’m glad he did since it saved me a lot of time).  The important bit of information is this in the WorkbookSettings class:

/**
* Flag to indicate whether the system hint garbage collection
* is enabled or not.
* As a rule of thumb, it is desirable to enable garbage collection
* when reading large spreadsheets from a batch process or from the
* command line, but better to deactivate the feature when reading
* large spreadsheets within a WAS, as the calls to System.gc() not
* only garbage collect the junk in JExcelApi, but also in the
* webservers JVM and can cause significant slowdown
* GC deactivated using -Djxl.nogc=true on the JVM command line
* Activated by default or by using -Djxl.nogc=false on the JVM command line
*/

The switch jxl.nogc was set to deactivate the manual call to Java’s garbage collection and the time spent setting up the Excel workbooks dropped by a factor of six from when we first tested the application.  Without the nogc activated jExcel performs a full garbage collection after certain operations are done within the jExcel code.  Which, as you can guess, full garbage collection while handling a request destroys any sort of quick response time that you might have been hoping for.

How to have a bad day at the track

Yesterday, I decided to take off from work a little early since I had hit my 40 hours around lunch time and go to the track with my now running 911.  I figured I’d get a few sessions in wearing my firesuit and all the safety equipment along with breaking in the tires all the way.  Although it was around 85 degrees I knew I’d have to get used to wearing the suit and see how important a cool shirt would be.  I started on my session and was slowly building up speed as my tires were getting heat into them and becoming broken in (as a side note, from now on, I’m paying for heat cycling of tires) the car was feeling really good and strong.  I had two laps left and as I was going down the cork screw section of the track at The Driveway, my car lost all power and began coasting, smoking was coming through the vents into the cabin.  I managed to get it into the grass, kill the power then open the trunk armed with my trusty fire extinguisher (who would have thought it would come in handy so quickly?) only to see that my battery holder had come loose and caused the positive terminal battery cable to weld itself to the side of the trunk.

An impromptu welding session

Woo! I didn't need that terminal anyway.

This bolt loved my car so much it didn't want to let go.

I ended up spending the other three hours at the track fixing my car with the help of The Driveway staff.  The total tally was one new battery cable, one set of battery terminal covers (bought and installed today), blue locktite, and one track session cut two laps short.  Well, at least I’ll have tomorrow to go get myself some track time in.

Now with battery terminal cover goodness

As for any lessons learned, etc.  Always blue locktite bolts and use battery terminal covers.  Oh, and get some tow hooks.

Putting the 911 on a weight loss program

Now that the 911 has its kill switch installed and is all sorted out and running, it is time to start adding lightness to the vehicle.  I’m first going for the free to cheap lightness adding methods.  I’ve already done some of it such as: going to a lightweight battery, stripping out the interior of the vehicle, backdating the heat, and removing the windshield washer reservoir.  However, it has come to lose some more weight off the car; but, I’m not going to remove the most obvious: the air conditioner.  I love my A/C — especially in the summer and especially while I still drive the car on the streets.

Of course, you ask, why would one want to reduce the weight of their vehicle?  There are lots of reasons for reducing weight on the 911 (and any other car).  First, the less weight you have to push around the track the faster you can accelerate and take corners.  It also makes other components in the car last longer like brakes, brake pads, and tires.  It can also help increase fuel economy, and finally, the best reason of all: a 10% reduction in weight is roughly equivalent to a 10% increase in horsepower.  The most common places to begin removing weight are from the unsprung items like brakes, wheels, trailing arms, etc.  Next comes weight from high up on the car (sunroof, etc).  After that, weight at the rear of the car, then weight from the front of the vehicle.

The cheap ones I am working on are: stereo system removal, remove of the rest of the windshield washer system, removal of the oil cooler fan in the front passenger side fender, and installation of headers (removal of the stock exhaust system).  With the exception of the headers, I don’t believe the other items will amount to a lot of weight saved initially; perhaps 10lbs to 15lbs total, but every bit helps.  The headers will knock a fair amount of weight off the vehicle since the stock exhaust parts are quite heavy and not exactly optimal for getting the most power out of the engine.

Once these easy ones are complete, then comes the harder and/or more expensive parts: replacing body panels with fiberglass or carbon fiber body panels.  At this point, it becomes a how much do you want to spend proposition.  The carbon fiber parts add about $300 over the price of the fiberglass part while weighing a pound or two lighter in most cases.  Replace the glass windows with Lexan is another place where weight can be lost but I’m not at that point yet.  Once the car is a full track vehicle, Lexan windows are in.  Removal of the sunroof and the associated electronics can drop a good 40lbs off of the top of the car, lowering the center of gravity.  Taking it a step further and replacing the steel roof with a carbon fiber or fiberglass roof can reduce the overhead weight even more.  Like I said, it becomes “how much do you want to spend to be lighter?” question.

For me, when this is all said and done, my end goal is to have the car weigh in at a maximum of 2400lbs with A/C and an empty gas tank.  As of right now my car weighs 2588lbs, so can I find an additional 188lbs to drop off the car while still maintaining an ability to drive the car on the street on the weekends?

Effectiveness of Penetrating Oils

This information has been posted on numerous bulletin boards and passed around in emails for a long time and somehow I keep deleting it every time I see it.  Well, no more.  I’m posting it here so I can see it and anyone else who is interested in it can as well.

Penetrating Oils Compared

Machinist’s Workshop magazine actually tested penetrants for break out torque on rusted nuts. Significant results! They arranged a subjective test of all the popular penetrants with the control being the torque required to remove the nut from a “scientifically rusted” environment.

Penetrating oil           Average load

None ………………… 516 pounds

WD-40 ……………… 238 pounds

PB Blaster …………..214 pounds

Liquid Wrench …… 127 pounds

Kano Kroil ………… 106 pounds

ATF-Acetone mix… 53 pounds

The ATF-Acetone mix was a “home brew” mix of 50 – 50 automatic transmission fluid and acetone.

Note:   The “home brew” was better than any commercial product in this one particular test. A local machinist group mixed up a batch and all now use it with equally good results. Note also that “Liquid Wrench” is about as good as “Kroil” for about 20% of the price.

I’ll be testing out some Liquid Wrench and PB Blaster and maybe even the home-brew ATF-Acetone mix in the near future since I’ll be trying to remove the exhaust system from my 911 in the near future.  Can you say 24+ years of dirt, grime, and maybe a little rust on them there exhaust nuts?  If we go by how bad the stuff is for you, I’m not surprised the ATF-Acetone mix is #1.