March 7, 2023

So I have to admit, four years is far too long between meaningful posts (I don’t count my nearly wordless mid-pandemic rant two years ago). Why have I been so quiet, you ask? Well, that’s complicated, and frankly, not at all interesting.

Bottom line: I’ve been uninspired, and extremely unmotivated.

The time has come, though, so I’m giving it another whack. Can I stay motivated? Will I have interesting things to say? We’ll see, I suppose. I can only try.

In the mean time, however, it’s time for a change…

Re-Tooling All The Things

When I started this blog seven years ago (holy crap, has it really been that long?!) I built it with WordPress because it was, at least in theory, quick and easy. I wanted to focus on writing, not on the machinery that enabled me to show my writing to the world. Of course, nothing is ever that simple, and it ended up quite the sprawling effort.

WordPress has been the bane of my existence.

This was one of the biggest blockers to getting back into it: I was on an ancient version, and it badly needed to be updated. That’s easy enough to do, but… it just wasn’t worth it. I really can’t stand WordPress to begin with, and I couldn’t get motivated to limp it along even further.

Writing in web browser text boxes is unsatisfying, unergonomic, unpleasant, and just plain un-fun!

Thankfully, I recently stumbled across Hugo.

Static site generators are all the rage these days, and it just so happens that they’re right up my alley. Hugo is a fairly decent one written in go, and for the most part It Just Works. Does it have warts? Of course, but they’re nowhere close to show stoppers.

Two weeks ago I set up a new branch in the git repo that contains the guts of the site and started playing. Hugo is fairly easy to work with, and it was straightforward to reimplement the theme around some quickly-produced test content.

I was instantly hooked.

It was also shockingly easy to write a little go app to snarfle my WordPress database and convert it into a repository of Markdown documents, all nice and organized into directories, and all bundled up with their requisite images.

Yeah, I like go. It’s a surprisingly effective language in which to Get Things Done, even if it did take me far too many years to un-C-ify my thinking enough to give it a serious try…

In any event, it all came together quickly; welcome to 2.0! You’re currently reading a bunch of static pages generated by Hugo. No more WordPress, and I can finally edit my posts as actual Markdown documents, and with my favorite text editor! It’s about time!

Small Rabbit Holes

Of course, the stuff it was running on was also ancient (a traditional LAMP setup on CentOS 7.2), and was due to be replaced as well. On top of which, I really wanted it to be as easy as possible to publish. Static site generation is excellent, but it does introduce a compile-and-deploy step which, if not automated, could be its own barrier to productivity.

To make a long story short, I went with Kubernetes via k3s.

I learned Kubernetes along the way at my last job and got to liking it. I will admit that it’s more than a little overcomplicated (isn’t everything these days?), but it does deliver real value for that complication. And in my case, it makes for a really nice orchestration system that just about everything under the sun is happy to integrate with.

Amazon’s commercial Kube offering is too expensive to justify, so I’m running a single k3s node on a t3a.medium instance. That and my little VPN router are all I need out in AWS. I’m pretty sure that this is going to last for at least another seven years, and all while being far more flexible than what I had before.

Tying it all together is GitLab (which I also had to update since my installation of that was ancient, too; fortunately, their upgrades are fairly painless). It integrates natively with Kubernetes, and the CI/CD pipeline handles all of the review and publishing details. I write up a post and check it in, and GitLab does the rest. It’s not instantaneous like WordPress was, but it’s close enough.

And now here’s a new post, all nice and shiny, for the first time in a couple of years.

And rejoice, for WordPress is nowhere in sight!

No Comment

The one thing you won’t find on this version of is a comment system. Why not, you ask? It’s not because it’s a static site; there are plenty of third-party tools that will do the job if I want them to. Or I could roll my own very quickly.

No, this was a deliberate decision.

Historically, I’ve found that positive comments are rare, and unpleasant comments are quite common. This is not in any way limited to this blog; I’ve seen it all over the ’net. For whatever reason, the most vocal set tend to be people who are much more interested in being jerks than in being nice.

When you combine that with the general unpleasantness that seems to run rampant in the world these days, it’s just not worth it. I have no time or patience for negativity in my life, and few people were commenting here anyway.

If you want to talk to me, there’s an obvious feedback link where you can make it happen. If you want to do that for the sole purpose of being a jerk, I’ll simply ignore you, and my other readers won’t be subjected to it.

Easy peasy.

I may revisit this decision in the future, but I wouldn’t hold your breath. I would have to have a vastly more extensive and active readership to justify it, and even then I’d probably go the forum route rather than implementing comments directly here.

I’m pretty sure I only have three readers right now anyway, and one them is me (proofreading counts, right?).

So What’s Next?

Ok, so I learned my lesson about making promises. I’m not going to do it. The last couple of times I’ve said “I’m going to post more!”, the exact opposite seems to have happened. I do have some ideas, some fun thoughts, and a running project or two going on in the background. With any luck I’ll be able to produce something interesting – or maybe even finish up a couple of the older draft posts I have floating around.

We’ll see where it goes.

In the mean time, it’s good to be back!