Group test: newsreaders
Ah, Usenet newsgroups... Online communication and file sharing for the masses, still equal today to what it was before the advent of blogs, instant messaging and P2P networks: a fascinating universe with its own culture, from emoticons to killfiles and Godwin's law.
But with such a wide range of newsreader software for Linux, it's not easy to find the right one for you. In this group test we present six news clients - aka NNTP client amongst the truly hard-core - chosen according to two simple criteria. The programs must be developed mainly, if not exclusively, to deal with Usenet Newsgroups, and the application must be in active development, in order for it to run happily on a modern distro. Read on to find out our picks of the best newsgroup readers for Linux...
How we tested...
Today video chats and social networking services get more press coverage, but the newsgroups community is still alive and very active. It also retains peculiar characteristics. A newsgroup can be anything from a simple message or discussion board left over from the 80s to a multimedia file repository or any combination of those services. Consequently, in order to get the most from Usenet, you need a specialised program that must be (at least) a hybrid between an email client and a file download manager.
A Usenet client also needs features that are unnecessary in the email world.Real Usenet geeks have to deal with multi-part articles; they want to read stuff from a newsgroup while also downloading files from several other newsgroups, on the same or on different servers. On the Usenet, it's also common practice to send the same message to many different newsgroups. In such an environment, you need help from the software to be careful; otherwise, you'll spend most of your life in flame wars.
The newsgroup clients were tested under Fedora 9 running on a dual core AMD 64 3800+ system with 2GB of RAM. We used the latest stable version packaged for Fedora 9 with the exception of Xpn, since that is a simple Python script that doesn't require installation. In case you were wondering, Evolution is absent because, due to some inexplicable bug, the Fedora 9 version would not connect to NNTP servers, only email ones.
With all the clients we defined one custom account and the same newsgroup server, and performed basic tasks like subscribing and reading or posting messages with or without binary attachments. We've also paid special attention to ease of configuration, filtering and scoring. (Filtering spam on Usenet is crucial.)
There's no way to escape from Emacs. No matter what you want to do with a computer, the "operating system that also includes a half-decent editor", as somebody once called it, has a major or minor mode for it. When it comes to Usenet, Emacs has Gnus, the official GNU newsreader. While Emacs isn't exactly the friendliest editor on Earth, Gnus itself is much easier to use.
First of all, installation is not an issue. Emacs packages exist for all Linux distributions, and Gnus is included in most of them. Moreover, almost all Gnus functions are accessible with the mouse, so don't worry about shortcuts.
Gnus is a command-line client, but with X support you can use a mouse.
Gnus has many, many functions (it is Emacs, after all), from sophisticated scoring to sorting newsgroups by topic. You can define multiple servers, customise article formatting in many ways and use authenticated accounts. In that case, Gnus will prompt you for a username and password unless you write them in $HOME/.authinfo.
In spite of all these features, basic usage of Gnus is very quick and painless. Its minimal configuration is simple: you just need to remember to do it before you start using Gnus, to avoid confusing messages from Emacs. Create the file $HOME/.gnus.el and add to it three lines like these:
(setq user-mail-address "you@your_isp.com") (setq user-full-name "Faithful LXF reader") (setq gnus-select-method '(nntp "your.preferred.newsgroup.server"))
Save the file, type M-x gnus, press Return and lo!, Gnus will open the server specified in gnus-select-method. To browse the list of newsgroups, type A A. To subscribe, type U and then the newsgroup name. For everything else, enter Ctrl-i gnus to open the manual. Documentation-wise, Gnus wins this Roundup for completeness. Since the official manual is really thorough, however, you'd better start from the tutorial at www.emacswiki.org.
Verdict: Gnus is the newsreader of choice for people who already use Emacs. 7/10.
SLRN is is a console program that will work even if you need to run it via SSH on some remote server where Emacs isn't available. It's the smallest and lightest client in this Roundup, but this doesn't mean that its functionality is limited. You can add features to this program in several interesting ways, without ever touching its source code.
The easiest tweak is to make SLRN use your favourite editor. The other is through macros, which in the case of SLRN are actually small S-Lang scripts: you could use or modify those distributed with SLRN itself or try to write your own, as explained in the page http://slrn.sourceforge.net/macros.html. The final way to make cool things with SLRN, or at least with the articles you read with it, is to pipe those articles to any external program with just one keystroke (|). In general, the behaviour of SLRN is controlled by one or more options that are clearly explained in the resource configuration file (slrn.rc) distributed with the program.
Colour schemes, threading and binary newsgroup support are all present in SLRN.
As with Gnus, SLRN needs a bit of manual setup before it starts in order to be happy, but it's not a big deal. You can define as many servers as you like in the configuration file, but the default one should be written manually at the prompt or in the shell.rc file, in the environment variable NNTPSERVER. Using predefined macros, you get: GnuPG signatures, one-key scoring, optional mouse support and basic support for binary postings. Using SLRN is easy: whenever you need help, type ? and the command list will appear. The only small issue is that when you hit Q after reading an article, SLRN closes the whole newsgroup, not just the article.
Verdict: A great compromise between features, resource usage and simplicity. 6/10.
Thunderbird is so good and so fulfilling as an email client that we wouldn't be surprised to discover that many of its users never noticed that it can handle Usenet too. However, all you have to do to use Thunderbird as a newsreader is define a 'newsgroup' type account and associate to it a server name, port and email identity. That's all it takes to make the new account appear in the left pane.
After that, if you click on its name you'll open a configuration pane where you can manage your subscriptions, accounts parameters, message filters and offline settings. As far as offline usage is concerned, what you can configure in Thunderbird is how long to keep old or read messages, if at all. You can even delete just the bodies to save disk space and keep the headers.
All the formatting and message tagging capabilities of Thunderbird can be used in newsgroups too.
The filter interface is quite flexible, but not as much as that of Knode or Pan. Each filter applies to the newsgroup level and can contain as many conditions and actions as you like; you decide if the filter acts when any or all of the conditions match. The choice of conditions, however, is smaller than with other clients: you can only check if subject, author or date of an article match a string or fall within a certain range. The actions include automatic copy to other folders, starring or tagging, and set priority. A Filter Log window shows how Thunderbird uses these filters to process articles.
The availability of the tagging system is probably the greatest advantage of using Thunderbird to browse newsgroups, as you get to keep all the visual presentation gadgets you may be already using for email. Of course, the same applies to many other features of Thunderbird, from the spellchecker to the quick print preview function or any Thunderbird add-on you may have installed.
Verdict: If your use of newsgroups is mild, Thunderbird is a good solution. 8/10.
The X Python Newsreader runs on every operating system where Python and its GTK bindings are available. On Linux, all you need to do is unpack the tar file, place its folder wherever you like on your system and launch the xpn.py script.
Of all the newsreaders with a graphical interface described in this roundup, XPN is probably the one that starts most quickly. By default it occupies the whole screen, which is a bit annoying, but really easy to correct: just resize the window to fit your taste. XPN will remember that size and use it in the future.
Unlike other newsreaders, in XPN you have to define at least one identity, even if you only want to read articles, before subscribing to any newsgroup. To set up an identity, click File > Preferences to open the configuration window. This interface has five tabs: Server, User, Display, Groups and Misc. In the last one you can tell XPN which web browser and external editor you want to use while reading or posting.
XPN is the only newsreader that lets you re-order panes in any way.
Article display is really flexible: you can independently colour the window background, headers, text and three levels of quotes. The panes layout is equally customisable. You get a matrix of 20 icons, each representing a different combination of the article, headers and groups list panes, and all you have to do is check one you like.
The scoring and filtering interface of XPN is as flexible as that of Thunderbird or Knode, but is organised in a different way. Scoring can depend on many fields, from From, Subject and Date to the number of newsgroups to which an article has been posted. Actions like marking an article as read, ignoring it and so on have their own panel and are always applied after scoring rules.
Verdict: A unique choice for people who need a simple, multiplatform newsreader. 7/10.
You may never have guessed it, but KNode is the Usenet client of KDE. It takes advantage of all the foundations available in KDE and it shows. KNode has lots of useful features and configuration options to put at your service.
Maybe this is the reason why, the first time we started it, it was so slow to retrieve and show the list of newsgroups available on the server - we seriously thought that our version was severely broken: it just lay there in the middle of the screen, without any error or progress message. After a few minutes, however, it woke up and gave us a list of newsgroups. After that we never had any other performance problem.
KNode is a powerful newsreader. It can handle an unlimited number of NNTP servers and it lets you define a different default identity and policy for article retention (which KNode calls cleanup) for each identity. After you've subscribed to a newsgroup, you can override those default values with more appropriate ones if necessary. Just remember that, unlike Pan and other programs discussed in these pages, when you start using it KNode doesn't ask you to define at least one server to connect to. It just sits happily in its window until you configure at least one account and tell it to go get the news. Eventually, when you select a group you can only choose to download all new articles, without limiting it to those newer than N days.
The powerful Scoring Rule editor for KNode makes it easy to filter out articles.
One of the biggest, if not the main strength of KNode is its scoring capabilities. Don't get confused by the several KNode entries about scoring, watching or ignoring threads. In practice, they are always the same feature. More exactly, you can assign to a thread scores from -10,000 to +10,000: 'Watch' is a shortcut to set the score of the selected thread to 100, 'Ignore' to -100.
The Scoring Rule Editor is accessible from the top menu (Scoring > Edit Scoring Rules) after giving the rule a name. Next, you can enter all the newsgroups for which that rule is valid. After that, you can define as many conditions as you wish. There are several types of conditions: you can tell KNode to look for plain strings or regular expressions in the subject, author or Message-IDs headers. Alternatively, you may look for articles posted before or after a given date, or whose references or line number exceed some threshold.
When you're done, you realise that 'Scoring' is a deceptive name for this function. 'Adjust Score' is, in fact, just one of the actions that KNode can perform when all the conditions match. The others are colouring the article subject in the article list, opening it in a separate window or marking it as read. You can 'copy' existing rules, that is, use it as a base for a similar one with another name, instead of typing everything again. The rule list in the left-hand pane of the Rule editor has buttons to alter the order in which they are applied.
Work to rule
Mastering the Rule Editor is essential if you plan to use KNode, also because it's the only way to get the KNode version of a traditional killfile. If you don't want to read any message from 'Joe Troll' you need to give a negative score to his messages, then click on the funnel button and activate the 'Watched' filter.
The article window of KNode, with its Followup and Reference headers in view.
Of course, KNode isn't just scoring and searching. It also lets you use an external editor, add or verify digital signatures and cancel, or supersede, articles that you already posted (if the server supports such functions). Finally, we like its article pane, which shows very clearly the newsgroups to which an article was posted, the value of the 'Follow-up To' header and links to all the articles referenced by the current one.
Verdict: KNode has one of the best article scoring interfaces around. 7/10.
Pan is a fast, lightweight but very complete Usenet client originally developed for the Gnome desktop but now also available for Windows and Mac. There's nothing special to report about the look and feel of the user interface, but don't take this as a liability: Pan keeps everything you need in sight, without making a big deal of it or getting in the way.
Almost all menus and functions are usable without the mouse. The toolbar has two search boxes: one is for newsgroups on the server and the other is to find, inside the current newsgroup, all articles with a given string in the author or subject. The right half of the toolbar hosts several buttons to only view articles that are, for example, complete or already cached.
The default Pan interface is extremely easy to use but very flexible
During general configuration you can declare as many servers as you like and set the maximum number of simultaneous connections both on a per-server and on a per-session basis.
To make heavy Usenet surfing even more efficient, Pan has a download task manager. This is a panel that appears when you click on the button in the bottom-left corner of the Pan window. Inside the manager you can cancel, pause or restart any ongoing task at will. You can even assign different priorities to each task and change them while the tasks are still running. As a result, you can read text articles as quickly as possible even while you're downloading binaries from half the Usenet.
With one exception, scoring is pretty flexible. As in KNode, 'Watch' and 'Ignore' are just synonyms for 'give a particularly high or low score to this thread': the only difference is that Pan uses higher values for these two functions, namely -9,999 and +9,999. In all other other cases, you have plenty of matching criteria and scoring actions and can set the duration of a rule.
The Pan task manager makes it easy to download binaries and articles from newsgroups in the most efficient way.
What's the score?
If you need scoring to happen when subject or author of the article match some pattern, Pan understands regular expressions. Alternatively, you can tell Pan to score according to article size, line count, age in days, references or number of newsgroups to which the article itself was posted.
Once you're done defining the rule, you can add it to the list for later use or immediately 'rescore' all the articles in the newsgroup. Only two things are missing from Pan's scoring system: you can't name your rules, and you can't have more than one condition in each rule. All the other features you may probably need in a newsgroup client are present. Each subscribed newsgroup can have a different character encoding and directory for saving attachments. Pan supports every encoding scheme Usenet can throw at you and knows how to deal with multi-part articles. Graphics attachments show up scaled in the article pane: displaying them in their actual size takes only one click.
One irritation concerns the search function: imagine you want to have a look inside linux.kernel for the subject 'Debian' - just enter that string in the search box. But this filter remains active even if you move to an unrelated group, so you find yourself staring at an empty window until you end the search.
Apart from that minor oddity, however, Pan has one of the most complete feature sets around and is a pleasure to use.
Verdict: Excellent binary support, scoring system and a friendly interface. 8/10.
Our choice: Pan
We know that we've already said this, but Usenet is a weird world with services and architecture different from that of email, file sharing or any other corner of cyberspace. If you only use newsgroups for writing and reading text articles, Usenet becomes little more than an alternative to mailing lists or web forums, albeit with more spam and background noise. If this is the case, or if you're only interested in one or two text newsgroups, then you probably don't need a separate newsreader; not if you're already using Thunderbird, for sure, or any other good email client.
In the same scenario, Gnus is perfect if you already live in Emacs, especially if you have invested lots of energies in customising the editor. SLRN is the way to go if you can only access the Usenet or some private newsgroup through accounts on remote servers, and the possibility to play with macros makes it very interesting for aspiring geeks. Ditto for XPN if you grok Python: it's a nice program with lots of features, but a code base that's small enough to make hacking XPN an interesting project. XPN and Thunderbird are also the two most portable clients. They will work if you set them up properly together with a Python interpreter and the right libraries for XPN, even if you carry them around on a USB stick to plug into whatever computer is available.
Knode is very complete and has probably the most flexible scoring system of any app in this Roundup, with XPN coming a close second. Because of this KNode may be the best solution if you follow several text-only newsgroups. Another advantage of KNode is that it lets you share address books and other email-related settings with KMail or the rest of the Kontact PIM, the KDE personal information manager.
Besides text articles, Pan will handle as many binary newsgroups as you're able to throw at it.
Then again, Usenet isn't just text, is it? Yes, it's an immense repository of warez, adult material and other stuff that your mother wouldn't want you to download, but it also stores lots of interesting material, from historical photos to projects from woodcraft to electronics. Pan is better for binaries, so we declare it to be the winner of this roundup. As already noted, its scoring system isn't as flexible as the one in Knode, but it's quite good anyway. Therefore, we consider Pan the best overall solution for heavy users of all the Usenet, be it text or not.
And now, over to you...
Have we missed your favourite newsreader off the list? Do you think newsgroups still have a part to play in the Web Two Oh world? Let us know below...
First published in Linux Format magazine