RISC World

PD World

Paul Brett with the latest freeware and PD releases for RISC OS.

BogoFilter - Stefan Bellon

Bogofilter is a Bayesian spam filter. In its normal mode of operation, it takes an email message or other text on standard input, does a statistical check against lists of "good" and "bad" words, and returns a status code indicating whether or not the message is spam. Bogofilter is designed with fast algorithms, uses the Berkeley DB for fast startup and lookups, is coded directly in C and is tuned for speed, so it can be used for production by sites that process a lot of mail.

Bogofilter treats its input as a bag of tokens. Each token is checked against "good" and "bad" wordlists, which maintain counts of the numbers of times it has occurred in non-spam and spam mails. These numbers are used to compute the probability that a mail in which the token occurs is spam. After probabilities for all input tokens have been computed, a fixed number of the probabilities that deviate furthest from average are combined using Bayes's theorem on conditional probabilities. If the computed probability that the input is spam exceeds a cutoff determined at compile time (currently 0.95, for the Robinson-Fisher algorithm), Bogofilter returns 0 if spam, 1 if ham, 2 if unsure.


While this method sounds crude compared to the more usual pattern-matching approach, it turns out to be extremely effective. Paul Graham's paper A Plan For Spam is recommended reading.

This program substantially improves on Paul's proposal by doing smarter lexical analysis. In particular, hostnames and IP addresses are retained as recognition features rather than broken up. Various kinds of MTA cruft such as dates and message-IDs are discarded so as not to bloat the wordlists.

CDRip - R.W.Darlington

CDRip will convert a directory full of WAV files into mp3 files. Just drag the !CDrip application into the directory containing the WAV files and double click on !CDrip. The new MP3 files will be saved in the same directory. Files other than WAV files and other directories are perfectly safe in these directories, it only converts WAV files. Needless to say with MP3 files, hard drives with long filenames and large directories are preferable.

The Shine, Blade and Lame enclosed within work on a SA-RPC. In accordance with the rules for distribution of these MP3 encoders, the documents are enclosed.

FontMGR2 - Tom Tanner

!FontMGR2 was designed to give a better interface to you for your fonts. It is fair to say that it performs this task very well. In addition to this, !FontMGR2 allows you to group fonts and turn those groups on and off. So that applications you are using can have those fonts hidden from them. This means no more five yard font menus eating up your screen when you go to change font. It also allows you to store setups and its display features are not only configureable, but also a pleasure to use.


Font Manager requires RISC OS version 3.7 or greater with the nested Wimp. If you have very few fonts then installing !FontMGR2 may seem to be a bit unnecessary. In this case you are probably right, but if you have more than 10 fonts it will most likely be useful and if you have more than 25 then it will most likely be invaluable. Some users may wish to install !FontMGR2 with few fonts in order to use the utilities such as FontView, FontPages and MaTricks.

Help2 - Rik Griffin

Help2 is an interactive help display program, similar to the !Help supplied with RISC OS. It is very similar to the version of !Help in RISC OS 4 (and 5), but better.


To run Help2, double click the !Help icon. The application will load to the right hand side of the iconbar. Whenever the pointer is over an object that provides interactive help, the help text will be displayed in a pop up window near the pointer. Clicking Select or Adjust on the iconbar icon will toggle Help2 on and off. Click Menu over the iconbar icon for the application menu. The only item that should need any explanation is "Configure". This opens the configuration window. Note that the configuration window is actually a separate application, which needs the Toolbox modules to run. If you haven't got the Toolbox, you can edit the file "Help2$Choices" by hand. To see what the various configuration options do, run Help2 and point at them.

Png2Spr - Tom Tanner

Png2Spr allows conversion of graphics in the new "PNG" format to Acorn sprite files, and vice versa. Note that due to the Acorn sprite formats, the program converts 16 bit RGB colours to 8 bit RGB colours. Also, transparency is supported as an on/off mask. The PNG web pages (specifications & example files) are to be found at


To convert a PNG file (type B60), double click the file, or drop the file onto the program icon on the icon bar. To save the file when converted, click the menu button over the displayed picture, and drag the sprite to where you want to save it, or type in a path name and click OK. To convert a sprite to a PNG file, drop the sprite onto the iconbar icon.

VCache - 7th software

VCache is a RISC OS relocatable module designed to simplify access to large files and blocks of memory by acting as a cacheing system. If you are not a programmer, then VCache will be of little interest. When dealing with datasets or files which are larger than the free memory in the machine, there is often a requirement for virtual memory: a process of swapping subblocks of the data in and out of memory to a file on disc as and when they are required.

However, virtual memory has a couple of drawbacks. The first being that it really needs support in the OS in order to work well. RISC OS does not have any support for virtual memory. The second drawback is that virtual memory requires you to set-aside a block of logical address space as large as the dataset to process. On a 32 bit RISC CPU, there is only 4 GB of logical address space and substantially less with RISC OS running. Thus, a program could not efficiently process multiple multi-gigabyte files simultaneously, even with virtual memory. What VCache does is to indirect the access to the file through a set of routines. This is clearly slower than direct access but means that a virtual address, anywhere in the 4 GB range, can be used to access data and a (virtually) unlimited number of VCache areas of these sizes can exist concurrently.

Signing off

That is all I have for you this time, as usual if you would like your software featuring in RISC World send it to the editorial email address.

Paul Brett