Hello, World

An animated HelloWorld print statement above a gorilla.

This is the first published article under /articles/. Hooray!

Why I built this site

I wanted one place that points at everything I have made, without a platform sitting between the reader and the work.The site is a set of static files under my domain. It has no account system, recommendation feed, or application server. This site’s primary function is to explain why a project exists, what it cost, and what I would do differently next time. However, I plan on documenting anything I find myself getting nerdy about, like music or hiking.

The site’s build system has already gone through a couple of rewrites. It started on Hugo, moved to ostat, a static site generator I wrote in Odin, and now runs on Pandoc and Make.Pandoc parses the Markdown and renders each page. Make tracks dependencies and rebuilds only the outputs affected by a changed source file. The colophon explains how the site is built today. I hope this is the final build-system rewrite because I want to write instead of tinkering with static-site generation.

What I’m working on

Projects lists the finished and paused work: difr, a golden-file test runner; GateRelay, a hardened TCP relay; Mach, a factory game with its own single-header engine; and a crime-data analysis from a data science course I took at the University of Arizona that I am particularly proud of.

Mach is paused. Its engine, mach.h, handles rendering, input, audio, and UI. The game tests those decisions outside a demo. For more, see the Mach project page or GitHub repository.

Wow! Look at these code blocks!

I spent too much time getting a minimal code-block highlighting system to work.Pandoc tokenizes each code block. A Lua filter translates its token classes into the names used by the stylesheet. So… here you may gaze upon these glorious code blocks. As a bonus, the example fits this article quite well!

#include <stdio.h>

int main(int argc, char *argv[])
{
    printf("Hello, World!\n");

    return 0;
}

Ooh. Ahh.

And here’s the “modern” C++ version:

import std;

int main() {
    std::print("Hello, World!\n");
}

Thirty-some years of committee meetings to get back to one line and a function call. Progress!

What’s next

More articles are on the way! I am playing around with a couple of ideas. I’m leaning toward a deeper dive into static-site generation or the work I did this summer on Mach. I learned a lot from both projects. We shall see!

A closing note

Thanks for reading the first thing published here.