Skip to content

Adelblog

Tag: #code

Setting up per-project RLS for Emacs with Nix and Direnv

One of my favorite things about Nix is using the nix-shell to provision the development tooling for a project without infecting the rest of the system. Even if the project itself isn't built with Nix, I will often have a shell.nix just to provision tools like Cargo and SBT. This becomes especially helpful with Rust where each of my Rust projects can have a different rustc version without needing to switch my rustup toolchain.

Stop speaking gibberish, start using interfaces

In the age of modular microservices, data pipelines, serverless, and IoT, handling data serialization has become a major design decision. While monolithic architectures are well, monolithic, coordination between components is simply a function call away. In contrast, components that are separated by a network or run as different stages in a workflow must communicate by serializing and deserializing data. Add in questions like how much data is being serialized, how often it needs to be serialized, how many languages are in play, and how various components evolve, and we can see how data serialization has turned from an incidental problem to a central one.

Existential types in Rust

For the past couple of weeks I have been using Rust for a project at work and enjoying it a lot. The emphasis on systems programming aligns well with my interest in systems, the unique type system keeps the programming languages enthusiast in me interested, and the use of expressive types, as always, keeps me in check and makes me confident in my code.

Installing NixOS

In an effort to force myself to learn Nix I spent last weekend installing NixOS on my desktop. It ended up being a fairly involved process for me, especially since I barely have any experience with Linux. Therefore I've decided to write about my installation process (to the best of my recollection anyways), both as a reminder to myself and for anyone else who may be curious.

My first Nix derivation

When I started learning Nix I set myself a milestone of contributing a derivation to Nixpkgs. Along the way I learned some interesting things about the Nix toolchain and began to really appreciate the freedom it gave me to experiment.

My journey into Nix

As a Windows user for many years, I always liked that there was a way to uninstall any program I installed1. When I moved to Mac OS and installed programs through the App Store, brew, pip, I quickly realized I had no clue how to reliably uninstall them. This made me quite uncomfortable, but I managed to live with it.