Pheedstorm by Wuul

Pheedstorm is an RSS reader that aims to find articles that it thinks you will find interesting, rather than just notify you when one of your feeds has some new content. RSS was originally introduced to make it easier to find out when your favourite web sites had updated content, the idea was that you would "subscribe" to feeds from a number of sites and an RSS reader would monitor these and let you know when new articles were found. This is definitely better than you having to visit each site every day, but you still have a problem in that if you subscribe to a large number of feeds that are regularly updated (I subscribe to around 60 various feeds), you can still end up with an overwhelming amount of content to browse through, much of it utterly irrelevent to your particular interests. For example, take a look at the home page of any major news site (BBC, CNN etc.) - you will probably find half of the articles displayed on any given day worth reading and many you would find boring and irrelevant.

Pheedstorm enables you to subscribe to all your favourite feeds, but rather than simply notifying you about all new articles, it analyses each one to try and work out whether you will find it interesting or not. If the article reaches a particular "relevance factor" it will be shown, otherwise it will not bother you. It does this by using feedback that you provide it to let it know how relevant you find particular articles on a scale of -10 to +10, for example if you are fairly interested in articles about the economy and interest rates and an article about this appears, you could mark it as +5. If the article also mentions your home town you might want to mark it +8. If however an article appears about something you are completely disinterested in, give it a negative rating. Over time, the program learns about the kind of articles you like and shows similar articles when they are published on your feeds.

You can also use it as a "standard" RSS reader, and have it show you all new articles on a feed. You can also set up specific keyword alerts, e.g. show all articles with the word "IRAQ" even if they don't meet the relevance normally required.

Contents:

Quick start guide
Monitoring RSS / Atom news feeds
Keyword monitoring
AI / Learning about your interests
User guide
Configuration
FAQ/Troubleshooting


Download Pheedstorm 2.10 (zipped)
View screenshot


Quick start guide

The first time you start the program it will display a brief welcome message, then it will start to download articles from a number of BBC news feeds. If you would like to configure alternative feeds select the menu option "Program..Config" to bring up the config window, and the program will ask you if you would like to set up some sample feeds from which you can easily subscribe to. You can also manually add new RSS feed URLs or delete any feeds you don't want using the Add or Delete buttons.

The default configuration also includes some example keyword sets, please edit these to suit your requirements. You may also want to change the refresh interval for each feed, this is set to 1 minute by default (this is how often the feed is downloaded and scanned).

Once you have some feeds set up, make sure they are active (clicking the "All active" button will ensure they are all active), then close the config window to return the main screen. The program will then download all the articles from your subscribed feeds into the table on the left. Click on any article to bring the full details on the right panel. You can indicate how interesting you find each article using the radio buttons below the article, if you find an article interesting select one of the radio buttons towards the right, if you don't like it use one of the buttons on the left. You should try to rate as many articles as you can, as the more feedback you provide, the more the program will learn and the more effective it will be.

When you have finished browsing and rating the articles, you can minimise the program and leave it running (it will minimise to the system tray). It will download and scan all your active feeds at the specified intervals and the tray icon will change colour if an article arrives that it thinks you will like or that matches any of your keywords. If it doesn't show you many articles, move the slider on the top-right of the config window towards "LOW" on the left, this lowers the "relevance threshold" for how relevant an article needs to be for Pheedstorm to alert you (articles matching keywords will always be shown). If it starts to show you too many articles, drag the slider to towards "HIGH" on the right, which raises the "relevance threshold".


Monitoring RSS / Atom feeds

To monitor a new RSS or Atom feed, open the config window enter the address of the RSS / Atom feed and click "Add feed" (the address will be a URL, e.g. http://newsrss.bbc.co.uk/rss/newsonline_uk_edition/uk/rss.xml). The feed will be added to the list on the left. You can also select from a number of sample feeds using the "Samples" button. You can then define the keyword sets (see Keyword monitoring) and the refresh interval (how often the feed is checked). The active feeds will be searched automatically at the refresh interval. When an article is found that is relevant, or contains your keywords, Pheedstorm will add it to the articles list and change the tray icon colour.


Keyword monitoring

You can configure Pheedstorm to monitor feeds for articles containing particular keywords. This is done using keyword sets which are then associated with particular feeds. The purpose of having keyword sets is that you are likely to have multiple feeds for various subjects e.g. general news, sport, science, entertainment etc., and you don't want to have to define the same set of keywords for every feed you subscribe to. Instead, you create a keyword set e.g. "sport", and set up the keywords for this set, then associate this keyword set with all your sport-related feeds.

To set up keyword sets, click the "Manage" button on the right of the config window. This will bring up a page showing the keyword sets on the left, and the associated keywords on the right. You can add/delete keyword sets by using the buttons on the top left, and edit the keywords by just typing them into the left control.

You define the keywords by entering a number of particular words per line, separated by a comma. An alert is only triggered if all keywords on a line are found. For example:

iran,nuclear
grand theft auto,game
pentagon,hack

You can specify words that must not be found by putting a ! character in front of the word, e.g. suppose you wanted to show articles that contain the words "barack" and "obama" but not "iraq", you could put barack,obama,!iraq

Note that any words on the same line *must* be found to trigger a match. If you want to enter a list of words that will trigger a match if *any* of them are found in an article, enter them on different lines. For example:

{entering the words like this means that an article must contain all of the words obama, iran and nuclear.}
obama,iran,nuclear

{entering the words like this means that an article must contain any of the words obama, iran or nuclear.}
obama
iran
nuclear


AI / Learning

"The more contact I have with humans, the more I learn" - Cyberdyne Systems Model T-101, "Terminator 2"

Simple keyword monitoring isn't always sufficient for informing you about news articles that you are interested in, so the program can learn over time about the kind of articles that you like, and will start to show you similar articles even if they don't contain any of your keywords. It works as follows: each time Pheedstorm downloads an article it will offer you the chance to rate the article on a scale of "totally irrelevant" to "very relevant". As you indicate your preferences for or against particular types of content, Pheedstorm will start to learn about the kind of stories that interest you and will start to show you other articles it thinks you may find interesting. The more you provide feedback, the more it will learn about what interests you.

To allow you to kickstart the learning process the program is initially configured to download articles with a rating of 0. This means that many articles will appear initially, but the more feedback you provide, the more it will learn and the more relevant articles will start to appear at the top of the list. If it starts to show too many or too few articles you can adjust the slider "Show articles with relevance LOW...HIGH" - the nearer to "HIGH" you move the slider position, the fewer articles will be shown as an article will need a very high relevance to trigger an alert. The learning process is ongoing - the more feedback you give the program, the more it will learn about your interests. I recommend you start by rating as many articles as you can on a variety of different feeds, e.g. news, entertainment, sport, business, politics etc, so that the program can start to build up a comprehensive database. If it shows you an article you don't like, simply rate it with a negative score and it will update its relevance database accordingly - this will reduce the probability of similar articles being shown.

A brief note on privacy - Pheedstorm will gradually build up a large store of information about the kind of things you find interesting, and this information is stored in the "DATA" directory. If this concerns you, you may want to consider restricting access to this directory, or if you are really paranoid, putting the application on a TrueCrypt drive. Please note that at no point does the program transmit any of this data anywhere else.


User guide

This section describes the various menu options.


This section describes the various controls on the main window.


This section describes the controls on the config form.


Other configuration

There are some additional configuration options that are defined in the file pheedstorm.conf, some of the more useful options are described below:

proxyHost=
proxyPort=
proxyUsername=
proxyPassword=
proxyBasicAuthentication=true
You can use this option to set proxy server configuration, you may need this if you are using the program at work

repeatInterval=10080
This is the number of minutes to wait before showing a particular alert again, i.e. if the program has already popped up a message about a particular keyword, you don't want it to show you the same alert 5 minutes later. 10080 is the number of minutes in 1 week which is the default.

alertMechanism=0
When Pheedstorm finds new articles it will change the colour of the system tray icon. If you would prefer a more obvious notification, you can change this setting to any of the following values:

0 = change colour of icon in system tray
1 = flash taskbar
2 = force application to foreground

runAfterIdleFor=0
This setting can be used to try to stop the program taking up lots of CPU and bandwidth while you are working on your PC. If it is set to a non-zero value, the program will only scan the feeds for articles when your PC has been idle for at least this number of seconds (i.e. you have not used the mouse or keyboard). If left at zero the program will not check to see if you are using your PC or not.

speakTitles=false / speakArticles=false
Setting these options to true will cause the program to read out the title or full text of new articles. This may not work on all systems.

verboseOutput=false
The program writes output as it runs to a status panel on each page, this is so you can see what it is doing. If you set this option to true, additional information will be written which can help diagnose problems. Normally you should set this to false as the program will perform a lot faster.

Common words
The file "data\commonwords.dat" contains a list of common words that are not included when checking the relevance of a piece of text. You can add additional words to this file if you like - this can help to stop false-positives, i.e. where a page has a higher relevance rating than it should have due to the presence of common words such as "the", "and", "news", "july", "said", "went" etc..


Frequently asked questions/Troubleshooting

If you have any questions or want to report a bug please drop me a line at


To build the software you will need these additional components

Home