Pop culture spoiled itself

I read this Vox article in the context of three recent viewing experiences Sara and I have had: Severance (season finale tonight… no spoilers!), Kenneth Branagh’s new version of Death on the Nile which we just watched the other day, and a completely different form of entertainment: cycling races.

We’ve been watching Severance as its episodes become available, so no spoilers are out there yet as we watch. The show very much is about shocking twists and cliffhangers, but our enjoyment of it is also about so much more than that — the Kubrickian cinematography, the nuanced acting by the first-rate cast, the deeper implications and social commentary in every passing moment of the story. Yes, we want — desperately — to know what Lumon is up to, but that’s not the only reason we watch.

We both already knew “whodunnit” going into the new Death on the Nile, and honestly I felt like you needed to know the story already to make sense of what was happening scene-to-scene, because this version is more than a little incoherent. Yet it didn’t seem like someone new to the story would even consider pointing the finger at anyone besides the actual perpetrators, right from the start, because its poor structure didn’t provide enough backstory to make anyone else a convincing suspect. Linette didn’t seem evil enough for anyone else to particularly want her dead. But despite these flaws, and actively criticizing it as it went, I was fully engaged the entire time. It was the most I’ve ever enjoyed watching a movie that I fundamentally disliked. Ultimately it was not “about” whodunnit, so maybe it truly was a movie for our times, in the vein of the Vox article.

Then there’s the cycling — clearly something where the end matters most, and can definitely be spoiled. And since we’re watching the replays several hours after the races end in Europe, my news feeds have already “spoiled” the winner. But I still enjoy watching them because it’s not just about who won. It’s about watching Tadej Pogačar boldly attack repeatedly on an insane climb, or Egan Bernal charging off into the mist on a mountaintop, or Caleb Ewen taking a spill on the tarmac with the finish line in sight, or Julian Alaphilippe wearing the maillot jaune for the entire Tour de France, only to lose it to Bernal on the penultimate stage when the race directors abruptly call an early end to the stage due to flash flooding on the other side of a mountain tunnel. Those are memorable moments that stick with me more than a mad sprint to the finish line, and what gets me excited about watching a bunch of lanky guys on bikes in the first place.

I think for the most part, Sara and I have definitely checked out of the pop culture world being talked about here. Partly it’s due to her vision; she just can’t track the fast movement and weird lighting in modern movies, especially superhero movies. But I’ve never cared about superheroes, whether it was comic books as a kid or the endless parade of giant “spectacle” blockbuster movies today.

We simply don’t pay any attention to any of that stuff. And it’s probably why, above exceptions aside, we are mostly these days either rewatching the grand trilogy of early 2000s NBC sitcoms (The Office, Parks and Recreation, and Community) for the dozenth time, or we’re watching BBC reality shows like Bake-Off or Escape to the Country. Hollywood just isn’t speaking to us anymore.

A slow-motion apocalypse

I could be talking about any number of current events with a title like that, but in this case I’m referring to last September’s “SSL Apocalypse” that came due to the expiration of an X3 root certificate used by Let’s Encrypt when connecting to really old client OSes. (Not that users think their computers/devices are really old, but in Internet terms, they are.)

Now, over six months later, I am still sporadically dealing with this issue. I was responding this morning to a client about the issue, and I wanted to email her a link to the blog post I remembered writing on the day it happened. But, maddeningly, I could not find it anywhere here.

That’s when I remembered, I actually have two blogs.

So, in a simultaneous act of self-promotion and, uh, self-reminding, here’s a link to that post on my other blog, on the site for my WordPress plugin ICS Calendar:

Unexpected Side Effects of the Let’s Encrypt Apocalypse

There we go. Now you know about ICS Calendar, and I won’t think I’m losing my mind when I come back here in another six months and can’t figure out where the heck this blog post went!

How to make the WooCommerce main shop page show featured products only in 2022

Sorry for the click-bait-y title (especially the “in 2022” part), but I searched fruitlessly for way too long and found too many woefully outdated answers to this. Ultimately what I found still wasn’t quite the complete answer, so I modified it a bit myself to arrive at the following.

The goal here is, as the title suggests, to get the WooCommerce main shop page to only show your featured products. Why this isn’t just a checkbox option in WooCommerce is beyond me. But then a lot of the decisions made by the WooCommerce dev team are beyond me. (Excuse me, Professor Brainiac, but I’ve built e-commerce platforms from scratch and, uh, I think I know how a proton accelerator… oh wait, never mind.)

Anyway, this is it:

add_action('woocommerce_product_query', function($query) {
    if (is_shop()) {
        $query->set('tax_query', array(array(
            'taxonomy' => 'product_visibility',
            'field' => 'name',
            'terms' => 'featured',
            'operator' => 'IN',
        )));
    }
});

What exactly is happening here? Well, as noted by the most helpful resource I found, since WooCommerce 3 (currently on 6.1.1), the “featured” status has been handled by the product_visibility taxonomy, and not by the _featured post meta field. So this needs a tax_query and not a meta_query.

Beyond that, we’re making an extra check that we’re on the shop main page — so this doesn’t affect category archive pages. And we’re using the woocommerce_product_query hook, not pre_get_posts as some other examples suggest, so it only runs on WooCommerce queries and we can skip adding extra conditionals for pre_get_posts to run on, you know, every single post query on every page of the site, including admin.

That’s all there is to it. Now your main WooCommerce shop page will only display featured products, and nothing else changes.

My thoughts on John Gruber’s thoughts on Neil Young’s thoughts on Joe Rogan’s thoughts (or lack thereof) on Spotify

Some great insights as usual from John Gruber on the Neil Young/Joe Rogan/Spotify situation. I’ve been really bothered about all of this, as a Spotify subscriber (and as someone who does have some of my own music available on Spotify, as insignificant as it is).

Getting Joe Rogan kicked off of Spotify would in no way hinder his freedom of speech. As Gruber notes, his audience shrank when he went exclusive to Spotify. What bothers me right now is that, as a Spotify customer, I am paying Joe Rogan to spout his lies and nonsense. If it’s more important to limit his reach, then keeping him Spotify-exclusive is good. If it’s more important that I not implicitly endorse his garbage with my wallet, then one of us has to go. (And it will surely be me.)

On another level, what really bothers me about this is that Spotify has exclusive “podcasts” at all. That’s not what a podcast is, technically speaking. A podcast is just a blog, an RSS feed, that has an audio (or video) file attached to it. That’s what Gruber means about Apple not “hosting” Steve Bannon’s podcast. Apple doesn’t literally host the files. Their directory just points you to the URL. Spotify owns Joe Rogan’s podcast. It’s not really a podcast at all, because it doesn’t exist outside of Spotify’s ecosystem.

So as I see it, Spotify is doubly wrong here: they’re platforming Joe Rogan, and they’re muddying the average person’s already muddy understanding of how all of this technology works. Boo.

And of course once again I have to end with this.

Google’s bad UX can even cause seasoned professionals to make novice mistakes

Today I did something that, when I realized what I had done, I metaphorically kicked myself over. It was so stupid. It reminded me of something I did at one of my earliest professional jobs… over 20 years ago.

I’ve been using email for nearly 30 years, and I’ve been a professional web developer for 25 of them. I know the difference between CC and BCC.

But today, when I was sending a mass email to a number of my clients, I made a critical mistake. I always handle these emails in the same way: I set the To field to a generic, non-existent email address on my own domain, and I put all of my clients’ email addresses — the real recipients — in the BCC field. That way, they all receive the email and, critically, they can’t see who else I sent it to.

Unfortunately, that’s not what happened today. Instead I unwittingly put all of their email addresses in the CC field. Sure, they still all received the email. But now they can also see who else received it, and, much worse, they can potentially hit Reply All and send their response to the entire list of recipients.

That’s not only embarrassing, but given the nature of the message, it could cause them to potentially blast some of my personal financial information out to a huge swath of my other clients.

Ugh.

I felt like a fool, and I nearly sent a second message (being sure to use BCC this time!) explaining my error… but then I realized that would just make me look like an even bigger fool, and the best thing to do was nothing, and just hope it goes away quietly. (So, of course, I’m writing a blog post about it.)

But the more I thought about it, the more I realized that the real culprit is Google’s bad UX design. For years I’ve been railing against Google’s “Material Design” or whatever they’re calling what they do these days. It’s too vague and unintuitive. Too much is hidden.

Good design should be obvious. Users should be able to see at a glance what they’re able to do with a piece of software. Of course in the early 2000s, Microsoft took that concept to an absurd extreme with the “Ribbon” in Office: a giant mosaic of every imaginable feature of the program, thrown together in a jumble of icons and text that would overwhelm anyone. Thankfully that approach has fallen by the wayside, but in its place is something arguably even worse: the illusion of simplicity, created by hiding so many features away that users probably don’t even know they exist, and then compounding the problem by stripping down the visual elements of the interface to such an extreme that it’s difficult to even know what’s clickable.

Such is the case with Gmail, something that should have a pretty simple interface, even with all features exposed.

I learned email back in college in the ’90s, using Eudora. Oh how I loved that program. Every mail client that has come since has been a downgrade, in my opinion. These days, practically speaking, my options are to use Apple’s Mail app, or Gmail’s web interface. For better or worse, I use Gmail. But in light of today’s debacle, I decided to do a comparison.

Since the days of Eudora, mail programs always had separate and distinct To, CC, and BCC fields, each on their own line. It made it very difficult to accidentally use the wrong field, and easy to tell if you were making a mistake. Apple Mail still does something very similar… with the modification that the BCC field is off by default, and you have to go to a menu to show it. Then it appears on its own line. All of which reinforces the deliberate choice of using BCC when you want it. All in all, it’s remarkably similar to what I remember from Eudora, but a bit cleaner.

In comparison, Gmail hides both of those fields by default, and the way to get one of them is to click the light gray text for the one you want, on the right side of the same line as the To field, right next to each other.

Oops! My cursor was a few pixels too far to the left — and since there’s no visible button, it’s not clear where exactly the clickable areas end — so I accidentally clicked CC without noticing.

And then, once you do click one of them, it appears on a new line, but again, if you’re moving quickly, as I regrettably was today, it was far too easy not to notice the mistake I had made. Since either CC or BCC doesn’t appear unless you’ve clicked it, you have to specifically look at the label on the left side of the line to know which one is on. That’s not possible in Mac Mail (or Eudora), where CC is always there, so BCC, if you’re using it, is always two lines below To.

The only way I realized what I had done today was when one of the clients replied to the email — thankfully he did not “reply all” — and I saw the “CC” dump of email addresses in my original email quoted at the bottom of his reply. Eek!

This is the current state of supposed “best practices” in UX design… flaws in things so basic, things that were already solved a generation ago, that someone who does this for a living makes novice mistakes.

Addendum, January 17, 2022: It gets worse. Over the past few days I have been working with some agency partners on a proposal for an RFP. There have been two glaring problems that have occurred as a direct result of Gmail’s interface quirks. First, I was waiting over the weekend for my partners to email me a link to their draft document. Late Friday, one of them emailed me a one-sentence message saying they’d send over the proposal on Saturday. I didn’t bother opening the email to read it, because I could read the entire thing in the preview. (This was in the Gmail app on my iPhone.) I waited Saturday and Sunday for another email from them, but I got none! Except, I did. But because Gmail only shows the first unread message in a thread, with no indication that there are more unread messages in the thread, I had no idea that they actually had sent another email until this morning, when I took the time to open the email on my desktop.

Then, to make matters worse, I was just preparing a new email to send them, with my latest draft, and as I entered their email addresses in the “To” field, Gmail suggested the RFP client as another recipient. No no no no no. It would have been far too easy, if I were in just slightly more of a hurry, for me to have accidentally clicked the client’s name, and sent them my draft of the proposal and the associated internal comments. Yikes. This wouldn’t be the first time its suggestions have led me astray… I’ve accidentally sent emails intended for the drummer in my band to a client, because they have the same first name and as soon as I started typing it, Gmail decided for me which person I was emailing and autocompleted the address.