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!
Learn to Think and Code
- Introduction to my most important articles.
- Wiki with important concepts.
- Pattern Language of Zettelkasten is a programmer-friendly approach to work with knowledge.
Popular topics over the past 10+ years:
- 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
Zettelkasten Productivity: Books Written per Books Ingested
Edmung Gröpl reframes writing productivity: it is not the mere output of books-per-person. Instead we should ask the question “how many books have grown out of what I’ve read”?
I want to get books on my Supernote and notes off it, so in my desperation I began to write scripts and make tools to help.
Emacs Complete: Feedback Loops in Emacs, Feedback Loops in Computing
If it is representable as text, it can be moved into Emacs. And if Emacs renders as text, it can be moved into other processes to interpret the result, like snapshot tests, e.g. for automated regression testing. The loop is fully closed.
Institutional Knowledge Is a River That Can Dry Up (Don’t Fire All Your Workers)
Fire all your workers because of the potential savings from using LLMs and you may end up choking your company to death.
Introducing quake-frame.el: My Take on a Terminal Visor, But Running Emacs
I used Claude Code to create an Emacs GUI window (frame) package. Press a key. Get Emacs. Press again. It's gone.
Xcode 26 LLM Markdown Summaries Are Actually Useful for Humans
Xcode 26 has a couple of tech docs that are intended to help LLM’s generate modern solutions to coding problems in Swift, but that also contain valuable info for us human readers.
Zettelkasten for Programmers: Documenting Confusing with Swift.SendableMetatype
I got terribly confused reading the API docs on th SendableMetatype protocol. Because I do not yet know the solution, I want to share how I store this in my Zettelkasten for future problem-solving and discussions.
More blog posts in the archive