Transkript: Live von der DjangoCon Europe 2025 in Dublin - Tag 1

· Zurück zur Episode

Vollständiges Transkript der Episode. Zeitstempel beziehen sich auf die Audiowiedergabe.

Dominik

Ja, hallo, herzlich willkommen beim Python Podcast, Episode 63.

Dominik

Heute gibt es eine Sonderausgabe.

Dominik

Wir sind nämlich auf der DjangoCon in Dublin.

Jochen

Ja, und wir sind Johannes, Dominik.

Johannes.

Hallo.

Dominik

Hi Sarah.

Dominik

Und?

Hallo.

Jochen

Ja, wir haben einen Gast, Sarah.

Dominik

Ja, wir wollten euch ein bisschen was erzählen, was hier so passiert und das vielleicht auch die nächsten Tage so machen.

Dominik

Das wissen wir aber noch nicht ganz genau.

Dominik

Wir wollen nichts mehr versprechen.

Dominik

Wir haben letztens schon so ein paar Sachen versprochen, die ein bisschen spät dran waren beim Release.

Dominik

Das machen wir diesmal nicht, sondern wir erzählen euch einfach ein bisschen, wie es hier so ist.

Dominik

Lasst den News-Ter diesmal weg und

Jochen

gucken, was passiert.

Jochen

Genau.

Ja, wie gefällt es euch denn hier in Dublin?

Johannes

Also wir sind ja gestern angekommen und wir sind gleich von am Taxistand, hat uns die freundliche Dame darauf hingewiesen, dass es heute sehr gutes Wetter wäre.

Weil es nicht regnet.

Johannes

Und das hat sich dann hier im Hotel, waren sie auch alle glücklich, dass es nicht regnet.

Johannes

Leider hat es dann am Nachmittag doch noch angefangen zu regnen.

Dominik

Ich hab gehört, es war average.

Ja.

Jochen

Es war schon so, dass man so, man sieht dann so Regenschlieren so im Wind vorbeiziehen.

Johannes

Ja, und als es ins Restaurant reingeregnet hat, haben sie auch alle gesagt, ach, das ist noch durchschnittlich.

Dominik

Also seid froh, wenn ihr gerade im Trocknen sind.

Jochen

Das hat auch auf den Tisch getroffen, ein bisschen von oben.

Johannes

Alles durchschnittlich.

Johannes

Normales irisches Wetter.

Johannes

So war unser erster Eindruck gestern.

Ja, wir sind nämlich auch alle mit dem gleichen Flugzeug gekommen, das fand ich auch sehr lustig, dass da irgendwie so viel große Drittel von den Passagieren irgendwie wegen der Django-Con darüber geflogen ist.

Ja.

Dominik

Vielleicht wollen wir auch ein bisschen was zur Konferenz erzählen.

Dominik

Und tatsächlich, ich glaube, Sarah, du könntest vielleicht anfangen, weil du hast auch die Keynote gehalten am Anfang.

Ja.

Sarah

Ja, klar.

Sarah

Ich habe ein Keynote gemacht und ich habe gesprochen über

Dominik

wie man bei Django mitmachen kann.

Sarah

Genau.

Sarah

So auf meine Meinung.

Sarah

Django braucht mehr PR-Reviews, weil wir haben so viele Pull-Requests und nicht so viele Leute, die PR-Reviews machen.

Sarah

Und ich glaube, es ist nicht so viele Leute denken, das ist ein gutes Ding zu machen.

Dominik

Es ist natürlich auch total schwierig, weil man traut sich das erstmal gar nicht zu.

Dominik

Warum sollte ich jetzt unbedingt so das große Django-Reviewen?

Dominik

Aber das, was du gesagt hast, Sarah, war, mach doch einfach mit.

Dominik

Das ist super und man kann das auf jeden Fall gebrauchen.

Johannes

Wir sollten vielleicht noch sagen, dass Sarah der aktuelle Django Fellow ist und dass sie deshalb durchaus Autorität hat, darüber zu sprechen, wie man da mitmacht.

Johannes

Der Django Fellow ist von der Django Software Foundation.

Johannes

Genau.

Johannes

Eine Position, wo eine Person bezahlt wird, um an Django zu arbeiten.

Vollzeit.

Johannes

Das heißt, wie lange machst du das schon, Sarah?

Sarah

Seit einem Jahr.

Seit einem Jahr schon.

Okay.

Johannes

Das heißt, du hast wirklich genügend Erfahrung zu sagen, was gebraucht wird und was nicht gebraucht wird.

Ja.

Wir haben ja alle schon in so Umgebungen gearbeitet, wo man Pull Requests macht und wo dann Review gemacht wird.

Johannes

Und ich hatte immer das Gefühl, dass Review so ein bisschen die Schranke ist, dass da ein Gatekeeper steht, der sagt, du darfst oder du darfst nicht.

Dominik

Aber es gibt ja noch nach dem Pull Request die Mergers.

Johannes

Genau, das ist der erste Sicherheitsmechanismus, der mir gut gefallen hat, dass man nicht die alleinige Verantwortung hat.

Johannes

Aber du hast ja schon so ins Plenum gesagt, tut das bitte.

Sarah

Genau, es ist, ähm, ich hoffe, dass es mehr als ein Mann gibt, das einen Pull Request Review machen.

Sarah

Und wir können viele Leute unsere Meinung sprechen, dass diese Feature gefällt mir oder nicht.

Und es gibt ja so verschiedene Seiten, von denen man das sehen kann.

Dominik

Also jeder hat ja so einen eigenen Stil und dann gefällt anderen Leuten, fällt natürlich andere Dinge, fallen ihnen auf.

Sarah

Ja, klar.

Jochen

Ja, aber gibt es irgendeine Erkenntnis darüber, warum das vielleicht so wenig, warum Leute das nicht so gerne machen oder so, oder kann man das eventuell irgendwie leicht, könnte man da die Motivation leicht verbessern oder so?

Jochen

Ich weiß es nicht.

Dominik

Sarah sagt, es dauert lang.

Sarah

Klar, es gibt, es ist schwer zu sagen, warum man das machen sollte, weil es gibt keine Geld und

Dominik

deswegen mache ich es übrigens auch nicht.

Sarah

Und dann du bist nicht die Author von dieser Code.

Dominik

Die Ruhm und Ehre geht an den Menschen, der diesen Commit geschrieben hat.

Sarah

So ich weiß nicht, warum es gibt ein paar Leute, dass so viel Zeit investieren schon, aber um ein paar Stunden pro Woche pro Monat can or PR or Trial.

Sarah

You know, PR Reviews machen, then it can so feel for Django machen.

Dominik

Ich habe es mir tatsächlich überlegt, ob ich nicht mal mir sowas angucken will, und hatte mich auch gefragt, ob ich mich denn für gut genug halte, das Django Review zu machen.

Dominik

Das war tatsächlich auch so eine Hürde.

Sarah

Auf jeden Fall.

Dominik

Es gibt einen Endpunkt, also code.jangoproject.com, wo man dann halt die offenen Pull Requests sehen kann und filtern kann nach Dingen, die einen interessieren.

Dominik

Und da kann man sich dann mit auseinandersetzen und sich einen raussuchen, wo man halt tatsächlich schauen kann.

Dominik

Es gibt auch eine Anleitung, ja, also ein Contributors Guide, wo man halt ein bisschen sieht, auf was man alles achten soll.

Dominik

Ich glaube, die Sachen, die man da sieht, sind schon durch verschiedene Prozesse gegangen.

Dominik

Also ihr nennt das Triage, glaube ich.

Dominik

Gerne.

Dominik

Und diesen Triage-Projekt wird halt geguckt, gibt es schon Tests, gibt es schon Dokumentationen und ist das denn alles einigermaßen ordentlich?

Dominik

Und was ich auch spannend herausfordernd fand, war, dass es halt verschiedene Teile von Dango gibt, die alle auch einen unterschiedlichen Stil haben.

Dominik

Also wahrscheinlich, weil unterschiedliche Leute daran geschrieben haben.

Dominik

Darfst du herauszufinden?

Dominik

Das ist schon interessant, sich da so ein bisschen dran zu dem Tanner.

Jochen

Es gibt halt so Teile, wo ich ja, also so die Innereien vom ORM oder so, da glaube ich, viele Leute würden da zurückschrecken und denken so, oh oh.

Johannes

Da sind vielleicht auch nicht ganz so viele Pairs offen.

Das wäre auch interessant.

Jochen

Gibt es da irgendwie Tendenzen, wo halt die meisten Pull-Requests offen sind?

Jochen

Oder ist es komplett über die Codebasis verteilt?

Sarah

Es gibt viel für die ORM.

Sarah

Es ist ein sehr

Jochen

großer Teil.

Ja, genau.

Sarah

Und es ist ein Kernbaustein.

Sarah

Genau.

Sarah

Und es gibt ein paar Leute, das können diese Reviews sehr gut machen.

Sarah

Es gibt einen Mann, der heißt Simon Charette.

Sarah

Und er macht die beste Reviews und viele seid.

Sarah

Es fühlt sich wie jedes Tag ein bisschen für Django machen.

Sarah

Aber ich weiß nicht, es gibt ein paar PRs für vielleicht jedes Teil von Django.

Dominik

Das heißt, ihr findet auf jeden Fall einen Teil, wo ihr noch mitmachen könnt.

Dominik

Das ist auf jeden Fall eine gute Sache, ja.

Und es ist

Johannes

auch eine super wichtige Sache, diese Code-Reviews.

Johannes

Also in allen Teams, in denen ich bisher gearbeitet habe, waren Code-Reviews einfach super wichtig, um das Team zusammenzuhalten.

Johannes

Das ist eine sehr schwierige Frage, weil es sehr auf den Kontext ankommt.

Johannes

In den Teams, in denen ich gearbeitet habe, habe ich beides gleich gerne gemacht.

Johannes

Weil das einfach ein Teil des Teams ist.

Es war so ein Geben und Nehmen.

Johannes

Es war so ein Geben und Nehmen.

Johannes

Einerseits habe ich natürlich, wenn du einen PR stellst, erwartest du in einem, gerade im kommerziellen Kontext, dass du nicht vier Wochen warten musst.

Johannes

Und das heißt, du möchtest, dass die Kollegen das schnell machen.

Johannes

Und umgekehrt verpflichtet es dich dann natürlich auch, darauf zu reagieren, wenn jemand anders einen PR-stellt ist.

Dominik

Open Source vielleicht noch ein bisschen anders als im professionellen Kontext, weil im professionellen Kontext hast du halt auf diese politische Ebene dazwischen, dass man seinen Kollegen immer dann direkt merged, weil man mag die ja und möchte keinen Ärger haben.

Dominik

Oder man sind

Johannes

längere Teams, also wenn du mit zehn Leuten zusammenarbeitest, ist das was anderes, als wenn du im Open Source Projekt mit tausend Leuten zusammenarbeit.

Jochen

Und was man bei einer Firma oder so auch oft machen kann, ist, dass man einfach erst mercht und dann reviewt.

Jochen

Das ist jetzt bei Django vielleicht eher schlecht.

Sarah

Ja, weil wann seine Kollegen etwas kaputt machen, dann spätestens.

Dann holt man sie sich und sagt ihnen,

das darfst du aber nicht.

Dominik

Mach das nicht nochmal.

Dominik

Ja, aber wenn man Tests gehabt hat, dann ja.

Johannes

Ja klar, also in dem Sinne ist das Review hier ein viel größeres Quality-Gate.

Johannes

Es ist ein viel größeres, es darf nur Sachen rein, die auch reingehören.

Johannes

Aber umso wichtiger ist es ja, dass tatsächlich Leute kommen und das dann auch tun.

Dominik

Und ich glaube auch als Reviewer kann man was lernen.

Dominik

Also auch wie man Reviews macht, dass das auch super war.

Johannes

Und es ist ein sehr wichtiger Skill.

Johannes

Und ich glaube aber, dass es nicht, also für mich ein Kernpunkt, den ich mir bei deinem Vortrag auch gedacht habe, ist, wenn ich einen PR stelle, dann habe ich hinterher eine Zahl an meinem GitHub-Account drinstehen.

Johannes

Wenn ich Review mache, dann stecke ich da vielleicht genauso viele Stunden rein.

Johannes

Aber das ist unsichtbar.

Johannes

Und schon allein dieses Number Goes Up-Spiel, was man da spielen kann, ist ja schon ein Möglichkeit.

Dominik

Und da mehr Gamification für deinen Pull-Requests.

Ich weiß, dass

Johannes

bei mir funktioniert und ich weiß, dass das bei vielen anderen Leuten funktioniert.

Johannes

Und es ist ja auch was wert, ja.

Es ist auch was wert.

Johannes

Das hast du auch in deinem Vortrag gesagt.

Johannes

Wenn jemand, bevor sich die Leute für Summer auf Code vorbereiten, machen sie schnell noch mit PRs und sagen dann, haha, ich habe da was reingekriegt.

Johannes

Aber niemand würde auf die Idee kommen, fünf Reviews zu machen, weil da kann man nicht drauf zeigen und sagen, ich habe Review gemacht.

Johannes

Und ich glaube, das ist einer von den Motivatoren, die da einfach fehlt.

Johannes

Aber es ist auch sowas Unsichtbares.

Johannes

Es ist nicht ein PR ist eine Sache und die ist, die macht man und dann ist die dafür immer.

Johannes

Und diese Review ist sowas, ich hab dir ein paar Kommentare gesagt.

Jochen

Und die werden ja auch unter Umständen gar nicht Teil des Repositories, sondern.

Jochen

Genau, die sind dann einfach im Truck und das Truck wird dann irgendwann irgendwas anderes migriert und dann oder so.

Es ist einfach nicht sichtbar.

Johannes

Es ist nicht sichtbar, dass jemand Review gemacht hat, dass es nicht, es gibt keinen Punkt, den man dafür kriegt, kein Sternchen, ja.

Dominik

Ruhm und Ehre der Community.

Johannes

Ja, natürlich, es verbessert das, aber das reicht offenbar.

Sarah

Denkst du, es gibt etwas, das Django machen kann, für das?

Johannes

Ja, es wurde ja vorhin auch schon vorgeschlagen oder es wurde vorhin auch schon angesprochen, dass man einfach das sichtbar macht.

Okay.

Johannes

Dass man sichtbar macht, wer Reviews macht.

Johannes

Auch bei der ersten schon.

Johannes

Du hast auch gesagt, es gibt eine Gruppe von Leuten, die das, keine Ahnung, Reviewer-Bit haben oder wie auch immer, die dann halt da aufgehört sind.

Johannes

Aber das ist für mich jetzt als eins, als Angestellten oder als Freelancer, ich habe da nicht genügend Zeit, um in diese Gruppe vorzustoßen.

Johannes

Das heißt, für mich als Einzelperson wäre es wichtig, dass wenn ich so ein Review mache, dass es dann auch sofort irgendwo steht.

Johannes

Also ich will Instant Gratification haben.

Johannes

Und ich glaube, wenn man das sichtbar machen würde, dass es das gibt und dass man dafür Punkte bekommt, egal welche Art die sind.

Johannes

Dann würde das schon deutlich mehr Leute anziehen.

Johannes

Ich weiß aber nicht, ob das Pull Request Review

Leadership Board

Johannes

umgekehrt muss man natürlich auch aufpassen, dass das nicht so Leute anzieht, die dann sagen, ja, ja, ja, ja.

Sarah

Shai Burger hat mir gesagt, dass es gab ein Dinger für die Core Team.

Sarah

Es gibt kein Core Team jetzt, aber vorher, man muss fünf PR-Reviews machen und dann ihre PR kann ein Review haben.

Sarah

Und das hat eigentlich funktioniert, Shy gesagt.

Sarah

So vielleicht das ist auch eine Idee, dass wir das wiedermachen oder etwas ähnlich.

Dominik

Ja, es gab ja noch die nächste Idee dann, dass halt viele von den erfolgreich reviewten Full-Requests dann irgendwie kurz vor Mergen liegen bleiben, weil auch da ja niemand da ist, der das hauptberuflich macht.

Dominik

Und es halt nur sehr wenige Merger gibt.

Dominik

Und wir hatten eben die Diskussion draußen nochmal.

Dominik

Also ich glaube, Klaien Gibson hat gesagt, so, hey, was hältst du denn davon, wenn es mehr Leute gibt, die mergen?

Dominik

Und wir haben uns draußen unterhalten und sagt, so ja, Django ist deswegen toll seit 20 Jahren, weil es total stabil ist und der Code total super ist und die Dokumentation total toll ist.

Dominik

Und ja, dann kam halt wieder dieses Thema auf, wir merken das.

Dominik

Und das wäre natürlich auf einmal sehr aufpassen, wer das dann ist.

Dominik

Weil sonst hast du halt Sachen drin, die dann vielleicht nicht so passen.

Dominik

Und wie viele von diesen Menschen es gibt, keine Ahnung.

Dominik

Also was hältst du davon?

Dominik

Also du hast eben gesagt, du weißt es nicht, genau.

Sarah

Also es gibt jetzt vier Merges.

Sarah

Es gibt die Fellows, ich und Natalia.

Sarah

Ich glaube es gibt Marisch Feliciak und Claud Poros.

Sarah

Aber die meisten pull requests sind merged by die Fellows.

Sarah

Vielleicht Marisch macht schon ein bisschen mehr.

Sarah

Aber ich weiß nicht, weil es gibt die Entscheidung, dass es wirklich gut ist.

Sarah

Und es ist auch die Entscheidung, dass ob etwas falsch gemacht oder etwas nicht so gut ist, dass du kannst das besser machen.

Sarah

Und du glaubst, dass okay, vielleicht dies dieser PR oder geht weg, weil so viele Leute bleibt nicht, dann ja, ich verstehe die Code gut genug, dass ich glaube, ich kann das besser machen.

Sarah

Und das, keine Ahnung, wie viele Leute würde das auch fühlen, weil es ist für mich, ich fühle, das ist echte Arbeit.

Sarah

Und vielleicht das braucht ja man sollte.

Ein bestimmtes Level von Commitment und das dann durch.

Sarah

Aber wir können versuchen.

Dominik

Ich habe das jetzt gemerkt.

Dominik

Fandet ihr das auch okay?

Johannes

Ja, es ist auf jeden Fall ein schwieriges Problem.

Johannes

Und das ist wieder so ein, wir haben da ja auch gestern drüber gesprochen, ja.

Johannes

Die technischen Probleme sind ja oft relativ einfach.

Johannes

Also da kommen wir alle klar damit.

Johannes

Aber dann die organisatorischen und die Menschen und die sozialen und die psychologischen, dann da ist es oft schwieriger, als der reine Code.

Dominik

Da gab es auch noch den nächsten interessanten Vorschlag und zwar, dass man halt die LNMs zur Hilfe nimmt, um bestimmte Stufen da vorzubereiten.

Dominik

Ich finde die Idee gar nicht schlecht, ehrlicherweise, weil ich glaube, wenn man sich so ein bisschen Arbeit macht mit so Agents, die dann customized sind für Dango-Pull-Requests oder sowas, dann kommt man da relativ weit mit, also auch mit dem Reviewen von diesen Pull-Requests.

Dominik

Ja, aber was er nicht machen guckt.

Jochen

Das kann natürlich auch so ein Katze-Maus-Spielen-Spiel werden, weil es wird dann möglicherweise, also du hast dann halt LLMs, die generieren PRs und dann andere LLMs, die quasi.

Jochen

Und dann kann man auf beiden Seiten aufrüsten, aber irgendwie hilft das dann auch.

Dominik

Ja, vielleicht kommt ja dann tatsächlich ein ordentlicher Pull-Request bei raus.

Dominik

Also das ist ja eigentlich das, was du willst.

Dominik

Ja, gut.

Dominik

Von wem der dann kommt, ist der dann fast.

Jochen

Ist auch egal, genau.

Jochen

Wenn es stimmen würde, hinterher, ja, dann wäre es auch ein bisschen egal.

Jochen

Ja, ich weiß es nicht.

Jochen

Vielleicht muss man uns einfach ausprobieren, keine Ahnung.

Ja.

Dominik

Vielleicht ein kleiner Übergang von dem Thema von Serrat, weil es gab noch so einen Workshop, wie man Agents macht.

Dominik

Das war ja auch gar nicht uninteressant.

Dominik

Es war nicht ganz so viel Neues zu dem, was wir eh schon so machen.

Dominik

Aber es ist schon spannend, wie man sowas, einen Agenten dazu bringt.

Jochen

Wie wurde denn da Agents eigentlich definiert?

Jochen

Also meine Definition vorweg wäre einfach so LLM in a Loop.

Dominik

Ja, okay, genau.

Dominik

Das war ziemlich genau das, was wir da gemacht haben.

Dominik

Also ein Loop-Bauen für LLMs, die dann verschiedene Prozesse durchgehen können und dann halt Funktionen aufrufen.

Dominik

Und es gab halt aber dann halt für eine Beantwortung einer Frage einen mehrstufigen Agentenprozess, um bestimmte Sachen dann zuweisen zu können.

Dominik

Was man halt auch für so einen Pull-Request machen könnte.

Dominik

Könnte halt gucken, hey, hier sind die Dogs drin und so weiter, sind die denn da?

Dominik

Hast du einen Verbesserungsvorschlag für die Dogs?

Dominik

Gehst du den nächsten Test, sind die Tests drin, gehen die Tests durch?

Dominik

In welchem Kontext gehen die Tests?

Dominik

Sind die Tests negativ?

Dominik

Ja, also sind die Sachen, die zum Beispiel rausgeflogen sind, gehen die Tests da, jetzt auch kaputt und wie ist das?

Dominik

Und wenn du was verbesserst, wenn du das fixst, hast du einen Test geschrieben vorher, der zeigt, dass das kaputt ist und ist der Test danach grün?

Dominik

Solche Sachen.

Dominik

Und das kann man, glaube ich, durchaus in so einem mehrstufigen Agenten beibringen.

Dominik

Aber auch das ist wieder Arbeit, ja.

Wo wir wieder dabei sind, so ey.

Dominik

Wir brauchen tatsächlich für diese Open-Source-Geschichte so ein bisschen mehr Funning.

Dominik

Und das ist auch die Frage, woher das kommt.

Dominik

Also da gibt es so verschiedene Gates, die wir kennen.

Johannes

Ja, aber alle unsere Zuhörer werden ja jetzt gleich losgehen und PRs reviewen.

Ja.

Johannes

Und auch an die DSF-Spenden.

Genau.

Dominik

Den Spendenlink pusten wir auch, meine ich.

Jochen

Oh ja, den sollten wir da auch rein tun, ja.

Jochen

Das ist richtig.

Dominik

Ja, ich habe tatsächlich ab und zu mal so die CTOs oder die ein bisschen anderes Level noch versucht zu bequatschen, für, hey, wir benutzen auch die ganze Zeit so Open Source Software.

Dominik

Wie wäre es denn, wenn ihr von dem Budget so ein bisschen wieder zurückgebt?

Dominik

Und die meiste Antwort war so, ja, warum denn?

Dominik

Okay, ja, weil ohne das wird es nicht funktionieren.

Dominik

Und ich habe das Gefühl, dass man bei den kapitalistischen Organisationen da so ein bisschen auf wenig Gegenliebe stößt, aber vielleicht bei den staatlichen irgendwie.

Dominik

Also zumindest jetzt, wenn bestimmte Regionen entdecken, dass das ganz gut ist, wenn man unabhängige Software hat, die man auch nutzen kann.

Dominik

Das ist vielleicht so ein bisschen die Idee.

Dominik

Aber auch das wäre ja so eine Sache, ne?

Dominik

Gibt es da bei Django jemanden, der da aktiv Fundraising in diese Richtung macht?

Johannes

Ja, Carlton.

Johannes

Carlton spricht schon lange davon, dass er.

Sarah

Klar, es gibt ein Team, es gibt die Fundraising Working Group.

Sarah

Und ich glaube, sie haben ein paar Ideen, dass die Django Software Foundation machen konnten.

Sarah

Aber es ist nicht so lang, seit dieser Team gegründet war.

Sarah

Keine Ahnung, was sie machen jetzt.

Sarah

Aber hoffentlich haben wir ein paar Sponsors und jedes Jahr.

Sarah

Ich glaube, Catherine von DSF wird wieder mit diesem Firma sprechen und ob sie möchten wieder sponsieren.

Sarah

Ja, aber es ist ein schwere Thema, ob was

Dominik

ich glaube, die Sponsoren meistens sind das halt auch Leute, die man dann auch persönlich gut kennt.

Dominik

Ja.

Dominik

Und wo man halt eine Beziehung über ein paar Jahre oder aufgebaut hat schon.

Dominik

Was eigentlich ein bisschen schade ist, also was es nicht so diesen Public-Gedanken gibt.

Ja, aber im Großen und Ganzen steht die Jungle Software von Deutschland ja schon vergleichsweise gut da.

Johannes

Die kann sich ja schon zwei Leute leisten, die also nicht Vollzeit, aber anderthalb Vollzeit-Personen.

Johannes

Und das ist ja für eine Open-Source-Stiftung riesig.

Johannes

Ich wüsste nicht viele andere Stiftungen oder viele anderen Frameworks, die sich so viel Betreuung leisten können.

Johannes

Also der Erfolg ist ja schon da, der muss nur noch größer werden.

Dominik

Ja, es gibt natürlich so den anderen Weg, so Laravell oder sowas, die dann auf einzelne Leute mit viel Geld gesetzt haben und das dann verkaufen, um dann so einzige Microservices irgendwie da zu monetarisieren.

Dominik

Aber ich finde es ganz gut, dass wir das nicht so machen.

Jochen

Ja, was gab es denn heute noch so?

Jochen

Alles, was hatten wir denn noch?

Dominik

Ihr wart noch die ganze Zeit in der Main Hall und habt euch die Talks.

Jochen

Playwright angeguckt.

Jochen

Das war auch sehr nett.

Jochen

Ja, das ist, äh, mache ich auch seit einiger Zeit sehr, sehr gern.

Jochen

Irgendwie, ja, das wurde da auch angesprochen mit HMX.

Jochen

Hat man ja sonst ein bisschen Probleme, das wirklich zu testen, dass das alles funktioniert und dann muss man halt auch so End-to-End-Tests machen.

Jochen

Und Playwright funktioniert da echt super.

Jochen

Also, genau.

Dominik

Wir hatten kurz vorher die Frage, macht denn Playwright über PyTest dann einen Server auf, den es dann richtig benutzen kann?

Jochen

In den Beispielen jetzt, da haben sie das so gemacht, aber dann hat der wie hieß er noch, ähm, Jakob.

Jochen

Jakob, äh, genau, hat er noch gesagt, ja, das hat er jetzt so gezeigt, aber das macht er normalerweise nicht so und ich mach das normalerweise auch nicht so, sondern ich lasse einen Server speziell dafür dann laufen, gegen den ich dann Playwright laufen lasse.

Jochen

Ich weiß nicht so genau.

Jochen

Also ich habe noch nicht so wirklich rausgefunden, wie man das am besten macht.

Jochen

Aber ja, also mein Weg ist gerade halt einfach ein Server mit einer speziellen Config laufen lassen, gegen den ich dann Playwright-Tests laufen lasse.

Dominik

Dann kann man auch screenshotten, ob das Formular ordentlich an der Stelle sitzt, wo man erwartet in verschiedenen Ansichten.

Ja, das war eine sehr interessante Sache.

Johannes

Aber das war mehr so ein Denkanstoß, fand ich.

Jochen

Ja, es war auch kurz irgendwie so, so jetzt geht's los.

Jochen

Und dann so, alles.

Danke, nächster Doctor.

Jochen

Aber es ist auf jeden Fall ein sehr interessantes Thema und ja, also schon faszinierend, was da alles passiert.

Jochen

Was hat man denn noch so?

Johannes

Wir hatten noch diese unglaublich gute Warstory von Tim Bell.

Jochen

Ah ja, ja.

Über Datenbanken.

Ja.

Johannes

Joachim, da weißt du am meisten, da hast du am meisten Schmerz gehabt in dem Vortrag.

Dominik

Du weißt ja der Rennerbank auch schon so viel.

Jochen

Ja, aber ich hab das, das war jetzt alles total lange her, dass ich viel mit Datenbanken gemacht habe, aber ja, also gerade die Namensgebung.

Jochen

Also dann anfängt, dann haben wir eine Schattenspalte irgendwie aufgemacht und dann Schattentabellen und das, genau, so hatten wir das damals auch genannt.

Jochen

Und ja, ist immer das Problem, wenn man halt irgendwie viele Änderungen gleichzeitig an der Datenbank machen möchte, dann beeinträchtigt sich das halt auch die Leseperformance halt unter Umständen, wenn halt die Tabellen gelockt werden oder allein wenn es schon langsamer wird, ist es halt schon blöd.

Jochen

Und wenn man jetzt halt irgendwie viele Sachen ändern will, dann einmal lockt das die Datenbank, was halt doof ist, unter Umständen und was halt auch doof ist, ist, dass es halt viel mehr Platz braucht und man dann halt hier die Tuppels, also Postgres kopiert immer Tupels, ändert die Datenbank Zeilen nicht wirklich, sondern fügt dann eine neue Zeile hinzu und markiert die alte als die kann jetzt weg.

Jochen

Und dann muss hinterher der Stoppsauger rüberfahren und die alle aufsaugen und das dauert halt auch lange.

Jochen

Und ja, das ist halt eine komplizierte Geschichte.

Jochen

Und wenn man dann halt viele Daten hat und so, dann muss man sich da Strategien überlegen, wie man das hinkriegt, ohne den Produktions-Produktivbetrieb irgendwie kaputt zu machen.

Dominik

Die Strategie, die dann gefahren wurde, war, du baust die Tabelle einfach in neu daneben und replaced das hin dann.

Jochen

Ja, also oder zuerst mal nimmst du eine neue Spalte und hast einen Trigger, der quasi, wenn sich was erst an der Originalspalte ändert, die Änderungen halt überträgt auf die neue Spalte.

Jochen

Und naja, dann irgendwann renamest du die Spalten halt atomar, was halt dann schnell geht.

Jochen

Und ja, dann hast du das halt sozusagen erledigt, diese Migration.

Jochen

Aber ja, das ist halt, du kannst das Ganze dann auch noch auf Tabellen machen, damit fangen sie jetzt gerade an, wo man dann halt eventuell sich das Vacuum sparen kann, wenn man die Tabellen, die man hinterher umbenannt hat, einfach nur droppen kann.

Dominik

Jetzt musst du einfach nochmal kurz das über das Vacuum eingehen, bitte, weil.

Jochen

Ja, also Postgres hat halt so einen Output-Vacum-Prozess, der halt dafür sorgt, dass halt nicht die Platte dann irgendwann vollläuft oder die Datenbank so langsam wird, weil das Working-Set so groß wird und nicht mehr ein Hauptspeicher passt.

Jochen

Und der muss halt ab und zu laufen und die gelöschten Zeilen halt irgendwie tatsächlich wegwerfen.

Dominik

Also der Staubsauger.

Jochen

Ja, genau.

Jochen

Und genau, das ist halt an der Stelle ein Problem, wenn man halt viele Änderungen macht und halt dann viele gelöschte Zeilen erzeugt.

Jochen

Ja.

Jochen

Und deswegen vielleicht der Trick mit der, man macht das halt das in einer Tabelle und dann schmeißt man die andere Tabelle einfach raus.

Dominik

Und du hast gesagt, wenn eine Änderung reinkommt, die dann quasi das, was man gerade eh ändern will, betrifft, dann muss man das dann in beiden Spalten machen, oder?

Jochen

Ja, also am Anfang, bevor man die Spalten umbenennt, hat man einen Trigger, der halt die Änderungen, die in der Originalspalte passieren, halt übertragt auf die neue.

Jochen

Und wenn man das mit Tabellen macht, ist es ein Grund genauso.

Jochen

Und ja,

Dominik

Sarah geht gerade?

Jochen

Ja, vielen, vielen Dank.

Dominik

Also du musst noch Tschüss sagen, Sarah.

Dominik

Du kannst ja nicht ja vorgehen, wir können ja einfach das Thema.

Wenn Sarah gerade los muss.

Sarah

Tschüss, tschüss.

Vielen Dank.

Sarah

Danke.

Sarah

Dankeschön.

Sarah

Vielen Dank.

Ciao.

Jochen

Ja, und genau, das erinnert mich sehr stark an das, was ich früher auch schon mal gemacht hatte, hatten wir da so einen Preisvergleich gearbeitet und da war es auch so, dann kommen dann halt neue Daten von irgendwie in einem Shop oder so, von Amazon, kommt dann irgendwie eine Million neue Angebote oder hat sich irgendwie der Preis geändert oder sonst irgendwas.

Jochen

Und dann muss man halt das irgendwie ändern und hat dann auch das Problem, dass wenn man das halt so sukzessive langsam, dann ist es, dauert es halt ewig, was schlecht ist, weil dann stimmen die Preise eine lange Zeit nicht.

Jochen

Oder macht es alles auf einmal, dann steht das Produktionssystem, was halt auch schlecht ist, weil dann verdient man auch kein Geld mehr.

Jochen

Und da muss man sich halt irgendwie komische Dinge überlegen, bei denen man sich immer so fragt, so, uh, ist das, was ich hier mache, eigentlich?

Jochen

So noch in Übereinstimmung mit der Prophezeiung oder habe ich mich auf irgendeinen dunklen Pfad begeben, ohne Wiederkehr oder so.

Jochen

Und ja, genau das, dieser Wein war bei diesem Tag auch schwörbar.

Johannes

Ja, er hat auch gesagt, dass es, also er hat es so ganz freundlich und fröhlich vorgetragen und dann zwischendurch hat er gesagt, ja, dieser Schritt, der hat zwei Monate gedauert.

Jochen

Ja, genau.

Johannes

Und außerdem haben wir 292 Schritte manuell machen müssen und für 18 Datenbanken.

Johannes

Und das, äh, das war dann so zwischendurch so ein kleiner Aufwacher.

So ein Jagi.

Johannes

Ja, und so ein.

Ah.

So viel manuelle Arbeit ist da drin.

Johannes

Er hat dann ja auch von seiner automatisierten Lösung erzählt.

Johannes

Fand ich auch sehr interessant.

Johannes

Würde ich mich auch so nicht trauen, solche Sachen auf Datenbanken laufen zu lassen, auch für Monate.

Johannes

Ich musste auch nochmal mit ihm sprechen und ihn fragen, wie sie sich dann sicherstellen, dass während dieser Prozess läuft, dass dann keine anderen Sachen passieren.

Johannes

Weil er am Anfang seines Vortrags angedeutet hat, dass sie sehr häufige Deployments auf sehr viele verschiedene Systeme machen.

Johannes

Und ich könnte mir vorstellen, dass wenn da gerade die Schattentabelle befüllt wird, dass man derweil nicht viele andere Migrationen machen sollte.

Johannes

Und da sind ja auch Abhängigkeiten.

Johannes

Ich darf ja den Code erst ändern, wenn diese Schattentabelle fertig und eingesetzt ist.

Johannes

Erst dann darf ich ja den Django-Code anpassen.

Johannes

Das heißt, es ist so ein mehrstufiger Prozess, wo man zuerst die Schattentabelle anlegt und dann befüllt und dann einsetzt und dann erst den Django-Code ändert.

Johannes

Und wie sie diese Reihenfolge sicherstellen, wurde mir aus dem Vortrag nicht ersichtlich.

Johannes

Ich meine, die haben sicherlich Systeme und Schritte da eingeplant, aber das war so für mich nicht sichtbar.

Johannes

Ja, danach haben wir uns den Data-Oriented Django-Vortrag angesehen von Adam Johnson, auch über Datenbanken.

Jochen

Genau, von dem es auch schon zwei, äh, auf jeder Django, vielleicht war das eine Tradition.

Jochen

Er macht auf jeder Django.

Dominik

Vorteiliges war der drei, genau.

Ja, das

Jochen

ist der Bute.

Jochen

Der dritte Teil.

Johannes

Und er hat auch gleichzeitig drei veröffentlichte Bücher schon.

Dominik

Ah, deswegen drei.

Genau.

Jochen

Ja, und ja, das war wie immer super.

Jochen

Er hatte halt einen Haufen Detailinformationen darüber, was man so an NDCs benutzen kann, wie man das in Django macht und so.

Genau, also im Endeffekt ging es darum, Datenbanken Reads schneller zu machen und das Mittel der Wahl des Indizes.

Johannes

Und ich war überrascht, dass es da innerhalb von Django auch so viele Möglichkeiten gibt, das anzupassen.

Ich dachte, da muss man dann immer RosSQL in seine Migrationen reinschreiben.

Hatte ich auch gedacht, das wusste ich.

Johannes

Was ich auch schon gesehen habe.

Aber auch die

Mal gebracht.

Dominik

Wie macht der das dann?

Dominik

Hat der ein Index-Field gemacht oder was?

Dominik

Wo er dann da bestimmte Sachen reingeschlägt?

Johannes

In der Meta-Klasse kannst du Indizes angeben, die für die Tabelle gelten sollen und für das Modell

gelten sollen.

Dominik

Genau, und da hat er dann einen extra Feld gemacht, was der quasi beim Save mitschreibt oder sowas?

Nee.

Dominik

Nein.

Johannes

Nee, das war bei Adam Johnson ging es nur darum, dass du Reads verbesserst, indem du Indizes anlegst, die dann von deinen Abfragen genutzt werden.

Johannes

Da musst du keine extra Felder dafür anlegen, sondern du sagst dem ORM nur, du möchtest auf diesem Modell einen Index haben, der bestimmte Eigenschaften hat und bestimmte Felder abdeckt.

Johannes

Und die Reads benutzen die automatisch.

Johannes

Also du überlässt es quasi der Datenbank dafür zu sorgen, dass die richtigen Indizes benutzt werden und musst dann nicht separat nochmal was machen.

Johannes

Und das ist eigentlich relativ bequem.

Johannes

Die überraschendste Sache in diesem Vortrag war allerdings, dass man die Default-Indizes austauschen kann.

Johannes

Das heißt, auf Primary Keys, auf Foreign Keys und auf Unique-Felder gibt es immer einen Index, braucht die Datenbank, um überhaupt diese Constraints einhalten zu können, aber die kann man ersetzen.

Johannes

Das heißt, wenn man weiß, dass man immer zu einer ID auch den Namen abruft, könnte man das in einen Index reintun und dann diese Abfragen nur über ID und Namen machen, dann würde der Zugriff nur auf den Index.

Jochen

Ja, aber man muss dann auch hinterher so eine Methode wie only auf den Query-Set verwenden.

Johannes

Genau, also man muss es dann auch so ein bisschen anpassen, aber diese Indizes anpassen, dass ich wusste nicht, dass das geht, dass man die Default-Indizes austauschen kann.

Jochen

Ja, oder dass man halt noch zusätzliche Daten in den Index mit reinschreiben kann, die damit ausgelesen werden.

Jochen

Ja, oder was ich auch nicht wusste, war, dass man auf dem Query-Set sagen kann, explain.

Jochen

Und dann auch noch sagen kann, sowas wie, dem gibt man so ein Argument wie JSON gleich True oder so und dann kriegt man ein JSON zurück und dann kann man dieses JSON nehmen und dann in PG-Mustard reinschmeißen.

Johannes

Was allerdings nicht Open Source ist?

Jochen

Nee, stimmt genau.

Und was

Dominik

ist PG-Master?

Senf.

Jochen

Das ist so ein Tool, das dir dabei hilft, deine Statements zu optimieren.

Johannes

Diese Explains sind sehr komische.

Ja, die sind komisch zu lesen.

Das ist sehr schwer zu lesen.

Johannes

Und PG Mastered macht eine Visualisierung erstmal davon, die zeigt dir, welche Tabellen an welchen Schritten wie verarbeitet wurden und was du besser machen könntest.

Johannes

Und das ist, glaube ich, sehr nützlich.

Johannes

Was ich mir dann tatsächlich noch gewünscht hätte, also wenn das ein Open-Source-Tool wäre, dass man das auf seiner Datenbank laufen lassen kann und quasi Explains sich rausfischen kann und dann direkt diese Indizes anlegen lassen kann.

Achso, der Schritt wäre ja tatsächlich gar nicht so kompliziert.

Johannes

Dass der gesagt, hier wäre ein Index nützlich, probier das mal und dann klickst du drauf und dann.

Jochen

Man kann aber auch einmal die Datenbank selber loggen lassen, zum Beispiel, wenn man sagt, also man ab einem bestimmten Threshold von Zeit, ich weiß nicht mehr genau, wie es geht, ich weiß nur, das geht schon.

Jochen

Man kann also Queries, die länger brauchen, als so, log die mal alle weg, damit ich hinterher mir das angucken kann, ob da irgendwas drin ist, wo ich offensichtlich sehe, wie man das verbessern kann.

Jochen

Oder man kann auch sowieso die Dinger immer samplen, irgendwie, dass man halt zumindest einen Teil der Queries halt irgendwo hat, dass man halt ein repräsentatives Sample der Queries, die so auf der Datenbank laufen, halt irgendwo mitloggt.

Jochen

Ja.

Jochen

Aber ja, das müsste man dann auch irgendwie in dieser Exp, dass man dann einen Explained drauf macht, keine Ahnung, das müsste man dann noch wahrscheinlich selber machen, aber ja.

Also da ist noch, da sind noch Lücken im Tooling.

Ja.

Dominik

Genau, jetzt, äh, ja, also jetzt sind wir quasi schon in der Pause und den Rest werden wir wahrscheinlich morgen machen.

Dominik

Ich wollte aber nochmal ganz kurz auf diesen Workshop eingehen.

Dominik

Ich habe da gestern eben so ein bisschen drüber geskippt, einfach weil ich Sarah nicht direkt verjagen wollte.

Dominik

Es war tatsächlich dieses Agent-Ding, wie man das halt macht, ja, ist halt Agents aneinanderhängen und über Prompting.

Dominik

Das ist sehr spannend, dass man halt Agents fragt, was Agents machen sollen mit dem Ergebnis.

Dominik

Und dann halt verschiedene Querys bereits.

Dominik

Das ist aber eigentlich auch so nicht so viel Neues, aber ich weiß nicht.

Dominik

Würdest du das auch so machen?

Jochen

Ich weiß es nicht so genau.

Jochen

Ich habe mich noch nicht so richtig mit diesen ganzen Geschichten beschäftigt.

Jochen

Was ich mir schon mal angucken wollte, es gibt auch von Paydentic, gibt es irgendwie so ein Projekt, irgendwie Pydentic Agents oder ich weiß nicht mehr genau, wie das heißt.

Jochen

Das sah ganz interessant aus, dass man das halt damit so ein bisschen strukturierter machen kann.

Jochen

Aber ich finde das vor allen Dingen blöd, dass das halt die, dass die Namen da wieder so verwirrend sind, weil Agents in dem Kontext, in dem Hype-Kontext quasi oder so wie es Leute jetzt gerade verwenden, halt was ganz anderes bedeutet als im akademischen Bereich und da bedeutet es was ganz anderes, als was Leute vielleicht drunter verstehen und dann, naja, es ist irgendwie schwer zu erklären, was das denn überhaupt ist.

Jochen

Also ich meine, wenn man jetzt einfach sowas sagt wie, ist es halt LLM in a Loop, dann ist es halt relativ klar, er ist okay, es ist halt außenrum ein bisschen Logik und ab und zu fragt man halt ein LLM nach irgendwelchen Regeln.

Jochen

Ja, aber dann ist halt die Frage, ist das jetzt schon wirklich mehr als einfach nur irgendwie, man fragt halt die Apis von LLMs, warum nennt man das jetzt irgendwie?

Jochen

Also wo, was ist das?

Dominik

Ich finde es ganz einfach ein strikte Ausdegen davon.

Dominik

Was ist das denn da?

Jochen

Ja, der seine Identität irgendwie Dinge tut.

Jochen

Und das ist ja meistens dann überhaupt gar nicht so, sondern ja, ja.

Dominik

Ja, aber ich finde, da sollte man vielleicht nicht ganz so streng sein, weil wenn das Ding halt schon dann halt so einen Act-Prozess hat, weil du halt diese Tools mit Python-Funktionalität verbinden kannst, dann ist es ja im Prinzip genau das, was du willst.

Jochen

Du hast halt manche Teile von deinem Code sind halt ein LLM, das halt.

Dominik

Genau, und das heißt, du kannst aber dann tatsächlich genau beim LLM diesen einen, ob man die jetzt Assessor nennt oder wie auch immer, über deinen JSON-Result von dem LLM parsen lassen und sagen kann, welche Funktion denn dann mit welchen Argumenten ausgeführt werden soll.

Dominik

Und dann kannst du halt dann da schon echte APIs anbinden, wo du halt dann eine Autonomie, also so weit herstellen kannst, wie weil du selber mit deinem Tango in der Lage bist, externe Dinge zu steuern.

Dominik

Und das ist ja schon irgendwie Agentik oder sowas.

Jochen

Ja, ist alles noch sehr, sehr neu, aber ja.

Dominik

Ja, also ich finde, das ist schon.

Jochen

Ist aber natürlich schon interessant.

Dominik

Mehr Agentik als andere Dinge.

Jochen

Ja, keine Ahnung.

Jochen

Ansonsten war es das an Vorträgen.

Jochen

Haben wir eigentlich schon gesagt, wo wir sind?

Wir sind hier in diesem

Dominik

Lobby von Phonic.

Jochen

Oder Auphonic hat einen sehr guten Job gemacht, dann hört man nichts mehr davon.

Johannes

Das wissen wir aber jetzt noch nicht.

Jochen

Das wissen wir jetzt noch nicht.

Johannes

Ja, es gibt ja heute noch ein paar Vorträge über Softwarequalität.

Ich habe mir noch ein paar Sachen rausgeschrieben, über eine Python Mystery, über Celery, über die Bound, die wir benutzen.

Und dann natürlich noch Lightning Talks.

Johannes

Bin ich sehr gespannt.

Lightning Talks ist immer gut.

Dominik

Du wolltest auch einen Lightning-Top machen darüber, wie man in fünf Minuten einschlafen kann, habe ich gehört.

Johannes

Das weiß ich noch nicht, ob ich mich traue.

Dominik

Also heute haben gerne direkt am Anfang angeschlafen von dem Lightning Topf.

Johannes

Ich habe ja nur fünf Minuten dann in dem Lightning Talk.

Johannes

Also es könnte ja, wenn dann alle schlafen, dann raube ich natürlich direkt alle Laptops weg.

Johannes

Ja, das, also heute sieht es nicht mehr, aber das ist generell ist das eine Experience.

Ich habe das ja damals in Heidelberg schon gemacht und ich bin ja auch nicht scheu, jetzt was öffentliche Auftritte angeht.

Johannes

Aber das ist generell eine Experience, die kann ich jedem empfehlen.

Johannes

Und wenn jemand die Gelegenheit hat, einen Lightning Talk zu sehen oder zu geben, dann sollte man die auf jeden Fall wahrnehmen.

Und jetzt habe ich mich gerade selber beredet, oder?

Ja.

Dominik

Ich würde sagen, wir können gleich morgen dann über den Lightning Talk von Johannes noch berichten.

Sehr gut.

Cool.

Dominik

Okay, ja, dann haben wir heute tatsächlich eine kurze Folge für euch gehabt.

Dominik

Bei uns gucken wir rein.

Dominik

Vielleicht die Woche wieder, wir wollen, wie gesagt, nichts versprechen.

Jochen

Nee, aber möglicherweise.

Dominik

Feute hat es nochmal Spaß gemacht, so einen kleinen Sneak Peek auf Dijungekon nebenbei.

Dann schaut ihr rein.

Dominik

Hallo der Kaisen-Podcast.de für jedes Feedback.

Dominik

Wünsche euch was.

Dominik

Bis bald.

Tschüss.

Tschüss.