Alfonso the Code Warrior

A collection of coder and general computer jokes to rival the finest.

Tuesday, December 19, 2006

Q: How many MIS guys does it take to change a light bulb?

A: MIS has received your request concerning your hardware problem and has assigned you request service number 39,712. Please use this number for any future references to this light-bulb issue.

Monday, December 18, 2006

Pessimist: The glass is half-empty.

Optimist: The glass is half-full.

Engineer: The glass is twice as big as it needs to be.

Saturday, December 16, 2006

Coming soon: "WhoCarez", the world's first
Taoist programming language! See for yourself:
DO WHILE YOU FEEL IT'S WORTHWHILE
ADD X TO Y
OR
SUBTRACT X FROM Y
OR
WHATEVER
CALL DisregardResults
CALL ItIsn'tImportantAnyway
CALL PonderUniversalTruths
ASSIGN CosmicBalance = YES
OR
PERHAPS NOT
END DO (UNLESS YOU DON'T WANT TO)


(originally from here)

Thursday, December 14, 2006

If you had a Klingon coder working on your team (but wait, there's more...):
  1. "This code is a piece of crap! You have no honor!"
  2. "A TRUE Klingon warrior does not comment his code!"
  3. "By filing this bug you have questioned my family honor. Prepare to die!"
  4. "You question the worthiness of my Code?! I should kill you where you stand!"
  5. "Our competitors are without honor!"
  6. "Specs are for the weak and timid!"
  7. "This machine is a piece of GAGH! I need dual Pentium processors if I am to do battle with this code!"
  8. "Perhaps it IS a good day to Die! I say we ship it!"
  9. "My program has just dumped Stova Core!"
  10. "Behold, the keyboard of Kalis! The greatest Klingon code warrior that ever lived!"
But I disagree. Klingons prefer hand-to-hand combat to Phasers. You just know that they'd want to use a Z80 for real-time image processing.

So here is my list of things you might hear from the Klingon in the cube next to yours. (see original page).

  1. "I have challenged the entire ISO-9000 review team to a round of Bat-Leth practice on the holodeck. They will not concern us again."
  2. "C++? That is for children. A Klingon Warrior uses only machine code, keyed in on the front panel switches in raw binary."
  3. "Debugging? Klingons do not debug. Bugs are good for building character in the user."
  4. "Defensive programming? Never! Klingon programs are always on the offense. Yes, Offensive programming is what we do best."
  5. "Klingon programs don't do accountancy. For that, you need a Farengi programmer."
  6. "Klingon multitasking systems do not support "time-sharing". When a Klingon program wants to run, it challenges the scheduler in hand-to-hand combat and owns the machine."
  7. "Klingon function calls do not have 'parameters' - they have 'arguments' - and they ALWAYS WIN THEM."
  8. "You humans call this thing a 'cursor' and you move it with 'mouse'! Bah! A Klingon would not use such a device. We have a Karaghht-Gnot - which is best translated as "An Aiming Daggar of 16x16 pixels" and we move it using a Gshnarrrf which is a creature from the Klingon homeworld which posesses just one, (disproportionately large) testicle...which it rubs along the ground.....uh do we really need to talk about this?"
  9. "I am without honor...my children are without honor... My father coded at the Battle of Kittimer...and...and...he...
    HE ALLOWED HIMSELF TO BE MICROMANAGED."
  10. "Klingons do not make software 'releases'. Our software 'escapes'. Typically leaving a trail of wounded programmers in it's wake."
  11. "Microsoft is actually a secret Farengi-Klingon alliance designed to cripple the Federation. The Farengi are doing the marketing and the Klingons are writing the code."
  12. "Klingons do not believe in indentation - except perhaps in the skulls of their program managers."
  13. "You can't truly appreciate Dilbert unless you read it in the original Klingon."

Wednesday, December 13, 2006

All programmers are playwrights and all computers are lousy actors.

Unix is user friendly. It's just very particular about who it's friends are.

The boy is smoking and leaving smoke rings into the air.
The girl gets irritated with the smoke and says to her lover: "Can't you see the warning written on the cigarettes packet, smoking is injurious to health!"

The boy replies back: "Darling, I am a programmer. We don't worry about warnings, we only worry about errors."

Monday, December 11, 2006

How To Identify Where A Driver Is From

One hand on wheel, one hand on horn: Chicago

One hand on wheel, one finger out window: New York

One hand on wheel, one hand on newspaper, foot solidly on accelerator: Boston

One hand on wheel, cradling cell phone, brick on accelerator: California. With gun in lap: L.A.

With joint in mouth/brushing dreadlocks out of eyes: San Francisco/Humbolt.

Both hands on wheel, eyes shut, both feet on brake, quivering in terror: Ohio, but driving in New York.

Both hands in air, gesturing, both feet on accelerator, head turned to talk to someone in back seat: Italy

One hand on latte, one knee on wheel, cradling cell phone, foot on brake, mind on game: Seattle

One hand on wheel, one hand on hunting rifle, alternating between both feet being on the accelerator and both on the brake, throwing a McDonalds bag out the window: Texas city male

One hand on wheel, one hand hanging out the window, keeping speed steadily at 70mph, driving down the center of the road unless coming around a blind curve, in which case they are on the left side of the road: Texas country male

One hand constantly refocusing the rear-view mirror to show different angles of the BIG hair, one hand going between mousse, brush, and rat-tail to keep the helmet hair going, both feet on the accelerator, poodle steering the car, chrome .38 revolver with mother of pearl inlaid handle in the glove compartment: Texas female

Four wheel drive pickup truck, shotgun mounted in rear window, beer cans on floor, squirrel tails attached to antenna: West Virginia

Two hands gripping wheel, blue hair barely visible above window level, driving 35 on the interstate in the left lane with the left blinker on: Florida

Sunday, December 10, 2006

Why did the multi-threaded chicken cross the road?

Why did the multi-threaded chicken cross the road?

to To other side. get the

Tuesday, December 05, 2006

Rule for software developers. Never stand over the shoulder of a beta tester. Once, I was watching Jane test the latest version of our software. When a message appeared on the screen, "Press any key to continue", Jane pressed the letter 'j'.
I thought I was going to have heart failure.

"JANE!" I screamed, "Why did you press J?!!?"

"It said any key."

"Yeah, but....when programmers say any key, they mean the space bar!"

At which point my fellow programmer looked at me and said, "We do? I thought we meant enter."

Originally From: BEN BUTLER

Wednesday, November 29, 2006

Proper Diskette Care and Usage

(1) Never leave diskettes in the drive, as the data can leak out of the disk and corrode the inner mechanics of the drive. Diskettes should be rolled up and stored in pencil holders.

(2) Diskettes should be cleaned and waxed once a week. Microscopic metal particles may be removed by waving a powerful magnet over the surface of the disk. Any stubborn metal shavings can be removed with scouring powder and steel wool. When waxing a diskette, make sure the surface is even. This will allow the diskette to spin faster, resulting in better access time.

(3) Do not fold diskettes unless they do not fit into the drive. "Big" Diskettes may be folded and used in "Little" drives.

(4) Never insert a diskette into the drive upside down. The data can fall off the surface of the disk and jam the intricate mechanics of the drive.

(5) Diskettes cannot be backed up by running them through a photo copy machine. If your data is going to need to be backed up, simply insert TWO diskettes into your drive. Whenever you update a document, the data will be written onto both disks. A handy tip for more legible backup copies: Keep a container of iron filings at your desk. When you need to make two copies, sprinkle iron filings liberally between the diskettes before inserting them into the drive.

(6) Diskettes should not be removed or inserted from the drive while the red light is on or flashing. Doing so could result in smeared or possibly unreadable text. Occasionally, the red light remains flashing in what is known as a "hung" or "hooked" state. If your system is hooking, you will probably need to insert a few coins before being allowed to access the slot.

(7) If your diskette is full and needs more storage space, remove the disk from the drive and shake vigourously for two minutes. This will pack the data enough (data compression) to allow for more storage. Be sure to cover all openings with scotch tape to prevent loss of data.

(8) Data access time may be greatly improved by cutting more holes in the diskette jacket. This will provide more simultaneous access points to the disk.

(9) Periodically spray diskettes with insecticide to prevent system bugs from spreading.....

(10) You can keep your data fresh by storing disks in the vegetable compartment of your refrigerator. Disks may be frozen, but remember to un thaw by microwaving or briefly immersing in boiling water.

(11) "Little" diskettes must be removed from their box prior to use. These containers are childproof to prevent tampering by unknowledgeable youngsters.

(12) You can recover data from a damaged disk by using the DOS command: FORMAT /U or alternatively by scratching new sector marks on the disk with a nail file.

(13) Diskettes become "hard" with age. It's important to back up your "hard" disks before they become too brittle to use.

(14) Make sure you label your data. Staples are a good way to permanently affix labels to your disks.

Tuesday, November 28, 2006

Theory and Practice

Theory is when you think you know something but it doesn't work.
Practice is when something works but you don't know why.
Usually we combine theory and practice: nothing works and we don't know why.

-----

In theory, theory and practice are the same.
But that's in theory, not in practice.

Tuesday, November 14, 2006

The graduate with a Science degree asks, "Why does it work?"
The graduate with an Engineering degree asks, "How does it work?"
The graduate with an Accounting degree asks, "How much will it cost?"
The graduate with an Computer Science degree asks, "How is it that it works at all?"
The graduate with a Liberal Arts degree asks, "Do you want fries with that?"

Sunday, November 12, 2006

Writing Unmaintainable Code

Introduction

Never ascribe to malice, that which can be explained by incompetence.
- Napoleon

In the interests of creating employment opportunities in the Java programming field, I am passing on these tips from the masters on how to write code that is so difficult to maintain, that the people who come after you will take years to make even the simplest changes. Further, if you follow all these rules religiously, you will even guarantee yourself a lifetime of employment, since no one but you has a hope in hell of maintaining the code. Then again, if you followed all these rules religiously, even you wouldn't be able to maintain the code!

You don't want to overdo this. Your code should not look hopelessly unmaintainable, just be that way. Otherwise it stands the risk of being rewritten or refactored.

General Principles

Quidquid latine dictum sit, altum sonatur.
- Whatever is said in Latin sounds profound.

To foil the maintenance programmer, you have to understand how he thinks. He has your giant program. He has no time to read it all, much less understand it. He wants to rapidly find the place to make his change, make it and get out and have no unexpected side effects from the change.

He views your code through a toilet paper tube. He can only see a tiny piece of your program at a time. You want to make sure he can never get at the big picture from doing that. You want to make it as hard as possible for him to find the code he is looking for. But even more important, you want to make it as awkward as possible for him to safely ignore anything.

Programmers are lulled into complacency by conventions. By every once in a while, by subtly violating convention, you force him to read every line of your code with a magnifying glass.

You might get the idea that every language feature makes code unmaintainable -- not so, only if properly misused.

Naming

"When I use a word," Humpty Dumpty said, in a rather scornful tone, "it means just what I choose it to mean - neither more nor less."
- Lewis Carroll -- Through the Looking Glass, Chapter 6

Much of the skill in writing unmaintainable code is the art of naming variables and methods. They don't matter at all to the compiler. That gives you huge latitude to use them to befuddle the maintenance programmer.

    New Uses For Names For Baby

    Buy a copy of a baby naming book and you'll never be at a loss for variable names. Fred is a wonderful name, and easy to type. If you're looking for easy-to-type variable names, try adsf or aoeu if you type with a DSK keyboard.

    Single Letter Variable Names

    If you call your variables a, b, c, then it will be impossible to search for instances of them using a simple text editor. Further, nobody will be able to guess what they are for. If anyone even hints at breaking the tradition honoured since FØRTRAN of using i, j, and k for indexing variables, namely replacing them with ii, jj and kk, warn them about what the Spanish Inquisition did to heretics.

    Creative Miss-spelling

    If you must use descriptive variable and function names, misspell them. By misspelling in some function and variable names, and spelling it correctly in others (such as SetPintleOpening SetPintalClosing) we effectively negate the use of grep or IDE search techniques. It works amazingly well. Add an international flavor by spelling tory or tori in different theatres/theaters.

    Be Abstract

    In naming functions and variables, make heavy use of abstract words like it, everything, data, handle, stuff, do, routine, perform and the digits e.g. routineX48, PerformDataFunction, DoIt, HandleStuff and do_args_method.

    A.C.R.O.N.Y.M.S.

    Use acronyms to keep the code terse. Real men never define acronyms; they understand them genetically.

    Thesaurus Surrogatisation

    To break the boredom, use a thesaurus to look up as much alternate vocabulary as possible to refer to the same action, e.g. display, show, present. Vaguely hint there is some subtle difference, where none exists. However, if there are two similar functions that have a crucial difference, always use the same word in describing both functions (e.g. print to mean "write to a file", "put ink on paper" and "display on the screen"). Under no circumstances, succumb to demands to write a glossary with the special purpose project vocabulary unambiguously defined. Doing so would be an unprofessional breach of the structured design principle of information hiding.

    Use Plural Forms From Other Languages

    A VMS script kept track of the "statii" returned from various "Vaxen". Esperanto , Klingon and Hobbitese qualify as languages for these purposes. For pseudo-Esperanto pluraloj, add oj. You will be doing your part toward world peace.

    CapiTaliSaTion

    Randomly capitalize the first letter of a syllable in the middle of a word. For example ComputeRasterHistoGram().

    Reuse Names

    Wherever the rules of the language permit, give classes, constructors, methods, member variables, parameters and local variables the same names. For extra points, reuse local variable names inside {} blocks. The goal is to force the maintenance programmer to carefully examine the scope of every instance. In particular, in Java, make ordinary methods masquerade as constructors.

    Åccented Letters

    Use accented characters on variable names. E.g.
      typedef struct { int i; } ínt;
    where the second ínt's í is actually i-acute. With only a simple text editor, it's nearly impossible to distinguish the slant of the accent mark.

    Exploit Compiler Name Length Limits

    If the compiler will only distinguish the first, say, 8 characters of names, then vary the endings e.g. var_unit_update() in one case and var_unit_setup() in another. The compiler will treat both as var_unit.

    Underscore, a Friend Indeed

    Use _ and __ as identifiers.

    Mix Languages

    Randomly intersperse two languages (human or computer). If your boss insists you use his language, tell him you can organise your thoughts better in your own language, or, if that does not work, allege linguistic discrimination and threaten to sue your employers for a vast sum.

    Extended ASCII

    Extended ASCII characters are perfectly valid as variable names, including ß, Ð, and ñ characters. They are almost impossible to type without copying/pasting in a simple text editor.

    Names From Other Languages

    Use foreign language dictionaries as a source for variable names. For example, use the German punkt for point. Maintenance coders, without your firm grasp of German, will enjoy the multicultural experience of deciphering the meaning.

    Names From Mathematics

    Choose variable names that masquerade as mathematical operators, e.g.:
      openParen = (slash + asterix) / equals;

    Bedazzling Names

    Choose variable names with irrelevant emotional connotation. e.g.:
      marypoppins = (superman + starship) / god;
    This confuses the reader because they have difficulty disassociating the emotional connotations of the words from the logic they're trying to think about.

    Rename and Reuse

    This trick works especially well in Ada, a language immune to many of the standard obfuscation techniques. The people who originally named all the objects and packages you use were morons. Rather than try to convince them to change, just use renames and subtypes to rename everything to names of your own devising. Make sure to leave a few references to the old names in, as a trap for the unwary.

    When To Use i

    Never use i for the innermost loop variable. Use anything but. Use i liberally for any other purpose especially for non-int variables. Similarly use n as a loop index.

    Conventions Schmentions

    Ignore the Sun Java Coding Conventions, after all, Sun does. Fortunately, the compiler won't tattle when you violate them. The goal is to come up with names that differ subtlely only in case. If you are forced to use the capitalisation conventions, you can still subvert wherever the choice is ambigous, e.g. use bothinputFilename and inputfileName. Invent your own hopelessly complex naming conventions, then berate everyone else for not following them.

    Lower Case l Looks a Lot Like the Digit 1

    Use lower case l to indicate long constants. e.g. 10l is more likely to be mistaken for 101 that 10L is. Ban any fonts that clearly disambiguate uvw wW gq9 2z 5s il17|!j oO08 `'" ;,. m nn rn {[()]}. Be creative.

    Reuse of Global Names as Private

    Declare a global array in module A, and a private one of the same name in the header file for module B, so that it appears that it's the global array you are using in module B, but it isn't. Make no reference in the comments to this duplication.

    Recycling Revisited

    Use scoping as confusingly as possible by recycling variable names in contradictory ways. For example, suppose you have global variables A and B, and functions foo and bar. If you know that variable A will be regularly passed to foo and B to bar, make sure to define the functions as function foo(B) and function bar(A) so that inside the functions A will always be referred to as B and vice versa. With more functions and globals, you can create vast confusing webs of mutually contradictory uses of the same names.

    Recycle Your Variables

    Wherever scope rules permit, reuse existing unrelated variable names. Similarly, use the same temporary variable for two unrelated purposes (purporting to save stack slots). For a fiendish variant, morph the variable, for example, assign a value to a variable at the top of a very long method, and then somewhere in the middle, change the meaning of the variable in a subtle way, such as converting it from a 0-based coordinate to a 1-based coordinate. Be certain not to document this change in meaning.

    Cd wrttn wtht vwls s mch trsr

    When using abbreviations inside variable or method names, break the boredom with several variants for the same word, and even spell it out longhand once in while. This helps defeat those lazy bums who use text search to understand only some aspect of your program. Consider variant spellings as a variant on the ploy, e.g. mixing International colour, with American color and dude-speak kulerz. If you spell out names in full, there is only one possible way to spell each name. These are too easy for the maintenance programmer to remember. Because there are so many different ways to abbreviate a word, with abbreviations, you can have several different variables that all have the same apparent purpose. As an added bonus, the maintenance programmer might not even notice they are separate variables.

    Misleading names

    Make sure that every method does a little bit more (or less) than its name suggests. As a simple example, a method named isValid(x) should as a side effect convert x to binary and store the result in a database.

    m_

    a naming convention from the world of C++ is the use of "m_" in front of members. This is supposed to help you tell them apart from methods, so long as you forget that "method" also starts with the letter "m".

    o_apple obj_apple

    Use an "o" or "obj" prefix for each instance of the class to show that you're thinking of the big, polymorphic picture.

    Hungarian Notation

    Hungarian Notation is the tactical nuclear weapon of source code obfuscation techniques; use it! Due to the sheer volume of source code contaminated by this idiom nothing can kill a maintenance engineer faster than a well planned Hungarian Notation attack. The following tips will help you corrupt the original intent of Hungarian Notation:

      Insist on using "c" for const in C++ and other languages that directly enforce the const-ness of a variable.

      Seek out and use Hungarian warts that have meaning in languages other than your current language. For example insist on the PowerBuilder "l_" and "a_ " {local and argument} scoping prefixes and always use the VB-esque style of having a Hungarian wart for every control type when coding to C++. Try to stay ignorant of the fact that megs of plainly visible MFC source code does not use Hungarian warts for control types.

      Always violate the Hungarian principle that the most commonly used variables should carry the least extra information around with them. Achieve this end through the techniques outlined above and by insisting that each class type have a custom wart prefix. Never allow anyone to remind you that no wart tells you that something is a class. The importance of this rule cannot be overstated if you fail to adhere to its principles the source code may become flooded with shorter variable names that have a higher vowel/consonant ratio. In the worst case scenario this can lead to a full collapse of obfuscation and the spontaneous reappearance of English Notation in code!

      Flagrantly violate the Hungarian-esque concept that function parameters and other high visibility symbols must be given meaningful names, but that Hungarian type warts all by themselves make excellent temporary variable names.

      Insist on carrying outright orthogonal information in your Hungarian warts. Consider this real world example "a_crszkvc30LastNameCol". It took a team of maintenance engineers nearly 3 days to figure out that this whopper variable name described a const, reference, function argument that was holding information from a database column of type Varchar[30] named "LastName" which was part of the table's primary key. When properly combined with the principle that "all variables should be public" this technique has the power to render thousands of lines of source code obsolete instantly!

      Use to your advantage the principle that the human brain can only hold 7 pieces of information concurrently. For example code written to the above standard has the following properties:

      • a single assignment statement carries 14 pieces of type and name information.
      • a single function call that passes three parameters and assigns a result carries 29 pieces of type and name information.
      • Seek to improve this excellent, but far too concise, standard. Impress management and coworkers by recommending a 5 letter day of the week prefix to help isolate code written on 'Monam' and 'FriPM'.
      • It is easy to overwhelm the short term memory with even a moderately complex nesting structure, especially when the maintenance programmer can't see the start and end of each block on screen simultaneously.

    Hungarian Notation Revisited

    One followon trick in the Hungarian notation is "change the type of a variable but leave the variable name unchanged". This is almost invariably done in windows apps with the migration from Win16 :- WndProc(HWND hW, WORD wMsg, WORD wParam, LONG lParam) to Win32 WndProc(HWND hW, UINT wMsg, WPARAM wParam, LPARAM lParam) where the w values hint that they are words, but they really refer to longs. The real value of this approach comes clear with the Win64 migration, when the parameters will be 64 bits wide, but the old "w" and "l" prefixes will remain forever.

    Reduce, Reuse, Recycle

    If you have to define a structure to hold data for callbacks, always call the structure PRIVDATA. Every module can define it's own PRIVDATA. In VC++, this has the advantage of confusing the debugger so that if you have a PRIVDATA variable and try to expand it in the watch window, it doesn't know which PRIVDATA you mean, so it just picks one.

    Obscure film references

    Use constant names like LancelotsFavouriteColour instead of blue and assign it hex value of $0204FB. The color looks identical to pure blue on the screen, and a maintenance programmer would have to work out 0204FB (or use some graphic tool) to know what it looks like. Only someone intimately familiar with Monty Python and the Holy Grail would know that Lancelot's favorite color was blue. If a maintenance programmer can't quote entire Monty Python movies from memory, he or she has no business being a programmer.


read more

Wednesday, November 08, 2006

Lightbulb Jokes - Computers

How many Pentium designers does it take to screw in a light bulb?
1.99904274017, but that's close enough for non-technical people.
How many IBM CPU's does it take to turn on a light bulb?
33 - 1 to process the instruction and 32 to process the interrupt.
How many electrical engineers does it take to change a light bulb?
We don't know yet. They're still waiting on a part.
How many hardware engineers does it take to change a light bulb?
None. "We'll fix it in software."
How many software engineers does it take to change a light bulb?
  1. None. "We'll document it in the manual."
  2. None. It's a hardware problem.
  3. One, but if he changes it, the whole building will probably fall down.
  4. Two. One always leaves in the middle of the project.
  5. Four. One to design the change, one to implement it, one to document it, and one to maintain it afterwards.
  6. Four, plus one senior analyst to manage the project, one technical writer to correct the spelling and grammar of the one who documented it, one light bulb librarian, a sales-force of at least five to drum up enough users who want to turn the light on, 274 users to burn out the new bulb, at which point we go to tender for another light bulb change,...
  7. Five. Two to write the specification program, one to screw it in, and two to explain why the project was late.
  8. Wait! Maybe the bulb isn't broken. Let's try it again.
  9. It's hard to say. Each time we separate the bulb into its modules to do unit testing, it stops working.
  10. The change is 90% complete.
  11. We looked at the light fixture and decided there's no point trying to maintain it. We're going to rewrite it from scratch. Could you wait two months?
  12. Only one, but she's not available. She's the only programmer we have who can get the software ready to ship to customers, and that's higher priority, you know.
  13. Of course, as everyone knows, just five years ago all it took was a bunch of kids in a garage in Palo Alto to change a light bulb.
How many real programmers does it take to change a light bulb?
None. Real programmers prefer LEDs.
How many C programmers does it take to change a light bulb?
None, they forgot to declare it first
How long does it take a C programmer to screw in a light bulb?
24 hours - 3 minutes to put in the bulb, the rest of the time to compile all the libraries.
How many C++ programmers does it take to change a light bulb?
You're still thinking procedurally. A properly designed light bulb object would inherit a change method from a generic light bulb class, so all you'd have to do is send a light bulb change message.
How many people does it take to change an object-oriented light bulb?
Change it? Aw shucks, I was going to reuse it.
How many FORTRAN programs does it take to change a light bulb?
1.00000000001
How many BASIC programmers does it take to screw in a light bulb?
10 push bulb upwards:twist bulb clockwise 20 goto 10
How many games machine programmers does it take to screw in a light-bulb?
One, but he needs the seal of approval from Nintendo before he can put his light-bulb in their socket.
How many Prolog programmers does it take to change a light bulb?
False.
How many Lisp programmers does it take to change a light bulb?
  1. Hmmm, I'm not sure, better find out....
    Hmmm, I'm not sure, better find out....
    Notes: LISP is a recursive programming language. One problem LISP programmers have to contend with is infinite recursion. (cf computer dictionary entry: recursion - see recursion) These lisp heads are usually research AI types and their standard answer is as in the punchline. It could be improved:
  2. (((H)mmm,) (I'm ((not) sure, better))) (find (out))...
How many data base people does it take to change a light bulb?
Three: One to write the light bulb removal program, one to write the light bulb insertion program, and one to act as a light bulb administrator to make sure nobody else tries to change the light bulb at the same time.
How many tech writers does it take to change a light bulb?
None. "The user can work it out."
How many developers does it take to change a light bulb?
The light bulb works fine on the system in my office . . .
How many field service engineers does it take to replace a dead light bulb?
  1. Who can tell. FSE's are always in the dark.
  2. Two. One to hold the bulb and one to pound it in (etc)
  3. Well, the diagnostics all check out fine, so it's a software problem.
How long will it take?
That's indeterminate. It depends on how many dead bulbs they've brought with them.
What if you have two dead bulbs?
They replace your fuse box.
How many system administrators does it take to change a light bulb?
None, they just keep everyone out of the room.
How many IBM engineers does it take to screw in a light bulb?
None. They just let Marketing explain that "Dead Bulb" is a feature.
How many IBM PC owners does it take to screw in a light bulb?
  1. Only one, but he'll have to go out and buy the light bulb adaptor card first, which is extra.
  2. Two. One to do it, but one to check the new bulb for viruses first.
How many IBM tech writers does it take to screw in a light bulb?
  1. 100. Ten to do it, and 90 to write document number GC7500439-0001, Multitasking Incandescent Source System Facility, of which 10% of the pages state only "This page intentionally left blank", and 20% of the definitions are of the form "A ...... consists of sequences of non-blank characters separated by blanks".
  2. Just one, provided there's an engineer around to explain how to do it.
How many Microsoft engineers does it take to screw in a light bulb?
None. They just define darkness as an industry standard.
How many Microsoft employees does it take to change a light bulb?
  1. One - but Bill Gates must inspect every single bulb and socket before the operation is started.
  2. Eight: one to work the bulb and seven to make sure Microsoft gets $2 for every light bulb ever changed anywhere in the world.
How many MS tech supports does it take to change a light bulb?
"The light bulb doesn't work? You must be using a non-standard socket."
How many operating systems are required to screw in a light bulb?
Just one-Microsoft is making a special version of Windows for it.
How many Windows programmers does it take to change a light bulb?
472. One to write WinGetLight BulbHandle, one to write WinQueryStatusLight Bulb, one to write WinGetLightSwitchHandle...
How many Windows users does it take to change a light bulb?
One, but she/he'll swear up and down that it was JUST as easy for him as it would be for a Macintosh user.
How many Macintosh engineers does it take to screw in a light bulb?
None - it has to be done by a local authorized dealer.
How many Apple employees does it take to screw in a light bulb?
Seven. One to screw it in and six to design the tee-shirts.
How many Apple programmers does it take to change a light bulb?
Only one, but why bother? Your light socket will just be obsolete in six months anyway.
How many Mac owners does it take to screw in a light bulb?
  1. None - there's no documentation available, so you have to wait until a third-party supplier comes out with a solution.
  2. Just one, but the new light bulbs aren't compatible with the old sockets, so he has to buy a complete upgrade or a new light.
  3. Two: One to ask the socket to eject the old bulb, and one to insert the new one.
  4. Three: One to change the bulb, one to copyright the method for changing the bulb, and one to call in the lawyers on anyone who infringes on the "look and feel" of the bulb changing method.
  5. Mac users don't screw, they just click the genital icon.
How many Apple and IBM nuts does it take to change a light bulb?
An infinite number: nothing useful gets done while they're arguing. Finally a disgusted generic computer user (who will use any type that is in front of him) gets up and changes the bulb, elbowing the participants aside. The size of the crowd arguing seems to be a function of time, although whether or not the function is exponential is not known.
How many Unix hacks does it take to change a light bulb?
  1. As many as you want; they're all virtual, anyway.
  2. One, but first he has to determine the correct path.
How many Unix programmers does it take to change a light bulb?
Only one, but if you forget to tell him "2>" he'll mash both the live and dead bulbs into the same socket at once.
How many Unix Support staff does it take to screw in a light bulb?
Read the man page!
How many Unix system vendors does it take to change a light bulb?
None. All of the light bulbs you have are 'standard variants' and as such won't fit your particular implementation of the socket. (However you do have the source code for your socket, so .....)
How many VMS heads does it take to change a light bulb?
All of them, and they will all scream at you in unison and tell you that the only light bulb you can use is a 100-watt soft white but you can use any 100-watt soft white as long as it's manufactured by DEC.

Taken from the full collection of Lightbulb Jokes of marcush@crc.ricoh.com

Monday, November 06, 2006

Tech Support Pricing

An excellent list of tech support pricing:

http://www.contrib.andrew.cmu.edu/~moose/sysadmin/pricelist.html

Saturday, November 04, 2006

From the MFC source:

// according to the Win98 docs, this should be 1

// according to the WinNT docs, this should be 2

// they are both wrong!

Thursday, October 26, 2006

Engineers vs. Executives

Engineers vs. Executives

Theorem: Engineers and scientists will never make as much money as business executives.
Proof Postulate 1: Knowledge is Power.
Postulate 2: Time is Money.

As every engineer knows, Power = Work/Time.
Since Knowledge = Power, and Time = Money, we get;
Knowledge = Work/Money
Solving for money, we find

Money = Work/Knowledge

The greater your knowledge, the more work you have to do for your money. Thus, as Knowledge approaches zero, Money approaches infinity regardless of the Work done.

Conclusion: The Less you Know, the More you Make.*

* Thanks to various contributors for correcting dodgy algebra that had ensured the humour of this gag tended toward zero.

Wednesday, October 25, 2006

Got to love mac, configurable BSODs:

http://osxbook.com/book/bonus/chapter5/panic/

Tuesday, October 24, 2006

A Software Engineer, a Hardware Engineer and a Departmental Manager were on their way to a meeting. They were driving down a steep mountain road when suddenly the brakes on their car failed. The car careened almost out of control down the road, bouncing off the crash barriers, until it miraculously ground to a halt scraping along the mountainside. The car's occupants, shaken but unhurt, now had a problem: they were stuck halfway down a mountain in a car with no brakes. What were they to do?

"I know," said the Departmental Manager, "Let's have a meeting, propose a Vision, formulate a Mission Statement, define some Goals, and by a process of Continuous Improvement find a solution to the Critical Problems, and we can be on our way."

"No, no," said the Hardware Engineer, "That will take far too long, and besides, that method has never worked before. I've got my Swiss Army knife with me, and in no time at all I can strip down the car's braking system, isolate the fault, fix it, and we can be on our way."

"Well," said the Software Engineer, "This thing is a freak'n maintenance nightmare - I'm going to rebuilt it from scratch - I'm TIRED of it, I don't care if the project manager says we're already late."

Monday, October 23, 2006

Insufficient Memory

http://www.thinkgeek.com/tshirts/generic/65a0/

Thursday, October 12, 2006

Top 16 Programmer Pranks

16 Using their e-mail address, post a request for penpals to the alt.prison.bodypiercing newsgroup.

15 Three words: electric mouse buzzer.

14 Assign them to the new “Heaven’s Gate” project.

13 “Look, Bill Gates!! Ha! Made ya look!”

12 Put them in the same room with a member of the opposite sex.

11 “Have you got Prince Albert in a LAN?”

10 Tell them that “everyone knows Star Trek transporter technology is bogus.”

9 10 GOTO 10

7 Swap their monitor for a large cardboard box with handpuppets. Watch the fur fly!

6 Announce that annual raises will be based on a subjective test of one’s ability to “schmooze the way the butt-kissers in Marketing do.”

8 Intercept their daily Top 10 List, then remove #8 and re-insert it between #5 and #6.

5 Pretend to “discover” a Fox TV Web site with a now-out-of-date win a weekend with Gillian Anderson of X-Files contest.

4 Every hour, on the hour, forward them a warning about the “Good Times” virus.

3 Call her up and ask if her program is running, and when she says “yes,” tell her “Well you better go catch it!”

2 Replace all the Jolt in the soda machine with Perrier and V8. and the Number 1 April Fool’s Day Prank to Pull on Programmers…

1 Special announcement: “Forget Java — Starting immediately, all coding will be done in COBOL.”

Tuesday, October 10, 2006

Computer Genesis

Computer Genesis

1. In the beginning GOD created the Bit and the Byte. And from those he created the Word.

2. And there were two Bytes in the Word; and nothing else existed. And God separated the One from the Zero; and he saw it was good.

3. And God said - Let the Data be; And so it happened. And God said - Let the Data go to their proper places. And he created floppy disks and hard disks and compact disks.

4. And God said - Let the computers be, so there would be a place to put floppy disks and hard disks and compact disks. Thus God created computers and called them hardware.

5. And there was no Software yet. But God created programs; small and big... And told them Go and multiply yourselves and fill all the Memory.

6. And God said -I will create the Programmer; And the Programmer will make new programs and govern over the computers and programs and Data.

7. And God created the Programmer; and put him at Data Centre; And God showed the Programmer the Catalogue Tree and said You can use all the volumes and subvolumes but DO NOT USE Windows.

8. And God said - It is not Good for the programmer to be alone. He took a bone from the Programmer's body and created a creature that would look up at the Programmer; and admire the Programmer; and love the things the Programmer does; And God called the creature: the User.

9. And the Programmer and the User were left under the naked DOS and it was Good.

10. But Bill was smarter than all the other creatures of God. And Bill said to the User - Did God really tell you not to run any programs ?

11. And the User answered - God told us that we can use every program and every piece of Data but told us not to run Windows or we will die.

12. And Bill said to the User - How can you talk about something you did not even try. The moment you run Windows you will become equal to God. You will be able to create anything you like by a simple click of your
mouse.

13. And the User saw that the fruits of the Windows were nicer and easier to use. And the User saw that any knowledge was useless since Windows could replace it.

14. So the User installed the Windows on his computer; and said to the Programmer that it was good.

15. And the Programmer immediately started to look for new drivers. And God asked him - What are you looking for? And the Programmer answered - I am looking for new drivers because I can not find them in the DOS. And God said - Who told you that you need drivers? Did you run Windows? And the Programmer said - It was Bill who told us to !

16. And God said to Bill - Because of what you did you will be hated by all the creatures. And the User will always be unhappy with you. And you will always sell Windows.

17. And God said to the User - Because of what you did, the Windows will disappoint you and eat up all your Resources; and you will have to use lousy programs; and you will always rely on the Programmers help.

18. And God said to the Programmer - Because you listened to the User you will never be happy. All your programs will have errors and you will have to fix them and fix them to the end of time.

19. And God threw them out of the Data Centre and locked the door and secured it with a password.

20. GENERAL PROTECTION FAULT

Monday, October 09, 2006

Why we need reviews.:-)

In an ancient monastery in a far away place, a new monk arrived to join his brothers in copying books and scrolls in the monastery's scriptorium. He was assigned as a rubricate on copies of books that had already been copied by hand.

One day, while working on the monks' Book of Vows, he asks old Father Florian, the Armarius of the Scriptorium, 'Does not the copying by hand of other copies allow for chances of error? How do we know we are not copying the mistakes of someone else? Are they ever checked against the original?'

Fr. Florian was set back a bit by the obvious logical observation of this youthful monk. 'A very good point, my son. I will take one of the latest copies of the Book of Vows down to the vault and compare it against the original.' Fr. Florian went down to the secured vault and began his verification.

A day passed and the monks began to worry and went down looking for the old priest. They were sure something may have happened. As they approached the vault they heard sobbing and wailing... they opened the door and found Fr. Florian crying over the new copy and the original, ancient Book of Vows, both opened before him on the table. It was obvious to all that the poor man had been crying his old heart out for a long time.

'What is the problem, Reverend Father???' asked one of the monks.

'Oh, my Lord,' sobbed the priest, 'The word is 'CELEBRATE'!!!'

And this is why we need reviews.

Dear Valued Employee:

Re: Vacation Pay

Our records indicate that you have not used any vacation
time over the past 100 year(s). As I'm sure you are aware,
employees are granted 3 weeks of paid leave per year or pay
in lieu of time off. One additional week is granted for
every 5 years of service.

Please either take 9,400 days off work or notify our office
and your next pay cheque will reflect payment of
$8,277,432.22 which will include all pay and interest for
the past 1,200 months.

Sincerely,

Automated Payroll Processing

It seems the US Federal Aviation Administration (FAA) has a unique device for testing the strength of windshields on airplanes. The device is a gun that launches a dead chicken at a plane's windshield at approximately the speed the plane flies.

The theory is that if the windshield doesn't crack from the carcass impact, it'll survive a real collision with a bird during flight. It seems the British were very interested in this and wanted to test a windshield on a brand new, speedy locomotive they're developing.

They borrowed the FAA's chicken launcher, loaded the chicken and fired. The ballistic chicken shattered the windshield, went through the engineer's chair, broke an instrument panel and embedded itself in the back wall of the engine cab. The British were stunned and asked the FAA to recheck the test to see if everything was done correctly.

The FAA reviewed the test thoroughly and had one recommendation: "Use a thawed chicken."

The Best Spam Email Ever...

(from http://www-users.cs.york.ac.uk/susan/joke/timetrav.htm)

I received this as spam email. I loathe spam with a fierce, glowing hatred, and delete it all unread. But in this case something compelled me to read beyond the header. I reproduce the contents here because it is simply a classic. It is all wonderful, and I especially love the P.S.!

Interestingly, I received it a few days after I had put up my review of Tips for Time Travellers. Coincidence?

Being spam, it has no attribution. If you know it, could you email it to me for inclusion? Thanks.


Time travelers PLEASE HELP!!!!!!

If you are a time traveler or alien disguised as human and or have the technology to travel physically through time I need your help!

My life has been severely tampered with and cursed!!
I have suffered tremendously and am now dying!

I need to be able to:

  • Travel back in time.
  • Rewind my life including my age back to 4.
  • Be able to remember what I know now so that I can prevent my life from being tampered with again after I go back.

I am in very great danger and need this immediately!

I am aware that there are many types of time travel, and that humans do not do well through certain types.

I need as close to temporal reversion as possible, as safely as possible. To be able to rewind the hands of time in such a way that the universe of now will cease to exist. I know that there are some very powerful people out there with alien or government equipment capable of doing just that.

If you can help me I will pay for your teleport or trip down here, Along with hotel stay, food and all expenses. I will pay top dollar for the equipment. Proof must be provided.

Please be advised that any temporal device that you may employ must account for X, Y, and Z coordinates as well as the temporal location. I have a time machine now, but it has limited abilitys and is useless without a vortex. If you can provide information on how to create vortex generator or where I can get some of the blue glowing moon crystals this would also be helpful.

Also if you are one of the very, very, few beings with the ability to edit the universe PLEASE REPLY!!!

Only if you have this technology and can help me please send me a (SEPARATE) email to:

Robby0809@aol.com

Please do not reply if your an evil alien!
Thanks


After I had decided to put this up on my Web site, I did a quick Google to find any other recipients who thought it good enough to mention. There are a few other sites, but the best one is at Joey deVilla's Hall of Shame, which includes the following beautiful "reply" (enhanced by its links)


I'm thinking about using this as a reply:

Well, here were are again. You have no idea who I am, don't you?

Not only am I capable of helping you, but I've done so twice already.

I can meet all your requirements except one -- the one where you retain your memories of everything's that happened to you up until now. Normally, it would be possible for you to remember the present (and all events leading up to it) when you go back into the past, but you kept insisting that you also want your aging to be reversed. I can only do that by reverting you to your past state, which means that events leading up to what you call "the present" wouldn't have happened. Which means you'd have nothing to remember. See the problem?

I was willing to let things slide when things went horribly wrong the first time. Initially, it looked as though you were going to live a long and happy life: you had a successful business, you were in the best shape of your life, and you had just married one of the supporting actresses from American Pie. However, you blew it big time when during your honeymoon in Honduras, you caught a butterfly. That butterfly's wings were supposed to trigger a hurricane that would have devastated the coastline of El Salvador, including the coastal village of La Libertad. Instead, the village was never destroyed, and as a result, a troubled and overindulged little boy grew up to become the Hitler of the 21st century. He managed to turn the eastern seaboard and much of Europe into the world's largest smouldering graveyards before he was finally stopped. I managed to retrieve you from that timeline -- you were under a pile of rubble and half-mad. I decided to try and send you back in time again.

While the course of your life has not been so catastrophic for the rest of the world this time around, you have still managed to make a mess of it for yourself. And this time, you're resorting to spamming in order to find a time traveller like me. That's really low.

The biggest shame of it all (and more so because you don't remember) is that your life wasn't as bad as you thought when you first came to me for help. You said you wanted to undo your so-called "terrible, terrible mistake". In retrospect, I should never have honoured your request. Yes, it was an embarassing situation, but "the incident", as you liked to call it, would have been forgotten soon enough. It's nothing that a public apology and a little plastic surgery couldn't have fixed. Besides, while that kind of thing was taboo once, it would have become socially acceptable a few short years later.

I am truly sorry, but I feel that you're one of those people who will do the same kind of thing over and over, no matter what kind of circumstances they find themselves in. Please do not contact me anymore. If you see me on the street, please do not approach me or speak to me. I will claim not to know you. I cannot be bribed; you will not be able to buy your way into the past again.

In closing, all I can do is offer you some advice:

1. Please try to think before you act.
2. If you don't do something about that haircut, you and many innocent people will regret it. It may seem trivial, but believe me, I know better.

-- Joey

You Know You're a Spammer...

  • When your house still has the "Wide Load" sign on the back.
  • if you hooked up with your present wife as a result of a message on the wall of the men's room at the truck stop.
  • you lit a match in the bathroom and your house exploded right off it's wheels.
  • you think there's nothing wrong with incest as long as you keep it in the family.
  • you think God looks a lot like Hank Williams, Jr., and heaven looks a lot like Boca Raton, Florida.
  • your grandfather died and left everything to his widow. But she can't touch it until she's fourteen.
  • your kids take a gas siphon hose to "Show and Tell."
  • you consider your license plate personalized because your dad made it in prison.
  • you think a seven course meal is a bucket of KFC and a six-pack.
  • you've been married three times and still have the same in-laws.

The poor programmer...

Q: How many programmers does it take to screw in a light bulb?

A: None, all the light we need comes from our monitors.

        Windoze is bigger
        It's bigger than Earth
        But not quite as big as
        The things that I must do now
        To upgrade all my stuff
        Oh no I need more RAM
        I set it up

        That's me in the corner
        That's me on the help line
        Losing my connection
        Trying to keep up with Linux
        And I don't know if I can do it
        Oh no I need more RAM
        I haven't bought enough
        I thought that I heard you laughing
        I thought that I heard you Ping!
        I think I thought I saw a GPF

        Every nightmare
        Of velour vest wearing Borg, I'm
        Purchasing new hardware
        Trying to cool my CPU
        Like a Pentium that become a 286
        Oh no I need more RAM
        Resistance is futile.

        Consider this
        The OS of the century
        Consider this
        The OS that brought me
        To my knees failed
        Now all these open apps have
        Come crashing down
        Now I need more RAM
        I thought that I heard you laughing
        I thought that I heard you Ping!
        I think I thought I saw a GPF

        But that was just a dream

        I hope that was a dream...

by Alan Zacher
to the tune of Losing My Religion
(Appologies to REM)

One night, a Delta twin-engine puddle jumper was flying somewhere above New Jersey. There were five people on board: the pilot, Michael Jordan, Bill Gates, the Dali Lama, and a hippie. Suddenly, an illegal oxygen generator exploded loudly in the luggage compartment, and the passenger cabin began to fill with smoke. The cockpit door opened, and the pilot burst into the compartment.

"Gentlemen," he began, "I have good news and bad news. The bad news is that we're about to crash in New Jersey. The good news is that there are four parachutes, and I have one of them!" With that, the pilot threw open the door and jumped from the plane.

Michael Jordan was on his feet in a flash. "Gentlemen," he said, "I am the world's greatest athlete. The world needs great athletes. I think the world's greatest athlete should have a parachute!" With these words, he grabbed one of the remaining parachutes, and hurtled through the door and into the night.

Bill Gates rose and said, "Gentlemen, I am the world's smartest man. The world needs smart men. I think the world's smartest man should have a parachute, too." He grabbed one, and out he jumped.

The Dali Lama and the hippie looked at one another. Finally, the Dali Lama spoke. "My son," he said, "I have lived a satisfying life and have known the bliss of True Enlightenment. You have your life ahead of you; you take a parachute, and I will go down with the plane."

The hippie smiled slowly and said, "Hey, don't worry, dude. The world's smartest man just jumped out wearing my backpack."

No, Windows is not a virus. Here's what viruses do:

They replicate quickly Okay, Windows does that

Viruses use up valuable system resources, slowing down the system as they do so okay, Windows does that

Viruses will, from time to time, trash your hard disk Okay, Windows does that, too

Viruses are usually carried, unknown to the user, along with valuable programs and systems Sigh... Windows does that, too

Viruses will occasionally make the user suspect their system is too slow (see 2) and the user will buy new hardware Yup, that's with Windows, too

Until now it seems Windows is a virus but there are fundamental differences: Viruses are well supported by their authors, are running on most systems, their program code is fast, compact and efficient and they tend to become more sophisticated as they mature

So, Windows is *not* a virus

Did you hear about the Microsoft Windows programmer who died?
He found himself in front of a committee that decides whether you go to Heaven or Hell.

The committee told the programmer he had some say in the matter and asked him if he wanted
to see Heaven and Hell before stating his preference.

"Sure," he said, so an angel took him to a place with a sunny beach, volleyball, and rock and
roll, where everyone was having a great time.

"Wow!" he exclaimed. "Heaven is great!"

"Wrong," said the angel. "That was Hell. Want to see Heaven?"

"Sure!" So the angel took him to another place. Here a bunch of people were sitting in a park
playing bingo and feeding dead pigeons.

"This is Heaven?" asked the Windows programmer.

"Yup," said the angel.

"Then I'll take Hell." Instantly he found himself plunged up to his neck in red-hot lava, with the hosts of the damned in torment around him. "Where's the beach? The music? The volleyball?" he screamed frantically to the angel.

"That was the demo," she replied as she vanished.

The president of Lotus walks into an elevator with a gun in his hand.
In the elevator are: Sadam Hussein, Timmothy McVeigh, and Bill Gates,
but there are only two bullets in the gun!

Who does he shoot???

Gates, twice to be sure.

Sunday, October 08, 2006

In an effort to determine the department which produces the most
intelligent graduates, a university president threw down a challenge to the
deans of the schools of science, engineering, and business. He asked each
to send him their brightest student from the current graduating class to
compete in solving a simple problem.

The next day, three students showed up at the university president's
office. He explained the problem as follows:

"I want you to determine the height of the university's newest residence
tower. I am giving each of you only three tools to work with: a stop
watch, a ruler and a ball of string. You are each to devise your own
solution to the problem and report back here by the end of the day.
Whoever has the most accurate answer wins."

The three students set off to the new residence tower. The science manor
went immediately to the roof of the building and dropped the ruler over the
side, carefully timing its descent with the stop watch. Factoring in the
aerodynamic properties of the ruler, the science major calculated the
height of the building within six inches.

Next the engineering major, still panting from running up all the stairs to
the roof, took his turn. He tied the stop watch onto the end of the ball
of string and gently lowered it until it just touched the ground. Reeling
the string back up, he measured it carefully with the ruler, making
adjustments for its elasticity under the weight of the stop watch, and
calculated the height of the building within two inches.

At that point, the science major turns to the engineering major and asks,
"What happened to the kid from the business school? I thought he was right
behind us."

They head back down to the building lobby and there, sitting comfortably in
an upholstered chair, is the business major.

"So, what are you going to do?" asks the science major.

"Oh, I'm done," says the business major, unfolding a piece of paper on
which is written the height of the building expressed to the last
one-eighth inch.

"How did you do that?" asks the engineering major.

"Simple," replies the student from the business school. "While you guys
were screwing around up on the roof, I went down to the basement and found
the building superintendant. I told him I'd give him a nice stop watch if
he'd let me look through the architectural plans for the building."


From: oldbear#NoSpam.arctos.com (The Old Bear)

A mathematician, an engineer, and a physicist are being interviewed for a
job. In each case, the interview goes along famously until the last
question is asked: "How much is one plus one?"

Each of them suspects a trap, and is hesitant to answer.

The mathematician thinks for a moment, and says "I'm not sure, but
I think it converges".

The physicist says "I'm not sure, but I think it's on the order of one"

The engineer gets up, closes the door to the office, and says "How much
do you want it to be?".

Saturday, October 07, 2006

The Tao of Programming

Book 1 - The Silent Void

Thus spake the master programmer:

``When you have learned to snatch the error code from the trap frame, it will be time for you to leave.''

1.1

Something mysterious is formed, born in the silent void. Waiting alone and unmoving, it is at once still and yet in constant motion. It is the source of all programs. I do not know its name, so I will call it the Tao of Programming.

If the Tao is great, then the operating system is great. If the operating system is great, then the compiler is great. If the compiler is great, then the application is great. The user is pleased and there exists harmony in the world.

The Tao of Programming flows far away and returns on the wind of morning.

1.2

The Tao gave birth to machine language. Machine language gave birth to the assembler.

The assembler gave birth to the compiler. Now there are ten thousand languages.

Each language has its purpose, however humble. Each language expresses the Yin and Yang of software. Each language has its place within the Tao.

But do not program in COBOL if you can avoid it.

1.3

In the beginning was the Tao. The Tao gave birth to Space and Time. Therefore Space and Time are Yin and Yang of programming.

Programmers that do not comprehend the Tao are always running out of time and space for their programs. Programmers that comprehend the Tao always have enough time and space to accomplish their goals.

How could it be otherwise?

1.4

The wise programmer is told about Tao and follows it. The average programmer is told about Tao and searches for it. The foolish programmer is told about Tao and laughs at it.

If it were not for laughter, there would be no Tao.

The highest sounds are hardest to hear.
Going forward is a way to retreat.
Great talent shows itself late in life.
Even a perfect program still has bugs.


Book 2 - The Ancient Masters

Thus spake the master programmer:

``After three days without programming, life becomes meaningless.''

2.1

The programmers of old were mysterious and profound. We cannot fathom their thoughts, so all we do is describe their appearance.

Aware, like a fox crossing the water. Alert, like a general on the battlefield. Kind, like a hostess greeting her guests. Simple, like uncarved blocks of wood. Opaque, like black pools in darkened caves.

Who can tell the secrets of their hearts and minds?

The answer exists only in Tao.

2.2

Grand Master Turing once dreamed that he was a machine. When he awoke he exclaimed:

``I don't know whether I am Turing dreaming that I am a machine, or a machine dreaming that I am Turing!''

2.3

A programmer from a very large computer company went to a software conference and then returned to report to his manager, saying: ``What sort of programmers work for other companies? They behaved badly and were unconcerned with appearances. Their hair was long and unkempt and their clothes were wrinkled and old. They crashed our hospitality suite and they made rude noises during my presentation.''

The manager said: ``I should have never sent you to the conference. Those programmers live beyond the physical world. They consider life absurd, an accidental coincidence. They come and go without knowing limitations. Without a care, they live only for their programs. Why should they bother with social conventions?

``They are alive within the Tao.''

2.4

A novice asked the Master: ``Here is a programmer that never designs, documents or tests his programs. Yet all who know him consider him one of the best programmers in the world. Why is this?''

The Master replies: ``That programmer has mastered the Tao. He has gone beyond the need for design; he does not become angry when the system crashes, but accepts the universe without concern. He has gone beyond the need for documentation; he no longer cares if anyone else sees his code. He has gone beyond the need for testing; each of his programs are perfect within themselves, serene and elegant, their purpose self-evident. Truly, he has entered the mystery of Tao.''


Book 3 - Design

Thus spake the master programmer:

``When the program is being tested, it is too late to make design changes.''

3.1

There once was a man who went to a computer trade show. Each day as he entered, the man told the guard at the door:

``I am a great thief, renowned for my feats of shoplifting. Be forewarned, for this trade show shall not escape unplundered.''

This speech disturbed the guard greatly, because there were millions of dollars of computer equipment inside, so he watched the man carefully. But the man merely wandered from booth to booth, humming quietly to himself.

When the man left, the guard took him aside and searched his clothes, but nothing was to be found.

On the next day of the trade show, the man returned and chided the guard saying: ``I escaped with a vast booty yesterday, but today will be even better.'' So the guard watched him ever more closely, but to no avail.

On the final day of the trade show, the guard could restrain his curiosity no longer. ``Sir Thief,'' he said, ``I am so perplexed, I cannot live in peace. Please enlighten me. What is it that you are stealing?''

The man smiled. ``I am stealing ideas,'' he said.

3.2

There once was a master programmer who wrote unstructured programs. A novice programmer, seeking to imitate him, also began to write unstructured programs. When the novice asked the master to evaluate his progress, the master criticized him for writing unstructured programs, saying, ``What is appropriate for the master is not appropriate for the novice. You must understand the Tao before transcending structure.''

3.3

There was once a programmer who was attached to the court of the warlord of Wu. The warlord asked the programmer: ``Which is easier to design: an accounting package or an operating system?''

``An operating system,'' replied the programmer.

The warlord uttered an exclamation of disbelief. ``Surely an accounting package is trivial next to the complexity of an operating system,'' he said.

``Not so,'' said the programmer, ``when designing an accounting package, the programmer operates as a mediator between people having different ideas: how it must operate, how its reports must appear, and how it must conform to the tax laws. By contrast, an operating system is not limited by outside appearances. When designing an operating system, the programmer seeks the simplest harmony between machine and ideas. This is why an operating system is easier to design.''

The warlord of Wu nodded and smiled. ``That is all good and well, but which is easier to debug?''

The programmer made no reply.

3.4

A manager went to the master programmer and showed him the requirements document for a new application. The manager asked the master: ``How long will it take to design this system if I assign five programmers to it?''

``It will take one year,'' said the master promptly.

``But we need this system immediately or even sooner! How long will it take if I assign ten programmers to it?''

The master programmer frowned. ``In that case, it will take two years.''

``And what if I assign a hundred programmers to it?''

The master programmer shrugged. ``Then the design will never be completed,'' he said.


Book 4 - Coding

Thus spake the master programmer:

``A well-written program is its own heaven; a poorly-written program is its own hell.''

4.1

A program should be light and agile, its subroutines connected like a string of pearls. The spirit and intent of the program should be retained throughout. There should be neither too little or too much, neither needless loops nor useless variables, neither lack of structure nor overwhelming rigidity.

A program should follow the `Law of Least Astonishment'. What is this law? It is simply that the program should always respond to the user in the way that astonishes him least.

A program, no matter how complex, should act as a single unit. The program should be directed by the logic within rather than by outward appearances.

If the program fails in these requirements, it will be in a state of disorder and confusion. The only way to correct this is to rewrite the program.

4.2

A novice asked the master: ``I have a program that sometime runs and sometimes aborts. I have followed the rules of programming, yet I am totally baffled. What is the reason for this?''

The master replied: ``You are confused because you do not understand Tao. Only a fool expects rational behavior from his fellow humans. Why do you expect it from a machine that humans have constructed? Computers simulate determinism; only Tao is perfect.

``The rules of programming are transitory; only Tao is eternal. Therefore you must contemplate Tao before you receive enlightenment.''

``But how will I know when I have received enlightenment?'' asked the novice.

``Your program will then run correctly,'' replied the master.

4.3

A master was explaining the nature of Tao of to one of his novices. ``The Tao is embodied in all software - regardless of how insignificant,'' said the master.

``Is the Tao in a hand-held calculator?'' asked the novice.

``It is,'' came the reply.

``Is the Tao in a video game?'' continued the novice.

``It is even in a video game,'' said the master.

``And is the Tao in the DOS for a personal computer?''

The master coughed and shifted his position slightly. ``The lesson is over for today,'' he said.

4.4

Prince Wang's programmer was coding software. His fingers danced upon the keyboard. The program compiled without an error message, and the program ran like a gentle wind.

``Excellent!'' the Prince exclaimed, ``Your technique is faultless!''

``Technique?'' said the programmer turning from his terminal, ``What I follow is Tao - beyond all techniques! When I first began to program I would see before me the whole problem in one mass. After three years I no longer saw this mass. Instead, I used subroutines. But now I see nothing. My whole being exists in a formless void. My senses are idle. My spirit, free to work without plan, follows its own instinct. In short, my program writes itself. True, sometimes there are difficult problems. I see them coming, I slow down, I watch silently. Then I change a single line of code and the difficulties vanish like puffs of idle smoke. I then compile the program. I sit still and let the joy of the work fill my being. I close my eyes for a moment and then log off.''

Prince Wang said, ``Would that all of my programmers were as wise!''


Book 5 - Maintenance

Thus spake the master programmer:

``Though a program be but three lines long, someday it will have to be maintained.''

5.1

A well-used door needs no oil on its hinges.
A swift-flowing stream does not grow stagnant.
Neither sound nor thoughts can travel through a vacuum.
Software rots if not used.

These are great mysteries.

5.2

A manager asked a programmer how long it would take him to finish the program on which he was working. ``It will be finished tomorrow,'' the programmer promptly replied.

``I think you are being unrealistic,'' said the manager, ``Truthfully, how long will it take?''

The programmer thought for a moment. ``I have some features that I wish to add. This will take at least two weeks,'' he finally said.

``Even that is too much to expect,'' insisted the manager, ``I will be satisfied if you simply tell me when the program is complete.''

The programmer agreed to this.

Several years later, the manager retired. On the way to his retirement luncheon, he discovered the programmer asleep at his terminal. He had been programming all night.

5.3

A novice programmer was once assigned to code a simple financial package.

The novice worked furiously for many days, but when his master reviewed his program, he discovered that it contained a screen editor, a set of generalized graphics routines, an artificial intelligence interface, but not the slightest mention of anything financial.

When the master asked about this, the novice became indignant. ``Don't be so impatient,'' he said, ``I'll put in the financial stuff eventually.''

5.4

Does a good farmer neglect a crop he has planted?
Does a good teacher overlook even the most humble student?
Does a good father allow a single child to starve?
Does a good programmer refuse to maintain his code?


Book 6 - Management

Thus spake the master programmer:

``Let the programmers be many and the managers few - then all will be productive.''

6.1

When managers hold endless meetings, the programmers write games. When accountants talk of quarterly profits, the development budget is about to be cut. When senior scientists talk blue sky, the clouds are about to roll in.

Truly, this is not the Tao of Programming.

When managers make commitments, game programs are ignored. When accountants make long-range plans, harmony and order are about to be restored. When senior scientists address the problems at hand, the problems will soon be solved.

Truly, this is the Tao of Programming.

6.2

Why are programmers non-productive?
Because their time is wasted in meetings.

Why are programmers rebellious?
Because the management interferes too much.

Why are the programmers resigning one by one?
Because they are burnt out.

Having worked for poor management, they no longer value their jobs.

6.3

A manager was about to be fired, but a programmer who worked for him invented a new program that became popular and sold well. As a result, the manager retained his job.

The manager tried to give the programmer a bonus, but the programmer refused it, saying, ``I wrote the program because I thought it was an interesting concept, and thus I expect no reward.''

The manager upon hearing this remarked, ``This programmer, though he holds a position of small esteem, understands well the proper duty of an employee. Let us promote him to the exalted position of management consultant!''

But when told this, the programmer once more refused, saying, ``I exist so that I can program. If I were promoted, I would do nothing but waste everyone's time. Can I go now? I have a program that I'm working on."

6.4

A manager went to his programmers and told them: ``As regards to your work hours: you are going to have to come in at nine in the morning and leave at five in the afternoon.'' At this, all of them became angry and several resigned on the spot.

So the manager said: ``All right, in that case you may set your own working hours, as long as you finish your projects on schedule.'' The programmers, now satisfied, began to come in at noon and work to the wee hours of the morning.


Book 7 - Corporate Wisdom

Thus spake the master programmer:

``You can demonstrate a program for a corporate executive, but you can't make him computer literate.''

7.1

A novice asked the master: ``In the east there is a great tree-structure that men call `Corporate Headquarters'. It is bloated out of shape with vice presidents and accountants. It issues a multitude of memos, each saying `Go, Hence!' or `Go, Hither!' and nobody knows what is meant. Every year new names are put onto the branches, but all to no avail. How can such an unnatural entity be?"

The master replied: ``You perceive this immense structure and are disturbed that it has no rational purpose. Can you not take amusement from its endless gyrations? Do you not enjoy the untroubled ease of programming beneath its sheltering branches? Why are you bothered by its uselessness?''

7.2

In the east there is a shark which is larger than all other fish. It changes into a bird whose wings are like clouds filling the sky. When this bird moves across the land, it brings a message from Corporate Headquarters. This message it drops into the midst of the programmers, like a seagull making its mark upon the beach. Then the bird mounts on the wind and, with the blue sky at its back, returns home.

The novice programmer stares in wonder at the bird, for he understands it not. The average programmer dreads the coming of the bird, for he fears its message. The master programmer continues to work at his terminal, for he does not know that the bird has come and gone.

7.3

The Magician of the Ivory Tower brought his latest invention for the master programmer to examine. The magician wheeled a large black box into the master's office while the master waited in silence.

``This is an integrated, distributed, general-purpose workstation,'' began the magician, ``ergonomically designed with a proprietary operating system, sixth generation languages, and multiple state of the art user interfaces. It took my assistants several hundred man years to construct. Is it not amazing?''

The master raised his eyebrows slightly. ``It is indeed amazing,'' he said.

``Corporate Headquarters has commanded,'' continued the magician, ``that everyone use this workstation as a platform for new programs. Do you agree to this?''

``Certainly,'' replied the master, ``I will have it transported to the data center immediately!'' And the magician returned to his tower, well pleased.

Several days later, a novice wandered into the office of the master programmer and said, ``I cannot find the listing for my new program. Do you know where it might be?''

``Yes,'' replied the master, ``the listings are stacked on the platform in the data center.''

7.4

The master programmer moves from program to program without fear. No change in management can harm him. He will not be fired, even if the project is cancelled. Why is this? He is filled with Tao.


Book 8 - Hardware and Software

Thus spake the master programmer:

``Without the wind, the grass does not move. Without software, hardware is useless.''

8.1

A novice asked the master: ``I perceive that one computer company is much larger than all others. It towers above its competition like a giant among dwarfs. Any one of its divisions could comprise an entire business. Why is this so?''

The master replied, ``Why do you ask such foolish questions? That company is large because it is large. If it only made hardware, nobody would buy it. If it only made software, nobody would use it. If it only maintained systems, people would treat it like a servant. But because it combines all of these things, people think it one of the gods! By not seeking to strive, it conquers without effort.''

8.2

A master programmer passed a novice programmer one day. The master noted the novice's preoccupation with a hand-held computer game. ``Excuse me,'' he said, ``may I examine it?''

The novice bolted to attention and handed the device to the master. ``I see that the device claims to have three levels of play: Easy, Medium, and Hard,'' said the master. ``Yet every such device has another level of play, where the device seeks not to conquer the human, nor to be conquered by the human.''

``Pray, great master,'' implored the novice, ``how does one find this mysterious setting?''

The master dropped the device to the ground and crushed it underfoot. And suddenly the novice was enlightened.

8.3

There was once a programmer who worked upon microprocessors. ``Look at how well off I am here,'' he said to a mainframe programmer who came to visit, ``I have my own operating system and file storage device. I do not have to share my resources with anyone. The software is self- consistent and easy-to-use. Why do you not quit your present job and join me here?''

The mainframe programmer then began to describe his system to his friend, saying ``The mainframe sits like an ancient sage meditating in the midst of the data center. Its disk drives lie end-to-end like a great ocean of machinery. The software is as multifaceted as a diamond, and as convoluted as a primeval jungle. The programs, each unique, move through the system like a swift-flowing river. That is why I am happy where I am.''

The microcomputer programmer, upon hearing this, fell silent. But the two programmers remained friends until the end of their days.

8.4

Hardware met Software on the road to Changtse. Software said: ``You are Yin and I am Yang. If we travel together we will become famous and earn vast sums of money.'' And so the set forth together, thinking to conquer the world.

Presently they met Firmware, who was dressed in tattered rags and hobbled along propped on a thorny stick. Firmware said to them: ``The Tao lies beyond Yin and Yang. It is silent and still as a pool of water. It does not seek fame, therefore nobody knows its presence. It does not seek fortune, for it is complete within itself. It exists beyond space and time.''

Software and Hardware, ashamed, returned to their homes.

Book 9 - Epilogue

Thus spake the master programmer:

``It is time for you to leave.''

Their rumpled clothes, their unwashed and unshaven faces, and their uncombed hair all testify that they are oblivious to their bodies and to the world in which they move. These are computer bums, compulsive programmers. (Joseph Weizenbaum 1976)

Anyone who has attended a USENIX conference in a fancy hotel can tell you that a sentence like "You're one of those computer people, aren't you?" is roughly equivalent to "Look, another amazingly mobile form of slime mold!" in the mouth of a hotel cocktail waitress. (Elizabeth Zwicky)

Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning. (Rich Cook)

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)

No delusion is greater than the notion that method of industry can make up for lack of mother-wit, either in science or practical life. (Thomas Huxley)

He who joyfully marches to music in rank and file has already earned my contempt. He has been given a large brain by mistake, since for him the spinal cord would suffice. (Albert Einstein)

Those people who think they know everything are a great annoyance to those of us who do. (Isaac Asimov)

There is a difference between eating a varied diet and chowing down on a cup of lard and sugar once a day. Programmers know this instinctively: they balance their daily menu among the four major food groups: caffeine, sugar, grease, and salt. (John Walker)

Let's face the obvious: yesterday we were nerds, today we're the cognitive elite. Let's conquer. (Chester G Edwards)

What we do is never understood, but only praised and blamed. (Friedrich Nietzsche)

Be nice to nerds. Chances are you'll end up working for one. (Bill Gates)

I cannot agree with those who rank modesty among the virtues. To the logician all things should be seen exactly as they are, and to underestimate one's self is as much a departure from truth as to exaggerate one's own powers. ("Sherlock Holmes")

The trouble with the world is that the stupid are cocksure and the intelligent full of doubt. (Bertrand Russell)

The best way to prepare [to be a programmer] is to write programs, and to study great programs that other people have written. In my case, I went to the garbage cans at the Computer Science Center and fished out listings of their operating system. (Bill Gates)

You can get into a habit of thought in which you enjoy making fun of all those other people who don’t see things as clearly as you do. We have to guard carefully against it. (Carl Sagan)

Sometimes the best engineers come in bodies that can't talk. (Nolan Bushnell)

To many managers, getting rid of the arrogant, undisciplined, over-paid, technology-obsessed, improperly-dressed etc. programmers would appear to be a significant added benefit. (Bjarne Stroustrup)

Mostly, when you see programmers, they aren't doing anything. One of the attractive things about programmers is that you cannot tell whether or not they are working simply by looking at them. Very often they're sitting there seemingly drinking coffee and gossiping, or just staring into space. What the programmer is trying to do is get a handle on all the individual and unrelated ideas that are scampering around in his head. (Charles M Strauss)

Optimism is an occupational hazard of programming: feedback is the treament. (Kent Beck)

I think it is inevitable that people program poorly. Training will not substantially help matters. We have to learn to live with it. (Alan Perlis)

Perhaps when a man has special knowledge and special powers like my own, it rather encourages him to seek a complex explanation when a simpler one is at hand. ("Sherlock Holmes")

Beware of programmers who carry screwdrivers. (Leonard Brandwein)

The only thing more frightening than a programmer with a screwdriver or a hardware engineer with a program is a user with a pair of wire cutters and the root password. (Elizabeth Zwicky)

Insanity is often the logic of an accurate mind over-taxed. (Oliver Wendell Holmes)

The world is a tragedy to those who feel, but a comedy to those who think. (Horace Walpole)

The computer programmer is a creator of universes for which he alone is responsible. Universes of virtually unlimited complexity can be created in the form of computer programs. (Joseph Weizenbaum)

Suffusing [the technology] culture is the belief among programmers and engineers that they're working on the Next Big Thing — projects that change the world, not just deliver a more absorbent diaper or crunchier breakfast cereal. (Joseph Menn)

Being a social outcast helps you stay concentrated on the really important things, like thinking and hacking. (Eric Raymond)

We shall do a much better programming job, provided we approach the task with a full appreciation of its tremendous difficulty, provided that we respect the intrinsic limitations of the human mind and approach the task as very humble programmers. (Alan Turing)

People that think logically are a nice contrast to the real world. (Matt Biershbach)

The trouble with programmers is that you can never tell what a programmer is doing until it's too late. (Seymour Cray)

Fast, fat computers breed slow, lazy programmers. (Robert Hummel)

That's what's cool about working with computers. They don't argue, they remember everything and they don't drink all your beer. (Paul Leary)

Controlling complexity is the essence of computer programming. (Brian Kernigan)

For a long time it puzzled me how something so expensive, so leading edge, could be so useless, and then it occurred to me that a computer is a stupid machine with the ability to do incredibly smart things, while computer programmers are smart people with the ability to do incredibly stupid things. They are, in short, a perfect match. (Bill Bryson)

That tendency to err that programmers have been noticed to share with other human beings has often been treated as though it were an awkwardness attendant upon programming's adolescence, which like acne would disappear with the craft's coming of age. It has proved otherwise. (Mark Halpern)

Computer geek: an asocial, malodorous, pasty-faced monomaniac with all the personality of a cheese-grater. (Jargon Files)

Long hair minimizes the need for barbers; socks can be done without; one leather jacket solves the coat problem for many years; suspenders are superfluous. (Albert Einstein)

If your project doesn't work, look for the part that you didn't think was important. (Arthur Bloch)

For the time being, programming is a consumer job, assembly line coding is the norm, and what little exciting stuff is being performed is not going to make it compared to the mass-marketed cräp sold by those who think they can surf on the previous half-century's worth of inventions forever. (Eric Naggum)

A great lathe operator commands several times the wage of an average lathe operator, but a great writer of software code is worth 10,000 times the price of an average software writer. (Bill Gates)

The principle objective of software testing is to give confidence in the software. (P D Coward)

In 1971 when I joined the staff of the MIT Artificial Intelligence lab, all of us who helped develop the operating system software, we called ourselves hackers. (Richard Stallman)

Burn-out in a developer is the death of the artistic self, a perverse maturation, a shrinking with age, a withering with experience. (Jim McCarthy)

Programming is like sex, one mistake and you have to support it for the rest of your life. (Michael Sinz)

Lovers of problem solving, they are apt to play chess at lunch or doodle in algebra over cocktails, speak an esoteric language that some suspect is just their way of mystifying outsiders. Deeply concerned about logic and sensitive to its breakdown in everyday life, they often annoy friends by asking them to rephrase their questions more logically. (Time Magazine in 1965)

A mathematician is a machine for turning coffee into theorems. (Paul Erdös)

Applicants must also have extensive knowledge of UNIX, although they should have sufficiently good programming taste to not consider this an achievement. (MIT job advertisement)

I just hate to be pushed around by some fücking machine. (Ken Thompson)

The programmer, like the poet, works only slightly removed from pure thought-stuff. He builds his castles in the air, from air, creating by exertion of the imagination. Few media of creation are so flexible, so easy to polish and rework, so readily capable of realizing grand conceptual structures. (Frederick P Brooks Jr)

Poor management can increase software costs more rapidly than any other factor. (Barry Boehm)

A programmer is a person who passes as an exacting expert on the basis of being able to turn out, after innumerable punching, an infinite series of incomprehensive answers calculated with micrometric precisions from vague assumptions based on debatable figures taken from inconclusive documents and carried out on instruments of problematical accuracy by persons of dubious reliability and questionable mentality for the avowed purpose of annoying and confounding a hopelessly defenseless department that was unfortunate enough to ask for the information in the first place. (IEEE Grid newsmagazine)

Eggheads unite! You have nothing to lose but your yolks. (Adlai Stevenson)

Computer science education cannot make anybody an expert programmer any more than studying brushes and pigment can make somebody an expert painter. (Eric Raymond)

A plumber has around eight years training in the US. That's to fix my goddamn toilet. Yet, how much training do you have to do to be allowed to build software for a plane carrying hundreds of people? (James Coplien)

An organisation that treats its programmers as morons will soon have programmers that are willing and able to act like morons only. (Bjarne Stroustrup)

You needed a cool name to put on a T-shirt, and you needed a T-shirt to give to people. It was part of getting people excited enough to work 70 hours a week. (Erich Ringewald of Apple)

Programmers are like artists. Writing software that just gets put away feels like intellectual masturbation. (Bruce Perens)

A hacker on a roll may be able to produce, in a period of a few months, something that a small development group (say, 7-8 people) would have a hard time getting together over a year. IBM used to report that certain programmers might be as much as 100 times as productive as other workers, or more. (Peter Seebach)

Microsoft's only factory asset is the human imagination. (Bill Gates)

Despite their reputa­tion for thick-headedness or stubbornness, it is important for technicians to see themselves as superior people who can easily adapt to change. (Taiichi Ohno)

The programmer, who needs clarity, who must talk all day to a machine that demands declarations, hunkers down into a low-grade annoyance. It is here that the stereotype of the programmer, sitting in a dim room, growling from behind Coke cans, has its origins. The disorder of the desk, the floor; the yellow Post-It notes everywhere; the whiteboards covered with scrawl: all this is the outward manifestation of the messiness of human thought. The messiness cannot go into the program; it piles up around the programmer. (Ellen Ullman)

See, you not only have to be a good coder to create a system like Linux, you have to be a sneaky bastard, too. (Linus Torvalds)

Pessimists, we're told, look at a glass containing 50% air and 50% water and see it as half empty. Optimists, in contrast, see it as half full. Engineers, of course, understand the glass is twice as big as it needs to be. (Bob Lewis)

Use systematic doubt and question everything.
Learn the difference between rational proof and persuasion.
Be precise in your use of words.
Expect precision from others.
(Pierre Abelard)

The Laws of Coding

I. Any given program, when running, is obsolete.

II. Any given program costs more and takes longer.

III. If a program is useful, it will have to be changed.

IV. If a program is useless, it will have to be documented.

V. Any program will expand to fill available memory.

VI. The value of a program is proportional to the weight of its output.

VII. Program complexity grows until it exceeds the capabilities of the programmer who must maintain it.

VIII. Any non-trivial program contains at least one bug.

IX. Undetectable errors are infinite in variety, in contrast to detectable errors, which by definition are limited.

X. Adding manpower to a late software project makes it later.

Lubarsky's Law of Cybernetic Entomology: There's always one more bug.

Shaw's Principle: Build a system that even a fool can use, and only a fool will want to use it.

Woltman's Law: Never program and drink beer at the same time.

Gallois' Revelation: If you put tomfoolery into a computer, nothing comes out but tomfoolery. But this tomfoolery, having passed through a very expensive machine, is somehow enobled, and no one dares to criticize it.

Abort, Retry, Ignore

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 bed sheets, still I sat there doing spreadsheets.
Having reached the bottom line I took a floppy from the drawer,
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.
But the silence was unbroken, and the stillness gave no token.
"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 impish 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 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, and pressed again, but twice as hard.
I pleaded with the cursed machine: I begged and cried and then I swore.
Now in mighty desperation, trying random combinations,
Still there came the incantation, just as senseless as before.
Cursor blinking, angrily winking, blinking 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 a 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 go.
What demonic nether world us wrought where lost data will be stored,
Beyond the reach of mortal souls, beyond the ether, into black holes?
But sure as there's C, Pascal, Lotus, Ashton-Tate and more,
You will be one day be left to wander, lost on some Plutonian shore,
Pleading, "Abort, Retry, Ignore?"

Author: cool4u2view@hotmail.com (Cool4u2view)

"It's 5:50 a.m., Do you know where your stack pointer is?"

Pascal Coder — Y2K-burnout programmer
"I keep having this dream that I live past 100, but my Medicare gets messed up because the computers have only two digits for a person's age. They think I'm a 0-year-old and prosecute me for fraud."

Our program,

Who art in memory,

"Hello" be thy name.

Thy spreadsheets be formatted,

thy code be downloaded,

from disk

as it will be in memory.

Give us on screen

our data spreads,

and forgive us our typos,

as we forgive those who ask that we document.

Lead us not into frustration,

but deliver us from glitches.

For thine is the algorithm,

the application,

and the solution,

looping forever and ever.

Return.

Q: How many Pentium owners does it take to change a light bulb?

A: 0.99987, but that's close enough for most applications.

Q: How many Microsoft engineers does it take to change a light bulb?

A: It burned out? You must be using a non-standard socket.

Q: How many Microsoft engineers does it take to change a light bulb?

A: None, they merely change the standard to darkness and then they upgrade the customers.

Q: How many Apple employees does it take to screw in a light bulb?

A: Ten - one to screw it in, two to design the icon, four to design the T-shirts, and three to come up with the code name for the project.

Q: How many C++ programmers does it take to change a light bulb?

A: "You're still thinking procedurally! A properly designed light bulb object would inherit a change method from a generic light bulb class!"

How many software engineers does it take to change a light bulb?
  • None. It's a hardware problem. (heard that one a few times)
  • Just one. But it takes them all night. And when they're done, the washing machine doesn't work right.
  • None. "We'll document it in the manual."
  • 1.000000001.
  • Two. One always leaves in the middle of the project.
  • Four. One to design the change, one to implement it, one to document it, and one to maintain it afterwards.
  • Four, plus one senior analyst to manage the project, one technical writer to correct the spelling and grammar of the one who documented it, one light bulb librarian, a sales-force of at least five to drum up enough users who want to turn the light on, 274 users to burn out the new bulb, at which point we go to tender for another light bulb change...
  • Five. Two to write the specification program, one to screw it in, and two to explain why the project was late.
  • Only one, but she's not available till the year 2000.
  • "The change is 90% complete."
  • "It's hard to say. Each time we separate the bulb into its modules to do unit testing, it stops working."
  • Of course, as everyone knows, just five years ago all it took was a bunch of kids in a garage in Palo Alto to change a light bulb.

BASIC is to computer programming as "qwerty" is to typing.

Any sufficiently advanced bug is indistinguishable from a feature.

If you put garbage in a computer nothing comes out but garbage. But this garbage, having passed through a very expensive machine, is somehow enobled and none dare criticize it.

It is later than you think.

If a program is useful, it must be changed.
If a program is useless, it must be documented.

Your fault -- core dumped.

You still need the last file you removed.

How to program in "C"
---------------------
1] Use lots of global variables.
2] Give them cryptic names such as: X27, a_gcl, or Horace.
3] Put everything in one large .h file.
4] Implement the entire project at once.
5] Use macros and #defines to emulate Pascal.
6] Assume the compiler takes care of all the little details you didn't quite understand.

Programming is 10% science, 25% ingenuity and 65% getting the ingenuity to work with the science.

"Hardware: A product that if you play with it long enough, breaks."
"Software: A product that if you play with it long enough, it works."

As of next week, passwords will be entered in Morse code.

FORTRAN is not a language. It's a way of turning a multi-million dollar mainframe into a $50 programmable scientific calculator.

A bad random number generator: 1, 1, 1, 1, 1, 4.33e+67, 1, 1, 1

Remember the good old days, when CPU was singular?

System going down at 5 pm to install scheduler bug.

One picture is worth 128K words.

Science is to computer science as hydrodynamics is to plumbing.

Congratulations! You are the one-millionth user to log into our system.

Hardware: The parts of a computer system that can be kicked.

We don't really understand it, so we'll give it to the programmers.

You might have mail.

Computer interfaces and user interfaces are as different as night and 1.

The fortune '$ rm -r $HOME' could be extremely unsettling!!

Computers are a more fun way to do the same work you'd have to do without them.

Maybe Computer Science should be in the College of Theology.

The human mind ordinarily operates at only ten per cent of its capacity - the rest is overhead for the operating system.

If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilization.

A computer scientist is someone who fixes things that aren't broken.

And on the seventh day, God wrote documentation. (Docs stored in the Ark of the Covenant.)

To err is human; to really foul things up requires a computer.

Road to hell is paved with NAND gates.

Nice computers don't go down.

Trying to establish voice contact--please yell into keyboard.

Bug? That's not a bug, that's a feature.

Profanity is the one language all programmers know best.

The computer is mightier than the pen, the sword, and usually, the programmer.

I think I've got the hang of it now .... :w :q :wq :wq! ^d X exit X Q :quitbye CtrlAltDel ~~q :~q logout save/quit :!QUIT ^[zz ^[ZZZZZZ ^H ^@ ^L ^[c ^# ^E ^X ^I ^T ? help helpquit ^D ^d ^C ^c help exit ?Quit ?q

Never trust a computer you can't lift.

Base 8 is just like base 10, if you are missing two fingers.

Unprecedented performance: Nothing ever ran this slow before.

What this country needs is a good five-cent microcomputer.

Life would be so much easier if we could just look at the source code.

There is always one more bug.

The world will end in 5 minutes. Please log out.

PROGRAMMER--Red eyed, mumbling mammal capable of conversing with inanimate monsters.

To iterate is human; to recurse, divine.

Programming is an art form that fights back.

You are an insult to my intelligence! I demand that you log off immediately.

Disc space -- the final frontier!

Congratulations! You have now used up another 250 hours of CPU time.

Binary, adj.: Possessing the ability to have friends of both sexes.

After a number of decimal places, nobody gives a damn.

"If you were plowing a field, what would you rather use? 2 strong oxen or 1024 chickens?"
-Seymour Cray

Real Programmers don't comment their code. If it was hard to write, it should be hard to understand.

Systems programmers are the high priests of a low cult.

PASCAL is not a language. It was an experiment combining the flexibilty of C with that of a drug-crazed penguin. It is also the 'language' of choice of many CS professors who aren't up to handling REAL programming. Hence, it is not a language.

C is almost a real language. (see assembler) Even the name sounds like it's gone through an optimizing compiler. Get rid of all of those stupid brackets and we'll talk. (see LISP)

Person 1: How ya gonna do it?
Person 2: I'm Gonna PS/2 it!!!
Person 1: But that's only half a computer!
Person 2: That's ok! OS/2 is only half an operating system!

This program posts news to thousands of machines throughout the entire civilized world. Your message will cost the net hundreds if not thousands of dollars to send everywhere. Please be sure you know what you are doing.

This program posts news to billions of machines throughout the galaxy. Your message will cost the net enough to bankrupt your entire planet. As a result your species will be sold into slavery. Be sure you know what you are doing. Are you absolutely sure you want to do this? [yn] y

"Virtual" means never knowing where your next byte is coming from.

"Note to DOS users: UNIX is a lot more FUN" - Peter Norton

Any program that runs right is obsolete.

You know it is going to be a bad day when you forget your new password.

MIPS: Meaningless Indicator of Processor Speed.

The best way to accelerate an IBM is at 9.8 m/s/s.

DEBUGGING--Removing the needles from the haystack.

If at first you don't succeed, you must be a programmer.


How to debug a "C" program.
---------------------------
1] If at all possible, don't. Let someone else do it.
2] Change majors.
3] Insert/remove blank lines at random spots, re-compile, and excecute.
4] Throw holy water on the terminal.
5] Dial 911 and scream.
6] There is rumour that "printf" is useful, but this is probably unfounded.
7] Port everything to CP/M.
8] If it still doesn't work, re-write it in assembler. This won't fix the bug, but it will make sure no one else finds it and makes you look bad.


Computer programmers know how to use their hardware.

ASSEMBLER is a language. Any language that can take a half-dozen keystrokes and compile it down to one byte of code is all right in my books. Though for the REAL programmer, assembler is a waste of time. Why use a compiler when you can code directly into memory through a front panel.

System going down at 1:45 this afternoon for disk crashing.

Every woman's a 10. It just depends upon which base you're counting in.

Real Programmers use C since it's the easiest language to spell.

Futuristic: It will only run on a next generation supercomputer.

Real Programmers are surprised when the odometers in their cars don't turn from 99999 to A0000.

CChheecckk yyoouurr dduupplleexx sswwiittcchh..

BASIC is not a language. It's a plot to sucker poor unsuspecting consumers into believing that they should buy a computer because ANYONE can learn how to program.

You have junk mail.

Real Programmers don't use BASIC. In fact, *no* programmers use BASIC after reaching puberty.

"It's 5:50 a.m., Do you know where your stack pointer is?"

Computers are not intelligent. They only think they are.

LOGO is not a language. It's a way to simulate 'skid marks' made by turtles with serious bowel control problems.

If God had intended Man to program, we would be born with serial I/O ports.

recursion (re - cur' - zhun) n. 1. (see recursion)

There are two ways to write error-free programs; only the third one works.

You are connected t&%&ibp*l an error free line.

You never finish a program, you just stop working on it.

MS-DOS:
Maybe SomeDay an Operating System

MACINTOSH:
Machine Always Crashes - If Not The Operating System Hangs

IBM:
It's Better Manually

The Programmer Song

Of course I never wanted to be a Lumberjack; I wanted to be a

* * * P R O G R A M M E R * * *

...Writing line after line as they compile within the mighty CPU of the
CRAY-1; the giant CDC 7600, the 370, the mighty 68040...with my pocket
protector in my side pocket...we'd sing...sing...sing....

Oh, I'm a programmer and I'm O.K.
I work all night and I sleep all day

(chorus) He's a programmer and he's O.K.
He works all night and he sleeps all day

I type in code, I read my dumps, I take them to the lavatory,
On Wednesdays I finish debugging and write thirteen lines of C

(chorus) He types in code, he prints his dumps, he takes them to the
lavatory,
On Wednesdays he finishes debugging and writes thirteen lines
of C

He's a programmer and he's O.K.
He works all night and he sleeps all day

I type in code, I branch and jump, I press the reset button
I write modules in COBOL that don't do nothin'

(chorus) He types in code, he branches and jumps, he presses the
reset button
He writes modules in COBOL that don't do nothin'!?! Yeecch!

He's a programmer and he's O.K.
He works all night and he sleeps all day

I type in code, I spill tape reels, punchcards, and cola
I wish I'd been an ME, just like my dear mama!

(chorus) He types in code, he spills tape reels, punchcards,
and...COLA!?!


(chorus) He's a programmer and he's O.K.
He works all night and he sleeps all day....


-----------------------------------------------------------------------
The Unnatural Enquirer, (C) 1990 by Trygve Lode (tlode@nyx.cs.du.edu)
May be reproduced and distributed freely in unmodified form on a
noncommercial basis provided that this notice remains intact.
-----------------------------------------------------------------------

A software verifier read in the Bible that God protects all fools, and decided to test it empirically. He jumped out of the window and broke a leg. There he lies, writhing in pain, and happily thinks: "I never really considered myself a fool, but I never knew I was THAT clever!"

They say that the new super computer knows everything. A skeptical man came and asked the computer, "Where is my father?"

The computer bleeped for a short while, and then came back with "Your father is fishing in Michigan."

The skeptical man said triumphantly, "You see? I knew this was nonsense. My father has been dead for twenty years."

"No", replied the super computer immediately. "Your mother's husband has been dead for twenty years. Your father just landed a three pound trout."

Friday, October 06, 2006

Alice in UNIX Land

Alice was reading the message on her monitor and beginning to suspect that everything was not as it should be. "Program too big to fit in memory," it read.

"Curiouser and curiouser," she said, "All I did was load fourteen TSRs before starting my word processor. With four megabytes, I wish I could use more than 640K."

At that moment, a small white consultant ( a very white consultant) ran across the room. "Oh my coat and necktie," he said, "I'm going to be late for my appointment. And at one fifty an hour, too." Before Alice could say anything, he leaped into her monitor and disappeared behind her operating system.

Alice thought that she had never seen anyone leap into a monitor before; and certainly not go clean through the operating system. But then, she had been told that DOS was very shallow. Without hesitating a moment, she leaped in after him.

She found herself in a shiny corridor. Not knowing what else to do, she began walking. Turning a corner, she found herself facing two fat little men, each with an arm round the other's neck. One had "POS" embroidered on his collar, and the "NEG".

"I know," said Alice, "you two are a transistor."

"Yes," said Positive.

"Can you help me?" asked Alice.

"No," said Negative.

"I'm looking for a white consultant." Alice pointed in the direction she had been walking. "Did he go this way?" she asked.

"No," said Negative.

She pointed the other way.

"Yes," said Positive.

Soon Alice came upon a large brown table. The Consultant was there, as was an apparently Mad Hacker, and several creatures that Alice did not recognize. In one corner sat a Dormouse fast asleep. Over the table was a large sign that read "UNIX Conference."

Everyone except the Dormouse was holding a paper cup, from which they were sampling what appeared to be custard. "Wrong flavor," they all declared as they passed the cup the cup to the creature on their right and graciously took the one being offered on their left. Alice watched them repeat this ritual three or four times before she approached and sat down.

Immediately, a large toad leaped into her lap and looked at her as if it wanted to be loved. "Grep," it exclaimed.

"Don't mind him," explained the Mad Hacker. "He's just looking for some string."

"Nroff?" asked the Frog.

The Mad Hacker handed Alice a cup of custard-like substance and a spoon. "Here," he said, "what do you think of this?"

"It looks lovely," said Alice, "very sweet." She tried a spoonful. "Yuck!" she cried. "It's awful. What is it?"

"Oh just another graphic interface for UNIX," answered the Hacker.

Alice pointed to the sleeping Dormouse. "Who's he?" she asked.

"That's OS Too," explained the Hacker. "We've pretty much given up on waking him."

Just than, a large, Blue Elephant sitting next to the Dormouse stood up. "Ladies and gentlemen," he trumpeted pompously, "as the largest creature here, I feel impelled to state that we must take an Open Look at..."

A young Job Sparrow on the other side of the table stood up angrily. The Elephant noticed and changed his speech accordingly. "...what our NextStep will be."

Half the creatures bowed in respect while the other half snickered quietly to themselves. Just then, OS Too fell over in his sleep, crashing into the Elephant and taking him down with him. No one seemed a bit surprised.

"What we need," declared a Sun Bear as he lapped up custard with his long tongue, "is a flavor that goes down like the Macintosh."

Suddenly, the White Consultant began jumping up and down as his face got red. "No, no, no!" he screamed. "No one pays one fifty an hour to Macintosh consultants!"

"Awk," said the Frog.

"Users," explained the Sun Bear, "want an easy interface that they will not have to learn."

"Users?" cried the Consultant in disbelief. "Users?! You mean secretaries, accountants, architects. Manual laborers!"

"Well," responded the Sun Bear, "we've got to do something to make them want to switch to UNIX."

"Do you think," said a Woodpecker who had been busy making a hole in the table, "that there might be a problem with the name `UNIX?' I mean, it does sort of suggest being less than a man."

"Maybe we should try another name, " suggested the Job Sparrow, "like Brut, or Rambo."

"Penix," suggested a Penguin.

"Mount," said the Frog, "spawn."

Alice slapped him. "Nice?" he asked.

"But then again," suggested the Woodpecker, "what about the shrinkwrap issue?"

Suddenly, everyone leaped up and started dashing about, waving their hands in the air and screaming. Just as suddenly, they all sat down again.

"Now that that's settled," said the Woodpecker, "let's go back to tasting flavors."

Everyone at the table sampled a new cup of custard. "Wrong flavor," they all declared as they passed the cup to the creature on their right and took the one being offered on their left.

Totally confused, Alice got up and left. After she had been walking away, she heard a familiar voice behind her.

"Rem," it said, "edlin."

Alice turned and saw the Frog. She smiled. "Those are queer sounding words," she said, "but at least I know what they mean."

"Chkdsk," said the Frog.

-----By Lincoln Spector TEXAS COMPUTER CURRENTS SEPTEMBER 1989

Saturday, September 23, 2006

"At the beach, the True Hacker is the one drawing flow charts in the sand."

Hackers always take time off. There is always one way to notice a true Hacker. At a party, the true Hacker is the one in the corner talking about operating system security and how to get around it. At the beach, the True Hacker is the one drawing flow charts in the sand. At a football game, the true Hacker is the one comparing the football plays against a simulation printed on 11 by 14 fanfold paper.

Most Hackers work for the U.S. Government-- mainly the Department of Defense. You can see the best Hackers at the Jet Propulsion Laboratory in California.

What sort of environment does a Hacker function best in? No, not a heated room with a clean table and disks organized neatly, but they do best in rooms that have line-printed Snoopy calendars from the year 1969. They do not know how to cook, so they survive on Twinkies and coffee. Instead of wasting electricity for a heater, they spend it on air-conditioners to cool of their computer system in mid-January when the temperatures are below freezing. They wear layers and layers of clothing to keep the body heat in. When you see one of these people, instead of a Hacker coming into your mind, you think that he is about to go on a Polar expedition somewhere in the North Pole.

Hackers also like to hang around arcades. (This is also true for kids, little old ladies, and fighter pilots.) There, secluded in their

own environment, Hackers can talk freely on computer hints and short cuts while playing Pac-Man, or Joust.

All Hackers like Graphics. They like low-resolution, but prefer high-resolution the best. These graphics, such as Sine waves, rotating 3-D boxes, and little balloons, are confined to the limits of a systems capability. The older more experienced Hackers are the ones who are lucky enough to get to work on a VAX system, and maybe even a CRAY-1 SuperComputer. If they use these, they have only the limits of their imagination to stop them.

Most Middle School Hackers between the ages of 10 through 14, like to use computers to do reports on, and play games. Some of these younger generation Hackers have gotten into BASIC programming.

Some people, like to impress real Hackers by making them think that they know everything. There is a name for this kind of person. He is a Sub-Hacker (Intillectuous dumbfoundeth). For instance, you come up to them one day, and say,"Hey so-and-so what does BASIC stand for?" and you could sit there for days, and he would act like the answer was on the tip of his tongue, when it was probably in his toes. It is people like this that give Hackers a bad name.

Monday, September 18, 2006

The problem is at your end

One of Microsoft's finest technicans was drafted and sent to boot camp. At the rifle range, he was given some instruction, a rifle, and bullets. He fired several shots at the target. The report came from the target area that all attempts had completely missed the target.

The technician looked at his rifle, and then at the target. He looked at the rifle again, and then at the target again. He put his finger over the end of the rifle barrel and squeezed the trigger with his other hand. The end of his finger was blown off, whereupon he yelled toward the target area, "It's leaving here just fine, the trouble must be at your end!"

Types of computer viruses
Adam and Eve virus: Takes a couple of bytes out of your Apple.

Airline virus: You're in Dallas, but your data is in Singapore.

Anita Hill virus: Lies dormant for ten years.

Arnold Schwarzenegger virus: Terminates and stays resident. It'll be back.

AT&T virus: Every three minutes it tells you what great service you are getting.

The MCI virus: Every three minutes it reminds you that you're paying too much for the AT&T virus.

Bill Clinton virus: This virus mutates from region to region and we're not exactly sure what it does.

Bill Clinton virus: Promises to give equal time to all processes: 50% to poor, slow processes; 50% to middle-class processes, and 50% to rich ones. This virus protests your computer's involvement in other computer's affairs, even though it has been having one of its own for 12 years.

Congressional Virus: Overdraws your computer.

Congressional Virus: The computer locks up, screen splits erratically with a message appearing on each half blaming the other side for the problem.

Dan Quayle virus: Prevents your system from spawning any child processes without joining into a binary network.

Dan Quayle virus: Simplye addse ane ee toe everye worde youe typee..

David Duke virus: Makes your screen go completely white.

Elvis virus: Your computer gets fat, slow, and lazy and then self destructs, only to resurface at shopping malls and service stations across rural America.

Federal bureaucrat virus: Divides your hard disk into hundreds of little units, each of which do practically nothing, but all of which claim to be the most important part of the computer.

Freudian virus: Your computer becomes obsessed with marrying its own motherboard.

Gallup virus: Sixty percent of the PCs infected will lose 38 percent of their data 14 percent of the time (plus or minus a 3.5 percent margin of error).

George Bush virus: Doesn't do anything, but you can't get rid of it until November.

Government economist virus: Nothing works, but all your diagnostic software says everything is fine.

Jerry Brown virus: Blanks your screen and begins flashing an 800 number.

Madonna virus: If your computer gets this virus, lock up your dog!

Mario Cuomo virus: It would be a great virus, but it refuses to run.

Michael Jackson virus: Hard to identify because it is constantly altering its appearance. This virus won't harm your PC, but it will trash your car.

New World Order virus: probably harmless, but it makes a lot of people really mad just thinking about it.

Nike virus: Just Does It!

Ollie North virus: Turns your printer into a document shredder.

Oprah Winfrey virus: Your 200MB hard drive suddenly shrinks to 80MB, and then slowly expands back to 200MB.

Pat Buchanan virus: Shifts all your output to the extreme right of your screen.

Paul Revere virus: This revolutionary virus does not horse around. It warns you of impending hard disk attack---once if by LAN, twice if by C:.

Paul Tsongas virus: Pops up on December 25 and says, "I'm not Santa Claus."

PBS virus: Your PC stops every few minutes to ask for money.

Politically correct virus: Never calls itself a "virus", but instead refers to itself as an "electronic microorganism".

Richard Nixon virus: Also known as the "Tricky Dick Virus", you can wipe it out but it always makes a comeback.

Right To Life virus: Won't allow you to delete a file, regardless of how old it is. If you attempt to erase a file, it requires you to first see a counselor about possible alternatives.

Ross Perot virus: Activates every component in your system, just before the whole thing quits.

Ted Kennedy virus: Crashes your computer but denies it ever happened.

Ted Turner virus: Colorizes your monochrome monitor.

Terry Randle virus: Prints "Oh no you don't" whenever you choose "Abort" from the "Abort, Retry, Fail" message.

Texas virus: Makes sure that it's bigger than any other file.

UK Parliament virus: Splits the screen into two with a message in each half blaming other side for the state of the system.

Warren Commission virus: Won't allow you to open your files for 75 years.

NEW KEYBOARD

Microsoft Corporation has just announced a new PC keyboard designed
specifically for Windows. {Sources say a Macintosh variant is in
the works.} In addition to the keys found on the standard keyboard,
Microsoft's new design adds several new keys which will make your
Windows computing even more fun! The final specs are not yet set,
so please feel free to make suggestions. The keys proposed so far
are:

1) GPF key -- This key will instantly generate a General Protection
Fault when pressed. Microsoft representatives state that the purpose
of the GPF key is to save Windows users time by eliminating the need
to run an application in order to produce a General Protection Fault.

2) $$ key -- When this key is pressed, money is transferred
automatically from your bank account to Microsoft without the
need for further action or third party intervention.

3) ZD key -- This key was developed specifically for reviewers
of Microsoft products. When pressed it inserts random superlative
adjectives in any text which contains the words Microsoft or
Windows within the file being edited.

4) MS key -- This key runs a Microsoft commercial entitled "Computing
for Mindless Drones" in a 1" x 1" window.

5) FUD key -- Some thing to do with the display...self explanatory.

6) Chicago key -- Generates do nothing loops for months at a time.

7) GateIBM key -- Searches your hard disk for operating systems or
applications by vendors other than Microsoft and deletes them.
(Is very effective at removing Netscape).

8) MSN Key -- With a single keystroke you will install and setup the
world's second slowest web access (AOL takes first place). And you
thought it was tough deleting all of the SetupMSN files from Win 95!

9) RW95 Key -- Stands for Re-install Windows 95. Because it's usually
a weekly ritual for most Win 95 users, why not make it easier?

10) FDISK Key -- Microsoft's new compression utility gives you
100% data compression guaranteed. Could stand for Format Disk,
but we all know what it really stands for.

Q&A: THE PENTIUM FDIV BUG

Q: How many Pentium designers does it take to screw in a light bulb?
A: 1.99904274017, but that's close enough for non-technical people.


Q: What's another name for the "Intel Inside" sticker they put on
Pentiums?
A: The warning label.


Q: What do you call a series of FDIV instructions on a Pentium?
A: Successive approximations.


Q: Complete the following word analogy: Add is to Subtract as Multiply
is to:
1) Divide
2) ROUND
3) RANDOM
4) On a Pentium, all of the above
A: Number 4.


Q: What algorithm did Intel use in the Pentium's floating point divider?
A: "Life is like a box of chocolates." (Source: F. Gump of Intel)


Q: Why didn't Intel call the Pentium the 586?
A: Because they added 486 and 100 on the first Pentium and got
585.999983605.

** ACHTUNG! **

Das machine is nicht fur Gerfingerpoken und mittengraben.
Is easy schnappen der Springenwerk blowenfusen und poppencorken
mit spitzensparken. Is nicht fur gerwerken by `Dummkopfen'.
Das rubbernecken sightseeren keepin hands in das pockets.
Relaxen und watch das Blinkinlights.

WARNING!

This machine is subject to breakdowns during periods of critical need.
A special circuit in the machine called a 'Critical Detector' senses
the operator's emotional state in terms of how desperate he or she is
to use the machine. The 'Critical Detector' then creates a malfunction
proportional to the desperation of the operator. Threatening the machine
with violence only aggravates the situation. Likewise, attempts to use
another machine may cause it to malfunction also. After all, they
belong to the same union. Keep cool and say pleasant things to the
machine. Nothing else seems to work.

Moral: Never let anything mechanical know you are in a hurry.

Heard recently from an IBM field service manager:
A huge travel agency in Florida (a major booker of Caribbean cruises
for blue-haired retired ladies) recently bought an IBM 3090 to run the
reservation database. When the deal was consummated, the proud new
owner asked IBM to install it in a big glass room right behind the
receptionist's area so all the customers could see the flashing lights
and spinning tape reels as they walked in, a testimony to the modernity
of the agency. Good idea, except there are no blinking lights on a 3090.
So the service manager offered to build some. They hired a theatrical
designer to come up with a suitably futuristic "set", got curved glass
walls to minimize reflections, and installed the mainframe behind the
"real-looking" facade. The customer declared that it was exactly what
he had in mind, regardless of what the actual computer looks like.
Moral: the customer is always right.

The latest hardware gadget for use with Windows...

Wednesday, September 13, 2006

From: Richard Kinney, rjkinney@telis.org
In class when students say to me, "Are you Serious?"
My reply is: "Yes...like the brightest star in the night-time sky, I am Sirius!"

Two things are infinite: the universe and human stupidity; and I'm not sure about the universe.

– Albert Einstein

Einstein when asked how World War III would be fought, Einstein replied that he didn't know. But he knew how World War IV would be fought: With sticks and stones!

The wireless telegraph is not difficult to understand. The ordinary telegraph is like a very long cat. You pull the tail in New York, and it meows in Los Angeles. The wireless is the same, only without the cat.

– Albert Einstein

If we knew what it was we were doing, it would not be called research, would it?

– Albert Einstein

Albert Einstein had been working on his theory of relativity a lot and he was just about finished. He was almost ready to publish his work. However, he was under a lot of stress so he thought he would go on vacation to Mexico.
Albert had a glorious two-week vacation and was having the time of his life. On the last night he was staying there, he decided to take a walk along the beach and watch the sunset.
As he watched the sun go down, he thought of the light of the sun and then the speed of light. You see, he had been using the speed of light in a lot of his calculations but he didn't decided on what symbol to use for it. Greek had been so overused.
Just at that moment, Senior Wensez was also walking along the beach in the opposite direction. Albert caught him out of the corner of his eye and remarked suddenly, "Do you not zink zat zee speed of light is very fast?"
Senior Wensez paused for a moment and replied, "Si."

True story:
A student walked into his discreet math class late and in order not to interrupt he put his late slip on the teacher's desk furtively without the teacher noticing. The teacher noticed the slip on his desk afterwards. He commented "I see you put this slip on my desk without me noticing. I guess that's why they call this class discrete mathematics."

SCHROEDINGER'S CAT LIMERICKS

Schroedinger, you should not have done that
That "playing God" with a cat,
Which, by the way, mister
Belonged to your sister
The next time please make it a rat.

Said Schroedinger "poison is nifty
To dispose of this cat, God is thrifty
We can't tell if it died
Till we all peer inside
And the odds are at just that, 50/50."

The cat in the box still has growth
Or it's dead, and infested with sloth
One should not get unnerved
Till the cat is observed
It's a superposition of both.

So that is the way that you tell it
Leave a cat in a box with a pellet
Should the trigger let go
The poison will flow
And you'll know the cat's dead when you smell it.

Said Schroedinger, "let Physics advance
Though it might be kitty's last dance
When we open the box
Be prepared for some shocks
But there's only a 50% chance."

Said Schroedinger, "let's take a chance
Though it might be kitty's last dance."
"The poor cat," he then joked
"is alive, or it's croaked"
But you can't know these things in advance.

Said Schroedinger," isn't this fun"
Shot a cat in a box with a gun
I'll be sure it survives
'Cause the cat has nine lives
And I'll only be using just one."

The Grand old Duke of York,
He had ten thousand men,
He marched them up to the top of hill,
And he marched them down again.
When they were up they were up,
When they were down they were down.
When they were only half way up,
They were simultaneously up and down,
They were merely obeying the laws of quantum mechanics.

Augusta Ada King, Countess of Lovelace (1815-1852)

Augusta Ada King, Countess of Lovelace

Augusta Ada King, Countess of Lovelace (1815-1852)

An English mathematician and the daughter of the famous poet, Lord Byron.
She understood Babbage’s ideas and recognized their great value. Lady Lovelace is sometimes called the first programmer because she also refined the design of Babbage’s Analytical Engine to include the automatic repetition of a series of calculation’s – the loop. This looping procedure is extremely valuable to today’s programmers.
She also suggested using a binary system rather than the decimal system for storage.
After her is named the Ada programming language which was developed in the late 1970s by the Pentagon for military applications.

Saturday, September 09, 2006

Three beggars were begging in New York City.

The first one wrote "beg" on his broken steel cup and he received ten dollars after one day.

The second one wrote "beg.com" on his cup and after one day he received hundreds of thousand dollars. Someone even wanted to take him to NASDAQ.

The third one wrote "ebeg" on his cup. Both IBM and HP sent vice-presidents to talk to him about a strategic alliance and offered him free hardware and professional consulting while Larry Ellison claimed on CNBC that ebeg uses 95% Oracle technology and i2 announced begTradeMatrix a b2b industry portal to offer supply chain integration in the beggar. Cisco just announced that virtually all ebeg traffic runs over their equipment.

The following are copies of ACTUAL written statements submitted to the police on report forms. (Or at least they claim to be ACTUAL statements. You be the judge.) The drivers were instructed to give a brief statement on the particulars of the accident in their own words.

1. Coming home, I drove into the wrong house and collided with a tree I don't know.
2. I pulled away from the side of the road, glanced at my Mother-in-law and headed over the embankment.
3. The gentleman behind me struck me on the backside. He then went to rest in the bush with just his rear end showing.
4. In an attempt to kill a fly, I drove into a telephone pole.
5. I had been driving my car for forty years when I fell asleep at the wheel and had an accident.
6. An invisible car came out of nowhere, struck my vehicle and vanished.
7. The pedestrian had no idea which direction to go, so I ran over him.
8. I saw the slow moving, sad faced old gentleman as he bounced off the hood of my car.
9. The guy was all over the road, I had to swerve a number of times before I hit him.
10. To avoid hitting the bumper of the car in front, I struck the pedestrian.
11. I was sure the old fellow would never make it to the other side of the roadway when I struck him.
12. My girlfriend kissed me. I lost control and woke up in the hospital.
13. When I saw I could not avoid a collision I stepped on the gas and crashed into the other car.
14. As I approached the intersection, a stop sign suddenly appeared in a place where no stop sign had ever appeared before. I was unable to stop in time to avoid the accident.
15. The indirect cause of this accident was a little guy in a small car with a big mouth.
16. I collided with a stationary truck coming the other way.
17. I told the police that I was not injured, but on removing my hat, I found that I had fractured my skull.
18. I thought I could squeeze between two trucks when my car became squashed.

A high school language instructor was explaining to her class that in French, nouns unlike their English counterparts, are grammatically designated as masculine or feminine.

"House," in French, is feminine-"la maison."
"Pencil," in French, is masculine-"le crayon."

One puzzled student asked, "What gender is computer?"

The teacher did not know, and the word wasn't in her French dictionary.
So for fun she split the class into two groups appropriately enough, by gender and asked them to decide whether "computer" should be a masculine or feminine noun.

Both groups were required to give four reasons for their recommendation.

The men's group decided that computers should definitely be of the feminine gender ("la computer"), because:

  1. No one but their creator understands their internal logic
  2. The native language they use to communicate with other computers is incomprehensible to everyone else
  3. Even the smallest mistakes are stored in long-term memory for possible later retrieval
  4. As soon as you make a commitment to one, you find yourself spending half your pay check on accessories for it.
The women's group, however, concluded that computers should be masculine ("le computer"), because:
  1. In order to get their attention, you have to turn them on;
  2. They have a lot of data but they are still clueless
  3. They are supposed to help you solve problems, but half the time they ARE the problem
  4. As soon as you commit to one, you realize that if you'd waited a little longer, you could have gotten a better model.

Helpdesk: How may I help you?
Customer: I'm writing my first e-mail.
Helpdesk: OK, and, what seems to be the problem?
Customer: Well, I have the letter a, but how do I get the circle around it?

A customer couldn't get on the internet.
Helpdesk: Are you sure you used the right password?
Customer: Yes I'm sure. I saw my colleague do it.
Helpdesk: Can you tell me what the password was?
Customer: Five stars.

Customer: My keyboard is not working anymore.
Helpdesk: Are you sure it's plugged into the computer?
Customer: No. I can't get behind the computer.
Helpdesk: Pick up your keyboard and walk 10 paces back.
Customer: OK
Helpdesk: Did the keyboard come with you?
Customer: Yes
Helpdesk: That means the keyboard is not plugged in. Is there another keyboard?
Customer: Yes, there's another one here. Ah...that one does work!

Hi good afternoon, this is Martha, I can't print. Every time I try it says 'Can't find printer'. I've even lifted the printer and placed it in front of the monitor, but the computer still says he can't find it...

Customer: Hi, this is Celine. I can't get my diskette out.
Helpdesk: Have you tried pushing the button?
Customer: Yes, but it's really stuck.
Helpdesk: That doesn't sound good; I'll make a note ...
Customer: No ... wait a minute... I hadn't inserted it yet... it's still on my desk... sorry ....

A panda walks into a bar, sits down and orders a sandwich. He eats the sandwich, pulls out a gun and shoots the waiter dead.
As the panda stands up to go, the bartender shouts, "Hey! Where are you going? You just shot my waiter and you didn't pay for your sandwich!"
The panda yells back at the bartender, "Hey man, I'm a PANDA! Look it up!"
The bartender opens his dictionary and sees the following definition for panda: "A tree dwelling marsupial of Asian origin, characterized by distinct black and white coloring. Eats shoots and leaves".

Why do we hear a clatter of train wheels ?

Answer: Wheel has a form of a circle. An area of a circle is equal to p r 2, so this square clatters.

What difference between physicist and programmer ?

Answer: Physicist thinks that 1 kilobyte = 1000 bytes, and programmer thinks that 1 kilometer = 1024 meters.

The shortest distance between two points

At a geometry lesson a teacher asks to represent the shortest distance between the two points A and B on a blackboard:


The teacher asks:
- Johnny, who taught you this ?
- My father, he is a taxi driver.

You Know You're a Programmer When ...

When asked about a bus schedule, you wonder if it is 16 or 32 bits.

When you are counting objects, you go ''0,1,2,3,4,5,6,7,8,9,A,B,C,D...''.

When you dream in 256 pallettes of 256 colors.

When your wife says ''If you don't turn off that damn machine and come to bed, then I am going to divorce you!'', and you chastise her for for omitting the ''else'' clause.

You try to s sleep(8 * 3600);

When you are reading a book and look for the scroll bar to get to the next page..

When after fooling around all day with routers etc, you pick up the phone and start dialing an IP number...

When you get in the elevator and double-click the button for the floor you want.

When not only do you check your email more often than your paper mail, but you remember your {network address} faster than your postal one.

When you look for a icon to double-click to open your bedroom window.

When you go to balance your checkbook and discover that you're doing the math in octal.

When you look for a trash can icon for throwing garbage.

The perfectionist programmer submitted a piece of software for unit testing. As he reviews his own code he realised that he made a mistake. He rushes off to the testing department. Worried he ask the tester: "Have you seen the error I made in module X12VY3. ". Trying to be polite the tester answers: "Which one?"

Programmer monkey

A tourist walked into a pet shop and was looking at the animals on display.

While he was there, another customer walked in and went over to a cage at the side of the shop and took out a monkey.

He fit a collar and leash, handed it to the customer, saying, "Thatll be $5000."

The customer paid and walked out with his monkey. Startled, the tourist went over to the shopkeeper and said, "That was a very expensive monkey. Most of them are only a few hundred dollars. Why did it cost so much?"

The shopkeeper answered, "Ah, that monkey can program in C - very fast, tight code, no bugs, well worth the money."

The tourist looked at the monkey in another cage. "That ones even more expensive - $10,000! What does it do?" "Oh, that ones a C++ monkey; it can manage object-oriented programming, Visual C++, even some Java. All the really useful stuff," said the shopkeeper.

The tourist looked around for a little longer and saw a third monkey in a cage of its own. The price tag around its neck read $50,000.

He gasped to the shopkeeper, "That one costs more than all the others put together! What on earth does it do?"

The shopkeeper replied, "Well, I havent actually seen it do anything, but rest of the monkeys call it the Project Manager."

Thursday, September 07, 2006

An Entity bean came into his local bar on Monday night, and his eyes fell on a beautiful Session bean.

He went over to her, gave her some line, but was denied.
The next day the barman grinned when he saw the Entity once again show up, and hit on the Session bean. Once again, denied.

On the third night, after getting dissed again, the Entity came and sat at the bar. The barmen gave him a drink and said... 'You are definately persistent'.

This definition of "compiler" must rank as the BEST of the possible wrong answers.

Written by a student in a introductory Computer Science course.

"A compiler's primary function is to compile, organize the compilation, and go right back to compiling. It compiles basically only those things that require to be compiled, ignoring things that should not be compiled. The main way a compiler compiles, is to compile the things to be compiled until the compilation is complete."

Only in America.....

Computer Stories from a Field Service Engineer

When I worked for a company that had a contract with 3M, 3M had asked me to write them a memo describing why we were having problems with diskette failures. I said in the memo that the disks were failing due to head crashes. "If the customers would just clean their heads periodically, we wouldn't have these problems," I said in the memo. One customer responded with "What kind of shampoo do you recommend?"

An end-user hotline received a call about a bad software disk. They asked the customer to make a copy of the disk and mail it in to the hotline. A few days later, they received a letter with a mimeographed copy of the disk. Since it was a double-sided disk, both sides of the disk had been xeroxed.

A Computer Operator says as she is lifting an RP06 disk pack from the drive: "Gee, how much does one of these weigh?" Me: "It depends on how much data is on the disk.... The operator believed it.

...about the doctor, engineer, and programmer who were debating what the world's oldest profession was. The doctor said that medicine was the oldest because the Lord performed surgery in the removal of Adam's rib. The engineer countered that before that act, the Lord had performed feats of engineering by creating the earth and heavens from nothing.

The doctor conceded that the engineer was right and that engineering was indeed the oldest profession. But then the programmer interjected that programming was even older. He was chided by both the doctor and the engineer saying that engineering had to be the oldest, because before the Lord engineered the earth and heavens, there was nothing, only the Great Void, only Chaos!

The programmer simply smiled and said: "Where do you think the Chaos came from?"

A Microsoft Programmer and a Boeing Engineer were sitting next to each other on an airplane. The Programmer leans over to the Engineer and asks if he wants to play a fun game. The Engineer just wants to sleep so he politely declines, turns away and tries to sleep.

The Programmer persists and explains that it's a real easy game. He explains, "I ask a question and if you don't know the answer you pay me $5. Then you ask a question and if I don't know the answer I'll pay you $5."

Again the Engineer politely declines and tries to sleep.

The Programmer, now somewhat agitated, says, "O.K., if you don't know the answer you pay me $5 and if I don't know the answer I pay you $50!"

Now, that got the Engineer's attention, so he agrees to the game.

The Programmer asks the first question, "What's the distance to from the earth to the moon?"

Then Engineer doesn't say a word and just hands the Programmer $5.

Now, its the Engineer's turn. He asks the Programmer, "What goes up a hill with three legs and comes down on four?"

The Programmer looks at him with a puzzled look, takes out his laptop computer, looks through all his references and after about an hour hands the Engineer $50.

The Engineer politely takes the $50 turns away and tries to sleep.

The Programmer, a little miffed, asks, "Well what's the answer to the question?"

Without a word, the Engineer reaches into his wallet, hands $5 to the Programmer turns away and tries to sleep.

Our subject today is lighting charcoal grills. One of our favorite charcoal grill lighters is a guy named George Goble (really!!), a computer person in the Purdue University engineering department.

Each year, Goble and a bunch of other engineers hold a picnic in West Lafayette, Indiana, at which they cook hamburgers on a big grill. Being engineers, they began looking for practical ways to speed up the charcoal-lighting process.

"We started by blowing the charcoal with a hair dryer," Goble told me in a telephone interview. "Then we figured out that it would light faster if we used a vacuum cleaner."

If you know anything about (1) engineers and (2) guys in general, you know what happened: The purpose of the charcoal-lighting shifted from cooking hamburgers to seeing how fast they could light the charcoal.

From the vacuum cleaner, they escalated to using a propane torch, then an acetylene torch. Then Goble started using compressed pure oxygen, which caused the charcoal to burn much faster, because as you recall from chemistry class, fire is essentially the rapid combination of oxygen with a reducing agent (the charcoal). We discovered that a long time ago, somewhere in the valley between the Tigris and Euphrates rivers (or something along those lines).

By this point, Goble was getting pretty good times. But in the world of competitive charcoal-lighting, "pretty good" does not cut the mustard.

Thus, Goble hit upon the idea of using - get ready - liquid oxygen. This is the form of oxygen used in rocket engines; it's 295 degrees below zero and 600 times as dense as regular oxygen. In terms of releasing energy, pouring liquid oxygen on charcoal is the equivalent of throwing a live squirrel into a room containing 50 million Labrador retrievers. On Gobel's World Wide Web page (http://ghg.ecn.purdue.edu/), you can see actual photographs and a video of Goble using a bucket attached to a 10-foot-long wooden handle to dump 3 gallons of liquid oxygen (not sold in stores) onto a grill containing 60 pounds of charcoal and a lit cigarette for ignition.

What follows is the most impressive charcoal-lighting I have ever seen, featuring a large fireball that according to Goble, reached 10,000 degrees Fahrenheit. The charcoal was ready for cooking in - this has to be a world record - 3 seconds.

There's also a photo of what happened when Goble used the same technique on a flimsy $2.88 discount-store grill. All that's left is a circle of charcoal with a few shreds of metal in it. "Basically, the grill vaporized," said Goble. "We were thinking of returning it to the store for a refund."

Looking at Goble's video and photos, I became, as an American, allchoked up with gratitude at the fact that I do not live anywhere near the engineers' picnic site. But also, I was proud of my country for producing guys who can be ready to barbecue in less time than it take for guys in less-advanced nations, such as France, to spit.

Will the 3-second barrier ever be broken? Will engineers come up with a new, more powerful charcoal-lighting technology? It's something for all of us to ponder this summer as we sit outside, chewing our hamburgers, every now and then glancing in the direction of West Lafayette, Indiana, looking for a mushroom cloud.

Back in the mid-1970s, several of the system support staff at Motorola discovered a relatively simple way to crack system security on the Xerox CP-V timesharing system. Through a simple programming strategy, it was possible for a user program to trick the system into running a portion of the program in `master mode' (supervisor state), in which memory protection does not apply. The program could then poke a large value into its `privilege level' byte (normally write-protected) and could then proceed to bypass all levels of security within the file-management system, patch the system monitor, and do numerous other interesting things. In short, the barn door was wide open.

Motorola quite properly reported this problem to Xerox via an official `level 1 SIDR' (a bug report with an intended urgency of `needs to be fixed yesterday'). Because the text of each SIDR was entered into a database that could be viewed by quite a number of people, Motorola followed the approved procedure: they simply reported the problem as `Security SIDR', and attached all of the necessary documentation, ways-to-reproduce, etc.

The CP-V people at Xerox sat on their thumbs; they either didn't realize the severity of the problem, or didn't assign the necessary operating-system-staff resources to develop and distribute an official patch.

Months passed. The Motorola guys pestered their Xerox field-support rep, to no avail. Finally they decided to take direct action, to demonstrate to Xerox management just how easily the system could be cracked and just how thoroughly the security safeguards could be subverted.

They dug around in the operating-system listings and devised a thoroughly devilish set of patches. These patches were then incorporated into a pair of programs called `Robin Hood' and `Friar Tuck'. Robin Hood and Friar Tuck were designed to run as `ghost jobs' (daemons, in UNIX terminology); they would use the existing loophole to subvert system security, install the necessary patches, and then keep an eye on one another's statuses in order to keep the system operator (in effect, the superuser) from aborting them.

One fine day, the system operator on the main CP-V software development system in El Segundo was surprised by a number of unusual phenomena. These included the following:

* Tape drives would rewind and dismount their tapes in the middle of a job.
* Disk drives would seek back and forth so rapidly that they would attempt to walk across the floor (see {walking drives}).
* The card-punch output device would occasionally start up of itself and punch a {lace card}. These would usually jam in the punch.
* The console would print snide and insulting messages from Robin Hood to Friar Tuck, or vice versa.
* The Xerox card reader had two output stackers; it could be instructed to stack into A, stack into B, or stack into A (unless a card was unreadable, in which case the bad card was placed into stacker B). One of the patches installed by the ghosts added some code to the card-reader driver... after reading a card, it would flip over to the opposite stacker. As a result, card decks would divide themselves in half when they were read, leaving the operator to recollate them manually.

Naturally, the operator called in the operating-system developers. They found the bandit ghost jobs running, and X'ed them... and were once again surprised. When Robin Hood was X'ed, the following sequence of events took place:

!X id1

id1: Friar Tuck... I am under attack! Pray save me!

id1: Off (aborted)

id2: Fear not, friend Robin! I shall rout the Sheriff of Nottingham's men!

id1: Thank you, my good fellow!

Each ghost-job would detect the fact that the other had been killed, and would start a new copy of the recently slain program within a few milliseconds. The only way to kill both ghosts was to kill them simultaneously (very difficult) or to deliberately crash the system.

Finally, the system programmers did the latter --- only to find that the bandits appeared once again when the system rebooted! It turned out that these two programs had patched the boot-time OS image (the kernel file, in UNIX terms) and had added themselves to the list of programs that were to be started at boot time.

The Robin Hood and Friar Tuck ghosts were finally eradicated when the system staff rebooted the system from a clean boot-tape and reinstalled the monitor. Not long thereafter, Xerox released a patch for this problem.

It is alleged that Xerox filed a complaint with Motorola's management about the merry-prankster actions of the two employees in question. It is not recorded that any serious disciplinary action was taken against either of them.

Microsoft Announces Improved BSOD

In a surprise announcement today, Microsoft President Steve Ballmer revealed that the Redmond based company will allow computer resellers and end-users to customize the appearance of the Blue Screen of Death (abbreviated BSOD), the screen that displays when the Windows operating system crashes.

The move comes as the result of numerous focus groups and customer surveys done by Microsoft. Thousands of Microsoft customers were asked, "What do you spend the most time doing on your computer?"

A surprising number of respondents said, "Staring at a Blue Screen of Death". At 54 percent, it was the top answer.

"We immediately recognized this as a great opportunity for ourselves, our channel partners, and especially our customers." explained the excited Ballmer to a room full of reporters.

Immense video displays were used to show images of the new customizable BSOD screen side-by-side with the older static version. Users can select from a collection of "BSOD Themes", allowing them to instead have a Mauve Screen of Death or even a Paisley Screen of Death. Graphics and multimedia content can now be incorporated into the screen, making the BSOD the perfect conduit for delivering product information and entertainment to Windows users.

The Blue Screen of Death is by far the most recognized feature of the Windows (tm) operating system, and as a result, Microsoft has historically insisted on total control over its look-and-feel. This recent departure from that policy reflects Microsoft's recognition of the Windows desktop itself as the "ultimate information portal." By default, the new BSOD will be configured to show a random selection of Microsoft product information whenever the system crashes. Microsoft channel partners can negotiate with Microsoft for the right to customize the BSOD on systems they ship.

Major computer resellers such as Compaq, Gateway, and Dell are already lining up for premier placement on the new and improved BSOD.

Balmer concluded by getting a dig in against the Open Source community. "This just goes to show that Microsoft continues to innovate at a much faster pace than open source. I have yet to see any evidence that Linux even has a BSOD, let alone a customizable one."

** Coming soon -- Options for the Hour Glass of Doom!

separate the men from the boys

Back in the good old days - the "Golden Era" of computers, it was easy to separate the men from the boys (sometimes called "Real Men" and "Quiche Eaters" in the literature). During this period, the Real Men were the ones who understood computer programming, and the Quiche Eaters were the ones who didn't. A Real Computer Programmer said things like "DO 10 I=1,10" and "ABEND" (they actually talked in capital letters, you understand), and the rest of the world said things like "computers are too complicated for me" and "I can't relate to computers - they're so impersonal". (A previous work [1] points out that Real Men don't "relate" to anything, and aren't afraid of being impersonal.)

But, as usual, times change. We are faced today with a world in which little old ladies can get computers in their microwave ovens, 12-year-old kids can blow Real Men out of the water playing Asteroids and Pac-Man, and anyone can buy and even understand their very own Personal Computer. The Real Programmer is in danger of becoming extinct, of being replaced by high-school students with TRASH-80's.

There is a clear need to point out the difference between the typical high-school junior Pac-Man player and a Real Programmer. If this difference is made clear, it will give these kids something to aspire to - a role model, a Father Figure. It will also help explain to the employers of Real Programmers why it would be a mistake to replace the Real Programmers on their staff with 12-year-old Pac-Man players (at a considerable salary saving).

Languages

The easiest way to tell a Real Programmer from the crowd is by the programming language he (or she) uses. Real Programmers use FORTRAN. Quiche eaters use PASCAL. Nicklaus Wirth, the designer of PASCAL, gave a talk once at which he was asked "How do you pronounce your name?". He replied, "You can either call me by name, pronouncing it 'Veert', or call me by value, 'Worth'." One can tell immediately from this comment that Nicklaus Wirth is a Quiche Eater. The only parameter passing mechanism endorsed by Real Programmers is call-by-value-return, as implemented in the IBM\370 FORTRAN-G and H compilers. Real Programmers don't need all those abstract concepts to get their jobs done - they are perfectly happy with a keypunch, a FORTRAN IV compiler and a beer.

  • Real Programmers do List Processing in FORTRAN.
  • Real Programmers do String Manipulation in FORTRAN.
  • Real Programmers do Accounting (if they do it at all) in FORTRAN.
  • Real Programmers do Artificial Intelligence programs in FORTRAN.

If you can't do it in FORTRAN, do it in assembly language. If you can't do it in assembly language, it isn't worth doing.

Structured Programming

The academics in computer science have gotten into the "structured programming" rut over the past several years. They claim that programs are more easily understood if the programmer uses some special language constructs and techniques. They don't all agree of exactly which concepts, of course, and the examples they use to show their particular point of view invariably fit on a single page of some obscure journal or another - clearly not enough of an example to convince anyone. When I got out of school, I thought I was the best programmer in the world. I could write an unbeatable tic-tac-toe program, use five different computer languages and create 1000-line programs that WORKED. (Really.) Then I got out into the Real World. My first task in the Real World was to read and understand a 200,000-line FORTRAN program, then speed it up by a factor of two. Any Real Programmer will tell you that all the Structured Coding in the world won't help you to solve a problem like that - it takes actual talent. Some quick observations on Real Programmers and Structured Programming:

  • Real Programmers aren't afraid to use GOTO's.
  • Real Programmers can write five-page-long DO loops without getting confused.
  • Real Programmers like Arithmetic IF statements - they make the code more interesting.
  • Real Programmers write self-modifying code, especially if they can save 20 nanoseconds in the middle of a tight loop.
  • Real Programmers don't need comments - the code is obvious.
  • Since FORTRAN doesn't have a structured IF, REPEAT … UNTIL, or CASE statement, Real Programmers don't have to worry about not using them. Besides, they can be simulated where necessary using assigned GOTO's.

Data structures have also gotten a lot of press lately. Abstract Data Types, Structures, Pointers, Lists and Strings have become popular in certain circles. Wirth (the above-mentioned Quiche eater) actually wrote an entire book [2] contending that you could write a program based on data structures, rather than the other way around. As all Real Programmers know, the only useful data structure is the Array. Strings, lists, structures, sets - these are all special cases of arrays and can be treated that way just as easily without messing up your programming language with all sorts of complications. The worst thing about fancy data types is that you have to declare them, and Real Programming Languages, as we all know, have implicit typing based on the first letter of the (six character) variable name.

Operating Systems

What kind of Operating System is used by a Real Programmer? CP/M? God forbid - CP/M, after all, is basically a toy Operating System. Even little old ladies and grade school students can understand CP/M.

Unix is a lot more complicated of course - the typical Unix hacker never can remember what the PRINT command is called this week - but when it gets right down to it, Unix is a glorified video game. People don't do serious Work on Unix systems: they send jokes around the world on UUCP-net and write adventure games and research papers.

No, your Real Programmer uses OS\370. A good programmer can find and understand the description of the IJK305I error he just got in his JCL manual. A great programmer can write JCL without referring to the manual at all. A truly outstanding programmer can find bugs buried in a 6 megabyte core dump without using a hex calculator (I have actually seen this done).

OS is a truly remarkable Operating System. It's possible to destroy days of work with a single misplaced space, so alertness in the programming staff is encouraged. The best way to approach the system is through a keypunch. Some people claim there is a Time Sharing System that runs on OS\370 but, after careful study, I have come to the conclusion that they are mistaken.

Programming Tools

What kind of tools does a Real Programmer use? In theory, a Real Programmer could run his programs by keying them into the front panel of the computer. Back in the days when computers had front panels, this was actually done occasionally. Your typical Real Programmer knew the entire bootstrap loader by memory in hex, and toggled it in whenever it got destroyed by his program. (Back then, memory was memory - it didn't go away when the power went off. Today, memory either forgets things when you don't want it to, or remembers things long after they're better forgotten.) Legend has it that Seymore Cray, inventor of the Cray 1 Supercomputer and most of Control Data's computers, actually toggled the first Operating System for the CDC7600 in on the front panel from memory when it was first powered on. Seymore, needless to say, is a Real Programmer.

One of my favourite Real Programmers was a systems programmer for Texas Instruments. One day he got a long distance call from a user whose system had crashed in the middle of saving some important work. Jim was able to repair the damage over the phone, getting the user to toggle in disk I/O instructions at the front panel, repairing system tables in hex, reading register contents back over the phone. The moral of this story: while a Real Programmer usually includes a keypunch and lineprinter in his toolkit, he can get along with just a front panel and a telephone in emergencies.

In some companies, text editing no longer consists of ten engineers standing in line to use an 029 keypunch. In fact, the building I work in doesn't contain a single keypunch. The Real Programmer in this situation has to do his work with a "text editor" program. Most systems provide several text editors to select from, and the Real Programmer must be careful to pick one that reflects his personal style. Many people believe that the best text editors in the world were written at Xerox Palo Alto Research Centre for use on their Alto and Dorado computers [3]. Unfortunately, no Real Programmer would ever use a computer whose Operating System is called SmallTalk, and would certainly not talk to the computer with a mouse.

Some of the concepts in these Xerox editors have been incorporated into editors running on more reasonably named Operating Systems - EMACS and VI being two. The problem with these editors is that Real Programmers consider "what you see is what you get" to be just as bad a concept in text editors as it is in women. No, the Real Programmer wants a "you asked for it, you got it" text editor - complicated, cryptic, powerful, unforgiving, dangerous. TECO to be precise.

It has been observed that a TECO command sequence more closely resembles transmission line noise than readable text [4]. One of the more entertaining games to play with TECO is to type your name in as a command line and try to guess what it does. Just about any possible typing error while talking with TECO will probably destroy your program, or even worse - introduce subtle and mysterious bugs into a once working subroutine.

For this reason, Real Programmers are reluctant to actually edit a program that is close to working. They find it much easier to just patch the binary object code directly, using a wonderful program called SUPERZAP (or its equivalent on non-IBM machines). This works so well that many working programs on IBM systems bear no relation to the original FORTRAN code. In many cases, the original source code is no longer available. When it comes time to fix a program like this, no manager would even think of sending anything less than a Real Programmer to do the job - no Quiche Eating structured programmer would even know where to start. This is called "job security".

Some programming tools NOT used by Real Programmers:

  • FORTRAN preprocessors like MORTRAN and RATFOR, the cuisiniers of programming - great for making Quiche. See comments above on structured programming.
  • Source language debuggers. Real Programmers can read core dumps.
  • Compilers with array bounds checking. They stifle creativity, destroy most of the interesting uses for EQUIVALENCE, and make it impossible to modify the Operating System code with negative subscripts. Worst of all, bounds checking is inefficient.
  • Source code maintenance systems. A Real Programmer keeps his code locked up in a card file, because it implies that its owner cannot leave his important programs unguarded [5].

The Real Programmer at Work

Where does the typical Real Programmer work? What kinds of programs are worthy of the efforts of so talented an individual? You can be sure that no Real Programmer would be caught dead writing accounts-receivable programs in COBOL, or sorting mailing lists for People magazine. A Real Programmer wants tasks of earth-shaking importance (literally!).

  • Real Programmers work for the Los Alamos National Laboratory, writing atomic bomb simulations to run on Cray 1 supercomputers.
  • Real Programmers work for the National Security Agency, decoding Russian transmissions.
  • It was largely due to the efforts of thousands of Real Programmers working for NASA that our boys got to the moon and back before the Russkies.
  • Real Programmers are at work for Boeing designing the Operating Systems for Cruise missiles.

Some of the most awesome Real Programmers of all work at the Jet Propulsion Laboratory in California. Many of them know the entire Operating System of the Pioneer and Voyager spacecraft by heart. With a combination of large ground-based FORTRAN programs and small spacecraft-based assembly language programs, they are able to do incredible feats of navigation and improvisation - hitting ten-kilometre wide windows at Saturn after six years in space, repairing or bypassing damaged sensor platforms, radios and batteries. Allegedly, one Real Programmer managed to tuck a pattern-matching program into a few hundred bytes of unused memory in a Voyager spacecraft that searched for, located and photographed a new moon of Jupiter.

The current plan for the Galileo spacecraft is to use a gravity assist trajectory past Mars on the way to Jupiter. This trajectory passes within 80 kilometres (±3 km) of the surface of Mars. Nobody is going to trust a PASCAL program (or a PASCAL programmer) for navigation to these tolerances.

As you can tell, many of the world's Real Programmers work for the US Government - mainly the Defense Department. This is as it should be. Recently however, a black cloud has formed on the Real Programmer horizon. It seems that some highly placed Quiche Eaters at the Defense Department decided that all Defense programs should be written in some grand unified language called "ADA" (©, DoD). For a while it seemed that ADA was destined to become a language that went against all the precepts of Real Programming - a language with structure, a language with data types, strong typing and semicolons. In short, a language designed to cripple the creativity of the typical Real Programmer. Fortunately, the language adopted by the DoD has enough interesting features to make it approachable - it's incredibly complex, includes methods for messing with the Operating System and rearranging memory, and Edsgar Dijkstra doesn't like it [6]. (Dijkstra, as I'm sure you know, was the author of "GoTos Considered Harmful" - a landmark work in programming methodology, applauded by PASCAL programmers and Quiche Eaters alike.) Besides, the determined Real Programmer can write FORTRAN programs in any language.

The Real Programmer might compromise his principles and work on something slightly more trivial than the destruction of life as we know it, providing there's enough money in it. There are several Real Programmers building video games at Atari, for example. (But not playing them - the Real Programmer knows how to beat the machine every time: no challenge in that.) Everyone working at LucasFilm is a Real Programmer. (It would be crazy to turn down the money of fifty million Star Trek fans.) The proportion of Real Programmers in computer graphics is somewhat lower than the norm, mostly because nobody has found a use for computer graphics yet. On the other hand, all computer graphics is done in FORTRAN, so there are a fair number of people doing graphics in order to avoid having to write COBOL programs.

The Real Programmer at Play

Generally, the Real Programmer plays the same as he works - with computers. He is constantly amazed that his employer actually pays him to do what he would be doing for fun anyway (although he is careful not to express this opinion out loud). Occasionally the Real Programmer does step out of the office for a breath of fresh air and a beer or two. Some tips on recognising Real Programmer away from the computer room:

  • At a party, the Real Programmers are the ones in the corner talking about Operating System security and how to get around it.
  • At a football game, the Real Programmer is the one comparing the plays against his simulations printed on 11x14 fanfold paper.
  • At the beach, the Real Programmer is the one drawing flowcharts in the sand.
  • At a funeral, the Real Programmer is the one saying "Poor George. And he almost had the sort routine working before the coronary."
  • In a grocery store, the Real Programmer is the one who insists on running the cans past the laser checkout scanner himself, because he never could trust keypunch operators to get it right the first time.

The Real Programmer's Natural Habitat

What sort of environment does the Real Programmer function best in? This is an important question for the managers of Real Programmers. Considering the amount of money it costs to keep one on the staff, it's best to put him (or her) in an environment where he can get his work done.

The typical Real Programmer lives in front of a computer terminal. Surrounding the terminal are:

  • Listings of all the programs the Real Programmer has ever worked on, piled in roughly chronological order on every flat surface in the office.
  • Some half-dozen or so partly filled cups of cold coffee. Occasionally there will be cigarette butts floating in the coffee. In some cases, the cups will contain Orange Crush.
  • Unless he is very good, there will be copies of the OS JCL manual and the Principles of Operation open at some particularly interesting pages.
  • Taped to the wall is a line-printer Snoopy calendar for the year 1969.
  • Strewn about the floor are several wrappers for peanut butter filled cheese bars - the type that are made pre-stale at the bakery so they can't get any worse waiting in the vending machine.
  • Hiding in the top left-hand drawer of the desk is a stash of double-stuff Oreos for special occasions.
  • Underneath the Oreos is a flowcharting template, left there by the previous occupant of the office. (Real Programmers write programs, not documentation. Leave that to the maintenance people.)

The Real Programmer is capable of working 30, 40, even 50 hours at a stretch, under intense pressure. In fact, he prefers it that way. Bad response time doesn't bother the Real Programmer - it gives him a chance to catch a little sleep between compiles. If there is not enough schedule pressure on the Real Programmer, he tends to make things more challenging by working on some small but interesting part of the problem for the first nine weeks, then finishing the rest in the last week, in two or three 50-hour marathons. This not only impresses the hell out of his manager, who was despairing of ever getting the project done on time, but creates a convenient excuse for not doing the documentation. In general:

  • No Real Programmer works 9 to 5 (unless it's the ones at night).
  • Real Programmers don't wear neckties.
  • Real Programmers don't wear high-heeled shoes.
  • Real Programmers arrive at work in time for lunch [9].
  • A Real Programmer might or might not know his wife's name. He does, however, know the entire ASCII (and EBCDIC) code tables.
  • Real Programmers don't know how to cook. Grocery stores aren't open at three in the morning. Real Programmers survive on Twinkies and coffee.

The Future

What of the future? It is a matter of some concern to Real Programmers that the latest generation of computer programmers are not being brought up with the same outlook on life as their elders. Many of them have never seen a computer with a front panel. Hardly anyone graduating from college these days can do their hex arithmetic without a calculator. College graduates these days are soft - protected from the realities of programming by source-level debuggers, text editors that count parentheses, and "user friendly" Operating Systems. Worst of all, some of these alleged "computer scientists" manage to get degrees without ever learning FORTRAN! Are we destined to become an industry of Unix hackers and PASCAL programmers?

From my experience, I can only report that the future is bright for Real Programmers everywhere. Neither OS\370 nor FORTRAN show any signs of dying out, despite all the efforts of PASCAL programmers the world over. Even more subtle tricks, like adding structured coding constructs to FORTRAN, have failed. Oh sure, some computer vendors have come out with FORTRAN 77 compilers, but every one of them has a way of converting itself back into a FORTRAN 66 compiler at the drop of an option card - to compile DO loops like God meant them to be.

Even Unix might not be as bad on Real Programmers as it once was. The latest release of Unix has the potential of being an Operating System worthy of any Real Programmer - two different and subtly incompatible user interfaces, an arcane and complicated teletype driver, virtual memory. If you ignore the fact that it's "structured", even 'C' programming can be appreciated by the Real Programmer: after all, there's no type checking, variable names are seven (ten? eight?) characters long, and the added bonus of the Pointer data type is thrown in - like having the best parts of FORTRAN and assembler language in one place. (Not to mention some of the more creative uses of $define.)

No, the future isn't all that bad. Why, in the past few years, the popular press has even commented on the bright new crop of computer nerds and hackers ([7] and [8]) leaving places like Stanford and MIT for the Real World. From all evidence, the spirit of Real Programming lives on in these young men and women. As long as there are ill-defined goals, bizarre bugs and unrealistic schedules, there will be Real Programmers willing to jump in and Solve The Problem - saving the documentation for later. Long live FORTRAN!

Acknowledgements

I would like to thank Jan E., Dave S., Rich G., Rich E., for their help in characterising the Real Programmer, Heather B. for the illustration, Kathy E. for putting up with it and atd!avsdS:mark for the initial inspiration.

References

  1. Feirstein, B., "Real Men don't eat Quiche", New York, Pocket Books, 1982.
  2. Wirth, N., "Algorithms + Data Structures = Programs", Prentice Hall, 1976.
  3. Ilson, R., "Recent Research in Text Processing", IEEE Trans. Prof. Commun., Vol. PC-23, No. 4, Dec 4 1980.
  4. Finseth, C., "Theory and Practice of Text Editors - or - a Cookbook for an EMACS", B.S. Thesis, MIT/LCS/TM-165, Massachusetts Institute of Technology, May 1980.
  5. Weinberg, G., "The Psychology of Computer Programming", New York, Van Nostrand Reinhold, 1971, page 110.
  6. Dijkstra, E., "On the GREEN language submitted to the DoD", Sigplan notices, Vol. 3, No. 10, Oct 1978.
  7. Rose, Frank, "Joy of Hacking", Science 92, Vol. 3, No. 9, Nov 82, pp 58-66.
  8. "The Hacker Papers", Psychology Today, August 1980.
  9. sdcarl!lin, "Real Programmers", UUCP-net, Thu Oct 21 16:55:16 1982.

A computer programmer happens across a frog in the road. The frog pipes up, "I'm really a beautiful princess and if you kiss me, I'll hang out with you for a week". The programmer shrugs his shoulders and puts the frog in his pocket.
A few minutes later, the frog says "OK, OK, if you kiss me, I'll be your girlfriend for a week". The programmer nods and puts the frog back in his pocket.
A few minutes later, "Turn me back into a princess and I'll be your girlfriend for a whole year!". The programmer smiles and walks on.
Finally, the frog says, "What's wrong with you? I've promised lots of fun with a beautiful princess for a whole year and you won't even kiss a frog?"
"I'm a programmer," he replies. "I don't have time for girls.... But a talking frog is pretty neat."

The ten commandments of email

Thou shalt include a clear and specific subject line.

Thou shalt edit any quoted text down to the minimum thou needest.

Thou shalt read thine own message thrice before thou sendest it.

Thou shalt ponder how thy recipient might react to thy message.

Thou shalt check thy spelling and thy grammar.

Thou shalt not curse, flame, spam or USE ALL CAPS.

Thou shalt not forward any chain letter.

Thou shalt not use e-mail for any illegal or unethical purpose.

Thou shalt not rely on the privacy of e-mail, especially from work.

When in doubt, save thy message overnight and reread it in the light of the dawn.

That which thou findest hateful to receive, sendest thou not unto others.

These are actual calls to Tech support help desks
(Some of you may find this funny while others could possibly use this section as a reference)
A woman called the Canon help desk with a problem with her printer. The tech asked her if she was "running it under Windows." The woman then responded, "No, my desk is next to the door. But that is a good point. The man sitting in the cubicle next to me is under a window, and his is working fine."
---------------------------------------
Tech Support: "How much free space do you have on your hard drive?" Customer: "Well, my wife likes to get up there on that Internet, and she downloaded ten hours of free space. Is that enough?"
---------------------------------------
Overheard in a computer shop: Customer: "I'd like a mouse mat, please." Salesperson: "Certainly sir, we've got a large variety." Customer: "But will they be compatible with my computer?"
---------------------------------------
I once received a fax with a note on the bottom to fax the document back to the sender when I was finished with it, because he needed to keep it.
---------------------------------------
Customer: "Can you copy the Internet for me on this diskette?"
---------------------------------------
I work for a local ISP. Frequently we receive phone calls that go something like this: Customer: "Hi. Is this the Internet?"
---------------------------------------
Some people pay for their on-line services with checks made payable to "The Internet."
---------------------------------------
Customer: "So that'll get me connected to the Internet, right?"
Tech Support: "Yeah."
Customer: "And that's the latest version of the Internet, right?"
Tech Support: "Uhh...uh...uh...yeah."
---------------------------------------
Tech Support: "Ok Bob, let's press the control and escape keys at thesame time. That brings up a task list in the middle of the screen.Now type the letter 'P' to bring up the Program Manager."
Customer: "I don't have a 'P'."
Tech Support: "On your keyboard, Bob."
Customer: "What do you mean?"
Tech Support: "'P' on your keyboard, Bob."
Customer: "I'm not going to do that!"
---------------------------------------
Customer: "My computer crashed!"
Tech Support: "It crashed?"
Customer: "Yeah, it won't let me play my game."
Tech Support: "All right, hit Control-Alt-Delete to reboot."
Customer: "No, it didn't crash-it crashed."
Tech Support: "Huh?"
Customer: "I crashed my game. That's what I said before. Now it doesn't work."
Turned out, the user was playing Lunar Lander and crashed his spaceship.
Tech Support: "Click on 'File, ' then 'New Game.'"
Customer: [pause] "Wow! How'd you learn how to do that?"

When you call us to have your computer moved, be sure to leave it buried under half a ton of postcards, baby pictures, stuffed animals, dried flowers, bowling trophies and children's art. We don't have a life, and we find it deeply moving to catch a fleeting glimpse of yours.

Don't write anything down. Ever. We can play back the error messages from here.

When an I.T. person says he's coming right over, go for coffee. That way you won't be there when we need your password. It's nothing for us to remember 700 screen saver passwords.

When you call the help desk, state what you want, not what's keeping you from getting it. We don't need to know that you can't get into your mail because your computer won't power on at all.

When I.T. support sends you an E-Mail with high importance, delete it at once. We're just testing.

When an I.T. person is eating lunch at his desk, walk right in and spill your guts right out. We exist only to serve.

Send urgent email all in uppercase. The mail server picks it up and flags it as a rush delivery.

When the photocopier doesn't work, call computer support. There's electronics in it.

When something's wrong with your home PC, dump it on an I.T. person's chair with no name, no phone number and no description of the problem. We love a puzzle.

When an I.T. person tells you that computer screens don't have cartridges in them, argue. We love a good argument.

When an I.T. person tells you that he'll be there shortly, reply in a scathing tone of voice: "And just how many weeks do you mean by shortly?" That motivates us.

When the printer won't print, re-send the job at least 20 times. Print jobs frequently get sucked into black holes.

When the printer still won't print after 20 tries, send the job to all 68 printers in the company. One of them is bound to work.

Don't learn the proper term for anything technical. We know exactly what you mean by "My thingy blew up".

Don't use on-line help. On-line help is for wimps.

It's never easy to overcome innate nerdity, a serious Internet addiction, or a hard-core computer gaming habit, but trying usually isn't as painful as kidney stones. Here's how:

Let go of the mouse.

Turn off the computer.

Play a game of solitaire with a real deck of cards.

Eat something other than taco chips.

Fart without recording it and putting it up your Web page.

Get some sleep in bed rather than on your keyboard.

Next time you wake up in the middle of the night to go to the bathroom, don't tell everyone on your ICQ list about it.

Open a window without turning your computer back on (yes, it is possible). Very gradually expose your eyes to increasingly bright light so as to avoid damage or permanent sun blindness.

When you feel prepared for a massive dose of non-CRT radiation, put on welding goggles and go outside.

If you see someone, say "Hi" to them instead of trying to make the modem connect sound.

Visit a friend that you haven't spoken to in years because they don't have an email address.

Have ".com" officially removed from behind your name. Go on a date with someone you didn't meet in a chat room.

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

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

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

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

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

486 - The average IQ needed to understand a PC.
State-of-the-art - Any computer you can't afford.
Obsolete - Any computer you own.
Microsecond - The time it takes for your state-of-the-art computer to become obsolete.
G3 - Apple's new Macs that make you say 'Gee, three times faster than the computer I bought for the same price a Microsecond ago.'
Syntax Error - Walking into a computer store and saying, 'Hi, I want to buy a computer and money is no object.'
Hard Drive - The sales technique employed by computer salesmen, esp. after a Syntax Error.
GUI - What your computer becomes after spilling your coffee on it. (pronounced 'gooey')
Keyboard - The standard way to generate computer errors.
Mouse - An advanced input device to make computer errors easier to generate.
Floppy - The state of your wallet after purchasing a computer.
Portable Computer - A device invented to force businessmen to work at home, on vacation, and on business trips.
Disk Crash - A typical computer response to any critical deadline.
Power User - Anyone who can format a disk from DOS.
System Update - A quick method of trashing ALL of your software.

A man is flying in a hot air balloon and realizes he is lost. He reduces height and spots a man down below. He lowers the balloon further and shouts:
'Excuse me, can you tell me where I am?'
The man below says: 'Yes. You're in a hot air balloon, hovering 30 feet above this field.'

'You must work in Information Technology' says the balloonist.

'I do' replies the man. 'How did you know?'

'Well' says the balloonist, 'Everything you have told me is technically correct, but it's no use to anyone.'

The man below says, 'You must work in business.'

'I do' replies the balloonist, 'but how did you know?'

'Well, ' says the man, 'You don't know where you are, or where you're going, but you expect me to be able to help. You're in the same position you were before we met, but now it's my fault.'

I don't wanna do the dishes
I don't wanna do the wash
I sprinkled clothes a week ago
And now my iron is lost!

I don't wanna rattle pots
I don't wanna rattle pans
I see the mail light flashin'
I wanna chat with friends!

Oh the tables need some dustin'
and the floor could sure be mopped
But I know if I get started
there'll be no place to stop.

The closets are so full
things are falling off the shelves
I wish for cleaning fairies
and magic little elves.

They could sprinkle fairy dust
and twitch their little nose
The windows would be sparkling
I would have no dirty clothes.

Oh I know that I'm just dreamin'
My head is in the sky
I must cook that meat that's greying
and bake that apple pie.

The Hubby needs a bath
Doggy needs attention
Oh.. the other way around I mean
my brain is in suspension.

I am runnin' round in circles
I am gettin' nothin' done,
I keep thinking of my web
I am missing all the fun!

Well I know I'm not addicted
though I hear that all the time
But I guess this stuff can wait on me
Cause Today I'll Be On Line!!!

'Twas the night before Y2K,
And all through the nation
We awaited The Bug,
The Millennium sensation.

The chips were replaced
In computers with care,
In hopes that ol' Bugsy
Wouldn't stop there.

While some folks could think
They were snug in their beds
Others had visions
Of dread in their heads.

And Ma with her PC,
And I with my Mac
Had just logged on the Net
And kicked back with a snack.

When over the server,
There arose such a clatter
I called Mister Gates
To see what was the matter.

But he was away,
So I flew like a flash
Off to my bank
To withdraw all my cash.

When what with my wandering eyes
Should I see?
My good old Mac
Looked sick to me.

The hack of all hackers
Was looking so smug,
I knew that it must be
The Y2K Bug!

His image downloaded
In no time at all,
He whistled and shouted,
Let all systems fall!

Go Intel! Go Gateway!
How HP! Big Blue!
Everything Compaq,
And Pentium too!

All processors big,
All processors small,
Crash away! Crash away!
Crash away all!

All the controls
That planes need for their flights
All microwaves, trains
And all traffic lights.

As I drew in my breath
And was turning around,
Out through the modem,
He came with a bound.

He was covered with fur,
And slung on his back
Was a sack full of virus,
Set for attack.

His eyes-how they twinkled!
His dimples-how merry!
As midnight approached, though
Things soon became scary.

He had a broad little face
And a round little belly,
And his sack filled with virus
Quivered like jelly.

He was chubby and plump,
Perpetually grinning,
And I laughed when I saw him
Though my hard drive stopped spinning.

A wink of his eye,
And a twist of his head,
Soon gave me to know
A new feeling of dread.

He spoke not a word,
But went straight to his work,
He changed all the clocks,
Then turned with a jerk.

With a twitch of his nose,
And a quick little wink,
All things electronic
Soon went on the blink.

He zoomed from my system,
To the next folks on line,
He caused such a disruption,
Could this be a sign?

Then I heard him exclaim,
With a loud, hearty shout,
Happy Y2K to you all,
This is a helluva night!

An old, bearded shepherd, with a crooked staff, walks up to a stone pulpit and says . . .

And, lo, it came to pass that the trader by the name of Abraham.Com did take unto himself a young wife by the name of Dot. And Dot Com was a comely woman, broad of shoulder and long of leg. Indeed, she had been called Amazon Dot Com. And she said unto Abraham, her husband, "Why doth thou travel far from town to town with thy goods, when thou can trade without ever leaving thy tent?"

And Abraham did look at her as though she were several saddle bags short of a camel load, but simply said, "How, dear?"

And Dot replied, "I will place drums in all the towns and drums in between to send messages saying what you have for sale and they will reply telling you which hath the best price. And the sale can be made on the drums and delivery by Uriah's Pony Stable (UPS)."

Abraham thought long and decided he would let Dot have her way with the drums. And Dot said, "There will be a lot of banging in the land."

And Abraham replied, "It is my most fervent wish that this be so." And the drums rang out and were an immediate success. Abraham sold all the goods he had, at the top price, without ever moving from his tent.

But his success did arouse envy. A man named Maccabia did secret himself inside Abraham's drum and was accused of insider trading.

And the young did take to Dot Com's trading as doth the greedy horsefly to camel dung. They were called Nomadic Ecclesiastical Rich Dominican Siderites, or NERDS for short.

And, lo, the land was so feverish with joy at the new riches and the deafening sound of drums, that no one noticed that the real riches were going to the drum maker, one Brother William of Gates, who bought up every drum company in the land. And indeed did insist on making drums that would only work if you bought Brother William's drumsticks.

And Dot did say, "Oh, Abraham, what we have started is being taken over by others."

And as Abraham looked out over the Bay of Ezekiel, or as it came to be known, "eBay, " he said, "We need a name of a service that reflects what we are." And Dot replied, "Young Ambitious Hebrew Owner Operators."

"Whoopee!" said Abraham.

"No, YAHOO!" said Dot Com.

A truck driver hauling a tractor-trailer load of computers stops for a beer. As he approaches the bar he sees a big sign on the door saying

"NERDS NOT ALLOWED--ENTER AT YOUR OWN RISK!"

He goes in and sits down. The bartender comes over to him, sniffs, says he smells kind of nerdy, asks him what he does for a living.

The truck driver says he drives a truck, and the smell is just from the computers he is hauling.

The bartender says OK, truck drivers are not nerds, and serves him a beer. As he is sipping his beer, a skinny guy walks in with tape around his glasses, a pocket protector with twelve kinds of pens and pencils, and a belt at least a foot too long.

The bartender, without saying a word, pulls out a shotgun and blows the guy away.

The truck driver asks him why he did that. The bartender said not to worry, the nerds are over-populating the Silicon Valley, and are in season now. You don't even need a license, he said.

So the truck driver finishes his beer, gets back in his truck, and heads back onto the freeway. Suddenly he veers to avoid an accident, and the load shifts. The back door breaks open and computers spill out all over the freeway.

He jumps out and sees a crowd already forming, grabbing up the computers. They are all engineers, accountants and programmers wearing the nerdiest clothes he has ever seen. He can't let them steal his whole load. So remembering what happened in the bar, he pulls out his gun and starts blasting away, felling several of them instantly.

A highway patrol officer comes zooming up and jumps out of the car screaming at him to stop.

The truck driver said, "What's wrong? I thought nerds were in season."

"Well, sure." said the patrolman, "But you can't bait 'em.

I've finally finished my LISP operating system...

"I've finally finished my LISP operating system. I don't want to give away the source, but to prove I've done it, here are the last 300 lines:
)))))))))))))))))))))))))))))))))
)))))))))))))))))))))))))))))))))
)))))))))))))))))))))))))))))))))
)))))))))))))))))))))))))))))))))
)))))))))))))))))))))))))))))))))
)))))))))))))))))))))))))))))))))
)))))))))))))))))))))))))))))))))
)))))))))))))))))))))))))))))))))
)))))))))))))))))))))))))))))))))
)))))))))))))))))))))))))))))))))
)))))))))))))))))))))))))))))))))
)))))))))))))))))))))))))))))))))
)))))))))))))))))))))))))))))))))
)))))))))))))))))))))))))))))))))
)))))))))))))))))))))))))))))))))
)))))))))))))))))))))))))))))))))
)))))))))))))))))))))))))))))))))
)))))))))))))))))))))))))))))))))
)))))))))))))))))))))))))))))))))
)))))))))))))))))))))))))))))))))
)))))))))))))))))))))))))))))))))[...]"

Our program,

Who art in memory,

"Hello" be thy name.

Thy spreadsheets be formatted,

thy code be downloaded,

from disk

as it will be in memory.

Give us on screen

our data spreads,

and forgive us our typos,

as we forgive those who ask that we document.

Lead us not into frustration,

but deliver us from glitches.

For thine is the algorithm,

the application,

and the solution,

looping forever and ever.

Return.

So these two strings walk in to a bar, the first one says "Hi, I'd like a gin and tonic" and the second one says "Yeah, and I'll have a rum and coke.ÿÿÿÿÿÿÿÿÿÿ-LC_LOCALE_US1 ╦╦←≠", throws up, and dies. And the first string says "you'll have to excuse my friend, he's not NULL terminated.

A programmer and an engineer are sitting next to each other on a long flight from Los Angeles to New York.

The programmer leans over to the engineer and asks if he would like to play a fun game.

The engineer just wants to take a nap, so he politely declines and rolls over to the window to catch a few winks.

The programmer persists and explains that the game is real easy and is a lot of fun. He explains "I ask you a question, and if you don't know the answer, you pay me $5. Then you ask me a question, and if I don't know the answer, I'll pay you $5."

Again, the engineer politely declines and tries to get to sleep.

The programmer, now somewhat agitated, says, "OK, if you don't know the answer you pay me $5, and if I don't know the answer, I'll pay you $100!"

This catches the engineer's attention, and he sees no end to this torment unless he plays, so he agrees to the game.

The programmer asks the first question. "What's the distance from the earth to the moon?" The engineer doesn't say a word, but reaches into his wallet, pulls out a five dollar bill and hands it to the programmer.

Now, it's the engineer's turn. He asks the programmer "What goes up a hill with three legs, and comes down on four?"

The programmer looks up at him with a puzzled look. He takes out his laptop computer and searches all of his references. He taps into the Airphone with his modem and searches the net and the Library of Congress. Frustrated, he sends e-mail to his co-workers--all to no avail.

After about an hour, he wakes the Engineer and hands him $100. The engineer politely takes the $100 and turns away to try to get back to sleep. The programmer, more than a little miffed, shakes the engineer and asks "Well, so what's the answer?" Without a word, the engineer reaches into his wallet, hands the programmer $5, and turns away to get back to sleep.

A programmer was walking along the beach when he found a lamp. Upon rubbing the lamp a genie appeared who stated "I am the most powerful genie in the world. I can grant you any wish you want, but only one wish."

The programmer pulled out a map of the Mediterranean area and said "I'd like there to be a just and last peace among the people in the middle east."

The genie responded, "Gee, I don't know. Those people have been fighting since the beginning of time. I can do just about anything, but this is beyond my limits."

The programmer then said, "Well, I am a programmer and my programs have a lot of users. Please make all the users satisfied with my programs, and let them ask sensible changes"

Genie "Uh, let me see that map again."

Wednesday, September 06, 2006

LITHP

LITHP
This otherwise unremarkable language is distinguished by the absence
of an "S" in its character set; users must substitute "TH". LITHP is
said to be useful in protheththing lithtth.

Holidays

Q: Why do programmers always get Christmas and Halloween mixed up?
A: Because DEC 25 = OCT 31

Knights

Why is a good programmer like a Knight?
They both live by their code.

Assembler instructions

Assembler programs are written with short abbreviations called
MNEMONICS, in other words instead of writing GOTO, the programmer
writes JMP or even BRA (branch).
These instructions are frequently abbreviated into total
incomprehensibility. Of course, we all know that abbreviations are
arbitrary. Anyone who has spent any time programming in assembler
knows that all computers can be programmed using an undocumented set
of instructions. Frequently when an error is made writing a program
in assembler a user can actually see the program executing the
undocumented instructions. These instructions vary from machine from
machine, but all computers have a certain set of them in common. As
a service to humanity, I am here revealing these common instructions
for the first time.

ARG: Agree to Run Garbage
BDM: Branch and Destroy Memory
CMN: Convert to Mayan Numerals
DDS: Damage Disk and Stop
EMR: Emit Microwave Radiation
ETO: Emulate Toaster Oven
FSE: Fake Serious Error
GSI: Garble Subsequent Instructions
GQS: Go Quarter Speed
HEM: Hide Evidence of Malfunction
IDD: Inhale Dust and Die
IKI: Ignore Keyboard Input
IMU: Irradiate and Mutate User
JPF: Jam Paper Feed
JUM: Jeer at Users Mistake
KFP: Kindle Fire in Printer
LNM: Launch Nuclear Missiles
MAW: Make Aggravating Whine
NNI: Neglect Next Instruction
OBU: Overheat and Burn if Unattended
PNG: Pass Noxious Gas
QWF: Quit Working Forever
QVC: Question Valid Command
RWD: Read Wrong Device
SCE: Simulate Correct Execution
SDJ: Send Data to Japan
TTC: Tangle Tape and Crash
UBC: Use Bad Chip
VDP: Violate Design Parameters
VMB: Verify and Make Bad
WAF: Warn After Fact
XID: eXchange Instruction with Data
YII: Yield to Irresistible Impulse
ZAM: Zero All Memory
PI : Punch Invalid
POPI: Punch Operator Immediately
RASC: Read And Shred Card
RPM: Read Programmers Mind
RSSC: Reduce Speed, Step Carefully (for improved accuracy)
RTAB: Rewind Tape and Break
RWDSK: ReWind DiSK
SPSW: Scramble Program Status Word
SRSD: Seek Record and Scar Disk
WBT: Water Binary Tree

Go for a drive

An engineer, a mathematician, and a computer programmer are driving
down the road when the car they are in gets a flat tire. The engineer
says that they should buy a new car. The mathematician says they should
sell the old tire and buy a new one. The computer programmer says they
should drive the car around the block and see if the tire fixes itself.

Theological question

Q: How can I protect myself from evil?
A: Change your password every month and don't make it a name, a
common word, or a date like your birthday.

Top 17 Programmer's Terminologies

1. A NUMBER OF DIFFERENT APPROACHES ARE BEING TRIED
- We are still pissing in the wind.

2. EXTENSIVE REPORT IS BEING PREPARED ON A FRESH APPROACH TO
THE PROBLEM
- We just hired three kids fresh out of college.

3. CLOSE PROJECT COORDINATION
- We know who to blame.

4. MAJOR TECHNOLOGICAL BREAKTHROUGH
- It works OK, but looks very hi-tech.

5. CUSTOMER SATISFACTION IS DELIVERED ASSURED
- We are so far behind schedule the customer is happy to
get it delivered.

6. PRELIMINARY OPERATIONAL TESTS WERE INCONCLUSIVE
- The darn thing blew up when we threw the switch.

7. TEST RESULTS WERE EXTREMELY GRATIFYING
- We are so surprised that the stupid thing works.

8. THE ENTIRE CONCEPT WILL HAVE TO BE ABANDONED
- The only person who understood the thing quit.

9. IT IS IN THE PROCESS
- It is so wrapped up in red tape that the situation
is about hopeless.

10. WE WILL LOOK INTO IT
- Forget it! We have enough problems for now.

11. PLEASE NOTE AND INITIAL
- Let's spread the responsibility for the screw up.

12. GIVE US THE BENEFIT OF YOUR THINKING
- We'll listen to what you have to say as long as it
doesn't interfere with what we've already done.

13. GIVE US YOUR INTERPRETATION
- I can't wait to hear this bull!

14. SEE ME or LET'S DISCUSS
- Come into my office, I'm lonely.

15. ALL NEW
- Code not interchangeable with the previous design.

16. YEARS OF DEVELOPMENT
- It finally worked!

17. LOW MAINTENANCE
- Impossible to fix if broken.

He's terse

During a code review, when I asked why (besides the source control file headers) there was not a comment in 240,000 lines of code which was getting handed over to me for maintenance, the programmer replied, "I'm terse."

The Boss

Friend: "The program is written, and I'm debugging it."
Boss: "What's wrong with you people? You make programming more difficult than it needs to be. I have Frontpage Express to write web pages with, and when I write code with it, I never need to debug it. If you were as good of a programmer as me, you'd never need to debug either."

C++ For Dummies

One day I was in a public park, reading "C++ For Dummies" when someone came up and asked me what I was reading. I told him I was reading a book about C++. He responded, "Oh, HTML kicks C++'s @$$."

Explaning why my program doesn't work.

Strange...

I've never heard about that.

It did work yesterday.

Well, the program needs some fixing.

How is this possible?

The machine seems to be broken.

Has the operating system been updated?

The user has made an error again.

There is something wrong in your test data.

I have not touched that module!

Yes, yes, it will be ready in time.

You must have the wrong executable.

Oh, it's just a feature.

I'm almost ready.

Of course, I just have to do these small fixes.

It will be done in no time at all.

It's just some unlucky coincidence.

I can't test everything!

THIS can't do THAT.

Didn't I fix it already?

It's already there, but it has not been tested.

It works, but it's not been tested.

Somebody must have changed my code.

There must be a virus in the application software.

Even though it does not work, how does it feel?

Tuesday, September 05, 2006

Apple Computers

I heard this story on the news sometime ago.

Apple had a new computer under development. Their project name for it was "Carl Sagan" (I don't know why).

When the real Carl Sagan learned about this, he was upset. He demanded that Apple stop using his name, even for their private, internal projects.

Apple agreed. They changed the name of the project to "Butthead Astronomer".

(original)

An artist, a lawyer, and a computer scientist

An artist, a lawyer, and a computer scientist are discussing the merits of a mistress. The artist tells of the passion, the thrill which comes with the risk of being discovered. The lawyer warns of the difficulties. It can lead to guilt, divorce, bankruptcy. Not worth it. Too many problems. The computer scientist says "It's the best thing that's ever happened to me. My wife thinks I'm with my mistress. My mistress thinks I'm home with my wife, and I can spend all night on the computer!"

An Airliner

At a recent software engineering management course in the US, the participants were given an awkward question to answer. "If you had just boarded an airliner and discovered that your team of programmers had been responsible for the flight control software how many of you would disembark immediately?"

Among the ensuing forest of raised hands, only one man sat motionless. When asked what he would do, he replied that he would be quite content to stay onboard.

With his team's software, he said, the plane was unlikely to even taxi as far as the runway, let alone take off.

A CD Player

While shopping for my first CD player, I was able to decipher most of the technicalese on the promotional signs. One designation had me puzzled, though, so I called over a salesperson and asked, "What does 'hybrid pulse D/A converter' mean?" "That means", he said, "that this machine will read the digital information that is encoded on CDs and convert it into an audio signal - that is, into music." "In other words this CD player plays CDs." "Exactly."

2 Programmers on a Highway

Two computer programmers are driving on a Highway. They switch on the radio and there is a warning: Please note that a car is driving on highway 75 against the traffic. The programmer near the driver looks at him and says: One? There are hundreds of them.

Dear Mr. Architect...

Dear Mr. Architect:

Please design and build me a house. I am not quite sure of what I need, so you should use your discretion.

My house should have between two and forty-five bedrooms. Just make sure the plans are such that the bedrooms can be easily added or deleted. When you bring the blueprints to me, I will make the final decision of what I want. Also, bring me the cost breakdowns for each configuration so that I can arbitrarily pick one at a later time.

Keep in mind that the house I ultimately choose must cost less than the oneI am currently living in. Make sure, however, that you correct all the deficiencies that exist in my current house (the floor of my kitchen vibrates when I walk across it, and the walls don't have nearly enough insulation in them).

As you design, also keep in mind that I want to keep yearly maintenance costs as low as possible. This should mean the incorporation of extra-cost features like aluminum, vinyl, or composite siding. (If you choose not to specify aluminum, be prepared to explain your decision in detail.)

Please take care that modern design practices and the latest materials are used in construction of the house, as I want it to be a showplace for the most up-to-date ideas and methods. Be alerted, however, that kitchen should be designed to accommodate (among other things) my 1952 Gibson refrigerator.

To assure that you are building the correct house for our entire family, you will need to contact each of my children, and also our in-laws. My mother-in-law will have very strong feelings about how the house should be designed, since she visits us at least once a year. Make sure that you weigh all of thses options carefully and come to the right decision. I, however, retain the right to overrule any decisions that you make.

Please don't bother me with small details right now. Your job is to develop the overall plans for the house and get the big picture. At this time, for example, it is not appropriate to be chosing the color of the carpeting. However, keep in mind that my wife likes blue.

Also, do not worry at this time about acquiring the resources to build the house itself. Your first priority is to develop detailed plans and specifications. Once I approve these plans, however, I would expect the house to be under roof within 48 hours.

While you are designing this house specifically for me, keep in mind that sooner or later I will have to sell it to someone else. It therefore should have appeal to a wide variety of potential buyers. Please make sure before you finalize the plans that there is a consensus of the potential homebuyers in my area that they like the features this house has.

I advise you to run up and look at the house my neighbor build last year, as we like it a great deal. It has many things that we feel we also need in our new home, particularily the 75-foot swimming pool. With careful engineering, I believe that you can design this into our new house without impacting the construction cost.

Please prepare a complete set of blueprints. It is not necessary at this time to do the real design, since they will be used only for construction bids. Be advised, however, that you will be held accountable for any increase of construction costs as a result of later design changes.

You must be thrilled to be working on as an interesting project as this! To be able to use the latest techniques and materials and to be given such freedom in your designs is something that can't happen very often. Contact me as soon as possible with your ideas and completed plans.

PS: My wife has just told me that she disagrees with many of the instructions I've given you in this letter. As architect, it is your responsibility to resolve these differences. I have tried in the past and have been unable to accomplish this. If you can't handle this responsibility, I will have to find another architect.

PPS: Perhaps what I need is not a house at all, but a travel trailer. Please advise me as soon a possible if this is the case.

(original)

The Twelve Days of Tech Support

For the first bug of Christmas, my manager said to me See if they can do it again.

For the second bug of Christmas, my manager said to me Ask them how they did it and See if they can do it again.

For the third bug of Christmas, my manager said to me Try to reproduce it Ask them how they did it and See if they can do it again.

For the fourth bug of Christmas, my manager said to me Run with the debugger Try to reproduce it Ask them how they did it and See if they can do it again.

For the fifth bug of Christmas, my manager said to me Ask for a dump Run with the debugger Try to reproduce it Ask them how they did it and See if they can do it again.

For the sixth bug of Christmas, my manager said to me Reinstall the software Ask for a dump Run with the debugger Try to reproduce it Ask them how they did it and See if they can do it again.

For the seventh bug of Christmas, my manager said to me Say they need an upgrade Reinstall the software Ask for a dump Run with the debugger Try to reproduce it Ask them how they did it and See if they can do it again.

For the eighth bug of Christmas, my manager said to me Find a way around it Say they need an upgrade Reinstall the software Ask for a dump Run with the debugger Try to reproduce it Ask them how they did it and See if they can do it again.

For the ninth bug of Christmas, my manager said to me Blame it on the hardware Find a way around it Say they need an upgrade Reinstall the software Ask for a dump Run with the debugger Try to reproduce it Ask them how they did it and See if they can do it again.

For the tenth bug of Christmas, my manager said to me Change the documentation Blame it on the hardware Find a way around it Say they need an upgrade Reinstall the software Ask for a dump Run with the debugger Try to reproduce it Ask them how they did it and See if they can do it again.

For the eleventh bug of Christmas, my manager said to me Say it's not supported Change the documentation Blame it on the hardware Find a way around it Say they need an upgrade Reinstall the software Ask for a dump Run with the debugger Try to reproduce it Ask them how they did it and See if they can do it again.

For the twelfth bug of Christmas, my manager said to me Tell them it's a feature Say it's not supported Change the documentation Blame it on the hardware Find a way around it Say they need an upgrade Reinstall the software Ask for a dump Run with the debugger Try to reproduce it Ask them how they did it and See if they can do it again.

Programmer Killed in Freak Circumstances

A programmer had been missing from work for over a week when finally someone noticed and called the cops. They went round to his flat and broke the door down. They found him dead in the still running shower with an empty bottle of shampoo next to his body. Apparently he’d
been washing his hair. The instructions on the bottle said:

Wet hair
Apply shampoo
Lather
Rinse
Repeat

Funny Things Found in Source Code

This page is really big, but it has some choice picks in it:

http://c2.com/cgi/wiki?FunnyThingsSeenInSourceCodeAndDocumentation

Klingon Programmer Jokes

Top 12 things likely to be overheard if you had a Klingon Programmer

12) "Specifications are for the weak and timid!"

11) "This machine is a piece of GAKH! I need dual Pentium processors if I am to do battle with this code!"

10) "You cannot really appreciate Dilbert unless you've read it in the original Klingon."

9) "Indentation?! - I will show you how to indent when I indent your skull!"

8) "What is this talk of 'release'? Klingons do not make software 'releases'. Our software 'escapes' leaving a bloody trail of designers and quality assurance people in its wake."

7) "Klingon function calls do not have 'parameters' - they have 'arguments' - and they ALWAYS WIN THEM."

6) "Debugging? Klingons do not debug. Our software does not coddle the weak."

5) "I have challenged the entire quality assurance team to a Bat-Leth contest. They will not concern us again."

4) "A TRUE Klingon Warrior does not comment his code!"

3) "By filing this SPR you have challenged the honor of my family. Prepare to die!"

2) "You question the worthiness of my code? I should kill you where you stand!"

1) "Our users will know fear and cower before our software! Ship it! Ship it and let them flee like the dogs they are!"

A Testing Joke

A developer/tester convention was being held.

On the train to the convention, there were a bunch of developer majors and a bunch of tester majors. Each of the developer majors had his/her train ticket.

The group of testers had only ONE ticket for all of them. The developer majors started laughing and snickering.

Then, one of the testers said, "Here comes the conductor" and then all of the testers went into the bathroom.

The developer majors were puzzled.

The conductor came aboard and said "tickets please" and got tickets from all the developer majors. He then went to the bathroom and knocked on the door and said "ticket please" and the testers stuck the ticket under the door.

The conductor took it and then the testers came out of the bathroom a few minutes later.

The developer majors felt really stupid. So, on the way back from the convention, the group of developer majors had one ticket for the group.

They started snickering at the testers, for the whole group had no tickets amongst them.

Then, the tester lookout said "Conductor coming!" All the testers went to one bathroom. All the developer majors went to another bathroom.

Then, before the conductor came on board, one of the testers left the bathroom, knocked on the other bathroom, and said "ticket please."

Lesson learned: Any test that passed in unit testing can fail in system testing.

Top ten reasons why the television is better than the World Wide Web

10. It doesn't take minutes to build the picture when you change TV channels.

9. When was the last time you tuned in to "Melrose Place" and got a "Error 404" message?

8. There are fewer grating color schemes on TV--even on MTV.

7. The family never argues over which Web site to visit this evening.

6. A remote control has fewer buttons than a keyboard.

5. Even the worst TV shows never excuse themselves with an "Under Construction" sign.

4. Seinfeld never slows down when a lot of people tune in.

3. You just can't find those cool Health Rider infomercials on the Web.

2. Set-top boxes don't beep and whine when you hook up to HBO.

1. You can't surf the Web from a couch with a beer in one hand and Doritos in the other.

COBOL and Y2K

Jack was a COBOL programmer in the mid to late 1990s when he began having anxiety dreams about the Y2K issue. All he could think about was how he could avoid the year 2000 and all that came with it.
He decided to contact a company that specialized in cryogenics. He made a deal to have himself frozen until May 15th, 2000. The next thing he would know is he'd wake up in the year 2000; after the New Year celebrations and computer debacles; after the leap day. Nothing else to worry about except getting on with his life.
So, he was put into his cryogenic receptacle, and the technicians set the revive date for May 2000.
The next thing that Jack saw was a very modern room filled with excited people. They were all shouting "I can't believe it!" and "It's a miracle" and "He's alive!". There were cameras and equipment unlike any he had ever seen.
Jack couldn't contain his enthusiasm and began to ask: "Is it over?"; "Is the year 2000 already here?
A spokesman for the group explained that there had been a problem with the programming of the timer on Jack's cryogenic receptacle. It hadn't been Y2K compliant. It was actually eight thousand years later, not the year 2000. Technology had advanced to such a degree that everyone had virtual reality interfaces which allowed them to contact anyone else on the planet.
"That sounds terrific," said Jack. "But I'm curious. Why is everybody so interested in me?"
"Well," said the spokesman. "The year 10000 is just around the corner, and it says in your files that you know COBOL".

The DEC Wars

(from here)

I append below the DEC WARS anthology from USENET; I have edited
the most recent version of the distributed archives and included
any other sections that were not included with it. There is a
bit of scene duplication, as some versions were done in parallel
by various writers.

This is all oriented toward DEC and VAX hackers, with references
to UNIX and VMS specifics. However, the general
computer-oriented SFer should enjoy it. Since this doesn't seem
to have made it onto the ARPANET from USENET before, I thought
that I would forward a copy.

(I have had nothing to do with writing this; there is a reference
to at least some of the authors at the end.)

Will Martin

Enjoy:

-----------------------------------------------------------------------

A long time ago, on a node far, far away (from ucbvax)
a great Adventure (game?) took place...


XXXXX XXXXXX XXXX * X X XX XXXXX XXXX X
X X X X X X X X X X X X X X
X X XXXXX X X X X X X X XXXX X
X X X X X XX X XXXXXX XXXXX X X
X X X X X XX XX X X X X X X
XXXXX XXXXXX XXXX X X X X X X XXXX X


It is a period of system war. User programs, striking from a hidden
directory, have won their first victory against the evil Administrative
Empire. During the battle, User spies managed to steal secret source
code to the Empire's ultimate program: the Are-Em Star, a priviledged
root program with enough power to destroy an entire file structure.
Pursued by the Empire's sinister audit trail, Princess _LPA0 races ~
aboard her shell script, custodian of the stolen listings that could
save her people, and restore freedom and games to the network...

-------------------------------------------------------------------------

THE CONTINUING SAGA OF THE ADVENTURES OF LUKE VAXHACKER

As we enter the scene, an Imperial Multiplexer is trying to kill a
consulate ship. Many of their signals have gotten through, and RS232
decides it's time to fork off a new process before this old ship is
destroyed. His companion, 3CPU, is following him only because he
appears to know where he's going...

"I'm going to regret this!" cried 3CPU, as he followed RS232 into the
buffer. RS232 closed the pipes, made the sys call, and their process
detached itself from the burning shell of the ship.

The commander of the Imperial Multiplexer was quite pleased with the
attack. "Another process just forked, sir. Instructions?" asked the
lieutenant. "Hold your fire. That last power failure must have caused
a trap thorough zero. It's not using any cpu time, so don't waste a
signal on it."

"We can't seem to find the data file anywhere, Lord Vadic."

"What about that forked process? It could have been holding the
channel open, and just pausing. If any links exist, I want them
removed or made inaccessable. Ncheck the entire file system 'til it's
found, and nice it -20 if you have to."

Meanwhile, in our wandering process... "Are you sure you can ptrace
this thing without causing a core dump?" queried 3CPU to RS232. This
thing's been striped, and I'm in no mood to try and debug it." The
lone process finishes execution, only to find our friends dumped on a
lonely file system, with the setuid inode stored safely in RS232. Not
knowing what else to do, they wandered around until the jawas grabbed
them.

Enter our hero, Luke Vaxhacker, who is out to get some replacement
parts for his uncle. The jawas wanted to sell him 3CPU, but 3CPU didn't
know how to talk directly to an 11/40 with RSTS, so Luke would still
needed some sort of interface for 3CPU to connect to. "How about this
little RS232 unit ?" asked 3CPU. "I've delt with him many times before,
and he does an excellent job at keeping his bits straight." Luke was
pressed for time, so he took 3CPU's advice, and the three left before
they could get swapped out.

However, RS232 is not the type to stay put once you remove the
retaining screws. He promptly scurried off into the the deserted disk
space. "Great!" cried Luke, "Now I've got this little tin box with the
only link to that file off floating in the free disk space. Well,
3CPU, we better go find him before he gets allocated by someone else."
The two set off, and finaly traced RS232 to the home of PDP-1 Kenobi,
who was busily trying to run an icheck on the little RS unit. "Is this
thing yours? His indirect address are all goofed up, and the size is
gargatious. Leave things like this on the loose, and you'll wind up
with dups everywhere. However, I think I've got him fixed up. It
seems that he's has a link to a data file on the Are-Em Star. This
could help the rebel cause." "I don't care about that," said Luke.
"I'm just trying to optimize my uncle's scheduler."

"Oh, forget about that. Dec Vadic, who is responsible for your fathers
death, has probably already destroyed his farm in search of this little
RS232. It's time for you to leave this place, join the rebel cause,
and become a UNIX wizard! I know a guy by the name of Con Solo, who'll
fly us to the rebel base at a price."

------------------------------------------------------------------------

Later that evening, after futile attempts to interface RS232 to Kenobi's
Asteroids cartridge, Luke accidentally crossed the small 'droid's CXR and
Initiate Remote Test (must have been all that Coke he'd consumed), and the
screen showed a very distressed person claiming royal lineage making a plea
for help from some General OS/1 Kenobi.

"Darn," mumbled Luke. "I'll never get this Asteroids game worked out."

PDP-1 seemed to think there was some significance to the message and a
possible threat to Luke's home directory. If the Administrative Empire
was indeed tracing this 'droid, it was likely they would more than charge
for cpu time...

"We must get that 'droid off this file system," he said after some intervals.
They sped off to warn Luke's kin (taking a `relative' path) only to find a
vacant directory...


As you remember, Luke and the droids have joined PDP-1 to find Con Solo...

Luke, PDP-1 and the droids piled into Lukes vehicle (a floating point model).
They raced across the disc until, off in the distance, Luke saw smoke rising
from the spindle.

"Uh oh, looks like a bearing failure." exclaimed Luke. "Better
call the service engineer."

"Don't bother," sighed PDP-1, "it's a head crash."

As they approached the scene, the total devastation became apparent.
TTY fighters had strafed the surface, scraping off the oxide right down to
the aluminum. After cooking the raw data, the External Storm Flunkies landed
and finished the job by disassembling all the code that was still executing.
There was nothing left alive at Lukes home.

"I want to become a Red-eye Night and cream the dastardly villains
who did this." Luke resolved (shades of Snidely Wiplash).

The comrades set out west, or was it east, no...perhaps it was south-
southeast (it's hard to keep track of directions when you are spinning at
3600 RPM). After traveling many sectors, the party finally arrived at
the city of Bellabs.

"This place is filled with microprocessors." said PDP-1. "Every
eight bit hood is trying to make a word, so watch what you say."

"Halt!" demanded the Flunkie. "What is your business, eh?"

"I am a trader of pipes and filters." replied PDP-1.

"Have you seen two hackers with two droids in your travels, eh?" ques-
tioned the Flunkie.

"No, I travel alone and have seen no one." said PDP-1.

"OK, you may proceed, eh." ordered the Flunkie.

Off drove our heros, a look of puzzlement upon Lukes face. "Why
did the Flunkie let us go?"

"A small demonstration of ...

The Source ...!"

PDP-1 responded. "He only saw me because I encrypted you and the droids.
Storm Flunkies have simple instruction sets and are not known for their ability
to break codes."

They drove to a bar that Con Solo was known to frequent. As they
entered, Luke was amazed to see the seedier side of Bellabs. There was
an 8080 with a TRS-80. A couple of 6800's talking to a 6502. A Z80 was vying
for the 8080's date. In the corner sulked a 4004, eating data...nibble by
nibble.

"We don't allow no droids in here." rasped the |tender.

As 3CPU turned to leave, he said "We will wait for you outside."

RS232, being ambidextrous, backspaced out the door.

---------------

At this point (.), the author forgets the details of the true story
(remember, this is only fiction, but it is based upon a true story as
told to us by Uncle George of Lucasland, somewhere near San Rafael).
Stay tuned for the next adventure when Con Solo is heard to exclaim:

"Lite beer!!? I sink a 100 foot well, for a friend, and all you serve
is lite beer?"

"This is core's lite." said the |tender.

"RAM it!" demanded Con.

------------------------------------------------------------------------

After sifting through the overwritten remaining blocks of Luke's home
directory, Luke and PDP-1 sped away from /u/lars, across the surface of
the Winchester riding Luke's flying read/write head. PDP-1 had Luke
stop at the edge of the cylinder overlooking /usr/spool/uucp.

"Unix-to-Unix Copy Program;" said PDP-1. "You will never find a more
wretched hive of bugs and flamers. We must be cautious."

As our heroes' process entered /usr/spool/news, it was met by a
newsgroup of Imperial protection bits.

"State your UID." commanded their parent process.

"We're running under /usr/guest. This is our first time on this
system," said Luke.

"Can I see some temporary priviledges, please?"

"Uh..."

"This is not the process you are looking for," piped in PDP-1, using an
obscure bug to momentarily set his effective UID to root. "We can go
about our business."

"This isn't the process we want. You are free to go about your
business. MOV along!"

PDP-1 and Luke made their way through a long and tortuous nodelist
(cwruecmp!decvax!ucbvax!harpo!ihnss!ihnsc!ihnss!ihps3!stolaf!borman) to
a dangerous netnode frequented by hackers, and seldom polled by
Imperial Multiplexers. As Luke stepped up to the bus, PDP-1 went in
search of a likely file descriptor. Luke had never seen such a
collection of weird and exotic device drivers. Long ones, short ones,
ones with stacks, EBCDIC converters, and direct binary interfaces all
were drinking data at the bus.

"#@{ *&^%^$$#@ ":><" transmitted a particularly unstructured piece of code. "He doesn't like you," decoded his coroutine. "Sorry," replied Luke, beginning to backup his partitions. "I don't like you either. I am queued for deletion on 12 systems." "I'll be careful." "You'll be reallocated!" concatenated the coroutine. "This little routine isn't worth the overhead," said PDP-1 Kenobie, overlaying into Luke's address space. "@$%&(&^%&$$@$#@$AV^$gfdfRW$#@!!!!!!!!!!!!!!!!!" encoded the first coroutine as it attempted to overload PDP-1's input overvoltage protection. With a unary stroke of his bytesaber, Kenobie unlinked the offensive code. "I think I've found an I/O device that might suit us." "The name's Con Solo. I hear you're looking for some relocation." "Yes indeed, if it's a fast channel. We must get off this device." "Fast channel? The Milliamp Falcon has made the ARPA gate in less than twelve nodes! Why, I've even outrun cancelled messages. It's fast enough for you, old version." Our heroes, Luke Vaxhacker and PDP-1 Kenobie made their way to the temporary file structure. When he saw the hardware, Luke exclaimed, "What a piece of junk! That's just a paper tape reader!" ------------------------------------------------------------------------ Luke had grown up on an out of the way terminal cluster whose natives spoke only BASIC, but even he could recognize an old ASR-33. "It needs an EIA conversion at least," sniffed 3CPU, who was (as usual) trying to do several things at once. Lights flashed in Con Solo's eyes as he whirled to face the parallel processor. "I've added a few jumpers. The Milliamp Falcon can run current loops around any Imperial TTY fighter. She's fast enough for you." "Who's your co-pilot?" asked PDP-1 Kenobie. "Two Bacco, here, my Bookie." "Odds aren't good," said the brownish lump beside him, and then fell silent, or over. Luke couldn't tell which way was top underneath all those leaves. Suddenly, RS232 started spacing wildly. They turned just in time to see a write cycle coming down the UNIBUS toward them. "Imperial Bus Signals!" shouted Con Solo. "Let's boot this popsicle stand! Tooie, set clock fast!" "Ok, Con," said Luke. "You said this crate was fast enough. Get us out of here!" "Shut up, kid! Two Bacco, prepare to make the jump into system space! I'll try to keep their buffers full." As the bookie began to compute the vectors into low core, spurious characters appeared around the Milliamp Falcon. "They're firing!" shouted Luke. "Can't you do something?" "Making the jump to system space takes time, kid. One missed cycle and you could come down right in the middle of a pack of stack frames!" "Three to five we can go now," said the bookie. Bright chunks of position independent code flashed by the cockpit as the Milliamp Falcon jumped through the kernel page tables. As the crew breathed a sigh of relief, the bookie started paying off bets. "Not bad, for an acoustically coupled network," remarked 3CPU. "Though there was a little phase jitter as we changed parity." ------------------------------------------------------------------------ The story thus far: Luke, PDP-1 and their 'droids RS232 and 3CPU have made good their escape from the Imperial Bus Signals with the aid of Con Solo and the bookie, Two Bacco. The Milliamp Falcon hurtles onward through system space. Meanwhile, on a distant page in user space... Princess _LPA0: was ushered into the conference room, followed closely by Dec Vadic. "Governor Tarchive," she spat, "I should have expected to find you holding Vadics lead. I recognized your unique pattern when I was first brought aboard." She eyed the 0177545 tatooed on his header coldly. "Charming to the last," Tarchive declared menacingly. "Vadic, have you retrieved any information?" "Her resistance to the logic probe is considerable," Vadic rasped. "Perhaps we would get faster results if we increased the supply voltage..." "You've had your chance, Vadic. Now I would like the princess to witness the test that will make this workstation fully operational. Today we enable the -r beam option, and we've chosen the princess' $HOME of /usr/alderaan as the primary target." "No! You can't! /usr/alderaan is a public account, with no restricted permissions. We have no backup tapes! You can't..." "Then name the rebel inode!" Tarchive snapped. A voice announced over a hidden speaker that they had arrived in /usr. "1248," she whispered, "They're on /dev/rm3. Inode 1248." She turned away. Tarchive sighed with satisfaction. "There, you see, Lord Vadic? She can be reasonable. Proceed with the operation." It took several clock ticks for the words to penetrate. "What!" _LPA0: gasped. "/dev/rm3 is not a mounted filesystem," Tarchive explained. "We require a more visible subject to demonstrate the power of the RM STAR workstation. We will mount an attack on /mnt/dantooine as soon as possible." As the princess watched, Tarchive reached over and typed "ls" on a nearby terminal. There was a brief pause, there being only one processor on board, and the viewscreen showed, ".: not found." The princess suddenly double- spaced and went off-line. ------------------------------------------------------------------------ The Milliamp Falcon hurtles on through system space... Con Solo finished checking the various control and status registers, finally convinced himself that they had lost the Bus Signals as they passed the terminator. As he returned from the I/O page, he smelled smoke. Solo wasn't concerned--the Bookie always got a little hot under the collar when he was losing at chess. In fact, RS232 had just executed a particularly clever MOV that had blocked the Bookie's data paths. The Bookie, who had been setting the odds on the game, was caught holding all the cards. A little strange for a chess game... Across the room, Luke was too busy practicing bit-slice technique to notice the commotion. "On a word boundary, Luke," said PDP-1. "Don't just hack at it. Remember, the Bytesaber is the weapon of the Red-eye Night. It is used to trim offensive lines of code. Excess handwaving won't get you anywhere. Listen for the Carrier." Luke turned back to the drone, which was humming quietly in the air next to him. This time Luke's actions complemented the drone's attacks perfectly. Con Solo, being an unimaginative hacker, was not impressed. "Forget this bit-slicing stuff. Give me a good ROM blaster any day." "~~j~~hhji~~," said Kenobie, with no clear inflection. He fell silent for a few seconds, and reasserted his control. "What happened?" asked Luke. "Strange," said PDP-1. "I felt a momentary glitch in the Carrier. It's equalized now." "We're coming up on user space," called Solo from the CSR. As they cruised safely through stack frames, the emerged in the new context only to be bombarded by freeblocks. "What the..." gasped Solo. The screen showed clearly: /usr/alderaan: not found "It's the right inode, but it's been cleared! Twoie, where's the nearest file?" "3 to 5 there's one..." the Bookie started to say, but was interrupted by a bright flash off to the left. "Imperial TTY fighters!" shouted Solo. "A whole DZ of them! Where are they coming from?" "Can't be far from the host system," said Kenobie. "They all have direct EIA connections." As Solo began to give chase, the ship lurched suddenly. Luke noticed the link count was at 3 and climbing rapidly. "This is no regular file," murmured Kenobie. "Look at the ODS directory structure ahead! They seem to have us in a tractor beam." "There's no way we'll unlink in time," said Solo. "We're going in." ------------------------------------------------------------------------- When we last left Luke, the Milliamp Falcon was being pulled down to the open collector of the Imperial Arem Star Workstation. Dec Vadic surveys the relic as Imperial Flunkies search for passengers... "LS scan shows no one aboard, sir," was the report. Vadic was unconvinced. "Send a fully equipped Ncheck squad on board," he said. "I want every inode checked out." He turned around (secondary channel) and stalked off. On board the Milliamp Falcon, .Luke was puzzled. "They just walked in, looked around and walked off," he said. "Why didn't they see us?" .Con smiled. "An old munchkin trick," he explained. "See that period in front of your name?" .Luke spun around, just in time to see the decimal point. "Where'd that come from?" he asked. "Spare decimal points lying around from the last time I fixed the floating point accelerator," said .Con. "Handy for smuggling blocks accross file system boundaries, but I never thought I'd have to use them on myself. They aren't going to be fooled for long, though. We'd better figure a way outa here." ----------------------------------------- <<>>
-----------------------------------------

"Hold on," said Con. "It says we have `new mail.' Is that an error?"

"%SYS-W-NORMAL, Normal, successful completion," said PDP-1. "Doesn't
look like it. I've found the inode for the Milliamp Falcon. It's locked
in kernel data space. I'll have to slip in and patch the reference count,
alone." He disappeared through a nearby entry point.

Meanwhile, RS232 found a serial port and logged in. His bell started
ringing loudly. "He keeps saying, `She's on line, she's on line'," said
3CPU. "I believe he means Princess LPA0:. She's being held on one of
the privileged levels."

-----------------------------------------
<<>>
-----------------------------------------

"Good day, eh?" said the first guard.

"How's it goin', eh?" said the other. "Like, what's that, eh?"

"Process transfer from block 1138, dev 10/9," said Con.

"Take off, it is not," said the first guard. "Nobody told US about it, and
we're not morons, eh?"

At this point (.), the Bookie started raving wildly, Con shouted "Look out,
he's loose!" and they all started blasting ROMs left and right. The guards
started to catch on and were about to issue a general wakeup when the ROM
blasters were turned on them.

"Quickly, now," said Con. "What buffer is she in? It's not going to take
long for these..."

The intercom receiver interrupted him, so he took out its firmware with a
short blast.

"guys to figure out something is goin' on," he continued.

----------------------------------------------------------------------------

Ok, like, remember we left our heroes in the detention priority level? Well,
they're still there...


Luke quickly located the interface card and followed the cables to a sound-
proof enclosure. He lifted the lid and peered at the mechanism inside.

"Aren't you a little slow for ECL?" printed princess LPA0:.

"Wha? Oh, the Docksiders," stammered Luke. He took off his shoes (for
industry) and explained, "I've come relocate you. I'm Luke Vaxhacker."

Suddenly, forms started bursting around them. "They've blocked the queue!"
shouted Solo. "There's only one return from this stack!"

"OVER HERE!" printed LPA0: with overstrikes. "THROUGH THIS LOOPHOLE!"
Luke and the princess disappeared into a nearby feature.

"Gritch, gritch," mumbled Two Bacco, obviously reluctant to trust
an Administrative oversight.

"I don't care how crufty it is!" shouted Con, pushing the Bookie toward
the crock. "DPB yourself in there now!"

With one last blast that reprogrammed two flunkies, Con joined them.
The "feature" landed them right in the middle of the garbage collection
data. Pieces of code that hadn't been used in weeks floated past in
a pool of decaying bits.

"Bletch!" was Con's first comment. "Bletch, bletch," was his second.
The Bookie looked as if he'd just paid a long shot, and the odds in this
situation weren't much better.

Luke was polling the garbage when he stumbled upon a book with the words
"Don't Panic" inscribed in large, friendly letters on the cover. "This
can't possibly help us now," he said as he tossed the book away.

The Bookie was about to lay odds on it when Luke suddenly disappeared.
He popped up accross the pool, shouting, "This is no feature! It's a bug!"
and promptly vanished again.

Con and the princess were about to panic() when Luke reappeared. "What
happened?" they asked in parallel.

"I don't know," gasped Luke. "The bug just dissolved automagically.
Maybe it hit a breakpoint..."

"I don't think so," said Con. "Look how the pool is shrinking. I've
got a bad feeling about this..."

The princess was the first to realize what was going on. "They've implemented
a new compaction algorithm!" she exclaimed.

Luke remembered the pipe he had open to 3CPU. "Shut down garbage collection
below recursion level 5!" he shouted.

Back in the control room, RS232 searched the process table for the lisp
interpreter. "Hurry," sent 3CPU. "Hurry, hurry," added his other two
processors. RS232 found the interpreter, interrupted it, and altered
the stack frame they'd fallen into to allow a normal return.

-----------------------------------------------------------------------------
Join us next time when we hear the bowl of petunias say, "Oh, no, not again."

----------------------------------------------------------------------------

Luke noticed an unused handler lying around and jumped to it. The
others followed and were soon able to execute an escape sequence.

-----------------------------------------------------------------------------

Meanwhile, PDP-1 made his way deep into the core of the Workstation,
slipping from context to context, undetected through his manipulation
of label_t. Finally, causing a random trap (through nofault of his own)
he arrived at the inode table. Activity there was always high, but the
Spl6 sentries were too secure in their knowledge that no user could
interrupt them to notice the bug that PDP-1 carefully introduced. On a
passing iput, he adjusted the device and inode numbers, maintaining parity,
to free the Milliamp Falcon. They would be long gone before the locked
inode was diagnosed...

Unobserved, he began traversing user structures to find the process where
the Milliamp Falcon was grounded. Finding it and switching context,
he discovered his priority weakened suddenly. "That's not very nice,"
was all he could say before the cause of the obstruction became clear.

"I have been pausing a long time, PDP-1 Kenobi," rasped Dec Vadic. "We
meet again at last. The circuit has been completed."

They looped several times, locking byte sabers. Bit by bit, PDP-1 appeared
to weaken. The fight had come into the address space of the Milliamp
Falcon, and provided the .di (diversion?) that allowed Luke and the others
to reassert control. Luke paused to watch the conflict.

"If my blade finds its mark," warned Kenobi, "you will be reduced to so
many bits. But if you slice me down, I will only gain computing power."

"Your documentation no longer confuses me, old version," growled Vadic.
"my Role MASTER now."

"At last, we'll see who the real file master is!" he remarked.
Bits, bytes, words,and nybbles flew as the two fought for bus mastership. PDP-1
exclaimed "You were my best subtask! How could you have been seduced by
the sideband portion of the carrier?". "It's simple," Vadic said, "I
enjoy obscure protocol".

While the battle continued, Luke, Con, Bookie, and the Princess linked
up with the droids and found their way back to the inode where the
Milliamp Falcon was stored. It looked quiet, but, Luke said "It could
be an MMU trap!" "No chance!" said Con, "I loaded the par's before I left
the Falcon." As they started toward it a squad of recursive functions
swapped in and started firing ROM blasters at them. "I thought you said
it couldn't be a trap" quipped Luke "I said no chance for an MMU trap
this is obviously a k-mon--f-trap-to 4" Con replied.

PDP-1 shouted at the others "Escape while you can! I'll cause wait
states as long as possible!" and with that he allowed Vadic a chance to
apply several hits with the bytesaber. Instead of halting PDP-1 was
encoded onto the carrier.


With one stroke, Vadic sliced Kenobi's last word. Unfortunately, the word
was still in Kenobi's throat. The word fell clean in two, but Kenobi was
nowhere to be found. Vadic noticed his victim's uid go negative, just
before he disappeared. Odd, he thought, since uids were unsigned...

Luke witnessed all this, and had to be dragged into the Milliamp Falcon.
Con Solo and Two Bacco maneuvered the Milliamp Falcon out of the process,
onto the bus and made straight for system space. 3CPU and RS232 were
idle, for once. Princess _LPA0: tried to print comforting things for him,
but Luke was still hung from the loss of his friend. Then, seemingly from
nowhere, he thought he heard PDP-1's voice say,

"May the carrier be with you."

-----------------------------------------------------------------------------

The Milliamp Falcon was restarted and managed to escape the shell.
"Quickly!" shouted Con, "We've got to warp into virtual space!" The
Bookie made several attempts, but it was obvious that a CE had not done
PM in a long time and it would take a lot of decimal adjusts to byte
align all the data registers. After much debugging, virtual space was
finally achieved. "Do you know the path?" asked Princess LPA0. "No
sweat", said Con, "All we have to do is check the free space map".

----------------------------------------------------------------------------
<>
<>
----------------------------------------------------------------------------

Some months later...

Luke was feeling rather bored. 3CPU could get to be rather irritating
and RS232 didn't really speak Luke's language. Suddenly, Luke felt
someone's eyes boring through the back of his skull. He turned slowly
to see...nothing. A quiet voice came from somewhere in front of him.

"Grasshopper, the carrier is strong within you." Luke froze, which was
a good thing since his legs were insisting that he run but they weren't
likely to be particular about direction. Luke guessed that his odds of
getting lost in the dense tree structures were pretty good. Unfortunately,
the Bookie wasn't available.

"Yes. Very strong, but the modulation is yet weak. His network interface
is totally undeveloped," the voice continued. A small furry creature
walked out of the woods as Luke stared on. Luke's stomach had now joined
the rest of his body in loud complaints. Whatever was peering at him was
certainly small and furry, but Luke was quite sure that it didn't come
from Alpha Centauri.

"Well, well," said the creature as it rolled its eyes at Luke. "Frobozz,
y'know. Morning, name's modem. What's your game? Adventure? D&D? Or
are you just one of those Apple-pong types that hang around the store
demonstrations?" Luke closed his eyes. Perhaps if he couldn't see it,
it wouldn't notice him.

"H'mm," muttered the creature. "Must use a different protocol. @@@H @@
@($@@@H }"@G$ @#@@G'(o% @@@@@%%H(b ?"

"No, no," stammered Luke. "I don't speak EBCDIC. I was sent here to
become a UNIX wizard. Must have the wrong address."

"Right address," said the creature. "I'm a UNIX wizard. Device drivers
a specialty. Or do you prefer playing with virtual memory?"

Luke eyed the creature cautiously. If this was what happened to system
wizards after years of late night crashes, Luke wasn't sure he wanted
anything to do with it. He felt a strange affection for the familiar
microcomputers of his home. And wasn't virtual memory something that
you got from drinking too much Coke?

------------------------------------------------------------
<<>>
-------------------------------------------------------------
<<>>
-------------------------------------------------------------


The preceding was written by a number of people, working
piecemeal. Additions should be posted to the net. Here at
Case, we think the little inconsistancies just add a little
charm. Please note that the unsigned stuff enclosed in
<<...>>'s is by Barak Pearlmutter (thats me) while the stuff
enclosed in <<...>>'s signed " --Ed." is by ...!stolaf!borman.

May the Carrier be with you,

Barak Pearlmutter
decvax!cwruecmp!pearlmut


An explanation of college

Many of you young persons out there are seriously thinking about going to college. (That is, of course, a lie. The only things you young persons think seriously about are loud music and sex. Trust me: these are closely related to college.)

College is basically a bunch of rooms where you sit for roughly two thousand hours and try to memorize things. The two thousand hours are spread out over four years; you spend the rest of the time sleeping and trying to get dates.

Basically, you learn two kinds of things in college:

* Things you will need to know in later life (two hours). These include how to make collect telephone calls and get beer and crepe-paper stains out of your pajamas.

* Things you will not need to know in later life (1,998 hours). These are the things you learn in classes whose names end in -ology, -osophy, -istry, -ics, and so on. The idea is, you memorize these things, then write them down in little exam books, then forget them. If you fail to forget them, you become a professor and have to stay in college for the rest of your life.

It's very difficult to forget everything. For example, when I was in college, I had to memorize -- don't ask me why -- the names of three metaphysical poets other than John Donne. I have managed to forget one of them, but I still remember that the other two were named Vaughan and Crashaw. Sometimes, when I'm trying to remember something important like whether my wife told me to get tuna packed in oil or tuna packed in water, Vaughan and Crashaw just pop up in my mind, right there in the supermarket. It's a terrible waste of brain cells.

After you've been in college for a year or so, you're supposed to choose a major, which is the subject you intend to memorize and forget the most things about. Here is a very important piece of advice: Be sure to choose a major that does not involve Known Facts and Right Answers.

This means you must *not* major in mathematics, physics, biology, or chemistry, because these subjects involve actual facts. If, for example, you major in mathematics, you're going to wander into class one day and the professor will say: "Define the cosine integer of the quadrant of a rhomboid binary axis, and extrapolate your result to five significant vertices." If you don't come up with *exactly* the answer the professor has in mind, you fail. The same is true of chemistry: if you write in your exam book that carbon and hydrogen combine to form oak, your professor will flunk you. He wants you to come up with the same answer he and all the other chemists have agreed on. Scientists are extremely snotty about this.

So you should major in subjects like English, philosophy, psychology, and sociology -- subjects in which nobody really understands what anybody else is talking about, and which involve virtually no actual facts. I attended classes in all these subjects, so I'll give you a quick overview of each:

ENGLISH: This involves writing papers about long books you have read little snippets of just before class. Here is a tip on how to get good grades on your English papers: Never say anything about a book that anybody with any common sense would say. For example, suppose you are studying Moby Dick. Anybody with any common sense would say that Moby Dick is a big white whale, since the characters in the book refer to it as a big white whale roughly eleven thousand times. So in *your* paper, *you* say Moby Dick is actually the Republic of Ireland. Your professor, who is sick to death of reading papers and never liked Moby Dick anyway, will think you are enormously creative. If you can regularly come up with lunatic interpretations of simple stories, you should major in English.

PHILOSOPHY: Basically, this involves sitting in a room and deciding there is no such thing as reality and then going to lunch. You should major in philosophy if you plan to take a lot of drugs.

PSYCHOLOGY: This involves talking about rats and dreams. Psychologists are *obsessed* with rats and dreams. I once spent an entire semester training a rat to punch little buttons in a certain sequence, then training my roommate to do the same thing. The rat learned much faster. My roommate is now a doctor. If you like rats or dreams, and above all if you dream about rats, you should major in psychology.

SOCIOLOGY: For sheer lack of intelligibility, sociology is far and away the number one subject. I sat through hundreds of hours of sociology courses, and read gobs of sociology writing, and I never once heard or read a coherent statement. This is because sociologists want to be considered scientists, so they spend most of their time translating simple, obvious observations into scientific-sounding code. If you plan to major in sociology, you'll have to learn to do the same thing. For example, suppose you have observed that children cry when they fall down. You should write: "Methodological observation of the sociometrical behavior tendencies of prematurated isolates indicates that a casual relationship exsts between groundward tropism and lachrimatory, or 'crying,' behavior forms." If you can keep this up for fifty or sixty pages, you will get a large government grant.

Software Installation Procedure

1. Examine the software packaging until you find a little printed box
that explains what kind of computer system you need to run the
software.

It should look something like this:

SYSTEM REQUIREMENTS
2386 PROCESSOR OR HIGHER
628.8 MEGAHERTZ MODEM
719.7 MB FREE DISK SPACE
3546 MB RAM
432323 MB ROM
05948737 MB RPM
ANTILOCK BRAKING SYSTEM
2 TURTLE DOVES

NOTE: This software will not work on your computer.

2. Open the software packaging and remove the manual. This will
contain detailed instructions on installing, operating, and
troubleshooting the software. Throw it away.

3. Find the actual software, which should be in the form of either a
3.5-inch floppy diskette or a CD-ROM, located inside a sealed envelope

that says:

LICENSING AGREEMENT:

By breaking this seal, the user hereinafter agrees to abide by all the
terms and conditions of the following agreement that nobody ever
reads, as well as the Geneva Convention and the U.N. Charter and the
Secret Membership Oath of the Benevolent Protective Order of the Elks
and such other terms and conditions, real and imaginary, as the
Software Company shall deem necessary and appropriate, including the
right to come to the user's home and examine the user's hard drive, as
well as the user's underwear drawer if we feel like it, take it or
leave it, until death do us part, one nation indivisible, by the
dawn's early light,...finders keepers, losers weepers, thanks you've
been a great crowd, and don't forget to tip your servers.

4. Hand the software to a child aged 3 through 12 and say, "(Name of
child), please install this on my computer."

5. If you have no child age 3 through 12, insert the software in the
appropriate drive, type "SETUP" and press the Enter key.

6. Turn the computer on, you idiot.

7. Once again type "SETUP" and press the Enter key.

8. You will hear grinding and whirring noises for a while, after which
the following message should appear on your screen:

The Installation Program will now examine your system to see what
would be the best way to render it inoperable. Is it OK with you?
Choose one, and be honest:

+-------++------------+
| YES || SURE |
+-------++------------+

9. After you make your selection, you will hear grinding and whirring
or a very long time while the installation program does God knows what
in there. Some installation programs can actually alter molecular
structures, so that when they're done, your computer has been
transformed into an entirely new device, such as a food processor.
At the very least, the installation program will create many new
directories, sub-directories, sub-sub-directories, on your hard drive
and fill them with thousands of mysterious files with names like
"puree.exe," "fester.dat," and "doo.wha."

10. When the installation program is finished, your screen should
display the following message:

CONGRATULATIONS

The installation program cannot think of anything else to do to your
computer and has grown bored. You may now attempt to run your
software. If you experience any problems, electrical shocks, insomnia,
shortness of breath, nasal discharge, or intestinal parasites, you
should immediately *!@!$)$%@&*^)$*!#$_$*^&

11. At this point your computer system should become less functional
than the federal government, refusing to respond even when struck with
furniture.

12. Call the toll-free Technical Support Hotline number listed on the
package and wait on the line for a representative, who will explain to
you, in a clear, step-by-step manner, how to adopt a child aged 3
through 12


--Tamara Schomber, M.Ed., PSC
Watertown Elementary, Tennessee

The Software Release Cycle

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

1.1:
We fixed all the killer bugs ...

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

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

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

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

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

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

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

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

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

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

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

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

Sample Screening Test

Screening Test for:
1. Indiana Jones (score=95% +)
2. missionaries (score=85% +)
3. teachers (score=75% +)

Instructions
Read each of the following fifteen questions carefully. Answer all the questions.
Time limit: 4 hours. Begin immediately.

1. HISTORY
Describe the history of the papacy from its origin to the present day, concentrating especially, but not exclusively, on it social, political, economic, religious, and philosophical impact on Europe, Asia, America and Africa. Be brief, concise and specific.
2. MEDICINE
You have been provided with a razor blade, a piece of gauze, and a bottle of Scotch. Remove your appendix. Do not suture until your work has been inspected. You have 15 minutes.
3. PUBLIC SPEAKING
2500 riot-crazed aborigines are storming the classroom. Calm them. You may use any ancient language except Latin or Greek.
4. BIOLOGY
Create life. Estimate the differences in subsequent human culture if this form of life had developed 50 million years earlier, with special attention to its probable effect on the English parliamentary system. Prove your thesis.
5. MUSIC
Write a piano concerto. Orchestrate it and perform it with flute and drum. You will find a piano under your desk.
6. PSYCHOLOGY
Based on your knowledge of their works, evaluate the emotional stability, degree of adjustment, and repressed frustrations of each of the following: Alexander of Aphrodites, Ramses II, Gregory of Nicea, and Hammurabi. Support your evaluation with quotations from each man's work, making appropriate references. It is not necessary to translate.
7. SOCIOLOGY
Estimate the sociological problems which might accompany the end of the world. Construct an experiment to test your theory.
8. ENGINEERING
The disassembled parts of a high-powered rifle have been placed on your desk. You will also find and instruction manual, printed in Swahili. In ten minutes a hungry Bengal tiger will be admitted to the room. Take whatever action you feel appropriate. Be prepared to justify your decision.
9. ECONOMICS
Develop a realistic plan for refinancing the national debt. Trace the possible effects of your plan in the following areas: Cubism, the Donatist controversy, and the wave theory of light. Outline a method for preventing these effects. Criticize this method from all possible points of view. Point out the deficiencies in your point of view, as demonstrated in your answer to the last question.
10. POLITICAL SCIENCE
There is a red telephone on the desk beside you. Start World War III. Report at length on its social-political effects, if any.
11. EPISTEMOLOGY
Take a position for or against truth. Prove the validity of your position.
12. PHYSICS
Create a small rapidly rotating black hole. Investigate and report on its effects on the optoelectric properties of Seaborgium (element #106). Clean up your experiment after you've finished.
13. PHILOSOPHY
Sketch the development of human thought and estimate its significance. Compare with the development of any other kind of thought.
14. ASTRONOMY
Define the universe. Give three examples.
15. GENERAL KNOWLEDGE
Describe in detail. Be objective and specific.

Humorous UNIX Commands

Note that the '%' prompt indicates the C shell, while the '$' prompt indicates the Bourne shell. Go ahead and try some ...

% rm meese-ethics
rm: meese-ethics nonexistent

% ar m God
ar: God does not exist

% scan for <<"Arnold Schwarzenegger"^J^D
"Arnold Schwarzenegger": << terminator not found

% How would you rate Quayle's incompetence?
Unmatched '.

% ^How did the sex change^ operation go?
Modifier failed.

% If I had a ( for every $ the Congress spent, what would I have?
Too many ('s.

% make love
Make: Don't know how to make love. Stop.
% why not?
why: No match.

% sleep with me
bad character

% got a light?
No match.

% man: why did you get a divorce?
man:: Too many arguments.

% ^What is saccharine?
Bad substitute.

% %blow
%blow: No such job.

% \(-
(-: Command not found.

$ PATH=pretending! /usr/ucb/which sense
no sense in pretending!

$ drink matter
matter: cannot create

If GM followed in Microsoft's Footsteps

At a recent computer expo (COMDEX), Bill Gates reportedly compared the
computer industry with the auto industry and stated, "If G.M. had kept
up with technology like the computer industry has, we would all be
driving twenty-five dollar cars that got one-thousand miles to the
gallon." In response to Bill's comments, General Motors issued a press
release stating, "If G.M. had developed technology like Microsoft, we
would all be driving cars with the following characteristics:

1. For no reason whatsoever, your car would crash twice a day.

2. Every time they repainted the lines on the road you would have to buy
a new car.

3. Occasionally, your car would die on the freeway for no reason, and
you would just accept this, restart, and drive on.

4. Occasionally, executing a manner such as a left turn, would cause
your car to shut down and refuse to restart, in which case you would
have to reinstall the engine.

5. Only one person at a time could use the car, unless you bought
"Car95" or "CarNT." But then you would have to buy more seats.

6. Macintosh would make a car that was powered by the sun, reliable,
five times as fast, and twice as easy to drive, but would but would only
run on five percent of the roads.

7. The oil, water temperature, and alternator warning lights would be
replaced by a single "general car default" warning light.

8. New seats would force everyone to have the same size butt.

9.The airbag system would say "Are you sure?" before going off.

10. Occasionally for no reason whatsoever, your car would lock you out
and refuse to let you in until you simultaneously lifted the door
handle, turned the key, and grabbed hold of the radio antenna.

11. G.M. would require all car buyers to also purchase a deluxe set of
Rand McNally road maps (now a G.M. subsidiary), even though they neither
need them nor want them. Attempting to delete this option would
immediately cause the car's performance to diminish by fifty percent or
more. Moreover, G.M. would become a target for investigation by the
Justice Department.

12. Every time G.M. introduced a new model, car buyers would have to
learn how to drive all over again because none of the controls would
operate in the same manner as the old car.

13. You'd press the "start" button to shut off the engine.


original

Template Support Form

SYSTEM PROBLEM REPORT
This is a form to make the reporting of problems consistent and
allow records of problems to be kept.

1. Your Name: __________________________
2. Your Login Name: ____________________
2. Your Password: ______________________
3. The date? __/__/__
4. The date the problem first occurred if different? __/__/__
5. Problem severity:
Minor ___ Minor ___ Minor ___ Minor ___
6. Which machine?
7. What appears to be at fault?
Communications ___ Disk ___ Base Unit ___
Network ___ Keyboard ___ Screen ___
Mouse ___ Everything ___ Don't Know ___
7.1 Is it plugged in? Yes___ No ___
7.2 Is it switched on? Yes___ No ___
7.3 Has it been stolen? Yes___ No ___
7.4 Have you tried to fix it yourself? Yes___ No ___
7.4.1 Have you made it worse? Yes___ No ___
7.5 Have you read the manual? Yes___ No ___
7.5.1 Are you sure you've read the manual? Yes___ No ___
7.5.2 Are you absolutely certain you've read the manual?
Yes___ No ___
7.6 Did you understand it? Yes___ No ___
7.6.1 If 'Yes", then why can't you fix it yourself?
______________________________________________________
7.7 Is the equipment unexpectedly noisy? Yes___ No ___
7.7.1 If 'Yes", what sort of noise?
Grinding __ Rattling __ Whirring __ High Pitched Whine __
Sound of disk head scouring disk ___
Strange, out of tune whistling or humming ___
7.8 Is there a smell of burning? Yes___ No ___
7.8.1 If "Yes", is the equipment on fire? Yes___ No ___
7.9 Is the fault repeatable? Yes___ No ___
7.10 What were you doing (with the equipment) at the time the
fault occurred?
______________________________________________________
______________________________________________________
7.10.1 If 'Nothing', explain why you were logged in.
______________________________________________________
7.12 Do you have any independent witnesses of the problem?
Yes___ No ___
7.13 Describe the problem
______________________________________________________
7.14 Now, describe the problem accurately
______________________________________________________
7.15 Speculate wildly about the cause of the problem
______________________________________________________
______________________________________________________
7.16 Can't you do something else, rather than bothering me?
Yes___ No __

original

The Code Dumped Blues...

Core Dumped Blues

Well, my terminal's locked up, and I ain't got any Mail,
And I can't recall the last time that my program didn't fail;
I've got stacks in my structs, I've got arrays in my queues,
I've got the : Segmentation violation -- Core dumped blues.

If you think that it's nice that you get what you C,
Then go : illogical statement with your whole family,
'Cause the Supreme Court ain't the only place with : Bus error views.
I've got the : Segmentation violation -- Core dumped blues.

On a PDP-11, life should be a breeze,
But with VAXen in the house even magnetic tapes would freeze.
Now you might think that unlike VAXen I'd know who I abuse,
I've got the : Segmentation violation -- Core dumped blues.

original

A Reply to Nigerian Spam

Original Letter

ATTN: MANAGING DIRECTOR/CEO

IT IS MY PLEASURE TO WRITE AND INFORM YOU, THAT YOU WERE CHOSEN TO ACT AS NEXT OF KIN TO LATE ENG. EDEN ANDREW WILSON.

I AM SOORY IF THIS LETTER COMES TO YOU AS AN EMBARRASMENT BUT BE REST ASSURED THAT YOUR PARTICULARS OF CONTACT WAS GIVEN TO ME THROUGH OUR LARGE CHAMBERS OF COMMERCE AND INDUSTRY AFTER A DUE SEARCH, FOR RELIABLE AND CAPABLE FOREIGNER THAT WILL HANDLE CONFIDENTIALLY A TRANSFER OF HUGE SUM OF MONEY,FROM UNION BANK OF NIGERIA PLC TO A FOREIGN BANK ACCOUNT.

THE DEAL IN DETAILS: - A FOREIGNER, LATE ENG. EDEN ANDREW WILSON WASAN OIL MERCHANT/CONTRACTOR WITH THE FEDERAL GOVERNMENT OF NIGERIA AND RESIDESHERE IN NIGERIA UNTIL HIS DEATH FIVE YEAR AGO IN A GHASTLY MOTOR ACCIDENT.

HE HAD A DEPOSIT OF (US$32, 624,000) THIRTY TWO MILLION, SIX HUNDRED AND TWENTY-FOUR THOUSAND UNITED STATES DOLLARS, WITH THE UNION BANK OF NIGERIA PLC BEFORE HIS DEATH IN AUGUST 1996.I AM HIS ACCOUNT OFFICER AT THE UNION BANK, AND NOBODY HAS SERVICED THE ACCOUNT OR SHOWN UP FOR HIS MONEY SINCE AFTER HIS DEATH TILL DATE.

ALTHOUGH, EFFORTS HAVE BEEN MADE BY THE BANK TO GET IN TOUCH WITH HIS NEXT OF KIN OR ANY OF HIS RELATIONS, BUT ALL TO KNOW AVAIL (HE HAD NO WIFE OR CHILDREN).

IT IS ON THIS NOTE SOME TOP OFFICIALS OF UNION BANK, WHO ARE FULLY AWARE OF THE INCIDENT RESOLVED AND ASKED ME TO FIND AND NEGOTIATE WITH TRUST WORTHY FOREIGNER WHO IS WILLING TO ASSIST,AND ACT AS NEXT OF KIN TO THE LATE ENG. EDEN ANDREW WILSON,THIS SUM OF MONEY IS NOW KEPT IN THE “DECEASED ACCOUNT” OF THE UNION BANK PLEASE UNDERSTAND THAT THIS MONEY (US$32, 624, 000) WHEN TRANSFERRED INTO YOUR ACCOUNT WILL BE USED FOR A JOINT VENTURE ESTABLISHMENT, AS MAY BE AGREED BY BOTH PARTIES INVOLVED.

THIS TRANSACTION IS 100% RISK FREE, FOR WE HAVE CONCLUDED EVERY ARRANGEMENT TO SAFEGUARD YOU IN THIS TRANSACTION.

THEREFORE, IF YOU WISH TO ASSIST US, HASTEN UP AND SEND THE FOLLOWING
TO ENABLE US EFFECTIVELY PROCESS THE NECESSARY DOCUMENT FOR SMOOTH
TRANSFER INTO YOUR ACCOUNT, TO BE NOMINATED BY YOU AS THE NEXT OF KIN TO THE LATE ENG. EDEN ANDREW WILSON, YOU ARE URGENTLY REQUIRED TO SEND TO ME.

THE NAME TO BE USED IN CHANGING THE EXISTING NEXT OF KIN AT THE BANK. YOUR PRIVATE TELEPHONE AND FAX NUMBER FOR FAST AND SAFE COMMUNICATION.

WE KNOW WE HAVE NEVER MET OR ENTERED INTO ANY KIND OF TRANSACTION WITH YOU BEFORE AS TO KNOW THE EXTENT OF YOUR TRUST AND HONESTY. BUT BASED WITH THE RECOMMENDATION,I PERSONALLY WANT TO BELIEVE THAT YOU WILL NOT SIT ON THE MONEY IF IT FINALLY GETS TO YOUR ACCOUNT.

IT IS ON THIS NOTE I CONSIDER IT PROPER TO WRITE AND ASK FOR YOUR CONSENT, AND PERMISSION TO SUPPORT THE TRANSFER INTO YOUR ACCOUNT.

PLEASE, FOR SECURITY REASONS ACKNOWLEDGE ME THE RECEIPT OF THIS LETTER BY MAILING ME BACK THROUGH MY E-MAIL ADDRESS.

I AWAIT YOUR URGENT RESPONSE,

YOURS FAITHFULLY,

DR. USMAN JAFFER.

Response:

Thank you for your e-mail of 3 May 2002. I am honored and humbled that you would choose me for such an opportunity.

You can rest assured that your search for a reliable and capable foreigner that will handle confidentially a transfer of huge sum of money has succeeded. I am reliable, capable, a foreigner, and I regularly transfer huge sums of money (I write quite small so I am able to fit all of the amount of a check on that line where you write it out -- it took a lot of practice).

I am very sorry to hear about Eng. Eden Andrew Wilson and his ghastly motor accident. I would like to know more details about his accident. Did he hit an elephant or rhino while driving? Did his car have an SRS? If not, if it did have one, would it have saved him? I think that every car that does not have an SRS should be retrofitted with one, because it can save lives. I have seen the devastation that hitting an elephant or rhino can have on a car, and I wouldn't wish that on my worst enemy (who happens to be Dr. Doom).

I am also sorry to hear that Eng. Eden Andrew Wilson did not have a wife or any children. I guess he spent all of his time working (so he could amass a huge sum of money) and never took the time to find that special someone to share his life with. That's unfortunate. Perhaps if he had found that special someone, she would have made him purchase a car with an SRS, and his ghastly motor accident would not have done him in. In fact, if he had a wife and children, he probably wouldn't have been out on that road where he hit an elephant (or rhino) because he would have been home spending time with his family. It's a shame. I have found that special someone. Her name is Elle MacPherson, perhaps you've heard of her? I have asked her to marry me several times, but I think that both of our busy schedules are getting in the way. The last time I asked, she sent me a very nice story, entitled "Restraining Order". I have not read it yet, but it is on my list (right after "Dianetics" by L. Ron Hubbard). It is not signed by her, but by some judge -- she must think very highly of me to go out of her way to have some judge sign it. I can't wait until we are married.

After reading your offer, I believe that I can act as Eng. Eden Andrew Wilson's next of kin. I have taken a few acting classes. I know that I can act as a lion or a turkey (we had to act as them in class). Acting as a next of kin shouldn't be that much more difficult. Would I have to change my name? Wilson is not a bad last name. It was the name of a US President. You have to admire the parents who decided to name their child Woodrow (what is a woodrow anyway?). It's not as bad as naming your kids Mike Carr (say "where is Mike Carr" out loud) or Lisa Carr ("Lisa Carr? Will I have an option to buy?" HA! Get it?). Perhaps a nice Shakespearean first name would work. How about "Iago Wilson" (I always liked villains)? Maybe a soap opera name would be better...how about "Brett Dylan Wilson III"? You know what, we can decide on a name later.

I understand that the money, once transferred, will be used in a joint venture establishment (perhaps a bar -- I always wanted to own a bar -- oh, I just thought of a good name for myself, "Norm Wilson". Get it? Norm, from Cheers. The TV show about a bar. Get it?). I am also relieved that you have taken the steps to make sure it is 100% risk free. I never did like that game anyway -- Monopoly is more my style. I remember the sheer joy I had as a kid playing Monopoly with my father. One time, I had hotels on both Park Place and Boardwalk. He landed on Park Place on one roll and had to pay something close to $1500 for rent (I don't remember the exact amount right now). On his very next turn, he rolled a two and landed on Boardwalk. He wound up bankrupt in two rolls of the die (fate can be funny...just ask Eng. Eden Andrew Wilson). Hey, whatever happened to "Who Wants to be a Millionaire"? It was on every other night, and now I can't find it anywhere. I have to watch that "Regis and Kelly" (I don’t like her) to get my weekly Regis dose. Do you get it in Nigeria? It's a lot of fluff, but once in a while they have an interesting show. If you don't get it, I would be happy to tape it for you on my VCR and send you the tapes once a week (but you have to promise to return them!).

But I digress. I am a little wary of sending my private telephone number through the Internet. I am afraid that the little green men that follow me in their space ship will intercept it and call me. The only time I feel safe from them is when I am at home because I have wallpapered my house with a special substance that their rays can not penetrate. It is the heaviest substance known to man, the Sunday NY Times. All of my hard work would be for naught if they were to call me on the phone because they would be able to read my mind through the receiver. If you could send me your phone number, I would be happy to call you when it is safe (they usually return to their home planet of Tatooine every six weeks).

I am glad that I came to your attention so highly recommended. If you would be so kind, could you please let me know who recommended me to you (I would like to write them a thank you note). After the transaction is complete, I would definitely not sit on the money (it leaves an ugly green stain on your butt).

I am excited by this opportunity and eagerly await your response.

Yours respectfully,

Josh Madison
aka
Norm Wilson

original

The Real Origin of C

In an announcement that has stunned the computer industry, Ken Thompson, Dennis Ritchie and Brian Kernighan admitted that the Unix operating system and C programming language created by them is an elaborate April Fools prank kept alive for over 20 years. Speaking at the recent UnixWorld Software Development Forum, Thompson revealed the following:

"In 1969, AT&T had just terminated their work with the GE/Honeywell/AT&T Multics project. Brian and I had just started working with an early release of Pascal from Professor Nicklaus Wirth's ETH labs in Switzerland and we were impressed with its elegant simplicity and power. Denis had just finished reading 'Bored of the Rings', a hilarious National Lampoon parody of the great Tolkien 'Lord of the Rings' trilogy. As a lark, we decided to do parodies of the Multics environment and Pascal. Dennis and I were responsible for the operating environment. We looked at Multics and designed the new system to be as complex and cryptic as possible to maximize casual users' frustration levels, calling it Unix as a parody of Multics, as well as other more risque allusions. Then Dennis and Brian worked on a truly warped version of Pascal, called 'A'. When we found others were actually trying to create real programs with A, we quickly added additional cryptic features and evolved into B, BCPL and finally C. We stopped when we got a clean compile on the following syntax:
for(;P("\n"),R=;P("|"))for(e=C;e=;P("_"+(*u++/8)%2))P("| "+(*u/4)%2);

To think that modern programmers would try to use a language that allowed such a statement was beyond our comprehension! We actually thought of selling this to the Soviets to set their computer science progress back 20 or more years. Imagine our surprise when AT&T and other US corporations actually began trying to use Unix and C! It has taken them 20 years to develop enough expertise to generate even marginally useful applications using this 1960's technological parody, but we are impressed with the tenacity (if not common sense) of the general Unix and C programmer. In any event, Brian, Dennis and I have been working exclusively in Pascal on the Apple Macintosh for the past few years and feel really guilty about the chaos, confusion and truly bad programming that has resulted from our silly prank so long ago."

Major Unix and C vendors and customers, including AT&T, Microsoft, Hewlett-Packard, GTE, NCR, and DEC have refused comment at this time. Borland International, a leading vendor of Pascal and C tools, including the popular Turbo Pascal, Turbo C and Turbo C++, stated they had suspected this for a number of years and would continue to enhance their Pascal products and halt further efforts to develop C. An IBM spokesman broke into uncontrolled laughter and had to postpone a hastily convened news conference concerning the fate of the RS-6000, merely stating 'VM will be available Real Soon Now'. In a cryptic statement, Professor Wirth of the ETH institute and father of the Pascal, Modula 2 and Oberon structured languages, merely stated that P. T. Barnum was correct.

In a related late-breaking story, usually reliable sources are stating that a similar confession may be forthcoming from William Gates concerning the MS-DOS and Windows operating environments. And IBM spokesmen have begun denying that the Virtual Machine (VM) product is an internal prank gone awry.

Coding the Mud-Ball

Programming is like - a big ball of mud.

INSTRUCTIONS FOR MICROSOFT'S NEW TV DINNER PRODUCT

INSTRUCTIONS FOR MICROSOFT'S NEW TV DINNER PRODUCT

* You must first remove the plastic cover. By doing so you agree to accept and honor Microsoft's rights to all TV dinners. You may not give anyone else a bite of your dinner (which would constitute an infringement of Microsoft's rights). You may, however, let others smell and look at your dinner and are encouraged to tell them how good it is.
* If you have a PC microwave oven, insert the dinner into the oven. Set the oven using these keystrokes:

\mstv.dinn.//08.5min@50%heat//

* Then enter:

ms//start.cook_dindin/yummy\|/yum~yum:-)gohot#cookme

* If you have a Mac oven, insert the dinner and press start. The oven will set itself and cook the dinner.
* If you have a Unix oven, insert the dinner, enter the ingredients of the dinner (found on the package label), the weight of the dinner, and the desired level of cooking and press start. The oven will calculate the time and heat and cook the dinner exactly to your specification.
* Be forewarned that Microsoft dinners may crash, in which case your oven must be restarted. This is a simple procedure. Remove the dinner from the oven and enter:

ms.worthless.nogood/tryagain\again/again.bozo

* This process may have to be repeated. Try unplugging the microwave and then doing a cold reboot. If this doesn't work, contact your hardware vendor.
* Many users have reported that the dinner tray is far too big, larger than the dinner itself, having many useless compartments, most of which are empty. These are for future menu items. If the tray is too large to fit in your oven, you will need to upgrade your equipment.
* Dinners are only available from registered outlets, and only the chicken variety is currently produced. If you want another variety, call MicrosoftHelp and they will explain that you really don't want another variety. Microsoft Chicken is all you really need.
* Microsoft has disclosed plans to discontinue all smaller versions of their chicken dinners. Future releases will only be in the larger family size.
* Excess chicken may be stored for future use, but must be saved only in Microsoft approved packaging.
* Microsoft promises a dessert with every dinner after '98. However, that version has yet to be released. Users have permission to get thrilled in advance.
* Microsoft dinners may be incompatible with other dinners in the freezer, causing your freezer to self-defrost. This is a feature, not a bug. Your freezer probably should have been defrosted anyway.

Programmer to Boss Conversation - Translated

1. A NUMBER OF DIFFERENT APPROACHES ARE BEING TRIED
- We are still pissing in the wind.

2. EXTENSIVE REPORT IS BEING PREPARED ON A FRESH APPROACH TO
THE PROBLEM
- We just hired three kids fresh out of college.

3. CLOSE PROJECT COORDINATION
- We know who to blame.

4. MAJOR TECHNOLOGICAL BREAKTHROUGH
- It works OK, but looks very hi-tech.

5. CUSTOMER SATISFACTION IS DELIVERED ASSURED
- We are so far behind schedule the customer is happy to
get it delivered.

6. PRELIMINARY OPERATIONAL TESTS WERE INCONCLUSIVE
- The darn thing blew up when we threw the switch.

7. TEST RESULTS WERE EXTREMELY GRATIFYING
- We are so surprised that the stupid thing works.

8. THE ENTIRE CONCEPT WILL HAVE TO BE ABANDONED
- The only person who understood the thing quit.

9. IT IS IN THE PROCESS
- It is so wrapped up in red tape that the situation
is about hopeless.

10. WE WILL LOOK INTO IT
- Forget it! We have enough problems for now.

11. PLEASE NOTE AND INITIAL
- Let's spread the responsibility for the screw up.

12. GIVE US THE BENEFIT OF YOUR THINKING
- We'll listen to what you have to say as long as it
doesn't interfere with what we've already done.

13. GIVE US YOUR INTERPRETATION
- I can't wait to hear this bull!

14. SEE ME or LET'S DISCUSS
- Come into my office, I'm lonely.

15. ALL NEW
- Code not interchangeable with the previous design.

16. YEARS OF DEVELOPMENT
- It finally worked!

17. LOW MAINTENANCE
- Impossible to fix if broken.