Back in April, GitHub shared a staggering graph of their scaling challenges: LLMs are producing code at an almost frightening rate, and if you use GitHub on a semi-frequent basis, you’ll know that it’s down quite regularly these days as a result of the onslaught. For my own personal work, rather than tolerate the GitHub instability, I’ve instead opted to self-host my own Forgejo instance in my…
The server rack continues to expand! In an effort to buy hardware before the AI bubble continues to drive up computer hardware prices, I’ve added three more Minisforum UM690L mini PCs to the basement rack (this time in black!). I’ll be using this new batch of machines to separate a testing cluster from “production” infrastructure that runs the stuff in the house (Home Assistant, Jellyfin, etc.) I…
One thing that’s still underrated in programming: Skipping a library dependency and coding something small that you need directly. No over-generalized library, no unecessary abstractions, no library dependency hell – just straight forward code that solves your specific problem in the most direct way possible. To put a longer story on it: I’ve been working on provisioning VMs with cloud-init…
If you’re looking for a Rust based Vmm alternative to Firecracker , I’d check out Cloud Hypervisor . Cloud Hypervisor ended up hitting that sweet spot for me in many places where Firecracker is chasing different outcomes. Both projects share so many things to love: Entirely Rust based, sharing many quality crates from the rust-vmm project . Built on top of the Linux KVM hypervisor Good virtio…
NOTE: This is a longer explanation to a question I responded to on GitHub about dynamically adding listeners / services to Pingora. I wanted to show the technique I’m using to dynamically manage Pingora LoadBalancer instances inside a general proxy / load balancer service I’m building. Pingora is a Rust based proxy library from Cloudflare that can be used to build high performance http load…
I recently stood up a 42U server rack in my basement. Some people are into cars, I’m into servers. 😁 It’s a bit empty right now, but with plenty of room to expand for future projects! All the CAT6A cables in my house terminate at the patch panel at the top of the rack, with a very basic router / switch setup that plumbs it all together. The thing I’m more excited about is the 3 node MINISFORUM…
This is a blog series covering how to connect a firecracker VM to network block storage. Read Part 1 here . In part 1, we taught the Firecracker VMM how to perform block-based disk operations using crucible volumes as our backing store. This helped us validate the connective interface between the existing Firecracker virtio block device implementation, and the existing crucible Volume interface.…
This is a blog post covering how to connect a firecracker VM to network block storage. Read Part 2 here . In this post, I’ll walk you through how I connected a firecracker VM to a network attached block storage system by called crucible . Crucible is written by the good folks at Oxide Computer , to power network attached block volumes in their custom cloud based server rack. It has a lot of…
If you want to use the official Parquet Java library implementation , you’ll quickly see that it brings along Hadoop as a large, cumbersome transitive dependency. This makes it complicated to use parquet in small systems and simple use cases. In this post, I’ll show you how you can eliminate almost all of the Hadoop dependency. I’m using this technique in production systems that need to export…
“ We need to deliver that feature for the business ”, words you might have heard at a daily standup meeting. or “ The business needs this data analysis so it can make a decision ”, as you get a CSV dump of the latest sales transactions and hand it off somewhere. This othering kind of language gives away your power. Treating “the business” like it’s some other entity that’s “over there” that you’re…
This post builds on my last post , which covered how to develop your own custom NixOS test for custom packages and services. If you want to contribute or work on upstream nixpkgs NixOS module tests, here’s a few pointers I picked up while experimenting with a flake based trial and error workflow. To run an existing test: Find a test in nixpkgs/nixos/tests/all-tests.nix . cd to your local nixpkgs…