Welcome!
I am Matthew Planchard, a software engineer currently in Burlington, VT. This is a blog I maintain mostly for the purpose of playing around with whatever technologies I'm interested in at the present, but also to occasionaly post whatever I'm inclined to write.
If you particularly enjoy anything here and want to drop me a line, you can find my contact information on the about page. If you're curious about the technical details behind this website, that stuff is there, too.
Recent Posts
- A Zero Downtime Migration to Time-Partitioned Tables in Postgres — A crosspost from our engineering blog at work, in which I describe how we managed to migrate databases receiving millions of writes per day to time-partitioned tables without incurring any downtime or performance degradations.
- Amtrak Tips — A collection of tips and tricks for riding Amtrak
- TIL: use svn to download subdirectory of GitHub repo — Today I learned this one weird trick to download a single subdirectory from a github repo, without needing to add the repo as a remote, do a spare checkout, or any of the other typical workarounds.
- A NixOS Christmas Story — A quick story of how NixOS saved Christmas
- Installing a Specific Version of a Package with Nix — A common question when starting out with nix is "how do I install some particular version of some package?" This is not only a surprisingly complicated problem to solve for new nix users, but also a surprisingly difficult question to find answers to on your search engine of choice. Here, I'm going to cover a few different ways of installing a particular package version using nix, highlighting the pros and cons of each. I'll be focusing on _declarative_ nix configuration, with the nix repository pinned to a particular version using either the older [niv] or the newer [flakes]. The examples I show will be for installing a package into a development environment. See my other post [here][nixifying the blog] for instructions on how to set up a basic dev environment. I'll cover some basic setup again here, but see that post for rationale and discussion.
- A Year (and Change) of Rust — Looking back on over a year of writing Rust professionally. What were my early concerns, and how did they play out? How do I feel about the language now? What do I like and dislike about it?
- Set Your Upstream to the True Upstream — One of the great things about Magit is that, through using it, I wind up learning new things about git itself. One of those things is the capacity of git to work with two remote targets, the upstream and the push target. Using separate targets is easy and natural in Magit, but it's also not difficult to bring this workflow into your command-line-driven git experience.
- Introspecting Emacs Packages — As your emacs configuration gets more and more complicated, it can be non-obvious which of many installed packages (or even built-in emacs functionality) is being called at any given time. Here, we discuss some ways of figuring that out, with a mildly deep dive into exploring which functions are called via the profiler. Somebody on the Internet asked how to figure out which functionality is coming from which package in emacs, and I went classically overboard in responding, so I figured I'd turn the response into a post.
- 2021: A Year in Review — 2021 was quite a year. From a global perspective it was difficult, to say the least. For me personally, it was a year of significant change, with much of that change being positive, thankfully. In this post, I'll take a look back at the major developments in my life over the course of 2021.
- What I Learned at Bestow — An overview of lessons learned from my time at Bestow, both technical and cultural.