With WWDC fast approaching, it’s the time of year when everyone poststheirhopes and dreams and predictions for Apple’s upcoming software release. There’s tons of great ideas out there, and I certainly have my own feature requests both as a developer and as a consumer, but I just want to write today about one that is especially irksome during this (US) holiday weekend.
Marketing push notifications.
The Memorial Day holiday weekend in the US is a popular time for friends and families to gather and cook a shared meal together. It’s sort of like another Thanksgiving at the beginning of Summer. And in the past three days I’ve received push notifications from pretty much every food delivery app on my device. Papa John’s, Uber Eats, Drizly, Pizza Hut, DoorDash – they’ve all sent me alerts saying basically the same thing: “Hey! Are you a lonely shut-in? Just don’t want to cook? Don’t forget that you can pay us an exorbitant delivery fee and we’ll give a suburban mom $0.60/mile to bring food to YOU!”
Look, I know I can turn off notifications for these apps. But when I actually do use them, getting an alert that my order has been received or is on its way is useful. I just don’t want all the rest of the marketing/growth bullshit. In fact, Apple agrees with me. The App Store Review Guidelines have this to say about push notifications:
4.5.3 Do not use Apple Services to spam, phish, or send unsolicited messages to customers, including Game Center, Push Notifications, etc.
and
4.5.4 Push Notifications must not be required for the app to function, and should not be used for advertising, promotions, or direct marketing purposes or to send sensitive personal or confidential information. Abuse of these services may result in revocation of your privileges.
The App Store is eleven years-old. Do I actually expect Apple to suddenly start enforcing their rules now, when they’ve been turning a blind eye towards growth-at-all-costs for so long? No, of course not. Just like mailing lists, mass push notifications obviously drive consumer spending. And with Apple hyper-focused on increasing services revenue to offset declining hardware purchases to appease Wall Street at the cost of degrading customer experience, they’re certainly not going to bring the ban-hammer.
But maybe there’s a middle ground.
I propose segmenting push notifications into two groups:
Alerts related to my account
Marketing and everything else
Let me enable/disable those in any combination.
While I unsubscribe from most company mailing lists, there are quite a few marketing emails I regularly get and look forward to. So I wouldn’t necessarily just mass opt-out of every marketing push notification. Just the ones that are noisy and truly irrelevant.
Will Apple actually do this? Hahahah. No. Of course not. That would take courage.
Today’s post is a bit more technical than what I’ve been writing about lately, but it’s also partly for my own reference to save me some googling when I forget everything again in the future.
I was always a big fan of Apple’s Back to My Mac service. I found it incredibly useful to be able to screen share with my Mac at home and access its files. (So useful, in fact, that I even built an app to extend the service’s functionality.) But Apple shut down the service in Mojave. And besides, with all my data now in the cloud it’s become less of an issue since there’s rarely ever a file that’s “only on my Mac” back at the house. I do still find the need to occasionally SSH into my LAN or screen share, though. And for the last few weeks I’ve been spending more time working outside the comforts of my home office. And it looks like that may continue for the foreseeable future – at least for a day or two a week.
So, this holiday weekend I decided it would be fun to finally get around to setting up some sort of permanent connection that would allow me to log in remotely.
For various boring reasons all the devices on my home network are behind two layers of NAT. Opening up a hole in my gateway’s firewall and forwarding a port or two would work, but that has always felt a bit icky to me – I don’t like the idea of some automated bot on the internet finding an open port on my network and just hammering away at it.
Luckily, from my time spent working remotely for Yahoo!, I got pretty good at the ins-and-outs of setting up SSH tunnels. And I happen to have a few web servers on the public internet with bandwidth to spare.
So, I added this to my ~/.ssh/config file:
With that in place, I can run ssh vpn, and a reverse SSH tunnel will be established between my Mac inside my network’s firewall and my remote web server. It will then forward ports 5900 and 9933 on the remote host back to my local Mac’s VNC and SSH daemons.
This means when I’m working remotely I can run ssh home on my laptop (or phone if I’ve got something like Prompt installed) and I’ll be SSH’d into my Mac at home. Further, I can then open up macOS’s Screen Sharing.app and connect to localhost:5901 to access my Mac’s desktop.
So, that all works great. The only issue is that if the SSH connection from my Mac at home to my web server is interrupted, the internet flakes out, or I restart that Mac, I’ll need a way of automatically reconnecting.
For the last few years, whenever I’ve needed to keep a job running on one of my web servers, I’ve used supervisord. It’s easy to install, flexible, and mostly straight-forward. Without giving it much thought I did a quick search to see if it’s available on macOS and – yep! – got it installed a minute later with Homebrew.
For reasons you’ll read about in a minute, I won’t go into the boring details of getting supervisord to launch automatically when macOS boots, or how to configure the program to launch and keep my SSH tunnel open. I’ll just say that after an hour of hitting my head on the desk, I was never able to get the tunnel to connect when my Mac restarted.
The supervisor program I setup would get stuck in a backoff state that would eventually fail after a number of retries and end up as fatal. I don’t fully understand why, but my best guess is that supervisord tried to launch the job before the network came online. SSH would, of course, fail and exit unsuccessfully. At which point it would get retried again, fail, repeat, etc. Again, I don’t know for sure – that’s just my best guess.
Instead, after taking a break to play with my kid and think things through, it dawned on me that I was making this all way too complicated. macOS already has everything I need built-in.
I fired up LaunchControl and two minutes later had a launchd job installed that opened the SSH tunnel on boot and kept relaunching it if it ever failed.
Practically, this meant that it immediately re-spawned the connection over and over at launch until the network came online and SSH connected. Once that happened, the connection typically remained open for hours if not days at a time. And in my testing, any time the network glitched out, launchd would keep restarting it until the internet was back up and a new connection was made.
Here’s the .plist for the launchd job that LaunchControl generated:
So now everything’s working. I can connect back to my Mac at home from wherever I am. Whether I’m on wifi or cellular, on my laptop or iPhone.
I’m also reminded how incredibly robust macOS is and to not reinvent the wheel so quickly. There are a million-and-one ways of automating your Mac. It’s best to turn to one of them before looking at third-party solutions.
Apple asked for feedback from developers today in an email survey. I try to keep this blog positive and restrict most of my snark to Twitter, but I figured I might as well post it here, too.
If you can’t see that image for some reason, here’s what I wrote:
I’m a long-time, independent Mac developer. I’ve traditionally sold directly to customers and, now, with the Mac App Store, still push customers to my website first. The value Apple provides with the store is simply not even near worth the 30% cut. When selling directly to customers, after credit card fees, etc. I pay around 8%. I’d be happy to give Apple (maybe) 15% for the (limited) exposure the App Store offers. But not more than that.
Also, in general, the Mac App Store is a kafkaesque hellscape full of scam artists that erode customers’ trust in the overall system and shitty apps that are nowhere near the level of quality that long-time Mac users expect from 3rd party software.
Add to that the arbitrariness of App Review, which seems more interested in penalizing legitimate developers for the most insignificant of reasons, while big name companies get away with flaunting the rules, and fly-by-night developers actively ship malicious, misleading, predatory, and outright-broken software. I have no idea what the point of App Review is if they’re not going to enforce the rules consistently and actually vet the apps in the store.
I absolutely love developing for Apple’s platforms, but if you weren’t the 800-pound gorilla in the industry, there’s absolutely no way in hell I would put up with the shit you throw at honest, hard-working developers trying to better your platform and earn a living.
Man, I miss Rdio. I mean, I really miss it. I loved that service.
When I was a teenager, I’d spend hours on the weekend and get lost in new and used music stores (CD’s) just digging through stacks of beautiful album artwork and unfamiliar band names. I’d talk with other customers and ask the clerk to let me sample a few tracks when something caught my eye. The joy was in the discovery as much as the actual purchase and listening that came later.
Rdio was the first streaming music service I used. It was like walking into an infinitely large music store. And it was all free! (Well, $10/month.) Their UI was wonderful. Websites today are walled gardens designed to keep you on the property for as long as possible. But Rdio, like the web of the late 90’s and early 2000’s, was overflowing with links leading through a maze designed to get lost in. Each album page – in addition to the artwork and song listing – had detailed info about the band, their other music, related artists, genres, etc. (The only similar mainstream experience I can think of today is when you fall down a Wikipedia rabbit hole.) And the majority of the pages had an in-depth critic’s take on the music in addition to listener submitted reviews that were generally well written and free of the awfulness we see in YouTube’s and Facebook’s comments section today.
What I’m trying to say is Rdio came very close to recreating the record store experience in digital form. Apple tried and failed with Ping and has since made additional social attempts inside Apple Music. I can’t really speak about what Spotify is like now. I was a subscriber for a few months after Rdio died, but it never really stuck for me – and Apple Music’s tight integration with Mac and iOS have kept me tied to their service instead.
So using Apple Music the last few years has been fine I guess. I can play what’s in my own collection (usually), and search their streaming library, but I find it extremely difficult to organically discover new music. It’s sort-of possible on the desktop with iTunes, but the iOS app (and I took a look just now to double-check) only shows “other albums by this artist.” The “For You” tab makes an attempt by showing other genres similar to what you already listen to, but I find their algorithmic recommendations lacking. And, again, if you do tap on one of the suggested albums, that’s about as far as you can go. You can’t further explore beyond that artist. And don’t even get me started on the “Browse” section or whatever the hell Beats 1 is doing. That’s a dumpster fire of shitty editorialized content that I can only assume is mass promoted by the record labels for the masses. (Yes, I might just be snobby and elitist about my music, but I really do have a lot of pop music in my collection that I enjoy. I just find most of Apple’s selections…shallow.)
Anyway, like I said, it’s fine. Not anything special, but fine.
But over the last few months I’ve made a conscious effort to start listening to more music again. I used to always have something playing in my bedroom, dorm, various apartments, and later houses. But I think once my kids were born, their needs and noise took over and music fell to the wayside. But now I’m using the wonderful Anesidora app to keep Pandora shuffling through songs in my office where I sit all day. I need to stay focused on my work, and having to think about and choose something to play takes me out of the zone. I like that I can just tell Pandora to play something it thinks I’ll enjoy and it will take care of the rest. It’s mindless and exactly what I want.
But Pandora typically only plays music I’ve already listened to and given a thumbs-up. It rarely surfaces new music. That’s what I still have to try and use Apple Music for. And I typically try and do that when I’m in the car.
Using your phone for anything while driving is stupid. So if I want to queue up some music, I have to do it when I’m still in the driveway or if I think I have time and it’s safe while stopped at a traffic light. But I need to be fast about it. And that’s where Marvis, Launch Center Pro, and Apple’s Shortcuts app come into play.
I discovered Marvis last month from Ryan Christoffel at MacStories. It’s a highly-customizable client for Apple Music. All of your songs, playlists, and the entire Apple Music catalog in a gorgeous, functional UI that you can design around your own needs. Here’s what my setup looks like:
I’ve got the Home screen organized so that I can tap and play my most listened to playlists and albums without scrolling or having to dig through Music.app’s tabs and navigation stacks.
Specifically, at the top I can start any music I’ve recently added to my library. I’ll often go on a music adding binge and add a ton of stuff at once then finally listen to it days or a week or so later. This section collects all those albums in one spot so I don’t forget to try something new that looked interesting to me.
Beneath that are three of Apple Music’s main auto-generate playlists. Again, I have one-tap access to my Favorites when I want to hear something familiar and New Music that Apple thinks I might like (which is often hit or miss).
Further down the screen is “New For You”, which is a stream of new releases from artists already in your library. I’ve wanted this feature in iTunes for years, and I’m thrilled Apple Music delivered.
Of note: I’ve used the display settings in Marvis to pack as much music into as small a space as possible. This puts as many tap targets within “thumb reach” as possible and minimizes any scrolling I need to do. Very important when that red light could turn green at any moment.
Next up, if I want even faster access to my most common playlists, I’ve created three shortcuts in Shortcuts.app to play Apple’s “New Music for You”, “Your Favorites”, and their top Alternative songs and added them to Launch Center Pro’s excellent Today widget. From my phone’s home screen, I can swipe left and tap to start playing.
And going a bit further with Shortcuts, I’ve added two as icons on my home screen:
“Play Album”, which starts playing the full album that the current song belongs to. This is super useful when I’m listening to a suggested music playlist and it plays a new artist I’d like to hear more of.
And “Bookmark Song”. This adds the current song to a playlist I made called “Bookmarks”. I treat it like an Instapaper for music that I can come back to later when I have time to explore.
So, that’s my music setup at the moment. I achingly miss Rdio but am trying to make the best of Apple Music by making it as easy as possible to listen to the music I love and explore the new songs it thinks I’ll enjoy.
I’m writing this blog post in Drafts.app on my Mac. But before I publish it, I’ll also probably do some light editing of it on my iPad before bed. And I’ve been capturing ideas, short thoughts, and building a basic outline on my phone over the past few days as things occur to me or I find myself with a bit of downtime.
I’ve been a heavy Drafts.app user on iOS for years. But this workflow is relatively new for me and came about with the release of its Mac counterpart two months ago.
Previously, for going on I don’t know how many years, all of my long-form writing, which typically means blog posts, has lived exclusively in MarsEdit. (Really long-form stuff like magazine articles and a few aborted attempts at writing a book are done in Scrivener.) The app syncs perfectly with WordPress and allows me to write in Markdown and preview my words in a live, pixel-perfect preview of my blog’s template.
But MarsEdit doesn’t sync between my desktop and laptop. And there’s no iOS counterpart for writing on-the-go. So that forced me to write the whole post from first draft to published version on the same machine. It also meant the outlines for my longer posts and short scribblings lived in other apps – sometimes OmniOutliner, other times Apple Notes, and occasionally OmniFocus and Drafts.app. I didn’t have a single unified workspace for all my thoughts.
Drafts for Mac has changed that. With seamless sync, I can begin writing anywhere I want, come to a stopping point, and pick back up later exactly where I left off on any device.
I couldn’t agree more. Looking through my Drafts Archive section, it’s now overflowing not just with short beginnings and snippets that got quickly shuttled off to other apps, but real writing. It’s my one place for everything in-progress as well as a history of final outcomes.
As for the specifics of my new blogging workflow, all of my posts are assigned a tag of blog. (It’s currently the only tag I use for anything.) Then, I have two custom Workspaces.
One called “Blog Posts” which only shows drafts tagged blog, defaults to Markdown syntax highlighting, and automatically switches to my Markdown helper keyboard on iOS.
And then there’s another workspace titled “Everything”. It doesn’t actually show everything. Rather, it’s everything that’s not tagged with blog. I’ve currently got about twenty unfinished posts in some form or another in my Inbox. I don’t want those clogging up and crowding all my other notes which tend to be more “action oriented”.
These two workspaces let me quickly switch between notes that I might need to do something with or reference and those that stick around longer and require a more focused, creative mood to tackle.
And as an added bonus, the Mac app can now show a live preview of your post rendered in your website’s theme, too – just like MarsEdit. (The iOS app has been able to do this for a while as well, but it doesn’t let you see the preview and edit text at the same time.)
Anyway, that’s all a long way of saying that I couldn’t be happier with this new setup. Drafts truly is where all of my text starts.
Last week I mentioned that I had been yelling about Apple a lot on here lately and was going to try and be more positive. But allow me one more thought before I shut up…
We went on vacation this past week. Before we left I updated my phone to iOS 12.3 – my wife remained on the previous version. (This is where you all collectively go “uh-oh”.)
Spent five days at a state park shooting tons of video of the kids swimming, hiking, fishing, playing with their grandparents, etc. Irreplaceable stuff.
Get home, back on WiFi, start uploading everything to iCloud and Google Photos. After an hour or two everything’s synced.
Problem: All videos, of any length, stutter, stall, and skip frames in both Photos.app (macOS) and Google Photos on every Mac I try. Completely unwatchable. Time to debug things.
I export the raw files out of Photos.app to Finder and try opening with QuickTime. Same problem. Next, I use Photos.app to import directly from my phone via USB. Still broken.
But they play fine on iOS, so I never noticed any problems while filming last week.
Investigate further. It’s only MY videos that are broken. Videos my wife took are fine. Remember: I’m on 12.3. She’s on whatever 12.2 release was before.
All those videos of my kids? Gone.
This is a core competency of iOS that should never, ever fucking break for any reason. Apple markets iPhone’s camera as a top selling point – if not THE selling point.
Lucky for me, I’m tech savvy enough to know about Image Capture.app buried inside macOS’s Utilities folder. So I give it one last try using that to transfer the corrupted videos manually off my phone and into Photos.app and Google Photos.
It works. My memories are safe.
But would a normal Apple customer have thought to try that? Would an Apple Genius have figured it out? (Assuming they could even get an appointment.)
No. They would have simply lost everything.
This is fucking inexcusable on Apple’s part. DO NOT fuck with me when it comes to my photo library.
Apple needs to get off their goddamned pedestal, stop hosting self-congratulatory Lady Gaga concerts, and fix their fucking QA process, years-old bugs, and keyboards.
On the bright side, while I may never be able to trust Apple again with my photos (or type vowels on their laptops), at least they’re about to roll out a new credit card and custom-branded television content.
I’m about four weeks in and already finding it incredibly useful in my day-to-day.
I’ve built many different apps over the years, thrown them against the wall, and excitedly watched which ones developed a following and which ones failed miserably.
Most of my apps have fallen into two categories. There are the ones that solve a personal need I face, that I can inform and direct with my own experiences. And there are those where I saw a market opportunity or just thought they might be fun to build.
Almost all of the ones in that second category have failed. Incoming!, Nottingham, Highwire. They each had their share of a few passionate and engaged users, but mostly were ignored. (The jury is still out on Triage.)
But that first category of apps? Those have flourished.
I was a web developer for ten years before I started building Mac apps. I know the industry well. And working at an agency meant I was juggling many different websites at once. I needed a faster/easier way to spin up local development environments, and that led to me creating VirtualHostX. Which, in turn, led to Hostbuddy and Hobo years later.
My core set of apps, as I think of them, found a wonderful niche among solo web designers and developers and the small companies they work for. And the apps have succeeded beyond my wildest dreams. From 2012 to 2014 they were my full time and only job.
But since their heyday in 2014, sales have steadily declined. A big part of that, I think, is because the world has moved on from the LAMP-based standards of 2004 – 2012. NGINX, NodeJS, etc. have led to a sea change. If it weren’t for WordPress’s continued dominance, I’m not sure if I’d have any more sales at all.
So, I’ve seen the writing on the wall for a few years now, and have been on the lookout for ways to branch out and diversify my app portfolio.
I’ve done some freelance jobs here and there, and tried a few newthings on my own, but nothing has taken off. And as I talked about earlier, I think a lot of that is due to none of those new ventures being true passion projects that I could bring my own experiences as a user with specific needs.
But four weeks ago I finally became fed-up with the awfulness of Mint.com. I know they’re able to provide a free service because they plaster the site with advertisements and sell my data, and I’d be ok with that if they weren’t so intrusive. But they’re taking over nearly the entire browser window now. Add to that the cumbersome Web 2.0 UI and lack of any real reporting capabilities, and I’d had enough.
What I really want is a fast, powerful, native Mac app that automatically imports my financial data and gives me the ability to slice, dice, filter, organize, and export my data in every possible way. The flexibility and power of an Excel sheet with the learning curve of iOS and the familiar paradigms of a real Mac app. Something that keeps me in control of my data, respects my privacy, and syncs to all my devices.
So I built it.
Most of it. It’s not done yet, but all the major pieces are in place, and I’m using it to track my family’s budget every day.
I’ve taken a heavy dose of inspiration from one of my favorites apps – OmniFocus – both from a UI perspective (a clean, modern, attractive Mac interface) and from the power they afford users over their data by way of custom perspectives.
My app is smart. It auto-categorizes your transactions. You can just let the app do its thing and everything will end up in the (mostly) appropriate place. Or you can categorize each transaction manually. Or you can setup smart rules to do it for you automatically. Whatever fits your workflow.
Each transaction can belong to a single category. But categories can be nested. With one click you can see all the dining out you did last month. Or just the fast food orders. Or just what you spent at McDonalds.
And then there are tags. Assign multiple tags to a transaction. Do it manually, or create a smart rule to assign them automatically. Then use the app’s powerful search feature to find any combination of AND / OR.
Take search further by combining tags with categories and date based filtering. Find every Uber ride tagged #business during the last quarter and export the results to a CSV you can send to your boss to get reimbursed. Snapped a picture of the receipt with your iPhone? Yep, you can attach files, too.
And once you’ve got that perfect search query and set of filters in place, save it as a new Report that you can recall at any time. Just like an OmniFocus perspective.
And, just for fun, why not view all of your transactions plotted on a map?
I’ve got all of this working (albeit without the necessary UI/UX polish) and it’s totally opened my eyes to some aspects of our financial situation that I’d overlooked. The last major piece is adding a budgeting component. I know the system I want to adhere to, but I’m still working through how it will fit in the interface.
Of course, I’m leaving out the iOS counterpart. But I’m saving that for later. The model layer is still a bit too much in flux. But I’ve written all the business logic to be platform agnostic. So the plan is to reimplement the appropriate features in UIKit (not everything the Mac app can do would make sense or be needed on a mobile device) and reuse as much of the existing codebase as possible.
But don’t forget syncing. As I said in my requirements, I want this app to be privacy-focused and have the user be in charge of their own data. So, no financial data will ever touch my server. Unless they enable syncing, no data will ever leave their device. But if they do want to sync, that’s all privately handled by CloudKit so I, the developer, can’t see their info even if I wanted to.
So, that’s it. That’s what I’ve built and am working towards completing. I have no idea when it will be ready. CloudKit could easily throw a big wrench into everything. And I’ve also got major updates to VirtualHostX and Hostbuddy underway and due out this Fall.
But I’m excited. It’s an app I’m passionate about and I have a clear direction and feature set in mind. It caters to a broader audience than my developer-focused products and could potentially save my tiny company if they continue to trend downwards.
Remember iTunes Match? It’s great. But Apple stopped promoting it (probably rightly so) a couple years ago when they realized they could make more money charging $10/month for Apple Music than Match’s $25/year.
Anyway, I loved it and still do. It uploads all of your digital music to Apple’s cloud and makes it streamable on all of your devices. And I mean all of it – especially your ripped mp3s, live albums, or anything else not in the iTunes Store. And if they can “match” any of those unofficial mp3s to a song from the store, they’ll “upgrade” you to the higher-quality AAC file for free. I had thousands of low quality mp3s ripped in the early 2000’s and late 90’s. Now they’re metadata tagged appropriately, with artwork, and sound better.
When I first joined iTunes Match (seven?) years ago, I uploaded all my music, made a backup of my local library, deleted everything, and just streamed from then on to save hard drive space.
As I acquired new music, it went to Apple’s cloud, but I never got around to backing it up offline.
As I’ve been writing about this month, I’m re-evaluating my backups strategy. This week I got around to looking at my music collection and decided it was time to retire that old external drive and put everything in B2 – around 300GB.
Knowing that drive was out of date, I figured I’d just download a fresh, complete copy from Apple.
I selected everything in iTunes, and clicked the download button. And waited.
The next morning I found my nearly 25,000 tracks stored locally – and a ton of errors.
Out of the 25,000, nearly 1,500 had failed to download and reported all sorts of various network errors.
I made a quick smart playlist showing all songs in the cloud but not available locally. This made it easy to isolate the problem items.
I tried downloading all the missing songs, but each one failed again. So I tried downloading a few individually with no luck. You can see where this is going.
After much testing and troubleshooting these 1,500 songs (all from various albums, some from ripped CD’s, some purchased from the iTunes Store) are seemingly gone.
It’s not the end of the world. If I really want some of them, I’m sure I could just re-purchase or stream from Apple Music. But others, especially some amazing live albums I collected in college are gone.
So I uploaded what I had to B2. And then made a csv export of the playlist of missing songs for good measure.
And while I love and take advantage of the cloud’s convenience, this is why I don’t trust my data to be in only one place. It’s my fault for not backing up this part of my data if it was important to me. It’s the first real data loss I’ve experienced in years – maybe since 2010. Maybe it’s just a bug that Apple will eventually fix.
I’ve been hosting my company‘s email with FastMail since 2008. They’re amazing. But my personal email had been with Gmail since the service was in beta in 2004. (And everything before Gmail lost to time and bit rot. Sigh.)
Around five years ago, I started getting nervous with so much of my online identity tied to an address that I was essentially borrowing and had no real control over. I was never worried about Google losing any of my data, but I had heard countless horror stories of Google’s AI flagging an account for some type of violation and locking out the user with no recourse.
If I ever lost access to my primary email account, I’d be dead.
So I began the rather annoying process of moving all of my online accounts over to use a new address at a domain I control. FastMail imported everything from my old Gmail and Google Calendar account, and with the help of 1Password, I was able to methodically switch my email everywhere else over the course of a few weeks.
I’ve been using my new address full-time for the last five years and now get only two or three non-spam emails a month to my old Gmail account.
Soon after switching emails, I began to question my other dependencies on Google. Along with Facebook, I started worrying about all the data they were collecting on me. I was also concerned about how I was playing a part in their monopoly over the web as a whole.
So I switched to using Duck.com as my full-time search engine. And I gave up Chrome in favor of Firefox. I even tried using Apple Maps as much as possible. In short, even if the alternative service wasn’t on par with their bigger competitor, I felt it was worthwhile to give them my support to encourage a more balanced ecosystem.
The switch mostly went well. I felt like the search results I got with Duck.com were good enough. I only had to fall back to Google for the occasional technical query. Firefox also made great strides with its support for macOS during that time with their Quantum project. And Apple Maps, despite all the awful reviews online, worked just fine navigating around Nashville for me.
But over the last year I’ve started, slowly, coming back to Google’s services.
It all started with Google Photos. I (mostly with the help of my own backup strategies) trust iCloud with my family’s photo archives. But Apple just makes it too inconvenient to use with a partner. Because of the way iCloud is siloed per user, my library is completely walled off from my wife’s. That means I can’t see photos of my kids that she takes. And she can’t see mine. Google Photos supports connecting your library with another person’s. (While that’s a super useful feature, we don’t do that. For our workflow, it’s easier just to sign into my Google account in Google Photos on my wife’s phone so everything funnels into one primary account.)
And while Apple’s Photos.app AI-powered search is mostly-good, it’s limited by their privacy stance and what they can process on-device. And the result is that it can’t even begin to compete with the ways I’m able to slice, dice, sort, and organize my photos with Google.
Is Google using the faces and location data in my photos to train their robot overlords? Most definitely. Do I care? Yes. But is it enough to outweigh the benefits I get from their otherwise amazing offering that I pay $10/month for? For me, no.
Added to that is the degradation in quality I’ve seen in Duck.com’s search results since last year. I’m not sure what changed under-the-hood, but I found myself having to search a second time in Google way more frequently to the point where I just gave up and made Google my default choice in January.
I’ve been a paying customer of Dropbox since 2008 (or 2009?). But because of the $10/month I was paying Google for extra photo storage space (2TB) (which I get to share with my wife’s Google account), and the $10/month I pay for extra iCloud storage (which I also get to share with my wife), it just didn’t make sense to keep paying for Dropbox as well when I could use Drive instead. And you know what? After using Drive for the last six months I’ve found that it’s really quite nice. Especially with the added benefits of everything integrating with Docs and Spreadsheets and their very capable (but decidedly non-iOS and ugly!) mobile apps.
Further, although not really that important, I’ve also migrated my calendars from FastMail back to Google Calendar simply because every other service in the world that wants to integrate with my calendar data (and that I want to give permission to) supports Google’s protocol but not standard CalDAV. It’s a shame, but I’ve decided to make my life easier and just go with it than wall myself off by taking a principled stand for open data.
What does this all mean?
I still use Firefox. I stick with Apple Maps when possible. But I’ve slowly moved back to Google’s services in cases where they’re so far ahead of the competition I just can’t help it, which has created a bit of a halo-effect with their complimentary services.
And in a most-decidedly un-Googly turn of events, customers of their Google One extra-storage plans can now talk to a Real Live Human if something goes wrong. That gives me much more confidence in my precious data’s longevity with them, which is what drove me away from Gmail in the first place.
Dammit, Google. I don’t trust you. But I can’t quit you, either.
A couple weeks ago I wrote about how I was automatically capturing the photos and videos my kids’ daycare emails to me and importing them into Photos.app. The major pieces of that script worked fine – parsing the emails, downloading the images, and then rsync’ing them down to my Mac every hour.
But what was failing was the Finder Folder Action I setup that was supposed to import the files into Photos.app whenever new ones were added to that folder.
For some reason, the Folder Action would only occasionally fire. Maybe for one out of every ten items. Sometimes, if I navigated to the folder in the Finder, the action would kick-in and import everything. But sometimes not.
All I can think is that because the files were being added to the folder via rsync – using some BSD-like filesystem APIs instead of the higher-level macOS ones – the Folder Action was never being triggered. Again, it occasionally worked, but mostly failed. So I could be entirely wrong about all of this.
Anyway, I rewrote the whole thing to just run an AppleScript every hour via cron, which handles the whole process itself. Since making that change it’s been working perfectly.