◊(Local Yarn Code "Tools and Methods")

When it comes to computers, here’s how I like to work:

These priorities mean that I try to select tools (computers, software, workflows) that

Pollen

I use Pollen as the framework for organizing writings and publishing them as HTML and as printed books.

Pollen gives me a clear framework for defining my own markup language, and for specifying exactly how that markup gets translated into HTML, LaTeX, or any other format. This means I’m not dependent on other peoples’ Markdown processors and I don’t need to rely on flaky hacks or beg them to implement functionality I need.

Pollen’s author describes his rationale for creating it:

It oc­curred to me that what I wanted was not a sim­ple but reg­i­mented sys­tem like Word­Press—it just wouldn’t let me work with the so­phis­ti­ca­tion and de­tail I needed. In­stead, I wanted a flex­i­ble tool for de­scrib­ing com­plex HTML & CSS lay­outs with sim­pler, high-level notation.

In short: I wanted my own pro­gram­ming language.

Pollen is free software (LGPL licensed).

Fossil

Version control is inherently complicated, but its benefits make it an essential part of any programming project, even a small one with only one developer.

My reasons for picking Fossil for this job have to do with my personal tastes (see above) and specific reasons described in Why Fossil?

Web Server

Because Pollen produces static HTML files, the website is pretty agnostic about most aspects of the server stack.

For certain mildly interactive aspects of the web site, such as contact forms, I am not yet certain whether I will use PHP or if I will attempt to implement them in Racket for purity’s sake.

The server configuration is maintained with Ansible, so it is the work of a few minutes to spin up and configure a new server if necessary.