How often do you stop and think about why it is you do what you do for a living? Maybe it’s a mid-life crisis thing, but of late I’m acutely aware of the finite nature of time, and that there are an infinite number of ways I could spend that time. I’m also aware that ‘software developers’ are a quite diverse bunch of people, despite the persistent stereotype of math geeks huddled around technical toys talking in obscure acronyms (OK, we do that too).

Read more →

I posted a few months ago about the problems I’d encountered with performing privileged actions from a Mac OS X app - in my case, installing a command line utility in /usr/local/bin - and that all the examples of this that I’d come across used an approach which was now deprecated. You can find my original post here: Escalating privileges on Mac OS X securely, and without using deprecated methods.

Read more →

Farewell 2011

2011 review

It’s that time of year again, the end of that artificial construct we call a ‘calendar year’ that prompts so many of us to cast our minds back over the last 12 months. So, apart from rocketing helplessly through space at 107000 km/h, only to return to where we started (relatively speaking, ignoring where Sol and the Milky Way have moved since then), what’s up? As I talked about in my review of 2010, my goal had been to simplify and take back more control in my professional life, revolving around making my own products and cutting down contracting to just single, more significant projects.

Read more →

This week I implemented a much-requested feature in SourceTree for the upcoming 1.3 release (beta 1 went out on Monday, this will make it into beta 2) - a command-line tool so you can quickly pull up SourceTree for the repository you’re in from a terminal. Writing the command-line tool was trivial, but when I came to implement the menu item which would install it in /usr/local/bin, which inherently needs privilege escalation, it turned out to be a lot more complicated than I expected.

Read more →

On being acquired

A lot of you will already know, but SourceTree, a Mac client for Git and Mercurial I created over the last 18 months, has just been acquired by Atlassian. There’s a press release, articles on TechCrunch and VentureBeat, and an official FAQ on the SourceTree site. But this is my personal blog, and I’ve had a few requests for a personal angle on this, so here you go. I said in a previous post that in my experience, the best opportunities often come along when you’re not looking for them, and that was certainly the case here.

Read more →

“So, where do you see yourself in 5 years?” I’m willing to bet every person reading this has had that question posed to them at some point, most likely in a job interview, but possibly during an appraisal, or if you’re really unlucky, by a potential father-in-law at a dinner party. I’m going to call it out right now - it’s one of the stupidest questions you can be asked. It’s a test, of course - does this person have a plan?

Read more →

I was In Sydney when the UK riots broke out, and I didn’t hear about it until it had become an international story which showed Britain in the worst possible light. Much hay will be made about this over the coming months, but I thought I’d add my tuppence worth. Firstly, there can be no justification whatsoever for this behaviour, regardless of your background or surroundings. But it is a good idea to try to understand it, because locking people up after the fact only goes so far.

Read more →

I left Facebook about a year ago and have been using Twitter as my primary social tool ever since. At the heart of this decision were my main gripes with Facebook: **Facebook misrepresents relationships ** It’s clear that Facebook was designed by a young person with borderline Aspergers. Relationships are black and white, you’re either a Friend or you’re not, and they’re symmetrical - information has to flow both ways.

Read more →

A common requirement in any Cocoa application is a preference pane style window where each toolbar item switches to a different view in the main window, resizing as necessary. I’ve used BWToolkit to do this in the past, which provides BWSelectableToolbar. However, there are a few issues with using BWToolkit: If you want to deploy on the Mac App Store, You have to customise it to remove all uses of private methods, since those are banned on the App Store.

Read more →

These days I’m a free agent, and I’m lucky enough to be able to choose what projects I work on, but in a past life, I was what I suppose is properly referred to as an ‘enterprise software developer’. Yes, I once functioned in an environment where terms like ‘mission-critical’, ‘project life-cycle’, ‘stakeholders’ and ‘change management’ came up quite a lot. I’m grateful for the experience I gained over 12 years of doing that, but I’m also very glad to be free of it now.

Read more →