|
|
1.1 root 1: % begin text
2: \banner
3: \section{Acknowledgements}
4: The \MH/ system described herein is based on the original Rand \MH/ system.
5: It has been extensively developed (perhaps too much so) by Marshall Rose and
6: John Romine at the University of California, Irvine.
7: Einar Stefferud, Jerry Sweet, and Terry Domae provided numerous suggestions
8: to improve the UCI version of \MH/.
9:
10: In particular, the UCI BBoards facility,
11: which was suggested by Einar Stefferud,
12: has been in place at the University of California, Irvine
13: (in one form or another) for the last two and one-half years.
14: The UCI BBoards facilities runs under both \MMDF/ and {\sf SendMail},
15: and, in a more restricted form, under stand-alone \MH/.
16:
17: \section{Disclaimer}
18: The Regents of the University of California wish to make it known that:
19: \bigquote
20: Although each program has been tested by its contributor,
21: no warranty, express or implied,
22: is made by the contributor or the University of California,
23: as to the accuracy and functioning of the program
24: and related program material,
25: nor shall the fact of distribution constitute any such warranty,
26: and no responsibility is assumed by the contributor
27: or the University of California in connection herewith.
28: \endbigquote
29:
30: \section{Scope}
31: This document explains how to use the UCI BBoards facility to a user familiar
32: with \MH/ and the \unix/ operating system in general.
33: A large degree of expertise is not assumed.
34: This document does not attempt to introduce \MH/ to the novice user
35: (for that task, consult the \MH/ tutorial known as \cite{MH.TUT}).
36: Additional information on the programs discussed here
37: (particularly \pgm{bbc\/}) is to be found in \cite{MH}.
38:
39: \section{Conventions}
40: In this document,
41: certain \TeX -formatting conventions are adhered to:
42: \smallskip
43: {\advance\leftskip by\parindent
44: \item{1.} The names of \unix/ commands, such as \pgm{comp},
45: are presented in {\it text italics}.
46: \item{2.} Arguments to programs, such as \arg{msgs},
47: are presented in {\tt typewriter style} and delimited by single-quotes.
48: \item{3.} \unix/ pathnames and envariables,
49: such as \file{/usr/uci/} and \file{\$SIGNATURE},
50: are presented in {\sl slanted roman}.
51: \item{4.} Text presenting an example, such as
52: \example comp\ -editor\ zz\endexample
53: is presented in {\tt typewriter style}.
54: \smallskip}
55:
56: \section{Introduction}
57: \MH/ is a very powerful message handling system that runs under the \unix/
58: operating system.
59: One of the many features which \MH/ offers is an interface to the UCI BBoards
60: facility.
61: This facility permits the efficient distribution of interest group messages
62: on a single host, a group of hosts under a single administration, and the
63: ARPA Internet community.
64:
65: Described simply, a interest group is composed of a number of subscribers
66: with a common interest.
67: These subscribers post mail to a single address, known as a
68: {\it distribution} address.
69: From this distribution address, a copy of the message is sent to each
70: subscriber.
71: Each group has a {\it moderator},
72: which is the person that runs the the group.
73: This moderator can usually be reached at a special address,
74: known as a {\it request} address.
75: Usually, the responsibilities of the moderator are quite simple,
76: since the mail system handles the distribution to subscribers automatically.
77: In some cases, the interest group,
78: instead of being distributed directly to its subscribers,
79: is put into a {\it digest} format by the moderator and then sent to the
80: subscribers.
81: Although this requires more work on the part of the moderator,
82: such groups tend to be better organized.
83:
84: Unfortunately, there are a few problems with the scheme outlined above.
85: First, if two users on the same host subscribe to the same interest group,
86: two copies of the message get delivered.
87: This is wasteful of both processor and disk resources.
88:
89: Second,
90: some of these groups carry a lot of traffic.
91: Although subscription to an group does indicate interest on the part of a
92: subscriber,
93: it is usually not interesting to get $50$ messages or so delivered to
94: the user's private maildrop each day,
95: interspersed with {\it personal} mail,
96: that is likely to be of a much more important and timely nature.
97:
98: Third, if a subscriber on the distribution list for a group becomes ``bad''
99: somehow,
100: the originator of the message and not the moderator of the group is notified.
101: It is not uncommon for a large list to have $10$ or so bogus addresses present.
102: This results in the originator being flooded with ``error messages'' from
103: mailers across the ARPA Internet stating that a given address on the list was
104: bad.
105: Needless to say,
106: the originator usually could not care less if the bogus addresses got a copy
107: of the message or not.
108: The originator is merely interested in posting a message to the group at large.
109: Furthermore, the moderator of the group does care if there are bogus
110: addresses on the list,
111: but ironically does not receive notification.
112:
113: To solve all of these problems,
114: the UCI BBoards facility introduces a new entity into the picture:
115: all interest group mail is handled by a special component of the mail system.
116: The distribution address maps to a special {\it channel} that performs
117: several actions.
118: First, if local delivery is to be performed,
119: then a copy of the message is placed in a global maildrop for the interest
120: group with a timestamp and a unique number.
121: Local users can read messages posted for the interest group by reading the
122: file.
123: Second, if further distribution is to take place,
124: a copy of the message is sent to the distribution address in such a way that
125: if any of the addresses are bogus,
126: the failure notice is sent to the maintainer of the group and not the
127: originator.
128:
129: This scheme has several advantages:
130: First, messages delivered to the host are processed and saved once
131: in a globally accessible area.
132: The UCI BBoards facility supports software which allows a user to query the
133: interest group for new messages and to read those messages in the \MH/-style.
134: Second, once a host subscribes to an interest group,
135: a user can add or remove him/herself from the list without contacting the
136: moderator.
137: Third, a hierarchical distribution scheme can be constructed to further
138: reduce the amount of message traffic.
139: Fourth, errors are prevented from propagating.
140: When an address on the distribution list goes bad,
141: the request address immediately responsible for the address is notified.
142: Usually, this is the local PostMaster and not the group moderator.
143:
144: In addition to solving the problems outlined above,
145: the UCI BBoards facility supports several other capabilities.
146: BBoards may be automatically archived in order to conserve disk space and
147: reduce processing time when reading them.
148:
149: Special alias files may be generated which allow the \MH/ user to shorten
150: address type-in.
151: For example, instead of sending to \eg{SF-Lovers@Rutgers},
152: a user of \MH/ usually sends to \eg{SF-Lovers} and the \MH/ aliasing
153: facility automatically makes the appropriate expansion in the headers of the
154: outgoing message.
155: Hence, one need only know the name of a interest group and not its address.
156:
157: Finally, the UCI BBoards facility supports {\it private} interest groups
158: using the \unix/ group access mechanism.
159: This allows a group of people on the same or different machines to conduct a
160: private discussion.
161:
162: The practical upshot of all this is that the UCI BBoards facility automates
163: the vast majority of BBoards handling from the point of view of both the
164: PostMaster and the user.
165:
166: \section{BBoard Handling}
167: Usually the term {\it BBoard} is used interchangeably with the terms
168: {\it discussion group} and {\it interest group}.
169: This is true of the discussion that follows.
170:
171: The messages for a BBoard delivered locally are kept in the same format as
172: a maildrop.%
173: \nfootnote{Actually,
174: your site might be running with all BBoards kept on a single host.
175: \MH/ supports the remote access of BBoards using a modified version of the
176: ARPA Post Office Protocol (POP).
177: This has the advantage that it saves a lot of disk space,
178: and incurs only a modest performance penalty.}
179: Unlike the user's private maildrop however,
180: the \pgm{inc} program is not run to incorporate new BBoard messages into
181: the user's \MH/ \eg{+inbox} folder.
182: The programs which are used will be discussed momentarily.
183:
184: Each message in a BBoard maildrop has a unique number and a timestamp.
185: The number, called the {\it BBoard-ID}, is always ascending.
186: The BBoard-ID of a message should {\bf NOT} be confused with the message
187: number of a message, which can change as messages are removed from the BBoard.
188: The BBoard-ID is a value which is unique for every message delivered locally
189: to the BBoard.
190:
191: To read BBoards, the \MH/ user invokes \pgm{bbc}.
192: The \pgm{bbc} program has several switches to direct it's action.
193: The \switch{topics} switch to \pgm{bbc} tells the \MH/ user about the
194: status of a BBoard.
195: The \switch{check} switch to \pgm{bbc} lets the \MH/ user check on the
196: activity of a BBoard.
197: The \switch{read} switch to \pgm{bbc} invokes the \pgm{msh} program on the
198: BBoard.
199: \pgm{msh} is a monolithic program which contains most of the functionality of
200: \MH/ in a single program.
201: These commands are now discussed in greater detail.
202:
203: \subsection{BBoard status}
204: The \switch{topics} option to the \pgm{bbc} program can be used to report
205: information about a BBoard that does not pertain to the user's reading habits.
206: If the \MH/ users types \example bbc\ -topics\endexample
207: then \pgm{bbc} will list the following information for all BBoards received
208: on the host:
209: \smallskip
210: {\advance\leftskip by\parindent
211: \item{$\bullet$} the official name of the BBoard
212: \item{$\bullet$} the number of messages delivered to the BBoard
213: (but not necessarily present)
214: \item{$\bullet$} the date and time of the last message delivered to the BBoard
215: \medskip}
216: \noindent
217: In addition to \switch{topics},
218: if the \switch{verbose} option is given to \pgm{bbc},
219: then more information is listed:
220: \smallskip
221: {\advance\leftskip by\parindent
222: \item{$\bullet$} any aliases the BBoard is known as
223: \item{$\bullet$} the local leaders of the BBoard
224: \item{$\bullet$} the file that the BBoard is locally delivered to
225: \item{$\bullet$} the ``global'' distribution address
226: \item{$\bullet$} the ``global'' request address
227: \item{$\bullet$} the host that distributes the BBoard to the local host
228: \item{$\bullet$} the addresses to which this host distributes
229: \item{$\bullet$} miscellaneous information (presently only archiving status)
230: \medskip}
231: \noindent
232: Naturally, \pgm{bbc} can be invoked with the \switch{topics} option and one or
233: more BBoard names listed on its command line.
234: For example \example bbc\ -topics\ unix-wizards\endexample is completely
235: acceptable~---~it tells \pgm{bbc} to report the status of the BBoard
236: \eg{unix-wizards}.
237:
238: \subsection{BBoard checking}
239: The \switch{check} option to the \pgm{bbc} program can be used to check for
240: new BBoard messages in a synchronous fashion
241: (i.e., when you specifically ask for it).
242: The \MH/ users types \example bbc\ -check\endexample and \pgm{bbc} consults
243: the profile entry for \eg{bboards:} in the user's \profile/ file.
244: For each BBoard listed,
245: \pgm{bbc} prints one of several messages depending on the status of both the
246: BBoard and the user's reading habits
247: (for example, in the case of the mythical BBoard \eg{foo\/}):
248: \smallskip
249: {\advance\leftskip by\parindent
250: \item{1.} \eg{foo -- n items unseen}\hbreak
251: This message indicates items in the BBoard have not been seen by the user.
252: When \pgm{bbc} is invoked with the \eg{quiet} switch,
253: this is the only informative message that \pgm{bbc} will print out.
254: Users of \MH/ usually put \example bbc\ -check\ -quiet\endexample
255: in their \file{\$HOME/.login} file.
256:
257: \item{2.} \eg{foo -- empty}\hbreak
258: The BBoard is empty.
259:
260: \item{3.} \eg{foo -- n items (none seen)}\hbreak
261: The BBoard has $n$ items in it, but the user hasn't seen any.
262:
263: \item{4.} \eg{foo -- n items (all seen)}\hbreak
264: The BBoard is non-empty, and the user has seen everything in it.
265:
266: \item{5.} \eg{foo -- n items seen out of m}\hbreak
267: The BBoard has at most $m-n$ items that the user has not seen.
268: \medskip}
269: \noindent
270: It is important to note that \pgm{bbc} performs its calculations on
271: BBoard-ID:s and not the messages actually present in a BBoard.
272: This means that the numbers given by \pgm{bbc} are maximal end-points.
273: When \pgm{bbc} says $n$, \pgm{bbc} means ``at most $n$''.
274:
275: Naturally, \pgm{bbc} can be invoked with the \switch{check} option and one or
276: more BBoards listed on its command line.
277: For example \example bbc\ -check\ info-c\ poli-sci\endexample is completely
278: acceptable~---~it tells \pgm{bbc} to check on the BBoards \eg{info-c} and
279: \eg{poli-sci} only.
280:
281: There are two ways to check for new BBoard messages in an asynchronous fashion:
282: using the \pgm{CShell} variable \file{\$mail} and running the \pgm{useto}
283: program.
284:
285: \subsubsection{Asynchronous Checking with the CShell}
286: The \pgm{CShell} has a variable called \file{\$mail}.
287: This variable can contain one or more words.
288: Each word should be a filename where the shell should check for new mail.
289: The check is performed after a specified time interval has elapsed just
290: before the shell would prompt the user.
291:
292: If the first word of \file{\$mail} is a number,
293: then this number specifies a different checking interval, in seconds,
294: than the default, which is 10 minutes.
295:
296: Whenever the time interval elapses and the shell is ready to prompt the user,
297: the shell looks at the file and decides if new messages have arrived.
298: If so, it says \example You have new mail.\endexample
299: if only one file is present in \file{\$mail}.
300: Otherwise,
301: if more than one file is present in \file{\$mail},
302: then the shell says \example New mail in foo.\endexample whenever there is new
303: mail in the file called \eg{foo}.
304:
305: To find out what file is associated with a BBoard, say \eg{info-unix},
306: the \MH/ user types \example bbc\ -topics\ -verbose\ info-unix\endexample
307: Usually the local file for a BBoard has an extension of \file{.mbox}.
308:
309: \subsubsection{Asynchronous Checking with Useto}
310: In contrast to using the \file{\$mail} variable in the \pgm{CShell},
311: the \MH/ user might employ \pgm{useto} instead.%
312: \nfootnote{Not all sites have \pgm{useto};
313: contact the same people who supplied \MH/ to get a copy.}
314: The \pgm{useto} program is a continuous update display that prints information
315: on the status line of your terminal.
316: Needless to say,
317: your terminal must support a status line in order to run \pgm{useto}.
318: Not all terminals have this capability,
319: but for those that do it's usually well worth the effort to run \pgm{useto}.
320:
321: For example, users of \MH/ could put
322: \example
323: useto\ -bepf\ \'tcp-ip\ sftp\'\ %
324: \'\%D\ \%M\ \%d\ \%h:\%m\%z\%b\ \%n.tty\%t:\%l1\'%
325: \endexample
326: in their \file{\$HOME/.login} file.
327: This command line to \pgm{useto} says to inform the user of
328: \smallskip
329: {\advance\leftskip by\parindent
330: \item{$\bullet$} the current date and time
331: \item{$\bullet$} new mail for the user
332: \item{$\bullet$} new messages for the BBoards \eg{tcp-ip} and \eg{sftp}
333: \item{$\bullet$} the name of the host and tty that the user is logged in on
334: \item{$\bullet$} the 5--minute load average of that host
335: \smallskip}
336:
337: The \pgm{useto} program is really quite amusing and useful.%
338: \nfootnote{To be honest,
339: the author considers computing environments without \pgm{useto}
340: to be less than adequate.}
341:
342: \subsection{BBoard reading}
343: If \pgm{bbc} is not given either the \switch{check} or \switch{topics} option,
344: the \pgm{bbc} program reads BBoard messages.
345: For each BBoard listed in the \MH/ user's profile entry for \eg{bboards:},
346: \pgm{bbc} checks to see if there is unread mail.
347: If so, \pgm{bbc} starts \pgm{msh} on the BBoard,
348: telling \pgm{msh} which messages haven't been seen.%
349: \nfootnote{If the \switch{verbose} option is given to \pgm{bbc},
350: then \pgm{bbc} will start \pgm{msh} on the BBoard regardless of whether there
351: are unseen messages there.}
352:
353: When \pgm{msh} starts it identifies the BBoard being read and indicates how
354: many messages are present and how many the user has read.
355: Usually, in the user's \MH/ profile,
356: the user has the entry \example msh:\ -scan\endexample
357: This says that when \pgm{msh} starts,
358: it should print a {\it scan listing} of the messages which the user
359: hasn't seen yet.
360:
361: The \pgm{msh} program now prompts the user for \MH/ commands.
362: The user may type most of the normal \MH/ command.
363: The syntax and semantics of the commands typed to \pgm{msh} are identical
364: to their \MH/ counterparts.
365: For example, to reply to a message on the BBoard,
366: the \MH/ user types \eg{repl};
367: other \MH/ commands likewise may be applied to BBoard messages.
368: In cases where the nature of \pgm{msh} would be inconsistent
369: (e.g., specifying a \arg{+folder} with some commands),
370: \pgm{msh} will duly inform the user.
371: In addition to supporting most \MH/ commands,
372: \pgm{msh} also has a \eg{help} command which gives a brief overview.
373:
374: The only command that behaves entirely differently in \pgm{msh} is the
375: \eg{mark} command when given no arguments.
376: The \pgm{msh} program maintains a special sequence, \eg{unseen},
377: which it uses to keep track of the messages you've seen.
378: If the \eg{mark} command is given without any arguments,
379: then \pgm{msh} will interpret it as
380: \example mark\ -sequence\ unseen\ -delete\ -nozero\ all\endexample
381: Hence, to discard all of the messages in the current BBoard being read,
382: the \MH/ user types \eg{mark} which says to remove all messages from sequence
383: called \eg{unseen}.
384:
385: To leave \pgm{msh} use the \eg{quit} command.
386: This tells \pgm{msh} to terminate and \pgm{bbc} to go to the next BBoard.
387: Instead, if the user types EOT (usually CTRL-D),
388: then \pgm{bbc} will exit as well,
389: updating whatever information was appropriate.
390:
391: \section{Current BBoards}
392: There are many, many active interest groups.
393: Consult the BBoard called \eg{list-of-lists} for a comprehensive description.
394: Here are a few of the more popular:
395: \smallskip
396: {\advance\leftskip by\parindent
397: \item{\tx system}
398: Important announcements for the local system are posted here.
399:
400: \item{\tx mh-users}
401: A discussion group for users of \MH/.
402:
403: \item{\tx arpanet-bboards}
404: Redistribution address for all known BBoards on the ARPAnet.
405:
406: \item{\tx editor-people}
407: Discussion of topics related to computerized text editing, display editors,
408: and human factors in man/machine interaction.
409: The theoretical discussion is catholic,
410: but practical discussion focuses particularly on \tops20/ and \unix/.
411:
412: \item{\tx franz-friends}
413: Discusses the Franz Lisp language.
414:
415: \item{\tx header-people}
416: Interest specifically in the format of message headers and related issues
417: such as inter-network mail formats/standards, etc.
418:
419: \item{\tx human-nets}
420: {\sf Human-Nets} has discussed many topics,
421: all of them related in some way to the theme of a world-wide computer and
422: telecommunications network usually called WorldNet.
423: The topics have ranged very widely, from something like tutorials,
424: to state of the art discussions,
425: to rampant speculation about technology and its impact.
426:
427: \item{\tx info-micro}
428: Information/discussion list on the general interest topic of microcomputers.
429:
430: \item{\tx info-unix}
431: {\sf Info-UNIX} is intended for question/answer discussion,
432: where ``novice'' system administrators can pose questions.
433:
434: \item{\tx msggroup}
435: Interest in electronic mail, message formats, message systems, and the
436: sociological implications of the above.
437:
438: \item{\tx poli-sci}
439: A permanent distributed political ``bull'' session.
440:
441: \item{\tx sf-lovers}
442: Science Fiction lovers.
443: {\sf SF-Lovers} has discussed many topics,
444: all of them related in some way to the theme of science fiction or fantasy.
445:
446: \item{\tx space}
447: Discussions (daily digest) on space-related topics.
448:
449: \item{\tx telecom}
450: A broad spectrum moderated-digest-format discussion on telecommunictions
451: technology: the telephone system, modems, and other more technical aspects
452: of telecommunications systems.
453:
454: \item{\tx unix-emacs}
455: Used for new release announcements and general discussions of Gosling's
456: \EMACS/.
457:
458: \item{\tx unix-wizards}
459: Distribution list for people maintaining machines running the \unix/ operating
460: system.
461: \medskip}
462: \noindent
463: As discussed earlier,
464: to find out about all of the BBoards that the local host subscribes to,
465: the \MH/ users types \example bbc\ -topics\endexample
466:
467: \section{More on BBoards}
468: Finally, here are a few more operational details:
469:
470: \subsection{Creating a BBoard}
471: Contact the PostMaster at your host to have a BBoard created.
472: Be sure to indicate its status (public or private)
473: and scope (where distribution should occur).
474:
475: \subsection{Subscribing to a BBoard}
476: If your local host already receives an interest group,
477: then simply add the name of the BBoard to the \eg{bboards:} entry in your
478: \MH/ profile.
479: If not, ask the PostMaster to create the BBoard and contact the global
480: request address for you.
481:
482: \subsection{BBoard Archives}
483: BBoard messages are automatically archived on a weekly basis.
484: Usually, this results in messages older than 12 days being moved to an
485: {\it archive} area.
486: To read the archives for a BBoard, the \switch{archive} option is used.
487: For example, \example bbc\ -archive\ telecom\endexample
488: tells \pgm{bbc} to invoke \pgm{msh} on the archives for the \eg{telecom}
489: BBoard.
490:
491: Note that the archives may not be present for all BBoards on a given host;
492: also note that the archives may be periodically moved to tape and expunged
493: from the system.
494: Contact your local PostMaster for the details.
495:
496: \subsection{BBoard Addresses}
497: Each BBoard has associated with it 4 addresses
498: (for example, in the case of the mythical BBoard \eg{foo\/}):
499: \smallskip
500: {\advance\leftskip by\parindent
501: \item{\tx foo} The global distribution list\hbreak
502: If you post a message addressed to {\tx foo} then the message is distributed
503: to everyone who subscribes to \eg{foo}.
504:
505: \item{\tx dist-foo} The local distribution list\hbreak
506: If you post a message addressed to {\tx dist-foo} then the message is
507: distributed to the local BBoard for \eg{foo}
508: and to any sites which the local system distributes to.
509:
510: \item{\tx foo-request} The global moderator\hbreak
511: If you post a message addressed to {\tx foo-request} then the message is
512: sent to the moderator for the entire interest group called \eg{foo}.
513:
514: \item{\tx local-foo-request} The local moderator\hbreak
515: If you post a message addressed to {\tx local-foo-request} then the message is
516: sent to the person responsible for the BBoard \eg{foo} on the local system.
517: \medskip}
518: \noindent
519: These addresses are defined by the \MH/ alias facility.
520: Users of the BBoards facility who do not use \MH/ may not be able to make use
521: of them.
522:
523: \subsection{Leading a BBoard}
524: Except for special circumstances, this task is wholly automated.
525: For more information though,
526: see the manual entries for \man bbl(1) and \man bbleaders(8).
527:
528: \section{Extra for Experts}
529: Some clever \MH/ users might ask why BBoards aren't kept as folders instead
530: of \pgm{pack}'d files.
531: This is a good question.
532: Perhaps some future release of \MH/ and the UCI BBoards facility will treat
533: BBoards as a variant of read-only folders.
534:
535: The problem with \pgm{msh}, of course, is that it's a monolithic program,
536: and although it does support input/output redirection and a few other
537: primitive shell-like properties, it's still not the \pgm{CShell}.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.