Merlin’s weekly podcast with Dan Benjamin. We talk about creativity, independence, and making things you love.
Guest: Mike Harris looks at "Remind"
Merlin Mann | Feb 24 2005
How much do I love my readers? So much.
Despite my initially flipping the bozo bit by asking for technical support about installing Remind, Mike responded with one of the most useful emails I’ve received in a year. So good, that I asked him to move a couple things around and turn it into a full-length guest feature for 43 Folders. So he did.
Many thanks, Mike. I'm still getting my head around a lot of this, but already see many uses for this. Fellow Unix noobs: this looks like a pretty good first project, eh?
by Mike Harris
I’ve found a lot of the advice on 43 Folders useful (particularly the Quicksilver append trick and the mere concept of plain text being a lot more simpler of a mechanism to handle ‘to do’ lists), but had continually run into a problem — I hated having to deal with what I felt were bloated, inefficient GUI calendaring programs. I thought to myself, “Surely, with Unix having been around for a few decades by now, someone’s figured out how to have this done in plain text.” Sure enough, I was right.
Roaring Penguin is currently the caretaker of an open source project that has, in one form or another, been around since 1988, called Remind. Remind is a Unix-driven calendaring program of great flexibility and power, but, better yet, for the most part, it works with the command line and with plain text. With the deliciousness of Mac OS X, though, you can integrate it into your background processes and GUI with very little effort and splash.
In order to install Remind, you’ll need to download the package (available here) and go through the usual three Unix installation commands of
You’ll also need to create an invisible text file in your Home directory called
Entering in Your Calendaring Events
The one key to remember is that almost every single entry in
That statement will show that particular event on May 5, 2005.
Always Useful Tip #1: Warning Yourself in Advance
Would show “My dog’s birthday in 7 days’ time” on May 1, etc. It’s even smart enough to do “1 day’s time” instead of “1 days’ time”.
Always Useful Tip #2: Recurring Events
There are two very easy ways to handle recurring events. First, leaving out information will cause the task to apply more generally, i.e., leaving out the year will cause it to repeat every year, and leaving out the month will cause it to repeat every month. For example:
Or, if you need something to repeat every
That would remind you every 30 days to refill your prescription from the pharmacy, beginning February 23, 2005.
Always Useful Tip #3: Keeping Your Text Files Neat
You can also do ‘includes’ with other text files so that you can keep events segregated, e.g., all your birthdays in one text file, all your anniversaries in another, all your financial deadlines in a third, all your favorite T.V. shows in a fourth. All you do is put:
in the appropriate spot. I find it useful to have a “master” reminder file formatted the way I like it, with my birthdays, anniversaries, financial deadlines, and holidays separated into separate files, and an “active” file that I usually work out of for the more changing events.
Always Useful Tip #4: Just Weekdays, Please
How do you do things like a payday where it’s the 15th and the last day of the month, but not weekends?
Semi-Complex Tip: Date-Based Math
You can do date-based math with Remind. Going on a family vacation, and you want to remind yourself every day of how many weeks you’ve got left, and how much money you can save before then? I hadn't originally realized that Remind could do this, but David Skoll at Roaring Penguin helped me work out how Remind could work in weeks, instead of days. From there, it's a quick math problem to apply it to pounds to lose, dollars to save, and so on. These lines, for example, are in my Remind file:
Then, you can simply say:
Edit 2005-03-03 21:49:32: Keep in mind, however, that Remind can only handle whole numbers in such math equations. No decimals.
Actually Viewing Your Calendar
OK … now that I’ve actually entered in all this crap, what the heck do I do now?
It begins very simply. Once you've entered in your calendaring information, all you need to do is type
Looking at Other Days
You can generate your 'datebook' for other days by simply typing
will give you tomorrow’s calendar.
will give you yesterday’s calendar.
Making It Work with the Mac
How do you get this to interact with the GUI, if you don’t live your life in the Terminal?
You can use GeekTool, which lets you display the output from Unix (and other items as well) on the Desktop. I use it to show a battery script, my IP information, and my Remind output on the desktop, updating every 5 minutes, as you can see in the screenshot above.
You can also install TCL/TK for Mac OS X, and then use the
The reason I turned to Remind is that it is entirely a keyboard-driven process with no GUI. Because of that, it is incredibly quick, and the Quicksilver append trick I spoke of above allows you to “append” events to your
Remind features command-line switches that will let you look at your reminders in different ways. You can use
When you start generating calendars, you may notice a problem. When creating your calendars file, you may find that you want to subdivide it into categories, like the screenshot. You can do that by just using MSG, without a REM statement, like:
But, the problem with this is that “Birthdays:” will also show up on the calendar. How do you avoid this? You can append
would show up on your daily display, but not your calendar. Likewise, you can generate a blank line by:
Note that there are two spaces between the
Aside from generating the calendar in text, you can also generate it using HTML or Postscript. You do so by “piping” the output through one of two programs that come with Remind,
This sounds incredibly complex, doesn’t it? In actuality, it’s really very simple. I love the fact that I can jump into a text file and type out a quick line (or, once I work out exactly how I want to do it, through Quicksilver’s append function) without having to wait for iCal or Entourage’s interface to load, which, on my iBook G3, is slower and often lets me lose the thought before I get it open. Remind lets me do it easily, quickly, and unobtrusively.
If you’re a power user that already is champing at the bit to go further, keep in mind that Remind has a lot more power under the hood than described here. Even I’m a Remind newbie. Remind can handle timed notifications, its output can be piped through Growl, and so on. This article barely scratches the surface of what Remind can do — this baby has a lot more horsepower under the hood.
If you want to learn more about Remind than spoken here, the first thing to do is to read its man page (installed on your system when you installed Remind) from start to finish. After that, three places to get a little more information are Linux Journal’s article “Remind: The Ultimate Personal Calendar,” MacDevCenter’s “Unix Gems for Mac OS X,” and the Remind-Fans mailing list. Check them out!
P.S. By the way, while I’ve got the mike, let me say that as a keyboard-oriented person, I’ve learned to love Butler creator Peter Mauer’s Witch, a window-specific application switcher, and Mailsmith, which is a fantastically powerful e-mail program with strong filtering and script support.
P.P.S. Leave me a comment here if you run into problems! I can’t promise immediate or knowledgeable responses, but I can promise to help.
Thanks a million, Mike. That was great! Grab a 12-pack and a Hipster PDA out of petty cash.
Got a good recipe for Remind that you want to share? Post to comments or trackback.
|EXPLORE 43Folders||THE GOOD STUFF|