Receipts

Ten months ago I drafted a post about how incredible the Apple ecosystem is when all the pieces fit together. It was a month into the pandemic and I found myself walking through a real-life Apple commercial in the grocery store.

I was a bit stunned when I got back to my car and it sorta hit me just how well the entire end-to-end experience worked. As a lifelong adherent of the positive influence and power that well made software and hardware can have over our lives, I was taken aback.

And so while I was planning on finishing my thank-you post to Apple this weekend, that’s not going to happen.

Instead, let’s talk about receipts.

Continue reading

Ow, My Back

We officially went into quarantine on March 22. One hot afternoon in June, I found myself in the garage with a pair of shears, a screwdriver, and a hammer so I could cut an inch of leather off my belt and punch a new hole.

All in all, I had lost twenty pounds by doing nothing.

But did I feel better? Not at all. By May, I was hurting. The next month I was in pain. That summer was nothing but agony from muscle and skeletal pain.

This post is all the fun, nerdy details that went into making my home and work offices more comfortable. It was a bit of self-preservation mixed with stress-shopping. But if you want the TL;DR, I can sum it up with two words:

Stop. Sitting.

Continue reading

Digital Heirlooms

If you’ve followed this blog for any length of time, you’ll find that I take preserving our (my family’s) digital memories and history seriously.

However, if I were to die tomorrow, the app I made for my son and installed on his iPad this morning will stop working in one-hundred and ninety-two days. Not for any technical reason. Not because of future software incompatibilities. If his iPad remained in working order for another hundred years, it wouldn’t even matter. This digital heirloom will self-destruct as soon as my developer certificate expires.

And it’s all due to an arbitrary decision on Apple’s part.

I don’t think I’m being hyperbolic when I say that future historians and even archaeologists are going to revisit our time and be furious at the direction our industry turned towards using consolidation, monopoly power, and artificial restrictions to protect profits at all costs.

Continue reading

Shelley

I’ve written previously about using Hazel on macOS to react to a new file appearing in a synced iCloud Drive folder and running commands. But I wanted a faster solution that I could trigger from almost anywhere – including an iOS Shortcut. A way to send a command directly from my phone (or maybe any other device?) to my Mac.

What I came up with is a tiny, macOS menu bar app I call Shelley – because as a friend told me, it’s a Frankenstein of a hack.

Continue reading

Process

To keep myself sane while dealing with my work deadlines, I’ve found myself tinkering around with an idea I’ve wanted to try building for years now. Oddly enough, it’s not yet-another-app, but a website (web service, maybe?). And it’s actually something that’s designed to be self-hosted. I haven’t yet decided if it will (eventually) be open source, or if I might solicit feedback from friends (real and online) just in case it’s more useful than I think.

Sometimes the idea for something new comes in a flash of inspiration. And other times (as in the current case) it meanders around in the back of my head for years – just waiting for the right moment or combination of external factors.

For this project, it’s the result of the rebirth of the indie web movement, my long time interest in self-hosting and owning the tools and data I run my business with, and Apple’s WWDC announcements about Safari and their OS’s upcoming privacy improvements.

Continue reading

Fear and Light

It’s remained that way because I’ve been afraid.

Always, always in the pit of my stomach, deep down in the back of my lizard brain, there’s this nagging voice when it comes to the low-level work, the real work, the type of code that real developers write

You’re not good enough. You can’t make it work. You’re not smart enough to figure it out.

So I keep punting on the work. I keep pushing that bug fix further and further out and just hope that my code keeps working and that a random macOS point release doesn’t bring it all crashing down.

But two nights ago I sat down in my office. And just fucking did it. I told myself “no” was not an acceptable answer and dove into every arcane, unmaintained bit of Apple documentation I could find. Searched old Cocoa mailing lists for sample code, and finally, finally have a working solution.

After thirteen, years I finally got past my own shit and mental demons and made it happen. I guess I was just fed up with myself constantly ducking out of doing the hard work. That, plus a looming deadline I have to meet, finally held my feet to the fire on this particular feature in a way that has never been done before. So many features. So many bug fixes. Thousands of customer emails and replies. Brainstorming sessions. UI mockups on the back up napkins at bars or doodling on a notepad while at my real job. But this one damn bug was always out of reach. And now it’s done.

To my future self ten years from now: this post is for you.

Continue reading