A difference in perspective

Posted Posted in Development

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

Posted Posted in Development, Diving

Sometimes my spheres of interest overlap. Meeting Matt Carter at OzTek a couple of years ago, and working with Pim Bongaerts on mesophotic.org 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

Posted Posted in Development

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

Posted Posted in Development, Diving

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!