Blog

Full Blog Posts

341 posts latest post 2026-05-11
Publishing rhythm
Feb 2026 | 6 posts

homelab drive ids

ls -l /dev/disk/by-id/ Drive Bay 1 ata-ST4000VN008-2DR166_ZDHBZSWZ +————————————————————————-+ | [ Power] [ Reset ] | +————————————————————————-+ | [ BAY 5 ] 3TB WD30EFRX WMC4N0D3J9R7 ext4 /mnt/sdf4 | +————————————————————————-+ | [ BAY 4 ] 14TB EXOS ZTM09R9N zfs main pool mirror /mnt/main | +————————————————————————-+ | [ BAY 3 ] 14TB EXOS ZTM0AALS zfs main pool mirror /mnt/main | +——————————————-+ | [ BAY 2 ] 4TB IRONWOLF ZDHBZV3N zfs tank pool mirror /mnt/tank | +————————————————————————-+ | [ BAY 1 ] 4TB IRONWOLF ZDHBZSWZ zfs tank pool mirror /mnt/tank | +————————————————————————-+

THPS 1 Downtown Gaps

[1] [2] Previously THPS 1 Skate Park Gaps [3] Big Ass # [4] THPS1-5-BigAss.mp4 [5] Billboard Grind # [6] THPS1-5-BillboardGrind.mp4 [7] BS Gap # [8] THPS1-5-BSGap.mp4 [9] BS Grind # [10] THPS1-5-BSGrind.mp4 [11] Burly Deck Gap # [12] THPS1-5-BurlyDeckGap.mp4 [13] Car Ollie # [14] THPS1-5-CarOllie.mp4 [15] THPS1-5-CarPlant.mp4 [16] Cheesy Deck Gap # [17] THPS1-5-CheesyDeckGap.mp4 [18] Death Grind # [19] THPS1-5-DeathGrind.mp4 [20] Deck Gap # [21] THPS1-5-DeckGap.mp4 [22] Dirty Rail # [23] THPS1-5-DirtyRail.mp4 [24] Glass Gap # [25] THPS1-5-GlassGap.mp4 [26] Kicker Gap # [27] THPS1-5-KickerGap.mp4 [28] Kicker 2 Edge # [29] THPS1-5-Kicker2Edge.mp4 [30] Kicker 2 Street # [31] THPS1-5-Kicker2Street.mp4 [32] Rail 2 Rail # [33] THPS1-5-Rail2Rail.mp4 [34] Roof 2 Roof # [35] THPS1-5-Roof2Roof.mp4 [36] Secret Tunnel Entrance # [37] THPS1-5-SecretTunnelEntrance.mp4 [38] Sucky Room Gap # [39] THPS1-5-SuckyRoomGap.mp4 [40] T 2 T Gap # [41] THPS1-5-T2TGap....

THPS 1 Skate Park Gaps

[1] Previously THPS 1 Mall Gaps [2] Next THPS 1 Downtown Gaps [3] Acid Drop # [4] THPS1-4-AcidDrop.mp4 [5] Across The Park # [6] THPS1-4-AcrossThePark.mp4 [7] Around The Bend # [8] THPS1-4-AroundTheBend.mp4 [9] HP Transfer # [10] THPS1-4-HPTransfer.mp4 [11] Light Grind # [12] THPS1-4-LightGrind.mp4 [13] Over The Box # [14] THPS1-4-OverTheBox.mp4 [15] Over The Pipe # [16] THPS1-4-OverThePipe.mp4 [17] Over the Rafters # [18] THPS1-4-OverTheRafters.mp4 [19] Pool 2 Walkway # [20] THPS1-4-Pool2Walkway.mp4 [21] Pool Hip # [22] THPS1-4-PoolHip.mp4 [23] Pool Rail Trans # [24] THPS1-4-PoolRailTrans.mp4 [25] Rafter Rail # [26] THPS1-4-RafterRail.mp4 [27] Transfer # [28] THPS1-4-Transfer.mp4 [29] Walkway Rail Trans # [30] THPS1-4-WalkwayRailTrans.mp4 [31] Wall Gap # [32] THPS1-4-WallGap.mp4 [33] Wall Gap Jr # [34] THPS1-4-WallGapJr.mp4 [35] Whoop Gap # [36] THPS1-4-WhoopGap.mp4 [37] References: [1]: https://dropper.waylonwalker.com/api/file/75b658de-1c88-414...

Trailmakers Pioneers

Trailmakers 2.0 Pioneers was released today as an update to trailmakers. It’s a brand new campaign mode that requires you to mine resources to get materials to craft your vehicles rather than salvage parts like you so in the Stranded Campaign. There also seems to be a more linear play through of the story with the frogitts, unlike stranded where it let you do anything completely open world, as long as you had the equipment to go there. Four Frogitts # [1] Out of the gate Wyatt came in with four frogitts to rescue, I don’t know how he found them all, I’ve only been able to find the first one that the master gives you to bring home as a tutorial. four-frogitts.mp4 [2] First Boss # [3] After Wyatt left for bed I played a little more and beat the first of what felt like a boss level enemy, he had much different attacks. I did not think I would make it as I got hit hard from his first explosion attack before I realized what it did. first-boss.mp4 [4] Here is where he was on the ma...

THPS 1 School Gaps

On the road to Gap Master achievement I got all School Gaps in THPS1. This is a super fun level, I’ll have to admit that I had to look up at least a quarter of them, and could not find them myself, mostly due to the naming, all of the rail tricks were actually ledges and I was looking for big rails. None of the warehouse gaps were manuals so I had no idea that the downhill and accross the gym would be manual tricks. Previously THPS 1 Warehouse Gaps [1] next THPS 1 Mall Gaps [2] [3] [4] Ditchin Class # [5] THPS1-2-DitchinClass.mp4 [6] Dumpster Rail Gap # [7] THPS1-2-DumpsterRailGap.mp4 [8] Funbox Table Transfer # [9] THPS1-2-FunBoxToTableTransfer.mp4 [10] Garbage Ollie # [11] THPS1-2-GarbageOllie.mp4 [12] Gimme Gap # [13] THPS1-2-GimmeGap.mp4 [14] Hall Pass gap # [15] THPS1-2-HallPassGap.mp4 [16] All-Access Gap # [17] THPS1-2-AllAccessGap.mp4 [18] Huge Rail # [19] THPS1-2-HugeRail.mp4 [20] Kicker Gap # [21] THPS1-2-KickerGap.mp4 [22] Long Ass Rail # [23] THPS1...

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 [1] Next THPS 1 Skate Park Gaps [2] [3] Huge Stair Set Off A Mezzanine # [4] THPS1-3-HugeStairSetOffAMezzanine.mp4 [5] Coffee Grind # [6] THPS1-3-CoffeeGrind.mp4 [7] The Flying Leap # [8] THPS1-3-TheFlyingLeap.mp4 [9] For the Whole Atrium # [10] THPS1-3-ForTheWholeAtrium.mp4 [11] Fountain Gap # [12] THPS1-3-FountainGap.mp4 [13] Exit Stage Right # [14] THPS1-3-ExitStageRight.mp4 [15] Exit Stage Left # [16] THPS1-3-ExitStageLeft.mp4 [17] Over A Stair Set # [18] THPS1-3-OverAStairSet.mp4 [19] Over A Huge Stair Set # [20] THPS1-3-OverAHugeStairSet.mp4 [21] Planter Gap # [22] THPS1-3-PlanterGap.mp4 [23] Rail Combo # [24] THP...

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 [1] [2] Big Rail # [3] THPS1-1-BigRail.mp4 [4] Channel Gap # [5] THPS1-1-ChannelGap.mp4 [6] Deck 2 Rail # [7] THPS1-1-Deck2Rail.mp4 [8] Face Plant # [9] THPS1-1-FacePlant.mp4 [10] High Rail # [11] THPS1-1-HighRail.mp4 [12] Holy Shi # [13] THPS1-1-HolyShi.mp4 [14] Kicker 2 Ledge # [15] THPS1-1-Kicker2Ledge.mp4 [16] Kicker Gap # [17] THPS1-1-KickerGap.mp4 [18] Monster Grind # [19] THPS1-1-MonsterGrind.mp4 [20] Over The Pipe # [21] THPS1-1-OverThePipe.mp4 [22] Secret Room # [23] THPS1-1-SecretRoom.mp4 [24] Taxi 2 Ledge # [25] THPS1-1-Taxi2Ledge.mp4 [26] Taxi Gap # [27] THPS1-1-TaxiGap.mp4 [28] Transfer # [29] THPS1-1-Transfer.mp4 [30] Transition Grind # [31] THPS1-1-Transition...

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 [1]. 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 # [2] https://resilientwebdesign.com/#This%20is%20a%20web%20book References: [1]: https://dbushell.com/2024/12/05/url-fragment-text-directives/ [2]: #examples

fixed long standing nvim startup error

Here’s the diff, this is it. local M = {} M.setup = require("waylonwalker.setup") M.settings = require("waylonwalker.settings") + M.lazy = require("waylonwalker.lazy") M.options = require("waylonwalker.options") M.globals = require("waylonwalker.globals") M.keymap = require("waylonwalker.keymap") - M.lazy = require("waylonwalker.lazy") M.autocmds = require("waylonwalker.autocmds") M.util = require("waylonwalker.util") M.plugins = require("waylonwalker.plugins") M.snippets = require("waylonwalker.snippets") return M The error # [1] 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. [2] For the longest time it just felt like it randomly showed up without much warning. I sent ai at the issue # [3] I...

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 # [1] Activating the sim asked for a confirmation code shipped with the sim card, then brought me to this page. [2] Clicking Have a Different Device? brought up instructions to set up the APN in the LM1200. [3] Restart # [4] First thing for me was that the sim was not recognized, restarting the LM1200 did the trick to recognize it as a Google F...

ahrefs-cleanup-2024

This post is a big work in progress, expect it to keep getting better. Initial Score # [1] [2] 404 Not Found, generate a page for each tag # [3] [4] Title too long # [5] [6] 404 Not Found, comma separated tags # [7] 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. [8] You can see on the website the whole dang set of tags was being treated as a single tag. [9] Broken images # [10] 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. [11] I burned all of my January Credits # [12] So I had an issue with my self hosted [13] 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. [14] The tre...

dst session one

Wyatt is also documenting his run, while we aren’t playing in the same world we are playing together. https://wyattbubbylee.com/dst-forever-world/ Loading into the world # [1] I always select the character Woodie. He comes with an axe called Lucy she has some dark humor (but not too dark), I like her. She also does not wear out so you always have a weapon and way to chop wood with you. dst-1-1.mp4 [2] First encounter with a Tall Bird # [3] On the first day I made a look around my home biome, and ran into a Tall Bird dst-1-2.mp4 [4] Tall Bird Stats # [5] [6] Here are the tall bird stats from the wiki [7] Setting up base # [8] Just after the first night started I found my way back to the center of the map and made a stone campfire. I really like to use the stone campfires as they last forever, you just have to add wood. I was lucky enough to find stone by the Tall Bird to make this one on first day. dst-1-3.mp4 [9] Opening up the garden # [10] On day two I had enough ma...
3 min read

markdown split panel

Today I was playing with markdown split panels. I want to be able to compare and constrast occasionually, today the inspiration hit to do this using admonitions. [1] Mobile Users 🔄 You will need to rotate your device to see the side by side feature. The Markdown # [2] This is what I am going for, one admonition that is easy to remember, that nests inside of itself , and I can put as much markdown on the inside that I want. !!! vsplit I Have two opinions !!! vsplit Left Opinion supporting arguments * lorem ipsum * ipsum dolor - [x] lorem ipsum - [ ] ipsum dolor !!! vsplit Right Opinion supporting arguments * lorem ipsum * ipsum dolor - [ ] lorem ipsum - [x] ipsum dolor Here is the result of that markdown. I Have two opinions Left Opinion supporting arguments - lorem ipsum - ipsum dolor - lorem ipsum - ipsum dolor Right Opinion supporting arguments - lorem ipsum - ipsum dolor - lorem ipsum - ipsum dolor Vsplit Hello World Here is a hello worl...

Make MinIO Access Key

Today in my homelab [1] I wanted to setup a new service that needed a MinIO access key. So I created a new user and a new access key with the MinIO CLI rather than poking through the ui like I have before. [2] Global Level vs User Level # [3] The MinIO CLI has two levels of access, global and user level. Most of the commands in this post will have several ways to do similar tasks that would potentially work. We are going to prefer to use the user level commands for more control. For some commands such as listing Keys it is handy to use the global level. The Policy # [4] First we are going to make a new policy file named mypages_rw_policy.json. { "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:GetBucketLocation", "s3:ListBucket" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::mybucket" ] }, { "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Effect": "Allow", "Resource": [...

markata 0.8.0

I realize that I never did a post on markata 0.8.0, so here it is. 0.8.0 was released on Jan 2, 2024, just over a year ago at this point. This was the release that we got pydantic support, and multi feeds. [1] Pydantic Support Was kinda big # [2] Markata is leaning on pydanttic for configuration and Post models. These models are filled with validators such that you can give it an empty markdown post and it will figure out some pretty sane default values for the frontmatter. From there you can progressivly enhance your post with more information like title, date, tags, slug, description. validators are awesome!! for instance I don’t set the description on many of my posts by hand, I let the auto_description grab the first bit of text from the post most of the time. Multi Feeds # [3] Markata==0.8.1 brought multiple feeds into the mix, and started to take place of rss and sitemap. Feeds are a list of posts that are configured with a slug, filter, sort, reverse, description, and ...
2 min read

markata 0.8.0

I realize that I never did a post on markata 0.8.0, so here it is. 0.8.0 was released on Jan 2, 2024, just over a year ago at this point. This was the release that we got pydantic support, and multi feeds. [1] Pydantic Support Was kinda big # [2] Markata is leaning on pydantic for configuration and Post models. These models are filled with validators such that you can give it an empty markdown post and it will figure out some pretty sane default values for the frontmatter. From there you can progressively enhance your post with more information like title, date, tags, slug, description. validators are awesome!! for instance I don’t set the description on many of my posts by hand, I let the auto_description grab the first bit of text from the post most of the time. Multi Feeds # [3] Markata==0.8.1 brought multiple feeds into the mix, and started to take place of RSS and sitemap. Feeds are a list of posts that are configured with a slug, filter, sort, reverse, description, and ...

markata search

A side effect of Markata DidYouMean [1] is that we are able to implement some rudimentary search based on slug, title, tags, and description. [2] I made a video of the early work on using this side effect to search for content on markata.dev. Replay markata-search-1.mp4 [3] This was first implemented to solve 404 pages giving users a way to try to find the page that they tried to access. But it turned out to be a decent way to search through the docs. References: [1]: /markata-didyoumean/ [2]: https://dropper.waylonwalker.com/api/file/50cfa8dc-9d46-4f02-877b-688fa5510a83.png [3]: https://dropper.waylonwalker.com/api/file/fd677374-5ef1-41c7-8845-6de0e10f224b.mp4

Markata DidYouMean

Coming in Markata 0.9.1 is far better documentation. i.e. Documentation that actually exists for everything. As part of poking around I realized that I often go to look up the docs for a plugin and forget that the path is /markta/plugins/feeds, sometimes I might try /markata/feeds or /plugins/feeds.py or /feeds or I might even forget the plugin name exactly and try something like feed and get a 404. So I added a didyoumean plugin to markata that takes care of this. [1] I made a quick recording of this early feature, pay close attention to the url as it automatically updates to the correct page. markata-didyoumean.mp4 [2] Happy Path # [3] direct forward If you have one post called /markata/plugins/feeds, and it is the only post called feeds, any combination of /markata/feeds or /plugins/feeds or /feeds will all automatically redirect with an html [4] page (not a server 3xx) to the /markata/plugins/feeds post. Here is the snippet that does the redirect. <div class="container ...
2 min read

cold builds

Here are a list of some cold builds from my site. I’ve ran this site for a long time and would like to have some references to go back to, and wish I had kept a few profiles of cold builds laying around to compare with. The time is now lets keep some cold build links around for reference. [1] 01/27/2025 # [2] - https://ec314b08.waylonwalker-com.pages.dev/_profile/ - 429s - markata==0.9.0.dev5 has md_video open cache on every post issue - https://27f117fd.waylonwalker-com.pages.dev/_profile/ - 112s- markata==0.9.0.dev5 after fixing md_video issue - https://e6b8f64a.waylonwalker-com.pages.dev/_profile/ - 16s - markata==0.9.0.dev5 1 post not skipped, this one - https://10b778b4.waylonwalker-com.pages.dev/_profile/ - 5.65s - markata==0.9.0.dev5 fully hot cache build with no changes References: [1]: https://dropper.waylonwalker.com/api/file/cd8f9d96-948a-4e94-aa3d-2c352bb5657b.png [2]: #01272025
1 min read

pesos

Pesos is the act of Publish Elsewhere Syncicate to Own Site. It is an indieweb concept that I recently started applying to my own site. here does it skip again Note See <https://indieweb.org/PESOS> for more information, they have a ton of information about the indieweb In short it is the concept of pulling data from other sites that you use and republishing it to your own site. This gives a single source of information for you, and protection against sites and apis changing or rug pulling. Other people might have a lot more use cases for this, but I already begin a lot of my data right on my site. GitHub stars # [1] I am using the github api to get a list of my stars and then create posts in the github repo for my blog. This allows me to keep track of things I star on GitHub in my own way, and share them out with my rss feeds. [2] References: [1]: #github-stars [2]: https://dropper.waylonwalker.com/api/file/2380f814-a8cb-45d1-bb5b-538d171933e3.webp