The swift test command-line invokation does not print unambiguous filenames for test failures, so we need to attempt to patch this from the console output ourselves like true hackers.| Christian Tietze
Vinh Nguyen found that his ReSwift status updates became slow. There were too many subscribers. Objects would react to state updates by dispatching a new action immediately. (ReSwift action dispatching ...| Christian Tietze
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.| Christian Tietze
I had a ten-year break from Emacs as a terminal-based text editor until I learned about what you could really do with this program. Then it stuck.| Christian Tietze
I am learning to speak a new language: Swift Concurrency. It is densely packed with familiar-sounding concepts and details I am not aware of (yet). This is how I tackle it.| Christian Tietze
Exploring parameter packs (the repeat-each stuff) in Swift to count how many types are in the generic argument clause, or if that’s empty.| Christian Tietze
A Zettelkasten is a tool for learning. How do I learn a new piece of a familiar API at the very start?| Christian Tietze
Piping data from your Swift program to another program, or receiving large amounts of data from standard input, can be prone to errors, freezing your program. Here is how to do it safely.| Christian Tietze
Showing a popover relative to a text view will compute the accessibility hierarchy 3 times per clickable link in the text view; that can get slow real quick.| Christian Tietze
Shortcuts, aka “key equivalents”, are usually handled by views in your vier hierarchy in the same, predicatable way. Except deleting a character or word with backspace in a text view. These two, apparently, short-circuit this mechanism.| Christian Tietze
The ultimate manifestation of a simplification is replacing N>1 things with 1 thing. If each of these things in turn are non-trivial, you can really feel how much complexity of behavior you cut away.| Christian Tietze
Where I realize that building dependencies in DEBUG mode can offer insights.| Christian Tietze
Just found this today in a Slack channel. It seems we can actually reference and re-use Xib files by overriding awakeFromCoder! > If we are loading from placeholder view, we create a real view and then ...| Christian Tietze
Combining three Swift features for the sake of expressivitiy: sum types aka enums, callAsFunction to introduce “callable” semantics, and type extensions to beautify call sites.| Christian Tietze
We don’t think about this as we write: the blinking cursor tells a useful lie about what the text looks like, so we can work on an abstraction that is about the space between characters, and especially the space after the last character.| Christian Tietze
Deep dive into where the little cells come from, the old school way: Inspecting call stacks, probing default objects. The goal is to change how cells spawn from Nibs.| Christian Tietze
Here is a simple free function to invert boolean values for all you Swift KeyPath fans out there.| Christian Tietze
Writing something every day was too tough for me for a long time. Eventually, though, I found out there ware lots of opportunities to practice writing while I feed my note archive. So I made note-writing ...| Christian Tietze