			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_Nx
represents the release (for example, 3.0a):

    o typist-N_Nx_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_Nx_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_Nx_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.


Modifications history
---------------------
3.0a, 4th March 1999
		- Corrected the calculation of adjusted WPM.  The original
		  was far too harsh in subtracting one WPM for each error.
		  The correction is to only subtract one effective word
		  typed for each error.  This has one fifth the effect.

		- Corrected ExerciseGUI so that if it has not yet run any
		  exercises, attempting to restart the lesson will not
		  result in a Java null pointer error (non-fatal).

		- Moved the JVM hints from README into the HelpText class.

		- Moved to lazy conversion of HTML into online help in the
		  HelpGUI class.

That's it.  Have fun!

Simon Baldwin, simonb@sco.com
