These demos run on the client side. This has the disadvantage that client has to be specially configured, and needs to have Skandha4 locally available, but the advantage that it runs at full local speed, loading the client rather than the server.
This configuration is appropriate for local use around the lab, but of course is not suitable for use by users on the Web at large.
How does the client know when and how to invoke Skandha4?
The fundamental sequence of events is:
application/x-skandha4 xS4meaning that any file ending in ".xS4" will be assigned type
application/x-skandha4
.
The server passes this classification to the client
along with the file.
application/x-skandha4; /usr/local/bin/x-skandha4 %swhich results in Netscape copying the given file to a local file with a name like M174789.xS4 and then executing
/usr/local/bin/x-skandha4 M174789.xS4
skandha4-named-pipe
in the client's home directory, if one does not
already exist, and then starts up a copy of
/usr/local/bin/skandha4 on that named pipe (if
one is not already running), with stdin
set to the FIFO, and stdout
and stderr
set to /dev/null
. Finally, it copies the
given file into the FIFO, and exits.
(It does not
kill the Skandha4 server before exiting. This is
a feature, not a bug.)
stdin
, blithely unaware
of any of this.
The demos are in /usr/local/shared_html/skandha4-demos
,
which is world-writable. The root demo document is
/usr/local/shared_html/skandha4-demos/skandha4-demos.html
.
To add a new demo, simply
<LI><a href="cool-demo.xS4">X-roll</a>to
/usr/local/shared_html/skandha4-demos/skandha4-demos.html
.
and then
/usr/local/shared_html/skandha4-demos/cool-demo.xS4
file containing the desired lisp code. Make sure it is world-readable.