Docker BuildX: When Cache Goes Wrong
Had a weird Docker issue today. Image built successfully but ran old code. Turned out to be stale cache layers. The Problem # Build succeeds docker buildx build -t myapp:latest . # [+] Building...
Had a weird Docker issue today. Image built successfully but ran old code. Turned out to be stale cache layers. The Problem # Build succeeds docker buildx build -t myapp:latest . # [+] Building...
Switched to Rime for Chinese input on Arch Linux. Here’s my setup with the rime-ice dictionary. Install Rime Using iBus framework: sudo pacman -S ibus-rime Dictionary: rime-ice Instead of d...
If you’re using org-roam with Emacs 29 and experiencing slow database queries or timeout errors, there’s a simple but non-obvious fix: switch to Emacs 29’s built-in SQLite connector. This one-line ...
Found a nice tmux theme and programming font combination. The Theme Using Catppuccin theme for tmux: catppuccin/tmux Clean pastel colors, easy on the eyes. Setup Add to .tmux.conf: # Using ...
Discovered Atlas today. It’s a database schema management tool that actually makes sense. What It Does Instead of writing manual migration files, you declare your desired schema and Atlas figur...
Grafana was feeling sluggish. Enabled SQLite WAL mode and noticed immediate improvement. The Change In Grafana config, enable WAL (Write-Ahead Logging) for SQLite: [database] wal = true Rest...
Hit a concurrency bug with gRPC streams. Turns out they’re not thread-safe for concurrent writes. The Issue Was trying to write to a gRPC stream from multiple goroutines. Got strange errors and...
Discovered dumb-init for handling process signals properly in Docker containers. The Problem Docker containers often run a single process as PID 1. But PID 1 has special responsibilities in Uni...
Was researching Go project layouts. Found an interesting debate about golang-standards/project-layout. The Repository golang-standards/project-layout is a popular repo showing a “standard” Go p...
Hit an issue creating multiple Chrome browser instances with chromedp in Go. Same user data directory was the problem. The Problem Tried to create multiple browser instances: ctx1, cancel1 := ...