Behind the Wheel: 1996 Chevrolet S-10

The Keithmobile-C in 2003Continuing the series of Behind the Wheel reviews of cars I’ve owned, we now move on to the predecessor of my current car… which was actually a truck. Specifically, a 1996 Chevrolet S-10 LS Extended Cab 2-wheel drive pickup truck.

This truck was a lot of “firsts” for me:

  • My first non-throw-away car (all my previous cars had been mid-80s K-cars that cost around $1,000)
  • My first car where I had to take out a real car loan
  • My first manual transmission
  • My first new(-ish) car (bought it in 1998)
  • And, of course, my first truck!

I was in college/university (living on-campus in the dorms) when I bought this truck, and having a pickup truck is great when you’re a college student and need to move in & out of the dorms each year. Although it also means that other people might come to you asking to help them move as well!

Still, this was a very good truck for me – very practical, reliable, and with a manual transmission and a small 4 cylinder engine it was also very fuel efficient (good when you’re a poor college student with little gas money!). It also helped that at the time gasoline prices were ridiculously low (remember when gas was $0.89/gallon?).

This particular S-10 was an extended cab, with a small 3rd door behind the driver’s door, and a little fold-out jump seat behind the passenger seat. This extra space was very handy for when you didn’t want to put stuff in the bed of the truck (e.g., in the rain or snow), though it was of little use for actually carrying a 3rd passenger – that little fold-out seat was not at all comfortable unless you were a little kid.

The engine in this S-10 (a Vortec 2200 LN2) was also really great – although not particularly powerful (just 118 hp). Still, when coupled with the relatively light truck body and manual transmission it had no problem moving this truck around. In fact, this truck was surprisingly nimble, all things considered.

The S-10 was also a very fun truck to drive – there wasn’t much horsepower, but it did have plenty of torque (140 lb-ft, specifically) which made it easy to… have fun in ways that my 20-something self found quite satisfying. I did always wish I had gotten 4-wheel drive, though – especially in winter. But the upside was that I learned a lot about how to drive carefully in the snow – despite the 2-wheel drive and no weight over the drive wheels, I never got stuck.

The steering was quite good, especially for a pickup truck – it wasn’t going to win any awards, but it was precise and had a good feel.

The interior of this S-10 was rather spartan by today’s standards, but for the time it was actually quite nice. The S-10 used Chevy’s then-standard instrument cluster and controls, but they were all well-laid out and easily reachable and useable without taking your eyes off the road.

truck's instrument cluster

This particular S-10 didn’t have much in the way of options – no air conditioning, manual wind-up windows, and cloth seats – but again, at the time this was fairly standard for pickup trucks. (It did have a combo radio + tape player, though!)

All in all, this was a tough little truck – hardworking, reliable, and economical – that served me well through all the years I had it. I realize I am looking at this truck squarely through the lenses of the nostalgia goggles, but I really did like this truck quite a lot – I took care of it, and it took care of me.

Behind the Wheel: 2011 Kia Soul

amanda's new kia soul 3Long-time readers will remember that I’ve reviewed the Kia Soul before – but that was the 2010 model. About a year after I wrote that review, my wife bought the 2011 model, and Kia had made enough changes to it to warrant reviewing it again. Plus, I’ve had much more time to get to know the Soul, so I can give a bit more of an informed view on its strengths… and weaknesses.

First and foremost, my biggest complaint with the 2010 Soul was the shine-shatteringly stiff ride – mercifully, this has been improved in the 2011 Soul. It is still a fairly stiff ride, but it’s no longer likely to shake the fillings out of your teeth.

The 2011 Soul retains the fuel-sipping 2.0L engine and easily manages 28-30MPG with both city and highway driving. It’s also incredibly nimble – this is a great city car that’s easy to maneuver in tight quarters and parks or makes sharp turns with ease. The engine is small and quite buzzy at times, but it suffices to get the car moving quickly – though it often needs to downshift to make that happen (the transmission itself likes to stay in higher gears; presumably for fuel efficiency). And once you’re going, the 4-wheel disk brakes do a great job of stopping you in a hurry – indeed, I almost think the brakes on this car are overkill for such a lightweight vehicle.

All models of the Soul are front-wheel drive only, which further cements them as “tall wagons” and not “crossover SUVs.” The Soul does have a traction control system though, which is actually quite useful since it is very easy to get the narrow front wheels to slip when accelerating if the roads are even just a little bit slick.

Forward visibility in the Soul is great – you sit up high enough to see right down the front hood and can easily tell where your front bumper is – but rear visibility suffers terribly due to the very thick rear pillars (and relatively small rear hatch window).

Interior room in the Soul is good (considering its size), but nothing to write home about.

All that said though, I honestly can’t say I like the Kia Soul. The steering wheel is just a little bit too small for my taste, and the steering can be a bit twitchy on the highway. The steering wheel itself has the awkward large spokes so common to cars that have radio & cruise controls on the steering wheel itself. At low RPMs there’s hardly any power in the engine, and though the transmission will downshift to get you into the power band, it doesn’t sound like it likes being there. Although a very nimble car (especially at lower speeds in the city), it just isn’t that much fun to drive most of the time.

All in all, the Kia Soul is a very good commuter car that’s versatile enough to carry people and stuff around without costing an arm and a leg in gas money. A practical car that does what you need, but isn’t that exciting to drive.

Behind the Wheel: 2003 Mitsubishi Outlander

the amazing keithmobile-DTo keep this “Behind the Wheel” series going I thought I’d mix things up a bit and give some thoughts on cars I’ve actually owned, as opposed to ones I’ve just driven for short periods of time.

We’ll begin this little mini-series with my current car, a 2003 Mitsubishi Outlander XLS AWD (which I affectionately call “The Keithmobile-D”).

To start with, the Mitsubishi Outlander is… a kind of a weird little car/SUV/thing – and I’m not just talking about its odd front nose & hood bulge. The Outlander is a strange mix of stylish “tall station wagon” city SUV and hard-working and reasonably capable “utility vehicle.”

wet mitsubishi logoThen again, I suppose this shouldn’t be a surprise, since Mitsubishi itself is kind of an oddball car company, with precious few models compared to some of the bigger car companies – especially here in the US, and especially nowadays when they basically only have 3 models – the Lancer, the Outlander, and the Mirage. But Mitsubishi has always had to live under the shadow of the bigger companies – Toyota, Honda, Mazda, and especially Subaru.

But let’s rewind back to 2003: Mitsubishi has always had a kind of competition with Subaru, what with the whole EVO vs. WRX thing. For a while there this almost seemed like it would carry over into other models, too – with the Outlander poised to compete with the Subaru Outback (right down to the similar-sounding name). Though in my opinion, the Outlander seemed more like the Forrester at the time, since it is a bit of a taller wagon/SUV shape than the decidedly station-wagon-shaped Outback.

The Outlander is kind of a weird mashup of parts from Mitsubishi’s stable of previous vehicles – the chassis is derived from that of the Lancer, but the engine is the same as the one from the Eclipse & Galant. Specifically, it chugs along thanks to a 2.4L 4-cylinder  Mitsubishi “Sirius” 4G64 direct-injection engine, which produces a somewhat underwhelming 140 HP (at 5,000 RPM) but a respectable 157 lbs-ft of torque at just 2,500 RPM. That said, the Outlander weighs just a hair under 3,500 lbs, which is a bit hefty for a car of its size, and which means it’s certainly not the fastest thing on the road – but it’s not the slowest thing, either.

It does have 4-wheel independent suspension, and it handles the bumps quite well – much better, in fact, than some more modern cars. Driving on some old cobblestone streets in New York City can be downright painful in modern cars with their stiff suspensions, but the Outlander just soaks up the bumps without much fuss or bother.

rear tail light 2Despite the somewhat soft suspension, it does handle quite well with relatively little body roll (thanks to ample anti-roll and anti-sway bars). Although the steering suffers from the usual horrible Mitsubishi turning radius, it is well balanced with plenty of feedback – there’s no problem at all just diving right into some tight corners. In fact, the Outlander is really quite fun in the corners, despite technically being an SUV. It also helps that it’s not a terribly tall vehicle, either.

Despite only having a 4-speed automatic transmission (manuals were made, but not available in the US until later model years) it does have a semi-manual mode so you can (kind of) row through the gears on your own.

One downside to the Outlander is its brakes – they are rather lame, especially by modern standards. At the time, anti-lock brakes were an option, and the 2003 models were only available with front discs and rear drums – it wasn’t until the slightly revised 2004 model that they got 4-wheel disc brakes.

With 8.3 inches of ground clearance the Outlander does reasonably well off-road (compared to other car-based SUVs), although it really is more of a “soft-roader” than an “off-roader.” Plus, though it has AWD (full-time via a center viscous coupling unit with a 50/50 front/rear split) the front & rear differentials themselves are fully open, so it isn’t meant for true hardcore off-roading.

One thing the Outlander does have going for it is utility – it is a very useful car. Unlike some other small SUVs it seats a full 5 people without any trouble and yet still has plenty of room in the back for stuff. Fold down the seats and the Outlander can carry an impressive amount of stuff. Also unlike a lot of modern small car-based SUVs, the Outlander can still tow – although not very much, thanks to its lackluster brakes.

It also has one of the best instrument clusters I’ve seen in recent years – easy to read in both full sun and at night, regardless of whether you have the headlights (and thus, the backlights for the gauges) turned on or not.

keithmobile instrument cluster at night

All in all the Outlander is a well-designed, well-thought-out little SUV, which I think could have done quite well. Sadly, however, very few people bought the Outlander, and in subsequent years Mitsubishi enlarged it, making it into a bigger, heavier, more expensive people-mover SUV. (The current model Outlanders come with 3 rows of seats, for example, along with  lower ground clearance, and a price nearly twice what they were originally.) Mitsubishi used to have a larger SUV, called the “Endeavor,” which fit in the next segment above the Outlander, but it looks like that’s been removed and the Outlander was pushed up into its spot – leaving no small SUV to take its place.

If Mitsubishi had stuck with the same body size, and added a stick shift & a turbocharged engine as an option (both of which were available in other markets worldwide, just not in the US), I think the Outlander would’ve been a hit. But since they didn’t, we’re left with just a few examples of what could have been.

Still, if you’re in the market for a small, fun, useful SUV and don’t want to pay a lot, a used Outlander from 2003-2006 might be worth looking at. If it’s in good shape and has been taken care of, an Outlander is a great alternative to one of its Subaru contemporaries – and probably at a lower price. I know I’m biased, but I’ve been very happy with my Outlander – I bought mine new in 2003, and as of this writing it just ticked over 190,000 miles with no sign of slowing down.

Here’s to that SUV with the funny looking nose from Mitsubishi!

Things I Wish I’d Known When I Started Programming

codeI’ve been programming for more than a few years now, but sometimes I like to look back at things I wrote when I was much younger, and reflect on how much I’ve learned since then. Of course, no one expects you to start out knowing everything, but there are a few things I wish I’d known when I started, or that I’d learned a bit sooner than I did. So, just for fun I thought I’d come up with a list of a few of the things I wish I’d known when I started programming.

Use Source Code/Revision Control

Like a lot of young developers, when I first started writing code I didn’t use any sort of source code/revision control system (just zipping up the project files every so often doesn’t count). But once I did, I realized how wrong I’d been – having a complete history of all changes is just sooooooooo helpful, even without any of the other features (branches, merging, etc.).

Now, there is a bit of a learning curve with any revision control system, and when you’re just starting out that learning curve can be a bit steep, especially in addition to all the other stuff you’re learning at the same time – but it is so worth the time and effort. Being able to undo changes, or make different changes to the same code (via branches), and just in general having a nice, detailed history of what you’ve done and what’s changed over time is simply invaluable. This is especially true if you’re part of a multiple programmer team, but it’s also just as true if you’re working by yourself.

For anything beyond 5-minute throw-away projects, use source code revision control!

Write Comments So That You’ll Understand Them Months or Years Later

Writing comments is like writing a log entry that you’ll inevitably need to review much, much, much later – so taking the time to write it clearly is well worth it. Countless times I’ve run across old comments of mine and wondered “what was I thinking?”

Same goes for commit messages – brevity may be the soul of wit, but not when it comes to commit messages! You shouldn’t need to do a diff on a particular commit just to figure out what you did; the commit message should at least give you a general idea.

On the flip side, though, you don’t want to be writing novels in your comments or commit messages, either – so write enough to be understood, but don’t be needlessly wordy, either.

Automate the Build & Deployment

It doesn’t matter how many times you’ve gone through the process of compiling or deploying a build, someday you will forget a step. And it’s also just so nice to be able to kick off a complete build & deploy with a single click and then go grab a cup of coffee or something, instead of having to sit there and go through all the steps manually. So take the time to write a script to automate the process – it doesn’t need to be super-complicated, just something to do the work for you. Believe me, it’s worth it.

No Fix or Change is Ever Too Small to Not Test

Also known as “TEST EVERYTHING,” this one’s a hard rule to stick too, especially for really small things like changing a typo in some text – but you still have to do it. It might seem like a tiny change that couldn’t possibly cause any problems anywhere else – but code is complicated, and complexity breeds bugs in the weirdest ways. Maybe that little text change you made causes a display issue at higher DPI settings, or when using a different font – you won’t know until you test it.

If You Find a Problem, no Matter How Small,  Put it in the Bug Tracker!

When making a fix – even for a small, seemingly insignificant problem – if it’s in production code (or in a released beta build), you’d better be writing up a bug report for it. Just making a comment in your SVN commit log isn’t enough – you need a proper report that can be searched and found and referenced, because someday, maybe years from now, you’ll need to know how or why you made this change.

(I will make an exception here to “fixing a typo” text-only changes, but only just.)

Always Write a Spec (But Don’t Write a Novel)

Just as fixing (seemingly) simple bugs can have unexpected consequences, designing and adding simple features or changes can turn out to be unexpected complicated. Writing a spec – even if it’s just a quick outline on paper or on a whiteboard – can help immensely in heading off these unexpected complexities. (Or, at the very least, you’ll know there are complexities and can design around them.) Good software should always be designed first, then coded – and writing a specification is part of the designing step (if not the entirety of it).

At the same time though you don’t need to write a novel’s worth of specifications, even for complicated changes or features. If the spec is too long (or goes into too much detail) then no one will read it – yourself included. If your spec just has to be that long, then maybe the feature or change you’re planning should be broken down into smaller parts first. Finding the right balance between length & specificity is a skill that takes practice to get right, but it’s one that’s worth learning.


These are just some of the things I wish I’d known when I started programming all those years ago – if you have things you wish you’d known, feel free to share them in the comments!

We’re Not Ready to be a Surveillance State

Recent news has revealed what many already suspected – we have become a de-facto surveillance state. The problem is: we are not at all ready to be a surveillance state.
1984 was not supposed to be an instruction manual for a surveillance stateRecent news has revealed what many already suspected – that we are (or are about to become), a de-facto surveillance state. The problem is: we are not at all ready to be a surveillance state.

The kind of surveillance that was previously only in the realm of dystopian fiction has been revealed to not only be possible, but to be taking place right under our very noses, without our knowledge, our consent, or what we would consider proper oversight.

The thing is, we’ve been headed in this direction for a long time – companies have effectively been doing this for years now. What’s changed is the scope of the  surveillance, and the government’s involvement in (and use of) that surveillance.

This sort of surveillance is a by-product of the digital age we live in, and is not, by itself, a bad thing. What is bad is that government is getting deeply involved, and it is doing so very quickly, and without a chance for public debate (or even without the public’s knowledge!).

In light of the seeming inevitability of increased surveillance and data collection, and to prevent the absolutely certain slide into despotism and a de-facto police state, you need deep, fundamental protections against misuse of data – and such protections need to be built in, from the start – they are not the sort of thing that can be added on afterwards.

Technology is progressing so rapidly that our laws simply cannot keep up – even the ways we create laws is still largely stuck in the last century, so that even if we try to adapt to new technology, by the time we’re done, it’s too late.

Even more worrying is that even though our laws can’t keep up with technology, that’s not stopping our governments from taking advantage of that technology – and that creates a huge problem.

In a way this is like having a really old machine that we’re trying desperately to keep running, even though the manufacturer has long since gone out of business, and the purpose for which the machine was originally built no longer exists. Instead, we keep replacing parts as they break or wear out – which takes longer and longer, since we have to rebuild them from scratch (since no one makes them anymore). We keep trying to get the machine to do things it was never intended to do – bolting on additions and making adjustments, all without really knowing how it will affect the overall functioning of the machine, or even if it’ll work the way we want it to.

Programmers in the audience will recognize this pathological pattern of behavior – any large software system will often find itself in this very same situation. And when faced with this kind of situation, often the response will be to just throw it all out and start over again from scratch.

In law, as in software, the argument against doing this is usually “why throw it away, since it still works” or “why fix what isn’t broken?” But I think it’s clear, especially in the face of new technology and what we’ve learned recently is being done with that technology, that things are in fact NOT working, and that the system IS broken.

doubleplusungood (1984)We either need to start over, or more practically, immediately begin reforming the ways we deal with technology – from the ground up. The pace at which we adapt needs to keep up with the pace at which technology changes – the way we debate laws, the way we vote, the protections & systems needed to prevent abuse – all of these things need to be updated, and they need to be updated in a hurry.

Until our laws are fundamentally overhauled to provide the same kind of deeply embedded protections in this digital age that we previously enjoyed before computers existed, we simply are not ready to be a surveillance state.

That such a surveillance state is being created, before we are ready for it, is deeply disturbing and either needs to be stopped right now, or a concerted effort to reform our laws needs to happen, yesterday.