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

- Program
  - Config - Opens the configuration window

  - Exit - Closes the application

- Actions
  - Mark all shown articles read - This marks all the articles currently being displayed as "read"

  - Mark all shown articles unread - This marks all the articles currently being displayed as "unread"

  - Keep all shown articles - This marks all the articles currently being displayed as "kept", this means that the articles will be saved between sessions, i.e. they will still be displayed when the program is restarted

  - Unkeep all shown articles - This marks all the articles currently being displayed as "not kept", this means that the articles will be removed when the program is closed so you will not see them when the program is restarted

  - Reset list of shown articles - When the program has downloaded and displayed an article, it keeps a record of that article so that it won't display it again the next time the program scans the feed the article came from (unless you mark an article as "kept"). However, if you select this option, the list of shown articles will be cleared so the program will download and display all relevant articles again

  - Reset feed "last scan" times - the program is configured to scan each feed at particular intervals, so it stores internally the last time each feed was scanned. Selecting this option clears this list, so all feeds will immediately be scanned.

This section describes the various controls on the main window.

- Show read/unread/all - This determines whether to display only articles you have read, articles that you have not read, or both of these types

- Show kept/unkept/all - This determines whether to display only articles you have marked as "keep this article", articles that you have not marked as "keep", or both of these types

- Show new/old/all - This determines whether to display only articles downloaded very recently, or older articles, or both of these types

- Show rated/unrated/all - This determines whether to display only articles you have given a rating to, or unrated articles, or both of these types

This section describes the controls on the config form.

- Add Feed - Adds a new feed to your list of subscribed feeds (using the URL entered at the top)

- Delete Feed - Deletes the selected feed from your list of subscribed feeds

- All active - Sets every single feed in your list to "active" (only Active feeds are scanned automatically)

- All inactive - Sets every single feed in your list to "inactive" (only Active feeds are scanned automatically)

- Samples - Displays a set of sample RSS feeds for you to choose from

- Open feed - Opens the selected feed in your default web browser so that you can see all the articles

- Help - Opens the main web site

- Save - Saves the configuration (the various feeds and keyword sets you have set up)

- Import OPML - This enables you to import an OPML file containing a list of RSS feeds, these will then be added to your list

- Show Images - Whether to show images for the articles. Turning this off may speed up downloading of articles if you have a slow connection

- Continuous Scan - If checked, all active feeds will be scanned continuously rather than at their scheduled intervals.

- Scan now - Mark the selected feed for a one-off immediate scan, regardless of the scan schedule (this may take up to 30 seconds to start)

- Reset Unread Articles On Exit - This option can be used to ensure that you don't miss any articles. Normally the program will not show you an article it has previously downloaded and displayed, but this means that you could easily miss articles e.g. if you are too busy to read them all and you need to switch off your PC. This is where this option comes in useful - if checked, the program will mark all unread articles as "not downloaded" so that they will be re-displayed the next time the program runs. If unchecked, all the unread articles will not be displayed the next time it runs.

- Show articles with relevance This slider controls how relevant an article must be to appear in your list of articles. LOW = "show me more articles", HIGH = "show me less articles". Initially this is set as LOW as possible so that some articles will appear for you to rate, but once you have rated a number of articles you can gradually adjust this towards HIGH to filter out less interesting articles.

- Active This defines whether the selected feed is active or not. Only active feeds are scanned

- Show all articles Normally only articles matching the defined relevance threshold are shown, but if you would like to see all articles from a feed regardless of their relevance, select this checkbox against the feed

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

- What platform(s) does this run on? This is a Windows application, I have tested on XP/Vista but it may run on older Windows platforms.
- Does it contain any adware, spyware or anything? No. I hate the stuff.
- Are there any restrictions on usage? None whatsoever.
- Why did you develop it? I read a book called Maximum Impact by Jack Henderson where he described a (fictional) program that monitored news channels for articles that the user would be interested in, and decided it would be a useful kind of thing to have - it saves me constantly checking the news pages and it makes sure I don't miss something interesting
- There seem to be lots of different versions of the program on various web sites. Which is the latest version? Lots of sites are hosting the program, but the very latest version will always be at http://wuul.host22.com/pheedstorm/readme.html
- I'm new to this RSS stuff - what is it exactly? See http://en.wikipedia.org/wiki/RSS_(file_format)
- How do I subscribe to a new feed? See this page
- How do I make Pheedstorm my default RSS reader, so I can just click on the RSS icon on web pages instead of entering the feed URL manually? See this page
- It shows me too many / not enough articles Try adjusting the relevance slider: LOW = "show me more articles", HIGH = "show me less articles".
- Can it use feedback from other users, like AideRSS? No, it only uses the feedback you provide it yourself.
- Some articles it shows me are completely irrelvant The program needs as much feedback from you as possible in order for the AI to work effectively. Simply give those pages a negative rating and the program will show you fewer similar articles in future.
- I don't need the AI / learning functionality - I just want to monitor feeds by keyword Adjust the slider right up to HIGH - you will see virtually zero articles except those that match on keywords.
- I want to see all the new articles for a feed, regardless of the relevance Click the "Show all articles" checkbox against the feed.
- How do I upgrade to a new version but keep all my feed config/AI data? From the new version, copy just the files pheedstorm.exe and data/commonwords.dat over your existing version. There may be new configuration options though in pheedstorm.conf so it may be worth having a quick look to see if you need to copy and paste these into your existing pheedstorm.conf (I try to use default values where possible for most config options).
- I've downloaded an updated version and I don't see any difference Often a new release has no new features, but contains improvements "under the hood" that make the program more effective, e.g. improvements to the text search algorithm, or simply bug fixes. The latest version scans the text in news articles about 5 times as fast as some of the earlier versions, and uses considerably less memory.
- It doesn't seem to work as expected - I think there is a bug somewhere Before I release a new version I do try to test it to make sure it is all working and I haven't broken anything, but as I am developing this program on my own and don't have a test team or anyone who can test it for me, it is quite possible that there will be bugs somewhere. If you think you have found a bug please let me know, my email address is below. It would help if you could provide as much information as possible about the circumstances of your problem, i.e. if you send me an email just saying "it doesn't work" this won't be very helpful :-)
- I keep seeing the error "Error downloading [site]:Socket Error # 10060 Connection timed out." If you are seeing this error on lots of different feeds it means the program cannot connect to the internet. If you are using the program at work you may need to configure your proxy server details in the file pheedstorm.conf
- It hogs all my CPU which is at 100% usage! Try setting "runAfterIdleFor=30" in the file pheedstorm.conf - this tells the program to perform its scans when you have not moved the mouse or pressed any keys for at least 30 seconds - this way you can get the program to do most of its work when you are not using the PC.
- Articles are removed when I restart the program. How can I keep an article across restarts? Click the "Keep this article" checkbox under the article text
- Could I use the program to monitor a blog feed instead of a news feed? In theory it should work with any RSS feed regardless of the content, although the program ignores words under 3 characters long, non-english letters, numbers and punctuation characters, so if the blog uses "text speak" such as "wt r u up 2 gt lds of £ 2dy" the program will not work very well!
- Is it possible to transfer a list of RSS feeds from another feed reader? There is an "Import OPML" button on the config window that can import a list of feeds in OPML format, so if your existing application can save an OPML file containing all your feeds this should be possible
- Can I make the article text larger? Yes, edit pheedstorm.conf and set fontSize=12 (replace as required)

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