What a year! My life changed quite a bit during this trip around the sun. Here are some of the highlights of 2018. A New Family Member On January 28, 2018, Mallory and I welcomed Daniel Keith MacEachern into the world and into our hearts. He arrived 16 days ahead of schedule but both Mama... Continue Reading →

Apple has released new developer APIs that will allow mobile advertising conversion tracking while protecting individual user privacy. The new APIs are part of the StoreKit framework and include a new class called SKAdNetwork. Advertising networks will be able to serve advertisements which contain data that associates the advertisement with a particular advertising campaign. If... Continue Reading →

2017 might be over, but I won't be forgetting it anytime soon. Here are some of the things that I will remember the most about the past year. A lot of running I trained for and ran in my first marathon, and achieved my goal of finishing in less than four hours (3:59:39). The training... Continue Reading →

Donald MacEachern was the son of Norman Angus MacEachern and the brother of Kenneth MacEachern (my grandfather). Donald fought in the Battle of the Falaise Gap (also known as the Falaise Pocket) during August 1944 as part of the Second World War. He was injured when his tank was destroyed and he was briefly taken... Continue Reading →

Every few weeks the macOS Spotlight refuses to accept keyboard input. It happens infrequently enough that I always forget how to get it working again, but maybe writing about it will help me remember: Open Activity Monitor Search for Spotlight Open the Spotlight entry Select Quit H/t: Tom Harrington on Ask different

The most frustrating change I've found between Xcode 8 and the Xcode 9 betas was the default remapping of the ⌘-click shortcut to open the Code Structure menu instead of the Jump to Definition command. Thankfully, there is a way to change it back. Go to Xcode → Preferences → Navigation → Command-click on Code, and select Jumps to Definition.... Continue Reading →

The following is a transcription of a document written by Norman Angus MacEachern, my great-grandfather. In it he writes about a trip he and his wife took to Scotland sometime on or before 1959 in search of information about his ancestors and the history of the name MacEachern. The original scanned document is available here (68mb). I've... Continue Reading →

I recently learned that it's possible adjust the speed property of CALayer objects to slow down (or speed up) the animations on that layer and all its sublayers. Applying it to an app's window will slow down every animation. // Slows down all animations to 10% of regular speed! [[[UIApplication sharedApplication] windows] firstObject].layer.speed = 0.1; It's also... Continue Reading →

John Sundell has put together a really handy Swift library called Unbox. It provides a straightforward interface for marshalling JSON data into Swift data models and it supports all the standard JSON types out of the box. I like it better than the approach taken in ObjectMapper because Unbox supports immutable (let) properties whereas ObjectMapper currently... Continue Reading →