{\rtf1\mac\ansicpg10000\cocoartf100 {\fonttbl\f0\fnil\fcharset77 GillSans-Bold;\f1\fnil\fcharset77 GillSans;\f2\fnil\fcharset77 GillSans-BoldItalic; \f3\fnil\fcharset77 HoeflerText-Regular;\f4\fnil\fcharset77 HoeflerText-Black;\f5\fnil\fcharset77 Charcoal; \f6\fnil\fcharset77 HoeflerText-Italic;\f7\fnil\fcharset77 GillSans-Italic;\f8\fnil\fcharset77 AndaleMono; } {\colortbl;\red255\green255\blue255;\red255\green15\blue0;\red0\green0\blue255;} \vieww9000\viewh9000\viewkind0 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural \f0\b\fs48 \cf0 Pester \f1\b0 1.1a4 \f2\i\b \cf2 [DO NOT REDISTRIBUTE] \f0\i0\fs26 \cf0 \ \f1\b0 17 November 2002 \fs24 \ \ \pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural \f3\fs28 \cf0 A simple alarm clock and timer for Mac OS X.\ \ \f4\b Written by \f3\b0 Nicholas Riley <\cf3 \ul mailto:pester@sabi.net\cf0 \ulnone >.\ Obtain updates from <\cf3 \ul http://web.sabi.net/nriley/software/\cf0 \ulnone >.\ \ \f0\b What is it?\ \f3\b0 \ Miss your bus or train? Have a meeting coming up soon and want to be reminded of it? Too much trouble to create an appointment in Palm Desktop, iCal or Entourage? Pester can help.\ \ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural \cf0 {{\NeXTGraphic Pester001.png \width9320 \height4120 }¬}\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural \f3\fs28 \cf0 \ \ \pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural \f0\b \cf0 Installation\ \ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural \f3\b0 \cf0 Pester should work on Mac OS X 10.1 or later; it has been tested on Mac OS X 10.1.5 and 10.2.1.\ \ To install Pester, simply drag the Pester icon to your Applications folder or another convenient location. If you use Pester often, drag it to the Dock or add it to your Login Items.\ \ If for some reason you find Pester not to your liking, remove it by dragging its icon to the Trash. Pester\'d5s preferences file is named \'d2net.sabi.Pester.plist\'d3 and is located in the Library: Preferences subfolder of your Home folder.\ \ \pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural \f0\b \cf0 Usage\ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural \cf0 \ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural \f3\b0 \cf0 Use Pester to set alarms for times in the future. Alarms that are scheduled to expire after you quit Pester are saved automatically. Pester must be running in order to notify you that an alarm has expired. If an alarm expires while Pester isn\'d5t running, you will not be notified, but the alarm\'d5s time will be \'d2\'c7expired\'c8\'d3 in Pester\'d5s alarm list.\ \ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural \f4\b \cf0 To set an alarm \f3\b0 , click the Pester icon, choose \'d2Set Alarm\'c9\'d3 from the Alarm menu, or press \f5 \U8984 \uc0 \u8984 \f3 N, and the Set Alarm window (shown above) will appear.\ \ First type a message if you wish, otherwise the rather unimaginative \'d2Alarm!\'d3 will be used. Recent messages you\'d5ve used appear in the menu; if you mistype or want to remove a message, click the \'d2\'d0\'d3 button. To remove the all recent messages from the menu, click \'d2\'d0 All\'d3.\ \ To specify the alarm time in seconds, minutes or hours from now, click the \'d2in\'d3 radio button, then type a number and pick a unit from the popup menu. To quickly pick one of the units from the keyboard, type S, M or H after typing a number.\ \ To specify an absolute time, click the \'d2at\'d3 radio button, type a time and date. If you\'d5re outside the US, the time format may not be what you expect; I\'d5m sorry, but a multitude of date-related Cocoa bugs make supporting localization very difficult. In addition to typing numbers, you can select a relative date from the menu to the right of the date field, or type words such as:\ \ \f6\i Time: \f3\i0 \'d2morning\'d3, \'d2noon\'d3, \'d2afternoon\'d3, \'d2dinner\'d3, \'d2midnight\'d3\ \f6\i Date: \f3\i0 \'d2today\'d3, \'d2tomorrow\'d3, \'d2next Thursday\'d3, \'d2November\'d3\ \ The text at the bottom left corner of the window changes as you type to indicate whether the date and time you\'d5re typing is valid.\ \ \f4\b When an alarm expires \f3\b0 , Pester\'d5s dock icon bounces once, your Mac beeps, and Pester displays a dialog box:\ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural \cf0 {{\NeXTGraphic Pester003.png \width9200 \height3600 }¬}\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural \f3\fs28 \cf0 \ \ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural \f4\b \cf0 To view or remove alarms \f3\b0 , choose \'d2All Alarms\'c9\'d3 from the Alarm menu or press \f5 \U8984 \uc0 \u8984 \f3 L. \ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural \cf0 {{\NeXTGraphic Pester004.png \width8760 \height4640 }¬}\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural \f3\fs28 \cf0 \ Alarms shown as \'d2\'c7expired\'c8\'d3 expired while Pester was not running. As alarms are set, they appear in the list; alarms which expire while Pester is running are removed from the list. To remove one or more alarms, select them and click Remove.\ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural \f0\b \cf0 \ More features\ \ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural \f3\b0 \cf0 Pester includes a Dock menu, which you can access by Control ( \f5 \U8963 \uc0 \u8963 \f3 )-clicking Pester\'d5s icon. \f0\b \ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural \cf0 {{\NeXTGraphic Pester002.png \width4960 \height6280 }¬}\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural \f0\fs28 \cf0 \ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural \f3\b0 \cf0 From this menu, you can view information about the next alarm, open the Set Alarm window, or open the Alarms window. The number of alarms is shown in parentheses.\ \ Pester\'d5s dock icon displays the time until the next alarm expires.\ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural \cf0 {{\NeXTGraphic TextEdit001.png \width2000 \height2540 }¬}\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural \f3\fs28 \cf0 \ Pester is also fully Y3K-compliant. It can be comforting to know that even if you won\'d5t be around then, if your Mac still works, so will Pester. \ \ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural \f0\b \cf0 Frequently asked questions\ \ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural \f4 \cf0 Q. \f3\b0 Why isn\'d5t Pester a full-featured calendar/scheduling program? What use is it otherwise?\ \ \f4\b A. \f3\b0 I wrote and use Pester on my Mac for the same reason I use programs such as BigClock and TikTok on my Palm, the built-in clock on my Newton and the alarm on my cellular phone. Sometimes all you want is an alarm to go off in 5 minutes, not an \'d2appointment\'d3 or \'d2meeting\'d3 entry that survives in perpetuity and is synchronized with your phone, PDA and iPod. On the other hand, if you\'d5re happy with what you\'d5re using, stick with it.\ \ \f4\b Q. \f3\b0 OK, but why doesn\'d5t Pester have feature \f6\i X \f3\i0 ?\ \f4\b \ A. \f3\b0 I didn\'d5t need it. I have looked at (and even registered) some similar programs such as Alarm Clock Pro, Alarm Clock S.E., CountDown and the like. None of them did what I wanted. Please check out those other programs first; if Pester comes closest to your ideal but is missing a key feature, let me know and I\'d5ll consider adding it.\ \ \f4\b Q. \f3\b0 Under what conditions is the source code licensed?\ \ \f4\b A. \f3\b0 Please see my Web page for details. Essentially: don\'d5t pass it off as your own, and give me credit if you use all or part of it in your own software.\ \ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural \f0\b \cf0 Version history\ \ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural \fs26 \cf0 1.1 \f1\b0 \f0\b / \f7\i\b0 \cf2 forthcoming \f4\i0\b \cf0 \ \pard\tx180\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li180\fi-180\ql\qnatural \f3\b0\fs28 \cf0 \'a5 Fixed small memory leaks on alarm creation and with the \'d2Remove\'d3 button in the alarm list window.\ \'a5 Fixed vertical resizing in the alarm list window.\ \'a5 Added more keyboard navigation, type-selection and sorting to the alarm list window.\ \'a5 Added Delete keyboard shortcut for removing alarms. \f0\b \ \f3\b0 \'a5 Retain highlighted alarms in the alarm list window when alarms are added, removed or resorted.\ \'a5 Removed horizontal scroll bar from the alarm list window because it wasn\'d5t ever available.\ \'a5 Worked around Cocoa bugs with British and US \'d2PM\'d3/\'d2pm\'d3 in some configurations: date formats wouldn\'d5t \'d2stick\'d3, and would be reset when you tabbed through that field.\ \'a5 Added customizable alerts: the previously-mandatory notification dialog box, alert sound and dock bouncing are now all optional, and AppleScript, speech, and playback of sounds, images and movies (anything QuickTime can handle) are new.\ \'a5 Worked around many Cocoa bugs to provide support for non-US date and time formats.\ \'a5 Added \f5 \U8679 \uc0 \u8679 \U8984 \u8984 \f3 T shortcut to switch between \'d2in\'d3 and \'d2at\'d3.\ \'a5 Default to today\'d5s date in the \'d2at\'d3 section.\ \f0\b \ \f4 Known bugs in this version:\ \f3\b0 \'a5 The \'d2Repeat\'d3 check box doesn\'d5t do anything.\ \'a5 Alert information is lost when you quit Pester.\ \'a5 The alarm list will sometimes become lost with a message such as \'d22002-11-18 00:31:24.461 Pester[8545] An error occurred while attempting to restore the alarm list: *** Incorrect archive: unexpected byte\'d3\ \'a5 If no alarm message is specified, nothing is spoken when you select a voice.\ \'a5 If you select a very small movie or image, the display window is incorrectly sized.\ \'a5 Alarm times are off by one second, so a 2-second alarm will take 3 seconds to expire. (This may cause the \'d2Remaining:\'d3 dock indicator to appear to be wrong by a minute, because it doesn\'d5t show seconds until fewer than 60 remain.)\ \'a5 Selecting or typing a weekday with a name containing a hyphen (e.g., Brazilian \'d2next sexta-feira\'d3) or a space (Gaelic \'d2next D\'8e C\'8eadaoin\'d3) causes the date field to be invalid. I may not be able to fix this without reimplementing the Cocoa date parser; an alternative would be to use US (or Portuguese?) date formats for Brazilian input; any suggestions for Gaelic?\ \'a5 Alarms will not go off after you put your Mac to sleep and wake it up again. Quit and reopen Pester as a workaround. \f0\b \ \f3\b0 \'a5 After changing the date or time format in System Preferences, you must quit and reopen Pester for your changes to take effect. As Apple\'d5s own iCal also exhibits this issue, I don\'d5t believe it is urgent, and won\'d5t fix it until after 1.1 is released.\ \'a5 The text \'d2Could not find sound type for directory\'d3 is logged to console.log when you select an item to play which isn\'d5t a system sound. This is caused by Apple\'d5s code, so I\'d5m not sure what I can do to fix this.\ \f0\b \ \f4 Additional features planned for 1.1:\ \f3\b0 \'a5 Simple repeating alarms. The general idea is that you\'d5ll check \'d2Repeat\'d3, and each time the alarm goes off you will have the choice to stop it repeating. This works well for things like \'d2remind me every 15 minutes to take a break\'d3. An alarm won\'d5t start to repeat until the alerts have finished going off and you dismiss it, so you won\'d5t come back to several thousand alerts. :-)\ \'a5 Some type of auto-saving/\'d2set default\'d3 for alert options, as you probably don\'d5t want to reconfigure them each time you launch Pester.\ \f0\b \ \f4 Additional features planned for later versions:\ \f3\b0 \'a5 Better repeating alarms, such as a \'d2real time\'d3 option so you can schedule an alarm to go off every hour, on the hour, for example.\ \'a5 Better handling of expired alarms\'d1offer the option to have the alarms go off when Pester is restarted.\ \'a5 A \'d2snooze\'d3 feature.\ \'a5 Notifications before an alarm goes off, as in \f8\fs24 xalarm \f3\fs28 .\ \'a5 Full localization of all text in the application, not just date and time formats.\ \'a5 User interface overhaul (Philippe, I am not forgetting :-)\ \'a5 Dropping of support for Mac OS X versions earlier than 10.2. I\'d5m planning on installing 10.2 on my PowerBook after Pester 1.1 is released, and at that point I won\'d5t have any computers running 10.1.x.\ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural \f0\b \cf0 \ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural \f3\b0 \cf0 [Two rereleases of 1.0 had no changes in the Pester application itself; they fixed problems with double-clicking the Read Me, so the version number was not changed.]\ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural \f0\b \cf0 \ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural \fs26 \cf0 1.0 \f1\b0 \f0\b / \f1\b0 14 October 2002 \f4\b \ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural \f3\b0\fs28 \cf0 Added alarm list, saved alarms, dock icon/menu, live alarm time, other features.\ \ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural \f0\b\fs26 \cf0 1.0d1 \f1\b0 \f0\b / \f1\b0 9 October 2002 \f4\b \ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural \f3\b0\fs28 \cf0 First public release.\ \ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural \f0\b \cf0 Acknowledgments\ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural \f3\b0 \cf0 \ Pester uses code from Dan Wood\'d5s TableTester examples and Tony Arnold\'d5s iTableView.!\ \ Pester uses portions of Raphael Sebbe\'d5s excellent SpeechUtilities. Thanks Raphael!\ \ Pester uses Nathan Day\'d5s NDAppleScriptObject and related classes, which he makes freely available. Thanks Nathan!\ \ Pester uses BDAlias, for which the following conditions apply:\ \ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural \fs22 \cf0 Copyright \'a9 2001, bDistributed.com, Inc.\ All rights reserved.\ \ Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\ \ \pard\tx360\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li360\fi-120\ql\qnatural \cf0 \'a5 Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\ \'a5 Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\ \'a5 Neither the name of bDistributed.com, Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.\ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural \cf0 \ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. }