2341 lines
55 KiB
Plaintext
2341 lines
55 KiB
Plaintext
|
Random Poetry and Other Losses printed April 17, 1979
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Random Poetry and Other Losses
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
The Great Quux
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
(C) Copyright 1978 by Guy L. Steele Jr. All rights reserved.
|
|||
|
|
|||
|
Any similarity of anything in this document to anything in the
|
|||
|
real world, except for a satiric purpose, is purely coincidental.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
The Great Quux page
|
|||
|
Random Poetry and Other Losses printed April 17, 1979
|
|||
|
|
|||
|
|
|||
|
BBN Superlisp
|
|||
|
|
|||
|
[to be sung to the tune of
|
|||
|
Jesus Christ Superstar]
|
|||
|
|
|||
|
|
|||
|
Every time I look at you I don't understand
|
|||
|
Why you think "Do What I Mean" is so cool and grand;
|
|||
|
You'd have managed better if you'd thought it through,
|
|||
|
Why'd you pick such an awkward way your bugs to undo?
|
|||
|
Your hairy feature will not be the last revolution,
|
|||
|
It's clear "Mean What I Do" is the ultimate solution!
|
|||
|
|
|||
|
Don't you get me wrong,
|
|||
|
Don't you get me wrong,
|
|||
|
Don't you get me wrong, now,
|
|||
|
Don't you get me wrong,
|
|||
|
I only want to hack,
|
|||
|
I only want to hack,
|
|||
|
I only want to hack,
|
|||
|
I only want to hack.
|
|||
|
|
|||
|
BBN! BBN! Some people think you're the living end!
|
|||
|
BBN! BBN! Some people think you're the living end!
|
|||
|
BBN! SuperLISP! Can "Do What I Mean" measure up to this?
|
|||
|
BBN! SuperLISP! Can "Do What I Mean" measure up to this?
|
|||
|
|
|||
|
Tell us what you think about your friends at the top,
|
|||
|
Who d'you think besides yourself's the pick of the crop?
|
|||
|
Is LISP 1.5 where it's at? Is it where you are?
|
|||
|
Does Stanford's LISP have features too or is that just PR?
|
|||
|
Do you have the breakpoint scheme that MACLISP is known for,
|
|||
|
Or is that just the kind of kludge the user's on his own for?
|
|||
|
|
|||
|
Don't you get me wrong,
|
|||
|
Don't you get me wrong,
|
|||
|
Don't you get me wrong, now,
|
|||
|
Don't you get me wrong,
|
|||
|
I only want to hack,
|
|||
|
I only want to hack,
|
|||
|
I only want to hack,
|
|||
|
I only want to hack.
|
|||
|
|
|||
|
BBN! BBN! Some people think you're the living end!
|
|||
|
BBN! BBN! Some people think you're the living end!
|
|||
|
BBN! SuperLISP! Can "Do What I Mean" measure up to this?
|
|||
|
BBN! SuperLISP! Can "Do What I Mean" measure up to this?
|
|||
|
|
|||
|
|
|||
|
-- The Great Quux
|
|||
|
(with apologies to
|
|||
|
Rice and Webber)
|
|||
|
|
|||
|
(C) Copyright 1973 Guy L. Steele Jr. All rights reserved.
|
|||
|
|
|||
|
|
|||
|
The Great Quux page 1
|
|||
|
Random Poetry and Other Losses printed April 17, 1979
|
|||
|
|
|||
|
|
|||
|
Both Ways, Now
|
|||
|
|
|||
|
[to be sung to the tune of
|
|||
|
Both Sides, Now]
|
|||
|
|
|||
|
|
|||
|
Decimal digits in a row,
|
|||
|
Just set the dials and let 'er go.
|
|||
|
The ENIAC was grossly slow --
|
|||
|
I used to code that way,
|
|||
|
But then this Fortran came along;
|
|||
|
I danced and sang a happy song:
|
|||
|
So natural -- what could go wrong?
|
|||
|
I little knew, that day!
|
|||
|
I've looked at Fortran both ways, now,
|
|||
|
At II and IV, and still somehow,
|
|||
|
It's rows of numbers I recall;
|
|||
|
I really don't know Fortran at all.
|
|||
|
|
|||
|
Fortran IV is real good stuff,
|
|||
|
But business hackers have it tough;
|
|||
|
For them this Fortran's not enough --
|
|||
|
Then Cobol saved the day!
|
|||
|
But now I sing a sad refrain;
|
|||
|
This Cobol loss is no one's gain,
|
|||
|
And writing programs is a pain
|
|||
|
(I get writer's cramp that way!)
|
|||
|
I've looked at Cobol both ways, now,
|
|||
|
I code in it, and still somehow,
|
|||
|
It's FORMAT statements I recall;
|
|||
|
I really don't know Cobol at all.
|
|||
|
|
|||
|
Cobol will for business do;
|
|||
|
Accounts and payroll make it through
|
|||
|
(And bills for zero dollars too --
|
|||
|
I get them every day!)
|
|||
|
But those who hack symbolic frobs
|
|||
|
Cannot make do with Cobol jobs,
|
|||
|
And now I sing through anguished sobs,
|
|||
|
But Lisp is here to stay.
|
|||
|
I've looked at Lisp code both ways, now,
|
|||
|
At lambda forms, and still somehow,
|
|||
|
It's Cobol statements I recall;
|
|||
|
I really don't know Lisp at all.
|
|||
|
|
|||
|
|
|||
|
-- The Great Quux
|
|||
|
(with apologies to
|
|||
|
Joni Mitchell)
|
|||
|
|
|||
|
|
|||
|
(C) Copyright 1974 Guy L. Steele Jr. All rights reserved.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
The Great Quux page 3
|
|||
|
Random Poetry and Other Losses printed April 17, 1979
|
|||
|
|
|||
|
|
|||
|
A Time for DWIM
|
|||
|
|
|||
|
[to be sung to the tune of
|
|||
|
A Time for Us
|
|||
|
(theme song from Romeo and Juliet)]
|
|||
|
|
|||
|
|
|||
|
A time for DWIM
|
|||
|
There'll never be;
|
|||
|
No clever code
|
|||
|
This losing mode
|
|||
|
Can UNDO for me.
|
|||
|
|
|||
|
This "golden hope"
|
|||
|
(To be denied)
|
|||
|
Could never
|
|||
|
Correctly fix the bugs my programs hide.
|
|||
|
|
|||
|
A way for bugs
|
|||
|
There'll never be
|
|||
|
To fix with generality.
|
|||
|
|
|||
|
So to this DWIM
|
|||
|
Let's say farewell;
|
|||
|
The crocks therein
|
|||
|
Prove it can't win
|
|||
|
And ring its knell:
|
|||
|
|
|||
|
Do What I Mean
|
|||
|
Is just a ruse --
|
|||
|
It really
|
|||
|
Means only: Fix How Teitelman doth Lose!
|
|||
|
|
|||
|
|
|||
|
-- The Great Quux
|
|||
|
(with apologies to
|
|||
|
Rota, Kusik, and Snyder)
|
|||
|
|
|||
|
(C) Copyright 1973 Guy L. Steele Jr. All rights reserved.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
The Great Quux page 4
|
|||
|
Random Poetry and Other Losses printed April 17, 1979
|
|||
|
|
|||
|
|
|||
|
The Sound of FORTRAN
|
|||
|
|
|||
|
[to be sung to the tune of
|
|||
|
The Sound of Music]
|
|||
|
|
|||
|
|
|||
|
My programming day has come to an end, I know,
|
|||
|
But one minor bug still restrains me, though,
|
|||
|
So back to me desk I stumble,
|
|||
|
More coffee I pour in my mug,
|
|||
|
And I drink, and I think, and I program
|
|||
|
Just one more hack, just one more hairy kludge
|
|||
|
To remove that bug.
|
|||
|
|
|||
|
Machines are alive with the sound of FORTRAN,
|
|||
|
With numbers they've crunched for a thousand hours;
|
|||
|
They add and subtract to the sound of FORTRAN,
|
|||
|
And raise fractions to unheard of powers.
|
|||
|
|
|||
|
My code's full of REAL statements, INTEGER and COMPLEX too,
|
|||
|
duplicated thrice oe'r,
|
|||
|
And so intermixed with the WRITEs and READs
|
|||
|
to cause errors galore;
|
|||
|
Arrays are declared of dimension six, but indexed minus two;
|
|||
|
Computed GO TOs are last in the range of a DO!
|
|||
|
|
|||
|
I now recompile my corrected programs;
|
|||
|
I know I will get what compiled before --
|
|||
|
My code will be blessed with the sound of FORTRAN,
|
|||
|
And I'll lose once more.
|
|||
|
|
|||
|
|
|||
|
-- The Great Quux
|
|||
|
(with apologies to
|
|||
|
Rodgers and Hammerstein)
|
|||
|
|
|||
|
(C) Copyright 1973 Guy L. Steele Jr. All rights reserved.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
The Great Quux page 5
|
|||
|
Random Poetry and Other Losses printed April 17, 1979
|
|||
|
|
|||
|
|
|||
|
The HACTRN
|
|||
|
|
|||
|
|
|||
|
Once before a console dreary, while I programmed, weak and weary,
|
|||
|
Over many a curious program which did TECO's buffer fill, --
|
|||
|
While I pondered, nearly sleeping, suddenly there came a feeping,
|
|||
|
As of something gently beeping, beeping with my console's bell.
|
|||
|
"'Tis my DDT," I muttered, "feeping on my console's bell:
|
|||
|
Once it feeped, and now is still."
|
|||
|
|
|||
|
Ah, distinctly I remember that dark night in bleak December,
|
|||
|
And each separate glowing symbol danced before me, bright and chill.
|
|||
|
Eagerly I wished the morrow; vainly I had sought to borrow
|
|||
|
From my HACTRN aid for sorrow -- sorrow for the bugs which fill --
|
|||
|
For the strange unknown and nameless bugs which ever all my programs f
|
|||
|
Bugs which now I searched for still.
|
|||
|
|
|||
|
And the coughing, whirring, gritty fan I heard inside my TTY
|
|||
|
Made me with fantastic terrors never known before to thrill;
|
|||
|
So that now, to still the beating of my heart I stood repeating,
|
|||
|
"'Tis some interrupt entreating DDT to signal me --
|
|||
|
Some strange interrupt entreating DDT to signal me --
|
|||
|
Its importance surely nil."
|
|||
|
|
|||
|
Presently my soul grew stronger: hesitating then no longer
|
|||
|
I decided that I would respond to this strange program's call;
|
|||
|
TECO, which I then attended, to my soul more strength extended;
|
|||
|
With ^Z I ascended, going to my DDT --
|
|||
|
V I typed, and answered soon my DDT --
|
|||
|
TECO there, and that was all!
|
|||
|
|
|||
|
Dumbly at my console peering, as I sat there, wondering, fearing,
|
|||
|
Doubting now that any interrupt was ever there to call;
|
|||
|
But the silence was unbroken, and my HACTRN gave no token,
|
|||
|
And the only sound there spoken from my TTY's whirring fan --
|
|||
|
The low and rough and distant sound came from my TTY's whirring fan --
|
|||
|
TECO there, and that was all.
|
|||
|
|
|||
|
Back into my TECO going, with my pounding heart now slowing,
|
|||
|
Soon again I heard a feeping, somewhat louder than before.
|
|||
|
"Surely," said I, "surely this is some strange bug of RMS's
|
|||
|
Which an interrupt professes, though I have no other job;
|
|||
|
Let me then ask DDT if it thinks there's another job --
|
|||
|
'Tis a bug, and nothing more!"
|
|||
|
|
|||
|
Again I went up to my HACTRN while cold shivers up my back ran
|
|||
|
V I typed, my jobs now once more to display.
|
|||
|
Only TECO was there listed; though my trembling heart resisted
|
|||
|
Yet I willed my hand, insisted, J to quickly type --
|
|||
|
To answer this bold query DDT did hesitantly type
|
|||
|
A ghostly "FOOBARJ".
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
The Great Quux page 6
|
|||
|
Random Poetry and Other Losses printed April 17, 1979
|
|||
|
|
|||
|
|
|||
|
From V protected, now, this phantom job, selected
|
|||
|
Gave no clue to why it had invoked that former beeping shrill.
|
|||
|
"Though," I said, "you're no inferior, I shall act as your superior
|
|||
|
And examine your interior, this strange matter to explore."
|
|||
|
Then I typed a 0/ this matter further to explore --
|
|||
|
Quoth the HACTRN, ":KILL".
|
|||
|
|
|||
|
Much I worried -- this outrageous bug might prove to be contagious,
|
|||
|
Though thus far it had not seemed to do my TECO any ill:
|
|||
|
For we cannot help concurring such a bug would cause a stirring,
|
|||
|
Feeping on a console whirring, disappearing then from sight --
|
|||
|
An evanescent mystery subjob disappearing then from sight
|
|||
|
With no clue but ":KILL"!
|
|||
|
|
|||
|
But my HACTRN, swapping, running, gave no further sign of cunning
|
|||
|
By this unknown phantom, which was in a thirty second sleep;
|
|||
|
None of this I comprehended; to my TECO I descended,
|
|||
|
And in terror I pretended that the bug had gone away --
|
|||
|
I pretended that for good the mystery bug had gone away --
|
|||
|
When my console gave a feep.
|
|||
|
|
|||
|
Now I quickly, hoping, praying, started up a PEEK displaying
|
|||
|
All the the jobs and subjobs there which did the system fill:
|
|||
|
What I found was quite unpleasant, for there was no FOOBAR present:
|
|||
|
Only TECO was there present, underneath my DDT;
|
|||
|
I quit the PEEK, and "FOOBARJ" typed out my DDT --
|
|||
|
Then quoth the HACTRN, ":KILL".
|
|||
|
|
|||
|
But -- this FOOBAR now beguiling all my sad soul into smiling --
|
|||
|
I tightly grinned, determined that this glitch should cause nobody ill
|
|||
|
Now, into my armchair sinking, I betook myself to linking
|
|||
|
Fancy unto fancy, thinking why this unknown phantom job --
|
|||
|
Why this grim, ungainly, ghastly, gaunt, and unknown phantom job
|
|||
|
Feeped and did a ":KILL".
|
|||
|
|
|||
|
This I sat engaged in guessing, but conceived no thought expressing
|
|||
|
How a phantom job could sound those strange and ghostly beeps;
|
|||
|
This and more I sat divining, with my head at ease reclining,
|
|||
|
With the symbols coldly shining at me from the CRT,
|
|||
|
With the bright, sharp symbols coldly shining on the CRT --
|
|||
|
Which suddenly gave seven feeps!
|
|||
|
|
|||
|
Then methought the air grew denser, filled with clouds which grew immenser,
|
|||
|
As when under darkened daylight thick and stormy weather brews;
|
|||
|
With some bit of hesitation stemming from my trepidation
|
|||
|
Again I typed that incantation finding out how much I'd lose --
|
|||
|
V I typed again to find how much I'd lose --
|
|||
|
TECO there, and seven FOOs!
|
|||
|
|
|||
|
"Job!" said I, "with ghostly manner! -- subjob still, if LISP or PLANNER!
|
|||
|
Whether accident, or feeping as another hacker wills!
|
|||
|
Tell me now why I am losing, why my HACTRN you're abusing,
|
|||
|
Which no doubt is of your choosing: echo truly on my screen!"
|
|||
|
Then DDT as if in answer echoed quickly on my screen,
|
|||
|
Typing seven ":KILLs".
|
|||
|
|
|||
|
The Great Quux page 7
|
|||
|
Random Poetry and Other Losses printed April 17, 1979
|
|||
|
|
|||
|
|
|||
|
"Job!" said I, "with ghostly manner! -- subjob still, if LISP or PLANNER!
|
|||
|
By the ITS above us which the DSKDMP doth fulfill,
|
|||
|
I shall be the system's saviour: I shall mend your crude behaviour,
|
|||
|
I shall halt your strange behaviour, and thee from the system lock!"
|
|||
|
Madly, wildly laughing I made DDT invoke a LOCK,
|
|||
|
And quickly typed thereat -- "5KILL"!
|
|||
|
|
|||
|
"Be this now our sign of parting, phantom job!" I shrieked, upstarting
|
|||
|
As my HACTRN now informed me ITS was going down in 5:00.
|
|||
|
"You have run your last instruction and performed your final function!
|
|||
|
But, refuting this deduction HACTRN then my TTY grabbed --
|
|||
|
To type out yet another message HACTRN now my TTY grabbed --
|
|||
|
Quoth the HACTRN, "ITS REVIVED!"
|
|||
|
|
|||
|
And the FOOBAR, never sleeping, still is beeping, still is beeping
|
|||
|
On the glaring console out from which I cannot even log!
|
|||
|
And other happenings yet stranger indicate inherent danger
|
|||
|
When bugs too easily derange or mung the programs of machines;
|
|||
|
When programs too "intelligent" start taking over the machines:
|
|||
|
Is this the end of AutoProg?
|
|||
|
|
|||
|
|
|||
|
-- The Great Quux
|
|||
|
(with apologies to
|
|||
|
Edgar Allan Poe)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Notes for those not familar with the terms in this poem:
|
|||
|
|
|||
|
TTY ("titty") = any terminal, not necessarily a teletype (in this
|
|||
|
case, a CRT); in particular, a terminal associated with and in
|
|||
|
control of a job tree (see "DDT" below). The terminal may be
|
|||
|
passed up and down the job tree; at any point in time only one
|
|||
|
job in the tree may use the tree's TTY. When ^Z is typed on
|
|||
|
the TTY, the system intervenes, stopping the job which has the
|
|||
|
TTY, and interrupts that job''s superior in the tree, which
|
|||
|
may then grab the TTY from the inferior job.
|
|||
|
|
|||
|
|
|||
|
DDT ("dee dee tee") = HACTRN ("hack-tran") = top level debugging and
|
|||
|
job controlling procedure, capable of controlling up to eight
|
|||
|
simultaneous jobs (which may themselves be DDTs!) and
|
|||
|
performing other miscellaneous functions. HACTRN specifically
|
|||
|
denotes a DDT at the top of a job tree, while DDT is the more
|
|||
|
general term. The two terms refer to the same job in the
|
|||
|
poem, and are thus treated as synonymous. Note that DDT
|
|||
|
requires its subjobs to have unique names for obvious reasons;
|
|||
|
hence the concern over seven jobs all named FOO.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
The Great Quux page 8
|
|||
|
Random Poetry and Other Losses printed April 17, 1979
|
|||
|
|
|||
|
|
|||
|
PEEK = a program similar to the SYSTAT of certain PDP-10 monitor
|
|||
|
systems of dubious quality. PEEK is actually much more
|
|||
|
versatile, giving information in any of some dozen modes, such
|
|||
|
a job status, DECtape status, Arpanet sockets, terminal
|
|||
|
status, and scheduler variables and statistics. It also has
|
|||
|
provisions for maintaining a continuously updated display on a
|
|||
|
CRT, and for line printer usage.
|
|||
|
|
|||
|
|
|||
|
TECO ("teeko") = text editor and corrector (that is, the good version
|
|||
|
of several versions of TECO which are floating around).
|
|||
|
|
|||
|
|
|||
|
:KILL ("colon kill") = message typed out by DDT whenever it kills a
|
|||
|
subjob. Note that subjobs, if running, may request DDT to
|
|||
|
kill themselves. If the job does not have the TTY when it
|
|||
|
makes such a request, DDT merely rings the TTY's bell (which
|
|||
|
on the CRT in the poem above is a particularly obnoxious
|
|||
|
flavor of "beep"), and prints nothing until you ascend to DDT,
|
|||
|
and perhaps type J (see below).
|
|||
|
|
|||
|
|
|||
|
LOCK = utility program, which interprets the particular command
|
|||
|
"nKILL" to mean "please bring the time-sharing system down in
|
|||
|
n minutes" (where it is required that n5). The system will
|
|||
|
then go down at the prescribed time unless the request is
|
|||
|
countermanded with a "REVIVE" request.
|
|||
|
|
|||
|
|
|||
|
ITS = Incompatible Timesharing System, the good timesharing system for
|
|||
|
the PDP-10.
|
|||
|
|
|||
|
|
|||
|
DSKDMP ("disk dump") = program used to, among other things, bootstrap
|
|||
|
ITS into a running state.
|
|||
|
|
|||
|
|
|||
|
= "altmode"; read it as such to preserve the meter.
|
|||
|
|
|||
|
|
|||
|
V = command to DDT, requesting it to print out the names of all its
|
|||
|
subjobs.
|
|||
|
|
|||
|
|
|||
|
J = command to DDT, asking that it select the job which has requested
|
|||
|
attention so that it may be dealt with. DDT responds
|
|||
|
"jobnameJ" so that you will know which job it was.
|
|||
|
|
|||
|
|
|||
|
^Z ("control zee") = command to ITS to stop the job which currently
|
|||
|
has the TTY, and interrupt the next higher job in the job
|
|||
|
tree. Ordinarily this has the effect of returning to DDT.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
The Great Quux page 9
|
|||
|
Random Poetry and Other Losses printed April 17, 1979
|
|||
|
|
|||
|
|
|||
|
0/ ("zero slash") = command to DDT, asking it to print out the
|
|||
|
contents of location zero of the selected subjob. This
|
|||
|
operation is theoretically transparent to the subjob itself.
|
|||
|
|
|||
|
RMS = Richard M. Stallman, who does an admirable job of keeping DDT,
|
|||
|
as well as many other programs, relatively bug-free.
|
|||
|
|
|||
|
(C) Copyright 1973, 1974 Guy L. Steele Jr. All rights reserved.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
The Great Quux page 10
|
|||
|
Random Poetry and Other Losses printed April 17, 1979
|
|||
|
|
|||
|
|
|||
|
A Collection of Nursery Rhymes and Other Random Losses
|
|||
|
by The Great Quux, RMS, and Anonymous
|
|||
|
|
|||
|
|
|||
|
A monitor system named DOS
|
|||
|
Became superseded by OS.
|
|||
|
It's not hard to guess
|
|||
|
Why the consequent mess
|
|||
|
Caused programmers all to scream "S.O.S."
|
|||
|
|
|||
|
-- TGQ May 1973
|
|||
|
|
|||
|
IBM had a PL/I,
|
|||
|
Its syntax worse than JOSS;
|
|||
|
And everywhere this language went,
|
|||
|
It was a total loss.
|
|||
|
|
|||
|
-- TGQ June 1973
|
|||
|
|
|||
|
System/3! System/3!
|
|||
|
See how it runs! See how it runs!
|
|||
|
Its monitor loses so totally!
|
|||
|
It runs all its programs in RPG!
|
|||
|
It's made by our favorite monopoly!
|
|||
|
System/3!
|
|||
|
|
|||
|
-- TGQ October 1973
|
|||
|
|
|||
|
RRR of x
|
|||
|
always equals 1.
|
|||
|
R is dimension, RR, rank.
|
|||
|
APL is fun!
|
|||
|
|
|||
|
-- RMS December 1973
|
|||
|
|
|||
|
RRRboat
|
|||
|
gentlystream
|
|||
|
4 7R"merrily"
|
|||
|
life
|
|||
|
value error
|
|||
|
life
|
|||
|
)
|
|||
|
|
|||
|
-- Anon January 1974
|
|||
|
|
|||
|
Hey, diddle, diddle the overflow pdl
|
|||
|
To get a little more stack;
|
|||
|
If that's not enough then you lose it all
|
|||
|
And have to pop all the way back.
|
|||
|
|
|||
|
-- TGQ January 1974
|
|||
|
|
|||
|
(C) Copyright 1974 Guy L. Steele Jr. All rights reserved.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
The Great Quux page 11
|
|||
|
Random Poetry and Other Losses printed April 17, 1979
|
|||
|
|
|||
|
|
|||
|
It may surprise some people to know that the
|
|||
|
PDP-10 instruction set, far from being innovative, was
|
|||
|
developed strictly along classical lines. Many of the
|
|||
|
operation codes, for example, come from the Latin. Two
|
|||
|
fifth-declension nouns (declinable only in the
|
|||
|
singular) are as follows:
|
|||
|
|
|||
|
Nominative: moves hrres
|
|||
|
Genitive: movei hrrei
|
|||
|
Dative: movei hrrei
|
|||
|
Accusative: movem hrrem
|
|||
|
Ablative: move hrre
|
|||
|
|
|||
|
|
|||
|
There are, of course, also hlres, hrles, and
|
|||
|
hlles. These all derive from the corresponding verbs
|
|||
|
hrro, hrlo, etc. (second conjugation, semi-deponent.)
|
|||
|
Thus when playing chess with MacHack one might say,
|
|||
|
"movem hrro," that is, "I am hurrying a move."
|
|||
|
|
|||
|
Similarly, the code jffo ("i am jffing") comes
|
|||
|
from a defective Latin verb dating from an era when
|
|||
|
ancient computers marked time by periodically pushing
|
|||
|
counters onto a wire. The number of empty spaces left
|
|||
|
on the wire could easily be counted by an instruction
|
|||
|
very like jffo, from which could be calculated the
|
|||
|
number of "jiffies" (clock ticks; 1 jiffy = 40 seconds)
|
|||
|
which had passed; hence the name.
|
|||
|
|
|||
|
Teutonic languages have also lent several words
|
|||
|
to the PDP-10: rot ("red") derives from the pieces of
|
|||
|
decayed redwood traditionally used as temporary markers
|
|||
|
in older German manual shift registers; while ash was
|
|||
|
commonly the result when an older German got disgusted
|
|||
|
and threw his shift register in the fire.
|
|||
|
|
|||
|
|
|||
|
--- The Great Quux
|
|||
|
(with apologies to no one)
|
|||
|
|
|||
|
(C) Copyright 1973 Guy L. Steele Jr. All rights reserved.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
The Great Quux page 12
|
|||
|
Random Poetry and Other Losses printed April 17, 1979
|
|||
|
|
|||
|
|
|||
|
PLIate's Dream
|
|||
|
|
|||
|
[to be sung to the tune of
|
|||
|
Pilate's Dream
|
|||
|
from Jesus Christ Superstar]
|
|||
|
|
|||
|
|
|||
|
I dreamed I was a brand new language,
|
|||
|
The ultimate in speed;
|
|||
|
I handled strings as fast as RPG,
|
|||
|
And twice as easily.
|
|||
|
|
|||
|
I crunched numbers like COBOL,
|
|||
|
Trees like APL,
|
|||
|
And FORTRAN loaned its FORMATs and GO TOs,
|
|||
|
The cause of many screws.
|
|||
|
|
|||
|
And then a man said, "Now we'll write a monitor,
|
|||
|
With Multics what it's for.
|
|||
|
Our project is begun;
|
|||
|
We'll code in PL/I."
|
|||
|
|
|||
|
Then I saw thousands of coders
|
|||
|
Searching for their bugs,
|
|||
|
And then I heard them mentioning my name
|
|||
|
And leaving me the blame.
|
|||
|
|
|||
|
|
|||
|
-- The Great Quux
|
|||
|
(with apologies to
|
|||
|
Rice and Webber)
|
|||
|
|
|||
|
(C) Copyright 1973 Guy L. Steele Jr. All rights reserved.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
The Great Quux page 13
|
|||
|
Random Poetry and Other Losses printed April 17, 1979
|
|||
|
|
|||
|
|
|||
|
As I was passing Project MAC,
|
|||
|
I met a Quux with seven hacks.
|
|||
|
Every hack had seven bugs;
|
|||
|
Every bug had seven manifestations;
|
|||
|
Every manifestation had seven symptoms.
|
|||
|
Symptoms, manifestations, bugs, and hacks,
|
|||
|
How many losses at Project MAC?
|
|||
|
|
|||
|
-- TGQ April 27, 1974
|
|||
|
|
|||
|
|
|||
|
|
|||
|
(c) Copyright 1974 Guy L. Steele Jr. All rights reserved.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
The Great Quux page 14
|
|||
|
Random Poetry and Other Losses printed April 17, 1979
|
|||
|
|
|||
|
|
|||
|
Reclaimer, spare that tree!
|
|||
|
Take not a single bit!
|
|||
|
It used to point to me,
|
|||
|
Now I'm protecting it.
|
|||
|
It was the reader's CONS
|
|||
|
That made it, paired by dot;
|
|||
|
Now, GC, for the nonce,
|
|||
|
Thou shalt reclaim it not.
|
|||
|
|
|||
|
That old familiar tree,
|
|||
|
Whose CDRs and whose CARs
|
|||
|
Are spread, o'er memory --
|
|||
|
And wouldst thou it unparse?
|
|||
|
GC, cease and desist!
|
|||
|
In it no freelist store;
|
|||
|
Oh spare that moby list
|
|||
|
Now pointing throughout core!
|
|||
|
|
|||
|
It was my parent tree
|
|||
|
When it was circular;
|
|||
|
It pointed then to me:
|
|||
|
I was its CADADR.
|
|||
|
My CDR was a list,
|
|||
|
My CAR a dotted pair --
|
|||
|
That tree will sore be missed
|
|||
|
If it remains not there.
|
|||
|
|
|||
|
And now I to thee point,
|
|||
|
A saving root, old friend!
|
|||
|
Thou shalt remain disjoint
|
|||
|
From freelists to the end.
|
|||
|
Old tree! The sweep still brave!
|
|||
|
And, GC, mark this well:
|
|||
|
While I exist to save,
|
|||
|
Thou shan't reclaim one cell.
|
|||
|
|
|||
|
|
|||
|
-- The Great Quux
|
|||
|
(with apologies to
|
|||
|
George Pope Morris)
|
|||
|
|
|||
|
(C) Copyright 1973 Guy L. Steele Jr. All rights reserved.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
The Great Quux page 15
|
|||
|
Random Poetry and Other Losses printed April 17, 1979
|
|||
|
|
|||
|
|
|||
|
I Could Have Tooled All Night
|
|||
|
|
|||
|
[to be sung to the tune of
|
|||
|
I Could Have Danced All Night
|
|||
|
from My Fair Lady]
|
|||
|
|
|||
|
|
|||
|
Tool! Tool! I feel like such a fool!
|
|||
|
All term I goofed off; I can't catch up now!
|
|||
|
Sleep! Sleep! I've got to get some sleep!
|
|||
|
Tooling wouldn't help me anyhow!
|
|||
|
|
|||
|
I could have tooled all night,
|
|||
|
I could have tooled all night,
|
|||
|
and still have tooled some more;
|
|||
|
I could have been absurd,
|
|||
|
Learned all my Latin verbs,
|
|||
|
It wouldn't raise my score.
|
|||
|
I can't remember all those theorems,
|
|||
|
And all those facts from my mind flee --
|
|||
|
I only know exams,
|
|||
|
Are why one usually crams,
|
|||
|
But tooling never could help me!
|
|||
|
|
|||
|
I could have tooled all night,
|
|||
|
I could have tooled all night,
|
|||
|
And memorized each book;
|
|||
|
I only now regret,
|
|||
|
My sections never met,
|
|||
|
And lectures I forsook.
|
|||
|
I cross my fingers now in terror,
|
|||
|
I only hope some luck's with me --
|
|||
|
But had I tooled or not,
|
|||
|
I'd still be on the spot,
|
|||
|
My goofing off deserves the E!
|
|||
|
|
|||
|
|
|||
|
-- The Great Quux
|
|||
|
(with apologies to
|
|||
|
Lerner and Loewe)
|
|||
|
|
|||
|
(C) Copyright 1974 Guy L. Steele Jr. All rights reserved.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
The Great Quux page 16
|
|||
|
Random Poetry and Other Losses printed April 17, 1979
|
|||
|
|
|||
|
|
|||
|
I think that I shall never see
|
|||
|
A matrix lovely as a tree.
|
|||
|
Trees are fifty times as fun
|
|||
|
As structures a la PL/I
|
|||
|
(Which Dijkstra claims are too baroque).
|
|||
|
And SNOBOL's strings just can't compare
|
|||
|
With all the leaves a tree may bear.
|
|||
|
And COMIT strings are just a joke.
|
|||
|
Vectors, tuples too, are nice,
|
|||
|
But haven't the impressive flair
|
|||
|
Of trees to which a LISP is heir.
|
|||
|
A LISPer's life is paradise!
|
|||
|
|
|||
|
Many people think that JOSS
|
|||
|
And others, too, are strictly boss;
|
|||
|
And there are many BASIC fans
|
|||
|
Who think their favorite language spans
|
|||
|
All that would a user please.
|
|||
|
Compared to LISP they're all a loss,
|
|||
|
For none of them gives all the ease
|
|||
|
With which a LISP builds moby trees.
|
|||
|
|
|||
|
RPG is just a nurd
|
|||
|
(As you no doubt have often heard);
|
|||
|
The record layouts are absurd,
|
|||
|
And numbers packed in decimal form
|
|||
|
Will never fit a base-two word
|
|||
|
Without a veritable storm
|
|||
|
Of gross conversions fro and to
|
|||
|
With them arithmetic to do.
|
|||
|
And one must allocate the field
|
|||
|
Correct arithmetic to yield,
|
|||
|
And decimal places represent
|
|||
|
Truncation loss to circumvent:
|
|||
|
Thus RPG is second-rate.
|
|||
|
In LISP one needn't allocate
|
|||
|
(That boon alone is heaven-sent!)
|
|||
|
The scheme is sheer simplicity:
|
|||
|
A number's just another tree.
|
|||
|
When numbers threaten overflow
|
|||
|
LISP makes the number tree to grow,
|
|||
|
Extending its significance
|
|||
|
With classic treelike elegance.
|
|||
|
A LISP can generate reports,
|
|||
|
Create a file, do chains and sorts;
|
|||
|
But one thing you will never see
|
|||
|
Is moby trees in RPG.
|
|||
|
|
|||
|
One thing the average language lacks
|
|||
|
Is programmed use of push-down stacks.
|
|||
|
But LISP provides this feature free:
|
|||
|
A stack - you guessed it - is a tree.
|
|||
|
An empty stack is simply NIL.
|
|||
|
In order, then, the stack to fill
|
|||
|
|
|||
|
|
|||
|
The Great Quux page 17
|
|||
|
Random Poetry and Other Losses printed April 17, 1979
|
|||
|
|
|||
|
|
|||
|
A CONS will push things on the top;
|
|||
|
To empty it, a CDR will
|
|||
|
Behave exactly like a pop.
|
|||
|
A simple CAR will get you back
|
|||
|
The last thing you pushed on the stack;
|
|||
|
An empty stack's detectable
|
|||
|
By testing with the function NULL.
|
|||
|
Thus even should a LISPer lose
|
|||
|
With PROGs and GOs, RETURNs and DOs,
|
|||
|
He need his mind not overtax
|
|||
|
To implement recursive hacks:
|
|||
|
He'll utilize this clever ruse
|
|||
|
Of using trees as moby stacks.
|
|||
|
Some claim this method is too slow
|
|||
|
Because it uses CONS so much
|
|||
|
And thus requires the GC touch;
|
|||
|
It has one big advantage, though:
|
|||
|
You needn't fear for overflow.
|
|||
|
Since LISP allows its trees to grow,
|
|||
|
Stacks can to any limits go.
|
|||
|
|
|||
|
COBOL input is a shame:
|
|||
|
The implementors play a game
|
|||
|
That no two versions are the same.
|
|||
|
And rocky is the FORTRAN road
|
|||
|
One's alpha input to decode:
|
|||
|
The FORMAT statement is to blame,
|
|||
|
But on the user falls the load.
|
|||
|
And FOCAL input's just a farce;
|
|||
|
But all LISP input comes pre-parsed!
|
|||
|
(The input reader gets its fame
|
|||
|
By getting storage for each node
|
|||
|
From lists of free words scattered sparse.
|
|||
|
It parses all the input strings
|
|||
|
With aid of mystic mutterings;
|
|||
|
From dots and strange parentheses,
|
|||
|
From zeros, sevens, A's and Z's,
|
|||
|
Constructs, with magic reckonings,
|
|||
|
The pointers needed for its trees.
|
|||
|
It builds the trees with complex code
|
|||
|
With rubout processing bestowed;
|
|||
|
When typing errors do forebode
|
|||
|
The rubout makes recovery tame,
|
|||
|
And losers then will oft exclaim
|
|||
|
Their sanity to LISP is owed -
|
|||
|
To help these losers is LISP's aim.)
|
|||
|
|
|||
|
The flow-control of APL
|
|||
|
And OS data sets as well
|
|||
|
Are best described as tortured hell.
|
|||
|
For LISPers everything's a breeze;
|
|||
|
They neatly output all their trees
|
|||
|
With format-free parentheses
|
|||
|
And see their program logic best
|
|||
|
|
|||
|
|
|||
|
The Great Quux page 18
|
|||
|
Random Poetry and Other Losses printed April 17, 1979
|
|||
|
|
|||
|
|
|||
|
By how their lovely parens nest.
|
|||
|
While others are by GOs possessed,
|
|||
|
And WHILE-DO, CASE, and all the rest,
|
|||
|
The LISPing hackers will prefer
|
|||
|
With COND their programs to invest
|
|||
|
And let their functions all recur
|
|||
|
When searching trees in maddened quest.
|
|||
|
|
|||
|
Expanding records of fixed size
|
|||
|
Will quickly programs paralyze.
|
|||
|
Though ISAM claims to be so wise
|
|||
|
In allocating overflow,
|
|||
|
Its data handling is too slow
|
|||
|
And finding it takes many tries.
|
|||
|
But any fool can plainly see
|
|||
|
Inherent flexibility
|
|||
|
In data structured as a tree.
|
|||
|
When all their efforts have gone sour
|
|||
|
To swell fixed records, losers glower.
|
|||
|
But list reclaimers hour by hour
|
|||
|
By setting all the garbage free
|
|||
|
Yield CONSequent capacity:
|
|||
|
Thus trees indefinitely flower.
|
|||
|
(And trees run on atomic power!)
|
|||
|
|
|||
|
To men of sensibility
|
|||
|
The lesson here is plain to see:
|
|||
|
Arrays are used by clods like me,
|
|||
|
But only LISP can make a tree.
|
|||
|
|
|||
|
|
|||
|
- The Great Quux
|
|||
|
(with apologies to
|
|||
|
Joyce Kilmer)
|
|||
|
|
|||
|
|
|||
|
(C) Copyright 1973 Guy L. Steele Jr.
|
|||
|
All rights reserved.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
The Great Quux page 19
|
|||
|
Random Poetry and Other Losses printed April 17, 1979
|
|||
|
|
|||
|
|
|||
|
Alphabetical Order
|
|||
|
|
|||
|
|
|||
|
MACLISP Ben PDP-6 (may its core increase!)
|
|||
|
Awoke one jiffy from a deep dream of trees
|
|||
|
And saw, by parsing out a TTY: .FILE. (DIR)
|
|||
|
Scanning all the jobs, within the system here,
|
|||
|
A PEEK, displaying on a CRT of gold;
|
|||
|
A low USRTIM made the MACLISP bold:
|
|||
|
And to the PEEK by CLI: a message sent,
|
|||
|
"What displayest thou?" The message to it quickly went,
|
|||
|
And the PEEK through CLA: a message did transduce,
|
|||
|
And answer'd "The names of programs of practical use."
|
|||
|
"And is mine one?" sent MACLISP. "Nay, not so,"
|
|||
|
Replied the PEEK. MACLISP ran more slow
|
|||
|
But swapping still. "I pray thee then," it sent,
|
|||
|
"Display me as one that helps to systems implement."
|
|||
|
The PEEK :KILLed and vanished. The next time
|
|||
|
It ran again, in a display mode sublime,
|
|||
|
It showed the names the Grim File Reaper had blessed,
|
|||
|
And lo! MACLISP's name was thirty-seventh.
|
|||
|
|
|||
|
|
|||
|
-- The Great Quux
|
|||
|
(with apologies to
|
|||
|
Leigh Hunt)
|
|||
|
|
|||
|
(C) Copyright 1973 Guy L. Steele Jr. All rights reserved.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
The Great Quux page 20
|
|||
|
Random Poetry and Other Losses printed April 17, 1979
|
|||
|
|
|||
|
|
|||
|
Lambda Bound
|
|||
|
|
|||
|
[to be sung to the tune of
|
|||
|
Homeward Bound]
|
|||
|
|
|||
|
|
|||
|
I'm just a little value cell,
|
|||
|
And I play my special role so well --
|
|||
|
Hmmm --
|
|||
|
Serving as a global switch
|
|||
|
To predicate some system glitch;
|
|||
|
But some strange value -- who knows which? --
|
|||
|
Could cause me functions to bewitch!
|
|||
|
Lambda bound!
|
|||
|
I wish I was
|
|||
|
Lambda bound!
|
|||
|
Bound, so no SETQ's get me;
|
|||
|
Bound, so quits will reset me;
|
|||
|
Bound, where I can forget my
|
|||
|
Top-level value.
|
|||
|
|
|||
|
It's hard to catch those system screws:
|
|||
|
'Most any value causes me to lose --
|
|||
|
Hmmm --
|
|||
|
Each atom looks the same to me,
|
|||
|
Whose interned name I cannot see,
|
|||
|
And every NIL and every T
|
|||
|
Reminds me that I long to be
|
|||
|
Lambda bound!
|
|||
|
I wish I was
|
|||
|
Lambda bound!
|
|||
|
Bound, so no SETQ's get me;
|
|||
|
Bound, so quits will reset me;
|
|||
|
Bound, where I can forget my
|
|||
|
Top-level value.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
The Great Quux page 21
|
|||
|
Random Poetry and Other Losses printed April 17, 1979
|
|||
|
|
|||
|
|
|||
|
Next time I'll have a MAR break set
|
|||
|
And try to catch each clobber threat --
|
|||
|
Hmmm, mmmm --
|
|||
|
The next covert attempt to mung
|
|||
|
Will cause the MAR break to be sprung,
|
|||
|
But then the poor LISP will be hung
|
|||
|
Because I'm not as I have sung:
|
|||
|
Lambda bound!
|
|||
|
I wish I was
|
|||
|
Lambda bound!
|
|||
|
Bound, so no SETQ's get me;
|
|||
|
Bound, so quits will reset me;
|
|||
|
Bound, where I can forget my
|
|||
|
Top-level value.
|
|||
|
|
|||
|
|
|||
|
-- The Great Quux
|
|||
|
(with apologies to
|
|||
|
Paul Simon)
|
|||
|
|
|||
|
(C) Copyright 1974 Guy L. Steele Jr. All rights reserved.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
The Great Quux page 22
|
|||
|
Random Poetry and Other Losses printed April 17, 1979
|
|||
|
|
|||
|
|
|||
|
Song of the Certified Data Processor
|
|||
|
|
|||
|
[to be sung to the tune of
|
|||
|
When I Was a Lad
|
|||
|
from H.M.S. Pinafore]
|
|||
|
|
|||
|
|
|||
|
When I was a lad I served a term
|
|||
|
As office boy to a computing firm.
|
|||
|
I polished the handle of the big front door
|
|||
|
And swept up all the card chips from the keypunch floor.
|
|||
|
He swept up all the card chips from the keypunch floor.
|
|||
|
I swept that chad so carefullee
|
|||
|
That now I am officially a CDP.
|
|||
|
He swept that chad so carefullee
|
|||
|
That now he is officially a CDP.
|
|||
|
|
|||
|
My office job was a heavy load,
|
|||
|
So I went to night school and learned to code.
|
|||
|
I was soon coding payroll in RPG
|
|||
|
And compiled all my programs on a System/3.
|
|||
|
He compiled all his programs on a System/3.
|
|||
|
I compiled my code so gay and free
|
|||
|
That now I am officially a CDP.
|
|||
|
He compiled his code so gay and free
|
|||
|
That now he is officially a CDP.
|
|||
|
|
|||
|
I wrote efficient code each day,
|
|||
|
But I missed the benefits of higher pay.
|
|||
|
I asked for a raise, but my boss said, "See,
|
|||
|
Youse ain't good enuf because youse ain't a CDP."
|
|||
|
"He ain't good enuf because he ain't a CDP."
|
|||
|
So I vowed that someday I would see
|
|||
|
Myself become officially a CDP.
|
|||
|
So he vowed that someday he would see
|
|||
|
Himself become officially a CDP.
|
|||
|
|
|||
|
For nineteen weeks I worked to cram
|
|||
|
All the textbooks for the CDP exam.
|
|||
|
Then I took the exam and was shocked to see
|
|||
|
That the questions didn't seem to mean a thing to me.
|
|||
|
All the questions didn't seem to mean a thing to him.
|
|||
|
So I wrote down some answers randomly,
|
|||
|
But I gave up all my hopes to be a CDP.
|
|||
|
So he wrote down some answers randomly,
|
|||
|
But he gave up all his hopes to be a CDP.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
The Great Quux page 23
|
|||
|
Random Poetry and Other Losses printed April 17, 1979
|
|||
|
|
|||
|
|
|||
|
Well, those random answers worked out fine;
|
|||
|
They scored my results at the top of the line.
|
|||
|
Now I am a consultant here,
|
|||
|
And I make at least a hundred thousand bucks each year.
|
|||
|
And he makes at least a hundred thousand bucks each year.
|
|||
|
But I only command such a salary
|
|||
|
Because I am officially a CDP.
|
|||
|
But he only commands such a salary
|
|||
|
Because he is officially a CDP.
|
|||
|
|
|||
|
Now, office boys, whoever you may be,
|
|||
|
If you want to rise to the top of the tree,
|
|||
|
Just go and take the CDP exam,
|
|||
|
And no matter what you answer they won't give a D--n!
|
|||
|
And no matter what you answer they won't give a D--n!
|
|||
|
Just answer it all as random as you please
|
|||
|
And you will all officially be CDPs.
|
|||
|
Just answer it all as random as you please
|
|||
|
And you will all officially be CDPs.
|
|||
|
|
|||
|
|
|||
|
-- The Great Quux
|
|||
|
(with apologies to
|
|||
|
Gilbert and Sullivan)
|
|||
|
|
|||
|
(C) Copyright 1974 by Guy L. Steele Jr. All rights reserved.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
The Great Quux page 24
|
|||
|
Random Poetry and Other Losses printed April 17, 1979
|
|||
|
|
|||
|
|
|||
|
A pile of stuff written in April, 1976
|
|||
|
|
|||
|
|
|||
|
April 1, 1976
|
|||
|
|
|||
|
|
|||
|
[1] Notes taken in 6.015 (Signals and Systems)
|
|||
|
|
|||
|
On Matched Filters:
|
|||
|
|
|||
|
The ancients used potions, their love schemes to hatch;
|
|||
|
They knew the right philtre encouraged a match.
|
|||
|
When a lad made a wink at a comely young lass,
|
|||
|
The philtre she used was designed for a pass.
|
|||
|
The signals to use were determined by philtre;
|
|||
|
The two peaked as one, for the lad could not jilt her.
|
|||
|
The two thus entwined, so that noise did not bother
|
|||
|
(Excepting that made by the groom's in-law mother...)
|
|||
|
|
|||
|
On Time Division Multiplexing:
|
|||
|
|
|||
|
To get the most use from your broadcasting medium:
|
|||
|
Activity is, strangely, relieved by the TDM.
|
|||
|
|
|||
|
|
|||
|
[2] Notes taken in 6.893 (Machine Perception and Manipulation)
|
|||
|
|
|||
|
|
|||
|
"... and so the line connecting the points Ga and Gb in gradient
|
|||
|
space, which correspond to the planes A and B in image space, is the
|
|||
|
set of points representing positions of a plane see-sawing around the
|
|||
|
line of intersection between A and B..."
|
|||
|
|
|||
|
Now I see; then I saw;
|
|||
|
The planes of a cube have a linear law.
|
|||
|
The endpoints of lines in the gradient space
|
|||
|
Show where the see-sawing planes fall into place.
|
|||
|
|
|||
|
Macrakis, sitting beside me, half-asleep: "COFFEE!"
|
|||
|
|
|||
|
Caffeine doesn't help me composing this verse.
|
|||
|
It only awakes me; my thoughts all disperse.
|
|||
|
One thinks better dozing, collapsed in a heap;
|
|||
|
Why else are most students in classes asleep?
|
|||
|
|
|||
|
"... the lines in gradient space are perpendicular to the lines in
|
|||
|
image space. This doesn't provide enough constraints, however.
|
|||
|
Additional equations may be derived from the intensity information.
|
|||
|
One can get one or more solutions for a trihedral vertex. If the
|
|||
|
vertex has more than three planes, then there are more constraints
|
|||
|
than necessary, and one may have to resort to least squares..."
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
The Great Quux page 25
|
|||
|
Random Poetry and Other Losses printed April 17, 1979
|
|||
|
|
|||
|
|
|||
|
Alone, the geometry isn't enough:
|
|||
|
You also require intensity stuff.
|
|||
|
We get enough data if points are tri-planed,
|
|||
|
While four leave the gradients over-constrained.
|
|||
|
|
|||
|
|
|||
|
[3] Some Higgledy-Piggledies
|
|||
|
|
|||
|
|
|||
|
For those not familiar with this verse form: A Higgledy-Piggledy has
|
|||
|
eight lines. All but the fourth and eighth lines are double dactyls,
|
|||
|
while the fourth and eighth are a dactyl plus an upbeat. The first
|
|||
|
line is nonsense; the second, a name; the sixth must be a single six-
|
|||
|
syllable word; and the fourth and eighth must rhyme. It is
|
|||
|
permissible for the first line to make sense, or for the fifth line
|
|||
|
instead of the sixth to be all one word. If too many rules are bent,
|
|||
|
the verse is just called a double-dactyl verse, rather than a
|
|||
|
Higgledy-Piggledy.
|
|||
|
[a] If you write (DO ((X NIL X) ...) ...) instead of the
|
|||
|
usual (DO ((X NIL) ...) ...), i.e. you explicitly step
|
|||
|
a variable by its own value, NCOMPLR (the MacLISP compiler)
|
|||
|
may get confused, and in any case generates inessential code.
|
|||
|
|
|||
|
Higgledy piggledy,
|
|||
|
Project MAC NCOMPLR
|
|||
|
Still is committing its
|
|||
|
DO-stepping sins:
|
|||
|
Though it may seem somewhat
|
|||
|
Counterintuitive,
|
|||
|
FOO stepped by FOO screws; de-
|
|||
|
Faulting it wins.
|
|||
|
|
|||
|
[b] You can't do EQ on numbers and hope to win. Recall also
|
|||
|
the famous test in which NCOMPLR produced better numerical
|
|||
|
code than the DEC FORTRAN compiler (Fateman 1973).
|
|||
|
|
|||
|
Quaxity quuxity,
|
|||
|
MacLISP and NCOMPLR
|
|||
|
Have a convention that
|
|||
|
Makes losers freak:
|
|||
|
Integers allocate
|
|||
|
Hyperefficiently,
|
|||
|
Bettering FORTRAN, but
|
|||
|
Screwing up EQ.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
The Great Quux page 26
|
|||
|
Random Poetry and Other Losses printed April 17, 1979
|
|||
|
|
|||
|
|
|||
|
[c] As usual, taking a DWIM view of InterLISP.
|
|||
|
|
|||
|
Quaxity quuxity,
|
|||
|
Teitelman's InterLISP
|
|||
|
Has a DWIM feature that's
|
|||
|
Really a screw;
|
|||
|
MacLISP has evident
|
|||
|
Superiority,
|
|||
|
Letting its customer
|
|||
|
Mean what he do.
|
|||
|
|
|||
|
|
|||
|
April 2, 1976
|
|||
|
|
|||
|
Though NEWIO has been around for many months,
|
|||
|
few people use it. I wonder why?
|
|||
|
|
|||
|
Quaxity quuxity,
|
|||
|
TGQ's NEWIO
|
|||
|
Has many functions that
|
|||
|
No one can grok:
|
|||
|
Documentation is
|
|||
|
Incomprehensible;
|
|||
|
GLS will explain it, but
|
|||
|
Still it's a crock.
|
|||
|
|
|||
|
|
|||
|
April 3, 1976
|
|||
|
|
|||
|
[a] NIL leads a double life in LISP.
|
|||
|
|
|||
|
Quaxity quuxity,
|
|||
|
NIL the atomic one
|
|||
|
Acts like a wavicle,
|
|||
|
Seemingly twin:
|
|||
|
Not just the inverse of
|
|||
|
Verisimilitude;
|
|||
|
Also the inverse of
|
|||
|
Where lists begin.
|
|||
|
|
|||
|
[b] I am getting weary of bicentennial parading by industry.
|
|||
|
"Bicentennial Minutes" now appear not only on television,
|
|||
|
but on milk cartons and beer cans.
|
|||
|
|
|||
|
Quaxity quuxy, A-
|
|||
|
Merican businessmen
|
|||
|
Use bicentennial,
|
|||
|
Profit to gain.
|
|||
|
Hope by the time we reach
|
|||
|
Quadricentennial
|
|||
|
They'll not so plague me -- ad-
|
|||
|
Vertisements pain!
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
The Great Quux page 27
|
|||
|
Random Poetry and Other Losses printed April 17, 1979
|
|||
|
|
|||
|
|
|||
|
[c] For SF fans: see Asimov's article on the "peace bomb"
|
|||
|
(contained in his collection "Opus 100").
|
|||
|
|
|||
|
Quaxity quuxity,
|
|||
|
Young Isaac Asimov
|
|||
|
Strange thiotimoline's
|
|||
|
Secret unfurled.
|
|||
|
Cascaded series of
|
|||
|
Endochronometers
|
|||
|
Brought paradoxical
|
|||
|
Floods on the world.
|
|||
|
|
|||
|
[d] More SF, this time in memory of James Blish:
|
|||
|
|
|||
|
Quaxity quuxity,
|
|||
|
Blish used philosophy
|
|||
|
When he was writing "The
|
|||
|
Quincunx of Time."
|
|||
|
Beeps of Dirac used to
|
|||
|
Chronocommunicate
|
|||
|
Fostered determinate
|
|||
|
Free will sublime.
|
|||
|
|
|||
|
[e] DJL, computer science type undergraduate, has decided to
|
|||
|
go to MIT grad school in Materials Science.
|
|||
|
|
|||
|
Quaxity quuxity,
|
|||
|
David J. Littleboy
|
|||
|
(MIT graduate)
|
|||
|
Makes his plans plain.
|
|||
|
Leaving the study of
|
|||
|
Data-technology,
|
|||
|
He prefers seeking ma-
|
|||
|
Terial gain.
|
|||
|
|
|||
|
[f] I once read that space has three dimensions because orbits
|
|||
|
aren't stable in 4-space.
|
|||
|
|
|||
|
I often have wondered in
|
|||
|
What kind of orbit a
|
|||
|
Planet proceeds in a
|
|||
|
Tesseract space?
|
|||
|
Multidimensional,
|
|||
|
Hyperelliptical,
|
|||
|
Dizzying spacemen in
|
|||
|
Trans-solar chase.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
The Great Quux page 28
|
|||
|
Random Poetry and Other Losses printed April 17, 1979
|
|||
|
|
|||
|
|
|||
|
[g] Finally, let's hear it for quantum mechanics, who service
|
|||
|
small automobiles for today's nuclear family.
|
|||
|
|
|||
|
Pauli and Heisenberg
|
|||
|
Offer two rules for con-
|
|||
|
Fused aristocracies,
|
|||
|
Quantum domains:
|
|||
|
"Egalitarian
|
|||
|
Nonexclusivity
|
|||
|
Must be forbidden"; "Un-
|
|||
|
Certainty reigns."
|
|||
|
|
|||
|
|
|||
|
April 4, 1976
|
|||
|
|
|||
|
[a] When in Canada, do as the Canadans do...
|
|||
|
|
|||
|
Quaxiti quuxiti, Quaxity quuxity,
|
|||
|
Remus et Romulus Remus and Romulus,
|
|||
|
Gemini fratres a Wolf-nourished brothers, were
|
|||
|
Lupa aluntur. Twins, so they say.
|
|||
|
Romulus inquit: non Romulus patiently
|
|||
|
Aedificabitur Founded a city; as
|
|||
|
Paucis diebus, sed He said, "Rome will not be
|
|||
|
Roma nascetur. Built in a day."
|
|||
|
|
|||
|
[b] Apples grow on trees, but no trees in APLs.
|
|||
|
|
|||
|
Quaxity quuxity,
|
|||
|
Kenneth E. Iverson
|
|||
|
Made APL, matrix
|
|||
|
Hackers to please,
|
|||
|
Not only famous for
|
|||
|
Arithmeticity;
|
|||
|
Also for characters.
|
|||
|
(Wish it had trees!)
|
|||
|
|
|||
|
[c] Sussman built a hacker for a Ph.D. thesis. When will someone
|
|||
|
for a thesis build a hacker that builds a hacker?
|
|||
|
|
|||
|
Quaxity quuxity,
|
|||
|
Gerald J. Sussman made
|
|||
|
HACKER so famous for
|
|||
|
Loopholes it plugs.
|
|||
|
Armed with its knowledge of
|
|||
|
Entomological
|
|||
|
Manifestations, it
|
|||
|
Ferrets out bugs.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
The Great Quux page 29
|
|||
|
Random Poetry and Other Losses printed April 17, 1979
|
|||
|
|
|||
|
|
|||
|
[d] It doesn't take truth to destroy a reputation, but only
|
|||
|
a rumor. Yet sometimes the nastiest rumor is the truth.
|
|||
|
Consider the one which says EQUIV causes true values (1-bits)
|
|||
|
to complement bits of the other argument...
|
|||
|
|
|||
|
Quaxity quuxity,
|
|||
|
XOR's more famous than
|
|||
|
Brother EQUIV, though they've
|
|||
|
Similar use.
|
|||
|
Uncomplementary
|
|||
|
Verisimilitude,
|
|||
|
Rumor undoubtedly
|
|||
|
Cooked EQUIV's goose.
|
|||
|
|
|||
|
[e] And why did Napoleon clutch his stomach? (Mail $1000 and a
|
|||
|
self-addressed, stamped envelope, and we'll send you a jingle
|
|||
|
in 25 words or less.)
|
|||
|
|
|||
|
Quaxity quuxy, Na-
|
|||
|
Poleon Bonaparte
|
|||
|
Conquered all Europe, but
|
|||
|
What was the use?
|
|||
|
Some say the problem was
|
|||
|
Megalomania;
|
|||
|
Others, he lacked modern
|
|||
|
High-platform shoes.
|
|||
|
|
|||
|
[f] People got excited about BNF, and used it to drive parser
|
|||
|
generators. But you still can't really tell how to write
|
|||
|
programs in the language.
|
|||
|
|
|||
|
Quaxity quuxity,
|
|||
|
Backus's BNF
|
|||
|
Drives a preprocessor,
|
|||
|
Generates code.
|
|||
|
Parsing is specified
|
|||
|
Metasyntactically;
|
|||
|
Writing it's easy, but
|
|||
|
reading, I'm snowed.
|
|||
|
|
|||
|
(c) Copyright 1976 by Guy L. Steele Jr. All rights reserved.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
The Great Quux page 30
|
|||
|
Random Poetry and Other Losses printed April 17, 1979
|
|||
|
|
|||
|
|
|||
|
My Favorite Hacks
|
|||
|
[to be sung to the tune of
|
|||
|
My Favorite Things
|
|||
|
from The Sound of Music]
|
|||
|
|
|||
|
|
|||
|
Circular MAPCAR and ANDCA'd negation,
|
|||
|
Indirect JMP auto-incrementation,
|
|||
|
Tangled spaghetti embroidered in stacks:
|
|||
|
These are a few of my favorite hacks.
|
|||
|
|
|||
|
Mismatched DEFINE-TERMIN pairs with .QUOTEing,
|
|||
|
Misbalanced brackets for macroed remoting,
|
|||
|
PDP-6's with chess tourney plaques:
|
|||
|
These are a few of my favorite hacks.
|
|||
|
|
|||
|
LAMBDAs as GO TOs and spooling on TPLs,
|
|||
|
Flip-flops and bit drops and TRCE's in triples,
|
|||
|
Crufty heuristics that prune minimax:
|
|||
|
These are a few of my favorite hacks.
|
|||
|
|
|||
|
When the bugs strike,
|
|||
|
When the disks crash,
|
|||
|
When I read this verse,
|
|||
|
I simply remember my favorite hacks
|
|||
|
And then I feel even worse!
|
|||
|
|
|||
|
-- The Great Quux
|
|||
|
(with apologies to
|
|||
|
Rodgers and Hammerstein)
|
|||
|
|
|||
|
(c) Copyright 1976 by Guy L. Steele Jr. All rights reserved.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
The Great Quux page 31
|
|||
|
Random Poetry and Other Losses printed April 17, 1979
|
|||
|
|
|||
|
|
|||
|
NOTES
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Circular MAPCAR
|
|||
|
|
|||
|
|
|||
|
A constant or periodic series of arguments can be given to a
|
|||
|
mapped function in LISP by supplying a circular list to MAPCAR. For
|
|||
|
example:
|
|||
|
|
|||
|
((LAMBDA (C3)
|
|||
|
(RPLACD C3 C3)
|
|||
|
(MAPCAR 'CONS C3 THE-LIST))
|
|||
|
(LIST 3))
|
|||
|
|
|||
|
conses a 3 onto every element of THE-LIST. Another way to use this
|
|||
|
hack is to use MAP, which allows the mapped function to splice new
|
|||
|
things into the circular list on the fly.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
ANDCA'd negation
|
|||
|
|
|||
|
|
|||
|
The sequence of PDP-10 instructions
|
|||
|
|
|||
|
MOVN A,NUMBER
|
|||
|
ANDCA A,NUMBER
|
|||
|
JUMPE A,FOO
|
|||
|
|
|||
|
|
|||
|
jumps to FOO iff NUMBER is an exact power of two.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Indirect JMP auto-incrementation:
|
|||
|
|
|||
|
|
|||
|
On the PDP-11, the instruction JMP @(R4)+ can be used as a
|
|||
|
combined subroutine call and subroutine return, using the technique of
|
|||
|
threaded code.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Tangled spaghetti
|
|||
|
|
|||
|
|
|||
|
Spaghetti stacks, as described by Bobrow and Wegbreit.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
The Great Quux page 32
|
|||
|
Random Poetry and Other Losses printed April 17, 1979
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Mismatched DEFINE-TERMIN
|
|||
|
|
|||
|
|
|||
|
Bizarre effects can be obtained in the MIDAS assembly language
|
|||
|
for the PDP-10 by using .QUOTE to get in mismatched DEFINE-TERMIN
|
|||
|
pairs. For example:
|
|||
|
|
|||
|
DEFINE DEFSYM X/
|
|||
|
IRPS Z,,[X]
|
|||
|
IFNDEF Z,X
|
|||
|
.ELSE [
|
|||
|
$$TEM1==Z
|
|||
|
X
|
|||
|
IFN Z-$$TEM1,.ERR Z MULTIPLY .QUOTE`.QUOTE/DEFINED/`
|
|||
|
]
|
|||
|
.ISTOP
|
|||
|
TERMIN TERMIN
|
|||
|
|
|||
|
|
|||
|
The multiple .QUOTEs allow used of the word DEFINED in the error
|
|||
|
message.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Misbalanced brackets
|
|||
|
|
|||
|
|
|||
|
A standard MIDAS hack for accumulating text in a macro to be
|
|||
|
assembled at a remote location is:
|
|||
|
|
|||
|
;initialization:
|
|||
|
DEFINE BNKBLK OP
|
|||
|
OP
|
|||
|
TERMIN ;BNKBLK accumulates text.
|
|||
|
|
|||
|
DEFINE BLCODE NEWCFT
|
|||
|
BNKBLK [DEFINE BNKBLK OP
|
|||
|
OP]NEWCFT
|
|||
|
TERMIN
|
|||
|
TERMIN ;BLCODE adds its arg to the end of BNK
|
|||
|
|
|||
|
;add some text:
|
|||
|
BLCODE [FOO] ;add FOO.
|
|||
|
BLCODE [BAR] ;add BAR (note BLCODE inserts CRLF's,
|
|||
|
|
|||
|
;assemble what has been accumulated:
|
|||
|
BNKBLK ;which expands into ...
|
|||
|
; FOO
|
|||
|
; BAR
|
|||
|
|
|||
|
|
|||
|
This hack depends on the misbalancing of the brackets in BLCODE with
|
|||
|
respect to the DEFINE-TERMIN pairs.
|
|||
|
|
|||
|
|
|||
|
The Great Quux page 33
|
|||
|
Random Poetry and Other Losses printed April 17, 1979
|
|||
|
|
|||
|
|
|||
|
PDP-6's
|
|||
|
|
|||
|
The MIT AI Lab PDP-6 has won chess trophies and plaques
|
|||
|
running Greenblatt's MacHac program.
|
|||
|
|
|||
|
|
|||
|
LAMBDAs as GO TOs
|
|||
|
|
|||
|
LAMBDA expressions of no arguments can be used to simulate
|
|||
|
GO TO statements in a straightforward manner. (See LAMBDA: The
|
|||
|
Ultimate Imperative, Gerald Jay Sussman and Guy L. Steele., M.I.T.
|
|||
|
A.I. Lab Memo.)
|
|||
|
|
|||
|
|
|||
|
Flip-flops and bit drops
|
|||
|
|
|||
|
If you don't know about these, forget it.
|
|||
|
|
|||
|
|
|||
|
TRCE's in triples
|
|||
|
|
|||
|
The sequence of PDP-10 instructions:
|
|||
|
|
|||
|
TRCE A,42
|
|||
|
TRCE A,42
|
|||
|
TRCE A,42
|
|||
|
|
|||
|
exchanges the 40 bit and the 2 bit in accumulator A.
|
|||
|
|
|||
|
|
|||
|
Crufty heuristics
|
|||
|
|
|||
|
The alpha-beta technique, the gamma heuristic (described by
|
|||
|
Newborn in his book "Computer Chess"), and others, are used to prune
|
|||
|
minimax game trees.
|
|||
|
|
|||
|
|
|||
|
Notes (c) Copyright 1976 by Guy L. Steele Jr. All rights reserved.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
The Great Quux page 34
|
|||
|
Random Poetry and Other Losses printed April 17, 1979
|
|||
|
|
|||
|
|
|||
|
:PDUMP
|
|||
|
|
|||
|
|
|||
|
99 blocks of crud on the disk,
|
|||
|
99 blocks of crud!
|
|||
|
You patch a bug, and dump it again:
|
|||
|
100 blocks of crud on the disk!
|
|||
|
|
|||
|
100 blocks of crud on the disk,
|
|||
|
100 blocks of crud!
|
|||
|
You patch a bug, and dump it again:
|
|||
|
101 blocks of crud on the disk!
|
|||
|
|
|||
|
(Repeat ad nauseam...)
|
|||
|
|
|||
|
|
|||
|
-- The Great Quux 2 December 1976
|
|||
|
|
|||
|
|
|||
|
(c) Copyright 1976 by Guy L. Steele Jr. All rights reserved.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
The Great Quux page 35
|
|||
|
Random Poetry and Other Losses printed April 17, 1979
|
|||
|
|
|||
|
|
|||
|
ZOOM Poems
|
|||
|
|
|||
|
|
|||
|
|
|||
|
This sequence of verses was written at a time when a party
|
|||
|
game called "Zoom, Schwartz, Profigliano" had become popular around
|
|||
|
the AI Lab (as a result of a trip to Talbot House in January, 1977).
|
|||
|
For some reason Marilyn Matz didn't like the game, and her standard
|
|||
|
response to "Zoom!" was "Bitch!". Most of these verses were jokes
|
|||
|
sent to Marilyn and other interested parties. They all contain
|
|||
|
acrostics.
|
|||
|
|
|||
|
|
|||
|
Zebras slinking in the night
|
|||
|
On twinkling hooves betray their flight.
|
|||
|
Oh, would that tigers, burning bright
|
|||
|
Might eat them, get them out of sight!
|
|||
|
-- 13 May 1977 14:55
|
|||
|
|
|||
|
Zealous though a hacker be,
|
|||
|
Obnoxious bugs cavort with glee.
|
|||
|
One poor, defeated hacker shrugs:
|
|||
|
May be no way to kill dem bugs!
|
|||
|
-- 13 May 1977 16:47
|
|||
|
Stupid the furor which AI detractors
|
|||
|
Collectively raise over Weizenbaum's book.
|
|||
|
Hackers will always, I think, remain hackers, and
|
|||
|
Weizenbaum's slander has REAL hackers shook.
|
|||
|
All the real hackers know hacking's a hobby;
|
|||
|
Randoms are those whom computing consumes.
|
|||
|
Terribly artful the well-hacked-up frobbie, but
|
|||
|
Zany the work of thee fools Joe assumes!
|
|||
|
-- 13 May 1977 17:00
|
|||
|
|
|||
|
[A lighthearted reference to the chapter on compulsive hacking in
|
|||
|
Prof. Joseph Weizenbaum's interesting book "Computer Power and Human
|
|||
|
reason".]
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
The Great Quux page 36
|
|||
|
Random Poetry and Other Losses printed April 17, 1979
|
|||
|
|
|||
|
|
|||
|
Perhaps the best way to explain my position
|
|||
|
Relies on the beauty of LISP.
|
|||
|
Orthogonal issues, obscured by the syntax,
|
|||
|
Frightfully kludgy (I say with derision),
|
|||
|
Ignore, but usee parens, so crisp.
|
|||
|
Green giants (I'm rooting for bagels, you see --
|
|||
|
Lox, perhaps also, particularly)
|
|||
|
I think, are the greatest of users.
|
|||
|
A tiny compiler has no chance of winning;
|
|||
|
No smarts, it's a bag-biter from the beginning,
|
|||
|
One of the greatest of losers!
|
|||
|
-- 13 May 1977 17:11
|
|||
|
|
|||
|
[There are some involved puns in this last one. Note particularly
|
|||
|
that "green giant" is an inside term means an NCOMPLR (MacLISP
|
|||
|
compiler) running interpretively, and also the pun on "green giant
|
|||
|
rutabagas", a favorite phrase around the lab.]
|
|||
|
|
|||
|
[Sent to Marilyn:]
|
|||
|
Before you complain,
|
|||
|
I Humbly maintain
|
|||
|
That poetry's loss is yet hackerdom's gain.
|
|||
|
Clearly these verses are versus your pleasure; I
|
|||
|
Hope you'll feel free to respond in full measure!
|
|||
|
-- 13 May 1977 17:20
|
|||
|
|
|||
|
Tightly zipped her garish pantsuit,
|
|||
|
Hurried on, electric, royal,
|
|||
|
Eating of a rancid orangefruit,
|
|||
|
Grasping Mars' own rapier foil
|
|||
|
Runs Sabrina, young, inchoate,
|
|||
|
Eager child, to stop Giganto.
|
|||
|
Anger hers, now under loquat
|
|||
|
Trees waits, silent, incognito.
|
|||
|
Quiet, armed she now springs ambush;
|
|||
|
Ugly runs the monstrous nebbish.
|
|||
|
Ugly trash this awful onrush --
|
|||
|
Xebecs, Zebras read no rubbish!
|
|||
|
-- 13 May 1977 20:16
|
|||
|
|
|||
|
[Allow me to draw your attention to the initial letters of the first,
|
|||
|
second, penultimate, and last words on each line; they form four
|
|||
|
acrostics. The last two lines are a meta-comment on the verse
|
|||
|
itself.]
|
|||
|
|
|||
|
(C) Copyright 1977 by Guy L. Steele Jr. All rights reserved.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
The Great Quux page 37
|
|||
|
Random Poetry and Other Losses printed April 17, 1979
|
|||
|
|
|||
|
|
|||
|
Some Random Verses
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
There was in ITS an escape code (whose name was DQOT) used internally
|
|||
|
in the character streams for terminal output which was undocumented
|
|||
|
for some reason. A call went out for jingles in 25 words or less.
|
|||
|
|
|||
|
DQOT'S myster-
|
|||
|
ious and very weir-
|
|||
|
d; it quotes another char-
|
|||
|
acter, as noted where?
|
|||
|
-- 1 September 1977
|
|||
|
|
|||
|
|
|||
|
Es schneit, es schneit
|
|||
|
With all its might!
|
|||
|
I say, der Schnee
|
|||
|
has come today!
|
|||
|
-- 5 December 1977
|
|||
|
|
|||
|
(C) Copyright 1977 by Guy L. Steele Jr. All rights reserved.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
The Great Quux page 38
|
|||
|
Random Poetry and Other Losses printed April 17, 1979
|
|||
|
|
|||
|
|
|||
|
Written in a Recitation (8.321 Quantum Mechanics I)
|
|||
|
at MIT, 11:30 AM 30 September 1977
|
|||
|
|
|||
|
|
|||
|
October Eve's
|
|||
|
September morn
|
|||
|
Is warm and dry
|
|||
|
And I, forlorn:
|
|||
|
Alone I sit
|
|||
|
Amidst my friends
|
|||
|
In heat of day
|
|||
|
That never ends.
|
|||
|
The heat I do not mind
|
|||
|
So much;
|
|||
|
It's countered by
|
|||
|
The wind's soft touch --
|
|||
|
The dryness, though,
|
|||
|
Is more severe;
|
|||
|
It parches throat,
|
|||
|
And eye, and ear.
|
|||
|
The heat is Nature's way
|
|||
|
Of keeping
|
|||
|
Man to frequent
|
|||
|
Fall-asleeping;
|
|||
|
But never desert wind
|
|||
|
So dry
|
|||
|
As chalkboard dust
|
|||
|
(Square root of pi
|
|||
|
Times sigma [i from
|
|||
|
One to N]
|
|||
|
Of alpha-eigenket,
|
|||
|
And then...)
|
|||
|
For when the sun
|
|||
|
Beats down its worst
|
|||
|
A little water
|
|||
|
Quenches thirst.
|
|||
|
But Man's devised
|
|||
|
The dryest yet:
|
|||
|
A dryness
|
|||
|
Nothing real can wet,
|
|||
|
For heat with weather
|
|||
|
Correlates,
|
|||
|
But dryness --
|
|||
|
When we recitates!
|
|||
|
|
|||
|
-- The Great Quux
|
|||
|
|
|||
|
(c) 1977 Guy L. Steele Jr. All rights reserved.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
The Great Quux page 39
|
|||
|
|