Setting up DeviceCheck access for your iOS apps

If you’re trying to set up DeviceCheck access, I suggest ignoring Apple’s certificate set up instructions at the start of the DeviceCheck docs. They’re garbage. So bad they’re not even wrong. Instead: Go to Certificates, Identifier & Profiles in the Dev Portal Go to the Keys tab Create a DeviceCheck key Now you can continue reading the docs. NB: You’ll need your Team ID […]

Error: Multiple commands produce…, Cocoapods & Multi Platform Podfiles

TL;DR: Remove use_frameworks! from your Podfile. If you’ve arrived here you probably have a Podfile that includes multiple targets for multiple platforms that share some pods, while using the new Xcode build system. And you’re almost certainly ready to burn everything to the ground. Thankfully, I already did that, and out of the ashes a solution emerged, resplendent and angry. There are a couple […]

The Data61 FP Course is great. Tony Morris et al., have done a great job producing a fundamental course. Here’s a video series of Brian McKenna delivering the material.

A difference in perspective

Recently, Erica Sadun wrote about inconsistencies in Swift’s function-like constructs, such as KeyPath and method references—a post that appears lost in the apocalypse befalling her site. Erica pointed out that method references return (A) -> () -> B functions that aren’t directly useable by higher order functions like map, which takes an (A) -> B function. // Basic example [“a”, “b”].map { “a”.uppercased() } […]

Selecting better frames

How should I frame this? Selecting better video frames for photogrammetry

Sometimes my spheres of interest overlap. Meeting Matt Carter at OzTek a couple of years ago, and working with Pim Bongaerts on introduced me to photogrammetry, and over the past few weeks I’ve been processing some models using 4K video. Selecting useable still frames is tedious at best: manual selection is a non starter, and basic selection with ffmpeg often produces blurred frames. […]

How I learned to stop worrying and love the bomb

Recently, Brandon Williams posted Algebraic Structure and Protocols, a great article describing and building semigroups, monoids and groups using Swift protocols. It’s an interesting article and I encourage you to read it (and his other articles). In fact, I’ll wait while you do… As with most such articles there are some simple examples, however I find the leap from ok, I see what that […]

Gas Manager

I’ve finally released my new gas management program for iPhone & iPod touch. Gas Manager helps you choose and blend custom gas mixes for diving. It includes partial pressure blending (with fudge factors), top off and best mix, as well as MOD, END and EAD calculations. Check it out!