YEAR IN REVIEW: Social/health

- Very bad #MentalHealth, including a real mid-life crisis (not done)
- Ate w/ strangers indoors >0 times, thanks to nasal sprays, leading to…
- A relatively fun, social #PyCon2025
- Got a li'l closer to being a full-time #pescatarian
- Incredible amount of family drama, jfc (not done)
- Switched my caffeinated mint brand
- Got back to my #tea habit
- First new pair of glasses since moving back East
- Incredible run of lovely weather late summer/early fall

🌏 Coming to PyCon AU from overseas?

If you're traveling from outside Australia, now is the time to get your visa sorted!

We’ve just published updated information to help you prepare your visa application. Visa processing can take time, so check it out and don't be late!

👉 https://2025.pycon.org.au/attend/international-visitors/

#PyConAU #PyCon2025 #PyCon #Python

International Visitors (visas)—PyCon AU 2025

Everyone’s loving the avatars @pycon — so I had to make one for our amazing Devs-in-Residence @ThePSF too. This photo? Epic.
@ambv @sethmlarson @miketheman #PyConUS #pycon2025
I turned my #pycon2025 poster about vector embeddings into a blog post:
https://blog.pamelafox.org/2025/05/a-visual-exploration-of-vector.html
A visual exploration of vector embeddings

For Pycon 2025, I created a poster exploring vector embedding models, which you can download at full-size . In this post, I'll translate ...

Takeaways:

1. Your business code is sacred
2. Protect it from your tools
3. Write tests; get a better design

https://ox.cx/design for more!

And follow Hynek on YouTube at @THE_HYNEK

#PyCon2025 #PyConUS

Design Pressure

Ever had this weird gut feeling that something is off in your code, but couldn’t put the finger on why? Are you starting your projects with the best intentions, following all best practices, and still feel like your architecture turns weird eventually?

Hynek Schlawack

Whenever possible, start with the domain model, then start ✨engineering✨

"Complexity is not about how many keys I have to press -- it's about how difficult it is to reason about the consequences of what I'm doing"

- @hynek

#PyCon2025

If you follow this method, Hynek argues that you have lost control over your domain model and therefore over your business logic.

It's ok to have duplicative-looking types at the edges of your project! Like the web interface and the DB layer

You might have three (or more!) classes for the same thing and that's OK.

(with a h/t to Adam Montgomery)

#PyCon2025 #PyConUS

There are multiple approaches to solving this tension!

I won't write down the first one because @hynek asked us not to.

But the next way (which is apparently worse?) is to use class-based validators and an ORM as the bread in a sandwich of your business logic

They do not make good bread and your domain model gets squeezed to death.

#PyCon2025 #PyConUS

Conflicting goals exist in all meaningful apps

The Web API is dictated by what is best for the user, what's a good external standard, etc

The Database Schema is motivated by effective data storage, developer affordances, and performance

The Domain Model is dictated by the Business Requirement

#PyCon2025

All the shitty stuff should happen on the outside layer of your program.

Once it's inside, make it as nice as possible.

The shape of the data determines the shape of the code.

#PyCon2025 #PyConUS