# etc

Everything that is not a project. Exercises, tools with one user, and

repositories that found an audience I never asked for.

## Advent of Code

The same puzzles, a new language most years. What survives is never the

solutions. It is the runner: before solving anything I build the thing

that fetches the input, scaffolds the day and times the answer, which

teaches me more about the language than the puzzles do.

`advent-of-code-2021` and `advent-of-code-2022` are Kotlin, and

`advent-of-code-kotlin-template` is what both were cut from.

`aoc-in-go` came first in Go, and then `goaoc`, `goaoc-cli` and

`goaoc-template`, which are the runner it turned into.

`aocr` and `aoc_rust` are December 2024, when I was learning Rust.

`aoc-rb` is the current one. Its runner writes the day's file, downloads

and caches the input, runs the example before the real one, and CI

rewrites the star count in the README on every push.

## Ruby

I write more Ruby than I have any professional reason to.

`exercism-rb` is a CLI called `xrb` that takes about four steps out of

the Exercism workflow: it remembers which exercise you are on, runs

everything from that directory, opens the editor, starts IRB with the

solution already loaded, runs the tests, and submits. `exercism-ruby` is

the solutions themselves.

## Reimplementing things to learn them

`rlox` and `compiler` are both Lox, from Crafting Interpreters, the

second through CodeCrafters. `hecto` is a text editor in Rust following

Philipp Flenker's series, which is an excuse to spend time in raw

terminal mode and in the borrow checker. `codecrafters-shell-rust` is a

shell. `greenlight` is the API from Let's Go Further, in Go.

## Tools with one user

`bones` provisions every package manager on a fresh macOS machine from a

single `packages.toml`, because dotfiles restore your configuration and

nothing restores the software underneath it. `craftty` is a multi-crate

terminal toolkit for Rust, early and honest about being early.

`translate-cli` is where `trlt` started, in Go.

## The desktop

`nvim` is the current Neovim configuration and `nvim-old` the one before

it, with `dotfiles` holding all of it under chezmoi for Arch and macOS.

`omuntu` is Omarchy ported to Ubuntu 24.04, which is mostly the work of

finding every place an Arch assumption is buried. `all-hallows-eve.nvim`

is a colorscheme taken from the old TextMate theme, and one of the

palettes this page can be read in.

## What other people found

`clean-architecture-nestjs` has 372 stars and 51 forks. Its README is

still the NestJS boilerplate, six years on, so every one of those people

read the directory layout and nothing else. `aspdotnet-vuejs` has

twelve. `schedule-system` is CQRS, event sourcing and DDD with Axon in

Kotlin, and `techbank` is the same idea in Java over Kafka. `workflow`

is a small functional workflow engine for Java.

## Before that

Seven Haskell repositories in one month of 2022, which is what a

functional programming course looks like from outside. Two Kotlin

libraries, `compare-with` and `guard4j`. And `FluentDDD`,

`FluentFormatter` and `DijkstraAlgorithm` in C# from 2019, which is as

far back as any of this goes.