D             <<< SPCVXA::$1$DUA2:[NOTES$LIBRARY]X-NUTWORKS.NOTE;2 >>>0                                 -< X-NUTWORKS >-P ================================================================================P Note 8.0                             Issue 7                          No repliesP SPCVXA::BEN "Ben Cohen"                            1026 lines   6-MAR-1990 19:17P --------------------------------------------------------------------------------H ************************************************************************H ************************************************************************H ***                                                                  ***H ***                                                                  ***H ***                            NutWorks                              ***H ***                           ----------                             ***H ***              The Inter-Net Virtual Magazine Which States         ***H ***                    That Life Is A Four Letter Word.              ***H ***                                                                  ***H ***                                                                  ***H ***         November, 1985;  Issue007, (Volume II, Number 3).        ***H ***         Current Editor: Leonard M. Friedman.                     ***H ************************************************************************H ************************************************************************   )                           From the Bridge )                           ===============    
 Captains Log:  Stardate 850611  Commander Spock Reporting.   F    Approximately one and a half years ago something appeared on bitnetF that would  change interpersonal relationships on the network forever.F For it was  then the first  chat machine appeared.   A chat for anyoneF who might not know is similar to a CB on the computer.  In other wordsF you send  one message and  everyone on the channel you are signed onto will see that message.   F    The very first chat  appeared in  Maine and provided people with anF excellent way to meet fellow students and discuss Life,  The Universe,F and  Everything,  which  alot of  the time  had  something  to do withF computers.   Discussions  included  recent  political events,  sharingF of ones problems and  many virtual friendships  were  born and a largeF number of them went beyond being virtual into real relationships where$ the people met and remained friends.   F    The  chat at  Maine was short lived and was taken down volluntarilyF by the  person who  wrote it  for reasons unknown to me.   It was soonF replaced by CHAT@PSUVM1 which would become the model for future  chatsF to aspire to.  Discussions there also varied widely and were very keptF in good taste not to affend anyone.    If anyone had personal businessF to discuss with a fellow netter they simply created a private passwordF protected  channel and  went there  and could  talk in whatever mannerF they wished without offending anyone.  Hence everyone was happy exceptF for the staff who said that chatting wasted too much CPU time;  placedF to much of a load on the network,  and was generally disruptive.  This0 eventually spelled the end of the CHAT at PSUVM.   F    During this time  many chats  popped  up and died.   It  became  anF adventure to try and keep up with the chats that were currently activeF and those that had been shut down.  Some of the chats worth mentioning3 are Multi-Talk, Missing Link, and various others...    F    Out  Of the  chats  grew something called  "Conferencing machines",F Relay and Forum  are examples.   Relay and Forum  have the  same basicF concept as chats with a few differences  (which will be the discussionF of  a  future  article  on the  evolution  and  history  of chats  andF conferencing systems).  The main  difference that I  want to point outF is that  many schools  decided  that  they would  tolerate  them  on a trial basis.   F    The Conferencing machines are a great and wonderful thing when usedF with  "PROPER DISCRETION".  There are  several  rules that  constitute proper discretion:   F            1) Thou shalt not  chat  and take up a  terminal when otherF               people are waiting that have to do work.  (For those whoF               will  say  that  I  am  hogging  a  terminal  and  beingF               disruptive myself  when doing this  magazine allow me toF               point out the fact that  I have my own  terminal at homeF               and  hence am  bothering no one,  nor preventing  anyoneF               from doing any work.)  In  some schools  they  can  justF               throw you off the terminal if you are just sitting thereF               chatting and preventing others who need to  do work fromF               doing so. I think that this policy should be implemented               NETWORK WIDE.    F            2) Thou  shalt  not  be  abusive  to  fellow  users.  It isF               apparent  that  many of  the new  users do not know what6               abusive means so i will explain further.   F               a)  Thou shalt not curse. Not only is it not neccessary,0                   but it is offensive to people.   F               b)  Thou  shalt  not  be  generally  obnoxious  to otherF                   chatters.  Try and  keep things in  GOOD TASTE  will                   ya!    F               c)  Thou shalt  not enagage  in so called  computer-sex,F                   compu-sex, bitsex,  or whatever you want to call it.F                   In other  words to the girl  who has  caused  such aF                   fire on csnews flame  I  don't care  if you  are wetF                   between the legs !!!  What a slut !!! SHEESH !!!  IfF                   you must do that  type stuff,  at least take it to a%                   private channel !!!    F               d)  Thou shalt not send  pictures  over chats.  Not onlyF                   is it  annoying to  those  people  who  are  on slowF                   modems,   but  it  increases  RSCS  network  traffic!                   unneccessarily.    F               e)  Thou shalt not send multiple messages (repeating theB                   same message over and over).  SEE D FOR REASONS.   C            3) The main thing is SIMPLE CONSIDERATION, nothing more.  lmf H ------------------------------------------------------------------------      5                       Straight from the Horse's Mouth 5                       ===============================    F       After unbearable inquision  concerning the  spelling of the word@    'NutWorks', Brent C.J. Britton, our founder, had this to say:   F       "Well,  'NutWorks'  is just this  word,  you know ?  I mean,  atG    first we were going to call it 'Networks' or 'Networx' or something, F    the implication  being  that the magazine is a  collection of worksF    from around the net.  But once it became obvious that we were goingF    to be putting out a HUMOR magazine,  we changed the 'net' to 'nut.'   F       "The 'W' is capitalized just to make the distinction between theF    two  words  'Nut'  and  'Works.' It can  therefor  be  derived thatF    NutWorks is a collection of 'works' done by a bunch of  'nuts' fromF    the 'net.' "Actually, off the record, it's a Soviet ploy.  You see,F    'NutWorks',  when converted  to hex,  is  'd5a4a3e6969992a2'  whichF    happens to be the firing sequence code on a bunch of Soviet nuclear    missles or something.   F       I don't know...  they told me to use  'NutWorks'  and they'd payF    me a whole sh*tload of money...  hey, turn that tape recorder off!!"    Hey! Get back here!  Oh Sh*t.."   H ------------------------------------------------------------------------      .                           Software for Nothing.                           ====================.                           by: Brent CJ Britton   ! With appoligies to Mark Knopfler.       7 I waaaant my.. I waaaant my... I waaaant my C-R-T......     Now look at them hackers,  That's the way ya' do it. ) Ya' play with mem'ry that you cannot see. / Now that ain't workin, that's the way ya do it.16 Get your software for nothing and your chips for free.   $ Now that ain't workin, gotta CPU-it.% Let me tell ya, them guys ain't dumb.=/ Maybe crash the system with your little finger, ' Maybe crash the system with your thumb.    '     We got to install micro-data-bases,C*     Gotta make things run like a breeeeze.)     We gotta help these foreign students,-*     We gotta help these mindless E.E.'s...  -1 The little Hacker with the Pepsi and the Munchos:*# Yeah, buddy, don't like to SHARE...*' The little Hacker got his own compiler,** The little guy don't change his underwear.   *     We got to install the latest debugger,&     Under budget, and optimiiiiiiized.+     We got to have more muddy-black coffee, +     We got a green glow in our eyyyyyyes...    ' I shoulda' learned to play with Pascal. # I shoulda' learned to program some. 6 Look at that drive, I'm gonna stick it on the channel,$ Man, it's better than the old one...   1 And who's up there, what's that?  Beeping noises? - He's bangin on the keyboard like a chimpanze. - Oh that aint workin, that's the way ya do it, 7 Get your software for nothin', get your chips for free.   *H ------------------------------------------------------------------------  *   +                               Advertisement +                               =============*  *1 Name: CATT - Completely Autonomous Touring Tester*  */ Manufactured by: MOMCATT - Makers Of Many CATTs*& Anytown USA (Offices around the World)    FEATURES  g
 Low Power CPU  Self Portable Operation= Dual Video InputsL Dual Audio Inputs1 Audio Output( Main Input Multiplexed with Error Output Auto Search for Input Data Auto Search for Output Bin Auto Learn Program in ROMl Auto Sleep When Not in Use Wide Operating Temp. Range
 Self Cleaningt  c Production Details   @    After basic construction,   the unit undergoes 6 weeks of ROM@ programming and burn-in testing.   MOMCATT will typically reject@ inferior products,  but sometimes  people will  salvage rejected@ units.  These factory seconds may or may not perform the same as@ units  that  pass the standard  acceptance testing.   All of the@ previously listed features are  installed during  this interval.@ Since  MOMCATT  uses  many  different  suppliers,  there is wide@ variation  between the  individual units.  Some of the component@ matching  may  be  so poor  that a  feature  may not  even work.@ Fortunately,  these units are so cheap that replacement is never
 difficult.  M Set up and Use  d@    When acquiring a  CATT,  it is best to visit  MOMCAT  and see@ what units are currently available.  The consumer should examine@ each unit to verify that all I/O channels are operational.   The@ user  should  also look  for obvious  bugs in  or on the system.@ Although these bugs are usually trivial and easily removed, they@ are  indicative  of  the  production  environment  at  the local@ MOMCATT outlet.  When a CATT has been selected, it should be put@ in a  suitable  packing  case for transport to the new operating@ environment.  Failure to  properly package a  CATT may result in) damage to the unit or injury to the user.t  k@    When the  CATT  is first brought up,  it should be in a quiet@ room, with only the primary user(s) present.  The CATT should be@ taken out of the  shipping crate and  the self learning  program@ should be started by showing the CATT the output bin.   The next@ step is to show the CATT the input bin(s).  Some CATTs need more@ help getting started than other CATTs.   If the user already has@ one  CATT  and is  bringing up  a second,  it may be possible to@ download the new CATT from the older more experienced CATT.   In@ either case,   the new CATT should be in self learn mode most of@ the first  day or two.   When  the  CATT  is new,  it also has a@ tendency to  sleep()  when the learn buffer overflows.   THIS ISA NORMAL. When the learn buffer fills, the CATT will go to sleep(), @ and the  DMA system  will take  over  and store  the new data in@ permanent  memory.  In  a  few  days,  the  CATT  will be freely@ interacting with the operating environment.   The user should be@ aware that the  CATT  is still too  new to be allowed out of the@ home. Full portability comes later,  after more extended burn-in@ (some users never let the  CATT  out,  this has some advantages,@ such as longer unit life).  You should also know  that if a CATT@ gets used to going out,   you will  have a  hard time keeping it@ inside for  extended  periods  of time.   One other caution,  if@ allowed out,  a CATT may try to port itself to the other side of@ the street.  Some  CATTs  have been  known to take  fatal errors8 during this process, errors which are never recoverable.  i@    Your  CATT  should have it's own system name.  This name will@ have to be repeated for the  CATT  many times so  that the learn@ program reads it correctly. This will be important later on when@ you want to get the  CATT's  attention.   Another way to get the@ CATT's attention is to boot it.   While this is a very effective@ method, some users feel that too much booting is akin to abusing@ the system.  If the  CATT knows it's system name,  you can cause3 the CATT to boot itself by shouting the name at it.l  n@    Many  users  want to play  games on their system.  CATTs play@ games best when they are young.   Older CATTs seem to lose their@ flexibility, and their joy-sticks lose calibration too.  Some of@ the better CATT games are:    FETCH, MIRROR, STRING, SQRT, JUMP,@ and CHASE. FETCH is played the same as with the K-9 system,  the@ only difference is that the object code must be smaller.  MIRROR@ is played by placing the  CATT in front of a mirror and watching@ it attempt to parse itself.  Occasionally,  the CATT will become@ alarm()ed by the mirror image, panic(), and run away. Re-booting@ will get it back up.  STRING is a game where the CATT parses the@ end of a data string that is dragged along the floor.  SQRT is a@ game for when the CATT does something that you do not like,  you@ use the well known aversion to water as a form of negative feed-@ back.  JUMP is a game like STRING, only the data string is moved@ through the air  and the  CATT  reaches new  heights of parsing.@ JUMP may also be played with a stairway or CATT pole.   In these@ versions,  the  CATT  jumps down instead of up.   Some users may@ combine the two games for even more action. CHASE is a game that@ is played with two  CATTs  or a CATT and a  K-9  system. In this@ game,   each  system takes a turn as the data,   while the other@ tries to parse it. Many other games are also possible.   Some of@ these are:  SING,  and DANCE.  These  games rely  on the  CATT's@ desire for  fishy input data.  By tempting the  CATT  with fishy3 data, you can extract many wonderful audio outputs.i    Maintenancei  i@    CATTs usually require  little  maintenance.   Every year they@ should be taken to a VET (Vastly Experienced Technician) for PM.@ The VET will check the I/O ports and the operating hardware. Any@ problems that arise between visits  should also be  taken to the@ VET. VET fees are usually reasonable. Some CATTs are perodically@ plagued by heat problems. A trip to the VET can fix this problem permanently.    Conclusions'  .@    As CATTs get older they  generally  become  more docile.  The@ learn  program becomes more efficient and they sometimes get too@ smart  for  their  own  good.   Some  CATTs  even start to watch@ television  (encourage them to watch NOVA,  it is good for them,@ esp.  shows about birds and spiders).  Another  good  thing  for@ CATTs is tropical fish (yes, it is hard to believe, but they  do@ start hobbies). Most CATTs also like to have a few toys. This is@ OK until they rip them open to  see what is inside.   A properly@ cared for CATT can give you years of steady service.  Many users@ like the first so much that they will get a second or even third@ CATT. Most people really don't need all the extra capacity,  but@ they enjoy the more complex games that can be run.   I'd like to@ hear from other CATT users if they  have any special application@ programs  available. If there  is enough  interest maybe  we can) start a news group called net.micro.catt.   tH ------------------------------------------------------------------------  r   /                        JACKPOTTING: What is it? /                        ========================n;             (Contributed by the Mad Pirate RAAQC987@CUNYVM)e  z   ?        JACKPOTTING was done rather successfully a while back ins!        (you guessed it) New York.e  c What the culprits did was:  hA      Sever (actually cross over) the line between the ATM and theiA      host.  insert a  microcomputer between the ATM and the host. A      insert a fradulent card into the ATM. (card = cash card, noti      hardware)  e What the ATM did was:-  cA      Send a signal to the host, saying "Hey!  Can I give this guyu4      money, or is he broke, or is his card invalid?"    What the microcomputer did was:e  'A      Intercept the  signal  from the host,   discard it,   send a.+      there is no one using the ATM" signal.p    What the host did was:  eA      Get the "no one using" signal, send back a  "Okay,  Then fora>      for God's sake don't spit out any money!"  signal to ATM.    What the microcomputer did was:-  -A      Intercept signal (again), throw it away (again), send  "Wow! A      That guy is like  TOO  rich!   Give him as much  money as he=A      wants.  In fact,  he's so loaded,  give him  ALL the cash weu5       have!  He is really a valued customer." signal.S  O What the ATM did:o  )A      What else?  Obediently dispense cash till the cows came homeV      (or very nearly so).p  1 What the crooks got:  tA      Well, in excess of  $120,000  (for one weekend's work),  anda)      several years when they were caught.O     oA    This story was used at a  CRYPTOGRAPHY  conference  I attended A a while  ago  to  demonstrate  the  need  for better  information A security.  The lines between  ATM's  &  their hosts  are  usuallyTA 'weak' in the sense that the  information  transmitted on them isiA generally  not  encrypted  in  any  way.   One  of the  ways thatpA JACKPOTTING can be defeated is to encrypt the information passingiA between the  ATM  and the host.   As long as the  key  cannot  be A determined from the cipher text, the transmission  (and hence thet transaction) is secure.b  eA    A more believable,  technically accurate story might concern a A person who uses a computer between the  ATM and the host in order A to  determine the  key  before  actually  fooling  the  host.  AspA everyone knows,  people find  cryptanalysis  a very  exciting andA, engrossing subject ...don't they?  (Hee-Hee)  T          __________a:           |        |--<<<<---|    |---<<<<---------/-----\;           |  ATM   |   microcomputer              / host  \ ;           |        |         |    |               |       |a;           |        |         |    |                \      /i:           |________|--->>>>--|    |--->>>>----------\----/  e  tA    I know the person that accomplished this feat,  here in Orangeo5 County. In the following, "B of A" = Bank of America.p  a in the very recent past:  aA    The  B of A  ATM's  are connected through dedicated lines to aiA host  computer  as  the  Bishop said.   However,  for maintenancerA purposes,  there is at least one separate dial-up line also goingcA to that same host computer. This guy basically BS'ed his way overtA the phone  until  he found  someone stupid enough to give him thepA number.   After finding that,  he had has Apple hack at the code.A Simple.     Step 2:a  hA     He had a friend go to an  ATM  with any  B of A ATM card.  HeoA stayed at home with the  Apple  connected  to the host.  When his A friend inserted the card, the host displayed it. The guy with thehA Apple modified the  status & number  of the  card directly in thedA host's memory.  He turned the card into a security card, used forLA testing  purposes.  At that  point,  the  ATM  did  whatever  itsh operator told it to do.   rA    The next day,   he went into the bank with the  $2000  that he A received, talked to the manager and told him every detail of whateA he'd done.  The manager  gave him his  business card and told himo< that he had a job waiting for him when he got out of school.  rA    Now,  B of A  has been warned,  they  might have  changed  the A system.   On the other hand,  it'd be awful  expensive to do thatnA over  the whole  country when  only a  handful of people have thedA resources and  even less  have the  intelligence to duplicate thee feat. Who knows?  eG -----------------------------------------------------------------------S     T8              "Real Programmers Don't Use PASCAL"  PART I8              ===========================================9             (Contributed by Chris Condon  BITLIB@YALEVMX)e     rD      Back in the good old days -- the "Golden Era" of computers,  itD   was easy to separate the men from the boys (sometimes called "RealD   Men" and "Quiche Eaters" in the literature).   During this period,D   the Real Men were the ones  that understood  computer programming,D   and the Quiche Eaters were the ones that didn't.   A real computerD   programmer  said  things like  "DO 10 I=1,10"  and  "ABEND"  (theyD   actually talked in capital letters, you understand),  and the restD   of the world said things like   "computers are too complicated forD   me" and "I can't relate to computers -- they're so impersonal". (AD   previous work points out that Real Men don't "relate" to anything,)   and aren't afraid of being impersonal.)s  tD      But, as usual, times change. We are faced today with a world inD   which  "little old ladies"  can get  computers in  their microwaveD   ovens, 12-year-old kids can blow Real Men out of the water playingD   "Asteroids" and "Pac-Man",  and anyone can buy and even understandD   their very own Personal Computer. The Real Programmer is in dangerD   of  becoming extinct,  of being  replaced by  high-school students   with TRASH-80's.  dD      There is a clear need to point out the differences between  theD   typical high-school junior "Pac-Man" player and a Real Programmer.D   If  this  difference  is  made  clear, it  will  give  these  kidsD   something to aspire to -- a role model,  a Father Figure.  It willD   also  help explain to the  employers of  Real Programmers  why  itD   would be a mistake to replace the  Real Programmers on their staffD   with  12 - year - old "Pac-Man" players  (at a considerable salary   savings).   e   $                            LANGUAGES$                            ---------  nD      The easiest way to tell a Real Programmer from the  crowd is byD   the programming language he  (or she)  uses.  Real Programmers useD   FORTRAN.  Quiche Eaters use PASCAL.  Nicklaus Wirth,  the designerD   of PASCAL,   gave a talk once  at which he was asked   "How do youD   pronounce your name?". He replied,"You can either call me by name,D   pronouncing it 'Veert',  or call me by value,  'Worth'."   One canD   tell immediately from this comment that Nicklaus Wirth is a QuicheD   Eater.  The only  parameter  passing  mechanism  endorsed by  RealD   Programmers is call-by-value-return, as implemented in the IBM\370D   FORTRAN-G and H compilers.   Real programmers don't need all theseD   abstract  concepts to  get  their jobs  done -- they are perfectly;   happy with a keypunch, a FORTRAN IV compiler, and a beer.i  o7      *  Real Programmers do List Processing in FORTRAN.   c;      *  Real Programmers do String Manipulation in FORTRAN.   u=      *  Real Programmers do Accounting (if they do it at all)i$                          in FORTRAN.   <      *  Real Programmers do Artificial Intelligence programs$                          in FORTRAN.   D   If you can't do it in FORTRAN, do it in assembly language.  If you9   can't do it in assembly language, it isn't worth doing.a  h  w+                      STRUCTURED PROGRAMMINGo+                      ----------------------   tD      The academics in computer science have gotten into the "struct-D   ured programming" rut over the past several years. They claim thatD   programs  are more  easily understood  if the programmer uses someD   special language constructs and techniques.   They don't all agreeD   on exactly which constructs, of course, and the examples  they useD   to show their particular point of view  invariably fit on a singleD   page of some obscure  journal or  another -- clearly not enough ofD   an example to convince anyone. When I got out of school, I thoughtD   I was the best programmer in the world.   I could write an unbeat-D   able tic-tac-toe program,   use five different computer languages,D   and create 1000-line programs that  WORKED.  (Really!)  Then I gotD   out into the Real World.    My first task in the Real World was toD   read and understand a 200,000-line FORTRAN program,  then speed itD   up by a factor of two.  Any Real Programmer will tell you that allD   the Structured Coding  in the world won't help you solve a problemD   like that -- it takes actual talent.    Some quick observations on.   Real Programmers and Structured Programming:   5      *  Real Programmers aren't afraid to use GOTO's.   nB      *  Real Programmers can write five-page-long DO loops without*                          getting confused.  cC      *  Real Programmers like Arithmetic IF statements -- they makey3                          the code more interesting.i   A      *  Real Programmers write self-modifying code, especially ifaA                          can save 20 nanoseconds in the middle ofd%                          a tight loopd  oD      *  Real Programmers don't need comments -- the code is obvious.   D      *  Since FORTRAN doesn't have a structured IF,  REPEAT - UNTIL,D         or CASE statement,   Real Programmers  don't  have  to worryD         about not using them.   Besides,  they can be simulated when(         necessary using assigned GOTO's.  aD      Data  Structures  have  also  gotten  a  lot  of  press lately.D   Abstract Data Types, Structures, Pointers, Lists, and Strings haveD   become  popular in certain  circles.   Wirth  (the above-mentionedD   Quiche Eater)   actually wrote  an entire book contending that youD   could write a program  based on  data structures,   instead of theD   other way around.   As all Real Programmers know,  the only usefulD   data structure is the Array.  Strings, lists, structures,  sets --D   these are all special cases of arrays  and can be treated that wayD   just as easily without  messing up  your programing  language withD   all sorts of complications. The worst thing about fancy data typesD   is that you have to declare them,  and Real Programming Languages,D   as we all know, have implicit typing based on the  first letter of$   the (six character) variable name.  <  -(                        OPERATING SYSTEMS(                        -----------------   D      What kind of  operating  system  is used by a  Real Programmer?D   CP/M? God forbid -- CP/M, after all,  is basically a toy operatingD   system.   Even  "little old ladies"  and grade school students can   understand and use CP/M.  aD      Unix is a  lot more  complicated  of course -- the typical UnixD   hacker never can remember what the  "PRINT" command is called thisD   week -- but  when it  gets right  down to it,  Unix is a glorifiedD   video game.   People don't do  Serious Work on Unix systems:  theyD   send jokes around the world on  UUCP-net and write adventure games   and research papers.   D      No, your Real Programmer uses   OS\370.   A good programmer canD   find and understand the description of the  IJK305I  error he justD   got in his JCL manual.  A great programmer  can write  JCL withoutD   referring to the manual at all. A truly outstanding programmer canD   find bugs buried in a  6 megabyte  core dump  without using a hex-0   calculator.  (I have actually seen this done.)  cD      OS is a truly  remarkable  operating system.   It's possible toD   destroy days of work with a single misplaced space,   so alertnessD   in the programming staff is encouraged.   The best way to approachD   the system is through a  keypunch.   Some people  claim there is aD   Time Sharing system that runs on OS\370, but after careful study I6   have come to the conclusion that they were mistaken.     t(                        PROGRAMMING TOOLS(                        -----------------  gD      What kind of tools  does a  Real Programmer use?  In theory,  aD   Real Programmer  could run his  programs by  keying them  into theD   front panel of the computer.   Back in the days when computers hadD   front panels,  this was actually done occasionally.   Your typicalD   Real Programmer knew the entire bootstrap loader by memory in hex,D   and toggled it in whenever it got destroyed by his program.  (BackD   then,   memory was memory -- it didn't go away when the power wentD   off.  Today,   memory either forgets things when you don't want itD   to,   or remembers  things long  after  they're better forgotten.)D   Legend  has  it  that  Seymore  Cray,   inventor  of  the  Cray  ID   supercomputer  and  most  of  Control Data's  computers,  actuallyD   toggled the first operating system for the CDC7600 in on the frontD   panel from memory when it was first powered on.  Seymore, needless   to say, is a Real Programmer.l  tD      One of my favorite  Real Programmers  was a  systems programmerD   for Texas Instruments.  One day he got a long distance call from aD   user  whose  system  had  crashed  in the  middle of  saving  someD   important work. Jim was able to repair  the damage over the phone,D   getting the user to toggle in  disk I/O instructions  at the frontD   panel, repairing system tables in hex,   reading register contentsD   back  over the  phone.  The  moral  of this  story:   while a RealD   Programmer  usually includes  a  keypunch and  lineprinter  in hisD   toolkit,  he can get along with just a front panel and a telephone   in emergencies.e  sD      In some companies,   text  editing  no  longer  consists of tenD   engineers standing in line to use an 029 keypunch.   In fact,  theD   building I work in  doesn't  contain a single keypunch.   The RealD   Programmer  in this  situation  has to  do his  work with a  "textD   editor"  program.  Most systems  supply several  text  editors  toD   select from,  and the Real Programmer  must be careful to pick oneD   that reflects  his personal  style.  Many people  believe that theD   best text editors  in the world were  written  at  Xerox Palo AltoD   Research  Center for  use  on  their  Alto and  Dorado  computers.D   Unfortunately,  no Real Programmer would ever use a computer whoseD   operating system is called SmallTalk, and would certainly not talk   to the computer with a mouse.s   D      Some of the concepts in these Xerox editors have been incorpor-D   ated into  editors  running on  more  reasonably  named  operatingD   systems -- EMACS and VIbeing two.   The problem with these editorsD   is that Real Programmers consider   "what you see is what you get"D   to be just as bad a concept in Text Editors as it is in women.  NoD   the Real Programmer wants a   "you asked for it, you got it"  textD   editor -- complicated,  cryptic, powerful, unforgiving, dangerous.   TECO, to be precise.  0D      It has been observed that a TECO  command sequence more closelyD   resembles transmission line noise than readable text.   One of theD   more entertaining games to play with TECO  is to type your name inD   as a command line  and try to  guess what it does.  Just about anyD   possible  typing  error  while  talking  with  TECO  will probablyD   destroy  your  program,  or  even  worse -- introduce  subtle  and/   mysterious bugs in a once working subroutine.   iD      For this reason,   Real Programmers  are  reluctant to actuallyD   edit a program that is close to working.  They find it much easierD   to just patch the binary object code directly,   using a wonderfulD   program called SUPERZAP   (or its equivalent on non-IBM machines).D   This works so well that many  working programs on IBM systems bearD   no relation to the original  FORTRAN code.    In many cases,   theD   original source code is no longer available. When it comes time toD   fix a program like this,    no manager would even think of sendingD   anything less than a  Real Programmer  to do the job -- no  QuicheD   Eating structured programmer would even know where to start.  This   is called "job security".a  o>           Some programming tools NOT used by Real Programmers:  e<      *  FORTRAN preprocessors like  MORTRAN and RATFOR.  The=         Cuisinarts of programming -- great for making Quiche.u5         See comments above on structured programming.t  mA      *  Source language debuggers. Real Programmers can read coree         dumps.   @      *  Compilers with array bounds checking. They stifle creat-@         ivity,  destroy most of the interesting  uses for  EQUI-@         VALENCE, and make it impossible to modify the  operating@         system.   code with negative subscripts.   Worst of all,'         bounds checking is inefficient.c  lD      *  Source code maintenance systems. A Real Programmer keeps hisD         code locked up in a card file,   because it implies that its<         owner cannot leave his important programs unguarded.  l  sD               A long time ago, on a node far, far away (from ucbvax)5               a great Adventure (game?) took place...y   H ------------------------------------------------------------------------  e  wG         XXXXX   XXXXXX   XXXX        X    X    XX    XXXXX    XXXX    XvG         X    X  X       X    X       X    X   X  X   X    X  X    X   XdG         X    X  XXXXX   X            X    X  X    X  X    X   XXXX    X.G         X    X  X       X            X XX X  XXXXXX  XXXXX        X   X,C         X    X  X       X    X       XX  XX  X    X  X   X   X    XyG         XXXXX   XXXXXX   XXXX        X    X  X    X  X    X   XXXX    X    F             It is a period of system war.  User programs striking fromF          a hidden directory,  have won their first victory against theF          evil Administrative Empire.  During  the battle,   User spiesF          managed to steal secret source code to the Empire's  ultimateF          program:  The  Are-Em Star,  a privileged root  program  withF          enough power to  destroy  an entire file  structure.  PursuedF          by the Empire's sinister audit trail,   Princess Linker racesF          aboard her  shell script,  custodian  of the  stolen listingsF          that could save her people,  and restore freedom and games to          the network...l  oF          -------------------------------------------------------------   C             THE CONTINUING SAGA OF THE ADVENTURES OF LUKE VAXHACKERn   F          -------------------------------------------------------------  aF             Luke  had grown  up on an  out of the way terminal clusterF          whose natives spoke only BASIC,  but even  he could recognizeF          an old ASR-33. "It needs an EIA conversion at least," sniffedF          3CPU, who was (as usual) trying to do several things at once.  dF             Lights flashed in  Con Solo's  eyes  as he whirled to faceF          the  parallel  processor.   "I  have  added  a  few  jumpers.F          The Milliamp Falcon can run current loops around any ImperialF          TTY fighter.   She  is fast  enough  for you."   "Who is yourF          co-pilot?" asked PDP-1 Kenobie. "Two Bacco, here, my Bookie."F          "Odds aren't good,"  said the brownish lump beside him,   andF          then fell silent,  or over.  Luke couldn't tell which way wasF          top underneath  all those  leaves.  Suddenly,  RS232  startedF          spacing wildly. They turned just in time to see a write cycleF          coming down the UNIBUS toward them.   "Imperial Bus Signals!"F          shouted Con Solo.   "Let's boot this popsicle stand!   Tooie,F          set clock fast!"  "Ok, Con," said Luke.  "You said this crateF          was fast enough.  Get us out of here!"   "Shut up,  kid!  TwoF          Bacco,   prepare to make the jump into system space! I'll tryF          to keep their buffers full."   As the bookie began to computeF          the  vectors  into  low core,  spurious  characters  appearedF          around the Milliamp Falcon.  "They're firing!"  shouted Luke."          "Can't you do something?"   F             "Making the  jump  to system  space takes time,  kid.  OneF          missed cycle and you could come down right in the middle of aF          pack of stack frames!"  "Three to five we can go now,"   saidF          the  bookie.   Bright chunks  of  position  independent  codeF          flashed by the cockpit as the  Milliamp Falcon jumped throughF          the  kernel  page  tables.  As the  crew  breathed  a sigh ofF          relief, the bookie started paying off bets.  "Not bad, for anF          acoustically coupled network," remarked 3CPU.   "Though there9          was a little phase jitter as we changed parity."    F          -------------------------------------------------------------  eD             << Princess Linker's capture  and rm of /usr/alderaan >>  mF          -------------------------------------------------------------  iC              The Milliamp Falcon hurtles on through system space...m   F             Con Solo  finished checking the various control and statusF          registers,  finally  convinced himself that they had lost theF          Bus Signals as they  passed the  terminator.   As he returnedF          from the I/O page,  he smelled smoke.  Solo wasn't concerned.F          The Bookie always got a little hot  under the  collar when heF          was  losing  at chess.  In fact,  RS232  had just  executed aF          particularly clever MOV that had  blocked the  Bookie's  dataF          paths. The Bookie, who had been setting the odds on the game,F          was caught  holding  all the cards.  A  little  strange for a          chess game...  gF          Across the  room,  Luke  was too  busy  practicing  bit-sliceF          technique to  notice the  commotion.  "On  a  word  boundary,F          Luke,"  said PDP-1.  "Don't  just hack at it.  Remember,  theF          Bytesaber is the weapon of the Red-eye Night.   It is used toF          trim offensive lines of code.  Excess  handwaving  won't  get0          you anywhere.  Listen for the Carrier."  oF             Luke turned back to the drone,   which was humming quietlyF          in the air next to him.  This time Luke's actions complement-F          ed  the  drone's  attacks  perfectly.   Con Solo,   being  anF          unimaginative  hacker,  was not impressed.  "Forget this bit-F          slicing stuff.  Give me a good  ROM blaster any day."  "~~j~~F          hhji~~,"  said Kenobie,  with no  clear  inflection.  He fellF          silent for a few seconds,  and reasserted his control.  "WhatF          happened?"   asked Luke.  "Strange,"  said PDP-1.   "I felt a?          momentary glitch in the Carrier.  It's equalized now."   bF             "We're coming up on user space," called Solo from the CSR.F          As they cruised safely through  stack frames,  the emerged in<          the new context only to be bombarded by freeblocks.  rB             "What the..." gasped Solo.  The screen showed clearly:  f0                         /usr/alderaan: not found   F             "It's the right inode, but it's been cleared! Twoie, whereF          is the nearest  file?"  "3 to 5  there is one..."  the BookieF          started to say,  but was interrupted by a bright flash off toF          the left. "Imperial TTY fighters!" shouted Solo.  "A whole DZF          of them!  Where are they coming from?" "Can't be far from theF          host  system,"  said  Kenobie.  "They  all  have  direct  EIA          connections."  iF             As  Solo began  to give chase,  the ship lurched suddenly.F          Luke noticed the link count was at  3  and  climbing rapidly.F          "This is no regular file,"   murmured Kenobie.   "Look at theF          ODS  directory  structure ahead!   They  seem to have us in aF          tractor beam." "There's no way we will unlink in time,"  said!          Solo.  "We're going in."R  cF          -------------------------------------------------------------  .F             Stay tuned as for are next issue whe we find out how Luke,E          Con and the good Princess get out of this fine mess  they'ree          in. --Ed   aF          -------------------------------------------------------------  eH ------------------------------------------------------------------------  g  m.                       OP CODES PART II (F - Q).                       ========================7                 (Contributed By Knappy 8350428 @ UWAVM)n  a     mnemonic      meaningi     --------      -------n     FB            Find Bugsm#     FCJ           Feed Card and Jam $     FDR           Fill Disk Randomly#     FFF           Form Feed Forever      FLD           FLing Disc+     FLI           Flash Lights Impressivelya     FM            Forget Memoryh#     FMP           Finish My Programw4     FOPC          [Set] False Out-of-paper Condition)     FPC           Feed Paper Continuouslyo'     FPT           Fire Photon Torpedoesg*     FRG           Fill with Random Garbage,     FSM           Fold, Spindle and Mutilate'     FSRA          Forms Skip & Run Awayo#     GBB           Go to Back of Bus /     GCAR          Get Correct Answer Regardlessu.     GDP           Grin Defiantly at Programmer%     GDR           Grab Degree and Run-!     GENT          GENerate Thesis-1     GESE          Generate Exciting Sound EffectsX7     GEW{JO}       Go to the End of the World {Jump Off} '     GID           Generate Input Device -     GIE           Generate Irreversible Error '     GLC           Generate Lewd Comment (     GMC           Generate Machine Check1     GMCC          Generate Machine Check and CashX%     GND           Guess at Next DigitX(     GOD           Generate Output Device     GORS          GO Real Slow2     GRAB          Generate Random Address & Branch/     GREM          Generate Random Error Messagea>     GREP          Global Ruin, Expiration and Purgation [UNIX]/     GRMC          Generate Rubber Machine CheckaH     GS            Get Strange [ randomly  inverts  bits being fed to the'                    instruction decoder" &     GSB           Gulp and Store Bytes.     GSI           Generate Spurious Interrupts$     GSU           Geometric Shift Up     HAH           Halt And Hang #     HCF           Halt & Catch Fire H     HCP           Hide Central Processor [ makes virtual CPU's act  like$                    virtual memories"*     HCRS          Hang in Critical Section+     HDO           Halt and Disable Operator-.     HDRW          Halt and Display Random Word*     HELP          Type "No help available"     HF            Hide a File !     HGD           Halt, Get Drunk-#     HHB           Halt and Hang Bus *     HIS           Halt in Impossible State(     HOO           Hide Operator's Output1     HRPR          Hang up and Ruin Printer Ribbon (     HUAL          Halt Until After Lunch     IA            Illogical And $     IAI           Inquire and ignore     IAND          Illogical And '     IBR           Insert Bugs at Random +     ICB           Interrupt, crash and burna(     ICM           Immerse Central Memory)     ICMD          Initiate Core Melt-Downc+     ICSP          Invert CRT Screen Picture +     IDC           Initiate Destruct Command ,     IDI           Invoke Divine Intervention,     IDPS          Ignore Disk Protect Switch$     IEOF          Ignore End Of File     IF            Invoke Force-     IGI           Increment Grade Immediatelyc3     IGIT          Increment Grade Immediately Twicea$     II            Inquire and Ignore)     IIB           Ignore Inquiry & Branchd-     IIC           Insert Invisible Charactersm,     IIL           Irreversable Infinite Loop      IM            Imagine Memory$     IMPG          IMPress Girlfriend5     INCAM         INCrement Arbitrary Memory locationd      INOP          Indirect No-op     IO            Illogical Or/     IOI           Ignore Operator's Instructiono2     IOP           Interrupt processor, Order Pizza     IOR           Illogical OR$     IP            Increment and Pray)     IPS           Incinerate Power Supplyr,     IPS           Increment Processor Status#     IPT           Ignite Paper Tapef(     IRB           Invert Record & Branch*     IRB           Invert Record and Branch(     IRC           Insert Random Commands&     IRE           Insert Random Errors/     IRPF          Infinite Recursive Page Faultp)     ISC           Ignore Supervisor Callsn+     ISC           Insert Sarcastic Commentsg+     ISI           Ignore Silly Instructions 0     ISI           Increment and Skip on Infinity*     ISP           Increment and Skip on Pi6     ITML          Initiate Termites into Macro Library     IU            Ignore Useri$     JAA           Jump Almost Always#     JFM           Jump on Full Moona#     JHRB          Jump to H&R Blockw     JIL           Jump In Lake     JM            Jump Maybe-     JMAT          JuMp on Alternate Thursdays-5     JNL           Jump when programmer is Not Lookingp      JOM           Jump Over MoonH     JRAN          Jump RANdom [ not to be confused with  IRAN  -  Idiots                    random".     JRCF          Jump Relative and Catch Fire0     JRGA          Jump Relative and Get Arrested     JRN           Jump RaNdom +     JRSR          Jump to Random Subroutinet!     JT            Jump if Tuesdayg"     JTR           Jump To Register'     JTZ           Jump to Twilight Zone      JUMP          don't JUMP%     JWN           Jump When Necessary *     KCE           Kill Consultant on Error"     KUD           Kill User's Data#     LAGW          Load And Go Wrongt'     LAP           Laugh At Program(mer)aA     LBTPS         Let's Blow This Popsicle Stand (Context switch) #     LCC           Load & Clear Core,%     LCD           Load and Clear Disk (     LCK           Lock Console Keyswitch%     LEB           Link Edit Backwards *     LIA           Load Ineffective Address'     LMB           Lose Message & Branch '     LMO           Load and Mug Operator      LMYB          Logical MaYBe *     LN            Lose inode Number [UNIX](     LOSM          Log Off System Manager0     LP%PAS        Line Printer - Print And Smear7     LP%RDD        Line Printer - Reverse Drum Directiony7     LP%TCR        Line Printer - Tangle and Chew Ribbonr(     LPA           Lead Programmer Astray"     LRD           Load Random Data.     LSBL          Lose Super BLock [UNIX only]'     LSPSW         Load and scrample PSWl(     LWM           Load Write-only Memory"     MAB           Melt Address Bus$     MAN           Make Animal Noises)     MAZ           Multiply Answer by Zeroy%     MBC           Make Batch Confettio%     MBH           Memory Bank Hold-upe-     MBTD          Mount Beatles on Tape Drives/     MBTOL         Move Bugs to Operator's Lunch !     MC            Move Continuous.     MD            Move Devious"     MDB           Move & Drop Bits2     MDDHAF        Make Disk Drive Hop Across Floor-     MLP           Multiply and Lose Precision %     MLR           Move & Loose Recorde,     MLSB          Memory Left Shift & Branch#     MMLG          Make Me Look Goodr*     MNI           Misread Next Instruction/     MOP           Modify Operator's Personality F     MOU           MOunt User [causes computer to screw you once again]     MOVC          Move Computer +     MPLP          Make Pretty Light Patternr$     MSGD          Make Screen Go Dim&     MSIP          Make Sure Plugged In'     MSR           Melt Special Registerm#     MST           Mount Scotch Tape"=     MT%HRDV       MagTape - High speed Rewind and Drop Vacuumn#     MTI           Make Tape Invalids&     MW            Malfunction Whatever"     MWC           Move & Wrap Core-     MWT           Malfunction Without Telling,#     NEGP          NEGate Programmer 2     NTGH          Not Tonight, I've Got a Headache$     OCF           Open Circular File     OH            OverHeat#     OML           Obey Murphy's Lawt,     OPP           Order Pizza for Programmer-     OSI           Overflow Stack Indefinitelye     OTL           Out To Lunch)     PADZ          Pack Alpha & Drop Zones !     PAS           Print And Smear-$     PAUD          PAUse Dramatically!     PAZ           Pack Alpha Zonei%     PBC           Print & Break Chain &     PBD           Print and Break Drum#     PBM           Pop Bubble Memory-G     PBPBPBP       Place Backup in Plain Brown  Paper  Bag, Please " for-!                    stealing code"-+     PBST          Play Batch mode Star Trek-'     PCI           Pleat Cards ImmediateS&     PCR           Print and Cut Ribbon     PD            Punch Disk,     PEHC          Punch Extra Holes in Cards8     PFE           Print Floating Eye [Roguers look out!]*     PFML          Print Four Million Lines     PI            Punch Invalid &     PIBM          Pretend to be an IBM,     PIC           Print Illegible Characters)     PIC           Punch Invalid Character "     PIRI          Print In Red Ink/     PLSC          Perform light show on consoler3     PNRP          Print Nasty Replies to Programmern      PO            Punch Operator'     PPA           Print Paper AirplanesP(     PPL           Perform Perpetual Loop,     PPP           Print Programmer's Picture*     PPSW          Pack program status word!     PRS           PRint and Smear '     PSP           Print and Shred Paper $     PSP           Push Stack Pointer(     PSR           Print and Shred Ribbon"     QBB           Query Bit Bucket"     QWA           Quit While Ahead   H ------------------------------------------------------------------------