I’m thankful for git for many reasons, like fast commits, offline history browsing, and cheap branching. But one complaint I have is the illogical naming and arguments of git commands. I’ve long kept a list of useful but hard to remember commands in a...
One of our most frequent tasks as programmers is assigning names. It’s hard to go an hour without coming up with a name for a class, a method, or a variable. But naming things is hard for at least two reasons: The exact purpose of an item might be not be clear...
Release after release, Apple raises the bar on its requirements for inclusion in its app store. Sometimes these are welcome technical changes, like explicit user permission to access contacts. Other times they feel more like hurdles for app developers and users to...
Caches in WebKit are tenacious. That’s problematic in an app that uses an embedded WebKit view when you’re trying to load your latest JavaScript or CSS changes without restarting the application. Chrome and Safari both provide developer tools for clearing...
Large hard drives and spare CPU cycles have made running multiple virtual machines off your MacBook feasible, and VirtualBox + Linux have made it free. But actually setting up a VM for each development project always seemed like a bit too much trouble – until I met...