THE ADVENTURES OF WILFRED HARRISON, INTREPID PROGRAMMER by Eugene Volokh, VESOFT Published in "Thoughts & Discourses on HP3000 Software", 1st ed.,1984. The candle on the desk was burning low when Wilfred Harrison, intrepid COBOL programmer, finished changing the layout of the ACCOUNT-MASTER dataset in his COPYLIB. He quickly grabbed another candle from his desk drawer, lit it, and put it in the candlestick. After he finished wiping the overflowed wax, he shouted "Phil! Come over here!" and quickly ducked underneath his desk. Phil Jarrold (aka "The Wizard"), the local systems programmer, appeared in a puff of green smoke and a hail of potato chips. He greeted Wilfred with a toothy grin and a loud "Hey, Wil, whatcha up to?" "I just finished changing my COPYLIB," replied Wilfred, "and now I've got to recompile all 70 of my programs. It's really quite simple, they're all in the SOURCE group and they all start with GL. Can you help me?" "No big deal," said Phil. "Let's see now..." He waved his arms three times at the terminal and incanted, "Abracadabra, X Y Z, ATTACHIO, DIRECDELETE!" Nothing happened. "Hocus Pocus, Lens and Focus!" Nothing. "Shazam?" blurted Phil, now not quite so sure of himself. Still, not a compile had started. "Um, I dunno... It doesn't seem to be working quite like my System Magic Manual says it should... Must be a hardware problem. Call your CE and then I'll try again." "But I need to have my programs recompiled now, and my CE won't be back till a month from Tuesday," pleaded Wilfred. "Isn't there anything you can do?" "I said, it's a hardware problem!" retorted Phil angrily. "Then again, you can always try recompiling them by hand," Phil said with an evil chuckle, and vanished in another puff of smoke. "Argggh!" screamed Wilfred. This really took the cake, he thought to himself. This kind of thing had to happen on a Friday evening -- 70 programs to recompile, and his systems programmer forgets his spells! He should have listened to his mother and become a dope fiend instead of mucking around with these blasted computers from dawn to dusk. He barely had the strength to lift his weary body from his rickety old chair. He felt like a drink, maybe seven. Larry Smythe owned a bar around the corner on 42nd. Everybody seemed to come there on Friday evenings to blow their paychecks and talk about the Dodgers, women, and Mystery Mansion. This Friday, though, all Wilfred was in the mood for was a good whiskey on the rocks to drown his bugs. "You know what I want," he said to Larry, too tired for the usual pleasantries. "Yeah, what you want is fileset compiles," replied Larry. After the initial shock of the unexpected answer, Wilfred realized that Larry was right (although a whiskey on the rocks wouldn't hurt either). "How did you know?" he asked, rather confused. "Whaddaya mean, how did I know?" asked Larry, visibly irritated. "You think I don't know a man who needs a fileset compile when I see one?" "How in the world am I going to do a fileset compile?" he shouted to Larry, realizing that the :COBOL command doesn't support filesets. "And get me a whiskey on the rocks!" Larry came back with the drink and pulled a napkin and an MPEX trial tape from underneath the counter. "Here! This lasts for three months! And don't spill the drink on the tape, or I'll have to get a new one." Wilfred, now totally confused, downed the drink in one gulp, grabbed the tape, and decided it was about time he went home and had a good night's sleep. That night he dreamt about naked source files bathing on a tropical beach and being chased by MPEXs in pin-striped suits good for three months. He woke up with a biting pain in his back and the memory of the uncompiled programs still lingering in his mind. Wilfred shaved, grabbed a byte to eat, and was ready to go to work hen he noticed that the MPEX tape on the coffee table was glowing with an eerie light. Not wanting to get in trouble with any vendor magic, he grabbed the tape and got in his car. As he entered the computer room, he was welcomed by a grunt from Bonzo, their weekend operator, who was busily ripping printouts off the line printer. Carefully avoiding the banana peels that were lying all over the floor, Wilfred made his way to the 7976 tape drive. As he pushed the "LOAD" button, the big purple arm of the auto-loader wrenched the tape out of his hand and plopped it onto the tape drive; a couple of seconds later, when the ONLINE light turned on, he stepped over to the console and typed: :FILE VESOFT=VESOFT/HP3000;DEV=TAPE;LABEL=VESOFT :RESTORE *VESOFT;@.PUB.SYS;SHOW :RUN STREAMX "COMMAND ABORTED DUE TO IMPOLITE REQUEST (CIERR 989)" appeared on the console. ":PLEASE RUN STREAMX," responded Wilfred. "NOPE (CIERR 1352)." ":PRETTY PLEASE WITH SUGAR ON THE TOP," typed Wilfred (cursing HP for their insistence on "computer-friendly" commands). That seemed to do it. After five or so minutes, that magical "VESOFT AND SECURITY ACCOUNTS INSTALLED!" message appeared on the console. He walked over to the tape drive, dismounted the tape, and went back to his cubicle. His success with the installation procedure made Wilfred feel courageous. He felt that he was ready. For MPEX. For fileset compiles. For anything the computer may throw his way. Even for lunch. Feeling that discretion was the better part of valor, he decided to defer experimentation until after a burger and a beer. He was ready to get up and go for lunch, when a voice emanating from the terminal said: "Wilfred Harrison..." "Huh?" "I am the spirit of your source files..." "What?" "We want to be compiled..." "Ummm, how about after lunch?" "Now, Wilfred, now!!!" "Look, I've really got to grab a bit to eat." "If you don't compile us now, horrible things will happen..." "Such as?" "You know those variables with the self-explanatory names?" "You wouldn't dare!" "Yes! We'll rename them to I1 through I57! And we'll delete all your comments! Don't think we won't do it, because we will!" Wilfred sighed. He had no choice. ":RUN MPEX.PUB.VESOFT," he typed. "MPEX/3000 Version 1.4 (VESOFT (C) 1980) For help type 'HELP'," came the response. Well, here goes nothing... "%COBOL GL@.SOURCE,GL@.PUB." Wilfred could not believe his eyes. One by one, his programs were being compiled. It was incredible. It was wonderful. It was a good excuse to have a victory drink. Wilfred went to sleep that night with a good feeling in his heart, and a quart or two of alcohol in his belly. He slept soundly, knowing that he had at last found an ally in his never-ending battle for truth, justice, and the HP Way. TRIVIA TIME by Eugene Volokh, VESOFT Presented at 1987 INTEREX Conference, Las Vegas, NV, 1987 Published by SCRUG Communicator, June/July 1988. Questions: 1. What are the ways you can exit SPOOK (besides break and ABORT)? 2. What are the full names of the editor commands A, E, I, O, U? 3. What secondary entry point does EDITOR/3000 have? 4. What is the filename of the program file that is run when you type :SEGMENTER? 5. What does the FCOPY ;EBCDIKIN parameter indicate? 6. What MPE subsystems have both END and EXIT commands -- which do different things? 7. What :SEGMENTER commands have the opposite effects of -CEASE and -HID 8. What are the two options on the MODE command of SPOOK? 9. Name four intrinsics (besides the COBOL and BASIC KSAM interfaces) that only work on KSAM files and NOT on ordinary MPE files. 10. What three-character string may not be used to start a UDC name? 11. What HP acronym has 2 different meanings that are spelled almost identically? 12. What HP acronym has 3 different meanings? 13. Name 5 acronyms that have two or more meanings each. 14. What is the only HP intrinsic documented in the Intrinsics Manual that has a REAL parameter? 15. What does the acronym EAR stand for? Answers: 1. E causes SPOOK to suspend; Q causes it to terminate; : causes it to terminate because of end of file on $STDIN. 2. Add, End/Exit, Insert, Or, Use 3. BASICENTRY, used to automatically /TEXTing and /KEEPing the file equated to EDTTEXT 4. SEGDVR.PUB.SYS 5. That data is to be translated from EBCDIC Katakana format to JIS form 6. SORT and MERGE, in which END executes the operation and returns to MPE, but EXIT just returns to MPE; QUERY: END gets of our REPORT, EXIT otherwise. 7. -USE and -REVEAL 8. WIDTH, CONTROLS 9. FREADBYKEY, FFINDBYKEY, FREADC, FFINDN, FREMOVE, FGETKEYINFO 10. RFA 11. DB -- database and Data Base register 12. DS -- queue, Distributed Systems, Data Segments 13. DB -- database and the Data Base register; DS -- the DS scheduling queue, Distributed Systems, and Data Segment capability; MR -- Multi-RIN capability and Multi-Record file access; CS -- Communication Systems capability and the CS scheduling queue; PM -- Privileged Mode capability and Preventative Maintenance) 14. PAUSE 15. Exclusive Allow Read, an access mode specifiable in a :FILE command TRIVIA TIME by Eugene Volokh, VESOFT SCRUG Communicator, Apr/May 1988. Questions: 1. What HP screen-handling product PRECEDED V/3000 (or VIEW)? 2. What government post did Dave Packard hold? 3. What is the full name of HP Steak Sauce? 4. What is the street address of CSY labs? 5. What kind of file has a filecode of -402? 6. Name two secondary points of DBDRIVER. 7. To how many characters can you abbreviate DBUTIL command names? 8. Name three IMAGE or TurboIMAGE utilities in PUB.SYS besides DBUTIL, DBSCHEMA, DBLOAD, DBUNLOAD, DBSTORE, and DBRESTOR. 9. What sort of object does the QUERY CREATE command create? 10. What happens when you call DBOPEN in mode 0? 11. What data communication protocol does TERM=10 use? 12. What was the distinguishing feature of the HP 2641 terminal? 13. What does the HP 150 output when you type "ESC & a ?"? 14. What happens when you hit control-DISPLAY FUNCTIONS on an HP 2645A terminal? 15. What are the only unprintable characters that DISPLAY FUNCTIONS mode does not display? Answers: 1. DEL/3000 2. Deputy Secretary of Defense, 1969-1971 3. House of Parliament 4. 19447 Pruneridge, Cupertino, CA 5. A remote database access file 6. PURGE, CLONE, PRIV, CLEAN, VUF 7. 3 8. DBCONV, DBDRIVER, DBDUMP, DBRECOV, DBSCHEMA, DBCHANGE 9. A QUERY procedure 10. Bytes 3 through 7 of the status array set to the version number of the intrinsic -- this works for all DB intrinsics 11. ENQ/ACK 12. It was an APL terminal 13. The message "My mind is going..." 14. The DISPLAY FUNCTIONS light starts blinking -- you're in MONITOR MOD 15. NUL, ENQ, DEL TRIVIA TIME by Eugene Volokh, VESOFT SCRUG Communicator, Feb/Mar 1988. Questions: 1. Which MPE command would come first in an alphabetical list? 2. Which MPE command would come last in an alphabetical list? 3. Which MPE command has the shortest name? 4. Which intrinsic has the most parameters? 5. Which MPE command has the longest name? 6. What is the maximum size of a file? 7. What is the only privileged non-database file supported by HP? 8. Which MPE commands can only be executed by the file's creator? 9. When :LISTF shows a file as having file code "KSAM," what is the numeric value of the file code? 10. Name one FOPEN parameter that cannot be overridden with a :FILE equation. 11. What is the product number of pre-MPE/XL MPE? 12. Which special -- printable, non-alpha, non-numeric -- characters have NO meaning in any MPE command? Name five. 13. What was the full name of the A-MIT operating system? B-MIT? C-MIT? 14. How many Kbytes of memory was the maximum on the first HP3000? 15. What were the original "lab" number and name of the Series 64? Answers: 1. ABORT 2. WELCOME 3. IF, UP 4. FGETINFO, 20 parameters 5. DELETESPOOLFILE 6. 65535 * 32 sectors = about 2 million sectors = about 500 megabytes 7. MEMLOG.PUB.SYS, code -1234 8. RELEASE, SECURE, RENAME, ALTSEC, BUILD, SAVE 9. 0 10. You may not override the FOPTIONS "disallow file equations" bit or the number of user labels; you may not specify EXECUTE aoptions or a negative file code 11. 32002 or 32033 (one is for the Series II and III, the other for HP-IB machines) 12. ^, _, [, ], {, }, \, `, ~, `` (! is used for indirect STORE; % introduces octal numbers; # is used for specifying DS devices; & is the command continuation character; - is used in STORE and SETJCW; + is used in SETJCS; ( and ) are used in :IF and other commands; : is used in :EOF, :ALTSEC, etc.) 13. Athena, Bruno, Cheetah 14. 128 Kbytes, 96 Kbytes minimum 15. 55, Gemini TRIVIA TIME by Eugene Volokh, VESOFT SCRUG Communicator, Dec 1987/Jan 1988. Questions: 1. Name two strings that the :SEGMENTER subsystem can prompt you with; for extra credit, name the third. 2. Name three non-file-system intrinsics whose names start with "F." 3. Name one file system intrinsic -- one which is documented in the File System manual and whose job it is to operate on files -- that doesn't start with F. 4. Name one file system intrinsic that does not take a file number as a parameter. 5. What is the only MPE command that requires PM capability? 6. What documented options of the FOPEN intrinsic require privileged mod 7. What is the only intrinsic documented in the Intrinsics Manual that can only be called from privileged mode? 8. What are the 8 fields of the system status register? 9. What 4 things are stored in a normal stack marker? 10. What are the system-defined files (the ones prefixed with a "$")? 11. What is the name of the MPE procedure whose job it is to crash the system? 12. The :STREAMS device should be configured as one of what two kinds of devices? 13. Name five MPE commands -- not counting :HELLO, :JOB, :DATA or those that run programs -- ask for input? 14. Which intrinsic has the shortest name? 15. Which intrinsic has the longest name? Answers: 1. The usual prompt is "-"; the -HELP command prompts with a ">"; when you continue a :SEGMENTER command with a "&", SEGMENTER prompts with a "--" 2. FATHER, FINDJCW, FMTCALENDAR, FMTCLOCK, FMTDATE, FREEDSEG, FREELOCRIN, FINDPMAPNAME, FINDPMAPADDR 3. PRINTFILEINFO 4. FERRMSG, FINTEXIT, and FINTSTATE 5. DEBUG 6. Opening a file for EXECUTE access, specifying a negative filecode, and opening a non-message file with NOWAIT access 7. SWITCHDB 8. M = privileged/user mode, I = interrupts on/off, T = traps on/off, R = righthand opcode pending (used when executing an instruction that contains two opcodes), O = overflow detected, C = arithmetic carry, the condition code, and the current segment number 9. The X register, the P register (return address), the status register, and the delta-Q offset 10. $STDIN, $STDINX, $STDLIST, $NEWPASS, $OLDPASS, $NULL 11. SUDDENDEATH 12. Tape or Card Reader 13. ASSOCIATE, DEBUG, HELP, PTAPE, PURGEACCT, PURGEGROUP, PURGEUSER, REDO, REMOTE, SPEED, STREAM, WELCOME 14. WHO or GET, a DS/3000 intrinsic 15. FDEVICECONTROL or possibly PRINT'FILE'INFO -- PRINT'FILE'INFO is documented without quotes in the MPE Intrinsics Manual, but with quotes in the File System Manual SCIENTISTS DISCOVER FUNNIEST NUMBER by Eugene Volokh, VESOFT Published by SCRUG Communicator, June-Sep 1989. MADISON (UPI) -- Scientists at the University of Wisconsin have just announced the discovery of what they claim to be the world's funniest number. Using 33 hours of computer time on the university's ENIAC supercomputer, Drs. Harold Cohen and Jack Sampson reached the conclusion of what has become for them their life's work. "It is rare that science can have such a direct, favorable effect on our daily lives," said Dr. Cohen, an ugly, short man with a skin condition. "You don't have to have an advanced degree to appreciate our number -- every man, woman, or child in the world who possesses some basic mathematical skills will find it entertaining. In fact, it can be mathematically proven that there is no number funnier than ours". The number is not just a simple digit, Dr. Cohen said in a recent interview, but a so-called "irrational" number, which has an infinite number of digits, never repeating itself. "That way," said Cohen, "the fun never ends." Apparently it takes about the first hundred digits to get in the mood, and then it just gets better and better. Some of the graduate students who were recently exposed to this number reported that it took a conscious effort of will to tear themselves away for such basic necessities as food, drink, and personal hygiene. "This is, unquestionably, the most exciting and entertaining number I have seen in my life," said an unidentified student. Still, there are some skeptics. Dr. Friedrich Schmidtt of Florida State University (Pensacola) believes that better results can be obtained by using hexadecimal (base 16), "where you can play around with letters and all that." Wendy Pierce, of the American Comedians' Association, doubts that even the most sophisticated of today's computing devices can rival the talent of human performers. "I've seen the number," Ms. Pierce says, "and I don't think it's all that great. I mean, it's OK, but I just don't think it can top, say, Robin Williams on one of his good nights." Sampson and Cohen, however, are unperturbed. They firmly believe that the number (which they hope will be adopted by the International Mathematical Society as a new mathematical constant, called F) can be understood and appreciated by laymen, and claim that their detractors "are probably just stupid or something." They have formed their own company to market their product; UCLA "laugh therapist" Norman Cousins is rumored to be negotiating for the right to stitch the first 3,127 digits of the number into his underwear, and other deals are underway. The good doctors are definitely dreaming big. "I can see a full feature-length movie based on this thing," says Sampson. "Television specials, T-shirts, postcards, coffee mugs -- there's just no stopping us." SOFTWARE LIFECYCLE by Eugene Volokh, VESOFT Published by SCRUG Communicator, June/July 1988. DEVELOPMENT CYCLE: D1. Problem exists, as yet unidentified. A feeling of Vague Dissatisfaction. D2. Identification of problem. What didn't the guy who wrote the system identify this problem himself? D3. Divine Inspiration. The solution is found. A feeling of Immense Self-Satisfaction. Intent to start coding immediately. D4. Coding starts (approximately six month later). Feelings of Pain and Regret. D5. Coding finishes. Feelings of Contentment and Relief. Intent to start documentation immediately. D6. Documentation postponed indefinitely. D7. Product released, maintenance cycle begins. MAINTENANCE CYCLE: M1. An alleged bug allegedly reported by an alleged user. A feeling of Stunned Incredulity. "Who does this user think he is, slandering my program?" M2. Bug duplicated. A feeling of Total Befuddlement. "This isn't supposed to happen!" M3. Bug found, and it's an awfully dumb one. A feeling of Awful Embarrassment. M4. Go to step 1. Eugene Volokh is Vice President of R&D at VESOFT, Inc. HACKER's HOROSCOPE by Eugene Volokh, VESOFT Published by VENEWS, 3rd quarter 1990. ARIES (March 21 - April 19) You have a fiery, sometimes uncontrollable temper, but people find you exciting to be around. Your code is always fast, but usually doesn't work right. Check the MOVE statement in your code at line 427 -- there's a bug in it... TAURUS (April 20 - May 20) You are the official HP corporate automobile. Your door is ajar. GEMINI (May 21 - June 21) You are charming, well-adjusted, and popular. This, of course, means that you can never be a true hacker. Get the new 3000/982 as soon as it comes out. CANCER (June 22 - July 22) You are slow, but methodical and tenacious. Your code generally works quite well, but your documentation can use tightening up. Use the FCONTROL intrinsic as frequently as possible; it will bring you luck. LEO (July 23 - August 22) You have a magnetic personality and frequent bursts of insight; however, you cannot, for the life of you remember what the foptions and aoptions bit settings are, and waste valuable time searching through the manual. Remember, %420 means "MR NOBUF". VIRGO (August 23 - September 22) You have an unpredictable disposition (sometimes ;SAVE, sometimes ;TEMP), but people are willing to put up with you because you know how to write /WHILE loops in EDITOR. Be sure to clean up all your K-files before you go home tonight. LIBRA (September 23 - October 23) You have a well-balanced character, and weigh things carefully. You like to scale mountains, and solve equations. You walk around wearing a blindfold. Believe it or not, some people won't get this. SCORPIO (October 24 - November 21) You have a knack for finding the optimal solution under most circumstances, but sometimes invest too much time in hopelessly difficult projects. Your favorite variable names are "FOO" and "BAR", and you probably have a file in your group called "XYZZY". Purge it; it's wasting valuable disc space. SAGITTARIUS (November 22 - December 21) You like programming, but feel that there's something deeper that you must do with your life. Some day, you will quit and open a hang-gliding school in Hawaii. You frequently declare your arrays to be too small, but, hey, what's a bounds violation among friends? CAPRICORN (December 22 - January 19) Did you know that this means "goat"? Frankly, I'd rather be a goat than a fish any day or a crab. AQUARIUS (January 20 - February 18) You are sensitive, considerate, and introverted. Your programs always print understandable error message, but you don't go out of your way to help the user. Beware of integer overflows, and always check condition codes after intrinsic calls. PISCES (February 19 - March 20) You believe that the stars rule your life, and organize your actions by what you read in the horoscope. Astrology gives answers to the great questions of life, and is especially useful to computer professionals. People who write horoscopes are your friends, and should be trusted implicitly. Your programs will never again abort if you only send a check for $995 to VESOFT, Department of Celestial Software, 1135 S. Beverly Dr., Los Angeles, CA 90035, USA.