An Introduction to Usenet News and the trn Newsreader

Jon Bell <jtbell@presby.edu>
Dept. of Physics and Computer Science
Presbyterian College
Clinton, South Carolina 29325, USA

with thanks to
David Barr <barr@pop.psu.edu>
for suggestions and proofreading

October 2, 1993
Copyright 1993 by Jonathan Bell. You may modify this document for local use and/or redistribute it, provided that you keep the original credits intact.

Contents

Part I: Introduction

The purpose of this document is to give you a quick introduction to Usenet news, and get you started on reading and posting news articles. The first part is a brief overview of Usenet news and the news-reading software. The second part is a tutorial on the basic steps involved in reading and posting news articles. You should read it in sequence, and work through the examples yourself. The third part is a collection of intermediate-level topics, in no particular order.

If you find something confusing, or would like me to add something in a future edition of this note, please let me know. Thanks!

This document assumes that you are using version 3.3 of trn. Some of the details may be slightly different for other versions. You can find out which version you are using by typing v (lower case!) at the newsgroup-selection prompt (read now?). Also, some details depend on how your news system has been configured. You should contact your news administrator if you have questions about these. See the section Your News Administrator for more information.

Overview of Usenet News

Loosely speaking, Usenet is a collection of computers which allow users to exchange public messages on many different topics. (The term "Usenet" is also used more precisely to refer to a specific subset of these messages, as described below.) These messages are similar to electronic mail, but are transmitted by special software which is separate from the electronic mail system. They are intended for public discussions rather than personal communication. If you have ever used a computer bulletin board service (BBS) or the public discussion areas of commercial online services (e.g. CompuServe's "forums"), you will find that Usenet strongly resembles both of these.

A Usenet message is called an article. Articles are grouped by topic into newsgroups. The entire collection of articles and newsgroups is called news.

Each Usenet computer maintains a database of articles, which it keeps up to date by exchanging articles periodically with its "neighbors" on Usenet. Periodically, your news system receives batches of articles from its Usenet neighbors; this may happen anywhere from once a day to once every few minutes. Similarly, your news system periodically sends locally-created articles to its neighbors. It may also pass its incoming batches on to some of its neighbors. Finally, your news system periodically (usually once each night) expires (removes) old articles to make room for new ones. How long articles are kept can vary from one newsgroup to another, and depends on the amount of disk space available and the perceived "value" of the newsgroup.

Usenet and the Internet are not the same thing. Usenet was originally developed on UNIX computers which set up temporary dial-up telephone connections among themselves via modems. They exchanged news articles using the UUCP (UNIX to UNIX copy) protocol which is built into the UNIX operating system. Many computers still exchange news in this fashion, but in recent years more and more computers have been using the permanent high-speed connections of the Internet, exchanging articles using NNTP (Network News Transfer Protocol). Therefore, not all Usenet computers are part of the Internet, and not all Internet computers participate in Usenet.

There are more than 1500 commonly distributed newsgroups, on a wide variety of topics including computers, scientific fields, politics, national cultures, and hobbies. The total amount of traffic in these newsgroups is now about 60-70 megabytes per day, and has been increasing at the rate of about 40-50% a year. Many sites receive only a limited selection of newsgroups because of limitations in disk space and the capacity of their network links, or because of specific policies on what kind of newsgroups can be received.

Newsgroup names generally contain two or more parts, separated by periods. As you read from left to right, the various parts of the name progressively narrow the topic of discussion. The first part of the name indicates the top-level hierarchy to which the newsgroup belongs. The standard "Big Seven" top-level hierarchies are:

comp
for discussions of computer hardware and software (e.g. comp.sys.mac.apps, for Macintosh application software)
misc
for discussions which don't fit anywhere else (e.g. misc.kids)
news
for discussions about Usenet news itself: news administration, creation of new newsgroups, news statistics, etc. (e.g. news.admin.policy)
rec
for discussions about "recreational" topics: sports, movies, hobbies, etc. (e.g. rec.sport.baseball, rec.travel, rec.autos.antique)
sci
for discussions of science-related topics (e.g. sci.physics)
soc
for social and "cultural" discussions relating to various groups of people (ethnic, national, religious, occupational, etc.) (e.g. soc.culture.german)
talk
for high-traffic, "noisy" discussions of controversial topics (abortion, religion, guns, etc.) (e.g. talk.politics.soviet)

Strictly speaking, Usenet consists only of these "Big Seven" hierarchies. Proposals for new newsgroups in these hierarchies are discussed and voted upon according to a set of rules known as "The Guidelines." If you're interested in learning about this process, read the article How to Create a New Usenet Newsgroup in news.announce.newusers, news.groups, news.admin.misc, news.announce.newgroups, or news.answers. Then read both news.announce.newgroups and news.groups for a few weeks to get a feeling for Usenet politics.

There is a somewhat widely distributed alt hierarchy which contains newsgroups that are too "big" (e.g. contain large files of encoded computer graphics), too controversial (sex, drugs, etc.), or too "off-the-wall" for the standard Usenet hierarchies, along with many newsgroups on "mainstream" topics. Creating a new newsgroup is much easier in the alt hierarchy than in the standard hierarchies, so a new newsgroup is sometimes created there with the intention of building enough traffic to justify creating a newsgroup in one of the standard hierarchies, or if there is not enough interest in creating one there. For more information, read the article So You Want to Create an Alt Newsgroup in alt.config, news.groups or news.answers. Then read alt.config for a while.

Finally, there are various special-purpose hierarchies which are not distributed as widely as the "Big Seven" and alt. Some of these focus on specialized fields, for example, bionet for biology, hepnet for high-energy particle physics, and vmsnet for users of computers from Digital Equipment, Inc. which run the VMS operating system. Others are intended mainly for distribution within limited geographical areas or within single institutions, for example ba for the San Francisco Bay area or de for Germany.

Which newsgroups you might want to read obviously depends on your interests. You should browse through the newsgroup lists and sample various groups. I strongly recommend that you at least scan the following newsgroups:

news.announce.important
contains important messages of interest to all Usenet users. Very few articles appear here.
news.announce.newusers
contains a standard set of articles with general information about Usenet, and guidelines for network etiquette (netiquette). You should read through these articles at least once.
news.answers
contains copies of articles which are periodically posted to various newsgroups, answering various "Frequently Asked Questions" (FAQs). These are worth browsing through in order to get an idea of the range of topics which are discussed on Usenet.
news.newusers.questions
contains questions posted by new users and (hopefully) answers from more knowledgeable users.
You can usually find complete lists of "Big Seven" and alt newsgroups, with very brief descriptions, in the newsgroups news.lists and news.announce.newusers.

Your News Administrator

Most Usenet sites have a news administrator who for maintains the news software, monitors disk space, creates new newsgroups, etc. On small systems, this person may simply be the overall system administrator. On larger systems, the system administrator may designate someone else as news administrator. The job may be only part of the person's overall responsibilities, and it may even be strictly a spare-time job.

If you have any questions which might depend on how the news software is set up on your particular system, you should contact your news administrator. For example, if you want to read a newsgroup which is not currently available on your system, your news administrator is the only person who can either arrange to receive that newsgroup, or explain why that is not possible.

The only sure way to find out the identity of your news administrator is to talk to people at your computer center. Many systems define the e-mail address usenet for use by the news administrator. You could also try sending a message to root or postmaster or whatever other address your system administrator uses.

Overview of the trn Newsreader

To read news and post new articles, one uses a program called a newsreader. The newsreader program which is described in this document is called trn ("threaded read news"). It is an extension of the venerable rn ("read news"), originally written by Larry Wall of NASA. The threading extensions were added by Wayne Davison of Borland, Inc.

In addition to the fundamental organization of articles by subject area into newsgroups, trn links followup articles (replies) to their parent articles to form threads of discussion on particular topics. Actually, an article may attract several direct replies, each of which in turn receives replies; and so the resulting collection of articles is better described as a "tree" rather then a "thread." Nevertheless, "thread" is the standard term.

When you enter a newsgroup, trn presents a menu of the discussion threads which are currently active. It allows you to select only those threads which you want to read, and ignore the others. It also presents articles within a thread (or tree) in an orderly sequence, so that you can follow the discussion easily. Finally, trn keeps track of which articles you have read in each newsgroup, so that once you have read an article, or have told trn to mark it as read, it disappears from the selection menus.

Trn normally operates on three levels:

  1. newsgroup selection level
  2. thread selection level
  3. article reading level
There is also an "article selection level," a holdover from the original rn, which allows you to select individual articles directly, without regard to discussion threads. You will not normally use it.

Part II: Tutorial

Prompts and Commands

You give trn instructions by typing commands at various prompts. Different levels of the program use different prompts. For example, the newsgroup selection prompt looks like this:
======   3 unread articles in comp.sys.mac.comm -- read now? [+ynq]  
All trn prompts provide a list of suggested commands in square brackets. Most commands consist of a single letter or symbol, and take effect immediately without waiting for you to press return or enter. A few commands, which require you to type in a sequence of letters (e.g. the name of a newsgroup), do not take effect until you press return or enter.

Universal Commands

Usually, the commands that you can type depend on which level of the program you are currently using. However, three commands have more or less the same effect everywhere.

Pressing the spacebar always performs the first command in the list of suggested commands. This is usually the most "natural" command at that point, in the sense that if you do nothing but press the spacebar at each prompt, trn eventually displays every unread article in every newsgroup to which you are subscribed.

Typing q always quits from what you are currently doing and takes you "upward" one level in the program. For example, if you type q while you are at thread-selection level, you go back to newsgroup-selection level. If you are at newsgroup-selection level, typing q takes you out of trn and back to the UNIX prompt.

Typing h always gives you a complete list of commands which you can give at the current prompt. This list can be overwhelming for novices, but after you have become somewhat familiar with trn, the h command is a useful reminder of what's possible.

Getting Started

At the UNIX prompt, type trn. If you have never read news before, you should see something like this:

$ trn

Trying to set up a .newsrc file--running newsetup...

[...long introductory message...]

Creating /home/jtbell/.newsrc to be used by news programs.
Done.

To add new group use "a pattern" or "g newsgroup.name".  To get rid of
newsgroups you aren't interested in, use the 'u' command.

(Revising soft pointers -- be patient.)
Unread news in news.announce.newusers                      32 articles
Unread news in pc.newusers.info                             7 articles

======  32 unread articles in news.announce.newusers -- read now? [+ynq]
You are now at newsgroup selection level, in which trn presents you with the names of newsgroups, one at a time, and asks you if you want to read them.

When you run trn for the first time, it has no idea of which newsgroups you are interested in, so it presents you either with only a few newsgroups which your news administrator has deemed of interest to new users, or with all the newsgroups which your system receives. In Usenet jargon, we say that trn has subscribed you to these newsgroups.

If you find yourself subscribed to only a few newsgroups, you should probably read those first, for practice. At some point, you can look in news.announce.newusers or news.lists for lists of newsgroups so you can find other newsgroups that you might be interested in, then subscribe to them using the procedure described in the next section.

If you find yourself subscribed to all the newsgroups on your system, you are faced with the task of unsubscribing from the ones you don't want to read. The simplest and most tedious way of doing this is to unsubscribe from each one individually. Typing u at the newsgroup selection prompt unsubscribes you from the named newsgroup; trn then presents you with the next newsgroup. When you come to a newsgroup whose name looks interesting; you can press the spacebar or type + to start reading the newsgroup as described in the section Reading a Newsgroup, or type n to skip over it for now. If you get tired of this process, you can type q to quit from trn, and then come back to it later.

Fortunately, there's a quicker way to get rid of all those unwanted newsgroups. Type q to quit from trn immediately, then give the following commands at the UNIX prompt:


	$ tr \: \! < .newsrc > .newsrc.new
	$ rm .newsrc
	$ mv .newsrc.new .newsrc
(Watch out! The first line uses backslashes, not ordinary slashes!) This edits your list of newsgroups (which is stored in a file named .newsrc, as described in the next section) so that all colons become exclamation points (which unsubscribes you from all newsgroups), then removes the old version and replaces it with the new one. Then re-enter trn; it will tell you that there is "no unread news in subscribed-to newsgroups," because you are no longer subscribed to any newsgroups. At this point you can subscribe to the newsgroups you do want to read.

Subscribing to Newsgroups

In order to subscribe to a newsgroup, you must "go to" it first, using the g command at newsgroup selection level. Suppose, for example, that you want to subscribe to rec.travel:

======  32 unread articles in news.announce.newusers -- read now? [+ynq] g rec.travel
Newsgroup rec.travel not in .newsrc -- subscribe? [yn] y

Put newsgroup where? [$^.Lq] (press space bar)
====== 307 unread articles in rec.travel--read now? [+ynq] 
(Note: type g rec.travel as if it were all on one line, although it may wrap around to the next line on your screen.)

Trn keeps track of which newsgroups you have subscribed to, and which articles you have read in those newsgroups, in a file named .newsrc in your disk directory. Whenever you subscribe to a newsgroup that you have not subscribed to before, trn asks you where you would like it to place the newsgroup in your .newsrc; this determines the sequence in which trn presents newsgroups to you. Pressing the space bar gives you the default, $, which tells trn to place the newsgroup at the end of your .newsrc. You can see what the other possibilities mean by typing h.

At this point you can press the space bar or type a + to start reading the newsgroup you have just subscribed to (see the next section), or you can enter another g command to go to and subscribe to another newsgroup, etc.

When you get tired of reading a newsgroup, you can unsubscribe from it by giving the u command at the newsgroup selection prompt:


====== 307 unread articles in rec.travel -- read now? [+ynq] u

Unsubscribed to newsgroup rec.travel

====== 241 unread articles in comp.sys.mac.system -- read now? [+ynq] 
The newsgroup you have unsubscribed from remains in your .newsrc, but is marked so that trn knows to skip over it. If you decide to subscribe to it again, you get the following:

====== 241 unread articles in comp.sys.mac.system -- read now? [+ynq] g rec.travel
Newsgroup rec.travel is unsubscribed -- resubscribe? [yn] y

====== 308 unread articles in rec.travel -- read now? [+ynq] 
Since rec.travel is already in your .newsrc, trn doesn't have to ask you where to put it.

To find out which newsgroups you might want to subscribe to, see the lists of newsgroups mentioned in the section Overview of Usenet News, above.

Reading a Newsgroup

You may enter a newsgroup when you see a prompt like this one:


====== 100 unread articles in comp.sys.mac.comm--read now? [+ynq] 
Pressing the space bar or typing a + produces a menu of all the current discussion threads:

comp.sys.mac.comm          100 articles

a Forrest Thiessen  2  GeoPort Adaptor Availability?
  Sean McMains
b Steve Wall        2  >What happened to White Knight? 
  David R Bosso 
d John Abercrombie  1  Zoom 14.4 Modem driver
e Claes Magnusson   2  >Ethernet and acceleration on same board for IIsi?
  John Werner
f JAMES N MERRICKS  1  Geoport & Zterm 
g Fred Morris       1  >Help transferring from VAX to Mac?
i C B Kidwell       6  >MacSLIP 2.0 arrives
  Jerry Goldstein
  Donald L. Nash
  Rick Watson
  Donald L. Nash
  Greg Ferguson
  Tony Huang        1  >MacSLIP 2.0 and FaxSTF
j Jerry Goldstein   1  Looking for certain binhex prg.
l Chris Reid        1  >using 'macps'
o Jeffrey Scorsone  1  Help: newbie on the net...
 
(Mail) -- Select threads (date order) -- Top 19% [>Z] --
From left to right, the menu displays a selector letter for each discussion thread, the names of the authors of the articles in the thread, the number of articles for each subject title, and the subject(s) under discussion. A single thread may contain several subjects, because the author of a followup article may give a different subject for his/her reply if the topic has drifted. An angle bracket (>) before a subject indicates that all the articles are followups to an earlier article; if there is no angle bracket, the thread begins from scratch with the first article.

There are actually three different forms of the thread selection menu. You can rotate among them by typing L. The long mode, shown above, is the default on most systems, but your news administrator may have configured trn so that it uses another mode as the default. Medium mode puts multiple authors on the same line where possible, in order to show more threads on the screen:


comp.sys.mac.comm          100 articles
 
a Forrest Thiessen  2  GeoPort Adaptor Availability?
  Sean McMains   
b Steve Wall        2  >What happened to White Knight?
  David R Bosso     
d John Abercrombie  1  Zoom 14.4 Modem driver
e Claes Magnusson   2  >Ethernet and acceleration on same board for IIsi?
  John Werner
f JAMES N MERRICKS  1  Geoport & Zterm
g Fred Morris       1  >Help transferring from VAX to Mac?
i C B Kidwell       6  >MacSLIP 2.0 arrives
  Jerry Goldstein 
  Donald L. Nash          Rick Watson             Donald L. Nash
  Greg Ferguson
  Tony Huang        1  >MacSLIP 2.0 and FaxSTF
j Jerry Goldstein   1  Looking for certain binhex prg.
l Chris Reid        1  >using 'macps'
o Jeffrey Scorsone  1  Help: newbie on the net...
r P Coordinator     1  >Novell Mac NLM 3.11
s Vladimir Butenko  1  >Global Village Gold fax and Hayes Connect.....it work?
     
(Mail) -- Select threads (date order) -- Top 21% [>Z] --
Short mode omits the authors completely, and shows one subject per line:

comp.sys.mac.comm          100 articles 

a   2  GeoPort Adaptor Availability?
b   2  >What happened to White Knight?
d   1  Zoom 14.4 Modem driver
e   2  >Ethernet and acceleration on same board for IIsi?
f   1  Geoport & Zterm
g   1  >Help transferring from VAX to Mac?
i   6  >MacSLIP 2.0 arrives
    1  >MacSLIP 2.0 and FaxSTF 
j   1  Looking for certain binhex prg.
l   1  >using 'macps'
o   1  Help: newbie on the net...
r   1  >Novell Mac NLM 3.11
s   1  >Global Village Gold fax and Hayes Connect... does it work?
t   1  >How to receive Faxes and ARA using a GV Teleport
u   3  Anybody have MacVoice?
v   3  System 6 chooser -- maximum printer limitation
w   2  Question about 14,400 modem
x   1  Mac Comm Software packages 4 sale
y   4  >SupraFaxModem v.32bis Experts Please Read *****
  
(Mail) -- Select threads (date order) -- Top 35% [>Z] --

To select threads for reading, simply type the selector letters a, b, d, etc. (Some letters are not used because they are commands; for example, q means "quit.") You may select several threads in succession; trn does not actually display the articles until you press return or enter. Threads that you select are indicated in the menu by a + next to their selector letters. You can un-select a thread by typing its selector letter again.

If the bottom line of the menu gives a % figure, the thread selection menu extends over more than one screen. You may advance to the next screen by pressing the spacebar or typing >, and continue selecting threads.

When you reach the last screen, pressing the space bar or typing Z displays the first article in the first thread you selected. You may also start reading before you reach the end of the menu, by pressing return or enter.

For this example, I selected only thread b on the first screen of the thread menu, and pressed return:


comp.sys.mac.comm #8184 (1 + 98 more)                  (1)+-(1)+-(1)--(1)--(1)
From: smwall@pica.army.mil (Steve Wall)                   |    \-(1)--(2)
[1] Re: What happened to White Knight?                    \-(1)--(1)
Followup-To: comp.sys.mac.comm                        -(1)+-[1]
Organization: PM Paladin                                  |-(1)
Date: Thu Sep 16 17:14:09 EDT 1993                        \-[1]
Lines: 20

In article <CDFJ19.CMB@freenet.carleton.ca>, ab426@Freenet.carleton.ca
(Stephen K. Suh) wrote:
>
> What else does Freesoft do, if anything, besides White Knight?
> 
> Despite its clunky non-GUI interface, I'm still quite attached
> to White Knight when I'm not otherwise using FirstClass.
> 
Personally, I never use it anymore except when I need a working Z-Modem
protocol.  ZTerm is flaky on my mac & host.  I use Versaterm w/ connection
tools at work, and WK or VersaTerm at home.  VersaTerm is used at home
whenever I really need a faithful VT100 emulator.  I've always had the
feeling with WK that it would faithfully emulate a vt100 if only I could
wade through enough dialog boxes and clicked exactly the right boxes, but
--MORE--(87%)
Pressing the space bar gives you the rest of the article, or another screenful, whichever is appropriate:

Date: Thu Sep 16 17:14:09 EDT 1993                        \-[1]
Lines: 20 

In article <CDFJ19.CMB@freenet.carleton.ca>, ab426@Freenet.carleton.ca
(Stephen K. Suh) wrote:
>
> What else does Freesoft do, if anything, besides White Knight?
> 
> Despite its clunky non-GUI interface, I'm still quite attached
> to White Knight when I'm not otherwise using FirstClass.
> 
Personally, I never use it anymore except when I need a working Z-Modem
protocol.  ZTerm is flaky on my mac & host.  I use Versaterm w/ connection
tools at work, and WK or VersaTerm at home.  VersaTerm is used at home
whenever I really need a faithful VT100 emulator.  I've always had the
feeling with WK that it would faithfully emulate a vt100 if only I could
wade through enough dialog boxes and clicked exactly the right boxes, but
I've never been able to make it work.  VersaTerm worked correctly right out
of the box.  With Ethernet at my desk & connection tools for VersaTerm,
I use WK less and less.

Steve Wall
(Mail) End of article 8184 (of 8282) -- what next? [npq]
(Notice the (Mail) at the beginning of the end-of-article prompt. This signals that you have mail waiting for you. Some (but not all) trn prompts have this feature.)

For a description of the various parts of this article, see the section Anatomy of a News Article.

At this point, pressing the spacebar or typing n displays the next article in the thread. Pressing the spacebar at each prompt eventually displays all the articles in the thread, then advances to the next thread if you selected more than one. Finally, you return to the thread selection menu, from which the threads you just read have disapppeared; trn has marked all the articles you read so that you don't have to see them again.

To go back to the beginning of the article you're reading, hold down the control or ctrl key and type r (often called "control-R," ctrl-R, or ^R). To go back one screenful, type b.

If you find yourself in the middle of a long article that you don't really want to read, type n to skip ahead to the beginning of the next article. If you don't want to read the rest of a thread, type J to skip ahead to the beginning of the next thread. In both cases, trn marks the articles you skipped as if you had read them, so they won't show up in the thread selection menu again. If you want to go back to the thread selection menu immediately, type +. There are many more possible commands, both in the middle of an article and at the end; type h at the appropriate prompt to see them.

When you are back at the thread selection menu, you can select more threads and read them, as described above. If you are finished with this newsgroup for now, but think you might want to read some more of these threads later, type q to leave the newsgroup, but leave the remaining threads marked as unread so that you will see them next time you enter the the newsgroup. If you do not plan to read any more of this batch of threads, type either X (that's a capital X!) or c (that's a lower case c!), which marks all remaining threads as read, so they do not appear in the thread selection menu the next time you enter the newsgroup. The difference between X and c is in their treatment of articles which are crossposted to more than one newsgroup; X marks them as read in all the newsgroups in which they appear, while c marks them as read only in the current newsgroup. I usually use X. In either case, you reach the read now? prompt for the next newsgroup you have subscribed to.

Posting a Followup Article

The first rule for new users about posting news articles is: Don't (yet)! You should read news for a while to get a feel for what kinds of articles are considered appropriate and which practices are frowned upon. Some of the articles in news.announce.newusers contain guidelines to Usenet etiquette, or "netiquette." Different newsgroups have different "personalities," so even if you are an experienced user, it is worthwhile to read a newsgroup for a while before posting to it.

Suppose you finally decide that you want to participate in a discussion by following up (replying to) an existing article. To do this, you need to be at article-reading level, and at the end of the article you want to follow up. For this example, I chose an article in the newsgroup misc.test, which is specifically intended for experimental postings:


misc.test #851 (0 + 13 more)                                               [1]
From: as806@cleveland.Freenet.Edu (Dave McKissock)
[1] My 1st test!
Date: Sat Mar 27 07:34:54 EST 1993
Organization: Case Western Reserve University, Cleveland, Ohio (USA)
Lines: 2
NNTP-Posting-Host: hela.ins.cwru.edu


This is my first message. WOW!
End of article 851 (of 864)--what next? [npq]
At the end-of-article prompt, type f to post a followup article:

End of article 851 (of 864)--what next? [npq] f

Are you starting an unrelated topic? [ynq]
Typing n here makes your article part of the current discussion thread; typing y starts a new thread (see the next section for details).

Are you starting an unrelated topic? [ynq] n (and press return or enter)

(leaving cbreak mode; cwd=/home/jtbell)
Invoking command: Pnews -h /home/jtbell/.rnhead


This program posts news to thousands of machines throughout the entire
civilized world.  Your message will cost the net hundreds if not thousands of
dollars to send everywhere.  Please be sure you know what you are doing.

Are you absolutely sure that you want to do this? [ny] y (and press return or enter)

Prepared file to include [none]: (press return or enter to accept the default, none)
Trn now takes you into a text editor. On most systems, the editor is vi, although your news administrator may have configured trn differently. The following discussion gives the bare minimum number of vi commands which you need for posting articles. They will suffice if you type your article carefully so that you don't have to edit it. [If your system doesn't use vi, you'll have to ask for help locally.]

Newsgroups: misc.test
Subject: Re: My 1st test
Summary:
Expires:
References: <1p1hle$sn9@usenet.INS.CWRU.Edu>
Sender:
Followup-To:
Distribution:
Organization: Presbyterian College, Clinton SC, USA
Keywords:


~
~
~
~
~
~
~
~
~
~
~
"/home/jtbell/.article" 12 lines, 216 characters 
This is a "skeleton" article which has some of the header lines filled in. The lines which contain only a tilde (~) do not exist at all. They are simply "filler" inserted by vi so you can see the blank lines at the end of the article, between the Keywords: line and the first tilde.

The cursor is probably positioned at the beginning of the first header line. Use the arrow keys to move the cursor down to the last line, just above the first tilde. Type i to enter input mode (the i does not appear on the screen), then type in your message. Press return or enter at the end of each line. You can correct mistakes on the current line by using the delete key (don't use the arrow keys) and typing over the mistake. When you are finished, press the esc or escape key to leave input mode.


Newsgroups: misc.test
Subject: Re: My 1st test!
Summary:
Expires:
References: <1p1hle$sn9@usenet.INS.CWRU.Edu>
Sender:
Followup-To:
Distribution:
Organization: Presbyterian College, Clinton SC, USA
Keywords:

Congratulations!

--
Jon Bell <jtbell@presby.edu>                        Presbyterian College
Dept. of Physics and Computer Science        Clinton, South Carolina USA
~
~
~
~
~
~
~
"/home/jtbell/.article" 12 lines, 216 characters 
You do not usually have to add anything to the header lines, even though most of them are blank. The essential ones have already been filled out.

To leave vi, type ZZ (after you have pressed escape or esc to get out of input mode). Trn now asks you what you want to do with the article:


Your article's newsgroup:
misc.test               For testing of network software.  Very boring.

Check spelling, Send, Abort, Edit, or List? s (and press return or enter)

(re-entering cbreak mode)
End of article 851 (of 864)--what next? [npq] 
Trn places the article in your local article database. When someone reads it, it looks like this:

misc.test #865 (0 + 13 more)                                          (1)--[1]
From: jtbell@presby.edu (Jon Bell)
[1] Re: My 1st test!
Date: Sat Mar 27 22:55:02 EST 1993
Organization: Presbyterian College, Clinton SC, USA

Congratulations!

--
Jon Bell <jtbell@presby.edu>                        Presbyterian College
Dept. of Physics and Computer Science        Clinton, South Carolina USA
End of article 865 (of 865)--what next? [npq] 
After some period of time, the news software sends the article out to the rest of Usenet.

The newsgroup misc.test is a good place to post test articles for two reasons. First, people tend to be annoyed by test articles in other groups. Second, various sites on Usenet monitor misc.test with software that automatically sends an e-mail reply to the author of each article. This allows you to verify that your article really is getting out, and what it looks like. When I did this example, I got eight replies: six from the U.S., one from South Africa and one from Sweden.

Typing F (instead of f) to follow up an article starts a similar process, but now the skeleton article "quotes" the original one, inserting a > at the beginning of each line:


Newsgroups: misc.test
Subject: Re: a test
Summary:
Expires:
References: <2bb4fe54.crud@crud.mn.org>
Sender:
Followup-To:
Distribution:
Organization: Presbyterian College, Clinton SC, USA
Keywords:

In article <2bb4fe54.crud@crud.mn.org> trashman@crud.mn.org (Barry Schwartz) writes:
>I desire to receive some test echos.
>
>--
>Barry Schwartz        trashman@crud.mn.org


~
~
~
~
"/home/jtbell/.article" 18 lines, 379 characters 
This is useful for establishing the context of any comments you make. However, you should remove as much of the original article as possible, leaving only the minimum amount necessary for context. To delete a single line, position the cursor anywhere on the line and type dd. To delete several consecutive lines at once, position the cursor on the first line you want to delete and type, for example, d5d if you want to delete five lines. It's customary to leave the attribution line (In article...) at the beginning of the quoted material, but delete any signature at the end, if it agrees with the attribution. For example:

Newsgroups: misc.test
Subject: Re: a test
Summary:
Expires:
References: <2bb4fe54.crud@crud.mn.org>
Sender:
Followup-To:
Distribution:
Organization: Presbyterian College, Clinton SC, USA
Keywords:

In article <2bb4fe54.crud@crud.mn.org> trashman@crud.mn.org (Barry Schwartz) writes:
>I desire to receive some test echos.

You've got one...
--
Jon Bell <jtbell@presby.edu>                        Presbyterian College
Dept. of Physics and Computer Science        Clinton, South Carolina USA

~
~
~
~
"/home/jtbell/.article" 18 lines, 379 characters 

Beginning a New Discussion Thread

There are two methods for posting an article which does not follow up an existing one. Which one is easier to use depends on whether you are currently reading articles in the desired newsgroup.

The first method applies if you are at the newsgroup selection prompt. Type .f (notice the period!) at the prompt, then press return or enter:


======   9 unread articles in misc.test--read now? [+ynq] .f (and press return or enter)

Subject:
The second method applies if you are currently reading articles in the desired newsgroup. At the end of any article, or even when you are in the middle of it, type f as if you were going to follow up, but then specify that you want to start an unrelated topic:

End of article 1331 (of 1333)--what next? [npq] f

Are you starting an unrelated topic? [ynq] y (and press return or enter)

Subject:
(If you are at the thread selection menu, select any article, press return or enter to start reading it, then use the second method above.)

At this point, you must specify not only the subject of the article, but also its geographical distribution, that is, how far you want it to be propagated. Exactly which distributions are available to you depends on how your news system has been set up (ask your news administrator). Generally speaking, you should be able to use the distribution local (your system only). Leaving the distribution blank sends your article to all of Usenet). You should also have distributions corresponding to your continent, country and possibly a region within your country. For example, a system near San Francisco, California, may allow the distributions na (North America), usa (United States), ca (California) and ba (S.F. Bay area). If you simply press return or enter at the Distribution: prompt, the news software assumes you want world-wide distribution.


Subject: A New Thread Begins...
Distribution: local

(leaving cbreak mode; cwd=/home/jtbell)
Invoking command: Pnews -h /home/jtbell/.rnhead


This program posts news to machines throughout the local organization.
Are you absolutely sure that you want to do this? [ny] y (and press return or enter)

Prepared file to include [none]: (press return or enter)
As before, the screen clears and trn gives you a skeleton article to edit and post. See the previous section for details.

Beware! If you use an invalid distribution (one that is not listed above), trn does not give you an error message. Your news transmission software will handle your article as if the distribution were local. Your article will appear normally on your system, but will not be sent anywhere else.

Replying by E-mail

Sometimes your reply to an article is of interest only to its author, and not to Usenet as a whole. Often, someone posts a question with the stipulation that replies be to him/her personally, and he/she will post a summary of the responses in a later article. In such cases you should send your reply directly to the author via e-mail. You can do this within trn by typing r instead of f, or R instead of F, depending on whether you want to quote part of the article in your reply. Trn prepares the reply and allows you to edit it, just as if you were posting a followup article, but e-mails it to the author instead of posting it to Usenet.

Part III: Miscellaneous Topics

New Newsgroups

When trn starts up, it checks for newsgroups which were created since the last time you read news. If it finds any, it asks if you want to subscribe to them:

$ trn
Unread news in news.announce.newgroups                      5 articles
Unread news in news.future                                  4 articles
Unread news in news.groups                                 14 articles
Unread news in news.newusers.questions                      2 articles
Unread news in news.software.b                              1 article
etc.

Checking for new newsgroups...

Newsgroup comp.society not in .newsrc--subscribe? [ynYN] 
If you type y, trn subscribes you to the newsgroup and asks you where to place it in your list of newsgroups (your .newsrc file):


Newsgroup comp.society not in .newsrc--subscribe? [ynYN] y

Put newsgroup where? [$^.L] 
Pressing the space bar (or typing $) places the newsgroup at the end of the list. For other possibilities, see the next section.

Put newsgroup where? [$^.L] (press space)
Newsgroup comp.society.cu-digest not in .newsrc--subscribe? [ynYN] 
Trn asks you about each new newsgroup, in turn. If you answer n, trn leaves you unsubscribed to that newsgroup. If you answer Y, trn subscribes you to all the remaining new newsgroups. If you answer N, trn leaves you unsubscribed to all of them. (The last two options are handy when you're in a hurry and there are a lot of new newsgroups!) Finally, you reach the newsgroup selection prompt for the first subscribed newsgroup in your list.

If you chose to subscribe to any of the new newsgroups, you will normally see them after you have read all the other newsgroups you have subscribed to previously. Of course, if you're in a hurry, you can use the g command to go to the new newsgroups immediately.

Rearranging the Newsgroup List

Trn presents newsgroups to you according to the order in which they appear in your newsgroup list (your .newsrc file). By default, trn places newly-subscribed newsgroups at the end of the list. If you subscribe to several newsgroups, you may find that you have to skip over many of them in order to get to your favorites when you are in a hurry. You can avoid this nuisance by by rearranging your newsgroup list to place your favorite newsgroups at the beginning.

To do this, go to the newsgroup selection prompt for the newsgroup you want to move, then type m ("move"). Trn asks you where you want to place that newsgroup:


======   2 unread articles in news.admin.misc--read now? [+ynq] g sci.physics
======   2 unread articles in sci.physics--read now? [+ynq] m
Put newsgroup where? [$^Lq]
Here you have several possible responses, which you can see explained by typing h. Probably the most useful one is to type a number indicating the new position in the list: 0, 1, 2, etc. You can verify the result by typing L at the next newsgroup selection prompt. This displays your newsgroup list:

Put newsgroup where? [$^Lq] 0

********   2 unread articles in sci.physics--read now? [+ynq] L
  #  Status  Newsgroup
  0      2   sci.physics: 1-4069
  1  (READ)  junk: 1-165
  2      2   news.admin.misc: 1-1006
  3  (READ)  news.admin.policy: 1-3507
  4  (READ)  news.admin.technical: 1-42
  5  (READ)  news.announce.important:1
  6  (READ)  news.announce.newgroups: 1-311
  7  (READ)  news.announce.newusers: 1-66
  8      4   news.answers: 1-2079
  9  (READ)  news.config: 1-67
 10      1   news.future: 1-300
 11     11   news.groups: 1-4966
 12  (READ)  news.lists.ps-maps: 1-75
 13  (READ)  news.lists: 1-154
 14  (READ)  news.misc: 1-328
 15  (READ)  news.newsites: 1-52
 16      2   news.newusers.questions: 1-1693
 17  (READ)  news.software.b: 1-775
 18      3   news.software.nntp: 1-727
 19  (READ)  news.software.readers: 1-740
 20 (UNSUB)  comp.answers! 1-17,35,37,39,45-46,81,130,193,238
 21      5   comp.admin.policy: 1-192
[Type space to continue] 
The numbers after the newsgroup names indicate which articles you have read, or told trn to junk.

With a bit of patience, you can (if you like) put your entire newsgroup list in alphabetical order, using this method. There's an easier way to do this, though. Outside of trn, at the $ prompt, give the following commands:


$ sort .newsrc > .newsrc.sorted
$ rm .newsrc
$ mv .newsrc.sorted .newsrc
This creates a sorted copy of your newsgroup list (.newsrc file), then deletes the original and renames the sorted copy.

Anatomy of a News Article

Consider the following article:

sci.physics #2 (35 + 223 more)                   -( )--[1]
From: mcirvin@husc8.harvard.edu (Matt McIrvin)   -( )+-[2]+-[2]
[1] Re: Scientific American, can anybody             |    |-( )--[2]
+   understand it?                                   |    \-[2]+-[2]
Keywords: or is it just me                           |         \-[2]
Date: Fri Mar 19 18:44:19 EST 1993                   \-[3]
Lines: 28
Nntp-Posting-Host: husc8.harvard.edu

jbm@hal.trl.OZ.AU (Jacques Guy) writes:

>mcirvin@husc8.harvard.edu (Matt McIrvin) writes:

>>I like the articles about Stone Age pottery and linguistics and
>>the like;

>That is strange. I had been reading Scientific American since high
>school because I found it easy to understand -- even though that
>was in France and French is my mother tongue. And I have stopped
>reading it precisely because of the articles on linguistics, which
>have all been stuff and nonsense, even as early as 1958 (Thomas
>Barthel's claimed decipherment of the Easter Island tablets
>was published there and then).

That's because you know something about linguistics-- I don't!
Consequently, I couldn't tell. 

>The two most recent ones, one
>by Cavalli-Sforza, the other by Greenberg made me give up
>SA, thinking: if they publish such stuff about comparative linguistics,
>how can I trust what they publish in other branches of science, in
>which I am no expert?

That's how I feel reading articles about physics in the Boston Globe.
Replace "science" with "human endeavor in general."
-- 
Matt McIrvin
(Mail) End of article 2 (of 262)--what next? [npq] 
The first line tells you which newsgroup you are reading (sci.physics), that this is the second article that your news system has received in this newsgroup, and how many articles are left to read. In this example, there are 35 articles left in the threads you have selected, plus 223 articles in threads you have not selected.

The From: line tells you who wrote the article. Usually, but not always, it contains a valid e-mail address and the sender's real name or nickname.

Next comes the subject of the article. The [1] indicates that this is the first distinct subject in this discussion thread. Re: indicates that this is a followup to somebody else's article.

Some people put a Keywords: line in the headers of their articles, to make it easier to search for articles on various topics. This is by no means universal.

Date: indicates when the article was posted. It may take a few days for an article to propagate across Usenet, depending on how the poster's computer is connected to its neighbors.

Lines: should give the number of lines in the article, but this is not always present.

Nntp-Posting-Host: tells you which computer the poster's news system runs on. Many large universities and companies have one central "news server" computer, to which users on other computers connect via the NNTP protocol.

To the right of the article header you see one of trn's special features: a "map" of the current discussion thread. Each "box" represents a single article; they are connected to show the logical sequence of followups (replies). The numbers correspond to the "subject numbers" which you see in the subject line. The article you are now reading is highlighted. Articles which you have already seen are enclosed in parentheses; those which you have not seen yet are enclosed in square brackets. Articles which are no longer in your database are indicated by empty boxes. If the discussion is long, you see only part of the map here; you can see the entire map by typing t.

Finally we come to the article text itself. Lines which begin with > are "quoted" from the article that this one is following up. There is usually an attribution line which indicates who wrote the quoted text. These are inserted automatically when you follow up an article using the F command, as described above. Notice that in this example, there are also lines which begin with >>. These were quoted in the article which is being quoted. Occasionally you will see four, five, or even more levels of quoting, but many people consider this to be bad form.

At the end of the article, separated from it by two dashes, there is often a signature, which may contain the author's name, e-mail address(es), mail address, phone number, etc. Many newsreader programs, including trn, allow you to create a "signature file" which is automatically appended to the end of each article you write.

Creating a Signature File

Trn provides two methods by which you can have it automatically append a "signature" to your articles. The traditional method uses a file named .signature, which you can create using any text-editing program (e.g. vi or pico). For example, using vi:

$ vi .signature

The screen clears, and you see a blank file for you to edit:

(single blank line at the top of the screen)
~
~
(etc.)
~
".signature" [New file] 
Type i to enter insert mode, then type in your signature, pressing the return or enter key at the end of each line. When you are finished, press the escape or esc key to get out of insert mode, then type ZZ to leave vi.

Jon Bell <jtbell@presby.edu>                        Presbyterian College
Dept. of Physics and Computer Science        Clinton, South Carolina USA
~
~
(etc.)
~
".signature" [New file] 
After you have created your signature file, you may need to make it readable by the news software. Your file system may be set up so that whenever you create a file, only you have any access to it. To make it readable by other users (including the news software), give the following command at the $ prompt:

$ chmod a+r .signature
Trn appends the .signature file only after you have written your article, so you do not see the signature while you are editing the article.

Trn also provides a newer method for specifying a signature, which appends the signature before you begin to edit the article, so you can see it. In this method, there are actually two signature files: .news_sig, which trn appends when you use the f or F commands to post a reply to the rest of Usenet; and .mail_sig, which trn appends when you use the r or R commands to send the reply directly to the author of the original article via e-mail. You can create these alternative signature files using the method described above for .signature. If you use either .news_sig or .mail_sig, do not also use .signature, else trn will append both signatures!

In the interest of conserving network resources, your version of trn may not allow you to have a signature which is longer than four lines. If this is true, and you try to use a longer signature, trn uses the first four lines and ignores the rest.

Re-Reading Articles

Sometimes you may want to re-read an article or thread which you have already read, and therefore no longer shows up in the thread selection menu. Typing U when you are looking at the thread selection menu causes the menu to display all previously-read threads:

news.newusers.questions          170 read articles

a-  2  FAQ: How to find people's E-mail addresses
b-  3  Welcome to news.newusers.questions! (weekly posting)   
d-  1  rn KILL file FAQ
    3  trn and Re:
e-  1  >Tolkien site...
f-  2  >This is a test, please reply
g-  2  >Modem question
i-  1  >Software Copy Protection for PC, Help Please
j-  3  >This is a TEST, please reply...
l- 12  >How do you stop harrassing e-mail?
o-  4  >Filtering mail
r-  1  >** 14-year old boy wants ...
s-  1  >Background news filter
t-  1  >TQM/summary
u-  2  >What's a daemon, he asks
v-  1  >ftp question
w-  1  >Question : How to post news anonymously ?
x-  4  TAR
z-  5  What is the FAQ??

(Mail) -- Select threads (date order) -- Top 29% [>Z] --
This is just like the usual thread selector (I used short mode for this example), except that all the selection letters are followed by a - sign to indicate that they have been read. Select threads to read as usual, by typing the selector letters, which changes the corresponding - signs to + signs. Pressing return or enter (or the space bar when you are at the last screen of the menu) takes you into article-reading mode, as usual.

To switch back to the normal thread selector, type U again when you are looking at the menu.

If you've previously read everything in the newsgroup, trn doesn't even present you with the newsgroup at newsgroup selection level, so you must use the g command to go to it, then type U:


======   1 unread article in news.admin.policy--read now? [+ynq] g soc.culture
.nordic
======   0 unread articles in soc.culture.nordic--read now? [ynq] U
Set unread: +select or all? [+an] + (or space)
This gives you the thread selection menu for all previously-read articles, as described above.

Canceling Articles

If you change your mind about something you have written, you can "take it back" by canceling your article. You can do this only if the article has not yet expired on your system. First, find your article and begin reading it; you may have to use the U command at thread selection level if you have already read it once. Then, either in the middle of the article or at the end, type C (that's a capital C!). This removes the article from your local article database, and sends out a special type of article called a control message which instructs all other Usenet computers to remove their copies of your article from their article databases.

Saving Articles

You can re-read articles as described in the previous section only while they are still in your system's article database. If you want to keep an article for permanent reference, you must save it to your disk directory. To do this, type s filename at the end of the article, substituting the desired file name for filename:

(Mail) End of article 14 (of 20)--what next? [npq] s tidbits.txt

File /home/jtbell/News/tidbits.txt doesn't exist--
        use mailbox format? [ynq] 
If you answer y to this question, the file will be in "mailbox format", which allows you to read it using an e-mail program, just like a file of saved e-mail messages. If you answer n, the file will be a plain text (ASCII) file. If you answer q, you don't save the article at all. On some systems, mailbox format may include special formatting information, so if you plan to download the file to your PC for printing or storage, you should use plain text format. If you're going to keep the file on your UNIX machine, mailbox format may be more convenient.

File /home/jtbell/News/tidbits doesn't exist--
        use mailbox format? [ynq] y
Saved to mailbox /home/jtbell/News/tidbits
(Mail) End of article 14 (of 20)--what next? [npq] 
If you save an article to a file which already exists, trn appends the article to the end of the file. This gives you one method of saving several articles in a single file:

(Mail) End of article 20 (of 20)--what next? [npq] s tidbits
Appended to mailbox /home/jtbell/News/tidbits
(Mail) End of article 20 (of 20)--what next? [npq] 
When you are at thread-selection level, you can save an entire discussion thread, or group of threads, to a single file. Simply select the thread(s) as if you were going to read it (them), by typing the appropriate selector letter(s). Then, instead of pressing return or enter to start reading the articles, type :s filename (note the preceding colon):

:s articles
1028
File /home/jtbell/News/articles doesn't exist--
        use mailbox format? [ynq] y
Saved to mailbox /home/jtbell/News/articles
1043    Appended to mailbox /home/jtbell/News/articles
1165    Appended to mailbox /home/jtbell/News/articles
1178    Appended to mailbox /home/jtbell/News/articles
1234    Appended to mailbox /home/jtbell/News/articles
1054    Appended to mailbox /home/jtbell/News/articles

[Type space or a command] 
This thread contains six articles, all of which are saved into one file in mailbox format. Pressing the spacebar takes you back to the thread selection menu. The threads you saved are still selected, so you can read them now if you like, by pressing return or enter. Otherwise, you can mark them as read by typing J, in which case they disappear from the menu.

To examine the files you just saved, you must leave trn and return to the $ prompt. Notice that you will not find these files (in this example, tidbits and articles) in your home directory:


$ ls
Mail             groupsort        news.space       unix.commands    
News             info-mac         news.wishlist    yanoff-list.txt
VILEARN          mailx.commands   ntalk
fortran.info     malcolm2.txt     ntalk.sites
gopher           mbox             suranet
$
Rather, they are in the subdirectory News. You must change to that directory first:

$ cd News
$ ls
alt.newsgroup.list  fortran.song        sci                 teaching-loads.tex
arbitron.sh         french.note         soc                 tidbits
arbitron.txt        listserv.memo       sources.faq         wienerisch.txt
articles            narva.txt           south-shore.txt
compuserve.note     ne-corridor.txt     supernova.txt
disney.txt          newsgroup.list      supernova.uue
$ 
You can read the saved articles by using the more command, just as for any other text file, or you can read them using your e-mail program just as if they were e-mail messages. For example, using mailx:

$ mailx -f articles
mailx version 3.03 01/18/88  Type ? for help.
"articles": 6 messages 6 new
>N  1 Lawrence D'Oliveir Sun Apr 11 22:53   27/1167  Re: More awful names for 
 N  2 Eggert Thorlacius  Sun Apr 11 22:53   32/1278  Re: More awful names for 
 N  3 Chuck Hoffman      Sun Apr 11 22:53   27/980   Re: More awful names for 
 N  4 Landon Dyer        Sun Apr 11 22:53   40/1204  Re: More awful names for 
 N  5 Matt Mora          Sun Apr 11 22:53   35/997   Re: More awful names for 
 N  6 Manuel Veloso      Sun Apr 11 22:53   28/1189  Re: More awful names for 
? 
If you're using pine as your e-mail program, you'll have to move the file into the directory where pine looks for your mail folders. This is usually the subdirectory Mail of your home directory, although your system administrator may have configured pine differently. If you're in your News subdirectory, you can move the file like this:

$ mv articles ../Mail/articles
If you're in your home directory, do it like this:

$ mv News/articles Mail/articles
Now you can start up pine as usual, and the file articles should appear in your list of mail folders.

You may want to download the saved articles to your personal computer so you can file them on your own floppy or hard disk, or print them, or whatever. The procedure for doing this depends on what kind of computer you are using and what communications software you are using to connect to your UNIX computer.

When you are done working with your saved articles in your News subdirectory, you can get back to your home directory as follows:


$ cd ..

Posting the Same Article to Several Newsgroups (Crossposting)

Sometimes you may want to post the same article to more than one newsgroup, because the article may be of interest to more than one audience. For example, an article about Swedish-German relations would be appropriate for both soc.culture.nordic and soc.culture.german. If you simply post copies of the article in the usual way to each newsgroup, it not only takes more of your time, it also consumes more network resources, because each copy must be transmitted and stored separately on each Usenet computer. The crossposting mechanism allows you to post one copy of the article simultaneously to more than one newsgroup; only that one copy is transmitted, and with some operating systems, including UNIX, only one copy needs to be stored on each computer. With some newsreaders, including trn, reading a crossposted article in one group marks it as read in the other groups; if you read more than one of the groups in question, you see the article only once. Also, at trn's thread selection level, the X command marks all remaining articles as read not only in the current newsgroup, but also in all newsgroups to which they have been crossposted.

Before you crosspost, you should think carefully about whether you really need to do it. If you do crosspost, do it to as few groups as necessary. It is considered a breach of "netiquette" to crosspost to many newsgroups, and doing so may produce angry responses via e-mail.

To crosspost an article, start by posting as usual to one of the newsgroups in which you want the article to appear. For this example, I'll post in misc.test and crosspost to alt.test, which was created to serve the same purpose as misc.test, but for the alt hierarchy:


======  48 unread articles in misc.test--read now? [+ynq] .$
Threading 3 articles...


End of newsgroup misc.test.  (48 articles still unread)

(Mail) What next? [npq] f

Subject: Crossposting test
Distribution: local

(leaving cbreak mode; cwd=/home/jtbell)
Invoking command: Pnews -h /home/jtbell/.rnhead


This program posts news to machines throughout the local organization.
Are you absolutely sure that you want to do this? [ny] y (and press return or enter)

Prepared file to include [none]: (press return or enter)

This takes you into the vi editor, as usual:

Newsgroups: misc.test
Subject: Crossposting test
Summary:
Expires:
Sender:
Followup-To:
Distribution: local
Organization: Presbyterian College, Clinton SC, USA
Keywords:


~
~
(etc.)
~
"/home/jtbell/.article" 11 lines, 177 characters 
To crosspost, use the cursor keys to move to the end of the Newsgroups: line, then press a to tell vi that you want to insert new text after the cursor position. Type a comma and the names of the newsgroups to which you want to crosspost, and finally press esc or escape to get out of insert mode. Separate the newsgroup names by a comma only (no spaces):

Newsgroups: misc.test,alt.test
Subject: Crossposting test
Summary:
Expires:
Sender:
Followup-To:
Distribution: local
Organization: Presbyterian College, Clinton SC, USA
Keywords:


~
~
(etc.)
~
"/home/jtbell/.article" 11 lines, 177 characters 
Then move the cursor to the last line, type in the article and post it as usual.

When you follow up a cross-posted article, your article is normally also cross-posted to the same newsgroups that the original article appeared in. You can change this by editing the Newsgroups: line in the header to add or remove newsgroups. To add a newsgroup, proceed as above. To delete a newsgroup, position the cursor at the first letter of the newsgroup name, then press x repeatedly (that's a lower-case x!) to delete one letter at a time. Don't forget to delete the extra comma, too.

Redirecting Followups

As described in the previous section, followup articles normally appear in the same newsgroups as the original article. The author of the followup article can change this by editing the Newsgroups: line in the header. The author of the original article can also change this, by editing the Followup-To: line, which is normally blank. If the Followup-To: line is not blank, all followup articles appear in the specified newsgroup.

This is commonly done in two situations. First, the author of the article may want to attract the attention of readers of several newsgroups, but then restrict any followup discussion to one newsgroup. For example, discussions about creating new newsgroups are supposed to take place only in news.groups. Therefore, someone who wants to create a new newsgroup normally cross-posts a "Request for Discussion" (RFD) to news.announce.newgroups and to any newsgroups which might have readers who might be interested, but directs all followups to news.groups.

Second, the author may want all responses to go directly to him/her via e-mail, so that he/she can prepare a summary of them to post later. Placing the word poster in the Followup-To: line accomplishes this.

If you redirect followups, you should mention this in the body of your article, because many people don't read headers carefully, and may otherwise be puzzled when their followup articles don't appear in the newsgroup that they're reading!

Moderated Newsgroups

Some newsgroups are moderated, that is, articles posted to them must be approved by a moderator. Trn allows you to post an article to a moderated group in exactly the same way as to an unmoderated group, but when you tell trn to send the article, it e-mails the article to the moderator and informs you of what it has done. If the moderator approves the article, it will appear in the newsgroup after a (hopefully) short delay. Otherwise, he/she will probably return the article to you with an explanation of why it was not suitable for that newsgroup.

Screening Articles Automatically (Killfiles)

Trn's threading mechanism helps you to skip discussions that you are not interested in, by grouping together articles with the same subject into one entry in the thread selection menu. In most cases, you can efficiently scan the thread selection menu for the discussions you want to read, select them, read them, and then junk everything else with the X or c commands.

However, sometimes a discussion becomes very heated, and splinters into several related threads. Sometimes there may simply be several ongoing discussions about some topic in which you are not interested. In extreme cases it can be a nuisance even to search through the thread selection menu for topics that you want to read. In these situations, and some others, you can use trn's killfile mechanism to junk articles on certain topics automatically, so that they do not even appear in the thread selection menu.

For any newsgroup you read, you can create a killfile, which contains a list of patterns and commands. For example, the entry

/boring/j 
tells trn to junk any article whose Subject: line contains the sequence of characters boring. It doesn't matter how the pattern is capitalized; trn treats upper and lower case as the same here. The command j must be in lower case, though.

You can tell trn to search the entire header of the article for a matching pattern:


/boring/h:j
You can even tell trn to search the entire article:

/boring/a:j

To create or edit a killfile for a particular newsgroup, hold down the control or ctrl key while pressing k (usually referred to as control-K or ^K), when you are at either thread-selection level or article-reading level. This creates the killfile if it doesn't exist already, then takes you into the vi editor. You can now enter new kill patterns or delete ones which you no longer need. A new killfile might look like this, after you've inserted the patterns:


/ahmadi/j
/ahamadi/j
/lemur/j
~
~
(etc.)
~
~
"/home/jtbell/News/news/groups/KILL" [New file] 
Type ZZ to save the killfile and return to trn.

The killfile takes effect the next time you enter the newsgroup. Instead of seeing the thread selection menu immediately, you see a report on the effects of the killfile:


Processing memorized commands... 

/ahmadi/j
3726    Junked
3729    Junked
3730    Junked
3735    Junked
/ahamadi/j
3734    Junked
/lemur/j

Killed 5 articles.

[Type space to continue]
The numbers are the local article numbers for the articles which were junked. Typing a space takes you to the thread selection menu, where you can select and read articles as usual.

After you've been reading a newsgroup for a while, you may find that you want to ignore articles from certain people. Since a person's e-mail address normally appears in the From: line in the article header, you can usually accomplish this by placing the address in your killfile, together with the h modifier. For example, here is my current killfile for sci.physics:


/TIME HAS INERTIA/j
/sarfatti@netcom\.com/h:j
The third line junks anything from sarfatti@netcom.com. Notice the backslash before the period. Since a period in a pattern to be matched has a special meaning, I have to precede it with a backslash to tell trn that I really do want a period.

In general, the characters ., *, [, / and \ are "special" in a pattern and must be preceded by a \ in order to be interpreted literally. (Notice, however, that the /'s in the examples above are not part of the pattern itself, but merely serve to delimit it, and so are not preceded with a \.) The same applies to a ^ at the beginning of a pattern, and to a $ at the end of a pattern. These characters are part of UNIX's regular expression language, which allows you to do very sophisticated pattern matching which is far beyond the scope of this note.

Further Information

Trn has many more features, and can be customized in various ways. The most complete documention of trn is the man page, which you should be able to view online by giving the UNIX command man trn. It's about forty pages long, and some parts of it require you to be somewhat familiar with the UNIX operating system.

Obtaining This Document

You can get a copy of the latest version of this document as follows:
  1. Via anonymous ftp from cs1.presby.edu, directory pub/trn-intro.
  2. Via the Presbyterian College (Clinton, SC, USA) gopher server, either directly to cs1.presby.edu, port 70, or through the Other Gophers or similar menu on your local gopher server; look under Internet Resources.
  3. As a last resort, via e-mail from me (jtbell@presby.edu); please specify which version of trn you are using, which format you want (ASCII text, Microsoft RTF, PostScript, or Macintosh WriteNow 3.0 (BinHexed)), and the date on your current copy of this document, if you have one already (so I can avoid sending you a duplicate if there haven't been any changes).