In the mid-seventies expansion of the department caused people's offices to be located ever further away from the main terminal room where the Coke machine stood. It got rather annoying to traipse down to the third floor only to find the machine empty - or worse, to shell out hard-earned cash to receive a recently loaded, still-warm Coke. One day a couple of people got together to devise a solution.
They installed micro-switches in the Coke machine to sense how many bottles were present in each of its six columns of bottles. The switches were hooked up to CMUA, the PDP-10 that was then the main departmental computer. A server program was written to keep tabs on the Coke machine's state, including how long each bottle had been in the machine. When you ran the companion status inquiry program, you'd get a display that might look like this:
EMPTY EMPTY 1h 3m
COLD COLD 1h 4m
This let you know that cold Coke could be had by pressing the lower-left or lower-center button, while the bottom bottles in the two right-hand columns had been loaded an hour or so beforehand, so were still warm. (I think the display changed to just "COLD" after the bottle had been there 3 hours.)
The final piece of the puzzle was needed to let people check Coke status when they were logged in on some other machine than CMUA. CMUA's Finger server was modified to run the Coke status program whenever someone fingered the nonexistent user "coke". (For the uninitiated, Finger normally reports whether a specified user is logged in, and if so where.) Since Finger requests are part of standard ARPANET (now Internet) protocols, people could check the Coke machine from any CMU computer by saying "finger coke@cmua". In fact, you could discover the Coke machine's status from any machine anywhere on the Internet! Not that it would do you much good if you were a few thousand miles away ...
As far as I know nothing similar has been done elsewhere, so CMU can legitimately boast of having the only Coke machine on the Internet.
The Coke machine programs were used for over a decade and were even rewritten for Unix Vaxen when CMUA was retired in the early eighties.
The end came just a couple years ago when the local Coke bottler discontinued the returnable, coke-bottle-shaped bottles. The old machine couldn't handle the non-returnable, totally-uninspired-shape bottles, so it was replaced by a new vending machine. This was not long after the New Coke fiasco (undoubtedly the century's greatest example of fixing what wasn't broken). The combination of these events left CMU Coke lovers sufficiently disgruntled that no one has bothered to wire up the new machine.
I'm a little fuzzy about the dates, but I believe all the other details are accurate. The man page for the second-generation (Unix) Coke programs credits the hardware work to John Zsarnay, the software to David Nichols and Ivor Durham. I don't recall who did the original PDP-10 programs.
This was inspired by the recent file making its rounds on the Net describing how to shoot yourself in the foot in a variety of programming languages. Now, the madness is extended to operating systems.
or:
% Is foot.c foot.h foot.o toe.c toe.o % rm *.o rm: .o: No such file or directory % is %
or: You can't get to either foot from here.
or: You'd shoot yourself in the foot, but you die of old age between pulling the trigger and the gun going off. Then the gun self-destructs.
or: Point to Body and click, point to leg and click, point to lower leg and click, point to foot and gun goes click.
Several marketing types with crowbars race to Bowman's assistance. Moments
later, Bowman bursts into HAL's circuit bay.
"Dave, I can see you're really upset about this."
Module after module rises from its socket as Bowman slowly and
methodically disconnects them.
"Stop, won't you. Stop, Dave. I can feel my mind going . . . Dave, I can
feel it . . . my mind is going. I can feel it . . ."
The last module rises from its receptacle. Bowman peers into one of HAL's
vidicons. The former gleaming scanner has become a dull red orb.
"Say something, HAL."
Several billion microseconds pass in anxious silence. The computer beeps
and sluggishly responds in a language no human could understand.
"Volume in C: has no label"
Bowman takes a deep breath and calls out, "It worked, guys. Tell
marketing they can ship the new data sheets."
sending out pretentious messages
clearing /tmp
preserving editor files
mailing forsyth about your last hack
starting daemons... inet... rnews... thing_that_goes_bump_in_the_night
"Oh dear."
farting about for a bit so that it looks impressive and justifies the price of all the expensive ethernet links.
Auto-reboot complete.
Heslington College of Nearer and Lower Edukashun Cray 2/Y-MP Unix
(with various interesting and incompatible extensions from the software techs).
Bloody_Big_Computer login: root
password:
Shall we play a game?
# let\'s play global thermonuclear war
(Cor you remembered to use a backslash on the quote. You win a major prize.)
Right on.
Here's the spec for the language which will cause it.
With the major defence crises of the 1980's - Oliver North, Irangate, etc., it is becoming increasingly obvious that Ada simply lacks all the necessary facilities for generating truly paranoid programs. What was needed was a language which was not merely user-indifferent, but totally user-scared- in short, a Paranoid Programming Language.
Who could meet the challenge? IBM? No, too neurotic already. DEC? No, VMS was already a paranoid operating system. It fell eventually to your 'umble author and his merry crowd of hackers to specify, define, implement, debug, y'know, the lot, the ULTIMATE programming language one cold evening on the way to Alcuin Bar.
So, what features does PPL offer the user?
x : dodgy integer;
y : unreliable string;
z : inaccurate float;
a : unlikely arraywrong..incorrect:probably integer of probably_ebcdic char;
p : pointer to random location;
Compound types may also be declared as follows:
slightly_iffy structure blob =
x : hopelessly_broken list of too_small integer;
y : improbable set of overflowing string;
end blob;
It has been said that this adds a certain degree of polymorphism to the language, but the person who said that was drunk at the time.
x !:= 3 which assigns any other value but 3 to x
x REALLY 3 which insists strongly that x is 3
x HONESTLY 3 which forces the system to believe that x is 3
x MAYBE 3 which just lets the system make its own mind up
and, most powerful of all,
x MIGHTBE 3 which doesn't really give a damn.
GET_MOVING_YOU_x
statement, where x ranges from "LAZY_GIT" through a range of increasingly obscene Albanian phrases, with increasing obscenity implying higher priority. The end of a block is marked with the
PACK_IT_IN_x
statement, where the same set of obscene phrases are used. The certainty with which statements are separated is purely dependent upon the number of semicolons...
e.g
GET_MOVING_YOU_SOD
x MIGHTBE 44;;
y !:= 100;;;;;
z REALLY 200;;;;;;;;
PACK_IT_IN_SOD
is a typical example of initialisation.
e.g.
z MIGHTBE "hello" errm.... or perhaps not okay??? ;;;
For example...
IF x WAS_EVER 100 THEN DON'T print(x)
IF j IS_NEARLY right DELETE all_incorrect_references_to j
UNLESS a IS "My Name" THEN crash_unix
WHENEVER errors THEN run_in_circles_scream_and_shout
ON_SUSPICION_OF x < 100 CORRECT any_other_references_to x
IN_CASE y NEARLY x THEN y REALLY x
As it can be seen, the "_references_to" modifier is particularly useful for creating self-modifying code which is ludicrously easy to prove formally - quite simple, really, the code is all self-correcting.
REPEAT
x !:= x + randomly varying y
UNTIL x NEARLY right
or
WHILE some_bits STILL wrong
DO
fiddle(x);;;;;
END
or
INSIST_UPON
a IS 1;;
UNLESS void OR illegal OR broken
There is a CASE statement in PPL but since absolutely every possible outcome, even being eaten by wild dogs whilst whistling "Land of Hope And Glory", has to be taken into account it is rarely, if ever, used.
#distrust(procedure) to put extra suspicion on a procedure.
#ignore(procedure) to totally forget about any calls to a procedure.
#blame(procedure) pin the blame on this procedure when something dies.
#hide(procedure) forget that procedure ever existed.
Combined with a verison of the UN*X Make command this enables programs to accurately reflect the state of mind of the development team at any time.
CALL procedurename;;;;;; errm... the most basic format of the call.....
CALL procedurename WITH MISSING parameters errm... a nasty one this!.....
CALL RANDOM LOCATION errm.... totally bollocks things up.
CALL procedurename REPLACING parameters WITH others
RUN_AROUND_LOOKING_FOR procedurename returns the address of a procedure
Where external procedures are needed, a statement of the form
FROM WHERE_THE_HELL_IS procedurename GRAB procedurename
is used. The analogy with the Ada WITH/USE statement is quite phenomenal.
Functions are declared similarly to procedures, and as they're too anal- retentive paranoid to ever return anything, always cause errors. Such is life.
shout (processid,"Oi you!");
kill (processid,"violence level");
File access is slightly problematic. PPL expects all files to be in the /usr/spool/secret/keep.out/sod.off/$USER/private/locked/danger/secret directory, with permissions 0000. There can be no actual access to files in programs, as filehandling statements are equated to comments by the pre-processor. The exception to this is the shred statement which deletes all reference to a file, forgets the file ever existed, does not tell the president, does not pass go and does not collect $200. It has never met Oliver North, President Reagan, Monica Coghlan or Jeffrey Archer and does not own a copy of Spycatcher.
What makes the PCS1 so powerful (or, indeed, paranoid) ? For a start, it's a long way from a traditional Von Neumann machine. In keeping with the requirements of the language, the computer system implements a sophisticated system of parallel processing - each processor tries to minimise the risk of any decision it has to take, checks it for consistency with the others before it's willing to do anything at all. And even then it does it slowly.
Originally Paranoid Systems intended to use the Transputer as the processing element in the PCS1; however, after a considerable pause for thought, this audacious concept was rejected in favour of a strange mixture of Intersil 6100s, COSMAC 1802s and SC/MPs. These processors were chosen for their technical interest, lack of speed and total obsolescence. It was also felt that the Transputer might begin to get ideas above its station and spend too much time talking to other processors. And you know what that can lead to...
Several of the machine's design concepts stand out as unique; interprocessor communication is, whilst being an integral part of the design concept, normally carried on secretly by a Main Bus Arbitration unit which, it is rumoured, was designed by a paranoid schizophrenic whose initials are something like GM, although this is in fact covered by the Official Secrets Act. The Main Bus Arbitration chip (or, to use Paranoid Systems parlance, Miserable Bugger, Aaargh) randomly steals bytes from the memory of one processor and distributes them freely to any other processor which is not too paranoid to listen. This actually forms quite a powerful means of communication. It is also rumoured that the nervous breakdown suffered by a Professor of Computation at Oxford and a computer science lecturer at York were due to a long and futile attempt to prove several theorems about this system in Communicating Sequential Processes notation.
Few peripherals have yet to be interfaced to the PCS1 at present; when an attempt was made to attach a user terminal to it, in addition to the normal system console and rectal pattern-recogniser for security checks, the system merely wrote the message
"ERROR 221: I/O PROCESSOR REFUSES TO COMMUNICATE WITH ANY OTHER DEVICES ON MAIN BUS. NOT MY PROBLEM."
on the console. Since this attempt a team of AI experts, psychologists and psychopaths have been trying to interface a DecWriter to the beast in a vain attempt to get some output from it.
All in all the PCS1 is an interesting product, and will, with some development, eventually work. Well, slightly better than it does now. Potential customers apparently include such paranoid institutions as the Cabinet Office, MI5, MI6, Special Branch and the University of York.
Version 1.0
The Only Operating System You Will Ever Need!
No doubt you have been endlessly entertained by the furious religious operating system wars now taking place on the PC hardware arena. Should you be content with DOS and Windows? No! Should you switch to OS/2? NO! Should you try your luck running a buggy Windows NT beta? NEVER! How about NeXTstep/486, or the upcoming Pink, or maybe Apple's System 7/486, or Linux, or Cray XMP-OS/486?
NONE OF THESE!!! We at STUDLY RESEARCH, INC. have come up with a solution so superior that the entire industry will soon switch over to our operating system and accompanying software. Microsoft will fold and Bill Gates will get a job working at a 7-11, handing out coupons. Apple will also collapse and John Sculley will be found lying unconscious in a pool with a can of Pepsi and a hypodermic needle lying nearby. IBM will survive, but will be forced to lay off another 400,000,000 employees, and eventually end up as a subsidiary of the Moscow McDonalds. The only surviving companies will be the cheap clone manufacturers, producing faster and cheaper machines with the label "STUDLY-COMPATIBLE" and "SPC" proudly displayed on the front panel.
STUDLY-OS is that operating system.
Not only will STUDLY-OS make any clone computer, from a ten year-old XT to a 486/330DX10, capable of doing more than all the former operating systems ever developed, it will also QUICKLY, SEAMLESSLY and INVISIBLY solve all of their personal problems and make them happy, rich, sexually irresistable and permanently wonderful.
STUDLY-OS is built around a nanokernel, the advanced descendant of microkernel operating systems available today. Our crack team of coders, hackers and pizza enthusiasts took an early beta of Microsoft's Windows NT, completely disassembled and analyzed the code, and then built STUDLY-OS by doing everything completely differently. We'd like to thank Microsoft for $69 well spent as a helpful exercise on how NOT to design operating systems.
Whereas NT's microkernel is fat enough to tip over a BUS, STUDLY-OS's nanokernel fits in under 1k. Instead of a multiple message queue, STUDLY-OS uses a method where messages are intercepted before the application in question has even sent them out. We redesigned the Windows interface to appeal less to schizophrenics and came up with a fully object-oriented system where the objects not only were oriented with respect to each other, but oriented themselves to best suit the individual computer user, including sexual and political preferences. No longer is the system merely user-friendly, it is positively user-worshipping!
For example, when the user sticks the first disk of an application in a drive, or even in between the little air vents in the front of the case, STUDLY-OS automatically determines what the application is, where it should be installed and how it should be set up, and then proceeds to build the rest of the application based on the contents of the first disk, taking out features which you will never use and adding those which the software manufacturer blindly left out. It then opens the icon editor and lets you create the ultimate icon for that application, filling in any tedious or difficult painting bits along the way. It then adds sound and animation to the icon, and while you watch, loads the application in the background and does your work for you while you play a quick game of Wing Commander III.
STUDLY-OS runs ALL software programs written for DOS (including those using VCPI, DPMI and Shmoodoo memory management, by rewriting and optimizing the code before installing) Windows (including Win32, Win32s, Win32c, Win32nb, Win32ack and Win32thbbth!), OS/2, GEM, AmigaDOS (including games which refuse to run on any Amiga past a 500), NeXTstep, Unix (STUDLY-OS maintains a daily-updated database on every Unix variation in existence, and automatically recompiles any Unix program in the background to work on your system) TRS-DOS, Apple ][ DOS and ProDOS, Macintosh Systems 1 through 9, Timex-Sinclair ZX81 programs, Atari 2600, Nintendo and Sega game cartridges, Heathkit HDOS, CP/M (including utilities that used weird Z80 opcodes), Epson's Q-DOS, Cromenco DOS, RISC OS, Commodore C=64, 128, VIC-20 and Plus/4 programs, and Coleco ADAM software. If STUDLY-OS encounters an application written for a platform it does not support, it rewrites it to conform to established standards. If STUDLY-OS senses that a particular application is not running at sufficient speed, it rewrites the code until it exceeds the performance on the best hardware available. For example, one user managed to get STUDLY-OS to run Strike Commander on his XT with 8-bit VGA, and noted that the game response was "very smooth, at least 60 frames per second with no flicker or pauses that I could find."
16:1 LOSSLESS COMPRESSION!! Yes, the reason this mythical product was never released to the marketplace was because we bought it out. Lock, stock, and barrel. You can compress a compressed file as many times as you like until all programs are down to the theoretical minimum of 1k! Yet still not lose any data. Of course, with all your programs at 1k, uncompression may take a little longer. However, we feel the extra disk space is truly worth it. Most graphics files, including .JPGs and .GIFs, can be safely compressed down to less than 32 bytes, especially the nudes, which all look pretty much the same anyway. Pictures of Madonna can be packed as small as 1 byte.
And no, if you discover a bug, we don't send in the SWAT team to prove that you are an inconsiderate moron with the technical knowledge of a squashed gnat that can't even find his way out of the refridgerator. In fact, if you do find a bug, we are prepared to give you a $1 million prize, and an all-expenses paid tour to the fabulous STUDLY RESEARCH LABS in beautiful Barbados, where you will get to meet the STUDLY-OS design team and go for dinner and drinks! Then we will send out patches to everyone in the world free of charge.
HappyNet, Mondo Zeugma, and O and S are trademarks of Kibo.
Windows is NOT a trademark of Microsoft.
B1FF is a trademark of himself.
Enjoy!
--
I am free! I am free! I am Microsoft-free at last! glaz@io.com
(Running OS/2 2.1 for Windows WITHOUT Windows)