This blog has no specific theme, I write about topics that are on my mind at the moment. In this post I reconstruct a story arc of the year and link to articles I wrote in 2020.
During the holiday break in 2019 I wrote about functions in disguise. I argued that we should use pure functions in software configuration files instead of letting them develop idiosyncratic concepts and custom rules.
I was particularly frustrated by the configuration of build automation systems (also called continuous integration, continuous delivery systems). In January I was researching the essence of a software delivery pipeline and I picked on the concepts of some popular tools. I argued that a software delivery pipeline could be viewed as a function without introducing other, ambiguous concepts. To validate this idea I wrote Kevlar, an experimental build automation system where pipelines are functions. In Kevlar, contrary to many of our tools, parallelism is completely automatic.
While thinking about software delivery pipelines I discovered Nix which now I use to configure all computers in my homelab. Using Nix I made this blog’s deployment automatic and reproducible. I believe Nix is the best tool today for configuring physical machines and for building software delivery pipelines.
In the second part of the year I’ve been learning Rust. I explored its concurrency primitives and in December I completed the Advent of Code in Rust too.
In summary, the articles I wrote over the past year fall in three broad categories:
- Concepts and configuration of build automation software
- Infrastructure and Nix
- Learning the Rust language
Looking forward to seeing what 2021 brings!
Happy New Year!