I mentioned in my earlier post that I’d started trying out Todoist as a task management application. I also mentioned that I’d share the setup I’m using, which is essentially what I’m about to do. Before I begin, however, I am well aware that the way I have Todoist setup does not adhere to the GTD principles strictly, but what I think is important is how it works for you, not what the principles say should work. I’m finding that this works for me, and I’m positive that this time in 6 months it’ll be revised and improved (for me, at least). Anyway, the setup…

Todoist Project List

Still debating that Someday/Maybe top level item

The above image is my list of projects in Todoist, and as you can see, I’ve grouped things into 3 main ‘groups’; Personal, Work, and Someday/Maybe. The first two groups have been further separated by sub-projects, which I use to broadly categorise my tasks. Taking the Blog category as an example, I have a few items under there which are blog post ideas I have, and then under each of those tasks I have several other tasks that I need to do to consider a blog post as ‘Done’. Under the Family project I have a couple of recurring items (e.g. ‘Call Parents’), similarly under the Finance project, where I have recurring tasks to help me keep on top of my budget and other such joys that one has to deal with as an adult (nobody ever mentions that part as a kid!).

These categories/projects are all I’ve really found I’ve needed so far, but as mentioned above, I’ve no doubt that others will become required at some point as I struggle to group a task that pops up into one of them. My Work project has changed the most rapidly, as I’ve adapted to the various needs of tasks that I have to do at work, I’ve added more sub-projects and renamed others, as my job is actually where I use Todoist the most. Combined with Evernote – which I’ve only recently had an epiphany on how I can/should use – I manage most of the things I need to do quite comfortably.

One of the Todoist Premium features is labels, which I use kind of like a GTD context, as shown below.

Todoist Label List

Online and computer are often tagged on the same things

As you can see I have several labels, such as Errand or Work which dictate that a task can only be done in a specific place (or in the case of Errand, just out of the house/not at work), and I have others such as Computer, Online, and Phone, which dictate that I need to have access to those things to do a task with that label. I’m actually still debating whether I need the Online label, I find I have a lot of things under it, but most are also tagged with Computer or Phone.

The labels I use most often are the numbered ones; I can’t recall where I found the idea from, it was another post similar to this, where the numbers at the beginning give me easy access to decide whether a task is something I’m going to do today, or it’s something I can pick up at any time during the week. If it’s not something I intend to do this week, it’s labelled as 3-Later, and if I don’t know if I’m actually going to do it, 4-Someday/Maybe. I find this works really well and provides a nice ‘at-a-glance’ view into what I have to do, particularly when it comes to reviewing what I still need to do! So far, I’ve not needed to use the Waiting label, but I know I’ll need it some day!

So there you go, that’s my Todoist setup, which I’ve recently starting incorporating with Evernote to keep reference material, such as links for things I need to read, or images of important documents I need to read/renew, and that’s what I’m using to try and stay productive. Hopefully it’s at least provoked some thought if you’re also a user of Todoist, or at just looking at how others use it before you try it. I’m just going to check the remaining blog post tasks off my list now!

A while back I wrote about GTD and an app I’d recently started using – Things by Cultured Code. Since then, I’ve come to use it in my own way, but I struggled to fully embrace it due to the lack of cross-platform support, which made it difficult to use at work. I know I could have used it on my phone, or an iPad, but it’s not the same as having that easy access desktop application; so I looked into other solutions.

With that in mind, I tried Wunderlist for a couple of weeks at the beginning of February. I’ll get it out in the open straight away; I love Wunderlist, I’ve followed it since it was first released, but never really found a great deal of use for it for a sustained period. The latest version still has all the cross-platform support, it’s quick, it has real-time sync, and it looks great… It just wasn’t quite right for me and how I work. It seemed like a very manual approach to GTD, but more importantly, I found I couldn’t organise things the way that suited me. Onto something else then.

After some more research into various ‘todo’ apps that worked cross-platform, I came across Todoist and it seemed to fit my needs quite nicely. I did a little further research into how others have used Todoist while adhering to the principles of GTD, but quite quickly found that there was no one ‘true’ setup to make this work.
Todoist offers a premium version as well as a free version, and I’m currently halfway through a trial for the premium version, the features of which allow me to organise my tasks the way I want to organise them, at a price I’m happy to pay – £18 per year. There’s also the karma, which gamifies my tasks; I rather like the notion of having a score for doing the things I want/have to do, though this is easily turned off if that’s not really your kind of thing.
I think one of the best features in Todoist, however, is the natural language processing for due dates and reminders. To give an example, I have tasks to call people to keep in touch every so often, and I have the due date of that set to after 3 weeks starting on 10 apr – my first task will appear as due on April 10th, and then appear as due another 3 weeks after I mark the first one as done. It’s so simple to define what you need, and this is only going to get easier with the recent release of Todoist 10, which supports even more complex definitions.

I think I’m going to continue with Todoist premium after the trial ends; the iOS app is great, as are the Mac/Windows apps (essentially desktop wrappers for the website) which both offer a global OS shortcut to create new tasks. I find this global shortcut almost indispensable, if something comes to mind while I’m writing some code at work, I just press the shortcut, type the task, and continue my work.

I’ll write a follow-up post shortly to describe how I’ve come to use Todoist, as I found that kind of post by others helped me figure out how I want to use the app.

It was a year ago today I wrote (very briefly) about trying 1Password. As the title suggests, I ended up buying the software during the trial period. In fact, it wasn’t long after I wrote that post that I bought the software.

A lot has changed in that year (in terms of 1Password, that is). 1Password 5 for OS X and iOS was released, as well as 1Password 4 for Windows and an Android client was released. Perhaps most interestingly, the iOS app changed to a ‘freemium’ model, with an IAP to unlock other functionality such as software licences. The change that caught my attention, however, was the support for unlocking via TouchID with iOS 8. This was, for me, something that transformed password entry on my phone, particularly when combined with the app extension support that allows one password to be integrated into other apps, or in the case of Safari, in the share sheet.

Now, don’t get me wrong, I’m well aware other password managers exist, and probably have the same (or more) functionality than 1Password. I’m also well aware that 1Password is quite “Apple-centric”, although they do now have a Windows client that’s pretty much on a level playing field with the OS X counterpart. I can’t comment on the Android app though, having never used it.

For me, it’s just that 1Password gives me what I want and need from a password manager. For example, last week, there was an update to the iOS and OS X apps, which – on iOS at least – brought support for One-Time Passwords as a premium feature. Since I use 2 factor authentication on a number of sites, I decided to replace the Google Authenticator app I was using for these codes with 1Password’s implementation instead. Technically it means that there’s more involved in me getting the codes, but I also don’t have 2 separate apps that are essentially doing the same thing.

Ultimately, I have very little to say against 1Password. Sure it’d be nice to have a Linux client, and I’m not sure how much use I’d find the software on a mobile device only… but they’re hardly deal-breakers. I’d certainly recommend people at least look into it, and at the end of the day, if the cost puts you off, there’s always other password managers around!

I hate unit testing, I also love unit testing; not like Marmite, I always hate Marmite.

Unit testing is one of those things, in my experience at least, that every developer dislikes doing – particularly in a TDD team. Working using TDD feels completely backwards (initially, at least); you don’t have any code to test, so how could you possibly write any tests? But more importantly, unit testing takes the developer away from the developing, from what they enjoy, and in their mind, from what they’re employed to do.

This is wrong, and developers should know it – deep down, I actually think a lot of developers do know this – testing is not a bad thing, and certainly isn’t something to avoid like a plague. Automated testing is a painful process to start adhering to, and even painful to support as the software grows. I’d definitely say that it’s worth it over time, because as the source code continues to grow, and be refactored, the automated testing should at least give peace of mind when making changes.

I don’t have any references for anything I’ve said so far, it’s all opinion, and I’ve yet to work anywhere that has unit testing nailed down; I’ve certainly worked in places where the intention is there, and there’s even some unit tests, but they’re often not kept up-to-date, or cover a tiny percentage of the codebase. Personally, in a non-professional sense, there’s one reason I like unit testing – the passing of tests.

Unit Test passes

Who doesn’t like things to pass?

This may just be me, but I feel a huge sense of satisfaction when I’ve written a unit test and I see the little green ticks against the test (I’m very aware this is an image of Visual Studio/ReSharper’s unit testing UI, but I’m sure unit test results are similar in other IDE’s). I always have the small niggling doubt in the back of my mind that the test is wrong, but that’s when I can go back and check. The test has passed, so now I can relax knowing that the result of what I was testing is what the expected result was. Sure I’m going to get tests that fail, but that’s the point, it highlight’s that something is wrong (even if that something is the test itself).

I’m not always for unit testing, however. I’ve seen some places where people insist on unit testing a UI; I don’t get that, it seems like a lot of effort for very little gain, particularly as UI’s are much more prone to changing than back-end/business logic. I’m happy for someone to prove me wrong if there’s a convincing argument for why I’m wrong, but as things stand I can’t think of any time I’d want to unit test a UI.

All that being said, however, I still can’t find bring myself to write a unit test, so for now I’ll have to rely on good old-fashioned test plans.

Sadly, not flux capacitors; happily, a short post, because there’s not much to say. I’m talking about f.lux, small application that has made quite a noticeable impact on my daily usage of computers.

The concept is fairly straightforward, and I think the flux website does a much better job at explaining it than I ever could:

it makes the color of your computer’s display adapt to the time of day, warm at night and like sunlight during the day.

It’s even possible that you’re staying up too late because of your computer. You could use f.lux because it makes you sleep better, or you could just use it just because it makes your computer look better.

Essentially, the application reduces the amount of blue in your screen as the sun sets, meaning your display gets a much warmer tone. I originally started using f.lux at work; due to the location of my desk, I notice the diminishing light quite quickly, and found that the brightness of the monitors was a little too much to class as ‘comfortable’. This is the main reason I use f.lux – it makes using a computer in lower light settings much, much more comfortable, I find the screen to be easier on my eyes, so I can work later in more comfort, or I can use my computer at home later at night without straining my eyes.

You may be thinking, “I design X, so I need to see the colour as correctly as I can”, well you can disable f.lux for an hour, or until sunrise, or for an hour. The point is, that you can disable it to suit your needs, and then just re-enable it afterwards

The best part, in my mind, is that it’s free. There is no charge to use the application, all I wish is that I could have it on my phone without jailbreaking it. Regardless, I’d easily recommend f.lux, at the very least, it’s worth a try.