Stuart Breckenridge

My Desk at Home

While most of my code (and the content for this website) is written on my MacBook Pro, I do spend sometime sitting at my home desk working on my iMac.

What’s there?

I find that anything else detracts from productivity: I like the vast expanse of empty desk space, it helps me think. I also can’t stand cables — I will gladly wait for a TestFlight build to finish processing rather than hook up a lightning cable into an iPhone or iPad.

Out of shot is the stuff that gets on my nerves for their untidiness: the cable modem, the WiFi router (required because the built-in WiFi on the modem is quite rubbish), and the Synology DS216+.

  1. Use code RFR91045 for $10 off your first order. ↩︎

Buddybuild Pricing Announced

Buddybuild1 recently announced their pricing structure and thankfully there is a free pricing tier for smaller, indie developers like myself. I’ve been using buddybuild for the last month and I’ve been thoroughly impressed with the way it integrates with your project2 and the way in-app feedback works during testing. They have also been extremely quick to support Xcode 8 beta builds.

If you haven’t tried buddybuild, I’d strongly recommend that you do.

  1. Technically, buddybuild, all lowercase. It’s just wrong. ↩︎

  2. They check out your project in GitHub, integrate their SDK and then commit their changes. There is no manual work needed. ↩︎

Style Sample

My approach to CSS is to hack around with it until it works and then leave it alone. To assist me in this quality approach, I’ve created a styles page that covers each of the CSS selectors I use throughout the site. I find this gives me a very quick overview of how the changes I make to the CSS affect the overall look and feel.

The markdown is available as a gist.

How to Avoid Flash on the BBC Website

Anthony LaForge, on the Chrome Blog:

In December, Chrome 55 will make HTML5 the default experience, except for sites which only support Flash.

The biggest culprit for not moving to HTML5 is the BBC. Their content defaults to HTML5 on mobile devices and Flash on desktops — resulting in a You need to install Flash Player to play this content alert. Their reasoning to run with this approach for as long as they have continues to baffle me. Luckily, there is an easy fix for Safari:

  • In Preferences -> Advanced: enable the Show Develop menu in menu bar option
  • In the Develop menu -> User Agent submenu: Select one of the Safari — iOS options
  • Reload the website and the Flash content will be presented as HTML5 content.

I can’t wait until Flash is no longer used.

iPhone 7: Are the Secondary Speaker Holes Cosmetic?

Joe Rossignol, for MacRumors:

The text in the documents refers to the area that occupies the 3.5mm headphone jack on current iPhones as having simply a microphone and microphone mesh, with no mention of a speaker in that location. Most of the secondary holes would be non-functional, except for the one furthest to the right, which would double as a microphone.

I’m hoping this design document is a fake and the speaker grille is actually, you know, for a speaker. It’s decidedly un-Apple like to include something so misleading in their hardware design and I can’t think of any other examples of them doing this.

The only reason I think they would include a speaker grille in that location is to give the bottom of the phone the appearance of being symmetrical. I think this is a pretty poor reason though. The iPhone has been around for nine years and the bottom of the phone has never been symmetrical. This has had no impact on sales and I’ve never read a complaint about the look and feel of the bottom of an iPhone. There are, quite frankly, bigger design problems to solve.12

  1. On Plus size devices: the location of the power button is ergonomically obtuse. ↩︎

  2. On 6 and 6s non-Plus devices: the phone is too light (use it in a windy place), the battery life is not good, and it’s too slippy in hand without a case. ↩︎

The Collatz Conjecture

This short post on Daring Fireball regarding the Collatz Conjecture and Swift code in playgrounds piqued my interest. I thought I’d have a go at putting together a playground with full markup and graphs of the results. My code is available as a gist.

Note: Interestingly, I discovered that XCPlaygroundPage.currentPage.captureValue(value: T, withIdentifier: String) has been deprecated and there is no replacement. There is a basic for loop at the end of the playground which produces the graph.

Adding San Francisco Mono to Font Book

Apple introduced a new fixed width font in Xcode 8 — San Francisco Mono — but they’ve not made it available for system-wide usage.

If you want to make the fonts available for system-wide usage, you need to extract them from the Xcode 8 beta and add them to Font Book.

Assuming Xcode is installed in /Applications, navigate to the below folder using Finder:


Then select the fonts in that folder and drag them to Font Book.

Office Fonts from H&Co


Today we’re introducing twelve families of Office Fonts, all of them available for purchase and download. Some coordinate with our best-known typefaces (which serve the world’s best-known brands), Office Fonts for Gotham, Archer, Whitney and Sentinel. We’re also introducing Office Fonts for some of our newest releases, including this year’s Whitney Narrow and Operator.

I own Whitney Pro and Operator Mono. It’s mildly irritating that there are now Office versions of them.

Auto-generating Quick Help Text with Xcode 8

Xcode 8 introduces new Editor Extension functionality that allows you to customise your coding experience. Given that Xcode 8 is still in beta I haven’t seen or tested any third party extensions just yet. However, in amongst all the new feature blurb something caught my attention:

Auto-generate Quick Help documentation

For the last few years I’ve been using the excellent VVDocumenter to assist in generating the Quick Help text, but as of Xcode 8, it’s been sherlocked.

How do you use the new in-built Quick Help text generation functionality? Simply click on the function you wish to add documentation to and then use the following key combination option + command + /, as seen in the below example.