Usually you can run an application without knowing what language it is written in.
Sometimes when debugging unexpected behavior, that becomes very important.
While debuging some headers changing, knowing that Caddy
was written in [golang] explained the bug.
Read More →
Python uses a list of “Trove classifiers
” to add some structured meta data to projects.
It can be a bit tedius to add these manually.
Combining the ease of uvx
with a Python package, we can simplify this.
Read More →
My previous post
about packaging was several years ago.
With the raising popularity of uv
and just
, I have updated my basic packaging steps.
Read More →
Inspired by @adamghill
’s recent dj-toml-settings
and webology
’s previous post on renaming django-admin
I did a quick brainstorm of a django-uv
command.
Read More →
Now that just
made it into debian trixie
, it has become easier to install it everywhere.
I have recently been updating some of my dev environment, and have started using it with my existing salt
configuration to make it easier while testing.
Read More →
On my phone and tablet, I typically use safari as a default, always in private mode, and I use Vivaldi for a few sites I want to keep a persistent session.
I will periodically do a “Close all Tabs” for my browser and save links to something like Raindrop.
On my desktop I currently use Vivaldi mostly like normal, though I do miss Firefox Multi-Account Containers
for separating things.
Somewhat inspired by Firefox Multi-Account Containers
, I have long brainstormed about some browser ideas, even if they’re not super original.
Read More →
If we understand what files git rebase
creates, then we can manually create our own rebase plan.
# Lets check out a branch to work with
git checkout origin/main demo-branch
# and kick off a rebase against root
git rebase -i --root
Read More →
I have never had a beer.
I have never had a glass of wine.
I will often joke that as an computer science major, I was busy studying and never attended parties so I just never started.
At first, it was not not any kind of specific decision and I have no religious reason for abstaining, I just never started.
Over time I made a more conscious decision that I did not have a compelling reason to start and just never did.
Read More →
I have been using salt
for quite a while (oldest commit in my personal salt states repo is 2010), but have usually taken the old approach to distributing modules.
By setting the file_roots
you can automatically sync all your modules with the saltutil.sync_all
command.
file_roots:
base:
- /srv/salt
- /srv/salt-kafka
- /srv/salt-forgejo
With our file_roots
defined, our plugin repo looks like this
tree /srv/salt-kafka
├── LICENSE
├── README.md
└── _engines
└── kafka_consumer.py
This is useful, but for maintainability, I finally sat down to look at how to package things up more properly.
Read More →
As part of my Markdown Virtual Table
project, when running the development runserver
, I occasionally want to run some code when we update a file.
There are two signals that we can use for this, that are not well documented in Django itself:
from django.utils.autoreload import autoreload_started, file_changed
These are mostly used internally with the development runserver.
autoreload_started
The first half of this is used to register our file watches.
We can find some of these examples in Django itself.
Read More →