rn, trn: You Get What You Pay for 101 keep the list private (e.g., by not putting it on the list-of-lists), the list will soon grow and cross the threshold where it makes sense to become a news- group, and the vicious circle repeats itself. rn, trn: You Get What You Pay for Like almost all of the Usenet software, the programs that people use to read (and post) news are available as freely redistributable source code. This policy is largely a matter of self-preservation on the part of the authors: • It’s much easier to let other people fix the bugs and port the code you can even turn the reason around on its head and explain why this is a virtue of giving out the source. • Unix isn’t standard the poor author doesn’t stand a chance in hell of being able to write code that will “just work” on all modern Unices. • Even if you got a single set of sources that worked everywhere, dif- ferent Unix C compilers and libraries would ensure that compiled files won’t work anywhere but the machine where they were built. The early versions of Usenet software came with simple programs to read articles. These programs, called readnews and rna, were so simplistic that they don’t bear further discussion. The most popular newsreader may be rn, written by Larry Wall. rn’s doc- umentation claimed that “even if it’s not faster, it feels like it is.” rn shifted the paradigm of newsreader by introducing killfiles. Each time rn reads a newsgroup, it also reads the killfile that you created for that group (if it existed) that contains lines with patterns and actions to take. The patterns are regular expressions. (Of course, they’re sort of similar to shell patterns, and, unfortunately, visible inspection can’t distinguish between the two.) Killfiles let readers create their own mini-islands of Usenet within the bab- bling whole. For example, if someone wanted to read only announcements but not replies, they could put “/Re:.*/” in the killfile. This could cause problems if rn wasn’t careful about “Tricky” subjects. Date: Thu, 09 Jan 1992 01:14:34 PST From: Mark Lottor mkl@nw.com To: UNIX-HATERS Subject: rn kill
102 Snoozenet I was just trying to catch up on a few hundred unread messages in a newsgroup using rn. I watch the header pop up, and if the subject isn’t interesting I type “k” for the kill command. This says “marking subject foo as read” and marks all unread messages with the same subject as having been read. So what happens... I see a message pop up with subject "*******", and type “k.” Yep—it marks ALL messages as being read. No way to undo it. Total lossage. Screwed again. —mkl rn commands are a single letter, which is a fundamental problem. Since there are many commands some of the assignments make no sense. Why does “f” post a followup, and what does followup mean, anyway? One would like to use “r” to post a reply, but that means send reply directly to the author by sending mail. You can’t use “s” for mail because that means save to a file, and you can’t use “m” for mail because that means “mark the article as unread.” And who can decipher the jargon to really know what that means? Or, who can really remember the difference between “k”, “K”, “^K”, “.^K”, and so on? There is no verbose mode, the help information is never complete, and there is no scripting language. On the other hand, “it certainly seems faster.” Like all programs, rn has had its share of bugs. Larry introduced the idea of distributing fixes using a formalized message containing the “diff” out- put. This said: here’s how my fixed code is different from your broken code. Larry also wrote patch, which massages the old file and the descrip- tion of changes into the new file. Every time Larry put out an official patch (and there were various unofficial patches put out by “helpful” people at times), sites all over the world applied the patch and recompiled their copy of rn. Remote rn, a variant of rn, read news articles over a network. It’s interest- ing only because it required admins to keep two nearly identical programs around for a while, and because everyone sounded like a seal when they said the name, rrn. trn, the latest version of rn, has merged in all the patches of rn and rrn and added the ability to group articles into threads. A thread is a collection of articles and responses, and trn shows the “tree” by putting a little dia- gram in the upper-right corner of the screen as its reading. For example: