Archive

All published posts

2586 posts latest post 2026-10-03
Publishing rhythm
Sep 2026 | 27 posts

THPS 1 Mall Gaps

This is one of the most memorable levels for me in THPS1 from when I had originally played it. Surprisingly there aren’t as many gaps in it as I thought there would be, there are definitely a lot that you can make up on your own. Anyways here’s my playthrough of all the mall gaps in THPS1 on my way to gap master. Previously THPS 1 School Gaps Next THPS 1 Skate Park Gaps Huge Stair Set Off A Mezzanine # Coffee Grind # The Flying Leap # For the Whole Atrium # Fountain Gap # Exit Stage Right # Exit Stage Left # Over A Stair Set # Over A Huge Stair Set # Planter Gap # Rail Combo # Skater Excalator Gap # Accross The Light Beam # The Long Rail # The Short Rail #
Ergonomic Laptop — Evan and Katelyn Back pain ends here. Evan and Katelyn · evanandkatelyn.com This is such a cool idea, I tend to not use laptops at all because they are so uncomfortable I just wait till I’m back at my desk. This solves two main issues I have with laptops, the posture to use them is shit, the keyboards that come on them is not what I want to use. I’ve solved the latter with my own custom keyboard.
Just starred arcade by pythonarcade. It’s an exciting project with a lot to offer. Easy to use Python library for creating 2D arcade games.

THPS 1 Warehouse Gaps

On the road to Gap Master achievement I got all Warehouse Gaps in THPS1. This is this classic warehouse level that everyone thinks of when THPS is mentioned. Such a good level, compact, easy to play, with some fun gaps that might take a few tries to hit. Next up THPS 1 School Gaps Big Rail # Channel Gap # Deck 2 Rail # Face Plant # High Rail # Holy Shi # Kicker 2 Ledge # Kicker Gap # Monster Grind # Over The Pipe # Secret Room # Taxi 2 Ledge # Taxi Gap # Transfer # Transition Grind #
XCMKB: ZMK/Bluetooth Boards XCMKB: Key Remap Dear beginner, there is no real time key remap like Vial, but thanks to nickcoutsos for his work on Keymap Editor, a browser app allows you to load ZMK keymap code and manage it wi... XCMKB · xcmkb.com Nice overview to getting started in zmk
I recently discovered kubevpn by kubenetworks, and it’s truly impressive. KubeVPN offers a Cloud Native Dev Environment that connects to kubernetes cluster network.

I run tailwind for my personal blog, whenever I update it, pre-commit goes in and fixes end of file. I’m sick of these things fighting each other, since it is a generated app it is going to et ignored from pre-commit from now on.

exclude: ^static/app.*\.css$
repos:
  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v2.4.0
    hooks:
      - id: trailing-whitespace
      - id: end-of-file-fixer
      - id: check-yaml
      - id: check-added-large-files
fix double slash in url · WaylonWalker/waylonwalker.com@93ca7da Latest version of waylonwalker.com - dev.waylonwalker.com - fix double slash in url · WaylonWalker/waylonwalker.com@93ca7da GitHub · github.com fixing more ahrefs issues on the road to fixing all major issues within my control I found a ton of urls pointed to an url with a double slash, turns out I wasn’t properly referencing slug with post.slug.
fix json schema · WaylonWalker/waylonwalker.com@deebd40 Latest version of waylonwalker.com - dev.waylonwalker.com - fix json schema · WaylonWalker/waylonwalker.com@deebd40 GitHub · github.com I found that I had Structured data has schema.org validation error on essentially every single page on my blog, turns out I had made some changes and have never tried to validate it. Damn json and its hatred towards trailing commas.
Weblogging: Part 1 The one where I blog about blogging (part 1) dbushell.com · dbushell.com Long live RSS! Rss is not dead David, you are right there. I really agree with David that learning a topic well enough to form thoughts and write about it really help learning. You don’t need to be an expert, but forming your own thoughts, putting ideas in words takes a lot more than surface level knowledge. When you try to write or speak about something you quickly realize where your holes in understanding are. Blogging helps me learn. When I commit knowledge to writing it reinforces what I know and shines a spotlight on what I don’t. Most topics require additional research. Even then, I occasionally get things wrong, or miss different ways of thinking, and I welcome corrections. I’ll often update and enrich my posts based on feedback. Without my blog I’d miss other points of view. As they say, the best way to get an answer on the internet is not to pose a question, but to assert the wrong solution! Most feedback I get is constructive. Sometimes it’s blunt but I try not to read into unspoken sentiment. Some people are more direct. If the end result is positive learning, I can take a hit or…
fix: Open Graph URL not matching canonical · WaylonWalker/waylonwalker.com@0fd994b Latest version of waylonwalker.com - dev.waylonwalker.com - fix: Open Graph URL not matching canonical · WaylonWalker/waylonwalker.com@0fd994b GitHub · github.com In fixing a bunch of meta tags, I introduced Open Graph URL not matching canonical on every page by having trailing / on canonical and not on the. This commit will fix the error.
After that embarrasing death I made my way over to a touchstone I found and Woodie is back from the dead, but without his beloved Lucy, to get her we will need to go
Cotton Coder The one where I launch a new blog dbushell.com · dbushell.com I like Davids idea for cotton coder here, reminds me a lot of Thoughts, which turns out to be mroe commonly called a linkblog. I can relate to David heavily on gathering too many side projects and soem collecting more digital dust than you would really like them to. I use thoughts for quick publishing, very similar to David’s notes. I have tags and titles, but the titles are a reflection of the post I’m taking a note on. They are short and sweet, I put just enough thought into them without overthinking them. They live as a separate server hosted website, but the data gets pulled into my blog at build time, so they end up in the same place eventually.
GitHub - valkey-io/valkey: A flexible distributed key-value database that is optimized for caching and other realtime workloads. A flexible distributed key-value database that is optimized for caching and other realtime workloads. - valkey-io/valkey GitHub · github.com valkey appears to be the largest open source fork of redis that was forked just before their transition to the new source available licenses. One notable thing missing from the readme is how to run with docker, which I saw in the valkey-py docs. You can install the python library with
valkey Python client for Valkey forked from redis-py PyPI · pypi.org python bindings for valkey, forked from redis. one notable difference I see from redis is that you can install with libvalkey to autmatically get faster parsing support. For faster performance, install valkey with libvalkey support, this provides a compiled response parser, and for most cases requires zero code changes. By default, if libvalkey >= 2.3.2 is available, valkey-py will attempt to use it for response parsing.
If you’re into interesting projects, don’t miss out on valkey-py, created by valkey-io. Valkey Python client based on a fork of redis-py
I’m really excited about valkey, an amazing project by valkey-io. It’s worth exploring! A flexible distributed key-value datastore that is optimized for caching and other realtime workloads.
To kick off the second session, I noticed that when you have a torch you can light your cooking pot, what I did not realize was that this burns your cooking pot to smitherines. Nothing left but a frame of ** ashes.
Fragmentions - linking to any text kevinmarks.com I can’t believe I’ve never see this Tim Berners-Lee quote, but I can’t unsee it and will be required to reference it from now on. eventually every URL ends up as a porn site I had a friend let his blog domain expire, within a short period it was scooped up and was hosting porn. I don’t know why, but my best guess is that they were holding it ransom with the most embarrassing content to have your personal site replaced with.
As I was gathering resources with Lucy, minding my own business ** I got hit with an attack from a Clockwork Bishop, man these things hit hard and have really good aim. I took three hits before getting away, leaving me with very low heath at the end of this play session.

fragmention

This post is still WIP. ….. https://indieweb.org/fragmention##Challenges I’ve been digging through David Bushell’s blog over the past day, he has some really good ideas about blogging and webdev. One really interesting post I came accross is url-fragment-text-directives. I’ve long had id’s linked on my headings, though sometimes broken, or now showing the link, I’ve done my best to include them. Fragmentions extend this to allow any text to be linkable like this. fragmentioner ui: https://github.com/kartikprabhu/fragmentioner/tree/master?tab=readme-ov-file fragmentioner js: https://github.com/chapmanu/fragmentions Examples # https://resilientwebdesign.com/#This%20is%20a%20web%20book

I’m building in a [[ fragmentions ]] implementation into my blog, I wanted to add some text before the fragment to indidate that it was the highlighted fragment that someone may have intended to share with you.

To get a newline in a :before I need to use \A and white-space: pre-line.

body :target::before,
body [fragmention]::before {
    content: "Highlighted Fragment:\A";
    white-space: pre-line;
    @apply font-bold text-yellow-600;
}

Here is what it looks like on my not yet live implementation of fragmentions.

screenshot-2025-02-15T15-43-06-372Z.png
I’m going to leave the title off this post and see what happens. Titles are a lot of pressure! I think there is a reason that the big text-based social networking sites (Mastodon, X, Facebook… Chris Coyier · chriscoyier.net Interesting thoughts here on blog post titles, do we need them? They are so ingrained into everything. It makes me think about markata.dev. I don’t require you to add any meta data to your post, you don’t need a title at all, but you do have to name a markdown file, and this does end up being your title if you don’t set one. Titles are a lot of pressure! I think there is a reason that the big text-based social networking sites (Mastodon, X, Facebook, Threads, LinkedIn, Bluesky, etc.) don’t have titles. Especially for short posts, the title just isn’t necessary. Just say the thing. Interesting observation what rss readers do without one. My own favorite[rss reader], Feedbin, shows the author of the post as the title if it’s missing. Eh, not great not horrible. Hilariously he puts a title on the OG image for the post. I was interested in seeing what would happen in signal, it appears to be showing the author name as well. Confirmed the page has no title or does it…
AI workloads on Talos Linux Companies are exploring how to run GPU accelerated workloads on Kubernetes. Sidero Labs · siderolabs.com cool article for setting up talos linux with an nvidia gpu. What a wild world it we are living in where these devices that started out being only for hardcore gamers are becoming commonplace in servers and slowly entering the homelab space.
Damn prime makes an interesting point near then end of this video. He’s seen a bunch of people able to just throw down charts and shit at their company and end up being “the coding guy” cause they proompted something once. In a way I can relate, I got into software in a similar way, but at a time that it took a lot more hard work, understanding, and copy past from the right stack overflow. Based on some of the people around me at the time I can only imagine how some people must feel like they got pushed into it without wanting it, and now are building something they don’t know anything about with no care about it or care to build any expertise. Is the future proompted charts from enterprise chatgpt or do we only continue growing more need for software from here.
I had the grass for a hat, so I figured why not. I'm not sure if it really helps this time of year, but I thought it looked good on Woodie.
I’m really excited about pangolin, an amazing project by fosrl. It’s worth exploring! Tunneled Mesh Reverse Proxy Server with Identity and Access Control and Dashboard UI
Check out llm-sort by vagos. It’s a well-crafted project with great potential. Sort input lines semantically with llm
On day two I had enough materials gathered to make the garden digamajig to prep the soil for gardening. I planted the few seeds that I stole from the birds right away.

fixed long standing nvim startup error

Here’s the diff, this is it. The error # On first install of my dotfiles I’m presenting with this flashbang of an error filling the screen with red background. Its kinda hard to read, I’m not deep into lua and reading their tracebacks. It pops up in this pager that if I scroll too far it quits and the error is gone before I know what it is or how it got there. For the longest time it just felt like it randomly showed up without much warning. I sent ai at the issue # I tried some chatgpt and windsurf, both gave me overconfident answers that all did nothing. They just sent me in loops for way too long. I fixed it # What did it take?? Just sitting down and thinking about what the problem was and setting up a good test workflow. Yesterday I worked out testing nvim installs and I was immediately able to replicate the error over and over. Unlike before where it felt random, I now have a good problem statement that I can replicate. clean install start nvim Lazy pops up FLASHBANG!! Error that…

Testing fresh nvim installs can be a pain, and hard to di without borking your known good install. I’ve been using NVIM_APPNAME to run a test nvim in a sandbox that wont bork my main install. This usually runs for me in under a minute, can be down under 15s if I remove some of the TreeSitter installs at the end. This beats a full docker build of my full devtainer to test out nvim packaging woes.

rm ~/.cache/wwtest -rf
rm ~/.local/share/wwtest -rf
rm ~/.config/wwtest -rf
cp -r nvim/.config/nvim/ ~/.config/wwtest
NVIM_APPNAME=wwtest nvim --headless "+Lazy sync" +qa
NVIM_APPNAME=wwtest nvim --headless "+TSUpdateSync" "+sleep 5000m" +qa
NVIM_APPNAME=wwtest nvim --headless "+MasonUpdate" +qa
NVIM_APPNAME=wwtest nvim --headless "+TSInstallSync! c cpp go lua python rust tsx javascript typescript vimdoc vim bash yaml toml vue just" +qa
NVIM_APPNAME=wwtest nvim --headless "+MasonInstall lua-language-server rustywind ruff ruff-lsp html-lsp typescript-language-server beautysh fixjson isort markdownlint stylua yamlfmt python-lsp-server" +qa
NVIM_APPNAME=wwtest nvim

I’ve started to use this as a just recipe to run before deploying a new version of my dotfiles. So far its pairing nicely with nvim-manager

Setting up 4G Backup with Google Fi and Netgear LM1200

I connected my home network to have 4G bakcup with Google Fi and Netgear LM1200. Goodle Fi offers free data-only sim cards that you can order from their service. It takes a couple of days, and a new sim arrives in the mail free of charge. It does pull data from your account, so if you are not on an unlimited plan be careful of how much you let go through the sim. I’ve owned this for a few years now, but it’s been disconnected for a good six months or so. I’m not s[e what happened, but it stopped recognizing the old sim card. no need to point out the coffee stains at the end, its definitely not related Follow the provided instuctions # Activating the sim asked for a confirmation code shipped with the sim card, then brought me to this page. Clicking brought up instructions to set up the APN in the LM1200. Restart # First thing for me was that the sim was not recognized, restarting the LM1200 did the trick to recognize it as a Google Fi sim, and I started setting up by adding the APN as i…

ahrefs-cleanup-2024

This post is a big work in progress, expect it to keep getting better. Initial Score # 404 Not Found, generate a page for each tag # Title too long # 404 Not Found, comma separated tags # Another hit on 404’s caused by tags, was tag parsing from thoughts into posts, this cause links to the full comma separated list of tags rather than one per tag. You can see on the website the whole dang set of tags was being treated as a single tag. Broken images # I’m not fully sure what happened to all of these gifs in my old host and why they didn’t show up, but I moved them all and they are solid now. I burned all of my January Credits # So I had an issue with my self hosted shots not making them fast enough for ahrefs, and essentially ddosing myself on one of their runs. The long wait times for images burnt all of my credits. Here was the next successful run with a HUGE improvement in overall score. The trend for errors is looking quite good. md files were Missing # I had several links out to th…

When I want to put a date in a document like a blog post from vim I use !!date from insert mode. Note that entering !! from normal mode puts you in command mode with :.! filled out. This runs a shell command, i.e. date for this example.

It outputs the following

Fri Jan 31 08:46:11 PM CST 2025

You can also pass in a date such as tommorrow by pasdding in the -d date -d tomorrow.

It outputs the following

Sat Feb 1 08:53:20 PM CST 2025

codeium just taught me this one with autocomplete

:put =strftime('%Y-%m-%d')

This outputs the following

2025-01-31

What I like about the :put =strftime( method is that you can add a format, but that is a lot more for me to remember than !!date

A few weeks later #

I’m going through a bunch of blog posts and dont want my date formats to change to the Wed Feb format so I broke down and made these keybindings. I think I’m still going to be using .!date a lot, but these keybindings will be nice for editing blog post frontmatter.

set("n", "<leader>dd", "<cmd>put =strftime('%Y-%m-%d')<cr>", { noremap = true, silent = true })
set("n", "<leader>dt", "<cmd>put =strftime('%Y-%m-%d %H:%M:%S')<cr>", { noremap = true, silent = true })
  • dd 2025-02-12
  • dt 2025-02-12 12:53:47
  • :.!date Wed Feb 12 12:53:47 PM CST 2025