Headshot of Thomas wearing a navy blue blazer, white shirt, and patterned tie.

Thomas J. Faughnan Jr.

Hello, World Wide Web!

Welcome. Yes, I am starting a weblog (or “blog”) in anno Domini 2024. Centralization and platform decay have shown us the importance of the open web, so now is a good a time as any to plant my flag on my own domain and start filling it with my thoughts. My goal is to post here at least once a month. Since this is the very first post, it is decidedly more meta than I intend for future entries.

What will I write about?

A recurring post genre I’ve seen others do is the media consumption roundup. That is, a summary of the best books, movies, music, etc. that the author has encountered since last checking in. That would be easy fodder for my blog, and it would keep me to a healthy minimum rate of book reading. I already keep track of my movie-watching on my Letterboxd, so maybe some of my thoughts will be mirrored betwixt the two.

There is also content to be mined in my little programming projects. These projects are usually solution-driven (“I wish my computer did $thing. Let’s see if it can!”) or learning-driven (“Okay but how does $thing really work?”), and sometimes both. Most of these are only ever seen by me, but if I blog about them perhaps other people will find them of use.

And of course any hot (or lukewarm) takes on any topic that I want to share may find a home here.

What blog software am I using?

As of writing, thomas.faughnan.net is powered by a bespoke and featureless static site generator I wrote called weblog. It’s a small Go1 program that does the following:

  1. Shuffle around some source files.
  2. Translate Markdown to HTML (the most complex part, for which I shell out to Goldmark).
  3. Push these stubs through a basic templating pipeline.
  4. Whip up an Atom feed.
  5. Spit everything out into the desired directory structure.

The generated files are then rsync’d to my Alpine Linux server, where NGINX can deliver them to you, dear reader. weblog is not particularly extensible or configurable because ultimately my configuration is the only supported configuration.

All of the features of Markdown should just work. Code snippets get some modest syntax highlighting thanks to Goldmark’s integration with Chroma. For example:

float q_rsqrt(float number) {
    long i;
    float x2, y;
    const float threehalfs = 1.5F;

    x2 = number * 0.5F;
    y  = number;
    i  = * ( long * ) &y;                       // evil floating point bit level hacking
    i  = 0x5f3759df - ( i >> 1 );               // wtf?
    y  = * ( float * ) &i;
    y  = y * ( threehalfs - ( x2 * y * y ) );   // 1st iteration
    // y  = y * ( threehalfs - ( x2 * y * y ) );   // 2nd iteration, this can be removed

    return y;
}

Another nice-to-have is mathematical typesetting, which should also work2, now that all of the important browsers support MathML Core. For example:

Γ(z)=0tz1etdt,(z)>0\Gamma(z) = \int_{0}^{\infty} t^{z-1} e^{-t} dt, \quad \Re(z) > 0

It’s only a matter of time before I try to publish something beyond weblog’s capabilities, in which case I will either figure out how to implement it or give up and switch to WordPress.3

How long will this last?

The goal is to blog indefinitely, but maybe someday I’ll forget or get bored. For now, though, I want to make this a thoughtful, constructive place for you and me both. The design and contents of the site will inevitably evolve over time, and I welcome your feedback. Is it mobile-friendly enough? Is the text size legible? Should I add a dark mode? Should I write about a specific topic? Let me know. While you’re at it, add my blog’s feed to your news aggregator, or just remember to come back to this website every once in a while. Okay, that’s enough for now. See you next month.


  1. My favorite programming language these days for when I just want to get something done and know that it work for a long time. 

  2. Without resorting to SVG images or third party JavaScript libraries like MathJax and KaTeX

  3. I’m imagining one of those IQ bell curve memes with WordPress users at the left tail, SSG and custom CMS users somewhere in the middle, and WordPress users again at the right tail. 

If you have a comment or question regarding this blog post, you may reach me via e-mail.