Archive

All published posts

2604 posts latest post 2026-10-20
Publishing rhythm
Sep 2026 | 28 posts

Dec 29 – Jan 4, 202610 months ago

Featured this weekWriting

Today I discovered vim-speeddating by tpope. I’m sure I’ve seen years ago but it did not click for my workflow until today. I often go through pictures from my phone for the past few days and make Posts tagged: shots posts, but I want to date them to about when the image was taken most of the time. This allows me to quickly bump days up and down using c-a and c-x even around the new year.

Sound on, listen to those new switches.

Writing

Yesterday I wrote about a way to do light mode screen recording to convert to light mode from dark mode with ffmpeg. I was wondering if it could be done entirely on the front end for web applications. Turns out you can. I’m sure there are limited wikis and site builders that don’t allow adding style like this, but it works if you can.

<video
    src="https://dropper.waylonwalker.com/file/1c53dbcb-4b84-4e94-9f04-a42986ab3fa1.mp4?width=800"
    controls
    style="filter: invert(1) hue-rotate(180deg) contrast(1.2) saturate(1.1);"
    >

<!--markata-attribution-->
</video>

0 deg hue rotate

90 deg hue rotate

180 deg hue rotate

270 deg hue rotate

Writing

I saw this tip from Cassidoo and had to try it out for myself. I kicked on a screen recording right from where my terminal was, converted it, and it actually looks pretty good.

ffmpeg \
   -i screenrecording-2026-01-01_10-10-49.mp4 \
   -vf "negate,hue=h=180,eq=contrast=1.2:saturation=1.1" \
   screenrecording-2026-01-01_10-10-49-light.mp4

Dark Mode

Light Mode

There are a few unsettling things about it, but overall I feel like it was a success.

Link

I recently discovered vim-speeddating by tpope, and it’s truly impressive. speeddating.vim: use CTRL-A/CTRL-X to increment dates, times, and more

Link

Link

I’m really excited about gastown, an amazing project by steveyegge. It’s worth exploring! Gas Town - multi-agent workspace manager

Link

Check out 99 by ThePrimeagen. It’s a well-crafted project with great potential. Neovim AI agent done right

Photo journal · Dec 29 – Jan 4, 2026

In pictures 8 photographs

Kickflip down the 3 set using my new hand made 5 ply fingerboard.
I’m Loving These Akko Creamy Yellow V3s
my latest porta john full mx build with Akko Creamy Yellow V3s installed on the right side and a hodge podge of Durock Lupine and kaihl browns on the left.
A collection of custom mechanical keyboard keycaps, including several sets of purple, white, and other colored keycaps, are arranged on a wooden desk surface
A collection of custom mechanical keyboard keycaps, including several sets of purple, white, and other colored keycaps, are arranged on a wooden desk surface.
Portajohn3 Ironing Issues
I turned on ironing on the Portajohn3 print and it did not turn out good
Portajohn3 Keyboard Plate
A black keyboard plate with multiple switch sockets, awaiting switches and PCB.
Custom Keyboard Keycaps and 3D Printer
Portajohn3 on the printer
My First Hand Pressed Fingerboard Complete
My first hand pressed fingerboard with teak tuning trucks. It has a purple bottom layer. Sitting on the bottom of a 3-stair.
New Dart Board In The Basement
I got a new dart board in the basement for Christmas, It's been super fun to play with the kids. We are getting a pretty good setup down there.

Note

The most popular blogs of Hacker News in 2025 Michael Lynch maintains HN Popularity Contest, a site that tracks personal blogs on Hacker News and scores them based on how well they perform on that platform. The engine behind … Simon Willison’s Weblog · simonwillison.net Congrats Simon! Well deserved metric for the leve…

Note

new keeb so good

New keeb feeling so good I don’t want to leave it. I’m going to go from having my worse favorite at work, to having my new favorite at work.

Note

Dec 22 – Dec 28, 202510 months ago

Featured this weekWriting

I’ve found Gemini to be very useful lately, especially for finding information within long form content.

When writing thought-896, I wanted to use a direct quote from Jeff Dickey, Gemini popped it out very quickly.

give me a quote from jeff just before the timestamp I'm at the interviewer
asked what makes a good cli and he started talking about stdout/stderr

In another case, my wife and I are huge Good Eats fans. Alton Brown taught us how to cook during college and on. We watched every single good eats episode nearly 10 years after they aired. He is back with some updates to those those shows on his Youtube. Gemini gives very good detailed responses with timestamps.

Alton Brown had a recent YouTube video for cooking turkey. Can you get the
instructions from the video?

Link

Link

Photo journal · Dec 22 – Dec 28, 2025

In pictures 5 photographs

First Fingerboard In The Press
5 layers of plywood pressed into a 3d printed fingerboard press.
Garmond And Zaza
Simon Says Bell Ending
Simon Says Bell
Codeium Is Cooked
Codeium what are you doing? It's spamming I'm a little bit of a nerd in the completion.

Note

I actually like linus’s take here. My parents dropped $4k (~$8k in todays money) on a computer when I was a kid, (which turned into something too $$ to let me touch at that point). I played some educational games that no one else has heard of and I’ve long forgotten along with an early ciivilization game. It was e-wast…

Note

Smartphones are black holes They can bend spacetime without you even realizing it. People often get offended when I tell them that I don&#39;t have a phone, thinking that I&#39;m lying and I just Sylvain Kerkour · kerkour.com This sounds great…. I’m sick AF right now and dont want to do anything but watch YouTube, and…

Note

Yeah there’s some basics, you know things you might expect like using standard error and standard out correctly. One thing I’ll say on that because I think this is commonly misunderstood, standard error is not for errors, it’s for any information that isn’t part of the normal output. So you know often times that’s warn…

Note

Ping 15

mise looks like what I wanted nix to be for me.

Dec 15 – Dec 21, 202510 months ago

Featured this weekWriting

Developer Vs Artist Ai

The other day I was watching [thePrimeTimeagen]https://youtube.com/@theprimetimeagen?si=jVcp23FbfQSFZfDc) and he talked about devs loving ai and artists revolting. There was some discussion in chat about art being more creative and prime quickly squashed that. He ended with being oddly confused why developers are jumpi…
4 min read

Link

Link

Maxteabag has done a fantastic job with sqlit. Highly recommend taking a look. A user friendly TUI for SQL databases. Written in python. Supports SQL server, Mysql, PostreSQL and SQLite, Turso and more.

Link

webi-installers by webinstall is a game-changer in its space. Excited to see how it evolves. Primary and community-submitted packages for webinstall.dev

Photo journal · Dec 15 – Dec 21, 2025

In pictures 4 photographs

Phantom End
Phantom Fight
Phantom
Fixing The Marquee For Jolly Holiday
Waylon up at the Marquee of the theater fixing the fallen letters before the night show.

Note

Mise looks promising

I’ve been all in on just for a while now, but mise looks so good it might be my next move.

Note

Note

Gross phone

Is there a world that giving my phone to my kids does not result in it being covered in peanut butter and snot?

Note

Note

Note

Ping 12

Is bet new teen lingo? My kid is starting to say bet in every sentence.

So he explained it as “I’m down”, “You bet”, “Yes”, “I like that”, “You betcha”

Note

Silksong DLC announcement already, we waited 8 years for the game, and are getting DLC’s months after launch. Dudes I haven’t even finished the game get, maybe not even half way. It’s amazing. Its amazing that these three make such a kick ass game with great art, story, voice, gameplay, and now drop a free dlc in 2026.

Note

Ping 11

Naming things is hard, pings will now be numbered.

Note

I’m being gaslit by the ai

I’m being gaslit by the ai. It just did a big hard change, now cant do a seemingly basic change, and assures me that that its fixed my issue on every iteration.

Dec 8 – Dec 14, 202510 months ago

Featured this weekWriting

I’ve been using this one for awhile now, I have a post type that I only edit from my phone, but I have all the post numbered. I set up a template in obsidian for using templater, the template goes right in the static site repo, I point templater to the templates directory and this has been working pretty seamlessly for awhile.

---
date: <% tp.date.now("YYYY-MM-DD HH:mm:ss") %>
templateKey: myposttype
published: true
tags:
- myposttype
<%*
const folder = "pages/myposttype";

// get all files in the vault, keep only those inside the folder
const files = app.vault.getFiles().filter(f => f.path.startsWith(folder + "/"));

// extract numeric suffixes from filenames like myposttype-123.md
const nums = files.map(f => {
  const m = f.basename.match(/^myposttype-(\d+)$/);
  return m ? parseInt(m[1], 10) : null;
}).filter(n => n !== null);

// next number (start at 1 if none exist)
const next = (nums.length ? Math.max(...nums) : 0) + 1;

// include the .md extension when moving
const newPath = `${folder}/myposttype-${next}`;
await tp.file.move(newPath);
%>
---

Writing

--name-status is a great way to see what files have changed in a git diff alongside the status code. I recently used this in a script to create a report of new and modified files during a build.

git diff --name-status
git diff --name-status origin/main
git diff --name-status --staged
git diff --name-status 'HEAD@{3 days ago}'

Writing

Writing

I learned to today that setting MEMORY on your minecraft server causes the JVM to egregiously allocate all of that memory. Not setting it causes slow downs and potential crashes, but setting INIT_MEMORY and MAX_MEMORY gives us the best of both worlds. It is allowed to use more, but does not gobble it all up on startup.

In this economy we need to save all the memory we can!

Here is a non-working snippet for a minecraft server deployment in kubernetes.

      containers:
        - name: dungeon
          image: itzg/minecraft-server
          env:
            - name: EULA
              value: "true"
            - name: INIT_MEMORY
              value: "512M"
            - name: MAX_MEMORY
              value: "3G"

and in docker compose

  dungeon:
    image: itzg/minecraft-server
    environment:
      EULA: "true"
      INIT_MEMORY: "512M"
      MAX_MEMORY: "3G"

Writing

I found snow-fall component from zachleat, and its beautiful… to me. I like the way it looks, its simple and whimsical.

Install #

There is an npm package <a href="https://zachleat.com" class="mention" data-name="Zach Leatherman" data-bio="A post by Zach Leatherman (zachleat)" data-avatar="https://screenshot.11ty.app/https%3A%2F%2Fwww.zachleat.com%2Fopengraph%2F%3Fpage%3D%252F%26cache%3D_p1792265522111/opengraph/" data-handle="@zachleat">@zachleat</a>/snow-fall if that’s your thing. I like vendoring in small things like this.

curl -o static/snow-fall.js https://raw.githubusercontent.com/zachleat/snow-fall/refs/heads/main/snow-fall.js

I generally save it in my justfile so that I remember how I got it and how to update…. yaya I could use npm, but I don’t for no build sites.

get-snowfall:
    curl -o static/snow-fall.js https://raw.githubusercontent.com/zachleat/snow-fall/refs/heads/main/snow-fall.js

Usage #

Now add the component to your page.

<!-- This belongs somewhere inside <head> -->
<script type="module" src="snow-fall.js"></script> <!-- Adjust the src to your path -->

<!-- This belongs somewhere inside <body> -->
<!-- Anything before will be below the snow. -->
<snow-fall></snow-fall>
<!-- Anything after will show above the snow. -->

Writing

One Year Of Shots

I’ve been running my shot scraper api for a year now. It creates og images for my website and thumbnails for my Reader using a headless chrome instance. 25870 shots 73 shots per day on average 12-09-2025 first shot taken Histogram You can see in the histogram that I’ve had a few big spike days, This has been mostly for…
2 min read

Writing

Today I learned an important lesson that you should periodically check on your kubeconfigs expiration date. It’s easy to do. You can ask for the client-certificate-data from your kubeconfig, decode it, and use openssl to get the expiration date.

kubectl config view --raw -o jsonpath='{.users[0].user.client-certificate-data}' \
  | base64 -d 2>/dev/null \
  | openssl x509 -noout -dates

Note

This will only work for the first user, if you have more than one user or context defined in your kubeconfig you will need to adjust.

Link

Photo journal · Dec 8 – Dec 14, 2025

In pictures 8 photographs

Finished Elf House
Waylon and Rhiannon standing in front of a mostly finished elf house built for the Jolly Holiday Performance at the local theater.
Cogwork Saved Pill
Dude Locked In
My son wanted to help shovel snow, usually this means, I'll piddle around, have Fun, maybe make things worse, but it's ok cause I'll make it a good time. Tonight he was LOCKED IN and got a good chunk of the neighbors drive and entire sidewalk done.
Cogwork Core Gang Fight
Cogwork Dancers Fight
Slab Fight
Stolen Dress
Moss Mother 2 Fight

Note

Note

Note

fast changing dev server today

The dev server is cooking today, I’ve dropped markata builds from 2m40s (hot cache) in prod to 15s (hot cache) in dev. Currently building 2745 posts and 274 feeds.

Note

I did not realize all the places to be considered as AI water usage. Hank goes deep highlighting all of the sources he is aware of, most reports leave off a lot of these sources, some reports go maybe too far adding sources that may not make sense depending on the question you are asking. As someone that runs computers…

Note

Note

Note

A quote from Claude I found the problem and it's really bad. Looking at your log, here's the catastrophic command that was run: rm -rf tests/ patches/ plan/ ~/ See that ~/ at the … Simon Willison’s Weblog · simonwillison.net damn this is a rough one. A users entire home directory removed by claude code from an rm comma…

Note

Not every print needs supports

Not every print needs supports. So many models default to having it on, whether needed or not. Well designed parts, designed for 3d printing almost never need supports (depending on constraints).

Note

reminder Include steps to reproduce

Include steps to reproduce your bug when you file a bug report or issue. You may quickly forget how you got there, and no one can fix a bug that is not reproducible.

Note