To beep or not to beep.

P E Smee exspes at gdr.bath.ac.uk
Wed Jun 13 19:24:53 AEST 1990


In article <3538 at umn-d-ub.D.UMN.EDU> halam2 at umn-d-ub.D.UMN.EDU (Haseen I. Alam) writes:
> It seems that the question on how to beep has caused a lot of beeping
> lately.  Various methods were suggested along with there pros and cons.
> But my main interest is to get the users attention.  Is beeping a BAD
> practice to do this?  How else can I get the users attention?  

I'd say that whether beeping is a bad practice depends on context.  If
you absolutely HAVE to get the user's attention, then the system spec
should include a hardware spec (even if only at the level of 'must use
an XYZ terminal') which guarantees a way of making a noise.  Examples
where this is reasonable might be:  nuclear reactor control stations
(ring the bell if the reactor is about to meltdown); or aircraft
control systems (ring if the wing is about to fall off).

If it's just 'normal' programs, it's not your problem whether the user
is paying attention or not; if they want to pay attention, they will.
If they don't want to pay attention, they are in a better position than
you are to decide whether that's appropriate.  If your beeps are to
indicate something that requires non-emergency attention, skip it.
Just stop and hold the output with a prompt waiting for some input (CR)
to say 'I'm watching'.  Anyone who beeps for EVERY error ought to be
shot.

Data entry terminals are often beepers -- on data which does not pass
validation checks.  If you actually DO data entry, you are probably in
a room full of other people doing the same thing, and there is nothing
which will destroy concentration so much as being in a room full of
beeping terminals.

VM/CMS is a big offender, beeps for EVERYTHING.  I finally nobbled my
3270 emulation by patching out the bell subroutine.  Sheer heaven.
(Well, by comparison with beeping CMS, not by comparison with a real
O/S.)  On Unix, I just turn the bell down with the volume switch on my
VT200 emulator.  (To answer the inevitable, the 2 run on different
desktop hardware.  The machine running the 3270 emulation had no volume
knob.)  I would claim that if you have properly designed your output
(or screens) beeps should not be required; the user will spot things
that need noticed purely because of the way they are presented.

If you use termcap, and know the current terminal type, the termcap
attribute 'vb' will tell you what to send to flash the screen, if the
terminal supports that.  On the other hand, the user will only spot the
screen flash if they are watching, and if they are watching then you
don't need to get their attention, so why bother?

-- 
Paul Smee, Computing Service, University of Bristol, Bristol BS8 1UD, UK
 P.Smee at bristol.ac.uk - ..!uunet!ukc!bsmail!p.smee - Tel +44 272 303132



More information about the Comp.lang.c mailing list