I don't think this is correct. The concentration of CO2 in air is about 0.04%, whereas the concentration of oxygen is 20%, so the partial pressure of oxygen is about 500x higher. This means that if, for example, 10% of the oxygen in a room spontaneously disappeared, it would be replaced about sqrt(500) = 22x faster through leaks in the room than a 10% spontaneous CO2 increase would dissipate. (This ignores a small effect due to the different density of the two gases).
So in practice the oxygen level can never drift meaningfully far from the atmospheric pressure, whereas carbon dioxide easily can because the pressures involved are so low.
I use KOreader on my Kobo, which is an alternative open-source ebook renderer. It installs pretty easily without rooting the device. In addition to better standards compliance it also is a lot more performant and has niceties like auto cropping of PDFs.
A somewhat related experience: I asked for advice on Twitter about something and got two unhelpful AI-generated responses (from accounts I have never heard of / don’t follow) and no human responses. The thing is that I already asked multiple frontier AIs the same question and didn’t get a satisfying answer. I specifically went to Twitter because AI did not have the answers I was looking for. Providing an AI answer to a human question assumes that the asker hasn’t already done their homework and tried asking an AI.
I think VGT is a good QQQ replacement. It is based [1] on the MSCI US Investable Market Information Technology 25/50 Index which is free-float adjusted [2] [3], meaning that SpaceX will have a lower weight due to its lower free float. Also, VGT has a substantially lower expense ratio (9 bps / year [4]) than QQQ (18 bps / year [5]). You can compare VGT and QQQ's holdings on these pages [6] [7].
This reminds me of Vibe Kanban (https://vibekanban.com/) which I use to manage coding agents on most of my projects.
The Vibe Kanban developers unfortunately decided that they didn't see a path to profitability and have stopped investing in the project. It's open source and so you can run it locally / fork it, but it has stopped improving and there are still annoying bugs that need to be fixed (and I don't have time to maintain it personally). This makes me sad because I would be willing to pay for Vibe Kanban, but I didn't need the features their paid plan offered (in retrospect maybe I should have paid anyway).
I'll give Kanbots a go :) I'd recommend liberally copying features from Vibe Kanban. In particular the remote support and "Open in VS Code" button (which in my case opens a local VSCode client pointing to a remote VSCode server) are critical for me.
You can also make ZIP files smaller by switching the compression from Deflate to Zstandard. In the one case I tried this, this resulted in a 60% file size decrease [1]. Unfortunately Info-ZIP which provides the unzip command hasn't had a release in 18 years, so it doesn't support this newer compression/decompression method. You have to use 7-Zip instead.
> At the time of writing, the fix has not yet reached stable releases.
Why was this disclosed before the hole was patched in the stable release?
It's only been 18 days since the bug was reported to upstream, which is much shorter than typical vulnerability disclosure deadlines. The upstream commit (https://github.com/gnachman/iTerm2/commit/a9e745993c2e2cbb30...) has way less information than this blog post, so I think releasing this blog post now materially increases the chance that this will be exploited in the wild.
Update: The author was able to develop an exploit by prompting an LLM with just the upstream commit, but I still think this blog post raises the visibility of the vulnerability.
"Please don't complain about tangential annoyances—e.g. article or website formats, name collisions, or back-button breakage. They're too common to be interesting."
I think most people can speak faster than 120 WPM. For example this site says I speak at 343 WPM https://www.typingmaster.com/speech-speed-test/, and I self-measure 222 WPM on dense technical text.
I think (without having done extensive research) that some sort of Apple hardware is your best bet right now. Apple hasn’t raised RAM upgrade prices [1] (although to be fair their RAM upgrades were hugely inflated before the crunch) and their high memory bandwidth means they do inference faster than most consumer GPUs.
I have an M4 MacBook Air with 24 GB RAM and it doesn’t feel sufficient to run a substantial coding model (in addition to all my desktop apps). I’m thinking about upgrading to an M5 MacBook Pro with much more RAM, but I think the capabilities of cloud-hosted models will always run ahead of local models and it might never be that useful to do local inference. In the cloud you can run multiple models in parallel (e.g. to work on different problems in parallel) but locally you only have a fixed amount of memory bandwidth so running multiple model instances in parallel is slower.
The decision to pass all params as a JSON string to --params makes it unfriendly for humans to experiment with, although Claude Code managed to one-shot the right command for me, so I guess this is fine. This is an intentional design per https://justin.poehnelt.com/posts/rewrite-your-cli-for-ai-ag...
Side note, a lot happens at C3 other than the talks! Art, electronic gizmos and demos of all kinds, people hacking in realtime on projects, impromptu meetups, and bumping techno music :) I'd encourage people to attend in person if they get a chance; just watching the talks online is only a fraction of the experience.
Claude 4.6 Opus and Gemini 3.1 Pro can to some degree, although the 3D models they produce are often deficient in some way that my eval didn't capture.
My eval used OpenSCAD simply due to familiarity and not having time to experiment with build123d/CadQuery. There is an academic paper where they were successful at fine-tuning a small VLM to do CadQuery: https://arxiv.org/pdf/2505.14646
The simulator lets the LLM request renders from different angles/times, so the LLM can get visual feedback. For failures, the simulator also returns status codes like `object_fell` or `mount_initially_collided_with_object` depending on what happened. You can see what the tool call looks like by looking at the Transcript tab, e.g. here https://kerrickstaley.com/ai-cad-design-mount-viz/gso__mug__...
> The initial collision is because the mount was positioned at the same height as the mug's body center (z=-22), causing overlap. I need to lower the mount significantly so the mug starts above it and drops into the cradle.
So in practice the oxygen level can never drift meaningfully far from the atmospheric pressure, whereas carbon dioxide easily can because the pressures involved are so low.