[comp.sys.mac] Animated watch cursor.

radford@calgary.UUCP (01/26/87)

In article <607@runx.OZ>, clubmac@runx.OZ (Sydney University Macintosh Society) writes:

> 3) Something silly about Finder 5.4b1 is that it has an animated watchcursor,
>    just like Servant. Is there any need for such a thing?

If this is what I think it is, it's an AWFUL idea. The original backup
utility for the Hyperdrive had a silly watch cursor with a hand that turned.
They got rid of it, thank god. The only use of the thing seems to be to 
demonstrate how clever the programmer is.

Think about it. The watch cursor is there when the user has to WAIT. What
is he going to do? Personally, I lean back and think about what I'm going
to do next, what to make for dinner, or whatever. Motion on the screen
automatically grabs my attention. An animated watch cursor says: IMPORTANT,
LOOK: Ha Ha, you've got to wait. 

    Radford Neal

vito@trwspf.UUCP (01/28/87)

In article <765@vaxb.calgary.UUCP> radford@calgary.UUCP (Radford Neal) writes:
>In article <607@runx.OZ>, clubmac@runx.OZ (Sydney University Macintosh Society) writes:
>> 3) Something silly about Finder 5.4b1 is that it has an animated watchcursor,
>>    just like Servant. Is there any need for such a thing?
>If this is what I think it is, it's an AWFUL idea. The original backup
>utility for the Hyperdrive had a silly watch cursor with a hand that turned.
>They got rid of it, thank god. The only use of the thing seems to be to 
>demonstrate how clever the programmer is.

Actually, I think it is a good idea.  I lot of times a program hangs (due
to various reasons), it happens with when the watch cursor is up.  If the
program has really hung, you can't really tell because you are suppose to
wait.  Only after an unreasonable amount of time you begin to think, "Hey
there is something wrong here."  I have had the Finder hang (rarely) when
doing certain operations and I would rather know that when it tells me
to wait, that it is actually doing something and not hanging.

Of course, I would feel differently if the Mac were multitasking...



-- 
Herb Barad - TRW Data Systems Lab
ARPA:	barad@brand.usc.edu	or	vito%trwspf.uucp@brand.usc.edu
USENET:	...!{brand|trwrb}!trwspf!vito

lamy@ai.toronto.edu (01/28/87)

My mother thought the machine was dead the first time the watch
came up.

jfl

bc@mit-amt.UUCP (01/28/87)

> In article <765@vaxb.calgary.UUCP> radford@calgary.UUCP (Radford Neal) writes:
> >In article <607@runx.OZ>, clubmac@runx.OZ (Sydney University Macintosh Society) writes:
> >> 3) Something silly about Finder 5.4b1 is that it has an animated watchcursor,
> >>    just like Servant. Is there any need for such a thing?
> >If this is what I think it is, it's an AWFUL idea. The original backup
> >utility for the Hyperdrive had a silly watch cursor with a hand that turned.
> >They got rid of it, thank god. The only use of the thing seems to be to 
> >demonstrate how clever the programmer is.

The need for the moving watch cursor is as follows:
While the hands are turning, you are assured that the machine is
"doing something" and not just "stuck in a loop".

The watch hands are updated as macroscopic progress is made, for
example, every time the Finder copies a chunk of disk. They are not
driven by an interrupt.

I'm also sure that Apple would avoid the gnarly bugs that surfaced in
the BCS-distributed moving watch hands, which were independent of
application. My source indicates that the watches are just different
cursors, so the entire process is merely keeping track of which thing
to SETCURSOR to next.

A less-cutesy, more usable idea would have been to replace the menu
bar with a "progress" bargraph, or have a countdown timer. Implication
being that this would tell you how long before you got your machine
back. This is, er, non-trivial, tho, so I'm not surprised it doesn't
exist.

I'm sure a more formal, less cute indicator would sit better with the
serious folks. But look at it for what it gives you, not what form it
takes...,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.bc

PS. I personally recommend against using alpha and beta tests of
system software, especially when they don't really give you any "new"
features, the old versions are bug-free and the new are not, and the
bugs might destroy a LOT of data. 

radford@calgary.UUCP (01/28/87)

In article <176@trwspf.UUCP>, vito@trwspf.UUCP (Herb Barad) writes:

> >> Something silly about Finder 5.4b1 is that it has an animated watchcursor,
> >> just like Servant. Is there any need for such a thing?

> >If this is what I think it is, it's an AWFUL idea...

> Actually, I think it is a good idea.  I lot of times a program hangs (due
> to various reasons), it happens with when the watch cursor is up.  If the
> program has really hung, you can't really tell because you are suppose to
> wait.  

I presume these animated watch cursors are implemented by installing a
vertical retrace interrupt routine. If so, they aren't a very reliable
guide to whether the application as a whole is still operating. My guess
is that the watch cursor will keep turning as long as you can move the
mouse.

Do you really sit there looking at the animated watch cursor so you can
tell immediately if your application has crashed? If so, you need more
reliable software.

     Radford Neal

oster@lapis.berkeley.edu.UUCP (01/29/87)

The animated watch hands spin because they are spun by a separate task
(So there, all you Amiga owners.) As a result, the watch hands often
continue to spin even when the program has crashed.

Menu Clock, the clock on the menu bar, only updates the time when an
application  gives it permission to by calling SystemTask(). If the time
colon stops blinking for a long time, then you have a hint that the system
is hung that is a little clearer for me than the watch hand.

Since the watch hand runs as a separate task, it is eating CPU time at the
very time when all the CPU is needed by the main task to get the job done
faster.  Now if it were really a countdown timer that let you know how
long the job would take, that would be another matter, but as it stands it
is a bad idea for two reasons:
1.) it attracts attention to the screen when there really isn't any reason
for the machine to get our attention.
2.) it eats processing power when processing power is scarce.

I think these override its cuteness value.

--- David Phillip Oster		-- "We live in a Global Village."
Arpa: oster@lapis.berkeley.edu  --
Uucp: ucbvax!ucblapis!oster     -- "You are Number Six."

mmt@dciem.UUCP (Martin Taylor) (01/30/87)

>> 3) Something silly about Finder 5.4b1 is that it has an animated watchcursor,
>>    just like Servant. Is there any need for such a thing?
>
>If this is what I think it is, it's an AWFUL idea. The original backup
>utility for the Hyperdrive had a silly watch cursor with a hand that turned.
>They got rid of it, thank god. The only use of the thing seems to be to 
>demonstrate how clever the programmer is.
>
>Think about it. The watch cursor is there when the user has to WAIT. What
>is he going to do? Personally, I lean back and think about what I'm going
>to do next, what to make for dinner, or whatever. Motion on the screen
>automatically grabs my attention. An animated watch cursor says: IMPORTANT,
>LOOK: Ha Ha, you've got to wait. 
>
>    Radford Neal
 Think about it.  The watch cursor is there when the user has to WAIT.  But
for how long?  After 2 minutes, has the machine crashed?  Should I try to
abort or reboot? How about 5 minutes?  At least the spinning watch tells
me that something is still working, and presumably my operation is still
being performed.  That's a good thing to know.
-- 

Martin Taylor
{allegra,linus,ihnp4,floyd,ubc-vision}!utzoo!dciem!mmt
{uw-beaver,qucis,watmath}!utcsri!dciem!mmt

woody@tybalt.caltech.edu.UUCP (01/30/87)

As I recall, the Xerox 1108 InterLisp-D workstation uses a sandglass for it's
"watch cursor."  The sandglass contained sand, and as the routine tieing up
the processor progressed, the sand in the sandglass worked its way from the
top to the bottom.  Incredibly cute; sufficient that I was thinking of using
it to show progress in a computation loop in a stats package I'm writing.
- William Woody                          Mac! > ][n && /|\
  woody@tybalt.caltech.edu
  woody@juliet.caltech.edu

dennisg@fritz.UUCP (01/30/87)

<...some discussion about the animated watch cursor in new Finder...>

In article <176@trwspf.UUCP> vito@trwspf.UUCP (Herb Barad) writes:
>Actually, I think it is a good idea.  I lot of times a program hangs (due
>to various reasons), it happens with when the watch cursor is up.  If the
>program has really hung, you can't really tell because you are suppose to
>wait.  Only after an unreasonable amount of time you begin to think, "Hey
>there is something wrong here."  I have had the Finder hang (rarely) when
>doing certain operations and I would rather know that when it tells me
>to wait, that it is actually doing something and not hanging.

Using the animated watch cursor as an "I am alive" indicator sounds good if
it's implemented "right".

If the spinning hands are hooked into something like the video retrace
interrupt, the hands might keep on spinning even though the Finder is belly-up.
In such a case, the animation is just ginger-bread... and not worth the space
on my system disk.

<disclaimer:  I don't have this version of the Finder yet, and I sure don't
know how it was implemented!>

naftoli@aecom.UUCP (02/01/87)

In article <777@vaxb.calgary.UUCP>, radford@calgary.UUCP (Radford Neal) writes:
> I presume these animated watch cursors are implemented by installing a
> vertical retrace interrupt routine. If so, they aren't a very reliable
> guide to whether the application as a whole is still operating. My guess
> is that the watch cursor will keep turning as long as you can move the
> mouse.

I don't think it is implemented using vertical retrace since it spins
irregularly.  If it was implemented using vertical retrace, I would
think it would spin at regular intervals.
-- 
Robert N. Berlinger
Systems Analyst, Scientific Computing Center		Compuserve: 73047,741
Albert Einstein College of Medicine			Easylink:   62956067
UUCP: ...{philabs,cucard,pegasus,rocky2}!aecom!naftoli	GEnie:	    R.Berlinger

roger@felix.UUCP (02/02/87)

I prefer a busy indicator that at least gives me some idea of what's 
going on.  In MPW, the busy indicator is a "spinning beach ball."  It
actually provides the user with more information than the simple fact
that the computer is off doing something.  For example, when the 
Pascal compiler is running, the ball spins one direction for syntax
checking and meta-code generation, and the other way for final code
generation.

In this case, the program has a couple of calls it can use to tell
the ball to rotate one direction or the other -- there is nothing in
the vertical retrace loop accomplishing this.


Roger

6111231@PUCC.BITNET (02/02/87)

>I don't think it is implemented using vertical retrace since it spins
>irregularly.  If it was implemented using vertical retrace, I would
>think it would spin at regular intervals.
>--
>Robert N. Berlinger
>Systems Analyst, Scientific Computing Center            Compuserve: 73047,741
>Albert Einstein College of Medicine                     Easylink:   62956067
>UUCP: ...{philabs,cucard,pegasus,rocky2}!aecom!naftoli  GEnie:      R.Berlinger
Is this like the spinning disk in Fedit+? I have the impression that Fedit's
disk is linked to the progress it is making on the current task. I wouldn't
mind something like that in the finder, in fact I would prefer the disk
to spinning watch hands on aesthetic grounds :-). By the way: does anyone
know how to use the Fragmentation index in Fedit+? By that I mean, say,
if it goes beyond "x" the volume is dangerously fragmented.
 
Peter Wisnovsky
Virtual Address:         UUCP: ...ihnp4!psuvax1!6111231@pucc.bitnet

dgold@apple.UUCP (02/03/87)

In article <777@vaxb.calgary.UUCP> radford@calgary.UUCP (Radford Neal) writes:
>I presume these animated watch cursors are implemented by installing a
>vertical retrace interrupt routine. If so, they aren't a very reliable
>guide to whether the application as a whole is still operating. My guess
>is that the watch cursor will keep turning as long as you can move the
>mouse.
Finder 5.4 will not turn the hands on the animated watch cursor unless it is
actually making progress doing something.  I believe the cursor animation is
performed by repeated calls to SetCursor, not by a VBL task.


-- 
David Goldsmith
Apple Computer, Inc.
MacApp Group

AppleLink: GOLDSMITH1
UUCP:  {nsc,dual,sun,voder,ucbvax!mtxinu}!apple!dgold
CSNET: dgold@apple.CSNET, dgold%apple@CSNET-RELAY

wagner@bnrmtv.UUCP (02/03/87)

> Since the watch hand runs as a separate task, it is eating CPU time at the
> very time when all the CPU is needed by the main task to get the job done
> faster.  

Although I would generally agree with this it is not always true.
Frequently the system must wait for IO...an instance when there is time
to spin the hands or do some other processing.  

Mark Wagner @ BNR

joel@gould9.UUCP (02/04/87)

In article <436@apple.UUCP>, dgold@apple.UUCP (David Goldsmith) writes:
> In article <777@vaxb.calgary.UUCP> radford@calgary.UUCP (Radford Neal) writes:
> Finder 5.4 will not turn the hands on the animated watch cursor unless it is
> actually making progress doing something.  I believe the cursor animation is
> performed by repeated calls to SetCursor, not by a VBL task.

More on the spinning watch cursor in Finder 5.4.

The Finder has 8 'CURS' resources, numbered 256-263. #256
is the familiar 9:00 one.  Other times seem to be
8:37, 8:45, 8:52, 9:07, 9:15, 9:22, 9:30 (or is it 8:30?)

Finder 5.4 also has a single 'acur' resource, which consists of the
following 16-bit integers:
    8
    256 257 258 259 260 261 262 263

Does this mean a future QuickDraw trap to handle 'acur' resources?

I think I like the MPW beachball better; it only requires 4 CURS
resources (0, 45, 90, 135 degrees, since a 180 degree rotation is the
same as 0) and is a lot more visible.  I don't know how they do it,
since there are no 'CURS' or 'acur' resources in MPW 1.0.1.

Maybe if CURS resources went to 64x64 I'd like the spinning
watch better.
-- 
	Joel West			     MCI Mail: 282-8879
	Western Software Technology, POB 2733, Vista, CA  92083
	{cbosgd, ihnp4, pyramid, sdcsvax, ucla-cs} !gould9!joel
	joel%gould9.uucp@NOSC.ARPA

sara@mcvax.cwi.nl (SARA) (02/05/87)

I have written (and posted) the very first running watch
for Macintosh (back in 1985) so I'll explain how I did it...

Implementing an animated cursor using some predefined
cursors and doing a setcursor of these cursors will only
work for certain cursor shapes like wheels etc, but NOT
for a watch cursor that has both hands running. That
would require a huge number of cursors...

Now, to make the hands running you could just use QuickDraw
for drawing the hands in a small bitmap, the Cursor data.
Performing a SetCursor will display   the cursor with the
updated hands. This way an application can make the hands
of a cursor spin. So, here no vertical retrace tasks are
used here. This only works WITHIN an application, the
application itself must periodically update the cursor.
(This was implemented in my TeX Preview program, and
before that in a tiny demo program that did nothing but
displaying 'Wait' in the Menu Bar and animating the cursor.)
Now Servant and the new Finder use this method.

To make the hands spin over all applications you need to
do more. The only way to get control over the cursor when
another application is running is by using a vertical
retrace task, that is installed one way or the other.
A natural way to install a VR task is using an INIT that
installs this task at system startup.

However, Vertical retrace tasks are severely limited, for
example they cannot even use QuickDraw, as they are not
allowed to use any routine that (indirectly) uses the
memory manager. First of all the task must determine
whether the cursor IS a watch. If it IS it must periodically
update the hands to make them spin. The problem is to find
out how to do this without using QuickDraw   8-).

I have posted the lastest version of my Watch Installer
to the moderator of mod.mac.binaries. It installs an
INIT in the system that will animate the hands of the
watch cursor using the vertical retrace method.

Whether ot not you like to have an animated watch on the
screen is not only a matter of taste. It depends on the
speed of the rotating hands whether it really draws your
attention or not. The Finder doen't display a watch cursor
very often, and in most cases not very long either. Other
applications, like Kermit when down loading a file, display
watch cursors at great length. *I* happen to like gently
spinning hands, most people don't even notice it until
they are told the hands are spinning...

Rick Jansen
SARA, Amsterdam Universities

Bitnet: Rick@hasara5
UUCP: mcvax!rick@hasara5.bitnet