Strainer 0.8 by Paul R. Potts 11/8/93 11:25 a.m. description for online services: Strainer 0.8 is the latest release of the Strainer utility, adding several new features. Strainer is designed to let you easily mark and remove entries from your Newton's storage. This can help you to get around a bug in the Datebook which makes it difficult to delete certain entries, or to remove outdated entries in order to keep as much memory free as possible. New features in version 0.8: - You can now mark entries in multiple soups and strain them all at once. - I now handle straining of items on storage cards, if present. - Strainer now has dialogs to ask you what you want to do if you close the app before straining out the entries you have marked. - You can browse and mark entries in the to-do list and Names - I have fixed a bug in 0.7 that caused errors when trying to browse soups and no storage card was present. contact: potts@oit.itd.umich.edu, Compuserve: 71561,3362 ----------------------------------------------------------- The first version of Strainer that I released (0.3) was completed and sent to the net on my birthday, 9-26. I was happy to celebrate my 26th birthday by sending my first completed Newton application into the world. I hope to be able to provide many more useful and interesting programs in the future. Strainer is a utility that allows the user to browse through three Newton system soups, called Calendar, Calendar Notes, and Repeat Meetings. They can see old, obsolete, or incorrect entries, mark them for deletion, and delete them. Strainer is a little easier to use than walking around trying to delete everthing in the datebook, and it can also be used to get rid of entries in the datebook which can't be removed due to a few bugs in the Calendar. (Yes, PIE is aware of these bugs and they will be fixed in a future release). Users might want to use Strainer as a means of keeping as much memory free as possible; old datebook entries take up room in memory, so it makes sense to delete them if you really aren't going to be needing them any more. Strainer is written using the Newton Tool Kit, which I got at the Boston MacWorld Newton launch. I'm very new to Newton programming, like most developers, and so I'm very aware that, although strainer seems to work, there still may be lurking bugs. Also, I know that my NewtonScript code is very inefficient; in particular, I'm using a very inefficient search method in the browser. I have plans to speed this up greatly in the future. (It isn't your Newton that is so slow, it's my code). In a future release, I hope to have the code cleaned up and looking nice and to distribute the source code as an example for other Newton programmers who are trying to work with soups. VERSION INFORMATION Version 0.3: First release. Version 0.4: - actually included something in the READ ME FIRST file; in the 0.4, it went out blank because of a dumb mistake on my part. - fixed weird, hard-to-pin-down bug where checked items were becoming unchecked after walking back through a number of them. (this could result in the user being unable to change their minds and uncheck an item). The reason the bug was hard to find is that it was actually two bugs. When I fixed the first bug, the second bug was still active, making me think that my fix hadn't helped. The opposite thing happened when I fixed the second bug. - my views no longer float, so you can now bring up another window on top of them. - made some cosmetic improvements. Version 0.5 (not released): Made it possible to select items in multiple soups for straining. Added a test so that if we close Strainer with items selected, a dialog comes up asking you if you want to delete the items before closing or forget their marked-for-deletion status. Cleaned up organization of code a bit. version 0.6 (not released): Added support for straining the to-do list soups. Cleaned up the code a lot; reduced app size by removing redundant functions; now using simpler path expressions. version 0.7: I now use Union Soups so if you have a card in the slot with items on it, you can browse and delete those items along with ones on the internal store. version 0.8: Fixed a bug which caused an "array out of bound" (-48205) if you tried to browse with no memory card installed. Apparently most of the people using Strainer had cards installed, but I did get one report of this problem which helped me fix it. Rebuilt with NTK version 1.0b6, which is much nicer to use (speed of builds has been improved a great deal). NOTES ON USING STRAINER: - I do support union soups, but I'm not yet doing extensive checking, so there are some things that might cause problems: for example, don't yank out a card if you're browsing items on it; if you try to strain out items on a card that is write-protected, you'll probably get an error, since I don't check for that yet. I'll try to handle all the obvious conditions in a future release. - Close the datebook before starting Strainer; otherwise, if you strain out entries that are visible in the datebook, the datebook won't update its display until you close it an re-open it (technical reason: the datebook doesn't respond to the soupChanged message, so I don't bother to notify it). - If you find ink entries in your calendar soup, they aren't supposed to be there; remove them. Strainer will say . These entries are apparently in the soup because of a known bug in the Calendar. Things remaining to fix: I don't know of any real bugs remaining. There are a number of missing features: - I want to support faster browsing and deleting. Right now, I'm using a soup to keep track of marked entries; it would be faster to use and array, so I'll probably do this in the future. Also, my method of searching for marked entries is extremely inefficient. I'll speed this up in a future release. - Some of the features I'm thinking of adding: a cleaner interface, a method of seeing how many entries are in the soup and how far through them you are, and an Overview mode. However, I also want Strainer to remain a small application, which means not going overboard on features. If there's a particular change or feature you want to see, please let me know.