I use Lix on aarch64-darwin without home-manager or nix-darwin. When I tried to upgrade my installation, I saw the error: $ nix upgrade-nix => error: path &#…| yaymukund's weblog
Rust’s log crate crate is a thin macro interface for logging that can plug in to many different backends. Its functions can be called just like println!: let yo…| yaymukund's weblog
I had to install NixOS on my Raspberry Pi 4, Model B recently. I didn’t have the HDMI→ micro HDMI cable so I decided to install it headlessly. This is a fairly intricate setup because I wanted to: Cross-compile from aarch64-darwin→ aarch64-linux. Remote build using nixbuild.net to speed up build times. Build from my memory-constrained 1GB Raspberry Pi.* It involved a few gotchas which I want to document here. * Note: Although it is possible to offload the compilation to nixbuild, you st...| yaymukund's weblog
I use Nix Flakes on OSX to setup my development environment. I’ve not seen| yaymukund's weblog
In this post, I’ll demonstrate how to score an animation using Orca. What is Orca? The final score What is a score? Learning how to wait Wiring up sounds Timers in practice Conclusion| yaymukund's weblog
While NixOS fully supports making restic backups using Backblaze, I couldn’t| yaymukund's weblog
In NixOS, it’s sometimes desirable to override a package in order to extend or modify its behavior. For example, I override my Neovim to add plugins so they get all the benefits of being in the nix store. Here’s how I do it.| yaymukund's weblog
This is a list of places in Rust where implementing a trait or using a struct affects the syntax of your code. I think of these features as “magical” because using them can change the behavior of very basic Rust code (let, for-in, &, etc.). What follows is a small list of (hopefully) illustrative examples, and a short epilogue pointing you to more articles if this topic interests you.| yaymukund's weblog
Here’s how you wire up an AWS lambda into an HTTP API using Terraform and AWS’s API Gateway v2 resources.| yaymukund's weblog
In Jon Gjengset’s Demystifying Unsafe Code talk at Rust NYC, he gives a very interesting example of unsafe code. Here’s the link– please go and watch it– but I’ve transcribed it here along with my paraphrased explanation.| yaymukund's weblog
A Few Things Like These (Ippatiyum Cila Vicayankal)| yaymukund's weblog
In the following code, how can you test that Player is making the correct API calls? struct Player<'a> { api: &'a Api, } impl<'a> Player<'a> { pub fn new(api: &'a Api) -> Player<'a> { Player { api } } pub fn play(&self, song: &str) { self.api.sing(song); } pub fn stop(&self) { self.api.shush(); } }| yaymukund's weblog
Here’s how you add a wireless printer to Sway. You’ll need the following tools: CUPS, the “standards-based, open source printing system” Avahi for wireless support nss-mdns, so we can refer to the printer as <hostname>.local (e.g. myprinter.local)| yaymukund's weblog
By translating these poems, we aim to memorialize Xu, share some of his excellent literary work, and spread awareness that the harsh conditions, struggles and aspirations of Chinese migrant workers (including but not limited to Foxconn) have not diminished since the more widely-publicized spate of 18 attempted Foxconn suicides in 2010, resulting in 14 deaths. Insiders report that thereafter, although the frequency of suicides decreased (mainly due to Foxconn’s installation of nets making it...| yaymukund's weblog
Looking to keep the [Soviet–Afghan] war fueled, Washington– where the| yaymukund's weblog
One result of all the outside attention was the 2004 constitution [of Afghanistan], drafted with heavy Western input and hailed as one of the world’s most prog…| yaymukund's weblog
Rotary dial telephones are a fantastic way to start learning about electronics. They’re built to be disassembled and serviced (because they were originally rent…| yaymukund's weblog