Programmers and Light Bulbs

April 1998



A joke that has been running around the industry asks, "How many programmers does it take to change a light bulb?" The answer of course is, no amount of programmers can do that because changing a light bulb is a hardware problem.

I have been more fortunate than most programmers when it comes to hardware fiddling, because most of my career has been in the area of industrial process control and embedded systems. Both of these areas require an integration of your computer directly to sensors and actuators of some external device, like a Widget manufacturing machine, and that necessarily gets you heavily into the guts of the hardware of your computer.

I did take all the standard physics courses that any Chemist in training would be expected to have, but none of these were very helpful when it came to figuring out which wire should connect to what plug. This academic background did prepare me to figure out maybe the amperages flowing through the circuit, but nobody ever brought up what a circuit diagram was for, or how to read it, or what the symbols meant. Some years after college graduation I did take a basic electricity course with lots of lab work at a local (California) community college, but after I blew up their oscilloscope they suggested that I do less lab and more book.

Fortunately for me, my original boss was a hardware guy who in a previous lifetime had designed computers for Control Data, and knew Seymore Cray on a first name basis. When he saw what a hardware klutz I was, he quickly hired an electrical engineer, David Cummings, to handle everything on the Outside of the computer memory, while I handled everything on the Inside of it. I was able to learn quite a lot on the job, working with and watching this guy. David was about 10 years older than me, and in his day, EE's did not program, and in my day, programmers did not use soldering irons and oscilloscopes. Between the two of us, we knew just about everything then worth knowing about computers and computer systems. Isolated, neither of us was worth the paperwork to fire us. We worked together for 15 very interesting years before David decided to retire and make wine in the Napa Valley. (I recently sent him a sweatshirt that had a picture of a bunch of grapes on it that said, "Crush me, Stomp me, Make me Wine".)

When I started in this business in 1968, so called minicomputers came in racks 19 inches wide by six feet high, and it generally took two or more such racks to hold a 16K computer with no disk drive. (A 5mb disk, if available, was generally in its own separate rack.) Compared to today's jam packed cases, these racks were quite easy to work with because you had lots of space to run wires, insert your circuit boards, bolt on connector panels, and add in your process I/O equipment. If something busted, or at least needed to be diagnosed, you could get right at the particular device in question, and of course in those days to fix something you did not throw away the board, you actually located the faulty transistor and replaced it.

Even 15 years later, minicomputers still came in racks, the difference being that you had a lot more stuff packed onto fewer circuit boards, and the speed of the circuitry was starting to catch up with the speed of light, so you no longer had the luxury of fanning out your circuit boards onto a lab bench for diagnostic work, but had to find a way to test them in place. One manufacturer we used had a bus slot on the Front of the computer, so that you could take a circuit board out of the mainframe and plug it in onto the front, and do all your diagnostic work right there without a lot of other stuff getting in the way.

The Personal Computer, even the industrial strength ones that we buy today as servers and Unix hosts, no longer give you that choice. Even the largest tower configurations still have cables and wires running every which way, all of the circuitry is either on the motherboard or directly plugged into it, and all of the peripherals are jammed into a tiny rack space usually with the business end pointing in the wrong direction.

The documentation that comes with these systems is execrable. You get a brand new system, and what does it tell you about what is inside? What kind of memory modules does it need? What kind of motherboard does it contain? What are the jumper settings on all the cards and the motherboard? Can it be upgraded, and to what? The industrial systems of 20 years ago came with complete circuit diagrams, which you really needed, because that stuff was absolutely going to break sometime, and you or your repairman was going to have to fix it, and that generally meant changing out chips. Today indeed you boardswap, but still, just to add on new stuff, or replace the existing stuff, you need some details of what is there, and all too often, you don't get any.

We have less need for full electrical engineers now, but we do need and rely on technicians, because it is still the case that programmers are total klutzes when it comes to hardware.

I managed to prove this to my spouse right at Christmas time. In my recent February article, I indicated that I needed to add on a second parallel print port to my home computer. I had already put one in, and it worked fine enough, but it seems that parallel cards come in various levels of sophistication now, starting with the unidirectional bang bang approach of the original Centronics parallel port that has been on every PC since IBM first delivered them, to having EPP (Enhanced Port) mode, needed for bidirectionality, and finally ECP, or Extended Capability Port mode, which uses a DMA transfer mode to let those bits really squirt like a firehose in and out of your port. The $14 card that I bought did not have ECP mode, and so I went and picked up a $30 card that did. (To see why, wait for the September issue to come out).

I hate cracking the case on these computers. For one thing, all the hardware guys at work try to scare me with horror stories of static electricity and how a simple zap can blow apart your whole system. (The funny plastic wrappers that circuit cards come in nowadays are supposed to guard against such zapping in shipment.) Every time I do crack the case, my cats always figure that is a real good time to come rubbing against my leg while I am fussing around inside the case, thereby charging me up. For another thing, my pudgy fingers really do not fit well inside the cramped confines of even a tower case, especially with all the junk that I have in there.

A couple of months before this, I added an extra 16MB of memory onto my system. Or attempted to. The store handed me these two dinky little strips of plastic containing four chips apiece, and while I knew where to put them, I just could not get at the place where they were supposed to go. Too deep inside, too much junk surrounding. I called the store back and they said, sure, for fifty bucks they would be happy to install the stuff I had just bought from them at about a C note. I thought not, and finally found a way to get it in there. (Its called: bring in a friend that knows what he is doing and will work for beer.)

But for this parallel port board, there was no problem. I knew where it was to go, it was reasonably accessible, and it was not going to be a rocket science project. (Reminds me of a cartoon I saw where these white coated guys are walking around what looks like a missile factory, and the caption is "why yes, this Is rocket science, actually!"). My spouse kept telling me that every time I fiddle around in there, I get all angry (true), red in the face (true), frustrated (true), and profane (very true), and so why don't I just take the thing to the store and have them do it. I lied about how I work with this stuff every day at World Wide Widgets and did not need no store to do this simple job. I left out the part that we have a technician and two systems administrators that really do all this stuff for us.

To make a long story longer, I plugged the new card in, powered up the system, and nothing happened. I mean nothing. No reboot. Didn't even see the Bios screen. So I took the card out, and still nothing. Nada. Zip. It did not take even me very long to figure out that I had fried something, but it was gonna take more than what I had available to figure out just what got toasted.

At this time, with the continued helpful suggestions of my mate still encouraging me to seek professional help (me, a guy who takes very seriously the ingrained Male Creed about never, ever, asking directions for anything, anywhere, anytime), I decided to let my fingers do the walking. The December issue of the Spokane ComputorLink lists 11 different companies who do some sort of computer service. While I had consulted with some of them when I was buying my laptop I had not really given much thought to their repair facilities. So I used the most rational method I knew of to get some help, and looked for the largest ad.

This got me connected with Art, owner, chief technician, sales manager and janitor of one of these eleven companies. I felt very comfortable with Art, since one glance around his office/workshop made it very clear that I was in geek heaven. There were so many racks full of computer parts, wires, diagnostic manuals, hardware and software books, test equipment and workbenches that there was essentially no room for the two of us to move around without going through an elaborate stork dance. I started giving Dr Art my list of symptoms, and he sat there and clucked about how the prognosis for this patient was probably not too serious, certainly not a cpu-ectomy or a diskdriveobotomy. In fact, he said, it is not uncommon for parallel port boards, especially when bought from a non ComputorLink advertizer (as I humbly confessed I had done this one little time) to fry your video card. So he plugged in a new video card, and up came the bios screen. Unfortunately nothing else came up with it -- no disk drives were found, no floppys, squat, just the bios.

Art said to go away, that this may take a somewhat more serious operation than he had originally expected. We would probably have to give birth to a new motherboard, and that would take some work. A day later (actually, on Christmas Day it was!) He phoned to say that there was Good News, and Bad News. The good news was, he was able to save the CPU and memory chips, but did have to put in a new motherboard. However because my system was all of three years old, the newer technology in this motherboard allowed me to toss my disk controller board, and my floppy/comm channel board, all of which was now embedded on the new motherboard. Also, any time in the future, I could upgrade my CPU chip to up to 266 MHz, since the motherboard would support that speed. The bad news was, my sound card got fried too, and to replace that he would also have to replace my cd-rom, which connected to a port on the sound card. However, my existing cd_rom was only 3X, and he could get me a new 20X cd-rom that would plug into the extra IDE ports that came with the new disk controller on the new motherboard.

So, thanks to my skill at installing a $30 parallel port board into my home computer , I ended up with a new motherboard, which is capable of being upgraded to a faster CPU, new 4 port IDE disk controller, new comm controllers, new floppy controllers, a second parallel ECP port card that actually works, installation of a third disk that I had laying around but was too nervous to install, a faster CD-rom, a 16 bit sound card, and the strict understanding with my spouse that I will never, ever, crack the case on this thing again. My modem is only four months old and except for the video card which somehow turned out to be just fine after all, I have essentially a brand new system for about $350.

Of course, none of this would have happened, except for the fact that I thought I could change this parallel port light bulb all by myself, something my better now knows for me not to do. So what happened to cause all this? There are two probabilities: the first, and most likely, is cockpit error, where I shoved the board in the wrong way or something. A lesser possibility is that the board was somehow defective, but there would be no way of ever knowing that. The more likely possibility is that the insertion tool was defective.



Read Next Article -->

Return to Home Page ^