...making Linux just a little more fun!

<-- prev | next -->

Column: IT's Enough To Drive You Crazy

By Pete Savage

Pete has the good fortune to be employed - which includes the bad fortune of having to wrestle with an outdated operating system on a regular basis. In order to stay sane - although some, including perhaps Pete himself, would argue the term strenuously - he a) uses Linux on his own time, and b) rants about his trials and tribulations here in the Linux Gazette, where we're happy to help a fellow Linux user escape the less-sublime facets of his non-Linux reality. (Face it: most of us would drink heavily or kick defenseless puppies. Pete's coping skills rock.)
-- Ben

So we come to the second article in the now-serialised, "IT's Enough To Drive You Crazy". I pondered on whether the previous article was a one-off, or whether it was something that would be happening on a regular basis. The optimist inside me cried "One-off, one-off"; the realist, however, took to hiding in a tiny corner of my mind, right after scrawling a hand-written note that said, "You will never escape." Well, give that man a pie - he was actually right. After a short consultation with my editor, he decided that it would probably be beneficial to my psychological state to vent my anger in a quiet and constructive way, such as writing an account of everything that happened. "Like a diary?" I chirped. Exactly. I dug out my Transformers note book, complete with 'Skool is Cool' stickers (remember those?), and prepared to write. I hoped it would take me several days before I would have to write in it. I was wrong.

I was caught early on Monday by a colleague who wanted to print something. On inquiring what was wrong with his printer, I was told that it was broken. On any normal day, this would probably mean that the OS in question would have forgotten what printer was attached, and would probably refuse to acknowledge that any kind of printing device was attached to the computer at all. It gets to the point where sometimes you want to take the advice of some of the computer comedians and plug a webcam into the computer to actually demonstrate how ridiculously stupid it is being. Owing to the fact that I didn't have a webcam, as well as the the imminent danger of my colleague's head exploding, I opted for a more surefire approach: I unplugged the printer from one USB port and plugged it into a different one. The next thing that happened both confused and infuriated me, though it wasn't something that was new to me: the printer was detected and installed as "Canon i9100 (2)". 'But I already have a "Canon i9100"!', I screamed, 'Why can't we use the same one?' There were six USB ports on this machine. I resisted the temptation to try each individual USB port, and put it down to the fact that the machine obviously had disowned USB. Maybe it was fed up with all of those USB 2.0 devices that could perform faster.

To cut a long story short, the printer still didn't print; my colleague's head actually exploded, which almost negated the need for printing the document; the printer ran off whimpering into the corner; and I lost all faith in this OS's ability to handle USB. My decapitated colleague handed me a USB stick. "It's stored on 'ere, can you print t'off that instead?" Does a chicken have wings? I assured him that it would all be fine and that I would have his documents ready on time. Not that it's my job to print them, but I'm a nice guy, right?

Tuesday started worse. I entered my office and sat down at my desk. As part of my morning ritual, I let out a large sigh, which I always seem to do at 7:39 in the morning. I took the USB stick I had been given yesterday, and leaned over to gently insert it into my machine. I ignored the spaghetti-like mess which appeared to be leaking out of all electrical appliances in the office and congregating around my computer. Then, the sort of premonition I described the last time occurred again (I suppose I really must find a name for it - how about a MOIDAF? That is, a Moment Of Impending Doom And Frustration.) I sat back up, took a sip of water and waited for the familiar, "You are obviously too damn lazy to open the drive up yourself, so let me do it for you" prompt to appear. It never did. I took out the USB stick and tried again. Vague memories of the previous day entered my mind and I was forced, against all better judgment, to try another USB port. Still nothing. My machine still sat in a state of some confusion at the object which had just been inserted into it. It seemed to be treating it like some kind of annoying pest, and ignoring it.

I eventually figured out what was wrong. It was simple, really: my computer had suffered a bout of selective amnesia and simply forgot it had a USB device attached at all. How useful. Apparently this kind of thing is not uncommon. If I had been given some kind of explanation for this, I may, and I repeat may, have forgiven it just this once. After a trip to the control panel, the USB port was found again - surprisingly - and all was well. The unanswered question from this experience, however, is "what drove my computer to disown its USB ports in the first place?" I had no logs to check, no way to see what drivers were loaded into the system - and hence, no way to find out what the hell had caused this medical disorder. I do hope it isn't catching. Had I been using my Linux box, I would have a plethora of logs, events, and such. I could have even run an 'lsmod' command to find out what drivers were loaded, followed by the possibility of a 'modprode' command to reload the USB driver. I'm fed up with people inventing excuses for operating systems.

"It's a Thursday. It never works well on a Thursday."
"Everyone else's seems to do the same thing, I thought it was normal for it to do that."
"I think I scared it when I talked about Linux in front of it yesterday."
"It likes to hog all system resources, that's just it's thing."

Why should we as users have to create excuses for an operating system that should be designed with us in mind? [1]

Sorry, you must forgive my pedantic babbling. Some would say it comes with the territory, others would say I'm just a grouch. I like to think I'm somewhere in between. Now, where was I? Ah, yes. Wednesday. It strikes me as odd that this particular problem could have evaded all pursuit as long as it has, through the entire operating system history. I'm not pointing any fingers with this one, primarily because I don't have enough fingers or toes to be able to.

In the company I work for, certain departments collaborate heavily on particular projects, which I must say is excellent and I actively encourage. The problem arose from the requirement to transfer a very large structure of data from one server to another. "A simple copy and paste," I hear you cry, "or a complicated mirror?" This time I opted to just stick with the tried and tested drag-and-drop approach: click on folder with lots of stuff in it. Drag it over folder which has not so much stuff in it. Drop folder. Pray. The copying started and I sat back with a smug feeling of satisfaction, it was 3:30 after all. My satisfaction was short lived (was that really going to be such a surprise?) At 3:32, the copying stopped. Not because it was finished, or because it wanted to take a short coffee break; not because I had told it to, or because it was hungry. No. It stopped because there was a problem. I have a vision of you faithful readers all sitting round me like kids listening to a story at primary school, leaning forward in anticipation. Why did it stop? There was a problem. And this problem was not described well or accurately, no. It was described by one word which throws fear into an IT professionals heart: 'ERROR'.

Turns out it couldn't copy one of the files, aww, bless. So instead of keeping this information safe and carrying on with the rest of the copy routine, it decided to do the sensible thing: cry like a baby and throw the copy operation out of it's pram. I had to spend the next 15 to 30 minutes copying small portions of the tree across till I encountered the error again, then traversing the directory tree and repeating the procedure. It turned out one of the files had a name that was too long. For goodness sake! If you are going to create a file system that people are actually going to use, that's right... real people, not just geeks, why not build in protective routines to prevent this from happening? It's like building a bridge that's only connected to the ground at one end, watching cars go over the other end to their doom and saying, "well, if they will try and go right to the end, what do you expect?" Users are going to try to create files with stupid names like "Letter I wrote to the gas board when they cut my gas off because they said I forgot to pay it, but I thought I had (third time).doc"

Users don't sit there and remember the maximum number of characters a file name, including its full path, can have. They don't count characters as they type them or obey conventions by not using spaces and full stops in file names. Users are there to use a computer, I do not believe they should be expected to do their own input validation. After all, that's what a computer is for - isn't it?

Don't you just love going into a High Street computer hardware store and quizzing the sales teams? It's fascinating watching them skitter up to people and inquire if they need assistance. If the customer responds in a way that indicates anything other than "I'm just looking, thanks", they lean over towards them with that kind of inquisitive expression normally worn by small rodents. They contort their faces and look confused until they hear one of the buzz words that had been batted around in the training camp. Then they lean back and smile, confident in the knowledge that they have a whole paragraph with which to blind the unsuspecting 68 year old woman buying a joystick for her grandson.

"Oh, you want to buy this one," he'll say. "It's ya basic 3 axis controller with 512 quantization steps in linear movement, complemented with linear throttle control, eight buttons, HAT controller and connects to any standard MPU-401 or USB port if you buy the optional converter. Does your grandson have an MPU-401 port or is it one of the newer USB ports?"
Dear Old Lady: "Well, I just don't know. He got one of these computer somethings for his birthday. He can watch films on it, does that help?"
Salesman: "Hmmm, well if I were you, I'd buy the converter as well. You don't want him to be disappointed, DO YOU? Do you want to purchase our exclusive joystick cleaning cloth as well?"

On this particular day, a Thursday as it happens, I decided to wander into one of these High Street stores. I was looking at a rather strangely shaped case when one of our little friends popped his quivering nose into my face.

"S'a good machine that one. Got the latest Intel Pentium processor with HT technology in it. I've got one at home." I looked at him, with a rather impressed look on my face, trying to hold back the laughter. [2]

"Oh really?" I replied, just begging for more information. "So what does HT stand for?"

His face immediately changed to that of someone try to remove a particularly chewy toffee from their teeth, whilst keeping their mouth shut.

"Hy... Hy... HYPO-THRIDDING!!!" The words suddenly leapt from his mouth. I almost swallowed my chewing gum.

"Hypo-Thridding, eh? So what does this do, compared to one which doesn't have," (I had to say it again) "Hypo-Thridding?" I waited.

"Well it's... just... better, really." He replied.

"Better how?" I asked. I could tell he was near breaking point.

"Well... it's... more expensive, so it has to be better!" was the reply.

"Right... so the fact that, HYPER THREADING, that's HYPER-THREADING, can in certain circumstances increase the performance of the processor by providing usually idle execution units with useful work was just something Intel put in as a bonus, was it?" My little rodent friend scurried away.

Oh, what a week. This was the last day, "only eight hours till the weekend!" I thought. I was wrong. I was called up late in the evening to fix a friend's PC which had a dodgy HDD. He'd purchased a new one and wanted some assistance fitting it and recovering his system. The data was all backed up and I was presented with a fairly easy task - you might think. The HDD was installed without a hitch. I was handed the recovery CD and duly inserted it into the CD drive like the happy little camper I was. Almost the weekend - YAY! I clicked the big recover button, and assured the utility that I was actually aware that doing so would remove all the data from my HDD.

"Sorry, the system doesn't match the original."

My visions of an easy half hour catching up on some reading were shattered. Normally, that's where the journey would end for most non-Linuxian users - but I had a few tricks up my sleeve. I knew the old HDD still functioned but seemed to go haywire every now and then, so I restored the OS back to the old HDD, booted up faithful Knoppix, split the new larger HDD into two partitions using 'fdisk', and used 'dd' to copy the data from the old one back to the new one. Once that had finished, which took several hours owing to the fact that 'dd' copies every bit of data from one drive to the other whether it's being used or not, I simply shut down the machine, removed the old HDD and my flexible friend Knoppix, and booted the PC back up again.

I can hear some of you saying, "but the problem was fixed, Pete. What are you complaining about this time?" I'm complaining about the injustice done to the average non-geek computer user. What do they do when they can't upgrade their computer? Return to vendor to buy new PC. When the HDD breaks and it's no longer under warranty? Return to vendor to buy new PC. I suddenly visualised the massive corporate troubleshooting flow diagram - the flow diagram to end all flow diagrams. It was a highly conceptual diagram, for to print it would have leveled half of the African rain forest. On it was detailed every single problem a user could ever encounter, all of which were gracefully solved. The flow paths wound their way towards the bottom of the flow chart. Which ended in a single instruction. "A single instruction that would solve all problems?" I hear you cry. Yes, I reply.

"Return to vendor to buy a new PC."

[1] At this point, I would like to ask if anyone has a good reason why we should be creating these excuses, or if you yourself have a favorite excuse, pass it along to me. You won't win anything, or be given a prize for the best excuse, as chosen by our panel of dysfunctional judges, but you can go away with the feeling that you have helped make the world a better place.

[2] They've always got one at home, ever noticed that? It doesn't matter what product it is, plasma television, kettle, latest games console, portable bread maker, you can go into the shop safe with the knowledge that every salesperson there will have one at home, or have a close relative who's just got one for their birthday. I must be in the wrong job.

Talkback: Discuss this article with The Answer Gang


Pete has been programming since the age of 10 on an old Atari 800 XE. Though he took an Acoustical Engineering degree from the world-renowned ISVR in Southampton UK, the call of programming brought him back and he has been working as a Web developer ever since. He uses both Linux and Windows platforms. He still lives in the UK, and is currently living happily with his wife.

Copyright © 2006, Pete Savage. Released under the Open Publication license unless otherwise noted in the body of the article. Linux Gazette is not produced, sponsored, or endorsed by its prior host, SSC, Inc.

Published in Issue 126 of Linux Gazette, May 2006

<-- prev | next -->