X  Myths  131  has  a  special  abbreviation  for  MIT-MAGIC-COOKIE-1?  And  what  the  hell  kind  of  a  name  for  a  network  protocol  is  that?  Why  is  it  so  important  that  it’s  the  default  protocol  name?  Obviously  it  is  Allah’s  will  that  I  throw  the  Unix  box  out  the  win-  dow.  I  submit  to  the  will  of  Allah.  Anybody  who  has  ever  used  X  knows  that  Chapman’s  error  was  trying  to  use  xauth  in  the  first  place.  He  should  have  known  better.  (Blame  the  vic-  tim,  not  the  program.)  From:  Olin  Shivers  shivers@bronto.soar.cs.cmu.edu  Date:  Wed,  30  Jan  91  23:49:46  EST  To:  ian@ai.mit.edu  Cc:  zvona@gang-of-four.stanford.edu,  UNIX-HATERS  Subject:  MIT-MAGIC-COOKIE-1  Hereabouts  at  CMU,  I  don’t  know  anyone  that  uses  xauth.  I  know  several  people  who  have  stared  at  it  long  and  hard.  I  know  several  people  who  are  fairly  wizardly  X  hackers.  For  example,  the  guy  that  posted  the  program  showing  how  to  capture  keystrokes  from  an  X  server  (so  you  can,  for  example,  watch  him  type  in  his  password)  is  a  grad  student  here.  None  of  these  guys  uses  xauth.  They  just  live  dan-  gerously,  or  sort  of  nervously  toggle  the  xhost  authentication  when  they  need  to  crank  up  an  X  network  connection.  When  I  think  of  the  time  that  I  have  invested  trying  to  understand  and  use  these  systems,  I  conclude  that  they  are  really  a  sort  of  cognitive  black  hole.  A  cycle  sink  a  malignant  entity  that  lurks  around,  wait-  ing  to  entrap  the  unwary.  I  can’t  really  get  a  mental  picture  of  the  sort  of  people  who  design  these  kinds  of  systems.  What  bizarre  pathways  do  their  minds  wan-  der?  The  closest  I  can  get  is  an  image  of  an  order-seeking  system  that  is  swamped  by  injected  noise—some  mental  patients  exhibit  that  kind  of  behavior.  They  try  so  hard  to  be  coherent,  rational,  but  in  the  end  the  complexity  of  the  noise  overwhelms  them.  And  out  pops  gib-  berish,  or  frenzied  thrashing,  or  xauth.  It’s  really  sobering  to  think  we  live  in  a  society  that  allows  the  people  who  design  systems  like  xauth  to  vote,  drive  cars,  own  firearms,  and  reproduce.  
132  The  X-Windows  Disaster  Myth:  X  Is  “Customizable”  …And  so  is  a  molten  blob  of  pig  iron.  But  it’s  getting  better  at  least  now  you  don’t  have  to  use  your  bare  hands.  Hewlett-Packard’s  Visual  User  Environment  is  so  cutting-edge  that  it  even  has  an  icon  you  can  click  on  to  bring  up  the  resource  manager:  it  pops  up  a  vi  on  your  .Xdefaults  file!  Quite  a  labor-saving  contraption,  as  long  as  you’re  omniscient  enough  to  understand  X  defaults  and  archaic  enough  to  use  vi.  The  following  message  describes  the  awesome  flexibility  and  unbounded  freedom  of  expression  that  X  defaults  fail  to  provide.  Date:  Fri,  22  Feb  91  08:17:14  -0800  From:  beldar@mips.com  (Gardner  Cohen)  I  guess  josh  just  sent  you  mail  about  .Xdefaults.  I’m  interested  in  the  answer  as  well.  How  do  X  programs  handle  defaults?  Do  they  all  roll  their  own?  If  they’re  Xt,  they  follow  some  semblance  of  standards,  and  you  can  walk  the  widget  tree  of  a  running  application  to  find  out  what  there  is  to  modify.  If  they’re  not  Xt,  they  can  do  any  damn  thing  they  want.  They  can  XGetDefault,  which  doesn’t  look  at  any  class  names  and  doesn’t  notice  command  line  -xrm  things.  Figuring  out  where  a  particular  resource  value  is  for  a  running  appli-  cation  is  much  fun,  as  resource  can  come  from  any  of  the  following  (there  is  a  specified  order  for  this,  which  has  changed  from  R2  to  R3  to  R4):  •  .Xdefaults  (only  if  they  didn’t  xrdb  something)  •  Command  line  -xrm  ’thing.resource:  value’  •  xrdb,  which  the  user  runs  in  .xsession  or  .xinitrc  this  program  runs  cpp  on  the  supplied  filename  argument,  so  any  old  junk  may  have  been  #included  from  another  planet.  Oh,  and  it  #defines  COLOR  and  a  few  other  things  as  appropriate,  so  you  better  know  what  kind  of  display  it’s  running  on.  •  Filename,  pointed  to  by  XENVIRONMENT  •  .Xdefaults-hostname  •  Filename  that’s  the  class  name  of  the  application  (usually  com-  pletely  nonintuitively  generated:  XParty  for  xparty,  Mwm  for  mwm,  XRn  for  xrn,  etc.)  in  the  directory  /usr/lib/X11/app-defaults  (or  the  
 
             
            






































































































































































































































































































































































