EuroPython 2024 in Prag

Im Juli 2024 nahmen wir, Milan und Tobias, an der EuroPython in Prag teil. Die Konferenz gehört zu den größten Python-Konferenzen Europas und richtet sich sowohl an Expert:innen als auch Anfänger:innen. Wir konnten nicht nur Maintainern von namhaften (Open Source)-Bibliotheken wie pydantic, Sentry und FastAPI zuhören, sondern auch bei warmen Sommerabenden ein (oder auch mehrere) Bier an der Moldau genießen. Das aber nur in Lokalen, da Alkoholkonsum in der Öffentlichkeit verboten ist, wie wir feststellen mussten.

Die Konferenz an sich dauerte eine Woche und war in mehrere Teile unterteilt: Zwei Tage fanden Tutorials und Workshops statt, drei Tage gab es Vorträge und Keynotes und abschließend über das Wochenende Sprints. Wir beide nahmen lediglich an den Vorträgen teil, während Milan noch kurz zu den Sprints reinschnupperte.

Ich fand die Vorträge alle gut bis sehr gut. Dies lag sicherlich auch am professionellen Setting, denn viele der Vortragenden kamen von namhaften Unternehmen. Die Konferenz wurde komplett von Freiwilligen organisiert, dennoch waren auch große Unternehmen wie Bloomberg und Microsoft vor Ort.

Wie es sich für ein Unternehmen im Bereich des öffentlichen Verkehrs gehört, fuhren wir beide mit dem Nachtzug in einer tropischen Nacht von Freiburg nach Prag. Wir kamen direkt mit der ersten Kaffeepause im Prager Konferenzzentrum an. Der Kaffee war auch dringend nötig, da ich durch die nicht-vorhandene Klimaanlage im Zug die ganze Nacht über kein Auge zugemacht habe.

Durch die Konferenz zogen sich mehrere Themenkomplexe. Zum einen stand die Performance-Optimierung von Python im Fokus. Ein Ansatz war z.B. Type Annotations zu verwenden für eine statische Typisierung von Python. Diese statische Typisierung wird zur Laufzeit erzwungen. Durch die Implementierung des alternativen Python-Interpreters spy können diese statischen Typen für Performance Verbesserungen verwendet werden. Zudem gab es eine Einführung in PEP683, das mittlerweile in CPython übernommen wurde. Ziel des PEPs ist die Optimierung des Speicherbedarfs. Die Idee ist sogenannte "immortal objects" einzuführen, die nie zur Laufzeit vom Garbage Collector aufgeräumt werden.

Ein weiteres Themenfeld war Parallelität. Zum einen wurde häufig die optionale Deaktivierung des Global Interpreter Locks (GIL) in Python 3.13 erwähnt, aber vor allem auch auf Coroutinen eingegangen. Ich fand dabei einen Vortrag zum Bauen einer eigenen Eventloop für asynchronen Code sehr interessant. Obwohl es für mich inhaltlich nichts neues war, machte es mir doch deutlich wie "einfach" man abstraktes Verhalten in Code gießen kann. Ein paar Queues, Callbacks und Flags bildeten schließlich das Grundgerüst für die Event Loop. Weiterhin wurde das Thema Synchronisierung im Zusammenhang mit Multithreading erklärt. Dabei gab es eine Übersicht über die verschiedenen Semaphoren welche zur Synchronisation verwendet werden. Milan meinte dieser Vortrag hätte ihm einige Stolpersteine bei der Implementierung eines unserer Projekte geholfen, das stark auf asynchroner Datenverarbeitung aufbaut.

Die für mich, aber auch für andere, interessanteste Keynote war von Armin Ronacher, dem Director of Engineering bei Sentry und Hauptentwickler von Flask. Der Konferenzsaal war bis zum letzten Platz voll. Im Vortrag ging es um das Thema Packaging. Obwohl er seine Packaging Lösung rye vorstellte, ging es dabei nicht um rye an sich, sondern vielmehr um ungeahnte Probleme, die beim Packaging auftreten und potenzielle Lösungsmöglichkeiten. Ich fand es erstaunlich, dass es so schwierig ist eine Bezugsquelle für Python zu verwenden, die für sämtliche Plattformen gilt. Ich fand es überraschend, dass überhaupt dieses GitHub-Repository von einem Freiwilligen notwendig ist, um kompilierte Python-Version für jede Plattform zur Verfügung zu stellen. Seiner Meinung nach ist vieles schon gelöst, man müsse sich nur entscheiden. Dabei wurde auch klar, dass Packaging mehr ist als nur wheels zu bauen, sondern dazu gehört auch Dependency Resolution, das Beziehen von Python an sich, lokale Entwicklungsumgebungen etc.

Freitag abends wurde die Konferenz abgerundet von unterhaltsamen Vorträgen wie Musizieren mit Python Code und Lightning Talks.

Samstags ging es mit dem Zug wieder nach Hause. Für uns war die Konferenzteilnahme sehr bereichend. Wir haben einiges Neues gelernt und konnten Bestehendes vertiefen.

written by Tobias Kronauer | 9/12/2024
More on this topic
9 min reading time › | Blog

Snapping stops to vehicle trajectories

How to snap points to a line string in a given order and what it has to do with quality assurance when importing public transport schedules.

read more
7 min reading time › | Blog

Using Redis Subscriptions efficiently in Python

Inspired by the websockets broadcast feature we built a subscription multiplexer for redis subscriptions to subscribe to Redis channels and patterns once for all relevant clients.

read more
3 min reading time › | Blog

React 18 support for create-react-web-component

We want to update five year old dependencies the trafimage-maps project. But it appears one project dependency is deprecated. What should we do? Fix the project or use something else? We decided to fix the project and give back to the community.

read more
3 min reading time › | Blog

performance.now()

Zwei Frontend-Entwickler von geOps machten sich nach Amsterdam auf, um an der performance.now() teilzunehmen, einer zweitägigen Konferenz mit vierzehn erstklassigen Sessions, die die wichtigsten Erkenntnisse zur Web-Performance von heute behandeln.

read more
6 min reading time › | Blog

Export and print web maps as PDF

For some time now, some of our apps have offered the export of our maps in PDF format. This article presents our solutions for some updates of this feature.

read more
2 min reading time › | Blog

Alternative Routing – geOps wins DB Challenge

Over the past two weeks, we have been working on the question of how alternative travel options can be determined in the event of a disruption. We were able to win a DB Regio challenge.

read more

Contact

geOps AG
Solothurnerstrasse 235
CH-4600 Olten

fon: +41 61 588 05 05
mail: info@geops.ch
geOps GmbH
Bismarckallee 10
D-79098 Freiburg im Breisgau

fon: +49 761 458 925 0
mail: info@geops.de
Imprint | Privacy | Terms of service