Dane Hillard
banner
dane.dev
Dane Hillard
@dane.dev
Artsy, fartsy, musical computer nerd building modular software for @jstor.bsky.social freaks and geeks.

Wrote Practices of the Python Pro 🐍📘 and Publishing Python Packages 🐍📦⬆️

https://dane.dev
Reposted by Dane Hillard
Thanks for a great conference @pytexas.org
I had fun. All the talks are really good, I learned many new things.
Closing it with an #IceCreamSelfie with @willingc.bsky.social , @dane.dev, and @bajoran.engineer
At Yummi Joy. I had the Pandan and Squid Ink ice cream (vegan)
#PyTexas
April 14, 2025 at 3:36 AM
Reposted by Dane Hillard
Today on our Speaker 📣 Spotlight 💡 we're highlighting @dane.dev who will be presenting Place-making and Productivity: Build Maintainable Broad-scale Tools With a Small Team.

Join us April 13 either in-person or virtually to watch. Get your tickets today pytexas.org/2025
April 3, 2025 at 5:04 PM
Authors, if you see this, it's a sign to post the first line of your book.

"Python, like me, was born in December of 1989."

-- Practices of the Python Pro
Authors, if you see this, it's a sign to post the first line of your book.

"Like many good stories, this one begins with rage."

-- Progressive Delivery - James Governor, Kim Harrison, Heidi Waterhouse, Adam Zimman, coming in fall.
Authors, if you see this, it’s a sign to post the first line of your book.

“I had just taken poison when the king arrived to inform me that he had killed his wife.”

- Hemlock & Silver, T. Kingfisher, coming in…August? I think?
February 2, 2025 at 7:11 PM
Reposted by Dane Hillard
Meet pydantic.run - a python sandbox for writing, sharing and running Python code in the browser.

For example, here's sandbox with examples of @logfire.pydantic.dev instrumenting an HTTPX request and a @fastapi.tiangolo.com server using a sqlite database.

pydantic.run/store/c81c32...
pydantic.run
pydantic.run
January 29, 2025 at 7:58 PM
Reposted by Dane Hillard
We’re building a new static type checker for Python, from scratch, in Rust.

From a technical perspective, it’s probably our most ambitious project yet. We’re about 800 PRs deep!
January 29, 2025 at 5:18 PM
Happy to be included alongside both new and familiar faces talking about some great things at @pytexas.org 2025! I see APIs, WASM, embedded, testing, observability, security, and more on the docket!

See you in Austin 🐍
📣 Announcing the #PyTexas 2025 talks! 📣 We are thrilled to have these amazing speakers join us again this year.🎉 You definitely won't want to miss this year!

https://www.pytexas.org/2025/schedule/talks/

#Python
#pythonprogramming
#TechConference
January 21, 2025 at 8:47 PM
Has anyone successfully wrapped an existing Click app as a subcommand of a Typer app in a generic way? Typer-in-Typer is easy, Typer-in-Click is easy, but Click-in-Typer has proven nigh impossible without the Typer app knowing details of the Click app.
January 14, 2025 at 1:15 PM
Yesterday I learned something new about pytest! When using `with pytest.raises`, the line that raises the expected exception must come last in the block. Lines after it won’t be executed. This makes sense in retrospect (context managers) but cost me a few minutes of being befuddled.
January 14, 2025 at 12:58 PM
The building having a hard time adjusting to the current temperatures and being a stiff 67 degrees or so has little charm to it.
Being on an absolutely empty floor of an NYC office on Christmas Eve making pour over coffee and working on self-directed things has a certain charm to it.
December 24, 2024 at 7:32 PM
Being on an absolutely empty floor of an NYC office on Christmas Eve making pour over coffee and working on self-directed things has a certain charm to it.
December 24, 2024 at 2:54 PM
Reposted by Dane Hillard
Are you an open source maintainer? Comment below 👇 and find others in the community on 🦋
December 23, 2024 at 10:53 PM
Reposted by Dane Hillard
Thank you to our 12 candidates for the Django 6.x Steering Council elections! www.djangoproject.com/weblog/2024... We’re elated to see so many stellar contributors rise to the challenge 🚀 Now time to vote! #python #django
December 11, 2024 at 3:00 AM
Regarding microservices, naming something WHAT it does lets it keep doing the thing it does perpetually. Naming something WHO it serves, on the other hand, lets it morph to serve ever evolving needs until it doesn't do what it did anymore.
December 12, 2024 at 8:16 PM
Is there some kind of nice static utility for Python that spans the gap between Java's checked exceptions and Python's ask-for-forgiveness where at any level of the call stack you can get an enumeration of the possible set of exceptions from the code below?
December 10, 2024 at 2:14 AM
Today I lost several hours of my life to forgetting that a GitLab template testing process we have involves manually building, pushing, and referencing a Docker image to be able to test updates to the template. This is roughly instance #13 of this problem, for me.
December 6, 2024 at 1:02 AM
Reposted by Dane Hillard
Is there an open source software maintainer in your life? Are you one?

GitHub has a private community you can apply for at maintainers.github.com!

Folks discuss common problems/solutions, there’s a direct line to GitHub product & betas, and I post funding opportunities.

Spread the word please :)
Maintainer Community
maintainers.github.com
December 3, 2024 at 8:15 PM
Reposted by Dane Hillard
Hello, I wrote a new talk that is ultimately about how misery is a dumb strategy

egoless.engineering
Egoless Engineering
It turns out misery is a shitty proxy metric.
egoless.engineering
November 21, 2024 at 4:52 PM
Doing the advent of code thang, maybe I'll actually finish it this year 😜 trying out uv in the Python solutions this time around.

github.com/daneah/2024-...
GitHub - daneah/2024-advent-of-code: Advent of Code 2024
Advent of Code 2024. Contribute to daneah/2024-advent-of-code development by creating an account on GitHub.
github.com
December 1, 2024 at 4:47 PM
*Ad playing "Holiday Road" comes on*

Me: I can't hear this without thinking about that T-Mobile ad.

Mom: Me too. It was written for that ad, after all.

Me: Wait...you never heard that song before that commercial?

Mom: Oh, I don't know the Top 40 songs.

It was written 6 years before I was born.
December 1, 2024 at 1:47 AM
Got up at 5, braved traveling via O’Hare, and skidded home through a northern Michigan blizzard to make it in time for this shindig! Thankful for so much this year, too much to say here but it strikes me that I need to get better at writing them down.
November 29, 2024 at 1:02 AM
Does @bsky.app search have negation and Boolean operators? I don’t see them documented. I often like to do “#hashtag OR phrase OR @user -from:@user” kinds of things. Tried a few things I thought might work that didn’t.
November 28, 2024 at 1:53 AM
The elevator ad panel in our New York City Financial District office just offered me tips on how to protect my propane tank while deep frying my turkey. As a non-finance rural Michigander at heart this warms my soul, but I'm not sure how many will relate. 🍗 #thanksgiving
November 27, 2024 at 12:13 PM
Just about a year ago, I started building an internal development tool to codify some of our most repeatable practices.

The aim was to build something observable, composable, and intuitable, all without breaking the bank—we're a mid-sized non-profit at the end of the day.
November 26, 2024 at 12:41 AM
Thanks for the kind words @oseymour.bsky.social! So much good stuff has happened/grown in the space since the book came out, too:

ruff
uv
TOML support in tox
build-and-inspect-python-package
Digital attestations
Trusted publishers
PyPI organizations
For anybody maintaining a Python package, "Publishing Python Packages" by @dane.dev is so useful! Would highly recommend giving it a read. For internal or external. And even for stuff you're not packaging. I use concepts from this book all the time now.

#pythonprogramming
November 23, 2024 at 7:36 PM