Added all of the MH sources, including RCS files, in
[mmh] / docs / historical / mh-6.8.5 / papers / bboards / text.tex
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}.