			Typist v3.0 Typing Tutor
			------------------------


Introduction
------------
Here is yet another reworking of the Typist typing tutor program, this
one in Java.

I have thrashed about with this program several times now.  I first
rewrote it in C/Curses, then in C++/Curses, and now, finally, I've
done it with a complete GUI front-end.

Because I have rewritten this same thing over and over, I can now
tupe jusy finr, so ironically, have little need for the finished item.


Delivered zip files
-------------------
The package runs on anything with a Java runtime that supports AWT.
The primary development system was Linux, but that should be largely
immaterial if the promises of Java are fulfilled.

In the spirit of platform-portability, Typist 3.0 comes delivered not
as a tar file but as a zip file.  Zip is standard on Linux, and
available for just about all other UNIX's it seems, so hopefully this
will not prove too much of an annoyance.

The following files form the core part of the distribution.  Here, N.N
represents the release (for example, 3.0):

    o typist-N_N_src.zip - these are the source files, in Java, the
      Makefile, and an example HTML file to launch the program as an
      applet.

The following additional files may be present in a distribution:

    o typist-N_N_bin.zip - a set of pre-built class files, and a built
      Typist30.html documentation file.


Installing binaries
-------------------
Just unzip, set your class path if necessary, and using Typist.class,
run either the application version or the applet version (within an
applet-aware browser).  And off you go.  That's the joy of Java.  

Full instructions for running Typist are in the file Typist30.html. 
To get started quickly, here's a list of the important files:

    o Typist30.html - the main 'User's Guide' for the program.  It's
      built by the HelpHTML class from data in the HelpText class, so
      it's a good idea to build this first for further information, if
      it didn't arrive in the download.  The Makefile target for it
      is 'doc'.
    o Typist.class - the main() method for this class is the one that
      implements the overall application.  Many of the other classes have
      main() methods too; these are generally test code for the classes
      they are in.  The init() method for Typist.class is also the code
      that runs the program as an applet.  Note that the applet form is
      nothing more than a single pushbutton that starts the complete
      application in a separate set of frames; this is necessary because
      the restrictions of the main in-browser applet window don't allow
      the full GUI to function.
    o TypistApplet.html - example HTML file that invokes Typist.class as
      an applet.


Building the source
-------------------
To build the programs from the source code, first unzip the file
typist-N_N_src.zip.  If you have make, try that on the supplied
Makefile.  If not, try 'javac *.java'.  Be prepared to wait if you
have a modest system; a full build on my 486 machine takes around
half an hour.


Some Notes About Java Runtimes
------------------------------
Typist 3.0 was developed on the 1.0.2 JDK running on Linux, and uses
the 1.0 Java event model.  The following notes apply to the the
various Java runtimes so far tried:

    o JDK 1.0.2 on Linux - the program mostly works fine, but on
      occasions it does show a tendency to lock up FVWM from time to
      time.  This could be down to lack of memory - the test system
      has only 8Mb of RAM.  On the other hand, it may be something
      to do with FVWM or with the way the Java runtime acts with
      FVWM, since I have done some brief tests with TWM and not seen
      the same problems.

    o JDK 1.1.3 on SCO UnixWare 7 - no window manager problems on a 64Mb
      system.  However, the Caps Lock and Num Lock keys do behave
      oddly - instead of acting as modifiers, each in fact seems to
      pass a key-down event into the runtime, rendering them useless
      for their assigned functions.

    o Netscape Navigator Gold 3.04 - no window manager problems and Caps
      Lock and Num Lock work fine.  The only odd behaviour is with the
      Exercise Window, where the graphical X cursor needs to be over
      one of the two labels at the top of the window (the exercise
      name or description) for some reason; putting the cursor in one
      of the text areas results in just a beep when a key is struck.

    o Netscape Communicator 4.04 - the input focus is not a problem,
      and Caps Lock works fine.  However, the Num Lock problem is
      back.  Shrug.
 
Embark on a voyage of discovery with your own favourite Java runtimes,
and see what you get.


That's it.  Have fun!

Simon Baldwin, simonb@sco.com
