Louis Maddox
banner
permutans.bsky.social
Louis Maddox
@permutans.bsky.social
Combinatorially curious https://spin.systems
Pinned
My new library and CLI for precise file patching is up!

textum docs.rs/textum/lates...

You give a target to delete/replace/insert at, and whether to include/exclude/extend the match boundary

Target can be specified as:
💬 String 🧩 Regex 📏 Line/Char/Byte # 📐 Position (row, col)

🔮 tree-sitter AST 🔜
#plantsky dispatches from Ickworth

💈 Wig-like seed head of Clematis, aka "Old Man's Beard"
🍒 Tiny lychee looking berry (Arbutus unedo compacta)
🪸 Coral-like inflorescence of a Chinese rice paper plant, Tetrapanax Papyrifer 'Rex' ("panicle of umbels"! en.wikipedia.org/wiki/Tetrapa...)
🫒 Tiny olives!
November 11, 2025 at 5:41 PM
Seems incorrect that the missing_docs lint is listed under “rustdoc-specific lints” but is actually not `rustdoc::` namespaced (thus cannot be cfg’d out at compile time to the doc scope… le sigh)

The only one on the “rustdoc-specific lints” page that’s not in fact doc.rust-lang.org/rustdoc/lint...
Rustdoc-specific lints - The rustdoc book
doc.rust-lang.org
November 11, 2025 at 12:04 PM
I’m inclined to believe there must be a lighter way than cargo-metadata to read Cargo.toml… I’m gna use my textum crate which can do TOML targetting based on string matching and can have just a ropey dep (so smallvec + str_indices github.com/cessen/ropey...) … should really make ropey opt-in too tbh
github.com
November 10, 2025 at 11:56 PM
Cool: abandons flags for an expr DSL github.com/inanna-malic... via pest grammar github.com/inanna-malic...

This was fun to translate into `fd`:

`-e rs -e toml`
`-S +1M`
`--changed-within 7d`
`-X rg -l 'class.*Service'`
`-E '*test*'`
`-e yaml -S -0.5M -x lq -Y {} | jq -e '.server.port > 8000'` (?)
November 10, 2025 at 4:22 PM
Reposted by Louis Maddox
i don't approve of relationships with AI because im aiphobic
November 10, 2025 at 5:17 AM
Reposted by Louis Maddox
the entire information infrastructure of the EU can be turned off by the US and they are c++pping themselves over Chinese buses
November 10, 2025 at 11:33 AM
Thinking about asterism diff editing it occurred to me that a patching lib that reads git diffs is functionally equivalent to git restore (minus reliance on git)...and I should probably not complect that into an application

(Btw what do you call "diff editing" given that a diff represents an edit?)
November 10, 2025 at 11:06 AM
Not to reinvent the idea of external docs but I suspect I want to keep docs alongside the code more like stubs (the same way I put unit tests under src/tests/ to avoid bloating their parent modules). Ideally in a way that’ll recurse down from the module-level attribute not require one per docstring?
November 10, 2025 at 10:40 AM
Throwing Claude at a strongly typed ratatui app is like.. the programming version of Dance Dance Revolution, or playing chess rather than wrestling individual data structures
November 9, 2025 at 4:13 PM
November 9, 2025 at 1:21 PM
Pulled its schema, looks like github.com/Wilfred/diff...
November 9, 2025 at 11:52 AM
📦 lq crates.io/crates/lq
📁 github.com/clux/lq/

> lightweight and portable jq-style cli for doing jq queries/filters/maps/transforms on YAML/TOML/JSON documents by converting to JSON and passing data to jq
crates.io: Rust Package Registry
crates.io
November 9, 2025 at 11:45 AM
Part of me has gotta stop thinking about text patching… the other thinks I can probably work out how to implement an editable difftastic next (TIL there’s a JSON output DisplayMode github.com/Wilfred/diff...)
github.com
November 9, 2025 at 3:29 AM
Many people hassling maintainers this way now

V deliberate structure, akin to the practised negging of the Pick Up Artist

- neutral-toned intro
- escalation with call to action often guilt tripping
- shallow offer of being “happy to open a PR!” but no effort made to establish further

Needs naming
LLMs deployed in this way make social interaction a bottleneck to instrumentalise:
- prematurely jump ⇒ actionable
- use strategic ambiguity to create social pressure
- withhold info within the social interaction, rather than use it to establish shared understanding of a problem
November 9, 2025 at 3:19 AM
oh damn syntactic node-wise patch editing where have you been all my life... Need this for program source files
November 8, 2025 at 11:39 PM
November 8, 2025 at 10:00 PM
who called it releasing CLIs and not putting the bins out /ducks
November 8, 2025 at 9:19 PM
yyyyoink
November 8, 2025 at 6:20 PM
User has once again run into the same problem he planned to solve last week (facet figment hierarchical config lib)
November 8, 2025 at 5:10 PM
First you make a structured dev journal format, then you make a graph view of the code based on its mapping to the file tree, … something something intents programming
November 8, 2025 at 4:34 PM
Had 3 espressos and accidentally triggered a full cascade winter refactor of my flat
November 8, 2025 at 2:42 PM
The way if you leave ink on a whiteboard for too long it ‘sets’ and ultimately damages the board is almost like burn in… there’s kind of a general principle of information deposition there. You could more dubiously say same applies to leaving desktop windows and tabs open (info decay implies a loss)
November 8, 2025 at 12:21 PM
Friend who a year ago* denied LLMs could assist in his dev work (and in the meantime quietly began using ChatGPT daily) now says that they are fundamentally unable to develop beyond a complexity ceiling (again phrased as a point of pride)
November 8, 2025 at 12:12 PM
1st passable recommendation I’ve gotten off 🍏🎵 I don’t think there is particularly a technical [let alone informal] lingo to name it, but you can perceive your experience falling in a subspace less amenable to the inference process (can only guess at sources, my sense is curated playlist embeddings)
November 8, 2025 at 11:00 AM