Published

All published posts

2565 posts latest post 2026-07-13 simple view
Publishing rhythm
Jun 2026 | 27 posts
- 2025 is not the year to get put on the market, its rough out there. Junior’s have little chance, senior+ are even struggling. We had it easy from 2020-2023, now its over saturated and you have to want to be in this industry to be here and stay here. It used to be a fine place to get a good job to pay the bills, the bar has been raised and if you don’t want to be here you are going to struggle. Theo covers this in this linked video deeply [[ thoughts-472 ]].
Notes – 09:32 Thu 19 Jun 2025 Notes – 09:32 Thu 19 Jun 2025 dbushell.com · dbushell.com [1] David’s design on his blog is fantastic likely from years of small improvements like this converting ugly quotes to pretty quotes and optimizing fonts. It’s common for markdown libraries to convert the first to the second like my build script does. This is new to me, I had no idea that markdown libraries did this, I’m now interested if markdown-it does it. For subsetting I use the fontTools library but I’ve no idea how to setup Python environments. I got it working once and failed to document the process. David, David, David, I’m sorry python has done you this dirty. I should do a post on making python environments in the age of Posts tagged: uv [2]. You got options to run in docker/podman, a whole ass vm, uv venv, uvx, uv run, uv script, python -m venv, virtualenv, poetry, hatch, and too many more. The ones that matter are containers or uv. References: [1]: https://dbushell.com/notes/2025-06-19T09:32Z/ [2]: /tags/uv/

Copier has a few quirks with vcs that I just discovered by trying to test out some changes. I may have some config that I have long forgotten about somewhere deep in my dotfiles, I don’t think so, but id love to be wrong and corrected, please reach out.

What Doesn’t Work #

I tried throwing everything at this template to make it work. I tried a bunch of flags that did not work. I tried making commits to the local repo to get rid of the dirty warning. I really wanted to test new changes locally without committing and pushing untested and potentially broken changes.

uvx copier copy ../markata-blog-starter .
uvx copier copy gh:waylonwalker/markata-blog-starter@develop .
uvx copier copy ../markata-blog-starter . -wlg --trust

What Works - –vcs-ref #

Finally after trying everything to get the local copy to work, and my guess of @branch not working I found this to work. It does require me to go to the repo on my develop branch.

uvx copier copy gh:waylonwalker/markata-blog-starter --vcs-ref develop .

git">What Works - delete .git #

Really this might be my best option to make quick changes and test them locally without going through a version control system. It is not ideal, but makes it easy to quickly iterate on. I might be renaming .git, or copying to /tmp for quick iteration.

rm -rf .git
uvx copier copy ../markata-blog-starter .

Copier I love #

Copier is a great templating tool. I really love it. I use it every single day to create posts on this blog using Tmux hotkey for copier templates. This is the first time this quirk has got me and it had me puzzled for 45 minutes as I did not expect this behavior whatsoever.

I came across checkbox [1] from canonical [2], and it’s packed with great features and ideas. Checkbox is a testing framework used to validate device compatibility with Ubuntu Linux. It’s the testing tool developed for the purposes of the Ubuntu Certification program. References: [1]: https://github.com/canonical/checkbox [2]: https://github.com/canonical
Bug: Pypi metadata is wrong (Requires: Python >=3.6) · Issue #1131 · jmcnamara/XlsxWriter Current behavior When pulling the dependency with pip (without pinning the version), our python3.6 tester pulls 3.2.3 and not 3.2.2 even though the version is no longer compatible with python 3.6. ... GitHub · github.com [1] pypi yanks suck, they are rare, this one got me today as it was a pinned dependency in my dependency chain. The latest release broke python 3.6/3.7 (which 3.6 has been EOL for 3.5 years btw), and it claimed >=3.6. In order to allow users to still install xlsxwriter without pinning down it needed yanked. I’m not sure if there was another way around it as pypi releases are immutable, so you cannot fix [2] This now has me wondering what the heck is using it with old pythons. It appears to have broken builds on Canonical/checkbox for ubuntu 18.04. Checkbox is a device compatibility testing framework. https://github.com/canonical/checkbox/actions/runs/14644718138/job/41098549191#step:8:125 [3] References: [1]: https://github.com/jmcnamara/XlsxWriter/issues/1131 [2]: https://dropper.waylonwalker.com/api/file/2ba70753-5723-4b96-8f2b-8090be07d6ad.webp [3]: https://dro...
Conventional Commits A specification for adding human and machine readable meaning to commit messages Conventional Commits · conventionalcommits.org [1] I try to use conventional commits on all of my commits, but I often end up only using feat/fix. I need to keep this page handy and get new verbiage worked into my language - fix: - feat: - build: - chore: - ci: - docs: - style: - refactor: - perf: - test: Optionally include a scope fix(parser): A bang indicates a breaking change note. For example … chore!: drop support for Node 6 BREAKING CHANGE: use JavaScript features not available in Node 6. References: [1]: https://www.conventionalcommits.org/en/v1.0.0/
Visualizing My Blog’s Internal Links Writing about the big beautiful mess that is making things for the world wide web. blog.jim-nielsen.com [1] I like Jim’s visualizations on his site, reminds me a lot of obsidian. I’ve tried to do the same on my analytics [2] page in the past, but it didn’t come out right. I’m going to have to give this another go. References: [1]: https://blog.jim-nielsen.com/2022/visualizing-my-blogs-links/ [2]: /analytics/
Your Framework is Showing The one where I’ve had enough of the same Next.js error. dbushell.com · dbushell.com [1] Great breakdown of nextjs. I was highly unaware of its performance optimizations before reading this. The smell of vendor lock in from next/vercel has been there from the start, this is the first real claim I’ve seen. I’m out on modern js front ends, complex builds that change every 6 months, design patterns are out of date just as fast. Its hard to keep up, especially when you don’t have the use case for highly interactive apps. Libraries like htmx [2] or plain ol js gets the job done on the majority of sites and everything I tend to work on. References: [1]: https://dbushell.com/2025/06/13/your-framework-is-showing-nextjs-error/ [2]: /htmx/
- I’m totally with Prime here, there is something about the read only, mouse clicking part of my brain that causes me to be more critical of the code at a different level. It doesn’t hit the part of my brain thinking about the edit or how to do the edit, it hits a part thats thinking about how I will have to deal with the code moving forward.
Next.js 15.1+ is unusable outside of Vercel TBD Omar Abid - Personal Blog · omarabid.com [1] Vendor lock in disguised as performance. Nextjs aparantly now streams all of your metadata on the fly with js. This would obviously kill all seo right, well not if you’re on vercel they automatically detect search crawlers and serve the metadata. Why the f do they need to do this and not just serve everyone the metadata. The Web is this beautiful place where anyone can create and build amazing things with a relatively low skill. Js is meant to be enhancement, not degrade the experience of its users. References: [1]: https://omarabid.com/nextjs-vercel

I’ve been using gitingest web ui [[ thoughts-516 ]] for quite awhile to serialize git repo into llm friendly text files. This gives tools context about repos that are not in the training data so that it knows about it and how to use the code in the repo. gitingest also has a python library [[ thoughts-517 ]]

I had a use case for a project not yet on git, and found yek.

Installing yek #

Their instructions tell you to curl to bash.

curl -fsSL https://bodo.run/yek.sh | bash

I don’t like curl to bash from random sites, so I have my own self hosted version of i.jpillora.com. I like using this because it pulls from github and I trust github as a source for artifacts as good as the repo I am pulling from.

curl https://i.jpillora.com/bodo-run/yek | bash

Using yek #

yek

/tmp/yek-output/yek-output-bb01e621.txt

This will give you a link to a text file that you can add to many llm tools. This happened so fast for me that I didn’t even believe that it worked properly.

more options #

As with most clis, you can run yek --help to see the options available.

yek --help

Today I discovered brightnessctl to adjust the screen brightness on my AwesomeWM machine. Its a command line utility that you can use to adjust the brightness of your screen. A command line interface like this gives you the ability to bind keys with something like [[xbindkeys]] or your window manager configuration.

sudo apt install brightnessctl
# or 
paru -S brightnessctl

Now that you have it installed you can use it to adjust the brightness of your screen, this worked particularly well for my laptop screen, I don’t think this works for monitors, in my experience they are usually controlled by the built in osd.

# Increase brightness by 10%
brightnessctl set +10%
# Decrease brightness by 10%
brightnessctl set 10%-
# Set brightness to 50%
brightnessctl set 50%
# Set brightness to 100%
brightnessctl set 100%

Note

on my machine I had to use `sudo` to run the command, otherwise I got the following error:
Can't modify brightness: Permission denied

You should run this program with root privileges.
Alternatively, get write permissions for device files.
Think less, ship more I do too much thinking about what I want to make, and not enough actually making the thing. cassidoo.co [1] I thin a lot of us have this issues, especially on side projects. At work therre are expectations, jira tickets and so on, keeping you shipping. I think there is something to be said about getting that quick and dirty POC to the right group of people early for feedback before you add redis caching, kubernetes, auto scaling, disruption budget, distributed nodes, high availability, backups, disaster recovery. At work you kinda have to have the right person to shoot ideas by that can understand that you probably need some of these complex things for your app and it will take time to get right. References: [1]: https://cassidoo.co/post/think-less/
GitHub - trykimu/videoeditor: Your Creative Copilot for Video Editing Your Creative Copilot for Video Editing. Contribute to trykimu/videoeditor development by creating an account on GitHub. GitHub · github.com [1] I would love to have a browser based video editor I could throw on a server and do quick edits from anywhere. I tried to get this one to work and struggled to get front end to send api requets to backend. I think the root of it was their redis wants to run on 80, this caused a permission error so I tried to run 8880:80, but redis was still unable to start due to a config permission error. References: [1]: https://github.com/robinroy03/videoeditor
I’m impressed by videoeditor [1] from trykimu [2]. Your Creative Copilot for Video Editing References: [1]: https://github.com/trykimu/videoeditor [2]: https://github.com/trykimu
If you’re into interesting projects, don’t miss out on videoeditor [1], created by robinroy03 [2]. Video Editor Application using React, Remotion & TypeScript. References: [1]: https://github.com/robinroy03/videoeditor [2]: https://github.com/robinroy03
PocketCal Build Log I made a date-sharing app called PocketCal. Here cassidoo.co [1] I love this idea of tiny useful apps for yourself. In fact I’m working on a project to built out tinyapps [2] for myself to replace my common needs. I absolutely love that all of the state is stored in the url bar, nothing is stored server side. As much as I love to hate js, I really appreciate that things like this can be built to just live on the web, be accessible from anywhere, and live practically forever as they require such little hosting demand. References: [1]: https://cassidoo.co/post/pocketcal-build-log/ [2]: /tinyapps/