Python Podcast

Jochen Wersdörfer / Dominik Geldmacher

Wir wollten über Python reden. Meistens tun wir das auch.

  1. vor 5 Std.

    Was ist neu in Python 3.15? Vom Textadventure über FrozenDict bis zu Djangos CalVer

    Was ist neu in Python 3.15? Vom Textadventure über FrozenDict bis zu Djangos CalVer (hier klicken, um zu kommentieren) 16. Oktober 2026, Jochen Nach längerer Pause melden sich Jochen, Dominik und Johannes zurück. Weil noch einige Aufnahmen unveröffentlicht sind, wissen sie selbst nicht genau, die wievielte Folge das eigentlich ist. Vielleicht wird es Zeit für Kalender-Versionierung? Anlass der Folge ist das frisch erschienene Python 3.15, dessen Neuerungen ausführlich besprochen werden. Die Neuerungen in Python 3.15„What's New“ als Textadventure: per uvx startbar, mit Textual gebaut und inklusive Karte. Dazu ein Exkurs zu NetHack, Zork und dem goldenen Zeitalter der Textadventures.Sentinel-Werte (PEP 661): ein eingebautes, benennbares und typprüfbares Sentinel für Fälle, in denen None ein gültiger Wert ist.Tachyon: ein statistischer Sampling-Profiler in der Standardbibliothek, der sich ohne Code-Änderungen an laufende Prozesse wie Django oder Celery hängen kann.UTF-8 als Default-Encoding beim Lesen von Dateien, und warum alle dachten, das sei längst so.Unpacking in Comprehensions mit dem Stern-Operator: kürzer, aber auch lesbarer?Lazy Imports für große Codebasen und langsam ladende Bibliotheken wie NumPy oder Pandas.FrozenDict: endlich ein eingebautes, unveränderliches Dictionary, mehr als zwölf Jahre nach dem ersten Vorschlag von Victor Stinner..pth-Dateien: Entry-Point-Angaben statt Import-Zeilen, vermutlich als Antwort auf Supply-Chain-Angriffe.Experimenteller JIT-Compiler mit etwa 7–8 % mehr Performance auf Standard-Benchmarks.Bessere Fehlermeldungen (append statt push) und mehr Farben.Typing: TypedDict, Protocols und das rätselhafte TypeForm, dazu ty und Pyrefly als Alternativen zu mypy.Free-Threading im macOS-Installer, und warum der GIL-Vorwurf an Python überbewertet ist.Außerdem in dieser FolgeEVE Online migriert von Stackless Python 2 auf Python 3.Wie wichtig sind neue Python-Versionen noch? python-podcast.de läuft bereits auf 3.15, getestet und deployt hat das Upgrade ein Agent.Versionierung: Django wechselt zu Calendar Versioning. Was spricht für CalVer, was für fortlaufende Release-Nummern?Andere Sprachen dank KI: Jochen schreibt mit Agenten Rust und Swift, Johannes kommt beim Rust-Lernen nie über das erste Kapitel hinaus.Große Datenbanken und große Zahlen: 2 TB PostgreSQL, die Menge an LLM-Trainingsdaten, Busy Beaver und TREE(3).PicksJohannes: interne TLS-Zertifikate mit mkcert, Easy-RSA und Smallstep step-caDominik: Trafilatura, um bereinigten Text oder JSON aus einer URL zu extrahierenJochen: herdr, ein Terminal-Multiplexer für Coding-Agents, der viele parallel laufende CLI-Agents danach sortiert, ob sie gerade Input brauchenFragen, Feedback oder Lust auf ein Hörertreffen? Schreibt uns eine E-Mail! ShownotesUnsere E-Mail für Fragen, Anregungen & Kommentare: hallo@python-podcast.de Jochen, Dominik und Johannes sind zurück und gehen die Neuerungen in Python 3.15 durch: Sentinels, der Sampling-Profiler Tachyon, FrozenDict, Lazy Imports, JIT und Free-Threading. Außerdem geht es um CalVer, Rust und Swift mit KI-Agenten und sehr große Zahlen. Zum Schluss gibt es Picks rund um interne TLS-Zertifikate. LinksPython 3.15What's New in Python 3.15 - offizielle Übersicht aller Neuerungenuv / uvx - damit startet man das „What's New“-TextadventureTextual - TUI-Framework, mit dem das Textadventure gebaut istPEP 661 – Sentinel Values - eingebaute, benennbare und typprüfbare SentinelsPEP 799 – Profiling-Paket - bringt den statistischen Profiler Tachyon in die StandardbibliothekPEP 686 – UTF-8 Mode als Default - Dateien werden standardmäßig als UTF-8 gelesen statt nach System-LocalePEP 798 – Unpacking in Comprehensions - verschachtelte Listen mit * flach machenPEP 810 – Explicit Lazy Imports - der echte Import passiert erst beim ersten ZugriffPEP 814 – frozendict - eingebautes, unveränderliches DictionaryPEP 416 – frozendict (2012) - Victor Stinners erster Vorschlag von vor über zwölf Jahrensite-Modul und .pth-Dateien - der Mechanismus, den Python jetzt entschärftPEP 744 – JIT Compilation - Hintergrund zum experimentellen JITPEP 703 – Free-Threading - Python ohne GILPyPy - alternative Python-Implementierung mit JITTypingPython Typing Docs - TypedDict, Protocols & Co.PEP 747 – TypeForm - die „höhere Magie“, die niemand in der Runde verstehtPEP 544 – Protocols - strukturelles Subtyping, z. B. für Django-Codemypy - Johannes nutzt es noch aus Gewohnheitty - Type-Checker von AstralPyrefly - Type-Checker von MetaExkurseNetHack - Jochens Textadventure-ReferenzZork - der Klassiker unter den TextadventuresEVE Online: The Move to Python 3 Begins - läuft seit 2003 auf Stackless Python 2 und wird jetzt auf Python 3 migriertStackless Python - der Python-Fork hinter EVE OnlineHexaHunt - Farben anhand ihres Hex-Codes erraten, passend zum Exkurs über Farben in FehlermeldungenCelery - ein Beispiel für laufende Prozesse, an die sich Tachyon hängen kannNumPy und pandas - Bibliotheken mit langsamen ImportsPython Discourse - hier entstehen die langen Diskussionen um neue FeaturesVersionierungDjango - wechselt per DEP zu Calendar VersioningCalVer - Calendar Versioning erklärtSemVer - das GegenmodellUbuntu Releases - Versionsnummer = Release-DatumSprachen, Daten und große ZahlenRust - schreibt Jochen inzwischen viel mit KI-AgentenThe Rust Book - Johannes kommt nie über das erste Kapitel hinausSwift - für native Apps im Apple-ÖkosystemPostgreSQL - 2 TB sind noch lange nicht großFleißiger Biber (Busy Beaver) - ab BB(6) unbekanntbbchallenge.org - gemeinschaftliche Busy-Beaver-ForschungGrahams Zahl - kleiner als BB(10)Kruskals Baumsatz / TREE(3) - passt nicht ins UniversumPicksmkcert - lokale CA für die Entwicklung (Johannes)Easy-RSA - etwas besser verwaltbare, aber händische CA (Johannes)Smallstep step-ca - selbst betriebene, ACME-kompatible CA (Johannes)Certbot - funktioniert auch mit step-caLet's Encrypt - reicht nicht bis in die interne InfrastrukturTrafilatura (Pick von Dominik) - extrahiert bereinigten Text oder JSON aus einer URLherdr (Pick von Jochen) - Terminal-Multiplexer für viele parallel laufende CLI-Coding-Agentstmux und Zellij - die Vergleichsgrößen dazuThemenBegrüßung nach langer Pause: Ist das Folge 70, 71 oder 72?Python 3.15: Textadventure, Sentinels, Tachyon, UTF-8, Unpacking, Lazy Imports, FrozenDict, .pth-Dateien, JIT, Fehlermeldungen, Typing, Free-ThreadingWie wichtig sind neue Python-Versionen noch?CalVer vs. fortlaufende Release-NummernRust und Swift dank KI-AgentenGroße Datenbanken und große ZahlenPicks und Abschluss

  2. 08.12.2025

    Data Science

    Data Science (hier klicken, um zu kommentieren) 8. Dezember 2025, Jochen 🎙️ Zu Gast: Mira – Data Scientist, Geschäftsführerin einer Berliner Data-Science-Beratung und Host des Podcasts Data Science Deep Dive. Dominik und Jochen sprechen mit ihr darüber, was Data Science in der Praxis heute bedeutet: weniger Machine-Learning-Magie, mehr solides Datenhandwerk – von der Problemanalyse über Feature Engineering bis hin zu Deployment, Monitoring und Drift. An konkreten Projekten (u. a. einer Luftschadstoff-Prognose für die Berliner Senatsverwaltung) wird klar, wo die echten Herausforderungen liegen – und wo die spannendsten Hebel sind. In dieser Episode: 📊 Was "Data Science" eigentlich umfasst – Skills, Rollen und warum man dafür nicht unbedingt Informatik studiert haben muss🔄 CRISP-DM in der Praxis – vom Use-Case bis Wartung und Drift, und warum die Modellierung oft nur ein kleiner Teil ist🛠️ Tooling & Architektur – Pandas, Scikit-Learn, Polars, Kubernetes, ClickHouse, REST-API, MLflow und Alerting mit Redash🌳 XGBoost vs. TabPFN – warum Gradient Boosting immer noch der Klassiker ist und was Transformer-Modelle für tabulare Daten können🔍 Feature Engineering & Interpretierbarkeit – mit SHAP verstehen, was das Modell gelernt hat⚡ Performance in der Realität – Spark vs. Polars, Sampling, vektorisierte Operationen und warum "verteilen" nicht automatisch schneller heißt🚗 LLMs für Vorhersagen – Experimente mit Gebrauchtwagenpreisen und warum Finetuning hier Sinn macht Unsere Picks: Mira: Pandas UDFs für Parallelisierung in Spark – von Stunden auf Minuten 🚀Dominik: just – Hynek erklärt, warum just der bessere Taskrunner ist als makeJochen: ccusage / ccusage for codex – Token-Kosten im Blick behalten bei claude code / codex ShownotesUnsere E-Mail für Fragen, Anregungen & Kommentare: hallo@python-podcast.de Data ScienceData Science Beratung inwtCross-industry standard process for data mining CRISP-DMVisualisierungen: ggplot2 / Redashpandas / polars / PySparkmlflowClickHouseXGBoost / CatBoost / LightGBM / TebPFN / SHAPibis / arrowPickspandas_udfuv: Making Local Python Workflows FAST and BORING in 2025 | Starts at the justfile part..ccusage / ccusage for codexElevenLabs / NobebookLM | Um sich Podcasts zu generieren..Data Science Deep Dive

  3. 30.06.2025

    Platonismus und Python - Data Class Builders

    Platonismus und Python - Data Class Builders (hier klicken, um zu kommentieren) 30. Juni 2025, Jochen Willkommen zu Episode 66! Heute geht's um Data Class Builders (nächstes Kapitel aus "Fluent Python"), aber wie immer schweift das Gespräch auch mal ab - von der Frage, ob Mathematik entdeckt oder erfunden wird, bis zu gefährlichen Default-Argumenten. 🤓 Johannes, Dominik und Jochen diskutieren, warum Martin Fowler Data Classes für einen code smell hält (spoiler: sie sind anderer Meinung), warum if not foo manchmal besser ist als if foo is None, und warum Pattern Matching das coolste Feature ist, das niemand benutzt. Zwischendurch gibt's Stories vom Podcast-Barcamp in der Düsseldorfer Zentralbibliothek, und am Ende picken die drei ihre aktuellen Lieblings-Tools - von agent based Gedöns bis Docker-Hacks. PS: Das Hörertreffen kommt! Irgendwann zwischen August und September, versprochen. 📅 ShownotesUnsere E-Mail für Fragen, Anregungen & Kommentare: hallo@python-podcast.de NewsPodcamp 2025 in DüsseldorfWorking Draft - der Frontend-PodcastWWSIV - ja, wir planen 😀Python: The Documentary [OFFICIAL TRAILER]Zentralbibliothek DüsseldorfVibe-code it today, UnFuckIt.AI tomorrowYour Brain on ChatGPT: Accumulation of Cognitive Debt when Using an AI Assistant for Essay Writing TaskKagi Search is a fast, user-centric and private web search engineKleiner Matheexkurs#472 – Terence Tao: Hardest Problems in Mathematics, Physics & the Future of AILean - Programming Language and Theorem ProverEquational Theories Project - wo dann irgendwann das Paper mit den 50 Koautoren rausfallen wirdChicken Chicken Chicken: Chicken Chicken - VideoversionMira Murati’s Thinking Machines Lab closes on $2B at $10B valuationMCP Co-Creator on the Next Wave of LLM Innovation David Soria Parra and Yoko LiData Class BuildersFluent Python - Kapitel 5Named TuplesData ClassesZitat von Linus: "Bad programmers worry about the code. Good programmers worry about data structures and their relationships."Value Objects and Entitiespydanticattrsmsgspec is a fast serialization and validation libraryDesign Pressure | Hyneks PyConUS 2025 Vortrag inklusive einem Haufen QuellenTypedDictThe Auto sentinel | Will man vielleicht verwenden statt foo: str|None = NonePicksClaude Code | Benutzt Jochen in letzter Zeit echt häufig und ist relativ begeistertn8n - Flexible AI workflow automation for technical teams | Dominks Pick: nocode tool, das ausnahmsweise mal gut istUnregistry is a lightweight container image registry that stores and serves images directly from your Docker daemon's storage | Johannes Pick

  4. 25.04.2025

    Live von der DjangoCon Europe 2025 in Dublin - Tag 3

    Live von der DjangoCon Europe 2025 in Dublin - Tag 3 (hier klicken, um zu kommentieren) 25. April 2025, Jochen Wir melden uns wieder von der DjangoCon Europe 2025 aus der Hotellobby. Diesmal haben wir Sebastian dabei, der am ersten Tag einen Vortrag über die Feinheiten in den Django Release Notes gehalten hat, den wir leider nicht sehen konnten, weil wir da noch mit Podcastaufnehmen beschäftigt waren. Er kommt auch aus dem Rheinland und betreibt in Köln eine Agentur für Softwareentwicklung und Beratung. In dieser Episode diskutieren wir: 📊 Django für Data Science - William Vincent zeigt, warum Django auch für Data Scientists interessant ist🚀 Sebastians Vortrag zu Django 5.2 LTS - Kleine aber wichtige Verbesserungen zwischen den Releases 4.2 und 5.2, die euren Code besser machen💾 Dynamic Models - Ein Blick auf einen spannenden (und etwas gewagten) Ansatz🔐 Passkeys und Multi-Factor-Authentication - Sind Passkeys die Zukunft der Authentifizierung?Außerdem: 🎙️ Ein Blick hinter die Kulissen des RealPython-Podcasts - was wir von deren Produktion lernen können🎯 Lightning Talks - Von Accessibility über Lint-Rules bis hin zu Film-Biases🗄️ Datenbankoperationen unter der Haube - Was passiert eigentlich, wenn man Model.objects.all() ausführt?🌐 1001 Django-Seiten - Erfahrungen und Herausforderungen beim Hosting zahlreicher Django-AnwendungenHört rein für technische Einblicke, lebhafte Diskussionen und einen Rückblick auf drei intensive Konferenztage in Dublin! 🎙️🍀 ShownotesUnsere E-Mail für Fragen, Anregungen & Kommentare: hallo@python-podcast.de LinksDjangoCon Europe 2025The fine print in Django release notes{% querystring %} template tagDynamic models without dynamic modelsPasskeys in Django: the best of all possible worldsSteering Council introductionFoxley Talent | Django / Python RecruiterDjango for Data Science: Deploying Machine Learning Models with DjangoFeature Flags: Deploy to some of the people all of the time, and all of the people some of the time!Just-in-Time Development with Django and HTMX: Faster, Leaner, and SmarterAnatomy of a Database OperationOne Thousand and One Django SitesEurope, Django and two-factor authenticationDjango Admin at Scale: From Milliseconds to Microseconds 🚀

  5. 24.04.2025

    Live von der DjangoCon Europe 2025 in Dublin - Tag 2

    Live von der DjangoCon Europe 2025 in Dublin - Tag 2 (hier klicken, um zu kommentieren) 24. April 2025, Jochen Wir melden uns erneut von der DjangoCon Europe und sprechen über die Highlights des zweiten Konferenztages – mit jeder Menge technischer Einblicke, spannenden Talks und persönlichen Eindrücken. Diesmal mit dabei: Ronny als Gast in unserer Runde! 🎉 Gemeinsam diskutieren wir über große und kleine Themen aus der Django-Welt – von tiefen technischen Details bis zu Community-Aspekten. Diesmal im Fokus: 🔧 Haki Benitas Talk „How to get foreign keys horribly wrong“ – wie man Fallstricke rund um Foreign Keys in Django vermeidet und worauf man bei Migrations achten sollte🛸 „The Most Bizarre Software Bugs in History“ – von gescheiterten Mars-Missionen über Flugzeugabstürze bis hin zu fehlerhaften Excel-Formeln bei JPMorgan🔍 Strategien fürs Debugging in Produktionssystemen – Karen Tracy zeigt, wie man auch unter Realbedingungen noch den Überblick behält🅿️ „100 Million Parking Transactions per Year with Django“ – ein spannender Einblick in ein System für Parktickets, das mit kleinem Team und viel Django läuftAußerdem: 🎂 Das erste öffentliche DSF-Member-Meeting zum 20. Geburtstag von Django (mit Kuchen!)🌍 Diskussionen zur Entscheidungsfindung im Django-Projekt – was bedeutet eigentlich „Konsens“ im Open-Source-Kontext?🛠️ Unsere eigenen Best Practices: Status-Modelle für Celery-Tasks, warum Custom User Models nicht immer die beste Idee sind und welche Rolle JSON-Fields (nicht) spielen sollten Eine Episode voller technischer Insights, Community-Geschichten und einem Hauch irischer Konferenzstimmung. Direkt aus Dublin – schaltet ein! 🎙️🍀 ShownotesUnsere E-Mail für Fragen, Anregungen & Kommentare: hallo@python-podcast.de LinksDjangoCon Europe 2025Django + HTMX: Patterns to SuccessThe fine print in Django release notesDjangoCologne MeetupIt’s always TCP_NODELAY. Every damn time.bpftraceBulletproof Data Pipelines: Django, Celery, and the Power of Idempotencydjango-taskqLogs, shells, caches and other strange words we use dailydjango-migration-zero - the holistic implementation of "migration zero" pattern for Django / Cleaning Up Your Django repo — A Holistic Approach to Managing Migration FilesAnnual meeting of DSF Members at DjangoCon EuropeThe Most Bizarre Software Bugs in HistoryHow to get Foreign Keys horribly wrong in DjangoHow we make decisions in Djangodjango-removals — A maintainers best friendHow to Enjoy Debugging in Production100 Million Parking Transactions Per Year with DjangoGlitchTip

  6. 18.04.2025

    Bytes und Strings

    Bytes und Strings (hier klicken, um zu kommentieren) 18. April 2025, Jochen In dieser Episode werfen wir einen Blick auf das nächste Kapitel von "Fluent Python" über "Bytes und Strings". Johannes erklärt die wichtigsten Konzepte und warum UTF-8 fast immer die richtige Wahl ist. 🌍 In unseren News sprechen wir über: DeepSeek und aktuelle Entwicklungen bei Sprachmodellen 🤖Tailwind CSS v4.0 ist draußen 🎨Unsere Eindrücke von der Fosdem und PyCon+Web 🎯Das geplante Hörerinnentreffen im Köln-Düsseldorfer Raum 🤝Unsere Picks: Johannes: Ein faszinierendes Paper über schwarze Löcher und ein Erfahrungsbericht zu uv nach einem JahrDominik: "Sketch A Day" – tägliche visuelle Ideen in PythonJochen: Fish 4.0, die Shell wurde großen Teilen in Rust neu geschriebenHört rein und lasst euch von uns erzählen, warum es mehr als 1,1 Millionen Zeichen gibt und wieso das für Programmierer wichtig ist! 🎧 ShownotesUnsere E-Mail für Fragen, Anregungen & Kommentare: hallo@python-podcast.de NewsTailwind CSS v4.0Teergrube (Informationstechnik)Postgres in the time of monster hardwareDeepSeekOn DeepSeek and Export Controls | Chef von Anthropic über die Kosten, LMMs zu trainierenDeepSeek-V3 Technical ReportDeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement LearningAlec Radford verlässt OpenAIOpenAI o3OpenAI o3 Breakthrough High Score on ARC-AGI-PubFrontierMathSWE-bench / Introducing SWE-bench VerifiedModel Context ProtocolPyCon Austria | 6. und 7. April EisenstadtMicrosoft’s Majorana 1 chip carves new path for quantum computingI’m Sorry for Python’s tail-calling Interpreter’s Results | Leider doch kein easy Performcewin via tail-calling..Konferenzen (Pyconweb / Fosdem)You're (probably) Using UUIDs WrongFosdem - Python DevroomJochens Fosdem WeeknotesJSON Resume The open source initiative to create a JSON-based standard for resumes. For developers, by developersDjangoCon.eu DublinPyCon DE & PyData 2025Shifting DX expectations: keeping Django relevant 😬PyScript - Python in the BrowserSovereign Tech FundStrings und UnicodeASCII /Unicode / UTF-8 / Characters, Symbols and the Unicode Miracle - ComputerphileUnicode Normalization FormsBig List of Naughty StringsUnicode Support für Java war doch nicht von Anfang an drin, sondern kam erst mit Version 1.1 1997 😁Learn Code the Hard WayEBCDICPicksJohannesGravitational Effects of a Small Primordial Black Hole Passing Through the Human BodyA year of uv: pros, cons, and should you migrateuv IS the Future of Python Packaging! 🐍📦migrate-to-uvDominiksketch-a-day | Ah, Jochen folgt dem Autor auf Mastodon - wahrscheinlich daherJochenfish shellFish 4.0: The Fish Of TheseusShip of TheseusMachines of Loving Grace1Self Models of Loving Grace

  7. 25.02.2025

    Auphonic

    Auphonic (hier klicken, um zu kommentieren) 25. Februar 2025, Jochen 🎙️ Wie Auphonic entstand – Ein Blick hinter die Kulissen mit Gründer Georg. In dieser Episode haben wir Georg, den Gründer von Auphonic, zu Gast und sprechen mit ihm darüber, wie alles begann. 🚀 Früher gab es für die Nachbearbeitung von Audio fast ausschließlich Echtzeit-Tools – aber warum eigentlich? Für Podcasts, bei denen die gesamte Aufnahme bereits vorliegt, wäre eine leistungsfähige Batch-Verarbeitung viel naheliegender gewesen. Genau hier setzte Auphonic an! 🤔 Natürlich sind auch Johannes, Dominik und Jochen wieder mit dabei! Gemeinsam werfen wir einen Blick auf die Entwicklung der letzten zehn Jahre: Während frühere Machine-Learning-Modelle hauptsächlich dazu dienten, die Parameter klassischer Audioprozessoren wie Kompressoren und Limitern automatisch einzustellen, setzen moderne Systeme zunehmend auf End-to-End-Deep-Learning. Heute sind Audio-to-Audio-Modelle der Stand der Technik, die das Signal direkt transformieren – ohne den Umweg über klassische Audiotools. 🎛️➡️🎶 Außerdem gibt Georg spannende Einblicke in die technische Infrastruktur von Auphonic: ⚙️ Django im Backend, Vue.js für den Transkripteditor, ein bisschen htmx und alpine.js🚀 Celery als Task-Queue, das seit zehn Jahren treue Dienste leistet🎧 Eigenes Training von Machine-Learning-Modellen auf On-Premise-GPUs, Inferenz über GPU-Instanzen bei Hetzner. Und natürlich diskutieren wir darüber, warum es kein „One-Size-Fits-All“-Modell für Podcasts gibt – schließlich will ein True-Crime-Podcast vielleicht Atemgeräusche entfernen, während ein Yoga-Podcast genau diese beibehalten möchte. 🧘‍♂️🔎 Hört rein – viel Spaß bei dieser Episode! 🎧 ShownotesUnsere E-Mail für Fragen, Anregungen & Kommentare: hallo@python-podcast.de AuphonicAuphonicscikit-learn / NumPy / SciPySchnelle Fourier-Transformation (FFT)LevelatorTensorFlow / keras / PyTorchpodcast-transcript | Das command line tool, das ich auf dem PyDDF-Herbstsprint geschrieben habe, mit dem ich den Podcast hier transkribiereDjango / Vue.js / htmx / Alpine.js / tailwindcssCelery - Distributed Task Queue / NVIDIA Triton Inference ServerThoughts on my first machine learning project | OCR für Noten - geht das eigentlich auch umgekehrt - Notentranskripte aus Musik?PicksBoost Your Django DX update out now

4,5
von 5
52 Bewertungen

Info

Wir wollten über Python reden. Meistens tun wir das auch.

Das gefällt dir vielleicht auch