01 Field notes

Thinking,
made visible.

Swift, architecture, Apple-platform internals, and the small product decisions that make software feel considered.

Follow via RSS

02 Latest essay

10 min read

Libraries and frameworks

Most of us have a rough mental model of what a library and a framework are. This post lays out the basics — not every byte, just enough to be useful. I covered the broader compile process in Build Process …

Read essay
  1. 03 Build Process A programming language goes through roughly five stages on its way to a running program, each with its own tool: Preprocessor Compiler Assembler …
  2. 04 Building a little utility: Swwwitch I saw something making the rounds in the dev community recently, so I built a small tool — a quick way to consolidate a few Cocoa-app features …
  3. 05 How Mac apps launch at login Launching at login is one of the most common features for a Cocoa app — especially the menu-bar utilities that are meant to be always-on. Let’s …
  4. 06 How do dockless Mac apps work? Menu-only apps are one of the most common patterns in Cocoa-land. They don’t take up a spot in your Dock, they don’t get in the way when …
  5. 07 Using Yinxiangbiji in Safari on an English-language macOS Evernote runs a separate account system in China — Yinxiangbiji (印象笔记) — and last year the team there spun off entirely. But the Safari Web Clipper …
  6. 08 Adding a backgroundColor to NSView NSView is the most basic building block in Cocoa — the foundation of every Mac app’s view hierarchy, exactly like UIView is for iOS. But the …
  7. 09 The Subjects in RxSwift All diagrams in this post are from the book RxSwift - Reactive Programming with Swift. In the Rx world, a Subject is something that’s both an …
  8. 10 Apple Event Sandboxing Background I’ve been working on a small Mac app that runs an AppleScript to pull data out of OmniFocus and visualize it. Problem: it kept coming …
  9. 11 Tracking down a Shadowsocks traffic leak Update — 2019-01-29 First thing this morning, the moment I plugged into the office network the download rate shot up to 600 KB/s. Sure enough, it was …