Matt Gemmell


I’ve been writing here at for more than eleven years.

My publishing frequency varies (though I’m getting back into a more regimented schedule now), but I periodically have high-traffic weeks with popular pieces. I’ve had a couple of those in the past month or so, each one getting a decent amount of linkage, sitting on the front page of Hacker News, and racking up a few dozen thousand reads on the day of publication. That’s great, and I’m absolutely delighted and grateful.

Whenever a piece “hits” like that, I start getting emails – and this has happened for years. The messages from readers are fantastic, no matter whether they’re positive or negative, but it’s the other kind of emails I want to talk about here: the requests for republication.

Sponsor: Dejal Simon

My sincere thanks to Dejal Simon for sponsoring my writing this week. I’ve used Simon for years, to keep an eye on my own servers, track when the WWDC site is updated, and monitor my internet connection.

Dejal Simon is the flexible server monitoring tool for OS X.

It checks web pages, FTP and DNS servers, local or remote ports or volumes, and other services for changes or failures, and notifies you via email, sound, speech, Twitter, SMS, HTML reports, and other means.

Add tests to Simon to track updated sites, to alert you when an important server goes down or recovers, track posts and new comments on your or friends’ blogs, check for web mail, make sure a key application is running, check on Samba SMB, take periodic screenshots of the system, get notifications of updates to favorite news and entertainment websites, keep an eye on auctions, and many other uses.

The gift of writing

Dear reader,

I’m a writer. I’ve spent half my life getting to this point, if I’m only granted the traditional seventy years on this Earth. Today is my thirty-fifth birthday.

You’re one of over half a million readers to visit this blog in 2014, so far. Thank you so much.

I’m often asked by my many friends (and former colleagues) in the software development community if I’m tempted to return to that career. It’s a wonderful line of work, and filled with fascinating challenges, and intellectual achievement. It was a wonderful job for me.

But I have a new job now, and my answer to those who ask is that I’ve never been happier in my work than I am now. A writer is nothing without readers, and again, I’m deeply grateful to you for reading these words.

Letting go

I’ve been trying to let go. It’s a work in progress, and it probably always will be, but I’m trying.

I’m looking for focus, and freedom from noise. More than that, I’m looking for stability; a metaphorical place where I have a chance of doing my best work.

I’m distracted by my interests, but that’s fine. What’s not fine is that I’m also distracted by things I might think are interesting at the time, but are really just opportunities to procrastinate.

I’ve learned that letting go is an active, continuous process. The default assumption is that we want to be interrupted: notifications are enabled, ringers aren’t silenced, and reminders are set. To get rid of that stuff, you have to take a stand.

Sponsor: iConvert Icons

My sincere thanks to iConvert Icons for sponsoring my writing this week. It supports SVG import, unusually, and can make favicons and Xcode iconsets as well as the more usual icon formats. You can run it on OS X or Windows.

Icons are everywhere. In our apps, on our screens, on desktops, mobile, and even in the real world. You’d think that something so small and common would be easy to create and use. But these days, it’s more complicated than ever. A typical cross-device Android app needs something like 30 different icon resources – and iOS isn’t much better. There’s so many formats; PNG, ICO, ICNS, SVG, and the list goes on.

If only there was a tool that could make dealing with those pesky little images a little easier. Wait – there is! iConvert Icons is the proverbial swiss army knife of icon conversion. Whether you’re a developer or a power user, whether you’re on Mac OS X or Windows (yes, there’s a full-featured Windows version too), it’s there to help you.

Macworld MacMania 2015

Fellow Mac enthusiasts, were you aware that there’s a conference for you on a cruise ship every year? Well, there is: Macworld’s MacMania. I’m delighted to confirm that I’ll be speaking on the 2015 cruise, which takes place from December 3rd – 15th next year (note: that’s 2015, not 2014).

My wife Lauren will be coming along too. The cruise begins (and ends) in Southampton in the UK, and we’ll be visiting the Madeira archipelago, Tenerife, Gran Canaria, Lanzarote, Lisbon, and Vigo. You can see the itinerary here.

Staying creative

I recently read Shawn Blanc’s Fighting to Stay Creative, which is about the challenges of maintaining creativity over long periods. I’d like to add a few of my own thoughts on that topic.

I write every day: seven days a week. I’m working on a novel, and I also write for this blog and various magazines. It’s my full-time job now, and I don’t have another one. Staying creative is thus absolutely critical for me.

I’ve learned a lot about the obstacles to continued creative output, and I’ve found a few techniques that can help. Many of these are just common sense, but it’s useful to have them all in one place.

Sponsor: Deploymate

My sincere thanks to Deploymate for sponsoring my writing this week. I’ve certainly had to submit a few quick fixes to apps where I’ve forgotten to check for the availability of new APIs. Deploymate can help find these issues before you ship.

Find and prevent your iOS & OS X app crashes with Deploymate.

Every once in a while, a new version of iOS and OS X is released, and along with them are new sets of APIs for developers to use. The problem is, if you use these new APIs your app will crash on older versions of iOS and OS X. Every experienced Cocoa and Cocoa Touch developer knows how easy it is to make the mistake of using the newest APIs without checking their availability – especially since Xcode will not warn you about it. This problem is extremely painful since no one wants their app to be live in the AppStore crashing for all users running older OS versions.

Fortunately, there’s a really simple app which can detect these problems early, before you even hit the store. Deploymate will analyze your Xcode project and tell you straight away if you’re using an API in your iOS or OS X project that isn’t present on the minimum OS your app is configured to support.


I recently wrote an article about my seven and a half years of experience in working from home full-time, which seemed to strike a chord – it’s been read by more than 80,000 people so far, and extensively linked to.

The one aspect of my situation that I didn’t specifically talk about was the nature of my work. I’ve made a change of career this year, but for the seven years ending last December, I was a consultant software engineer and user experience designer.

I learned many lessons (some of them the hard way) about what goes into being a consultant, and I’d like to share my thoughts on that topic.

Sponsor: Saved

My sincere thanks to Saved for sponsoring my writing this week. It’s a simple personal finance app for your iOS 7 iPhone or iPod touch, with a clean interface.

Saved is crafted by the small passionate team at Snappymob, and is a unique take on personal finance apps. The Saved team has also started chronicling their experience of making it.

Saved is built on the belief that lots of people want and could benefit from some basic financial awareness, but don’t want to have to think about another complicated tool. Saved is built for the 80%. We believe the biggest bottleneck in personal finance apps are the overwhelming number of concepts and configuration choices you often face when starting out. But once you get into the habit of using a tool like Saved, it becomes second nature and rewards you with useful data. With that in mind, we’ve designed an product that eschews many of the complexities found in other apps such as account setup, syncing with financial institutions, and complicated budget setups.