BottomFeeder Home Page

BottomFeeder
Tutorial

Version 4.4

July 1, 2007

 

Valid XHTML 1.0!

 

BottomFeeder on SourceForge

 

Cincom Smalltalk Home Page

 

© 2007, Richard A. Demers

 

Contents

 

BottomFeeder Home Page

Contents


 |- Introduction
 |   |- Notice
 |   |- Related Documents
 |
 |- What can BottomFeeder do for you?
 |   |- Information Overload
 |   |- Your Lonely Voice
 |   |- Your Personal Presence
 |
 |- Concepts
 |   |- Feeds
 |   |   |- Aggregating Feeds
 |   |   |- Blog Feeds
 |
 |- Working With Folders
 |   |- Managing Folders
 |   |- Adding Feeds to a Folder
 |   |- Viewing All Items in a Folder
 |   |- Marking All Feeds of a Folder as Old or New
 |   |- Updating All Feeds of a Folder

 |- Working With Feeds
 |   |- Finding the Feed of a Website
 |   |- Finding Interesting Websites With Feeds
 |   |   |- Web Surfing
 |   |   |- Feed Browsing
 |   |   |- Blogging
 |   |- Building Feeds
 |   |   |- Internet Feed Builder
 |   |   |- Amazon Feed Builder
 |   |   |- HeadlineNews Feed Builder
 |   |   |- BottomFeeder Feed Builder
 |   |- Discovering Feeds
 |   |- Managing Feeds
 |   |- Getting Information About a Feed
 |   |- Commenting on a Feed
 |   |- Viewing the Items in a Feed
 |   |- Filtering Feed Items
 |   |- Getting Alerted When New Items Arrive
 |   |- Marking All Items of a Feed as Old or New
(continued)

Contents (continued)


 |- Working With Items
 |   |- Viewing Items
 |   |- Viewing Related Items
 |   |- Zooming Items
 |   |- Marking Items as Old or New
 |   |- Deleting Items
 |   |- Making Items Persistent
 |   |- Flagging Items
 |   |- Getting Information About an Item
 |   |- Commenting On Items
 |   |- Viewing Item Comments
 |   |- Telling Others About Items
 |   |- Copying Item Information
 |   |- Searching For Items
 |       |- BottomFeeder Searches
 |       |- Internet Searches
 |   |- Restoring Deleted Items
 |
 |- Other BottomFeeder Tasks
 |   |- Working With Settings
 |   |- Working With StyleSheets
 |   |- Working With Enclosures
 |   |- Saving and Restoring
 |   |- Synchronizing Multiple BottomFeeders

 |- Working With Blogs
 |   |- Creating Your Blog
 |   |- Identifying Your Blog
 |   |- Creating and Updating Blog Items
 |   |- Uploading Files to Your Blog
 |   |- Editing Enclosures
 |   |- Editing Your Blogroll
 |   |- Editing Trackback Requests
 |   |- Editing Blog Templates
 |
 |- Regular Expressions
 |   |- Syntax
 |   |- Character Sets
 |
 |- Glossary

 

BottomFeeder Home Page

Introduction

This Tutorial is for general users of the Internet. It will help you to learn BottomFeeder, a tool for working with the feeds provided by many websites.

Contents


Notice

BottomFeeder has been released as an Open Source program, under the Artistic License. When you download it, you agree to abide by this license.

Contents


Related Documents

The following documents are available to help you get the most benefit from BottomFeeder:

Contents

BottomFeeder Home Page

What can BottomFeeder do for you?

The Internet provides you with a lot of different ways to share information, to communicate, and to interact with other people. Just as a mechanic has many different tools for different parts of his job, you need a variety of tools for the ways you use the Internet. Among them are an e-mail program, a File Transfer program, and an Internet Browser. But these are not enough, you also need a tool to help you keep up-to-date in the virtual communities you join. BottomFeeder is just such a tool, a program that helps you personalize your use of the Internet. It helps you organize your personal collections of feeds, and it helps you work with them.

Contents


Information Overload

Do a Google search on "quilting" and you get 644,000 hits. Overload!!!

When the telephone was first invented, people quickly realized it was a great business tool - a real improvement over the telegraph, a way to improve business productivity. A few businessmen installed telephones in their homes - for better communications with the office, of course. Their families found other uses, social uses, personal uses -- uses that quickly overwhelmed business uses. From then on, growth in the telephone network was exponential.

Limit the search to "Shaker quilting" and you get 3,500 hits. Still too many!

The same thing happened with the Internet. First scientists used it to e-mail each other and to share data files. Then, business people found all kinds of on-line, "e-commerce" uses: advertising, catalogs, sales, and intermediation. Along the way, as more and more people put computers in their homes, social and personal uses became dominant - e-mail, shopping, games, education, conferences, and on-line communities of all kinds.

"Shaker quilting in Minneapolis Minnesota" yields 10 hits. Manageable, but is this what you really want? Maybe the best websites are in Kentucky?

Today, there are so many people doing so many things with the Internet, it is impossible for anyone to keep up. Even in a relatively small subject area there are likely to be hundreds (if not thousands) of newsgroups, websites, forums, discussion groups, collaborations, blogs, wikis, and web rings -- with new ones coming online every day and old ones dying off almost as fast.

After you find the 100 best "Shaker quilting" websites, how do you keep up with all the changes made by their owners and users?

It is great to have the Internet available to everyone, 24 by 7. The world is changing because of it. But somehow, to be useful, you need to be able to carve out the parts of the Internet that best suit your interests, and make them work for you. You need to be able to say, "I am interested in this, but not that," and have the Internet help you manage the overload.

How many hours a day do you have to spend "surfing the net," looking at page after page, just to keep up with what's happening in Shaker quilting? And what about your other interests?

The more people, organizations and businesses "get on the net," the greater the overload. The Internet as a solution becomes the Internet as a problem. But these problems mean opportunities to help people use the Internet more productively.

Instead of the Internet as "the worldwide web," you want it to be a "personal web," that helps you solve your problems.

Contents


Your Lonely Voice

We live in an age of mass culture, with mass advertising and mass media shouting at us from every angle. Even if you take the trouble to develop educated opinions about the areas that interest you -- politics, religion, science, sports, hobbies, etc. -- it has become increasingly difficult to make your voice heard over the din.

You have always been able to write letters to the editor of a magazine or newspaper, but there was no guarantee the editor would publish them. Editors have to be selective because of space and audience interest constraints. Now, though, there are many more mass media channels (newspapers, magazines, radio and TV) specializing ever more narrowly, all clamoring for "content" from wherever they can get it, and with much less filtering. The result, however, is more noise; more competing voices shouting to be heard.

But there is something new in the world -- the Internet -- a more powerful two-way channel for communications. Not only can you hear what the mass media is broadcasting, you can talk back in a great many new ways: e-mail, forums, discussion groups, wikis, personal websites, web logs, etc.

Doesn't this just add to the din? Yes it does, but with a difference. Now, it is possible for any individual to establish an unfiltered and persistent voice that can be heard worldwide. Getting anyone to listen, however, is a different problem. To do that you need to become part of a community.

The Internet is a sphere, all users and resources are points on the surface with universal connectivity among any two points. Communities of unlimited size, complexity and durability form as those connections develop and evaporate. To be effective in these communities, you need to establish a presence that other people recognize and respect, and that presence has to be both attractive and persistent.

Contents


Your Personal Presence

Lots of people have vanity pages in their ISP's server: usually just a few pages of pictures and links hardly anyone ever looks at, ever links to, or ever goes back to. But some people work hard to establish a meaningful Internet identity. They build their own website or weblog, keeping in mind three important goals: make it easy to find, make it attractive, and make it sticky.

Whether you have your own website or blog, or just comment on those of others, people come to recognize your name, and hopefully respect your opinions. Your goals, now, are the inverse of someone who builds a personal website: finding good websites, evaluating them, and keeping up with them.

If you really want a strong presence on the Internet, you have to do all of the above. You have to create a quality website of your own, and you have to find, evaluate and keep up with many other websites. For all of this, you need tools - good tools like BottomFeeder!

Contents

BottomFeeder Home Page

Concepts

You can skip this chapter if you are more interested in how to do specific BottomFeeder tasks. You do not have to understand how BottomFeeder works in any great detail -- no more than the driver of a car needs to know how its engine works -- but you may find it helpful to understand a few basic concepts.

Contents


Feeds

A web page with a feed.

A feed is an object that represents a special kind of file in a website; one that specifies what has changed in the other files of the website. It is called a feed because it supplies, or feeds, information to whomever will consume it. The website does not have to send messages to individual subscribers to tell them about changes. It just updates its feed file. Anyone on the web can then ask for a copy of the feed file.

BottomFeeder does not care how a website creates a feed file and adds new items to it. In some cases, the website accumulates items in a change log, and on a periodic basis builds a new feed file, and replaces its old feed file. An alternative is for a website to update its feed file every time there is a new item. As a consumer of feed files, you really do not care.


Aggregating Feeds

Aggregating feeds.

BottomFeeder is a program that aggregates -- a fancy word for "brings together" -- feeds from multiple websites. You tell BottomFeeder what feeds you are interested in by subscribing to them. BottomFeeder then checks for changes by getting the feed file, and telling you about each change. Just leave BottomFeeder running in the background; it checks for feed updates every N minutes, and let's you know when something is new.

But there's a catch; for BottomFeeder to do its thing, a website must publish a feed. An ever increasing number of websites (over 10,000, now) publish feeds, and it's an idea that is quickly catching on. People tend to revisit sites that provide feeds - and that's a good thing, so more and more sites are coming on board. If you find an interesting website that doesn't publish a feed yet, send the web master a message to "get with the program."


Blog Feeds

A blog website.

A weblog ("blog") is a special kind of Internet website; a journal (usually) produced by one person. When a browser asks for the blog's home page, the blog server dynamically builds the page from the most recent N items, with the most recent item at the top of the page. The items are assembled in a template that names the blog, formats the entries, and adds a number of other features, such as an index of item categories and a list of links to related websites (a blogroll).

Blog servers also produce an RSS feed. Whenever an item is added to the blog or a comment is added to an item, the feed is updated, and can be read by aggregators like BottomFeeder. The feeds of some blogs only contain an Internet address (URL) for each item, so aggregators have to request the text of desired items. The blog server dynamically generates a webpage for the requested item. Other blogs, however, put all or part of each item into their RSS feed. Aggregators are then able to provide a variety of views of blog items, such as lists or newspaper views. To complete the picture, some blogs put item comments in the feed, while others put only the URL's of comments so they can be retrieved. BottomFeeder hides all of this complexity, thereby simplifying user interactions with blogs.

Most blog servers provide a way for readers to see the comments of other readers, and to comment on each item. There is also a way for the owner of the blog to add new items and update old items. These services are usually provided by specially generated webpages, but many blog servers also support special interfaces (API's) that allow other Internet programs to provide the same services. For example, the users of BottomFeeder can update their own blogs, and they can add comments to the items of other blogs.

Working With Blogs introduces the full range of services that BottomFeeder provides for working with blogs.

Contents

BottomFeeder Home Page

Working With Folders

Assume for a moment that you are participating in three different virtual communities: Computer Programming, Science Fiction, and Origami. You regularly interact with half a dozen websites in each community, all of which publish feeds. You probably don't want to put all of these feeds into a single big list; instead, you want to keep them in separate groups. This makes it easier to keep track of what is happening in each topic.

BottomFeeder helps you to organize your feeds in folders, similar to the file folders on your personal computer. It provides a root folder, called My Feeds in which you organize your feeds. You can also create your own topical folders to categorize feeds even finer, in a hierarchy of folders. For example, you could have folders organized like this, each with zero or more feeds:

 |- My Feeds folder
 |   |- Computing folder
 |   |   |- Programming folder
 |   |   |   |- Smalltalk folder
 |   |   |   |   |- Why Smalltalk feed
 |   |   |   |   |- Smalltalk Industry Council feed
 |   |   |   |   |- Cincom Smalltalk Blog feed
 |   |   |   |- Python folder
 |   |   |   |- Perl folder
 |   |   |- Operating Systems folder
 |   |   |- Testing folder
 |   |- Science Fiction folder
 |   |- Origami folder

BottomFeeder provides facilities for working with

Contents


Managing Folders

To create a tree of folders, select a folder and the Add folder command in its pop-up menu. BottomFeeder prompts you for the name of the new folder. If you later decide it should have a different name, choose the Rename folder command. To get rid of a folder (and everything in it!) choose the Remove folder command. You can also move a folder (and everything in it) from the folder that contains it to a different folder by using drag-and-drop.

Contents


Adding Feeds to a Folder

Select a folder in the My Feeds tree and the Add Feed... command. The Add Feed prompt asks you for a "URL," the Internet address of the feed. If you know a feed's URL, you can just type it or copy it into the prompt, but this leads to some more general problems:

  1. Finding the Feed of a Website
  2. Finding Interesting Websites With Feeds

Contents


Viewing All Items in a Folder

Items are contained in feeds, not folders, but a folder knows about all the feeds it contains (directly and in lower level folders). If you want to see all the items in a folder, just select the folder. The result is a list of all items in the feeds of the selected folder.

Contents


Marking All Feeds of a Folder as Old or New

If all of the items of a feed are old, then BottomFeeder identifies the feed as being old; and if a feed contains any new items, then BottomFeeder identifies the feed as being new. There are times, when you want all feeds of a folder to be either old or new. Select the folder and the Mark all feeds as new command or the Mark all feeds as old command. BottomFeeder goes into each feed and marks all contained items as old or new, making the feeds old or new.

Contents


Updating All Feeds of a Folder

Folders know about the objects in their group, so if you want BottomFeeder to update all of the feeds in a folder, select the folder and the Update all feeds command. It then tells each feed to update itself, the same as if you individually told each feed to update itself. Cool, but folders also contain other folders, which may themselves have feeds. No problem, your command to a folder to update its feeds propagates on down to the lowest contained feed.

Contents

BottomFeeder Home Page

Working With Feeds

Finding the Feed of a Website

Finding the feed of a website is usually easy -- if it has one. The website tells you in one of these ways:

Contents


Finding Interesting Websites With Feeds

It is one thing to find the feed of a website you are browsing, quite another to find interesting websites with feeds. Some times you need to find websites of interest, and then determine if they have a feed. Other times you need to find feeds, and then determine if their websites are really of interest. BottomFeeder helps you do both.

Contents


Web Surfing

One of the ways people find new things on the web is by following links from webpage to webpage. Use your regular Internet Browser to find interesting websites. Click on links in webpages to go from website to website, "surfing" your way through the Internet. Your browser's Favorites or Bookmarks feature helps you save links to the sites you like.

BottomFeeder provides limited support for surfing. Although it is not a full-function browser, BottomFeeder attempts to present new pages in the Item Pane. Alternatively, you can have BottomFeeder launch an external browser for linked pages, which gives you the full function of the external browser.

Contents


Feed Browsing

When you browse feeds in BottomFeeder, you see many links to webpages related to individual items. Following these links often leads to websites of interest.

Contents


Blogging

A common practice of people who publish a blog is to include a blogroll, a list of links to other blogs and websites that they find interesting. In this way, an implicit community of blogs develops through references to each other. The links in a blog role are, in effect, recommendations of other websites worth looking at.

Contents


Building Feeds

A feed was described in the Technical Concepts - Feeds section as a file periodically generated by a website that identifies the changes that have occurred in the website. A broader view is that a feed is a file that contains links to a set of related items.

Contents


Internet Feed Builder

In addition to the feeds that websites build, you can also request custom built feeds from a number of websites, such as Google, Feedster, and Yahoo. BottomFeeder helps you to build a variety of pseudo-feeds. When you select one of the Feeds > xxx feed builder... commands, BottomFeeder asks a website to return the results of a search as a feed file. It adds the new feed to the currently selected folder, or to the My Feeds folder itself. In each of its feed update cycles, BottomFeeder asks the website to create a new feed for the same query string.

Contents


Amazon Feed Builder

Amazon is a commercial website that catalogs and sells a wide variety of books and other media. The Feeds > Amazon feed builder... command opens a Amazon Feed Builder window, in which you can identify the feed you want from Amazon; for example, a feed on all books related to a specific subject. BottomFeeder adds the new feed to the currently selected folder, or to the My Feeds folder itself. In each of its feed update cycles, BottomFeeder asks Amazon to create a new feed for the same query string.

Contents


Headline News Feed Builder

When you select Feeds > Headline News feed builder..., BottomFeeder opens a dialog in which you can specify a query string to send to the Headline News, Yahoo or NewsTrove service. The returned feed consists of items containing the query string, from the various feeds it searched. BottomFeeder adds the new feed to the currently selected folder, or to the My Feeds folder itself. In each of its feed update cycles, BottomFeeder asks the news service to create a new feed for the same query string.

Contents


BottomFeeder Feed Builder

BottomFeeder maintains a local copy on your system of all of the items of all of the feeds that it has read (that have not yet been replaced by newer items). You can search these items and build a feed of the results.

To use BottomFeeder as a feed builder, select a folder, select the Items > Search BottomFeeder command, and check the Save as feed check box. BottomFeeder builds a feed of items containing the query string you enter from the various items that it searched. BottomFeeder adds the new feed to the the selected folder, but it is not updated unless you select the feed.

Contents


Discovering Feeds

Syndic8 is a type of website called a "syndicator." Other websites register the feeds they produce with Syndic8, which then obtains updates to those feeds on a regular basis. A program like BottomFeeder can submit queries to Syndic8 to obtain a list of feeds that contain information that matches a query string. BottomFeeder presents the list of feeds that contained the query string, and you can select the feeds you want to add to a folder.

Contents


Managing Feeds

Over time, some of the feeds you acquire may need some amount of attention. Select a feed and one of the following popup menu commands:

Contents


Getting Information About a Feed

Additional information is available about each feed and its website. Select the feed and one of the following commands:

Contents


Commenting on a Feed

Some feeds allow you to provide them with comments, or to enter a query for their website. Select the feed and the Feedback > Send comment on feed command. BottomFeeder then opens the Feed Comments window in which you can enter a comment or a query. If the website returns results from a query, BottomFeeder presents them in the Item pane.

To comment on an item of a feed, select the item and use the Send comment on item command.

Contents


Viewing the Items in a Feed

The easiest way to view the active items in a feed is to simply select the feed in the Tree pane. Active items are those that have not been filtered out and that you have not deleted. Inactive items are hidden until replaced by new items when the feed is updated or regenerated. Until then, hidden items can still be viewed by selecting the View > Show hidden items command.

Contents


Filtering Feed Items

You may not be interested in seeing some of the items that appear in a feed. For example, a blogger may include sports items interesting to him or her but boring to you. Alternatively, you my only be interested in seeing certain items of a feed (for example, science items), but no others. To eliminate items when they arrive, you can add filters to either all feeds (global filters) or only to selected feeds (local filters). These filters can be based on an item's category or on words contained in an item's title or contents. BottomFeeder applies global filters to all items of all feeds before it applies local filters to just a single feed.

To define global filters, select the Items / Define global filters command in the main menu. To define local filters, select a feed and the Define filters command of its popup menu.

When defining filters, remember that global filters are applied before local filters, and that the order in which items are filtered-in and filtered-out affects the filtering process.

Contents


Getting Alerted When New Items Arrive

You can ask BottomFeeder to alert you whenever there are new items in a subscribed feed. Select the feed and the Alerts > Add feed alert command. BottomFeeder adds a bell icon to the feed's icon so you can see which feeds have alerts. When you no longer want an alert on a feed, select the feed and the Alerts > Remove Feed Alert command.

When new items arrive in any of your subscribed feeds, BottomFeeder adds them to the New Items list and enables the New Items tool button. BottomFeeder also adds the new items in feeds with notifiers to its Alert list and enables the View All Alerts tool. In effect, you are alerted whenever new items show up in any subscribed feed.

So when should you add an alert to a feed? One answer is to use alerts for only those feeds you want to track closely.

Contents


Marking All Items of a Feed as Old or New

Whenever a feed is updated from its website, either by subscription or on demand, BottomFeeder checks to see if there are any new items. If there are, it displays the title of the new items in red text. Click a new item and BottomFeeder assumes it is now an old item, and displays its title in black text. This distinction between old and new items has one more visual effect. If all items of a feed are old, the feed's icon in the tree is blue; if any items are new, the feed's icon is red.

There are times, however, when you want BottomFeeder to treat the items of a feed as either all old or all new. Select the feed and the Mark feed > Mark all feed items as new command or the Mark feed > Mark all feed items as old command.

Each item is represented by only one Item object. An item exists only in its containing feed, but it can also appear in other lists, such as the New Items list or a list of items found by a search. Anything you do to an item in any list, such as marking it as old, affects the item in its feed and in all other lists.

Contents

BottomFeeder Home Page

Working With Items

When you select a feed, BottomFeeder displays either a list of its items, or a convenient, scrollable newspaper view of the items. The list view provides many commands for working with items that are not available in the newspaper view.

Contents


Viewing Items

If you are using the list view of items, BottomFeeder displays a table with the date, title and category of each item in the Item List pane. You can sort items by date, title or category. BottomFeeder tells you which items are old and which are new. Clicking on a new item makes it old, but you can make any item new again, or you can make all items either old or new.

Click an item, and BottomFeeder shows you its contents in the current tab page of the Item pane. You can have multiple tab pages open on items at the same time, each representing a thread of your viewing of items. At any one time, only one tab page is highlighted as your current "working" page. Use the popup menu of the tabs to open and close tab pages. You can Tear off a page, which puts its contents into a separate window. Another feature of tab pages is that each maintains a history of the last 10 items you viewed in the page so that you can easily go Back or Forward.

The contents of an item is whatever the publisher of the feed wants it to be. It may be text that describes a change to a website page, it may be a copy of the change, or it may be a link to a changed page in the website. It just depends on what the website put into the item.

If you are using the newspaper view of items, BottomFeeder displays items as scrollable pages of items. To obtain a newspaper view, use the View > Show newspaper command.

Contents


Viewing Related Items

Every item has a link (URL) back to its source file in a website, and this is often used to make a reference from one item to a different item in the same or in a different feed. These references appear in the text of the referencing item as normal web page links. As people write blog items and as they comment on each other's items, complex networks of such links often get created. It can be useful to find out what links other people have made to an item you are viewing, especially when you subscribe to many feeds on a single topic.

When BottomFeeder updates a feed it looks for links in all new items and comments and keeps a record of them. Later, to determine if an item you select in the Item List has any related items, see if the View > Show related items command is enabled. If it is and you select that option, BottomFeeder shows all related items in the Item List. Note, however, that only items that BottomFeeder has already saved in your local system are shown. For broader searches of the Internet, use one of BottomFeeder's many search facilities.

If you are subscribed to a large number of feeds that have lots of items and comments, you may not want BottomFeeder to cross reference related items. To turn off this feature, go to the Feeds tab in the BottomFeeder Settings and uncheck the Do item cross referencing? check box.

Contents


Zooming Items

Displaying items in the Item pane works fine for small items, but for larger ones, it is too constraining. BottomFeeder has a simple solution. Select the Toggle Zoom tool in the item toolbar, and BottomFeeder uses the entire window to the right of the Tree pane to show the item. You can toggle back to the normal view in the same way. For even more room, you can drag the right side of the Tree pane to the left, and you can maximize the window in the desktop.

If you are using an Item List view, which has no Tree pane, the Item pane uses the entire view area of the Main window.

While in zoom mode, you can use keyboard shortcuts (Up arrow, Down arrow, Page Up, Page down, Ctrl-Home and Ctrl-End) to go from item to item. This gives you an alternate way to use BottomFeeder.

Contents


Marking Items as Old or New

Whenever a feed is updated from its website, BottomFeeder checks if there are any new items. If there are, it displays the title of the new items in red text. Click a new item and BottomFeeder assumes it is now an old item, and displays its title in black text.

You can make any old item new again by selecting the item and clicking the Mark item as new tool in the item toolbar. BottomFeeder then changes its title back to red text.

You can mark all the items in a feed or folder by using:

Contents


Deleting Items

Old items normally disappear when new items need their space. But sometimes, you may decide you never need to see an item again, so it can be deleted from the feed right away. Select the item and the click the Delete item tool in the item tolbar. BottomFeeder marks the item as deleted so that it will not show it to you again. However, the item continues to be saved until it is replaced by a new item. Until then, you can

Contents


Making Items Permanent

Sometimes there is an item that you want to keep indefinitely. Select the item and click the Toggle permanence tool in the item toolbar. BottomFeeder marks the item as one to keep and displays its title in italics. If at a later time you decide you no longer want the item, select the item and click the Toggle permanence tool again.

Contents


Flagging Items

When you first read an item you may decide that you want to be able to easily come back to it at a later time. Select the item and the Toggle Flagged tool in the item toolbar. BottomFeeder marks the item as flagged by changing the color of its text to green.

When you want to look at your flagged items, select the View > Show flagged command in the main menu and BottomFeeder will display a list of all flagged items.

To unflag an item, select the item in and the Toggle Flagged tool.

Contents


Getting Information About an Item

Additional information is available about each item. Select the item and click the Item properties command in the Item List popup menu. BottomFeeder opens the Item Properties window which has two tabs:

Contents


Commenting On Items

Some feeds allow you to comment on their items. Select the item and the Send comment tool in the item toolbar. BottomFeeder then opens the Comment Poster window in which you can enter a comment.

This is particularly useful for commenting on blog entries.

Contents


Viewing Item Comments

Just as you can comment on the items of a feed, so can other people. In some cases, the original item becomes just the starting point for an extended discussion among the writer of the original item and one or more commentators.

If the owner of a feed makes comments available to viewers of his website, they are usually added to the original items in the website's feed, either as links (URL's) or as text. The next time BottomFeeder gets an update of the feed, it also gets any new comments. To see the comments, select the item and scroll to the bottom of the Item pane.

To help you see what items have new comments, BottomFeeder marks the items containing new comments as being new items, which also marks the containing feed as having new items. If you don't want to be informed of new comments in this way, go to the Feeds tab in the BottomFeeder Settings window and uncheck the Items new if new comments? check box.

As mentioned above, some websites only provide links (URL's) to comments on items. But this really isn't very convenient for you, especially if there are a series of comments on an item; so instead, when BottomFeeder finds a comment link in an item it automatically goes to the website, gets the comment, and appends the text of the comment to its saved copy of the item. Of course, it only has to do this once for each comment.

If you are subscribed to a large number of feeds that have lots of comments, you may not want BottomFeeder to automatically get copies of all comments. To turn off this feature, go to the Feeds tab in the BottomFeeder Settings window and uncheck the Aggregate comments with feeds? check box.

Contents


Telling Others About Items

The Internet is all about communicating with other people. Sometimes when you see an item of interest, you may want to tell someone else about it. BottomFeeder gives you three ways; select the item and click on one of these tools in the item toolbar:

Contents


Copying Item Information

One of the simplest ways in which application programs cooperate is by making it possible to copy information into and out of the system clipboard. BottomFeeder enables information to be copied from items in the following ways:

Contents


Searching For Items

Finding websites and feeds are important things you do in using the Internet, but you may also want to find items within feeds, either saved by BottomFeeder or out in the Internet.

Contents


BottomFeeder Searches

To find an item in one of the feeds in your local BottomFeeder cache, select the Items > Search BottomFeeder... command. BottomFeeder uses your query string to search the items in your feeds. The results are displayed in a new tab page in the Item pane.

BottomFeeder can also build a search-feed from the results of the search. A search-feed is like any other feed except that its items are derived from your other feeds. The icon of the search-feed includes a small magnifying glass to distinguish it from real feeds.

Contents


Internet Searches

Many websites allow themselves to be searched. The Items > Search Internet... command opens an Internet Search window, in which you can submit a query. BottomFeeder launches a browser on the results page returned by the searched website.

Contents


Restoring Deleted Items

When you are working with a list of items, you can delete individual items from the containing feed. BottomFeeder does not actually remove the item until it needs space for a new item; it just marks it as deleted and does not show it in any item lists. Until the time when it is actually removed, a deleted item can be restored to the feed. Select the feed and the Filters > View hidden items command. BottomFeeder shows you a list of the deleted (and filtered) items in the feed. You can review them and individually restore deleted items to the feed. Alternatively, you can select the feed and the Filters > Restore all deleted items command.

Items that have been filtered out of a feed also appear in the display of hidden items. However, they cannot be restored in the same way as a deleted item because they would just be filtered out again at the next update of the feed. Instead, to permanently restore filtered items, use the Filters > Define Filters to change the feed's filters.

Contents

BottomFeeder Home Page

Other BottomFeeder Tasks

Contents


Working With Settings

BottomFeeder is a very flexible program. You can tailor its operation to your preferences in many ways. The most basic way is to set values in its initialization (.ini) file before you start the program. This file is shipped with BottomFeeder to give it default values for these preferences. You too can change these values but it is better to use the Settings Window when BottomFeeder is running.

Select the System > Settings command of the main menu, and BottomFeeder opens the Settings window. This window displays the current settings in tabbed pages. Select a tab, and make any changes you need.

Contents


Working With StyleSheets

A stylesheet is a description of how the elements of a document are to be presented in a specified media. A magazine, for example, has roughly the same appearance from month to month, even though its contents changes. This is because the writers and editors all work as required by a predefined stylesheet. It tells them, for example, to use a certain typeface of a certain size for titles. The same goes for BottomFeeder; the items of the subscribed feeds change, but the way BottomFeeder presents them remains consistent because of a stylesheet.

BottomFeeder is initially installed with more than a dozen different stylesheets, and you can select the one you want, to obtain the presentation style that best suits your needs. The Stylesheets menu in the main window is a list of named stylesheets that you can select.

The stylesheets BottomFeeder uses are defined according to a standard Internet language called Cascading Style Sheets, or CSS for short. If you like to try new things, you can also create your own custom stylesheets. You may find it helpful to obtain one of the many books published about CSS.

The stylesheets directory in your BottomFeeder home directory contains the named stylesheets that are installed with BottomFeeder. Copy one of these stylesheets (with a new name) into the same directory, and try changing some of its specifications. When you restart BottomFeeder, you will find the name of your custom stylesheet in the Stylesheets menu.

Contents


Working With Enclosures

An enclosure is like an attachment to an e-mail message; not part of the message, but sent with it. When BottomFeeder receives an item with enclosures, it lists them following the body of the item. If you select an enclosure, BottomFeeder immediately downloads it to a list of enclosures that it manages for you; otherwise, it schedules the download at the time specified in the Enclosure Manager Settings window. To add or remove enclosures from this list select the Plugins / Enclosure manager command. This opens the Enclosure Manager window.

Contents


Saving and Restoring

For good performance, BottomFeeder works with folders, feeds and items as objects in your computer's memory. When you exit from BottomFeeder, it writes all of these objects out to the hard disk so that they will be available when you next start the program. While it is running, more objects are added to memory as feeds are updated. Changes to memory also occur when you create, rename, or move objects. In these ways, the memory objects increasingly differ from what was last written to the hard disk. If your computer crashes (as PC's are all too often known to do), then all of the updates since the last save are lost.

To avoid this, occasionally tell BottomFeeder to save the current state of its memory objects to disk. Click the File > Save All command on a regular basis, and BottomFeeder saves the current state of all memory objects, along with the current position and size of the Main Window and the current values of the your control settings.

When you quit BottomFeeder, by clicking the File > Exit command, BottomFeeder checks the shouldSaveFileOnExit setting. If true, it automatically does a File > Save All command.

You can also tell BottomFeeder, through the File > Save All To... command, to save objects in a directory of your choice on your local hard disk. You may want to do this so you can later use File > Restore All command to restore that aspect of BottomFeeder to a specific state, or so you can share it with another user.

It is also possible to save feeds to a network file, and to restore them from a network file server. Request these actions through the Network menu.

Contents


Synchronizing Multiple BottomFeeders

If you use more than one computer system, perhaps a desktop system and a laptop, you may want to have BottomFeeder running on all of them. That way, you can be kept up-to-date regardless of what system you happen to be using. Ideally, you would like to have them all show the same feeds at the same update level, but this doesn't happen automatically.

For example, if your desktop system is continually connected to the Internet, BottomFeeder updates all feeds automatically; but your laptop system may be connected only when you are actually using it. When you start BottomFeeder on the laptop system, its feeds are also updated, but not the records that BottomFeeder keeps on the desktop system about which items have been read, deleted, filtered or made persistent. Nor does the laptop BottomFeeder know about any feeds, folders, or filters added or removed from the desktop system.

To bring your laptop BottomFeeder to the same update level as your desktop BottomFeeder, you need to synchronize them. There are two ways to do this, through a network connection, or through saved and loaded synchronization files.

Contents

BottomFeeder Home Page

Working With Blogs

You can use BottomFeeder to keep up-to-date with many blogs, without having to browse each blog website individually. You may also have your own blog, so BottomFeeder gives you the tools you need to work with it -- while you are reading the feeds of other blogs! For instance, if you are reading a blog item and you want to write something to your blog about it, just select the Blog It! command from the Item menu. BottomFeeder opens the Blog Poster window, with references to the original item filled in for you.

There's a lot more to blogging than just that. The BottomFeeder blog poster provides a variety of services you can use to manage your blog efficiently.

Contents


Creating Your Blog

This is the one thing that BottomFeeder does not do for you. There are many Internet services that specialize in setting up and maintaining blogs for users; among them are Blogger and Yahoo! 360°. Many companies also set up blog servers on their corporate networks for their employees.

If you are technically savvy, it is even possible to set up a blog server on your personal computer. In particular, a Smalltalk-based blog server called Silt is available (for free download) from the same programming team that developed BottomFeeder.

Contents


Identifying Your Blog

You've created your blog, and maybe entered a few items using a blog server webpage form. Perhaps you've gone a bit further and defined an initial blogroll, again using a blog server webpage form. It worked, but... Let's face it, webpage forms are generally limited, inconvenient, and often ugly. Wouldn't it be great if you could do the same blog work on your laptop, and have it work with the blog server without much fuss on your part? The BottomFeeder blog poster does just that.

The blog poster is installed with the main BottomFeeder program. To use it, select Plugins > Bottom Line in the main menu. BottomFeeder opens the Blog Poster window, after connecting to your blog server. You're now ready to enter your next blog item, or do any of the other tasks required by a successful blog.

However, there is one little thing you have to do the first time you start Bottom Line. You have to tell it how to find your blog and how to interact with it. Select Settings > Posting Settings in the main menu of Bottom Line. This opens a Settings window. Fill in the blanks as specified by your blog server.

There are two key bits of information you need from your blog server:

  1. How does the blog server want you to identify yourself: by what username and by what password.
  2. What Application Programming Interface (API) does the blog server want you to use? Bottom Line supports four different API's, named for the blog servers that defined them; select the correct one in the dropdown menu on the Basic Settings page. Then go to the settings page for that API and fill in the requested information.

Incidentally, you can work with more than one blog with Bottom Line. Set up a Settings profile for each, and checkmark the one you want to use in Bottom Line's Site menu.

Contents


Creating and Updating Blog Items

A blog item consists of several components, all of which you can enter and edit using Bottom Line:

Writing blog items isn't necessarily a one-time shot. Often it is better to put an item aside, do something else, and then come back to it. The File > Save Draft command of the blog poster gives you a convenient way to save the current item for followup work. Be sure to give the item a subject, because that is how you will be able to find it later, using the File > Open > Drafts command.

When you are satisfied with the contents of an item, use the Post > Preview command to see how it will be presented in a Browsing window. After closing the preview, use the Post > Post/Update command to send the item to your blog server. A message at the bottom of the blog poster tells you if the server accepted it.

What if you browse your blog's home page to see a newly posted item, or for some reason look at an older item, and find something you want to change? No problem. Use the blog poster's File > Open > By Id command to retrieve the item and make it the current item. You can then edit it, preview it, and post it back to the blog.

If the feed of your blog is in the BottomFeeder Tree pane, you can obtain an item's identifier by selecting the feed, selecting the item, and displaying its properties. But there is a still more convenient way to download items from your blog. Select the File > Open > From server... command, and the blog poster downloads the subjects of the most recent items. Select one of them, and the blog poster downloads the whole item.

Contents


Uploading Files to Your Blog

An item can contain images and links to other webpages. These resources are identified by their URL's and can be anywhere in the Internet, but it is often convenient to be able to store them in the blog server. The blog poster helps you to do this.

First, you need to specify the directory in the blog server into which the files are to be uploaded. Select the Settings / Posting Settings command; then specify the directory name in the Upload directory area of the Basic Settings page. You'll have to obtain the name of this directory from your blog server.

For each file you want to upload, select the Post > Add file to upload... command, and select the file. You can look over the list of files to upload by selecting the Post > Edit file to upload... command, and add or remove files in the File Upload Editor window.

To actually upload the files, select the Post > Upload files command.

Contents


Editing Enclosures

In addition to the text of its body, an item can link to Internet resources, such as documents, audio files and video files, that can be downloaded by readers of the item. These links are called enclosures. To add enclosures to an item, select the Post > View > Define post enclosures command. This opens the Enclosure Editor window, in which you can add or remove the URL's of resources to be enclosed in an item.

Contents


Editing Your Blogroll

Blogs usually have a list of links to websites that the owner of the blog finds of particular interest and recommends to his readers. This list is called a blogroll. To manage your blogroll, select the Post > Blogroll tool command. This opens the Blogroll Editor window. You can download your blogroll from your blog, add or remove entries, and then upload the revised blogroll.

Contents


Editing Trackback Requests

Some of the feed items that BottomFeeder receives include a trackback request -- a request that their source website be notified whenever anyone links to the item in a new blog item. When you create a new item in your blog with a link to an item, BottomFeeder finds these requests and puts them in a trackback request list. It then sends a trackback message to the source website of each of these requests.

You can also create a list of additional websites to which you want a trackback message to be sent for every item you add to your blog. Select the Post > Trackback request editor... command. This opens the Trackback Request Editor window. You can also remove websites from your list.

Contents


Editing Blog Templates

Some blog servers allow the owners of the blogs they host to specify a template that determines how their blog's webpages appear in browsers. These templates consist of some combination of HTML, CSS, and scripts. With the blog poster, you can download template files to your local system, edit them, and upload them to the blog. Use the Post > Download template named... command and the Post > Upload template named... command.

Contents

BottomFeeder Home Page

Regular Expressions

BottomFeeder supports a powerful search engine for the items of your feeds. It applies the pattern you give it to the items of the feeds it has saved for you, and returns only those items that contain text that match the pattern.

BottomFeeder supports two different kinds of patterns in the BottomFeeder Search window. The first kind is a simple string that you want to match; either an item contains an instance of that string or it doesn't. The second kind, known as a Regular Expression (or "regex"), is actually a type of program, that BottomFeeder executes against the title, body or category of an item.

A regular expression can also be thought of as a template that specifies a class of strings. A regular expression matcher is a tool that determines whether a string belongs to a class specified by a regular expression. BottomFeeder can use such a matcher to do searches and filtering.

The following section describes regular expressions in terms of a single match of a pattern to a fixed length string; the result being true or false for the entire string. In practice, though, BottomFeeder scans an item's title, category or body for any occurrence of the pattern.

Contents


Regular Expression Syntax

This section was adapted from comments by Vasilli Bykov on the syntax of regular expressions as supported by VisualWorks Smalltalk.

The simplest regular expression is a single character. It matches exactly that character. A sequence of characters matches a string with exactly the same sequence of characters.

BottomFeeder's support of regular expressions ignores case.

 

String Regular Expression Result
'a''a'true, the single character matches
'a''A'true, BottomFeeder matches ignore case
'A''a'true, BottomFeeder matches ignore case
'foobar''fooBar'true, all characters match
'fooBar''foobar'true, all characters match
'blorple''foobar'false, nothing matches

The above paragraph introduced a primitive regular expression (a character), and an operator (sequencing). Operators are applied to regular expressions to produce more complex regular expressions. Sequencing (placing expressions one after another) as an operator is, in a certain sense, invisible--yet it is arguably the most common.

Another operator is an asterisk (*), often referred to as a star. A regular expression followed by an asterisk matches any number (including 0) of matches of the original expression. For example:

String Regular Expression Result
'ab''a*b'true, a single a is enough to match
'aaaaab''a*b'true, multiple a's match
'b''a*b'true, no a is still a match
'aac''a*b'false, there is no b to match

A star's precedence is higher than that of sequencing. A star applies to the shortest possible subexpression that precedes it. For example, 'ab*' means 'a' followed by zero or more occurrences of 'b'; it does not mean zero or more occurrences of 'ab'.

String Regular Expression Result
'abbb''ab*'true
'abab''ab*'false

To actually make a regular expression that matches zero or more occurrences of 'ab', `ab' is enclosed in parentheses.

String Regular Expression Result
'abab''(ab)*'true
'abcab''(ab)*'false, c spoils the match

Two other operators are similar to `*':

String Regular Expression Result
'ac''ab*c'true
'ac''ab+c'false, at least one b is needed
'abbc''ab+c'true
'abbc''ab?c'false, too many b's

As we have seen, characters `*', `+', `?', `(', and `)' have special meaning in regular expressions. If one of them is to be used literally, it should be preceded by a backslash. (Thus, backslash is also special character, and needs to be preceded by a backslash for a literal match -- as well as any other special character described further).

String Regular Expression Result
'ab*''ab*'false, the * in the regular expression is a special character
'ab*''ab\*'true
'a\c''a\\c'true

The last operator is `|' meaning `or'. It is placed between two regular expressions, and the resulting expression matches if one of the expressions matches. It has the lowest possible precedence (lower than sequencing). For example, `ab*|ba*' means a followed by any number of b's, or b followed by any number of a's'.

String Regular Expression Result
'abb''ab*|ba*'true
'baa''ab*|ba*'true
'baab''ab*|ba*'false

A bit more complex example is the following expression, which matches the name of any of the Lisp-style `car', `cdr', `caar', `cadr', ... functions.

String Regular Expression Result
'car'
`cdr'
`caar'
`cadr'
'c(a|d)+r'true, all of these strings match.

It is possible to write an expression matching an empty string, for example: `a|'. However, it is an error to apply `*', `+', or `?' to such expression: `(a|)*' is an invalid expression.

Contents


Regular Expression Character Sets

So far, we have used only characters as the smallest components of regular expressions. There are other, more interesting, components.

A character set is a string of characters enclosed in square brackets. It matches any single character if it appears between the brackets. For example, `[01]' matches either `0' or `1'.

String Regular Expression Result
'0''[01]'true
'3''[01]'false, '3' is not in the set
'11''[01]'false, a set matches only one character
'11''[01]*'true
'1011''[01]+'true
'1021''[01]+'false, '2' is not in the set

For convenience, a set may include ranges: pairs of characters separated with `-'. This is equivalent to listing all characters between them: `[0-9]' is the same as `[0123456789]'.

If the first character after the opening bracket is `^', the set is inverted: it matches any single character not appearing between the brackets.

String Regular Expression Result
'0''[^01]'false
'3''[^01]'true

Special characters within a set are `^', `-', and `]' that closes the set. Below are the examples of how to literally use them in a set:

[01^] -- put the caret anywhere except the beginning
[01-] -- put the dash as the last character
[]01] -- put the closing bracket as the first character 
[^]01]   (thus, empty and universal sets cannot be specified)

Regular expressions can also include the following backquote escapes to refer to popular classes of characters:

\w -- any word constituent character (same as [a-zA-Z0-9_])
\W -- any character but a word constituent
\d -- a digit (same as [0-9])
\D -- anything but a digit
\s -- a whitespace character
\S -- anything but a whitespace character

These escapes are also allowed in character classes. '[\w+-]' means any character that is either a word constituent, or a plus, or a minus.

Character classes can also include the following (grep(1)-compatible) elements:

[:alnum:] -- any alphanumeric -- '[A-Za-z0-9]'.
[:alpha:] -- any alphabetic character -- '[A-Za-z]'.
[:cntrl:] -- any control character. Any character with a code < 32.
[:digit:] -- any decimal digit -- '[0-9]'.
[:graph:] -- any graphical character. Any character with a code >= 32.
[:lower:] -- any lowercase character -- '[a-z]'.
[:print:] -- any printable character. This is the same as [:cntrl:].
[:punct:] -- any punctuation character.
[:space:] -- any whitespace character.
[:upper:] -- any uppercase character -- '[A-Z].
[:xdigit:] -- any hexadecimal character -- '[0-9A-F]'.

Note, because these elements are components of the character classes, they have to be enclosed in an extra set of square brackets to form a valid regular expression. For example, a non-empty string of digits would be represented as '[[:digit:]]+'.

So far, we have seen the following equivalent ways to write a regular expression that matches a non-empty string of digits: '[0-9]+', '\d+', '[\d]+' and '[[:digit::]+'.

Finally, a group of special primitive expressions includes:

. -- matching any character except a newline; 
^ -- matching an empty string at the beginning of a line; 
$ -- matching an empty string at the end of a line.
\b -- an empty string at a word boundary
\B -- an empty string not at a word boundary
\< -- an empty string at the beginning of a word
\> -- an empty string at the end of a word
String Regular Expression Result
'axyzb''a.+b'true
'ax zb''a.+b'false, a space is not matched by `.'

Again, the characters '.', '^' and '$' are special and should be preceded by a backslash to be matched literally.

Contents

BottomFeeder Home Page

Glossary

Aggregator
A client tool for assembling feeds from multiple websites for convenient reading (e.g., BottomFeeder).
Blog
See weblog.
Blog Roll
A list of links in a your blog to other blogs (and websites) that you recommend to your readers.
Browser
A client tool for viewing webpages (e.g., Windows Internet Explorer or Netscape).
Enclosure
The URL of a resource that is enclosed within a message but not embedded in the text of the message.
Feed
A file published by a website about recent changes to its resources. A feed is itself a resource of a website.
Link
A pointer to an Internet resource, consisting of a description (or title) of the resource and its URL.
Resource
A file containing text, images, and other media.
RSS
Really Simple Syndication -- the Internet standard for the format of feeds.
Search engine
A website devoted to searching many websites for information (e.g., Google).
Syndicator
A website that brings together and organizes the feeds of many websites (e.g., Syndic8).
Trackback
An Internet message that specifies the URL of its sender and identifies a specific resource of the sender (such as a blog item).
URL
Universal Resource Locator -- the address of an Internet resource.
Weblog
blog -- a website whose pages consist of items in reverse timestamp order. Often personal journals, blogs are beginning to be used for many purposes.
Webpage
A collection of linked resources of a website presented as a page by a browser.
Website
A repository of URL linked resources.

Contents

BottomFeeder Home Page

The End