Topic
Safari
A browsable archive of writing and notes across the site.
Post
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 Linker Loader Let’s walk …
Post
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 I’d been meaning to try. …
Post
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 walk through how to add this …
Post
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 you’re switching across …
Post
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 is still the same extension …
Post
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 dead-simple backgroundColor …
Post
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 observer and an observable. The …
Post
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 back with no data. The cause …
Post
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 that same …
Post
UserDefaults and Keychain
Apple offers several persistence options, and UserDefaults and Keychain are the two you reach for most often in day-to-day app development. From past conversations with colleagues …
Post
Making a "Send to 2Do" Safari bookmarklet
Drag the link below onto your Favorites Bar. The default click behaviour simulates navigation on the current page, and the destination URL is whatever you put after …