I never know whether to put blogs about Apple stuff here or on my company website. This time I wrote a few thoughts about the best bits announced at last weeks WWDC keynote (mostly stuff arriving in the Autumn) and put them over on the Wandle Software blog.
It’s easy to forget how much computers have changed over a relatively short. time. A book I found in my old room at my parent house, “Simpleton Explores Microcomputers,” helped me get some perspective.
I don’t know exactly when it’s from, but it’s certainly early eighties. Possibly 1983 or 1984.
It explores the computers that are available at the time and what it’s like to own one. One of the most telling aspects is that it’s written for people who have never owned, possibly used, a computer.
It all starts out with a detailed plan. Then someone says, “Can we deliver by October?” A few features get cut, some of the estimates get revised downwards and everyone gets back to work. Then you get to the end of September and find that someone removed all the contingency and that in the rush to finish the requirements a heap of important stuff got missed.
You spend days, weeks, quite possibly months pushing to get the software developed and, a few months before the real end, a crunch point is reached. It’s missing what’s now realised to be critical functionality; it takes an hour to process something that should be instant; the data doesn’t look like you thought it would; it’s too late for any real benefit to be obtained.
Last week, GitHub was the victim of a days long denial of service attack that meant that it wasn’t available reliably despite the hard work of their team.
What surprised me was the number of people on Twitter complaining that they couldn’t work. I was surprised because one of the key things about Git (the tool rather than the website) is that it is distributed, that is there is no centralised server in the way that there is with, say, Subversion. Clearly there are things you can’t do without GitHub – most obviously downloading new repositories – but almost everything else can be done peer-to-peer. The rest of this post explains how.
I’ve seen quite a few people saying that it isn’t possible to move an iOS app from paid to being free with an in-app purchase to unlock the full functionality. Fortunately they’re wrong.
“Traditionally” I would have had to remove version one from sale and offer a completely new app, which would have meant that existing users would have to pay again to get the same functionality. Or I’d have to support two apps. Or I’d keep the same app in the store and all existing users would get downgraded to the free version. None of these solutions seemed fair to existing users.
One of the great things about WordPress is the community and the number of great plugins that can do amazing things with little effort.
But all that code, as any good developer will tell you, is a liability. How do you pick a plugin that not only meets your requirements now, but will both continue to do so? WordPress advances. APIs change. Plugins need love too.
Many moons ago I settled upon Flickr Gallery, a plugin that allows you to import Flickr images just by adding a short-code to posts. I thought there was value in keeping all my public photos in one place and, at that time, WordPress had poor media management facilities. The plugin seemed popular and well supported.
“Preview” is damaged and can’t be opened. You should move it to the Trash.

This was the rather surprising error message that I’ve been getting when I try to open a PDF from the Finder since I upgraded to OS X Yosemite. It’s bad enough when you get an error message, but one suggesting that you delete a frequently used app is inconvenient to say the least!
It’s important to have a Top 10 list. I know this as every other site has one. I don’t want to miss out. So here are the top ten most read posts here this year, with the year they were originally published in parenthesis:
- QA Mindf**k
- Do Apple take 40% in the EU? (2011)
- Learning Swift
- iOS Developer Program: from individual to company (2011)
- How do I do “X” in Swift?
- AQGridView to UICollectionView (2013)
- iPhone Dev: Saving State (2010)
- NSFetchedResultsController and iCloud
- Why you need a crash reporter (2011)
- Sophia Smith (2006)
If there’s a lesson here in increasing readership it’s simple: get retweeted by people with lots of followers.
Preamble: In pre-Swift and pre-ARC days of development on Apple’s platforms, it was necessary to “manually” retain and release objects as you used and discarded them. One common, but incorrect, pattern that kept reappearing was the idea that you could use the retainCount method to ascertain whether an object was still being used.
##
When to use -retainCount? Never!
There’s pretty much never a good reason to use -retainCount. Here’s a short and mildly abusive explanation why.
When I read Rand’s recent post on QA I was pretty much entirely in agreement. A good QA team is a real asset to any project, especially large ones. However, a bad QA team can be a huge liability and cause problems for everyone.
Bad testers don’t understand the product they’re working on. They follow test scripts they don’t understand, write short, inaccurate bug reports and make no attempt to appreciate the context of any error.