When I was first learning Go, I read the excellent The Go Programming Language. It had a lot of the same clarity, conciseness and wisdom as the classic The C Programming Language book, otherwise known as K&R (Brian Kernighan was a co-author of both books). The first real program I wrote in Go was adapted from an exercise in the book; a concurrent file downloader that I expanded to be a downloader of images from various web APIs. ...
Isolated Development Environments with Nix Flakes
A practice I’ve been following lately is creating isolated development environments for my programming projects, so that their dependencies are managed separately from other packages on the system. Some of the benefits of this approach: each project can have different versions of packages. packages that are only needed for a single project don’t have to be installed globally. experimenting with new languages and frameworks becomes trivial and doesn’t result in the system accumulating cruft over time. Some of these benefits may seem similar to what can be achieved by using containers, and Docker. However, while containers are great for deployment, from my experience Nix, the focus of this post, generally provides a better local development experience. I’m also specifically talking about package/dependency isolation here, rather than process isolation, which is a problem that containers solve rather than Nix. ...
Hello, world!
I’ve been wanting to create a new blog for a while. I’ve always enjoyed technical writing and sharing my thoughts and findings with others. It’s a nice way of expressing myself, and the process of writing posts forces me to refine my understanding. This is an obligatory first post to have something to upload while I think of some actual things to write about. Hopefully it will be the first of many! ...