Better Looking in Person

February 25th, 2008 by gnubbs

One of my favorite places to go to lunch is a Mexican joint called Efrain’s II. It is delicious and dirt cheap. An added bonus is that one of the nicest auto detailers in Boulder is in the same parking lot. So, on nice days there is usually a nice car or two out front. This past friday there were two — a Maserati Quatroporte and an Audi R8.

This was the first R8 that I have seen, and I have to say that in person the car is very sexy. From the photos, I didn’t think that I liked the blade behind the doors. This car was gold and the blade was left carbon fiber. It looked great. (Gold? Yeah, I know that the Audi site doesn’t list gold as a color option. Apparently if you can afford an R8, you can also afford a paint job.)

Was the R8 the best looking car I have seen at Bing’s?  Not by a long shot.

Site Fixed, maybe?

February 23rd, 2008 by gnubbs

Okay. I finally got around to getting things working on my blog. My new site uses Wordpress MU to manage my blog and a couple for friends and families — as opposed to just having a separate Wordpress installation for each person.

It took me a while to get around to fixing my mod_rewrite rules to redirect my old urls to my new urls. Hopefully it works.

RubyQuiz 136 : ID3 Tags

February 5th, 2008 by gnubbs

A while back I decided to take on some of the problems from RubyQuiz.  The first one that I picked was the ID3 tags quiz.  My first attempt read in the entire mp3 to get just the last 128 bytes. 

It worked, but really rubbed me the wrong way.  I spent quite a bit of time trying to figure out how to seek to just the bit of  the file that I wanted to read in.  Unfortunately, I didn’t have much luck because I hadn’t used the more low level file IO functions.  In the end, I had to resort to the RubyQuiz solution to figure that out — but it was truly the last resort.  (So what exactly was my input…)

Here is the core of the code:

  # This is the heart of the code for reading the id3 tags.  id3 tags are stored
  #
in the last 128 bytes of the file.
  def read_id3
   
    # When writing this code, this is what caused me the most trouble. 
    #
I didn’t want to have to read in the entire mp3 to get the last 128 bytes.
    #
I knew what I was tring to accomplish, but just couldn’t nail down the .
    #  seek(offset,IO::SEEK_END) on my own.  I ended up finding
    # that code (more or less) on the ruby quiz page — not from lack of

    # searching though.
    offset = -128
    @mp3_file.seek(offset,IO::SEEK_END)
    unparsed_data = @mp3_file.read

   
    # This code is pretty straight forward, after you look at the info on how id3
    #  tags are stored.
    tag, @title, @artist, @album, @year, @comment, genre_index =
               unparsed_data.unpack(’A3A30A30A30A4A30C’)
    @year = @year.to_i
    @genre = @genres[genre_index]
   
  end

The rest of the code, genres file, test code, and a test mp3 are included in the attached zip file.  Do you use autotest?

ID3 Tags Project

Maintenance Schedules

February 3rd, 2008 by gnubbs

Today I was trying to figure out what car work I need to do in the near future, and realized electronic copies of my 03 WRX and 04 Jeep Liberty maintenance schedules would be useful.

The WRX one is not exactly what subaru recommends.  There are a number of maintenance tasks I prefer to do more frequently (i.e. changing spark plugs, and transmission fluids). 

WRX Maintenance Schedule (pdf)

Jeep Maintenance Schedule (pdf)

You really shouldn’t use these — you should check the manufacturers website and use the official schedules.  

How long will it take to fix my sites?

January 24th, 2008 by gnubbs

I recently moved from Dreamhost to Joyent.  I figured it would be a quick transition.  It should have been a quick and easy move, but somehow it has now been about a month and things are still broke.

My plan is to try and get my subdomains fixed tomorrow which will cover most of the things that are still broken.

On a side note…  I like Joyent so far.  There are a couple of things that are a bit more work than it seems they should be, but nothing unreasonable.  My main reason from changing hosts is that there are some Rails apps that I would like to get online, and Rails deployment on Dreamhost currently leaves a bit to be desired.

Record In the Sun 

Desktop vs. Online apps

November 21st, 2007 by gnubbs

For a long time I was steadily marching towards using pretty much all online apps. I was happy with the move. Whether I was at my work PC or home PC, I always had my data and tools handy.

However, since getting my MacBook that trend has been starting to reverse. Here are some examples:

- Gtalk to iChat: I still use gtalk at work because they block regular connections to chat services. However the embedded chat in gmail still works. Given the choice though, the interface for iChat is just so, so much nicer than gtalk.

- Gmail to Mail.app: Well, I still use gmail. My primary interface is now Mail.app through IMAP. I like gmail, and it’s interface is great for a web app. Again, though, the interface for Mail.app is just so nice. The downside is that conversations in gmail are so nice, and search is flawless. So, I have not made this jump for sure. I probably am still using Gmail 50% of the time, and Mail.app the rest.

- Google Reader to Vienna: I just made this jump over the past couple of days. I needed to do a complete tear down and reorg of my blogs. There was a bunch of cruft to get rid of, new blogs to add, and some restructuring to do. I started doing this in Google Reader, but it was just a pain. Now that I have started using Vienna, I have to say I really like it. Browsing posts is much, much easier and faster.

I am curious to see if I stick to these conversions over the next couple of months.

Free WiFi at DIA

November 1st, 2007 by gnubbs

I just discovered that Denver International Airport has free WiFi. Generally, my biggest complaints with airports is that they want $22 for me to access the internet for 45 minutes. Good move on DIAs part.

The down sides are that it is very very slow, blocks way too many pages (BoingBoing for example), and that it injects some add at the top of all webpages. Oh well. Beggers can’t be choosers.

On another note, I have a question for that guy over there on the cell phone. What is the point of putting it on speaker and annoying everyone in the airport if you have to hold it up to your ear to hear it anyways?

The Sweet, Sweet Smell of Coolant

November 1st, 2007 by gnubbs

Notice something missing in this picture?

no radiator

If you have read this blog much since the beginning, you might remember that I have had some issues with my car and it’s cooling system. Last week my cooling issues went beyond cute and became a full on pain in my ass.

About a week and half ago, I was enjoying a 6:45am drive to work when I realized my car was overheating and spewing steam from under the hood. As I pull over, a quick check of my oil temp gauge tells me that it couldn’t have been overheating for long - it was only at about 210 degrees. That is the hot end of normal oil temps in my car. A couple of hours later, the tow truck driver drops me and my car off in front of my garage.

I immediately get to work pulling my radiator. It is friday, so I need to make sure that I figure out what is wrong and get the parts before the shops close for the weekend.

broken radiator

I can’t see anything wrong with the radiator, but based on the amount of coolant I lost and the fact I can’t see anything else wrong in the engine bay I decide that is what it has to be. Toss it in the wife’s jeep, and I head to a radiator shop. These are strange, strange places. The guy was helpful. Tested my radiator and showed me that it had split where the plastic end tanks are connected to the aluminum core.

I head to work in the wifes car and start calling around to find the replacement parts. Tarmac USA has a stock radiator in stock ($350) or can get me a nice koyo all aluminum one in 4 days ($400). I decide I would rather get rides for a couple of days and use this as a chance to upgrade.

new radiator

Since I have my cooling system drained and my radiator out, I decide this is also a good time to change thermostats. I order a Crucial Racing Coolsafe 160 degree thermostat to replace the stock 172 degree one. The nice thing about the Coolsafe thermostats is that their normal failure mode is to fail open - unlike a standard thermostat that fails closed. The downside is they are a bit more expensive ($60).

coolsafe thermostat

Replacing the thermostat and radiator is pretty straightforward on my car, and went pretty well. The two hitches I ran into were that I forgot to put in the thermostat before the radiator (cost me about an hour to pull it back out) and that I ran out of coolant when filling it. My old cooling system held between 1~2 gallons of coolant. Now it holds between 3~4.

rad with fans

rad installed

rad installed close up

Driving it around this weekend, I have noticed a real drop in oil temps. Before my oil temps would range from about 210 around town to 230 cruising over a pass in the mountains. Now they stay between 195 and 210 no matter how hard I push my car.

The last twist of the knife was that when my car was up on the tow truck I saw the inside shoulders of my front tires. Totally threadbare - I didn’t think they had gotten that bad… So, on top of everything else I had to spring for a new set of winter tires (used Nitto SN-1 with about a month of use for $350) from a fellow Pirate.

Did this all eliminate my slow coolant leak? Only time will tell.

Cars with lambo doors are lame. Most cars…

July 4th, 2007 by gnubbs

Most of the time when I see that someone put lambo doors on their car, I quietly heckle them. Or loudly heckle them and rev my engine at their civic.

There is an exception. There are cars out there where I think it is awesome. Namely, Lamborghinis. Especially if it is a Countach. I had a poster of a black one on my wall as a kid and it was rad.

Today I went for a cruise in that car. It was as awesome as I had hoped. Chicks dug me just because I was riding in that car. I totally looked like a drug dealer from a 1980’s movie. It was rad. It had a cassette deck in it. Rad!

If you are not an engineer or car guy, that is all that will interest you. Thanks for reading.

As an engineer or car guy, you will appreciate what I am about to share. My friend did not go out and buy himself a Lamborghini. About six years ago he bought a kit that included reproduction body panels of a mid 1980’s Countach. He built the rest (with some authentic Italian parts for good measure).

Chassis? A nice tubular chassis that he fabricated. It uses a small block Chevy V8 and a modern Getreg 5 speed out of a Pontiac. Shifter mechanism? A cable system that he built himself (which shifts nicer than my Subaru…) HVAC System? An original Lambo control in the cabin, interfaced to a control computer and HVAC system he built. Fuel Injection? Again, his own design. Door hinges that you can buy for every make of car in the world these days? Another piece of his craftsmanship. And they work flawlessly. Fit of the doors is excellent, and they have the best positive mechanical feel when the shut.

It is amazing to talk to him about all of the things he did for this car. With the exception of the engine, transmission, and body panels, he fabricated the entire car. It is truly amazing.

Is it as nice as a real Lamborghini? I have no idea, no one has let me play with their original. Would I have guessed that it is home built? Absolutely not. It is incredibly well executed. I always knew that he was good with a wrench, but my respect for him as a mechanic grew immeasurably today.

Impressive.

“It’s not my job to do that.”

June 29th, 2007 by gnubbs

Today I was walking through the halls at my office, asking people if they played any games, when I heard something very foreign to me. One of my co-workers made the statement “It’s not my job to do that.” It struck me as very strange, and something that I don’t think that I have ever said.

Pretty much every job description I have ever seen has a clause that reads something like “…and perform other duties as needed.” This leads me to take a very broad view of what my job is. My job is to help our customers and increase company value for our shareholders.

If something needs to get done at work, it usually falls into that very broad job description. I would never utter “It’s not my job to do that.” I can’t even imagine saying that to someone at work. When someone asks me for help with something outside my normal job responsibilities, my responses fall into one of three categories:

  • “Sure, I would be happy to help” - Any task that is easy and fast for me to do will generally get that response. An example would be the other day when one of our designers wanted to make a video from a power point presentation. I didn’t know how to do it but figured it wouldn’t take me long to figure out. She is a great graphic designer, but didn’t have any idea where to start. 20 minutes later we had what she needed.
  • “I would be happy to help, but have to talk to my boss about putting it on my schedule.” - These are for tasks that I can help with, but require a bigger investment of my time. I have been asked to create a wiki-like information management system for our mechanical engineers. I have been asked to write perl based management scripts for our production systems. I get asked to help out with web based tools for other groups a lot. It is probably because our IT group is unresponsive and I am a programming resource outside that group. Generally my boss is happy to have me help, but these things need to be scheduled based on overall priorities.
  • “Hmm… I have no idea how to help with that, but you should talk to…” - Worse case scenario is that they have come to the wrong person for the job. In those cases, I think about the other people in the business that I chat with around the water cooler and try and point them in the right direction.

With these answers, even if I can’t actually help out, the person walks away thinking that I was helpful. That is vital to my job. A lot of people here can think of times I have helped them out of a bind, and so when I need help they are usually quick to lend a hand.