Up to eleven

Last year I celebrated this blog’s tenth anniversary, so this year’s retrospective post marks eleven. Since that last retrospective, my posts have mainly been spurred by two manic projects: doing increasingly complicated things with Hugo render hooks and doing 60% of Advent of Code 2024 using a different programming language for each challenge.1

I also reviewed a bad movie and, mostly recently, covered the latest advancements in AI image generation.

Though this year was not the most prolific in post count, the three AoC posts are all in the top five longest articles on this blog, so it’s been a prolific year in word count. I could have split those into fifteen posts rather than three, but that felt a bit spammy and would have overwhelmed other site content.

Speaking of other site content, it’s been a while since I looked over my most popular posts in one of these retrospectives. Here are the top ten in analytics-enabled views over last year, in ascending order this time:

# 10. Notes on contentEditable and HTML injection (2016)

Some web security musings, based on my accidental discovery that dragging text from elsewhere on a web page into a contentEditable block would preserve the formatting.

Try it now right here! It still works!

# 9. Product placement in memes (2018)

An exercise in (over)analysing funny pictures online and contemplating the existence of a very stealthy product placement campaign through images like this one:

The eternal boomer

The eternal boomer

Many of the references in this article are as dated as you’d think (remember Tide Pods?), but the paunchy boomer Wojak has had surprising staying power, though he appears to have lost his Monster Energy sponsorship at some point in the last seven years. He has also flattened in connotation — you don’t hear much about the “30-year-old boomer”, a prematurely aging elder Millenial who acts like his Baby Boomer forebears. Now the image is used to denote actual Baby Boomers, and even that is flattening out to just “old people”.

It would be flattering to think that this post made the list for insightful cultural commentary, but it’s probably just because of people searching for memes and hotlinking my images.

# 8. Text editors II: Acme (2015)

Not long after I started this blog, I had the notion that I would write a series on different text editors. I started with one on Vim, my primary editor for a couple of years at that point. The obvious choice for the second article would have been Emacs, but I wanted to throw everyone a curveball and so I wrote about Acme instead.

This is probably only in the top ten because it’s one of the very few online articles about the Acme text editor, which never saw the kind of community support that grew up around Vim and Emacs. It was a futuristic, mouse-driven editor from the 90s, part of Plan 9, a futuristic operating system from the 90s. As everyone still uses operating systems and editors from the 80s, its time has yet to come.

This colour scheme is not compatible with the age of dark mode.

This colour scheme is not compatible with the age of dark mode.

After this post, it took me five years to write something about Emacs, and it’s now been five years since that post. The great problem with this series is that I always go back to using Vim, which I still do most of my writing in. The series has been going on so long that I have a nascent post about Atom (RIP) in my drafts. I could probably do a post on VS Code or Cursor, but I don’t know that there’s much point in writing about the editor everyone already uses and its AI son.

# 7. The many (bad) interfaces of Substack (2024)

The most recent post on this list, a brief rant about how nice it would be if Substack had been designed their website as platform reading blogs, rather than an ersatz email inbox grafted to a Twitter clone grafted to a Telegram clone. I’m still kind of amazed that they found a way to apply my concept of toxic skeuomorphism to other digital interfaces.

# 6. Review: The King in Yellow (2015)

A good review that I still stand by. Read the first half of the book, and leave the rest.

# 5. Writing a LaTeX macro that takes a variable number of arguments (2016)

Previously seen on 2022’s list. I write a lot less LaTeX these days, and I don’t particularly miss it. Even when I wrote a lot of it, I usually found ways to do things in Lua instead. These days, I tend to reach for HTML and CSS when doing document rendering, despite their shortcomings for print. I’m watching Typst with some interest, but it’ll be a while before it reaches anything close to feature parity with more mature solutions.

# 4. Encrypting a second hard drive on Ubuntu (post-install) (2015)

Also on 2022’s list. It’s a useful tutorial and still works, as far as I’m aware.

# 3. Review: The General Zapped an Angel (2014)

The oldest post on this list and my first (non-backdated) book review. I would write it much differently today, and probably be more critical of the collection, but I still agree with the general thrust of the review.

Again, this article’s SEO probably benefits from the book’s relative obscurity. If it’s known for anything, it’s probably the cover art’s resemblance to the cover of a famous anime film.

Maybe Hideaki Anno saw the cover of this book in a library once and it stuck in his mind. Or maybe it’s just a wild coincidence.

A very wild coincidence

A very wild coincidence

# 2. Review: The Man from Earth: Holocene (2020)

I’m glad this is getting attention because I really want to save people from watching this terrible sequel to a wonderful film. I don’t think it’s been very widely reviewed, so again my blog benefits from being one of the few places you can read about this particular subject. If you must watch it despite my warnings, at least stop before the post-credits scene.

I don’t have many film reviews on this site, but they’re all negative. I suppose I should get around to reviewing a movie I actually like, if only to prove I don’t have it out for the medium as a whole.

# 1. GPU passthrough: gaming on Windows on Linux (2016)

I have a confession to make: at some point between writing the post linked above and the one you’re reading now, I built a new PC. On this new PC, I dual-boot Linux and Windows.

Largely, this is because I have more use for my dedicated GPU on Linux, between running AI models and playing the increasing number of games that run here natively. My old passthrough setup meant using my dedicated GPU exclusively on the Windows VM and my onboard GPU exclusively on the Linux host.

A setup that reflects how I want to use my computer today would require a way to switch between cards relatively seamlessly. I’d want to start Linux using my dedicated GPU. Then, I would want to have the GPU passed to the Windows VM when/if it was started up, with the host falling back to the onboard GPU – being able to use both computers simultaneously is what makes the setup better than dual-booting. Finally, I’d want the dedicated GPU to return to the host’s control after I shut down the Windows VM.

Based on some things I’ve read and some configurations friends have shared with me, I think this is possible, or at least mostly possible. I just haven’t gotten around to actually implementing it. When I do, I’ll be publishing a new GPU passthrough article. If you’ve implemented anything like this, I’d appreciate a webmention or email from the controls at the bottom of this page.


Looking over this list, it’s clear that my most popular content is niche technical tutorials and niche media reviews. The 2010s are pretty well represented and the 2020s significantly less so, but my blogging cadence has been much slower this decade. I also haven’t really written tutorials in the same way – most of my recent technical posts are framed more as explorations or walkthroughs of something I did rather than instructions for doing that thing yourself. Worse for SEO perhaps, but it’s not like I’m serving ads.

The point of this blog has always been to write about things that interest me in a way that entertains and informs others. I think most of the posts above do that, and I hope to write many more, as the fancy takes me.


  1. Energy and interest permitting, I may return to the final ten challenges, but I feel like I’ve gotten everything I wanted to out of the project for the moment. ↩︎


similar posts
webmentions(?)