Archive

All published posts

2440 posts latest post 2026-04-21
Publishing rhythm
Apr 2026 | 41 posts

Techbrophobic

I just heard someone drop the this term and it kinda fits a lot of shit on the internet right now. Arguing that its OK to question AI, its OK to like it, its OK to question if it needs to be in every goddamn thing we do, question its morality on training and the slop being pushed at us all the time.

I’m not Technophobic I’m Techbrophobic

I heard this and it kinda hit with a lot of things that I’ve resonated with lately. Tech bros of today have been compared to Steve Jobs in a lot of ways. Whether its style or the way he was so good at marketing, but this feels different. When Jobs launched the iPhone as this next great thing, He fucking made the thing.

...

3 min read

Are we cooked? Are we? Yes the consumers are cooked there are no more affordable cars with basic shit that you need to go point a to point b. Ford make us cars we can afford and you won’t be cooked by this dumb shit. If you can market it?

Most people don’t care what sticker price is and only the monthly payment. This is why we are cooked. We stopped caring that these things cost way too much. I’m probably in a small minority that just want an affordable reliable vehicle and could care less about features past climate control. I don’t use them. My phone has maps and music I don’t need a screen in my vehicle for anything.

Mcat Anything

I’ve long looked for a way to cat anything in the terminal. I’m am terminally in the terminal. I manage all of my projects, code, website, notes, files, servers, infrastructure, almost everything from the terminal. I occasionally open a file manager, mostly at home, only so that I can browse images.

Compounding my issue, I’m a tmux user. It works great for me, and I barely have to think about it at this point. The keybindings are second nature to me. I can go between server, terminal, nvim, and between projects instantly, no loader, no lag, no animation, it just works for everything that really matters to me for really getting things done.

mcat is a new tool that seems like it can cat anything in the terminal, code, files, images, markdown, markdown with images, and even video, without leaving tmux!

...

2 min read

Missing Thoughts

No one is perfect, this is why we have things like checkpoints or gates in the form of pull requests, linting, type checking, and tests. What happens when you work on small side projects by yourself that try to be content focused? What happens when you end up building a lot of the tech under that site and build it on the bleeding edge of all the tech you make? They are likely missing these things and occasionally there are some periods of regression. This is one reason I really like the term digital garden to describe one’s small corner of the internet where they share their thoughts.

There will be regressions

There were signs, signs I did not notice

...

3 min read

2025-11-04 Notes

Today I gave mcat a try and it's so sick. It can anything right in the terminal, pdf, image, even video. It even works inside tmux unlike almost anything...

1 min

Microsoft has been addding features to Minecraft for over 10 years now. Idk if there was momentum from the mojang theme, but we’ve barely paid attention to any updates in the last five years. The ocean update was huge, caves and cliffs were huge then it trailed off to we play each release on release day, use commands to try out new features, then never touch them again either to play minecraft as we always have or to play a modded pack with crazy new features that really make an impact on gameplay.

Absolutely love this selfhosted arc of pewdiepie that is going on right now. It’s crazy to witness now fast he is picking up linux / self hosting, and sounds like soon will be programming. In this one he built a $20k AI beast that crushes gippity with power, speed, proximity, and security. No one to take your data, no latency to the data center, no one else bogging down your prompts, just raw speed. It looks absolutely wild. He implemented RAG and gave it a bunch of data about himself and its able to spit out his wife’s name and phone number in under a second. It writes code at blazing pace. This may be the future that we get over the next few years as things shift towards AI there will be more affordable options, and a larger second hand market for building out these highly capable machines.

I greatly appreciated the wide variety of experienced maintainers of large oss projects. From webdev to desktop application. The most common sentiment here was don’t contribute to open source just to contribute to open source. Bring something meaningful to the project. Find a project you like, look at the discussions/issues for work or start some discussions. If there are no meaningful features that you can add to projects that you use and love, make your own thing. Adam from tailwind really hit on this one several times. He has made tailwind extensible so that you don’t have to contribute to tailwind to get new capabilities, you can probably just extend tailwind with your thing. Its likely that it makes a lot more sense or your use case, and if it turns out that it makes sense for everyone have the discussion about bringing it in. The upside to small oss projects is that you can move at whatever pace you want and break them all you want when the user base is just you. As you move your stuff into tailwind you have to be very careful not to break the massive tailwind user base and you have to bend to the release schedule of tailwind.

...

Corner Clamp V1 Isometric
Isometric view of my corner clamp v1 that supports up to 3/4" sheets and includes slots for dowell points on 3/4" and 1/2" material.
Act Ii
Last Judge

rustfs by rustfs is a game-changer in its space. Excited to see how it evolves.

🚀 RustFS is an open-source, S3-compatible high-performance object storage system supporting migration and coexistence with other S3-compatible platforms such as MinIO and Ceph.

Rules

There is no such thing as magic Be ready to roll back live deployments If CI was too fast be suspicious
1 min read

It’s so easy to forget low level tech sometimes. Things that are dead simple and just work without a hitch. git is one of those rock solid things thats very easy to remember all that it does, this is a classic use case.

This just works

cd /parent/directory/for/repo git clone ssh://username@server/path/to/repo

In order to recieve you must update the remote to allow recieve.

git config receive.denyCurrentBranch updateInstead

Now you can pull update push.

...

Well done write up about reflecting solar energy back to earth from low orbit space. I did not know this was a thing, apparently it is/isn’t. Solar is a great technology, its largest limitations are that its not consistent. This tech does not fix this problem, what does is efficient long term storage. I’ve seen some crazy ideas going back to my days in school, maybe elementry school. Theres a lot of innovative ways to store potential energy by moving heavy objects uphill whether fluid or solid. The issue is that energy storage at grid scale is HUGE and not efficient enough. Even assuming this idea had any legs at all, it still doesn’t solve the problem of inconsistent power because it still cant go through clouds!

[…

Wild to see the LinkedIn post linked here to see how out of touch this feels. I find it astonishing that they have something so ingrained into gaming culture as twitch, yet build something like Prime Gaming. Maybe I have no idea what Prime gaming is, but it feels like the opposite of ownership. What I get from steam is a sense of ownership. I own the desktop/laptop/handheld, no one cough nintendo cough cough cant remotely disable my device for using it inappropriately. I have a sense of trust with steam that as long as Gabe is alive I own what I paid for and will be able to open up and play anything at any time on any device I want. It might be a $100 dell workstation raised out of the coorporate refurb bin, it might be a high end machine, It could be my 2010 gateway or my 2045 custom build and they are all likely to play a good amount of my library at some level. I still understand that I really own nothing and the moment steam turns off its servers its quite likely that everything is broken, but its by far the best we have. Far from the status quo we are headed towards with subscription and cloud based gaming. If they wanted to...

...

Great justification for using the cloud. The infrastructure requirement for signal to be such a great app would be massive for a small team with low budget. The cloud is fantastic at unknown scaling, bursts beyond reasonable capacity to run yourself, getting compute everywhere in the world, and offloading huge infrastructure management costs.

DHH is 100% right that we have gone too far, too many things come out cloud first for services that can be ran locally cough such as your bed cough cough. One week ago when the world came to a hault, I did not bat an eye at these small teams with complex requirements going down with AWS.

Their own products seem quite damning to me. It signals that they cannot themselves become resilient to themselves. It shows how hard this problem is, how much cost in complexity and resources it requires. I’m sure there are fail overs that happened successfully that we will never hear about, critical products with large engineering overhead.

...

Just starred croc by schollz. It’s an exciting project with a lot to offer.

Easily and securely send things from one computer to another 🐊 📦

I often want to run an s3 sync in an isolated environment, I don’t want to set any environment variables, I don’t want anything secret in my history, and I don’t want to change my dotenv into something that exports variables, I just want s3 sync to work. dotenv run is the tool that I’ve been using for this, and this uv one liner lets it run fully isolated from the project.

uv tool run --from 'python-dotenv[cli]' dotenv run -- uv tool run --from awscli aws s3 sync s3://bucket data

multi-line #

same thing formatted for readability

uv tool run \ --from 'python-dotenv[cli]' \ dotenv run -- \ uv tool run \ --from awscli \ aws s3 sync s3://dropper data

There are probably 10 ways to skin this cat, but this is what I did, if you have a better way let me know, I’ll link you below.

First 3d Printed Threads

Working on an upcoming project that requires some threaded screws. Trying to keep a low budget on this one with as much to come off of the printer as I can. It might become a slant3d portals product if it works out. I always like making test prints for stuff like this especially to see how the feel is off of the printer that is going to print the final product and take much longer. First try was a success.

I started out looking up standard half inch thread pitch and size, but ran out of time to get the exact profile of a half inch bolt, so I will need to fix that later. Th

The print orientation is critical for strength here. This part is a full 1/2: so it should be strong either way, but to make sure we are printing the bolt horizontally to get nice long print layers. To do this we have to give it a bit of a flat spot on the top and bottom. This does not hurt performance, if anything it probably helps give some room for poor tolerances.

2 min read

Atuin desktop sounds dope AF, tried to install it off the AUR and it was broken for me. Seems early and the dev team is all in on mac. They have an official .deb and .rpm. I’ll have to try again later, maybe the binary will work.

The idea of building out runbooks from my Atuin data sounds dope AF. It sounds like a mix of markdown and executable cells like a jupyter notebook, but not. Really pitching hard to those of us in the system administration, dev ops, SRE space. Having something that you walk through when a system goes down and you are feeling panicked in DR mode sounds relieving.

Cloud is cooked bois. Seriously too much dumb shit relies on the cloud. Too much critical shit relies on single AZ’s. If normies are literally loosing sleep over an AWS outage (queue the Uncle Roger Voice), You’ve Fucked up. It’s wild to even think about a bed relying on the cloud let alone fully stop working when UE-1 goes down. I want to live in a world of opt in FEATURES, things that bring value to a product because it makes it better. Somehow a bed smells suspiciously like a cash grab for a subscription because its cloud connected. And yet for some reason it takes 16GeeeBee’s per month. I don’t own one of these, and I don’t want to. I don’t want a subscription for everything, I want my shit to just work. The future we are headed towards a world that is ever more reliant on a few key clouds. Which is fine. It’s fantastic that small companies can start and scale without owning an infrastructure team. It’s great that they have the ability to give us many nines of reliability. Some things just don’t need the cloud.

Spinning a 3d printed test block on a threaded t handle.

FastAPI is a modern and efficient web framework for Python, built on top of the Starlette web framework, and pydantic for data validation and serialization.

FastAPI is a modern, fast (high-performance), web framework for building APIs with Python based on standard Python type hints.

The key features are:

The +5 point increase for FastAPI is one of the most significant shifts in the web framework space. This signals a strong trend towards using Python for building performant APIs and reflects the overall strength of the Python ecosystem.

FastAPI.">Starlette has a head request that works right along side your get requests. This morning I fiddled around with custom routes for GET and HEAD, but had to manually set some things about the file, and was still missing e-tag in the end. Turns out as a developer you can just add a head route to your get routes and starlette will strip the content for you, while preserving all of those good headers that fastapi FileResponse created automatically for you.

...

Today I learned that while .stignore and .gitignore look very similar they are not. My obsidian directory had been locked up for a few weeks and I had no idea why until I logged into the web ui and saw errors. The errors were some confusing regex validator not matching. I don’t know what the exact error was, but I went in and only ignored the files I cared about instead of the entire gitignore. Primarily I was getting conflicts in my .git directory.

3d Printed Dovetails Fanned Out
Experimental slices of 3d printed dovetails laid out in a fan. Each have sharpie notes written on them.

3d Printing Dovetails Experiment

I hit an issue with 3d printing oversized parts that I have not hit before. I’m working on some jigs for an upcoming woodworking project that will involve a lot of repetition. We want to utilize some dowel joinery and jigs for consistency. These parts will be up to 20in in length this is much larger than my print bed.

Here’s where I went wrong, I wasn’t really thinking through my previous applications. They’ve all been slip fit, primarily print in place joints that need to move. My go to offset for print in place on my printer is 0.2mm, sometimes 0.1mm depending on the scale.

A live hinged [[ knife-sharpener-double-hinge-first-try ]].

...

This is super cool, thanks to Brodie for reading me this content as I do household chores. lowtech magazine is a website ran completely on solar power with only enough battery backup to cover most days. Adding enough to cover all days would increase its carbon footprint and negate the carbon offset of the solar panels it runs on.

It’s fascinating to see a web server running completely off grid in a close power system. These interesting websites are fascinating keep em coming Brodie.

The Year of the Linux Desktop is a meme, every year is the year of the Linux desktop as it gains rounding errors of market share. Outside of Linux nerds, developers that use servers on the regular, cheap asses reviving old hardware that is dead in the eyes of other OS’s, the average user wont even notice a difference with the right distro. I ran bazzite with plasma for over a year, It would be super beginner friendly while allowing users customization on levels never seen on non-Linux machines. Other than adobe, roblox, and EA games with easy anti-cheat most users probably aren’t going to run in to any issues. They probably wont even notice at this point, which is where the meme comes in. Why would anyone switch if its not noticeably different for the average user, they wont, until what is working for them stops working for them.

Handle Jig Alignment Window
Handle jig for theater boxes. The image shows the centerline lineup. This jig came out with a handle a little bit too big, going to go with a smaller one for the real boxes.

This is a sick no-build version of tailwind. I have a couple of projects that the build step of tailwind is cumbersome on, mostly because they are for non-js devs. Some are for backend python devs, some are for folks that mostly want markdown with some styles. This is a perfect no-build tailwind alternative.

python extras are for shipping

Python has two ways of adding optional dependencies to your projects pyproject.toml file dependency-groups and optional-dependencies.

for development

Dependency grooups are used when working on the project, they do not ship with the project, users cannot select to install them with the project. These are for things like running tests, linting, or docs. You might want to run these in ci, or keep your dev machines tight. For the most part you can probably keep these in dev. Depending on your team, fluency, and tolerance for slower installs extra packages. Adding too many tight groups might make it hard for the team to remember all the groups and which one to use and end up with them using --all-groups anyways.

...

3 min read
Sister Splinter
Cling Grip Bind

anthony has some of the best python highlight videos each year. This might be a good sign, but each year there seems to be less and less that I am chomping at the bit to get to. I thought the remote debugger looked every interesting, his use case for babi seemed very interesting. I wonder what textual would look like built in a 3.14 world, would it still have built its own debugger/console?

uv tool run --python=3.14 babi

Without a process flag you need sudo permissions to attach a pdb debugger similar to gdb.

Kraft-Coordinates

Handy reference for coordinates in the kraft world.

Overworld:-208 71 -291 Nether:-26 9 -36

Overworld: 209 62 -752 Nether:26 1 -94

1 min read

PEP 735 describes dependency groups as sets of optional dependencies that are not shipped with the package but intended for development purposes.

The PEP includes an example for groups that include test, docs, typing, and a combo typing-test.

[dependency-groups] test = ["pytest", "coverage"] docs = ["sphinx", "sphinx-rtd-theme"] typing = ["mypy", "types-requests"] typing-test = [{include-group = "typing"}, {include-group = "test"}, "useful-types"]

This is implemented in uv and can be used by several of their commands.

uv sync --group test uv run --group test uv add --group test pytest uv remove --group test pytest uv export --group test uv tree --group test

Dependency Groups are not Extras #

The docs describe extras as being intended to ship with the application and dependency groups intended for development. The spec allows both to exist with the same name, but care should be taken as tools may have different implementations.

...

I really like how well the local dev is setup to run off of production data here. I’ll use this as a reminder that I need to set up lite stream on a few of my projects that it’s missing from and include a nice sync prod data Posts tagged: justfile recipe.

Litestreams interface always throws me for a loop. It works fantastic, but the global config stored in /etc and some of the commands break my brain. It’s not you it’s me.

Using real data when you can is goated. Fake data is so often a perfect example of what someone thinks the backend should look like and does not include things that users actually do, running pipelines for days, or setting titles to paragraphs worth of text. Obviously this is not possible everywhere and the more sensitive your data the harder that process becomes.