23 posts

Writing

Notes from whatever I am taking apart — Linux and NixOS, containers and systemd, Rust, and the edge.

· 1 min

USB Cable Testing on Linux

usbmon turns Wireshark into a cable tester, and finds retransmissions on cables that supposedly work.

usb · linux · wireshark · test

· 2 min

Secure Boot NixOS UKI Installer

A flake that builds a signed unified kernel image, for rescuing a Steam Deck locked out by Secure Boot.

nixos · secure boot · steam deck

· 3 min

Podman Quadlets

Quadlets describe a container as a systemd unit, so systemd owns the lifecycle instead of Podman.

linux · systemd · podman · containers · quadlet

· 1 min

Email bot

Cloudflare email routing plus Workers AI: an inbox that answers its own mail.

typescript · serverless · cloudflare

· 2 min

NixOS Flakes

What a flake actually is: inputs, outputs, and a NixOS configuration with every dependency pinned.

nixos

· 2 min

Cloudflare Workers Telegram Bot

A tour of the rewritten cf-workers-telegram-bot API for running a Telegram bot on Cloudflare Workers.

typescript · cloudflare

· 1 min

Search bar in Sveltekit

The fuzzy search on this site, built with fuse.js.

svelte · sveltekit · javascript · typescript · serverless · cloudflare

· 3 min

Auth and Databases in Sveltekit

HTTP Basic Auth with a session cookie in SvelteKit, backed by Cloudflare D1.

svelte · sveltekit · javascript · typescript · serverless · cloudflare

· 1 min

Using Llama2 on Cloudflare Workers

Wiring Workers AI into a Telegram bot: the AI binding, the model call, and getting a reply back.

· 2 min

Using Ostree for file snapshots

Ostree is not just for Silverblue. Using it as a content-addressed snapshot store for your own files.

linux · backup · ostree

· 1 min

Flatpak Mesa Git

Swapping the Flatpak Mesa runtime for mesa-git so a new AMD card stops falling back to software OpenGL.

linux · graphics

· 2 min

BTRFS RAID1 and how to fix it

Setting up a two-disk BTRFS RAID1 for a Steam library, and repairing it when a drive starts throwing errors.

linux · backup · raid

· 2 min

Using any Linux Distribution with Flatpak

Flatpak makes the host distribution almost irrelevant, down to proprietary codecs and games on musl Alpine.

linux · graphics

· 1 min

Fedora 8814au Kernel Module Compilation

Compiling the out-of-tree 8814au driver for an Alfa AC1900 on Fedora, kernel headers and all.

linux · kernel · development

· 1 min

Using X11Docker for secure GUI applications

Running GUI applications like telegram-desktop inside a container with x11docker, xpra and Wayland.

docker · podman · graphics

· 1 min

Podman Auto Updating Systemd Services

podman generate systemd plus an autoupdate label: containers that start on boot and update themselves.

linux · docker · podman

· 2 min

Podman crun and cgroups v2

Getting Podman onto cgroups v2 and crun on distributions that still default to cgroups v1 and runc.

linux · docker · podman

· 2 min

Managing State in React

useState, what triggers a re-render, and where React state should actually live.

programming · javascript · react

· 2 min

React.js Card

Building a reusable, nestable card component while learning how React composition works.

programming · javascript · css · react

· 2 min

Fedora Silverblue

Why an atomic rpm-ostree desktop stuck: updates that check out like git, and roll back the same way.

linux

· 2 min

Alpine Linux LBU

Alpine can commit changes back onto its own live ISO. Using LBU to build a persistent maintenance drive.

linux · alpine

· 5 min

2FA Everything

Moving a password store between pass and KeePass, and getting two YubiKeys to guard all of it.

security · linux

· 2 min

WebSockets in Rust

Part one of a Rust series: a WebSocket server built on the ws crate.

rust · websocket · programming