What Programming Taught Me About Car Repairs
I didn’t realize it at first. Had I remembered my programming classes, I would not have wasted two days last weekend breaking my car. And once again, my neighbor had to save me.
The repair I was attempting was pretty simple. My instrument panel was missing some lights. Okay, it was missing A LOT of lights.
No problem. I’ll just pop the panel out, repair it and pop it back in. Piece of cake.
Yeah, it didn’t go that smoothly. Getting the panel out was actually pretty easy. There are some plugs you have to pull out of the back. THOSE were a pain. Literally, my finger tips are still numb three days later, but other than that, it popped right out.
That’s where the problems began. My first problem was I got lazy. I looked at the back of the panel. To change the bulbs I needed to get access to, I was going to have remove 23 screws and then pull out over 30 bulbs and test them to see which were burnt out.
You know what would be easier? Using a spare. I had not one, but two spare instrument panels.
I soon learned that the other panels had just as many burnt out lights as my panel; more in fact. But, I really didn’t want to go to the trouble to disassemble the panel. I picked the best of the three and decided it was good enough.
It wasn’t.
On the test drive I discovered that the speedometer didn’t work on this panel. Meanwhile the original panel, with burnt bulbs and a working speedometer was in the trash where it had some solvent had been spilled over the back of it.
Okay, fine. I’ll just go back to the original.
Except that the original panel no longer worked. The solvent was shorting out all sorts of it.
I know what I’ll do. I’ll swap out the circuit board from a working one on my original one.
And that’s when it literally blew up.
There’s a concept in programming called “atomic.” It’s the idea that something has been reduced or simplified as much as it possible can. For example, if you are creating a program and you need to display a button on the screen, you can position the button, and give it text, but you cannot crack open the button code and change the inner workings of it. You can use the button control, but you cannot modify it.
At least you aren’t supposed to. I ran into a problem with this concept when I worked at Microsoft on the Accessibility team. We were trying to expose controls like buttons and dropdown lists, in fact all the controls, for screen readers for the blind.
So, while a button might be labelled CANCEL, if that button were partially covered by another window, we wanted to only expose the part that was visible. To do that, we had to break the atomic aspect of the button control. It wasn’t good enough to ask simply for its name, we had to ask for only part of the name; the visible part.
The guys writing the controls hated us. They wanted to put a big strong wrapper around their control to prevent people from doing exactly what we were trying to do. Because if you get inside the button control and you happen to mess something up, you could break all the buttons in a program.
And that’s what happened with my car. I pulled out the circuit board (that green filmy thing) out of one display panel and dropped it into my original display panel.
And that’s when it broke. By “blew up,” I mean that I broke it badly enough that I could no longer fix it. I literally shorted out some of those thin connectors. I didn’t realize that until my neighbor came over on Sunday to help me try to fix my car before I had to go to work on Monday.
Rodney, see that spot where you can see the copper showing through?
Yeah.
That’s your problem. You aren’t supposed to see copper. You probably shorted it out when you swapped the circuit boards.
You can fix it, right?
Now that I know the problem, absolutely
The instrument panels were interchangable. They each took the same three connectors on the back. They fit perfectly into the dash. They were identical in every aspect. . .UNTIL I cracked open the cases. I broke the atomic aspect of the panel. As I looked at them, they even had different part numbers.
While my neighbor was soldering a jumper around the burnt spot, I went through and tested every bulb.
Over half were bad. I then replaced every bulb on my original panel. We put it in place and thanks to the fact that we actually did the work required, this time it lit right up.
A funny side note, the odometer is part of the instrument panel. So, my car started the weekend with 252,000 miles. On Saturday when I put in the replacement panel, I instantly added 35,000 miles. The new panel odometer was 287,000. I think shaved those 35K miles back off as I put the original panel back in.
My gas milage for the weekend was awesome.
Rodney M Bliss is an author, columnist and IT Consultant. His blog updates every weekday at 7:00 AM Mountain Time. He lives in Pleasant Grove, UT with his lovely wife, thirteen children and grandchildren.
Follow him on
Twitter (@rodneymbliss)
Facebook (www.facebook.com/rbliss)
LinkedIn (www.LinkedIn.com/in/rbliss)
or email him at rbliss at msn dot com(c) 2015 Rodney M Bliss, all rights reserved
Sounds familiar in a way.
One of my favorite shows growing up was a PBS show called “Connections.” The host showed how seemingly random events all tied together to produce our modern world.
I tend to see those type of connections in random things. . .like fixing cars and writing software code.
I’m glad others see those connections too. Otherwise my posts would look like completely random disjointed collections of topics.
Software can indeed be connected with surprising topics. As for failing in trying to take apart proprietary things, I’d say tweaking into black boxes is merely humane.
ripples and cascades. People do this to my screenplays and narratives all the time.