(Originally, A Day in the Life of the Image Activator
as recounted to Stanley Rabinowitz on 7-Jan-1985 )
(Translated to Win32 by Matt Pietrek, August 2001)
CMD Prompt: Good morning sir! I am your command prompt today That was a
flawlessly executed logon. How may I help you today?
USER: Good morning to you too computer. I think today I want to do some data
CMD Prompt: A wonderful choice sir! A finer day it couldn't be for looking
over your data. How will you have it today? Sunny side up? Once over
USER: I think I'll use Microsoft Access. Would you kindly load Access
CMD Prompt: Most certainly sir! An excellent choice! One moment while I load
CMD Prompt: Oh, Win32 loader? Would you please load that ACCESS.EXE file
that I notice in the Office directory? My user desires to play with it a bit
LOADER: No problem. Shouldn't take but a jiff.
CMD Prompt: Any problems?
LOADER: No sir, not a one. It's just that I'm surprised to see that
ACCESS.EXE uses 21 DLLs. Quite an unusual number for a Win32 program. Most
EXEs only use 3 or 4 DLLs. This one really sets a record! But no problem - I
just love to map in all these DLLs. After all - that's my primary purpose in
LOADER: Well, that should do it. They're all mapped in.
CMD Prompt: Then we can start her up now?
LOADER: Well not quite. I just noticed that these DLLs invokes some other
DLLs. Oh well, I guess I'll have to go load them too. At least we'll only
have to load those DLLs that this program really needs.
CMD Prompt: How many DLLs does it require?
LOADER: Oh my gosh! It references 1477 DLLs! Another record! I can't believe
it! Oh well, here goes...
LOADER: The first one it wants is MSO9.DLL. That should be an easy one.
LOADER: Oh no! Not more! MSO9.DLL just called LoadLibrary on another 20
CMD Prompt: Have you enough room for them all?
LOADER: No sweat. This is a virtual memory machine. And this disk I/O is
real fast. I'll have it in a minute.
LOADER: There. Now on to the other DLLs. Next comes USER32.DLL. Guess it's
important that we be able to use all this data.
CMD Prompt: Yup. What next?
LOADER: Now we'll need a database manager, so I guess we'll just have to go
off and load ODBC32, the database management system.
CMD Prompt: Sounds reasonable.
USER: How's it coming there computer?
CMD Prompt: No sweat. It'll be just another moment.
LOADER: And now we'll load ODBCCU32.DLL.
CMD Prompt: But I thought you just brought in your database manager?
LOADER: Yes, but this one is the relational database system. It's a whole
CMD Prompt: Well, hurry it along.
LOADER: Okay. Next comes ODBCJT32.DLL, the relational database manager.
CMD Prompt: But how does that differ from ODBC32.DLL?
LOADER: I don't know. I just load'em. They tell me to load and I load.
CMD Prompt: Well, I hope that's it for database managers.
LOADER: Not quite. There's still MSJET40.DLL. This company specializes in
its excellent collection of managers.
CMD Prompt: Great! I guess that's it then.
LOADER: Not on your life! Do you think our user merely wants to query his
data? What if he wants a chart using his data?
CMD Prompt: Oh.
LOADER: Didn't think of that did you? I guess we'll just have to go load
CMD Prompt: I guess so.
USER: But I don't plan to do any charting today. I just wanted to prepare a
LOADER: Sorry. MSCHART20.OCX comes with this program. It's a free option.
CMD Prompt: What next?
LOADER: Hmm. Looks like a request to bring in VBAR332.DLL, the VBA run-time
CMD Prompt: Why would they want that? Is Access written in VBA?
LOADER: No, but the VBA run time library has many precious gems of useful
routines that one might wish to call... Guess, I'll just go load it now.
CMD Prompt: Good thing you don't also need the Java run-time library too.
LOADER: Now you've done it! You've given me the evil eye. Either that or I
just got up out of the wrong side of the bed this morning. Here look at
this: this DLL is also requesting MSVBVM60.DLL and MSVCRT.DLL. Oh! and now
look: It wants OLEAUT32.DLL too!
CMD Prompt: You never know when our user might want to do some scripting. He
might need to embed a WinWord document you know. Better safe than sorry.
USER: What's taking so long?
CMD Prompt: (still trying to be pleasant) We're almost there now. Shant be
much longer. After all, you want a user-friendly system don't you?
LOADER: That's right. I guess that's why I've been instructed to load
HLP95EN.DLL. You never know when the user might request some on-line help so
we've got to have our help system ready to answer his questions.
CMD Prompt: That's nice. I'm sure our user will appreciate that.
LOADER: And oh yeah - we'll need GDI32.DLL too, the screen package. Only the
best on this system. Can't let our user make do without fancy graphics!
CMD Prompt: A wonderful thought. But will GDI32.DLL be enough?
LOADER: No. you're right of course. We'll also have to bring in
COMCTL32.DLL. GDI32.DLL is only the low level graphics. COMCTL32.DLL will
really let our user edit his data in style.
USER: But I wasn't planning to change the data today. Just one simple
CMD Prompt: Keep your shirt on. When this program finally comes up, it will
really blow your mind.
CMD Prompt: But loader, will COMCTL32.DLL really be enough? Aren't web views
the big thing these days?
LOADER: Right you are CMD, baby. Guess we'll need MSHTML.DLL, the HTLML
display component. Won't take but another moment. (sigh) I think that was
the last one.
CMD Prompt: Great! Then I can report back that we're ready to go?
LOADER: One second. Let me make one last check...
CMD Prompt: Never pays to be hasty.
LOADER: Ah nuts! Some of these new DLLs that we just loaded are requesting
further attention. It looks like they too want to load other DLLs.
CMD Prompt: Don't we have enough DLLs? That's been 16 already!
LOADER: Well, security is an important issue too. Wouldn't want our user to
lose any data. Look here: USER32.DLL wants us to bring in ADVAPI32.DLL.
Guess I'll just have to load another one...
USER: (getting impatient) What's taking so long?
CMD Prompt: We're putting all the pieces together for you now. Shouldn't be
USER: Putting them together? Doesn't it come all assembled?
CMD Prompt: Not to worry. There's no extra charge for installation.
LOADER: There. And now what? Look at this: USER32.DLL also wants us to load
MSVCRT.DLL, the common run-time library.
CMD Prompt: But didn't you already load MSVCRT.DLL?
LOADER: Right on baby! Let me just look around.
LOADER: Oh there it is. We have it mapped into memory already. I guess I'll
just throw this request away.
CMD Prompt: Do you get many of these redundant requests?
LOADER: Yeah, they happen all the time. Nothing to worry about. You get
used to it. Look here, GDI32.DLL wants MSVCRT.DLL too; and so does
ADVAPI32.DLL, and VBAR332.DLL, and MSVBVM60.DLL, and ...
CMD Prompt: Well hurry it along please.
LOADER: ... and MSJET40.DLL and ODBCJT32.DLL and ... Oh and look at this
duplicate request for USER32.DLL and OLE32.DLL and OLEAUT32.DLL and
SHELL32.DLL and ...
CMD Prompt: SHELL32.DLL? I don't remember seeing that one before. What is
it and who wants it?
LOADER: Oops, you're right. I almost overlooked this request by SHELL32.DLL.
It's easy to overlook this one; it's so small. Only contains a few wrapper
CMD Prompt: Guess it should be easy to load then?
LOADER: On the contrary. This one attempts to load the entire C++ RTL!
Imagine that. Oh well. That's life. Fortunately, I've already brought in
most of the C++ RTL. Let's see now, what else will we need? Oh yes,
COMDLG32.DLL. Can't imagine how we overlooked that one.
CMD Prompt: Is that it then?
LOADER: Yup. That's it. She's all here. You can go start her up!
USER: (pounding on keyboard) Where's my data!
CMD Prompt: Please use voice input sir! Those ctrl-C's are MOST annoying.
They cause the most insidious interruptions to what I'm trying to do. We're
starting your process now.
USER: It's about time.
CMD Prompt: There. How's that? Lovely data isn't it?
USER: I wouldn't know. Where's my window?
CMD Prompt: I don't know. Let me look into it.
CMD Prompt: CPU, where's his window?
CPU: We're executing instructions as fast as we can! Oh my god! An
CMD Prompt: An exception! Is that serious?
CPU: My mistake; it's not a hardware exception, it's merely a software
exception. Looks like the program signalled.
CMD Prompt: Why'd it do that?
CPU: Well, this program is naturally user friendly, so it wants to start up
by displaying a splash screen.
CMD Prompt: So why doesn't it do that?
CPU: Well the dialog template is in a resource, sir.
CMD Prompt: Well get it!
CPU: That's what we're trying to do. You'll have to check with the USER32
system. It takes care of those things.
SYSTEM: Ah, I have the dialog request now. I'll have it up in a moment.
CMD Prompt: Well, how do you get it?
SYSTEM: No sweat, we're just searching for the appropriate resource section.
LOADER: Oh no. I thought I had a deserved rest coming.
SYSTEM: Sorry, just a little bit longer.
USER: WHERE'S MY WINDOW!!!!!
CMD Prompt: Keep your pants on. Just be glad you're not trying to create any
LOADER: Okay, one last time. Which dialog template do you need loaded?
SYSTEM: I'm not sure. Let's try ACCESS.EXE.
LOADER: (struggling) Okay. There it is. I've searched ACCESS.EXE.
SYSTEM: Sorry. It wasn't in that one. Try MSO9.DLL's resources. Maybe it's
LOADER: Okay. (grumble)
SYSTEM: Nope. It wasn't there either. Try MSOWCW.DLL.
LOADER: Look. I'm getting tired of this. Couldn't you just give me the
complete list of resource sections to search? I'll keep searching them until
we find that damn template. Exactly what dialog are we looking for?
SYSTEM: Not sure yet, all I have is a name, but it's probably something like
SYSTEM: Well what?
LOADER: That dialog?
SYSTEM: Oh yeah. Well ODBC32.DLL has just loaded ODBCCP32.DLL, and not to be
outdone, MSJET40.DLL wants ODBCBCP.DLL, not to be confused with
ODBCCP32.DLL, and MSO9.DLL wants MSOTHUNK.DLL, and RPRCRT4.DLL wants
ADVAPI32.DLL, and lots of other guys are asking for ADVAPI32.DLL also - but
I'm too smart for them. I'll just get it once and no one will ever know the
SYSTEM: And don't forget MSAEXP30.DLL. The dialog might be in there too.
CMD Prompt: OH NO!
SYSTEM: What is it?
LOADER: Are you all right?
CMD Prompt: An interrupt!
LOADER: An interrupt?
CMD Prompt: That's what I said, an interrupt.
LOADER: Stop what you're doing.
LOADER: Why? Just when I was getting the hang of it.
CMD Prompt: The user has typed ctrl-break.
LOADER: Okay, everything has been suspended. Can I go to sleep now?
CMD Prompt: No, you better stick around in case the user wants to continue.
And notify the exit routines to stand by. Also, I need moral support. Maybe
if I flash a ^C in front of his eyes, he'll stop looking so angry.
USER: Computer, I'm really getting tired of this.
CMD Prompt: But we were so close...
USER: A likely story.
CMD Prompt: Well what can I do for you instead?
USER: I still want my report. Let's try some other way of retrieving my
CMD Prompt: A wonderful idea sir! A finer day it couldn't be for looking
over your data. How will you have it today? Sunny side up? Once over
USER: How about SCRAMBLED?
CMD Prompt: No problem sir. Wait one moment while I load OUTLOOK.EXE...
The curtain falls as the dance begins again...
"Brussels police department, how may I assist you?"
"Uh.. yes.. I just got hit in the face with a cream pie."
"Okay, sir. Have you called the Brussels police department before?"
"Well, let me get a little information about you for our records. Your name?"
"Okay, sir. Your police department ID number is BP31415927. Please use this number the next time you call. Now, you say you were hit in the face with a pie?"
"Yes, I was just about to meet with the Belgian Prime Minister. One person distracted me while another hit me with a cream pie."
"We've had other customers report that they were hit in the face with a custard pie. Are you sure it was a cream pie?"
"Well, I have white stuff all over my face and I don't see any custard, so I really don't think it was a custard pie."
"Have you visited the Prime Minister before?"
"Were you hit in the face with a pie then?"
"Hmm... have you visited any other Prime Ministers in the past month?"
"Any pies then?"
"Okay, well... let's try something. Go outside the building and come in again. I'll wait."
"Just a minute..."
"Okay, I'm back."
"Did you get hit by another pie?"
"Of course not"
"Well sir, I don't know what could have caused the first pie, but it looks like things are working fine now. I'll make a note of the problem, though. If it happens again, please note the exact details of the situation and call us again. Thank you for calling the Brussels Police Department. "
A Long time Ago, in a Galaxy far, far away...
Luke: "You used to program."
Ben: "I was once a software engineer the same as your father."
Luke: "My father wasn't a software engineer. He was a custodian at
Ben: "That's what your Uncle told you. He didn't hold with your
father's ideals. He thought he should go to work. Not gotten
Luke: "I wish I had known him."
Ben: "He was a cunning object-oriented analyst, and the best systems
programmer in the galaxy. I understand you've become quite a
good hacker yourself. And he was a good friend. For over ten
years the systems programmers created user interfaces. Before
the dark times. Before Microsoft."
Luke: "How did my father die?"
Ben: "A young systems programmer named Bill Gates, who was a student
until his mommy kicked him out of her basement, founded
Microsoft and helped destroy the intuitive user interface. He
betrayed and murdered the Macintosh. Gates was seduced by the
Dark Side of Money."
Ben: "Yes, Money is what gives a programmer his resources. It's an
exchange system created by human beings. It surrounds us.
Works for us. Binds the economy together. Which reminds me. Your
father wanted you to have this when you were old enough, but
your Uncle wouldn't allow it. He thought you'd follow old Obi-Wan
on some damn idealistic crusade."
Luke: "What is it?"
Ben: "It's an object modeling tool. The weapon of a systems
programmer. Not as random or clumsy as a lexical parser. An elegant
compiler for a more civilized age."
|Dear Abby -
I am a Vietnam-era deserter from the U. S. Army, and I have
cousin who works for Microsoft. My mother peddles Nazi hate literature
Girl Scouts and my father (a former dentist) is in jail for 30
raping most of his patients while they were under
anesthesia. The sole supports
of our large family, including myself
and my $500-a-week heroin habit, are
my uncle (master pick-pocket
Benny "The Fingers") and my aunt and kid sisters,
who are well-known
My problem is this: I have just gotten engaged to the most
sweetest girl in the world. She is just sweet sixteen, and
we are going
to marry as soon as she can escape from reform school. To
we are going to move to Mexico and start a fake
Aztec souvenir factory
staffed by child labor. We look forward to
bringing our kids into the
family business. But -- I am worried that
my family will not make a good
impression on hers, once she has a
chance to meet them.
In your opinion, Abby: Should I -- or shouldn't I -- let
about my second cousin who works for Microsoft?
|There is, at least in the U.S., a new
TV ad for Microsoft's Internet
Explorer 4.0 package which uses the musical
theme of the "Confutatis
Maledictis" from Mozart's Requiem.
"Where do you want to go today?" is the cheery line on the
the chorus sings "Confutatis maledictis, flammis acribus
addictis," which may
answer the question for some. It translates as,
"The damned and accursed are convicted to flames of hell."
|TOP SEVEN WAYS TO IMPROVE MICROSOFT'S IMAGE
7. Bribe Elton John to rewrite "Candle in the Wind" again,
this time in behalf of Windows. (Goodbye DOS prompt,
Seems we hardly
knew you at all...)
6. Change slogan from "Microsoft -- Where do you want to
go today?" to "Microsoft -- We feel your pain!"
5. Introduce new, more sensitive error messages. For
"Runtime Error: Invalid use of null" would now
read: "Hello friend! May
I take just a moment of your time?
Sometimes things that seem like 'nothing'
can cause a
problem, but we still value you!"
4. Establish a special Make-A-Wish fund to send
Netscape workers to Disney World.
3. Install new Sensitivity Wizards on every employee's
computer with step-by-step instructions on pretending to
2. Hold a telethon for victims of Window 95 crashes.
1. Plant a tree for every company they've plowed under.
Costello: Hey, Abbott!
Abbot: Yes, Lou?
Costello: I just got my first computer.
Abbot: That's great Lou. What did you get?
Costello: A Pentium II-266, with 40 Megs of RAM, a 2.1 Gig hard drive, and
a 24X CD-ROM.
Abbot: That's terrific, Lou.
Costello: But I don't know what any of it means!!
Abbot: You will in time.
Costello: That's exactly why I am here to see you.
Costello: I heard that you are a real computer expert.
Abbot: Well, I don't know-
Costello: Yes-sir-ee. You know your stuff. And you're going to train m e.
Costello: Uh huh. And I am here for my first lesson.
Abbot: O.K. Lou. What do want to know?
Costello: I am having no problem turning it on, but I heard that you should
be very careful how you turn it off.
Abbot: That's true.
Costello: So, here I am working on my new computer and I want to turn it
off. What do I do?
Abbot: Well, first you press the Start button, and then-
Costello: No, I told you, I want to turn it off.
Abbot: I know, you press the Start button-
Costello: Wait a second. I want to turn it off. Off. I know how to start
it. So tell me what to do.
Abbot: I did.
Abbot: When I told you to press the Start button.
Costello: Why should I press the Start button?
Abbot: To shut off the computer.
Costello: I press Start to stop.
Abbot: Well Start doesn't actually stop the computer.
Costello: I knew it! So what do I press.
Costello: Start what?
Abbot: Start button.
Costello: Start button to do what?
Abbot: Shut down.
Costello: You don't have to get rude!
Abbot: No, no, no! That's not what I meant.
Costello: Then say what you mean.
Abbot: To shut down the computer, press-
Costello: Don't say, "Start!"
Abbot: Then what do you want me to say?
Costello: Look, if I want to turn off the computer, I am willing to press
the Stop button, the End button and Cease and Desist button, but no one
in their right mind presses the Start to Stop.
Abbot: But that's what you do.
Costello: And you probably Go at Stop signs, and Stop at green lights.
Abbot: Don't be ridiculous.
Costello: I am being ridiculous? Well. I think it's about time we started
Abbot: What are you talking about?
Costello: I am starting this conversation right now. Good-bye.
|"I hear that if you play the NT 4.0 CD backwards, you get
"--That's nothing. If you play it forward, it installs NT
|So my sister, a natural blond graduating from the University of North
Carolina Law School, is job hunting. I suggested that since Microsoft
is building up their legal team, she should send them a resume and
become a southern blond Microsoft lawyer -- and be the butt of any joke
on the internet.
|I noticed some interesting things about Monica Lewinsky:
- Nobody would know about her if it weren't for Bill
- She sucks
- She blows
- She's bloated
- She's the focus of a huge legal battle
- She'll go down in a heartbeat
Who does she think she is, Microsoft Windows?
|"Debating unix flavors in the context of anything Microsoft
is like talking
about which ice cream flavor tastes least like sawdust with
|The Top 13 Changes at Microsoft as a Result of Antitrust Charges
13>Microsoft offices no longer providing toilet paper bearing Netscape logo.
12>Follow-up release to "IE4" now being referred to internally as "IE5-10, with time off for good behavior."
11>Must say "pretty please with jam on top" before devouring competitors.
10>Cancellation of planned "You'll think what we TELL you to think!" ad campaign.
9>Company United Way contributions redirected towards the "Let's Buy The US Government" fund.
8>Plans to begin marketing MSFood, MSClothing and MSShelter quietly tabled.
7>10:00 AM: Barksdale visits Gates's office to sign landmark settlement agreement.
10:05 AM: Piranhas beneath trap door get some lunch.
6>"I don't brake for software companies" bumper stickers removed from corporate limousines.
5>Internal memos no longer refer to Janet Reno as "liquor-addled she-male."
4>Kick back for a while, let loser companies catch up.
3>Now relegated to making large piles of cash, down from huge buttwads of cash.
2>Using honesty, humility and cooperation, allow one small competitor to show a modest profit for three straight quarters. Then when they're lulled, club 'em to death like a baby seal.
and The Number 1 Change at Microsoft as a Result of Antitrust Charges...
1>Tables turned in jail, where Bill Gates has no choice but to have "Big Louie's Inmate Explorer" installed against *his* will.
After first seeing Microsoft's slogan for its upcoming Windows XP operating
system, "it just works", I couldn't help wondering: what were the slogans
for all the previous releases? After thinking about it for a while, they
|Windows 1.0: ||Good joke, eh?|
|Windows 2.0: ||Still funny, isn't it?|
|Windows 286: ||Yeah, we're still kidding.|
|Windows 386: ||Going boldly where Desqview has been for years.|
|Windows 3.0: ||It's finally worth buying!|
|Windows 3.1: ||It's finally worth using!|
|Windows 95: ||Going boldly where the Mac has been for years.|
|Windows 98: ||More usable! Less stable!|
|Windows 98SE: ||More stable! Less usable!|
|Windows ME: ||Less usable AND less stable!|
|NT 1.0: ||Give me more hardware! NOW!!!|
|NT 2.0: ||Dammit, I said MORE HARDWARE!!! NOW!!!!|
|NT 3.0: ||Which part of "more hardware" do you not understand?|
|NT 3.5: ||With enough hardware, I'd work. Honest.|
|NT 4.0: ||Does less than Win98 with twice the hardware at one-half the speed|
|Windows 2K: ||Works almost as well as Windows 98! Honest!|
|Windows XP: ||It just works.