WEBVTT

00:00:00.000 --> 00:00:03.320
Ja, hallo, herzlich willkommen beim Python-Podcast, Episode 63.

00:00:03.320 --> 00:00:06.300
Heute gibt es eine Sonderausgabe.

00:00:06.300 --> 00:00:08.940
Wir sind nämlich auf der JungleCon in Dublin.

00:00:08.940 --> 00:00:10.740
Ja, und wir sind...

00:00:10.740 --> 00:00:11.280
Hallo, Jocken.

00:00:11.280 --> 00:00:13.460
Hallo, Dominik. Johannes, Dominik.

00:00:13.460 --> 00:00:13.780
Johannes.

00:00:13.780 --> 00:00:14.080
Hallo.

00:00:14.080 --> 00:00:15.080
Hi, Sarah.

00:00:15.080 --> 00:00:15.500
Und?

00:00:15.500 --> 00:00:15.720
Hallo.

00:00:15.720 --> 00:00:17.760
Ja, wir haben einen Gast, Sarah.

00:00:17.760 --> 00:00:21.080
Ja, wir wollten euch ein bisschen was erzählen, was hier so passiert

00:00:21.080 --> 00:00:24.100
und das vielleicht auch die nächsten Tage so machen.

00:00:24.100 --> 00:00:25.100
Das wissen wir aber noch nicht ganz genau.

00:00:25.100 --> 00:00:26.180
Wir wollen nichts mehr versprechen.

00:00:26.180 --> 00:00:27.620
Wir haben letztens schon so ein paar Sachen versprochen,

00:00:27.620 --> 00:00:29.460
die ein bisschen spät dran waren beim Release.

00:00:29.920 --> 00:00:30.720
Das machen wir diesmal nicht.

00:00:30.720 --> 00:00:32.760
Sondern wir erzählen euch einfach ein bisschen, wie es hier so ist.

00:00:32.760 --> 00:00:33.960
Lassen den News-Tag diesmal weg.

00:00:33.960 --> 00:00:35.600
Und gucken, was so passiert. Genau.

00:00:35.600 --> 00:00:38.100
Ja, ähm...

00:00:38.100 --> 00:00:39.500
Wie gefällt es euch denn hier in Dublin?

00:00:39.500 --> 00:00:41.740
Also, wir sind ja gestern angekommen

00:00:41.740 --> 00:00:44.980
und wir sind gleich von...

00:00:44.980 --> 00:00:48.600
Am Taxistand hat uns die freundliche Dame darauf hingewiesen,

00:00:48.600 --> 00:00:49.980
dass heute sehr gutes Wetter wäre.

00:00:49.980 --> 00:00:52.540
Weil es nicht regnet.

00:00:52.540 --> 00:00:55.760
Und das hat sich dann hier im Hotel...

00:00:55.760 --> 00:00:57.240
Waren sie auch alle glücklich, dass es nicht regnet?

00:00:57.240 --> 00:00:59.840
Leider hat es dann am Nachmittag doch noch

00:00:59.840 --> 00:01:01.060
angefangen zu regnen.

00:01:01.060 --> 00:01:02.260
Aber ich hab gehört, es war Average.

00:01:02.260 --> 00:01:05.440
Ja, aber es war schon so,

00:01:05.440 --> 00:01:07.480
dass man sieht dann so Regenschlieren

00:01:07.480 --> 00:01:09.040
so im Wind vorbeiziehen.

00:01:09.040 --> 00:01:11.380
Ja, und als es ins Restaurant reingeregnet hat,

00:01:11.380 --> 00:01:12.940
haben sie auch alle gesagt, ach, das ist noch durch.

00:01:12.940 --> 00:01:14.400
Also seid froh, wenn ihr gerade im Trocknen seid.

00:01:14.400 --> 00:01:16.780
Und es hat auch auf den Tisch getropft ein bisschen von oben.

00:01:16.780 --> 00:01:18.300
Alles durchschnittlich.

00:01:18.300 --> 00:01:19.640
Alles irisches Wetter.

00:01:19.640 --> 00:01:22.380
So war unser erster Eindruck gestern.

00:01:22.380 --> 00:01:25.480
Ja, wir sind nämlich auch alle im gleichen Flugzeug gekommen.

00:01:25.480 --> 00:01:26.380
Das fand ich auch sehr lustig.

00:01:26.380 --> 00:01:28.380
Dass da irgendwie so...

00:01:29.760 --> 00:01:32.940
Wie ein Drittel von den Passagieren

00:01:32.940 --> 00:01:34.280
irgendwie wegen der Django-Con

00:01:34.280 --> 00:01:35.580
darüber geflogen ist.

00:01:35.580 --> 00:01:38.020
Ja, aber vielleicht wollen wir auch ein bisschen was

00:01:38.020 --> 00:01:39.280
zur Konferenz erzählen.

00:01:39.280 --> 00:01:41.500
Und tatsächlich, ich glaube, Sarah, du könntest vielleicht anfangen,

00:01:41.500 --> 00:01:43.540
weil du hast auch die Keynote gehalten am Anfang.

00:01:43.540 --> 00:01:44.160
Ja.

00:01:44.160 --> 00:01:46.660
Ja, klar.

00:01:46.660 --> 00:01:49.200
Ich habe eine Keynote gemacht

00:01:49.200 --> 00:01:51.680
und ich habe

00:01:51.680 --> 00:01:53.620
gesprochen über...

00:01:53.620 --> 00:01:55.160
Wie man bei Django mitmachen kann.

00:01:55.160 --> 00:01:55.880
Genau.

00:01:55.880 --> 00:01:58.700
So auf meine Meinung.

00:01:59.680 --> 00:02:00.900
Django braucht mehr

00:02:00.900 --> 00:02:03.440
PR-Reviews, weil

00:02:03.440 --> 00:02:05.160
wir haben so viele

00:02:05.160 --> 00:02:07.500
Pull-Requests und nicht so viele Leute,

00:02:07.500 --> 00:02:09.340
die PR-Reviews machen.

00:02:09.340 --> 00:02:11.580
Und ich glaube,

00:02:11.580 --> 00:02:12.880
es ist...

00:02:12.880 --> 00:02:15.700
Nicht so viele Leute denken,

00:02:15.700 --> 00:02:17.760
das ist ein gutes Ding zu machen.

00:02:17.760 --> 00:02:19.620
Das ist natürlich auch total schwierig,

00:02:19.620 --> 00:02:21.000
weil man traut sich das erstmal gar nicht zu.

00:02:21.000 --> 00:02:22.660
Warum sollte ich jetzt unbedingt

00:02:22.660 --> 00:02:24.980
das große Django-Reviewen machen?

00:02:24.980 --> 00:02:27.380
Aber das, was du gesagt hast,

00:02:27.380 --> 00:02:29.600
macht doch einfach mit. Das ist super.

00:02:29.600 --> 00:02:31.100
Und man kann das auf jeden Fall gebrauchen.

00:02:31.100 --> 00:02:33.240
Wir sollten vielleicht noch sagen, dass

00:02:33.240 --> 00:02:35.680
Sarah der aktuelle Django-Fellow ist

00:02:35.680 --> 00:02:37.300
und dass sie deshalb durchaus

00:02:37.300 --> 00:02:38.800
Autorität hat, darüber zu sprechen,

00:02:38.800 --> 00:02:40.160
wie man da mitmacht.

00:02:40.160 --> 00:02:43.140
Der Django-Fellow ist von der

00:02:43.140 --> 00:02:44.260
Django Software Foundation

00:02:44.260 --> 00:02:47.300
eine Position, wo eine

00:02:47.300 --> 00:02:49.500
Person bezahlt wird, um an Django

00:02:49.500 --> 00:02:50.560
zu arbeiten. Vollzeit.

00:02:50.560 --> 00:02:53.680
Das heißt, wie lange machst du das schon, Sarah?

00:02:53.680 --> 00:02:55.880
Seit ein Jahr.

00:02:55.880 --> 00:02:56.880
Seit einem Jahr schon.

00:02:56.880 --> 00:02:58.880
Das heißt, du hast wirklich genügend Erfahrung,

00:02:58.880 --> 00:02:59.440
zu sagen,

00:02:59.520 --> 00:03:02.660
was gebraucht wird und was nicht gebraucht wird.

00:03:02.660 --> 00:03:04.400
Ja.

00:03:04.400 --> 00:03:06.980
Wir haben ja alle schon

00:03:06.980 --> 00:03:09.000
in so Umgebungen gearbeitet, wo man

00:03:09.000 --> 00:03:11.060
Pull-Requests macht und wo dann Review gemacht wird

00:03:11.060 --> 00:03:12.740
und ich hatte immer das Gefühl,

00:03:12.740 --> 00:03:13.840
dass Review so ein bisschen

00:03:13.840 --> 00:03:16.940
die Schranke ist, dass da

00:03:16.940 --> 00:03:18.680
ein Gatekeeper steht

00:03:18.680 --> 00:03:20.700
und sagt, du darfst oder du darfst nicht.

00:03:20.700 --> 00:03:22.960
Aber es gibt ja noch nach dem Pull-Request

00:03:22.960 --> 00:03:24.880
die Mergers. Genau, das ist

00:03:24.880 --> 00:03:26.600
der erste Sicherheitsmechanismus,

00:03:26.600 --> 00:03:28.920
der mir gut gefallen hat, dass man

00:03:28.920 --> 00:03:29.340
nicht die

00:03:29.340 --> 00:03:30.380
alleinige Verantwortung hat.

00:03:30.380 --> 00:03:32.800
Aber du hast ja schon so ins Plenum gesagt,

00:03:32.800 --> 00:03:34.180
tut das bitte.

00:03:34.180 --> 00:03:35.660
Genau.

00:03:35.660 --> 00:03:38.980
Ich hoffe, dass es gibt mehr

00:03:38.980 --> 00:03:41.060
als ein Mann,

00:03:41.060 --> 00:03:42.460
dass ein Pull-Request

00:03:42.460 --> 00:03:45.020
Review machen und wir können

00:03:45.020 --> 00:03:45.980
viele Leute

00:03:45.980 --> 00:03:49.340
ihre Meinung

00:03:49.340 --> 00:03:50.880
sprechen, dass

00:03:50.880 --> 00:03:53.200
ja, diese Feature

00:03:53.200 --> 00:03:55.060
gefällt mir oder nicht und

00:03:55.060 --> 00:03:57.040
Es gibt ja so verschiedene

00:03:57.040 --> 00:03:58.340
Seiten, von denen man das sehen kann.

00:03:59.260 --> 00:04:01.000
Jeder hat ja so einen eigenen Stil und da gefällt

00:04:01.000 --> 00:04:03.040
anderen Leuten, fällt natürlich andere Dinge

00:04:03.040 --> 00:04:04.480
fallen denen auf. Ja, klar.

00:04:04.480 --> 00:04:06.900
Ja, aber

00:04:06.900 --> 00:04:09.120
gibt es irgendeine

00:04:09.120 --> 00:04:11.120
Erkenntnis darüber, warum

00:04:11.120 --> 00:04:13.140
das vielleicht so wenig, warum Leute das nicht so gerne

00:04:13.140 --> 00:04:14.680
machen oder so, oder kann man das eventuell irgendwie

00:04:14.680 --> 00:04:17.020
leicht, könnte man die Motivation leicht verbessern

00:04:17.020 --> 00:04:19.160
oder so, ich weiß es nicht so genau. Sarah sagt, es dauert zu lang.

00:04:19.160 --> 00:04:22.920
Klar, es gibt,

00:04:22.920 --> 00:04:24.940
es ist schwer zu sagen,

00:04:24.940 --> 00:04:26.900
warum man das

00:04:26.900 --> 00:04:28.500
machen sollte, weil

00:04:28.500 --> 00:04:28.600
ja,

00:04:28.600 --> 00:04:30.040
es gibt

00:04:30.040 --> 00:04:32.840
kein Geld und

00:04:32.840 --> 00:04:35.360
Das siehst du mir jetzt auch nicht.

00:04:35.360 --> 00:04:39.060
Und dann, du bist nicht

00:04:39.060 --> 00:04:40.140
die

00:04:40.140 --> 00:04:42.860
Author von

00:04:42.860 --> 00:04:43.740
dieser Code.

00:04:43.740 --> 00:04:46.900
Der Ruhm und Ehre geht an den Menschen, der diesen Code

00:04:46.900 --> 00:04:47.600
mitgeschrieben hat.

00:04:47.600 --> 00:04:50.660
Ich weiß nicht,

00:04:50.660 --> 00:04:52.780
warum es gibt

00:04:52.780 --> 00:04:54.760
ein paar Leute, das

00:04:54.760 --> 00:04:56.120
zu viel Zeit

00:04:58.520 --> 00:05:00.000
schon, aber

00:05:00.000 --> 00:05:02.300
ob

00:05:02.300 --> 00:05:04.160
man ein paar

00:05:04.160 --> 00:05:05.660
Stunden pro

00:05:05.660 --> 00:05:08.060
Monat

00:05:08.060 --> 00:05:09.700
kann PR

00:05:09.700 --> 00:05:11.260
oder pro Woche

00:05:11.260 --> 00:05:16.520
PR-Reviews

00:05:16.520 --> 00:05:18.340
machen, dann es kann

00:05:18.340 --> 00:05:20.420
so viel für

00:05:20.420 --> 00:05:20.800
Django

00:05:20.800 --> 00:05:24.040
machen. Die Django-Community

00:05:24.040 --> 00:05:25.360
profitiert auf jeden Fall massiv

00:05:25.360 --> 00:05:28.100
von diesem Ding. Ich habe es mir

00:05:28.100 --> 00:05:28.440
tatsächlich,

00:05:28.520 --> 00:05:30.420
überlegt, ob ich nicht mal mir sowas angucken will

00:05:30.420 --> 00:05:32.580
und hatte mich auch gefragt, ob ich mich denn für gut

00:05:32.580 --> 00:05:34.500
genug halte, das Django-Review

00:05:34.500 --> 00:05:36.300
zu machen. Das war tatsächlich auch so eine Hürde.

00:05:36.300 --> 00:05:37.920
Auf jeden Fall.

00:05:37.920 --> 00:05:40.500
Auf jeden Fall. Es gibt einen Endpunkt, also

00:05:40.500 --> 00:05:42.160
code.django-project.com,

00:05:42.160 --> 00:05:44.540
wo man dann halt die offenen

00:05:44.540 --> 00:05:46.540
Pull-Requesting kann und filtern kann nach Dingen,

00:05:46.540 --> 00:05:48.180
die einen interessieren und da kann man sich dann

00:05:48.180 --> 00:05:49.660
mit auseinandersetzen und

00:05:49.660 --> 00:05:52.600
sich einen raussuchen, wo man halt tatsächlich schauen

00:05:52.600 --> 00:05:54.520
kann. Es gibt auch eine Anleitung,

00:05:54.520 --> 00:05:56.720
also ein Contributors-Guide, wo man halt ein bisschen

00:05:56.720 --> 00:05:58.500
sieht, auf was man alles achten soll,

00:05:58.520 --> 00:06:00.600
ich glaube, die Sachen, die man da sieht, sind schon

00:06:00.600 --> 00:06:02.320
durch verschiedene Prozesse gegangen, also

00:06:02.320 --> 00:06:04.000
ihr nennt das Triage, glaube ich.

00:06:04.000 --> 00:06:05.600
Und in diesem Triage

00:06:05.600 --> 00:06:08.660
wird halt geguckt, gibt es schon Tests,

00:06:08.660 --> 00:06:10.340
gibt es schon Dokumentation und

00:06:10.340 --> 00:06:12.120
ist das denn alles einigermaßen ordentlich?

00:06:12.120 --> 00:06:14.520
Und was ich auch spannend herausfordernd

00:06:14.520 --> 00:06:16.560
fand, war, dass es halt verschiedene Teile

00:06:16.560 --> 00:06:18.800
von Django gibt, die alle auch einen unterschiedlichen

00:06:18.800 --> 00:06:20.520
Stil haben, also wahrscheinlich weil unterschiedliche Leute

00:06:20.520 --> 00:06:22.580
daran geschrieben haben, das so herauszufinden,

00:06:22.580 --> 00:06:24.320
dass das schon, ja, interessant ist,

00:06:24.320 --> 00:06:25.500
da so ein bisschen dran zu

00:06:25.500 --> 00:06:27.460
trainieren.

00:06:27.460 --> 00:06:28.420
Es gibt halt so Teile, wo

00:06:28.520 --> 00:06:31.540
die Innereien vom ORM oder so,

00:06:31.540 --> 00:06:33.480
da glaube ich, viele Leute würden da zurückschrecken

00:06:33.480 --> 00:06:34.400
und denken so, oh, oh.

00:06:34.400 --> 00:06:37.540
Da sind vielleicht auch nicht ganz so viele PRs

00:06:37.540 --> 00:06:37.780
offen.

00:06:37.780 --> 00:06:41.400
Genau, das wäre auch interessant. Gibt es da irgendwie Tendenzen,

00:06:41.400 --> 00:06:43.600
wo halt die meisten Pull-Requests

00:06:43.600 --> 00:06:45.640
offen sind, oder ist das

00:06:45.640 --> 00:06:47.400
komplett über die Code-Basis verteilt?

00:06:47.400 --> 00:06:49.500
Es gibt viel für die

00:06:49.500 --> 00:06:50.860
ORM, es ist ein

00:06:50.860 --> 00:06:53.600
sehr...

00:06:53.600 --> 00:06:54.320
Es ist ein großer Teil.

00:06:54.320 --> 00:06:56.240
Ja, genau, und es ist

00:06:56.240 --> 00:06:58.320
ein...

00:06:58.520 --> 00:07:00.360
Ja, ein Kernbaustein.

00:07:00.360 --> 00:07:02.280
Genau, und es gibt ein paar Leute,

00:07:02.280 --> 00:07:04.460
das können diese Reviews

00:07:04.460 --> 00:07:06.420
sehr gut machen. Es gibt

00:07:06.420 --> 00:07:08.340
einen Mann, der heißt Simon

00:07:08.340 --> 00:07:10.000
Charette, und

00:07:10.000 --> 00:07:11.300
er macht

00:07:11.300 --> 00:07:14.640
die besten Reviews

00:07:14.640 --> 00:07:16.200
und viele

00:07:16.200 --> 00:07:18.700
seit...

00:07:18.700 --> 00:07:20.400
Es wird wie jedes

00:07:20.400 --> 00:07:22.460
Tag ein bisschen

00:07:22.460 --> 00:07:24.320
für Django machen.

00:07:24.320 --> 00:07:25.960
Aber

00:07:25.960 --> 00:07:28.400
ich weiß nicht, es gibt...

00:07:28.520 --> 00:07:30.620
ein paar

00:07:30.620 --> 00:07:32.080
PRs für vielleicht

00:07:32.080 --> 00:07:32.920
jedes

00:07:32.920 --> 00:07:35.820
Teil von Django.

00:07:35.820 --> 00:07:38.360
Das heißt, ihr findet auf jeden Fall einen

00:07:38.360 --> 00:07:39.520
Teil, wo ihr noch mitmachen könnt.

00:07:39.520 --> 00:07:41.720
Das ist auf jeden Fall eine gute Sache, ja.

00:07:41.720 --> 00:07:44.680
Und es ist auch eine super wichtige Sache, diese Code-Reviews.

00:07:44.680 --> 00:07:46.400
Also in allen Teams, in denen ich

00:07:46.400 --> 00:07:48.260
bisher gearbeitet habe, waren Code-Reviews

00:07:48.260 --> 00:07:49.620
einfach super wichtig, um

00:07:49.620 --> 00:07:51.280
das Team zusammenzuhalten.

00:07:51.280 --> 00:07:52.740
Gibt es die lieber, oder bekommst du die lieber?

00:07:52.740 --> 00:07:55.120
Das ist eine sehr schwierige Frage,

00:07:55.120 --> 00:07:56.800
weil es sehr auf den Kontext ankommt.

00:07:58.520 --> 00:08:00.300
In den Teams, in denen ich gearbeitet habe,

00:08:00.300 --> 00:08:01.800
habe ich beides gleich gerne gemacht.

00:08:01.800 --> 00:08:04.000
Weil es einfach ein Teil...

00:08:04.000 --> 00:08:04.960
Es war so ein Geben und Nehmen.

00:08:04.960 --> 00:08:08.820
Einerseits

00:08:08.820 --> 00:08:10.960
habe ich natürlich, wenn du ein PR stellst,

00:08:10.960 --> 00:08:12.960
erwartest du ja, gerade in einem kommerziellen

00:08:12.960 --> 00:08:14.720
Kontext, dass du nicht vier Wochen warten musst.

00:08:14.720 --> 00:08:17.100
Und das heißt,

00:08:17.100 --> 00:08:18.620
du möchtest, dass die Kollegen das schnell machen.

00:08:18.620 --> 00:08:20.840
Und umgekehrt verpflichtet es dich dann

00:08:20.840 --> 00:08:23.160
natürlich auch, darauf zu reagieren,

00:08:23.160 --> 00:08:24.660
wenn jemand anders einen PR stellt.

00:08:24.660 --> 00:08:26.780
Das ist in Open Source vielleicht noch ein bisschen anders

00:08:26.780 --> 00:08:28.300
als im globalen Kontext.

00:08:28.520 --> 00:08:30.080
Im professionellen Kontext hast du halt auch

00:08:30.080 --> 00:08:31.960
diese politische Ebene dazwischen, dass man

00:08:31.960 --> 00:08:34.100
seinen Kollegen immer dann direkt mergt,

00:08:34.100 --> 00:08:36.380
weil man mag die ja und möchte keinen Ärger haben.

00:08:36.380 --> 00:08:38.080
Oder man ist nicht allzu kritisch.

00:08:38.080 --> 00:08:40.400
Engere Teams, also wenn du mit zehn Leuten zusammenarbeitest,

00:08:40.400 --> 00:08:41.960
ist das was anderes, als wenn du im Open Source

00:08:41.960 --> 00:08:43.900
mit tausend Leuten zusammenarbeitest.

00:08:43.900 --> 00:08:46.240
Und was man bei einer Firma oder so auch oft machen kann,

00:08:46.240 --> 00:08:48.280
ist, dass man einfach erst mergt und dann reviewt.

00:08:48.280 --> 00:08:50.200
Das ist jetzt bei Django vielleicht eher schlecht.

00:08:50.200 --> 00:08:53.420
Ja, weil wenn

00:08:53.420 --> 00:08:56.060
seine Kollegen etwas

00:08:56.060 --> 00:08:58.040
kaputt machen, dann

00:08:58.040 --> 00:09:00.060
spätestens... Dann holt man sie sich und

00:09:00.060 --> 00:09:01.280
sagt ihnen, du, du, du.

00:09:01.280 --> 00:09:03.720
Das darfst du aber nicht. Mach

00:09:03.720 --> 00:09:05.650
das nicht nochmal. Ja, aber wenn man

00:09:05.650 --> 00:09:07.610
Tests gehabt hätte, ja. Ja, klar. Also in dem Sinne

00:09:07.610 --> 00:09:09.450
ist das Review hier ein viel

00:09:09.450 --> 00:09:11.690
größeres Quality-Gate. Es ist ein viel größeres

00:09:11.690 --> 00:09:13.730
es darf nur Sachen rein,

00:09:13.730 --> 00:09:15.050
die auch reingehören.

00:09:15.050 --> 00:09:17.650
Aber umso wichtiger ist es ja, dass tatsächlich Leute

00:09:17.650 --> 00:09:18.710
kommen und das dann auch tun.

00:09:18.710 --> 00:09:21.590
Und ich glaube auch als Reviewer kann man

00:09:21.590 --> 00:09:23.270
was lernen. Also auch wie man Reviews macht.

00:09:23.270 --> 00:09:25.510
Absolut. Und es ist ein sehr wichtiger

00:09:25.510 --> 00:09:27.610
Skill. Und ich glaube

00:09:27.610 --> 00:09:28.570
aber, dass es nicht, also

00:09:28.570 --> 00:09:31.530
für mich ein Kernpunkt, den ich

00:09:31.530 --> 00:09:33.550
mir bei deinem Vortrag auch gedacht habe, ist, wenn ich

00:09:33.550 --> 00:09:35.370
einen PR stelle, dann habe ich hinterher eine Zahl

00:09:35.370 --> 00:09:37.550
an meinem GitHub-Account dranstehen.

00:09:37.550 --> 00:09:39.430
Wenn ich Review mache, dann

00:09:39.430 --> 00:09:41.110
stecke ich da vielleicht genauso viele Stunden rein.

00:09:41.110 --> 00:09:42.750
Aber das ist unsichtbar.

00:09:42.750 --> 00:09:45.610
Und schon allein dieses

00:09:45.610 --> 00:09:47.470
Number-Goes-Up-Spiel, was man

00:09:47.470 --> 00:09:49.150
da spielen kann, ist ja schon ein Motivator.

00:09:49.150 --> 00:09:50.770
Das ist ja mehr Gamification für deinen

00:09:50.770 --> 00:09:52.850
Review-Account. Ja, ich weiß, dass das bei mir

00:09:52.850 --> 00:09:54.990
funktioniert und ich weiß, dass das bei vielen anderen

00:09:54.990 --> 00:09:57.050
Leuten funktioniert. Und es ist ja auch was

00:09:57.050 --> 00:09:59.050
wert. Es ist ja auch was wert. Das hast du auch

00:09:59.050 --> 00:10:01.130
in deinem Vortrag gesagt. Wenn jemand

00:10:01.130 --> 00:10:03.310
bevor sich die Leute für Summer of Code vorbereiten,

00:10:03.390 --> 00:10:04.770
machen sie schnell noch fünf PRs und sagen dann,

00:10:04.770 --> 00:10:06.110
haha, ich habe da was reingekriegt.

00:10:06.110 --> 00:10:09.110
Aber niemand würde auf die Idee kommen, fünf Reviews

00:10:09.110 --> 00:10:10.810
zu machen, weil da kann man nicht draufzeigen und sagen,

00:10:10.810 --> 00:10:12.590
ich habe Review gemacht.

00:10:12.590 --> 00:10:15.170
Und ich glaube, das ist einer von den

00:10:15.170 --> 00:10:17.070
Motivatoren, die da einfach fehlt. Aber es ist

00:10:17.070 --> 00:10:18.130
auch sowas Unsichtbares.

00:10:18.130 --> 00:10:21.070
Ein PR ist eine Sache und

00:10:21.070 --> 00:10:22.970
die macht man und dann ist die

00:10:22.970 --> 00:10:24.770
dafür immer. Und diese Review ist sowas,

00:10:24.770 --> 00:10:26.990
ich habe dir ein paar Kommentare

00:10:26.990 --> 00:10:29.010
gesagt. Und die werden

00:10:29.010 --> 00:10:30.870
ja auch unter Umständen gar nicht Teil des Repositories,

00:10:30.870 --> 00:10:32.850
sondern Teil des Trucks.

00:10:33.230 --> 00:10:34.330
Das Truck wird dann irgendwann

00:10:34.330 --> 00:10:36.690
irgendwas anderes migriert und dann

00:10:36.690 --> 00:10:39.190
schicken sie dann oder so. Also es ist einfach nicht sichtbar.

00:10:39.190 --> 00:10:41.290
Es ist nicht sichtbar, dass jemand Review gemacht hat.

00:10:41.290 --> 00:10:43.150
Es ist nicht, es gibt keinen

00:10:43.150 --> 00:10:44.970
Punkt, den man dafür kriegt, kein Sternchen.

00:10:44.970 --> 00:10:46.830
Ruhm und Ehre der Community.

00:10:46.830 --> 00:10:48.670
Ja, natürlich, es verbessert das, aber das

00:10:48.670 --> 00:10:50.970
reicht offenbar nicht. Denkst du,

00:10:50.970 --> 00:10:53.090
es gibt etwas, das Django machen

00:10:53.090 --> 00:10:54.110
kann für das?

00:10:54.110 --> 00:10:56.530
Ja, es wurde ja vorhin auch schon vorgeschlagen,

00:10:56.530 --> 00:10:59.050
dass man einfach das sichtbar macht.

00:10:59.050 --> 00:11:01.330
Dass man sichtbar macht, wer Reviews

00:11:01.330 --> 00:11:03.070
macht. Auch bei der

00:11:03.070 --> 00:11:04.710
ersten schon. Du hast auch gesagt,

00:11:04.710 --> 00:11:06.790
es gibt eine Gruppe von Leuten, die das

00:11:06.790 --> 00:11:08.610
Review-Bit haben oder wie auch immer,

00:11:08.610 --> 00:11:09.790
die dann halt da aufgehört sind.

00:11:09.790 --> 00:11:12.350
Aber das ist für mich jetzt als

00:11:12.350 --> 00:11:14.750
Angestellten oder

00:11:14.750 --> 00:11:16.690
als Freelancer, ich habe da nicht genügend Zeit,

00:11:16.690 --> 00:11:17.950
um in diese Gruppe vorzustoßen.

00:11:17.950 --> 00:11:20.830
Das heißt für mich als

00:11:20.830 --> 00:11:22.650
Einzelperson wäre es wichtig, dass

00:11:22.650 --> 00:11:24.150
wenn ich so ein Review mache,

00:11:24.150 --> 00:11:26.290
dass es dann auch sofort irgendwo steht.

00:11:26.290 --> 00:11:28.490
Ich will Instant Gratification haben.

00:11:28.490 --> 00:11:30.830
Und ich glaube,

00:11:30.830 --> 00:11:32.830
wenn man das sichtbar machen würde, dass es das gibt,

00:11:32.910 --> 00:11:34.870
und dass man dafür Punkte

00:11:34.870 --> 00:11:36.230
bekommt, egal welcher Art die sind,

00:11:36.230 --> 00:11:38.890
dann würde das schon deutlich mehr Leute

00:11:38.890 --> 00:11:40.730
anziehen. Ich weiß aber nicht, ob das

00:11:40.730 --> 00:11:43.170
Pull-Request-Review-Leadership-Board

00:11:43.170 --> 00:11:44.610
vielleicht

00:11:44.610 --> 00:11:47.730
umgekehrt

00:11:47.730 --> 00:11:48.710
muss man natürlich auch aufpassen,

00:11:48.710 --> 00:11:50.990
dass das nicht so Leute anzieht, die dann sagen, ja, ja, ja.

00:11:50.990 --> 00:11:51.590
Ja, genau.

00:11:51.590 --> 00:11:54.910
Shai

00:11:54.910 --> 00:11:56.910
Berger hat mir gesagt,

00:11:56.910 --> 00:11:58.970
dass es gab

00:11:58.970 --> 00:12:00.770
ein Ding

00:12:00.770 --> 00:12:02.750
für die Co-Team. Es gibt

00:12:02.750 --> 00:12:04.570
kein Co-Team jetzt, aber

00:12:04.570 --> 00:12:06.050
vorher

00:12:06.050 --> 00:12:08.530
man muss fünf

00:12:08.530 --> 00:12:10.570
PR-Reviews machen und dann

00:12:10.570 --> 00:12:12.410
ihre

00:12:12.410 --> 00:12:14.510
PR kann ein Review

00:12:14.510 --> 00:12:15.970
haben.

00:12:15.970 --> 00:12:18.170
Und das hat

00:12:18.170 --> 00:12:19.890
eigentlich funktioniert,

00:12:19.890 --> 00:12:21.830
Shai hat gesagt.

00:12:21.830 --> 00:12:24.350
Vielleicht das ist auch eine Idee,

00:12:24.350 --> 00:12:26.630
dass wir können das wieder machen oder

00:12:26.630 --> 00:12:27.850
etwas ähnlich.

00:12:27.850 --> 00:12:29.370
Keine Ahnung.

00:12:29.370 --> 00:12:32.590
Es gab ja noch die nächste Idee dann, dass halt viele

00:12:32.590 --> 00:12:34.190
von den erfolgreich

00:12:34.190 --> 00:12:36.490
reviewten Pull-Requests dann irgendwie

00:12:36.490 --> 00:12:38.610
kurz vor Mergen liegen bleiben, weil auch da ja

00:12:38.610 --> 00:12:40.290
niemand da ist, der das hauptberuflich

00:12:40.290 --> 00:12:42.430
macht. Und es halt nur sehr wenige

00:12:42.430 --> 00:12:44.650
Merger gibt. Und wir hatten

00:12:44.650 --> 00:12:46.630
eben die Diskussion draußen

00:12:46.630 --> 00:12:48.590
nochmal. Also ich glaube, Karin Gibson hat gesagt,

00:12:48.590 --> 00:12:49.830
hey, was hältst du denn davon,

00:12:49.830 --> 00:12:52.450
wenn es mehr Leute gibt, die mergen? Und wir haben uns

00:12:52.450 --> 00:12:53.550
draußen unterhalten und gesagt, ja,

00:12:53.550 --> 00:12:56.390
Django ist deswegen toll seit 20 Jahren,

00:12:56.390 --> 00:12:58.470
weil es total stabil ist und der

00:12:58.470 --> 00:13:00.410
Code total super ist und die Dokumentation total

00:13:00.410 --> 00:13:02.290
toll ist. Und ja, dann

00:13:02.290 --> 00:13:04.110
kam halt wieder dieses Thema auf,

00:13:04.110 --> 00:13:05.830
wir merchen das. Und das wäre natürlich

00:13:05.830 --> 00:13:07.030
auf einmal,

00:13:07.030 --> 00:13:09.730
muss man sehr aufpassen, wer das dann ist.

00:13:09.730 --> 00:13:12.190
Weil sonst hast du halt Sachen drin, die dann

00:13:12.190 --> 00:13:14.210
vielleicht nicht so passen. Und wie viele

00:13:14.210 --> 00:13:15.430
von diesen Mergers gibt es? Keine Ahnung.

00:13:15.430 --> 00:13:18.150
Was hältst du davon? Also du hast

00:13:18.150 --> 00:13:19.310
eben gesagt, du weißt es nicht genau.

00:13:19.310 --> 00:13:21.610
Also es gibt jetzt

00:13:21.610 --> 00:13:24.570
vier Mergers.

00:13:24.570 --> 00:13:25.730
Es gibt

00:13:25.730 --> 00:13:27.970
die Fellows, ich und Natalia.

00:13:27.970 --> 00:13:29.690
Ich glaube, es gibt

00:13:29.690 --> 00:13:31.890
Marisch Felisiak und

00:13:31.890 --> 00:13:34.170
Cloud Poros.

00:13:34.170 --> 00:13:36.270
Aber

00:13:36.270 --> 00:13:37.430
die meisten

00:13:37.430 --> 00:13:38.750
Purikers sind

00:13:38.750 --> 00:13:41.290
bei den Fellows.

00:13:41.290 --> 00:13:44.610
Vielleicht

00:13:44.610 --> 00:13:45.450
Marisch

00:13:45.450 --> 00:13:48.070
macht schon

00:13:48.070 --> 00:13:49.650
ein bisschen mehr.

00:13:49.650 --> 00:13:50.790
Aber

00:13:50.790 --> 00:13:54.410
ich weiß nicht, weil es gibt

00:13:54.410 --> 00:13:56.630
die

00:13:56.630 --> 00:13:59.270
Entscheidung,

00:13:59.270 --> 00:14:01.010
dass es ist

00:14:01.010 --> 00:14:01.690
äh,

00:14:01.690 --> 00:14:03.410
wirklich gut.

00:14:03.410 --> 00:14:05.810
Und es ist auch die Entscheidung,

00:14:05.810 --> 00:14:07.810
dass, ähm,

00:14:07.810 --> 00:14:09.590
ob etwas

00:14:09.590 --> 00:14:11.930
falsch gemacht oder etwas

00:14:11.930 --> 00:14:13.310
nicht so gut ist, dass

00:14:13.310 --> 00:14:15.330
du kannst das

00:14:15.330 --> 00:14:17.770
besser machen.

00:14:17.770 --> 00:14:19.670
Und du glaubst, dass, okay,

00:14:19.670 --> 00:14:21.210
vielleicht dieser

00:14:21.210 --> 00:14:24.090
PR-Author

00:14:24.090 --> 00:14:25.750
geht weg,

00:14:25.750 --> 00:14:27.530
weil so viele Leute

00:14:27.530 --> 00:14:29.130
bleiben nicht.

00:14:29.130 --> 00:14:31.670
Dann, ja,

00:14:31.690 --> 00:14:33.110
ich verstehe

00:14:33.110 --> 00:14:35.210
die Code gut genug, dass

00:14:35.210 --> 00:14:37.230
ich glaube, ich kann das

00:14:37.230 --> 00:14:39.550
besser machen oder, ähm,

00:14:39.550 --> 00:14:42.030
und das, keine Ahnung,

00:14:42.030 --> 00:14:44.110
wie viele Leute, ähm,

00:14:44.110 --> 00:14:45.830
würde das auch

00:14:45.830 --> 00:14:47.690
fühlen, weil es ist

00:14:47.690 --> 00:14:49.670
für mich, ich fühle, das ist

00:14:49.670 --> 00:14:51.470
echte Arbeit und

00:14:51.470 --> 00:14:53.670
vielleicht das braucht,

00:14:53.670 --> 00:14:55.690
ja, man sollte

00:14:55.690 --> 00:14:57.130
Geld verdienen.

00:14:57.130 --> 00:15:00.190
Ja, so, keine Ahnung.

00:15:00.190 --> 00:15:01.010
Ähm,

00:15:01.690 --> 00:15:03.070
aber wir können versuchen.

00:15:03.070 --> 00:15:06.030
Das ist so eine Probe im Merch.

00:15:06.030 --> 00:15:07.870
Ich hab das jetzt gemerkt.

00:15:07.870 --> 00:15:09.170
Fandet ihr das auch okay?

00:15:09.170 --> 00:15:12.470
Ja, es ist auf jeden Fall

00:15:12.470 --> 00:15:14.230
ein schwieriges Problem und, ähm,

00:15:14.230 --> 00:15:16.150
das ist wieder so ein, wir haben da ja auch gestern

00:15:16.150 --> 00:15:18.110
drüber gesprochen, ja, die, die technischen Probleme

00:15:18.110 --> 00:15:20.150
sind ja oft relativ einfach,

00:15:20.150 --> 00:15:21.470
also da kommen wir alle klar damit,

00:15:21.470 --> 00:15:24.070
aber dann die organisatorischen und die Menschen

00:15:24.070 --> 00:15:26.110
und die sozialen und die psychologischen und dann

00:15:26.110 --> 00:15:28.170
da ist es

00:15:28.170 --> 00:15:30.210
oft schwieriger als die, als

00:15:30.210 --> 00:15:30.830
der reine Code.

00:15:30.830 --> 00:15:31.670
Und da gab es auch noch,

00:15:31.670 --> 00:15:33.570
den nächsten interessanten Vorschlag

00:15:33.570 --> 00:15:35.750
und zwar, dass man halt die LNMs zur Hilfe nimmt,

00:15:35.750 --> 00:15:38.070
um bestimmte Stufen da vorzubereiten.

00:15:38.070 --> 00:15:39.630
Ähm, ich

00:15:39.630 --> 00:15:41.370
finde die Idee gar nicht schlecht,

00:15:41.370 --> 00:15:43.650
ehrlicherweise, weil ich glaube, wenn man sich so ein bisschen Arbeit

00:15:43.650 --> 00:15:45.050
macht mit so Agents, die

00:15:45.050 --> 00:15:46.870
dann customized sind für

00:15:46.870 --> 00:15:49.110
Pull-Requests oder sowas, dann kommt man da

00:15:49.110 --> 00:15:51.530
relativ weit mit, also auch mit dem Reviewen

00:15:51.530 --> 00:15:52.410
von diesen Pull-Requests.

00:15:52.410 --> 00:15:54.790
Ähm, ja, aber was...

00:15:54.790 --> 00:15:57.410
Naja, das kann natürlich auch so ein Katz-und-Maus-Spiel

00:15:57.410 --> 00:15:59.690
werden dann, weil es wird dann

00:15:59.690 --> 00:16:01.410
möglicherweise, also du hast dann halt,

00:16:01.670 --> 00:16:03.630
LNMs, die generieren PRs und dann

00:16:03.630 --> 00:16:05.610
andere LNMs, die, ähm,

00:16:05.610 --> 00:16:07.850
quasi, die weisen die dann ab und dann

00:16:07.850 --> 00:16:09.510
wird, kann man auf beiden Seiten aufrüsten,

00:16:09.510 --> 00:16:11.010
aber irgendwie hilft das dann auch.

00:16:11.010 --> 00:16:13.550
Ja, vielleicht kommt ja dann tatsächlich ein ordentlicher Pull-Request bei raus.

00:16:13.550 --> 00:16:14.850
Also das ist ja eigentlich das, was du willst.

00:16:14.850 --> 00:16:16.750
Von wem der dann kommt, ist ja dann fast wurscht.

00:16:16.750 --> 00:16:19.110
Ist auch egal, genau, wenn es stimmen würde hinterher, ja,

00:16:19.110 --> 00:16:21.490
dann wäre es auch ein bisschen egal. Ja, ich weiß es nicht,

00:16:21.490 --> 00:16:22.990
vielleicht muss man es einfach ausprobieren, keine Ahnung.

00:16:22.990 --> 00:16:23.810
Ja.

00:16:23.810 --> 00:16:27.570
Vielleicht das, kleiner Übergang von dem

00:16:27.570 --> 00:16:29.610
Thema von Sarah, weil es gab noch so ein Workshop,

00:16:29.610 --> 00:16:31.650
wie man Agents macht, das war auch gar nicht,

00:16:31.650 --> 00:16:32.190
nicht uninteressant.

00:16:32.190 --> 00:16:35.610
Es war nicht ganz so viel

00:16:35.610 --> 00:16:37.070
Neues zu dem, was wir eh schon so machen,

00:16:37.070 --> 00:16:39.690
aber es ist schon spannend,

00:16:39.690 --> 00:16:41.050
wie man sowas,

00:16:41.050 --> 00:16:43.330
einen Agenten dazu bringt. Wie wurde denn da

00:16:43.330 --> 00:16:45.410
Agents eigentlich definiert? Also meine Definition

00:16:45.410 --> 00:16:47.510
vorweg wäre einfach so, LLM

00:16:47.510 --> 00:16:48.230
in a Loop.

00:16:48.230 --> 00:16:50.890
Ja, okay, genau.

00:16:50.890 --> 00:16:53.550
Das war ziemlich genau das, was wir da

00:16:53.550 --> 00:16:55.390
gemacht haben, also einen Loop bauen für

00:16:55.390 --> 00:16:57.210
LNMs, die dann verschiedene Prozesse

00:16:57.210 --> 00:16:59.290
durchgehen können und dann halt Funktionen aufrufen

00:16:59.290 --> 00:17:01.630
und Scraphyper dann halt für einen

00:17:01.630 --> 00:17:03.570
eine Beantwortung, eine Frage, einen mehrstufigen

00:17:03.570 --> 00:17:05.550
Agentenprozess, um bestimmte Sachen

00:17:05.550 --> 00:17:07.130
dann to buy sind zu können.

00:17:07.130 --> 00:17:09.390
Was man halt auch für so ein Pull-Request machen könnte.

00:17:09.390 --> 00:17:11.470
Könnte halt gucken, hey, sind die Docs drin

00:17:11.470 --> 00:17:13.570
und so weiter, sind die denn da, hast du einen Verbesserungsvorschlag

00:17:13.570 --> 00:17:15.510
für die Docs, gehst du zum nächsten Test, sind die Tests drin,

00:17:15.510 --> 00:17:17.690
gehen die Tests durch, in welchem Kontext gehen die Tests, sind die Tests

00:17:17.690 --> 00:17:19.710
negativ, ja, also sind die Sachen,

00:17:19.710 --> 00:17:21.710
die zum Beispiel rausgeflogen sind, gehen die Tests

00:17:21.710 --> 00:17:23.350
da jetzt auch kaputt und wie ist das

00:17:23.350 --> 00:17:25.450
und wenn du was verbesserst, wenn du was fixt, hast du

00:17:25.450 --> 00:17:27.450
einen Test geschrieben vorher, der zeigt, dass das kaputt ist und ist

00:17:27.450 --> 00:17:29.530
der Test danach grün, solche Sachen. Und

00:17:29.530 --> 00:17:31.410
das kann man, glaube ich, durchaus in so einem

00:17:31.410 --> 00:17:33.610
mehrstufigen Agenten beibringen.

00:17:33.610 --> 00:17:35.110
Aber auch das ist halt wieder Arbeit, ja.

00:17:35.110 --> 00:17:36.750
Wieder dabei sind so, hey,

00:17:36.750 --> 00:17:39.530
wir brauchen tatsächlich ja für

00:17:39.530 --> 00:17:41.410
diese Open-Source-Geschichte so ein bisschen

00:17:41.410 --> 00:17:43.530
mehr Funding. Und das ist auch die Frage, woher das

00:17:43.530 --> 00:17:45.090
kommt. Also da gibt es so

00:17:45.090 --> 00:17:47.430
verschiedene Gates, die wir ja kennen.

00:17:47.430 --> 00:17:49.470
Ja, aber alle unsere Zuhörer werden ja jetzt

00:17:49.470 --> 00:17:51.210
gleich losgehen und PRs reviewen

00:17:51.210 --> 00:17:53.070
und auch an die

00:17:53.070 --> 00:17:55.070
DSF spenden. Genau.

00:17:55.070 --> 00:17:57.710
Wir den Spenden-Link

00:17:57.710 --> 00:17:59.490
putzen wir auch, meinte ich. Oh ja, den sollte man da

00:17:59.490 --> 00:17:59.510
auch.

00:17:59.510 --> 00:18:01.590
Ja, ich habe tatsächlich

00:18:01.590 --> 00:18:03.570
ab und zu mal so die CTOs

00:18:03.570 --> 00:18:05.490
oder die ein bisschen anderes Level noch

00:18:05.490 --> 00:18:07.430
versucht zu bequatschen für, hey, wir

00:18:07.430 --> 00:18:09.450
benutzt noch die ganze Zeit so Open-Source-Software. Wie wäre es denn,

00:18:09.450 --> 00:18:11.370
wenn ihr von dem Budget so ein bisschen wieder zurückgebt?

00:18:11.370 --> 00:18:13.210
Und die meiste Antwort war so, ja, warum denn?

00:18:13.210 --> 00:18:15.470
So, okay, ja,

00:18:15.470 --> 00:18:17.270
weil ohne das würde es nicht funktionieren.

00:18:17.270 --> 00:18:19.350
Und ich habe das Gefühl, dass man bei den

00:18:19.350 --> 00:18:21.150
kapitalistischen Organisationen da so ein bisschen

00:18:21.150 --> 00:18:23.330
auf wenig Gegenliebe stößt, aber

00:18:23.330 --> 00:18:24.830
vielleicht bei den staatlichen irgendwie.

00:18:24.830 --> 00:18:26.750
Zumindest jetzt, wenn

00:18:26.750 --> 00:18:29.330
bestimmte Regionen entdecken, dass das

00:18:29.330 --> 00:18:31.270
ganz gut ist, wenn man unabhängige Software

00:18:31.270 --> 00:18:32.830
hat, die man auch nutzen kann.

00:18:32.830 --> 00:18:34.790
Das ist vielleicht so ein bisschen die Idee.

00:18:34.790 --> 00:18:37.250
Aber auch das wäre so eine Sache, ne? Gibt es da

00:18:37.250 --> 00:18:38.750
bei Django jemanden, der da aktiv

00:18:38.750 --> 00:18:40.910
Fundraising in diese Richtung macht?

00:18:40.910 --> 00:18:43.150
Ja, Carlton. Carlton spricht schon lange davon,

00:18:43.150 --> 00:18:44.650
dass er...

00:18:44.650 --> 00:18:47.070
Klar, es gibt ein Team, es gibt

00:18:47.070 --> 00:18:49.110
die Fundraising Working Group

00:18:49.110 --> 00:18:50.570
und ich glaube,

00:18:50.570 --> 00:18:52.910
sie haben

00:18:52.910 --> 00:18:54.870
ein paar Ideen, dass

00:18:54.870 --> 00:18:57.010
die Django Software Foundation

00:18:57.010 --> 00:18:58.730
machen könnten.

00:18:58.730 --> 00:19:00.910
Aber

00:19:00.910 --> 00:19:03.510
es ist

00:19:03.510 --> 00:19:05.130
nicht so lang

00:19:05.130 --> 00:19:07.070
seit dieser Team

00:19:07.070 --> 00:19:08.290
gegründet war, so

00:19:08.290 --> 00:19:10.710
keine Ahnung, was

00:19:10.710 --> 00:19:12.890
sie machen jetzt.

00:19:12.890 --> 00:19:13.970
Aber hoffentlich

00:19:13.970 --> 00:19:16.990
wir haben ein paar Sponsors

00:19:16.990 --> 00:19:18.890
und jedes Jahr

00:19:18.890 --> 00:19:21.110
ich glaube, Catherine

00:19:21.110 --> 00:19:23.390
von der DSF

00:19:23.390 --> 00:19:24.830
wird wieder

00:19:24.830 --> 00:19:26.290
mit dieser Firma

00:19:26.290 --> 00:19:28.130
sprechen und

00:19:28.130 --> 00:19:30.490
sie möchten wieder

00:19:30.490 --> 00:19:31.830
sponsoren.

00:19:31.830 --> 00:19:34.910
Ja, aber es ist

00:19:34.910 --> 00:19:36.410
ein schweres Thema,

00:19:36.410 --> 00:19:36.650
aber

00:19:36.650 --> 00:19:40.710
ich glaube, die Sponsoren, meistens sind das halt auch

00:19:40.710 --> 00:19:42.410
Leute, die man dann auch persönlich gut kennt

00:19:42.410 --> 00:19:44.890
und wo man halt eine Beziehung über ein paar

00:19:44.890 --> 00:19:46.490
Jahre oder aufgebaut hat schon.

00:19:46.490 --> 00:19:48.410
Was eigentlich ein bisschen schade ist,

00:19:48.410 --> 00:19:50.410
weil es nicht so diesen Public-Gedanken gibt.

00:19:50.410 --> 00:19:52.650
Ja, aber im Großen und Ganzen steht ja

00:19:52.650 --> 00:19:54.610
die Django Software von Deutschland ja schon vergleichsweise gut.

00:19:54.610 --> 00:19:56.750
Die kann sich ja schon zwei Leute

00:19:56.750 --> 00:19:57.810
leisten, die

00:19:57.810 --> 00:20:00.710
also nicht Vollzeit, aber anderthalb Vollzeit

00:20:00.710 --> 00:20:02.430
Personen und das ist ja für

00:20:02.430 --> 00:20:04.110
eine Open-Source-Stiftung

00:20:04.110 --> 00:20:05.630
riesig.

00:20:06.650 --> 00:20:08.490
Ich wüsste nicht viele anderen Stiftungen

00:20:08.490 --> 00:20:10.490
oder viele anderen Frameworks, die sich so

00:20:10.490 --> 00:20:12.270
viel Betreuung leisten können.

00:20:12.270 --> 00:20:14.610
Also der Erfolg ist ja schon

00:20:14.610 --> 00:20:15.950
da, der muss nur noch größer werden.

00:20:15.950 --> 00:20:18.490
Ja, es gibt natürlich so den anderen Weg,

00:20:18.490 --> 00:20:20.350
so Laravel oder sowas, die dann

00:20:20.350 --> 00:20:22.390
auf einzelne Leute mit viel Geld

00:20:22.390 --> 00:20:24.110
gesetzt haben und das dann verkaufen, um

00:20:24.110 --> 00:20:25.870
dann so einzelne

00:20:25.870 --> 00:20:28.850
Microservices irgendwie da zu monetarisieren.

00:20:28.850 --> 00:20:30.810
Aber ich finde es

00:20:30.810 --> 00:20:31.930
ganz gut, dass wir das nicht so machen.

00:20:31.930 --> 00:20:34.710
Ja, was gab es denn heute noch

00:20:34.710 --> 00:20:35.910
so alles, was hatten wir denn noch?

00:20:35.910 --> 00:20:36.470
Ja, ich glaube, wir haben noch ein paar Sachen, die wir noch nicht so gut haben.

00:20:36.470 --> 00:20:36.490
Ja, ich glaube, wir haben noch ein paar Sachen, die wir noch nicht so gut haben.

00:20:36.490 --> 00:20:36.630
Ja, ich glaube, wir haben noch ein paar Sachen, die wir noch nicht so gut haben.

00:20:36.650 --> 00:20:38.250
Wir waren noch die ganze Zeit in der Mainhall

00:20:38.250 --> 00:20:39.730
und haben euch die Talks angeguckt.

00:20:39.730 --> 00:20:42.170
Das war auch sehr nett.

00:20:42.170 --> 00:20:44.550
Ja, das mache ich auch seit einiger Zeit

00:20:44.550 --> 00:20:45.970
sehr, sehr gern irgendwie.

00:20:45.970 --> 00:20:48.510
Ja, das wurde da auch angesprochen mit

00:20:48.510 --> 00:20:49.470
EdgeMix.

00:20:49.470 --> 00:20:52.090
Ich habe eher sonst ein bisschen Probleme, das wirklich zu testen,

00:20:52.090 --> 00:20:54.370
dass das alles funktioniert und dann muss man halt auch

00:20:54.370 --> 00:20:55.510
so End-to-End-Tests machen.

00:20:55.510 --> 00:20:58.590
Und Playwright funktioniert da echt super.

00:20:58.590 --> 00:20:59.990
Also, genau.

00:20:59.990 --> 00:21:02.330
Wir hatten kurz vorher die Frage,

00:21:02.330 --> 00:21:04.330
macht denn Playwright über

00:21:04.330 --> 00:21:06.490
PyTest dann einen Server auf, den es dann richtig

00:21:06.490 --> 00:21:06.930
benutzen kann?

00:21:06.930 --> 00:21:09.010
In den Beispielen jetzt, da haben sie das

00:21:09.010 --> 00:21:10.390
so gemacht, aber dann

00:21:10.390 --> 00:21:12.650
hat der, wie hieß er noch?

00:21:12.650 --> 00:21:13.910
Jakob?

00:21:13.910 --> 00:21:16.990
Er hat dann auch gesagt, ja, das hat er jetzt so

00:21:16.990 --> 00:21:18.830
gezeigt, aber das macht er normalerweise nicht so und ich mache das

00:21:18.830 --> 00:21:20.350
normalerweise auch nicht so, sondern

00:21:20.350 --> 00:21:22.950
ich lasse einen Server speziell dafür

00:21:22.950 --> 00:21:24.950
dann laufen, gegen den ich dann Playwright

00:21:24.950 --> 00:21:25.550
laufen lasse.

00:21:25.550 --> 00:21:28.550
Ich weiß nicht so genau.

00:21:28.550 --> 00:21:30.870
Ich habe noch nicht so wirklich herausgefunden, wie man das am besten

00:21:30.870 --> 00:21:32.050
macht. Aber

00:21:32.050 --> 00:21:34.930
mein Weg ist gerade halt

00:21:34.930 --> 00:21:35.610
einfach ein

00:21:35.610 --> 00:21:36.470
Server,

00:21:36.490 --> 00:21:38.130
aber mit einer speziellen Config laufen lassen,

00:21:38.130 --> 00:21:40.450
gegen den ich dann

00:21:40.450 --> 00:21:42.330
Playwright-Tests laufen lasse.

00:21:42.330 --> 00:21:44.470
Dann kann man auch screenshotten, ob das Formular

00:21:44.470 --> 00:21:46.470
ordentlich an der Stelle sitzt, wo man es erwartet in den verschiedenen

00:21:46.470 --> 00:21:47.470
Ansichten.

00:21:47.470 --> 00:21:50.610
Ja, das war eine sehr interessante Sache,

00:21:50.610 --> 00:21:52.250
aber das war mehr so ein Denkanstoß,

00:21:52.250 --> 00:21:53.690
fand ich. Ja, das war auch

00:21:53.690 --> 00:21:55.950
kurz irgendwie so,

00:21:55.950 --> 00:21:57.570
jetzt geht's los und dann so.

00:21:57.570 --> 00:22:00.090
Danke, nächster Talk.

00:22:00.090 --> 00:22:02.270
Aber es ist auf jeden Fall ein sehr interessantes

00:22:02.270 --> 00:22:04.190
Thema und ja, also es ist schon faszinierend,

00:22:04.190 --> 00:22:04.890
was da alles passiert.

00:22:04.890 --> 00:22:06.430
Was hat man denn noch?

00:22:06.490 --> 00:22:07.630
Wir hatten noch

00:22:07.630 --> 00:22:09.850
diese unglaublich gute

00:22:09.850 --> 00:22:12.110
War-Story von Tim Bell

00:22:12.110 --> 00:22:14.010
über Datenbanken.

00:22:14.010 --> 00:22:16.650
Jochen, da weißt du am meisten

00:22:16.650 --> 00:22:18.010
Schmerz gehabt in dem Vortrag.

00:22:18.010 --> 00:22:19.570
Du weißt ja von Datenbanken auch schon so viel.

00:22:19.570 --> 00:22:21.970
Ja, aber das ist natürlich jetzt alles total lange her,

00:22:21.970 --> 00:22:23.490
dass ich viel mit Datenbanken gemacht habe, aber

00:22:23.490 --> 00:22:25.150
gerade die Namensgebung.

00:22:25.150 --> 00:22:27.910
Dann haben wir eine

00:22:27.910 --> 00:22:30.270
Schattenspalte irgendwie aufgemacht

00:22:30.270 --> 00:22:32.250
und dann Schattentabellen und genau so

00:22:32.250 --> 00:22:33.130
hatten wir das damals auch genannt.

00:22:33.130 --> 00:22:35.090
Und ja, das ist immer das Problem,

00:22:35.090 --> 00:22:36.130
wenn man halt irgendwie,

00:22:36.490 --> 00:22:38.530
viele Änderungen gleichzeitig an der Datenbank

00:22:38.530 --> 00:22:40.610
machen möchte, dann beeinträchtigt

00:22:40.610 --> 00:22:41.570
sich das halt auch die

00:22:41.570 --> 00:22:44.450
Leseperformance halt unter Umständen,

00:22:44.450 --> 00:22:46.070
wenn halt die Tabellen gelockt werden oder

00:22:46.070 --> 00:22:48.130
allein, wenn es schon langsamer wird, ist halt schon blöd.

00:22:48.130 --> 00:22:50.490
Und wenn man jetzt halt irgendwie

00:22:50.490 --> 00:22:52.670
viele Sachen ändern will, dann einmal

00:22:52.670 --> 00:22:54.770
ja, lockt das die Datenbank, was halt doof ist.

00:22:54.770 --> 00:22:56.330
Unter Umständen und

00:22:56.330 --> 00:22:58.490
was halt auch doof ist, ist, dass es halt viel mehr

00:22:58.490 --> 00:23:00.470
Platz braucht und man dann halt hier die

00:23:00.470 --> 00:23:02.090
Tupels, also Postgres,

00:23:02.090 --> 00:23:03.890
kopiert immer Tupels, ändert

00:23:03.890 --> 00:23:06.430
die Datenbankzeilen nicht,

00:23:06.490 --> 00:23:08.350
wirklich, sondern fügt dann

00:23:08.350 --> 00:23:10.150
neue Zeilen hinzu und markiert die alte als

00:23:10.150 --> 00:23:12.230
die kann jetzt weg. Und dann muss hinterher der

00:23:12.230 --> 00:23:14.090
Staubsauger rüberfahren und die alle aufsaugen

00:23:14.090 --> 00:23:15.330
und das dauert halt auch lange.

00:23:15.330 --> 00:23:18.230
Und ja, das ist halt eine

00:23:18.230 --> 00:23:20.130
komplizierte Geschichte. Und wenn man halt

00:23:20.130 --> 00:23:21.750
viele Daten hat und so, dann

00:23:21.750 --> 00:23:24.170
ja, dann muss man sich da

00:23:24.170 --> 00:23:26.130
Strategien überlegen, wie man das hinkriegt, ohne den

00:23:26.130 --> 00:23:28.350
Produktions-, Produktivbetrieb irgendwie kaputt zu machen.

00:23:28.350 --> 00:23:30.330
Die Strategie, die dann gefahren wurde, war,

00:23:30.330 --> 00:23:32.210
du baust die Tabelle einfach in neu

00:23:32.210 --> 00:23:34.130
daneben und

00:23:34.130 --> 00:23:36.370
replacest das dann? Ja, also oder

00:23:36.370 --> 00:23:37.910
zuerst mal nimmst du eine neue Spalte

00:23:37.910 --> 00:23:40.230
und hast einen Trigger, der quasi, wenn

00:23:40.230 --> 00:23:42.690
sich was erst an der Originalspalte

00:23:42.690 --> 00:23:44.450
ändert, die Änderungen halt überträgt

00:23:44.450 --> 00:23:46.530
auf die neue Spalte

00:23:46.530 --> 00:23:47.450
und

00:23:47.450 --> 00:23:49.470
naja, dann irgendwann

00:23:49.470 --> 00:23:52.130
renamest du die Spalten halt

00:23:52.130 --> 00:23:53.870
atomar, was halt dann schnell geht

00:23:53.870 --> 00:23:55.290
und

00:23:55.290 --> 00:23:57.630
ja, dann hast du das halt sozusagen

00:23:57.630 --> 00:24:00.090
erledigt, diese Migration, aber

00:24:00.090 --> 00:24:02.270
ja, das ist halt, du kannst das Ganze dann

00:24:02.270 --> 00:24:04.190
auch noch auf Tabellen machen, damit fangen sie jetzt gerade

00:24:04.190 --> 00:24:06.190
an, wo man dann halt

00:24:06.250 --> 00:24:07.970
eventuell sich das Vacuum sparen kann,

00:24:07.970 --> 00:24:09.690
wo man die Tabellen, die man hinterher

00:24:09.690 --> 00:24:12.350
umbenannt hat, einfach nur joggen kann.

00:24:12.350 --> 00:24:14.390
Jetzt musst du einfach nochmal kurz das Überlass-Vacuum

00:24:14.390 --> 00:24:16.230
eingehen, bitte, weil... Ja, also Postgres hat

00:24:16.230 --> 00:24:18.430
halt so einen Auto-Vacuum-Prozess,

00:24:18.430 --> 00:24:20.470
der halt dafür sorgt, dass halt

00:24:20.470 --> 00:24:22.270
nicht die Platte dann irgendwann vollläuft oder die Datenbank

00:24:22.270 --> 00:24:24.210
so langsam wird, weil das Working-Set zu groß wird und nicht mehr

00:24:24.210 --> 00:24:26.330
in den Hauptspeicher passt. Und der muss halt

00:24:26.330 --> 00:24:28.370
ab und zu laufen und die gelöschten

00:24:28.370 --> 00:24:30.490
Zeilen halt irgendwie

00:24:30.490 --> 00:24:32.430
tatsächlich wegwerfen. Also der Staubsauger?

00:24:32.430 --> 00:24:33.910
Ja, genau. Und

00:24:33.910 --> 00:24:36.030
genau, das ist halt,

00:24:36.130 --> 00:24:38.070
an der Stelle ein Problem, wenn man halt viele Änderungen macht

00:24:38.070 --> 00:24:40.230
und halt dann viele gelöschte Zeilen erzeugt.

00:24:40.230 --> 00:24:41.970
Ja, und deswegen

00:24:41.970 --> 00:24:44.030
vielleicht der Trick mit der, man macht das halt

00:24:44.030 --> 00:24:46.290
in einer Tabelle

00:24:46.290 --> 00:24:47.610
und dann schmeißt man die andere Tabelle einfach mal weg.

00:24:47.610 --> 00:24:50.110
Und du hast gesagt, wenn eine Änderung reinkommt, die dann quasi

00:24:50.110 --> 00:24:52.070
das, was man gerade eh ändern will, betrifft, dann muss man das

00:24:52.070 --> 00:24:53.990
dann in beiden Spalten machen, oder?

00:24:53.990 --> 00:24:55.630
Ja, also am Anfang,

00:24:55.630 --> 00:24:58.170
bevor man die Spalten umbenennt,

00:24:58.170 --> 00:25:00.050
hat man einen Trigger, der halt die Änderungen, die

00:25:00.050 --> 00:25:02.170
in der Originalspalte passieren, halt überträgt

00:25:02.170 --> 00:25:04.170
auf die neue. Und wenn

00:25:04.170 --> 00:25:06.010
man das mit Tabellen macht, ist es ein Suchengrüne genauso.

00:25:06.010 --> 00:25:07.430
Genau so. Und

00:25:07.430 --> 00:25:09.250
ja.

00:25:09.250 --> 00:25:14.070
Sarah, geht

00:25:14.070 --> 00:25:15.550
gerade? Ja, vielen, vielen Dank.

00:25:15.550 --> 00:25:17.230
Du musst noch Tschüss sagen, Sarah.

00:25:17.230 --> 00:25:19.970
Du kannst ja nicht einfach reden, wir können ja einfach das Thema

00:25:19.970 --> 00:25:21.930
unterbrechen, wenn Sarah gerade

00:25:21.930 --> 00:25:23.410
das muss. Tschüss. Vielen Dank.

00:25:23.410 --> 00:25:25.790
Danke, Sarah. Dankeschön. Vielen Dank.

00:25:25.790 --> 00:25:26.210
Ciao.

00:25:26.210 --> 00:25:30.070
Ja, und genau, das erinnert mich sehr stark

00:25:30.070 --> 00:25:31.850
an das, was ich früher auch schon mal

00:25:31.850 --> 00:25:33.730
gemacht hatte, da habe ich so einen Preisvergleich gearbeitet

00:25:33.730 --> 00:25:35.710
und da war es auch so, dann kommen dann halt,

00:25:35.890 --> 00:25:37.930
äh, neue Daten von irgendwie einem Shop

00:25:37.930 --> 00:25:39.990
oder so, von Amazon kommt dann irgendwie eine Million neue Angebote

00:25:39.990 --> 00:25:41.950
oder, ah, hat sich irgendwie der Preis geändert oder sonst

00:25:41.950 --> 00:25:44.070
irgendwas und dann muss man halt das irgendwie ändern

00:25:44.070 --> 00:25:45.850
und, äh, hat dann auch das Problem, dass wenn man

00:25:45.850 --> 00:25:47.790
das halt so sukzessive

00:25:47.790 --> 00:25:49.570
langsam, dann ist es, dauert es halt ewig,

00:25:49.570 --> 00:25:51.810
äh, was schlecht ist, weil dann stimmen die Preise eine lange Zeit

00:25:51.810 --> 00:25:53.810
nicht oder man macht es alles auf einmal, dann steht

00:25:53.810 --> 00:25:55.810
das Produktionssystem, was halt auch schlecht ist, weil

00:25:55.810 --> 00:25:57.990
dann, ja, dann verdient man

00:25:57.990 --> 00:25:59.790
auch kein Geld mehr und dann muss man sich halt

00:25:59.790 --> 00:26:01.870
irgendwie komische Dinge überlegen, bei denen man sich immer so

00:26:01.870 --> 00:26:03.770
fragt, so, uh, ist das, was ich hier mache

00:26:03.770 --> 00:26:05.770
eigentlich so noch in Übereinstimmung mit der Prophezeiung

00:26:05.770 --> 00:26:07.870
oder habe ich mich auf irgendeinen dunklen

00:26:07.870 --> 00:26:09.950
Pfad begeben, ohne Wiederkehr oder so

00:26:09.950 --> 00:26:11.790
und, ja, genau das,

00:26:11.790 --> 00:26:13.830
dieses, dieser Vibe war bei

00:26:13.830 --> 00:26:15.110
diesem Tag auch spürbar.

00:26:15.110 --> 00:26:17.930
Ja, er hat auch gesagt, dass es,

00:26:17.930 --> 00:26:19.230
äh, also er hat das so ganz

00:26:19.230 --> 00:26:21.730
freundlich und fröhlich vorgetragen und dann zwischendurch

00:26:21.730 --> 00:26:23.790
hat er gesagt, ja, dieser Schritt, der hat

00:26:23.790 --> 00:26:25.650
zwei Monate gedauert. Ja, genau, ja,

00:26:25.650 --> 00:26:27.550
solche, ja, das ist...

00:26:27.550 --> 00:26:29.750
Und außerdem haben wir 292 Schritte

00:26:29.750 --> 00:26:31.970
manuell machen müssen für 18 Datenbanken

00:26:31.970 --> 00:26:33.730
und das, äh, das war dann so ein zwischendurch

00:26:33.730 --> 00:26:35.650
so ein kleiner Aufwacher, so ein

00:26:35.650 --> 00:26:37.270
Jacki.

00:26:37.270 --> 00:26:39.950
Ja, so ein...

00:26:39.950 --> 00:26:40.130
Ah!

00:26:40.130 --> 00:26:43.410
So viel, so viel manuelle Arbeit ist da drin.

00:26:43.410 --> 00:26:45.690
Ja. Er hat dann ja auch von seiner

00:26:45.690 --> 00:26:47.610
automatisierten Lösung erzählt.

00:26:47.610 --> 00:26:49.650
Ja. Ähm, fand ich auch sehr

00:26:49.650 --> 00:26:51.770
interessant. Würde ich

00:26:51.770 --> 00:26:53.670
mich auch so nicht trauen, solche Sachen

00:26:53.670 --> 00:26:55.650
auf Datenbanken laufen zu lassen, auch für Monate.

00:26:55.650 --> 00:26:57.610
Ja. Ähm, ich musste auch noch mal mit ihm

00:26:57.610 --> 00:26:59.350
sprechen und ihn fragen, wie sie

00:26:59.350 --> 00:27:01.750
sicherstellen, dass während dieser Prozess läuft,

00:27:01.750 --> 00:27:02.990
dass dann keine anderen Sachen

00:27:02.990 --> 00:27:05.530
passieren. Ja. Weil

00:27:05.530 --> 00:27:07.910
er am Anfang, äh, seines Vortrags

00:27:07.910 --> 00:27:09.290
angedeutet hat, dass er sehr häufige

00:27:09.290 --> 00:27:11.150
Deployments auf sehr viele verschiedene Systeme

00:27:11.150 --> 00:27:30.580
Und ich könnte mir vorstellen, dass wenn da gerade die Schattentabelle befüllt wird, dass man derweil nicht viele andere Migrationen machen sollte. Und da sind ja auch Abhängigkeiten. Ich darf ja den Code erst ändern, wenn diese Schattentabelle fertig und eingesetzt ist. Erst dann darf ich ja den Django-Code anpassen.

00:27:30.580 --> 00:27:40.440
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.

00:27:41.140 --> 00:27:46.180
Und wie sie diese Reihenfolge sicherstellen, wurde mir aus dem Vortrag nicht ersichtlich.

00:27:46.180 --> 00:27:53.120
Die haben sicherlich Systeme und Schritte da eingeplant, aber das war so für mich nicht sichtbar.

00:27:53.120 --> 00:28:01.500
Ja, danach haben wir uns den Data-Oriented Django-Vortrag angesehen von Adam Johnson, auch über Datenbanken.

00:28:01.500 --> 00:28:08.180
Genau, von dem es auch schon zwei, äh, auf jeder Django-Code, vielleicht wird es eine Tradition, er macht auf jeder Django-Code.

00:28:08.180 --> 00:28:10.620
Vorträge, das war der drei, genau. Das ist der dritte.

00:28:10.900 --> 00:28:11.660
Der dritte Teil.

00:28:11.660 --> 00:28:14.500
Und er hat auch gleichzeitig drei veröffentlichte Bücher.

00:28:14.500 --> 00:28:15.000
Schon.

00:28:15.000 --> 00:28:16.500
Ah, deswegen drei.

00:28:16.500 --> 00:28:17.320
Genau.

00:28:17.320 --> 00:28:26.820
Ja, und ja, das war wie immer super. Er hat halt einen Haufen Detail-Informationen darüber, wie, was man so an Indizes benutzen kann, wie man das in Django macht und so.

00:28:26.820 --> 00:28:33.320
Genau, also im Endeffekt ging es darum, Datenbanken-Reads schneller zu machen und das Mittel der Wahl ist Indizes.

00:28:33.320 --> 00:28:37.300
Und ich war überrascht, dass es da innerhalb von Django auch so viele Möglichkeiten gibt, das anzupassen.

00:28:37.300 --> 00:28:40.160
Ich dachte, da muss man dann immer rohes SQL in seine Migration reinschreiben.

00:28:40.160 --> 00:28:40.660
Ja, hatte ich auch gedacht.

00:28:40.660 --> 00:28:41.200
Das wusste ich auch nicht.

00:28:41.200 --> 00:28:42.800
Was ich auch schon gesehen habe.

00:28:42.800 --> 00:28:48.940
Wie macht der das dann? Hat der ein Index-Field gemacht oder was, wo er dann da bestimmte Sachen reingebracht hat?

00:28:48.940 --> 00:28:53.100
In der Meta-Klasse kannst du Indizes angeben, die für die Tabelle gelten sollen, die für das Modell gelten sollen.

00:28:53.100 --> 00:28:56.460
Genau, und da hat er dann einen extra Fake gemacht, was er quasi beim Save mitschreibt oder sowas?

00:28:56.460 --> 00:28:57.980
Nee.

00:28:57.980 --> 00:28:59.140
Nein.

00:28:59.140 --> 00:29:08.080
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.

00:29:08.080 --> 00:29:10.420
Da musste keine extra Felder dafür.

00:29:10.420 --> 00:29:19.060
Da musste 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.

00:29:19.060 --> 00:29:21.960
Und die Reads benutzen die automatisch.

00:29:21.960 --> 00:29:28.680
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.

00:29:28.680 --> 00:29:30.660
Und das ist eigentlich relativ bequem.

00:29:30.660 --> 00:29:35.480
Die überraschendste Sache in diesem Vortrag war allerdings, dass man die Default-Indizes austauschen kann.

00:29:35.480 --> 00:29:39.760
Das heißt, auf Primary Keys, auf Foreign Keys und auf Unique Felder.

00:29:40.180 --> 00:29:46.020
Gibt es immer einen Index, braucht die Datenbank, um überhaupt diese Constraints einhalten zu können.

00:29:46.020 --> 00:29:47.180
Aber die kann man ersetzen.

00:29:47.180 --> 00:29:55.700
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.

00:29:55.700 --> 00:29:57.620
Dann würde der Zugriff nur auf den Index.

00:29:57.620 --> 00:30:02.200
Ja, aber man muss dann auch hinterher so eine Methode wie Only auf dem Query-Set verwenden.

00:30:02.200 --> 00:30:03.700
Genau, also man muss es dann auch so ein bisschen anpassen.

00:30:03.700 --> 00:30:09.280
Aber diese Indizes anpassen, ich wusste nicht, dass das geht, dass man die Default-Indizes austauschen kann.

00:30:09.940 --> 00:30:14.720
Ja, oder dass man halt noch zusätzliche Daten in den Index mit reinschreiben kann, die dann mit ausgelesen werden.

00:30:14.720 --> 00:30:17.960
Ja, oder was ich auch nicht wusste war, dass man auf dem Query-Set sagen kann Explain.

00:30:17.960 --> 00:30:22.260
Und dann auch noch sagen kann sowas wie, dem gibt man so ein Argument wie JSON gleich True oder so.

00:30:22.260 --> 00:30:26.860
Und dann kriegt man JSON zurück und dann kann man dieses JSON nehmen und dann in PG Mustard reinschmeißen.

00:30:26.860 --> 00:30:28.860
Was allerdings nicht Open Source ist.

00:30:28.860 --> 00:30:29.720
Ne, stimmt, genau.

00:30:29.720 --> 00:30:32.000
Und was ist PG Mustard?

00:30:32.000 --> 00:30:32.960
Senf.

00:30:32.960 --> 00:30:34.580
Ja, ja, Postgres, Sender Senf.

00:30:34.580 --> 00:30:39.900
Das ist so ein Tool, das dir dabei hilft, deine Statements.

00:30:39.900 --> 00:30:46.140
Diese Explains sind ein sehr komisches Format und die sind sehr schwer zu lesen.

00:30:46.140 --> 00:30:53.340
Und PG Mustard macht eine Visualisierung erstmal davon, die zeigt dir, welche Tabellen an welchen Schritten wie verarbeitet wurden und was du besser machen könntest.

00:30:53.340 --> 00:30:55.640
Und das ist, glaube ich, sehr nützlich.

00:30:55.640 --> 00:31:08.320
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.

00:31:08.320 --> 00:31:08.780
Ach so, okay.

00:31:08.780 --> 00:31:09.860
Weil der Schritt wäre ja...

00:31:09.860 --> 00:31:11.260
Das automatisieren, ja.

00:31:11.260 --> 00:31:13.180
Tatsächlich gar nicht so kompliziert.

00:31:13.180 --> 00:31:13.760
Ja.

00:31:13.760 --> 00:31:17.480
Dass der dir sagt, hier wäre ein Index nützlich, probier das mal und dann klickst du drauf und dann...

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

00:31:26.220 --> 00:31:35.400
Also Queries, die länger brauchen als so, logge 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.

00:31:35.400 --> 00:31:39.320
Oder man kann auch sowieso die Dinger mal samplen irgendwie, dass man halt...

00:31:39.820 --> 00:31:46.720
Zumindest ein Teil der Queries halt irgendwo hat, dass man halt ein repräsentatives Sample der Queries, die so auf der Datenbank laufen, halt irgendwo mitloggt.

00:31:46.720 --> 00:31:47.460
Ja.

00:31:47.460 --> 00:31:51.080
Aber, ja, das müsste man dann auch irgendwie in diese...

00:31:51.080 --> 00:31:55.500
Dass man dann einen Explains drauf macht, keine Ahnung, das müsste man dann noch wahrscheinlich selber machen, aber, ja.

00:31:55.500 --> 00:31:57.220
Also da ist noch, da sind noch Lücken.

00:31:57.220 --> 00:31:57.640
Ja.

00:31:57.640 --> 00:31:58.500
Im Tooling.

00:31:58.500 --> 00:31:59.360
Ja.

00:31:59.360 --> 00:32:00.040
Ja.

00:32:00.040 --> 00:32:01.540
Genau, jetzt...

00:32:01.540 --> 00:32:04.500
Ja, also jetzt sind wir quasi schon in der Pause und den Rest werden wir wahrscheinlich morgen machen.

00:32:04.500 --> 00:32:06.740
Ich wollte aber doch mal ganz kurz auf den Workshop eingehen.

00:32:06.740 --> 00:32:09.500
Ich habe da gestern eben so ein bisschen drüber geskript, einfach weil...

00:32:09.820 --> 00:32:11.220
Ich Sarah nicht direkt verjagen wollte.

00:32:11.220 --> 00:32:19.700
Es war tatsächlich dieses Agent-Ding, wie man das halt macht, ja, ist halt Agents aneinanderhängen und überpompting.

00:32:19.700 --> 00:32:26.800
Das ist sehr spannend, dass man halt Agents fragt, was Agents machen sollen mit dem Ergebnis und dann halt verschiedene Queries bereitstellt.

00:32:26.800 --> 00:32:31.540
Das ist aber eigentlich auch so nicht so viel Neues, aber ich weiß nicht, würdest du das auch so machen?

00:32:31.540 --> 00:32:33.600
Ich weiß es nicht so genau.

00:32:33.600 --> 00:32:37.320
Ich habe mich noch nicht so richtig mit diesen ganzen Geschichten beschäftigt.

00:32:37.320 --> 00:32:39.780
Ich weiß nicht, ob ihr mir das schon mal angucken wollt, es gibt auch von Pidentic.

00:32:39.780 --> 00:32:45.340
Gibt es da irgendwie so ein Projekt, irgendwie Pidentic Agents oder ich weiß nicht mehr genau, wie das heißt.

00:32:45.340 --> 00:32:52.560
Das sah ganz interessant aus, dass man das halt damit so ein bisschen strukturierter machen kann.

00:32:52.560 --> 00:33:02.920
Aber ich finde das vor allen Dingen blöd, dass die Namen da wieder so verwirrend sind, weil Agents in dem Hype-Kontext quasi oder so, wie es Leute jetzt gerade verwenden,

00:33:02.920 --> 00:33:08.460
halt was ganz anderes bedeutet als in einem akademischen Bereich und da bedeutet es was ganz anderes, als was Leute vielleicht darunter verstehen.

00:33:08.460 --> 00:33:09.460
Und dann...

00:33:09.780 --> 00:33:12.500
Naja, es ist irgendwie schwer zu erklären, was das denn überhaupt ist.

00:33:12.500 --> 00:33:21.960
Also ich meine, wenn man jetzt einfach sowas sagt, wie ist es halt LLM in der Loop, dann ist es relativ klar, ja ist okay, ist halt außenrum ein bisschen Logik und ab und zu fragt man halt in LLM nach irgendwelchen Regeln.

00:33:21.960 --> 00:33:31.940
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, also was ist...

00:33:31.940 --> 00:33:37.840
Ja, ich finde ganz ehrlich, diese ganz strikte Auslegung davon, dass nur das ein Agent ist, der selbstständig irgendwelche Sachen macht.

00:33:37.840 --> 00:33:39.740
Ja, der unter seiner Identität irgendwie Dinge tut.

00:33:39.740 --> 00:33:42.980
Und das ist ja meistens dann überhaupt gar nicht so, sondern eher...

00:33:42.980 --> 00:33:56.000
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.

00:33:56.000 --> 00:33:59.000
Ja, du hast halt manche Teile von deinem Code sind halt in LLM, das halt...

00:33:59.000 --> 00:34:09.700
Genau, und das heißt, du kannst aber dann tatsächlich genau beim LLM diesen einen, ob man jetzt Assessor nennt oder wie auch immer, über dein JSON-Result von dem LLM parsen lassen und sagen kann, welche Funktionen...

00:34:09.700 --> 00:34:21.300
Und dann kannst du halt dann da schon echte APIs anbinden, wo du halt dann eine Autonomie, also so weit herstehen kannst, wie weil du selber mit deinem Tango in der Lage bist, externe Dinge zu steuern.

00:34:21.300 --> 00:34:24.680
Und das ist ja schon irgendwie Agentik oder sowas.

00:34:24.680 --> 00:34:28.980
Ja, ist alles noch sehr, sehr neu, aber ja.

00:34:28.980 --> 00:34:30.560
Ja, also ich finde, das ist schon...

00:34:30.560 --> 00:34:31.880
Ist aber natürlich, ist schon interessant.

00:34:31.880 --> 00:34:33.700
Mehr Agentik als andere Dinge.

00:34:33.700 --> 00:34:35.680
Ja, keine Ahnung.

00:34:35.680 --> 00:34:39.660
Also ja...

00:34:39.660 --> 00:34:41.460
Du hast ja schon gesagt, wo wir sind. Wir sind hier in diesem...

00:34:41.460 --> 00:34:43.260
Wir sitzen in der Lobby von dem Hotel.

00:34:43.260 --> 00:34:49.060
In der Lobby von dem Hotel. Vielleicht hört man ein bisschen hinterher Geräusche oder auch Phonic hat einen sehr guten Job gemacht, dann hört man nichts mehr davon.

00:34:49.060 --> 00:34:50.860
Das wissen wir aber jetzt noch nicht.

00:34:50.860 --> 00:34:51.960
Das wissen wir jetzt noch nicht.

00:34:51.960 --> 00:34:52.320
Ja.

00:34:52.320 --> 00:35:02.040
Ja, es gibt ja heute noch ein paar Vorträge über Software-Quality. Ich habe mir noch ein paar so Sachen rausgeschrieben, über eine Python-Mystery, über Celery, über die Baute, die wir benutzen und dann natürlich noch Lightning-Talks.

00:35:02.040 --> 00:35:02.300
Und Lightning-Talks.

00:35:02.300 --> 00:35:04.020
Nicht sehr gespannt. Lightning-Talks ist immer gut.

00:35:04.020 --> 00:35:07.500
Du wolltest auch einen Lightning-Talk machen, darüber, wie man fünf Minuten einschlafen kann, habe ich gehört.

00:35:07.500 --> 00:35:09.020
Das weiß ich noch nicht, ob ich mich traue.

00:35:09.020 --> 00:35:12.640
Ich wäre gerne direkt am Anfang eingeschlafen von dem Lightning-Talk.

00:35:12.640 --> 00:35:20.180
Ich habe ja nur fünf Minuten dann in dem Lightning-Talk. Also es könnte, wenn dann alle schlafen, dann raube ich natürlich direkt alle Laptops weg.

00:35:20.180 --> 00:35:31.140
Ja, also heute sehe ich das nicht mehr, aber 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.

00:35:31.140 --> 00:35:34.120
Aber das ist generell eine Experience, die kann ich jedem empfehlen.

00:35:34.120 --> 00:35:38.140
Und wenn jemand die Gelegenheit hat, einen Lightning-Talk zu sehen...

00:35:39.020 --> 00:35:41.600
Oder zu geben, dann sollte man die auf jeden Fall wahrnehmen.

00:35:41.600 --> 00:35:45.380
Und jetzt habe ich mich gerade selber überredet, oder?

00:35:45.380 --> 00:35:51.560
Ja, ich würde sagen, wir können gleich morgen dann über den Lightning-Talk von Johannes noch berichten.

00:35:51.560 --> 00:35:52.000
Sehr gut.

00:35:52.000 --> 00:35:53.460
Cool.

00:35:53.460 --> 00:35:58.260
Okay, dann haben wir heute tatsächlich eine kurze Folge für euch gehabt.

00:35:58.260 --> 00:35:58.540
Ja.

00:35:58.540 --> 00:36:01.940
Vielleicht die Woche wieder. Wir wollen, wie gesagt, nicht versprechen.

00:36:01.940 --> 00:36:03.840
Nee, aber möglicherweise.

00:36:03.840 --> 00:36:07.820
Für heute hat es schon mal Spaß gemacht. So einen kleinen Sneak-Peak auf die Jungle-Con nebenbei.

00:36:07.820 --> 00:36:08.240
Ja.

00:36:08.860 --> 00:36:09.660
Dann schaut ihr rein.

00:36:09.660 --> 00:36:11.200
Hallo, der Python-Podcast hier für jedes Feedback.

00:36:11.200 --> 00:36:12.820
Wünsche euch was. Bis bald.

00:36:12.820 --> 00:36:13.400
Tschüss.

00:36:13.400 --> 00:36:14.200
Tschüss.
