More About Me
- My /now page shows what I am doing.
- Résumé/CV shows what I have been doing.
- Work with me on your projects!

Writing
- Introduction to my most important articles.
- Wiki with important concepts.
- All About TextKit: I deal with text, and here's a collection of everything I figured out so far.
- Ultimate FastSpring Guide for Selling macOS Apps: I sell my macOS apps in my own store. Resources and tips to get you started.
Latest Blog Posts
Emacs Elevator Pitch (August Blog Carnival)
This month’s entry for the Emacs Carnival is how I'd talk someone into using Emacs at the workplace I do not have.
Adapt Unidirectional Flow Virtues to Your Plain SwiftUI App
To get started, you can require authentication for actions on buttons anywhere in your SwiftUI app produce a change up the scene, e.g. a log-in overlay or dialog, by injecting a closure into the environment to handle that.
SwiftUI DocumentGroups Are Terribly Limited
Document-based apps with SwiftUI are easy to write, but hard to customize apart from a couple visual tweaks. Say if you want to introduce in-app purchases.
My latest app project is ready for testing: a delightfully simple drawing app for all Apple platforms.
TextIndex: a Markdown Pre-Processor and Syntax Extension for End-of-Book Indexes
Matt Gemmell makes use of his new Mac to create another tool for a Markdown publishing pipeline.
Can You Really Put on Blinders If You Know There May Be Adverse Effects of Your Actions?
Is it possible to claim that you’re off the hook when it comes to questions of whether usage of GenAI should be allowed, focus on practical usage, and then that’s that? I believe that is a bit too cheap a cop-out.
Migrating from asdf to mise (en place)
Managing dev environments with mise is really rather nice.
More blog posts in the archive