Hi there! I’m a software engineer who’s passionate about pragmatic, rigorous software craftsmanship; developer tooling; and foundational systems. <!-- ...
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…
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} :…
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.…
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…
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…