Subscribe for Updates
Let's not prevaricate about the bush: I post seldom now, compared to years past. Your best bet to catch new posts is to subscribe to my RSS feed.
Caveat Emptor
I barely remember writing any of these posts. They feel like someone else’s work. Yet I have left this archive intact for the sake of...dot dot dot. I cannot understand it. They’re all poorly written and an embarassment but they are mine and they are archived by the Wayback Machine, so what would be the point of trying to pretend they didn’t exist?
2024
- November 12 – Beware @unchecked Sendable, or Watch Out for Counterintuitive Implicit Actor-Isolation
- July 12 – Bookmarking Xcode Project Search Results
- May 20 – How Do You Know Whether or Not SwiftUI Previews and Preview Content Are Excluded From App Store Builds?
- March 14 – Be Careful When You Initialize a State Object
- March 2 – Scaled Metric Surprises on iOS & iPadOS
2023
2022
- November 11 – Deep Fake
2021
- May 3 – The Destructors, or, Yet Another Rant About That Basecamp Post
- April 12 – Deep Fake
- April 1 – Mustang
2020
- November 3 – Four Years Ago
- October 21 – Every Skill is a Liability
- May 28 – Dagmar Chili Pitas: The Official Unofficial Mirror
- May 7 – When Should I Use @State, @Binding, @ObservedObject, @EnvironmentObject, or @Environment?
- April 1 – Addicted to Jesus
2019
- April 7 – Dr. Jekyll and Mr. Tumblr
- April 6 – Please Pardon Our Mess
- April 6 – Clipper Ships
- April 1 – Unit Testing is Easier Than You Think
- March 27 – PSA: Please Don’t Double Space Between Sentences
- March 24 – Think Twice Before Downgrading to a Free GitHub Account
- March 19 – iOS App Analytics a Necessary Evil, or Maybe Just an Evil
2018
- December 12 – Reference Types vs Value Types: the Original Sin of Programming
- December 7 – Little Weeds of Dread
- October 15 – TIL: Boy, Have I Been Misusing SCNetworkReachability
- September 18 – Migrating to Unified Logging, Swift Edition
- August 10 – Twitter Made Flesh
- August 7 – Bad Idea Rejection Tokens™
- February 11 – Welcome Home (Pod), a Very Short Play About Apple’s Inexcusable Failure to Recognize Even Mildly Disfluent Speech
- February 8 – Keep Screen Unlocked: ’sodes Feature for Folks Who Don’t Have CarPlay
- February 3 – What’s the Deal with “No Downloads” In ’sodes?
2017
- September 25 – Apple Watch Series 3 First Impression: Mindblown.gif
- September 20 – Get Your Architecture Right, Because You Always Have More Time than You Think You Do
- June 5 – The Leftovers is Over
- June 5 – Tune in Next Time for “Last-Minute WWDC Comments” or “Apple Isn’t Doomed to Fail, But Their Future Doesn’t Look as Rosy as Their Past”
- April 12 – My Ideal Politician
- April 11 – Working With Designs That Require Display Versus Text San Francisco Fonts
- March 27 – Stormcrow
- March 17 – Swift Needs a Scope Keyword
2016
- December 1 – How To Write The Software
- November 27 – Tangential Thinking
- November 2 – How I Organize a Swift File
- October 31 – Self-Driving Car Fleet Commercial: 2021
- October 28 – Future Imperfect
- October 19 – AsyncOperations
- September 3 – Implementing AVAssetResourceLoaderDelegate: a How-To Guide
- July 30 – How to Pause and Resume Your App’s Audio in Response to Turn-by-Turn Notifications and Other Audio from Other Apps
- July 5 – The Value of Grey Thinking
- June 21 – How to Make a Sticker Pack for iOS 10 Messages
- June 14 – Apple TV Focus Animation Coordinator Bug
- May 4 – Rethinking Apple Music
- April 27 – A Very Narrow Usage of Storyboards
- April 26 – Don DeLillo on Chickenshit White UI Design
- March 25 – I admit I never understood what Manton found appealing about microblog posts until today, a week...
- January 1 – Imagining a First-Party Swift KVO Replacement
- January 1 – NSNotificationCenter is Probably an Anti-Pattern
2015
- December 31 – Steven Sinofsky on Why Remote Engineering is So Difficult
- November 14 – Saving the iPad
- November 3 – Time Zones Version 1.2 Available Today
- October 25 – Are You a Workaholic?
- October 20 – Back to the Past
- October 20 – Thoreau on Self-Driving Cars
- October 20 – Mistakes
- October 16 – Are You Rich?
- September 29 – New Job
- September 28 – Wishlist for Swift 3.0
- September 9 – Swift – Versus – Storyboards and State Restoration
- September 4 – Pushing on the Pull Door
- August 22 – Suggestions to Improve Using CocoaPods with Private Specs
- August 22 – Code-Signing and CocoaPods
- July 5 – Judicious Use of Shitty Code
- June 16 – App Store Search is More Depressing than the Game of Thrones Finale
- June 14 – How to Become an Indie Developer
- June 11 – Origin of the CMD Symbol
- June 11 – WWDC 2015
- June 9 – Making Toast Again
- May 22 – My Daily Habits Before and After the Apple Watch
- April 25 – Jared’s Code Signing Tips: Apple Watch Edition
- April 14 – Follow These Guidelines and Never Struggle with Xcode Code Signing Again
- April 14 – Apple Watch Try-On, Unsorted Thoughts
- April 14 – Screenshots of Every Screen of Apple Watch Settings.app
- April 14 – Full-Time Hobbyists
- April 13 – Riposte, the App.net App, Permanently Removed from Sale
- April 8 – Kottke on the Apple Watch, But Really on All Technological Progess, Ever
- April 6 – Unanswered Questions About Apple Watch Versus App-Driven Businesses
- April 3 – Amazon Lambda
- March 13 – More Followup on Sharing Data With WatchKit Extensions
- January 16 – [Sponsor] Digit
- January 14 – Taking the Time to Thank Your Mentors
- January 11 – [Sponsor] Digit
- January 7 – Anthony Bourdain on Showing Up on Time
2014
- December 12 – [Sponsor] PagerDuty
- December 9 – All These App Rejection Stories in One Headline “No One Dares to Build WatchKit Apps that Matter”
- December 6 – [Sponsor]: PagerDuty
- December 6 – Follow-up on Sharing Data with WatchKit Extensions
- November 19 – WatchKit Extension Problem: Sharing a Core Data Store Can Lead to Duplicate Entries
- November 17 – How I Learned that Video Games are For Old Ladies, Too
- November 1 – Unread by the Numbers
- October 14 – Bloglovin 3.0.3 Available Now
- October 9 – Weekly Sponsor: Mandrill
- October 4 – Weekly Sponsor: Mandrill
- September 25 – Beyond Objective-C, Beyond Swift
- September 23 – The iPhone 6 Plus Makes Designing Apps for Physical Comfort More Difficult — and More Important — Than Ever
- September 18 – Iterate 74: Designing for iPhone 6 and Apple Watch, with Kawano, Sinclair, and Wiskus
- September 17 – Good Design is a Process, iPhones 6 Edition
- September 16 – Good Design is About Process, not Product
- September 11 – Unread is Now a Supertop App
- September 10 – The Best of All Possible Xcode Automated Build Numbering Techniques
- August 31 – Time-Saving TextExpander Snippets for Xcode
- August 31 – Finding Objectivity When You Feel Lost as a Designer
- August 27 – Quotebook: a Commonplace Book for Your iPhone or iPad
- August 8 – My New Job
- August 8 – What's the Most Common App Icon Color?
- August 6 – For Subclass Eyes Only: Swift, UIGestureRecognizer, and the Protected Extension Pattern
- August 4 – Five Hard Lessons Learned from Unread
- July 29 – On Promotion and Marketing - A Response to Critics of Yesterday’s Article about Unread
- July 28 – Tyler Hall’s Candid Look at the Financial Side of Building Mac Apps
- July 28 – A Candid Look at Unread's First Year
- July 25 – JTSActionSheet – Simple, Customizable Replacement for UIActionSheets on iPhone
- July 23 – Shawn Blanc's Delight is in the Details – New Version has an Audio Interview with Yours Truly
- July 23 – UIFontWeightTrait Ignored When Creating a New Font – TextKit Bug or a Jared Goof?
- July 11 – Why are Inflation and Deficits Bad?
- July 11 – Birthday Cake M&M's – The Dawn of a New Era
- July 5 – Your New National Health Service
- July 3 – “The Best of Both Worlds” – Yours Truly on CMD+Space
- July 2 – They Make Such Bloody Good Cameras
- July 1 – I Love Teleportation - A Summary of a Wishful Day
- July 1 – I Hate Flying – A Summary of Our Day:
- June 27 – OvershareKit to be Maintenance-Only for iOS 8
- June 26 – Preferred Orientation
- June 26 – Happy Birthday, Henry
- June 24 – Nitpicking iOS Notification Banners
- June 23 – David Ronnqvist on CALayer Animations
- June 19 – Healthy Skepticism – My Critique of HealthKit as Both iOS Dev and Registered Nurse
- June 15 – Thanking My Dad for Caring About “Getting It Right”
- June 12 – Maglus Stylus Review
- June 9 – Unread for iPad
- May 27 – Smartphones, the Internet of Things, and the Death of Software
- May 24 – Friday App Design Review – Castro for iPhone
- May 22 – Seeking Advice for a Right-to-Left Language Bug in Unread
- May 20 – My Reasonable iPhone 6 Prediction
- May 19 – A Practical Introduction to Photoshop for iOS Developers
- May 18 – Basement Menus and Breaking the “Rules” of App Design
- May 17 – No Friday App Design Review This Week
- May 13 – AutoLayout Myths, Table View Performance, and Side-by-Side iPad App Multi-tasking
- May 9 – Friday App Design Review – AnyList, Shared Grocery Lists
- May 2 – Friday App Design Review – Code Review, an Inbox for GitHub Pull Requests
- April 29 – iOS 7 Squandered a Year of Third-Party Development on Superficial Changes
- April 29 – CocoaRadio
- April 25 – Bug in Videos.app Doesn't Clear Cached Data for Streamed TV Shows and Movies
- April 25 – Friday App Design Review – eHarmony
- April 24 – Giving Up On The iPad
- April 22 – Sloppy Swiping – How to Make An App Feel Comfortable
- April 21 – App Story Podcast, Episode 4
- April 20 – Unread Version 1.2 Available Now
- April 18 – Ben Brooks’ Thoughts on Project Collaboration Apps
- April 18 – Friday App Design Review: Glassboard
- April 17 – Quote From a Dumb Novel I Didn’t Finish Writing So I Could Finish Nursing School Instead
- April 15 – Designing Unread for iPad Part 5 – Comical Amounts of Negative Space
- April 13 – Why Unread Will Never Have a Readability View
- April 13 – Unread Version 1.2 Launches April 21st
- April 11 – Introducing Friday App Design Reviews
- April 10 – Recap of My Recent Github Goodies
- April 10 – Free Kickstarter Idea: Inkjet Typewriter
- April 10 – Designing Unread for iPad Part 4 – The One Screen I'm Sure About
- April 9 – Designing Unread for iPad – Part 3
- April 1 – Cell Height Caching Dilemmas in Unread
- April 1 – Feature Idea for UIKit: UIDeviceCharacteristics
- March 24 – Rdio iOS SDK
- March 2 – Two Alarm Fire – One More Old Post From 2008
- March 2 – Making Toast as an End in Itself
- February 26 – Designing Unread for iPad
- February 11 – Chippy Now Available
- February 3 – Designing Unread
- February 3 – Unread Now Available on the App Store
- February 3 – The New Austerity
- February 2 – Where Is Apple Going?
- January 31 – Chippy - A Fast Way to Send Stuff to Your Pivotal Tracker Icebox
- January 31 – Unread Launch Announcement
- January 30 – On Healthy Shame
- January 27 – Dark Sky — Some Constructive Criticism for Today’s Update
- January 26 – The Philosophy of Unread, my Forthcoming RSS App
- January 22 – Unread — Release Candidate 1.0
- January 11 – Weak Referencing Dictionary
- January 10 – Open Letter to OmniGroup About the iOS 7 Redesign of OmniFocus for iPhone
- January 9 – The Indie Ocean
- January 9 – Unread App Status Report
2013
- December 26 – Lengthen Your Line — Why I Oppose Software Patents
- December 20 – Pull-To-Do-Action
- December 19 – Solving the App Store Discovery Problem with App Playlists and Good Taste
- December 18 – Pencil Stylus Review
- November 30 – Accessible No. 4: “They’re Not Stupid”
- November 20 – Tumblr's iOS App Updated for iOS 7
- November 3 – Hidden Goodies in OvershareKit
- November 2 – “Form Follows Function” Is More Complicated Than iOS 7 Thinks
- October 31 – Overshare
- October 23 – Untouchable
- September 27 – Creative Work and Christian Perfection: The Humility Required to do Your Best Work
- September 25 – Instagram’s iOS 7 Update: They Blew It
- September 23 – The Death and Afterlife of Thalidomide
- September 18 – Unexpected Design Challenges While Updating Riposte and Whisper for iOS 7
- September 17 – Wrestling with Status Bars and Navigation Bars on iOS 7
- September 17 – Another Reason to be Bullish About App.net
- August 27 – Swipe To Go Everywhere
- August 26 – How Will We Know if iOS 7 is a Success or a Failure?
- August 6 – Delight is in the Details — By Shawn Blanc
- August 5 – Orange Is The New Black
- August 3 – Real Artists Fail
- August 2 – Achievement Unlocked: Shawnballer
- August 1 – You Don’t Need a Zoom Lens I stumbled across it two more...
- August 1 – You Don't Need a Zoom Lens
- August 1 – Getting It Right
- July 24 – Unread - An RSS Reader
- July 24 – Announcing Unread: an RSS reader and my first indie project. The...
- July 16 – Is That It? — My First Short Story
- July 15 – Manual of the Church of the Nazarene
- June 16 – What can I say? They fired the wrong guy.
- June 13 – Apps Are Content, Too
2012
- August 6 – Runaway cat ran all the way to our old apartment. Jerk! (Taken...
- July 25 – Death Rate Dropped Where Medicaid Grew, Study Finds
- July 12 – The Real History of the @reply on Twitter
- July 6 – An old drawing from my Illinois days.
- July 1 – I found a new business model, Michael… Michael Sippey at...
- June 27 – Lego Ad
- June 15 – Mr. HIStalk Quote
- June 14 – My Super-Obvious Xcode Keyboard Shortcuts If you do a lot of...
- June 13 – Michigan Sunset (Taken with Instagram)
- June 11 – Photo
- June 11 – Waaaaaaake Up! Wake Up, San Francisco! (Taken with Instagram)
- June 5 – The Usability Problem
- June 4 – Dr. Rick on the ONC/NIST Usability Conference
- June 4 – Why is Photo Sharing Still So Hard?
- June 2 – The Ongoing Confusion with iOS App Icons
- May 31 – Never Go Cheap on Business Cards
- May 31 – Designing Great Business Cards The goals I look for in a...
- May 22 – Tony Gruenwald on Season 5 of Mad Men
- May 22 – Meet Dr. Rick I finally had the opportunity to meet the...
- May 21 – Dan Benjamin Responds to 5by5 Fans About The Talk Show
- April 17 – Big week? Huge week!
- April 14 – If only Tom Servo had had the chance to riff The Hunger Games.
- April 5 – Made with Paper
- April 4 – I updated my Peanuts gang iPad wallpapers for the new retina...
- March 31 – Made with Paper
Blogroll
- Dagmar Chili Pitas – The Two-Year Chili
- Doxowox – Another classic.