trouble with CVS and a request for votes
Charles Hallenbeck
chuckh at mhonline.net
Sat Sep 29 18:34:29 EDT 2001
Hi Kirk -
No question about it, the DOS environment is a piece of cake compared to
the Linux environment. I am not at all unhappy with the way speakup
handles things right now, and I have also learned a few work arounds that
make life easier.
Even in a single process system like DOS, the timing problem is not easy.
The longer you wait to allow the screen to react to the keystroke, the
more sluggish the speech; but the faster you make it, the more errors you
get. Then there is the situation where the user is connected via a modem
program to a remote system, and the timing gets totally out of control.
And those problems are on simple systems.
I mostly wanted to emphasize the distinction between cursor tracking,
which as far as I know speakup has always done flawlessly, and speaking
what the cursor travels over, which is an entirely separate problem.
When I work in pico to edit a text document, I usually do my traveling
with the review cursor instead of the true cursor, and when I find
something I want to fix or change, I use the pico search function to bring
the true cursor to the point of interest. I have no problem living with
the current state of affairs. There are so many other things that speakup
offers that I have no hesitation at all in opting for 1.0.
BTW - Did you know that the very first release of the landmark data base
program "d base" was called "d base II?" There never was a "D Base 1."
Ashton Tate was convinced that people would have more confidence in a
product with a "II" after it.
Thanks for all the great work on a fine product.
Chuck
On 29 Sep 2001, Kirk Reiser wrote:
> Hi Chuck and all: Well let's talk a tad about the difficulty of
> automatic speaking of cursor movement. In dos and windows the screen
> review program only has external access to the data as in interrupt
> hooks or an os api. At first glance you would expect that if you have
> total control at the kernel level you would be laughing, right?
> Wrong. The kernel is absolutely not a sequential device as in you get
> the key, you track the key, the screen handles the key, you say the
> key. Everything is handled through a series of interrupts which does
> very fast rudimentary handling of the event and then schedules on a
> bottom-half queue. Okay, so what is a bottom-half queue. It is a
> routine which runs after the interrupt has happened by a timer. It
> keeps close attention to how much time is is using and reschedules if
> the jobs are not all handled. At the same time all of the standard
> processing is also going on as normal. As you can see we have already
> induced asynchrony in the process. This also happens with our
> output. So to cut to the chase, when identify the keystroke we don't
> necessarily have any idea to when the exact time that keys event is/was
> handled by the output routines. So you track the cursor say what is
> on the screen at that point and woops, the screen hasn't even got
> close to making that change. You just did the wrong thing at
> absolutely the right time, wrong time, well which was it? So, maybe
> we want to be smart about it and set our own timer. Okay, when? How
> do we know whether we're saying the correct event or not?
>
> I do not believe this is an insermountable problem. I know however it
> will take more examination of the system as a whole and I've already
> spent extensive time on it. The truth of it is I don't know myself
> the best way to handle it. So if you don't know, you put it aside and
> work on the myriad other things which need to be done and come back to
> the problem later. Meantime you hope you gain a better understanding
> on a clear way to handle the problem.
>
> If someone thinks they can jump in and do a better job of it than me,
> please don't hesitate to step up and fix it right. Until I have a lot
> of other things finished it has moved way down on the priority list.
> It tracks perfectly. It speaks correctly some of the time, and that's
> all it will do for now.
>
> BTW Chuck, it works worse under emacs than under pico or any other
> editor because emacs has an anoying habbit of bouncing the cursor all
> over the place whenever it crosses a tab-stop position. When I'm
> editing I almost always have speech output turned off with ins-enter.
> It tracks perfectly then and I don't really care whether it speaks
> every char or line. I am very familiar with where the review keys are
> and I use them when I want feedback.
>
> Kirk
>
>
Visit me at http://www.mhonline.net/~chuckh
The Moon is Waxing Gibbous (94% of Full)
More information about the Speakup
mailing list