Tag Archives: blog

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.


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.


  • 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.

Starting over again, one more time

Longtime fans of my blog will react to this post with the same excitement as the crowd at a Paul McCartney concert when he sings the first two words of “Hey, Jude.” “I’m trying to figure out a new scheme for this blog” is one of Ihnatko.com’s all-time greatest hits. Oh, sure, I get more excited about performing my newer stuff. But then I see all of you swaying together and singing all of the words and I’m right there with you.

If you were dragged here by a life partner or a school friend, here’s some background. I launched this blog in the Nineties (before “blog” was even a word, and long before there was software for publishing one. So I wrote my own. Eventually, WordPress came into being. I switched to WordPress in about 2005. By 2006, the blog looked and worked about 90% like how I dreamed. I’ve been working on it ever since. I think it’s now at, like, 92%.

I could be wrong. The CSS style selector for that number keeps rendering it in white on a white background, 744 pixels outside of the window’s visible canvas area. I’ve no idea why and every time I think I’ve figured out how to target the style correctly in the site’s WordPress theme, another style sheet somewhere else overrides my changes.

I don’t regret moving to WordPress, of course! My own code ran the site just fine throughout the Clinton administration but by the Bush era I needed something better. And I sure know a lot more about servers and webapps and security than I ever would have if I were just studying that stuff academically instead of getting my hands greasy.

It’s just that I sure haven’t been doing very much actual posting in the past few years. Don’t blame WordPress. Blame me for wanting my site to look and function the way I wanted it to. And then maybe blame WordPress for making that so bloody difficult. There’s still room on the Blame Bus for the publishing industry, which doesn’t pay me nearly enough to just throw a couple of bricks of simoleons at actual web developers and designers who could do the job for me.

Lord knows I’ve kept trying. I’ve had lots of Great Ideas of how a certain new framework or a specific set of plugins might please dear God put an end to the journey.

Well! Good news, everyone: I had a whole new idea on how to approach the problem!

It’s simple and elegant. Like the long-sought proof for computer science’s “sensitivity” conjecture, it can even be expressed in the space of a single Tweet:

“Andy pretty much gives up on his ambitions and settles for just having a blog again.”

Yeah. I really want to blog regularly again. So I’ve metaphorically ripped out the section of my brain that’s aware of WordPress’ potential. I’ve also somewhat less than metaphorically ripped out every last plugin that WordPress doesn’t absolutely require, and downgraded the site’s theme package to whatever was Stock WordPress in 2012.

Ihnatko.com is now, in function and appearance, not very different from what it was when The Fresh Prince Of Bel-Air was still on the air.

But though it’s lost a lot of style and ambition, the blog now has at least one aspect that I’ve been unsuccessfully chasing for more than ten years: there’s nothing about the design that I hate. When I’m inspired to create a new post, I can write a new post. In the blog’s previous incarnations, I would open the admin page and my trackpad’s pointer would find its way to the code editor because GOD DAMN IT if I’ve told this theme not to attach an author photo why the BLOODY HELL does it still add ten square inches of white space for the spot where the photo would have gone?!? And the idea I had for a blog post is cast to the land of ghosts and winds.

Let’s keep our fingers crossed that the synapses leading to the Caring About Anything But Creating Content centers of my brain remain resolutely cauterized. I’m optimistic because holy cats does it stink in here.

On to the new stuff. After I open a window.

Toward a formal comments policy

It’s true that I enabled comments on this blog by accident a couple of months ago. But I kept them up because everybody seems to be playing nice. And: I had always envied how Roger Ebert had built a community of polite, but no less passionate, discourse on RogerEbert.com. I thought I’d keep comments going until I ran into a great reason to shut ‘em down.

I guess this experiment got its first real test this week! A blog post about immigration is always going to inspire good debate, and then the post got Fireballed, bringing in tons of new folks. Whee!

But overall, I’m pleased with everybody’s behavior. I did unapprove a couple of comments today, and none of them were actually all that bad; as such, I had to think hard before clicking them off.

I’m going to write a static page with my commenting policy. Until I do, I thought it’d be helpful to quickly write an alpha version:

  1. I am an enormous fan of free speech. I’m such a big fan of it, in fact, that I purchased the exclusive rights to it on this blog. So I’m going to approve, unapprove, or disable comments in a post as I see fit.
  2. Comments that seem to be directed at specific readers attract my full and most cautious attention. I want to avoid ad hominem stuff, so if I’m worried that a comment seems to be directed against a person as opposed to the comments they’ve made, I’ll err on the side of keeping the discussions at room temperature.
  3. As a visitor to other sites, I get bored when I see a comment thread that’s dominated by two readers arguing with each other. I’m inclined to cut off those back-and-forths after a couple of exchanges, unless the exchange of ideas seems to be deepening the conversation.
  4. If I’m on the fence about keeping a comment visible, the fact that you used a real email address will tip the scales. A real name is another big plus, but I appreciate that some people choose anonymity on the Web to maintain their personal safety and other good reasons.
  5. Try to keep the language PG-rated.

That’ll do it for now. Keeping comments on adds another item to my daily to-do list — at minimum, I need to nuke spam comments — but it’s well worth it if people feel like I’ll have their backs if they speak their minds and treat others with dignity and respect.


Welcome to another thrilling episode of The Blog About Developing A Blog. Special “I think I’ve got this licked, no really, I think I’ve got it” edition.

As you can see: the Celestial Waste of Bandwidth has a new theme. It’s in progress, but I like it a lot and it represents something worth writing about.

When last we talked about The Making Of The Site, I waxed emphatically about just flat-out robbing my friend Jason Snell blind. His Sixcolors blog was, and remains, an inspiration. It’s just so clean and friendly!

Now armed with a clear direction, I spent the remainder of the winter scheming to hire someone to do some WordPress building. The idea was to hire someone to take a basic theme or framework and turn it into the new CWOB by doing all of the CSS, PHP, and HTML mods to the theme that (collectively) sap my will to somethingorother.

Continue reading