Posts from 2024

73 posts · All years

December 2024

Dec 3

Org-Mode Emphasis Keymap with Mnemonics

I do not like how org-mode’s emphasis function works, requiring knowledge about the syntax to apply bold and italic and inline code style correctly. Here’s a solution that uses ‘b’ for bold etc.

November 2024

Nov 28

Iterating Through Realities

Refactoring is bending reality over and over until you finally make the actual change. It’s exhausting.

October 2024

Oct 26

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.

September 2024

Sep 19

Checklists Appreciated Under Stress

Giving birth to a child includes managing stressed-out hospital staff, too. Checklists would’ve helped along the way at every turn. And they still help me to get stuff done in an otherwise unorganized daily routine.

August 2024

Aug 13

Typed Filters and callAsFunction

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.

July 2024

June 2024

Jun 24

The Rake and Its Prongs

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.

Jun 12

The Communication Tradeoff

As a software developer, I want to understand the code, so that I can implement changes for our users. How do we get there?

Jun 7

Fold Search Results Away in rg.el

Whenever you want to fold away content in an Emacs mode that doesn’t support this out of the box, consider using outline-minor-mode. Here’s how I did that to make rg.el

May 2024

May 8

Declarative Text Kit: Sketch of an API

I was fed up with writing long procedures to perform markup changes on the fly. This post contains an API that looks like something I would like to use.

May 4

Zettelkasten (Not) Needed?

As the saying goes, if the title of a post is a question, the answer is “no”. So, do you, or don’t you need a Zettelkasten in your life?

April 2024

Apr 17

Always Be Changing Existing Code

Ever thought that your good idea from today will be the worst nightmare of your future self? The future not realized may actually be worse.

Apr 6

“Soulslike”

Soulslike games are characterized by their high difficulty level, where success depends on learning from failures and mastering the mechanics. You know what else shares this?

March 2024

Mar 25

Ship Custom Fonts within a Swift Package

You can treat font files like any other resource, but you need to use Core Text API to load them in your app. That isn’t as complicated as I feared. Here’s how.

February 2024

Feb 26

Portable Every-Day-Carry Paper Kanban

You don’t need a computer or smartphone to use a Kanban board: here’s an approach to do it all with simple, affordable, and fun paper tools.

Feb 19

Splitting Large Tasks is not a Mathematical Process

You’re in a team meeting. You estimate a task to be worth 13 story points, which is a lot in your team, so you break it up into two tasks. The first one is estimated to be worth 8 story points. What’s the second one worth?

Feb 15

SwiftUI Field Guide

Chris Eidhof released an interactive, animated resource to understand SwiftUI.

January 2024

Jan 30

Low App Prices are Preemptive Excuses

Developers see how their product falls short from the ideal, and so they instinctively charge a lower price than they could (and maybe should).

Jan 9

Emacs sqlite-mode to Open .sqlite Files Automatically

.sqlite files render “graphically” in Emacs, but only if you open them manually with the equivalent of a file picker dialog; that is unacceptable, and I propose a solution that opens the graphical view for SQLite database files when you visit the files automatically.

Jan 9

Cold-Blooded vs Warm-Blooded Software

You cannot run cold-blooded projects as warm-blooded ones. There is not enough activity “to keep the temperature up”. But cold-blooded projects are great to keep around for years and years.

Jan 1

Timestamps with Weekdays

I found ISO dates to be lacking in context in notes that represent timelines. So I am trying out something a tad different, like [2024-01-01 Mon].