\chapter*{}

\thispagestyle{empty}

Of course, there is no Underground---or Untergrund, as those German
new-age kids like to call the movement whose orders they
have sworn to follow.  The age we all remember---the cliff-green
turbocharged convertibles, cigarettes hanging loose in the corners of
our mouths, and those trigger-happy fingers always ready for the quick
hack---is long gone.

In retrospect, it all seems like a candy-colored dream, and it may
very well be---after all, there was never any proof that the
Untergrund ever existed, and even if it did, we can be sure the
obedient followers of the shadowy movement leaders have long burned
the papers, subjected the hard drives and diskettes to interminable
sessions of the junkyard magnet, and eradicated all shreds of
memory from the brains of those who might have talked through long
sessions of Tcl hacking to the sounds of Celine Dion records.

Yet there are those who still covet membership in that secret
cult---to gain access to its powerful lore, to usurp invidious and
powerful superiors, or simply to impress their girlfriends.  For those
lost souls of the modern age, I have a few words of advice:

It's not a question of ``membership''---silly merchandise and
ridiculous certificates.  If you are truly meant to be part of the
Untergrund, you will know.  \emph{The Untergrund will find you.}

Alas, probably not.

\medskip

\hfill April, 2003

\chapter{Overview}\label{sec:intro}

The Scheme Untergrund Networking Package (\textit{SUnet}, for short)
is a collection of applications and libraries for Internet hacking in
Scheme.  It runs under Scsh, the Scheme shell.  SUnet includes the
following components:
%   
\begin{description}
\item[The SUnet Web server]
  This is a highly configurable HTTP 1.0 server in Scheme.
  The server is accompanied some libraries which may also
  be used separately:
  \begin{itemize}
  \item URI and URL parsers and unparsers
  \item a library for writing CGI scripts in Scheme
  \item server extensions for interfacing to CGI scripts
  \item server extensions for uploading Scheme code
  \item simple structured HTML output library
  \end{itemize}
\item[The SUnet ftp server]
  This is a complete anonymous ftp server in Scheme.
\item[ftp client library] This library allows you to access ftp
  servers programmatically.
\item[netrc library] This library parses authentication information
  contained in \verb|~/.netrc|.
\item[SMTP client library] This library allows you to forge mail from
  the comfort of your own Scheme process.
\item[POP3 client library]
  This library allows you to access your POP3 mailbox from inside scsh.
\item[RFC822 header library] This library parses email-style headers.
\item[Daytime and Time protocol client libraries]
  These libraries lets you find out what time it is without paying for a
  Rolex.
\item[DNS client library] This is a complete, multithreaded DNS
  library.
\item[An \texttt{ls} clone] This library displays Unix-style directory
  listings without running \texttt{ls}.
\end{description}


\section{Obtaining the system}

The SUnet code is available
\urlhd{http://www.scsh.net/sunet/}{here}{from
  \url{http://www.scsh.net/sunet/}}.  To run the code, you need
version 0.6.4 or later of \urlhd{http://www.scsh.net/}{scsh}{scsh from
  \url{http://www.scsh.net/}}.

\section{How to use the packages}

Untar the SUnet distribution somewhere.  Fire up scsh and load the
SUnet \texttt{packages.scm} file into the configuration package.
After that, all structures defined by SUnet are available:
%
\begin{alltt}
atari-2600[72] scsh
Welcome to scsh 0.6.4 (...)
Type ,? for help.
> ,config ,load packages.scm
modules.scm
> ,open ftp
Load structure ftp (y/n)? y
[netrc netrc.scm]
[ftp ftp.scm]
> \textit{call library code}
> ,exit
atari-2600[73]
\end{alltt}

%%% Local Variables: 
%%% mode: latex
%%% TeX-master: "man"
%%% End: 
