Hyperduck

Hyperduck is one of my all-time favorite apps. It’s completely indispensable.

The way it works is simple. It’s both an iOS app and a macOS app. You leave it running on your Mac (in the background, unobtrusively and without any noticeable system impact). The iOS app adds an item to the link sharing menu: “Send to Mac”. Select it, and the link will be shared to your Mac.

So simple, and so effective. It works no matter where you are in the world relative to your Mac, regardless of whether your Mac is turned on, awake, connected to the internet, whatever. The next time you open up your computer, the link will be there. Or all the links, there’s no limit to how many times you can do this.

On the iOS end, it works anywhere you have a link to share. On the Mac end, you can use it with any browser. No AirDrop nonsense, no cloud tabs nonsense, it just works.

Yet another excellent and focused Sindre Sorhus utility. More questions answered and information shared in the FAQ.

Send to Mac option in iOS sharin panel

January 2026 · map[email:contact@catamounthardware.com name:Christopher Boone]

git diff: zdiff3

I’ve been using git since 2007 or so, when the pre-GitHub team started talking it up in the SF Ruby scene. (Oh man, icanhazRuby. That was a time.)

I’ve always found the merge conflict resolution text to be a bit confusing. Who’s us and who’s them? What exactly happened here? TIL that part of the problem is that, like a fool, I’ve left the merge.conflictstyle config setting on its default merge value.

For years now, the better choice has been diff3. That setting makes it so the merge conflict resolution text in your file includes the original text content along with the two conflicting versions. Thus you can at least see the context of the change, rather than trying to remember or guess what the changes were about in the first place.

Even better, since 2022 (git version 2.35), there’s been a third setting option: zdiff3. Which not only includes the original context of the changes, but pulls out overlapping, similar content from each of the changes. Thus reducing the amount of conflict you need to think about.

This all sounds a little abstract, I realize. The short version:

In your .gitconfig:

[merge]
  conflictstyle = zdiff3

For more detailed information (including nice visuals), see this post and the git docs.

Info

Recently I found this amusing interview Chris Wanstrath did with me and Danny Burkes in early 2007, well before any of us were using git. Note the CVS / SVN joke. Also, I retract my statement about Poison; Danny was right, Def Leppard rules.
January 2026 · map[email:contact@catamounthardware.com name:Christopher Boone]