May 1, 2025 July 22, 2025 --> Contents Big Blue Hardware Overview Battery Suspend Security Hardware Installation Disk Layout and Encryption Security Configuration Secure Boot Setup TPM Disk Encryption Defense against boot attacks Fingerprint Unlock NVMe Powersaving settings Userspace management Nix settings Home-Manager Flake Local AI with ollama In early 2025, I finally found my dream Linux…
March 29, 2022 June 23, 2022 --> Contents What is Nix? Expression language Package manager Operating system Installation Opt-in state Config-as-code Home directory management Example Why? NixOS generations Shells Downsides Documentation The language Conclusion NixOS is a radical reimagining of what a Unix-like operating system can be like. It has a concept of generations that permit you to roll…
December 24, 2021 July 30, 2025 --> Contents Cryptographic doom Verifying a JWS Attacker-controlled algorithms Protocols should be defensive against implementations A better way to sign JSON JWS is the kind of thing where you could be forgiven for thinking hey, everyone’s using this, so it must be good! JWTs are built on JWS, and lots of people use those. JWS is standardized by the IETF in RFC7515…
December 8, 2016 December 09, 2016 --> This post is a quick update about my website. I love running my personal site. It is my diary, it is my intellectual backbone, and it has gone largely neglected for most of 2015–2016. I am working on redirecting attention back to my blog and starting to write publicly again; let us see if I will be successful. This post is a very quick and rudimentary…
December 3, 2016 December 03, 2016 --> Contents Free software backoff Computer brand Programming languages Conclusion When I started computing, I was heavy into customization. I wrote Powerusers , which was about the intense customizations I had done to personalize my Arch Linux distribution. It felt sort of juvenile to spend that much time ricing my Linux distro. But it was fun. Linux and…
May 17, 2015 December 03, 2016 --> Contents Toy script comparisons Running sum OOP Hidden Conclusion Python and Ruby always struck me as somewhat related. They’re both dynamic languages from the 1990s, still highly popular, and influenced a number of more modern dynamic programming languages like Julia . They’re similar enough in spirit that one can easily fall into the trap of thinking that if…
April 15, 2015 April 15, 2015 --> Contents Red Hat PCSE Coding Challenge Mike Bland, CNU research, Google, and the US Government Microcontrollers are fun Leaving college, joining Palantir I haven’t blogged since January, and I really wish I had a better reason for it but the truth is I simply have not applied my characteristic productive laziness to writing. I’ve been reading a lot of jwz lately.…
January 17, 2015 March 22, 2015 --> This world has enough great ideas. You need a great implementation. A tremendous amount of my more introspective/thoughtful brainpower is spent considering great ideas. I think about the ones that are successful; I try to come up with ideas of my own; I repeatedly fail at the latter. One of my goals as a software developer is to someday design and implement a…
December 13, 2014 December 03, 2016 --> Contents Picking a rebase target Cleaning your worktree Blasting apart history Removing unrelated files Making new commits Conclusion I always appreciate it when people share some of the quirks of their development workflow, particularly with Git, since the version control monster is so powerful that it can be difficult to stumble your way through its…
December 8, 2014 March 22, 2015 --> In an effort to help out one of my readers, I made a quick Asciicast demo of the first few steps in my Towards a Vim-like Emacs blog post. Since I figure at least a few others might be interested, I’ve reproduced it here: 1 Does anyone know how to download from Asciinema? If so, drop me a line . I’d love to keep a backup copy of the stuff I upload there. Update…