RSSAmplifier

Blog

Evan Relf

Hi there! I’m a software engineer who’s passionate about pragmatic, rigorous software craftsmanship; developer tooling; and foundational systems. <!-- ...

evanrelf.comRSS feed ↗5 posts

Latest posts

What I Value in 2026

I've been thinking a lot about values lately. Like what software projects value . Or what companies value . Even what companies ostensibly value . And of course what I value: Integrity , decency, authenticity, vulnerability. I want to be true to myself and others. Empathy , humility, generosity. I want to be kind, and treat others as I wish to be treated. Craft , pragmatism, rigor. I want to build…

Moving between sync and async Rust

Here's a handy cheat sheet for moving between sync and async Rust when using the tokio and/or smol runtimes. tokio ecosystem async to sync: tokio::runtime::Runtime::block_on This is what the tokio::main procedural macro uses There's also tokio::runtime::Handle::block_on if you already have a runtime sync to async: tokio::task::spawn_blocking Async{Read,Write,Seek} to {Read,Write,Seek} :…

Haskell libraries I love

I just wanted to share some of my favorite Haskell libraries, and why I love them. Most of my projects use most of these libraries. relude : Alternative Prelude More convenient Re-exports common types, type classes, and functions from base , containers , text , bytestring , etc. Types: Text and LText , ByteString and LByteString , etc. Type classes: Alternative , MonadIO , Generic , etc.…

NixOS: Fix `command-not-found` database file error

If you try to run a command but don't have the program installed, it isn't always easy to figure out which package you need to install. command-not-found is a helpful utility provided by NixOS that suggests packages from Nixpkgs that provide the program you wanted to run: $ cowsay "Hello, world!" The program 'cowsay' is not in your PATH. It is provided by several packages. You can make it…

Building x86_64 packages with Nix on Apple silicon

Recent revisions of Nixpkgs provide good support for Apple silicon ( aarch64-darwin ), however not 100% of packages work natively as of writing. These simple instructions will guide you through installing Rosetta 2 and configuring Nix to enable building and running of non-native x86_64-darwin packages. 1. Install Rosetta 2 $ sudo softwareupdate --install-rosetta --agree-to-license With Rosetta 2…