From qwerty to Dvorak to qwerty
I was sold a lie. Dvorak isn’t superior. Sure, it relies on the same reasoning that keeps the U.S. on the old British measuring system instead of switching to the…
How I upgraded my NVMe storage with Macrium Reflect Home
I had a computer with a 1TB NVMe storage device. It wasn’t enough, so I bought a 4TB NVMe device on Amazon Prime Day. I already had an NVMe enclosure…
How to quickly delete old branches in git
As you work in your local clone of a git repo, you tend to create lots of topic branches. These will often get merged online via pull requests, leaving the…
How to safely exfiltrate secrets from Azure Pipelines
Azure Pipelines does what it can to prevent accidental logging of secrets. As long as you tell it a particular value is a secret (through marking a variable as a…
How to set up custom Azure Pipelines agents
Azure Pipelines and GitHub Actions offer generous compute time for OSS repos PR and CI builds. But when your repo is private, the economics change dramatically. For Azure Pipelines as…
When string literals are better than nameof(id)
In C# programming, magic strings often get a bad reputation. They are seen as a code smell, something to be avoided. The advent of nameof(x) in C# gave us a…
To buy and to hold
Most folks will just buy and hold a cryptocurrency (often referred to as HODLing), waiting for someone else to drive the price up so they can make money. When the…
.NET library for Zcash
My recently released Nerdbank.Zcash library is available on nuget.org and makes the Zcash cryptocurrency accessible to .NET apps. This library exposes all the APIs necessary to generate seed phrases and…
Rust: A C# developer’s perspective
I’ve programmed primarily in C# for over 20 years. Before that, I did a mix of C++ and VB, and a bit of ruby. While I’m a long-time fan of…
Keeping Zcash sync fast while supporting IVKs
Background into IVKs and internal addresses ZIP-32 describes how to derive accounts and keys for Sapling and Orchard pools. Among these are “internal keys” and “internal addresses”. Internal addresses are…