Why are major WordPress plugins not bothering to fix their numerous PHP 8.1 deprecation notices?

I’m an early adopter for a lot of things, but new versions of PHP are generally not one of them. PHP 8.1 wasn’t really on my radar until I set up a new server running Ubuntu Linux 22.04, where PHP 8.1 is the default version.

Yeah, I’m a commercial WordPress plugin developer too, but my business is small. It’s easy to understand me not being 100% on top of this.

What I do not understand is how huge WordPress plugins like Jetpack, WooCommerce and Wordfence can get away with not being on top of it.

The general response these developers are giving when questioned on this is, “they’re only deprecation notices, everything should still be working.” Which is true.

But.

Are you a developer? Do you ever need to turn debugging on? Have you seen what happens when you have multiple plugins active, each of which generates 5-10 PHP deprecation notices on every page when debugging is turned on?

Aside from making the site, and especially the WordPress backend, borderline-to-entirely unusable (which, honestly, is a bigger problem than what I’m about to say), it also makes normal debugging impossible. It’s hard to find real issues when you have to wade through more than a screen’s worth of irrelevant deprecation notices. And the sheer volume of the notices breaks page layouts to a point where it’s impossible even to know what is or isn’t broken.

I actually blame PHP for this. I don’t know what they were thinking with some of these changes that are triggering all of the deprecation notices. I know “real” programming languages aren’t as loosely typed and lenient with sloppy coding as PHP is, but… well, it’s kind of too late to put that genie back in the bottle. I haven’t bothered to investigate exactly what the rationale is for no longer allowing null input to string handling functions. What I do know is that there’s a ton of code out there, written by competent, experienced developers, that is now triggering these warnings, because until now it was always fine to equate null and an empty string.

Anyway, principled arguments aside, I have a more practical frustration to deal with right now… I’m finding it hard to do my work, because other people haven’t done theirs.

Dolby Atmos through MacBook Pro speakers: DO NOT WANT

What are your thoughts on Dolby Atmos?

More specifically: what are your thoughts on Apple Music automatically playing songs in Dolby Atmos through laptop speakers?

My MacBook Pro has pretty great speakers (for built-in laptop speakers). I’m sitting here listening to Talking Heads’ Fear of Music, and I could tell immediately that there was some kind of surround effect going on. It was very disorienting — it created a physical sensation in my ears and almost started to give me a headache. Then I realized I could turn it off and instantly everything went back to normal.

I’m not entirely sure what kind of dark magic Dolby is employing with this (I’m sure it has something to do with reversing the polarity of the stereo channels or something nerdy like that), but I don’t understand why it’s being foisted upon us. It reminds me of the trend about a decade ago of every movie being made in 3-D, and even 3-D TVs that no one wanted. Eventually they caught on to the “no one wanted” part and now it’s not much of a thing. I hope Dolby Atmos on streaming services follows in short order!

Related: Why Your Atmos Mix Will Sound Different On Apple Music

…And another update on Northern Daydream 3: Future Proof Past

My plans for this album project have ping-ponged around wildly in the 2 years since I first started planning Volume 3 of my Northern Daydream series.

Finally midway through 2022 things started to come into focus, with an emphasis on two vitally important but radically different jazz pianists who both hit their creative stride in the late 1960s and early 1970s: Herbie Hancock and Keith Jarrett.

But even as I began to see that this album needed to have a “Side H” and a “Side K,” I waffled on exactly which songs I wanted to cover, and how I wanted to approach them.

Finally, with yesterday’s accomplishment of “KJ3M” — a 10-minute suite featuring three distinct Keith Jarrett compositions, stitched together with three brief keyboard improvisations, inspired by Jarrett’s own concert style, the project has reached its conclusion.

I had not planned to record any of these three songs when I laid out the project. I hadn’t even heard any of them at that point, honestly. But once I did hear them, I knew I needed to make them the focal point of the conclusion of the project.

“Mortgage On My Soul” and “Common Mama” are an interesting pair. Both are built over a similar bass ostinato — in the same key, no less — and could actually be ripe for a mashup. But I decided that was not the right treatment. I wanted to show the ways the two are different, not the ways they are alike. (Whereas you might see the result of this project overall as showing the ways Jarrett and Hancock are similar even though on a surface level their styles are very different.)

“The Magician In You” kind of came out of left field. It immediately follows “Common Mama” on Jarrett’s 1972 album Expectations, and I really like the pairing. After spending several minutes in a harmonically static, groove-based mode, it’s very satisfying to bask in the rich harmonic textures of this rock/gospel ballad.

I played up the harmonic structure here in ways I kind of wish the original had done, although I know Keith Jarrett’s style, especially at that time, was to leave listeners with only the slightest hints of the true structure underneath, allowing improvisatory group interplay to constantly pull at the loose threads of more predictable musical forms. I don’t slight him for it at all, and yet the composition is just so good that I want to get absorbed in it and let it carry me away.

And this is part of why I’ve decided to wrap up this project here. I’m ready to take on new challenges, including attempting to create a big band arrangement of “The Magician In You” that builds on the elements I put into this version. So, this probably means I will step away from spending 18+ hours on a Saturday, twice a month, on an epic recording/video production session. For a while, anyway.

Here’s “KJ3M”:

And you can listen to — and watch — the entire album here.

Once I’m satisfied that the mixes for the album are final, I’ll post another update with download links. Stay tuned!

WordPress Dev Tip: The Events Calendar 4.6.4 breaks Advanced Custom Fields Select2 fields… here’s a fix

Suddenly, Advanced Custom Fields that use Select2 (any custom select dropdown, such as on Post Object fields) were broken. Testing plugins one-by-one narrowed it down to The Events Calendar. Apparently version 4.6.4 is loading Select2 and overriding ACF's own loading of Select2, breaking custom fields that use it.

I found a simple fix in the WordPress Support Forums. Then I encapsulated that fix in a barebones plugin you can download here.

A brief rant against “mobile” websites, and in praise of CSS3 media queries

This morning, as I do on most mornings, I eased the transition between my peaceful slumber and the mayhem of conscious life by lying in bed, catching up on the goings-on of humanity on planet Earth with the help of my iPhone and the Internet.

This usually consists of checking Twitter, Facebook, and my Google Reader feeds, but when that isn’t enough, I’ll occasionally search the web for whatever random piece of information crosses my stream of consciousness. Today that happened to be the Tim and Eric comedy tour that’s currently underway, since I’ll be seeing it when it arrives in Minneapolis on Wednesday. So I googled Chrimbus Tour review and one of the first links that came up was a review on BuddyTV.

BuddyTV is not a site I think of often. I believe I was vaguely aware of its existence before today, but I didn’t know what it was all about and I never had any inclination to visit it. But I was certainly happy and willing to click the Google link and read its review of the Chrimbus Tour.

Unfortunately, the site did not reciprocate that happy willingness. Instead of taking me to the desired review, it detected I was arriving via iPhone, so it shunted me off to an annoying splash page imploring me to download the BuddyTV iPhone app. No thanks, I really just want to read the article I came here for in the first place. Oh, great! You’ve provided an “Or continue to BuddyTV.com” link at the bottom. Thanks!

But — and this is so often the case in this scenario — that link did not helpfully take me to the article I wanted. (And as a web developer, I can tell you it is not at all difficult to make it do that.) Instead it just went to the BuddyTV home page. Now what? I’ll tell you now what: I closed Mobile Safari and got out of bed. Not only did I not download their app; I didn’t expose my eyeballs to any of the ads that pay for their website; I didn’t get to read the article I was interested in; and I was left with such a negative impression of the site that it drove me to this public rant.

All of this is not really to single out BuddyTV for its bad behavior, though. BuddyTV is just one site among many I’ve encountered over the past couple of years that all adhere to this same pattern of deplorably ill-conceived UX design. Surely this is not the reaction the owners of these sites hope to elicit. But it’s exactly what happens with me, every time, and I’m sure I’m not alone.

There is a solution.

We frequent users of web browsers on mobile devices just want to see your site. We want to see the same pages we’d see on our computer. The same content. But it doesn’t hurt to have that content optimized for the mobile browsing experience. Resized to the smaller screen. A streamlined layout that’s easier to navigate with a touchscreen. But, fundamentally, the same experience.

While there are some tools out there to help turn a regular website into a mobile website (most notably Mobify), there’s a far easier solution: CSS3 media queries.

CS-what media what now? CSS3 media queries are, simply, a set of stylesheet definitions that are applied to a web page selectively depending on certain characteristics of the media the page is being viewed on, most notably, screen size.

With CSS3 media queries, you can define an entirely separate set of stylesheet attributes to be applied only when the user is visiting the site from a small screen. Or an extra large screen. Or you can describe a bunch of intermediate sizes, so with the exact same HTML content the user will see a perfectly laid-out page, optimized to their screen, whether that’s an iPhone, a netbook, a “standard” computer monitor or a 30-inch Apple Cinema Display.

I’ve begun working more extensively with CSS3 media queries on some of my own projects lately, and I am very excited about the potential. If you’re a web developer or designer, you should learn about CSS3 media queries now. And if you’re a website owner, you should know that “mobile” sites are sooo 2008. Now you can have your cake and eat it too. You can have the best of both worlds. Insert cliché here. Just don’t subject your site visitors to any more obnoxious plugs for your iPhone app, or dump them thoughtlessly on your mobile home page with no way of tracking down the article they were coming for. It’s not fair to your users, it’s not fair to your public image, and if you’re supporting your site with ads — or, for that matter, if you’ve been convinced to drop a ton of extra cash on developing a separate mobile site, or an iPhone app that just displays your site’s content anyway — it’s costing you money.