Subject: bug#7291: 24.0.50; `non-essential' is incomprehensible

From: "Drew Adams" <[email-masked]>
Date: Sat, 30 Oct 2010 09:16:16 -0700

> > >> > The variable is badly named.  It should be using a 
> > >> > positive form, like allow-whatever.
> > >> 
> > >> `allow-whatever' does [NOT?] strike me as being any better.
> > >> Any other suggestion?
> > >
> > > suppress-non-essential-prompts?
> > 
> > allow-user-interaction ? 
> 
> "User interaction" is too general, IMO.  Almost as general as the
> original name, which is one of the reasons for this bug report.

Stefan wants it to be general.  He says it is not necessarily
about Tramp or prompting or even interupting the user.
It is about "disturbing" the user.

---

One last attempt to get past the mauvaise foi...

This var is a `PLEASE DO NOT DISTURB' sign for the user's hotel
room.

Nothing prevents firemen from entering.  Maids know that their 
services are not important enough to ignore a do-not-disturb |
no-molestar | ne-pas-deranger | nao-perturbe | non-disturbare 
request.  This knowledge is built into their code.

Firemen do not even notice the sign.  Maids actively keep an
eye out for it - that's part of their job.

The user is a tempermental, often drunk&drugged musician who
has a manager.  The manager code hangs the sign on the door
when appropriate.  The maid code recognizes the sign and is
polite enough not to enter to perform routine housekeeping.

Icomplete is a musician manager.  Tramp is a hotel maid.

(defvar do-not-disturb nil
  "Non-nil is a sign to avoid disturbing the user.
Code that performs a relatively unimportant action that might
disturb the user can check this variable and choose not to act
when it is non-nil.

Code that wants to make other code aware that it might not be
good to disturb the user now unnecessarily can bind this to
non-nil.

Example: Icomplete binds this to non-nil when collecting file
names as completion candidates.  Tramp checks the value before
attempting to read a password for a remote file name: if non-nil
then it does no password prompting.")

---

Next week we will discuss room service.  This code looks for the
`do-not-disturb' sign, but it also checks the particular non-nil
value for the advisory level.  If it sees `this-means-YOU-too'
or a list value that includes item `room-service' then it does
not even think about knocking, let alone entering.

The week after next we will study Homeland Security Advisory System
threat levels: `severe', `high', `significant', `general', and `low'.