********************************************************** I was once using the generic telnet program on the library computers to check my mail on UTM (the local university) with Pine. The computer-inept librarian walked up behind me. * Her: (shrieking) "WHAT ARE YOU DOING???" * Me: "I'm checking my email--" * Her: "It looks like you're breaking into the computer!!" * Me: "No really -- I'm checking my mail." * Her: "But that's not HOTMAIL!!" * Me: "I don't use hotmail. I use--" * Her: "But EVERYONE uses HOTMAIL!!" * Me: "No, my account goes through UTM. My email account ends with--" * Her: "But that's not what MYYY UTM looks like!!" (apparently referring to the UTM web page) * Me: "Yes, I'm telnetting. It's another way of accessing--" * Her: "I think you better shut that off. You're breaking into the computer." * Me: "But I--" * Her: "Turn it off. I don't believe that 'checking mail' story." ********************************************************** * Tech Support: "May I have your phone number, sir?" * Customer: "I don't give out my phone number!" * Tech Support: "All right. How may I help you, sir?" * Customer: "How much for your Internet service?" I gave him the prices. * Customer: "If I own the software why do you keep charging for it?" * Tech Support: "Well, sir, the software is free, but you are charged for being online." * Customer: "YOU CONNECT YOUR COMPUTER TO THE PHONE LINE?!?" * Tech Support: "Well, sir, you do use a modem to dial online." * Customer: "I WILL NEVER HOOK MY COMPUTER TO MY PHONE!!!!" (click) ********************************************************** I work as a computer tech at a community college. Most of our computers are currently running Windows 95. One day, an officer from our security department stopped by to talk to me. His face looked grim. He pulled me quietly aside. * Officer: "We have a new part time person working in our office who uses the computer, and I have to ask you something, but you need to keep this confidential." * Me: "Ok, what's the problem?" * Officer: "Well, over the past two or three days I've glanced over at the new person's computer, and several times I've seen a message that says 'You have performed an illegal operation,' but he keeps clearing it by clicking something. I need to find out what he's doing wrong and if we should call the local police." He looked so scared and serious, I had a hard time containing my laughter. ********************************************************** At 3:37 a.m. on a Sunday, I had just looked at the clock to determine my annoyance level, when I received a frantic phone call from a new user of a Macintosh Plus. She had gotten her entire family out of the house and was calling from her neighbor's. She had just received her first system error and interpreted the picture of the bomb on the screen as a warning that the computer was going to blow up. ********************************************************** * Friend: "Does Windows 98 support Linux?" ********************************************************** * Customer: "How much do Windows cost?" * Tech Support: "Windows costs about $100." * Customer: "Oh, that's kind of expensive. Can I buy just one window?" ********************************************************** * Customer: (angrily) "You said I would get 98 windows with this computer. Where are they?" ********************************************************** I was calling to sign up with a new DSL provider. When the guy asked what operating system I was using, I said, "Linux." I was put on hold for five minutes, and then a supervisor came back and told me, "You can't use Linux to connect to the Internet. It's a hacker tool, anyway." I almost fell out of my chair. ********************************************************** * Customer: "I installed Windows 98 on my computer, and it doesn't work." * Tech Support: "Ok, what happens when you turn on your computer?" * Customer: "Boy, are you listening? I said it doesn't work." * Tech Support: "Well, what happens when you TRY to turn it on?" * Customer: "Look, I'm not a computer person. Talk regular English, not this computer talk, ok?" * Tech Support: "Ok, let's assume your computer is turned off, and you just sat down in front of it, and want to use it. What do you do?" * Customer: "Don't talk like I'm stupid, boy. I turn it on." * Tech Support: "And then what happens?" * Customer: "What do you mean?" * Tech Support: "Does anything appear on your monitor? I mean, the TV part." * Customer: "The same thing I saw last time I tried." * Tech Support: "And that is what?" * Customer: "Are you sure you know what you're doing?" * Tech Support: "Yes, sir. What is on your screen?" * Customer: "A bunch of little pictures." * Tech Support: "Ok, in the upper left corner, do you see 'My Computer'." * Customer: "No, all I see is that little red circle thing with the chunk out of it." * Tech Support: "You mean an apple?" * Customer: "I guess it kind of looks like an apple." Then it took me fifteen minutes to convince him that he had a Mac. Even after showing him "About this Macintosh." I spent another fifteen minutes trying to convince him that Windows 98 wouldn't work on his Mac. He said it should work because Windows 98 is for PCs, and he had a PowerPC. I think he's still trying to get it to read that CD, because I never could convince him. ********************************************************** * Co-Worker: "What version of DOS does UNIX run?" ********************************************************** Back in the early days of Windows 95: * Customer: "I have Windows Thirty One." * Tech Support: "Ok, this program requires either Windows 95 or Win32s. Do you have Win32s on your system?" * Customer: "No, I have Windows Thirty One, not Thirty Two." * Tech Support: "Windows 3.1 is the operating system. Win32s is a program that makes your computer fast like Windows 95." * Customer: "What's Windows Ninety Five got to do with it?" * Tech Supprort: "You need either Windows 95 or Win32s to run this." * Customer: "I HAVE THIRTY ONE! WHY WON'T IT WORK?" * Tech Support: (giving up) "Ma'am, your computer is too old. Buy a new one with Windows 95." * Customer: "I've heard about Windows Three Hundred and Eleven. Wouldn't that be better than Ninety Five?" ********************************************************** About two months ago, a client called in screaming profanities at me and demanding that I either give him a refund on his one year old system or send a technician out to repair it immediately. His problem was that the taskbar was on the right-hand side of his screen, and he couldn't get it back to the bottom. ********************************************************** Read in a message board of a local BBS: "I try to avoid using Microsoft. That's why I use MS-DOS." ********************************************************** One of our users, upon receiving his new computer, deleted most of the files in the system area. He said he didn't know what those files did, so he got rid of them. For some strange reason, the system refused to work properly afterward. ********************************************************** Two girls walked into the University's Linux cluster one time. They were obviously unfamiliar with computers and chatted with each other trying to figure everything out. I was doing my own work and had tuned out a lot of the conversation, but at one point one of them turned to me and asked how to get into Windows. "Type startx," I replied, for the Linux machines booted to a shell prompt, and you had to type "startx" to get into X-Windows. I never did find out if that worked for them or not, but they spent quite some time trying to correlate the instructions they had on paper (presumably given out in one of their classes) with what they were seeing on the screen. A full hour and a half passed, and finally one of them turned to me again and asked if this was the Microsoft Windows cluster. "No," I replied, "that's downstairs." It was hard to stifle the laughter until they were gone. An hour and a half before they realized they weren't even using the right operating system. Wow. ********************************************************** Posted to a newsgroup: Everyone is talking about these 'newsreaders.' Can someone tell me what they are and where I can get one? ********************************************************** Posted in alt.games.tombraider: please do not send anymore messages to me. I beleve these were sent to me by mistake. I have had to delete over 3,000 messages. thank you ********************************************************** * Friend: "I'm going to leave AOL. I think I'll switch to Netscape." * Me: "Um, Netscape isn't a way to get on the Internet. It's what lets you look at the Internet. You need an Internet Service Provider like AOL, CompuServe, or AT&T Worldnet." * Friend: "Oh. I guess I'll get Internet Explorer." ********************************************************** I actually had this emailed to me once: Help! I can't find your email address. What is it? ********************************************************** This story points out the amazing fact that, although it is great fun to laugh at the mistakes of computer newbies, it takes the knowledge and expertise of a fairly competent newbie system administrator to make your sides really split. That's me, and I maintain our organization's UNIX systems. There I was, looking at my screen, pondering what I saw. It was a message, stuck in the mail queue for no apparent reason. So, I figured, "What the hey, let's process the queue and see if it goes out." It didn't. And it said it was stuck because it couldn't contact the remote site. "They must be down, then," I figured. So, since I was bored, I decided to speed up the rate at which the queue got processed by typing "sendmail -q5". And after about ten minutes, I got bored of watching the message sit there in the queue and went on to other things. I assume the message eventually went, but I never went back to check up on it. Later that day, someone sent out email to the whole office using a mailing list that we had set up specifically for that purpose. I got four copies of the message. Some people only got one; others got as many as seven or eight. Needless to say, I was a little shocked. The sender insisted he only hit 'send' once. I dubbed around a little bit, looking for the cause, but didn't find it. So I left it until the next day. The next day, people were complaining to me left and right that everytime they used the mailing list to send office mail, people would get multiple copies. I thought, "This is a serious problem now." So I did what every good newbie system administrator would have done in that situation. I rebooted the mail server. And lo and behold, it actually worked. Feeling pretty good about myself, I went to check on the sendmail daemon to see if it was running (as a sanity check more than anything -- mail was going out, so I knew it was running). But I discovered, much to my surprise, that sendmail wasn't running at all -- and mail was still going out. I was shocked. I felt a little scared. And then, suddenly, I felt incredibly stupid. I finally remembered that we don't USE sendmail, we use SMTP. So I checked the SMTP process, and there it was, happily processing email. It took me a few minutes to figure out what probably happened. When I was looking at the stuck job, I started a copy of the sendmail daemon. Not only that, I set it to a delay of only five seconds. The regular daemon, SMTP, is set by default to 30 or 60 seconds. So when the queue got plugged by the mounds of mail going out in an all-office mailing, was this: SMTP got to it first, because the process was triggered by the mail entering the queue. But it wasn't fast enough to keep ahead of sendmail. Sendmail could process the queue but couldn't delete the message from it after it had sent the message. So while SMTP was plodding through the messages one by one, sending them and cleaning them up, sendmail was blazing through them, delete nothing, and do it all over again in another five seconds. As it happened, people who were at the physical bottom of the mailing list got the most copies of the message, while the person at the top would only get one or two. Needless to say, I kept this knowledge to myself, and instead of being the laughing stock of the office, I was the hero for having "solved" the great mail problem. ********************************************************** This conversation took place through email. * Customer: "I need something off the web, and I don't have any way to use a browser!" * Tech Support: "There's a browser called 'lynx' that you can use from a shell." (gives a brief description of how to use it) * Customer: "What's lynx? I need a browser!" * Tech Support: (again mentions lynx and says how to use it) * Customer: "I need a browser. If you can't help me, get someone else to answer my emails." ********************************************************** Back in my first year of school in computer science, we were learning Turbo Pascal. I remember one day looking over the shoulder of a guy who was writing some unreadable code by removing all possible spaces and empty lines. * Me: "Why are you writing like that -- it's unreadable." * Him: "I want to keep the code compact, so I get maximum speed when I execute the program." ********************************************************** I was asked to maintain a shell script that was taking too long to run and wasn't reliable. Among other horrors, the one that gave me the best mix of laughter and fear was a repeated construct like this: display=`env | grep DISPLAY | sed 's/[^=]*=//g'` DISPLAY=$display export DISPLAY This made me scratch my head for a moment, until I realized that this was a complete no-op. It's equal to DISPLAY=$DISPLAY (except when the grep command pulls out the wrong thing). This was repeated for something like a dozen environment variables. I still cannot fathom the logic of it. I ended up doing a complete rewrite. ********************************************************** I was asked about taking on a contract to maintain a piece of software. Something about the way it was presented made me wary. I asked to look over it first. What a sight! I use it as an example of why not to use global variables. Among other things, there were files with suites of functions on the following order: adjust_alpha() { alpha = gamma + offset * 3; } adjust_beta() { beta = gamma + offset * 3; } Dozens of functions that differed only by the global variable they modified. Just picture it: a multi-thousand line program with a graphical interface and a database that never used function parameters. The original programmer painted himself into a corner with his variable names. Clearly if you need variables "up," "down, " "left," and "right," you name them as such. When he found himself needing those direction names in different parts of his program but was stuck because global variable names had to be unique, his solution was to use names like: up, _up, up_, Up, uP, UP, _Up, _UP down, _down, down_, Down, dOWN, DOWN, _Down, _DOWN ...and so on. Even the densest of my students comprehended immediately why that was bad. Needless to say, I turned down the job. ********************************************************** This was found in code written by an ex-employee. strcpy(vl_name,"00000000000000000"); strcpy(vl_volume,"000000"); strncpy(temp1,vl_lud,4); temp1[4]='\0'; strncpy(temp2,vl_name+4,13); temp2[13]='\0'; strcat(temp1,temp2); strcpy(temp2,""); sprintf(temp2,"%d",vl_serial_num); temp1[7]='\0'; strcat(temp1,temp2); strcat(temp1,"000000000"); temp1[8]='.'; strncpy(temp1,temp1,9); temp1[9]='\0'; strcat(temp1,vl_data_set_name); temp1[17]='\0'; strcpy(vl_name,temp1); strcpy(vl_volume,"1"); ********************************************************** Days ago I had to fix a bug into our software. The person that originally wrote the module quit, so I had total control of the source code. I totally rewrote half of the code when I found things like: int i; memset(&i, 0, sizeof(int)); And: switch (k) { case 9: printf("9\n"); case 8: if (k==8) printf("8\n"); case 7: if (k==7) printf("7\n"); // and so on... } I wondered why he put the "if" clauses, but then I noticed that none of the cases has its "break" statement, so if he found that if k was 9, the program printed 9, 8, 7, etc. So I think he added the "if" clauses to fix that behavior. The masterpiece, however, was the following, where two consecutive errors actually caused the program to work fine: char msg[40]; unsigned char k,j; memset(msg, 0, 41); /* to set the terminator */ j = k; ... Of course the "memset" was supposed to reset the msg variable, but it actually also reset k, for which no initialization was provided; could be a deliberate if hackish and unreliable solution, but that "set the terminator" comment gives it away. In fact, all over his code he managed to add one for the "terminator," one byte past the end of the character array he was working on. ********************************************************** At my previous job, we were porting a UNIX system to Windows NT using Microsoft VC++. A colleague of mine, that was in the process of porting his portion of the code, came to me, looking really upset. * Colleague: "Hey! I hate these Microsoft guys! What a rotten compiler! It only accepts 16,384 local variables in a function!" ********************************************************** A friend of mine wanted to keep track of the other users on the UNIX systems of our university. There is a nice command "last" on UNIX which will list the last users to have logged in. So he wrote a script that'd log in to all workstations of the department by remote shell and run the "last" command, with the results sent back to the originating host, to be collected in aggregate form. He called this little script "last" -- same name as the UNIX system command -- and put it in his home directory. His path was set up so his home directory had a higher precedence than the UNIX bin directories. So when he ran the "last" command, it would use his own script instead of the system command. So he ran the script. It logged in to all the other workstations just fine. Then it ran the "last" command -- the one in his home directory, of course, not the system command. You can guess what happened. It got in an infinite loop that tried to log into every workstation an infinite number of times. This very effectively nuked off the whole department, and all workstations had to be shut down for it to stop. **********************************************************