Things 1.1 Brings Extensive AppleScript Support

No Mac application can truly be considered complete without AppleScript support. We are very happy to announce that version 1.1 of Things brings full scripting support for most aspects of the application. But hold on a second, isn't AppleScript only relevant for programmers? And what is AppleScript anyway?

Apple Script

AppleScript is part of Apple's automation technologies. It is an English-like language used to write little applets that can control the actions of a computer and applications that run on it. Here is an example:

tell application "Things"
    set message to the name of the first selected to do
end tell
 
tell application "Twitterrific"
    post update message
end tell

While it may seem obvious what this script will do, let's break it down for you. We'll assume you have selected one or more to-dos in Things. We will also assume that you have a Twitter account and the Iconfactory's Twitter client Twitterrific installed on your Mac, configured for the Twitter account. The above script will ask Things to return the name of the first selected to do. Then, it will make "message" a shortcut of the returned text. That text is now handed to another application - Twitterrific in our case - to post it as an update to your Twitter account.

It is easy to try the above script yourself. Just fire up Apple's Script Editor application which is already installed on your system. Copy and paste the above script into an editor window and click the run button in the tool bar. Oh, and you may want to make sure that a suitable to do is selected in Things ;)

Of course, you don't need to use the Script Editor every time you want to use a script. You can save your scripts and then run them by simply double-clicking them. Even more convenient, you can drag scripts into the Finder's toolbars for easy access. For an example, check out the Browse Full Screen script from Apple's website.

We have a section in our wiki dedicated to collecting user contributed scripts. If you are interested in automating Things, be sure to check it out every once in a while. Our Things AppleScript Guide, which you will also find there, is filled with snippets of example code which will get you started in no time. Happy scripting!

Things 1.1 Brings a New Model for Working with Delegated Tasks

If you haven't yet worked with the people feature in Things before, version 1.1 is the perfect opportunity to try it out. The new way delegated tasks are handled in Things 1.1 is much more flexible and also works much better when you sync with the iPhone or iPod touch version of Things. But lets start at the beginning.

People

For any person in Address Book, you can create a list in Things by choosing "Add Teammate..." from the File menu. If you have also stored the IM addresses of your teammates in Address Book, Things will automatically show their IM status in the sidebar:

People

For each teammate, you can now create a list of items you are waiting for them to complete. You can think of these tasks as being delegated to the respective person.

Previously, when you dragged an item - say from the Next list - onto a person in Things' sidebar, the item was removed from the Next list and shown in the person's list instead. This makes perfect sense since this item is now delegated to another person and hence, no longer your task. There is simply no other choice than to remove it from your next action list. Considering that the Next list has a tendency to grow very long anyway, every task not there is a good task. Or is it? In fact, many months of experience has told us differently!

There is another way to look at delegated tasks. Even though you have handed over the task to someone else to complete, you still have to make sure that the task gets done and that the results will meet your expectations. Some time after you delegate a task, you may want to be reminded to check whether or not it has already been completed successfully. In some cases, you may even want to get in touch with your teammates more often to check whether it is necessary to provide them with more help or information.

When you delegate a task, there are two aspects:

  1. The task that your teammate is supposed to complete, and
  2. Your responsibility to make sure that results are returned.

Previous to version 1.1, the behavior of delegated tasks in Things was modeled to capture the first aspect. We have now decided to give the second aspect precedence. Now, when you drag an item from the Next list to a teammate, it will show up in the teammate's list, but it still stays available in Next as one of your responsibilities. Of course, after delegating a task, at least for some time, there is nothing you can do about it. Hence, it shouldn't appear in your next actions list. What you can do now is to drag the task to the Scheduled list (works for tasks that are not part of a project) and enter a date in the future when you expect the task to be completed by your teammate. When that date arrives, Things will show your task in the Today list to remind you to check back with your teammate.

For complex delegated tasks that take a substantial amount of time to complete, it is now possible to combine start dates (Scheduled list) and due dates. You can use the due date to specify when the task needs to be completed at the latest. Due dates are often determined by external requirements beyond your control. By using the start date (Scheduled list) on the other hand, you let Things remind you to get in touch with your teammate to discuss intermediate results, or evaluate whether the due date can still be met. Then, you can reschedule the task based on the results of your discussion to make sure you will get back to your teammate in a timely fashion, ensuring results are delivered as expected.

Syncing Areas of Responsibility and More...

For Things users who sync with their iPhone or iPod touch, the ability to sync Areas of Responsibility has been the most requested feature. We are happy to announce that Things 1.3.5 for iPhone and iPod touch now supports that. Tasks on your iPhone or iPod touch will now be nicely categorized into Areas just as they are on your Mac. In version 1.3.5, however, it is not yet possible to add new Areas.

Syncing

The overarching goal for version 1.3.5 was to significantly improve sync reliability and experience. But we also added important general improvements. The most important one being Things’ ability to more accurately return back to the last screen that was shown before you quit the application. This might seem like a little improvement, but it is actually quite significant, since it solves the problem of potentially losing vital text when a phone call comes in. Previously, when you were typing away on a note and a phone call came in, you lost the recent changes of that note. Now, after you open Things again, it will return to the editing screen with your latest changes waiting for you.

When returning back to Things, it doesn’t always make sense to show the last screen you were using before you exited. You might have forgotten exactly what you did last time. Instead of making the user always navigate back through potentially deep hierarchies, we tried to find a middle ground. For example, let’s consider a scenario where a user is managing tags while editing a to-do, and then quits the app. In such a case, we do not return to the Manage Tags screen, but instead show the to-do the user was editing before.

Most of the time and effort we spent on version 1.3.5 went into analyzing user contributed bug reports, doing our own extensive testing, and obviously fixing all of the issues we were able to reproduce. This involved both Things 1.1 and Things touch 1.3.5. If you are syncing with your iPhone or iPod touch, please make sure you use the latest version of both apps to get all of the benefits of the improved sync engine.

We strongly encourage every user who still experiences sync issues to contact technical support. The best way to do this is by selecting the “Provide Things Feedback...” menu item from Things’ main menu. This will open our new unified support form in your browser with version information already filled in for you.

Speaking of technical support... Let me take this opportunity to officially thank our new support hero, Mark Simoneau. He did an awesome job before as one of our forum moderators and we are very happy to have him helping us with our increased support load. He will be assisting Oli and Michael who worked crazy hours to answer all your questions.

Things 1.0 and counting

What crazy times these are. We have had a blog post for almost every major preview version of Things. We have posts about our design process. We even have posts about plagiators. But there is no post about the release of Things 1.0. What is going on here?

After the Things 1.0 release on January 6th, 2009, we immediately got ourselves busy doing a 1.0.1 update. Those of you who became dependent on the grouped Today list style know why adding a little option in 1.0.1 couldn’t allow for any delay.

Group by project or area in Today list

We also promptly released Things 1.3.1 for the iPhone and iPod touch as - due to a bug - 1.3 infamously missed all translations. Of course, we didn't stop there. The 1.3.2 update, which quite significantly improves syncing, has already hit the App Store. There are still some issues remaining and we are hard at work on those.

After big releases it is always a good idea to concentrate on analysing and fixing user reported issues. The next desktop release - Things 1.0.2 - is almost finished. We have fixed a dozen bugs and will be releasing it soon. And rest assured that 1.0.3 is already in the pipeline. :)

But there is even more going on behind the scenes. While cranking out updates is probably quite an appropriate thing to do for a software company, it is sometimes even better to spend some time on accelerating the development speed. It is still a bit early to go into the details, suffice it to say for the moment, that we were able to attract some quite impressive software engineering talent and experience. Stay tuned for more updates on this front.

That being said, we would like to close this post with some pictures from Macworld Expo 2009. The expo was a huge success for us. Our booth was surrounded by large crowds of people all day long. It was so good to finally meet at least some of you.

Cultured Code at Macworld
Michael and Chris at the booth

One of the highlights was certainly winning the Macworld Best of Show award. Head over to TUAW to watch our very own Michael Simmons sitting amongst the The Mac Observer and iPhone Alley awards while searching for words to express his feelings.

The following pictures might not be a completely accurate depiction of reality :). But they certainly tell something about how huge the event felt to us.

Cultured Code in San Francisco
Chris wondering if we spent too much on advertising
Cultured Code in San Francisco
Werner asking himself if online ads would be more effective

Now, if it's all right with you, we have some updates to finish. :)