RSSAmplifier

Blog

Worklog: Articles and Blog Posts by Christian Tietze

christiantietze.deRSS feed ↗20 posts

Latest posts

Lettera: A Refined Markdown Document Editor

For a while now I’ve been working with the people at Shiny Frog – the team behind Bear – on something new. Today it goes into beta testing. It’s called Lettera , and it’s a Markdown editor for macOS.

Retelling Stories with Commit Diffs in My Head

In my teenage coding days around 2001, before I used version control systems, and for a long time, I spent a lot of time reading code just to somewhat memorize it and to know what happens where and when and how I got there. This state of mind has a distinct feeling for me, or rather: an aftertaste, that I instantly remember when I stare at a codebase that past me left with tons of dirty changes.

Swift Blog Carnival Roundup: Tiny Languages

The very first Swift Blog Carnival is a wrap. Six folks took the prompt of Tiny Languages and ran with it in directions I hadn’t anticipated – from task runners and result builders to symbolic math and German verb conjugation. Thanks to everyone who participated!

CLI for Your Notes in The Archive – Automated Zettelkasten (Usage) for Programmers

Recently on a meetup, I was asked whether the age of manual note-taking and Zettelkasten is over now that LLM’s are everywhere and can produce so much text in such a short time that humans can’t outcompete them anymore. Outcompeting a computer on producing text was never the goal, of course.

Counter Drift and Entropy with Kaizen

I picked up a term that I have not used in all my years of programming, and I love it: “Drift”. As in “Specification Drift”: you write the spec at time T , implement at T+1 , learn something new about the problem domain in the process and adjust your implementation (you know, normal programming) at T+2 , then at T+3 the spec doesn’t reflect the reality of the code base anymore.

Swift Blog Carnival: Tiny Languages

The April Carnival is closed. See the roundup of all submissions . To kickstart the Swift Blog Carnival , I’ll pick a topic that is inoffensive (I hope!) and applies to the vast ecosystem of Swift programming: Tiny Languages .

Emacs Mistakes and Misconceptions That Held Me Back in 2019

It took me a decade to try Emacs again, for reasons totally unrelated to computer programming (task management!), and a lot of effort by my pal Sascha Fast . In hindsight, I realize I had to learn a couple of things first. This is my contribution to Emacs Carnival March 2026: Mistakes and Misconceptions , hosted by Philip Kaluđerčić.

Peloton for the Mind

What if “bicycle for the mind” never meant that it’s a way to speed up, but a way to exercise? Since in 2026 nobody uses bikes to exercise anymore, the more understandable metaphor would be “a Peloton for the mind,” an ergometer to get your mind-muscles into motion at all before they atrophy. Then the goal is not to be quick, to get stuff done – at least not for you, personally, – but to learn and…

Does Bad Code in Your Context Window Misalign LLM Recommendations?

Put away your Betteridge’s Law of Headlines , I genuinely don’t know the answer :) In “Training large language models on narrow tasks can lead to broad misalignment” , Betley et al found that fine-tuning LLM’s with e.g. insecure coding practices can affect the outcome of non-coding related answers in a bad way.

Make the pi Coding Agent Identify the Model in Commits

In November, I posted how to make Claude Code mark itself as the author of git commits. You can do the same with OpenAI Codex.

Identify Codex CLI Git Commits for an Audit Trail

Agentic engineering practices changed from “you should commit everything yourself” to giving the agentic tools more autonomy for example in order to try out different things to implement a change. Small git commits are part of that toolset. Here’s how to teach Codex CLI to self-identify as the git author.

FreeBSDKit: Swift Package to Write Capability-Aware FreeBSD Apps

Shout-out to FreeBSDKit : FreeBSDKit provides idiomatic Swift, C and C++ interfaces to FreeBSD’s unique system features including Capsicum sandboxing, jails, process descriptors, kqueue-based signal handling, and inter-process communication with descriptor passing. The framework embraces move-only semantics (~Copyable) to model resource ownership explicitly in the type system.

Zettelkasten Productivity: Books Written per Books Ingested

Over on the Zettelkasten forums, Edmund Gröpl, in a post: “On Zettelkasten Productivity” , proposes to reframe the “how many books have I written” lifetime achievement number as “how many books have grown out of what I read”, showing how small the ‘tip’ of our productivity is compared to the huge foundation of what we read.

Media Transfer Protocol Tools

I really, really don’t like how I get ebooks onto, and notes off my Supernote e-ink tablet. I’ve had it for a year now. Great device. But the stuff I create just … is there. I don’t want to connect to the web UI to push an Upload button to select a file to upload (drag and drop doesn’t work!) just because I’d like to read a new book; and I don’t want to sift through filenames, hastily cobbled…

Emacs Complete: Feedback Loops in Emacs, Feedback Loops in Computing

Completion within Emacs is not just about “intellisense” auto-completion as you type, or tab-completion in command prompts. When I think of “completion” within Emacs, I think about all operations within Emacs being (closed over) textual representations. Text buffers form a complete representation of process interaction in Emacs.

Institutional Knowledge Is a River That Can Dry Up (Don’t Fire All Your Workers)

Tony Arnold shared a video by Dr. Helen Edwards that captures one important insight: The people who would’ve adapted to the next thing you did not see coming are gone. Institutional knowledge is not a stockpile you can extract and keep. It’s a river – cut off the source, and it dries up. — Dr. Helen Edwards

Introducing quake-frame.el: My Take on a Terminal Visor, But Running Emacs

I noticed that in all terminal emulators I tried (iTerm, Ghostty, kitty), I rely on a system-global shortcut to show me a session that I use whenever I need to terminalize something right now, right there, like ffmpeg something or bulk delete with a pattern or convert magick an image. I had this for ages, and I miss it when it’s not there.

Xcode 26 LLM Markdown Summaries Are Actually Useful for Humans

The Xcode 26 System Prompts collection contains a couple of chat templates, but more interestingly: typical LLM-targeted documentation of new-ish technology to prime their context for stuff that’s not well-represented in training data.

Zettelkasten for Programmers: Documenting Confusing with Swift.SendableMetatype

I was reading the SendableMetatype docs because the new NotificationCenter messages I was catching up on use that in the API headers.

Use clang API notes to Annotate C Header Files for Swifty Module Imports

I learned threee new things when I read Doug Gregor’s “Improving the usability of C libraries in Swift” blog post that may also affect your daily life importing C libraries: Until today, I was under the impression that you can make C functions sound a little bit nicer and add argument labels with SWIFT_NAME mostly, but this is something on a different level.