From Valve Developer Community
Jump to: navigation, search

About This Guy

Part Time student, part time wanna be programmer and mod maker.



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 handy reference is offered as a public service to help programmers who find themselves in such a dilemma.


Shoot yourself in the foot.


You shoot yourself in the foot.


You accidentally 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 with the 
attempts to shoot yourself anyway because you have no exception-handling capability.


The compiler won't let you shoot yourself in the foot.


After correctly packing 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 you 
can't because your foot is of the wrong type.


HANDGUN.TRIGGER and SQUEEZE. THEN return HANDGUN to HOLSTER. CHECK whether shoelace needs 
to be re-tied.


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 the gun with which 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...


Foot in yourself shoot.


You tell your program that you want to be shot in the foot. The program figures 
out how to do it, but the syntax doesn't permit it to explain it to you.


Shoot yourself in the foot with a water pistol. On large systems, continue until 
entire lower body is waterlogged.

Visual Basic:

You'll really only _appear_ to have shot yourself in the foot, but you'll 
have had so much fun doing it that you won't care.


Put the first bullet of gun into foot left of leg of you. Answer the result.


You spend days writing a UIL description of your foot, the bullet, its trajectory, 
and the intricate scrollwork on the ivory handles of the gun. When you finally get around 
to pulling the trigger, the gun jams.


You shoot yourself in the foot, then spend all day figuring out how to do it in fewer


If you succeed, shoot yourself in the left foot. If you fail, shoot yourself in 
the right foot.


% ls
foot.c foot.h foot.o toe.c toe.o
% rm * .o
rm:.o no such file or directory
% ls

Concurrent Euclid:

You shoot yourself in somebody else's foot.

370 JCL:

You send your foot down to MIS and include a 400-page document explaining exactly 
how you want it to be shot. Three years later, your foot comes back deep-fried.


Not only can you shoot yourself in the foot, your users can, too.


You try to point the gun at your foot, but it shoots holes in all your Borland 
distribution diskettes instead.


You're sure you're going to be able to shoot yourself in the foot, just as  
soon as you figure out what all these nifty little bullet-thingies are for.


You try to shoot yourself in the foot, only to discover you must first invent 
the gun, the bullet, the trigger, and your foot.


After realizing that you can't actually accomplish anything in this language, you 
shoot yourself in the head.


You tell your computer to create a program for shooting yourself in the foot with 
a .22, but unfortunately, it only provides ammunition for a rocket launcher. Once you go 
into the source to fix the program, you find relevant proof that JFK really WAS shot by 
Lee Harvey Oswald.


You go find the compiler writer and shoot him in the foot.


You try to shoot yourself in the foot, but a third foot is secretly allocated 
before either of the previous two has been freed. You are then informed that a foot has 
been shot, with no indication given as to which one.

[ Bug Report ]

Bug #   Status          Title 
5143    ACTIVE          "Build done" signal makes no sound 
---------- ACTIVE - 01/30/95 - MIKEBLAS -------------------- 
Visual C++ makes an audible signal when a build completes. When no developer 
is in the room, this signal doesn't make a sound. To reproduce: 
1) Start a build. 
2) Leave the room. 
3) Note that the chime does not make a sound. 
We should find a way to make the build bell make a sound even if nobody is 
there to hear it. 
This philosophical issue may need program management's attention before being 
---------- ASSIGNED to MATTHEWT - 01/30/95 - SCOTF --------- 
Can we use the telepathy support in Win95 to contact whomever is logged into 
the machine doing the build? Maybe we should just detect when the developer is 
leaving the room and prompt for a phone number where s/he can be reached. 
How about disabling leaving the room during a build? 
---------- RESOLVED - BY DESIGN - 01/31/95 - MATTHEWT ------ 
---------- ACTIVE - 02/01/95 - MARKLAM --------------------- 
Actually, we can't do this either. The problem is that while you're out of the 
room your build is neither finished nor unfinished. It stays in a state of 
flux until you return and collapse the quantum uncertainty by observing it. 
Perhaps we could link the build finished event to a cat in a box? 
---------- ASSIGNED to HEISENBERG - 02/01/95 - MARKLAM ----- 
---------- RESOLVED - NOT REPRO - 02/03/95 - HEISENBERG ---- 
I cannot repro this. I tried standing just outside my door and it made the 
beep. Do I have to go further from my office? Would the mailroom do? 
---------- ACTIVE - 02/03/95 - MIKEBLAS -------------------- 
The relative position of the mailroom and your office are relatively uncertain 
to me, Doctor. 
Please try again: 
1) start a build 
2) leave your office 
3) go down the hall 
4) wait until you don't hear the beep 
5) return to note that the build is done 
I think this is how I first repro'ed the problem, but I can't remember what I 
was doing to make it happen. 
The idea of disabling leaving the room might be the best possible solution, I 
think. When a build starts, the IDE should pop up a message that says "There 
are no more Fritos" or "The kitchen has closed early" or "The bathroom is 
being cleaned" so the developer will not be tempted to get up and wander 
With minimal rebuild in place, we should consider diversions that won't take 
as long to remedy: "You're expecting a phone call" or "Someone will stop by to 
see you soon". 
We need to think of messages that are easy to localize for VC++3.0J. 
---------- ASSIGNED to MIKEBLAS - 02/13/95 - MARKLAM ------- 
To do this we'll need to avoid messages about the bathrooms and vending 
machines for external releases. Perhaps some customer research is needed to 
find out exactly *why* Visual C++ users leave their keyboards. 
Some suggestions (including MB_ types) 
Get a drink : 
(i) You're out of coffee 
(i) You're out of tea 
(i)(i) YYoouuvv''ee hhaadd eennoouugghh 
Get something to eat : 
(?) You have no food, remember 
/!\ You need to lose weight, fatso. Sit your ass down 
Exercise etc : 
(?) Did You Know - sunlight causes skin cancer 
(i) With a Nordik Trak you can get a workout in front of your monitor. 
Call for home delivery 
/!\ I didn't mean that about your weight 
See family : 
(i) They already know you love them 
/!\ They'll only want money for something 
/!\ Your in-laws have arrived 
Call of nature : 
This could be difficult. Consider supplying bed-pan or similar. 
---------- ASSIGNED to MIKEBLAS - 02/13/95 - MARKLAM ------- 
---------- ASSIGNED to MIKEBLAS - 02/16/95 - HEISENBERG ---- 
I attempted to repro this once more: 
I placed my machine in the forest at the edge of the campus. I started a 
'rebuild all' and ran out of the forest towards my mailroom. My build normally 
takes 3 minutes. After 5 minutes I had not heard anything, so I returned to my 
machine. Unfortunately a tree had fallen on it. I had not heard that, either.