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
Refactoring is bending reality over and over until you finally make the actual change. It’s exhausting.
Pi-hole on Unraid (as Local DNS to Access NAS Services Without a Roundtrip to Cloudflare)
My Nextcloud and a couple of other sync services are exposed to the internet via a reverse proxy, and I reach them via a Cloudflare tunnel and a custom domain. That Cloudflare round-trip doesn't make sense while I’m home, so with Pi-hole as DNS, I directly connect to my NAS for LAN speeds.
TableFlip v1.7.0 Releases with Modern Icons
New icons and UI for TableFlip, the visual Markdown and CSV and LaTeX and JSON and HTML table editor!
Percent-Encode HTML Form Values so That Spaces Become ‘%20’ Instead of ‘+’
You can use HTML forms to dispatch actions to custom macOS app URL schemes, but you need to encode the form data yourself to avoid surprises.
Global Day of Code Retreat 2024 Retrospective
Nov 9th, 2024 was Global Day of Code Retreat. I found that people are the actually hard thing in programming.
Running Unsigned Applications on macOS Sequoia
“Open Anyway” for unsigned apps is now located in settings.
Composition Over Inheritance in NSViews
I noticed that I’m writing some AppKit/UIKit view components in a composable way that reminds me of the opaque nature of SwiftUI.View-conforming types: hiding away the actual 1st party APIs, providing very little surface area.
More blog posts in the archive