Latest post is a big one: "Why you shouldn't invoke setup.py directly"
A lot of people don't know about this because we haven't been great about getting the word out. This blog post is in part an attempt to remedy this.
Please help spread the word!
https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html
From the archives of my blog but still very relevant: "pytz: The Fastest Footgun in the West", about why you probably shouldn't be using pytz:
https://blog.ganssle.io/articles/2018/03/pytz-fastest-footgun.html
My credit card when I buy gas on a highway near my house: "Seems pretty sus... 🤨"
My credit card when I order zero calorie sauces from Spain, delivered to someone else in the Netherlands, with that person's name as the cardholder: "All good bro, enjoy your sauces! 👍"
I can't tell if their fraud detection are not that good or if they just know me really well 😛
Do you dislike drafting long text messages on a mobile keyboard? Me too!
I created a little tool that lets you write text messages from a computer and then send them from your phone by scanning a QR code:
https://sethmlarson.dev/draft-sms-and-imessage-from-any-computer-keyboard
#blind I want to make the CLI app tools I use blind accessible. Did I correctly read that the better way is to create a local mini-website? (because the accessibility tools for browsers are so much better than for anything else?)
Or is a CLI tool automatically blind accessible because it is all text already?
Today we got our dishwasher fixed under warranty. To diagnose it, the tech stuck a photosensor+magnet onto the front panel over the green status LED and started reading diagnostics. It turns out the status LED is actually a serial port*, and it's continually transmitting status.
I can think of so many gadgets that could and should use this trick...
*It's probably something other than regular serial -- a UART's TX would flicker. I don't know any details.
The pytest.mark.parametrize feature is amazing, and more people should use it, especially people new to writing #Python tests. But it looks scary. I wrote an explainer: https://nedbatchelder.com/blog/202508/starting_with_pytests_parametrize.html
Interested in helping out with one of the most innovative, grassroots, publishing efforts around? The Journal of Open Source Software (@joss) is looking for editors: https://blog.joss.theoj.org/2025/08/call-for-editors
We conduct collaborative checklist-based peer review of research software using GitHub issues.
JOSS is a positive, rewarding, community-based reviewing/editing effort. I'm happy to answer questions if anyone is interested.
Did you know: You can build iOS and Android Python wheels with cibuildwheel, and upload them to PyPI? You can! But not many projects have.
Want to know if your popular package offers iOS or Android support? Here's a leaderboard. Want a great way to contribute? Submit a PR adding iOS and Android support to your favourite package.
Anyone have a reasonable way to programmatically get your Netflix watch history? I have a good way to read my history from Kodi, a decent way to get it from AntennaPod and a just OK way to get the history from VLC, but no way to get it from Netflix, which I would like to include in my tracking. 😔
@aperalesf Pienso en crear una app o página web para encontrar podcasts menos conocidos (un algoritmo anti-algoritmo) pero ya tengo demasiados proyectos 😭
@aperalesf Acabo de escuchar [El podcasting no me enfada, pero me da coraje](https://divagaciones-de-adrian-perales.castos.com/episodes/90-el-podcasting-no-me-enfada-pero-me-da-coraje), y estoy de acuerdo en que es bastante difícil encontrar podcasts independientes.
Por eso, hace poco me bajé la DB de podcast-index.org y la filtré yo mismo, utilizando `popularityScore` para evitar los podcasts demasiado popular. Me funcionó suficientemente bien para encontrar unos podcasts.
As the Wayback Machine nears 1 trillion archived web pages this October, we're still looking for standout sites to feature.
Reply with your favorite pages to nominate them for the spotlight!
Also I feel that my older one's natural reflex to protect himself against malicious djinn will serve him well in the coming age of superintelligences.
TIL that, as of Python 3.13, virtual environments write their own .gitignore file. It adds a single line, consisting only of `*`.
Did you know this? Are you still adding `.venv/` to your own .gitignore files?
boosting from bsky where @buttondown 's @jmduke says:
https://bsky.app/profile/jmduke.com/post/3lv5hwyipu22j
"buttondown is very excited to sponsor @htmlenergy.bsky.social's HTML DAY this coming saturday. if you attend and DM me what you built I will comp you a year's subscription to Buttondown.
at the very least, you owe it to yourself to go to https://html.energy/html-day/2025/index.html and click through to the very zine-core event sites, each of them more lovely than the last. (i am biased, but my favorite is seattle's)"
Programmer working at Google. Python core developer and general FOSS contributor. I also post some parenting content.