@database REMINDER @author "Ebbe Holleris Petersen" @$VER: Reminder.guide 6.3 (16.3.96) @node MAIN @title "Reminder Help" Reminder V6.3 Copyright © 1991-96 by Ebbe Holleris Petersen Released 16/3-96 E-mail: eep@sbi.dk @{" Introduction " link HELP_INTRO } @{" What is Reminder? " link HELP_WHATISREM } @{" How to invoke Reminder and what it does " link HELP_INVOKEREMINDER } @{" The input window " link HELP_INPUT } @{" The setup window " link HELP_SETUP } @{" The alarm window " link HELP_ALARM } @{" The message window " link HELP_MESSAGE } @{" Reminder's config- and datafile " link HELP_CFG } @{" Facilities to be added in future versions " link HELP_ADDED } @{" Troubleshouting " link HELP_TROUBLE } @{" What to do about bugs, criticism, suggestions etc." link HELP_WHATTODO } @{" Credits " link HELP_CREDITS } I'm kinda curious about how many people out there actually use Reminder so send me a postcard, or even better an E-mail if you like the program. The more responce I get, the more effort and time I will put into the development of Reminder. So let me here from you, even if it's only to say 'Hi - I use Reminder - I like it'. See @{" What to do ... " link HELP_WHATTODO } for info of how to get in touch with me. Also, if you have an E-mail address and would like to receive Reminder whenever a new version is released, send me an E-mail, and I will add you to my mailing list. @endnode @node HELP_INTRO "Introduction" INTRODUCTION Reminder is Copyright © 1991-96 by Ebbe Holleris Petersen, but can be freely distributed, providing that the following rules are respected: - No change is made to the program nor to the accompanying documentation. - The package is always distributed in its complete form consisting of the following files: Changes.guide Changes.guide.info Reminder Reminder.info Reminder.68020+ Reminder.guide Reminder.guide.info Reminder.data Install/Dansk.info Install/Deutsch.info Install/Norsk.info Install/Svenska.info Install.info Language/Reminder.cd Language/Reminder.ct Language/Translate.ReadMe Language/dansk/Reminder.catalog Language/dansk/Reminder.ct Language/deutsch/Reminder.catalog Language/deutsch/Reminder.ct Language/norsk/Reminder.catalog Language/norsk/Reminder.ct Language/svenska/Reminder.catalog Language/svenska/Reminder.ct - Every form of distribution is allowed and encouraged, but no fee can be charged for this program except for, possibly, the cost of magnetic media and/or disk duplication and shipping. - Inclusion in PD software libraries such as Fish Disks is allowed, provided the fees charged for these disks are comparable with those charged by Fred Fish. - The program cannot be distributed in any commercial product without the written consent of the author. By copying, distributing and/or using the program you indicate your acceptance of the above rules. Also remember that this program is supplied 'as is': the entire risk as to the quality of the program is to the user. In no event will the author be liable for direct or indirect damage or loss resulting from the use of this program. If you like Reminder, and would like to do something in return, then I suggest you donate whatever amount you find appropriate to GreenPeace or WWF. The only thing I ask for is ideas and suggestions for additional features and improvements of Reminder. See @{" What to do ..." link HELP_WHATTODO } for info on how to get in touch with me if you have any. Enjoy. @endnode @node HELP_WHATISREM "What is Reminder" WHAT IS REMINDER? I have a tendency to forget that there is a world around me and that time keeps running, when I am working with my A2000. I therefore decided to write a small commodity that would pop up now and then to remind me of the things I otherwise would forget. The result of this mental exercise I decided to call ... Reminder (I never was wery imaginative) So what does it do? Reminder keeps an eye on a list of events (messages and commands), which the user (you) wants to be displayed and/or executed at a specific time or time intervals. Any or all of the timeparameters can be wildcards. Once every minute the list is checked, and if a match between the system clock and a time specification is found a window will pop up, and the message(s) will be displayed and/or the command(s) will be executed. Because Reminder is supposed to run as a backgroundprocess, it is designed to be memory efficient and use as little CPU time as possible. Should you however be the owner of an unexpanded A500, or for any other reason NOT want the program to run continuous, it is possible to make it display all messages for today at once, and then quit (when using this option no commands will be executed). @endnode @node HELP_INVOKEREMINDER "How to invoke Reminder and what it does" HOW TO INVOKE REMINDER AND WHAT IT DOES Reminder can be run from the CLI simply by typing: [RunBack] Reminder [X] [Y] [MODE=RUN/CHECK/CLI] Running Reminder without any options is equivalent to: Reminder X=372 Y=0 MODE=RUN Commandline options overrides default values, and values found in the configfile. I would, however, suggest you put Reminder in your WBStartup directory or run it from S:User-startup. In the former case X, Y and MODE can also be specified as tooltypes in the Reminder icon. >>> IF YOU HATE TO READ LONG MANUALS <<< take a break here, run Reminder and try selecting 'alarm', 'input' or 'setup' from Reminders menu. This should give you an idea of what the program does (it may be an idea to copy the file Reminder.data to S: first though). (Ok, break over...) Reminder is very tolerant when it comes to low memory conditions - it simply remembers what it wasn't able to do, and then tries again (about once every second) until it succeeds. Only a few things will make Reminder close down and exit: - Not being able to open the needed libraries (intuition V36+, graphics V36+, commodities V36+, gadtools V36+, diskfont V33+ or reqtools V38+). - Not being able to allocate space for it's datafile. - Not being able to open input and timer device. Since none of these situations are likely to occure you will probably not experience any problems. When run Reminder: - attempts to load it's configfile ENV:Reminder.prefs - attempts to load it's datafile S:Reminder.data If no configfile and/or datafile is found, or if the file(s) are damaged reminder will state the fact, and then use it's default setup, and start with an empty list of events. Note that as of version 5.7, Reminder no longer can read V2.0 datafiles, and as of version 6.3 also not V3.0-3.2 data or configfiles. Reminder V4.0 - V6.2 config and datafiles doesn't need any special attention. The old config and datafile will (if needed) automatically be updated the first time Reminder V6.3 is run. If you have been using an older version of Reminder the old config file (S:Reminder.cfg or ENV:Reminder/Config) will be deleted, and the files ENVARC:Reminder.prefs and ENV:Reminder.prefs will be created in stead. - (If so instructed) Reminder then checks to see if any of the messages in the event list should have been displayed and/or any commands should have been executed since the last time Reminder was run. If so these "old" events are then displayed. Each event is displayed only once regardless of the number of times it should have been displayed/ executed. - If any of the events read from the datafile have become obsolete, i.e. were to be displayed/executed yesterday or before yesterday and never again, they will be deleted from the event list. Reminder will then attempt to save the updated list, thereby deleting the existing one. This operation will be repeated every 24 hours (at midnight). - Finally, unless told otherwise in it's configfile, Reminder by default opens a small clock in the upper right corner of the Workbench screen, showing the time, and how much fast & chip memory is available (it's contents can be changed or Reminder can be instructed not to open any clock window at all). You can quit Reminder by: - selecting 'Quit' in the menu (unless Reminder uses the screens menubar to display it's clock etc.). - clicking on the close gadget in the clock window. - by pressing + (default: + +). - or by using the commodities control program ExChange. (if any other Reminder windows are open they will be closed to). @endnode @node HELP_INPUT "The input window" THE INPUT WINDOW The Input window can be opened in two ways: - if the clock window is open, by selecting 'Input' in it's menu. - by pressing + simultaneously when no Reminder windows (except the clock window) are open. This window consists of two main parts: A calendar showing two months, and a list of events, and the time when they are to be displayed/ executed. First time the input window is opened, the calendar will show the month in which we are (today will be highlighted), and the following month. The event list will contain all events to be displayed/executed today (if any), and the first empty event will be highlighted. You use the calendar in the following way: Prev month: Will recede the calendar one month. Today: Resets the calendar to the present date. Next month: Will advance the calendar one month. Selecting a date in the calendar with the mouse selects (highlights) it, and displays any events for this date. The list will be sorted according to when the events are to be displayed/executed. After having selected a date in the above described way, you have a list of events ready to be edited. editing is done in the following way: To select an event to edit, you use the cursor keys until the one you want is highlighted. To add a new event just select the last (empty) entry in the list. You may also use the cursor keys combined with the shift keys to skip 7 lines up/down, or the control key to skip to the top/bottom of the event list. Pressing return or cursor key left or rigth will make Reminder enter edit mode, and allow you to edit the selected event. The same keys are used to select what parameter to edit (they can also be selected with the mouse). An event can also be selected with the mouse. Selecting an already highlighted event will enter edit mode. In edit mode, the cursor keys up/down have a different function. They now will now change the highlighted timeparameter, by moving through the legal range of values + wildcard. In stead of using the cursor keys you can also enter minutes, hours, days and months directly using the numeric keys (and ? for wildcard). To delete a message from the list use the following procedure: - Select the message to be deleted. - 1) Press the 'Delete' gadget OR - 2) Enter edit mode. - clear the fields 'Message' AND 'Command'. - Leave edit mode, and the event will be removed from the list (no matter what timespecification has been entered.) Pressing the mouse-menu-button, or + in edit mode will make Reminder leave edit mode, but while the mouse-menu-button and ignores any changes made, + keeps them. The timespecification consists of the following: From and To: These fields specify an interval in which the event is to be displayed/executed. From and To are interpeted in the following way: First the date-part of From and To is used to decide if an event is to be displayed/executed today. Then the time-part of From and To is used to find when to display/execute it today. An example: From: '08:30 25/03-1995' and To: '21:00 02/05-1995' This would result in the event being displayed/executed from 25/03-1995 to 02/05-1995 between 08:30 and 21:00 (assuming everything else is wildcards). Note that by careful manipulation it is possible to select a non existing date like 31 feb. Also there is made no attempt to check if the From date lies before the To date. It is left entirely up to the user to enter meaningful data, so: Garbage in = Garbage out. It won't harm, but it won't work either!!!. Pattern and Day(s): These fields specify at what time, date and days the event is to be displayed/executed. If 'From' and 'To' are specified 'Pattern' only applies to this interval. Se note above. Show pr. day: Tells Reminder the (maximum) number of times to display/execute a event within one day. This is very useful, for example if you want an event to be displayed/executed as soon as the program is run. You would do this by setting hour and minute to wildcards, but then the event would be displayed/executed once every minute. To avoid this, set count to 1 (one), and it will be displayed/executed only once. You can also set it to RR (ReRun), which results in 'Show pr. day' being reset to '1' every time Reminder is run (and when passing midnight). This option is especially useful for people who fx. want to run a BBS at certain times and want it to be restarted should the machine crash within that period. Show in all: Tells Reminder the total number of times to display/execute an event over one or several days. Message: The message you want to be displayed (if any). It can be up to 255 characters long. Note that you may enter a message, a command *OR* both for the same timespecification. Message is a stringgadget, and therefore all the standard key combinations like + to undo any changes, + to clear the message and so forth will work. Likewise for command, and any other stringgadget used in Reminder. Command: This line will be executed as a command. You type a command the same way you would do from the CLI. If a command is in your system search path you don't have to specify the whole path. example#1: fh0:tools/play fh0:sounds/dingdong example#2: fh0:utilities/backup fh0: fh1: dh0: example#3: "fh0:space in name" arg1 arg2 arg3 wxample#4: C:execute S:script The command line may be up to 255 characters long. Do *NOT* make any assumptions about the order in which events that are to be displayed/executed at the same time will be displayed/ executed. Cancel or esc-key (if not in edit mode): Will undo any changes made since the input window was opened, and then quit the input window. Copy: Will make a copy of the highlighted (or selected) message. Delete: Will delete the highlighted (or selected) message. Show all: Will display a complete list of all events. This list can also be edited. Save or Close gadget: Will quit the input window, and if you have modified, added or deleted any events, Reminder will attempt to save the modified event list. To see examples of events and use of wildcards, an examples datafile (Reminder.data) is supplied. Copy this file to your S: directory, or assign S: to whereever the file is located. Then simply run Reminder. @endnode @node HELP_SETUP "The setup window" THE SETUP WINDOW NOTE that the setup window requires a workbench screen at last 229 lines high to open, and it can therefore not open on a noninterlace nonoverscan NTSC workbench screen. The setup window can be opened in four ways: - If the clock window is open, by selecting 'Setup' in it's menu. - by pressing 'show interface' in the commodities control program 'ExChange'. - by pressing + simultaneously when no Reminder windows (except the clock window) are open. - by running a second copy of Reminder. The setup window will then pop up showing the following options: X pos & Y pos (commandline options and tool types: X= & Y=): These are the coordinates of the upper left corner of the clock window. Simply type in the coordinates where you which the clock window to be displayed. Illegal values will be changed to closest legal value. If the clock window is moved X pos and Y pos will be updated to reflect the new position. The position can not be controled, when using the 'Display clock in menubar' option. Default: X=372, Y=0. Display clock in window/Display clock in menubar: "Display clock in menubar" will make Reminder use the workbench's menubar to display clock etc. (x and y positions are ignored when using this option). This is done in a system friendly way, so you can close or reset the workbench screen while Reminder is running without crashing the machine. 'Display clock in vindow' will make Reminder use a small window to display everything in stead. Default: Display clock in window Keep clock visible: This option instructs Reminder to keep the clock window the frontmost window, thereby makin sure that it's always visible. This option is only available when the 'Display clock in window' option is selected. Default: No Font: Allows you to select the font that Reminder will use, for all its windows. When you change the font, the change will take effect for the clock window (if open) immediately, and for alarm, input, setup and message windows next time they are opened. NOTE that if a window gets to big using the specified font, Reminder defaults to topaz 8. Default: Default screen font. Clock format: These check gadgets tell Reminder what to show in the clock window. Note that seconds can't be selected unless you also have selected time, and seconds will automatically be deselected should you deselect time. Deselecting all options will close the clock window. Default: Chip, Fast and Clock. Alarm message: This is the string to be displayed when you use Reminders alarm facility. Default: Alarm. Alarm command: This command will be executed when you use Reminders alarm facility. (No default command). Workbench to front/Flash screen: This option tells Reminder how to signal that it has a message for you: Move the Workbench screen to front, or flash all screens. Default: Workbench to front. Display old messages & Display old commands: These options allows you to instruct Reminder to display old events that should have been displayed or executed since the last time Reminder was run. It will do so whenever it's run. Default: Off Log messages & Log commands: These options instucts Reminder to write events to a logfile whenever they are displayed or executed, along with the time, and date and time it happened. This way you can check if Reminder does what it's supposed to, when it's supposed to do it. Default: Off Logfile Allows you to select the file to use as logfile. It is an ordinary text file, which can be viewed with any text viewer. Default: SYS:Reminder.logfile Hotkey sequence: Allows you to select your very own hotkey sequence, if you for some reason don't like the default one. This hotkey sequence is used in connection with 'a', 'i', 's' and 'q' to activate the alarm, setup and input window and to quit Reminder. It can be changed any time, and the changes will take effect as soon as the setup window is closed. Note that no special effort has been made to keep the user from choosing impractical or downright stupid hotkey sequences like + + or no hotkey sequence at all. Default: +. Cancel or esc-key: Reset options to what they were before setup window was opened. Then exit setup window. Use: Use present setup. Then exit setup window. Save or Close gadget: Save present setup to configfile. Use present setup, and exit setup window. @endnode @node HELP_ALARM "Alarm" THE ALARM WINDOW The Alarm window can be opened in two ways: - If the clock window is open, by selecting 'Alarm' in it's menu. - by pressing + simultaneously when no Reminder windows (except the clock window) are open. The alarm window will then open, displaying the number of minutes until the next alarm, or be empty if no alarm is set. Just change this number to any other number (0-999) you like, then close the window by pressing 'Ok'. Pressing 'Cancel' will cancel the alarm function, no matter what number was entered. After the requested number of minutes has passed, the event specified in the setup window will be displayed/executed. If the alarm window is opened a second time, before the requested number of minutes has passed, the stringgadget will contain the number of minutes left before the alarm, and the "countdown" will be halted until the alarm window is closed again. You could of cause use the normal message+timespecification in stead of this feature, but often what you need is to be reminded that a movie begins in 15 minutes or your pizza is finished in 20 minutes etc. For situations like this the alarm function is both easier and faster to use. Since this type of request is considered a "second class" request, Reminder won't save it in it's datafile. Therefore it will be forgotten after a reset. Some would call this a drawback, I call it a feature. @endnode @node HELP_MESSAGE "The message window" THE MESSAGE WINDOW The message window can only be opened by Reminder. It will do so whenever it has a message for you. Up to 6 messages can be shown at once. If there are more than 6 messages, you can use the scrollbar or and to scroll through them. The window will stay open until you click a mousebutton anywhere in it. After the message window has been opened, Reminder will add additional messages to those already shown, until the user closes the window. It is closed by pressing a mouse anywhere in the window, or by pressing . Whenever Reminder opens the message window, or adds new messages to those already shown, it attempts to open the input device, and send a "harmless" message through the device. As a harmless message I chose a mousemove event with dx,dy = 0,0. The reason for this is: - When intuition opens a window it also activates the display. Any screenblanker running, would not be notified of this, since opening a window does not generate an event. So if the screenblanker had deactivated the screen, when Reminder opened it's message window, the screen would be reactivated without the screenblanker being notified of this. It would therefore stay this way instead of being deactivated again after a certain time. A (fake) mousemove event, will make the screenblanker think that the mouse was moved, and it therefore will activate the screen, and deactivate it again after some time if the user is not using the machine. - When Reminder updates an already open message window, the display is not activated, so if a screenblanker is running, and has deactivated the display, the user would not be able to see the new message(s) (The user may still be able to see the screen even if he is not using the machine). The fake mousemove event was the most neutral event I could come up with, that would mean nothing to any program except a screenblanker. In the (very) unlikely event that any of your programs start doing things on there own, because they interpret it as a command, notify me of the problem, and I will try to come up with a better "harmless event". @endnode @node HELP_CFG "Reminder's config- and datafile" REMINDER'S CONFIG- AND DATAFILE The files generated by Reminder are ASCII files, which can be viewed with any texteditor or textviewer. You can therefore also change them by using an editor. This is NOT encouraged, since Reminder only makes a limited check to see if the data it reads is valid. An error in the datafile, may therefore go undetected, and Reminders behavior will be unpredictable, and very likely NOT a pretty sight. Before using a config- or datafile Reminder makes sure, that it really is a Reminder file. If not the user is informed, the file ignored, and no harm is done. If a datafile is partly damaged, Reminder will recover as much of the file as possible, and ignore the rest. Note that if you like the default values for format, hotkey etc. you don't need a config file (if Reminder doesn't find a config file it will simply use it's built-in default values). The first line in a data or configfile identifies the file as a Reminder Vx.x file. Note however, that the version number not necessarily corresponds to the version number displayed by Reminder (Reminder V6.3 generates V5.7 datafiles and V6.3 configfiles). The version number simply states the oldest version of Reminder that will work with this particular data or configfile. @endnode @node HELP_ADDED "Facilities to be added in future versions" FACILITIES TO BE ADDED IN FUTURE VERSIONS. - Online help through AmigaGuide.library. - Option to instruct Reminder to show a message with a specific interval, for example every 7 minutes and 12 seconds. - An option that instructs Reminder to print its entire datafile in a readable form to shell or file. - Selectable date format in the input edit window (USA, DOS etc.) - An option that instructs Reminder to keep an entry until specifically instructed to remove it, even if it is never to be shown again. - Show/Highlight holidays. I may choose to use date.library for this purpose. - Keyboard combinations to select dates in the calendar. - Customized edit settings. - Individually definable hotkey sequences for each window (and quit). - A sprite clock, i.e. use sprite(s) to display clock etc. - An analog clock. @endnode @node HELP_WHATTODO "What to do about bugs, criticism, suggestions etc." WHAT TO DO ABOUT BUGS, CRITICISM, SUGGESTIONS ETC. If you want to get in touch you can reach me on the following address: Ebbe Holleris Petersen Vesterbrogade 120D, st.th. 1620 København V Denmark Phone: +45 31313010 E-mail: eep@sbi.dk @endnode @node HELP_TROUBLE "Troubleshouting" TROUBLESHOUTING A few problems seem to arise on a regular basis, so I have collected them here: The problem: When displaying Fast and/or Total memory, there is to little space for the numbers. The reason: You are running Reminder before the system has been made aware of all the memory in the system, fx. if you are using virtual memory. The solution: Run reminder after the system has been made aware of the all memory. The problem: The setup window won't open. In stead I just get a the error 'Unable to open window' The reason: Reminders setup window is to large to fit on your workbench screen. This will happen if you are using a NTSC (noninterlaced and nonoverscan) workbench screen and a font higher than 7 pixels. The solution: Select a different screenmode or a larger virtuel screen for your Workbench screen, and the window should now be able to open. You might consider to instruct Reminder to use a font smaller than Topaz 8, if you want to keep using a small workbench screen, and still be able to open all Reminders windows. The problem: When run from the WBStartup drawer Reminder fails to execute commands that it executes without problems when run from a shell (or startup- sequence). The reason: When run from a shell, Reminder inherits the search path from the shell. This is not the case when running Reminder from the WBStartup drawer. The solution: Always specify the whole path for a command, if Reminder is run from the WBStartup drawer, fx. 'sys:tools/DSound' in stead of only 'DSound' @endnode @node HELP_CREDITS "Credits" CREDITS ThanX to my friends and betatesters Flemming Jacobsen, Thomas Gade, Thomas Veber Jensen, Anders Melchiorsen, Alex Holst, Kasper Graversen and everybody else who has helped me test Reminder, and for their various suggestions for changes and improvements. This program would not have had half it's facilities without them, nor would it have been so easy to use(?). ThanX to Trevor Morris, who designed the icon for Reminder.guide. I have absolutely no artistic muscle, so any assistance in the design and layout department is welcome :) And finaly thanX to Commodore (RIP) for blowing those PC's out of the water by giving us the *Amiga*. Lets hope Amiga Technologies will continue the good work. @endnode