NOTES AFTER HOURS

Practical notes on Linux, small servers, and the web, plus short pieces from after hours.

Writing · Page 4 of 7
77 notesBrowse archive

When Cron Does Not Share Your Shell

Fix a script that works in your terminal but fails under cron by giving the job explicit paths, a small environment, and a log.

2 min read

Floor 8 Is Temporarily Unavailable

An apartment elevator stops going to the eighth floor after overhearing a complaint, and the residents write it a formal apology.

2 min read

Reading a Failed systemd Service Without Scrolling Forever

A compact sequence for checking a failed systemd unit, its recent logs, and the exact configuration systemd loaded.

2 min read

Our Coffee Machine Thinks I'm Kevin

An office coffee machine swaps its error messages for personal remarks, a wrong name, and one accurate warning about the milk.

2 min read

SSH Config Aliases for a Small Fleet

Replace long SSH commands with readable host aliases while keeping usernames, ports, keys, and jump hosts explicit.

2 min read

The Convenience Store Knew My Schedule

A convenience store clerk knows one customer's late-night order so well that arriving two minutes early causes concern.

2 min read

A Small GitHub Actions Workflow That Runs Your Tests

A compact GitHub Actions workflow that tests a Node project on pushes and pull requests, with npm caching, a concurrency group, read-only permissions, SHA-pinned actions, and a short routine for reading failed runs.

7 min read

Troubleshooting Google Public CA and acme.sh

Work through Google Public CA problems with acme.sh, from EAB registration and DNS-01 validation to installation and renewal.

3 min read

A Multi-Stage Dockerfile That Ships Only the Build Output

Build a static site in a Node stage, ship only the generated files on nginx, and use --target, docker image ls, and docker history to confirm what actually ended up in the final image.

6 min read

Use EXPLAIN ANALYZE Without Surprises

Read a real PostgreSQL query plan while limiting runtime risk and remembering that ANALYZE executes the statement.

2 min read

One Slow MySQL Query and the Index It Wanted

Read MySQL 8 EXPLAIN output for one slow query, choose composite index column order, make the index covering, and retire unused indexes safely by making them invisible first.

9 min read

The Hotel Key That Opened Nothing

A hotel key fails at every door except the one place nobody intended to visit.

2 min read