bug-gtypist
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [bug-gtypist] Crash in Long QWERTY course in lesson R5


From: Andreas From
Subject: Re: [bug-gtypist] Crash in Long QWERTY course in lesson R5
Date: Mon, 19 Aug 2013 10:58:27 -0400
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130803 Thunderbird/17.0.8

Hi guys,

just wanted to chip in on the discussion since I started it this time. :-)

See my comment below.

Thanks,
Andreas


On 13-08-18 09:00 AM, Tim Marston wrote:
Hi,

On Sat, Aug 17, 2013 at 06:51:54PM +0200, Felix Natter wrote:
  b) How to get back to where they were.  E.g.:

         To get back to where you were in GNU Typist, type:
         $ gtypist -l <LAST-LABEL>
This is more difficult. What we really need for a general solution is
something like this:

   $ gtypist x.typ -l <LABEL>

What about several users? When doing 'man gtypist' you typically would want to have a user option as well if you'd have some 'compete' mode or whatever where you could play against others that you know or that are in your family. When doing this on a shared computer resource I presume you'd have to separate into user accounts. Though even here in many families, you'd have one account that all members use -- especially if having children this would be a pretty common case I think.

In the compete mode you would typically be able to trigger a mail (or push for fb notif, etc) having a link to the download page for others to join in and then somehow connect to some private or public compete stream... :-D

I think that the last part here might be beyond what you envision with the tool, but it would be growing the gtypist community and at the same time spreading typing skills to normal computer users that would normally never search for typing skills tutors/tools.

Can't we do this, though?  We can just use cl_start_label (the script
specified on the command line or NULL, from gtypist.c) and __last_label
(the last visited label, from script.c).

The only problem with this idea is that the banner is only set once, at
the start of each lesson.  So, for example, the start of the Q lesson
looks like this:

   
#------------------------------------------------------------------------------
   # Lesson Q1
   
#------------------------------------------------------------------------------
   *:Q1
   *:_Q_S_Q1
   B:                             Lesson Q1
*:_Q_R_L0
   T:          Welcome to lesson Q1.
    :
    :In the Q series of lessons, we will be learning to touch-type on the 
standard
    :keyboard.  I will introduce you to each letter on the keyboard, one at a 
time.
    :By the time you have completed this series, you will be able to type the 
entire
    :alphabet, the numbers, and most of the punctuation keys by touch.
    :
   [snip]

So, starting at Q1 or _Q_S_Q1 would show the banner and then move on to
the lesson.  But starting at _Q_R_L0, _Q_R_L1 (not shown above),
_Q_R_L2, etc., *doesn't* show the banner.

One way to work around this that comes to mind would be to change the
tools/typcombine awk-script so that it inserts a repeat of the last
banner command after every label (or consecutive set of labels).  So,
it'd look like this:

   
#------------------------------------------------------------------------------
   # Lesson Q1
   
#------------------------------------------------------------------------------
   *:Q1
   *:_Q_S_Q1
   B:                             Lesson Q1
*:_Q_R_L0
   B:                             Lesson Q1
   T:          Welcome to lesson Q1.
    :
    :In the Q series of lessons, we will be learning to touch-type on the 
standard
    :keyboard.  I will introduce you to each letter on the keyboard, one at a 
time.
    :By the time you have completed this series, you will be able to type the 
entire
    :alphabet, the numbers, and most of the punctuation keys by touch.
    :
   [snip]

And the banner would also be inserted again after _Q_R_L1, _Q_R_L2,
etc.  This would only fix it for gtypist.typ, though.

Another solution that comes to mind is that we could scan the script
for banners (much like we do for labels) so that we always know which
banner occurs before which label.  Then display that.  This would work
for all scripts, obviously.

The problem with both these solutions is that they won't work for all
scripts.  For example:

   B:Welcome
   T:This script sets the banner to "Welcome" for this message and then
    :"Test script" for the remainder of the script.  If we used either
    :of the solutions above, though, and started at LABEL1 or LABEL2, it
    :would say "Welcome" during those drills, since it is the last
    :banner before these labels.
   G:MENU
*:LABEL1
   D:test lesson 1
   X:
*:LABEL2
   D:test lesson 2
   X:
*:MENU
   B:Test script
   M: "Select one of the following"
    :LABEL1 "Do test lesson 1"
    :LABEL2 "Do test lesson 2"

I bet there are other situations where it would break, as well (the
banner command also clears the screen, for example).





reply via email to

[Prev in Thread] Current Thread [Next in Thread]