56,966 blogs · [ { "id": "01a087de-c031-737a-9fd6-9a0c64c544a3", "title": "This is my skinner box! It was made for me!", "url": "https://sgt.hootr.club/blog/this-is-my-skinner-box/", "published_at": "2026-08-13T00:00:00+00:00" }, { "id": "01a087de-c031-737a-9fd6-9a0c657e7df8", "title": "The death and rebirth of my home server", "url": "https://sgt.hootr.club/blog/home-server-rebirth/", "published_at": "2026-07-19T00:00:00+00:00" }, { "id": "01a087de-c032-70c1-b4ff-c1cd2ce97188", "title": "Enumerate your logs", "url": "https://sgt.hootr.club/blog/enumerate-your-logs/", "published_at": "2026-02-01T00:00:00+00:00" }, { "id": "01a087de-c032-70c1-b4ff-c1cd2d4eae10", "title": "Building smaller Docker images faster", "url": "https://sgt.hootr.club/blog/docker-protips/", "published_at": "2025-12-12T00:00:00+00:00" }, { "id": "01a087de-c032-70c1-b4ff-c1cd2d669d00", "title": "Hacking on the reMarkable 2", "url": "https://sgt.hootr.club/blog/hacking-on-the-remarkable-2/", "published_at": "2025-11-30T00:00:00+00:00" }, { "id": "01a087de-c032-70c1-b4ff-c1cd2e3c6e76", "title": "My Immich setup feat. NixOS", "url": "https://sgt.hootr.club/blog/immich-setup/", "published_at": "2025-10-03T00:00:00+00:00" }, { "id": "01a087de-c032-70c1-b4ff-c1cd2e41f910", "title": "About this blog", "url": "https://sgt.hootr.club/blog/about-this-blog/", "published_at": "2025-10-01T00:00:00+00:00" }, { "id": "01a087de-c032-70c1-b4ff-c1cd2f1b1d04", "title": "The masculine urge to reinvent the wheel", "url": "https://sgt.hootr.club/blog/masculine-libraries/", "published_at": "2025-09-30T00:00:00+00:00" }, { "id": "01a087de-c032-70c1-b4ff-c1cd2f4ddcf3", "title": "Simple Python devshells with Nix and direnv", "url": "https://sgt.hootr.club/blog/python-nix-shells/", "published_at": "2024-06-08T00:00:00+00:00" }, { "id": "01a087de-c032-70c1-b4ff-c1cd2fc4dbdc", "title": "Do I not like Ruby anymore?", "url": "https://sgt.hootr.club/blog/maybe-i-like-python-now/", "published_at": "2024-05-28T00:00:00+00:00" }, { "id": "01a087de-c032-70c1-b4ff-c1cd30154f5f", "title": "Solving Advent of Code 2021 Day 13 with a linear equation", "url": "https://sgt.hootr.club/blog/aoc2021-day13-linear-equation/", "published_at": "2021-12-13T00:00:00+00:00" }, { "id": "01a087de-c032-70c1-b4ff-c1cd3029b457", "title": "Types of parser combinators", "url": "https://sgt.hootr.club/blog/types-of-parser-combinators/", "published_at": "2021-11-16T00:00:00+00:00" }, { "id": "01a087de-c032-70c1-b4ff-c1cd3054282c", "title": "NixOps is easier than I thought", "url": "https://sgt.hootr.club/blog/nixops-on-the-pi/", "published_at": "2021-11-11T00:00:00+00:00" }, { "id": "01a087de-c032-70c1-b4ff-c1cd306d6e9b", "title": "Hellpoint breach map", "url": "https://sgt.hootr.club/blog/hellpoint-breach-map/", "published_at": "2021-06-20T00:00:00+00:00" }, { "id": "01a087de-c032-70c1-b4ff-c1cd312ddb0f", "title": "Offloading NixOS builds to a faster machine", "url": "https://sgt.hootr.club/blog/nix-distributed-builds/", "published_at": "2021-01-24T00:00:00+00:00" }, { "id": "01a087de-c032-70c1-b4ff-c1cd3174f322", "title": "require_so: DRYer StackOverflow copying", "url": "https://sgt.hootr.club/blog/announcing-require-so/", "published_at": "2020-05-20T00:00:00+00:00" }, { "id": "01a087de-c032-70c1-b4ff-c1cd325a52d7", "title": "Announcing SatouinDp", "url": "https://sgt.hootr.club/blog/announcing-satouindp/", "published_at": "2020-05-05T00:00:00+00:00" }, { "id": "01a087de-c032-70c1-b4ff-c1cd33546d5c", "title": "The journey of packaging a .NET app on Nix", "url": "https://sgt.hootr.club/blog/dotnet-on-nix/", "published_at": "2020-04-01T00:00:00+00:00" }, { "id": "01a087de-c032-70c1-b4ff-c1cd344195bb", "title": "Thoughts on Suspense for data fetching", "url": "https://sgt.hootr.club/blog/thoughts-on-suspense/", "published_at": "2019-10-30T00:00:00+00:00" }, { "id": "01a087de-c032-70c1-b4ff-c1cd353bbc8c", "title": "Config constraints in the type system where they belong", "url": "https://sgt.hootr.club/blog/type-level-conf/", "published_at": "2019-09-17T00:00:00+00:00" }, { "id": "01a087de-c032-70c1-b4ff-c1cd357bb286", "title": "A brief history of JAVAScript", "url": "https://sgt.hootr.club/blog/history-of-javas/", "published_at": "2019-08-30T00:00:00+00:00" }, { "id": "01a087de-c032-70c1-b4ff-c1cd36652223", "title": "A data-fetching component in React", "url": "https://sgt.hootr.club/blog/data-fetching-react/", "published_at": "2019-05-10T00:00:00+00:00" }, { "id": "01a087de-c032-70c1-b4ff-c1cd3733db58", "title": "Reading Ur/Web signatures, part 1", "url": "https://sgt.hootr.club/blog/urweb-sig/", "published_at": "2019-01-07T00:00:00+00:00" }, { "id": "01a087de-c032-70c1-b4ff-c1cd379cef51", "title": "Overthinking cash in TypeScript", "url": "https://sgt.hootr.club/blog/overthinking-cash/", "published_at": "2018-11-11T00:00:00+00:00" }, { "id": "01a087de-c032-70c1-b4ff-c1cd37e329c5", "title": "I survived Ur/Web", "url": "https://sgt.hootr.club/blog/urweb/", "published_at": "2018-01-22T00:00:00+00:00" }, { "id": "01a087de-c032-70c1-b4ff-c1cd38a607fb", "title": "What the hell did I do this week, anyway?", "url": "https://sgt.hootr.club/blog/week-001/", "published_at": "2018-01-22T00:00:00+00:00" }, { "id": "01a087de-c032-70c1-b4ff-c1cd393a20b3", "title": "The social issues of programming languages", "url": "https://sgt.hootr.club/blog/bikeshed/", "published_at": "2017-10-29T00:00:00+00:00" }, { "id": "01a087de-c032-70c1-b4ff-c1cd39d8156d", "title": "Continuations, Promises, and call/cc", "url": "https://sgt.hootr.club/blog/call-cc/", "published_at": "2017-10-27T00:00:00+00:00" }, { "id": "01a087de-c032-70c1-b4ff-c1cd3a69a316", "title": "The TTY Protocol", "url": "https://sgt.hootr.club/blog/tty/", "published_at": "2017-02-10T00:00:00+00:00" } ] posts Claim your blog
Back to Redirect
Blog · corpus.blog/blogs/sgt.hootr.club/posts

Redirect

sgt.hootr.club

2026

2025

2024

2021

2020

2019

2018

2017