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.

geschrieben von Tobias Kronauer | 12.9.2024
Mehr zum Thema
9 min Lesezeit | 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.

weiterlesen
7 min Lesezeit | 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.

weiterlesen
3 min Lesezeit | Blog

React 18 Unterstützung für create-react-web-component

Wir wollen fünf Jahre alte Abhängigkeiten des Projekts trafimage-maps aktualisieren. Aber es scheint, dass eine Projektabhängigkeit veraltet ist. Was sollen wir tun? Das Projekt reparieren oder etwas anderes verwenden? Wir haben uns entschieden, das Projekt zu reparieren und der Gemeinschaft etwas zurückzugeben.

weiterlesen
3 min Lesezeit | 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.

weiterlesen
6 min Lesezeit | Blog

Webkarten als PDF exportieren und drucken

Schon seit einiger Zeit bieten einige unserer Apps den Export unserer Karten im PDF-Format. Dieser Artikel stellt unsere Lösungen für diverse Neuerungen dieser Funktion vor.

weiterlesen
2 min Lesezeit | Blog

Alternative Routing – geOps wins DB Challenge

In den letzten zwei Wochen haben wir uns mit der Frage beschäftigt, wie sich im Störungsfall alternative Reisemöglichkeiten bestimmen lassen. Mit unserem Konzept konnten wir eine Challenge von DB Regio gewinnen.

weiterlesen

Kontakt

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
Impressum | Datenschutz | Bedingungen