The Day After

“I smell smoke” is the worst First Thought Upon Waking. Close behind it (for me, at least) is “I recall having a Clever Idea at about 2 AM last night…and that I implemented it right away.”

When that’s Thought #1, Thought #2 is “What the hell sort of disaster awaits me” and then “None of this becomes real if I stay in bed.”

It’s now noon the next day and (well I’ll be damned) the Good Idea I had at 2 AM last night continues to seem like a good idea, even after a solid nine hours of sleep and a light breakfast. That’s highly unusual for any 2 AM Idea of mine. This one was about fixing this blog’s backend. I’ve had loads of ideas on that at all hours of the day and night for years. None of them have ever paid off. Can you blame me for being skeptical?

Y’see, my dream goal has always been for the machinery of the site to be as good as “Catwoman” as written and drawn by Darwyn Cooke. My realistic goal is “Catwoman” as portrayed by Michelle Pfeiffer in “Batman Returns.” But the outcome has always been the 2004 “Catwoman’ film with Halle Berry and Sharon Stone.

I thought I’d elaborate on it, for your and for Future Andy’s edification.

The problem was that I couldn’t get the site’s design or features dialed in just right. Its appearance alone was eating up almost all of the problem-solving energy I’d allocated for my blog. A WordPress site’s appearance is defined by its Theme, which is a combination of HTML, CSS, PHP, and other kinds of code. When I coded everything up myself, the blog looked right but lacked the muscular resilience that every modern blog needs (such as supporting any combination of device and browser). When I used a third-party theme, the blog was fully responsive to all kinds of screens but customizing the theme to my tastes and needs was like walking on red-hot Lego bricks in bare feet.

(And when I say “customizing” I don’t mean “Applying a signature aesthetic and identity.” I mean simply “getting rid of the things I absolutely despise.” Despise, and ultimately even resent. Even when it was part of an incredible WordPress framework that I’d paid $100 for, no amount of my work or customer support’s customer support could remove the empty white box under the title of a post, which is where the theme desperately wanted to put an author avatar.)

Consequently, I wasn’t posting here at all. I used to blog regularly! I loved it! But the blog had become like an old car that just barely can pass its state inspection. This is another subject of which I am quite familiar. Driving the car isn’t fun because your mind comes to associate “being in the car” with “being stranded by the side of the road, waiting for the engine to cool down enough that you can temporarily seal a coolant leak with silicone tape.” I still had ideas for blog posts on a regular basis. But I could count on getting distracted or discouraged along the way by thinking about the site’s engine.

Yesterday I had a critical moment of clarity. It came in the form of a piece of life wisdom that’s gotten me through many, many challenges in every conceivable area of life:

“Take a step back and ask ‘What is my actual goal here? How would I define a Win?”

– Me, writing to myself.

How many times have you been at an airport and witnessed somebody (who, admittedly, is having a bad day and is not at his or her best) getting super into an argument with an attendant at the check-in counter? They’re wasting all of their emotional and intellectual resources on trying to win the argument. But that’s not why they went to the airport, is it? Their goal is to get to Denver in time for the Box Apricot Juice Festival.

Once I realigned myself and reaffirmed that my Goal was just to self-publish stuff to a blog that looked good and was accessible to as many people as possible, I could erase about thirty stubborn problems from the project whiteboard. They were no longer relevant.

Every time WordPress releases a major upgrade to the platform, they release a new, up-to-date default theme named after the year of release. I had been on “Twenty Nineteen.” This new theme showed off WordPress’ new prowess at modular page design. I replaced it with Twenty Seventeen. Then Twenty Sixteen. I kept going backwards like that until the live preview showed me a version of this blog that mostly looked like I wanted it to look, and had nothing that I hated or even “thought I could get used to” or “could probably fix by creating a daughter theme based on the parent.”

(“Twenty Twelve.” Oh, by the way: themes are indeed huge collections of code, not just design layouts. It’s important to note that although Twenty Twelve’s appearance hasn’t changed since the first “Avengers” movie had its first release, its code has been updated and modernized regularly.)

Next, I deleted every WordPress plugin that wasn’t absolutely required for running a basic blog. My server was littered with active and deactivated plugins, like rusted and busted tanks and cannon on a field of battle where the fighting never ends. I’d installed many of them after a (cringe) 2 AM Good Idea. A third-party theme refused to let me change the spacing between paragraphs via changes to CSS, but this plugin I found on Github says it can override anything…really? OMG that would be awesome if it worked…

I even deleted a default menu that had been in place since nearly the beginning. It took me ten minutes to replace it with a simple bar of links to my podcasts and online presences.

The only thing I kept (apart from my decade-old WordPress database of blog posts) was the masthead. I should scale it down. Eventually.

After going on a half-hour-long Marie Kondo/Incredible Hulk mashup-style rampage of deletion and destruction, I was left with a nice blog that lets me focus on creating, not fixing or administrating.

Huh.

I wish I hadn’t wasted ten years of effort, but we can only walk from where we stand. I’m happy that I can finally put this one in the Win column.

I’ll close with some Tech Columnist-style big-picture beard-stroking.

(Fetches a humidor from a shelf above his desk. Removes a strap-on beard that he bought for exactly this purpose. Straps it on, adjusts it with little care.)

The fact that I’ve been blogging “since before there was a word for it,” as I like to say, was one of my biggest handicaps in this process. I published my earliest blog posts by hand-coding HTML files. When I caught the fever, I wrote a fairly sophisticated client-side blogging and publishing app all by myself. Sure, I was aware that the technology behind a website in 1998 and one in 2019 is as different as starting a fire by banging two rocks together and doing it by just forgetting to send your Galaxy Note 7 back to Samsung after the recall notice.

But I still saw Ihnatko.com as a server directory where code and content files lived. I understood code and content. I’d knew I’d have to learn some new stuff (like PHP), but it seemed like the core concept was the same.

Wrong, wrong, wrong. A modern website is too complicated an organism to be raised and bred by a lone amateur. No matter how geeky. The education and experience of a professional web developer is required.

Why?

  • As always, the value of a professional is most apparent in a chaotic situation, not a routine one. And chaos is the cartilege that holds a website together. I learned how CSS styles are supposed to work. But learning how CSS works in actual practice requires years of daily experience (and drinking regularly with a community of fellow web developers).
  • The code that makes a website run is too complicated for anybody to understand how it all works together as a unit. I believe that even the pros categorize each of a site’s code elements as either “something I completely understand” (usually: something they wrote themselves), “something I don’t understand, but I trust it because even when it fails it does so in a predictable way,” and “something I don’t understand and don’t trust at all, but the site can’t function without it.” It’s almost impossible to trace the movement of a bug throughout the entire ecosystem of code. At the very least, it isn’t the most practical solution. So things get patched instead of fixed, amping up the chaos further.
  • In 2019, a website has to do way, wayyyyyyy more than just serve content. It’s an app platform, even if the only app I choose to run is the one that displays the 742 words I just wrote about why nectarines should be a different color. At a minimum, I still need to worry about Bad People trying to exploit my WordPress install for selfish purposes that have nothing to do with fresh fruit troubleshooting at all. Protecting a server from malicious code that adds it to a botnet, mines bitcoin, or stuffs its database with URLs to game Google Search isn’t for amateurs. It’s one of the reasons why I closed commenting.
  • Web tech moves so quickly that “best solutions” and “best practices” are hard to identify. Good luck to you if you aren’t a working pro, and staying up to date on these things isn’t part of your daily duties. You’ll find yourself implementing a workaround from 2016, instead of the Solution that everybody started using in 2018.

As discouraging as all of the above might already seem, keep in mind that I’m just describing a simple blog. As WordPress and my understanding of its power grew, I began to play with a lot of ambitious ideas. What if instead of setting up a simple continuation of my blog, I went bigger? What if the purpose of Ihnatko.com were to increase my influence and international reknown to that of an Iron Chef?

Okay, you’re right, that’s presumptuous and insane. But writing and selling ebooks isn’t a nutty idea, and if my online presence functions as a marketing tool that creates new opportunities, wouldn’t that be a good thing?

It sure would! But each of these goals adds complexity, instability, and new maintenance issues.

What I’m driving at — no pun intended — is that the fact that even though I was rather good at repairing my very first car, if I bought a new car today I wouldn’t dream of trying to fix it myself. My first car was already more than ten years old when it was handed down to me in the mid-Eighties. I knew that it wouldn’t run without spark, gas, or air and I knew how each one of those things moved throughout the system.

I can let myself get nostalgic for the days when my site ran on a bulletproof Chrysler Slant Six engine. But self-hosting a modern website with high expectations isn’t realistic. I have to either focus the site on a single goal that I can easily manage on my own, move the site to a service that does all of the management for me, or hire a pro.

I’m too cheap to hire someone who knows what they’re doing and I’m too lazy to move Ihnatko.com to a new host. Thus, my path to victory was clearly marked.