Blog

Full Blog Posts

324 posts latest post 2026-06-21 simple view
Publishing rhythm
Jun 2026 | 4 posts

blogging in 2024

Over the past years couple of years blog traffic has been tanking, for some time I thought it might have just been me, but then i heard it from Dave Rupert on Shop Talk show, and it made sense. LLMs and AI is slowly killing the internet as we know it. My metrics # [1] I dug into my emails from the google search console team and found two results nearly one year apart. Impressions are only 60% of its value a year ago while clicks are only 35% of where they were a year ago. I’m getting less impressions and even less clicks. [2] May 2023 [3] June 2024 Suspicions # [4] What I think is happening is a large portion of users are getting their answers from ChatGPT, Copilot, and llms like this. A lot of my posts have been filling gaps in the internet, notes for myself when I struggle to integrate x in y because there was a gap of how to do so in the docs and stack overflow. Some small fraction of users have moved on to duck duck go and other non global warming search engines with AI ...

Trying Obsidian

I am giving obsidian a try, this is a test post to learn the flow. Something that has been really hard for me for a long time is images, I don’t include a lot of images just because it takes so much longer just to get the post out. I store them in a separate repo, I need to resize and compress them for the web so they aren’t so big. Images are easy # [1] This is my current wallpaper. [2] I took he screenshot and just pasted it in. I have more about my process in this post about Obsidian Image Converter [3]. It’s still just markdown # [4] I don’t know why it took me so long to understand this but obsidian is just markdown files. I pretty much just plugged in my existing blog and it picked up all the tags and was ready to run. I now get some nice visualizations to help me identify posts that were not ever tagged or maybe left unfinished. It leans hard on wikilinks # [5] I just finished moving my backend over to md-it-python, which comes with some good wiliklink support. I eve...
16 min read

animal well codes

fish room # [1] fish bubbles ul d dl l dl ur ul jellyfish d l d l d l u r egg room # [2] bar dir given bar codes top r mid dr bot dl calculated bar codes num dir 1 r 2 dr 3 d 4 dl 5 l 6 ul 7 u 8 ur bar code direction num bar 1 top 2 mid 3 top mid 4 bot 5 top bot 6 mid bot 7 top mid bot 8 empty egg room decode 6 3 3 6 3 1 3 4 2 4 3 2 8 3 5 8 _ 3 5 7 5_ __ 5 2 5 6 3 1 3 3 1 3 6 4 4 6 4 2 4 6 8 6 4 8 7 3 7 6 5 7 6 __ egg room decode dir ul dd __ dd ul dd rr dd __ dl dr dl dd __ dr ur__ dd ll ur __ dd ll uu ll __ ____ ll dr ll ul dd rr dd __ dd rr dd ul dl __ dl ul dl dr dl ul ur ul dl ur uu __ dd uu ul __ ll uu ul ____ References: [1]: #fish-room [2]: #egg-room

kind cluster

kind [1]{.hoverlink} is a very useful tool to quickly standup and teardown kubernetes clusters. I use it to run clusters locally. Generally they are short lived clusters for trying, testing, and learning about kubernetes. Kind is Kubernetes in Docker, its very fast to get a new cluster up and running. Other than checking a box in docker desktop it is the easiest way currently to get a cluster up and running. I’ve used docker desktop for k8s before I really developed on k8s and it was buggy at the time and sometimes started and sometimes didn’t, when it didnt I had no idea how to fix it. I’d suggest kind as the best option to get a cluster up and running locally. Not Production # [2] If you are looking for a production ready cluster this is not it. I really like k3s [3]{.hoverlink}. At the time that I chose k3s it was the most lightweight option that easily supported multi-node clusters. Starting a kind cluster # [4] The first step, and maybe only one that you need is to create ...

What I'm learning in 2024

2024 has been a learning fueled year, Diving deep into things I never would have previously thought I would. It’s been a bit of a mix of the 🔥hot twitter trends, and exactly what tech twitter tells you not to do. It just goes to show community is great, the tech community is filled with strong opinions, but you need to think about what really makes sense for you, your career and your customers (or lack there of). tech # [1] - k8s - tailwind - fastapi [2] - htmx [3] - jinja - opnsense successful one day builds # [4] - play-outside - reader - thoughts - thoughts chrome-extension Kubernetes # [5] Damn did I sleep on k8s for way took long. This is like exactly what I’ve needed for a lot of things. It’s a perect example of what happens when you listen to the tech community tell you. Looking for a Heroku replacement, What I found was shocking! [6] I started looking for something to make my homelab [7] deployments easier at home. Previously I needed to ssh into my server an...

Refactoring one line links into wikilinks

Previously I had setup a feature of my website to expand one line links into a card. This was not a standard, even to the point that some formatters wrap the links with , thus breaking my custom plugin. Moving to the wikilink standard will allow my markdown posts to work accross more site builders without custom integrations. Expand One Line Links [1] What is a wikilink # [2] Wikilinks are standard to a lot of wikis written in markdown. markdown-it-wikilinks [3] The wikilink syntax is a slug wrapped in double square brackets. [[ slug ]] Marksman lsp will even autocomplete these for you, its pretty sweet. Note I recently implemented hover for wikilinks and and am pretty stoked about the result. Check this one out sick wikilink hover [4]. Vim Quickfix # [5] You could use vimgrep to fill your quickfix list will all of the one line links but I am less familiar with vimgrep and kept missing posts for some reason, I think it was something in my file glob missing some directori...
2 min read

about this site

I registered waylonwalker.com and started making content for it in 2017 after a big industry downturn in 2016 that left me scared for what would happen if I were laid off. The company I was working for at the time did it’s first major downsizing in history sending many really good engineers out to look for new opportunities in a world flooded with many in the same situation. This was very similar to what happened to the tech industry in 2024. This was very similar to what happened to the tech industry in 2024. See Waylon Walker [1] for more about me. What is this site? # [2] - It’s a blog - Digital Garden - Learn in public - TIL - portfolio - my personal corner of the internet It’s [NOT]{.text-red-500 .text-6xl .font-bold} Perfect # [3] - There will be mistakes - I will learn - Grammar will be fine, but never perfect - Code will run on my machine, but not guaranteed to be perfect - There will be days when the whole site is broken It started as a blog # [4] This site...
4 min read

sick wikilink hover

Today I set up some sick wikilink hover effects using tailwind see A Case For Tailwindcss [1]. When you hover over them they show an image preview of the link that you are going to. I cant find where I have seen this but it comes from some docs sites. I’ll finish this article later, just excited to see it up. References: [1]: /a-case-for-tailwindcss/
1 min read

markata

This post is a work in progress. Markata is the static site generator that I created to build my website about this site [1]. I built it for me and I enjoy using it. I know everying it can do and I can extend it to do more easily. I have set it up for some friends to also use it and am proud that it helps them publish their content. It’s a meme to create your own static site generator to make your website. Yes its funny, I don’t recommend it if your not ready for the level of work that comes with it, but at the end of the day it’s very rewarding and a great way to learn. Static Sites were all the rage # [2] JAMStack was 🔥 Gatsby and Next.js hit the scene as the next generation of static site builders and were getting big around the time I started building my site in 2017. They were based on react. I dove into react and learned it enough to build my website, but I really lacked the depth of knowledge in the js ecosystem to really work on it effectively. For instance when it got ...

my linked in work history

My linked in work history is empty. I made up a position about content developer that tracks how long I’ve been blogging. I think i did this because LinkedIn requires it. Either way this is public knowledge and fine sharing. Social Engineering # [1] If you have taken any security class for your job seriously you have already been told not to share your work with most companies to the public, this is private information that only opens you up for social engineering attacks against that company. I care about privacy and security # [2] I care about the security of these companies I work for and their reputation, so I refuse to publically share it. Need to know # [3] If somehow you need to know where I work it’s my choice to tell you. I don’t need to advertise to every social engineering hacker where I work on the platform that they go to get that information from. References: [1]: #social-engineering [2]: #i-care-about-privacy-and-security [3]: #need-to-know

Your LinkedIn is Garbage

Your linkedin link sits at the top of your resume, its one of the first things I see when I open your resume, but yet it gives me no more information that the damn resume you sent me. Save that space on your resume for something useful. So you want that /in/me on your resume # [1] Fine if you want it on your resume make it actually useful for someone reading your resume. Actually post something # [2] If I am reading resume’s and I actually take the time to look at your linkedin I want to see you post something. Take a side, make an opinion and post it. Learn something new, make a post about it. If you have a blog and you make a good post share it there. Your work history belongs on your resume # [3] Any security 101 tells you that you should not share your work history on linked in. You should not share photos of you at your workplace that include sensitive information such as your badge. Your work history on LinkedIn is for hackers to steal and use for social engineering. ...

One Day Build - Play Outside

Inspired by Adam Savage and his One Day builds on youtube. I often build things, and want to make them generally useful for others and over configure out of the gate. This project is purely for me inspired by a need I have. - play-outside [1] !How-To # [2] This post will not directly show how to make a weather app, but document the process that I went through to make mine. It will show the tools that I used to make it, and the final result. The Situation # [3] It often goes in our house ask dad while he is busy and he will probably just say yes without thinking much. This happens a lot when kids ask to go outside. I think sure, go for it, you will figure it out. Then my wife walks in and asks where they are, followed by, did you even check the weather, its -11 degrees outside right now. I need a tool for this decision making process Lungs # [4] You we have a family of not the most heathly lungs, we have my wife with lung cancer, one lung missing, and kids with asthma. We nee...
6 min read

feeds

I have several feeds that you can consume my content with. Many posts will cross between them, so if you would like to follow a certain stream of content in your rss reader thats what this is for. This one might feel like it has some extra noise with multiple posts per day, including starts, and instagram style posts, for a bit less look at the [[ main ]] feed. TLDR If you are looking for everything look here <https://waylonwalker.com/archive/rss.xml> All # [1] This is a feed of everything that I have published on my site to date including Posts tagged: blog [2], [[ til ]], Thoughts [3], [[ stars ]], Posts tagged: shots [4], [[ pings ]]. - web [5] - rss [6] Main # [7] Like the All feed, but drops the shots (instagram style posts) and stars (github stars). - web [8] - rss [9] til - daily(ish) # [10] think gist with a tweet This is a feed of all of my TIL’s (Today I Learned). These are generally short single topic posts that I write up quickly. They are generally things t...

Thoughts

These are generally my thoughts on a web page or some sort of url, except a rare few don’t have a link. These are dual published off of my thoughts.waylonwalker.com [1] site. It’s a fully dynamically rendered site 2000’s style. Posts are stored in a database and instantly available. Almost all of the posts were written in a small <textarea> field within a chrome extension that I built for it. These posts are intended to in two ways. One, link building for the author. I hope that I give the people helping me out along the way just a little bit of a boost. Two, they serve as a permanant commented bookmark for me to search, and come back to later when I have forgotten where I have seen something. - web [2] - rss [3] All thoughts posts cross posted to my site are prefixed with a thought balloon 💭. The tech # [4] Since this blog is mostly a tech blog about software development, and my journey as I learn, lets talk tech. - python - fastapi [5] - htmx [6] - sqlite - docker - ht...

kubernetes 6 months in

I stumbled into kubernetes December 2023 when I was looking for a better way to self host [1] applications. I was looking for something that didn’t require logging into a server and building and deploying like a cave man. I wanted a smoother experience than docker compose was giving me. https://waylonwalker.com/looking-for-a-heroku-replacement/ This post turned into a list of tools that I have adopted into my k8s workflow, and plan to keep. enjoy. Kompose # [2] [3] Kompose is a great tool for gettting going and converting your docker-compose to kubernetes manifests or helm templates. It was a great tool for me to get started with, but I was afraid that it was hindering me learning more and just blindly using its output so I have tried to use it less and less. I’m now not solely leaning on it, but using it to get out quick POCs with low friction. Kompose really helped me go 0 to 60 and get right into kubernetes with my existing docker compose files and very little change. I fou...

poc is not product

A poc is not a product. I started focais, not in a rush, but as something that I already had a POC for and thought it would be easy. I wanted to build tools to make creating blog posts like this one easier. I stared with shots a tool that takes screenshots of websites. POC (proof of concept) # [1] For the poc, I made a single fastapi [2] endpoint that takes a url and returns a screenshot of the page. It converts the url into a key that I can lookup to see if I have the shot, if I don’t I go get it. With the open source libraries out there, this is not too hard of a task. Progress Thus Far # [3] - /shot But this wasn’t enough All it does so far for this first tool is take screenshots of websites, and give you a hosted image. Users # [4] To bring in users, I need to create a signup flow, with a database to store users, login, logout, and email recovery. I’ve never had to use an email service before that wasn’t already mandated by a company or an iternal smtp server. After some...

thoughts on unit tests

[1] Theo’s response puts a lot of my feelings about unit testing into words. Many of us have grown up in this world preaching unit testing. We often hear these statements “Everything must be unit tested, tests make code more maintainable.” In reality when we are not writing complex low level code unit tests are probably the wrong approach. We Finally Agree On Unit Tests - YouTube !https://www.youtube.com/watch?v=MbU-PKukdMw Dec 22, 2023 [2] Most of us are assemblers # [3] So much of software engineering is assembling existing well tested code. Crud applications, UI, Data Pipelines, building on top of battle tested code. Manufacturing Analogy - Unit Testing # [4] This kind of reminds me of Manufacturing. Individual components are QA tested with tests that look more like unit test. Parts like bearings, pistons, shafts, valves, they are all tested against sophisticated statistics of sample measurements. This is quite similar to unit testing. [5] You see measuring the indivi...
5 min read

Looking for a Heroku replacement, What I found was shocking!

Your browser does not support the audio element. I’ve long hosted my personal blog as a static site on waylonwalker.com. It’s all markdown, converted to html [1], and shipped as is. It’s been great, I’ve moved it from GitHub Pages, to Netlify, tried Vercel for a minute, and have landed on Cloudflare Pages. Each migration has not really been that hard, it’s just pointing ci to a different host after the site has built. [2] What about server side # [3] Now the part that I have struggled with is how to cheaply host a server rendered application that can just live on forever without me paying for it. This is a harder problem as it costs more to keep servers spinning, memory, and disk all ready for you to use at a moments notice. Honestly # [4] I never really deployed anything that useful on heroku, but it seems like the klenex of the bunch that’s why they are in the title. I’ve moved between digital ocean and fly.io, and have had some great experiences with both. I just don’t want...

why-is-postgres-default

Serious question. No one ever got fired for choosing PostgreSQL # [1] But, why. It’s the most loved db, right? Right? Maybe it’s time to rethink it. Don’t get me wrong, if I need a relational db as a service, PostgreSQL is going to be my first choice, but why do I need to run a separate application for it? Tutorials use sqlite # [2] Why is that? Because there is nothing else to stand up. Nothing else to maintain. And you probably already have it installed on just about anything that has a battery. SQLite runs in memory # [3] Don’t need, or maybe don’t want to persist state. Run it in memory. This is a nice feature for running tests. Less exposure # [4] SQLite is a file on your filesystem. It’s not a web service. It’s not a cloud service. Not that postgres is insecure, but it is one more endpoint that you have to think about securing. this means that is probably also cheaper 🤑 SQLite is easy to replicate # [5] Want to run your new feature with prod data? Pull a replica or...

A Case For Tailwindcss

I was watching @theprimeagen recently and I think he sold me on using tailwindcss. The thing about tailwind is that it is not a big component library, it’s a set of css classes mapped to a few (usually one) style. All css classes are shitty, so you might as well use someone else’s shitty css classes on all your projects rather than thinking you’re being smart with a new set of classes that you will hate in 6 months when you come back to the project. roughly quoted from memory of @theprimeagen It’s tiny # [1] So unlike big component libraries like tailwind, it comes with a cli that that it uses to create the final css file. It is able to treeshake out all the tailwind classes that you are not using and only ship the ones that you are using. It’s hard to clash # [2] Since the classes are so small and single purpose it’s hard to end up with something like .card in two places that mean different things causing you to duplicate most of that css anyways so that the whole design doesn...