Posts Tagged ‘omnifocus’
TaskPaper printing
March 17th, 2010 at 12:54 pm
I’m finally giving TaskPaper a fair tryout. I first got it as part of the MacHeist 2 bundle, and although it had many features I liked, I wasn’t ready to replace my LGTD TextMate bundle, which is mostly described here. Then I moved on to OmniFocus and left TaskPaper sitting in my Applications folder, unused.
Several months ago, I gave up OmniFocus and returned to my LGTD bundle. OmniFocus is a great program if you’re dedicated to using it, but it takes too much effort for casual use. That, at least, was my experience. I don’t think I’ll ever have the dedication to task planning necessary to use it well. Live and learn.
After returning to it, I made one significant improvement to the LGTD bundle: the ability to print a task list to a 5×7 index card, which I could then attack with my Circa Desk Punch

and put into the Junior-sized Rolla notebook I keep on my desk and use as a daily planner/diary.

I never blogged about the addition to the LGTD bundle, but it’s there in the GitHub repository.
What does this have to do with TaskPaper? Well, I got an email from HogBay Software, promoting its new TaskPaper app for the iPhone. I had some free money in my iTunes account from the Simplenote contest, so I decided to give it and the desktop app a try.
I really like the way it looks and the simplicity with which I can rearrange the order of projects and tasks.

Syncing with the iPhone works, which is a great advantage, but it’s not without some annoyances. Syncing is built in to the iPhone app, but you have to run a free menubar-only application, called SimpleText, to do syncing on the Mac. That just seems like a waste of memory and menubar space—SimpleText’s features should be rolled into a preference in TaskPaper itself. Another syncing annoyance is this warning pane which shows up occasionally when I try to save from the desktop app.

Despite what it says, I haven’t changed the file with another application or with the iPhone; this warning is just getting in my way. I suspect the cause of this is a coordination problem between the timestamps of the local file and the file on the server.
Update 3/17/10
I’ve learned from Jesse Grosjean of HogBay, through a combination of comments here and email, that version 2.2.1 of TaskPaper has (mostly) fixed the problem with spurious “document changed” warnings. I was getting those warnings regularly last week. The 2.2.1 update went out on Friday, and I haven’t seen the warning since.
Update 3/18/10
Version 2.2.2 came out today, which is supposed to fix the last of the spurious “document changed” warning bugs.
Printing from TaskPaper is, frankly, crappy. It has no options of its own in the Print pane, so you can’t alter the header or footer, you can’t change the margins, you can’t change to a two-column format (which would be very convenient, since most task entries are short), and you can’t print with a smaller font than your onscreen choice. This last is a particular problem for me, as I use a 14-point base font, which I need to read comfortably on the screen, but which is huge on paper. A zoom control in the application itself would be another solution to this problem.
Fortunately, TaskPaper’s file format is plain text, with signal characters to distinguish between projects and tasks. It’s format is similar to Markdown’s, and it takes just a few lines of code to transform it into the subset of Markdown I use in the LGTD bundle. From that point on, the printing problem is basically solved by the LGTD code, which I copied out of the bundle and put into its own GitHub repository, called “tp-planner.”
The repository consists of a set of scripts for converting the TaskPaper file into a nicely-formatted PDF for printing onto 5×7 index cards. The main script is an AppleScript called Planner Print.scpt, which, when installed in your ~/Library/Application Support/TaskPaper/Scripts folder, shows up in TaskPaper’s Script menu. Calling the Planner Print item opens Preview with a view of what’s going to be printed. (Preview shows it on an 8½×11 sheet, but when I feed a 5×7 index card into the printer, it prints out perfectly.) Here’s what it looks like printed out and inserted into my planner notebook.
You can click on the image to see it larger.
This is how I keep track of my day when I’m not in front of the computer. In addition to showing my to-do list, the big index card also acts as a “Today” bookmark—it’s thicker stock makes it easy to open the notebook to that page.1 I punch the holes so it goes on the left side of the planner; I write phone messages and activities on the right side. Items checked off the paper list get checked off in TaskPaper at the end of the day. I get two days’ use out of each index card by flipping it over top-to-bottom.
Update 3/18/10
Forgot to mention that the Archived project—the one at the bottom of the file that gets filled with @done tasks—is filtered out before printing. I saw no reason to clutter up my to-do list with a done list.
This almost took longer to explain than it did to create. The hard stuff—the customization of html2ps to display open squares at every task item and the setting of fonts and margins—had already been done for the LGTD bundle. As you’ll see in the repository’s README, in addition to the scripts in the repository, you’ll need a Markdown processor and the ps2pdf utility included in the Ghostscript distribution. You may also need to customize two of the scripts to set the paths to these utilities correctly.
Now I have the best of both worlds: TaskPaper’s clean onscreen look and syncing with the iPhone, and LGTD’s nice printouts for my planner.
-
All the other sheets are my planner pages printed on regular paper. ↩
Due date bug in OmniFocus
July 23rd, 2009 at 4:08 pm
A new version of OmniFocus for the iPhone, version 1.5.2, showed up in the App Store yesterday. In addition to bug fixes, it has a few new and changed features. One of the changes is the default due time, which has been moved from 8:00 am (I think that’s what it was) to 5:00 pm. This happens to be the due time I use most often, so it’s a welcome change. But it’s not quite as useful as I thought it would be.
Let’s say you’re entering a new task that you’d like to complete by the end of the day. You put in the description, project, and context

and then tap the due line to enter the date and time.

Because of the new default, the date and time are already set to exactly what you want. So you tap the Save button, which takes you back to the previous screen,

and you find that it’s literally the previous screen—the due date is still set to “None.” What happened? Well, take a look at the Start & Due Dates screen again. The due date up at the top of the screen starts at None, and it will stay that way unless and until you fiddle with the dials. So the only way to get the default due date is to roll one of the dials away from the default and then back to it.
This is a poor design choice by Omni. If you tapped the due line in the New Inbox Item screen, it should be assumed that you want to set the due date. The due line in Start & Due Dates screen should start out with the default value, not None. After all, what’s the point of having a good default value if to fiddle with the dials anyway?
It’s possible that OmniFocus has always worked this way when setting the due date—because the previous default was never what I wanted, I never used the default before.
Update 7/24/09
I started a thread on this topic at the OmniFocus forum. Apparently, OmniFocus has worked this way for a while, and other users have been bothered by it, too. Ken Case of Omni thinks our complaints/suggestions are reasonable and will look into changing the behavior. That’s encouraging, and it’s nice to get a prompt response.
The thread also contains a comment from user Greg Jones about similar behavior in setting due dates in OmniFocus for the Mac:
It might be worth mentioning that this behavior is not limited to the iPhone. The behavior on the Mac side is even more bizarre. If you create a task on the Mac side by clicking on the small column calendar icon, the pop-up calendar has today’s date is highlighted and the due time is pre-filled with the default value. The due date field in the column shows the current date, suggesting that this is the value that will be entered.
Hitting return dismisses the pop-up calendar and the due date field changes back to blank. What’s worse, you can bring it up as I just described, change the due time, and the date/time value is still not entered into the due date field unless you also click on a date in the calendar.
For some reason, I hadn’t run into this issue before, but it works (or fails to work) just as described. As with the iPhone problem, forcing the user to edit the value regardless of what it is defeats the purpose of having a default.
Jott and OmniFocus update
January 26th, 2009 at 9:50 am
Reader Erik Courtney recently informed me that my Jott to OmniFocus script had stopped working. The script scans the email that Jott sends you, grabs the bit that you dictated, and turns that into an OmniFocus task. Sometime in the past few months—after I left Jott for Dial2Do—Jott changed the format of their email and the script broke.
With Erik’s help, I was able to trace the problem. Jott’s messages now put the dictated text in the second paragraph of the message instead of the third. So the fix was to simply change Line 39 of the script from
39: set theText to paragraph 3 of theContent
to
39: set theText to paragraph 2 of theContent
The page that fully explains the script has been updated with this new information.
Scripts like this are inherently fragile, because they depend on other people continuing to do things the way they’ve done them in the past. The screen scraping program I wrote to grab the song lists from Mark Lamarr’s BBC radio shows is just as fragile; when the BBC web monkeys decide to modernize their page layout—which, apart from having XHTML break tags (<br />) instead of HTML break tags (<br>), looks like it was written by a 15-year-old web designer in 1996—my script will break and will have to be rewritten.
OmniFocus command for Dial2Do
October 23rd, 2008 at 9:28 am
One of the things that made Jott easier for me to use than Dial2Do was that Jott needed one less step to add a task to OmniFocus1. Jott starts by asking “Who do do want to Jott?” and after accepting my answer of “Focus,” I can start recording my task. Dial2Do, on the other hand, starts by asking “What would you like to do?” I have to answer “Email” and then wait for another prompt before telling it that I want to email “Focus.” A small thing, but the extra step was a barrier to my use of Dial2Do. After all, I have OmniFocus on my iPhone and can enter tasks directly into it; the reason I’d use Dial2Do instead is speed. The delay associated with the extra step reduced the value of Dial2Do. (Jott’s value was reduced when it went out of beta and started charging for emails.)
As of a few days ago, Dial2Do added a new feature that allows it to work as smoothly as Jott. You can add new commands that make emailing a particular address a one-step operation. Here (apart from the fake address) is the form I filled out to create a new “focus” command:
Now when I answer “focus” to Dial2Do’s “What would you like to do?”, I can start dictating without having to answer another question. The transcribed message is sent to my “+omnifocus” address, and a combination of a Mail filter and an AppleScript (described here) puts it into my OmniFocus Inbox.
The Icon URL I gave is http://www.omnigroup.com/images/icons/128/omnifocus.png. This puts the OmniFocus icon with the “focus” command on my Dial2Do homepage—not something that’s particularly valuable to me, as I don’t go to the Dial2Do homepage much, but a nice touch.
I imagine that if you used the Dial2Do homepage, and you wanted to set up commands for emailing people, having their photos on the homepage would be helpful.
Dial2Do and OmniFocus
August 25th, 2008 at 10:17 pm
The comments in this post at Lifehacker led me to look into Dial2Do, a service similar to Jott that transcribes your voice messages and emails them to you. Unlike Jott, Dial2Do still sends emails for free, so I decided to give it a try and rework my Jott2OmniFocus AppleScript to handle emails from Dial2Do.
The setup at Dial2Do is basically the same as that at Jott: I created a contact with the name “focus” and an email address of the form “johndoe+omnifocus@gmail.com.” I modified the Mail Rule that handles addresses sent to the “+omnifocus” address. The rule, which used to run the Jott2OmniFocus script, now runs a similar script called Dial2Do2OmniFocus. Both scripts are slightly reworked versions of the script supplied with OmniFocus to handle emailed tasks.
Here’s Dial2Do2OmniFocus:
1: -- Copyright 2007 The Omni Group. All rights reserved.
2: --
3: -- $Header: svn+ssh://source.omnigroup.com/Source/svn/Omni/branches/OmniFocus/1.x/OmniGroup/Applications/Focus/App/Preferences/MailAction.applescript 100519 2008-05-15 21:12:32Z bungi $
4:
5: using terms from application "Mail"
6: -- Trims "foo <foo@bar.com>" down to "foo@bar.com"
7: on trim_address(theAddress)
8: try
9: set AppleScript's text item delimiters to "<"
10: set WithoutPrefix to item 2 of theAddress's text items
11: set AppleScript's text item delimiters to ">"
12: set MyResult to item 1 of WithoutPrefix's text items
13: on error
14: set MyResult to theAddress
15: end try
16: set AppleScript's text item delimiters to {""} --> restore delimiters to default value
17: return MyResult
18: end trim_address
19:
20:
21: on process_message(theMessage)
22: tell application "OmniFocus"
23: log "OmniFocus calling process_message in Dial2Do2OmniFocus script"
24: end tell
25: -- Allow the user to type in the full sender address in case our trimming logic doesn't handle the address they are using.
26: set theSender to sender of theMessage
27: set trimmedSender to my trim_address(theSender)
28: tell application "OmniFocus"
29: set AllowedSender to allowed mail senders
30: if AllowedSender does not contain trimmedSender and AllowedSender does not contain theSender then
31: beep
32: return
33: end if
34: end tell
35:
36: set messageText to the content of theMessage as text
37: set theTask to paragraph 1 of messageText
38: tell application "OmniFocus"
39: tell default document
40: parse tasks with transport text theTask without as single task
41: end tell
42: end tell
43: end process_message
44:
45: on perform mail action with messages theMessages
46: try
47: set theMessageCount to count of theMessages
48: repeat with theMessageIndex from 1 to theMessageCount
49: my process_message(item theMessageIndex of theMessages)
50: end repeat
51: on error m number n
52: tell application "OmniFocus"
53: log "Exception in Mail action: (" & n & ") " & m
54: end tell
55: end try
56: end perform mail action with messages
57: end using terms from
There are only two differences between this script and the Jott version:
- The log command in Line 23 now indicates that the OmniFocus task is coming from Dial2Do2OmniFocus.
- The task text is taken from the first paragraph of the email body (Line 37) instead of the third. Dial2Do puts the meat at the top of the message instead of in the middle the way Jott does.
That’s it! With those two small changes, Dial2Do messages sent to “focus” will show up in my OmniFocus Inbox for further processing.
If this post seems short on details, it’s because the steps for setting up Dial2Do for OmniFocus are almost exactly the same as those for setting up Jott for OmniFocus. See my Jott and OmniFocus post to fill in the gaps.
Jott out of beta—goodbye free email
August 20th, 2008 at 11:20 pm
If you haven’t heard already, Jott is now out of beta and will begin charging for some of its services. Most important for me, the emailing of Jotts will be part of the fee-based services, which means I either have to pay $4/month or give up my Jott to OmniFocus system.
The new Jott will have 3 tiers of service:
- free with ads: online notes readable at jott.com; posting to Twitter and blogs; 15 second message limit
- $3.95 per month: online notes; posting to Twitter, blogs, Google Calendar, Remember The Milk, Sandy, and other productivity web sites; email; text messaging; Jott for Outlook; 15 second message limit
- $12.95 per month: online notes; posting to Twitter, blogs, Google Calendar, Remember The Milk, Ask Sandy, and other productivity web sites; email; text messaging; Jott for Outlook; Jott for Blackberry; 30 second message limit
The Jott application for the iPhone will still be free. When it first came out, I was puzzled why it created only online notes, not emails. Now I understand that it was only meant to integrate with the free service.
I’m not mad—Jott provides a real service and there’s nothing wrong with them getting paid for it. If you don’t have an iPhone—or other smartphone—it could be well worth the money1. I am a bit annoyed that I started Jotting my tasks to OmniFocus so late in the game. As a beta user, I can still take advantage of the full service for free until September 8, but I don’t see myself using it after that.
For me, the great thing about Jott was the email delivery. I never used the online notes—and never would have used Jott if it had only offered online notes—because they created one more inbox I’d have to check and process. Since I already have to check my email, Jott’s emails fit in nicely with an already-established pattern.
Is Jott’s email service worth $4/month? When I’m off on a business trip, as I am now, I may do 2-3 Jotts a day, but when I’m home, it’s 2-3 per week at most, not all of which are directed to OmniFocus. Given that Jotting is only incrementally more efficient than
- writing tasks directly in OmniFocus for the iPhone
- emailing myself a note from my iPhone
- leaving myself a voice mail message
- recording a note on the iPhone with QuickVoice (which I reviewed here)
there’s no compelling reason to add Jott to my monthly expenses. Adieu, Jott.
-
The $13/month plan strikes me as way overpriced no matter how much you use Jott. It seems designed to suck money from companies whose executives demand every little perk they can get their hands on. ↩








