Recently I rewrote my blog again. This time, I moved from a language I know really well (TypeScript/JavaScript) to a language I don't (Erlang). I'm familiar enough with Erlang, but haven't made any projects of this scale or complexity...
Recently I've been "Zigifying" my C++ code. As part of this, I've been moving away from using C++'s streams to custom readers and writers. Honestly, I like it a lot better. Not only is it a lot simpler, but it's a lot easier to compose....
Recently I've been revisiting C++ after writing some Zig code. As part of the transition, I got frustrated with the C++ way of doing things and started doing "Zig in C++" style of coding. After removing a lot of move destructors to...
Recently I've been working on authorization systems for some projects. At some point, I ran into some design mistakes on one of them, and it hit me that there's a little unspoken secret about authorization. There are two types of...
I've done PHP programming professionally for a decade. I started with just FTP'ing files to web servers, transitioned into version control, then the whole blue/green CI/CD pipeline. I've written my own autoloaders, written PHP...
Lately I've been working with baremetal servers. I have two servers in a rack for personal use. They aren't big or fancy, and I got them used. But, they do work. As part of this, I've learned a lot about servers and server management,...
Lately I've been experimenting with deploying to bare metal servers. No Kubernetes. No Docker. No AWS Console. Just the physical hardware, mounted to a rack, no OS pre-installed, and no RAID preconfigured. Just that beautiful, metal...
Up until today, my site was hosted by as a static site. I've used several static file hosts (including S3, Cloudflare, open source, custom ones with custom telemetry, etc.). During this time, I've been working primarily on my site...
In Building Channels in C++: Part 6 - Adding timeouts we added timeouts to the select statements we made in Building Channels in C++: Part 5 - Writing a select statement. These selects work pretty well. However, there is a sneaky hidden...
In Building Channels in C++: Part 5 - Writing a select statement we created a select statement for our channels which can handle sending and receiving values. If you haven't already, I recommend reading that post before continuing with...