Shawn Holwegner's Blog

lather. rinse. repeat.

It's hard to believe that Razor1911 is 40 years old.

It's even harder to believe that we've collectively been around that long. When they were formed, I was lucky enough to clack around on an offline (obviously) Apple ][ series in school. It wasn't for several more years that we'd end up with a bi...

This is my first "complete" day with everything I wanted Grav to do.

Local RAM cached FastCGI service for dynamic content and the software itself - all in under 256MB of RAM.

Contact form working with anti-spam mechanisms and anti-bot- This took me ages to get right with Apache. Under nginx,...

Recently, a simple ugprade wreaked havoc on my old blog.

I didn't even notice at first- all appeared fine until I did a trivial search for my ebtables writeup from 2017, and the search looped back upon itself until it recused to the point of exhaustion.

Stef Dawson, a great developer with Te...

It’s 2025, so this shouldn’t happen – but it still does.

I’m doing some work on migrating a failed project of sorts- it isn’t a complete failure- but it didn’t accomplish what the goals were, and right now it’s in a holding stasis.. however, needs to be made stable, and trustworthy before other...

Since I haven’t uploaded any images since 2018, I can’t tell you specifically when the images subsystem broke – but I discovered it wasn’t working today.

>describe prefix_txp_image;

Field Type Null Key Default Extra
id int(11) NO 0

… uh, that’s not right....

Despite moving most of my place-of-work’s computing into the cloud, I still rent an ancient computer for less than $1/day to host several of my projects, including this blog.

It’s been pretty stable, but since I have been gently pushing the hardware, the network card has been failing and starting...