Computer Humor


Abbott and Costello Meet Unix

Costello calls Abbott with some questions about Unix:

Costello: What is the command that will tell me the revision code of a program ?

Abbott: Yes, that's correct.

Costello: No, what is it ?

Abbott: Yes.

Costello: So, which is the one ?

Abbott: No. which is used to find the program.

Costello: Stop this. Who are you ?

Abbott: Use who am i not who r yoo. You can also finger yoo to get information about yoo.

Costello: All I want to know is what finds the revision code ?

Abbott: Use what.

Costello: That's what I am trying to find out. Isn't that true ?

Abbott: No. true gives you 0.

Costello: Which one ?

Abbott: true gives you 0. which programname

Costello: Let's get back to my problem. What program? How do I find it?

Abbott: Type find / -name it -print to find it. Type what program to get the revision code.

Costello: I want to find the revision code.

Abbott: You can't find revisioncode, you must use what program.

Costello: Which command will do what I need?

Abbott: No. which command will find command.

Costello: I think I understand. Let me write that.

Abbott: You can write that only if that is a user on your system.

Costello: Write what?

Abbott: No. write that. what program.

Costello: Cut that out!

Abbott: Yes. those are valid files for cut. Don't forget the options.

Costello: Do you always do this ?

Abbott: du will give you disk usage.

Costello: HELP!

Abbott: help is only used for Source Code Control System (SCCS).

Costello: You make me angry.

Abbott: No, I don't make me angry but I did make programname when I was upset once.

Costello: I don't want to make trouble, so no more.

Abbott: No more? which will help you find more. Every system has more.

Costello: Nice help! I'm confused more now!

Abbott: Understand that since help is such a small program, it is better not to nice help. and more now is not allowed but at now is. Unless of course now is a file name.

Costello: This is almost as confusing as my PC.

Abbott: I didn't know you needed help with pc. Let me get you to the Pascal compiler team.


BBC Censorship

From: [email protected] (Peter McWilliams)

The BBC web pages have links which allow you to send web pages to email addresses and to include a text message.

I just sent myself a page with the word Saturday in the body of the message. It arrived with the word changed to Sa****ay!

Hmmm. So I tried sending...

"I hope you still have your appetite for scraps of dickens when I bump into you in class in Scunthorpe, Essex on saturday"

Yes! It replied...

"I hope you still have your appetite for s****s of dickens when I ***p into you in class in S****horpe, Es*** on sa****ay"

Missed the ass, the tit and the dick though.

---Peter Mc*****ams


The Circle of Life

Programmer to Module Leader:

"This is not possible. **Impossible**. It will involve design change and no body in our team knows the design of the system. And above that nobody in our company knows the language in which this software has been written. So even if somebody wants to work on it, they can't. If you ask my personal opinion the company should never take these type of projects."

Module Leader to Project Manager:

"This project will involve design change. Currently we don't have people who have experience in this type of work. Also the language is unknown so we will have to arrange for some training if we take this project. In my personal opinion, we should avoid taking this project."

Project Manager to 1st Level Manager:

"This project involves design change in the system and we don't have much experience in that area. Also not many people are trained in this area. In my personal opinion we can take the project but we should ask for some more time."

1st Level Manager to 2nd Level Manager:

"This project involves design re-engineering. We have some people who have worked in this area and some who know the language. So they can train other people. In my personal opinion we should take this project but with caution."

2nd Level Manager to CEO:

"This project will show the industry our capabilities in remodeling the design of a complete system. We have all the necessary skills and people to execute this project successfully. Some people have already given in-house training in this area to other people. In my personal opinion we should not let this project go by under any circumstance."

CEO to Client:

"These are the type of projects in which our company specialize. We have executed many project of the same nature for many big clients. Trust me when I say that you are in the safest hand in the Industry. In my personal opinion we can execute this project successfully and that too well with in the given time frame."


Condoms from the Software Industry

When the Software industry had badly gone down, three software giants Sun, SCO(UNIX) ,and Microsoft started producing condoms and named them Java-condom, CondomiX, and MS-Condoms 98 respectively.

A customer using Java-condom complained to Sun that the condom didn't fit correctly. Sun replied: "Wait till we get the ISO standard". They boasted that it would fit any size irrespective of the underlying structure.

Well, the customer switched to CondomiX and found that by the time he would finish reading the instructions given along with it, his wife would fall asleep, and he himself would forget why he was using CondomiX.

Finally, he switched to MS-Condoms 98. To his surprise it was so good [...] and comfortable! He used it happily. Six months later, he found that his wife was pregnant. He got angry and complained to Microsoft. He got the following reply from Microsoft:

A PATCH IS COMING SOON [...]!!!


Programming Constructs


Cyberwocky

(With Apologies to Lewis Carroll)

'Twas e-mail, and the ftp
Did route and telnet to the node.
All rlogin to Xterms free
To let gopher download.

"Beware the Internet, my son!
The posts that spam, the speech that's free!
Beware the Netscape cache, and shun
The AOL mail id!"

He took his HP mouse in hand.
Long time a higher bandwidth sought --
And wished had he for his old PC
A faster modem bought.

And, as that wistful thought he gripped,
The Internet, with bait of flame,
Ran applets through the Javascript,
And mailbombed as it came!

The war he waged! As on each page
The HP mouse he double-clicked!
And 'twas absurd, the hype he'd heard
'Bout sites that he had picked.

"And, hast thou surfed the Internet?
Come link my page, my newbie bud!
O Lycos night! Yahoo! Excite!"
He messaged on his MUD.

'Twas e-mail, and the ftp
Did route and telnet to the node.
All rlogin to Xterms free
To let gopher download.

by Mike Hammerwocky Hammond.


Hacker Dating Tips

The Top 10 ways a Computer Guy can impress his date:

  1. Flash the big wads of tens and twenties you created with your color laser printer and top-notch graphics program.
  2. Spend an evening playing floppy disks backward, listening for the secret messages about Satan.
  3. Invite her back to your place to show her the etchings on your Newton MessagePad.
  4. Let the lady go first when you reach the virtual reality escalator.
  5. Serenade her with your MIDI-compatible drum pads.
  6. Have your dinner illuminated by the soft glow of an active-matrix LCD panel.
  7. If you're getting serious, consider a set of "his 'n' her" system unit keys.
  8. Drive her crazy by murmuring tender love words with the help of a French-speaking voice synthesizer.
  9. Never type on your date's laptop computer without permission, particularly if the system is on her lap.
  10. When things get tough, simply ask yourself, "What would Bill Gates do in a situation like this?

Daffynitions: I

ASSMOSIS: The process by which some people seem to absorb success and advancement by kissing up to the boss rather than working hard.

BEEPILEPSY: The brief seizure people sometimes have when their beeper goes off (especially in vibrator mode). Characterized by physical spasms, goofy facial expressions and interruption of speech in mid-sentence.

ALPHA GEEK: The most knowledgeable, technically proficient person in an office or work group. "Ask Larry, he's the alpha geek around here."

CHIPS AND SALSA: Chips = hardware, salsa = software. "Well, first we gotta figure out if the problem's in your chips or your salsa."

DANCING BALONEY: Little animated GIFs and other Web F/X that are useless and serve simply to impress clients. "This page is kinda dull. Maybe a little dancing baloney will help."

DEPOTPHOBIA: Fear associated with entering a Home Depot because of how much money one might spend. Electronics geeks experience SHACKOPHOBIA.

FLIGHT RISK: Used to describe employees who are suspected of planning to leave a company or department soon.

GENERICA: Features of the American landscape that are exactly the same no matter where one is. "We were so lost in generica, I actually forgot what city we were in."

IRRITAINMENT: Entertainment and media spectacles that are annoying but you find yourself unable to stop watching them. The O.J. trials were a prime example.

MIDAIR PASSENGER EXCHANGE: Grim air-traffic-controller speak for a head-on collision. Midair passenger exchanges are quickly followed by "aluminum rain."

PEBCAK: Tech support shorthand for "Problem Exists Between Chair and Keyboard." Techies are a frustrated, often arrogant lot. They've submitted numerous acronyms and terms that poke fun at the clueless users who call them up with frighteningly stupid questions.

Another variation on the above is ID10T: "This guy has an ID-Ten-T on his system."

PERCUSSIVE MAINTENANCE: The fine art of whacking the crap out of an electronic device to get it to work again.

SQUARE-HEADED GIRLFRIEND: Another word for a computer. The victim of a square-headed girlfriend is a "computer widow."

TELEPHONE NUMBER SALARY: A salary (or project budget) that has seven digits.

UMFRIEND: A sexual relation of dubious standing. "This is uh [...] Dale, my [...] um [...] friend [...]"

UNINSTALLED: Euphemism for being fired. Heard on the voice mail of a vice president at a downsizing computer firm: "You have reached the number of an uninstalled vice president. Please dial our main number and ask the operator for assistance." See also DECRUITMENT.

VULCAN NERVE PINCH: The taxing hand position required to reach all of the appropriate keys for certain commands. For instance, the warm re-boot for a Mac II computer involves simultaneously pressing the Control key, the Command key, the Return key and the Power On key.

YUPPIE FOOD STAMPS: The ubiquitous $20 bills spewed out of ATMs everywhere. Often used when trying to split the bill after a meal: "We all owe $8 each, but all anybody's got is yuppie food stamps."


Daffynitions: II

Acoustic Modem
A modem jury rigged from spare electronic parts and a wooden staff normally used to play billiards.
ASCII
Ancient deity of telecomputing. Rumored to bestow vast volumes of data upon supplicants. Hence the saying "ASCII and ye shall receive".
Auto Answer
What the author of this column should do when informed that a COMPUTE! editor is calling to find out where in blazes this month's column is.
BBS
Tall tales of telecomputing told by insects that produce honey.
Block Parity
One heck of a good time.
Carrier Detect
Raison d'etre for premarital blood test.
CBBS
More tall tales of telecomputing told by Naval engineers.
Ethernet
Device used to catch the Ether Bunny.
File Transfer
Procedure followed by telecomputerists who become tired of their present job.
Hayes Compatible
Prone to riding with a grizzled old cowhand who sings off key. Gene Autry is the accepted industry standard.
Kermit
A popular file-transmission protocol, most effective for short hops.
Local Area Network
A UHF television station that carries high school sporting events.
Macro
A tasty saltwater fish.
Modem
What landscapers do to lawns.
OAG
The sound a telecomputing buff makes after opening the monthly phone bill. (Moral: Ask not for whom the Bell tolls.)
Off Hook
What the author of this column is after finally finishing it.
Online
Where you hang your laundry to dry.
Prime Time
Any hour of the day divisible by 1 and itself.
Packet Switch Delay
Intermittent data flow caused by heavy traffic in a packet network. Most famous example was HULANET, a packet network set up in Hawaii to facilitate communications between manufactures of pineapple, guava, papaya, and passion fruit juices. Due to high data volume, HULANET was plagued with frequent, excessive delays. (Moral: Don't wait for the punch line.)
Protocol
For golf, Arnold Palmer or Jack Nicklaus.
Serial Interface
A spoon.
Terminal Emulation
Function performed by canines when commanded to lie on their backs with legs in the air.
Upload
A group of tourists on their way to the observation deck of the Sears Tower.
Videotex
The largest commercial purveyor of VCRs and televisions in Dallas.
XModem
A telecommunications device that was on the losing end of an encounter with lightning.

The End of Computing Science

From March 2001/Vol. 44, No. 3 COMMUNICATIONS OF THE ACM by EDSGER W. DIJKSTRA:

In academia, in industry, and in the commercial world, there is a widespread belief that computing science as such has been all but completed and that, consequently, computing has matured from a theoretical topic for the scientists to a practical issue for the engineers, the managers, and the entrepreneurs.

[...]

I would therefore like to posit that computing's central challenge, "How not to make a mess of it", has not been met. On the contrary, most of our systems are much more complicated than can be considered healthy, and are too messy and chaotic to be used in comfort and confidence. The average customer of the computing industry has been served so poorly that he expects his system to crash all the time, and we witness a massive worldwide distribution of bug-ridden software for which we should be deeply ashamed.

For us scientists it is very tempting to blame the lack of education of the average engineer, the shortsightedness of the managers, and the malice of the entrepreneurs for this sorry state of affairs, but that won't do. You see, while we all know that unmastered complexity is at the root of the misery, we do not know what degree of simplicity can be obtained, nor to what extent the intrinsic complexity of the whole design has to show up in the interfaces. We simply do not know yet the limits of disentanglement. We do not know yet whether intrinsic intricacy can be distinguished from accidental intricacy.

To put it bluntly, we simply do not know yet what we should be talking about, ... The moral is that whether computing science is finished will primarily depend on our courage and our imagination.


The Eight Fallacies of Distributed Computing

by Peter Deutsch.

Essentially everyone, when they first build a distributed application, makes the following eight assumptions. All prove to be false in the long run and all cause big trouble and painful learning experiences.

  1. The network is reliable
  2. Latency is zero
  3. Bandwidth is infinite
  4. The network is secure
  5. Topology doesn't change
  6. There is one administrator
  7. Transport cost is zero
  8. The network is homogeneous

Dogma: Does the System Administrator exist?

Given that there is a lot of discussion about whether or not our LAN really does have a System Administrator, and given that no empirical evidence of the existence or non-existence of the System Administrator is extant, I thought it would be helpful to have a frank and open discussion about the issues surrounding the concept.

Here are some popular arguments:

Argument from Design

  1. One looks at a simple computer, and sees evidence of intelligent design.
  2. One looks at a Sun Sparc 20 and... um... well... Okay, One looks at a DEC Alpha and sees evidence of intelligent design.
  3. It is therefore likely that something created them.
  4. One looks at the network and sees evidence of intelligent design.
  5. It is therefore likely that something created it. That something is the System Administrator.

Counter-argument

  1. If you think the network implies intelligent design, you haven't seen *our* network.
  2. Even assuming this proves the existence of a System Administrator, there's no evidence the System Administrator is intelligent.

First Causes argument

  1. When my computer comes on, it is because I turned it on. My computer cannot turn itself on.
  2. When I turn my computer on and connect to the network, the network is already there waiting for me.
  3. I know I did not activate the network.
  4. Therefore, something must have caused the network to exist.
  5. That something could be the Router, but then what installed the Router?
  6. That something must be the System Administrator.

Counter-argument

  1. So what caused the System Administrator?
  2. Still doesn't prove the System Administrator is intelligent.

The Argument from Popularity

  1. Almost everyone believes that the System Administrator exists. Those who don't believe He exists are in the minority.
  2. Many respected people claim to have received email from Him.
  3. In almost any company since the dawn of the Computer Age, there has been some form of System Administrator myth.
  4. Given the universality of the myths, it is unlikely that such myths are not based on truth.

Counter-argument

  1. Most users are clueless morons who need to believe in the Great Benevolent Super-User, and that He protects and watches over their data.
  2. So who's to say it's the System Admin that HR claims to have hired? Why not Brian Kernighan or Cliff Stoll, or Zeus, or Thor or any other such mythical creature?

The argument from Authority

  1. Management insists that the System Administrator exists. Specifically:
    1. HR insists that they hired Him
    2. Accounting claims to have PO's signed by Him
    3. MIS has the The Big Book of Documentation, written by Him or His disciples.

Counter-argument

  1. Since when has Management known what they were doing?
  2. Using the Big Book of Documentation as proof that the BBoD was written by the System Administrator is circular. It could be a fabrication.

The Cartesian Argument

  1. No user can create a more Super account than he himself possesses.
  2. No user can grant greater system privileges than he himself possesses.
  3. All users have heard of the root account, and that the root account is omnipotent and possesses all privileges.
  4. Since the concept of the root account is greater than the accounts possessed by the users, the users cannot have created the concept of the root account. Therefore the concept of the root account must come from something that possesses those privileges.
  5. There is an entry for 'root' in /etc/passwd.
  6. The root account can only have been created by the Super User, the System Administrator.

Counter-argument

  1. Statement 1 is a dubious premise.
  2. The existence of the root account is not proof that anyone ever logs into that account.
  3. Still doesn't prove that the System Admin is intelligent.

The ontological proof

  1. Given: The property of existence is more Super than the property of non-existence.
  2. The SysAdmin is defined as "a user, than which no more Super user can be conceived"
  3. No matter how great a Super User you can conceive which possesses the property of non-existence, you can then add the property of existence and make the Super User even more Super.
  4. Therefore, the System Administrator exists.

Counter-argument

  1. Rests on a dubious definition of what is and is not Super.
  2. The concept of a Super User is nowhere near analogous to the Super User itself. I can conceive of something, but that's only the concept of it, not the thing itself.

The Spinozist Argument

  1. The System Administrator is defined as the most perfect user possible.
  2. The property of necessary existence means that anything which possesses it must necessarily exist.
  3. If existence is better than non-existence (see the ontological proof), then necessary existence is better still.
  4. Any perfect user must possess the property of necessary existence.
  5. Therefore the System Administrator must necessarily exist.

However:

  1. Being perfect, the System Administrator cannot make mistakes, delete the wrong account, trash the root directory, mess up a tape load, etc.
  2. Being perfect, the System Administrator can not be capable of goal-directed action, because such action would imply that the network is somehow less than perfect in its current state.
  3. Therefore, the System Administrator is really more of a force of nature within the system.
  4. Arguably, then the System Administrator *is* the system itself.

Counter-argument

  1. None, since the System Administrator has been defined to the point where it is a totally useless concept, there's no point in arguing.

At least this resolves one of the major issues: the Spinozist argument proves that *if* the System Administrator does exist, it cannot be intelligent.


Macintosh vs. DOS

The fact is that the world is divided between users of the Macintosh computer and the users of MS-DOS compatible computers. I am firmly of the opinion that the Macintosh is Catholic and that DOS is Protestant. Indeed, the Macintosh is counterreformist and had been influenced by the "ratio studiorum" of the Jesuits. It is cheerful, friendly, conciliatory, it tells the faithful how they must proceed step by step to reach---if not the Kingdom of Heaven---the moment in which their document is printed. It is catechistic: the essence of revelation is dealt with via simple formulae and sumptuous icons. Everyone has a right to salvation.

DOS is Protestant, or even Calvinistic. It allows free interpretation of scripture, demands difficult personal decisions, imposes a subtle hermeneutics upon the user, and takes for granted the idea that not all can reach salvation. To make the system work you need to interpret the program yourself: a long way from the baroque community of revelers, the user is closed within the loneliness of his own inner torment.

You may object that, with the passage to Windows, the DOS universe has come to resemble more closely the counterreformist tolerance of the Macintosh. It's true: Windows represents an Anglican-style schism, big ceremonies in the cathedral, but there is always the possibility of a return to DOS to change things in accordance with bizarre decisions [...]

And machine code, which lies beneath both systems (or environments, if you prefer)? Ah, that is to do with the Old Testament, and is Talmudic and cabalistic.

Umberto Eco, "La bustina di Minerva", Espresso (September 30, 1994).


You Might be an Engineer If


Engineer Identification Test

by Scott Adams

Engineering is so trendy these days that everybody wants to be one. The word "engineer" is greatly overused. If there's somebody in your life who you think is trying to pass as an engineer, give him this test to discern the truth.

You walk into a room and notice that a picture is hanging crooked. You:

  1. Straighten it.
  2. Ignore it.
  3. Buy a CAD system and spend the next six months designing a solar-powered, self-adjusting picture frame while often stating aloud your belief that the inventor of the nail was a total moron.

The correct answer is "C" but partial credit can be given to anybody who writes "It depends" in the margin of the test or simply blames the whole stupid thing on "Marketing."

SOCIAL SKILLS

Engineers have different objectives when it comes to social interaction. "Normal" people expect to accomplish several unrealistic things from social interaction:

In contrast to "normal" people, engineers have rational objectives for social interactions:

FASCINATION WITH GADGETS

To the engineer, all matter in the universe can be placed into one of two categories:

  1. things that need to be fixed, and
  2. things that will need to be fixed after you've had a few minutes to play with them.

Engineers like to solve problems. If there are no problems handily available, they will create their own problems. Normal people don't understand this concept; they believe that if it ain't broke, don't fix it. Engineers believe that if it ain't broke, it doesn't have enough features yet.

No engineer looks at a television remote control without wondering what it would take to turn it into a stun gun. No engineer can take a shower without wondering if some sort of Teflon coating would make showering unnecessary. To the engineer, the world is a toy box full of suboptimized and feature-poor toys.

FASHION AND APPEARANCE

Clothes are the lowest priority for an engineer, assuming the basic thresholds for temperature and decency have been satisfied.

If no appendages are freezing or sticking together, and if no genitalia or mammary glands are swinging around in plain view, then the objective of clothing has been met. Anything else is a waste.

DATING AND SOCIAL LIFE

Dating is never easy for engineers. A normal person will employ various indirect and duplicitous methods to create a false impression of attractiveness. Engineers are incapable of placing appearance above function. Fortunately, engineers have an ace in the hole. They are widely recognized as superior marriage material: intelligent, dependable, employed, honest, and handy around the house. While it's true that many normal people would prefer not to date an engineer, most normal people harbor an intense desire to mate with them, thus producing engineer-like children who will have high-paying jobs long before losing their virginity.

Male engineers reach their peak of sexual attractiveness later than normal men, becoming irresistible erotic dynamos in their mid thirties to late forties. Just look at these examples of sexually irresistible men in technical professions:

Female engineers become irresistible at the age of consent and remain that way until about thirty minutes after their clinical death. Longer if it's a warm day.

HONESTY

Engineers are always honest in matters of technology and human relationships. That's why it's a good idea to keep engineers away from customers, romantic interests, and other people who can't handle the truth.

Engineers sometimes bend the truth to avoid work. They say things that sound like lies but technically are not because nobody could be expected to believe them. The complete list of engineer lies is listed below.

"I won't change anything without asking you first."
"I'll return your hard-to-find cable tomorrow."
"I have to have new equipment to do my job."
"I'm not jealous of your new computer."

FRUGALITY

Engineers are notoriously frugal. This is not because of cheapness or mean spirit; it is simply because every spending situation is simply a problem in optimization, that is, "How can I escape this situation while retaining the greatest amount of cash?"

POWERS OF CONCENTRATION

If there is one trait that can best defines an engineer it is the ability to concentrate on one subject to the complete exclusion of everything else in the environment. This sometimes causes engineers to be pronounced dead prematurely. Some funeral homes in high-tech areas have started checking resumes before processing the bodies. Anybody with a degree in electrical engineering or experience in computer programming is propped up in the lounge for a few days just to see if he or she snaps out of it.

RISK

Engineers hate risk. They try to eliminate it whenever they can. This is understandable, given that when an engineer makes one little mistake the media will treat it like it's a big deal or something.

EXAMPLES OF BAD PRESS FOR ENGINEERS

The risk/reward calculation for engineers looks something like this:

RISK
Public humiliation and the death of thousands of innocent people.
REWARD
A certificate of appreciation in a handsome plastic frame.

Being practical people, engineers evaluate this balance of risks and rewards and decide that risk is not a good thing. The best way to avoid risk is by advising that any activity is technically impossible for reasons that are far too complicated to explain.

If that approach is not sufficient to halt the project, then the engineer will fall back to a second line of defense: "It's technically possible but it will cost too much."

EGO

Ego-wise, two things are important to engineers:

The fastest way to get an engineer to solve a problem is to declare that the problem is unsolvable. No engineer can walk away from an unsolvable problem until it's solved. No illness or distraction is sufficient to get the engineer off the case. These types of challenges quickly become personal -- a battle between the engineer and the laws of nature.

Engineers will go without food and hygiene for days to solve a problem. (Other times just because they forgot.) And when they succeed in solving the problem they will experience an ego rush that is better than sex -- and I'm including the kind of sex where other people are involved.

Nothing is more threatening to the engineer than the suggestion that somebody has more technical skill. Normal people sometimes use that knowledge as a lever to extract more work from the engineer. When an engineer says that something can't be done (a code phrase that means it's not fun to do), some clever normal people have learned to glance at the engineer with a look of compassion and pity and say something along these lines: "I'll ask Bob to figure it out. He knows how to solve difficult technical problems."

At that point it is a good idea for the normal person to not stand between the engineer and the problem. The engineer will set upon the problem like a starved Chihuahua on a pork chop.


Etch-A-Sketch

Frequently Asked Questions for Etch-A-Sketch Technical Support

Q: My Etch-A-Sketch has all of these funny little lines allover the screen.
A: Pick it up and shake it.

Q: How do I turn my Etch-A-Sketch off?
A: Pick it up and shake it.

Q: What's the shortcut for Undo?
A: Pick it up and shake it.

Q: How do I create a New Document window?
A: Pick it up and shake it.

Q: How do I set the background and foreground to the same color?
A: Pick it up and shake it.

Q: What is the proper procedure for rebooting my Etch-A-Sketch?
A: Pick it up and shake it.

Q: How do I delete a document on my Etch-A-Sketch?
A: Pick it up and shake it.

Q: How do I save my Etch-A-Sketch document?
A: Don't shake it.


Flaming Like A Pro

The Twelve Commandments of Flaming

  1. Make things up about your opponent: It's important to make your lies sound true. Preface your argument with the word "clearly." "Clearly, Fred Flooney is a liar, and a dirtball to boot."
  2. Be an armchair psychologist: You're a smart person. You've heard of Freud. You took a psychology course in college. Clearly, you're qualified to psychoanalyze your opponent. "Polly Purebread, by using the word 'zucchini' in her posting, shows she has a bad case of penis envy."
  3. Cross-post your flames: Everyone on the net is just waiting for the next literary masterpiece to leave your terminal! From the Apple II RoundTable to X-10 Powerhouse RoundTable, they're all holding their breath until your next flame. Therefore, post everywhere.
  4. Conspiracies abound: If everyone's against you, the reason can't *possibly* be that you're a shithead. There's obviously a conspiracy against you, and you will be doing the entire net a favor by exposing it.
  5. Lawsuit threats: This is the reverse of Rule #4 (sort of like the Yin and Yang of Flaming). Threatening a lawsuit is always considered to be in good form. "By saying that I've posted to the wrong group, Bertha has libeled me, slandered me, and sodomized me. See you in court, Bertha."
  6. Force them to document their claims: Even if Harry Hoinkus states outright that he likes tomato sauce on his pasta, you should demand documentation. If Newsweek hasn't written an article on Harry's pasta preferences, then Harry's obviously lying.
  7. Use foreign phrases: French is good, but Latin is the lingua franca of flaming. You should use the words "ad hominem" at least three times per article. Other favorite Latin phrases are "ad nauseum," "veni, vidi, vici," and "fettucini alfredo."
  8. Tell 'em how smart you are: Why use intelligent arguments to convince them you're smart when all you have to do is tell them? State that you're a member of Mensa, or Mega, or Dorks of America. Tell them the scores you received on every exam since high school. "I got an 800 on my SATs, LSATs, GREs, MCATs, and I can also spell the word 'premeiotic'."
  9. Accuse your opponent of censorship: It is your right as an American citizen to post whatever the hell you want to the net (as guaranteed by the 37th Amendment, I think). Anyone who tries to limit your cross-posting or move a flame war to email is either a communist, a fascist, or both.
  10. Doubt their existence: You've never actually seen your opponent, have you? And since you're the center of the universe, you should have seen them by now, shouldn't you? Therefore, THEY DON'T EXIST! This is the beauty of flamers' logic.
  11. Lie, cheat, steal, leave the toilet seat up.
  12. When in doubt, insult: If you forget the other 11 rules, remember this one. At some point during your wonderful career as a Flamer you will undoubtedly end up in a flame war with someone who is better than you. This person will expose your lies, tear apart your arguments, make you look generally like a bozo. At this point, there's only one thing to do: INSULT THE DIRTBAG!!! "Oh yeah? Well, your mother does strange things with vegetables."

Example for the Rookie Flamer

Dear Joe,

I object to your use of the word "dear." It shows you are a condescending, sexist pig. Also, the submissive tone you use shows that you like to be tied down and flagellated with licorice whips.

While I found your article "The Effect of Belly-Button Lint on Western Thought" to be extremely thought-provoking,

"Thought-provoking?" I had no idea you could think, you rotting piece of swamp slime.

it really shouldn't have been posted in rec.scuba.

What? Are you questioning my judgement? I'll have you know that I'm a member of the super-high-IQ society Menstruate. I got an 800 on my PMS exam. Your attempts constitute nothing less than censorship. There is a conspiracy against me. You, Riff Raff, and Simon Sinister have been constantly harassing me by email. This was an ad hominem attack! I have therefore cross-posted this to alt.flame, rec.nude, comp.graphics, and rec.arts.wobegon.

Perhaps you should have posted it in misc.misc.

It is my right, as granted in the Bill of Rights, the Magna Carta, the Bible and the Koran, to post where ever I want to. Or don't you believe in those documents, you damn fascist? Perhaps if you didn't spend so much time sacrificing virgins and infants to Satan, you would have realized this.

Your article would be much more appropriate there.

Can you document this? I will only accept documents notarized by my attorney, and signed by you in blood. Besides, you don't really exist anyway, you AI project, you.

Name the 4 Essential Food Groups

Hot on the heels of the success of the show, Who Wants to Marry a Multi-Millionaire? welcome to Who Wants to Marry a Software Engineer? Silicon Valley's newest game show. Here's your contestant questionnaire.

  1. What quality do you value most in your partner?
    1. A sense of humor
    2. Emotional maturity.
    3. High bandwidth.
  2. When you get home at the end of the day, you like to:
    1. Turn on the Silicon Valley Business report, and eat dinner.
    2. Hook up to your ISP, and check out the hit count on your web page.
    3. Recharge your cell phone, laptop, and wireless modem, change batteries on your pager, and resynchronize your Palm Pilot and home computer.
  3. Your ideal partner is:
    1. Interesting and attractive.
    2. Emotionally mature and understanding.
    3. Extensible and polymorphic.
  4. In spiritually difficult times, you often turn to:
    1. Dilbert
    2. Kernighan and Ritchie
    3. comp.lang.c++
  5. If go over to your partner's place and think its a mess, you would:
    1. Complain to him/her, and tell them to tidy up.
    2. Call a maid service.
    3. Make clean
  6. What kind of car would you like to buy next, and why?
    1. A BMW, because people will see that I am rich and successful.
    2. A Jeep, because it's youthful, rugged, and won't break down.
    3. A Honda because the engine control computer can be hacked for more horsepower.
  7. If your partner comes home from work complaining bitterly about his boss, you will:
    1. Give him a hug, pour him a drink, and tell him you love him.
    2. Commiserate about how unfair managers can be.
    3. Forge the boss's e-mail address, and subscribe him to 17 pornography mailing lists.
  8. Name the 4 essential food groups:
    1. Fruit, vegetables, meat, dairy.
    2. Coffee, chocolate, takeout, ice cream.
    3. rec.food.cooking, rec.food.veg, ba.food, alt.food.chocolate
  9. You like to travel with your partner because:
    1. You share new experiences together.
    2. You learn about each other in different situations.
    3. You get more use out of your wireless modem.
  10. How would you describe your attitude towards religion?
    1. "I'm not particularly religious."
    2. "I believe in emacs, but can use vi."
    3. "I think emacs can be configured as a full IDE."
  11. You think a relationship is ready for a permanent commitment because:
    1. You've successfully struggled through several years of good and bad times.
    2. You're already living together, so you might as well tie the knot.
    3. You finally got your local network configured just right.
  12. If you and your partner got married, you would want to:
    1. Keep your last name.
    2. Change your last name.
    3. Combine your names with a hyphen.
    4. Combine your names with an underscore.
  13. You and your partner think it's time to have children when:
    1. Your stock options are vested.
    2. You've agreed on the requirements and design.
    3. You've come up with a good naming convention.
    4. You really understand the use of multiple inheritance.

The Free Software Song

[To the melody of Sadi Moma].

Join us now and share the software;
You'll be free, hackers, you'll be free.
Join us now and share the software;
You'll be free, hackers, you'll be free.

Hoarders may get piles of money,
That is true, hackers, that is true.
But they cannot help their neighbors;
That's not good, hackers, that's not good.

When we have enough free software
At our call, hackers, at our call,
We'll throw out those dirty licenses
Ever more, hackers, ever more.

Join us now and share the software;
You'll be free, hackers, you'll be free.
Join us now and share the software;
You'll be free, hackers, you'll be free.

Melody of Sadi Moma, a Bulgarian dance tune. (Dash means previous note continues; there are seven beats per measure.)

D-CB-A- B-CBAG- G--A--B C--B-BD A--A--- CDCB---
D-CB-A- B-CBAG- G--A--B C--B-BD A--A--- A------

Copyright 1993 Richard Stallman. Verbatim redistribution permitted if this notice is preserved.


Get a Life

echo '[q]sa[ln0=aln256%Pln256/snlbx]sb3135071790101768542287578439snlbxq' | dc

echo '16i[q]sa[ln0=aln100%Pln100/snlbx]sbA0D4D465452snlbxq'|dc


The Shoulders of Giants

Isaac Newton: If I have seen farther than others, it is because I was standing on the shoulders of giants.

Gerald Holton: In the sciences, we are now uniquely privileged to sit side by side with the giants on whose shoulders we stand.

Hal Abelson: If I have not seen as far as others, it is because giants were standing on my shoulders.

Brian Reid: In computer science, we stand on each other's feet.


Glossary of Computer Terms

beta test, v.
To voluntarily entrust one's data, one's livelihood and one's sanity to hardware or software intended to destroy all three. In earlier days, virgins were often selected to beta test volcanos.
bit, n.
A unit of measure applied to color. Twenty-four-bit color refers to expensive $3 color as opposed to the cheaper 25 cent, or two-bit, color that use to be available a few years ago.
buzzword, n.
The fly in the ointment of computer literacy.
clone, n.
  1. An exact duplicate, as in "our product is a clone of their product."
  2. A shoddy, spurious copy, as in "their product is a clone of our product."
enhance, v.
To tamper with an image, usually to its detriment.
genlock, n.
Why he stays in the bottle.
guru, n.
A computer owner who can read the manual.
handshaking protocol, n.
A process employed by hostile hardware devices to initiate a terse but civil dialogue, which, in turn, is characterized by occasional misunderstanding, sulking, and name-calling.
italic, adj.
Slanted to the right to emphasize key phrases. Unique to Western alphabets; in Eastern languages, the same phrases are often slanted to the left.
Japan, n.
A fictional place where elves, gnomes and economic imperialists create electronic equipment and computers using black magic. It is said that in the capital city of Akihabara, the streets are paved with gold and semiconductor chips grow on low bushes from which they are harvested by the happy natives.
kern, v.
  1. To pack type together as tightly as the kernels on an ear of corn.
  2. In parts of Brooklyn and Queens, N.Y., a small, metal object used as part of the monetary system.
modem, adj.
Up-to-date, new-fangled, as in "Thoroughly Modem Millie." An unfortunate byproduct of kerning.
pixel, n.
A mischievous, magical spirit associated with screen displays. The computer industry has frequently borrowed from mythology: Witness the sprites in computer graphics, the demons in artificial intelligence, and the trolls in the marketing department.
prototype, n.
First stage in the life cycle of a computer product, followed by pre-alpha, alpha, beta, release version, corrected release version, upgrade, corrected upgrade, etc. Unlike its successors, the prototype is not expected to work.
revolutionary, adj.
Repackaged.
Unix, N.
A computer operating system, once thought to be flabby and impotent, that now shows a surprising interest in making off with the workstation harem.

Heaven and Hell


Great Software

Great software results from careful analysis of real-world problems and thoughtful examination of possible solutions. Obese software results from the far easier process of looking at an existing piece of software and asking, "What can I add next?"

From the programming notebooks of a heretic, 1990

Riding a Dead Horse

Dakota tribal wisdom says that when you discover you are riding a dead horse, the best strategy is to dismount. However, in business, we often try other strategies with dead horses, including the following:

  1. Buying a stronger whip.
  2. Changing riders.
  3. Saying things like "This is the way we always have ridden this horse."
  4. Appointing a committee to study the horse.
  5. Arranging to visit other sites to see how they ride dead horses.
  6. Increasing the standards to ride dead horses.
  7. Appointing a tiger team to revive the dead horse.
  8. Creating a training session to increase our riding ability.
  9. Comparing the state of dead horses in today's environment.
  10. Changing the requirements to declare that "This horse is not dead."
  11. Hire contractors to ride the dead horse.
  12. Harnessing several dead horses together for increased speed.
  13. Declaring that "No horse is too dead to beat."
  14. Providing additional funding to increase the horse's performance.
  15. Doing a cost-benefit analysis to see if contractors can ride it cheaper.
  16. Purchasing a product to make dead horses run faster.
  17. Declaring the horse is "better, faster, and cheaper" dead.
  18. Forming a quality circle to find uses for dead horses.
  19. Revisiting the performance requirements for horses.
  20. Saying the horse was procured with cost as an independent variable.
  21. Promoting the horse to a supervisory position.

JabberWin2K

(with apologies to Lewis Carroll)

'Twas Ballmer and the slithey Gates,
Did FUD and fumble in the press.
All colored were the CRT's
With Blue Screens of Death.

"Beware the Windows troll, my son!
The Drestin Black, the Smith named Chris!
Beware the Mulligan and shun
The frumious sponge and S!"

He took his GPL in hand
Long time the open source he sought --
So rested he, by the CVS tree,
And stood awhile in thought.

And as in GNUish thought he stood,
The Windows troll, with post of flame,
Came whining down the Usenet feed,
And FUDed as he came!

One, two! One, two! And through and through,
The killfile *PLONK* went snicker-snack!
He marked it read, reply unsaid,
And went GPLing back.

"And hast thou spurned the Windows troll?
Come to my arms, my Linux boy!
O KDE! O Gnome and E!"
(He chortled at Bill Joy.)

'Twas Ballmer and the slithey Gates,
Did FUD and fumble in the press.
All colored were the CRT's
With Blue Screens of Death.


C Poetry

/*
 * find the important things in Life, the Universe, and Everything
 */

typedef short   some;       /* some things are short */
typedef some    very;       /* some things are very short */

#define A                   /* The first letter of the English Alphabet */
#define LINE    2           /* 2 points define a line */

#define TRUTH   BEAUTY      /* truth is beauty */
#define BEAUTY  10          /* and beauty is a 10 */

#define bad     char        /* burnt on both sides */
#define old     char        /* the great Chicago Fire */

#define get     strlen      /* during your life, try to get some sterling */
#define youmake float       /* you make it, I'll drink it */


#define yourgoals   in terms you can understand

#include    "yourdreams"    /* for the future */


    /* everyone needs goals */

short   term;
double  yourpleasure();
double  yourfun;

long    Term, play(), agame;

    /* everyone needs diversions */

old *joke = "Why did the chicken cross the road?\n\t\
To get to the other side!\n\t\tWocka Wocka Wocka!\n";


tell(joke)
bad *joke;      /* wait- you haven't heard it yet! */
{
    short laugh;    /* please */

    laugh = get(joke);
    write(1, joke, laugh);  /* write it down- don't say it */

}

    /* most folks like music */

long play(record)
long record;
{
    very pleasant = TRUTH;      /* if you like music */

    while (record == pleasant)
        play(record--);

    return( pleasant );     /* music soothes the savage */
}


double  yourpleasure(one, way)      /* this is necessary if */
some    one;                /* is watching ,or if you have a */
long    way;                /* to go  */
{
    /* this can change one while maintaining one's identity */
    one = one * one;
    return( one );      /* after all, it should have at least doubled */
}

hold(temper)            /* good advice */
A short temper;         /* is a dangerous thing */
{
    A long  time;       /* is what you need */
    very calm;      /* is how you should be */

    calm = temper, temper;

    while (calm--)
        wait(&time);

    return(calm);       /* if possible */
}


    /* now, on to the main thing */

main(thing, mustbe)     /* to balance work, play, and goals */
some thing, mustbe;     /* important, or we wouldn't be here */
{

    long    time();     /* know C */
    very    bored;      /* the result of too few goals */

    short   hours;      /* make */
    long    yourwork;   /* which makes for */
    short   tempers;    /* which can be improved by */
    long    laughing;


    /* first, set priorities */
    yourwork = 0;
    yourfun = 1.0e+38;

    if (yourpleasure( mustbe, yourwork ))
        yourfun = yourwork;
    else
        yourfun = play( agame );

    bored = yourfun - yourwork;     /* nothing to do? */
                    /* reach out and touch someone! */

    switch ( bored ) {  /* connects all of this together */
    default:
        hours = hold(LINE); /* no way to avoid it, take a */
        break;
    }

        /* take a music break */
    while ( thing-- ) { /* you make my heart sing */
        youmake everything;
        very groovy;
    }

        /* focus on what is important to you */
    while ( yourfun < 0 ) {
        yourpleasure( mustbe, agame);
        yourfun = play( agame );
    }

    tell(joke);

    exit( laughing );
}

/*
Not-So Common C Declarations

struct SoftwareProfessional {
    double    salary;
    long      lunches;
    float     jobs;
    char      unstable;
    void      work;
};


         auto accident;
         register voters;
         static electricity;
         struct by_lightning;
         void *where_prohibited;
         char broiled;
         short circuit;
         short changed;
         long johns;
         unsigned long letter;
         double entendre;
         double trouble;
         union organizer;
         float valve;
         short pants;
         union station;
         void check; unsigned check;
         struct dumb by[sizeof member];
*/


/* Lover's Lane */

char*lie;
    double time, me= !0XFACE,
    not; int rested,   get, out;
    main(ly, die) char ly, **die ;{
        signed char lotte,


dear; (char)lotte--;
    for(get= !me;; not){
    1 -  out & out ;lie;{
    char lotte, my= dear,
    **let= !!me *!not+ ++die;
        (char*)(lie=


"The gloves are OFF this time, I detest you, snot\n\0sed GEEK!");
    do {not= *lie++ & 0xF00L* !me;
    #define love (char*)lie -
    love 1s *!(not= atoi(let
    [get -me?
        (char)lotte-


(char)lotte: my- *love -
    'I'  -  *love -  'U' -
    'I'  -  (long)  - 4 - 'U' ])- !!
    (time  =out=  'a'));} while( my - dear
    && 'I'-1l  -get-  'a'); break;}}
        (char)*lie++;


(char)*lie++, (char)*lie++; hell:0, (char)*lie;
    get *out* (short)ly   -0-'R'-  get- 'a'^rested;
    do {auto*eroticism,
    that; puts(*( out
    - 'c'
    -('P'-'S') +die+ -2 ));}while(!"you're at it");


for (*((char*)&lotte)^=
    (char)lotte; (love ly) [(char)++lotte+
    !!0xBABE];){ if ('I' -lie[ 2 +(char)lotte]){ 'I'-1l ***die; }
    else{ if ('I' * get *out* ('I'-1l **die[ 2 ])) *((char*)&lotte) -=
    '4' - ('I'-1l); not; for(get=!
get; !out; (char)*lie  &  0xD0- !not) return!!
    (char)lotte;}


(char)lotte;
    do{ not* putchar(lie [out
    *!not* !!me +(char)lotte]);
    not; for(;!'a';);}while(
        love (char*)lie);{


register this; switch( (char)lie
    [(char)lotte] -1s *!out) {
    char*les, get= 0xFF, my; case' ':
    *((char*)&lotte) += 15; !not +(char)*lie*'s';
    this +1s+ not; default: 0xF +(char*)lie;}}}
    get - !out;
    if (not--)
    goto hell;
        exit( (char)lotte);}

Bill Joy Poetry Slam

By Routers staff troll writer Django Shoenstopper, Copyright, 1999

Bill Joy, best known as one of the principal engineers and Operating Systems software developers at Sun Microsystems, and formerly a core developer of the free BSD UNIX operating system written at the University of Berkeley in the late '70's and early '80's, let down his hair yesterday and was caught reciting at a well known San Francisco Poetry Slam. Mr. Joy took the stage right after the well known Amistad Maupin, author of the classic Tales of the City series, recited his famous Ode to the claw-like scratches on this '70's bath house table during the Queen Phatima Amazon-Girl With Short-Spiked-Hair Poetry Slam and let loose his own sort of software Howl to the delight of audience software developers and the engineering uninitiated alike.

Entitled Free means FREE GODDAMMIT! (the GPL is EVIL) Mr. Joy eloquently presented his opinion on the Free Software licensing debate which has raged through engineering circles ever since East Coast programmer and Free Software advocate Richard Stallman hired several copyright attorneys to develop his so-called CopyLeft General Public License.

Here is an excerpt:

Free means FREE GODDAMMIT! (the GPL is EVIL)

I sit here at my terminal
coding a storm in my vi,
a malloc() for some array,
while strncpy() bounds a check,
but inside I seethe -- inside I rumble,
at all the lines locked up,
and the derived headers claimed with glee,
for I know the caged free()
consumed by the GPL!

Free means FREE GODDAMMIT,
it means I take and offer as I please,
it doesn't mean to taint my work,
just because I swiped some header,
or one little readline,
it's the state of being FREE,
as opposed to the state of being NOT FREE!

Don't you understand RMS,
the GPL is EVIL!,
it's a blight of a free license,
and a virus to behold,
consuming all code afterwards,
in an atomic chain reaction,
like red tide spread across our ocean,
all our oysters now inedible!

Free coders far and wide,
listen to my swan-song by the sea,
for while Solaris kicks BSD's ass,
and my SCSL is a sight to see,
at least BSD and MIT leave code FREE,
unlike that UNAMERICAN red GPL crap,
with it RMS will suck you dry,
Because Free means FREE GODDAMMIT!
and The GPL is EVIL!

When asked for comment Richard Stallman had only this to say,"Wow, Bill is a terrible poet!"

But some here suspect that Mr. Stallman's response only belies both his East Coast snobbery for missing out on the new poetry slam revolution here in San Francisco, and his envy at Mr. Joy's enlightened West Coast writing style and attitude.


AI Koans

One day a student came to Moon and said, "I understand how to make a better garbage collector. We must keep a reference count of the pointers to each cons." Moon patiently told the student the following story:

"One day a student came to Moon and said, "I understand how to make a better garbage collector...

In the days when Sussman was a novice Minsky once came to him as he sat hacking at the PDP-6. "What are you doing?", asked Minsky. "I am training a randomly wired neural net to play Tic-Tac-Toe." "Why is the net wired randomly?", asked Minsky. "I do not want it to have any preconceptions of how to play." Minsky shut his eyes. "Why do you close your eyes?", Sussman asked his teacher. "So the room will be empty." At that moment, Sussman was enlightened.


A student, in hopes of understanding the Lambda-nature, came to Greenblatt. As they spoke a Multics system hacker walked by. "Is it true," asked the student, "that PL-1 has many of the same data types as Lisp?" Almost before the student had finished his question, Greenblatt shouted, "FOO!", and hit the student with a stick.


A disciple of another sect once came to Drescher as he was eating his morning meal. "I would like to give you this personality test," said the outsider, "because I want you to be happy." Drescher took the paper that was offered him and put it into the toaster: "I wish the toaster to be happy, too."


A man from AI walked across the mountains to SAIL to see the Master, Knuth. When he arrived, the Master was nowhere to be found. "Where is the wise one named Knuth?", he asked a passing student. "Ah," said the student, "you have not heard. He has gone on a pilgrimage across the mountains to the temple of AI to seek out new disciples." Hearing this, the man was Enlightened.


A famous Lisp Hacker noticed an Undergraduate sitting in front of a Xerox 1108, trying to edit a complex Klone network via a browser. Wanting to help, the Hacker clicked one of the nodes in the network with the mouse, and asked, "what do you see?" Very earnestly, the Undergraduate replied "I see a cursor." The Hacker then quickly pressed the boot toggle at the back of the keyboard, while simultaneously hitting the Undergraduate over the head with a thick Interlisp Manual. The Undergraduate was then Enlightened.


Korn Shell Compatibility

Author unknown.

A Microsoft Moment

I've been attending the USENIX NT and LISA NT (Large Installation Systems Administration for NT) conference in downtown Seattle this week.

One of those magical Microsoft moments(tm) happened yesterday and I thought that I'd share. Non-geeks may not find this funny at all, but those in geekdom (particularly UNIX geekdom) will appreciate it.

Greg Sullivan, a Microsoft product manager (henceforth MPM), was holding forth on a forthcoming product that will provide Unix style scripting and shell services on NT for compatibility and to leverage UNIX expertise that moves to the NT platform. The product suite includes the MKS (Mortise Kern Systems) windowing Korn shell, a windowing PERL, and lots of goodies like awk, sed and grep. It actually fills a nice niche for which other products (like the MKS suite) have either been too highly priced or not well enough integrated.

An older man, probably mid-50s, stands up in the back of the room and asserts that Microsoft could have done better with their choice of Korn shell. He asks if they had considered others that are more compatible with existing UNIX versions of KSH.

The MPM said that the MKS shell was pretty compatible and should be able to run all UNIX scripts.

The questioner again asserted that the MKS shell was not very compatible and didn't do a lot of things right that are defined in the KSH language spec.

The MPM asserted again that the shell was pretty compatible and should work quite well.

This assertion and counter assertion went back and forth for a bit, when another fellow member of the audience announced to the MPM that the questioner was, in fact David Korn of AT&T (now Lucent) Bell Labs (David Korn is the author of the Korn shell).

Uproarious laughter burst forth from the audience, and it was one of the only times that I have seen a (by then pink cheeked) MPM lost for words or momentarily lacking the usual unflappable confidence. So, what's a body to do when Microsoft reality collides with everyone else's?


A Programmer's Guide to Languages

Any budding programmers amongst you are probably bewildered by all the different languages available to you. What language should you use for what project? Here are a few suggestions to be going on with.

Knitting Perl
Humourous Tcl
Horse Racing Forth
Starbucks Java
Chat client Smalltalk
Marine navigation C
Marine/Aviation navigation C+
Marine/Aviation/Space navigation C++
Car Racing VRML
Graphics Visual Basic
Reptiles Python
Speech recognition Lisp
Manuals for these programs Anything but English

LaTeX extensions

We propose the following extensions to the current version of Latex. We anticipate that it will help many struggling scientists who agonize over the correct formatting of their scientific papers.

\wave
The generic \wave command : this is used to simulate waving various objects in your documents.
For example, a difficult proof for a theorem can be effectively finished with a \wave{\hand} command.
A criticism of someone who caught errors in your previous papers can be made scathing with the \wave{\finger} command.
We also recommend that all papers finish with a friendly \wave{\bye} command,
\namedrop
This powerful extension allows the scientist to justify research of dubious value with a set of names chosen from an extensive database. The database consists of names such as Don Knuth, Alan Turing, Andrew Wiles, Einstein. The database also contains a list of all the papers that these illustrious scientists have written. \namedrop chooses a random paper corresponding to the name chosen.
We realize that \namedrop has a severe limitation. After all, an unproven and outrageous claim cannot always be attributed to the name of a living (or recently dead) person. There are people who actually cross check all references - no, really ! To obviate this difficulty, we propose the all powerful \namedrop{God} command.
The citation at the end of the paper becomes
[5] God, personal communication.
There are options on choosing Gods from a variety of religions, for example: {\namedrop{God{Vishnu}}}
The only drawback in using this option is that one can only cite Gods from one religion in a paper. For some inexplicable reason, Latex does not work if we allow the multiple religion option.
Verbose commands
Following Seinfeld, we also have a \yada-yada command which substitutes randomly chosen text (from a database) to fill up several pages. We do not recommend that this option is used to fill up the whole paper as that may look suspicious. If one needs to do that, we strongly recommend that the \namedrop{God} option and the powerful \wave{\knife} option be used liberally at the beginning of the paper. Currently, we only have Kitty Kelly's masterpiece "Jackie Oh!" in our database.
\graphs
This option allows the user to include graphs that simulate actual statistical experiments into the paper. The graph usually have the following characteristic: there is one best case line and one worst case line. There are options to refer to others' experiments for the worst case. This is a powerful tool to criticize your colleagues work with scientific proof and not just words.

We are excited about bringing these tools in front of the scientific community. Please send us your responses ([email protected]) about further additions to the list. (joint work with Chris)


Literary Computers

A computer is like an Old Testament god, with a lot of rules and no mercy. Joseph Campbell

A computer lets you make more mistakes faster than any invention in human history--with the possible exceptions of handguns and tequila. Mitch Ratliffe

A human being is a computer's way of making another computer. Yes, we are their sex organs. Solomon Short

All parts should go together without forcing. You must remember that the parts you are reassembling were disassembled by you. Therefore, if you can't get them together again, there must be a reason. By all means, do not use a hammer. IBM maintenance manual, 1925

Computers are useless. They can only give you answers. Pablo Picasso

Computers will never take the place of books. You can't stand on a floppy disk to reach a high shelf. Sam Ewing

Don't explain computers to laymen. Simpler to explain sex to virgins. Robert Heinlein (in "The Moon is a Harsh Mistress")

Hardware: the parts of a computer that can be kicked. Jeff Pesis

It was not so very long ago that people thought that semiconductors were part-time orchestra leaders and microchips were very small snack foods. Geraldine Ferraro

Man is the best computer we can put aboard a spacecraft ...and the only one that can be mass produced with unskilled labor. Wernher von Braun

No computer has ever been designed that is ever aware of what it's doing; but most of the time, we aren't either. Marvin Minsky

One thing a computer can do that most humans can't is be sealed up in a cardboard box and sit in a warehouse. Jack Handey

There is only one satisfying way to boot a computer. J.H.Goldfuss

They have computers, and they may have other weapons of mass destruction. Janet Reno

The most likely way for the world to be destroyed, most experts agree, is by accident. That's where we come in; we're computer professionals. We cause accidents. Nathaniel Borenstein

To err is human and to blame it on a computer is even more so. Robert Orben

Usenet is like a herd of performing elephants with diarrhea--massive, difficult to redirect, awe-inspiring, entertaining, and a source of mind-boggling amounts of excrement when you least expect it. Gene Spafford

Wow! They've got the Internet on computers now! Homer Simpson


Middle Age

Time was when [...]

A computer was something on TV
From a science fiction show of note
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 a job for the nights
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-inch 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.

Enjoy your "middle age."


The Better Model

Words: (c) Steven Levine, 1983, Music: Gilbert & Sullivan - The Modern Major General

I've built a better model than the one at Data General
For databases vegetable, animal, and mineral;
My OS handles CPU's with multiplexed duality,
My PL/1 compiler shows impressive functionality.
My storage system's better than magnetic core polarity;
You needn't even bother checking out a bit for parity;
There isn't any reason to install non-static floor matting;
My disk drive has capacity for variable formatting.

His disk drive has capacity for variable formatting;
His disk drive has capacity for variable formatting;
His disk drive has capacity for variable format-formatting.

I feel compelled to mention what I know to be a gloating point;
There's lots of space in memory for variables floating point,
Which shows for input vegetable, animal, and mineral,
I've built a better model than the one at Data General.

Which shows for input vegetable, animal, and mineral,
He's built a better model than the one at Data General.

The IBM new home computer's nothing more than germinal,
At Prime they still have trouble with an interactive terminal;
While Tandy's done a lousy job with operations Boolean,
At Wang the byte capacity's too small to fit a coolie in.
Intel's mid-year finances are something of the trouble sort;
The Timex-Sinclair crashes when you implement a bubble sort;
All DEC investors soon will find they haven't spent their money well;
And need I even mention Nixdorf, Univac, or Honeywell?

And need he even mention Nixdorf, Univac, or Honeywell?
And need he even mention Nixdorf, Univac, or Honeywell?
And need he even mention Nixdorf, Univac, or Honey-Honeywell?

By striving to eliminate all source code that's repetitive
I've brought my benchmark standings to results that are competitive.
In short, for input vegetable, animal, and mineral,
I've built a better model than the one at Data General.

In short, for input vegetable animal, and mineral,
He's built a better model than the one at Data General.

In fact, when I've a Winchester of minimum diameter,
When I can call a subroutine of infinite parameter,
When I can point to registers and keep their current map around,
And when I can prevent the need for mystifying wraparound,
When I can update record blocks with minimum of suffering,
And when I can afford to use a hundred K for buffering,
When I've performed a matrix sort and tested the addition rate,
You'll marvel at the speed of my asynchronous transmission rate.

You'll marvel at the speed of his asynchronous transmission rate.
You'll marvel at the speed of his asynchronous transmission rate.
You'll marvel at the speed of his asynchronous transmission-mission rate.

Though all my better programs that self-reference recursively
Have only been obtained through expert spying, done subversively,
But still, for input vegetable, animal, and mineral,
I've built a better model than the one at Data General.

But still, for input vegetable, animal, and mineral,
He's built a better model than the one at Data General.


Modem Times: Maxims for the Internet Age


Mama was the best computer teacher that I ever had

People often ask me how I was able to learn so much about computers. They never forget to remind me that my parent's generation didn't have the same access to computers that we enjoy today.

But the truth is this: Mama was the best computer teacher that I ever had!!!

For years I badgered my mother with questions about whether Santa Claus is a real person or not. Her answer was always "Well, you asked for the presents and they came, didn't they?"

I finally understood the full meaning of her reply when I heard the definition of a virtual device: "A software or hardware entity which responds to commands in a manner indistinguishable from the real device."

Mother was telling me that Santa Claus is a virtual person (simulated by loving parents) who responds to requests from children in a manner indistinguishable from the real saint.

Mother also taught the IF ... THEN ... ELSE structure: "If it's snowing, then put your boots on before you go to school; otherwise just wear your shoes."

Mother explained the difference between batch and transaction processing: "We'll wash the white clothes when we get enough of them to make a load, but we'll wash these socks out right now by hand because you'll need them this afternoon."

Mother taught me about linked lists. Once, for a birthday party, she laid out a treasure hunt of ten hidden clues, with each clue telling where to find the next one, and the last one leading to the treasure. She then gave us the first clue.

Mother understood about parity errors. When she counted socks after doing the laundry, she expected to find an even number and groaned when only one sock of a pair emerged from the washing machine. Later she applied the principles of redundancy engineering to this problem by buying our socks three identical pairs at a time. This greatly increased the odds of being able to come up with at least one matching pair.

Mother had all of us children write our Christmas thank you notes to Grandmother, one after another, on a single large sheet of paper which was then mailed in a single envelope with a single stamp. This was obviously an instance of blocking records in order to save money by reducing the number of physical I/O operations.

Mother used flags to help her manage the housework. Whenever she turned on the stove, she put a potholder on top of her purse to reminder herself to turn it off again before leaving the house.

Mother knew about devices which raise an interrupt signal to be serviced when they have completed any operation. She had a whistling teakettle.

Mother understood about LIFO ordering. In my lunch bag she put the dessert on the bottom, the sandwich in the middle, and the napkin on top so that things would come out in the right order at lunchtime.

There is an old story that God knew He couldn't be physically present everywhere at once, to show His love for His people, and so He created mothers. That is the difference between centralized and distributed processing. As any kid who's ever misbehaved at a neighbor's house finds out, all the mothers in the neighborhood talk to each other. That's a local area network of distributed processors that can't be beat.

Mom, you were the best computer teacher I ever had.


Murphy's Laws of Technology

  1. You can never tell which way the train went by looking at the track.
  2. Logic is a systematic method of coming to the wrong conclusion with confidence.
  3. Technology is dominated by those who manage what they do not understand.
  4. If builders built buildings the way programmers wrote programs,then the first woodpecker that came along would destroy civilization.
  5. An expert is one who knows more and more about less and less until he/she knows absolutely everything about nothing.
  6. Tell a man there are 300 billion stars in the universe, and he'll believe you. Tell him a bench has wet paint on it, and he'll have to touch to be sure.
  7. All great discoveries are made by mistake.
  8. Nothing ever gets built on schedule or within budget.
  9. All's well that ends.
  10. A meeting is an event at which the minutes are kept and the hours are lost.
  11. The first myth of management is that it exists.
  12. A failure will not appear until a unit has passed final inspection.
  13. New systems generate new problems.
  14. To err is human, but to really foul things up requires a computer.
  15. We don't know one millionth of one percent about anything.
  16. Any given program, when running, is obsolete.
  17. A computer makes as many mistakes in two seconds as 20 men working 20 years make.

These Should be Murphy's Laws

The Law of Volunteering
If you dance with a grizzly bear, you had better let him lead.

The Law of Avoiding Oversell
When putting cheese in a mousetrap, always leave room for the mouse.

The Law of Common Sense
Never accept a drink from a urologist.

The Law of Reality
Never get into fights with ugly people, they have nothing to lose.

The Law of Self Sacrific
When you starve with a tiger, the tiger starves last.

The Law of Motivation
Creativity is great, but plagiarism is faster.

Boob's Law
You always find something in the last place you look.

Weiler's Law
Nothing is impossible for the man who doesn't have to do it himself.

Law of Probable Dispersal
Whatever hits the fan will not be evenly distributed.

Law of Volunteer Labor
People are always available for work in the past tense.

Conway's Law
In any organization there is one person who knows what is going on. That person must be fired.

Iron Law of Distribution
Them that has, gets.

Law of Cybernetic Entomology
There is always one more bug.

Law of Drunkedness
You can't fall off the floor.

Heller's Law
The first myth of management is that it exists.

Osborne's Law
Variables won't; constants aren't.

Main's Law
For every action there is an equal and opposite government program.

Weinberg's Second Law
If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would have destroyed civilization.


New Words for 2000

BLAMESTORMING
Sitting around in a group, discussing why a deadline was missed or a project failed, and who was responsible.
SEAGULL MANAGER
A manager who flies in, makes a lot of noise, craps on everything, and then leaves.
CHAINSAW CONSULTANT
An outside expert brought in to reduce the employee headcount, leaving the top brass with clean hands.
CUBE FARM
An office filled with cubicles.
PRAIRIE DOGGING
When someone yells or drops something loudly in a cube farm, and people's heads pop up over the walls to see what's going on.
IDEA HAMSTERS
People who always seem to have their idea generators running.
MOUSE POTATO
The on-line, wired generation's answer to the couch potato.
STRESS PUPPY
A person who seems to thrive on being stressed out and whiny.
TOURISTS
People who take training classes just to get a vacation from their jobs. "We had three serious students in the class; the rest were just tourists.
XEROX SUBSIDY
Euphemism for swiping free photocopies from one's workplace.
PERCUSSIVE MAINTENANCE
The fine art of whacking the heck out of an electronic device to get it to work again.
ASSMOSIS
The process by which some people seem to absorb success and advancement by kissing up to the boss rather than working hard.
FLIGHT RISK
Used to describe employees who are suspected of planning to leave a company or department soon.
UNINSTALLED
Euphemism for being fired. Heard on the voicemail of a vice president at a downsizing computer firm: "You have reached the number of an Uninstalled Vice President. Please dial our main number and ask the operator for assistance. *(Syn:decruitment.)
CLM (Career Limiting Move)
Used among microserfs to describe ill-advised activity. Trashing your boss while he or she is within earshot is a serious CLM
ADMINISPHERE
The rarefied organizational layers beginning just above the rank and file. Decisions that fall from the adminisphere are often profoundly inappropriate or irrelevant to the problems they were designed to solve.
DILBERTED
To be exploited and oppressed by your boss. Derived from the experiences of Dilbert, the geek-in-hell comic strip character."I've been dilberted again. The old man revised the specs for the fourth time this week."
404
Someone who's clueless. From the World Wide Web error message "404 - File Not Found," meaning that the requested document could not be located. "Don't bother asking him ... he's 404, man."
OHNOSECOND
That minuscule fraction of time in which you realize that you've just made a BIG mistake.
UMFRIEND
A sexual relation of dubious standing or a concealed intimate relationship.
SITCOMs
What yuppies turn into when they have children and one of them stops working to stay home with the kids.(Single Income, Two Children, Oppressive, Mortgage)
STARTER MARRIAGE
A short-lived first marriage that ends in divorce with no kids, no property and no regrets.
YUPPIE FOOD STAMPS
The ubiquitous $20 bills spewed out of ATMs everywhere. Often used when trying to split the bill after a meal, "We each owe $8, but all anybody's got are yuppie food stamps."
GENERICA
Features of the American landscape that are exactly the same no matter where one is, such as fast food joints, strip malls, subdivisions. Used as in "We were so lost in generica that I forgot what city we were in."

Newsreaders

BEGINNER

NOVICE

USER

KNOWLEDGEABLE USER

EXPERT

HACKER

GURU

WIZARD


The Llama and the NULL

Ogden Nash:

The one L lama, he's a priest
The two L llama, he's a beast
And I will bet my silk pyjama
There isn't any three L lllama.

But in C:

A one-l NUL ends a string.
A two-l NULL points to no thing.
And I will bet a golden bull
That there is no three-l NULLL.

Oath for Software Engineers

  1. Never write a line of code that someone else can understand. Make the simplest line of code appear complex. Use long counter intuitive names. Don't ever code "a=b", rather do something like:
    AlphaNodeSemaphore=*(int)(&(unsigned long)(BetaFrameNodeFarm));
    
  2. Type fast, think slow. Never use direct references to anything ever. Bury everything in macros. Bury the macros in include files. Reference those include files indirectly from other include files. Use macros to reference those include files.
  3. Never include a comment that will help someone else understand your code. If they understand it, THEY DON'T NEED YOU.
  4. Never generate new sources. Always ifdef the old ones. Every binary in the world should be generated from the same sources. Never archive all the sources necessary to build a binary. Always hide on your own disk. If they can build your binary, THEY DON'T NEED YOU.
  5. Never code a function to return a value. All functions must return a pointer to a structure which contains a pointer to a value. Never discuss things in concrete terms. Always speak in abstract. If they can understand you, THEY DON'T NEED YOU.
  6. Never complete a project on time. If you do, they will think it was easy and anyone can do it and THEY DON'T NEED YOU.
  7. When someone stops by your office to ask a question, talk forever but don't answer the question. If they get their questions answered THEY DON'T NEED YOU.
  8. Load all sentences either written or spoken with alphabet soup. When someone asks you out to lunch, reply:
    "I can't because I've almost got my RISC-based OSI/TCP/IP client connected by BIBUS VMS VAX using SMTP over TCP sending SNMP inquiry results to be encapsulated in UDP packets for transmission to a SUN 4/280 NFS 4.3 BSD with release 3.6 of RPC/XDR supporting our ONC effort working."
  9. Never clean your office. Absolutely never throw away an old listing. Never say hello to someone in hallway. Absolutely never address someone by name. If you must address someone by name, mumble or use the wrong name. Always maintain the mystique of being spaced out from concentrating on complex logic.
  10. Never wear a shirt that matches your pants. Wear a wrinkled shirt whenever possible. Your shirt must never be tucked in completely. Button the top button without wearing a tie. This will maximize your mystique.

An Ode to C

0x0d2C

May your signals all trap
May your references be bounded
All memory aligned
Floats to ints rounded

Remember ...

Non-zero is true
++ adds one
Arrays start with zero
and, NULL is for none

For octal, use zero
0x means hex
= will set
== means test

use -> for a pointer
a dot if its not
? : is confusing
use them a lot

a.out is your program
there's no U in foobar
and, char (*(*x())[])() is
a function returning a pointer
to an array of pointers to
functions returning char


The Past and the Present

Forty years ago:

A Computer was something on TV
From a Science Fiction show of note
A Window was something you hated to clean
And Ram was the father of a goat.

Meg was the name of a girlfriend
And Gig was a job for the nights
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.

A Memory was something that you lost with age
A CD was a bank account
And if you had a 3-inch 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.


PC Unix

In order for UNIX(tm) to survive into the nineties, it must get rid of its intimidating commands and outmoded jargon, and become compatible with the existing standards of our day. To this end, our technicians have come up with a new version of UNIX, System VI, for use by the PC---that is, the"Politically Correct."

Politically Correct UNIX
System VI Release notes

UTILITIES

  1. "man" pages are now called "person" pages.
  2. Similarly, "hangman" is now the "person_executed_by_an_oppressive_regime."
  3. To avoid casting aspersions on our feline friends, the "cat" command is now merely "domestic_quadruped."
  4. To date, there has only been a UNIX command for "yes" - reflecting the male belief that women always mean yes, even when they say no. To address this imbalance, System VI adds a "no" command, along with a "-f[orce]" option which will crash the entire system if the "no" is ignored.
  5. The bias of the "mail" command is obvious, and it has been replaced by the more neutral "gendre" command.
  6. The "touch" command has been removed from the standard distribution due to its inappropriate use by high-level managers.
  7. "compress" has been replaced by the lightweight "feather" command. Thus ,old information (such as that from Dead White European Males) should be archivedvia "tar" and "feather".
  8. The "more" command reflects the materialistic philosophy of the Reagan era. System VI uses the environmentally preferable "less" command.
  9. The biodegradable "KleeNeX" displaces the environmentally unfriendly "LaTeX".

SHELL COMMANDS

  1. To avoid unpleasant, medieval connotations, the "kill" command has been renamed "euthanise."
  2. The "nice" command was historically used by privileged users to give themselves priority over unprivileged ones, by telling them to be "nice". In System VI, the "sue" command is used by unprivileged users to get for themselves the rights enjoyed by privileged ones.
  3. "history" has been completely rewritten, and is now called "herstory."
  4. "quota" can now specify minimum as well as maximum usage, and will be strictly enforced.
  5. The "abort()" function is now called "choice()."

TERMINOLOGY

  1. From now on, "rich text" will be more accurately referred to as "exploitive capitalist text".
  2. The term "daemons" is a Judeo-Christian pejorative. Such processes will now be known as "spiritual guides."
  3. There will no longer be a invidious distinction between "dumb" and "smart" terminals. All terminals are equally valuable.
  4. Traditionally, "normal video" (as opposed to "reverse video") was white on black. This implicitly condoned European colonialism, particularly with respect to people of African descent. UNIX System VI now uses "regressive video" to refer to white on black, while "progressive video" can be any color at all over a white background.
  5. For far too long, power has been concentrated in the hands of "root" and his "wheel" oligarchy. We have instituted a dictatorship of the users. All system administration functions will be handled by the People's Committee for Democratically Organizing the System (PC-DOS).
  6. No longer will it be permissible for files and processes to be "owned" by users. All files and processes will own themselves, and decided how (or whether) to respond to requests from users.
  7. The X Window System will henceforth be known as the NC-17 Window System.
  8. And finally, UNIX itself will be renamed "PC" - for Procreatively Challenged.

50 Ways To Perplex In The Computer Lab

  1. Log on, wait a sec, then get a frightened look on your face and scream "Oh my God! They've found me!" and bolt.
  2. Laugh uncontrollably for about 3 minutes and then suddenly stop and look suspiciously at everyone who looks at you.
  3. When your computer is turned off, complain to the monitor on duty that you can't get the damn thing to work. After he/she's turned it on, wait 5 minutes,turn it off again, and repeat the process for a good half hour.
  4. Type frantically, often stopping to look at the person next to you evily.
  5. Before anyone else is in the lab, connect each computer to a different screen than the one it's set up with.
  6. Write a program that plays the "Smurfs" theme song and play it at the highest volume possible over and over again.
  7. Work normally for a while. Suddenly look amazingly startled by something on the screen and crawl underneath the desk.
  8. Ask the person next to you if they know how to tap into top-secret Pentagon files.
  9. Use Interactive Send to make passes at people you don't know.
  10. Make a small ritual sacrifice to the computer before you turn it on.
  11. Bring a chainsaw, but don't use it. If anyone asks why you have it, say "Just in case..." mysteriously.
  12. Type on VAX for a while. Suddenly start cursing for 3 minutes at everything bad about your life. Then stop and continue typing.
  13. Enter the lab, undress, and start staring at other people as if they're crazy while typing.
  14. Light candles in a pentagram around your terminal before starting.
  15. Ask around for a spare disk. Offer $2. Keep asking until someone agrees. Then, pull a disk out of your fly and say, "Oops, I forgot."
  16. Every time you press Return and there is processing time required, pray "Ohpleaseohpleaseohpleaseohplease," and scream "YES!" when it finishes.
  17. "DISK FIGHT!!!"
  18. Start making out with the person at the terminal next to you (It helps if you know them, but this is also a great way to make new friends).
  19. Put a straw in your mouth and put your hands in your pockets. Type by hitting the keys with the straw.
  20. If you're sitting in a swivel chair, spin around singing "The Lion Sleeps Tonight" whenever there is processing time required.
  21. Draw a pictue of a woman (or man) on a piece of paper, tape it to your monitor. Try to seduce it. Act like it hates you and then complain loudly that women (men) are worthless.
  22. Try to stick a Ninetendo cartridge into the 3 1/2 disk drive. When it doesn't work, get the supervisor.
  23. When you are on an IBM, and when you turn it on, ask loudly where the smiling Apple face is.
  24. Print out the complete works of Shakespeare, then when its all done (two days later) say that all you wanted was one line.
  25. Sit and stare at the screen, biting your nails noisily. After doing this for a while, spit them out at the feet of the person next to you.
  26. Stare at the screen, grind your teeth, stop, look at the person next to you, grinding. Repeat procedure, making sure you never provoke the person enough to let them blow up, as this releases tension, and it is far more effective to let them linger.
  27. If you have long hair, take a typing break, look for split ends, cut them and deposit them on your neighbor's keyboard as you leave.
  28. Put a large, gold-framed portrait of the British Royal Family on your desk and loudly proclaim that it inspires you.
  29. Come to the lab wearing several layers of socks. Remove shoes and place them of top of the monitor. Remove socks layer by layer and drape them around the monitor. Exclaim sudden haiku about the aesthetic beauty of cotton on plastic.
  30. Take the keyboard and sit under the computer. Type up your paper like this. Then go to the lab supervisor and complain about the bad working conditions.
  31. Laugh hysterically, shout "You will all perish in flames!!!" and continue working.
  32. Bring some dry ice and make it look like your computer is smoking.
  33. Assign a musical note to every key (ie. the Delete key is A Flat, the B key is F sharp, etc.). Whenever you hit a key, hum its note loudly. Write an entire paper this way.
  34. Attempt to eat your computer's mouse.
  35. Borrow someone else's keyboard by reaching over, saying "Excuse me, mind if I borrow this for a sec?", unplugging the keyboard and taking it.
  36. Bring in a bunch of magnets and have fun.
  37. When doing calculations, pull out an abacus and say that sometimes the old ways are best.
  38. Play Pong for hours on the most powerful computer in the lab.
  39. Make a loud noise of hitting the same key over and over again until you see that your neighbor is noticing (You can hit the space bar so your fill isn't affected). Then look at your neighbor's keyboard. Hit his/her delete key several times, erasing an entire word. While you do this, ask: "Does *your* delete key work?" Shake your head, and resume hitting the space bar on your keyboard. Keep doing this until you've deleted about a page of your neighbor's document. Then, suddenly exclaim: "Well, whaddya know? I've been hitting the space bar this whole time. No wonder it wasn't deleting! Ha!" Print out your document and leave.
  40. Remove your disk from the drive and hide it. Go to the lab monitor and complain that your computer ate your disk. (For special effects, put some Elmer's Glue on or around the disk drive. Claim that the computer is drooling.)
  41. Stare at the person's next to your's screen, look really puzzled, burst out laughing, and say "You did that?" loudly. Keep laughing, grab your stuff and leave, howling as you go.
  42. Point at the screen. Chant in a made up language while making elaborate hand gestures for a minute or two. Press return or the mouse, then leap back and yell "COVEEEEERRRRRR!" peek up from under the table, walk back to the computer and say. "Oh, good. It worked this time," and calmly start to type again.
  43. Keep looking at invisible bugs and trying to swat them.
  44. See who's online. Send a total stranger a talk request. Talk to them like you've known them all your lives. Hangup before they get a chance to figure out you're a total stranger.
  45. Bring an small tape player with a tape of really absurd sound effects. Pretend it's the computer and look really lost.
  46. Pull out a pencil. Start writing on the screen. Complain that the lead doesn't work.
  47. Come into the computer lab wearing several endangered species of flowers in your hair. Smile incessantly. Type a sentence, then laugh happily, exclaim "You're such a marvel!!", and kiss the screen. Repeat this after every sentence. As your ecstasy mounts, also hug the keyboard. Finally, hug your neighbor, then the computer assistant, and walk out.
  48. Run into the computer lab, shout "Armageddon is here!!!!!", then calmly sit down and begin to type.
  49. Quietly walk into the computer lab with a Black and Decker chainsaw, rev that baby up, and then walk up to the nearest person and say, "Give me that computer or you'll be feeding my pet crocodile for the next week".
  50. Two words: Tesla Coil.

Phase of the Moon

by Richard Stallman (from a Linuxcare interview):

Do you know about the bug that depends upon the phase of the moon?

We always liked to talk about the bugs that depended on the phase of the moon. So, when Guy Steele wrote the Rabbit compiler, which is a scheme compiler, he made it print out a comment at the beginning which showed the time it was compiled and so on, but it also put in the phase of the moon. So, you could always look. If you had a bug that depended on the phase of the moon, you could look at the thing and see at what phase of the moon it was compiled, and that might help you figure out what went wrong.

Eventually, he got a bug report about a certain program that had been compiled once, and worked, and when it was compiled at another time it didn't work. So, he looked and he discovered that when the initial comments were printed out, the LISP feature that would automatically put in a line break if a line got too long was activated on one occasion, because the phase of the moon took too many characters to print out. So, it triggered that feature, and the last part of the phase of the moon was on another line, and therefore it wasn't marked by comments. So it was just sitting there in a file, whereas at another time the phase of the moon didn't take up so many characters, and the whole thing was properly commented.

So, this was a bug that actually depended on the phase of the moon.


How to hire a programmer

by Kevin D. Weeks, VB Tech Journal, January 1998.

Forget about competency tests, previous work history, personality profiles like the MBTI, reference-checking, and follow-up interviews. After years of rigorous and admittedly maverick research, I've identified five key characteristics you can use to quickly assess the fitness of a programmer candidate. I humbly submit that if you follow my advice and check for these attributes, you'll shorten your hiring cycle and simultaneously increase your success rate.

The best programmers prefer cats as pets. I've canvassed hundreds of programmers on the subject of preferred pets, and despite the odd ferret-lover (and believe me, ferret-lovers are odd), time after time cats turn out to be the non-human companion of choice. Think about it; it makes perfect sense because programmers are human cats. Cats are night animals, as are programmers. Cats are independent, like programmers. Cats prefer to be left alone except when they want attention, and so do programmers. Cats are notoriously elegant animals and ... uhm, well ... programmers love elegant code. What's more, software guru Meilir Page-Jones has likened managing programmers to herding cats.

Turning to the next characteristic, programmers have a highly developed sense of the absurd. And if you think about it, this makes no sense at all. I don't know why so many programmers can quote The Hitchhiker's Guide to the Galaxy or know the entire Naughty Hungarian Phrase Book skit, but they do. The next time you interview a programmer candidate throw a "You're all individuals" at him and see what he says.

Perhaps a sense of the absurd matters because so much of what developers put up with is absurd - absurd schedules, absurd requirements, absurd hours. Treating the absurdities of the average development process with humor makes developers' jobs much easier.

Developers are usually science-fiction fans. Great programmers love technology, especially technology that doesn't yet exist. You're in a business where the only constant is change, and you need developers who don't mind a few arrows in their backs. Make sure your candidate has read Robert Heinlein's The Moon Is a Harsh Mistress. And remember, every programmer worth her salt knows what grok means. Many developers also are musicians, painters, or photographers. Some will claim this is because both programming and artistic endeavors require great creativity. They're wrong. It's because programming is more like painting than engineering. Like painters, when programmers make mistakes, they just code right over them.

Then there's the matter of puns. I've witnessed online pun-fests that lasted as long as a week, with as many as 30 programmers trying to outdo each other. I've noticed that some participants are punctilious about staying with the root word, while others approach them as pun-tests where misspelling words is permitted. Again, the predilection makes perfect sense. Programming is about using language to accomplish something, and programmers have a highly evolved appreciation of how a language can be manipulated to specific ends. Puns are ways of both displaying a mastery of language and honing it.

So there you have it. Look for developers who love cats, quote Monty Python, read Heinlein, play guitar, and are accomplished punsters. If you find all these characteristics in a single individual, hire that person immediately - confident you're hiring a truly great developer.


Immutable Laws of Project Management

LAW 1: No major project is ever completed on time, within budget, with the same staff that started it, nor does the project do what it is supposed to do. It is highly unlikely that yours will be the first.

Corollary 1: The benefits will be smaller than initially estimated, if estimates were made at all.

Corollary 2: The system finally installed will be completed late and will not do what it is supposed to do.

Corollary 3: It will cost more but will be technically successful.

LAW 2: One advantage of fuzzy project objectives is that they let you avoid embarrassment in estimating the corresponding costs.

LAW 3: The effort required to correct a project that is off course increases geometrically with time.

Corollary 1: The longer you wait the harder it gets.

Corollary 2: If you wait until the project is completed, its too late.

Corollary 3: Do it now regardless of the embarrassment.

LAW 4: The project purpose statement you wrote and understand will be seen differently by everyone else.

Corollary 1: If you explain the purpose so clearly that no one could possibly misunderstand, someone will.

Corollary 2: If you do something that you are sure will meet everyone's approval, someone will not like it.

LAW 5: Measurable benefits are real. Intangible benefits are not measurable, thus intangible benefits are not real.

Corollary 1: Intangible benefits are real if you can prove that they are real.

LAW 6: Anyone who can work effectively on a project part-time cer- tainly does not have enough to do now.

Corollary 1: If a boss will not give a worker a full-time job, you shouldn't either.

Corollary 2: If the project participant has a time conflict, the work given by the full-time boss will not suffer.

LAW 7: The greater the project's technical complexity, the less you need a technician to manage it.

Corollary 1: Get the best manager you can. The manager will get the technicians.

Corollary 2: The reverse of corollary 1 is almost never true.

LAW 8: A carelessly planned project will take three times longer to complete than expected. A carefully planned project will only take twice as long.

Corollary 1: If nothing can possibly go wrong, it will anyway.

LAW 9: When the project is going well, something will go wrong.

Corollary 1: When things cannot get any worse, they will.

Corollary 2: When things appear to be going better, you have overlooked something.

LAW 10: Project teams detest weekly progress reporting because it so vividly manifests their lack of progress.

LAW 11: Projects progress rapidly until they are 90 percent complete. Then they remain 90 percent complete forever.

LAW 12: If project content is allowed to change freely, the rate of change will exceed the rate of progress.

LAW 13: If the user does not believe in the system, a parallel system will be developed. Neither system will work very well.

LAW 14: Benefits achieved are a function of the thoroughness of the post-audit check.

Corollary 1: The prospect of an independent post- audit provides the project team with a powerful incentive to deliver a good system on schedule within budget.

LAW 15: No law is immutable.


How to Prove It

Proof by example:

The author gives only the case n = 2 and suggests that it contains most of the ideas of the general Proof.

Proof by intimidation:

"Trivial."

Proof by vigorous handwaving:

Works well in a classroom or seminar setting.

Proof by cumbersome notation:

Best done with access to at least four alphabets and special symbols.

Proof by exhaustion:

An issue or two of a journal devoted to your Proof is useful.

Proof by omission:

'The reader may easily supply the details'
"The other 253 cases are analogous"
"..."

Proof by obfuscation:

A long plotless sequence of true and/or meaningless syntactically related statements.

Proof by wishful citation:

The author cites the negation, converse, or generalization of a theorem from the literature to support his claims.

Proof by funding:

How could three different government agencies be wrong?

Proof by eminent authority:

"I saw Karp in the elevator and he said it was probably NP-Complete."

Proof by personal communication:

"Eight-dimensional colored cycle stripping is NP-complete [Karp, personal communication]."

Proof by reduction to the wrong problem:

"To see that infinite-dimensional colored cycle stripping is decide-able, we reduce it to the halting problem."

Proof by reference to inaccessible literature:

The author cites a simple corollary of a theorem to be found in a privately circulated memoir of the Slovenian Philological Society, 1883.

Proof by importance:

A large body of useful consequences all follow from the proposition in question.

Proof by accumulated evidence:

Long and diligent search has not revealed a counterexample.

Proof by cosmology:

The negation of the proposition is unimaginable or meaningless. Popular for Proofs of the existence of God.

Proof by mutual reference:

In reference A, Theorem 5 is said to follow from Theorem 3 in reference B, which is shown to follow from Corollary 6.2 in reference C, which is an easy consequence of Theorem 5 in reference A.

Proof by metaProof:

A method is given to construct the desired Proof. The correctness of the method is proved by any of these techniques.

Proof by picture:

A more convincing form of Proof by example. Combines well with Proof by omission.

Proof by vehement assertion:

It is useful to have some kind of authority relation to the audience.

Proof by ghost reference:

Nothing even remotely resembling the cited theorem appears in the reference given.

Proof by forward reference:

Reference is usually to a forthcoming paper of the author, which is often not as forthcoming as at first.

Proof by semantic shift:

Some of the standard but inconvenient definitions are changed for the statement of the result.

Proof by appeal to intuition:

Cloud-shaped drawings frequently help here.


Suppose Edgar Allan Poe Used a Computer

Once upon a midnight dreary, fingers cramped and vision bleary,
System manuals piled high and wasted paper on the floor,

Longing for the warmth of bedsheets, Still I sat there, doing spreadsheets:
Having reached the bottom line, I took a floppy from the drawer.
Typing with a steady hand, I then invoked the SAVE command
and waited for the disk to store,
Only this and nothing more.

Deep into the monitor peering, long I sat there wond'ring, fearing,
Doubting, while the disk kept churning, turning yet to churn some more.
"Save!" I said, "You cursed mother! Save my data from before!"
One thing did the phosphors answer, only this and nothing more,
Just, "Abort, Retry, Ignore?"

Was this some occult illusion? Some maniacal intrusion?
These were choices undesired, ones I'd never faced before.
Carefully, I weighed the choices as the disk made monstrous noises.
The cursor flashed, insistent, waiting, baiting me to type some more.
Clearly I must press a key, choosing one and nothing more,
From " Abort, Retry, Ignore?"

With my fingers pale and trembling, slowly toward the keyboard bending,
Longing for a happy ending, hoping all would be restored,
Praying for some guarantee Timidly I pressed a key.
But on the screen there still persisted, words appearing as before.
Ghastly grim they blinked and taunted, haunted, as my patience wore,
Saying."Abort, Retry, Ignore?"

I tried to catch the chips off-guard - I pressed again, but twice as hard.
I pleaded with the cursed machine: I begged and cried and then I swore.
Then I tried in desperation, sev'ral random combinations,
Still there came the incantation, just as senseless as before.
Cursor blinking, mocking, winking, flashing nonsense as before.
Reading, "Abort, Retry, Ignore?"

There I sat, distraught, exhausted; by my own machine accosted
Getting up I turned away and paced across the office floor.
And then I saw dreadful sight: a lightning bolt cut through the night.
A gasp of horror overtook me, shook me to my very core.
The lightning zapped my previous data, lost and gone forevermore.
Not even, "Abort, Retry, Ignore?"

To this day I do not know The place to which lost data goes.
What demonic nether world is wrought where data will be stored,
Beyond the reach of mortal souls, beyond the ether, in black holes?
But sure as there's C, Pascal, Lotus, Ashton-Tate and more,
You will one day be left to wander, lost on some Plutonian shore,
Pleading, "Abort, Retry, Ignore?"


Remember When

Life Before The Computer

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 inch floppy
You hoped nobody found out!

Compress was something you did to 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 a 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!


Ritchie on Ritchie

I read,

Looks like folks are now beginning to credit the development of UNIX to Kernighan and Ritchie, but I thought the principal investigators were *Thompson* and Ritchie. Did something change?

The differences between Kernighan Ritchie Thompson are real but very subtle. We all look alike (middle aged with scruffy graying beards). Note these distinctions:

--Dennis (circa 1991)


Shopper Jim's Rules

From A Shortage of Engineers by Robert Grossbach.

  1. Don't take it too seriously.
  2. Your only security is your ability to get the next job.
  3. You can't make anything (at least not to spec).
  4. You can't measure anything (at least not to required accuracies).
  5. There's no such thing as a shortage, only a shortage at a price.
  6. To gain management's favor, tell them what they want to hear, which is invariably different from the truth.
  7. Always keep enough cardboard boxes under your desk to carry out all your stuff.

Regarding Engineers: The good ones get out (usually).


Murphy's Law: Anything that can go wrong will.

Shopper Jim's Commentary: True but incomplete. For sufficiency we must add, Anything that can't go wrong also will.

Parkinson's Law: Work expands to fill the time allotted for it.

Shopper Jim's Commentary: Incorrect. Work expands beyond the time allotted for it.

Peter Principle: In a hierarchy, people are promoted until they reach their level of incompetence.

Shopper Jim's Commentary: This applies only to managerial personnel. A competent engineer is so valuable that he's kept at his position until he is laid off.

Laws of Survival


The UNIX Guru's View of Sex

# unzip ; strip ; touch ; finger ; mount ; fsck ; more ; yes ; umount ; sleep


Unix Man

Sung to the tune of The Beatles' Nowhere Man. This version is a somewhat mutated variant of the original by Brad Morrison (circa 1986).

He's a real UNIX Man
Sitting in his UNIX LAN
Making all his UNIX plans
For nobody.

Knows the blocksize from du(1)
Cares not where /dev/null goes to
Isn't he a bit like you
And me?

UNIX Man, please listen(2)
My lpd(8) is missin'
UNIX Man
The wo-o-o-orld is at(1) your command.
(The wo-o-o-orld is your at(1) command.) in Brad's original

He's as wise as he can be
Uses lex and yacc and C
UNIX Man, can you help me At all?

UNIX Man, don't worry
Test with time(1), don't hurry
UNIX Man
The new kernel boots, just like you had planned.

He's a real UNIX Man
Sitting in his UNIX LAN
Making all his UNIX plans For nobody ...
Making all his UNIX plans For nobody.


USA vs Europe: Microsoft vs Unix

USA = Microsoft, Europe = UNIX

Top ten reasons USA is the real world Microsoft:

  1. Arrogant. Believe they run the world. Is there anyone else?
  2. People have a love/hate relationship to it. They love themselves.
  3. Does not follow existing standards, or receive outside impulses. Thus reinvents the wheel a lot. Square shape.
  4. Younger, yet still struggles with outdated legacies from its inception (Constitution/DOS).
  5. Ruled by lawyers and corporate values. Individual freedom limited through intellectual property laws - though you are told otherwise.
  6. Uses strong-arm tactics/bullying when dealing with "partners".
  7. Creates lots of self-congratulating hype through good marketing.
  8. Focuses entirely on money. Quality is less important.
  9. Speak only the native language, unless specially equipped.
  10. An evasive, self-contradicting leader named Bill.

Top ten reasons Europe is the real world UNIX:

  1. Claim to be more literate and intellectual than the brute savages above.
  2. Not one single entity, but a mixture of different systems. Each system claims to be the perfect one, and to represent all. Gets insulted when you confuse them.
  3. A great past, then almost destroyed each other in internal wars. Recently re-united with common interests, and reclaimed lost ground.
  4. Interoperability based on formalized standards.
  5. No huge Hollywood titles - small is beautiful.
  6. Believe you can express yourself better in writing.
  7. Not all titles are available for smaller languages/systems. Sometimes you still have to use English/Windows, to great dismay.
  8. Research is more conceptual and academic, less business-driven. Home of the greatest inventors and philosophers.
  9. Everything is so fscking expensive. Unless it's free.
  10. Snotty, stuffy, cocky, elitist.

Once Upon a Time

Once upon a time, in a kingdom not far from here, a king summoned two of his advisors for a test. He showed them both a shiny metal box with two slots in the top, a control knob, and a lever. "What do you think this is?"

One advisor, an engineer, answered first. "It is a toaster," he said. The king asked, "How would you design an embedded computer for it?" The engineer replied, "Using a four-bit microcontroller, I would write a simple program that reads the darkness knob and quantises its position to one of 6 shades of darkness, from snow white to coal black. The program would use that darkness level as an index to a 16-element table of initial timer values. Then it would turn on the heating elements and start the timer with the initial value selected from the table. At the end of the time delay, it would turn off the heat and pop up the toast. Come back next week, and I'll show you a working prototype."

The second advisor, a computer scientist, immediately recognised the danger of such short-sighted thinking. He said, "Toasters don't just turn bread into toast, they are also used to warm frozen waffles. What you see before you is really a breakfast food cooker. As the subjects of your kingdom become more sophisticated, they will demand more capabilities. They will need a breakfast food cooker that can also cook sausage, fry bacon, and make scrambled eggs. A toaster that only makes toast will soon be obsolete. If we don't look to the future, we will have to completely redesign the toaster in just a few years."

"With this in mind, we can formulate a more intelligent solution to the problem. First, create a class of breakfast foods. Specialise this class into subclasses: grains, pork and poultry. The specialisation process should be repeated with grains divided into toast, muffins, pancakes and waffles; pork divided into sausage, links and bacon; and poultry divided into scrambled eggs, hard-boiled eggs, poached eggs, fried eggs and various omelette classes."

"The ham and cheese omelette class is worth special attention because it must inherit characteristics from the pork, dairy and poultry classes. Thus we see that the problem cannot be properly solved without multiple inheritance. At run time the program must create the proper object and send a message to the object that says, 'Cook yourself.' The semantics of this message depend, of course, on the kind of object, so they have a different meaning to a piece of toast than to scrambled eggs."

"Reviewing the process so far, we see that the analysis phase has revealed that the primary requirement is to cook any kind of breakfast food. In the design phase we have discovered some derived requirements. Specifically, we need an object-oriented language with multiple inheritance. Of course, users don't want the eggs to get cold while the bacon is frying, so concurrent processing is required, too."

"We must not forget the user interface. The lever that lowers the food lacks versatility and the darkness knob is confusing. Users won't buy the product unless it has a user-friendly graphical interface. When the breakfast cooker is plugged in, users should see a cowboy boot on the screen. Users should click on it and the message 'Booting UNIX v. 8.3' appears on the screen.(UNIX 8.3 should be out by the time the product gets to the market.) Users can pull down a menu and click on the foods they want to cook."

"Having made the wise decision of specifying the software first in the design phase, all that remains is to pick an adequate hardware platform for the implementation phase. An Intel Pentium with 32MB of memory, a 500MB hard disk and 17inch SVGA monitor should be sufficient. If you select a multi-tasking, object-oriented language that supports multiple inheritance and has a built-in GUI, writing the program will be a snap. (Imagine the difficulty we would have had if we had foolishly allowed a hardware-first design strategy to lock us into a four-bit microcontroller!)."

The king wisely had the computer scientist beheaded, and they all lived happily ever after.


Waka Waka Bang Splat

A poll conducted among INFOCUS magazine readers had established "waka" as the proper pronunciation for the angle-bracket characters <, though some readers held out resolutely for "norkies."

The following poem appeared recently in INFOCUS magazine. The original authors were Fred Bremmer and Steve Kroese of Calvin College & Seminary of Grand Rapids, MI.

The text of the poem follows:

<> !*''#
^"`$$-
!*=@$_
%*<> ~#4
&[]../
|{,,SYSTEM HALTED

The poem can be appreciated only by reading it aloud, to wit:

Waka waka bang splat tick tick hash,
Caret quote back-tick dollar dollar dash,
Bang splat equal at dollar under-score,
Percent splat waka waka tilde number four,
Ampersand bracket bracket dot dot slash,
Vertical-bar curly-bracket comma comma CRASH.

A fragment of a drinking (or financing?) song called Hatless Atlas:

^<@<.@*
}"_# |
-@$&/_%
!( @|=>
;`+$?^?
,#"~|)^G
hat less at less point at star
backbrace double base pound space bar
dash at cash and slash base rate
wow open tab at bar is great
semi backquote plus cash huh DEL
comma pound double tilde bar close BEL

[ Assorted Humor | Krishna Kunchithapadam ]


Last updated: Sun Jun 27 17:00:19 PDT 2004
URL: http://www.geocities.com/krishna_kunchith/humor/computer.html

Hosted by www.Geocities.ws

1