Cassandra is only carbon now
banner
xgranade.com
Cassandra is only carbon now
@xgranade.com
Sometimes I write intimate eschatologies or words about technology and math. Sometimes I make things by burning them with light or squeezing them through a small […]

🌉 bridged from ⁂ https://wandering.shop/@xgranade, follow @ap.brid.gy to interact
@glyph Oh, yeah. I just got bit by this optimization as I thought I was working on a completely user-local install, but something somewhere inadvertently implied using system Python to call venv. But only on one machine...

But yeah, distro hacks are always frustrating.
November 12, 2025 at 7:50 AM
@glyph Ah, no sorry. I should have said stdlib instead of site-packages. Debian and derivatives patch the stdlib in ways that break venv, I think? Making a new venv with a fresh Python fixed it, in any case.
November 12, 2025 at 6:55 AM
@SnoopJ That is precisely the substantial pain I'm going through today, yeah. I don't even mind esp-idf other than my baseline loathing for cmake, but I did not want to run the installer at all.
November 12, 2025 at 5:51 AM
Hah! Success! The above cursed bug was ultimately triggered by inadvertently depending on system-wide site-packages. The solution, then:

```
uvx --with pip --managed-python platformio run
```

That lets me use esp-idf without having to install either platformio or idf.py!
November 12, 2025 at 5:47 AM
@SnoopJ Oh, yeah, and absolutely. The esp-idf *installer*, though, left crap all over my system last time I used it. I'm quite eager to use esp-idf without running their installer.
November 12, 2025 at 5:45 AM
@glyph I didn't expect system-wide site packages to take precedence over packages installed into the venv. Turns out something was implying `--no-managed-python`, manually setting `--managed-python` forces venv to make a new symlinked environment without depending on anything in /lib.
November 12, 2025 at 5:42 AM
Packages aren't leaking on my other machine…

```
$ uv run --with pip python
>>> import sys
>>> sys.path
['', '/home/cgranade/.local/share/uv/python/cpython-3.11.10-linux-x86_64-gnu/lib/python311.zip', '/home/cgranade/.local/share/uv/python/cpython-3.11.10-linux-x86_64-gnu/lib/python3.11' […]
Original post on wandering.shop
wandering.shop
November 12, 2025 at 4:20 AM
how, just how

```
$ ~/.local/share/uv/tools/platformio/bin/python
Python 3.12.3 (main, Aug 14 2025, 17:47:21) [GCC 13.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
['', '/usr/lib/python312.zip', '/usr/lib/python3.12' […]
Original post on wandering.shop
wandering.shop
November 12, 2025 at 4:19 AM
ffs

```
$ uv run --with pip python
Python 3.12.3 on linux
>>> import venv
>>> venv
<module 'venv' from '/usr/lib/python3.12/venv/__init__.py'>
>>> import json
>>> json
<module 'json' from '/usr/lib/python3.12/json/__init__.py'>
>>> import sys
>>> sys.executable
'/home/cgranade/ […]
Original post on wandering.shop
wandering.shop
November 12, 2025 at 4:18 AM
My insistence on, hell my absolute stubbornness about not having global state or dependencies, and thus not having stuff like `python` on the PATH at all is definitely revealing some bugs.
November 12, 2025 at 3:14 AM
Turns out it is way more cursed than I thought. ensurepip is a complete red herring for a much, much weirder problem, having to do with Python interpreters not being able to find libpython without relying on system-wide packages to do so […]
Original post on wandering.shop
wandering.shop
November 12, 2025 at 12:56 AM
Oh, this is an absurd one. PlatformIO mostly works inside a virtual environment, but then it tries to create a second virtual environment but fails because ensurepip isn't available. Even though pip is available.

I really wish these vendors would just use PyPA-standard tooling for virtual […]
Original post on wandering.shop
wandering.shop
November 11, 2025 at 11:41 PM
Why is embedded software development like this? Oh, right, because C and C++ don't have package management, build tooling, or literally *anything* sensible, so every different project goes on and makes their own completely incompatible implementation.

Ugh. I think I've gotten about all the […]
Original post on wandering.shop
wandering.shop
November 11, 2025 at 11:23 PM
@whitequark For you, yeah.
November 11, 2025 at 10:06 AM
@whitequark Ah, gods, I hate that kind of CVE. Like, no shit, someone who already had the ability to execute arbitrary code can execute arbitrary code. Like, yeah, those are still bugs and should still be fixed, but c'mon folks.
November 11, 2025 at 7:54 AM
Getting my little dev board to tell my Freewrite that it should go into mass storage device is a huge win, even if the next thing that happens is a long string of "guru meditations" on my serial monitor.
November 11, 2025 at 7:53 AM
My goal with all of this is to make a little device I can slap into Freewrite and other typewriter-style devices, pocket voice recorders, and whatever other writing tools expose stuff via mass storage. Basically, I should then be able to hit a button and send everything over to my NAS without […]
Original post on wandering.shop
wandering.shop
November 11, 2025 at 7:51 AM
I lied. One last test. It failed, but got further than I thought!

Was able to tell my Freewrite that this little ESP32 board is a USB host and to offer up my drafts to it as a mass storage device!
November 11, 2025 at 7:49 AM
Once I'm to a point where I can say *why* in the fuck I'm doing this, it'll be groan-worthy. But that's a good point for the evening, I suppose.
November 11, 2025 at 7:36 AM