Ned Batchelder
mastodon 4.7.3Python, software, coverage.py, typography, juggling, Boston, autism (dad). Laughing at the world doesn't mean I don't take it seriously. He/him.
In the #Python Discord, someone was trying to understand how Python code is executed without ever being turned into native CPU instructions. So I wrote a full implementation of a tiny programming language: compiled to bytecodes that get interpreted. 300 lines of Python.
https://nedbatchelder.com/blog/202608/micro_language_implementation_calcium
My lightning talk from #PyConUs 2026: Silence is Golden (or, Pac-Man Time-Space duality)
https://www.youtube.com/watch?v=VA3O7UxuZO4&t=872s
(It's only 3m20s long)
Today might be a day to trot out a paraphrase of Charles Schultz:
I love community, it's people I can't stand.
Why would someone bother to clone coverage․py just to remove the message about Ukraine? Is this repo being published or used anywhere?
https://github.com/Medved2k/coveragepy_no_slogan
4 commits ahead (https://github.com/coveragepy/coveragepy/compare/main...Medved2k:coveragepy_no_slogan:main), 141 commits behind.
Something I've never seen before: an fi ligature hyphenated into an oddly wide f and a dotless i:
#typography (This is in Firefox using CSS hyphenation settings.)
Because someone in the #Python Discord was asking about structuring tests alongside their project code, I added a bit of test structure to my pkgsample explainer: https://github.com/nedbat/pkgsample
My main use of LinkedIn is the games. https://www.linkedin.com/games (You can play them without seeing the rest of LinkedIn!)
But I don't understand the stats at the end of Pinpoint. What does this mean?
Python packages should explicitly declare their version support with PyPI classifiers. https://pyreadiness.org/3.13/ lists 90 packages that don't declare support for 3.13, when many of those packages do support it.
It's not hard to do, and it helps people understand what they can count on.
Some people have a hard time focusing on the technical content of a project: https://github.com/coveragepy/coveragepy/issues/2169:
"Remove politically related text from README.md to improve enterprise adoption"
"The background radiation of the internet"
https://arman-bd.hashnode.dev/i-left-port-22-open-on-the-internet-for-54-days-here-s-who-showed-up
To prompt LLMs successfully it seems you need redundant details, escalating emphasis and other forms of repetition. This goes against the well-know DRY principle (Don't Repeat Yourself).
So instead remember CLAMMY: Claude Loses All Memory Mid-Yap.
It is very impressive to see how forms can be drastically altered to fit a (very extreme) design aesthetic, and still be legible to readers of the language.
Judging from questions by new learners, a big thing they need to learn is the real world is not like school: https://nedbatchelder.com/blog/202604/school_is_artificial
Serious risk: I will talk about #Boston history well above most peoples' tolerance.
https://nedbatchelder.com/blog/202606/franklins_parents_grave
Today's (well, all week's) UI frustration: why doesn't What's App stay scrolled to the bottom of a chat? And focus the input box! What else would I want to do 99% of the time!?
