Nova-Class Pro Java Applets
Main Site
<back | Home | FAQ | Help/Doc | Affiliates | Purchase | Log-In | fwd>






demo full
demo basic

demo one
demo two

Doc & Help



User Log-In



Gutenberg Applet Documentation

DOCUMENTATION: GUTENBERG APPLET's gutenberg.class applet
Version 02.20.2000.F Final Release
Copyright 2000 by

FREE for Private and Non-Profit Users
The FREE version displays a brief hook notice to
at start-up -- otherwise it functions exactly as the keyed version,
with all parameters and commands the same.

version of this applet, always quickly available at
The PURCHASE version has no start-up or other notices; and it starts
and runs faster. You are of course welcome to use the free version
for testing and try-outs.

SUPPORT is available *ONLY* for the purchased key version. Support
is primarily for set-up and install assistance; we do *not* write
or troubleshoot your scripts!

Support Address:
You MUST include your USER ID in *all* correspondence.


==========================================================='s gutenberg.class applet is an easy-to-use, script-
based typer. You create a simple script, read by the applet, which
it then types to the screen. The applet offers complete control over
text color, font, size, style, and positioning; supports a background
image for striking layouts; has sound support, including up to five
script-programmable sound effects; and a host of other features, as
you'll see in browsing the materials below.

Although considerable flexibility is built into this small, fast 
applet, you need *not* use more than the most basic implementation to
get great use out of the applet.

Setting just a few very simple parameters and writing a script that
is little more than a page of plain text will get you rolling!

For those so inclined, however, a bit of ingenuity will produce 
truly eye-catching (and ear-ringing) presentations! Take the time 
to study the command set. It isn't hard to learn at all, and it's
well worth the effort.

The gutenberg.class comes in only one version. If you wish to use
the applet free of charge -- personal and non-profit sites only --
no "key" is needed; but you will see a brief, discrete notice that
indicates the provenance of the applet.

COMMERCIAL and FOR-PROFIT SITES are REQUIRED by terms of copyright
to use the purchase version of this applet. (If you don't want to
see the notice, you can, of course, also purchase a

The purchase version is available directly and immediately at all times
off the NOVA section of at:


The gutenberg.class uses a full but simple set of "script commands"
to give you the maximum possible control over the appearance of
your text on the screen, placement of images, triggering of sounds,
and a number of other elements of applet behavior.

If you haven't used applets that are "programmed" in this manner, 
not to worry! It's very, very easy to do and gives you vastly more
and better control with far less effort than standard parameters. It
does take experimenting and getting used to, though, so get in there
and *work the applet* until you get the hang of it.

(Note that some standard parameters are still required for this
applet. See the section covering them, below.)

The best way to get started with this is to read through this doc-
umentation first, then start modifying one of the scripts that we
include in this kit -- gradually changing and experimenting with
the script commands. 

Do note that, for ease in remembering them, many of the commands
are at least similar to HTML -- but they are *NOT* exactly the
same. This is *not* HTML! It is a customized command interpreter
that is specific only to this applet.

THE SCRIPT COMMAND FOIBLES - What You Should and Should Not Do
Most of this is common sense that goes with any scripting, but we
provide these notes for those new to script-based applets like this,
as review for those who haven't used one in a while, and for script
troubleshooting purposes. If you're a veteran programmer, scan them
quickly. If you're a newcomer, please read them with care.

There are two basic types of commands: those that take arguments,
and those that do not.

This is what a commands with no argument looks like:


This is what commands *with* arguments look like:

<PAUSE 100>

All script commands must be uppercase.

All script commands must begin with < and end with >

For script commands that take arguments, only a single space
should separate the command name from its arguments. Take
care not to omit the space, or the command will be ignored.
Beware the temptation to use equal signs (=) in commands. The
equal sign is not used in any of the commands.

When specifying colors, use hex format #FFFFFF and take special
care not to omit the pound sign (#). Be certain to use all six
hex digits. The hex format colors are the same as those used in
HTML tags.

Be very careful with script commands that take multiple arguments.
This applies only to advanced commands, such as those for drawing.
Use the commas, make sure you have no spaces between arguments.
Do not leave out any of the arguments required by the command.
Errors of this kind aren't filtered and may flake the applet.

For example:

This is good... <RECT 25,44,100,50> and will work.
This is bad bad bad... <RECT 25, 44, 100, 50> and will crash.

Each script command must be on its own line, with nothing before or
after it. You must *not* put more than one command per line, place
a command within a line of text, or combine commands.

Script commands are interpreted in the same sequence you insert
them into the script.

There is only one exception to this, the BGCOLOR command, which
will only be interpreted on the page following it, when the applet
space redraws.

Typically, the order of commands is not important, so long as 
they occur *before* what you are trying to change. For instance,
this will work...

line of text line of text line of text

and this will work the very same way...

line of text line of text line of text

Most commands are inherited. That means, if you change a FONTCOLOR,
it stays changed until you change it again. If you shut off the
sound with SOUNDOFF, it stays shut off until you turn it back on with 
SOUNDON. If you INDENT a line, all lines thereafter will be
indented by the same amount until you change INDENT back to zero,
or to some other amount.
Some commands, however, are not. These would include PAUSE,
others -- which, if you think about it, makes sense; since these
commands control one-time events or actions. 


Commands that are inherited don't magically reset themselves
to defaults when the applet returns to the beginning of the script!
Remember, it's always up to you to specifically tell the applet what
you want it to do when in the script. 

GENERAL RULES: Important Tips and Pointers on Scripting

Use *only* a plain text editor such as NotePad to edit. Do *not* use
a word processor!

Do not use tabs, indents, or other extraneous formatting characters
under any circumstances.

Blank lines *are* permitted in the script. It's an easy way to insert

End each line with a carriage return. (That is, Enter.) Avoid spaces
at the ends of lines and after commands.

The gutenberg.class does *not* auto-wrap. Adjust your script
accordingly, by laying out the text to fit horizontally across the
screen the way you want it.

The script *must* be saved as a text (.txt) file, and it *must* be
sent to your server in ASCII. The script filename *must* be in the
form: scriptname.txt -- but you can call it anything you wish.


No specific command is used for the text itself that is to be printed
by the applet.

Any line that does *not* begin with a left carrot < is text, and the
applet will print it to the screen just as it appears in the script.
The gutenberg.class does *not* autowrap, so you will need to arrange
your text accordingly.

A blank line will be printed as such. Beware placement of blank
lines! If the first line on a new page starts lower than you think
it should, you probably have a blank line in that position.

Remember that tabs, indents, etc., are not allowed. Spaces or tabs
at the beginnings of text lines are ignored, so use the INDENT
command (below) if you need to change the horizontal (left-right)
starting position of a line.

NOTE: PAUSE is an important command. The applet does *not*
automatically pause at any point -- so you have total control over
the timing. If you want the page to halt and wait, say, at the end
of a page, you *must* insert a PAUSE -- otherwise the applet just
keeps on rolling.

PAUSE is (approximately) in milliseconds, so, 1000 = 1 second. PAUSE
will cause the applet to stop and wait for the time you specify.
PAUSE can be any positive integer 1-30000 (recommended).

A PAUSE can be inserted anywhere in the script, and is interpreted
on the fly; that is, as soon as the script gets to the PAUSE it will
stop and wait. After the specified period, the applet will continue.

This sets the pause at the end of each line. The default is 500, and
the value is in milliseconds. You can change the LINEPAUSE on the
fly anywhere in the script, or set it early in the script, so it
effectively sets the end-of-line LINEPAUSE throughout.

Recommended values are in the 500-1000 range, but it's up to you,
really, depending on how much time you want to give the reader to view
a line, or if you're shooting for some certain effect. If you want
the applet to move along fast as possible, set LINEPAUSE to 0.

Don't confuse this with PAUSE!

<SPEED 25>
We recommend you leave the speed, as pre-set, at the default of 25;
so, normally, you can just leave this out.

However, it has its uses... especially if you wany to speed things up
temporarily for an ASCII art effect. The lower the number, the
faster the "typing" in the applet moves along.

This is (approximately) in milliseconds, so, 1000 = 1 second. Take
care with this. It tends to work best around 25 ms; but you can put
any speed in. (Most users probably won't want to modify this.)

IMPORTANT: Larger numbers mean slower speed, not faster.

Note that this parameter may cause irregular performance of applet
sounds, very much depending on the duration of the sounds, which is
one of the reasons we provide the SOUNDOFF / SOUNDON tags... with
which you can turn off / on all sound. Also, if you change the
speed, don't forget to reset it back when you want the applet
to return to normal speed!

TIP: The default speed of the applet is 25ms. If you put the SPEED
command as the first line in the script, you can change the applet
speed, overall. This is why there is no HTML parameter for this.

MOUSEOVERSPEED resets overall speed to this value -- but only when
the mouse is over the applet space. When the mouse is removed from
the applet space, the speed reverts to the default speed or whatever
value you may have set in the SPEED command.

IMPORTANT: This is *not* an absolute value, like SPEED is. Instead,
the MOUSEOVERSPEED value is *added* to the current speed default
or whatever you may have set in the SPEED command. If you use a
negative number (permitted), the value is *subtracted* from the 
current speed.

Normally, this would be used to slow the applet slightly when the
mouse is moved over it; but you may also wish to increase the speed
in some cases. If that's your intent, use a negative number -- it's
a useful effect.

MOUSEOVERSPEED is (approximately) in milliseconds so 1000 = 1 second.
The command is optional, of course, so you can just leave it out if
you don't want this effect.

Starts a fresh page.

In many cases, it's a good idea to set commands like BGCOLOR, IMAGE,
and others before beginning any text material, right at the beginning
of the script -- and then force a page feed with PAGE. This forces
the initial setups into the applet, and over-rides anything set in 
the parameters (see parameters section separately). It also assures
that everything is reset when the script loops back on itself.

For example:

Now begin the text for the script doo-dah
more script text doo-dah
and so on

This way, the first page the viewer would see woul use Image7, the
background would be red, text would be 24 pt. white, and the mouse
would be in dead (no mouse response) mode.

In general, you can use blank PAGE feeds like this anywhere in sibse-
quently in your script, too, as a convenient way to keep setups
orderly, though it really isn't strictly necessary.

This is how you do a comment within the script. The script will
simply ignore anything at all beginning with <! -- Very useful for
notes to yourself within the script so you can keep track of what 
you're doing.

<#Status bar text>
Anything that begins with <# will show in the status bar of the
browser. (See <#####> to clear the status bar.)

This command (make sure you use all five #'s) will clear the status
bar of the browser.

Sets the background color of the applet.


This command will not change the color of the background of the
*current* page -- only a subsequent page; therefore, you position the
command in your script anytime *before* the beginning of the page
whose background color you want to change or set.
To set the initial color of the very first starting page, you
should use the external parameter, BGcolor. See the section on the
parameters concerning this.

Standard hex colors, same as in HTML usage; sets or changes the color
of the text.

Font sizes are in the usual point standard, with a range of 6 to 32
recommended, usually in even numbers; odd numbers and larger point
sizes are possible, though with certain fonts and styles it may
necessitate some fudging with VFUDGE.

The gutenberg.class supports three fonts:


Remember that this is usual with applets -- they don't support very
many fonts -- so don't try using others.

The applet supports four font styles:


Before you ask, no, you cannot underline text.

<INDENT 100>
This will cause subsequent lines to be indented from the current left
margin. The value is in pixels, and it *can* be a negative number;
that is, causing the text to actually move to the left of the current
margin. Remember to reset it to 0 when you want to return to the
existing left margin settings.

Note that the initial LeftMargin is set with one of the few HTML
parameters for the applet -- so see the section on the parameters for
more about this.

This is the space in pixels between successive lines. The default
the applet automatically uses is 2 pixels. LINESPACING sets the
number of pixels (vertically) between the bottom of the lowest
descenders of the letters of one line to the top of the highest
ascenders of the next. Simply put, it adjusts how far apart the
lines are, vertically.

You can set LINESPACING at the very beginning of the script; and it
can also be changed any time throughout the script. LINESPACING is
usually easier to use than VFUDGE for this, since it is inherited.

This is a "fudge" command that lets you shift the applet Y (vertical)
reference position -- that is, where the next line will be typed. Any
positive or negative integer can be used -- and very often it's a
negative number that will be required (say, for over-typing effects.)

VFUDGE is not generally required otherwise, but if you switch between
large and very small fonts, the applet may need assistance to adjust
the line spacing exactly to your liking. Also, if you want to do
some interesting effects with ASCII art or over-typing, or if you
just want to insert space or shift a line up or down a little, it can
be quite useful. Like most fudge factors, it takes some fiddling --
so be prepared to do some fit-and-try to get it to behave for you.

Note that VFUDGE is *not* inherited, like LINESPACING is.

The IMAGE command calls the images you have loaded with the ImageX
parameter (see the section on parameters). For example:


would cause the image file that is loaded by the Image2 parameter
(pigswithzippers.gif in the example in the parameters below) to be
drawn to the applet space.


Normally, you will *NOT* make the images the same size as the applet
space height x width, since the image will be drawn *over* anything
that was printed or drawn to the screen previously.
Make your images as small as possible, and then position them
into the applet space with IMAGEXY where you want them to appear.
This gives you maximum flexibility and control over layout.
If you need to use an image that covers all or most of the
applet space, or if you want a smaller image to be used as a back-
ground, show the image with the first command on that page so that
everything else will be printed or drawn over that image.

The default for image drawing is to start the image in the upper left
corner. You can, however, use IMAGEXY to have an image draw start
in a different position. For example:

<IMAGEXY 20,50>

would cause the next image in the script to be drawn 20 pixels in from
the left of the applet edge, and 50 pixels down from the top edge.

Note that IMAGEXY is inherited, so to return to the default drawing
postion, you'd need to use <IMAGEXY 0,0>

Remember, in most cases, you'll probably want to use an IMAGEXY just
before each IMAGE X to position that image.

This will trigger the sound file loaded by parameter "Sound1" in the
param tags on your HTML page. See also SOUNDOFF / SOUNDON.

This will trigger the sound file loaded by parameter "Sound2" in the
param tags on your HTML page. See also SOUNDOFF / SOUNDON.

This will trigger the sound file loaded by parameter "Sound3" in the
param tags on your HTML page. See also SOUNDOFF / SOUNDON.

This will trigger the sound file loaded by parameter "Sound4" in the
param tags on your HTML page. See also SOUNDOFF / SOUNDON.

This will trigger the sound file loaded by parameter "Sound5" in the
param tags on your HTML page. See also SOUNDOFF / SOUNDON.

Disables all sounds. No spaces in <SOUNDOFF> tag!

Enables (or re-enables) all sounds. No spaces in <SOUNDON> tag!

Note: The parameter "Sound0" in the regular paramters on your HTML
page loads the file used for the typing sound that accompanies each
letter as it is printed to the screen.

Notes on JAVA sounds:

JAVA language does *not* handle sound files well, and provides
literally no internal control over them. For this reason, it's
important to keep sounds as short as possible for your usage.
You also don't want to crowd sounds too closely together in your
script, or sounds may be skipped.
Be certain to use only .au files properly formatted for JAVA
applets -- not all .au's are. Keep sound files small!

Sets the color of the next rectangle to be drawn.

Draws a rectangle with the upper left corner at X,Y that is W pixels
wide (across) and H pixels high (down).

Draws a *filled* rectangle with the upper left corner at X,Y that is
W pixels wide (across) and H pixels high (down).

NOTES on Rectangles:

You will want to set the color of a rectangle with RECTCOLOR prior to
drawing the rectangle with RECT or RECTF. It's usually a good idea
to set the color of each rectangle just before drawing it, just for
the sake of clear scripting. However,you can just set the RECTCOLOR
near the beginning of the script if all of your rectangles are to be
the same color; that is, the RECTCOLOR is inherited and will remain
as set until it is changed.


Bear in mind that the rectangle will be drawn immediately prior to the
*next* line of text when the applet sees RECT or RECTF in the script.
Thus, if you want to have text typed over a filled rectangle, place
the RECT or RECTF command prior to that line of text. Filled RECTF
rectangles will overwrite anything under them already on the screen.
Rectangles do *not* persist from page to page. If you need to
have a rectangle appear on successive pages, either build the rectangle
into your background image, or insert new RECT or RECTF commands as

This is the default mode of the applet. In this mode, the applet
will respond to mouse clicks by stopping and starting the printing
to the screen with each click of the mouse. Note that LINK is 
shut off in this mode.

<CLICKWAIT> *** See below on using with <LINKMODE>
IMPORTANT: CLICKWAIT is not inherited. The applet will revert 
cleanly to its prior mode as soon as the mouse is clicked.

Inserting this command in the script will cause the applet to stop
and wait for a mouse-click. All other modes are temporarily dis-
abled, and CLICKWAIT is *not* in any way inherited. After CLICKWAIT
sees the mouse-click it was waiting for, it will return the mode to
whichever state it was in previously (that is, CLICKMODE, DEADMODE,

You may want to put a brief PAUSE immediately before and after
a CLICKWAIT -- say, around PAUSE 500 -- to prevent the prior mode
from running interference with the CLICKWAIT... though usually this
is only a consideration when you want CLICKWAIT to revert to a prior

CAUTION: It is unwise to use CLICKWAIT at the very start of a script,
as this might, in some cases, stop the script cold. Let a line or
two print, usually, before using it.

In this mode, the applet is free-running, and will not respond to
mouse clicks.

<LINKMODE> *** See below on using with CLICKWAIT
In this mode, the applet will respond to the LINK and TARGET commands
when clicked with the mouse.

Note on modes: These can be changed on the fly, so you can have
various parts of your script behave differently in response to the
mouse. (Keep track of what mode you're in, of course, and check the
current mode if your LINK commands don't seem to be working.) The
mode commands do not take arguments -- just insert them as needed --
and they *are* inherited, so you may wish to set them initially,
early in your script.

Do not confuse LINKMODE with NOLINK!

USING CLICKWAIT and LINKMODE Together for a Wait-for-Click Link 
You can cause the applet to stop and wait for a click, trigger a 
link (especially useful with a TARGET _NEW that pops up a new
window) -- and then continue. The script would look like this:

Some text doo-dah doo-dah 
Some more text doo-dah
If you click now, a new window will open
More script text stuff here and
still more doo-dah

The applet would stop and wait for the click, pop the new window
when the mouse-click occurs, and immediatly continue with the text,
"More script test stuff here and" [etc.].

IMPORTANT: See the modes above. The LINKMODE command must be used
before the applet will react to LINK.

IMPORTANT: Do NOT use quote marks (") around link URL's, and, as
with any applet, always use the full, explicit path (as above)! Do
not use an equals (=) sign!

For example:


LINK commands may be inserted anywhere in the script sequence.
They are read in on the fly, just like other commands, and they
are also inherited. Whatever LINK is currently in effect, that's
where the applet will go when clicked -- unless and until you
change it.

It's perfectly acceptable to change the link during the progress
of a page, of course, but just keep track of what's going on when!

The default, or to shut off a link, is NOLINK (below).

This shuts off any LINK that is currently in effect. When your
visitor clicks on the applet space, nothing will happen. Note that
a NOLINK also sets the TARGET to null.

Do not confuse NOLINK with LINKMODE!

<TARGET _TOP> -- or -- <TARGET FrameName>
IMPORTANT: Do NOT use quote marks (") around the argument for this

The TARGET command works much the same way that this does in an HTML
HREF tag. You can TARGET either a browser window, or, if using a
framed layout, one of the frames in that layout.

If you wish to TARGET the browser window, the arguments are the
same as those in HTML, to wit:

_NEW - opens a new window
_BLANK - also a new window
_SELF - loads in the same frame
_TOP - opens in the same window

Browser targets *must* include the underscore!
Do NOT use an equals (=) sign!

For example:


If you are in a framed layout, use the exact NAME of the frame you
wish to TARGET -- again, no quote marks, no equals (=) sign.

For example, assuming the NAME of the frame is George:

<TARGET George>

NOTE: If using TARGET, note that a NOLINK sets TARGET to null; 
otherwise, it's inherited. It's not a bad idea to set TARGET every
time you set LINK, though not strictly necessary; but every time
you do a NOLINK you MUST respecify the TARGET.

NEWCOMERS: Do not confuse links and targets! A link is the actual
HTML page that you call -- a target (window or frame) is where you
want that page to appear.

The gutenberg.class is designed to have the script commands take over
as much control of the applet as possible, since this allows the 
applet itself to be quite small and also gives you the absolute
maximum control over the applet's behavior. However, for logistical
reasons, a number of applet set-ups are still set via regular HTML
parameters. Note that parameter names *are* case-sensitive, and so
are file names.

<APPLET CODE="gutenberg.class" WIDTH="300" HEIGHT="500">
The standard applet tag: It names the applet class file, and sets the
width and height of the applet space. You can set the applet
dimensions to whatever is suitable for your use. Required.

<PARAM NAME="Notice" VALUE="Applet by">
Required. This doesn't do anything -- it's there for copyright and
other legal reasons -- but it *must* be there, just as shown... 
otherwise the applet will give you a notice warning.

<PARAM NAME="KeyCode" VALUE="whatever_the_key_is">
For this applet, always quickly available at

If you have the FREE version, enter FREE in the VALUE. For example:

If you have the PRO version, enter your key in the VALUE. For example:

<PARAM NAME="Script" VALUE="whatever.txt">
This tells the applet what script file to use. You can call the 
script whatever you wish, but the extension must be .txt -- and do be
sure to send the script to your server in ASCII. This is required.
If the applet can't find the script file, it will report in green
typeface: "Could not get script..." over and over.

<PARAM NAME="LeftMargin" VALUE="10">
This sets how far, in pixels, from the left edge of the applet space
the typing of text will begin. The default is 0. The parameter is
optional. Leave it out if you don't need it.

<PARAM NAME="TopMargin" VALUE="15">
This sets how far, in pixels, from the top of the applet the typing
of text will begin. The default is 0. The parameter is optional.
Leave it out if you don't need it.

<PARAM NAME="BottomMargin" VALUE="250">
This sets the lowest point, in pixels, where printing in the applet
space will take place. The default is the actual height of the 
applet, as set in the <APPLET> tag height. The parameter is optional.
Leave it out if you don't need it.

<PARAM NAME="BGcolor" VALUE="#000066">
This is the starting background color of the applet. The default 
color is black. The parameter is optional; leave it out if you wish;
but you usually want to specify some starting color. Note that you
can change the background color from the script with the BGCOLOR

<PARAM NAME="ImageX" VALUE="imagename.gif"> (use .gif or .jpg images)
The applet will, technically, support up to 100 images -- though we
surely don't recommend you use that many in most cases, because the
bandwidth (download time) would likely skyrocket. However, if you're
using images with very small dimensions (icons, for instance) this
large capacity is extremely useful, since images are individually 
positionable within the applet space (see command IMAGEXY).

IMPORTANT: The first image parameter name must be Image0

IMPORTANT: ImageX names must be in numerical sequence, no skips

A typical set of ImageX parameter tags will look like this:

<PARAM NAME="Image0" VALUE="someimage.gif">
<PARAM NAME="Image1" VALUE="anotherimage.gif">
<PARAM NAME="Image2" VALUE="pigswithzippers.gif">
<PARAM NAME="Image3" VALUE="turkeybugs.gif">

From your script, you call images with the IMAGE command, which see.
For instance, <IMAGE 0> would call someimage.gif, above; <IMAGE 1>
would call anotherimage.gif, above; <IMAGE 2> would call the
pigswithzippers.gif image, above; and so on. You will use the
IMAGEXY command just before each <IMAGE X> to position that image.

Images normallly are *NOT* the full size of the applet space
height x width! Make your image files no larger than needed, then
position them in the applet space with the IMAGEXY command (see

<PARAM NAME="Sound0" VALUE = "">
This is different from the sounds below, so pay attention. This is
the sound that goes off with every letter typed to the screen. Use
the smallest, shortest sound possible for this (like the one we give
you with the kit). The parameter is optional. If you don't want 
sound with each letter typed to the screen, just leave out the 

<PARAM NAME="Sound1" VALUE = "">
The sound controlled by the <SOUND 1> command, see above. Optional.
Leave it out if you aren't using it.

<PARAM NAME="Sound2" VALUE = "">
The sound controlled by the <SOUND 2> command, see above. Optional.
Leave it out if you aren't using it.

<PARAM NAME="Sound3" VALUE = "">
The sound controlled by the <SOUND 3> command, see above. Optional.
Leave it out if you aren't using it.

<PARAM NAME="Sound4" VALUE = "">
The sound controlled by the <SOUND 4> command, see above. Optional.
Leave it out if you aren't using it.

<PARAM NAME="Sound5" VALUE = "">
The sound controlled by the <SOUND 5> command, see above. Optional.
Leave it out if you aren't using it.

The end of the applet tag set. Required.

End of Documentation

That's it,
That's all,
Go to it!

Best regards,

SUPPORT is available *ONLY* for the purchased key version. Support
is primarily for set-up and install assistance; we do *not* write
or troubleshoot your scripts!

Support Address:
You MUST include your USER ID in *all* correspondence.

For this applet, always quickly available at

The gutenberg.class applet is (c) 2000 by
All responsibility for use of the applet remains with the user.
Redistribution or resale of this applet is strictly forbidden.
Copyright 1995-2012 by
All Rights Reserved
Who do WE
Use for Hosting?

We judge hosts harshly. Uptime. Lightning-fast support. Servers that sing. And prices that please. Anything less, and you're history. Our clients won't accept anything but the best. Will you? From demanding music sites like DavidSosnowski to to dozens more, we use... Eleven2