Louis Maddox
banner
permutans.bsky.social
Louis Maddox
@permutans.bsky.social
110 followers 97 following 1.8K posts
Combinatorially curious https://spin.systems
Posts Media Videos Starter Packs
Pinned
✍️ Wrote about keeping calm and shipping OSS and why arguing for a feature should feel more like giving a proof against the spec than trying to win a debate cog.spin.systems/keep-calm-an...
Keep Calm and Ship On 🚢
Your guide to being a model OSSizen
cog.spin.systems
Mulled it for a minute & gcmti is gonna leave it [permanently] optional to use gitoxide (which also means I can avoid dealing with it for an MVP), mainly I just want to prevent git alias hijacking and set a least privilege policy on git ops via config for high risk situations like release automation
// In a real reply I would not make such a dumb joke
You’re absolutely right!
Wondering whether there’d be more or less risk from using gitoxide gix crates over git itself and what the upsides would be if any… I mean I guess speed
ID: CVE-2024-45405
CVSS V3.1: MEDIUM
`gix-path` is a crate of the `gitoxide` project (an implementation of `git` written in Rust) dealing paths and their conversions. Prior to version 0.10.11, `gix-path` runs `git` to find the path of a configuration file associated...
#security #infosec #cve-alert
nvd.nist.gov
If you are looking for skills you can just search github, I accidentally came across one for uv yesterday github.com/wshobson/age...

which in turn feels like a repackaging of willccbb’s MCP markdown repo github.com/willccbb/cla...

(Both appeared here grep.app/search?q=uv+...)
github.com
I feel like Makefiles are somehow more built to accrete and become balls of pseudo-program whereas Justfiles are somehow more inherently ready to be exfiltrated out into real software, can’t really explain why

Maybe it’s sociocultural but still “the purpose of a system is what it does” and all that
“your Justfile is my opportunity”
Hmmmmm wait maybe I do now have a good reason to make this 🗿
concept: git commit wrapper called ‘giacometti’
Convinced sufficiently hardened: supply chain attack surface is a task runner binary (🧷 version pin), and the action (🧷 SHA pin)

Nobody can intercept your task recipe without overwriting its file (Justfile recipe names checked for uniqueness)

Maybe `command git` would seal it (prevent alias hacks)
Officially completely automated my Python package release (can now cut releases from the CI web interface) 🥳 github.com/lmmx/comrak/...

Basically trivial once you’ve siphoned your process into Justfile tasks, the taiki-e/install-action lets you cargo-binstall the just runner in CI
“Official Debian/Ubuntu repositories are out of sync so we host binaries on our CLI marketing site”

How does this happen to an org like *GitHub*? 😔
What if we normalised applying codemods to multiple repos at once… Would be a big force amplifier for task runners and configs where you tend to find an entirely better way of doing things but then have to deal with re-releasing in multiple places
Reposted by Louis Maddox
Can confirm, for one-off tools the New Way is an incredible force multiplier.

In org settings, it shifts the power balance between waiting and doing.

The problems as always start when that little prototype becomes load-bearing in any sense (must be maintained, other people depend on it etc)
One of our students vibed an extremely useful map visualizer in a few hours. We would just never have done it before because it would have been a week of work. We are in a new world.
You can’t spell acrobatics backwards without “CI”
aaand PyO3 imposes an upper bound so I added one
Alternative version that lower bounds the listed cpython versions by the `requires-python` version in pyproject TOML gist.github.com/lmmx/0a3cfb8...
Got it 😄 `uv python list --all-versions` has structured JSON!
Anyone have a nice CI test workflow for Python that automatically generates the version matrix from the requires-python metadata // otherwise low maintenance and `uv`-maxxing?
Reposted by Louis Maddox
ChatGPT’s new Atlas browser doesn’t just see what you read — it remembers it.

@eff.org’s Lena Cohen showed me it even logged “memories” of her looking for *abortion care* and her doctor’s name. Out-surveils even Chrome.

My @washingtonpost.com column: wapo.st/49bOcVC
Column | ChatGPT just came out with its own web browser. Use it with caution.
OpenAI’s Atlas promises AI-powered convenience. The price? Letting ChatGPT track and store “memories” of what you do online.
wapo.st
Early new year’s resolution: get to 100% PyPI Trusted Publishing releases before the new year
Ah nice there were a few improvements just made to harden the CI github.com/j178/prek/pu...
Jarek from Airflow points out that octopin (from Eclipse Foundation) can be used to enforce SHA pins as a pre-commit hook github.com/eclipse-csi/...

Background on zizmor: bsky.app/profile/josh...
A new “job interview scam”, reverse of the ‘IT worker scam’, here people pose as an exec at a [real] company but the take-home task runs malware (here in a React/Node codebase) www.theregister.com/2025/10/16/n...

> JADESNOW uses EtherHiding to fetch, decrypt, and execute malicious payloads