Archive

All published posts

2507 posts latest post 2026-05-29
Publishing rhythm
May 2026 | 54 posts
Modular Input Device on Wood
Comparing the thickness of the low profile portajohn2 to the portajohn1
GitHub - urob/zmk-config: Personal ZMK firmware configuration for various boards (34-keys, Glove80, Planck) Personal ZMK firmware configuration for various boards (34-keys, Glove80, Planck) - urob/zmk-config GitHub · github.com [1] This is a very well thought out zmk config featuring many macros, numword, and timeless homerow mods. The build system to build locally looks on point, I really need to give that a try! Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://github.com/urob/zmk-config?tab=readme-ov-file [2]: /thoughts/
add init hooks and exported bins · WaylonWalker/devtainer@2e4c6da 🐳 (dotfiles) My personal development docker container base image - add init hooks and exported bins · WaylonWalker/devtainer@2e4c6da GitHub · github.com [1] Today I learned that you can use init_hooks to access host machine commands from inside a distrobox container. This is super handy for things that you cannot get to from inside the container and need ran outside (docker, podman, flatpak, xdg-open). init_hooks=ln -sf /usr/bin/distrobox-host-exec /usr/local/bin/podman; Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://github.com/WaylonWalker/devtainer/commit/2e4c6da537f5672209d1b3922fad754190aef938#diff-38878343c551520f8af2a3986e5f6085b03df197a56a92abc42a44b200f0264aR19 [2]: /thoughts/
I’m really excited about manyfold [1], an amazing project by manyfold3d [2]. It’s worth exploring! A self-hosted [3] digital asset manager for 3d print files. References: [1]: https://github.com/manyfold3d/manyfold [2]: https://github.com/manyfold3d [3]: /self-host/
Taildrop · Tailscale Docs Send files between your personal devices on a Tailscale network. Tailscale · tailscale.com [1] Tailscale comes with a feature called taildrop that lets you easily share files between machines on your tailnet. If you have tailscale on ios/android it shows up as a share target when you try to share something, and you can pick the machine to share with. What was not obvious to me was how to receive the file on linux. The linux tailscale service does not automatically receive the file, which can be kinda nice that you can put it where you want, but was not obvious to me at first. Use this command to receive files. sudo tailscale file get . Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://tailscale.com/kb/1106/taildrop?tab=linux [2]: /thoughts/
I’m really excited about django-admin-tui [1], an amazing project by valberg [2]. It’s worth exploring! Django Admin in the terminal! References: [1]: https://github.com/valberg/django-admin-tui [2]: https://github.com/valberg
GitHub - triliu/Heawood42: Files for the Heawood42 ortholinear split keyboard Files for the Heawood42 ortholinear split keyboard - triliu/Heawood42 GitHub · github.com [1] The Heawood42 is an interesting diodeless keyboard that is not direct wired. According to the repo this is the only keyboard to be diodeless and not direct wired. It does this through the use of a graph. Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://github.com/triliu/Heawood42 [2]: /thoughts/
I came across Heawood42 [1] from triliu [2], and it’s packed with great features and ideas. Files for the Heawood42 ortholinear split keyboard References: [1]: https://github.com/triliu/Heawood42 [2]: https://github.com/triliu
[1] This is a wild key cap that uses a lever to convert horizontal key presses to vertically press the switch down. The leveret v2 uses two of these on thumbs, one to press outward, and what appears to be one straight forward which feels like it would have to be a wrist motion, but who am I to judge without having it in person. Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: /static/https://kbd.news/Leveret-v2-lever-keycaps-2380.html [2]: /thoughts/
After first setting up a new k3s instance your kubeconfig file will be located in /etc/rancher/k3s/k3s.yaml. You cans use it from here by setting $KUBECONFIG to that file. export KUBECONFIG=/etc/rancher/k3s/k3s.yaml Or you can copy it to ~/.kube/config cp /etc/rancher/k3s/k3s.yaml ~/.kube/config If you have installed k3s on a remote server and need the config on your local machine then you will need to modify the server address to reflect the remote server. scp user@<server-ip>:/etc/rancher/k3s/k3s.yaml ~/.kube/config Warning only do this if you don’t already have a ~/.kube/config file, otherwise copy it to a new file and set your $KUBECONFIG env variable to use it. Now you will need to open that file and change the server address, making sure to keep the port number. apiVersion: v1 clusters: - cluster: certificate-authority-data: **** server: https://<server-ip>:6443 name: default
External Link uxplanet.org [1] A nice set of blacks to use in web design. Subtle variants off of black or white like this can really make your design look nice and modern. Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://uxplanet.org/alternatives-to-using-pure-black-000000-for-text-and-backgrounds-54ef0e733cdb [2]: /thoughts/
External Link X (formerly Twitter) · x.com [1] This is a pretty incredible use of css grid to overlay items overtop of each other without needing to resort to position: absolute and the side effects that it brings. .wrap { display: grid; & > * { grid-row: 1; grid-column: 1; } } Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://x.com/wesbos/status/1834242925401694490 [2]: /thoughts/
Buttery.so Buttery smooth, minimal icons for interfaces. buttery.so [1] Some sick looking icons no attribution needed. Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://www.buttery.so/icons [2]: /thoughts/
I’m impressed by pifi-openwrt-raspberry-pi [1] from pifi-org [2]. Firmware Files for Raspberry Pi (PiFI) References: [1]: https://github.com/pifi-org/pifi-openwrt-raspberry-pi [2]: https://github.com/pifi-org
Today I gave n8n a try using podman, their docs gave me docker commands, but it ran fine on my machine using podman. podman volume create n8n_data podman run -it --rm --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n
External Link printables.com [1] Someone has created a knock off of the ltt screwdriver and made it printable, and it works really well. I have one printed with 6 different bitholders. I popped some labels on them in bambu studio as I printed to mark them for metric/inch and so on. [2] I’ve had mine for about a year now, and I use it quite often. I used to be a dedicated screwdriver kind of guy, but as life has changed I’m not working out of a shop with tools at reach as much, I’m grabbing a couple of items and heading to a job in the house or a neighbors house. It’s not 30s to grab just the right dedicated screwdriver anymore. Also having some setup with hex and torx is a game changer. It’s also super handy that you can just pop the bits right into a drill or impact. [3] Highly recommended print. Sorry for not buying the real deal Linux, I got kids to feed here. I owe you a t-shirt order or something. [4] Note This post is a thought [5]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://www.printables.com/model/580045/files [2]: https://dropper.waylonwalker.com/api/file/a10f10c7-973a-4dde-bd92-ef37b596fb85.png [3]:...
Installing and managing Python | uv A guide to using uv to install Python, including requesting specific versions, automatic installation, viewing installed versions, and more. docs.astral.sh [1] uv now can install python for you. uv is inspired by rust’s cargo, an all in one fast package and installation manager. uv is so fast and becoming feature complete, it’s really changing the python packaging ecosystem. uv python install uv python install 3.12 uv python list Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://docs.astral.sh/uv/guides/install-python/ [2]: /thoughts/
I recently discovered kickstart.css [1] by tjdevries [2], and it’s truly impressive. Kickstart.nvim alternative written in pure CSS. Requires failwind.nvim References: [1]: https://github.com/tjdevries/kickstart.css [2]: https://github.com/tjdevries
Switching configs in Neovim How to maintain multiple Neovim configurations and switch between them Michael Uloth · michaeluloth.com [1] Switching between nvim configs can be really easy to do since they implemented the NVIM_APPNAME Environment Variable. NVIM_APPNAME=nvim-lazyvim nvim Now config will be loaded from ~/.config/nvim-lazyvim Michael lays out some aliases in the full article. alias v='nvim' # default Neovim config alias vz='NVIM_APPNAME=nvim-lazyvim nvim' # LazyVim alias vc='NVIM_APPNAME=nvim-nvchad nvim' # NvChad alias vk='NVIM_APPNAME=nvim-kickstart nvim' # Kickstart alias va='NVIM_APPNAME=nvim-astrovim nvim' # AstroVim alias vl='NVIM_APPNAME=nvim-lunarvim nvim' # LunarVim Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://michaeluloth.com/neovim-switch-configs/ [2]: /thoughts/
infused-kim [1] has done a fantastic job with kb_zmk_ps2_mouse_trackpoint_driver [2]. Highly recommend taking a look. A PS/2 mouse & trackpoint driver module for keyboards running the zmk firmware References: [1]: https://github.com/infused-kim [2]: https://github.com/infused-kim/kb_zmk_ps2_mouse_trackpoint_driver
I recently discovered failwind.nvim [1] by tjdevries [2], and it’s truly impressive. KEKW References: [1]: https://github.com/tjdevries/failwind.nvim [2]: https://github.com/tjdevries

New-caps-for-porta-john

Today I dropped some new caps in the porta-john. I need to do a bunch of posts on zmk and my journey building the porta-john, I’ve been rocking it for at least two weeks now pretty solid and I am absolutely loving it. More on that later. KLP-Lame-Keycaps # [1] The model of the caps are KLP-Lame [2] by braindefender [3] , they are super rounded and smooth. They look really good on camera and feel good to the finders. [4] I printed these at home on my ender3 s1 pro with a black and purple silk filliment. I printed all 42 at once using a Printing 42 keys at once [5] technique. They do have just a bit of a rough texture that you can feel on your figertips. I printed these on super quality .12mm layer height, while my last set was printed on draft quality .32mm layer height. They look crazy different in print quality with the lines of the new caps barely showing, the feel isn’t nearly as drastic. The Result # [6] Check out the final shots as I set up the porta-john with these swee...
[1] This is the coolest scrappy build, no printer or modeling required, no fancy tools, just straight chisel and claw hammer in soft pine. Im here for it, create the thing that you want to create. Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: /static/https://halfwit.github.io/2017/05/08/keyboardblog.html [2]: /thoughts/
Vim has a handy feature to format text with gq. You can use it in visual mode, give it a motion, or if you give it gqq it will format the current line. I use this quite often while writing in markdown, I do not use softwraps in vim, so gqq quickly formats my current line into a paragraph. Once I have done this for a single line one time I typically switch to the motion for around paragraph gqap to format the whole paragraph and not just the current line. before formatting # [1] [2] after formattting # [3] [4] References: [1]: #before-formatting [2]: https://dropper.waylonwalker.com/api/file/01c19159-c0b5-4920-b73c-774284b09940.webp [3]: #after-formattting [4]: https://dropper.waylonwalker.com/api/file/e068e445-43e0-4e27-ac30-ac11e9cb9088.webp
A slug is the part of the url that comes after the domain. Commonly matches the file name of a markdown file many blogging systems. These are typically human readable, unique identifiers for pages within the site.
Wikilinks are a core concept within obsidian to link to documents by Slug [1] wrapped in double square brackets. These are commonly used within wiki site generators. [[slug]] Obsidian gives you a keybinding alt+enter to go to that file, but if it does not exist it will create the file for you in the root of the project. It’s a nice way to quickly make new documents. References: [1]: /slug/

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 ...
Hotkey to open link under at the text cursor position while typing in edit mode I find myself not wanting to leave the keyboard for navigation and think a keyboard-only shortcut that could open a link at the text cursor position is at would be really handy for this case. Obsidian Forum · forum.obsidian.md [1] Obsidian has a go to definition like feature, the keybind is alt+enter, I would have never guessed this one. Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://forum.obsidian.md/t/hotkey-to-open-link-under-at-the-text-cursor-position-while-typing-in-edit-mode/8144 [2]: /thoughts/
It was not obvious to me, but if you have a wikilink such as Trying Obsidian [1], you can jump to the file in obsidian, just like you can with lsp go to definition, the keybinding is alt + enter. References: [1]: /trying-obsidian/
The work on KLP-Lame-Keycaps [1] by braindefender [2]. Sculpted and curved keycaps for Kailh Choc and MX switches References: [1]: https://github.com/braindefender/KLP-Lame-Keycaps [2]: https://github.com/braindefender
- Very inspiring video Jason, these people faced adversity and crushed it. The market is so hard right now, its not easy to get a job, move around, and recover from a layoff. Everyone in this video just showed that you can make it in this industry right now, you just have to be willing to work harder than the rest. The bar is raising, a lot of great people are already putting in hard work to make it. Community is Key, Theo mentioned that a lot of the companies he works with don’t even post openings, they go to their community first and are often filling spots through lower risk community hires. Note This post is a thought [1]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: /thoughts/
- Thor always comes in hard with fire takes in his shorts. Especially if you are early in our career take this in. If you dont yet have kids, but plan to, double take this in. Note This post is a thought [1]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: /thoughts/
I’ve long used copier to create all of my posts for my blog, and it works really well for my workflow. I think of a title, call a template, and give it a title. out of the box obsidian did not seem to work this way. It seems like it wants me to right click a file tree and make a new file using the tree, this is not my jam. Here is what I came up with to replace my til template. --- date: <% tp.file.creation_date() %> templateKey: til title: <%* const originalFileName = await tp.system.prompt("Enter file name"); const toTitleCase = str => str.replace( /\w\S*/g, txt => txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase() ); const title = toTitleCase(originalFileName); tR += title + '\n'; // Add the title to the template result -%> published: true tags: - --- <%* const fileName = originalFileName.toLowerCase().replace(/\s+/g, '-'); const newFilePath = `pages/til/${fileName}`; await tp.file.move(newFilePath); -%> <% tp.file.cursor() %> - tR is a return value, and it gets placed directly into the place it is in the file - to.file.cursor() creates a tab-index point so I can tab into the content

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
I’m giving obsidian a go as an editor for my blog and one of the main things I want to fix in my workflow is the ability to quickly drop in images. on first look through the community plugins I found Image Converter. I set it up to convert to webp and drop them in a git [1] submodule. I may make it something other than a git repo in the future, but I’ve learned that adding images to my blog repo quickly makes it heavy and hard to clone on other machines. [2] Once the images are there they are pushed and deployed as their own site to cloudflare pages. I made a quick edit to my sick wikilink hover [3] plugin for my blog. if it sees a wikilink ending in webp, convert the domain over to obsidian-assets.waylonwalker.com, and clean up the remaining "! " that the python md-it library leaves behind. Note after first try I needed to increase the width from 600 to 1400, the image in this post was unreadable. This is part of me getting set up and Trying Obsidian [4] References: [1]: /glossary/git/ [2]: https://dropper.waylonwalker.com/api/file/626d85b1-5588-45c4-a4f4-c372dc7c8ff3.webp [3]: /sick-wikilink-hover/ [4]: /trying-obsidian/
- Docker no Docker, what!!! So fly.io uses Dockerfiles to deploy your app, but no docker. They use containerd to download your docker images into firecracker microvms to run your app. Firecracker is the same tech that runs aws lambda functions. Fascinating short post on the beans under the hood at fly.io and how they scale your app globally. Note This post is a thought [1]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: /thoughts/
Ultimate Modular Macro Keyboard "Kibly" Ultimate Modular Macro Keyboard "Kibly" Reddit · reddit.com [1] This is a pretty sick design, touch screen macropad, trackball, ring, and knobs for days. I just want to play with it and see what I can make it do. As I’m typing I think I just realized that its modular, each rectangle is it’s own section! Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://www.reddit.com/r/MechanicalKeyboards/comments/1dyf0d8/ultimate_modular_macro_keyboard_kibly/ [2]: /thoughts/
- Damn Johnny is always such a positive vibe, just getting steamrolled by this braille shit. WTF are these brand sleeping on. Happy to hear that Andy and Brian are supporting him well. Also kinds shows what shoes are good when he goes to buy shoes cause no one will send him any and he goes with Etnies. Johnny keep it going! Note This post is a thought [1]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: /thoughts/
- Niklas Luhmann created the Zettelkasten method of notetaking, He was the Da Vinci of writing, holding a high standard that we can take inspiration from even today in this digital era. As many times as I have seem the Zettelkasten covered, I never knew that it roughly translated to little cards in a box. Four Principles # [1] Mischa lays out four principles of Zettelkasten. - Atomic - each card conains one idea - Link - cards are linked together - Structure - comes from the links - Own Words - You write the note in your own words My blog, tils, and thoughts make up my own zettelkasten. I am not going to say that mine is a perfect representation of his method, but the components are here. rather than building books, my thoughts and tils build up to blog posts. The rate of blog posts I write definitely changes with the seasons of life, as seasons change it becomes a bigger or smaller part of the season. I really like Mischa’s most important note to Write in your own words, this is what really promotes learning, and proves to yourself that you can form a thought around the topic. Up until recently I’ve wrote everything, but lately I’ve taken to copy pasting some quotes i...
add quick-tap-ms and require-prior-idle-ms · WaylonWalker/zmk-config-42block@cb2cda4 Contribute to WaylonWalker/zmk-config-42block development by creating an account on GitHub. GitHub · github.com [1] Even after switching to my hm and ht behaviors I am running into some issues where sometimes I am still accidentally hitting mods(&hm) and layers(&ht) while typing and it’s been getting frustrating. My main issue has been on &ht, they are configured the same so I suspect that my pinkies just move a bit slower over the keys than my pointer/middle finger. I just added quick-tap-ms and require-prior-idle-ms to my &hm and &ht behaviors, and a few intentionally sloppy passes through monkeytype seem to show that its working well. A few days of trying this will tell whether it was a good fix or if I have maybe gone too far the other way. The end goal here is to be able to roll over keys faster without worrying about hitting other layers or mods. Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://github.com/WaylonWalker/zmk-config-42block/commit/cb2cda4cf7b3776995dbc2e8608b60670a2cf8b2 [2]: /thoughts/
I’ve had a couple of uploads to twitter fail recently and has been a pain. I tried some online converters for convenience, but none of them worked. I reached out to chatgpt and found succeess with this ffmpeg command. ffmpeg -i input.mp4 \ -vf "scale=trunc(oh*a/2)*2:min(720\,trunc(ih*a/2)*2)" \ -c:v libx264 -profile:v high -level:v 4.1 \ -b:v 3500k -maxrate 3500k -bufsize 7000k \ -pix_fmt yuv420p \ -c:a aac -b:a 128k -ar 44100 \ -movflags +faststart \ output.mp4
Tickle My Keys Keyboards so good your fingers will be begging to tickle these keys. ticklemykeys.com [1] I’ve been working on something, I’m gong to combine my mechanical engineering skills with my love of great keyboards and start a custom keyboard shop for building custom keyboards for exactly what people need with an emphasis on portability. Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://ticklemykeys.com/ [2]: /thoughts/
- Damn Prime covers this so well from all angles. Can’t overstate the importance of that last step. Look at the issues, and raise an issue if there is not one before putting in a bunch of hard work. Make sure that the maintainers are open for your changes and no one else is already working on it. Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: /glossary/git/ [2]: /thoughts/
Looking for inspiration? jiff [1] by BurntSushi [2]. A datetime library for Rust that encourages you to jump into the pit of success. References: [1]: https://github.com/BurntSushi/jiff [2]: https://github.com/BurntSushi
I’m really excited about sqlite-jiff [1], an amazing project by asg017 [2]. It’s worth exploring! No description available. References: [1]: https://github.com/asg017/sqlite-jiff [2]: https://github.com/asg017
sqlite-jiff I linked to the brand new Jiff datetime library yesterday. Alex Garcia has already used it for an experimental SQLite extension providing a timezone-aware jiff_duration() function - a useful new … Simon Willison’s Weblog · simonwillison.net [1] Sqlite is getting rust extensions now, and datetimes make it totally worth if if they work well and and fast, two things that don’t always go together in datetime libraries Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://simonwillison.net/2024/Jul/23/sqlite-jiff/ [2]: /thoughts/
There’s a TUI for that with Nick Janetakis (Changelog & Friends #53) Nick Janetakis is back and this time we're talking about TUIs (text-based user interfaces) — some we've tried and some we plan to try. All are collected from Justin Garrison's Awesome TUIs repo o... Changelog · changelog.com [1] 50 minutes into this episode they start a discussion on seo, and naming posts. They give Jerod the task of googling for tmux and see how high up the ranking they find Nick, expecting a number one post, and he cant even get to Nick. The problem? Jerod is such a beginner he doesn’t even know what to search, he starts with a long query about getting started with tmux, but all of Nick’s videos are why you should use advanced features of tmux, but Jerod has yet to discover that these exist. As experts we often come up wtih a post title for the exact thing that we are trying to teach someone how to do, but yet, they haven’t discussed that they need that feature yet, they just want the getting started guide, or tell me why I should start using tmux. Not why sessions are better than windows, and tabs suck all together. Definitely an eye opening conversation listening to two experts sit in...
External Link X (formerly Twitter) · x.com [1] This is a wild keyboard test. This is exactly what I want to see from ticklemykeys.com. I want to make ergomechanical boards that you can use and abuse. I want you to not be afraid to take them with you or to eat a nutrigrain bar in the same room (cough 2015 mac). And If something does go out, I want users to be able to repair it themsleves, key caps, switches, batteries, and microcontrollers should be replacible parts they can get at a good cost from the shop if they have paid for a board. Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://x.com/verge/status/984764889754456065 [2]: /thoughts/