Metaist
metaist.com
Metaist
@metaist.com
An Unsolved Victorian-Era Riddle
metaist.com/blog/2025/08...
An Unsolved Victorian-Era Riddle - Metaist
In which I propose a solution.
metaist.com
August 1, 2025 at 3:06 PM
castfit 0.1.2 - Metaist
With suggestions from Gemini and ChatGPT
metaist.com
May 21, 2025 at 11:39 PM
Use full-commit pointers they said. It'll prevent unexpected surprises they said.

But it turns out `uv build` produces metadata v2.4 while pypa/gh-action-pypi-publish@2f6f737ca5f74c637829c0f5c3acd0e29ea5e8bf supports only up to v2.2.
May 21, 2025 at 11:39 PM
Reposted by Metaist
The trailer for "Python, the Documentary" is here! 🔥🐍

From its humble beginnings in the Netherlands to powering AI at the world’s biggest companies - this is the story of Python.

🎥 The film premiers at @europython.eu in July and will follow on our YouTube channel.

Subscribe to stay updated!
May 18, 2025 at 12:59 PM
TIL: invariant, covariant, and contravariant type variables
metaist.com/blog/2025/05...
TIL: invariant, covariant, and contravariant type variables - Metaist
I avoided learning this for so long.
metaist.com
May 16, 2025 at 6:58 PM
Trying pyrefly, Meta's type checker
metaist.com/blog/2025/05...
Trying pyrefly, Meta's type checker - Metaist
I guess I like trying type checkers.
metaist.com
May 16, 2025 at 6:57 PM
Trying ty, Astral's type checker
metaist.com/blog/2025/05...
Trying ty, Astral's type checker - Metaist
Projects and notes from Metaist LLC
metaist.com
May 7, 2025 at 11:22 PM
castfit 0.1.1 - Metaist
Slightly better typing
metaist.com
April 29, 2025 at 5:44 PM
Class-based docopt usage strings
metaist.com/blog/2025/04...
Class-based docopt usage strings - Metaist
I keep wanting to make this, but now I'm not sure it's a good idea.
metaist.com
April 29, 2025 at 5:44 PM
I was migrating all my github actions to use uv, but had a typo in my pypi.yaml so it didn't get published to PyPI. My first thought was to publish a zero-change (except version number) release, but ick.

Ah, but I can still use twine with uvx for the win:
uvx twine upload dist/*
April 18, 2025 at 11:21 PM
Cropping and Merging PDFs
metaist.com/blog/2025/04...
Cropping and Merging PDFs - Metaist
How to actually crop PDFs.
metaist.com
April 16, 2025 at 3:55 AM
TIL: contextvars in python
metaist.com/blog/2025/04...
TIL: contextvars in python - Metaist
What they are and how to use them.
metaist.com
April 8, 2025 at 1:10 AM
Trying Caddy - Metaist
How quickly I've abandoned nginx + certbot.
metaist.com
March 25, 2025 at 6:20 PM
@zachweinersmith.bsky.social I would have said: "Talking about patterns in a precise way."
www.smbc-comics.com/comic/precise
Saturday Morning Breakfast Cereal - Precise
Saturday Morning Breakfast Cereal - Precise
www.smbc-comics.com
January 10, 2025 at 12:38 AM
Finally finished the entire back-catalog of @practicalai.bsky.social just in time to find out they're spinning out from @changelog.com

Is the podcast RSS feed going to stay the same or will we need to update?
December 24, 2024 at 7:27 PM
Hey @pfrazee.com who is the best person to direct UX issues to?
Hey @bsky.app I heard it's a hard dev problem to have the app remember where you were when you close & re-open the app. This is currently my biggest UX barrier-- any timeline for when that might get fixed or is there any way I can help?
November 7, 2024 at 12:42 AM
Hey @bsky.app I heard it's a hard dev problem to have the app remember where you were when you close & re-open the app. This is currently my biggest UX barrier-- any timeline for when that might get fixed or is there any way I can help?
November 7, 2024 at 12:21 AM
From my email: Will AI take over radiology?
metaist.com/blog/2024/08...
Radiology & AI - Metaist
From my email: Will AI take over radiology?
metaist.com
September 1, 2024 at 2:41 AM
I learned about Cosmopolitan from @simonwillison.net , but Shalev NessAiver showed me how to actually build an actually portable executable for python.
metaist.com/blog/2024/08...
How to package a python project with Cosmopolitan - Metaist
Knowledge is half the battle.
metaist.com
September 1, 2024 at 2:40 AM
Charlie Marsh and the Astral team make tools that are so fast it inspired me to modify my `.bashrc` to see how long it actually took. (HT to @simonwillison.net for inspiring me to write it down and share).
metaist.com/blog/2024/08...
How long do commands run? - Metaist
Projects and notes from Metaist LLC
metaist.com
August 30, 2024 at 9:28 PM
I also changed my mind about running pre-/post- tasks and support `call`-style tasks.
metaist.com/blog/2024/08...
Changed My Mind: Lifecycle Events - Metaist
I still don't like 'em, so I'll make it opt-in.
metaist.com
August 30, 2024 at 9:06 PM
While building the latest ds release I built a poor-man's bash command formatter.
metaist.com/blog/2024/08...
Formatting Bash Commands - Metaist
A 90% solution for the most common cases.
metaist.com
August 30, 2024 at 9:05 PM
ds 1.3.0 released. Switched to format-specific parsers and added some UX touches to make it easier to run tasks.
metaist.com/blog/2024/08...
ds 1.3.0 - Metaist
Run commands without activating virtual environments; support for Makefile and more.
metaist.com
August 30, 2024 at 9:05 PM
Just found out that uv might add task running... and two more formats I might want to support in ds.

github.com/astral-sh/uv...
Using `uv run` as a task runner · Issue #5903 · astral-sh/uv
For those of us migrating over from Rye, one of its nice features is the built-in task runner using rye run and [tool.rye.scripts]. For example: [tool.rye.scripts] hello = "echo Hello from Rye!" $ ...
github.com
August 28, 2024 at 11:50 PM
Thanks to @simonwillison.net I now know that when PostgreSQL supports FROM-first SQL queries, sqlite might get that too.

sqlite.org/forum/forump...
SQLite Forum: Interesting paper from Google on pipe syntax on SQL
sqlite.org
August 28, 2024 at 11:49 PM