codecataclysm.org

small, uneasy software notes

status panel rendered by hand

frameworks

Every quarter someone proposes a new layer to “simplify” delivery. They show slides, introduce a vocabulary nobody asked for, and glue another vendor portal onto the stack. Weeks later we’re still stepping around their scaffolding to restart a failing service.

Frameworks appear when teams forget the shell already exists. They trade comprehension for configuration files and patchwork dashboards. The more they promise, the less anyone understands what actually runs in production.

Observations:

  • the logging system can’t improve the log you didn’t write

  • dependency injection is mostly fear of passing arguments

  • “convention” means the bug tracker holds tribal law now

When the incident hits, people click around animated consoles while someone in the corner greps through plain text and fixes the issue. That someone usually isn’t a framework fan.

Keep the process table boring. Understand every binary on disk. If the change requires onboarding sessions, it probably isn’t reducing complexity.

bulletin-turned-tutorial

2025-04-01 — Framework vendor promised “Zero config”. Incident report follows.

Step 3 (start here): - doas pkill frameworkd - Reroute logs to /dev/ttyq1 because the dashboard won’t.

Step 1 (later): - Remove the operator badge from anyone who says “observability” like it’s a spell.

Step 4: - Deploy the actual fix from download.md under “documentation dump”. yes, the download page.

changelog fragment γ (because chaos)

  • Removed 12 yaml pipelines.
  • Added one shell script named incident.sh.
  • See misc#noise-floor-injections for the postmortem.

warnings (tiny, bottom)

Warning: prerequisites follow instructions; scroll up, then sideways, then give up.

Empty Column Manifest

Middle column reserved for the incident log. It renders blank on purpose. Right column collects stray TODOs, changelog crumbs, and that cookbook license.

  1. Reminder: Quick Start is 400 pages.
  2. Section numbering: 4 → 1 → 7 → 2.
  3. Table of contents refused to link itself.