Surtainly Not

Eighteen hours later, I’m here to write about the dumb, little toy of an app I made this morning just for Big Sur. I honestly don’t expect other people to use it. I’m not even sure if I’ll keep using it. It was more of a “I hate this. I wonder if I can fix it?” type of thing.

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.

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.

JavaScript – A Bedtime Story

It all started with a nightlight that looked like a snowman and ended up taking 89 lines of JavaScript to make my kids go to sleep.

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.

April 5, 2020

And when the other side is reached, I hope we can look back on the things we did and how we were feeling in this moment and learn from that.

The Stack View is a Liar

…Firing up Xcode’s wonderful view debugger, however, completely blew my mind and shattered any remaining self-confidence I had as an app developer. And then nearly an hour later I’m really questioning everything I thought I knew about ones and zeroes until a google search leads me to this page. And, sure enough, my bug is spelled out right there.

My Family’s Photo and Video Library Backup Strategy in 2020 – Plus a Fun Anecdote I’ve Never Told Before

Two of the topics I’ve written about the most on this blog are backing up your data and photography – not professional, artsy photography, but more in the sense of your family’s photo and home video library. I’m a huge nerd for these topics. Part of the reason for that is my own obsessive personality traits, but also because of my affinity for nostalgia and history. My life, to a certain degree, is documented through the literal data I’ve created over the years. And the lives of the people I love are likewise documented through the digital archives I keep. So when those two topics intersect, holy cow do I ever proudly fly my geek flag.

Deactivated

I’m filled with rage and despair and also just sad thinking about what we in the tech industry unintentionally unleashed upon the world – and then willfully made worse through greed and arrogance. This is my small contribution to make things better. It likely won’t matter. But it does give me some relief to have done something. Anything.