Tech Support Diary

A Week in the Life of the Notes Support Person from Hell

Monday
8:05am
User called to say they forgot password. Told them to use password retrieval utility called FDISK. Blissfully ignorant, they thank me and hang up. God, we let the people vote and drive, too?

8:12am
Accounting called to say they couldn’t access expense reports database. Gave them Standard Sys Admin Answer #112, “Well, it works for me.” Let them rant and rave while I unplugged my coffeemaker from the UPS and plugged their server back in. Suggested they try it again. One more happy customer…

8:14 am
User from 8:05 call said they received error message “Error accessing Drive 0.” Told them it was an OS problem. Transferred them to microsupport.

11:00 am
Relatively quiet for last few hours. Decide to plug support phone back in so I can call my girlfriend. Says parents are coming into town this weekend. Put her on hold and transferred her to janitorial closet down in basement. What is she thinking? The “Myst” and “Doom” nationals are
this weekend!

11:34 am
Another user calls (do they ever learn?). Says they want ACL changed on HR performance review database so that nobody but HR can access database. Tell them no problem. Hang up. Change ACL. Add @MailSend so performance reviews are sent to */US.

12:00 pm
Lunch

3:30 pm
Return from lunch.

3:55 pm
Wake up from nap. Bad dream makes me cranky. Bounce servers for no reason. Return to napping.

4:23 pm
Yet another user calls. Wants to know how to change fonts on form. Ask them what chip set they’re using. Tell them to call back when they find out.

4:55 pm
Decide to run “Create Save/Replication Conflicts” macro so next shift has something to do.

Tuesday
8:30 am
Finish reading support log from last night. Sounded busy. Terrible time with Save/Replication conflicts.

9:00 am
Support manager arrives. Wants to discuss my attitude. Click on PhoneNotes SmartIcon. “Love to, but kinda busy. Put something in the calendar database!” I yell as I grab for the support lines, which have (mysteriously) lit up. Walks away grumbling.

9:35 pm
Team leader from R&D needs ID for new employee. Tell them they need form J-19R=9C9\DARRK1. Say they never heard of such a form. Tell them it’s in the SPECIAL FORMS database. Say they never heard of such a database. Transfer them to janitorial closet in basement.

10:00 am
Perky sounding intern from R&D calls and says she needs new ID. Tell her I need employee number, department name, manager name, and marital status. Run @DbLookup against state parole board database, Centers for Disease Control database, and my Oprah Winfrey database. No hits. Tell her ID will be ready tonight. Drawing from the lessons learned in last week’s “Reengineering for Customer Partnership,” I offer to personally deliver ID to her apartment.

10:07 am
Janitor stops by to say he keeps getting strange calls in basement. Offer to train him on Notes. Begin now. Let him watch console while I grab a smoke.

1:00 pm
Return from smoking break. Janitor says phones kept ringing, so he transferred them to cafeteria lady. I like this guy.

1:05 pm
Big commotion! Support manager falls in hole left where I pulled floor tiles outside his office door. Stress to him importance of not running in computer room, even if I do yell “Omigod — Fire!”

1:15 pm
Development Standards Committee calls and complains about umlauts in form names. Apologizing for the inconvenience, I tell them I will fix it. Hang up and run global search/replace using gaks.

1:20 pm
Mary Hairnet from cafeteria calls. Says she keeps getting calls for “Notice Loads” or “NoLoad Goats,” she’s not sure, couldn’t here over industrial-grade blender. Tell her it was probably “Lettuce Nodes.” Maybe the food distributor with a new product? She thinks about it and hangs up.

2:00 pm
Legal secretary calls and says she lost password. Ask her to check in her purse, floor of car, and on bathroom counter. Tell her it probably fell out of back of machine. Suggest she put duct tape over all the airvents she can find on the PC. Grudgingly offer to create new ID for her while she does that.

2:49 pm
Janitor comes back. Wants more lessons. I take off rest of day.

Wednesday
8:30 am
Irate user calls to say chipset has nothing to do with fonts on form. Tell them Of course, they should have been checking “Bitset,” not “chipset.” Sheepish user apologizes and hangs up.

9:10am
Support manager, with foot in cast, returns to office. Schedules 10:00am meeting with me. User calls and wants to talk to support manager about terrible help at support desk. Tell them manager about to go into meeting. Sometimes life hands you material…

10:00 am
Call Louie in janitorial services to cover for me. Go to support manager’s office. He says he can’t dismiss me but can suggest several lateral career moves. Most involve farm implements in third-world countries with moderate to heavy political turmoil. By and by, I ask if he’s aware of new bug which takes full-text indexed random e-mail databases and puts all references to furry handcuffs and Bambi Boomer in Marketing on the corporate Web page. Meeting is adjourned as he reaches for keyboard, Web browser, and Tums.

10:30 am
Tell Louie he’s doing great job. Offer to show him mainframe corporate PBX system sometime.

11:00 am
Lunch.

4:55 pm
Return from lunch.

5:00 pm
Shift change; Going home.

Thursday
8:00 am
New guy (“Marvin”) started today. “Nice plaids” I offer. Show him server room, wiring closet, and technical library. Set him up with IBM PC-XT. Tell him to quit whining, Notes runs the same in both monochrome and color.

8:45 am
New guy’s PC finishes booting up. Tell him I’ll create new ID for him. Set minimum password length to 64. Go grab smoke.

9:30 am
Introduce Louie the custodian to Marvin. “Nice plaids” Louie comments. Is this guy great or what?!

11:00 am
Beat Louie in dominos game. Louie leaves. Fish spare dominos out of sleeves (“Always have backups”). User calls, says Accounting server is down. Untie Ethernet cable from radio antenna (better reception) and plug back into hub. Tell user to try again. Another happy customer!

11:55 am
Brief Marvin on Corporate Policy 98.022.01:

“Whereas all new employee beginning on days ending in ‘Y’ shall enjoy all proper aspects with said corporation, said employee is obligated to provide sustenance and relief to senior technical analyst on shift.”

Marvin doubts. I point to “Corporate Policy” database (a fine piece of work, if I say so myself!). “Remember, that’s DOUBLE pepperoni and NO peppers!” I yell to Marvin as he steps over open floor tile to get to exit door.

1:00 pm
Oooooh! Pizza makes me so sleepy…

4:30 pm
Wake from refreshing nap. Catch Marvin scanning want ads.

5:00 pm
Shift change. Flick HR’s server off and on several times (just testing the On/Off button…). See ya tomorrow.

Friday
8:00 am
Night shift still trying to replace power supply in HR server. Told them it worked fine before I left.

9:00 am
Marvin still not here. Decide I might start answering these calls myself. Unforward phones from Mailroom.

9:02 am
Yep. A user call. Users in Des Moines can’t replicate. Me and the Oiuji board determine it’s sunspots. Tell them to call Telecommunications.

9:30 am
Good God, another user! They’re like ants. Says he’s in San Diego and can’t replicate with Des Moines. Tell him it’s sunspots, but with a two-hour difference. Suggest he reset the time on the server back two hours.

10:17 am
Pensacola calls. Says they can’t route mail to San Diego. Tell them to set server ahead three hours.

11:00 am
E-mail from corporate says for everybody to quit resetting the time on their servers. I change the date stamp and forward it to Milwaukee.

11:20 am
Finish @CoffeeMake macro. Put phone back on hook.

11:23 am
Milwaukee calls, asks what day it is.

11:25 am
Support manager stops by to say Marvin called in to quit. “So hard to get good help…” I respond. Support manager says he has appointment with orthopedic doctor this afternoon, and asks if I mind sitting in on the weekly department head meeting for him. “No problem!”

11:30 am
Call Louie and tell him opportunity knocks and he’s invited to a meeting this afternoon. “Yeah, sure. You can bring your snuff” I tell him.

12:00 am
Lunch.

1:00 pm
Start full backups on UNIX server. Route them to device NULL to make them fast.

1:03 pm
Full weekly backups done. Man, I love modern technology!

2:30 pm
Look in support manager’s contact management database. Cancel 2:45pm appointment for him. He really should be at home resting, you know.

2:39 pm
New user calls. Says want to learn how to create a connection document. Tell them to run connection document utility CTRL-ALT-DEL. Says PC rebooted. Tell them to call microsupport.

2:50 pm
Support manager calls to say mixup at doctor’s office means appointment cancelled. Says he’s just going to go on home. Ask him if he’s seen corporate Web page lately.

3:00 pm
Another (novice) user calls. Says periodic macro not working. Suggest they place @DeleteDocument at end of formula. Promise to send them document addendum which says so.

4:00 pm
Finish changing foreground color in all documents to white. Also set point size to “2” in help databases.

4:30 pm
User calls to say they can’t see anything in documents. Tell them to go to view, do a “Edit — Select All”, hit delete key, and then refresh. Promise to send them document addendum which says so.

4:45 pm
Another user calls. Says they can’t read help documents. Tell them I’ll fix it. Hang up. Change font to Wingdings.

4:58 pm
Plug coffee maker into Ethernet hub to see what happens. Not (too) much.

5:00 pm
Night shift shows up. Tell that the hub is acting funny and to have a good weekend.

A Talking Frog

A guy is taking a walk and sees a frog on the side of the road. As he comes closer, the frog starts to talk. “Kiss me and I will turn into a princess.” The guy picks the frog up and puts it in his pocket.

The frog starts shouting, “Hey! Didn’t you hear me? I’m a Princess. Just kiss me and I will be yours.” The guy takes the frog out of his pocket and smiles at it and puts it back.

The frog is really frustrated. “I don’t get it. Why won’t you kiss me? I will turn into a beautiful princess and do anything you ask.”

The guy says, “Look, I’m a computer geek. I don’t have time for girls… But a talking frog is cool!”

Know Your Unix System Administrator

There are four major species of Unix sysad:

  1. The Technical Thug
    Usually a systems programmer who has been forced into system administration; writes scripts in a polyglot of the Bourne shell, sed, C, awk, perl, and APL.
  2. The Administrative Fascist
    Usually a retentive drone (or rarely, a harridan ex-secretary) who has been forced into system administration.
  3. The Maniac
    Usually an aging cracker who discovered that neither the Mossad nor Cuba are willing to pay a living wage for computer espionage. Fell into system administration; occasionally approaches major competitors with indesp schemes.
  4. The Idiot
    Usually a cretin, morpohodite, or old COBOL programmer selected to be the system administrator by a committee of cretins, morphodites, and old COBOL programmers.
How the Different Types of Unix Sysads Respond:

SITUATION: Low disk space.

  • Technical Thug:
    Writes a suite of scripts to monitor disk usage, maintain a database of historic disk usage, predict future disk usage via least squares regression analysis, identify users who are more than a standard deviation over the mean, and send mail to the offending parties. Places script in cron. Disk usage does not change, since disk-hogs, by nature, either ignore script-generated mail, or file it away in triplicate.
  • Administrative Fascist:
    Puts disk usage policy in motd. Uses disk quotas. Allows no exceptions, thus crippling development work. Locks accounts that go over quota.
  • Maniac:
    # cd /home
    # rm -rf `du -s * | sort -rn | head -1 | awk ‘{print $2}’`;
  • Idiot:
    # cd /home
    # cat `du -s * | sort -rn | head -1 | awk ‘{ printf “%s/*n”, $2}’` | compress

SITUATION: Excessive CPU usage.

  • Technical Thug:
    Writes a suite of scripts to monitor processes, maintain a database of CPU usage, identify processes more than a standard deviation over the norm, and renice offending processes. Places script in cron. Ends up renicing the production database into oblivion, bringing operations to a grinding halt, much to the delight of the xtrek freaks.
  • Administrative Fascist:
    Puts CPU usage policy in motd. Uses CPU quotas. Locks accounts that go over quota. Allows no exceptions, thus crippling development work, much to the delight of the xtrek freaks.
  • Maniac:
    # kill -9 `ps -augxww | sort -rn +8 -9 | head -1 | awk ‘{print $2}’`
  • Idiot:
    # compress -f `ps -augxww | sort -rn +8 -9 | head -1 | awk ‘{print $2}’`
  • SITUATION: New account creation.

  • Technical Thug:
    Writes perl script that creates home directory, copies in incomprehensible default environment, and places entries in /etc/passwd, /etc/shadow, and /etc/group. (By hand, NOT with passmgmt.) Slaps on setuid bit; tells a nearby secretary to handle new accounts. Usually, said secretary
    is still dithering over the difference between ‘enter’ and ‘return’; and so, no new accounts are ever created.
  • Administrative Fascist:
    Puts new account policy in motd. Since people without accounts cannot read the motd, nobody ever fulfills the bureaucratic requirements; and so, no new accounts are ever created.
  • Maniac:
    “If you’re too stupid to break in and create your own account, I don’t want you on the system. We’ve got too many goddamn sh*t-for-brains a**holes on this box anyway.”
  • Idiot:
    # cd /home; mkdir “Bob’s home directory”
    # echo “Bob Simon:gandalf:0:0::/dev/tty:compress -f” > /etc/passwd
  • SITUATION: Root disk fails.

  • Technical Thug:
    Repairs drive. Usually is able to repair filesystem from boot monitor. Failing that, front-panel toggles microkernel in and starts script on neighboring machine to load binary boot code into broken machine, reformat and reinstall OS. Lets it run over the weekend while he goes mountain climbing.
  • Administrative Fascist:
    Begins investigation to determine who broke the drive. Refuses to fix system until culprit is identified and charged for the equipment.
  • Maniac:
    • Large System: Rips drive from system, uses sledgehammer to smash same to flinders. Calls manufacturer, threatens pets. Abuses field engineer while they put in a new drive and reinstall the OS.
    • Small System: Rips drive from system, uses ballpeen hammer to smash same to flinders. Calls Requisitions, threatens pets. Abuses bystanders while putting in new drive and reinstalling OS.
  • Idiot:
    Doesn’t notice anything wrong.
  • SITUATION: Poor network response.

  • Technical Thug:
    Writes scripts to monitor network, then rewires entire machine room, improving response time by 2%. Shrugs shoulders, says, “I’ve done all I can do,” and goes mountain climbing.
  • Administrative Fascist:
    Puts network usage policy in motd. Calls up Berkeley and AT&T, badgers whoever answers for network quotas. Tries to get xtrek freaks fired.
  • Maniac:
    Every two hours, pulls ethernet cable from wall and waits for connections to time out.
  • Idiot:
    # compress -f /dev/en0
  • SITUATION: User questions.

  • Technical Thug:
    Hacks the code of emacs’ doctor-mode to answer new users questions. Doesn’t bother to tell people how to start the new “guru-mode”, or for that matter, emacs.
  • Administrative Fascist:
    Puts user support policy in motd. Maintains queue of questions. Answers them when he gets a chance, often within two weeks of receipt of the proper form.
  • Maniac:
    Screams at users until they go away. Sometimes barters knowledge for powerful drink and/or sycophantic adulation.
  • Idiot:
    Answers all questions to best of his knowledge until the user realizes few UNIX systems support punched cards or JCL.
  • SITUATION: Stupid user questions.

  • Technical Thug:
    Answers question in hex, binary, postfix, and/or French until user gives up and goes away.
  • Administrative Fascist:
    Locks user’s account until user can present documentation demonstrating their qualification to use the machine.
  • Maniac:
    # cat >> ~luser/.cshrc
    alias vi ‘rm !*;unalias vi;grep -v BoZo ~/.cshrc > ~/.z; mv -f
    ~/.z ~/.cshrc’

    ^D
  • Idiot:
    Answers all questions to best of his knowledge. Recruits user to system administration team.
  • SITUATION: Process accounting management.

  • Technical Thug:
    Ignores packaged accounting software; trusts scripts to sniff out any problems & compute charges.
  • Administrative Fascist:
    Devotes 75% of disk space to accounting records owned by root and chmod’ed 000.
  • Maniac:
    Laughs fool head off at very mention of accounting.
  • Idiot:
    # lpr /etc/wtmp /usr/adm/paact
  • SITUATION: Religious war, BSD vs. System V.

  • Technical Thug:
    BSD. Crippled on System V boxes.
  • Administrative Fascist:
    System V. Horrified by the people who use BSD. Places frequent calls to DEA.
  • Maniac:
    Prefers BSD, but doesn’t care as long as HIS processes run quickly.
  • Idiot:
    # cd c:
  • SITUATION: Religious war, System V vs. AIX

  • Technical Thug:
    Weeps.
  • Administrative Fascist:
    AIX–doesn’t much care for the OS, but loves the jackboots.
  • Maniac:
    System V, but keeps AIX skills up, knowing full well how much Big Financial Institutions
    love IBM…
  • Idiot:
    AIX.
  • SITUATION: Balky printer daemons.

  • Technical Thug:
    Rewrites lpd in FORTH.
  • Administrative Fascist:
    Puts printer use policy in motd. Calls customer support every time the printer freezes. Tries to get user who submitted the most recent job fired.
  • Maniac:
    Writes script that kills all the daemons, clears all the print queues, and maybe restarts the daemons. Runs it once a hour from cron.
  • Idiot:
    # kill -9 /dev/lp ; /dev/lp &
  • SITUATION: OS upgrade.

  • Technical Thug:
    Reads source code of new release, takes only what he likes.
  • Administrative Fascist:
    Instigates lawsuit against the vendor for having shipped a product with bugs in it in the first place.
  • Maniac:
    # uptime
    1:33pm up 19 days, 22:49, 167 users, load average: 6.49, 6.45, 6.31
    # wall
    Well, it’s upgrade time. Should take a few hours. And good luck on that 5:00 deadline, guys! We’re all pulling for you!
    ^D
  • Idiot:
    # dd if=/dev/rmt8 of=/vmunix
  • SITUATION: Balky mail.

  • Technical Thug:
    Rewrites sendmail.cf from scratch. Rewrites sendmail in SNOBOL. Hacks kernel to implement file locking. Hacks kernel to implement “better” semaphores. Rewrites sendmail in assembly. Hacks kernel too…
  • Administrative Fascist:
    Puts mail use policy in motd. Locks accounts that go over mail use quota. Keeps quota low enough that people go back to interoffice mail, thus solving problem.
  • Maniac:
    # kill -9 `ps -augxww | grep sendmail | awk ‘{print $2}’`
    # rm -f /usr/spool/mail/*
    # wall
    Mail is down. Please use interoffice mail until we have it back up.
    ^D
    # write max
    I’ve got my boots and backpack. Ready to leave for Mount Tam?
    ^D
  • Idiot:
    # echo “HELP!” | mail tech_support.AT.vendor.com%kremvax%bitnet!BIFF!!!
  • SITUATION: Users want phone list application.

  • Technical Thug:
    Writes RDBMS in perl and Smalltalk. Users give up and go back to post-it notes.
  • Administrative Fascist:
    Oracle. Users give up and go back to post-it notes.
  • Maniac:
    Tells the users to use flat files and grep, the way God meant man to keep track of phone numbers. Users give up and go back to post-it notes.
  • Idiot:
    % dd ibs=80 if=/dev/rdisk001s7 | grep “Fred”


  • Other Guidelines:

    TYPICAL ROOT .cshrc FILE:

  • Technical Thug:
    Longer than eight kilobytes. Sources the output of a perl script, rewrites itself.
  • Administrative Fascist:
    Typical lines include:
    umask 777
    alias cd ‘cd !*; rm -rf ching *hack mille omega rogue xtrek >& /dev/null &’
  • Maniac:
    Typical lines include:
    alias rm ‘rm -rf !*’
    alias hose kill -9 ‘`ps -augxww | grep !* | awk ‘{print $2}’`’
    alias kill ‘kill -9 !* ; kill -9 !* ; kill -9 !*’
    alias renice ‘echo Renice? You must mean kill -9.; kill -9 !*’
  • Idiot:
    Typical lines include:
    alias dir ls
    alias era rm
    alias kitty cat
    alias process_table ps
    setenv DISPLAY vt100
  • HOBBIES, TECHNICAL:

  • Technical Thug:
    Writes entries for Obsfuscated C contest. Optimizes INTERCAL scripts. Maintains ENIAC emulator. Virtual reality.
  • Administrative Fascist:
    Bugs office. Audits card-key logs. Modifies old TVs to listen in on cellular phone conversations. Listens to police band.
  • Maniac:
    Volunteers at Survival Research Labs. Bugs office. Edits card-key logs. Modifies old TVs to listen in on cellular phone conversations. Jams police band.
  • Idiot:
    Ties shoes. Maintains COBOL decimal to roman numeral converter. Rereads flowcharts from his salad days at Rand.
  • HOBBIES, NONTECHNICAL:

  • Technical Thug:
    Drinks “Smart Drinks.” Attends raves. Hangs out at poetry readings and Whole Earth Review events and tries to pick up Birkenstock MOTAS.
  • Administrative Fascist:
    Reads Readers Digest and Mein Kampf. Sometimes turns up car radio and sings along to John Denver. Golfs. Drinks gin martinis. Hangs out in yuppie bars and tries to pick up dominatrixes.
  • Maniac:
    Reads Utne Reader and Mein Kampf. Faithfully attends Dickies and Ramones concerts. Punches out people who say “virtual reality.” Drinks damn near anything, but favors Wild Turkey,
    Black Bush, and grain alcohol. Hangs out in neighborhood bars and tries to pick up MOTAS by drinking longshoremen under the table.
  • Idiot:
    Reads Time and Newsweek –and believes them. Drinks Jagermeister. Tries to pick up close blood relations — often succeeds, producing next generation of idiots.
  • 1992 PRESIDENTIAL ELECTION:

  • Technical Thug:
    Clinton, but only because he liked Gore’s book.
  • Administrative Fascist:
    Bush. Possibly Clinton, but only because he liked Tipper.
  • Maniac:
    Frank Zappa.
  • Idiot:
    Perot
  • 1996 PRESIDENTIAL ELECTION:

  • Technical Thug:
    Richard Stallman – Larry Wall.
  • Administrative Fascist:
    Nixon – Buchanan.
  • Maniac:
    Frank Zappa.
  • Idiot:
    Quayle

  • COMPOUND SYSTEM ADMINISTRATORS:

  • Technical Fascist:
    Hacks kernel and writes a horde of scripts to prevent folk from ever using more than their fair share of system resources. Resulting overhead and load brings system to its knees.
  • Technical Maniac:
    Writes scripts that seem to be monitoring the system, but are actually encrypting large lists of passwords. Uses nearby nodes as beta test sites for worms.
  • Technical Idiot: Writes superuser-run scripts that sooner or later do an “rm -rf /”.
  • Fascistic Maniac:
    At first hint of cracker incursions, whether real or imagined, shuts down system by triggering
    water-on-the-brain detectors and Halon system.
  • Fascistic Idiot:
    # cp /dev/null /etc/passwd
  • Maniacal Idiot:
    Napalms the CPU.

Interpreting Software Revisions

Once you start playing with software you quickly become aware that each software package has a revision code attached to it. It is obvious that this revision code gives the sequence of changes to the product, but in reality there’s substantially more information available through the rev-code than that. This article provides a guide for interpreting the meaning of the revision codes and what they actually signify.

1.0:
Also known as "one point uh-oh", or "barely out of beta". We had to release because the lab guys had reached a point of exhaustion and the marketing guys were in a cold sweat of terror. We’re praying that you’ll find it more functional than, say, a computer virus and that its operation has some resemblance to that specified in the marketing copy.

1.1:
We fixed all the killer bugs …

1.2:
Uh, we introduced a few new bugs fixing the killer bugs and so we had to fix them, too.

2.0:
We did the product we really wanted to do to begin with. Mind you, it’s really not what the customer needs yet, but we’re working on it.

2.1:
Well, not surprisingly, we broke some things in making major changes so we had to fix them. But we did a really good job of testing this time, so we don’t think we introduced any new bugs while we were fixing these bugs.

2.2:
Uh, sorry, one slipped through. One lousy typo error and you won’t believe how much trouble it caused!

2.3:
Some jerk found a deep-seated bug that’s been there since 1.0 and wouldn’t stop nagging until we fixed it!!

3.0:
Hey, we finally think we’ve got it right! Most of the customers are really happy with this.

3.1:
Of course, we did break a few little things.

4.0:
More features. It’s doubled in size now, by the way, and you’ll need to get more memory and a faster processor …

4.1:
Just one or two bugs this time… Honest!

5.0:
We really need to go on to a new product, but we have an installed base out there to protect. We’re cutting the staffing after this.

6.0:
We had to fix a few things we broke in 5.0. Not very many, but it’s been so long since we looked at this thing we might as well call it a major upgrade. Oh, yeah, we added a few flashy cosmetic features so we could justify the major upgrade number.

6.1:
Since I’m leaving the company and I’m the last guy left in the lab who works on the product, I wanted to make sure that all the changes I’ve made are incorporated before I go. I added some cute demos, too, since I was getting pretty bored back here in my dark little corner (I kept complaining about the lighting but they wouldn’t do anything). They’re talking about obsolescence planning but they’ll try to keep selling it for as long as there’s a buck or two to be made. I’m leaving the bits in as good a shape as I can in case somebody has to tweak them, but it’ll be sheer luck if no one loses them.

Smilies

🙂 Your basic smilie. This smilie is used to inflect a sarcastic or joking statement.
😉 Winky smilie. User just made a flirtatious and/or sarcastic remark.
🙁 Frowning smilie.
:-I Indifferent smilie. Better than Frowning but not quite as good as happy smilie
:-> User just made a really biting sarcastic remark. Worse than a :-).
>:-> User just made a really devilish remark.
>;-> Winky and devil combined. A very lewd remark was just made.

Those are the basic ones. Here are some somewhat less common ones:

(-: User is left handed
%-) User has been staring at a monitor for 15 hours straight
:*) User is drunk
[: User is a robot
😎 User is wearing sunglasses
B:-) Sunglasses on head
::-) User wears normal glasses
B-) User wears horn-rimmed glasses
8:-) User is a little girl
:-)-8 User is a Big girl
:-{) User has a mustache
:-{} User wears lipstick
{:-) User wears a toupee
}:-( Toupee in an updraft
:-[ User is a Vampire
:-E Bucktoothed vampire
:-F Bucktoothed vampire with one tooth missing
:-7 User juust made a wry statement
:-* User just ate something sour
:-)~ User drools
:-~) User has a cold
:’-( User is crying
:’-) User is so happy, s/he is crying
:-@ User is screaming
:-# User wears braces
:^) User has a broken nose
:v) User has a broken nose, but it’s the other way
:_) User’s nose is sliding off of his face
:<) User is from an Ivy League School
:-& User is tongue tied.
=:-) User is a hosehead
-:-) User is a punk rocker
-:-( (real punk rockers don’t smile)
:=) User has two noses
+-:-) User is the Pope or holds some other religious office
`:-) User shaved one of his eyebrows off this morning
,:-) Same thing…other side
|-I User is asleep
|-O User is yawning/snoring
:-Q User is a smoker
😕 User smokes a pipe
O-) Megaton Man On Patrol! (or else, user is a scuba diver)
O:-) User is an angel (at heart, at least)
😛 Nyahhhh!
:-S User just made an incoherent statement
😀 User is laughing (at you!)
:-X User’s lips are sealed
:-C User is really bummed
<|-) User is Chinese
<|-( User is Chinese and doesn’t like these kind of jokes
:-/ User is skeptical
C=:-) User is a chef
@= User is pro-nuclear war
*<:-) User is wearing a Santa Claus Hat
😮 Uh oh!
(8-o It’s Mr. Bill!
*:o) And Bozo the Clown!
3:] Pet smilie
3:[ Mean Pet smilie
d8= Your pet beaver is wearing goggles and a hard hat.
E-:-) User is a Ham radio operator
:-9 User is licking his/her lips
%-6 User is braindead
[:-) User is wearing a walkman
(:I User is an egghead
<:-I User is a dunce
K:P User is a little kid with a propeller beenie
@:-) User is wearing a turban
:-0 No Yelling! (Quiet Lab)
:-: Mutant Smilie
  The invisible smilie
-) User only has one eye
,-) Ditto…but he’s winking
X-( User just died
8 🙂 User is a wizard

Note: A lot of these can be typed without noses to make midget smilies.

🙂 Midget smilie
:] Gleep…a friendly midget smilie who will gladly be your friend
=) Variation on a theme…
:} What should we call these? (what?)
🙂 Happy
:> what?
:@ what?
😀 Laughter
:I Hmmm…
🙁 Sad
:[ Real Downer
:< what?
:{ what?
:O Yelling
:C what?
:Q what?
:,( Crying
] Hugs and
:* Kisses
|I Asleep
|^o Snoring

Shift Keys FAQ

  • Q. My shift keys have little arrows on them. Does that mean the *real* shift keys are located above them, and these keys are just little signs to point them out?

    A. Nope, they’re the Real McCoy. The little arrows mean “up”, as in “look up at the screen”. Your keyboard is telling you to learn to touch type and quit staring at your fingers.

  • Q. What happens if I press both shift keys?

    A. Even bigger letters may show up on your screen. You should not use this feature, however, because these letters are also brighter, and may cause Screen Burn-In, which would be particularly embarrassing if you were typing something naughty at the time. You might consider obtaining the author’s Shift Key Burn-In Protector program for only $139.95. Or you might not, it’s your computer, but don’t say I didn’t warn you.

  • Q. my religion prohibits the use of shift keys. how can i type capital letters and punctuation

    A. Discuss alternatives to the shift key with your spiritual advisor. Perhaps your deity would not be angered by repeated use of the Caps Lock key, or maybe you can retain a consultant to depress the shift for you.

    You might also consider replacing punctuation marks that require the use of shift keys with lower case expressions; replace ? with “huh” and ! with “zowie”.

  • Q> I PRESSED SHIFT AND IT”S STUCK DOWN NOW>

    A. Do small children with a fondness for peanut butter use your keyboard frequently? If so, you may want to clean it off for more reliable operation. First, disconnect your keyboard by gripping each of its ends firmly and pulling as hard as you can. Next, immerse the keyboard in warm water and scrub thoroughly with your favorite lemon-scented detergent and lots of steel wool. Finally, you need to dry the keyboard. Either dry it to touch with a handheld blowdryer, or place it in the dryer for not less than 60 minutes. Be sure to clean the lint screen when you are finished.

  • Q. Why are there are no “shift” keys on my keyboard, but there are two keys labelled “hif”?

    A. Again, you may want to consider cleaning your keyboard, and washing your hands more frequently for that matter.

  • Q. Are there shift keys on my Macintosh?

    A. Yes, although instead of the notation “shift”, the key may be labelled with an excited Mac face, something like :O . Press this key to use shift, and be thankful you’re using a friendly Mac instead of a mean old PC with all them confusin’ words ‘n stuff on it.

  • Q. I’m sick of pushing the shift key every single time I want big letters. Is there any other way to do this?

    A. This is the Modern Age of Convenience, and you may be able to activate the shift key merely with the power of your voice! Check to see whether your computer is equipped with speech-recognition equipment by saying the word “shift” very clearly and slowly into its speaker. Then watch the keyboard closely to see if the Shift key moves down. Note that you may have to repeat this action several times to “train” the computer to recognise your voice before the feature works reliably.

  • Q. There are two shift keys, which should I use?

    A. Avoid unnecessary wear on either shift key by alternating between the two. Keep track of your usage of each key so that you press them in equal amounts. Your keyboard may be equipped with a small notepad; you should use this to make little tally marks in two columns for each time you shift. Remember, it’s better to go to a little trouble than wind up with a broken shift key.

  • Q. Why are the shift keys bigger than the other keys?

    A. They aren’t. This is simply an optical illusion. Just as the moon appears much larger when it is close to the horizon, your shift keys look larger because of their proximity to other keys. To verify this, go out in a large field at night with your keyboard, place it in an upright position, and view it from a distance of 200 yards. Sure enough, the keys all look the same size!

  • Q. If I press the shift key at the wrong time, or too many times, will my computer explode?

    A. No. Well, generally no. Not unless you are using a NEC laptop. Or vt100 terminal emulation. But even then, hardly ever. Really, don’t worry about it. Forget I mentioned it. Just type softly. Move along, next question.

  • Q. No matter what I do, the shift key just doesn’t seem to work. What’s wrong?

    A. Have you ever considered that the problem may not be your keyboard, the problem may be YOU? Perhaps God Himself has suspended the operation of these keys to send you a Message that you have strayed from the path of righteousness. Use this as an opportunity to reflect on your life. Before rushing blindly ahead with a lot of shifting, consult the spiritual advisor of your choice for help in dealing with any unresolved issues in your relationship with the Almighty.

What If Dr. Seuss Wrote Computer Tech Manuals?

If a packet hits a pocket on a socket on a port,
And the bus is interrupted as a very last resort,
And the address of the memory makes your floppy disk abort, Then
the socket packet pocket has an error to report!

If your cursor finds a menu item followed by a dash,
And the double-clicking icons put your window in the trash, And
your data is corrupted ’cause the index doesn’t hash, Then your
situation’s hopeless, and your system’s gonna crash!

If the label on your cable on the gable at your house,
Says the network is connected to the button on your mouse,
But your packets want to tunnel to another protocol,
That’s repeatedly rejected by the printer down the hall.

And your screen is all distorted by the side effects of gauss, So
your icons in the window are as wavy as a souse, Then you may as
well reboot and go out with a bang, ‘Cause as sure as I’m a poet,
the sucker’s gonna hang!

When the copy of your floppy’s getting sloppy on the disk,
And the microcode instructions cause unnecessary RISC,
Then you have to flash your memory and you’ll want to RAM your
ROM, Quickly turn off your computer and be sure to tell your mom!

Remember When…

A computer was something on tv
From a science fiction show
A window was something you hated to clean…
And ram was the cousin of a goat…

Meg was the name of my girlfriend
And gig was your middle finger upright
Now they all mean different things
And that really mega bytes

An application was for employment
A program was a tv show
A cursor used profanity
A keyboard was a piano

Memory was something that you lost with age
A cd was a bank account
And if you had a 3 1/2″ floppy
You hoped nobody found out

Compress was something you did to the garbage
Not something you did to a file
And if you unzipped anything in public
You’d be in jail for a while

Log on was adding wood to the fire
Hard drive was a long trip on the road
A mouse pad was where a mouse lived
And a backup happened to your commode

Cut you did with a pocket knife
Paste you did with glue
A web was a spider’s home
And a virus was the flu

I guess I’ll stick to my pad and paper
And the memory in my head
I hear nobody’s been killed in a computer crash
But when it happens they wish they were dead

Psalm 23 for Programmers

The Lord is my programmer, I shall not crash.
He installed His software on the hard disk of my heart,
All of His commands are user friendly,
His directory moves me to the right choices for His name’s sake.

Even though I scroll through the problems of file,
I will fear no bugs, for You are my backup;
Your password protects me;
You prepare a menu before me in the presence of my enemies;
Your help is only a key away.

Surely goodness and mercy will follow me all the days of my life,
And my file will be merged with His and saved forever.

Program Conflicts with Girlfriend 1.0

Dear Sir,

I’ve been having some conflicts between programs lately. I’ve been running the original version of DrinkingBuddies 1.0 as my primary application and all the GirlFriend releases I’ve tried have always conflicted with it. I hear that DrinkingBuddies won’t crash if GirlFriend is run in background mode and the sound is turned off. But I’m embarrassed to say I can’t find the switch to turn the sound off. I just run them separately and it works okay. GirlFriend also seems to have a problem co-existing with my Golf program, often trying to abort Golf with some sort of timing incompatibility.

I probably should have stayed with GirlFriend 1.0, but I thought I might see better performance from GirlFriend 2.0. After months of conflicts and other problems, I consulted a friend who has had experience with GirlFriend 2.0. He said I probably didn’t have enough cache to run GirlFriend 2.0, and eventually it would require a Token Ring to run properly. He was right – as soon as I purged my cache, it uninstalled itself. Shortly after that, I installed GirlFriend 3.0 beta. All the bugs were supposed to be gone but the first time I used it, it gave me a virus. I had to clean out my whole system and shut down for a while. I very cautiously upgraded to GirlFriend 4.0. This time I used a SCSI probe first and also installed a virus protection program. It worked okay for a while until I discovered that GirlFriend 1.0 was still in my system. I tried running GirlFriend 1.0 again with GirlFriend 4.0 still installed, but GirlFriend 4.0 has a feature I didn’t know about that automatically senses the presence of any other version of GirlFriend and communicates with it in some way, which results in the immediate removal of both versions. The version I have now works pretty well, but there are still some problems.

Like all versions of GirlFriend, it is written in some obscure language I can’t understand, much less reprogram. Frankly, I think there is too much attention paid to the look and feel rather than the desired functionality. Also, to get the best connections with your hardware, you usually have to use gold-plated contacts. And I’ve never liked how GirlFriend is totally
object-oriented.

A year ago, a friend of mine upgraded his version of GirlFriend to GirlFriendPlus 1.0, which is a Terminate and Stay Resident version of GirlFriend. He discovered that GirlFriendPlus 1.0 expires within a year if you don’t upgrade to Fiancé 1.0. So he did, but soon after that, he had to upgrade to Wife 1.0, which he describes as a huge resource hog. It has taken up all his space so he can’t load anything else. One of the primary reasons he decided to go with Wife 1.0 was because it came bundled with FreeSexPlus. Well, it turns out that the resource allocation module of Wife 1.0 sometimes prohibits access to FreeSexPlus, particularly the new Plug-Ins he wanted to try. On top of that, Wife 1.0 must be running on a well warmed-up system before he can do anything.

Although he did not ask for it, Wife 1.0 also came with MotherInLaw 1.0 which has an automatic pop-up feature he can’t turn off. I told him to try installing Mistress 1.0, but he said he’d heard that if you try to run it without first uninstalling Wife 1.0, Wife 1.0 will delete MSMoney files before doing the uninstall itself. Then, Mistress 1.0 won’t install anyway because of insufficient resources.