I've made more personal websites than I care to admit. None of them are good. But this one is better than the ones before, and that's what matters.

The Motivation

Originally, I made this site to showcase what I was working on to prospective employers, but having documentation on all of my projects has proven invaluable on its own. For example, I've had to nuke and pave numerous Raspberry Pis, and paving would have been much more painful if I hadn't written out everything I did on here first.

Another thing driving the content here, and I use the word "content" loosely, is my general philosophy that learning skills shouldn't break the bank. Highway robbery takes many forms, but this particular variety has brought on a lot of ire and frustration for me when trying to find a mechanical engineering job, and so it is something that I feel pretty strongly about. My hope is that I can channel that energy into creating something useful to a wider audience than just myself. The scope of what I put on here is admittedly narrow, but hopefully if you're interested in open source/free software or DIY technology projects that involve some learning along the way, you'll find something here that gets your bells jingling.

An Abridged History of What You Are Reading

I want to at least mention the site's evolution, but it's unsurprisingly dry so I'll confine it to the most concise format I know: a table. Each generator consists of the core language it's built with, a templating engine to build the HTML files, and a markup language that gets translated to HTML. Well, here they are:

Framework Language Templating Markup
Jekyll Ruby Liquid Markdown
Pelican Python Jinja reStructuredText
Home grown Rust Tera Markdown
Ox-Hugo Go Go template libraries Org/Hugo-Markdown
Weblorg Elisp Templatel (similar to Jinja) Org
Ox-Slimhtml Elisp Org-export system Org

I've brought some of the posts from the Jekyll and Pelican sites forward, but as I began translating posts to Org markup, I felt the sort of vague sinking embarrassment in the pit of my stomach that so often manifests when re-reading writing from a different life stage. So while I would like to preserve the history of this site in its entirety, warts and all, I'm going to save what little face I can by only including the "important" posts, revised just enough for that pit in my stomach to mellow out. I always knew I'd make bad historian.

On a different note, it's worth pointing out that Ox-Slimhtml is very bare-bones (by design) and was really only designed to convert a single page of markup to a single page of HTML. I've put a lot of work into adding things that were missing and making it work well with an entire website. Emacs does have its own built-in exporter to HTML that's very complex and can accommodate all kinds of use cases. I've seen a fair number of websites built with it and I tried it out, but it seems like I always want things just so, and it was easier for me to just start with a minimal back-end and build it up the way I want than to figure out how to configure the built-in one.

Each framework was pretty fun to use except for my home grown framework I cobbled together in Rust. They each have features that distinguish them, but I don't have any requirements that make one stand out that much from the others; if I enjoy the language the generator is written in, I enjoy the generator. If I hadn't started using Emacs, Org, and Ox-Slimhtml I probably would have gone back to Pelican. Org's exporting system and the idea of consolidating yet another workflow into Emacs was just too tempting, though. My only regret is rolling my own Rust generator. If I ever had an unhealthy relationship with an application I wrote, that was probably it. That being said, Rust is still my favorite language, even though I hardly ever use it.