I started this blog a bit over a decade ago. About five years later, I did a sort of “soft” reboot.
The time has come for yet another reboot, this time a bit more thorough.
Table of Contents
In my last reboot, it came as a way to provide more ways for me to write content. Previously, my blog had been dedicated solely to technical content. With the reboot, I allowed myself to expand to other interests, such as soccer statistics.
While this provided some new avenues for content generation, after a few posts my attention once again wandered off. One particular draft entry got stuck because I needed to do further deep dives into Linux kernel source to better understand the scheduler. I never got around to it, and every time I came back to it, it was further out of date. Thus, the procrastination continued.
Honestly, it’s entirely possible that this time might not be different in terms of keeping up a pace of writing. The biggest reason for this reboot is that after a decade, the layout felt a bit stale and uninteresting.
That’s not to say, however, that I don’t have any topics in mind.
The content will continue to be primarily tech-focused. I will likely write updates to prior posts about how I construct my personal dev environment, or how I manage my homelab.
Here are a handful of things I’ve been getting into lately that may show up as content, in no particular order.
I’ve been slowly dabbling in NES homebrew again. The community and available tooling have grown significantly since my last attempts fifteen-plus years ago. It’s possible that I may find topics related to homebrew development to write about.
In addition to that, I’ve been playing homebrews made by others, including for other platforms like Sega Genesis/MegaDrive or Game Boy. I’ve considered writing small reviews of those games I’ve played.
My emacs game has leveled up significantly in the last few years. While I will almost certainly be writing about my configuration, I have also started broader development, both packages of my own and contributing to those made by others.
We’ll have to see how much I have to say about the wider world of emacs development and usage.
Retro and Small Internet
I’ve discovered recently a significant nostalgia for the internet of the 1990s, or even pre-internet; the times when I would spin up Blue Wave to exchange messages with my local BBS for offline reading and response.
It was a much simpler world, and it moved at a much slower pace. Given the firehose of information that is the modern day internet, something about that era appeals to me, and I may write about my explorations of modern attempts to push back towards it in limited ways. With the understanding, of course, that in many ways it is impossible to really go back.
I had a slow growth into the Nix ecosystem starting about 4 years ago. It started as a replacement for homebrew, and slowly grew from there as I needed and learned more.
While there are plenty of blog posts on these topics out there (I apologize in advance that mine will add to the deluge of such posts), there are a few areas that I feel haven’t been sufficiently covered, so I may write about those.
Having decided to redo the blog from scratch, I started off with what seems to be the most popular static site generator, Hugo. This was also the recommendation given by Sourcehut Pages, so it seemed at least a reasonable place to start.
I began by looking through theme browsers, trying to find one that felt close enough to something that could represent me. I played around with some, and ultimately decided that, given my recent experience with frontend development, I should probably just put one together myself.
I’ll probably go back and change some things as I go, but I feel like this theme is good enough that I should probably stop using it as a way to procrastinate the actual, you know, blogging part of the site.
Minimalist, But Not Austere
For inspiration, I looked at both the available Hugo themes, and also personal blogs that I read.
I admire the look of other technical blogs that go for a very simple, almost retro look. I think that some of them go a little too far into the monochrome, though. I decided that mine needed at least a splash of color.
For many of the themes available in listings, a great many of them were very image-centric. They reminded me more of storefronts or news sites than personal blogs, despite the themes being suggested for use as personal blogs. I decided to avoid that.
At my last job, I spent most of a few years working on a feature-rich, single page webapp, using Typescript and React. I did end up enjoying it a great deal more than I expected to, even if I joked about doing it because I was the “least unwilling” person on the team.
The tooling and general ecosystem had grown tremendously since my last attempt at doing web development. It was a fun challenge, but the app relied heavily on existing third-party libraries. Most of the challenge (other than a few fights with CSS) ended up being performance optimization.
I decided with this space I wanted to go as far in the other direction as possible: Only pure, hand-written HTML and CSS. I did briefly consider using JS for some sort of commenting system, but I believe it will eventually be possible to enable comments via webmentions while remaining static. (Which could possibly also support rendering on the Gemini version.)
Simple, Accessible Layout
I wanted the layout to be very simple, and use as much of the native capabilities of HTML for accessibility as possible. It turns out that accessibility guidelines are fairly easy to follow for static, written content.
As a simple benchmark, I test the layout with emacs' eww browser, which supports minimal (if any) CSS. Of course, I did also do a few tests with VoiceOver, just for extra certainty (and out of curiosity to see how it works, if I’m being honest). But looking decent in eww is something that I personally value in the blogs of others, since emacs is my primary method of consuming RSS feeds.
I took a bit of a shortcut when it comes to accessible contrast, by making use of Protesilaos Stavrou’s excellent Modus themes colors. Prot correctly points out that these are not color schemes, and indeed the naming of the color variables makes this clear.
Nevertheless, I found them to be a solid starting point that allowed me to support both light and dark schemes with a strong, consistent amount of contrast. In almost every case this meets the WCAG AAA standard; the exception is that links have a hard time meeting that standard for either tritanopia (light mode) or protonopia/deuteranopia (dark mode).
I did add handling for browsers which indicate contrast preferences via
(prefers-contrast: more), which heavily desaturates non-heading backgrounds, hopefully providing a way for readers to access the level of contrast they need without having to resort to activating a reader mode.
This re-introduction post did ramble a bit. I considered breaking it out into a few different posts, but I think the most important thing was just to get this introductory information out of the way faster, so that I can concentrate on writing more useful content.
I’m broadly optimistic that I will be able to keep up a more consistent pace of posting. I have a lot of ideas in mind, which is definitely an important difference from prior attempts.
In any event: Behold, my new blog!