[comp.lang.c] To beep or not to beep.

halam2@umn-d-ub.D.UMN.EDU (Haseen I. Alam) (06/12/90)

 Hi again,

 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 would
 like to know (if possible with pseudo examples) some other techniques.
 If you have one that is a little too exotic! (like making the screen 
 melt or modem lights flash) then simply e-mail them to me.

 Email and posts are equally preferable.  Thanks.

 Haseen.
-- 
 .--------------------------------------------------------------------.
 |  Haseen Ibne Alam                       Tel: (218)-728-2139        |
 |  email : halam1@ub.d.umn.edu      or    halam@cola.d.umn.edu       |
 `--------------------------------------------------------------------'

karl@haddock.ima.isc.com (Karl Heuer) (06/13/90)

In article <3538@umn-d-ub.D.UMN.EDU> halam2@umn-d-ub.D.UMN.EDU (Haseen I. Alam) writes:
>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?

Why do you believe you've lost the user's attention in the first place?  What
kind of program are we talking about?

>I would like to know some other techniques.

If you're using (a modern version of) curses(), there is a pair of routines
beep() and flash() that are commonly used to indicate an error.  The polite
protocol is to allow the user to specify which one is desired:
	void error() { if (user_prefers_flash) flash(); else beep(); }
(If the hardware is not capable of both flash and beep, then the two routines
are equivalent.)

Karl W. Z. Heuer (karl@ima.ima.isc.com or harvard!ima!karl), The Walking Lint

exspes@gdr.bath.ac.uk (P E Smee) (06/13/90)

In article <3538@umn-d-ub.D.UMN.EDU> halam2@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@bristol.ac.uk - ..!uunet!ukc!bsmail!p.smee - Tel +44 272 303132

peter@ficc.ferranti.com (Peter da Silva) (06/14/90)

This is silly, and certainly not a C issue.

Some people like the auditory feedback. Others don't. It's like keyclick:
personally it drives me up the wall, but some people need it. On the other
hand I find a telephone that doesn't give me real DTMF feedback intolerable.
Put the bell in, and let people configure it/use a visual bell/turn it off.
I have one terminal that I use on occasion for which ^G is the transmit
screen command!

Sheesh. I think it tastes great *and* is less filling.
-- 
Peter da Silva.   `-_-'
+1 713 274 5180.   'U`
<peter@ficc.ferranti.com>

jamiller@hpcupt1.HP.COM (Jim Miller) (06/15/90)

>VM/CMS is a big offender, beeps for EVERYTHING.  I finally nobbled my
>3270 emulation by patching out the bell subroutine.  Sheer heaven.
>
>-- 
>Paul Smee, Computing Service, University of Bristol, Bristol BS8 1UD, UK
> P.Smee@bristol.ac.uk - ..!uunet!ukc!bsmail!p.smee - Tel +44 272 303132
>----------


I turned my keyboard over, took a screwdriver and a pair of wirecutters,
 . . .  and no more beeping!

      jim - oh you meant a SOFTWARE patch? - miller

	 My opinions are mine, not my employers,
	    (until I hear differently :-)

dik@cwi.nl (Dik T. Winter) (06/15/90)

In article <1990Jun13.092453.5677@gdr.bath.ac.uk> P.Smee@bristol.ac.uk (Paul Smee) writes:
 > 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.
I agree and disagree.  I would not like to work in a room full of beeping
terminals.  But actually, if it is a room full of data entry terminals the
users (people doing data entry) are not looking at the screen at all, only
at the data they are about to enter.  In this kind of environment it *is*
useful (making entry errors known), but no problem because it does not
occur often (data enters are pretty good at their job).
 > 
 > VM/CMS is a big offender, beeps for EVERYTHING.  I finally nobbled my
 > 3270 emulation by patching out the bell subroutine.  Sheer heaven.
True enough.
 >                    The machine running the 3270 emulation had no volume
 > knob.
You could always cut the wire.
--
dik t. winter, cwi, amsterdam, nederland
dik@cwi.nl