Multi-threaded Retrieval/Plans

There is a new version of HotSheet available via the automatic update mechanism. It’s not really the next version yet because the UI updates aren’t finished. But it does have multi-threaded retrieval of channels using a thread pool built in. In my tests so far this has greatly sped up how long it takes to perform a “Refresh All Channels” command and it should scale even up to a program which retrieves thousands of channels.
So, what has to happen now before a new release? I’ve got to fix the UI so it shows the progress of channel retrievals and that is going to require careful updates to the RSS library. I’ve done some already but I want to review what I did to make sure it seems consistent with the rest of the library. After that I need to see if I can use Harshad Oak’s code to give us a broader set of channels to pick from. Then I’ll do a release before I reopen the patient again to add scripting and fix up the messy item history system.
By combining scripting and some new methods for marking news items or separating them from the rest of the items users will have the ability to start tailoring HotSheet to their own particular needs. I’m toying with a few different ideas but one that is sure to be implemented is the idea that each item will have its own set of properties. That way I can tag items as “read” and they will stay tagged. To the library the properties will just be strings and numbers associated with the items, it won’t have any idea how they are used. It will be up to the program that uses the library how it interprets different properties.
Given that capability it will be easy to add a “score” to each news item and make HotSheet aware of scores on news items. Scripts could review news items and create a score based on keywords they see or other characteristics that will be attached to the item. HotSheet will draw items that have a score property differently than ones without, draw them differently based on how high the score is, or perhaps place them on a different tab. I’ve been thinking that it would be neat to have separate tabs in the UI with all the news items on one tab and the “hot” news items on another. Anyway, suggestions are welcome because I’m just trying to think what kind of abilities I’m going to want to make available to the scripting languages that can be connected to HotSheet.