Aaron Crowder avatar

Aaron Crowder

Hi, I'm Aaron Crowder. Or—if you know me online—CrowderSoup.

Father of two, Software developer, and lover of the open web. I like to take things apart (and sometimes even put them back together). I can frequently be found tinkering with some bit of code in my spare time.

My CMS Was Publishing My Posts Early

My CMS was publishing my scheduled posts early. On two sites. And nobody noticed, including me. Schedule a post for next Tuesday and it showed up the second you hit save: at its URL, in the post list, in the RSS feed, in the sitemap. It even tooted to Mastodon. Then next Tuesday rolled around and... nothing happened, because nothing was ever watching the clock. Drafts were worse. Saving one sent webmentions for a post nobody could even see yet. The CMS is Webstead, which runs this blog. I wro...

Read more

Morning Run

Morning Run

  1. Elevation profile

    Gain -- Loss --

    Distance
    --
    Moving time
    --
    Stopped time
    --
    Total time
    --
    Avg moving speed
    --
    Max speed
    --
    Elevation gain
    --
    Elevation loss
    --

Ran 3.2 mi in 32:37 (10:20/mi pace), 82 ft elevation gain.

First CRISPY run of the year!

First CRISPY run of the year!

  1. Elevation profile

    Gain -- Loss --

    Distance
    --
    Moving time
    --
    Stopped time
    --
    Total time
    --
    Avg moving speed
    --
    Max speed
    --
    Elevation gain
    --
    Elevation loss
    --

Ran 3.3 mi in 34:08 (10:19/mi pace), 75 ft elevation gain.

Morning Walk

Morning Walk

  1. Elevation profile

    Gain -- Loss --

    Distance
    --
    Moving time
    --
    Stopped time
    --
    Total time
    --
    Avg moving speed
    --
    Max speed
    --
    Elevation gain
    --
    Elevation loss
    --

Walked 2.7 mi in 52:00 (19:15/mi pace), 79 ft elevation gain.

Lunch Run

Lunch Run

  1. Elevation profile

    Gain -- Loss --

    Distance
    --
    Moving time
    --
    Stopped time
    --
    Total time
    --
    Avg moving speed
    --
    Max speed
    --
    Elevation gain
    --
    Elevation loss
    --

Ran 2.7 mi in 27:11 (10:11/mi pace), 79 ft elevation gain.

Saturday afternoon run around the park

Saturday afternoon run around the park

  1. Elevation profile

    Gain -- Loss --

    Distance
    --
    Moving time
    --
    Stopped time
    --
    Total time
    --
    Avg moving speed
    --
    Max speed
    --
    Elevation gain
    --
    Elevation loss
    --

Ran 5.0 mi in 52:32 (10:36/mi pace), 226 ft elevation gain.

I Gave an AI the Keys to My Repos. Here's the Leash.

When my home server started talking back, the next question was obvious: could it work on my code too? Honestly, this was the part I was most nervous about. A bot that writes a bad note gives me a bad note. A bot that pushes code can ship a bug to my live site (or get tricked into doing something I'd never approve). So this is mostly a post about guardrails. And about the pull requests that convinced me they work. Read-only first Before it could change anything, I wanted it to be able to read...

Read more