Yanoff 1.5

The free UseNet newsreader project


This is a documentation. I am a programmer. You are a user. There are two facts about documentations, users and programmers:

In fact, I study computer science so this will only make the situation even worse. And as I know from my job at a support hotline: Users don´t read documentations at all.

These observations are the reason why I don´t maintain this documentation with great effort. I included all new information neccessary to use Yanoff but some of the images are old or missing. I hope you will find the corresponding forms in Yanoff without any problems, though.


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

First of all, Yanoff is both an online and an offline newsreader. It supports NNTP to receive and send network news articles.

Yanoff can send eMail messages e.g. as reply to a news article or as an original eMail message.

Yanoff supports crosspostings 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.


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.


After the start Yanoff shows the list of active newsgroups. If you have had no Yanoff installed prior to this installation you´ll get an empty list. Otherwise you might get crap. In this case please delete Yanoff (and by doing so all Yanoff databases that have information in the old format) and reinstall Yanoff.

When first starting Yanoff, the list is empty except for an internal group used to store outgoing articles. In the menu line Yanoff shows an estimation of the amount of free memory. The estimation is based on the routines used in LauncherIII and you´ll notice that the two values match very exactly.

Subscribing to newsgroups

New newsgroups can be added by "Subscribe" in the menu "Management".

They are listed in a row along with the number of articles that are in the respective group. You can change the layout slightly: tap in the title row next to the left side of the word "Newsgroup", where the vertical line is shown, and draw the stylus in either direction. If you move the Newsgroup column to the left border of the screen the number of articles in each group is no longer shown and the redraw is a little bit faster.

Server Preferences

When some newsgroups are created it is time to adjust the preferences. If you tap on "Server Prefs" in the "Prefs" menu, the following form will pop up.

There are two types of servers Yanoff knows about: mail servers and news servers. The first server in the list is always the mail server and the other ones are news servers. For every server you can enter a name to identify the server in several selection lists, an address, the port number and a timeout value.

In the mail server form you can specify a Reply-To address that is used for outgoing email messages.

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 "Address". The field "Port" contains 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 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".

Since version 1.02 Yanoff supports authenticating news servers. These are servers that can be accessed by the internet but only if you have to have an account on them. To use these servers Yanoff has to log into them by entering a username and a password. These pieces of information can be entered in the fields in the lower half of the Server Prefs form. To use authentication you have to check "Use Auth".

When everything is fine, you can leave the form with "OK" and save the changes made or with "Cancel" and forget what you´ve done.

For both of the two server types there is a second page you can access by tapping on the ">>" button.

A third preferences form can be used to configure the posting facility of Yanoff.

The From field of your postings is made of the username and the hostname you entered in the respective fields. That is, if you want to use the return address "john_doe@somewhere.com" you should enter "john_doe" in the field "Username" and "somewhere.com" in the field "Hostname". Your Realname will be appended to the From field of your article as comment:

From: john_doe@somewhere.com (John B. Doe)

Zone should be set to something like "GMT+/-n" where "n" is the number of hours your timezone differs from Greenwich Mean Time.

In the field "Signature" you can enter a text that will be appended to every new article you write. You can include a greeting like "Bye - John Doe" or just begin with some quote. The signature itself (that means everything after the "Bye") should not exceed four lines. This is a UseNet rule. I don´t know of any other reason that would make sense, but some of the more fanatic UseNetizens will simply PLONK you of start flame wars if your signature is too long. Oh. And there is another thing about the signature. It should be separated from the rest of the article with a line that only contains two dashes and a space ("-- "). Some newsreaders will skip the rest after this line and save HUGE amounts of space. This is the other thing fanatic righteous UseNetizens will not tolerate if it is violated. (I hope they won´t hang me for the header lines Yanoff generates ...)

No field´s data will be checked for correctness. The only help you can expect from Yanoff is: you cannot enter characters that are not allowed in the header files that correspond to the field you are editing. If the fields contain invalid data the newsserver will reject the article and an error message is displayed after the attempt to post the article. The best thing is: enter a valid string (haha) and try it with a test article in a test newsgroup.

You can duplicate the current server record by choosing "Duplicate" from the Edit menu.

Choosing "Delete" deletes the current server.

A good idea is to first complete the mail server data (especially the second page) and then duplicate it and edit only the fields that differ from the server you duplicated.

Newsgroup Preferences

You have to select a newsgroup from the newsgroup list view to edit its preferences.

"Name" contains the name of the newsgroup. If the name is not chosen correctly you can change it here.

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).

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".

"Poll max" is used to choose whether you want to poll the next articles (these directly after the last article you downloaded from this group) or the last articles and how many you want to download.

If you don´t want to download articles from this group, uncheck "Poll".

If you want to have articles in this group sorted by thread, check "Thread". This function is only implemented basically but I promise I´ll spend some hours to improve it in the near future.

Since there are several servers to download articles from, you have to choose one of the list "Poll from".

In more social oriented newsgroups, some people like to see the name of the author in the title line in article view, some like to see the subject. You can enter your preference in the field "Display".

You can enter some custom header lines in the form that appears when you tap on "Headers". These header lines are appended to each article you post to the current newsgroup. The lines are not error checked except for the character set that is permitted in the field. The only check additional to this is that superflous linefeeds are removed and an additional linefeed is inserted if the last line does not contain it.

Miscellaneous Preferences

There is another Prefs menu: Misc Prefs.

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".

"Sample arts" is the default value for the same field in the newsgroups prefs.The same is true for "Article max".

Yanoff wordwraps outgoing articles and messages at a certain line width. You can select the width from the list "Wordwrap".

If you want Yanoff to beep when it finished downloading articles, check "Beep".

"Cut off sig" has to be checked if you want to cut off signatures of incoming news articles. This saves a bit of memory.

If "Jump back" is checked, Yanoff jumps back to the view you were in when you left Yanoff the last time.

"From style" can be used to set what information should be shown: eMail address or real name of an article´s author.

Download of articles

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

First, I´d suggest you to take a look at the "Poll Prefs" from the "Comm" menu.

The first list ("Get") is used to specify what kind of information you want to get:

The second list ("From") gives you the opportunity to choose from what server(s) you want to download articles from.

If you want to post eMail messages and articles, check "Post saved".

You can now save the preferences without downloading anything (tap on "Save"), save the prefs and start polling (tap on "Save/Poll"), poll once with the current settings (tap on "Poll") or cancel this form and abandon any changes.

If you just want to repeat a poll operation with already entered settings without opening the Poll Prefs, simply tap on "Poll" in the newsgroups list view or select "Poll" from the "Comm" menu.

Enter and leave a newsgroup

Just tap on the newsgroup to enter. 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. Alternatively you can use the icon in the upper left corner that shows an arrow pointing upwards.

Also in the newsgroups list you can change the layout a little bit. Tap in the title row next to the left side of the word "Subject" to drag the subject column to either direction. If you drag it completely to the left only the subject line is shown.

List with From: and Subject:

These images show article lists of a newsgroup. You can change the column layout like you do in the newsgroups list form. 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.

You can change the width of the two columns. Tap in the line between form title and the first table entry near the gap between the columns. A vertical line that marks the column separation will appear if you hit the place. Now you can drag the line to the desired position and lift the pen. Voila! The new layout is saved in the preferences when you leave Yanoff.

Reading an article

When reading an article you start reading the article automatically in body view if the current article has a body 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 labeled "OK" 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 inverts. 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.

Since version 1.02 there are two arrow buttons to switch to the next and the previous article in a group. You can also enter a space (stroke to the right on the graffiti area) to switch to the next article.

Header view

Body view with menu

If you want to create a Follow-Up, tap on "F'Up". To send an email reply to the author, tap on "Re".

Also since version 1.02 there is a small menu in article view that lets you copy a selected portion of an article to the clipboard or select a complete article for copying. Remember that the clipboard of a Pilot is limited and it will probably not be able to contain the whole article at once. Workarounds are multiple select/copy cycles or clipboard expansion hacks.

And I am proud to present: Export to Memopad. Yanoff now supports the export of complete articles along with some header information to an unfiled Memopad entry.

If you want to answer to an article, tap on "F´up" to create a follow-up. See Writing an article for details.

Writing an article

To compose a completely new article use the menu command "/Comm/New Article". You have to enter a subject and the name of the newsgroup(s) you want to post the article to. Below the black line is the field that contains the body of the article.

If you use this command while being in article list view, the name of the active newsgroup is automagically inserted into the Newsgroups field.

When you are finished you can send the article immediately to the news server. This only works if you are in Online mode. If you are not, you can save the article. It is stored in the newsgroup "!!Outgoing" and can be sent by selecting the menu command "/Comm/Post saved". If you want to dispose of the article, you have to tap on "Cancel".

You can edit saved articles by entering the newsgroup "!!Outgoing" and selecting the very article you want to edit and then tap on the "Edit" button. You get to the same form that is used to create a new article.

Beware! If you tap on "Cancel" in edit mode, the article is deleted. If you want to leave the form without sending it immediately, tap on "Save".


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

The last menu is called "Misc" and contains miscellaneous items like some preferences forms and a reindexing facility. Sometimes it happens, that Yanoff hangs during a network download. This could be because your batteries run empty while downloading or because of other (unnormal) problems. Unnormal means, that Yanoff normally does not crash. Whenever this happens, though, Yanoff would have downloaded some articles but since they have not been installed into the newsgroups, they will never show up anywhere except in the database, consuming your RAM. In this case you can reindex the article database. All articles will be installed freshly into the newsgroups and you can continue downloading the rest of them.

There is a second utility in the "Misc" menu: "Reset newsgroup" that is only accessible when you are inside a newsgroup. Imagine you subscribed to comp.sys.palmtops.pilot and started downloading the last 50 articles. You read them, put your Pilot aside and three days later, you want to read some news on a bus tour. Normally you would have to download all traffic in the newsgroup of the past three days. This is a bit hefty and you probably read it on your desktop computer, anyway. So You can reset the newsgroup. It appears to Yanoff as if it has been subscribed to recently (the internal last-article-counter is set to 0). So at the next download Yanoff will only download the number of articles you entered in /Misc/Misc Prefs/Max articles. Resetting the newsgroup does not delete any article.

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 conventions

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.
A (Mac|Gnome|KDE) Conduit Useful would be some conduits to sync Yanoff with some other software. Since I don´t know how to write a conduit help with this issue is very urgently needed. (A Windows conduit is already available.)
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.
If you don´t want to read ISO special characters in subject lines or even worse throughout the article, you should implement a translation function for Yanoff.
Compression To save space in the article database a compressing routine would be fine.

Contact the author, get the sources

Author and maintainer of Yanoff is:

Matthias Jordan <mjordan@code-fu.de>

The currently only available web space for Yanoff is located on SourceForge. Here you´ll be able to download the latest FAQ, the complete sources and the latest actual beta version.

Software used

Yanoff has been developed under Linux 2.0.36 using the fabulous free GNU C compiler and PilRC 2.4 from Wes Cherry. Thanks to the guys who wrote these fine pieces of software!

Since version 1.1, Yanoff has been built using multilink from David Williams. Thanks, David! This tool rocks!

From the infamous version 1.4.5 on Yanoff is being developed on a Debian GNU Linux 2.2.16 box using the egcs compiler and PRC-Tools 2.0. The sources and the project´s homepage both reside on SourceForge.


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 as long as my copyright notice is untouched and the sources accompany the binaries. The exact license (GPL) can be found at the Free Software Foundation´s website.

If you do like this program and want to do something good, help the people in Nicaragua. After the severe catastrophy due to El Nino (not the handheld ...) many people lost their houses and whole villages and farmland have been destroyed. The health care is worse than bad in this small and poor country in Central America.

Many organizations accept donations. Even the smallest donations will be a help to support our friends in Nica. 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). For contact information of other socialist organizations that could transfer your donations to Nicaragua you should visit the homepage of the IUSY. If the organization you contact has no link to Nicaragua, they will probably have a usage for your donation themselves.

If you want to do something good, visit The Hunger Site and go to the ads page. The Hunger Site lets you donate money by simply visiting a page that shows some ads from sponsors. The money generated by you is used to donate food for poor countries. That means you could show yourself thankful for Yanoff, do something good and don´t have to spend any money. If this doesn´t sound good, I don´t know what would.

Yes, it´s f****** political. (And: Yes, I also do other things than writing code. And: yes, I do know that „socialist“ has a different meaning than „social.“)