Blog Archive
career
Sep 7, 2023 | Moving on from a “framework specialist” |
Feb 6, 2023 | One common behavior seen in “mature” software engineers |
crystal
Jan 3, 2020 | Using the Crystal compiler API |
css
Jan 31, 2019 | Set both background and font colors, or neither |
curation
Oct 1, 2023 | Curation–Oct 1, 2023 |
Sep 10, 2023 | Curation–Sep 10, 2023 |
cycling
May 11, 2022 | Bicycle chain waxing |
database
Sep 25, 2023 | The poor man’s DB proxy |
Sep 24, 2023 | Setting up MySQL replication on Docker Swarm |
docker
Sep 24, 2023 | Setting up MySQL replication on Docker Swarm |
Sep 13, 2023 | Actual instructions to building a multi-platform docker image |
linux
Feb 17, 2019 | Small Ubuntu Tweaks |
mysql
Sep 24, 2023 | Setting up MySQL replication on Docker Swarm |
programming
Mar 8, 2025 | Using Git(Hub) as the backend for this blog |
Oct 7, 2023 | Zig cross-compilation: linking to system libraries |
Sep 26, 2023 | How one-time passwords are generated |
Sep 25, 2023 | The poor man’s DB proxy |
Sep 7, 2023 | Moving on from a “framework specialist” |
Feb 6, 2023 | One common behavior seen in “mature” software engineers |
Mar 8, 2020 | From Rust to WebAssembly: building an interactive note-taking webapp with Actix & Yew |
Jan 3, 2020 | Using the Crystal compiler API |
Dec 16, 2019 | Don’t use booleans |
Jan 31, 2019 | Set both background and font colors, or neither |
Jun 23, 2017 | On reviewing code: Some practices I’ve found useful |
Sep 10, 2016 | Random .NET fact: String.Join() throws a “fake” OutOfMemoryException |
ubuntu
Feb 17, 2019 | Small Ubuntu Tweaks |
ux
Jan 31, 2019 | Set both background and font colors, or neither |