@database 07c6b268-0 @master Archive:Hatch/Skimmer/InstallMe/Skimmer.guide @$VER: 1.0 @index Index @remark Created with Heddley v1.1 (c) Edd Dumbill 1994 @node "Main" "Welcome to Skimmer" Skimmer -- Clean out your LIBS: directory! ========================================== Skimmer is a tool that helps you locate stray shared libraries that are no longer in use by any programs on your computer. It does so by searching your mounted hard drives and examining anything looks like an Executable file, including other libraries. @{" Description  " link "Intro" 0} More thorough description of the program @{" Requirements " link "Requirements" 0} What you need to run this program @{" Limitations  " link "Limitations" 0} Limitations of the unregistered version @{" Installation " link "Installation" 0} How to install the program @{" Use          " link "Use" 0} How to use the program @{" Registration " link "Register" 0} How to register this program @{" Reference    " link "Reference" 0} Detailed reference of the various controls @{" Notes        " link "Notes" 0} Release notes @{" About        " link "About" 0} Roll the credits @{" History      " link "Changes.txt/main" 0} History of Changes @{" Bugs         " link "Bugs" 0} Known Bugs and how you can help @{" Disclaimer   " link "Disclaimer" 0} Legal mumbo-jumbo @endnode @node "Intro" "Introduction" Introduction ============ All things considered, AmigaDOS is a fairly easy operating system to manage. If you've used a Mac or Windows you know exactly what I mean. Things are arranged logically on the Amiga, with stuff stored in places that make sense, for the most part. Users of other operating systems are not so fortunate. On the other hand, there is one area where it is difficult to keep things tidy, and that's shared libraries. Shared libraries, for the uninitiated, are simply collections of sub-programs that can be used by any other program that is programed to use it. These shared libraries make things really easy on a developer, but as you use your Amiga you tend to collect a lot of these little suckers. For example, my A3000 that has been in constant use since it was new has over 140 libraries in LIBS:. Many of those are not used, or are used by programs I no longer need to keep anyway. Under Windows (I am "blessed" with it at work), I came across a program called Clean Sweep that went through every program and helped isolate unused libraries (DLL files). This was more or less the inspiration for Skimmer. Skimmer concentrates on libraries, that being the primary source of "pollution" on the Amiga. It collects a list of libraries that you have in LIBS:, then scans all files that might be executables. When it is done scanning your hard drives, you may be left with a list of leftover libraries that you can then delete or archive. A certain amount of control is afforded to you; o Configurable filters, causing Skimmer to skip files with certain extensions (e.g. LHA, LZX, ZIP, etc.). o Configurable "Keepers" list allowing you to protect certain libraries from deletion or archiving, even if they are completely unused. o Configurable list of drives to scan, allowing you to skip over drives that contain no programs, thus saving time. The nature of Skimmer is such that it need only be used once in a while, perhaps annually for the average user. You may use it more often, of course. @endnode @node "Requirements" "Requirements of Skimmer" Requirements ============ o AmigaDOS 2.1 or later o 2 MB of free RAM is recommended for starters. The larger your hard drives, the more memory will be used to store information about them. o While it is not required, this program is pretty useless without a hard drive. o ReqTools.library version 38 or later (included). This program has been tested under varying conditions, including: o 68000, 020, 030, 040, 060 o ECS, AGA, CyberGraphics, Retina, and Picasso display systems o FastFileSystem up to V44.5 o A2000, A3000, A4000, A4000T, A1200, and A500 o OS 2.04, 3.0, and 3.1 @endnode @node "Installation" "How to Install Skimmer" Installing Skimmer ================== The Amiga Installer is used for your convenience. Installer V43 is required to use the supplied Installer script, but you may install it without using the installer script. To manually install: o Copy Skimmer and its icon wherever you like it. o If you wish to use the online help, copy Skimmer.Guide (icon optional) to the same directory that you place Skimmer in. o If you have reqtools.library installed, verify it is V38 or later by typing the following in a shell: VERSION reqtools.library FULL If it reports something less than V38, copy libs/reqtools.library to LIBS:. Skimmer will create its own keyfile (when you @{"register" link "Register" 0}) and prefs file in its home directory. It will also create a directory called "Archive" in its home directory if you choose to archive unused libraries. All reports default to the home directory as well. @endnode @node "Use" "Using Skimmer" Using Skimmer ============= When you run Skimmer the first time, you must configure a few basic preference settings into the program, the most important being the @{"hard drives" link "_HDPrefs" 0} to scan. Until they are configured, Skimmer will not perform a scan. Other settings are optional, but you will get best results if you take the time to configure Skimmer to best suit your system and your needs. For your convenience, the HD prefs window will pop up the first time you run the program. Besides the HD Prefs, you also have the option to set the file I/O buffer to a size that is most efficient for your system and configure filters that will automatically skip over files with certain @{"extensions" link "_ExtPrefs" 0}. Two notes about windows: o Skimmer saves the size and position of every window it uses. If you resize or move a window while using Skimmer, the changes will be automatically saved when you exit the program. o The layout engine used to construct the GUI automatically resizes a window to fit the gadgets used if the original window is too small. This may appear confusing at first. All you need to do is resize or move the window once to fit your needs, and this artifact will go away. Once configured, Operating Skimmer is extremely simple -- hit the START button and it will begin to examine every file on each selected drive. This operation will take a considerable amount of time, the duration which depends on how many drives you have, how big they are, and other speed enhancements you may have on your system. During this process, the main window will update you on the status of the scan, showing the current directory, percent completion of the scan, the number of files examined, the number of files skipped, and so on. Quite festive and busy. "Friendly" programs can continue normal operation during the scan, although there will be noticable drag on the system as thousands of files are opened and examined and lists are built and maintained. When the scan is complete, a list of unused libraries is presented to you for possible deletion or archiving. You can also examine a list of libraries that appear to be in use on the system, with a tally of how many programs use them as well as links to a list of the actual files that contain references to them. For more detailed information on the controls for Skimmer, please see the @{"reference section" link "Reference" 0}. @endnode @node "Register" "How to register Skimmer" How to Register =============== Skimmer is shareware. Please support the shareware concept! If you find this program to be of value to you, consider registering it. Besides giving me a warm fuzzy for a job well done, it will encourage me to do more nifty tools for the Amiga. I see this as a "good thing." :-) Registration is $10.00 US, 7 UKP in the UK. Any bugfix releases are of course also included -- I wouldn't make you pay to have bugs fixed. What am I, Microsoft? :-) Registration is accomplished by typing in a code that I will give you. Every registration is different, so I have no problem sending the information via email, netmail, or snail mail. At this point we are not yet accepting electronic registrations, but we are looking into possible avenues to allow it to happen. Send registration fee to: Everywhere except for the United Kingdom: UK Only: Jeff Grimmett Thomas Newsom 17159 W. Bernardo Dr. #102 1 Granville Villas San Diego, CA 92127 Sculcoates Lane USA Hull, HU5 1DZ East Yorkshire England -------------------------------------------------------------------------- Skimmer Registration -------------------------------------------------------------------------- (send this in with your registration fee) -------------------------------------------------------------------------- Name: ________________________________________ Preferred method of Registration: ( ) Email Address: ______________________________________________ ( ) Netmail Address: ______________________________________________ ( ) Postal Service¹: Address: _____________________________________ City: ________________________________________ State/Prov: ________ Postal Code: ____________ Country: ___________ -------------------------------------------------------------------------- Thank you for registering!! -------------------------------------------------------------------------- ALL INFORMATION GATHERED IN THE PROCESS OF REGISTRATION IS ABSOLUTELY CONFIDENTIAL AND SHALL NOT BE DISCLOSED TO ANYONE. -------------------------------------------------------------------------- ¹ You should provide a postal address on the off chance that your netmail or email address bounces. If we receive a bounce message, we will send the registration code via postal mail. Failure to include this address on the registration form puts your registration at considerable risk. @endnode @node "Reference" "Complete reference to Skimmer Controls" Reference Section ================= Skimmer consists of a number of interface windows wrapped around the basic search engine. Each window has a specific purpose. @{"Main Window             " link "_Main" 0} This is the entry way into the program and from where you control it. @{"Drive Selection Window  " link "_HDPrefs" 0} Select which drives to scan @{"Extensions Filter Window" link "_ExtPrefs" 0} Designate file extensions belonging to files that should not be examined @{"Keepers Window          " link "_Keep" 0} Designate files that you never want to delete @{"Library Report Window   " link "_Report" 0} Report on libraries (after a scan) @endnode @node "Notes" "Release Notes" Release Notes ============= Some random ramblings about this program for anyone that is interested. o This is the first time I ever tried AmigaGuide as an online help system. I was suprised to learn that context-sensitive help is NOT supported in V37 of the operating system. It's a minor annoyance, and I have working code to add it, but at the cost of program size. In the end I decided it wasn't really worth the size to have a seperate help page for every gadget. o This is a resizable GUI without the use of MUI or BOOPSI or anything else wierd or wonderful. The GUI was generated using a neat program and link lib called GenGui by Matthias Meixner. o I really wembled on using ReqTools with this package. In the end I elected to as ASL does not provide useful string requesters, and I really needed them to do what I wanted with the Filters and Keepers lists. o ROM-based libraries are not taken into account. After all, you can't eliminate them, so why worry about them? o I make no pretentions about the search engine being perfect. I am sure there will be a hole or two in the early releases, which I will fix as soon as I am made aware of them. The search engine is simple: it first uses the filters to eliminate any unwanted files, then looks at the first 4 bytes for the "executable" signature, $03F3. If this is found, the file is assumed to be an executable and it is loaded into memory. The amount of memory used depends on your prefs. There are occasions where a boundary condition will exist. ie, the last 4 bytes of the first buffer might be "dos.li" and the first few bytes of the next may be "brary". To avoid problems with this, Skimmer rewinds the file by 40 bytes after reading in a full buffer. AmigaDOS limits file names to 30 bytes, so we have a 10 byte fudge factor. If future versions of AmigaDOS allow a longer file name, Skimmer will of course be adjusted to suit. Skimmer looks for the key signature "library" after a ".", then backtracks to the first printable character to get the full library name. This is the riskiest part of the search engine, but thus far it has not caused any problems. @endnode @node "About" "About the author (as if you cared)" Credits ======= Skimmer is proudly brought to you by the k001 people at @{"Digerati Dreams" link "Digerati_dreams.txt/main" 0} and the following crowd: The Production Crew Jeff Grimmett email: dlg@maximumaccess.com Holly Sullivan The original Beta Crew Asha Develder Chris Bailes Dale Frameli Dave Cook Erik Van Petersen Guido Van Bercum Jeff McKee Thomas Newsom Ted Wallingford ... and a whole lot of people that got involved after Skimmer was released -- thanks! Translations Didier Giron (Français) Giancarlo Presioso (Italiano) Philip Stefan (Deutsch) GUI provided by Matthias Meixner (GenGUI) Magnus Holmgren (ReqTools) Nico Francois (ReqTools) Soundtrack by Electric Light Orchestra Blues Traveller The Travelling Willburys Natalie Merchant =================================================================== @endnode @node "Bugs" " Bugs         " Known Bugs and how you can help ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ As of this writing, only two minor bugs are known to exist. o If the registration process is aborted for some reason, then Skimmer instructed to start a scan, multi-assigned LIBS: dir may not be fully delved. o If you're using a language other than English, the hotkeys don't make much sense. This is because the hotkeys are hard-coded. This will be fixed in V2. Of course, also send bug reports of unrelated bugs that might have slipped past the beta testers. They're a sharp bunch, though :-) Send bug reports to dlg@maximumaccess.com. ===================================================================== SKIMMER BUG REPORT ===================================================================== System Model (A500, A2000, etc) ___________________________________ CPU ___ 68000 ___ 68010 ___ 68020 ___ 68030 ___ 68040 ___ 68060 ___ Other ___________________________________ MMU? ___ Yes ___ No FPU? ___ Yes ___ No PPC? ___ Yes ___ No If 68040: Version of 68040.library¹ ______________ Type of accelerator? ___________________ If 68060: Version of 68060.library² ______________ Type of accelerator? ___________________ Version of KickStart³ _________ Version of Workbench³ __________ Version of SetPatch¢ _________ Version of FastFileSystem __________ Are you using NSDPatch? YES ______ NO ______ Memory _______ MB FAST ________ MB CHIP Graphics System ___ OCS ___ ECS ___ AGA ___ AAA ___ CV64 ___ CV64/3D ___ Picasso ___ Other (describe) _____________________________________ ===================================================================== Your help is appreciated! ===================================================================== ALL PERSONAL INFORMATION GATHERED IN THE PROCESS OF REPORTING BUGS IS ABSOLUTELY CONFIDENTIAL AND SHALL NOT BE DISCLOSED TO ANYONE. --------------------------------------------------------------------- ¹ Type VERSION 68040.library FULL in shell ² Type VERSION 68060.library FULL in shell ³ Type VERSION in shell ¢ Type VERSION SETPATCH FULL in shell @endnode @node "_Main" "The Main window" The Main Window =============== This window is the central nexus of the program and enables you to execute any function in Skimmer with just a few mouse clicks. The left half of the window is given over to indicators only, while the controls are arrayed down the right side of the window. At the bottom of the window is one indicator marked STATUS, showing various things that are going on at the time. The most useful information is gathered from it during a scan, however, as it displays the current directory Skimmer is in at the time. The other indicators, in order of appearance, are: UNCLAIMED LIBS This indicates how many libraries exist on your system that have not yet been matched up with an executable of some sort. PROGRESS During a scan, this shows the approximate percentage of your hard drives that have been scanned. You're done when it is at 100%. FILES EXAMINED During a scan, this is a running count of how many files have been processed by Skimmer, including all files that are excluded by filters. FILES SKIPPED During a scan, this is a running count of how many files were skipped over because they matched the criterea of one of your filters. DATA RATE This is an approximate number indicating how many bytes per second Skimmer is processing. The higher the number, the better your performance. You can use this number as a guide to optimize your memory buffer settings. The controls are broken into two categories: those that affect preferences settings, and those that do not. START (S) This button initiates a scan of your hard drives. It will be ghosted out until you have set up which hard drives to scan. ABORT This button will abort a scan once started. It is ghosted until a scan is started. REGISTER This button is only used once, and that is to enter your @{"registration code" link "Register" 0} to unlock the disabled features of the unregistered version. Once you have registered it, this button is perpetually ghosted. REPORT (R) Upon completion of a scan, Skimmer automatically presents a @{"report" link "_Report" 0} to you, but if you want to go back and look at it again, this button will take you there. QUIT (Q, X) Causes Skimmer to shut down and exit. If you have changed preferences, you will be prompted to save them or not. The Preferences settings DRIVES (D) This button opens the @{"Drive Selection" link "_HDPrefs" 0} window. Using it, you tell Skimmer which drives to scan and which to avoid. FILTERS (F) This button opens the @{"Filter" link "_ExtPrefs" 0} window. Using it, you tell Skimmer which filename extensions should be excluded during a scan. KEEPERS (K) This button opens the @{"Keeper Filter" link "_Keep" 0} Window. Using it, you tell Skimmer of any libraries that you want to exclude from the search, no matter how many files use or do not use them. BUFFER (B) This sets up how much memory Skimmer will use when loading a file into memory before examining it. A large buffer works best for large files, but is less efficient for smaller files. The minimum is 5000 bytes. To optimize performance, you should adjust this to render the highest data rate possible. You will find that there is a window between big and small that will work best for you (on my system, it's 10000). SAVE (V) Although it is not really needed, many beta testers expressed dis-ease at not having a "save prefs" control available. For peace of mind, this will cause the current preferences to be written to disk. @endnode @node "_HDPrefs" "Hard Drive Preferences" Drive Selection Window ====================== This window is used to set up which drives are scanned by Skimmer. You must have at least one drive selected before Skimmer will allow you to execute a scan. When you first run the program, the program will execute a check of all drives. All valid AmigaDOS partitions will be presented to you, including CDs that are mounted and present, floppies that are present, and even pseudo-disk file systems like FMSDisk by Matt Dillon. Selected drives are presented with a "+" in front of them, unselected drives with nothing in front of them. You toggle selection on or off by clicking on the drive name. The drive list is sorted on the name of the device, not by the label of the drive (e.g. "HD0:", "HD1:" rather than "Games:", "Work:"). Two controls are provided for bulk selection and deselection (SELECT ALL (A) and SELECT NONE (N)). These controls are disabled in the unregistered version. If a new dos device has been added to or removed from your system, hitting RESCAN (R) will cause Skimmer to go out and find out what's there. Hitting CANCEL (C, X, Q) will close the window without saving changes. Hitting DONE (D) will save them. @endnode @node "_ExtPrefs" "File Extensions Filter" Filter Window ============= This window is used to tell Skimmer that certain file extensions are not to be examined during a scan, as these files are guaranteed (or very unlikely) to be executables that require a particular library. Skimmer will always open and examine at least the first 4 bytes of every file it finds unless you tell it that certain files are not viable executables and therefore any library references in them would be bogus. Consider an LHA archive. This archive may or may not contain references to a library, but since it is compressed, there is no way to find this out, and thus loading this file into memory and checking it would be a waste of time. Adding "LHA" to the extensions filter will ensure that this file is passed over quickly. To add a new extension to the list, you click on ADD (A). You will be asked to enter the extension you wish to filter (leading period is optional) and a description that will help you remember why you added it in the first place. Hitting CANCEL any time through the process will abort the entry. You can remove an extension by selecting it and then clicking on REMOVE (R). You can also edit an already-existing extension by clicking on it and then selecting EDIT (E). To save any changes, you click on DONE (D). To lose all changes, click on CANCEL (C, X, or Q). For more information on useful filter settings, see @{"Suggested Filter Settings" link "Filter_Suggestions" 0} . @endnode @node "_Keep" "Keepers Window " Keepers Window ============== This window is used to tell Skimmer that certain files not to be eligible for deletion whether or not something's using them. This is to cover the possibility of libraries that are not directly referenced by programs, but can be configured for use by those programs. The most common instances of this are the XPR series of file transfer libraries, XPK series of file compression libraries, XEM series of terminal emulation libraries, and so on. This does not affect how Skimmer searches for files, but it does affect how the files are presented to you after the scan. Any file marked as a Keeper will be protected from deleting no matter how many programs refer to it (or more to the point, how many programs do NOT refer to it). To add a new keeper to the list, you click on ADD (A). You will be asked to enter the file pattern you wish to filter and a description that will help you remember why you added it in the first place. Hitting CANCEL any time through the process will abort the entry. The file pattern uses standard Amiga file pattern matching conventions. For example, XPR?Modem.library would match XPRZModem.library and XPRXModem.library, but not XPRFTS.Library. XPR#?.library would match any library with XPR in the first 3 positions. You can remove a keeper by selecting it and then clicking on REMOVE (R). You can also edit an already-existing keeper by clicking on it and then selecting EDIT (E). To save any changes, you click on DONE (D). To lose all changes, click on CANCEL (C, X, or Q). @endnode @node "_Report" "The Library Report" Library Report Window ===================== This window pops up after you have completed a scan. It is a multi-purpose window, in that it reports on (a) unclaimed libraries, (b) libraries in use, and (c) all libraries. This window may also be recalled after a scan from the main window. Along the left side is a window showing a list of libraries. o If you are viewing FREE libraries only, clicking on it will toggle the library's selection on and off (a selected library has a "+" in front of it). o If you are viewing USED or ALL libraries, clicking on this list will pop up a list of files that actually refer back to it. The library name itself is preceded by a number indication how many programs referred to it. If you are viewing ALL libraries, any library that was designated as a "Keeper" will be marked with a "K" rather than a number. Of course, if it actually got used by something, this will be the count of actual uses. Along the right side of the window is a number of controls: DISPLAY TYPE These buttons switch the mode of the window to the right. FREE LIBS shows only libraries that were found to have nothing referring to them. LIBS IN USE shows what libraries are actually referred to by other programs, gives a count on how many "hits" were made, and allows you to view which programs actually refer to it. ALL LIBS does the same thing, except it also includes the free libs and keepers in the list. SELECT ALL These two gadgets allow you to select all the libraries, SELECT NONE or select none, if you are viewing free libraries. They are ghosted out if you are in ALL LIBS or LIBS IN USE modes. These gadgets do nothing in the unregistered version. DELETE SELECTED Allows you to delete all selected libraries. It is only active when in FREE LIBS mode. Any libraries deleted are lost forever! This gadget is inactive in the unregistered version. ARCHIVE SELECTED Allows you to archive all selected libraries. If is only active when in FREE LIBS mode. Any libraries archived are stored in a directory named ARCHIVE in Skimmer's directory (Skimmer will create it for you). This function is not available in the unregistered version. PRINT REPORT Prints out a report of all libraries and executables that refer to them. This report is context-sensitive, in that it will print different data depending on the mode you are in. SAVE REPORT Saves out a text report of all libraries and executables that refer to them. This report is context-sensitive, in that it will print different data depending on the mode you are in. The free libraries are saved in "Skimmer.free", used libraries in "skimmer.used", and all in "Skimmer.report". @endnode @node "Filter_Suggestions" "Suggested Filter Settings" Filter Suggestions ================== Filtering options are not effective if you don't use them. The more files you can exclude with certainty, the faster a scan will proceed. Here are lists of known extensions which you may find useful. If you have suggestions, feel free to email them to me and I'll include them in the docs for the next release. Extensions ========== Extension Description ~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C, H, O C source code and headers, as well as object modules DMS Archived disk LHA LHA archive, LH4 or LH5 format LZH LHArc archive, LH0 or LH1 format ZOO Zoo archive README Aminet README file DOC, TXT Common text file extensions ARC ARC archive LZX LZX archive Keepers ======= Pattern Description ~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ XPR#?.library External file transfer protocols, often used by Term, Terminus, NComm, and others. XEM#?.library External terminal emulations, often used by Term. XPK#?.library External compression libraries, used by a number of programs. @endnode @node "Limitations" " Limitations  " Limitations of the unregistered demo ==================================== The demo is actually quite functional. The meat of the program is completely active, but certain "convenience" functions are disabled. For example, the unregistered Skimmer will not delete or archive unused libraries for you -- you can still do it by hand, of course. Such functions as "Select all" and "Select none" are disabled, meaning that you have to do more clicking than the fortunate registered people, things like that. You may be more annoyed than a registered user, but you will still get full functionality and speed from the demo. @endnode @node "Disclaimer" " Disclaimer   " Disclaimer, and other legal mumbo-jumbo ======================================= By using Skimmer, you implicitly agree to the following: A. Liability This program is provided "AS-IS", and subject to change without notice. Digerati Dreams is not responsible for any damage to your computer caused directly or indirectly by Skimmer. You use this software at your own risk. We STRONGLY urge that backups be a regular part of your computing life. B. Copyright The program Skimmer is copyright ©1998 by Digerati Dreams. Reqtools is copyright © by Nico François and Magnus Holmgren, and is included with permission. C. Distribution The unregistered demo of Skimmer may be freely distributed in its original form at no cost, or at minimum cost (media, postage, etc). The original archive should not be modified without permission with the following exceptions: o Translation to another archive format (LZX, etc) o Addition of BBS ads (this practice is discouraged, however) o Addition of ONE FileID.DIZ file (do not accumulate!) o Unarchiving to be placed on collections disks Permission is explictly granted for distribution via: o AmiNet CD collections o Meeting Pearls collections Key files and registration information shall not be distributed by anyone but Digerati Dreams, unless permission is granted IN WRITING. @endnode