In search of a scratchpad, part two

As I discussed in the first part of this series, I often come across information while at work that I want to save or act on later while on my own time (or vice versa). In an attempt to address this need, I set up a personal scratchpad using Together. Sadly, though Together offered some fantastic advantages, its incredibly spotty synchronization with MobileMe eventually convinced me to abandon it in favor of something a bit more involved.

VoodooPadThe second solution I turned to, and the one that I have been using and fine-tuning for the last eight months, was VoodooPad. Despite some unique drawbacks of its own, VoodooPad offers near-perfect synchronization, a daily log that far surpasses Together’s in usefulness, and the ability to append text to practically anything. The only downside is that VoodooPad is less flexible about what it can store (and how you can retrieve that info later) because everything is text-based whereas in Together you can toss whatever you want into your scratchpad, be it a PDF, image, bookmark, etc.

Components

To setup your own scratchpad using VoodooPad, you’ll need three things:

  • VoodooPad 4.2+; the lite version just won’t cut the mustard, and as of 4.2 the Pro version is rather anachronistic
  • LaunchBar, Quicksilver, FastScripts, or some other easy way to invoke Applescripts
  • The Scratchpad Template (that’s a download link)

If you wish to synchronize your scratchpad between multiple computers, you’ll also need MobileMe or any other WebDAV-based server.

Installation instructions are included with the scratchpad template; the key thing to remember is that your scratchpad has to be open in VoodooPad and be the only document with the word “scratchpad” (case insensitive) somewhere in the document’s name or the Applescripts won’t work.

What it does

The scratchpad uses enriched plain text to accomplish its organizational goals. Similar to TaskPaper, all of the text you enter in the scratchpad is without formatting of any kind. However, thanks to VoodooPad’s automatic linking of terms associated with a document page the text is enriched with links that lead you to various useful, automatically generated pages. (It’s worth noting that VoodooPad does support rich text; the scratchpad defaults to plain text because plain text is more portable if you decide to change scratchpad solutions and is also easier to export for the web. You can definitely switch the scratchpad to rich text if you like, but it’s untested.)

The most basic idea for the scratchpad is the textual tag. A textual tag is nothing more than a VoodooPad link, but the page it links to is special: it automatically collects all of the lines in the document that contain the page’s title and displays them in a list. This is a handy way to gather data from across the document without needing to do any work on your part. For instance, I create a textual tag for every one of my clients, so that when I need to review all the daily log entries associated with them I just click the client name in a recent log entry and am instantly provided with every other log entry for that client. You could also use textual tags similar to the way TaskPaper does and organize tasks with them.

A handy way to automatically create textual tags is to use any word prefaced by an @ symbol when using the daily log or quick note Applescripts (for example, “@today”). These will automatically be converted to textual tags (if they don’t already exist) without any work on your part.

There are other special scratchpad pages, as well: any page (including auto-generated pages) can be designated an inbox, which allows you to append information to it using the quick note Applescript; you can create index pages for listing tag pages, logs, etc.; and composite pages gather the full contents of other pages and display them in a long list (useful if you want to view all of the daily logs for a given month, for instance).

These special pages are all created the same way: you just add a new page to the document like you normally would (typically by selecting some text and choosing Edit → Make Link), and then attach a special Voodoopad page tag to the page. A VoodooPad page tag, unlike a textual tag, is applied to an entire page using the VoodooPad palettes. You can feel free to use VoodooPad’s page tags however you wish as long as you only use reserved tags like “tag”, “inbox”, and “composite” to designate special scratchpad pages.

Once you’ve added one of the special page tags to a page, the auto-generation script will populate the page contents the next time you open it. There are also several meta keys you can use to customize what is displayed on a given page, the order of items, and so forth. Full documentation is available within the scratchpad itself.

How I use it

Unlike my Together scratchpad of yore with its handy shelf, I interact with my VoodooPad scratchpad almost exclusively through Applescripts invoked via LaunchBar. When I finish a task or have something else that I want to log as a timestamped note, I hit control-space to open LaunchBar, type “dl” (for Daily Log), hit space, type my log entry, and hit enter to save it. VoodooPad typically is running in the background, so the whole operation takes a few seconds at most.

If I find a link or something else I want to save, I copy it, invoke LaunchBar, type “QN” for Quick Note, hit space, and paste in the URL or type whatever note it is that I want to save. I then hit enter, choose from the list of inboxes that the Applescript provides me with, and when I’m on my personal computer I can then check those inboxes to see if there’s anything I need to process.

I rarely use the automatically generated textual tags (although I thought I would originally) because I much prefer the clean @-less textual tags that I create by hand (which additionally can include space characters and so forth).

Additional deliciousness

Though my main usage of my scratchpad has tended over time to focus a lot on daily logs and—to a lesser extent—noting URLs or things I want to think about/remember when not at work, you can easily use your scratchpad in more interesting ways. For instance, the web export system is setup to automatically generate a nice-looking version of the scratchpad, including well-formatted daily logs, with everything else formatted using Markdown if you want to share it with someone.

Setting up a TaskPaper-like task manager would not be particularly difficult, either, since you can specify tag pages to be inboxes as well as tags (useful if you want to track quick notes right alongside relevant daily log entries, for instance).

I’m sure folks will come up with their own unique usages, too; I’ve tried to keep things flexible and simple enough that it can appeal to numerous different workflows. The page auto-generation and web exporting is controlled by a pair of reasonably simple Python scripts and a page that controls the web export template, so those should be easy to modify or tweak if you so desire and are comfortable with Python.

Caveats and downsides

Overall, I’ve been extremely happy with my VoodooPad scratchpad. Certainly it isn’t as flexible as Together, but it’s also been far more stable. However, it is not without downsides:

  • Because auto-generated pages are only refreshed when you open the page, things can quickly get out of date if you leave pages open. Currently the only way to update every page in the document is to do a web export.
  • As your scratchpad grows larger, opening auto-generated pages will grow slower. Mine is eight months old with hundreds of pages and still moving pretty snappy, but the slowdown is inevitable thanks to the way that I have to parse through every page in order to autogenerate others.
  • The Quick Note Applescript relies on your inbox index page being up-to-date; sadly there is no way to request all pages in a tag from VoodooPad via Applescript, so you’ll need to close and reopen your inbox index whenever you create a new inbox.
  • The lack of easy-to-define smart pages or collections is also unfortunate, although I’ve found the meta-information based approach to work reasonably well for me.

Make it your own

I’m providing this template because I’ve found having a digital scratchpad that I can easily sync among multiple computers to be extremely handy. If you end up using it, I’d love to hear how you find it useful or limiting! I’ll definitely be updating the scripts and so forth as I continue to use and refine it myself, and I’ll share any significant improvements (updating will likely be a matter of copying and pasting a couple of pages into your personal scratchpad and maybe updating the Applescripts).

Good luck, and enjoy the scratchpad!

Resources for the scratchpad: