Category Archives: Babbling

Scheduled Service at Car Dealership – Long Rant

For about 7 years now, I’ve been changing the oil in our family cars (and doing other maintenance tasks too). It originally started as learning something new, then I thought I am saving some money. Now I think I am saving time, because I can change the oil in the middle of the night, in my garage, instead of trying to work my schedule and the kids’ around an appointment at some shop I might trust (no, I no longer trust Merchants or the like, but that’s another story).

Actually, I think in my ’04 Matrix the only oil change I did at the dealership was the first one. And I planned on having the first oil change in my wife’s Honda Fit done at the dealership too, with the next ones done by yours truly.

My wife’s previous car was a Toyota Corolla, so it’s been very easy – both cars accepted the same oil filter and the same oil grade. The Honda being different, I did a bit of research on the Internet for good oil filters, got scared by shipping prices and decided to buy an oil filter at the local dealership when I do the first oil change.

So I did. Oil filter was $7 and change (plus $0.32 for the washer that Honda recommends to replace with every oil filter change – no comment on this). A bit more than buying it online, but less if I were to include shipping for a single item. It’s obviously better to buy a multi-pack and save on shipping, or buy a quality non-OEM filter (since the OEM ones are not necessarily the best or reasonably priced, according to several forums). A quart of 5W20 oil was $2.57 per quart (regular, not sythetic) – again, not a terrible price for a retail quart – but I decided to not buy the oil just yet. This was at the parts store inside the dealership.

After the oil change, I looked on the invoice. OK, $16 for labor, $7 for the oil filter, $0.32 for the washer, 4 quarts of oil at $2.57 per quart, plus taxes – somewhere at $35. They threw in a free carwash too.

But then, I started to think. OK, the oil filter was the same price as the one in the parts store. If I can buy online 6 oil filters for $27.19 and 6 washers for $0.96, I am sure their real price is much lower. Maybe it was separately packaged just like the one in the store, so whatever.

However, I know from watching the Toyota dealer perform oil changes that they do not waste their time with oil in quart-size bottles – Fred Anderson had an oil circuit that was probably fed from barrels of oil sitting somewhere in the corner. Manufacturers usually choose the same oil grade for most of their fleet, so it makes sense for the service shops to buy it in bulk. I am sure Honda does the same (if they don’t, they’re morons). But I don’t expect them to invoice me for the oil at the same price as the retail store.

One of the big revenue streams for car dealers is service – and they probably want customers to return. I would have been happy to see on the invoice the oil being $0.50 per quart (probably more than they pay) with a labor of $30 instead of $16 (since it took exactly an hour for the whole thing). Looking at things side by side, I may have said: ok, I definitely can’t beat the price for the oil filter they buy in bulk, or the oil they buy by the ton, and the labor is reasonable – I’ll be back here for the next oil change!

But if what they charge me for parts is what I would pay for parts at their store, which I know I can beat by shopping on the Internet, then their story for convincing me to be a returning customer is a lot less compelling.

Sorry Honda, I hope you can do your service better next time (when I buy the next car from you).

python 2.6 lameness

Python 2.5 added a new field, “message”, to the base exception class.

Python 2.6 deprecates it.

We have code (using python 2.4) that was setting “message” and “status” (related to HTTP) in a perfectly legitimate way, that now spews warnings.

Excuse me, why do I have to change code that was working just fine?

Check Engine Light

The check engine light in my 2004 Matrix came on yesterday morning. I was kinda alarmed, so I stopped at an Advance Auto Parts. They helpfully checked the code in the OBD2 and turned out it was the first oxigen sensor.

I picked up a universal Bosch oxigen sensor (the OE one was not in stock and $30 more expensive). Last night I got it installed – took me about an hour because I didn’t cut the wires long enough, and the PosiLock wire splicing that was included in the kit was a pain to get right.

After installing it, I started the engine – the check engine light was still on. I was hoping it will turn itself off while driving to work this morning, but after about 10 minutes it didn’t. So I called the store and they asked if I did reset the computer (remove one of the battery connectors, preferrably the negative, for 3-5 minutes).

That seems to have done the trick – funny this step was not included in the directions.

Total cost: $75 parts, 1 hour labor.

End of the summer

You know it’s the end of the summer when the kids are back in school. With our oldest being in a year-round school, that doesn’t quite make as much of a distinction as the “traditional” school does.

But this year the kids had a great summer. They spent 5 weeks with their grandparents (my parents), and then my parents visited us for another five weeks. My sister also visited us for a bit over 3 weeks, so we had a nice family reunion going on. Too bad I was so busy I didn’t get to spend enough time with them.

My parents left on Saturday, my sister left on Monday. My daughter was very sad that her aunt is going back home, to the point where we couldn’t make her stop crying – both Sunday night and Monday morning when she woke up extra early to say bye to my sister. Very emotional.

We’re now adjusting to being by ourselves with the kids (with the young one growing up, it’s a lot more exciting and challenging, since he’s very creative).

In other news: I decided to decline Todd and Monica‘s invitation to join them for the Rock’n'Roll half-marathon in Virginia Beach, VA. Too many people in the same place scare me (the race is supposed to have 20k participants). I’ll try to do the Asheville half-marathon, mid-September, instead.

There are lots of other things happening that keep me busy; just like in my previous post 3 months ago, I promise I will write about them in the near future :-P

Also in some future post, more about our own vacation in Paris and Munchen.

Random bits

Apparently I didn’t get in the habit of blogging short entries often.

Today liferea notified me there is a new release of WordPress that I should upgrade, so I figured I might as well post something.

First off, liferea is slowly becoming a habit. I use it to track announcements about new software (see paragraph above), keep in touch with my friends, read news from ./ and some other news sites. To the point that I have now to see how I can replicate the feeds on all of my computers. Maybe I should try a news reader from yahoo.

A lot of exciting things happened. We’ve finished upgrading rPath’s issue tracker, Jira, to the latest version. And we did it in a eat-your-own-dogfood way: it’s a software appliance living on a Xen machine, as a domU. I was involved in this initially just for the Mercurial plugin for Jira, but figured we might as well go to the latest version of Jira. I had to fix several other plugins that were broken by API change (yes I wish you didn’t have to touch plugins to make them work on newer versions). It’s pretty cool, if your reference a Jira issue in your mercurial commit message, it will get indexed by Jira and linked to the issue (viewable as the Mercurial Commits tab). This link is an example.

The software appliance lets you isolate the application from the base operating system, and it makes it trivial to update it. No mess left on the host operating system either. I know package managers are supposed to help there, I’ve been installing rpm packages for almost 10 years now, trying to achieve that. But the very moment you deploy the system in a production environment, you know things get installed that you didn’t plan for. Conary helps a lot here.

I am looking forward to version 0.45 of Inkscape to land in Foresight. The screenshots look awesome. Ken promises he’ll have it committed in a couple of hours. It’s very nice to have the latest and greatest software, and Foresight is doing a great job there. A big thanks to the Foresight community and to Ken for making Foresight a great distribution – which DistroWatch reviewed yesterday.

On the personal front, we’ve been unhappy with my daughter’s school (or maybe looking for a reason to move into a larger home). At any rate, we’re in negotiations for the repairs the seller has to perform before we close. This is exciting. Except for the hour I spent today with the heating technician inspecting the gas pack in a chilly 18 degrees Fahrenheit. And for the amount of siding that has to be fixed. Hopefully we’ll get to an agreement on this. But I had to spend a lot of time on the phone with lenders, insurance agencies, inspectors, real estate agents and the such.


Wow, almost a month from the previous post. If blogging were one of my New Year resolutions, I’d be behind already.

Anyway, I was pretty busy lately. We had friends visiting for Christmas, more friends visiting between Christmas and New Year, and an orienteering event at Lake Johnson to organize.

I’ve been playing with vmware quite a bit lately, partly for my work with software appliances (which are a very cool concept) and for Condes, the Orienteering course editor. I initially tried to run Condes under wine, and it installs and starts, but for some unknown reason all features on the map are drawn with extra thick lines/points, so everything becomes unreadable. I believe something in the way Condes displays OCAD maps. Otherwise, Condes can be run in Windows under vmware, but it’s slower. I’ve found a thread about Condes on Linux here, and I’ve chimed in, let’s see how much interest my experience generates.

I’ve also dipped my toes in the murky waters of Java programming, working on porting some jira plugins to the latest and greatest, version 3.7.1. I haven’t decided yet if I like maven or not. The fact that maven2 is not backwards compatible with maven1 (and doesn’t complain if it can’t find the .pom file) makes me a bit hesitant. Also, packaging Java applications feels weird: each application ships with all the jar files. Sure, you remove the inter-dependency between applications, you can now independently upgrade one without touching the other, but if you have a security issue and have to patch version X of a jar file, you’re dead in the water since there are no good ways you can list all applications that use a jar (that I could find, at least). That’s my 10k foot view of a subject I am not familiar with, so take it with as much salt as you like.

Back to software appliances. Isn’t it nice that when you need a PostgreSQL database server, you just go and download a PostgreSQL appliance that you unzip and start using vmplayer or xen and run it as a server? It even comes with phpPgAdmin, so you can do all the administration remotely. It literally takes a few minutes to have something up and running and not worry about extra packages you have to install, extra hardware to solve possible security problems etc.

One final gripe. I spent an hour last night with someone from Fidelity trying to understand where some of my ESPP stock has gone. To make the story short, they will gladly lose history of your purchases because the software that does the transactions uses an “oldest first” policy. Enough said. Your assets are still there, it’s not like you lose money, but you do lose important historical information.