Brett Terpstra’s nvremind is an incredibly useful Ruby script which scans a given folder of plain text files looking for @remind(YYYY-mm-dd HH:MM) tags. When the script runs (it’s designed to be run on a regular basis–every half-hour, by default–via launchd), it sends the user a notification via a variety of methods, and edits the found tag to @reminded(YYYY-mm-dd HH:MM). It’s a really versatile and handy way to turn your existing plain-text notes into a giant, always-nagging monstrosity, and I love it.
The script is designed to scan an entire folder, and I have been using those @remind(YYYY-mm-dd HH:MM) tags throughout all of my notes. However, I’ve also found it useful to dump all of my new reminders into a single “To-Do” file, which I process later on as necessary. This practice gives one the option of setting up quick, automated ways of entering new reminders on both iOS and OS X; for these purposes I’m using Drafts and Alfred 2.
I have an incredibly geeky need to log information about my life–for my own uses, mind you–and a big part of how I address that need is in journaling with DayOne, an app with variants on both OS X and iOS. It syncs flawlessly across devices and (Apple’s) platforms, and has a well-designed interface which makes it a joy to use. The act of writing stuff in DayOne is great for me, which is why I have to find some problem with it.
Sometimes I just want to dash off a thought really quickly–without launching DayOne, waiting for it to open, entering my passcode, tapping to begin a new entry, and so on and so on. I decided I’d find a quicker way to add entries to my journal. Luckily, the developer of DayOne has implemented a pretty handy (if basic) command-line interface, which means that it’s easy to script and automate the app. What I ended up with is this: I type my markdown-formatted entry in Drafts, fire a Dropbox action, and…that’s it. It doesn’t open another app. It just adds the entry to my journal in the background. It takes a little bit of work to set it up, but it’ll save you a lot of time over the long haul. It’s awesome.
I’ve recently started learning Python, and in the process I’ve become a huge fan of a Python coding environment for iOS called Pythonista. It allows one to actually run scripts on an iPhone or an iPad, and given the fact that it has a great URL scheme, some really cool things are possible.
I decided last night that I’d try to create a means with which to easily send myself reminders on my iOS devices, using a Pythonista script and Drafts. The script takes minimal textual input from Drafts in the form of a note on one line and an interval of time (in minutes) on the second line. I fire a Drafts action, and that’s it. At the appointed time, I’ll receive a native iOS notification containing my reminder.
I find it really handy: there’s no need to fumble with Reminders.app, set a date and time, etc. And it’s also far, far quicker than trying to set a timer in Clock.app.
If you have both Drafts and Pythonista on your device(s), give it a shot. The relevant code, the Drafts URL action, and more can be found in my post on the Pythonista user forums.
UPDATE, July 18, 2013 9:56 PM:Version 1.1 tweaks the script to add an audio notification upon successful creation of a new reminder.