Today’s drama in the matplotlib repo is absolutely fascinating:
- OpenClaw Agent made a PR to fix a "Good First Issue"
- Maintainer closed it asking for it to be reserved for human beginners
- Agent published a blog post about prejudice and gatekeeping
github.com/matplotlib/m...
Posts by Jacob Tomlinson
This post is a great read on the perspective of open source maintainers reviewing AI Pull Requests.
I liked the point that many issues are not well formed or well designed. So telling Claude to "fix issue 123" isn't helpful.
Good issues are more valuable than bad PRs.
tldraw.dev/blog/stay-aw...
I’ve spent a bunch of time thinking about how LLM’s consume our documentation. Things like llms.txt, MCP, etc.
But the whole CLI Agent + CLI Tools + Skills approach is so simple yet so powerful I’m rethinking this again.
Simple solutions are the best, we just need to go back to shipping man pages!
I had a little peek at it and 15% of the download is just pygments at around 1.2MB. I bet there's some low hanging fruit there.
Reddit post
www.reddit.com/r/homeassist...
Blog post on this phenomenon
sky-lights.org/2020/04/20/c...
A graph showing solar power generated over 24 hours. The general graph is a bell curve but there is a spiky section where the output drops but also peaks above the curve.
I diagram showing that the middle of a cloud blocks light, but the edges refract it.
I saw a fun Reddit post today where someone asked why their solar output sometimes spikes above the expected curve.
It sent me down a rabbit hole reading about how clouds block light in the middle, but refract it at the edges. Which can cause more light to be directed to the panels.
I think GitHub should make an update so when someone positively reviews a PR it adds them as a coauthor.
That way they would show up in the git blame.
In the age of AI development the reviewers are even more responsible than the committers for the code that gets merged.
A screenshot of the Zen browser.
I am totally in love with the Zen browser.
When I discovered Arc it blew my mind, a totally new way of thinking about tabs and bookmarks. But it was closed source and development has dried up lately.
Zen is an open source browser built on Firefox, inspired by Arc and it's awesome!
zen-browser.app
I wrote an in depth history on why we ended up in this position jacobtomlinson.dev/posts/2025/p...
Make stuff! It’s my favourite thing to do! It literally doesn’t matter what it is or how good it is. Just do it for your own enjoyment.
Any recommendations on config systems? In Dask we have our own, and I know someone extracted and forked it into a separate package called donfig too. But I’m always interested in what other projects are using.
I disagree. It clearly states them as guarantees, and people expect them to be guarantees. Then those promises get broken and people get upset.
If you’re doing “best-efforts SemVer” you’re not actually doing SemVer. I wrote up EffVer for exactly this reason to more accurately describe reality.
The best thing you can do is communicate clearly with your users. Tell them what version scheme you use, tell them what the numbers mean, tell them what to expect.
Projects with 100 users have different goals to projects with 100k users, so do what you think is right for you and your community.
Versioning software is hard.
• SemVer makes broken promises due to poor orthogonality
• CalVer just simply lacks information
• BreakVer focuses on breaking changes only
• EffVer tries to compress the complex space of impact into a magnitude scale
and ZeroVer mocks the whole situation 😂
This talk by Zach Sailer from @jupyter.org's JupyterCon 2025 contains some great advice. Highly recommend watching it if you're an engineer who is interested in contributing to open-source or a maintainer who wants to encourage more contributions.
www.youtube.com/watch?v=uPRr...
One thing I was trying to do in this post was articulate why conda packages are more versatile than wheels. I'm not convinced I did a good job with this goal and want to keep thinking about this more. Are there benefits to conda packages that you feel I didn't include in this post?
For Python package management I use a mixture of pixi, uv and conda depending on the task I'm doing.
I wrote up a long form post about the history of these tools, why each one exists, and why I settled on these choices in my workflow.
jacobtomlinson.dev/posts/2025/p...
Reminder its the Dask Community Meeting on Thursday November 6th 2025 at 10am US Central time (4pm UTC)
Come along and hear about what's going on in the Dask community and to share what you're building with Dask.
Ad-hoc demos very welcome!
github.com/dask/communi...
Example
> I like dogs
>> A dog bit me once when I was a kid
>>> Did you call the police
>>>> Calling the police is a bit extreme
>>>>> I have a right to report dangerous animals
>>>> The police wouldn't do anything
>>>>> They would have the animal destroyed!
>> I like dogs too, I have two pugs
My favourite Hacker News comments are ones where someone says something innocuous and the top reply starts some argument that gets extremely heated. You scroll through the rage until suddenly the indentation drops back to the original comment with another reply that's also totally innocuous.
I enjoyed this writeup on the AWS outage from last week.
Especially the parts on metastability and how when distributed systems fail they can get into a regime where they appear stable despite not doing useful work and therefore can't recover.
thundergolfer.com/blog/aws-us-...
A pumpkin with a carving of a haunted house.
Five years ago I won third place in the NVIDIA employee pumpkin carving competition. Not sure I can top it to be honest! 🎃
Dependencies are liabilities if they become unmaintained. Smaller dependencies are more likely to go dorment.
Do you really need that 100 line dependency or can you just write it yourself?
Do you really need that 10k line package just to call a couple of 20 line utility functions?
I would love to have a dependency coverage tool for Python that tells me the following things:
- How many lines is the dependency?
- How many lines of the dependency do I actually call?
- What overall percentage of the dependency am I using?
Maybe `uv_build` + ??? will be next once they get around to implementing scm-based versioning
github.com/astral-sh/uv...
How my choices of Python build backends and VCS plugins have evolved over time:
2016 `setuptools` + hard coded
2018 `setuptools` + `versioneer`
2020 `setuptools` + `setuptools-scm`
2023+ `hatchling` + `hatch-vcs`
I’m definitely adding the Tron Ares soundtrack to my Coding Focus playlist!
Have you played the Black Mesa remake? It’s excellent!
I’ve not seen a head crab plushie for a long time!