Re: cursor ills
Re: cursor ills
- Subject: Re: cursor ills
- From: "M. Uli Kusterer" <email@hidden>
- Date: Fri, 3 Oct 2003 00:47:50 +0200
At 17:43 Uhr -0400 02.10.2003, robert l clair wrote:
Whoops. I forgot the golden rule. Never mention religion
in the same post in which you hope to get technical information.
#include "TheatricalSigh.h"
I try and avoid arguing with true believers, but several points:
Sorry, I'm in a bad mood today. Lots of things went wrong, broke
etc. Just skip over any insults I may drop by accident.
Hogging the CPU and not responding to events are not the same thing.
Point taken. In cooperative multi-tasking they were the same, which
is why I tend to throw them in the same bag. Mea culpa.
It is rather the point of _pre-emptive_ multi-tasking that it prevents
you from hogging the CPU. (Am I accidently going to start an extensive
discussion on defective scheduling algorithms :-) ? )
It'd definitely be fun, but Kernel programming isn't really my
favorite topic. I'd offer long discussions about parser design,
though. ;-)
I was reporting on the experiences of a number of "normal" users (mostly
artists and musicians). It wasn't my application they were complaining about.
And inflicting pain on your users/customers is a rather questionable way
of "enforcing" "good" design.
I disagree with your assessment. Any app that doesn't respond to
events shows the spinning pizza of death. That's a nice sign to show
users they can't work with an app right now. Since an app may always
be busy for a moment, Apple built in a delay so it doesn't happen
right away. That avoids most of the false positives. Those apps that
still show the pizza are usually the ones ported in a hodgepodge kind
of way, and can pretty easily be fixed, if their developers just sat
down and took the time, or the owners just paid a capable hand to do
so.
And aside from a brief and extremely unpleasant experience with
windows98 I have never worked on a single-tasked OS.
No System 6? God, I suddenly feel very old...
> In the good old MultiFinder days, Apple tried by asking nicely with
their cooperative multitasking. That didn't work, so now they just
force you to do the right thing by otherwise forcing the beach ball
> upon you.
At the risk of offending various long time Mac people on the list: I don't
know nor do I care to know anything about pre OS X macs.
Nor do you need to. But if you insist on writing applications that
are simply busy (which is exactly what pre-OS-X *apps* used to do),
you have to live with the fact that Apple will show an indicator of
this fact to your users.
The problem with this (and various other B&D approaches to software
and life) is that unfortunately in the real world one size does not
fit all.
I agree, though the case you're illustrating isn't one of them.
Consider a drawing/paint program.
For a large design the screen redraw may become slow. But the
appearance of the screen is pretty much the most important thing
here. While I'm sure you can contrive a case, in fact there is
very little you useful you can do (other than quit) until the screen
redraws, whether or not you are spinning the event loop. Artists in
general do not like to draw blindfolded even if it is theoretically possible.
Artists also do not like to wait ages for a line they're drawing to
show up on the screen. Instead of patching it to appear responsive,
one could speed up the drawing code. There are hundreds of ways to
speed up graphics performance:
If drawing tools are too slow with full redrawing, one can use a
transparent overlay window to avoid having to redraw what's behind
the shape, one can draw an outline of the shape on slower Macs, or
one can buffer the shapes behind and in front of the one being
changed in an NSImage to do faster redraws. Photoshop splits up each
image into a series of boxes and only redraws the boxes intersecting
with items that have actually changed.
If it's a 3D drawing application, rendering will always take long,
which means one could just spin off another thread and put up a
progress bar, and let the user go on with another document if she
wishes.
PS - I *did* mention that there is an API that actually lets you
torn off the spinning beach ball in an application. Finding it only
requires a multi-file search of some header files, so I thought I'd
save myself the hassle of looking it up just for a hypothetical
discussion.
--
Cheers,
M. Uli Kusterer
------------------------------------------------------------
"The Witnesses of TeachText are everywhere..."
http://www.zathras.de
_______________________________________________
cocoa-dev mailing list | email@hidden
Help/Unsubscribe/Archives:
http://www.lists.apple.com/mailman/listinfo/cocoa-dev
Do not post admin requests to the list. They will be ignored.