Tag: Computing

CPUID instruction and table

Monday, Jul 15, 2024

Here’s a few notes on CPUID and /proc/cpuinfo. I made a table for quick reference. What is CPUID? On x86 and amd64 CPUs, there is a large swathe of differences in features available to the software. Some CPUs ship with AES encryption support, others ship with virtualization support, almost all ship with a collection of SIMD (single instruction multiple data) instructions. The name of the game is to reduce CPU execution times using specialized instructions.

Continue reading…

Test your backups

Saturday, Jan 27, 2024

Figure 1: John from USA - CC-BY-2.0 Watch out, things break, stuff catches fire. Let’s talk about backups. Last post, I stated that I’m going to switch focus away from NixOS commentary. This is still the plan. Today, I am still committed to NixOS thanks to technical debt created - migrations aren’t for free. Until then, enjoy my NixOS posting :). Last fall, I wanted to reformat my laptop’s NixOS deployment from BTRFS (encased within LVM2 itself encased in LUKS) to a ZFS partition plus another swap partition.

Continue reading…

Another NixOS 23.11 upgrade gotcha

Monday, Jan 15, 2024

Figure 1: The laptop that was having a bad day with NixOS 23.11 More upgrade gotchas. Shucks. If everything goes well, this will be my last NixOS post. Read on to understand my frustration just a little bit more. My main laptop is a Lenovo Ideapad Flex 5 — simple and cheap device. The keyboard stopped working in the early boot after upgrading to 23.11. The impact: I need to a USB keyboard around to unlock the device from a cold boot.

Continue reading…

Multiple arguments in shebang

Wednesday, Jan 10, 2024

Figure 1: Jamian · CC BY 3.0 Deed (link) A frequent quip of the unix-beard is shebangs cannot contain multiple command-line arguments. Let’s break it down and see where this assumption no longer holds true. What is a Shebang? The shebang is the line at the beginning scripts such as Python and Shell scripts that instructs the OS how to execute the script. Looks something like #!/bin/sh or #!

Continue reading…

Upgrading my Workstation to NixOS 23.11

Wednesday, Jan 3, 2024

Figure 1: Official image for 23.11 Upgrading my workstation to 23.11 wasn’t as simple as I was hoping. Ran into a few issues. Performing the upgrade I’m using a flake, so all I should have to run is: # First edit flake.nix so it points to release-23.11. nix flake update nixos-rebuild boot --flake .# (Then systemctl reboot into the new generation that includes a new kernel.) Issue #1: pinentry package changes I can’t unlock any keys using gpg-agent (hence cannot use GPG keys for accessing my password database and send signed documents).

Continue reading…

Nix / NixOS misconceptions

Sunday, Aug 6, 2023

I’ve been using Nix for a year now. It’s been going fairly well, by the way. Here are some misconceptions I’ve had to overcome to become a more productive Nixer. False: You can’t deploy Nix software to Docker or Kubernetes False. If you can push to a docker registry such as docker.io, you can deploy to Docker or Kubernetes using Nix. You can use dockerTools.buildImage to build a docker image from Nix.

Continue reading…

My first game jam

Thursday, Jun 8, 2023

Source lives here. Play it here. In a joint effort, Aliasing and myself have created a novel top-down action rogue-lite for the 2023 Spring Lisp Game Jam. Aliasing is an experienced game dev so in a way, I was along for the ride. Still, I managed to contribute some game mechanics, features, unit testing, CI/CD that deploys to super-rogue.workinprogress.top on every commit. This was a fun devops exercise for me - Aliasing mentioned to me that I helped keep him on track with the addition of automated testing and per-commit deploys to a website (it makes it easy to play-test pull requests).

Continue reading…