home *** CD-ROM | disk | FTP | other *** search
/ ftp.robelle3000.ai 2014 / 2014.06.ftp.robelle3000.ai.tar / ftp.robelle3000.ai / newsletter / 1989 / w1989-05.txt < prev    next >
Text File  |  1999-04-28  |  23KB  |  460 lines

  1.  
  2.          What's Up DOCumentation
  3.  
  4.  
  5.  
  6.         Robelle Consulting Ltd.
  7.         8648 Armstrong Rd., R.R.#6
  8.         Langley, B.C.  Canada V3A 4P9
  9.         Telephone: (604) 888-3666  Telex: 04-352848
  10.         Fax:  (604) 888-7731
  11.  
  12.  Date:  June 20, 1989
  13.  From:  Robert M. Green, President
  14.         David J. Greer, Research & Development
  15.         Michael C. Shumko, Customer Support
  16.  To:    Users of Robelle Software
  17.  Re:    News of the HP 3000, 1989 #5
  18.  
  19.       What You Will Find in This News Memo:
  20.  
  21.         News Tidbits
  22.         Electronic Mail at Co-Cam
  23.         Technical Tips
  24.         VESOFT and ROBELLE: the "/%" Connection
  25.         Quick Reference Guide to MPE XL Intrinsics
  26.         Improving MPE XL Performance by Suspending Programs
  27.         About Robelle
  28.         Robelle Products:  Problems, Solutions, and Suggestions
  29.  
  30.  
  31.                                  News Tidbits
  32.  
  33.  MPE XL Performance Tools.  There are now a few TELESUP tools for monitoring
  34.  MPE XL systems:  SCOUT shows process information and bypasses the flawed
  35.  measurement interface (look for newscout.privxl.telesup or ask the Response
  36.  Center to upload it), POET looks at all file activity and can tell you the
  37.  most frequently used files, and XL/DCP.  [Dave Rochford]
  38.  
  39.  Does SUE run on MPE XL?  Not the one that we distribute.  Rumor has it that
  40.  Stan Sieler has a new version of SUE working on MPE XL, but may market it as
  41.  a low-cost product.  We'll keep you posted.  HP has a limited product called
  42.  HPGLANCE for MPE XL and another possibility is PROBE/XL, a performance
  43.  monitoring and trending product from Strategic Systems.  Telephone:  (206)
  44.  362-2231.
  45.  
  46.  Oddball "Features" of Some HP CRTs.  Ross Scroggs of Telamon reports the
  47.  following:
  48.  700/94 Terminal.  If a character is typed from the keyboard in the middle of
  49.  an Escape sequence being sent from the 3000, the typed characters are
  50.  interpreted as part of the Escape sequence.  While the terminal microcode is
  51.  interpreting Escape sequences, it can't distinguish between characters
  52.  entered at the keyboard and those coming from the datacomm port.
  53.  XOFF Typeahead Buffering.  Some terminals have limited typeahead or character
  54.  buffering capability.  When the 2392 receives an XOFF, it will store
  55.  keystrokes until XON is received.  Unfortunately, what it stores is the last
  56.  seven keystrokes (that's keystrokes, not characters).  So if you type ten
  57.  keys after the terminal gets an XOFF, the first three will be lost, and the
  58.  last seven will be transmitted.  The 700/9x terminal is similar, except that
  59.  it stores the first 15 keystrokes, then loses the rest except for the last
  60.  seven!  This did not matter much in the past, since the Classic 3000 does not
  61.  use XOFF for flow control, but MPE XL machines use XOFF/XON as their primary
  62.  method of flow control.
  63.  
  64.  
  65.                            Electronic Mail at Co-Cam
  66.                               by Michael Redmond
  67.  
  68.  [Co-Cam Computer Group is Robelle's distributor in Australia and a user of
  69.  Robelle's electronic mail package, Xpress.  ed]
  70.  
  71.  Our Xpress user base has grown from 10 initial users in 1984 to over 150 at
  72.  the present time.  As we have grown, its use has become increasingly
  73.  important as a vital means of inter-office communication.  It also provides
  74.  us with a cost-effective way of keeping in contact with our Sydney office,
  75.  over 800 km away.
  76.  The growth in our Melbourne office meant that the company was virtually split
  77.  in two for over six months while renovations were being completed to our new
  78.  office.  Some project teams, sales and marketing, administration and
  79.  accounts, were in one office, while other project teams, R&D and computer
  80.  operations were in another.  Xpress was used to get messages to people
  81.  quickly and reliably without having to phone them up to find them not around
  82.  or in meetings or at client's offices.  With Xpress you knew that messages
  83.  would be received.
  84.  Now that the Melbourne office has been united at last, we are encouraging
  85.  people to use Xpress even more.  We have set up specific Xpress log-ons for
  86.  each project team member to use (e.g., the people in the administration area
  87.  log on as XPRESS.MADMIN, where the M stands for Melbourne).
  88.  Since there were some groups that did not have access to the Series 52 that
  89.  Xpress resides on -- our telemarketing division work on UNIX systems -- we
  90.  have placed a terminal connected to the Series 52 in each of these areas and
  91.  users can have access to Xpress easily.
  92.  Xpress is used by all levels of Co-Cam staff, from upper management to staff
  93.  juniors.  The bulletin board is one feature that is of great value to Co-Cam.
  94.  It is used for a variety of reasons.  Notice of an important staff meeting
  95.  may be followed by an advertisement for a used car.  R&D use it to notify
  96.  programmers of new releases of Co-Cam software, and I use it to notify people
  97.  that a new What's Up, Doc has arrived (this notice is followed by a stampede
  98.  to my desk for a copy).  All in all, the Xpress bulletin board is the best
  99.  communicator of information that we have at Co-Cam.
  100.  On the resources side of things, Xpress is a snap to manage.  I have very
  101.  few, if any, problems with it.  The resources it uses are minimal and the
  102.  time spent in managing the database is also very small.
  103.  Personally, I find it a great little product.  I have a lot of contact with
  104.  one of my colleagues in Sydney.  We swap messages daily on different topics,
  105.  and electronic mail helps us utilize our time much better than if we had to
  106.  muck around with costly phone calls or wait for the overnight mail to be
  107.  delivered.
  108.  The bring-forward file is another feature that gets a lot of use.  I use it
  109.  to remind me to send out Software Renewal notices for Robelle clients, send
  110.  out monthly rental invoices, and lots of other important messages that I need
  111.  to be reminded of in the future.  These messages would normally be on scraps
  112.  of paper cluttering up my desk.
  113.  
  114.  
  115.                                 Technical Tips
  116.  
  117.  CRTs + Magnets = Bad.  In the good old days when crts were all monochrome, it
  118.  was great fun to move a magnet around the face of the screen and watch the
  119.  the letters and words do the electronic equivalent of the Pepto-Bismol TV ad.
  120.  Those days are gone.  Do not do this on a color crt:  you may damage the
  121.  screen permanently.
  122.  
  123.  Modify All.  You have some output on your screen that you want to capture in
  124.  a Qedit file, but you don't want to re-type it all.  Here's how to avoid the
  125.  wear and tear on the digits:  in Qedit, type ADDQ.  This puts you in add mode
  126.  but doesn't print a line number for each line to be added.  Move the cursor
  127.  to the first line to be added.  Pull up the "modes keys" on your HP terminal
  128.  or clone, and turn on MODIFY ALL (f2).  Now just press Return on each line
  129.  that you want to copy into your file.  When you're done copying, turn off
  130.  MODIFY ALL and type // and Return.  That's it.
  131.  This can also be used as a REDO command: turn on LINE MODIFY (same as MODIFY
  132.  ALL but turns itself off automatically when you press Return), move the
  133.  cursor to the line to be re-executed, correct any typos, and press Return.
  134.  Easy as pi.
  135.  
  136.  Adager Tip.  Change automatic master sets to manual, before doing a big
  137.  detail dataset reload.  This will avoid deleting and re-adding the master
  138.  entries, and is almost instantaneous.  [Fred White]
  139.  
  140.  How to Splice in Qedit.  You can use the JUSTIFY FORMAT command to splice two
  141.  lines together in Qedit.  For example,
  142.       /list 5/6
  143.           5    This sentence can be spliced
  144.           6    from two lines to one!
  145.      /justify format 5/6
  146.           5    This sentence can be spliced from two lines to one!
  147.  
  148.  Remote "Batch" Sessions.  In the last news memo we asked for help in solving
  149.  a problem where Qedit eats its first two command lines because it is trying
  150.  to identify the crt model of a remote session that is launched from a job
  151.  stream.  Thanks for all your suggestions on how to detect this situation, but
  152.  no one has yet found a method that works on most versions of MPE.  Creative
  153.  suggestions:  CAUSEBREAK intrinsic, JOBINFO intrinsic, FCONTROL-39 to request
  154.  the termtype (this fails for remote "batch" sessions on some versions of MPE,
  155.  but not the most recent ones), and FFILEINFO code 60 (this does tell you that
  156.  you are connected via a DS psuedo-terminal, but not whether the originator at
  157.  the other end is a job or a session).  For anyone with only a few job streams
  158.  to modify, there is an easy workaround for Qedit.  Do setjcw rcrtmodel = 1 in
  159.  the remote sesion before running Qedit.
  160.  
  161.  Avoiding Nested Qedits.  You have a UDC "qed" to invoke Qedit, but the users
  162.  get confused and invoke it when they are already inside Qedit.  How do you
  163.  stop them from falling into this trap?  Modify your logon UDC to do setjcw
  164.  insideqedit = 0, then modify your qed UDC to bail out if insideqedit ever
  165.  equals 1 (as it will inside Qedit):
  166.       QED infostring
  167.       if insideqedit=0 then
  168.          run qedit.pub.robelle;parm=4;info="!infostring"
  169.       else
  170.          display You are already in Qedit!
  171.       endif
  172.       ***
  173.  
  174.  
  175.                     VESOFT and ROBELLE: the "/%" Connection
  176.                  by Michael Hensley, VESOFT Technical Support
  177.  
  178.  One of the most fundamental (and under-utilized) connections between MPEX and
  179.  Qedit/Suprtool is the "MPEXHOOK" facility.  MPEX hook allows you to:
  180.  
  181.  *  Enter virtually ANY MPEX command, such as %ALTFILE, within Qedit!
  182.       :run qedit.pub.vesoft; lib=p
  183.       /%listf myfile,access
  184.              (This MPEX command shows who is accessing the file "myfile")
  185.       /%altfile myfile; flimit=eof*1.5
  186.              (Make the file %50 bigger if you just got an "Error:full")
  187.       /%print @.source; out=*lp
  188.              (Print all of the files in the group "source")
  189.       /%$cobolii myfile.source,=.prog
  190.              (Submit a job to compile "myfile.source")
  191.  
  192.  *  REDO (with or without changes) any of the last 1000+ commands you have
  193.  entered in your current Qedit or Suprtool session; additionally, you can keep
  194.  your "redo-stack" from one session to the next!  For example, in Qedit:
  195.       :run qedit.pub.vesoft; lib=p
  196.       /:run myprog; lib=g; parm=%1024; info="this and that"
  197.          (myprog runs, aborts; you fix and re-compile it)
  198.       /,,:run    <-- this will list all commands you've entered that
  199.                      start with ":run"
  200.       /,.:run    <-- this will DO the LAST command starting with ":run"
  201.       /,:run     <-- this will REDO the LAST ":run" and let you make
  202.                      changes to it
  203.  
  204.  This provides you with a kind of "instant function keys" that let you
  205.  instantly re-execute the last /:cobol, /:prep, /:run, /t, etc.  you've typed.
  206.  
  207.  In Suprtool, suppose you enter the following:
  208.        :run suprtool.pub.vesoft; lib=p
  209.        >BASE...
  210.        >GET...
  211.        >EXTRACT...
  212.        >OUTPUT...
  213.        >IF...
  214.        >XEQ...
  215.  As you know, the XEQ resets all of the commands (except BASE).  Suppose you
  216.  change your mind and want to redo all of the above, but with a different IF?
  217.  No problem!
  218.  
  219.        >,,     <-- LISTREDO to find the command numbers
  220.        >,.2/4  <-- DO commands 2/4 (GET..., EXTRACT..., OUTPUT...)
  221.                       Notice that you can DO/REDO a RANGE of commands!
  222.        >,5     <-- REDO 5 (the IF), making your changes
  223.        >XEQ
  224.  Voila!  (We haven't room here to discuss VEMODIFY on the REDO command,
  225.  increasing the size of your REDO stack, keeping your REDO stack from one
  226.  session to the next, etc; please see the MPEX Reference Manual or on-line
  227.  HELP system for complete details.)
  228.  
  229.  *  If you are using an MPEXHOOKed version of Qedit and Suprtool, and you have
  230.  SM capability, you can NEW and KEEP files (in Qedit) across account
  231.  boundaries; same for >OUTPUT in Suprtool!
  232.  
  233.  *  If you are using the new ACDs (Access Control Definitions) of MPE
  234.  V-Delta-4, and an MPEXHOOKed version of Qedit, ACDs will be preserved when
  235.  you do a TEXT/KEEP (they are normally lost).
  236.  
  237.  How do you "HOOK" Qedit and Suprtool?  Well, if Qedit is installed on your
  238.  system, VESOFT "hooks" it for you automatically when you install or upgrade
  239.  MPEX.  From then on, if you :RUN QEDIT.PUB.VESOFT;LIB=P instead of :RUN
  240.  QEDIT.PUB.ROBELLE (note that the LIB=P is required), you will be using the
  241.  "MPEXHOOKed" version of Qedit!
  242.  
  243.  What about Suprtool?  If you have STREAMX, just:
  244.     RUN HOOKPROG.PUB.VESOFT; INFO="SUPRTOOL.PUB.ROBELLE"
  245.  and, from then on, :RUN SUPRTOOL.PUB.VESOFT; LIB=P.  You may want to change
  246.  your UDCs for Qedit and Suprtool to run the HOOKed versions.
  247.  
  248.  
  249.                   Quick Reference Guide to MPE XL Intrinsics
  250.  
  251.  CATOPEN.  Surgical - must have VM (Veterinary Manager) capability to execute
  252.          this call.
  253.  CATREAD.  Gives specified feline the ability to read in the given language.
  254.  CAUSEBREAK.  Initiate a random system failure.
  255.  CLEANUSL.  Short for CLEAN USER/SYSTEM LAVATORY.  Need LM (Lavatory Manager)
  256.          capability to execute this call.
  257.  CLOCK.  Reset the Greenwich Atomic clock.
  258.  CLOSELOG.  Not used anymore.  Predecessor to the clothes line when clothes
  259.          were hung over a log to dry by the fire.
  260.  CTRANSLATE.  Convert novels from the current native language to a
  261.          user-specified language or dialect.
  262.  DATELINE.  Cause the international date line to be moved by the specified
  263.          amount.
  264.  DEBUG.  Only used in projects of more than one person.  Common usage would be
  265.          `Which of you idiots just introduced DE BUG in my code!'
  266.  FATHER.  (Verb)  Must be over 18 to use this call.  (See also FPOINT).
  267.  FCHECK.  Presents the bill.
  268.  FMTCALENDAR.  Produces a glossy 8" x 10" wall calendar with pictures of
  269.          gorgeous men or women, depending on the gender of your logon name.
  270.          Nationality of these gorgeous people will depend on the current
  271.          setting of the LANG environment variable.
  272.  FLOCK.  Specify sheep paddock number.  Only valid for country sites.  See
  273.          also FATHER.
  274.  FPOINT.  See FATHER.
  275.  FREADBACKWARD.  A dyslexic favorite.
  276.  FREADLABEL.  Returns your shirt size.
  277.  FRELATE.  See FATHER.
  278.  FSPACE.  Like Wow Man!
  279.  FUNLOCK. Speaks for itself.
  280.  GETORIGIN. Relate theories of evolution.  Currently only supports LAMARK and
  281.          DARWIN modes.
  282.  JOBINFO.  Lists attributes of your current job, including your level of
  283.          incompetence, people who are after your job, and a list of people who
  284.          perform the same job much better than you do.
  285.  KILL. An underused way of dealing with other members of the current
  286.          programming team.  Often used in conjunction with JOBINFO.
  287.  MYCOMMAND.  Used to gain exclusive access to any command to stop other people
  288.          from using it.
  289.  PAUSE.  Ask MPE to give you one minute of silence--default is ON.
  290.  QUIT.  See JOBINFO.
  291.  TERMINATE.  See KILL.
  292.  WHO.  See FATHER.
  293.  
  294.  
  295.               Improving MPE XL Performance by Suspending Programs
  296.                     by Carolyn Hayes of The Wholesale Club
  297.  
  298.  This past February our Classic HP 3000 Series 70 machines were rolled out of
  299.  the computer room in favor of the new RISC architecture 925 and 950 systems.
  300.  
  301.  The HP 3000 950 is our main production system.  With 200 on-line users on
  302.  this single machine, we experienced performance problems from day one.  At
  303.  night, without the on-line users, the systems flew.  The throughput was
  304.  amazing.  During the day, response times were terrible and users complained.
  305.  No batch jobs run on this system during the day.
  306.  
  307.  HP's performance specialists examined our system, and came up with a list of
  308.  suggestions.  One in particular, suspending frequently run programs, turned
  309.  our system around.
  310.  
  311.  Programs can only suspend if they are created by a father process that can
  312.  handle creating and activating son processes.  Qedit from Robelle, and SELECT
  313.  (a menu system from Robelle that is free when you purchase one of their
  314.  products) can suspend programs.  MPEX and the SECURITY/3000 menu system from
  315.  VESOFT can as well.
  316.  
  317.  Suspending programs call the ACTIVATE intrinsic to reactivate the father
  318.  rather than the TERMINATE intrinsic to exit the program.  While the father
  319.  has control, the suspended program remains loaded, a dormant process on the
  320.  system.  When the father reactivates it, it comes up immediately, avoiding
  321.  the costly overhead of the loader.  Databases can be left open, and the data
  322.  stack is just as it was left.
  323.  
  324.  We use VESOFT's SECURITY/3000 menu system, so our on-line programs were
  325.  executed as son processes.  We are a TRANSACT shop, using the FASTRAN
  326.  compiler from Performance Software Group, but the steps we took to suspend
  327.  our programs will work with any language.
  328.  
  329.  In our case, we selectively suspend programs based on an INFO string passed
  330.  to the program.  While some menus may run a program many times a day, others
  331.  may run the same program rarely.  There is no benefit to suspending a program
  332.  unless it is run multiple times from a session.
  333.  
  334.  The program must determine whether it is a son process.  This is done by
  335.  calling the FATHER intrinsic.  If the condition code returned is zero, then
  336.  we can suspend the program by reactivating the father.  The program must have
  337.  PH (Process Handling) capability to call the FATHER intrinsic.
  338.  
  339.  We determine whether the program will suspend before the main logic, in the
  340.  initialization routines, where the databases are opened, variables
  341.  initialized, etc.  This logic need not be repeated when the program is
  342.  reactivated.  We add an additional level to repeat the main logic until the
  343.  program terminates.
  344.  
  345.  If the program suspends, this loop never terminates, since the program
  346.  reactivates the father rather than terminates.  This main logic routine is
  347.  re-entered instead.  The program is only terminated externally, by killing
  348.  the program, or by terminating the program's father.
  349.  
  350.  We leave our databases open when the program suspends, which saves the
  351.  overhead of the DBOPENs.  It works best to close the forms file and reopen it
  352.  when the program is reactivated.  We tried using the VTURNOFF intrinsic from
  353.  within VPLUS and leaving the forms file open, but were having some problems
  354.  with the keyboard staying locked when the line-mode father process is
  355.  reactivated.
  356.  
  357.  For a program to suspend, it must call the ACTIVATE intrinsic where it would
  358.  normally exit.  ACTIVATE has two parameters, the Pin and the Allow parameter.
  359.  To reactivate the father, the Pin must be zero.  The Allow parameter must be
  360.  one, indicating that this process expects to be activated by its father.
  361.  
  362.  The father process then takes control.  When another RUN is issued against
  363.  the suspend program, the father will activate it rather than create a new
  364.  process.  The program comes up immediately, just as though it were never
  365.  left.
  366.  
  367.  The only price to pay with program suspension is a hefty jump in the number
  368.  of activate processes.  We went from around 800 processes to nearly 1200,
  369.  with about ten programs suspending.  Two of these programs account for nearly
  370.  three hundred processes.  We have been told not to exceed 1300 processes on
  371.  MPE XL Version 1.2.
  372.  
  373.  When the user exits the father process (in our case, when he signs off), all
  374.  the son processes are killed by MPE XL.  To allow our menu-secured users the
  375.  ability to kill these suspended programs (so that the database can be freed,
  376.  for example) without signing off, we created a Program Termination menu,
  377.  which will terminate a selected program, or all programs that could possibly
  378.  be suspended (via a list of Kill commands).  This is rarely needed, but nice
  379.  to have around.
  380.  
  381.  We have been most aware of the benefit of program suspension after a system
  382.  failure.  All the suspended processes are lost and our system's performance
  383.  is horrendous while programs are being loaded for the first time.
  384.  
  385.  Suspending these few programs was the most important thing we did to improve
  386.  performance on our MPE XL system, and its effect was dramatic.  The system
  387.  seemed twice as fast.  The Loader overhead on MPE XL must be enormous for
  388.  this change to have made our system performance improve so dramatically.
  389.  While performance is now tolerable, it is still not lightning fast, and we
  390.  are looking forward to our upgrade to the HP 3000 955.  The benefits of
  391.  program suspension will still be there, though, and we will be getting more
  392.  processing power for our money by using it.
  393.  
  394.  
  395.                                  About Robelle
  396.  
  397.  Users Groups.  Bob Green will be speaking at the ORERUG meeting on August
  398.  5th.
  399.  
  400.  
  401.             Robelle Products:  Problems, Solutions, and Suggestions
  402.  
  403.  
  404.  Suprtool  Version 3.1.1
  405.  
  406.  Documentation Error: SET EOFREAD is not ON by default.  Page 92 of the
  407.  Suprtool 3.1 User Manual states that the default for SET EOFREAD is ON.  In
  408.  fact, it is OFF.  The corrected entry reads as follows:
  409.     When you specify the GET command, Suprtool determines how many records
  410.     to read from your dataset.  By default, Suprtool calls DBINFO to obtain
  411.     the number of entries in the dataset.  Suprtool reads the dataset until
  412.     this many entries have been read.  If you are adding and deleting
  413.     records while Suprtool is reading, some records can be missed.
  414.  
  415.     Turning Set Eofread On forces Suprtool to read to the physical end of
  416.     the dataset.  For hashed master datasets, turning Set Eofread On will
  417.     have little performance impact, unless the dataset is nearly empty.
  418.     For detail datasets, turning Set Eofread On will significantly slow
  419.     Suprtool down.  Even with Set Eofread On, there is no guarantee that
  420.     Suprtool will find new entries that were being added as Suprtool read
  421.     your dataset, but it should find all others.
  422.  In addition, the warning message which is produced when records are added to
  423.  the dataset is misleading.  The warning reads "Suprtool ignored some new
  424.  dataset entries."  This leads you to believe that it is only the newest
  425.  entries that were skipped.  In fact, it is likely that these new entries were
  426.  read and that older entries were skipped.  Using SET EOFREAD ON will help
  427.  eliminate the potential of missing records, at the expense of longer run
  428.  times.
  429.  
  430.  An Interesting Story.  Why does the following Suprtool operation "hang" for a
  431.  full minute before printing anything out on the screen? (When the equivalent
  432.  FCOPY task starts printing records immediately.)
  433.   :listf slowfile,2
  434.   FILENAME  ------------LOGICAL RECORD-----------  ----SPACE----
  435.               SIZE  TYP        EOF      LIMIT R/B  SECTORS X MX
  436.  
  437.   SLOWFILE      1W  FB       10000      10000   1    10001  8  8
  438.  
  439.   :run suprtool.pub.robelle
  440.   >in slowfile;out *;xeq
  441.  Suprtool does multi-record no-buffered reads, gulping down over 12000 words
  442.  of data at a time.  Because the record size is one word, the very first FREAD
  443.  gets the whole file!  It takes about a minute on a Micro 3000 to read ten
  444.  thousand sectors to fill up Suprtool's buffer.
  445.  
  446.  
  447.  DBAUDIT  Version 1.9
  448.  
  449.  DSSERVER Program.  If you see the program DSSERVER.NET.SYS in your DBAUDIT
  450.  reports, you should be aware that this is a remote DS or NS user who is using
  451.  your database through HP's remote database access.  DBAUDIT will show you the
  452.  DS psuedo-terminal number as the Logon Device, with the User name of the
  453.  REMOTE HELLO, but we can't tell you what remote program is actually modifying
  454.  your database.
  455. *c1950a200b5g2P*p-50Y
  456.  
  457.     Fortune Cookie of the Month.
  458.     Q:  Is sloppiness in speech caused by ignorance or apathy?
  459.     A:  I don't know and I don't care.           [William Safire]
  460.