Wilhelm Maritz
  • Home
  • About
  • Skills
  • Projects
  • Posts
  • Dark Theme
    Light Theme Dark Theme System Theme
  • Tags
  • Agents
  • Algorithms
  • Architecture
  • Automation
  • Backups
  • Batch
  • Btrfs
  • Caching
  • Case-Study
  • Cloudflare
  • Code-Review
  • Cryptography
  • Debugging
  • Deployment
  • Docker
  • Documentation
  • Expressions
  • Firebase
  • Flask
  • Game-Design
  • Git
  • Graphics
  • Hardware
  • Homelab
  • Hugo
  • Hyprland
  • Incidents
  • Javascript
  • Jinja
  • Johnny-Decimal
  • Knowledge-Management
  • Linux
  • Low-Code
  • Markdown
  • Mentoring
  • Monitoring
  • Obsidian
  • Omarchy
  • Onedrive
  • Opinion
  • Organisation
  • Parsing
  • Performance
  • Physics
  • Power-Automate
  • Process
  • Proxmox
  • Pygame
  • Python
  • Raid
  • Railway
  • Safari
  • Security
  • Self-Hosting
  • Sqlite
  • Ssh
  • Static-Sites
  • Tailscale
  • Timezones
  • Tooling
  • Windows
  • Wsl
  • Zettelkasten
  • Zimaos
Hero Image
My deploy ran my tests, and my tests ran my deploy

My desktop ran out of memory five times in two days, once killing 29,082 processes at a stroke. Two files that were each sensible on their own had made a loop with no way out.

Wednesday, October 21, 2026 | 6 min read Read
Hero Image
Railway shows my request counts but won't export them

Railway's dashboard knows how many requests my app served, but there's nothing for Prometheus to scrape. Turning its per-minute figures into a counter goes wrong three ways.

Sunday, October 11, 2026 | 7 min read Read
Hero Image
A third of my request was the garbage collector

A slow grid in a Flask app I maintain had an obvious suspect. The biggest cost was Python re-checking 134,000 objects that would never be freed.

Friday, October 9, 2026 | 7 min read Read
Hero Image
The badge that said 21 for a count of 1

I added a small shield badge showing how many months someone had won a challenge. On my own profile, with one win, it said 21. The sample render I had checked it against said 1.

Monday, September 7, 2026 | 2 min read Read
Hero Image
Running SQLite in production (yes, really)

I deployed a Flask app to Railway with SQLite as the only database. Here is why that was the right call, and the five things that actually bite when you do it.

Wednesday, July 22, 2026 | 5 min read Read
Hero Image
Use secrets, not random, and remember the shuffle

Python's random module is the wrong tool for passwords, and swapping it for secrets is only most of the fix. The shuffle at the end catches people out.

Sunday, August 24, 2025 | 4 min read Read
Hero Image
Parsing Markdown by alternating on odd and even

The nicest idea I met while building boot.dev's static site generator: parse inline Markdown by splitting on the delimiter and alternating, and get validation free from the section count.

Wednesday, March 5, 2025 | 4 min read Read
Hero Image
The particle fade that never faded

I wrote fade-out code for explosion particles in a Pygame project, and it looked fine to me for months. It never faded once, and the reason is a quiet rule about how Pygame draws.

Sunday, January 26, 2025 | 4 min read Read
Hero Image
Space has no drag, so I added some

The guided version of Asteroids moves the ship directly: press a key, move; release, stop. I wanted it to feel like space, which meant momentum, and momentum turned out to need a compromise.

Sunday, January 19, 2025 | 5 min read Read
Navigation
  • About
  • Skills
  • Projects
Contact me:
  • [email protected]
  • B3ardBr0
  • Wilhelm Maritz

Toha Theme Logo Toha
© 2026 Wilhelm Maritz
Powered by Hugo Logo