Yanoff

The free UseNet newsreader project

Introduction

Yanoff is a free UseNet newsreader project. It is released under the terms of the GNU public license that comes along with this documentation. That means that you receive the source code of the application with the application itself.

Ok, but why this name?

Well, I thought about several names but almost all combinations of "Palm", "Pilot", "News", "Pad", "Go" were used by other software. Furthermore I don´t like names that are more a description of what a program does than a real name. And I like acronyms. I started with "Yet another newsreader" but that would result in "YAN" - a little bit short. Then I remembered the old list of internet services assembled by a guy called "Yanoff". I thought is would be quite a good hommage to Yanoff and the good old times when AOL was not (yet) the subject of UDP debates in german UseNet.

Features currently supported

Let´s begin with a warning: Only PalmIII devices are supported at this time. If you want to change this, see project.

First of all, Yanoff is both an online and an offline newsreader. It supports NNTP to receive network news but cannot send articles it self, at the moment.

Yanoff supports crossposting and stores the message IDs of received articles to keep track what data is useful to download and what not (an article that is or was already in Yanoff´s database is considered to be not useful...).

Yanoff supports the download of article headers, bodies and complete articles. Dependent on where the download command is issued (inside a newsgroup or in the newsgroup list) either the current newsgroup´s articles or all newsgroups´ articles are downloaded.

Yanoff memorizes the number of the last article received in a newsgroup. This way additional traffic is avoided because only articles are requested that have not yet been in Yanoff´s database.

Installation

No special installation procedure is required for Yanoff. Simply follow the instructions of the Palm Pilot manual or try "man pilot-xfer" on Linux workstations.

Usage

After the start Yanoff shows the list of active newsgroups.

When first starting Yanoff, the list is empty. New newsgroups can be added by "Subscribe" in the menu "Management".

When some newsgroups are created it is time to adjust the preferences. Simply tap on "Preferences" in the "Prefs" menu. The following form will pop up.

To get UseNet news you have to have access to a news server. This is a computer that stores articles for other people. The address of the server has to be entered in the field "Newsserver". The field "Port" denotes the TCP/IP-Port of the news server. This is usually 119 but may be a different one on your server so if you fail to connect on port 119 you can change it to the one needed. Your administrator will be able to tell you the right port number. You should not change the default value unless you encounter problems when establishing the connection.

Yanoff stores the Message IDs of all articles it received in a separate database. A Message ID is a string that identifies a usenet article worldwide. There are by definition no two articles with the same ID unless a software malfunctions. Whenever Yanoff is about to download an article it first gets its MsgID and looks it up the its own Message ID database. If Yanoff doesn´t find the ID, the article has probably never been in Yanoffs database and it will download the header and, depending on the command the user issued, the body. Suppose you are polling several newsgroups (that means, you are retrieving articles from them) and a guy posted a 70 KB FAQ in two different groups but the articles arrived with a delay and you have already downloaded it from the first newsgroup it arrived in. Now without the MsgID database the same article (that may be extremly boring) would be transferred a second time. But with the MsgID mechanism Yanoff recognizes that the article has already been on the device and does not download it. (Unfortunately Yanoff can not recognize if an article is boring...) The only disadvantage with this method is, that all MsgIDs have to be stored in a separate database. This costs about 50 byte per downloaded article. After a few weeks the database would get very large. So Yanoff can delete old MsgIDs of articles that are not expected to arrive anymore. You should try several values but 5 days should be enough. So this is the default value. You have to push the "Purge" button next to the field "ID Purge" to get rid of old MsgIDs.

All articles are stored locally on the Pilot and reside there until they are deleted. There are several methods to delete articles. One of them is to delete all articles that are older than a certain amount of days. This amount of days is what you can enter in the field "Art Purge".

Whenever Yanoff downloads new articles in a newly subscribed group it will download only the last few articles. Some newsgroups have a very high throughput of articles and who knows how many articles are in your new newsgroup and would have to be downloaded? The exact number of articles downloaded in this case is entered in "Sample arts".

Yanoff is a networking program and networks are cool but not without faults. Sometimes it happens that an expected result is not achieved. Say, Yanoff issued a command to the server and waits for the answer. Unfortunately somebody stumbled over the network cable that connects the server to the internet. Or the news server program dies. Yanoff would wait very long for the answer to come. To prevent this, you can enter a timeout value in "Timeout".

Palm Pilots are very cool but they lack one thing very much: memory. I am the lucky owner of an upgraded Professional and have 2 MB but this is not much, either. Unfortunately again, some people have plenty of time and generate very large articles that would not fit into the memory of a Pilot or prevent other articles from getting saved. To prevent this, Yanoff stores only the first couple of KBytes of an article on the Pilot. Yanoff can store articles to a size of about 60 KB but there will be currently unhandled problems with articles that are as large as these. So currently the absolute maximum of an article to be stored is 31 KB. Simply enter a value in "Article max" to set the maximum size of an article in memory (including header data).

Server connection

Before we start downloading articles in online mode we should establish a connection. There are exactly to connections involved in this game: The connection between the Pilot and the PPP server and the connection between Yanoff and the news server. By issuing the command "Go online" Yanoff builds up the latter one. In the case that the PPP connection is not up yet, Yanoff will bring it up. The Pilot will show the network dialog. It may be (see above) that something will go wrong. In this case simply repeat the command. If this doesn´t help, select "Go offline" in the same menu and "Go online" again.

If you have already built up a connection with another application (the network panel for example), you have to "Go online", too, because Yanoff has to connect to the news server.

The command "Go offline" completely teminates the connection both on protocol layer (the connection to the news server) and on hardware layer (modem connection to ISP). If you leave Yanoff to another app it will close the Netlibrary and set a timeout. Within the timeout you can start another app and use the same PPP link Yanoff used. If you don´t do that and the timeout ends, the Netlib will close the modem connection.

Download of articles

After we have finished the setup and went online we can now try to download some articles from the net.

To download new articles from all newsgroups, stay in the newsgroups list and select one of the "Get" commands from the Menu "Comm". The "Get" commands come in three flavours:

If no network connection is established when selecting one of the above commands, Yanoff establishes a connection, executes the command and terminates the connection again.

Sometimes it happens that Yanoff has an active connection, transfers some articles and then the autooff strikes again. When the Palm Pilot switches itself off, the active network connection is terminated. Unfortunately, Yanoff doesn´t notice this and tries to do some stuff with a network currently not open. The best thing to do (after you recovered from the error messages) is: "Go offline" - "Go online".

Also sometimes there occurs an error I was not able to track down yet. Yanoff gets some weird response from the server and terminates the connection to the server. Simply select "Go online" from the "Comm" menu and reconnect to the NNTP server. If this doesn´t work (although it should) - "Go offline" - "Go online". I haven´t made a correction to this symptom (i.e. let Yanoff itself go online again) to have a chance to track this bug down. I think it will be fixed in the next version.

This image shows how Yanoff displays the download progress. There are some characters printed behind the article numbers. An "h" means that a header was received. If there is a dash ("-") instead of the "h" the header was skipped because the article has already been on our device.

A "b" means, that a body was received. A dash instead of the "b" means, no body was downloaded because the appropriate article already had a body.

You can abort the download of articles by tapping on the "Abort" button.

Enter and leave a newsgroup or article

This one is easy: Just tap on the newsgroup to enter. Leaving is a bit more complicated, since there is no button to do so. You can leave the newsgroup view (and the article view) to the next higher level by entering a backspace - a stroke to the left on the graffiti area. I used this mechanism to save space in the list view.

This image shows an article list of a newsgroup. In the first column of the table there are some flags shown:

The second column contains the name of the poster and the third column the subject of the article.

Reading an article

Offline mode

"Offline" means that you have no server connection. Normally in this mode you already have the complete articles - that means headers and bodies - in your articles database. Thus you can read news in the bus or where ever. When reading an article you start reading the article automatically in the body if the current article has one in the database. If there is no body stored with the article (because you only downloaded the header) the header is displayed. If you read the body and want to take a look at the header data, just tap on header. The header gets displayed and the button that once displayed "Header" changes into "Body" - to switch back to the article body.

To the left there is a button called "Done" that closes the article view and gets you to the article list view. To the right there is a button labeled "K" and one labeled "S". When "K" is pushed, the current article is marked to keep and the button changes to "k". When pushed again, the articles gets unkeeped again. The "S" button does simliar things but selects/unselects the article. In the article list menu you can do some nice stuff with selected articles so this is a really useful button.

Header view

Body view

Online mode

"Online" means that you have a usable connection to a news server. Most of the things said for the offline mode apply here in the same way. The difference is: When you read an article that does not have a body in the database, Yanoff connects to the server, downloads the body that belongs to the header and switches to the body view.

Maintainance

The menu "Management" is full of useful maintainance commands that I do want to explain here.

The Project

The goal of the project is to create a free, stable, functional and useful newsreader for the Palm Computing Platform. Because the source is distributed with the app all users can help to track down bugs or supply their own enhancements to make Yanoff better and more stable.

The rules

It would be very nice if you helped in one or another way. If you want to, please follow these rules:

Some things that are still missing

Maybe you want to do some work in one of the following fields.
Conduits Useful would be conduits to sync with Forte Free Agent and Outlook (Express). Since I don´t know how to write a conduit help with this issue is very urgent.
Posting
facility
Sure. Reading c.s.p.p. on the road is cool. Even cooler would be posting news.
Translations In order to let as many people as possible benefit from this software I would appreciate translations of the software and the documentation into other languages (including asian ones). In particular, a translation into correct English would be nice.
Translation-
tables
If you don´t want to read ISO special characters in subject lines or event worse throughout the article, someone should implement a translation function for Yanoff.
Compression To save space in the article database a compressing routine would be fine.

Contact the author

Author and maintainer of Yanoff is:

Matthias Jordan <mjordan@sensenet.wirepool.free.de>

The currently only available web space for Yanoff is located on free.de.

Registration

As I already mentioned, Yanoff is free. Thas means: sell it, give it as a gift to your girlfriend (only if you want to be mean), change it, do what ever you want to do with it, without need to pay for it.

If you do like this program and want to do something good, help the people in Nicaragua. Many organizations accept donations. In germany you can contact the SJD-Die Falken, a socialist youth organization that has a partner project in Leon, Nicaragua, and a direct contact to the people of the Juventud Sandinista (sandinist youth, youth organization of the FSLN).