Tag Archives: software

Going from Things to Omnifocus

I have been a heavy Things users since the beginning, but there have always been certain features that I have found lacking, such as sub-projects and a distinction between areas of focus.

Omnifocus has had all necessary features since I can remember, so I finally decided to give it a go for real. All active projects and areas from Things have been migrated to Omnifocus, leaving the someday/maybe list for if/when I commit to using Omnifocus for a foreseeable future.

The one thing I will have to live without for a couple of days until I can commit, is buying the iPhone app. That means I will be using Evernote on the iPhone to capture actions and projects on the go.

I am really looking forward to be able to use sub-projects and see if that increases my productivity and peace of mind about large projects. Perspectives are also something I look forward too, since that means being able to focus on just work or personal, even though there are deadlines arising in both places. In Things, everything is meshed together and it is practically impossible to completely separate all focus areas. There is an option to disable an area of focus, but that is a too inconvenient workaround.

Modern source control using Mercurial

Version control has historically always used the traditional client/server model. This means that the server is always the “master”, and clients may commit updates to this central repository. The information available on the client is generally minimal, with the base revision for easy diff and status checks.

The two main contenders are CVS and later Subversion, which has taken over most of the market. While Subversion is using the exact same model as CVS, it is more reliable, has atomic commits and is generally easier to work with.

Something new has been brewing these last couple of years though — distributed version control.

The main idea behind distributed version control is to use a decentralized versioning model (duh). This means that there is no centralized server in a normal fashion, but the repository is instead distributed among everyone who are working on that very project.

This part might be a bit hard to grasp at first, especially if you are a traditional Subversion user, but with the decentralized model the whole repository is right there at your fingertips and not somewhere remote. That does however not mean that there can not be a central place for the project, on the contrary, the central server servers as mere member of the entire mesh of clients. The server essentially becomes a client, but usually with special permissions allowing others to fetch and modify the contents.


This article focuses on Mercurial, which is surprisingly easy to use, but there are of course other version control software that works in a decentralized fashion. The most notable are Git and Bazaar, who have attracted quite the following.

One reason for using Mercurial instead of one of the others is ease of use. The basic commands are using the de facto CVS style standard, while more advanced commands relies on more knowledge of Mercurial itself. This essentially means that most people who have been using any kind of version control previously will feel right at home without having to relearn from scratch.


The workflow of Subversion where you first do a checkout from a server, then make all the changes you want, to later finish off with a commit is a usual way of using source control. To mirror this in Mercurial, there are certain not-so-subtle differences to consider.

The first task is to create a local copy of a repository from a server, which is similar to checkout in Subversion. The command is called clone, and that is exactly what it does. Clone makes a perfect copy of the repository on the server, with its entire history, including all available branches and tags. This might at first seem like it uses a lot of extra disk space, but it does in fact not take up more disk space than a Subversion checkout.

After the cloning process has finished, you would start working on your changes just like before. When you are finished, you will do a commit, this too just like before. When you do the commit however, you are only committing the changes to your local copy of the repository (remember, you cloned it earlier on), and nothing is sent up to the server.

You may continue to work offline like this, changing and committing as you go along. When you have reached a point when you want to share your changes with the other developers, you will want to push the changes to the server. That is in fact the name of the command. Hg push sends all your commits to the server, but if someone else has made a push before you, you will be notified by a perhaps not so clear message about you creating new remote heads on the server.

This means that there will be multiple heads on the server (essentially a branch) if you were to force the commit. Normally you would do the opposite and to a pull to get the latest changes from the server before you push your own updates. This is were you will have to take care of merging other people’s code into your own. In 99% of the time, Mercurial will solve everything for you. Remember that Mercurial has a complete history of the project, so it knows if blocks of code or entires files have been moved around. This eases merging in whole new level.

When all merges have been completed, you may push your changes to the server and others may pull your changes to their own local repositories.

This has been an introduction to the conceptual differences between classic client/server version control system and the modern distributed kind. If you want to learn more, head over to Hg Init where you can dive into the concept and learn everything your need to know to get started.

Flight Control – revisited

I recently tried out Flight Control, a game for the iPhone which puts you in charge as an air traffic controller. It is your job to route the different planes to their respective runway. With iPhone OS 3.0 came a feature for Bluetooth PAN (Personal Area Network), which means that the iPhone is now capable of creating ad-hoc networks with nearby phones on the fly. The new Flight Control update takes advantage of this new feature to bring multiplayer!

In multiplayer mode, two iPhones share the same air space, but are in charge of landing strips for different kind of aircraft. You then have to work together to route the planes to the correct landing strip without crashing the planes into each other. This brings a whole new dimension to this already highly addictive game, so if you haven’t downloaded it already, buy it from the App Store.

iPhone App: Flight Control

I recently bought Flight Control from the App Store, hoping to find an easy, yet challenging game. I found it.

Flight Control puts you in the air traffic controller spot, and it is your duty to route the various planes and helicopters on a safe landing route. You have to watch out for crossing trajectories, different speed air planes, and other traps which could lead to your demise.

See additional screenshots and videos on the Flight Control website.

Things vs The Hit List vs Omnifocus

I have been using Things for a long time, both on my Mac and iPhone. While being very good at what it does and being visually beautiful, I have lately been having lots of trouble finding a good solution for a “Waiting For” focus, planner, setting a starting date, subtasks and other minor things. Their support forum is full of these requests and many other too.

Both The Hit List and Omnifocus do not suffer from these shortcomings, and have other benefits too. THL has a very nice planner where you can see items due today, the next days, next week, month etc. It makes it very easy to get an overview on what and when things have to be done.

The one thing missing in THL at the moment is iPhone sync, which is where Omnifocus shines! It has a very competent syncing framework and a native iPhone client (a bit pricey though). Omnifocus follows the principles of Getting Things Done almost to the letter, which may be too rigid at times, and it does not have support for tags at the moment.

What to do? I have invested in Things for the Mac and for the iPhone, but I have considered the idea of moving to Omnifocus for the moment, and maybe returning to Things when it has matured somewhat. I like THL quite a lot, but without syncing with an iPhone application, it’s useless for me.

4 Essential Mac Applications, and 1 bonus

perianMy brother was recently in the market for a new laptop, and I helped him with the reasearch as usual. He ended up with a Macbook in the end, and being a first-time Mac user I of course helped him get started.

What I didn’t realize is that there are some essential applications I have collected over time, which everyone may not know about. They tend to make things much easier.

One of the “features” that need fixing in OS X is the way sleeping is implemented. When you close the lid of the computer, it enters sleep as usual, but it also does the hibernation step – meaning that it saves the contents of the memory to disk, in case of a power failure.

While this may have its benefits, I find it mostly annoying and it means being careful handling the computer until the disk has stopped spinning. Well, no more. There is a smart program called SmartSleep which makes it possible to reap the benefits of both sleeping methods at once!

The idea is that since you probably won’t need the hibernation functions until your battery is almost depleted, it will only be enabled when the battery charge becomes low (configurable threshold)! This means that the computer will go to sleep much faster in normal circumstances, and when the power is critically low, it will revert to the default sleep plus hibernate option. This makes it possible to resume the session even when the battery has been totally depleted.

Media! The Mac needs to be able to play the various media file formats out there, such as Matroska and Windows Media. Perian and Flip4Mac takes care of all your codec needs, and since they provide filters for Quicktime, you may continue to use your Quicktime Player or even iTunes for viewing this content!

The final application for this time is Growl, which provides a system-wide and well supported method of providing unobtrusive user notifications. This may not seems like a big deal, but it makes it easier to focus on what’s important.

gammaJust one more thing! This isn’t an application, but it something Mac users should be aware of. If you have noticed that your pictures, videos or other things look washed out, it might be time to modify your gamma settings.

The default gamma on the Mac is set to 1.8, while most other use 2.2. Experiment with this and see what you prefer. G Ballard provides some more insight and howtos on this issue. There are even some rumors floating around that Apple will change the default gamma to 2.2 in the upcoming Mac OS 10.6 – Snow Leopard.

Download links

Enable 1Password in Safari 4 beta

Apple just released a beta version of Safari 4 with lots of new features. Users of 1Password might notice that it doesn’t work in the new version. To fix this, close Safari and 1Password and edit the following file:


Find the Key named Safari and look for MaxBundleVersion underneath. You will see 5528.1 as the maximum version. Change that to 5528.16, save and quit. Now you can reenable Safari from the 1Password preferences and then start Safari 4 and add the button to the toolbar. Voila!