Published

All published posts

2540 posts latest post 2026-06-16 simple view
Publishing rhythm
May 2026 | 58 posts
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. References: [1]: /static/https://halfwit.github.io/2017/05/08/keyboardblog.html

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 #

vim-gq-20240805122634078.webp

after formattting #

vim-gq-20240805122700026.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 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.

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. References: [1]: https://forum.obsidian.md/t/hotkey-to-open-link-under-at-the-text-cursor-position-while-typing-in-edit-mode/8144

It was not obvious to me, but if you have a wikilink such as Trying Obsidian, you can jump to the file in obsidian, just like you can with lsp go to definition, the keybinding is alt + enter.

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.
- 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.

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 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.

obsidian-image-converter-20240731211310793.webp

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 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

- 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.
Reddit - Please wait for verification 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! References: [1]: https://www.reddit.com/r/MechanicalKeyboards/comments/1dyf0d8/ultimate_modular_macro_keyboard_kibly/
- 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!