Weekly Report, EuroPython 2023

Our new Security Developer in Residence is out and about, and publishes weekly updates on what he’s up to. That inspires me to resume doing the equivalent of those updates. And what better opportunity to do that than on the heels of EuroPython 2023!

This year EuroPython was held in Prague, which is an easy drive from Poznań, where I’m currently located. Apart from the event, I was able to do some sightseeing with my family, and experience some of the less touristy Prague as well. I could see myself living there, seems like a great city. The metro in particular is pretty impressive.

EuroPython is special

Back in 2009, EuroPython was my first international conference. It was held at a place that no longer exists, as the building was demolished in 2016, which makes it all the more mythical right now:

I will forever be grateful for the warm welcoming I received back then from Michael Foord, Honza Král, the late John Pinner, and many others. The community immediately felt “mine”, which directly led to me pursuing my core development path. When at EuroPython, I try to pay it forward.

The organizers of EuroPython understand that it takes a village to make an event, and they consistently manage to gather a top notch group of volunteers. Sure, there are always unforeseen challenges, but seeing how much the “yellow shirts” care makes any inconvenience insignificant.

Core developer panel

(photo by Hugo van Kemenade)

I got tricked into I was invited to organize the core developer panel again this year. Thanks to the core developer grant, Python core team members get to join the conference without paying for a ticket. This definitely helps bringing more of them to the event as this year we’ve had over ten core devs in Prague.

Six people joined me on stage:

  • sitting Steering Council member Pablo Galindo Salgado;
  • cybersecurity expert and aspiring core developer Marta Gómez Macías who made f-strings more powerful and faster in 3.12;
  • CPython’s Windows expert Steve Dower;
  • Release Manager of Python 3.4-3.5 and the author of the original Gilectomy Larry Hastings;
  • Red Hat veteran and emeritus Steering Council member Petr Viktorin;
  • and the tech lead of Microsoft’s “Faster Python” team Dr. Mark “HotPy” Shannon.

Questions from the audience ranged from very pointed (like how the What’s New document and the Python change log can be improved) through more general (for example about the removal of the Global Interpreter Lock, or whether the type annotation syntax can undergo significant reform in the future) to entirely flamebait (what do core devs think about auto-formatting?). It was fun and the core developers were pretty chatty so my job there was easy.

My talk

Sometimes I like to do the occasional art-adjacent talk like when I discovered you can make a decent realtime audio synthesizer in Python or when I talked for 90 minutes (sic) about how asyncio can be used to sequence MIDI.

This time around I took on generative graphics, not the AI kind, the algorithmic kind. Some of it was maybe pretty basic but you have to admit there’s a kind of satisfaction knowing that you can pull this kind of stuff using just the turtle module:

Probably the most well received part was when I made PyScript draw WebGL. In fact, since you’re already looking at a Web page, let me just show you the thing here directly:

See? You’re running Python in the browser right now. Try interacting with it using the mouse. Pretty cool, huh?

The slides from the talk aren’t easy to share as there were too many embedded images and videos for the size to be sensible. I’ll link the video here when it’s up. In the meantime you can check out the grossly undocumented sources for all examples at https://github.com/ambv/gol.

Sprints after the conference

There was no official core developer presence at the sprint last year and I wanted to fix that this time around. I announced the sprint on the website, and again at my talk, and at the Sprint Introductions after the main conference closed. Hugo and I expected a few people, 10 tops, to join us and do some light coding over the weekend. We grossly underestimated interest.

On Saturday we’ve had over 30 people show up to code with us, for a room of 24 people that we shared with BeeWare. Russell kindly switched rooms to allow us to grow (thank you!) and we still had to overflow people to other rooms. Amazingly, no-one reported build problems to me this time around, which is a first for any sprints I took part in. The combination of the devguide, devcontainer integration in VScode, as well as the , (comma) key in GitHub UI on the Web made hacking on Python more accessible than ever.

And people did hack! We merged over 140 PRs over the weekend, ranging from trivial documentation fixes to changes deep in the C code of the interpreter. My favorite rabbit holes involved investigating how reference counting in Python interacts with C pointer indirection when using ctypes, a slew of quick well-thought-through patches to gettext, and a still-ongoing investigation of dtrace/systemtap probes.

Of course, these are just a few examples of a variety of improvements to Python made over the weekend. I was overwhelmed by people’s dedication and excitement for improving our favorite little interpreter. We’re so lucky.

Other highlights

Although I wasn’t myself involved in those, I would like to point out a few other favorite moments from the conference:

Finally, I would be remiss if I did not mention that the 5-star Czech Slovak Restaurant serves a tasting menu that takes over 4 hours to get through, as me and those fine people in the picture below can attest. Highly recommended!

Next generation

I didn’t come alone to the conference. Last year, my then 13 year-old son joined me for EuroPython in Dublin, Ireland. That’s us back then in the photo of Paolo Melchiorre:

I wasn’t sure how much fun a conference can be for a teenager. He liked it enough in fact to insist we take him with us to Prague this year, so we did. Looks like he liked it just as well:

I think the highlight for him was the Beginner’s Day Snake workshop led by Petr Viktorin, which combined a full-blown intro to programming with Python with a whirlwind tour of Pyglet. As I was still working on my talk demos at the time, my teenager was mostly on his own during the day. It looks like he was just fine, as he managed to finish the project, and add a couple of extras as well. The question now is obvious. If he started helping me with the development in residence, would you notice?

Mind is empty, heart is full

This conference was intense! Countless positive interactions, deeply technical conversations, and the notoriously vegetable-free Czech food (+beer!) combined into a very positive experience. While we don’t know yet if EuroPython 2024 will be held in Prague again, we know that we will be returning for sure.