Is readability always better?

September 30, 2022 - 421 words - 3 mins
At the recent YOW Perth conference, Andy Marks & Pam Rucinque of Thoughtworks presented a thought-provoking talk on "Reviving the art of software design". As part of the talk they had a selection of different-but-functionally-identical implementations of a pangram-checking function, a… read more

Blog Necromancy

September 26, 2022 - 585 words - 3 mins
I realise this blog has been quiescent for over half a decade, but I've resolved to put a little bit more time into blogging, professional development, and other not-directly-billable pursuits. There are a number of factors behind this; chief is probably that I'm not really using Twitter anymore (th… read more

RxSwift DelegateProxy with required methods

May 12, 2016 - 350 words - 2 mins
Once you’ve sipped from the Reactive Kool-Aid it can become emotionally painful to have to implement callback methods the old-fashioned way when you hit a delegate-style API that doesn’t have a prebuilt Observable wrapper. Max Alexander did a great tutorial post on how to implement your own Delegate… read more

Swift ErrorTypes - A Modest Proposal

October 02, 2015 - 790 words - 4 mins
After the WWDC announcement, when I got over my initial knee-jerk ‘Exceptions - ick!’ reaction, I came around to being a supporter of the Swift 2 error handling model. While it would be nice to be able to desugar the implicit result type, and there’s a glaringly obvious hole with async error handlin… read more

Using Xcode Playgrounds for Presentations

September 08, 2015 - 359 words - 2 mins
Playgrounds are primarily designed as a learning tool, but with Xcode 7’s multiple pages and expanded rich markup support, they’re also really great for presentations - they allow you to mix slide-like text & image content with interactive code (for coding demos). Because everyone loves coding … read more

AWS Powershell: “A parameter cannot be found that matches parameter name 'Credentials'.”

July 08, 2015 - 184 words - 1 mins
I spent ages debugging this one a few months ago, and just hit it again, so I thought I’d share to save others some time. If you have an older AWS powershell script, you may hit this error when running AWS Powershell cmdlets, particularly if using a cross-account role - e.g.: $aws_role = Use-STSRole… read more

“Principles of Reactive Programming” course review

June 14, 2015 - 552 words - 3 mins
I recently completed the “Principles of Reactive Programming” course on Coursera - I’m very interested in FRP (and libraries like ReactiveCocoa) as I find a lot of the most painful bugs in the iOS code I work on relate to using mutable flags/timestamps (or application state) to coordinate multiple e… read more

Watch App Development Blog - Week 6

February 20, 2015 - 599 words - 3 mins
 I’m blogging my progress in developing an Apple Watch App. Read the previous instalments here. Telstra - grrr! I had a frustrating week trying to track down an odd issue - I wouldn’t get any train times load when I was walking around (i.e. near the station, where I want to test), but there was noth… read more

Watch App Development Blog - Week 4 *cough* 5

February 08, 2015 - 1362 words - 7 mins
 I’m blogging my progress in developing an Apple Watch App. Read the previous instalments here. So, um, I missed a week. Sorry about that. Sad face. Step 4: The Pebble We don’t have access to any Apple Watch hardware yet, so it’s difficult to get a good feel for how you will use your app in context.… read more

The operation couldn’t be completed. (SSErrorDomain error 100.)

January 29, 2015 - 305 words - 2 mins
If you’re trying to test iOS App Store receipt validation, and you perform a receipt refresh using SKReceiptRefreshRequest, you are almost certainly going to come across the mysterious and enigmatic SSErrorDomain Error 100. There’s not a lot of information on the googles, so here’s what I know/suspe… read more