[Paleopsych] Umberto Eco plus get ready to haul...best computer jokes ever

Premise Checker checker at panix.com
Wed Jan 26 18:21:02 UTC 2005

get ready to haul...best computer jokes ever

[I do not know the source of this. Before this, here is Umberto Eco on 
operating systems and some related matter I have gathered.]

But you did know - didn't you?  - that [Umberto] Eco was the
guy behind that unforgettable Mac versus DOS metaphor. That
in one of his weekly columns he first mused upon the "Software
Schism" dividing users of Macintosh and DOS operating
systems. Mac, he posited, is Catholic, with "Sumptuous Icons"
and the promise of offering everybody the chance to reach the
Kingdom of Heaven ("or at least the moment when your
document is printed") by following a series of easy steps. DOS,
on the other hand, is Protestant: "it allows free interpretation of
scripture, demands difficult personal decisions...and takes for
granted that not all can reach salvation." Following this logic,
Windows becomes "an Anglican-style schism -- big ceremonies
in the cathedral, but with the possibility of going back secretly
to DOS in order to modify just about anything you like."
(Asked to embellish the metaphor, Eco calls Windows 95 "pure
unadulterated Catholicism. Already Windows 3.1 was more than
Anglican - it was Anglo-Catholic, keeping a foot in both camps.
But Windows 95 goes all the way: six Hail Marys and how
about a little something for the Mother Church in Seattle.")

--"The World According to Eco," The Wired Interview by Lee
Marshall, _Wired_ 1997 March.

But there remain millions of [DOS] computer users who won't
be satisfied to barge down the information superhighway in a
whacked-out '71 Cadillac with an automatic transmission and
power steering and power brakes and air conditioning and not
getting a lot of feedback about how the trip's going. Some of us
still want to understand the purpose of the different parts of our
computer system, both hardware -and software.

--Van Olverton, _Supercharging MS-DOS_, 4th ed. (Alberton,
MT: Forsyth-Wolf Communications, 1994), p. ix.

He [Neal Stephenson, science-fiction author, whose new novel,
_Cryptomicon_ "has reached No. 15 on the New York Times best-
seller list, despite being 918 pages long and having crytptography
as its central subject] draws an analogy by comparing computer
operating systems to auto dealerships, all operating at an
intersection along a highway. In this world the Mac OS becomes an
attractive Euro-style sedan whose innards are hermetically sealed
from the driver. Microsoft's Windows becomes a colossal station
wagon with all the esthetic appeal of a Soviet worker housing
block ("It leaked oil and blew gaskets, and it was an enormous

By the same token Windows NT is an off-road vehicle and the Be OS
is a Batmobile.

And Linux? Linux is not even a car dealership, but rather a bunch 
of people who live in yurts, tepees and geodesic domes in a field,
building super tanks and giving them away.

He portrays an imaginary conversation between a Linux hacker and a
potential station wagon buyer:

Hacker: "But if you accept one of our free tanks, we will send
volunteers to your house to fix it for free while you sleep!"

Buyer: "Stay away from my house, you freak!"

Hacker: "But . . . "

Buyer: "Can't you see that everyone is buying station wagons?"

--John Markoff, "Behind Happy Interfact, More Complex Reality,"
article about Stephenson, _The New York Times_, 1999 June 3,
Circuits section, p. E7.


The proliferation of modern programming languages (all of which seem to
have stolen countless features from one another) sometimes makes it
difficult to remember what language you're currently using. This guide is
offered as a public service to help programmers who find themselves in such

You shoot yourself in the foot.
You accidently create a dozen instances of yourself and shoot them all in
the foot. Providing emergency medical assistance is impossible since you
can't tell which are bitwise copies and which are just pointing at others
and saying "That's me, over there."
You shoot yourself in each toe, iteratively, until you run out of toes,
then you read in the next foot and repeat. If you run out of bullets, you
continue anyway because you have no exception-handling facility.
After realizing that you can't actually accomplish anything in this
language, you shoot yourself in the head.

whether shoelace needs to be retied.
You shoot yourself in the appendage which holds the gun with which you
shoot yourself in the appendage which holds the gun with which you shoot
yourself in the appendage which holds...
Shoot yourself in the foot with a water pistol. On big systems, continue
until entire lower body is waterlogged.
Foot yourself in the shoot.
You shoot yourself in the foot; then spend all day figuring out how to do
it in fewer characters.
The compiler won't let you shoot yourself in the foot.
If you succeed, shoot yourself in the left foot. If you fail, shoot
yourself in the right foot.

Put the first bullet of the gun into foot left of leg of you. Answer the
You tell your program you want to be shot in the foot. The program figures
out how to do it, but the syntax doesn't allow it to explain.
370 JCL
You send your foot down to MIS with a 4000-page document explaining how you
want it to be shot. Three years later, your foot comes back deep-fried.


Of course, it didn't end there; there are many extensions to this idea
(some included below). What many fail to recognise, however (especially
those that add more complicated options for C, or reorder the list) is the
meta-joke. Given the first line, the list starts off looking like yet
another insult to C. But after reading the whole list, and coming back to
the beginning, it becomes clear this is actually a compliment to C!

I have compiled the following lists from a variety of different sources on
the Web, and from emailed suggestions; it includes contributions from Giles
Constant, James Davis, Steve DiVerdi, Fritz Freiheit, Murray S. Kucherawy,
Simon Mikkelsen, Doug Snell, Reynir Stefánsson, Wayne Throop, and Nick


You shoot yourself in each toe, iteratively, until you run out of toes,
then you read in the next foot and repeat. If you run out of bullets, you
continue anyway because you still can't do exception-processing.
Modula-2 (alternative)
You perform a shooting on what might be currently a foot with what might be
currently a bullet shot by what might currently be a gun.
BASIC (compiled)
You shoot yourself in the foot with a BB using a SCUD missile launcher.
Visual Basic
You'll really only appear to have shot yourself in the foot, but you'll
have so much fun doing it that you won't care.
Forth (alternative)
THEN (This takes about five bytes of memory, executes in two to ten clock
cycles on any processor and can be used to replace any existing function of
the language as well as in any future words). (Welcome to bottom up
programming - where you, too, can perform compiler pre-processing instead
of writing code)
APL (alternative)
You hear a gunshot and there's a hole in your foot, but you don't remember
enough linear algebra to understand what happened.
@#&^$%&%^ foot
Pascal (alternative)
Same as Modula-2 except that the bullet is not the right type for the gun
and your hand is blown off.
Snobol (alternative)
You grab your foot with your hand, then rewrite your hand to be a bullet.
The act of shooting the original foot then changes your hand/bullet into
yet another foot (a left foot).
Prolog (alternative)
You attempt to shoot yourself in the foot, but the bullet, failing to find
its mark, backtracks to the gun, which then explodes in your face.
You attempt to shoot yourself in the foot with a water pistol, but the bore
is clogged, and the pressure build-up blows apart both the pistol and your
As Lisp, but none of the other appendages are aware of this happening.
You shoot yourself in the foot with a musket. The musket is aesthetically
fascinating and the wound baffles the adolescent medic in the emergency room.
If you are dumb enough to actually use this language, the United States
Department of Defense will kidnap you, stand you up in front of a firing
squad and tell the soldiers, "Shoot at the feet."
The Department of Defense shoots you in the foot after offering you a
blindfold and a last cigarette.
After correctly packaging your foot, you attempt to concurrently load the
gun, pull the trigger, scream and shoot yourself in the foot. When you try,
however, you discover that your foot is of the wrong type.
After correctly packing your foot, you attempt to concurrently load the
gun, pull the trigger, scream, and confidently aim at your foot knowing it
is safe. However the cordite in the round does an Unchecked Conversion,
fires and shoots you in the foot anyway.
You create a GUN object, two FOOT objects and a BULLET object. The GUN
passes both the FOOT objects a reference to the BULLET. The FOOT objects
increment their hole counts and forget about the BULLET. A little demon
then drives a garbage truck over your feet and grabs the bullet (both of
it) on the way.
You spend so much time playing with the graphics and windowing system that
your boss shoots you in the foot, takes away your workstation and makes you
develop in COBOL on a character terminal.
You send the message shoot to gun, with selectors bullet and myFoot. A
window pops up saying Gunpowder doesNotUnderstand: spark. After several
fruitless hours spent browsing the methods for Trigger, FiringPin and
IdealGas, you take the easy way out and create ShotFoot, a subclass of Foot
with an additional instance variable bulletHole.
Object Oriented Pascal
You perform a shooting on what might currently be a foot with what might
currently be a bullet fired from what might currently be a gun.
You consume all available system resources, including all the offline
bullets. The Data Processing & Payroll Department doubles its size, triples
its budget, acquires four new mainframes and drops the original one on your
foot bullets 6 locate loadgun aim gun shoot showpage
It takes the bullet ten minutes to travel from the gun to your foot, by
which time you're long since gone out to lunch. The text comes out great,
You stab yourself in the foot repeatedly with an incredibly large and very
heavy Swiss Army knife.
You pick up the gun and begin to load it. The gun and your foot begin to
grow to huge proportions and the world around you slows down, until the gun
fires. It makes a tiny hole, which you don't feel.
Assembly Language
You crash the OS and overwrite the root disk. The system administrator
arrives and shoots you in the foot. After a moment of contemplation, the
administrator shoots himself in the foot and then hops around the room
rabidly shooting at everyone in sight.
You try to shoot yourself in the foot only to discover you must first
reinvent the gun, the bullet, and your foot.or
The bullet travels to your foot instantly, but it took you three weeks to
load the round and aim the gun.
You shoot yourself somewhere in the leg -- you can't get any finer
resolution than that.
Concurrent Euclid
You shoot yourself in somebody else's foot.
You spend days writing a UIL description of your foot, the trajectory, the
bullet and the intricate scrollwork on the ivory handles of the gun. When
you finally get around to pulling the trigger, the gun jams.
While attempting to load the gun you discover that the LoadGun system
function is buggy; as a work around you tape the bullet to the outside of
the gun and unsuccessfully attempt to fire it with a nail. In frustration
you club your foot with the butt of the gun and explain to your client that
this approximates the functionality of shooting yourself in the foot and
that the next version of Powerbuilder will fix it.
Standard ML
By the time you get your code to typecheck, you're using a shoot to foot
yourself in the gun.
You shoot 583149 AK-47 teflon-tipped, hollow-point, armour-piercing bullets
into even-numbered toes on odd-numbered feet of everyone in the building --
with one line of code. Three weeks later you shoot yourself in the head
rather than try to modify that line.
You locate the Gun class, but discover that the Bullet class is abstract,
so you extend it and write the missing part of the implementation. Then you
implement the ShootAble interface for your foot, and recompile the Foot
class. The interface lets the bullet call the doDamage method on the Foot,
so the Foot can damage itself in the most effective way. Now you run the
program, and call the doShoot method on the instance of the Gun class.
First the Gun creates an instance of Bullet, which calls the doFire method
on the Gun. The Gun calls the hit(Bullet) method on the Foot, and the
instance of Bullet is passed to the Foot. But this causes an
IllegalHitByBullet exception to be thrown, and you die.


FOOTOS -- A Guide to Modern Operating Systems extended the joke to
operating systems, with Unix playing the role of C, of course. And this too
has grown...


You shoot yourself in the foot
% ls
foot.c foot.h foot.o toe.c toe.o
% rm * .o
rm: .o: No such file or directory
% ls
370 JCL (alternative)
You shoot yourself in the head just thinking about it.
You first find the building you're in in the phone book, then find your
office number in the corporate phone book. Then you have to write this
down, then describe, in cubits, your exact location, in relation to the
door (right hand side thereof). Then you need to write down the location of
the gun (loading it is a proprietary utility), then you load it, and the
COBOL program, and run them, and, with luck, it may be run tonight.

%DCL-W-ACTIMAGE, error activating image GUN
-CLI-E-IMGNAME, image file $3$DUA240:[GUN]GUN.EXE;1
-IMGACT-F-NOTNATIVE, image is not an OpenVMS Alpha AXP image
%SYS-F-FTSHT, foot shot
(fifty lines of traceback omitted)
sh,csh, etc
You can't remember the syntax for anything, so you spend five hours reading
manual pages, then your foot falls asleep. You shoot the computer and
switch to C.
Apple System 7
Double click the gun icon and a window giving a selection for guns, target
areas, plus balloon help with medical remedies, and assorted sound effects.
Click "shoot" button and a small bomb appears with note "Error of Type 1
has occurred."
Windows 3.1
Double click the gun icon and wait. Eventually a window opens giving a
selection for guns, target areas, plus balloon help with medical remedies,
and assorted sound effects. Click "shoot" button and a small box appears
with note "Unable to open Shoot.dll, check that path is correct."
Windows 95
Your gun is not compatible with this OS and you must buy an upgrade and
install it before you can continue. Then you will be informed that you
don't have enough memory.
I remember when shooting yourself in the foot with a BB gun was a big deal.
You finally found the gun, but can't locate the file with the foot for the
life of you.
You shoot yourself in the foot, but can unshoot yourself with add-on


And it has extended even further, to databases, and other computer-related


You try to point the gun at your foot, but it shoots holes in all your
Borland distribution diskettes instead.
Not only can you shoot yourself in the foot, your users can too.
You squeeze the trigger, but the bullet moves so slowly that by the time
your foot feels the pain, you've forgotten why you shot yourself anyway.
You buy a gun. Bullets are only available from another company and are
promised to work so you buy them. Then you find out that the next version
of the gun is the one scheduled to actually shoot bullets.
DBase IV, V1.0
You pull the trigger, but it turns out that the gun was a poorly designed
hand grenade and the whole building blows up.
You cut your foot off, send it out to a service bureau and when it returns,
it has a hole in it but will no longer fit the attachment at the end of
your leg.
Insert into Foot
Select Bullet
>From Gun.Hand
Where Chamber = 'LOADED'
And Trigger = 'PULLED'
You grab a bullet, get ready to insert it in the gun so that you can shoot
yourself in the foot and discover that the gun that the bullets fits has
not yet been built, but should be arriving in the mail _REAL_SOON_NOW_.
The menus for coding foot_shooting have not been implemented yet and you
can't do foot shooting in SQL.
You put your foot in your mouth, then bite it off. (For those who don't
know, English is a McDonnell Douglas/PICK query language which allegedly
requires 110% of system resources to run happily.)
Revelation [an implementation of the PICK Operating System]
You'll be able to shoot yourself in the foot just as soon as you figure out
what all these bullets are for.
Starting at the top of your head, you aim the gun at yourself repeatedly
until, half an hour later, the gun is finally pointing at your foot and you
pull the trigger. A new foot with a hole in it appears but you can't work
out how to get rid of the old one and your gun doesn't work anymore.
You put your foot in your mouth, then echo it internationally.
PicoSpan [a UNIX-based computer conferencing system]
You can't shoot yourself in the foot because you're not a host.
or (host variation)
Whenever you shoot yourself in the foot, someone opens a topic in policy
about it.
You put your foot in your mouth, shoot it, then spam the bullet so that
everybody gets shot in the foot.
rmtroff -ms -Hdrwp | lpr -Pwp2 & .*place bullet in footer .B .NR FT +3i .in
4 .bu Shoot! .br .sp .in -4 .br .bp NR HD -2i .*
Genetic Algorithms
You create 10,000 strings describing the best way to shoot yourself in the
foot. By the time the program produces the optimal solution, humans have
evolved wings and the problem is moot.
CSP (Communicating Sequential Processes)
You only fail to shoot everything that isn't your foot.


In July 2002 Jim Nidositko emailed me the following story, with
contributions to the list

Last summer, I found myself analyzing the plague of problems afflicting a
sorely neglected MS-SQL Server implementation. This process was made more
interesting by the fact that this analysis was being performed with an eye
toward moving the database over to Sybase. My previous database experiences
involved Oracle and Ingres, so I found myself learning about both platforms
at the same time.
In short order I uncovered the fact of their shared heritage (early
versions of MS-SQL Server were licensed from Sybase). This became a strong
platform for understanding the differences between these two systems. I
found it particularly fascinating that MS made it blindingly easy to get
the system up and running, but in doing so it pretty much assured that you
would shoot yourself in the foot by allowing the user to avoid performing
basic tasks that are essential to good database design. Sybase, in
contrast, makes it stupefyingly difficult to get a system up and running,
thereby reducing your likelihood of foot shooting (by making it nearly
impossible to shoot anything), but the Sybase documentation is so abysmal
that you're also more or less assured of soundly shooting yourself for the
difficulty of finding the information that will prevent this from among the
confusing and circuitous cross references. This melange of similarities and
contrasts inspired me to author the following vignettes. (Keep in mind, we
were specifically trying to avoid any foot shooting, so these bits each end
with advice toward that end.)
MS-SQL Server
MS-SQL Server’s gun comes pre-loaded with an unlimited supply of Teflon
coated bullets, and it only has two discernible features: the muzzle and
the trigger. If that wasn't enough, MS-SQL Server also puts the gun in your
hand, applies local anesthetic to the skin of your forefinger and stitches
it to the gun's trigger. Meanwhile, another process has set up a spinal
block to numb your lower body. It will then proceeded to surgically remove
your foot, cryogenically freeze it for preservation, and attach it to the
muzzle of the gun so that no matter where you aim, you will shoot your
foot. In order to avoid shooting yourself in the foot, you need to unstitch
your trigger finger, remove your foot from the muzzle of the gun, and have
it surgically reattached. Then you probably want to get some crutches and
go out to buy a book on SQL Server Performance Tuning.
Sybase's gun requires assembly, and you need to go out and purchase your
own clip and bullets to load the gun. Assembly is complicated by the fact
that Sybase has hidden the gun behind a big stack of reference manuals, but
it hasn't told you where that stack is. While you were off finding the gun,
assembling it, buying bullets, etc., Sybase was also busy surgically
removing your foot and cryogenically freezing it for preservation. Instead
of attaching it to the muzzle of the gun, though, it packed your foot on
dry ice and sent it UPS-Ground to an unnamed hookah bar somewhere in the
middle east. In order to shoot your foot, you must modify your gun with a
GPS system for targeting and hire some guy named "Indy" to find the hookah
bar and wire the coordinates back to you. By this time, you've probably
become so daunted at the tasks stand between you and shooting your foot
that you hire a guy who's read all the books on Sybase to help you shoot
your foot. If you're lucky, he'll be smart enough both to find your foot
and to stop you from shooting it.


In May 2003 Kristof Elst emailed me his contribution to the list

I'm a highly frustrated Magic Software developer who would rather be back
to coding tsql. So I made my own version.
Magic software
You spend 1 week looking up the correct syntax for GUN. When you find it,
you realise that GUN will not let you shoot in your own foot. It will allow
you to shoot almost anything but your foot. You then decide to build your
own gun. You can't use the standard barrel since this will only allow for
standard bullets, which will not fire if the barrel is pointed at your
foot. After four weeks, you have created your own custom gun. It blows up
in your hand without warning, because you failed to initialise the safety
catch and it doesn't know whether the initial state is "0", 0, NULL,
"ZERO", 0.0, 0,0, "0.0", or "0,00". You fix the problem with your remaining
hand by nesting 12 safety catches, and then decide to build the gun without
safety catch. You then shoot the management and retire to a happy life
where you code in languages that will allow you to shoot your foot in under
10 days.

More information about the paleopsych mailing list