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 another password manager’s 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.

I’m fairly new to the concept of Getting Things Done (GTD), in fact, I suspect like many people, I’ve been introduced to it partly from the Free App of the Week promotion on iOS, where Things from Cultured Code is free for both iPhone and iPad – they’re separate apps – until the 28th (and the desktop application is discounted by 30%).

I’m not going to try and explain the concepts of GTD to you, there’s plenty about it online, and actually found this video to be quite helpful in helping me figure out how I should be using Things. This blog post was actually one of the tasks I had in my ‘Next’ list…admittedly for the last 3 days, but today I’m finally checking it off!

I think one of the reasons I’ll probably keep on using things is partly because I’m very prone to saying that I’ll do something, or that I need to do something, but then completely forgetting about it. I can remember to do things regularly; like go to work on week days, or shower in the morning, or eat… I can only assume, therefore, that I’ll be good at remembering to review items I have in Things. As soon as those items are in ‘Today’, I’ll have to move them or do them, because I don’t like having badge icons on my phone.

For me personally, I think something like this will be more of a benefit than I currently think, purely because (as mentioned above) I frequently forget what I needed to do. Adding the things I need to do to the Inbox just to get them off my mind has already been a benefit (even though I’ve only added around 15 items so far…).

While there are other software solutions available to use, such as OmniFocus, but for now I’m going to stick with Things and see how that goes. Who knows, maybe it’ll even help me keep up with writing posts on here (and thereby improve my writing!) – I already have another post I want to write…