\section{Usenet: Talking to the world without paying long-distance bills}

\subsection{The Usenet\ldots}

The Usenet (Users' Network) is a bulletin board shared among many
computer systems around the world.  Usenet is a logical network,
sitting on top of several physical networks, including UUCP, BITNET,
and the Internet.  Sites on Usenet include many universities, private
companies, and research organizations.  

Before using or learning to use the Usenet, it is helpful to
understand some of the terminology used to describe it:
\begin{description}

\item[newsgroup:] A section of the net in which one particular topic is
discussed.  Newsgroups are named using a hierarchical tree structure
quite similar in nature to the Unix\super{TM} file structure, but the
net uses periods while Unix\super{TM} uses slashes.  For example,
discussion centering around the Apple Macintosh computer appears in a
newsgroup entitled comp.sys.mac, while discussion about politics in
general appears in talk.politics.misc.

\item[article:] A message which someone has posted to the net.  Other
terms for an article include ``message'' and ``post.''

\item[subscribe:] In order to read a newsgroup, you subscribe to
it.  If you decide that you no longer wish to read the newsgroup, you
unsubscribe from it.  By default, you are asked for each new newsgroup
if you want to subscribe to it.\footnote{This is the default for {\tt
rn}, the program we'll be using here.  The other programs have other
defaults.}

\item[{\tt .newsrc} file:] Your .newsrc file resides in your home
directory and tells {\tt rn} which newsgroups you know about, to which
ones you are subscribed and unsubscribed, and which articles in each
newsgroup you have read.

\item[{\tt KILL} files:] Despite the fact that the net usually tries to
limit newsgroups in breadth of topics, you will still always find
articles that you don't want to read in newsgroups that you DO want to
read.  {\tt rn} stores a {\tt KILL} file for each newsgroup, and these
files instruct the program to get rid of certain articles before you
even have to look at them.  To ``kill'' (or ``junk'') an article is to
make the system think you've already read it.

\end{description}

\subsection{Using {\tt rn} on Athena.}

The SIPB currently supports several different interfaces to the
Usenet. Among these are {\tt xrn}, an X-based
interface, and {\tt GNUS}, a package for reading news within GNU
Emacs.  For more information on these, 
\footref{http://web.mit.edu/olh/Netnews/}{look at the on-line
documentation,} or come by and ask us. In this document,
however, we'll
center on {\tt rn}.  To use {\tt rn} you must add the {\tt sipb}
locker by entering the command \verb+add sipb+ at your Athena prompt.
You can put this command in your {\tt .environment} file to cause it
to occur when you log in.

{\tt rn} operates on three levels: the newsgroup selection level, the
article selection level, and the paging level.  Each level has its own
set of commands, and its own help menu.  At the {\em newsgroup
selection} level (the top level), you may specify which newsgroup you
want next, or read them in the default order, which is the order that
the newsgroups occur in your {\tt .newsrc} file.  (You will probably
want to rearrange your {\tt .newsrc} file to put the most interesting
newsgroups first.  This can be done with the 'm' command on the
newsgroup selection level, or by using a file editor such as {\tt
emacs} to edit the file directly.)  At the article selection level,
you may specify which article you want next, or read them in the
default order, which is either in order of arrival on your system, or
by subject threads.  At the paging level (the bottom level), {\tt rn}
behaves much like the {\tt more} program.

The most important command to remember in {\tt rn} is `h', for help.
On any level, at any prompt, an `h' may be typed for a list of
available commands.  Furthermore, typing space to any question means
to ``do the normal thing.''  You will know what that is because every
prompt has a list of several plausible commands enclosed in square
brackets.  The first command in the list is the one which will be
executed if you type a space.

Some of the more important commands besides `h' and `space' are:

\noindent ALL LEVELS:
\begin{description}

\item{{\tt u}} will unsubscribe from the current newsgroup.

\item{{\tt c}} will ``catch up'' on the current newsgroup by marking all
the messages in it read.

\item{{\tt C-k}} will allow you to edit the KILL file for the current
newsgroup.
\end{description}

\noindent NEWSGROUP LEVEL:
\begin{description}
\item{{\tt g {\em newsgroup}}} will go to
the named newsgroup.  If it is unsubscribed, the user will be asked if
he or she wants to resubscribe to it.
\end{description}

\noindent ARTICLE OR PAGER LEVEL:
\begin{description}
\item{{\em number}} will go to the message with the given number.

\item{{\tt k}} will kill all unread articles with the same subject
line as the current article.

\item{{\tt K}} will kill all unread articles with the same subject
line as the current article and deposit this kill command in the KILL
file for the current newsgroup so that it will be executed each
time the newsgroup is accessed.

\item{{\tt f {\rm and} F}} will post a follow-up article to the current
article.  If an upper-case F is used, the text of the current article
will be embedded in the follow-up.

\item{{\tt r {\rm and} R}} will respond to the current article through
net mail.  If an upper-case R is used, the text of the current article
will be embedded in the mail letter.

\item{{\tt \$}} will go to the end of the current newsgroup.  Using
the `r,' `R,' `f' or `F' after using the `\$' command command will
allow you to post an article or write a mail letter from scratch.

\end{description}

These are only a few of the commands available in {\tt rn}.  Rather
then attempting to summarize everything that can be done with {\tt
rn}, we recommend that you print out the manual page for the program
and read it over.  While it is not necessary for you to read the
manual page to use {\tt rn}, it might be useful.
\newline
\vspace*{\baselineskip}
If you just wish to view the man page on screen, issue the command
\newline
\vspace*{\baselineskip}
{\tt \% man rn}
\newline
\vspace*{\baselineskip}
Even if you choose not to read the man page now, it is a good idea to
have it with you as a reference when you are first using {\tt rn}.

\subsection{Hints and tips}

\begin{description}

\item[news.announce.newusers:] It is a good idea to read through
news.announce.newusers before unsubscribing it.  If you choose not to
read the entire newsgroup, you should at least read the articles
containing answers to frequently-asked questions and the Usenet
Primer.  Use \verb+g news.announce.newusers+ from the newsgroup level,
then `=' to list the subjects, then enter a number to read the
articles with the subjects you wish to read.

\item[Using a {\tt .signature} file:] {\tt rn} and {\tt mh} disagree
over what a {\tt .signature} file should do. While {\tt rrn} thinks it
is something that should be placed at the end of a file, {\tt mh} thinks
that it should be placed in the ``From:'' field of a mail message.
Therefore, if you want to use a {\tt .signature} file with {\tt rn}, you
will have to set a variable called ``Signature: '' in your {\tt \~{
}/.mh\_profile} file.  Otherwise, {\tt mh} with look at your news
posting signature, and do the wrong thing with it.  Simply edit your
{\tt .mh\_profile} and add a line like
\begin{verbatim}
Signature: Joe Random User
\end{verbatim}
to the end.  You can then put a signature in {\tt \~{}/.signature} to be
automatically added to the end of your news postings.

\begin{sloppypar}
\item[Including an article in your follow-up:] When you use the
`F' command to post a follow-up article which contains the text of the
original article, {\tt Pnews}, the program which handles such posting,
gets very picky about how much new text you put into your article
compared to how much you retain from the one to which you are
responding.  In most cases, you will edit the article you are
including so that you only include the parts relevant to your followup
(but be sure not to disrupt the {\tt References:\/} line in the header
section.).  But if you attempt to post an article which has more lines
from the last article than lines you have added to it, {\tt Pnews}
will reject the article.  The way to avoid this is to fool {\tt Pnews}
into thinking that lines from the original article are actually lines
that you posted.  Since the lines from the original article begin with
`{\tt >}' by default, replacing the `{\tt >}' with another character
fools {\tt Pnews}.  The command sequence within emacs to do this is:
{\tt M-x {\sl replace-string} <RETURN> C-q C-j > <RETURN> C-q C-j {\em
string} <RETURN>}, where {\em string} is the character (or characters)
with which you want to replace the `{\tt >}'.
\end{sloppypar}

\end{description}
