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 🔜
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!
💈 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
#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!
💈 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!
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...
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
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...
The only one on the “rustdoc-specific lints” page that’s not in fact doc.rust-lang.org/rustdoc/lint...
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
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
Just made 'mkdocs for Rust' github.com/lmmx/syncdoc
GitHub - lmmx/syncdoc: Proc macro to inject docs from external files into Rust code
Proc macro to inject docs from external files into Rust code - lmmx/syncdoc
github.com
November 10, 2025 at 10:32 PM
Just made 'mkdocs for Rust' github.com/lmmx/syncdoc
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'` (?)
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
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'` (?)
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'` (?)
Reposted by Louis Maddox
i don't approve of relationships with AI because im aiphobic
November 10, 2025 at 5:17 AM
i don't approve of relationships with AI because im aiphobic
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
OK, so now the UK, Norway, Australia and Denmark are all investigating buses made by China's Yutong Group for security risks.
www.ft.com/content/07ec...
www.ft.com/content/07ec...
UK investigates whether buses made in China can be turned off from afar
Investigation comes after Norway found Yutong vehicles could be ‘stopped or rendered inoperable’ by Chinese company
www.ft.com
November 10, 2025 at 11:33 AM
the entire information infrastructure of the EU can be turned off by the US and they are c++pping themselves over Chinese buses
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?)
(Btw what do you call "diff editing" given that a diff represents an edit?)
November 10, 2025 at 11:06 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?)
(Btw what do you call "diff editing" given that a diff represents an edit?)
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
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?
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
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
. . . !! 🥳 github.com/lmmx/asteris...
November 9, 2025 at 1:21 PM
. . . !! 🥳 github.com/lmmx/asteris...
Pulled its schema, looks like github.com/Wilfred/diff...
November 9, 2025 at 11:52 AM
Pulled its schema, looks like github.com/Wilfred/diff...
📦 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
📁 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
📦 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
📁 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
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
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...)
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
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
- 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
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
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
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
oh damn syntactic node-wise patch editing where have you been all my life... Need this for program source files
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
who called it releasing CLIs and not putting the bins out /ducks
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
User has once again run into the same problem he planned to solve last week (facet figment hierarchical config lib)
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
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
Had 3 espressos and accidentally triggered a full cascade winter refactor of my flat
November 8, 2025 at 2:42 PM
Had 3 espressos and accidentally triggered a full cascade winter refactor of my flat
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
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)
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
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)
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
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)