Computer, Linux, Opinion, Rechnerkram

Would I switch back from Linux to OS X?

Since I switched from OS X to Linux, one of the questions I get asked now and then is whether I would switch back. Since recently I clearly said that I would switch back to OS X and iOS if my income situation would change that I could afford it again. But recently my opinion is changing. When I get to hear that people are forced to upgrade from 10.6 to a more recent version of OS X because iOS got updated to iOS9. And iOS9 syncs only with a version of iTunes that doesn’t run on OS X 10.6. Thus one user I know had to upgrade and move away from the apps he still used with Rosetta and had to buy newer versions. Another user has an old MacBook that doesn’t run anything newer than 10.6. Thus she would need to abandon her working laptop and get a new one for things like syncing music to her iPhone. Hint: the user won’t get another iPhone. Then there are problems like the user where I couldn’t get Mail.app to work again and moved the user over to MailMate, reports that OS X gets more and more annoying about updating which sounds like Windows to me1, stuff like not allowing an app with video content about IT-security into the AppStore for the AppleTV etc etc.

In addition I see more and more value in using F/OSS. If I want to I can get the source code and fix a bug myself. I am most of the time not able to, but I have the possibility. And that’s in addition to having software that is free as in beer2. I also have no real problems with my setup. Even though I am using a rolling distribution, it just works as long as I do not get “creative”. And if I do not like the desktop environment/window manager I am using now, I can try another one3. I have also a bigger choice in hardware, even though it will be hard for you to move me away from X-Series Thinkpads 😉 I can buy good serviceable hardware for cheap as used computer, I can build up my own computer from parts or I can buy some high end new shit and nowadays most stuff already works with Linux. A lot has happened in the last 10 years. I can use the same operating software for my servers, my raspberry pi and my own machine. Even though I will use different distributions. Thanks to systemd distributions got more similar in handling them. And that is great. More and more I think that if I could get those 1500€ for a new computer, I might spend it on a Thinkpad X250 and not a MacBook Air/Pro. And don’t let us get started about docking stations. I love mine. It is so awesome to move my laptop around and when I am at home, I connect it to my docking station and it gets connected to two external displays, several hard drives, a DVD-drive4 and my ergonomic keyboard and the vertical mouse. With my MacBook Air this was quite cumbersome and involved a chain of USB-Hubs…

Btw. it is similar now for my Android-phone. My LG G4 is awesome and I really do not see a point why I would want to switch to a current iPhone for loads of more money. Games would be the only reason and because of time constraints I play less and less and I have more than enough games on my pile of shame.


  1. Yes, I know updates are important but for example updating to an 10.X.0 can be problematic.

  2. From time to time I donate money to software projects I use a lot.

  3. But i3 is really awesome and I try from time to time stacking/compositing window managers/Desktop environments and return to i3 after a short while.

  4. Which I still need regularly for getting movies cheap or for childrens movies

Computer, Linux, Rechnerkram

Switching from OS X to Linux

After my switch from iOS to Android, I switched now from OS X to Linux. I wrote already about my reasons for switching. I switched in 2004 from Linux to OS X because my laptop got stolen and I needed a new one. My requirements were a unix-style operating system where I have nothing to do to make it work and a small laptop with great battery runtime. The iBook 4G 12″ was the best in that regard back then. Last year I tried my luck with running Linux for 30 days and talked about it in some podcast-episodes of mine. The short version: running Linux from a USB-stick on a MacBook Air is not a very bright idea to get to know if Linux is any good. It works somehow, but not well.

But in the last couple of months or maybe it is a process which went already for a year or longer, I moved more and more of my workflow to open source-tools that are also available on Linux. The last things that were a problem were my iPhone, OmniFocus and 1Password. Since I switched now to Android, the iPhone is no problem anymore. Because the OmniFocus-client I tried on Android wasn’t good enough, but the todotxt-client (Cloudless) was really good, I switched my todo-workflow over to todo.txt. So the next hurdle was gone. And then I found out that you can run 1Password 4 in wine with working browser-extensions. So somehow the most important parts should work. I thought several times about switching to Linux but thought that I actually like my MacBook Air and have no real issues with OS X, so there is no good enough reason for it. But then one of the laptops in our household is on the verge of dying and a new Apple-computer is just too expensive right now. So I decided to go for a used Thinkpad X201. I added a 250GB SSD, got me a docking station and will get a 9-cell-battery in the near future. That is still cheaper than a used MacBook Air and far cheaper than a new laptop.

This blog post is about my experiences with getting the laptop up and running to a state that I want to and can work with. You will find some advice, links and nice software I found.

Installing Linux and first software

I started out with installing Mint 17. Why Mint? Well it is partly the fault of @tante. I asked him what I sould use: Ubuntu, Mint, Arch or Gentoo and his anser was Mint. Arch and Gentoo are closer to the bleeding edge and need more maintenance and Ubuntu is often a bad fork according to him. And what I read in the past it seems that Ubuntu goes more and more its own ways and therefore might get shunned from the community. The latter one is just my own concern. Installing Mint on the X201 was a breeze. It installed and every piece of hardware in the laptop worked out of the box. When I put the laptop into the docking station, everything continued to work and even using a secondary display over the display port worked. My secondary display is an old TFT-TV which I got only correctly to work with OS X with the help of SwitchResX and fiddling around. With Mint, it worked out of the box. So far so good.

Installing software was mainly no problem. Steam was installed fast and it didn’t need long until I could play my first games of VVVVVV, Super Hexagon, Super Meat Boy and Shadowrun Returns on my Linux-machine. In comparison to the past, I could suddenly play the games I want to play problem free on Linux. What a blast.

The version of vim is something like 300 patches behind in the repositories of Mint, so I had to compile it by myself. That was rather easy by following a guide called Building Vim from Source.

Let the fun begin

And then I started with the not so easy stuff. I wanted carddav-sync for syncing my contacts between my phone, my laptop and owncloud. I needed caldav-sync with calendars from iCloud, I wanted emulation of retro-console- and arcade games, I need Japanese input, I want to use mutt instead of a GUI-mail client, I need 1Password etc.

Syncing Carddav with owncloud

There are two ways I got cardday-syncing to work. But first you need the correct URL from Owncloud. I got the working one from logging into my owncloud, going to contacts and then push in the lower left corner the button for the Carddav-Link (a small globe). Mine looks like:

https://owncloud.foo.bar/remote.php/carddav/addressbooks/user/kontakte

And after getting that, which was actually the hard part because I couldn’t find it and googled which led to lots of wrong results, it was easy to get it working.

Number one is Evolution. There you can add a new addressbook with your credentials and the link and then it just worked for me.
Number two is pycarddav. That worked as well, but I have no idea yet, how to get stuff into it. But at least I can pull my addressbook. I have a cronjob that runs it every 10 minutes. And with pycarddav I have an easy way to get completions for addresses in mutt.

I cannot recommend Thunderbird for syncing with carddav because Thunderbirds sync can only pull one e-mail-address from a carddav-addressbook per user. And if there are multiple addresses, it will choose one randomly.

Syncing calendars from iCloud

My wife is still all Apple and we need shared calendars, so I haven’t have a look yet how owncloud works with multiple users, calendar sharing and I remember only that it wasn’t that easy to get it to sync with OS X and iOS. So we still use iCloud for our calendars. The problematic part was again finding out the right URLs. I used a software from http://icloud.niftyside.com/ which I installed on my Uberspace. It was just unpacking it into a directory of the webserver and visiting the site. Then entering my credentials and I got all the URLs. There is even a URL for carddav, so you might even be able to sync your contacts with iCloud.

I am using again Evolution to sync my calendars. It works fine.

mutt and offlineimap

I had already settings which worked quite well but needed a bit of fixing up. I followed mainly The Ultimate Guide to Mutt to get everything to work. The only real problem I had in the end was getting offlineimap working as a cronjob. I ended up putting my passwords into the .offlineimaprc because I just couldn’t get Gnome Keyring to work with a cronjob and only the pure offlineimap-command worked in a cronjob. When I used for example “offlineimap -q -f INBOX -u quiet”, it didn’t work. Only “offlineimap -u quiet” (or whatever interface you want) works for whatever reason. I added hooks for Mairix in offlineimap and added a keybinding in mutt for doing a fast-sync of the inboxes, when I see on my phone that mail arrived and I am too curious.

Emulation

In the beginning it looked a bit desperate in terms of emulation. I only found command line emulators and had problems getting everything to work. But then I found solutions.
a) Nintendo-consoles (NES, SNES, GBC, GBA): Higan which is in the repos of Mint 17.
b) Sega-consoles (Master System, Game Gear, Mega Drive/Genesis + CD + 32X): Kega Fusion which I needed to install from the site

For arcade games you can search for MAME and for the rest you might have to use a command line-client.

If you use an XBox360-pad there is a better driver than the built-in one which is called xboxdrv. If you need to map your joypad to keyboard-buttons there is the tool QJoyPad which does it. It is a bit weird to use, but it works.

The rest

The easiest way to get Japanese input working was ibus with anthy. As dictionary software I am using gjiten and installed additionally the wadoku in the edict-format.

For syncing I am using Bittorrent-Sync which has nowadays a nice GUI-tool in Linux as well: Linux Desktop Gui Unofficial Packages For Bittorrent Sync.

I am accustomed to have escape and control on my caps-lock-key. Control for key-combinations, escape when I just press it. This is great when you use vim a lot. For getting this mapping to work, I use xcape. This works only in X, but on my private laptoop I am most of the time in the GUI anyways.

For getting 1Password to work, I have a blog-post for you. If you are a YNAB-user, it works fine in Linux with wine as well.

After testing out several Twitter-clients in Linux, I ended up using the Chrome-app of Tweetdeck which works quite well. For App.net there is Cauldron which works as good as on Windows and OS X.

For music I am using Google Music All-Access in combination with the Nuvola Player. With that player I get native integration into the desktop with Google Music, at least as native as it gets with Flash in the app. I get notifications for song changes and can use the media keys of my keyboard.

My GUI-client for todo.txt is DayTasks which is better than the other clients I tested. It is quite nice, when I do not want to use the command line interface of todo.txt.

The only thing which I did not figured out yet is a workflow for creating screencasts for Let’s Plays. There is ScreenStudio but this didn’t really work in an initial test. And from time to time Cinnamon just freezes – everything freezes except the cursor. Restarting X helps but this is not really satisfying. I did not yet find out what the reason might be.

Conclusion

So far I am positively surprised. The hardware worked out of the box and the laptop is really neat. If I wouldn’t have certain demands, I could have started to work directly after the installation of the system. The system is really fast, the fans are not too loud, when I am running tons of stuff, it seems to have lower RAM-needs than OS X and all in all it works and is pleasant to use. I enjoy having the docking station which makes live easier since I do not have to unplug my external HDDs and controllers when I take my laptop with me, but just remove the laptop from the docking station. I wonder if I stay as satisfied with this system, as I do with my Android-phone right now. Would you have told me a couple of months ago that I go from all OS X and iOS to Linux and Android, I would have laughed. But right now, everything works and is fun to use. I wonder what I will think in a couple of months once the novelty has worn off.

Computer, iPhone, Opinion, Rechnerkram

OmniFocus and Things: A comparison

tl;dr

Things for design and and an ultrafast sync but you have to follow a certain way to be able to work with it and it can clutter up fast. OmniFocus for flexibility and when you have more than a dozen active projects but it’s not as nice looking.

Introduction

This text shall be about OmniFocus and Things. It is not definitive and I probably miss features since I will write here as objective as possible how those two Mac-applications and their iPhone-counterparts present themself to me and to my workflow.

I guess the best is to tell you where I come from. In 2005 I got introduced by a colleague to GTD (“Since I am using it, my desk is always tidied up and I always have backup batteries for my Bluetooth mouse”). He lent me the book, I read it and I was sold.

I started with a modified moleskine (something like this), used a Hipster PDA but was never really happy with the solutions. On my Mac I tried iGTD, kGTD (the precursor to OmniFocus, essentially a pimped OmniOutliner-document) and some other stuff. When Things became public I used it happily and when they released the iPhone-version I was in heaven. I had a look or two at OmniFocus (henceforth OF) when it got released but it looked always ugly and far too complex.

So I used Things and was always happy but I got unhappier. The always promised over-the-air sync (henceforth OTA-sync) didn’t get released, the updates were slow and stuff like the tagging-UI on the iPhone drove me nuts. So I had again a look around and suddenly OF didn’t look that bad anymore and I bought with it over two years ago the iPhone-app, too. I also bought an ebook about it and read loads if articles because I wanted to get the most out of it.

So after approximately three years I switched from Things completely to OmniFocus. Now it is two years later and because of the looks of Things I was still interested in it and recently I decided to give it another chance.

And what I found I will write up here.

Mapping features

There are some features which are similar in both apps but different enough that I have to explain them here to make the rest of the article easier to understand.

Contexts vs Tags

Things uses tags, OmniFocus uses contexts. When you know GTD, you know that a task should usually be associated with a project and a context. A project is something you try to achieve (clean up the garage, publish a podcast etc) what needs several steps. The single steps of a project are the tasks. A context is depending on definition a location (home, work, at the computer, at the phone) or state you are in (highly focused, zombie). In OmniFocus you can only add one context per task. You can have them divided like Errands and then a ton of subcontexts like the supermarkets but that’s it. One context per task, as it is written in the book. In addition you can add a duration, and a flag to a task.

Things on the other hand has tags. Therefore you can add unlimited tags to a task and use it for durations, priorities etc. tags can also be hierarchical like the contexts on OF, two levels, that’s it.

I will write more about the weaknesses and advantages of both later.

Start Dates vs Scheduling a Task

In OF you can set a start date for a task. That means that the task will be marked as inactive until it reaches it start date.

In Things you can schedule a task which means that it will be marked as scheduled (kinda like inactive) and it turns up in a daily review sheet when it reaches the date and then you can decide what to do with it. The two main options are “show in today” (a view for tasks in Things for tasks which are due, overdue and you decided on todo today) and later (reschedule it) but you can also modify the task in any way you like.

For the purpose of this articles when I speak about start dates I mean in terms of Things the scheduling of a task.

Inactive vs Someday

In OF you can set a context (all tasks with that context are inactive), task or project to inactive. Depending on your filters it won’t show up then. There is a similar feature in Things which is called Someday. You can place a project or a task there and it will be removed from the side bar and the projects view on the iPhone and will turn up only when you switch to the Someday-view.

When I talk about setting something inactive I mean in terms of Things that I move it to someday.

The Design

Things looks better. No doubt about that. The desktop-app and the iPhone-app are well designed in terms of looks. OmniFocus on the Mac has support for themes and there is a plethora available and I even use custom icons from Icons & Coffee but nothing gets OmniFocus to look as polished as Things. On the iPhone it is not even themeable. But at least the OmniGroup gave it nicer looking icons on the Mac and on the iPhone which is at least something. The OF2 α looks better than OF1 but it still is not at the level of Things. Looks are important for me because I want to look at nice things when I use something all the time.

Entering Tasks

Both applications on the Mac have quick input windows which work fine and have auto-completions. There are workflows for Alfred for both which work fine. The only difference is that I can’t add a start date in Things but I can do so in OmniFocus.

On the iPhone both apps have a universally available button for pulling up the “enter a task-sheet”.

But they differ in some ways and here the way both apps work start to diverge.

OmniFocus

When OmniFocus does a “cold” start aka wasn’t in the background, it always optimizes the database. When your database has a certain size, this can take up to a minute in my experience. Since I am archiving my tasks on a regular basis it’s often a max. of a view seconds. Anyway in this time the sheet misses the ability to put in a project or task. So, that can be annoying.

If OmniFocus was in the background you can do everything incl. making recurring tasks and it even lets you attach a photo or an audio-recording. The only thing missing is a way to add a duration.

When entering a project or a context, a new view is pulled up that lists all projects or all contexts and you get a fuzzy search that searches while you type. I usually only need to type in a few letters and it is filtered down to a point where I see what I search.

Maildrop

When you use the Omni Sync Server as a way to sync your todos OTA (you can also use your own WebDAV-server), you can use the OmniFocus Mail Drop (which you find in your sync server account page). This means that you get a mail-address and when you send something to this mail address it gets added to your inbox when you sync the next time. The subject becomes the task, the body a note of the task.

I use this often when I am on my phone and find some interesting piece of software or video which I want to have a look at, when I am on my Mac. And app.net-, twitter- and RSS-clients and browsers on iOS have usually an easy way to share something via e-mail. It’s really fast. And as I noticed it is kind of a dealbreaker when I have a look at other todo-apps.

Things

In Things on the iPhone I can add a task, set a due date and project it belongs to, add tags and a note and schedule it. No way to make it a repeating task, add a photo or audio recording.

In addition for adding details to a task (like tags, note, due date) you have to do an extra tap to open the details. It feels like they discourage entering those details when you are entering a task. It might feel a bit cleaner than with OF but it also discourages you to think about it already when you are putting it in the first place imho. When you have a task in the inbox and get its details-view, you can move it but need to push the edit-button to add tags for example. One more thing thatched me think that CulturedCode (henceforth CC) discourages you to use those. When I used Things a lot I often didn’t enter tags on the iPhone, one reason was that it is hidden until you actively want to use them.

When I started to use OF I suddenly started to actively use contexts because it was right in front of me and I thought about where I actually have to do this. And therefore I could filter for it easily later.

The next problem with Things is that tags and projects are list views without a search. You can reorder them (and have to do so manually) to have the most used tags on top but I wouldn’t enter sub-tags of Errands for several supermarkets for example because it clutters up the list and I need ages to find what I search. And remember you also do priorities and durations with tags. But that’s missing one of the big advantages of tags: I can apply multiple of them to one task in contrast to OF. But I wouldn’t add a lot because it clutters up the list. It’s not a problem on the Mac though because there tags auto-complete when you add them to a task.

The same problem have projects. When you have more than let’s say 15 projects it becomes a hassle to get to the correct one. This will be a problem in the next section of this article, too.

Folders, Areas of Responsibilities and Projects

In both applications you have projects and they work similar. They group tasks (OF bad even the ability to enter sub-tasks to a task but I did not yet find a real use case for me). In both cases they can have notes, start and due dates, can be repeated and scheduled.

The first important thing to note is that projects in Things cannot contain recurring tasks. CC says that projects are something definite that is not ongoing and thus they shouldn’t have recurring tasks. They probably never had a project which took up only a short while like a few weeks where you had to do a specific task every day of the project.

But in Things you have Areas of Responsibility. You can group there projects and recurring tasks. So for big projects the best thing would be to create an Area of Responsibility and add there the smaller projects that are part if the big one and recurring tasks which belong to the big project. But I wouldn’t want to create an Area for a small project.

In OmniFocus you have folders to organize your projects. I use them like Areas in Things and have folders like “home”, “work”, “university”, “administration” etc.

One big difference is that tasks in Things can actually have no project associated with them, while in OF it always has to have project. My “project-less” tasks are in a project called “Misc”. When I moved from Things to OF I had to get accustomed to this and when I tried Things again I had to get accustomed to the fact that tasks do not need a project and therefore the project Misc. is not necessary. Btw. most of my repeating tasks live there. So it is actually a minor annoyance that Things doesn’t allow repeating tasks in a project. But it will be one of the pieces of my conclusion.

There are two more differences regarding projects and their organization.

Parallel and Sequential Projects

In OF projects can be parallel or sequential. In a parallel project you can do the task in any order you like, the top most is the “next task” though (important for filters), while in sequential projects only the top most task is the next one.

I have for example projects when I have get a bill from the doc with the following tasks: write the letter for the insurance, put in an envelope and write the address on it, bring it to the post office, wait for the money on the bank account (due a three days before the bill is due), transfer the money.
The waiting for-task is an inactive task (like all my tasks with the waiting for-context) because I won’t do anything until I get the money or I really have to transfer the money. So all tasks after that are inactive as well which is good for filters when I want to see only active tasks. But when the inactive task becomes due it will turn up anyway in my due tasks.

In Things however there are only parallel projects in terms of OF. Which can be quite annoying. To explain that I have to explain a view in Things. I will get into more detail about views later.

There is a view in Things called Next. In there are all tasks listed that are not in someday, ordered by project and at the bottom are all scheduled tasks (except on the iPhone where a scheduled repeating project is listed with the other projects but I guess that’s a bug). Now I have my project with the bill from the doc. Guess what, the task after the waiting for task is listed there, as well as the project itself. Even so there is no task that is actually active right now. So it just clutters up the next view.

I thought for a long time that sequential projects are not necessary but when they help to filter stuff and get an overview they are quite some help. I already had also the case where I had a parallel project and suddenly couldn’t continue until I got an e-mail from someone. So I added a waiting for-task, made the project sequential and all tasks became inactive and some perspectives (the term for special view in OF) became cleaned up.

At last there is the side bar. Both applications, OF and Things have a sidebar where they list projects and in the case of Things some special views (Today, Next, Someday, Schedule – but more about that later). Things doesn’t have folders but the aforementioned Areas of Responsibilities.

In OF I Put my tasks into projects and most projects into folders. And I can fold the folders and the projects are removed out of the view. I see only the folder.

In Things there are no folders. So the more projects you have, the more projects you see in that sidebar. Putting a project into an Area doesn’t allow you to remove it from the sidebar. Clicking on an Area just shows you all projects and tasks associated with it. If you have a lot of projects, at some point eve. The areas get out of the sidebar and you have to scroll. More clutter. It works fine when you have only a few but I tend to have rather more than view because I have projects for each podcast-episode (that’s two), big blog entries that need research, several projects for my master thesis, upcoming birthdays of friends and relatives, home projects, administrative projects and so on. If you think a bit about it, you can get really fast to a lot of projects. And it is easy to clean your views up in OF, in Things it is not possible.

Templates

Both applications don’t allow template-projects but I will shortly describe what my solution to the problem is.

Templates in OF

I have a folder Templates and in there a couple of inactive projects (one for tidying up the apartment, one for paying a doctors bill, one for a new podcast-episode etc).
Usually they are done like “Doctors bill [date of bill]” or “Retrozirkel [episode name]” (the podcast I am part of).
When it’s time, I duplicate it, make it active, change the part of the name in the brackets and move it into the according folder. Afterwards I add due dates to the project and the tasks if necessary.

Templates in Things

In Things I have the templates stored in Someday and tagged them with “template”. The rest is the same as in OF, I just remove additionally the word template of course and move it to the according Area.

I like the folder a bit more because I can fold it up and don’t have them clutter up the someday list. But since I do not have that many templates, it is not really a problem in Things. But I can see that it might be really annoying for a power user of templates.

Contexts and Tags

I wrote already in the introduction and in the part about entering tasks about contexts and tags. Here I want to discuss how they actually work out.

To freshen up your memory, contexts in GTD are some kind of location where a task can happen. The word location is pretty broad like “home” or “phone”. There are new ideas out there that move contexts from location to something like state of mind since many people can do their work everywhere. Nowadays you are pretty much all the time online, so why have an online-context? And you carry your phone all the time with you, so why a phone-context. And our phones can do most of the stuff our computers can do, so a computer-context becomes redundant, too. Therefore you can come up with contexts like “focus” or “zombie” (you know, right after waking up and before your first coffee). But I think you get now the idea.

Contexts

OmniFocus uses contexts which can be hierarchically in two levels. I have as written before a context called Errands and sub-contexts of supermarkets and other shops. Or I have a library-context and several sub-contexts which bear the name of the library. In OmniFocus I can go now to the contexts-view and select “Errands” and it will me show all errands. When I select “Errands/Postal office” it will show me all those. In a search for Errands all tasks within the current view that belong to the context or one of its subcontexts.

Unfortunately OmniFocus doesn’t allow multiple contexts. Why multiple contexts you might wonder. When I do research it is not uncommon that I find books that are available in several libraries and not only in one. So I would like to create a task that says “get book so and so” and add all libraries in which it is available as a context (and add the signatures in the notes-field). That is not possible with OmniFocus.

There are ideas to add tags to OmniFocus for something like this via the notes-field but it is just a work around and nothing more. Regrettably it doesn’t seem that OmniFocus 2 will add tags, judging from the current Alpha.

Tags

Things uses tags which can be organized hierarchically like the contexts in OmniFocus. Unlimited metadata \o/

But it doesn’t work as well, as one would think. And my latest mail-exchange with a support-guy from CC doesn’t let me think that this will change. Anyway, why doesn’t work it that well?

On the one hand there is the input-problematic on the iPhone. I at least enter a lot of tasks into the iPhone-version because when something comes into my mind, I put it into my iPhone. The trusted inbox, you know. But there it’s this extra tap and the bad UI I described above that I do not really want to enter tags there.

On the other hand there is the problem is a matter of the hierarchical tags. Let’s say I add to a task the two tags: “Central” and “State” which are both sub-tags of “library”. In the UI of Things it will show me the tag “library” with a hint that there are sub-tags and then I can open them specifically and filter for those. Or I click on “library” and it will filter it correctly. But when I search for library, it won’t show me tasks that have only a sub-tag of library.

And both in combination don’t really let me use tags in Things, even so they should be superior to the contexts of OmniFocus.

Search

Both apps have a search. But it works quite differently. Even so I usually start with the OmniFocus-part, I will this time start with Things. Things’ search is great. On the Mac it is always in the lower right and it always searches all projects etc, independent from the view you are in. Results come up while you are typing and are ordered by Inbox, Next, Scheduled, Logged and Trash and you can filter the search-results by tag. On the iPhone it is available on the first screen of the application with, you just have to scroll up and is a universal search, too. When you start typing it shows an extra bar that says “Title”, “Notes”, “Tags”, “All” for doing a bit of filtering. As written above there seems to be a bug though with scheduled repeated projects on the iPhone. The only thing that bothers me is the tag-search I described in the previous section

On OmniFocus search is available universally as well but it only searches your current view. Therefore when you are in the Inbox and you start searching, it will show you only results from the Inbox. You have to go to a view that shows you all task to search over all tasks. I never understood that. Usually when I search, I don’t want to filter first and then search but want to search and maybe filter when I can’t find it.

On the iPhone there is an extra search-view which searches everywhere but it is not search as you type and it doesn’t search for contexts. So it is far inferior to the search in Things.

But the way both apps are constructed lead at least for me to the following: Since I usually give every task a context and a project in OmniFocus everything is well ordered and because of the weaknesses of the search, I rarely use the search but still find everything very fast because I usually know to which project a task belongs and it every phone call that I have to make is in the context phone.

In Things the search is so good that I really like to search but because of it can’t find the parent tag of a sub-tag it has kind of a bad taste for me. In addition I do not have everything as well sorted since it doesn’t really encourage you like OF to give everything a project and a tag.

Due Dates and Times

The next thing I want to write about are Due Dates. I am not sure anymore if the book Getting Things Done mentions due dates. Tasks shouldn’t have one if possible. Because usually stuff with a specific time or date is an appointment and not a task, thus it should be in your calendar and not in your todo-list.

OmniFocus has due dates and times. It defaults to a day at 7 pm. You can change the time though. The task will turn orange (and an icon badge will appear) when the task is due soon which is a time period set in the preferences between 24 hours and 7 days.

When a task becomes due and therefore overdue you get a notification and it will turn red, as will the icon badge.

In my experience the icon badge on the iPhone will only turn up for due soon tasks, when you open the app while a task is due soon. So not opening the app will only give you a notification when the task is due and then add the badge.

Things allows only due dates. When a task is due it will turn up in your daily review and the iPhone will remind you that there are due tasks at a set time (like 8 am in the morning). But you can’t give tasks a due time. Hence you have to rely on another app for that, like the built-in app Reminders or the great app Due.

I have to say that I don’t like that I have to have two apps for that. I often create tasks like “phone person x” and set a due date some time today. So I see it all the time at the badge that there is something to do but I will get an additional reminder at a certain point of time. In Things I have to create that task and do it a second time in Due. Or leave it out of Things (and therefore don’t have it in the project and logged that I did it, when I did it) and have it only in one app. Sure it’s kind of a first world problem but it annoys me. And to be honest being able to decide between OmniFocus and Things is a first world thing, too.

And CC mentioned several times that they won’t change it because a task shouldn’t have a due time. But it is something I could live with, it is just inconvenient.

Reviews

You should review your projects and tasks in a regular interval. The idea is that you do not loose oversight and you think about what might need an update (additional tasks or cross off tasks that are done or not necessary anymore). There are people who do it daily, I do it weekly on the weekend. When I have really a lot to do I do it daily.

OmniFocus supports you in doing reviews. You can determine a time how often a project should be reviewed (n days, weeks, months, years) and when you hit the Review-button, you will be presented with a list of projects and the tasks they contain which are up for review. You go through them and can mark them for review.

I have a repeating project for my weekly and monthly review. The weekly review contains not only stuff like “review projects” but also tasks like review previous and upcoming calendar data. The monthly review contains tasks that I have to do monthly like set up your budget or do a backup of you website.

OmniFocus 2 will have a new review-view which is apparently taken from the iPad-version (which seems to be awesome from what I’ve read). From what I’ve seen so far I like it but since it’s in its early stages I cannot say a lot about it now.

Things, like most To-Do-apps doesn’t support reviews at all. It has a daily review which will show you in your Today-view all tasks that are due today or are scheduled for today but that’s it. I have my weekly review-project. But it means that I always have to review all projects because keeping track of what when to review is cumbersome. It doesn’t matter when you only have ten projects, but with many projects it is not feasible imho.

Perspectives and Views

Things offers several views. Inbox, Today, Next, Scheduled, Someday, Projects, all Active Projects, all Areas, the Logbook and the Trash.

The Inbox is the inbox. Quick Entry defaults to the Inbox and the way the Entry-sheet is designed on the iPhone tasks put in there usually land here, too. Today is a view where you see all overdue and due-tasks and tasks you decided you want to do today. Next is a list of all active tasks and projects, Scheduled shows you scheduled and repeating tasks and is the only view were you can create repeating tasks (remember they can’t belong to a project), Projects shows you all Projects sorted by Areas of Responsibility, a click on a project shows you all tasks in it, a click on a single Area shows you all projects and scheduled tasks in it. The Logbook all logged tasks and the Trash all tasks which are in the Trash. That’s it. When I used Things a lot I lived basically in the Today-view. In the morning I looked through the next-list, selected all tasks I wanted to do today and from then on it was usually the today-view or maybe a project I was working on. When the Today-view was empty I got me new tasks from the Next-view. And there was a big maybe that I filtered the Next-view for tags (because, well I said enough about tag-entry on the iPhone, didn’t I?).

Let’s talk about Perspectives in OmniFocus. Or better not, I will give here only a brief abstract about them. Perspectives are one, if not the most powerful feature in OmniFocus. Merlin Mann did a 56 minute talk about them, if you are really interested.

Perspectives allow you to create any view on your projects and tasks you want. I have for example a today-view which has no side-bar, and shows only the tasks that are flagged, overdue and due today. Or there is the predefined context-view that shows you in the sidebar all contexts. And clicking on them will give you a list of tasks. Or you could create an inbox-view that shows you only the inbox and nothing else, not even the toolbar. You can essentially setup your window a way you want it, take a snapshot and when you want that presentation of tasks and projects you choose the perspective.

Perspectives can only be created on the Mac but can be synced to the iPhone. Because of perspectives you can essentially emulate any view of Things in OmniFocus and make it as clean or as cluttered as you want.

OTA-Sync

I want to talk only about the over-the-air-sync here. Things didn’t have it for a long time but has it now. And howly mowly it is damn fast. You can type a task on your iPhone or Mac and see it turn up on the other side more or less instantaneously. But you have to rely on CC for it because you have to use their infrastructure (for free).

The sync of OmniFocus can be fast and pretty slow. It is never as fast as the sync from Things or at least doesn’t appear as fast. When you want to keep it fast, you should archive your tasks on a monthly basis (one of the tasks in the monthly review project) and sync all your clients on a regular basis. Yeah, that one rarely used laptop can make a difference.

But if you want to use your own infrastructure, you can sync with a WebDAV-server of your choice and do not have to rely on Omnis sync server. But if you use Omnis sync server you can use the above mentioned Mail Drop which is ingenious in my opinion.

But the sync of Things is really neat. Rome wasn’t built in a day, too.

Conclusion

Now coming to an end with this big comparison. And you probably can guess that I will keep using OmniFocus. It is very flexible and powerful. But as I have written in the introduction I read (most of) a book and a lot of articles about it. It has a steep learning curve. And you really should have read Getting Things Done by David Allen when you want to use OmniFocus. But while it is heftily invested in GTD it doesn’t take the book word by word (but with contexts unfortunately) and seems to see it more as a guideline. Henceforth it allows you to model things to your way to get things done.

Things on the other hand is clean and easy to use from the get go. It hides stuff like tags and therefore looks clean. If you have more than 20 projects it becomes fast unclean and cluttered.

I always have the feeling the people from CulturedCode have a specific way to do Getting Things Done and if you want to strife from that way, you have a problem and need workarounds or can’t do it all. I do not even understand their reasoning. They say that tasks shouldn’t have a due time but at the same moment they allow tags (which aren’t “pure GTD”).

If good looks and a really fast sync are important to you and you do not have a lot of projects and don’t care about having a second app running for your tasks, then Things is probably the way to go.

If you want flexibility in the way you deal with your todos and projects and even be able to work in phases when you have a lot of projects on hand, then OmniFocus is the way to go in my opinion.