WEBVTT

00:00:00.000 --> 00:00:15.760
Hallo liebe Hörerinnen und Hörer, willkommen zum Python-Podcast, heute in der Episode 2 to the Power of 5, Episode 32, heute geht es vor allen Dingen um DjangoCon und so ein paar Sachen drumherum, Jochen hat einen kleinen Stream aufgemacht und sowas und ja, heute ist wieder Johannes dabei, hi Johannes.

00:00:16.080 --> 00:00:25.960
Hallihallo, hallo, hi Jochen, hallo, ich bin der Dominik, hallo, genau, ja, wollen wir direkt mit der DjangoCon starten oder haben wir noch andere News, die da irgendwie reingehören?

00:00:26.460 --> 00:00:28.580
Ja, Django-Con sind die wichtigsten News.

00:00:29.320 --> 00:00:37.560
Okay, also die paar News, die ich habe, die kann ich auch direkt, weil ich habe nicht so viel verfolgt, weil es passieren die ganze Zeit irgendwelche Dinge und ich habe keine Zeit mehr irgendwas zu machen.

00:00:37.560 --> 00:00:45.720
Ja, Entschuldigung übrigens auch an der Stelle, dass wir euch so lange haben warten lassen, diese neue Episode, aber das war gerade absolut drunter und drüber im Privatleben, da musste man ja kurz ein bisschen warten.

00:00:46.840 --> 00:00:47.300
Nee, dann.

00:00:47.380 --> 00:00:48.780
Wir haben euch aber nicht vergessen, wir machen auch weiter.

00:00:49.580 --> 00:00:52.880
Genau, genau. Ja, dann können wir eigentlich direkt einsteigen.

00:00:53.160 --> 00:00:53.460
Ja, genau.

00:00:53.460 --> 00:00:55.120
Waren wir alle auf der Django-Con?

00:00:55.300 --> 00:00:55.920
Nein, ich nicht.

00:00:56.100 --> 00:01:00.680
Achso, dann können wir dir ja davon erzählen.

00:01:00.780 --> 00:01:02.220
Genau, ich wollte gerade sagen, es war mir zu virtuell

00:01:02.220 --> 00:01:03.500
und ich bin gespannt, was da losgeht.

00:01:03.580 --> 00:01:05.960
Ich habe gehört, es ging los mit Programming for Pleasure.

00:01:07.340 --> 00:01:08.100
Oder wollt ihr erstmal generell was sagen?

00:01:08.100 --> 00:01:10.460
Ja, das ist auch gleich das erste große Highlight, würde ich sagen.

00:01:10.760 --> 00:01:14.780
Ja, das war auch so ein Ding, was mich total überrascht hat.

00:01:14.780 --> 00:01:19.000
Also mit so einem Talk hätte ich gar nicht gerechnet.

00:01:19.440 --> 00:01:20.900
Vielleicht mal kurz am Anfang, worum es ging.

00:01:21.180 --> 00:01:24.480
Jemand hat erzählt, die meisten Menschen programmieren aus Spaß,

00:01:24.640 --> 00:01:25.400
weil es irgendwie cool ist.

00:01:25.780 --> 00:01:26.700
Aber das ist gar nicht so toll.

00:01:27.860 --> 00:01:31.080
Ja, das ist so ein bisschen die Hypothese davon, genau.

00:01:31.080 --> 00:01:34.440
Also Daniele Prosida hat diesen Talk gehalten,

00:01:34.540 --> 00:01:37.900
der erste Talk in der ganzen Konferenz

00:01:37.900 --> 00:01:41.200
und war direkt großartig.

00:01:41.280 --> 00:01:44.680
Ich hatte Daniele Prosida 2018 in Heidelberg schon mal gesehen

00:01:44.680 --> 00:01:48.400
und auch da hat er einen großartigen Talk gehalten.

00:01:48.540 --> 00:01:51.720
Auch völlig untechnisch, aber sehr relevant.

00:01:52.520 --> 00:01:54.360
Und die Hypothese, die er da aufstellt,

00:01:54.460 --> 00:01:56.560
ist halt, dass Programmierer Spaß an ihrem Job

00:01:56.560 --> 00:01:58.120
haben und

00:01:58.120 --> 00:02:00.380
dass das gut für die Programmierer ist, aber

00:02:00.380 --> 00:02:02.480
schlecht für alle anderen, weil dann machen wir das

00:02:02.480 --> 00:02:04.340
nämlich zum Spaß und nicht für das

00:02:04.340 --> 00:02:04.660
Ergebnis.

00:02:06.660 --> 00:02:08.260
Das heißt, für uns

00:02:08.260 --> 00:02:10.340
als Softwareentwickler ist es viel

00:02:10.340 --> 00:02:12.380
wichtiger, dass wir möglichst

00:02:12.380 --> 00:02:14.460
viel und möglichst lange programmieren können

00:02:14.460 --> 00:02:16.280
und was dann dabei

00:02:16.280 --> 00:02:17.560
rauskommt, ist gar nicht so wichtig, weil das

00:02:17.560 --> 00:02:19.620
ist nicht das, woran wir Interesse haben.

00:02:19.760 --> 00:02:22.140
Für mich als Chef ist das jetzt total Mist, das heißt, ich muss

00:02:22.140 --> 00:02:24.200
jetzt irgendwie versuchen, euch anders zu erziehen.

00:02:24.460 --> 00:02:28.440
Also tatsächlich, ich

00:02:28.440 --> 00:02:30.860
fühlte mich, als ich den Vortrag gehört habe

00:02:30.860 --> 00:02:32.700
und ich dachte so, wir gingen ja auch schon so los

00:02:32.700 --> 00:02:34.720
irgendwie so, ja, programmieren, voll gut

00:02:34.720 --> 00:02:36.300
irgendwie total bessere

00:02:36.300 --> 00:02:38.360
Jeder macht das ja auch selber zu Hause

00:02:38.360 --> 00:02:40.900
Zu Hause noch und ja, da dachte ich so, ja, ja

00:02:40.900 --> 00:02:42.440
voll gut

00:02:42.440 --> 00:02:44.580
und dann kam irgendwann der Punkt, wo das dann

00:02:44.580 --> 00:02:46.700
umschlug und ich so, ja, kann das nicht auch sein, dass

00:02:46.700 --> 00:02:48.680
das vielleicht total schlecht ist und da fühlte ich mich schon ziemlich ertappt

00:02:48.680 --> 00:02:51.060
weil ich fürchte, auf mich trifft das ziemlich genau zu

00:02:51.060 --> 00:02:51.760
Erwischt

00:02:51.760 --> 00:02:54.240
es ist auch leider tatsächlich so, dass

00:02:54.240 --> 00:02:56.440
ich das Gefühl habe, manchmal so, ja, aber das ist

00:02:56.440 --> 00:02:58.460
halt auch, manchmal sind halt auch die Projekte, die man

00:02:58.460 --> 00:03:00.400
macht, so vom Ergebnis her, da ist man

00:03:00.400 --> 00:03:02.420
gar nicht so sehr am Ergebnis interessiert, weil

00:03:02.420 --> 00:03:04.560
Aber das ist schlecht

00:03:04.560 --> 00:03:06.120
doch. Das ist schlecht, ich weiß.

00:03:07.140 --> 00:03:08.440
Das hat mir jetzt jemand letztens in einem

00:03:08.440 --> 00:03:10.480
Jungle-Con-Talk erzählt. Wo ist dein purpose-driven-commitment?

00:03:11.200 --> 00:03:12.380
Ja, das ist auch manchmal, aber das

00:03:12.380 --> 00:03:14.300
ist auch wirklich schwierig, finde ich, bei manchen Projekten.

00:03:14.600 --> 00:03:16.220
Also, naja,

00:03:16.420 --> 00:03:18.400
aber das Programmieren selber macht ja Spaß

00:03:18.400 --> 00:03:20.280
und da kann man sich auch drüber motivieren, aber stimmt,

00:03:20.460 --> 00:03:21.600
dann hat man halt mit dem Ergebnis,

00:03:22.560 --> 00:03:24.000
wenn es dann nicht so richtig passt, dann denkt man sich so,

00:03:24.060 --> 00:03:26.220
naja Gott, also mir hat es schon Spaß gemacht.

00:03:27.940 --> 00:03:28.440
Ja, genau.

00:03:28.780 --> 00:03:30.080
Deshalb gibt es so viel schlechte Software.

00:03:30.240 --> 00:03:32.380
Und das Schlimmste ist ja, selbst wenn es schlecht ist,

00:03:32.460 --> 00:03:33.980
dann bedeutet das ja nur, dass wir noch mehr

00:03:33.980 --> 00:03:34.720
programmieren müssen.

00:03:36.000 --> 00:03:38.340
Was ich noch nicht verstanden habe, ist, warum wird die Software

00:03:38.340 --> 00:03:39.720
denn schlechter, wenn man Spaß dabei hat?

00:03:41.260 --> 00:03:42.600
Die wird nicht automatisch schlechter,

00:03:42.960 --> 00:03:44.480
aber sie wird

00:03:44.480 --> 00:03:45.460
auch nicht automatisch besser.

00:03:46.800 --> 00:03:47.820
Und das ist so das Problem.

00:03:48.060 --> 00:03:50.200
Was heißt denn besser? Da sind wir wieder vielleicht bei so einem

00:03:50.200 --> 00:03:52.100
Quantifizierungsbeispiel, was das denn überhaupt ist.

00:03:52.100 --> 00:03:52.800
Ja, das spielt keine Rolle.

00:03:53.240 --> 00:03:57.860
Das spielt gar keine Rolle, wie du es quantifizierst,

00:03:57.940 --> 00:04:00.300
weil das ist nicht das Ziel der Sache. Du orientierst dich nicht daran,

00:04:00.360 --> 00:04:01.660
wie kann ich die Software besser machen,

00:04:02.320 --> 00:04:04.080
sondern du orientierst dich erstmal

00:04:04.080 --> 00:04:05.820
und unterbewusst daran,

00:04:06.240 --> 00:04:07.520
wie kann ich mehr Software machen.

00:04:09.480 --> 00:04:09.840
Und

00:04:09.840 --> 00:04:12.320
das ist halt normalerweise nicht das Ziel,

00:04:12.320 --> 00:04:13.800
mehr Software zu produzieren.

00:04:16.120 --> 00:04:16.520
Beziehungsweise

00:04:16.520 --> 00:04:17.380
da hat niemand was davon.

00:04:18.300 --> 00:04:18.780
Da ist doch einer.

00:04:20.040 --> 00:04:22.260
Ja, genau. Derjenige, der ist

00:04:22.260 --> 00:04:23.060
hinterher nicht bezahlt.

00:04:24.140 --> 00:04:24.300
Ja.

00:04:25.920 --> 00:04:28.340
Okay. Ja, ich meine natürlich, also

00:04:28.340 --> 00:04:30.380
besonders schlimm und das ist natürlich

00:04:30.380 --> 00:04:31.940
auch so etwas, das wird ja auch immer gesagt

00:04:31.940 --> 00:04:34.320
und ich erlebe das auch in Projekten so, dass es

00:04:34.320 --> 00:04:35.900
halt besonders dann schwierig

00:04:35.900 --> 00:04:37.980
ist, wenn man halt wenig Kontakt

00:04:37.980 --> 00:04:40.220
zu den tatsächlichen Benutzern und

00:04:40.220 --> 00:04:42.180
zum Endkunden hat. Und das kann natürlich auch

00:04:42.180 --> 00:04:44.100
nochmal sein, dass das da so eine Rolle spielt, weil

00:04:44.100 --> 00:04:46.420
wenn einem sozusagen der Endnutzer

00:04:46.420 --> 00:04:48.300
tatsächlich mehr oder weniger häufiger

00:04:48.300 --> 00:04:50.420
auf dem Schoß sitzt und sagt, was ihn quält,

00:04:50.560 --> 00:04:52.340
dann kann man ja da vielleicht so eine

00:04:52.340 --> 00:04:54.220
gewisse Empathietransferleistung erbringen und

00:04:54.220 --> 00:04:56.240
sagen, na gut, okay, wenn der

00:04:56.240 --> 00:04:58.080
so drunter leidet, dann kann ich da vielleicht auch mal was machen.

00:04:58.280 --> 00:05:00.280
Das ist ja was anderes als ein quengelnder Manager, der wird dann

00:05:00.280 --> 00:05:02.060
gerne mal... Ja, aber auch wenn man

00:05:02.060 --> 00:05:03.720
den Kunden nie sieht. Aber ein quengelnder Manager hat jeder.

00:05:04.980 --> 00:05:06.620
Ja, deswegen ja, also das ist nicht so effektiv.

00:05:07.400 --> 00:05:08.320
Nee, überhaupt nicht.

00:05:08.520 --> 00:05:09.920
Nee, das ist nicht so. Oder

00:05:09.920 --> 00:05:12.220
Jira-Tickets, ja. Jira-Tickets machen jetzt nicht

00:05:12.220 --> 00:05:14.500
unbedingt so empathische Reaktionen.

00:05:15.560 --> 00:05:16.520
Ehrlich gesagt, ich

00:05:16.520 --> 00:05:19.980
ja, also

00:05:19.980 --> 00:05:22.440
das ist für mich aber auch

00:05:22.440 --> 00:05:24.280
wie man die Tickets dann irgendwie schätzt, wie lange das dauert

00:05:24.280 --> 00:05:26.320
das ist halt auch irgendwie so eine subjektive Sache und man kann halt

00:05:26.320 --> 00:05:27.860
sich auch mal mehr Zeit lassen, mal weniger und so

00:05:27.860 --> 00:05:30.240
mehr Zeit dann verbringen mit der

00:05:30.240 --> 00:05:32.660
schönen ästhetischen Herangehensweise

00:05:32.660 --> 00:05:33.860
diese Aufgabe zu

00:05:33.860 --> 00:05:36.380
lösen, ne? Das ist für mich aber auch

00:05:36.380 --> 00:05:38.140
so ein bisschen die Gegenhypothese, also auch

00:05:38.140 --> 00:05:40.440
Software, die keinen Spaß macht zu schreiben, ist auch nicht gut

00:05:40.440 --> 00:05:42.140
auch Kobol-Programme sind meistens nicht

00:05:42.140 --> 00:05:42.860
super

00:05:42.860 --> 00:05:45.280
und da möchte ich

00:05:45.280 --> 00:05:47.160
niemandem vorwerfen, dass er Spaß dran hatte, die zu

00:05:47.160 --> 00:05:48.960
schreiben. Kobalt, ist das nicht die 13. Kolonie in

00:05:48.960 --> 00:05:49.700
Battlestar Galactica?

00:05:53.100 --> 00:05:53.940
Ja, das ist...

00:05:53.940 --> 00:05:56.960
Letztes Jahr hat man ja gesagt, das Schlimmste an Covid-19 ist,

00:05:57.040 --> 00:05:58.420
dass es auch ein Jira-Ticket sein könnte.

00:06:01.220 --> 00:06:01.620
Ja.

00:06:02.620 --> 00:06:03.020
Ja.

00:06:04.220 --> 00:06:05.820
Wir mussten ein Projekt intern umbenennen,

00:06:05.940 --> 00:06:07.440
weil irgendjemand das Delta genannt hatte.

00:06:11.240 --> 00:06:11.640
Ja.

00:06:11.880 --> 00:06:24.920
Aber ja, man fühlt sich auf jeden Fall ertappt, weil ich meine, jeder von uns hat schon mal Sachen so vor sich hingedudelt und die dann auf GitHub hochgeladen und irgendjemand anderes muss jetzt darunter leiden.

00:06:26.040 --> 00:06:38.720
Also es ist auf jeden Fall schon so und das ist auch genau wie Daniel Poloschida da sagt, nicht gängig in anderen Berufsgruppen, dass die ihre Arbeit mit nach Hause nehmen.

00:06:38.900 --> 00:06:47.120
Also das Beispiel, was er da bringt, ist, dass der Zahnarzt in seiner Freizeit normalerweise keine Zähne richtet, sondern das macht er halt nur beruhigt.

00:06:47.140 --> 00:06:50.500
Ich stelle mir gerade so einen Zahnarzt vor, der eine Sammlung von Gebissen in seinem Garten legt.

00:06:51.560 --> 00:06:58.100
Ja, und dann vielleicht auch mal ein bisschen drin rumbohrt und sagt, hier ist aber ein Wurzelkanal, den wir mal ganz dringend rausbohren müssen.

00:06:58.940 --> 00:07:01.260
Ich glaube, zu so einem Zahnarzt würde ich nicht gehen wollen.

00:07:01.560 --> 00:07:05.960
Ja, das Einzige, was mich tatsächlich nervt am Weiterprogrammieren ist, dass ich nur sitze und nicht stehen kann.

00:07:06.380 --> 00:07:07.540
Schön ist ja die Idee, die ich mal gesehen habe.

00:07:08.420 --> 00:07:10.040
Genau, beim Standing-Desk mit einer

00:07:10.040 --> 00:07:11.760
Laufwand drunter, fand ich ja ziemlich cool.

00:07:13.240 --> 00:07:14.240
Das wäre so eine Sache, das müsste ich eigentlich noch machen.

00:07:14.240 --> 00:07:16.020
Dann kannst du noch die Geschwindigkeit, kannst du dann auch noch

00:07:16.020 --> 00:07:18.460
irgendwie übertragen auf die Maus-Geschwindigkeit

00:07:18.460 --> 00:07:18.960
oder sowas.

00:07:20.360 --> 00:07:22.260
Weil ich mache das wirklich

00:07:22.260 --> 00:07:24.080
auch sehr gerne, auch in der Freizeit, also wenn man irgendwie

00:07:24.080 --> 00:07:26.060
Zeit hat, Sachen zu bauen, das ist halt irgendwie

00:07:26.060 --> 00:07:27.780
so ein was Schaffendes, so was Schönes,

00:07:27.920 --> 00:07:29.640
Kreationistisches, das ist echt was Tolles.

00:07:29.920 --> 00:07:31.400
Das ist halt so ein bisschen wie mit Lego spielen.

00:07:32.400 --> 00:07:34.160
Ja, aber niemand von uns würde

00:07:34.160 --> 00:07:35.360
in ein Lego-Haus einziehen wollen.

00:07:35.700 --> 00:07:37.480
Ja, ja, ja. Das ist ja irgendwie so ein Handwerk.

00:07:37.560 --> 00:07:39.440
Man hat hinterher was Richtiges in der Hand. Also vielleicht sowas wie mit

00:07:39.440 --> 00:07:41.440
Holz. Also nicht, dass ich jetzt irgendwo gut mit Holz arbeiten

00:07:41.440 --> 00:07:43.120
konnte, aber so vom Gefühl her.

00:07:43.780 --> 00:07:45.300
Das kann man schön machen, dann noch

00:07:45.300 --> 00:07:47.460
lackieren und dann mit einem Schwung, einem Bogen

00:07:47.460 --> 00:07:49.260
rein, ein ganz tolles Holz auswählen,

00:07:49.360 --> 00:07:50.980
dann mit einer schönen Maserung und so.

00:07:51.760 --> 00:07:53.420
Und dann eine ganz tolle Sache zusammenfliegen.

00:07:53.420 --> 00:07:54.300
Das ist ja fast schon was Klischeehaftes.

00:07:54.300 --> 00:07:55.480
Gerade zusammengesteckt.

00:07:56.860 --> 00:07:59.400
Fast schon klischeehaft, dass Softwareentwickler

00:07:59.400 --> 00:08:01.260
dann irgendwann zu Woodworkers werden.

00:08:02.600 --> 00:08:03.500
Ja, das ist wahrscheinlich

00:08:03.500 --> 00:08:05.220
auch tatsächlich halt sowas Ähnliches, nur

00:08:05.220 --> 00:08:08.320
dass die Rahmenbedingungen halt nicht so schrecklich

00:08:08.320 --> 00:08:09.480
sind, wenn man einen Schrein hat.

00:08:10.400 --> 00:08:11.720
Ja, und dass es auch egal ist.

00:08:11.880 --> 00:08:13.600
Es ist kein Manager, der hinter einem steht und sagt,

00:08:13.680 --> 00:08:15.940
mach mal das hier, sondern es geht wirklich nur darum,

00:08:17.000 --> 00:08:18.220
da was zu haben. Aber auch da,

00:08:18.260 --> 00:08:20.080
da geht es ja auch tatsächlich mehr um das Ergebnis.

00:08:20.180 --> 00:08:22.100
Da ist auch das Ergebnis sichtbarer. Du kannst hinterher

00:08:22.100 --> 00:08:23.440
sagen, der Schrank ist gerade oder nicht.

00:08:25.100 --> 00:08:26.120
Genau, wäre dann nicht ein

00:08:26.120 --> 00:08:28.060
möglicher Ausweg, so ganz

00:08:28.060 --> 00:08:29.780
naiv, wenn man

00:08:29.780 --> 00:08:31.060
sein eigener Kunde wird,

00:08:31.960 --> 00:08:33.000
wo man dann quasi,

00:08:34.040 --> 00:08:36.720
Ja, dass man sagt, okay, ich bin halt dann derjenige,

00:08:36.900 --> 00:08:38.560
der am Ergebnis auch interessiert ist,

00:08:38.600 --> 00:08:40.140
weil es ist halt auch mein Produkt.

00:08:40.640 --> 00:08:41.700
Genau, das würde ich halt auch sagen.

00:08:41.700 --> 00:08:43.220
Ganz richtig, halt dieses Purpose-Driven,

00:08:43.420 --> 00:08:45.800
dass du halt wichtig dafür brennst, dass du das machst,

00:08:45.880 --> 00:08:48.040
so wie du dir das vorstellst, weil du halt diese User-Story

00:08:48.040 --> 00:08:50.900
quasi selber in dir drin trägst, ja, zum Benutzen.

00:08:50.960 --> 00:08:52.100
Aber den ich ja meistens gar nicht.

00:08:52.340 --> 00:08:54.500
Ja, genau, aber wenn das halt so ist und halt irgendwie

00:08:54.500 --> 00:08:56.300
ein Management das halt nicht hinkriegt, was verkackt,

00:08:56.360 --> 00:08:59.220
dass du halt so eine Informationsasymmetrie bekommst

00:08:59.220 --> 00:09:01.400
zwischen User-Story oder Management,

00:09:01.680 --> 00:09:04.020
weißt, was richtig ist und du weißt, was du machen willst,

00:09:04.620 --> 00:09:05.840
das wird halt schwierig zu managen.

00:09:06.000 --> 00:09:07.920
Also das ist eigentlich unmöglich zu managen, weil du kannst, die meisten

00:09:07.920 --> 00:09:09.440
Manager sind ja technisch jetzt nicht so affin,

00:09:09.900 --> 00:09:12.000
kannst du irgendwas vom Pferd erzählen und das machen dann auch irgendwann

00:09:12.000 --> 00:09:14.080
viele Leute, die halt keine Lust haben auf irgendwas.

00:09:14.500 --> 00:09:15.860
Wir erzählen halt irgendwas von ganz, ganz

00:09:15.860 --> 00:09:18.120
komplizierten Funktionen, die da geschrieben werden müssen

00:09:18.120 --> 00:09:20.060
und so und dann dauert das halt

00:09:20.060 --> 00:09:21.280
gefühlt ein bisschen länger,

00:09:22.020 --> 00:09:23.960
bis nach zwei Teilen fertig und hast

00:09:23.960 --> 00:09:25.320
wieder Zeit für die schönen Dinge oder so.

00:09:26.940 --> 00:09:28.060
Du meinst, dann kannst du noch ein paar

00:09:28.060 --> 00:09:29.760
Unit-Tests schreiben? Ja, zum Beispiel.

00:09:32.260 --> 00:09:34.000
So nutzt man doch dann die Zeit, oder?

00:09:34.040 --> 00:09:36.360
man schreibt Tests und Dokumentation

00:09:36.360 --> 00:09:37.980
und... Ja, das fällt halt auch dann

00:09:37.980 --> 00:09:39.900
meistens mal runter, weil die Leute immer sagen, ja, das ist alles

00:09:39.900 --> 00:09:42.040
total unwichtig, oder so

00:09:42.040 --> 00:09:43.140
Refactorings oder sowas.

00:09:43.280 --> 00:09:46.040
Für einen selber als Programmierer ist es nicht ganz so

00:09:46.040 --> 00:09:46.520
wichtig, ja.

00:09:49.260 --> 00:09:50.020
Ja, für alle Leute,

00:09:50.140 --> 00:09:50.880
die mitarbeiten, vielleicht.

00:09:52.020 --> 00:09:54.140
Das war auf jeden Fall ein großer Paukenschlag,

00:09:54.140 --> 00:09:56.140
so direkt zur Eröffnung der Konferenz

00:09:56.140 --> 00:09:58.160
hat auch, ist super

00:09:58.160 --> 00:09:59.700
gut angekommen und...

00:09:59.700 --> 00:10:01.420
Programming for pleasure, Daniel Furchier.

00:10:01.540 --> 00:10:02.640
Der macht auch sonst gute Talks.

00:10:02.700 --> 00:10:04.560
Der hat auch schon welche über Dokumentationen gemacht,

00:10:04.620 --> 00:10:05.340
die ich auch sehr gut fand.

00:10:05.540 --> 00:10:07.080
Sind die eigentlich schon online, die Talks?

00:10:07.380 --> 00:10:08.020
Ich glaube nicht.

00:10:08.160 --> 00:10:09.520
Die müssen aber jetzt in den nächsten Tagen

00:10:09.520 --> 00:10:10.800
irgendwann auf YouTube erscheinen, oder?

00:10:11.240 --> 00:10:13.080
Ich glaube, 30 Tage habe ich irgendwo gehört,

00:10:13.200 --> 00:10:14.080
aber ich weiß es nicht.

00:10:14.100 --> 00:10:15.400
Wann war die nochmal genau?

00:10:16.620 --> 00:10:18.000
Am 2. Juni.

00:10:18.040 --> 00:10:18.460
2. Juni.

00:10:18.620 --> 00:10:20.080
2. bis 6. Juni.

00:10:20.180 --> 00:10:22.020
Dann ist ja jetzt in 10 Tagen alles da.

00:10:22.020 --> 00:10:23.640
Müsste demnächst soweit sein.

00:10:23.760 --> 00:10:25.540
Also ich weiß nicht, wie sie es machen, aber ja.

00:10:27.660 --> 00:10:28.020
Cool.

00:10:28.300 --> 00:10:29.580
Was hat euch denn noch super gut gefallen?

00:10:29.680 --> 00:10:31.360
Also ich meine, das habt ihr vielleicht noch gar nicht gesagt.

00:10:31.500 --> 00:10:33.900
die beiden hatten auch einen Talk, beziehungsweise einen Worktop,

00:10:34.260 --> 00:10:35.880
die ich natürlich beide dann doch getalkt habe.

00:10:35.900 --> 00:10:37.780
Der nächste Talk, der mir sehr gut gefallen hat, war der von

00:10:37.780 --> 00:10:39.980
Jochen Wersdorfer, war sehr, fand ich sehr, sehr gut.

00:10:43.420 --> 00:10:44.020
Jochen, erzähl,

00:10:44.100 --> 00:10:45.380
hast du den auch geguckt? Erzähl doch mal.

00:10:45.620 --> 00:10:47.880
Ich habe gerade übrigens das erste Mal deinen vollen Namen gesagt in diesem Podcast.

00:10:48.000 --> 00:10:48.500
Oh je.

00:10:49.880 --> 00:10:51.580
Ich glaube, auf der Webseite war der auch schon irgendwie drauf.

00:10:51.700 --> 00:10:52.380
Hab ich dich gedoxed.

00:10:52.380 --> 00:10:54.180
Kann man auch nicht wirklich verändern.

00:10:55.060 --> 00:10:55.260
Ja,

00:10:55.480 --> 00:10:58.380
nö, das, genau, also ich habe

00:10:58.380 --> 00:11:00.140
den auch ein paar Mal, ich habe den, ich habe ja tatsächlich

00:11:00.140 --> 00:11:01.620
so ein bisschen dann geübt und so

00:11:01.620 --> 00:11:04.020
und dachte, oh, vielleicht kann ich

00:11:04.020 --> 00:11:05.960
dann auch live halten. Das hat dann irgendwie nicht geklappt,

00:11:06.100 --> 00:11:06.840
weil mein Video,

00:11:07.200 --> 00:11:09.940
mein vielleicht ein wenig zu

00:11:09.940 --> 00:11:11.940
elaboriertes Video-Setup das nicht zugelassen hat,

00:11:12.000 --> 00:11:13.800
weil wenn man das als Webcam bei

00:11:13.800 --> 00:11:16.000
Zoom registriert, dann wird die

00:11:16.000 --> 00:11:17.580
Schrift so unscharf, dass man es nicht mehr lesen kann.

00:11:17.780 --> 00:11:19.580
Um mal kurz euch vorzustellen, wie Jochen das macht.

00:11:19.660 --> 00:11:21.640
Jochen schmeißt tatsächlich ein mega krasses

00:11:21.640 --> 00:11:23.700
Technik-Setup, wie er schon mal gesagt hat. Oh, Content interessiert

00:11:23.700 --> 00:11:25.140
gar nicht so, Technik ist das, was wichtig ist.

00:11:26.800 --> 00:11:27.860
Schmeißt er dann alles halt

00:11:27.860 --> 00:11:30.020
irgendwie in OBS rein mit einer ziemlich krassen Webcam

00:11:30.020 --> 00:11:32.140
und ziemlich cool im Setup da auch

00:11:32.140 --> 00:11:34.240
mit seinem großen, was ist das

00:11:34.240 --> 00:11:36.120
für ein Fernsehstudio

00:11:36.120 --> 00:11:38.200
Kontrollpult. Genau, das war so

00:11:38.200 --> 00:11:39.620
ein Atem Mini von Blackmagic.

00:11:39.900 --> 00:11:42.080
Und tatsächlich braucht man dann keinen OBS mehr. Das Ding

00:11:42.080 --> 00:11:44.240
streamt selber. Ah ja, okay. Also siehst du noch nicht mal

00:11:44.240 --> 00:11:45.680
OBS, du hast da einfach selbst konfiguriert

00:11:45.680 --> 00:11:48.280
und dann, ja, das sah auch schon ziemlich cool aus,

00:11:48.340 --> 00:11:49.800
muss ich sagen. Aber

00:11:49.800 --> 00:11:52.180
wir wollten das gar nicht annehmen, hast du gerade

00:11:52.180 --> 00:11:54.140
gesagt. Ja, zurück zum Content. Genau, das hat halt

00:11:54.140 --> 00:11:56.160
dann nicht funktioniert live. Sonst hätte ich das auch

00:11:56.160 --> 00:11:58.160
live gemacht. Ach, wegen Zoom? Genau.

00:11:58.260 --> 00:12:00.100
Und da musste halt die Aufnahme verwendet werden,

00:12:00.500 --> 00:12:02.180
die überraschend früh eingereicht werden musste.

00:12:02.280 --> 00:12:03.800
Das hatte mich auch so ein bisschen Schweiß gekostet.

00:12:03.820 --> 00:12:04.100
Oh ja.

00:12:05.780 --> 00:12:09.720
Und ja, weil ich hatte doch gar keine Slides fertig und so.

00:12:10.800 --> 00:12:12.860
Ja, die Story habe ich ja noch im Ohr.

00:12:13.140 --> 00:12:15.240
Aber jetzt haben wir schon darüber gesprochen,

00:12:15.480 --> 00:12:17.740
was oder wie du getalkt hast, aber über was denn?

00:12:19.160 --> 00:12:21.400
Das ist ein Thema, mit dem ich seit einiger Zeit

00:12:21.400 --> 00:12:25.400
irgendwie so ein bisschen hadere oder wo ich dann rumfeile.

00:12:26.340 --> 00:12:37.980
Und zwar, was ich irgendwie ein bisschen doof finde, ist, wenn man so mit Files zu tun hat, also tatsächlich Dateien, irgendwie größere vor allen Dingen, also Bilder können auch schon größer werden oder Videos oder Audiodateien.

00:12:37.980 --> 00:12:47.180
Und Audiodateien hat man natürlich irgendwie beim Podcasten schon zu tun und irgendwie die Seite für diesen Podcast hier, den habe ich ja auch mal irgendwann gebaut.

00:12:48.360 --> 00:12:52.540
Und da ist es so, da verwende ich so ein CDN, um die Audio-Files auszuliefern.

00:12:53.180 --> 00:12:57.040
Und auch wenn ich das jetzt in irgendwelchen Kundenprojekten sehe oder so, wenn Leute mit Files umgehen,

00:12:57.660 --> 00:13:03.960
dann hinterlässt das meistens so ein, das ist irgendwie noch nicht so richtig optimal Ding bei mir,

00:13:03.960 --> 00:13:07.760
weil oft hat man dann so Anforderungen wie, das habe ich jetzt beim Podcast nicht,

00:13:07.940 --> 00:13:13.820
aber so in quasi, ja, wo man so Auftragsarbeiten,

00:13:14.120 --> 00:13:15.920
dann hat man halt oft Leute,

00:13:16.060 --> 00:13:18.560
die irgendwie Authentifizierung und Autorisierung haben wollen

00:13:18.560 --> 00:13:21.200
für die Dateien, weil das Sachen sind,

00:13:21.240 --> 00:13:22.200
die nicht unbedingt öffentlich sind.

00:13:23.240 --> 00:13:24.820
Und dann wird es schon schwierig.

00:13:24.980 --> 00:13:26.580
Und das, was halt alle machen eigentlich,

00:13:26.720 --> 00:13:28.640
oder die meisten jedenfalls, wo ich das bisher gesehen habe,

00:13:28.640 --> 00:13:32.980
ist, dass sie einfach irgendwie als Dateinahme

00:13:32.980 --> 00:13:36.560
den Hash des Files nehmen oder so

00:13:36.560 --> 00:13:38.680
und das irgendwo auf einen öffentlichen Webserver

00:13:38.680 --> 00:13:40.560
packen und dann sagen, naja,

00:13:40.780 --> 00:13:42.680
also wird schon keiner finden. Wird schon keiner erraten,

00:13:42.760 --> 00:13:44.860
was der Hedge ist. Ja, genau. Ja, das ist

00:13:44.860 --> 00:13:46.240
wirklich so, das wird schon keiner erraten.

00:13:46.520 --> 00:13:48.680
Nee, das ist richtig, aber das Problem ist, es kann halt

00:13:48.680 --> 00:13:50.560
irgendwie aus anderen Kanälen halt auch rausliegen,

00:13:50.640 --> 00:13:52.520
wie zum Beispiel irgendwelchen Logfiles oder

00:13:52.520 --> 00:13:54.460
auf der Client-Seite, dass halt irgendjemand

00:13:54.460 --> 00:13:56.480
die Links verschickt. Speichert oder

00:13:56.480 --> 00:13:58.400
das verschickt oder so. Ganz genau.

00:13:58.620 --> 00:14:00.600
Und dann hat man halt. Du kannst es auch nie wieder zurücknehmen.

00:14:00.860 --> 00:14:02.420
Ja. Wenn du es einmal jemandem gezeigt hast,

00:14:02.500 --> 00:14:03.700
der hat es für immer. Genau.

00:14:04.640 --> 00:14:06.500
Und das ist halt so ein bisschen

00:14:06.500 --> 00:14:08.520
vielleicht nicht unbedingt das fassen will. Und wenn man dann sagt so,

00:14:08.580 --> 00:14:10.500
oh, das ist aber eigentlich vielleicht nicht so ganz so optimal,

00:14:10.620 --> 00:14:12.340
dann kommt halt häufig so, ja,

00:14:13.400 --> 00:14:14.980
ach, das wird schon,

00:14:15.060 --> 00:14:15.340
das ist jetzt,

00:14:15.660 --> 00:14:18.140
das lösen wir dann später mal, keine Ahnung,

00:14:18.300 --> 00:14:19.840
da müssen wir uns mal Gedanken drüber machen.

00:14:20.380 --> 00:14:22.660
Ja, aber das ist halt dann schon eine relativ

00:14:22.660 --> 00:14:24.640
zentrale Geschichte, dass Authentifizierung irgendwie

00:14:24.640 --> 00:14:26.880
funktioniert. Und später

00:14:26.880 --> 00:14:28.720
sich drum kümmern ist halt bei solchen Sachen oft ziemlich

00:14:28.720 --> 00:14:30.440
schwierig, wenn man dann halt schon irgendwie

00:14:30.440 --> 00:14:32.760
Dinge hat, die darauf basieren, dass das so funktioniert,

00:14:32.840 --> 00:14:34.540
wie es funktioniert. Und wenn es kaputt funktioniert,

00:14:34.760 --> 00:14:50.620
dann ist diese, das ist halt sehr schwer hinterher ein System nochmal reinzubringen und dann hat man halt eigentlich ein unsicheres System und das ist natürlich eigentlich nicht so richtig, dass man es haben möchte und das hat mich schon immer so ein bisschen geärgert, also ich habe auch schon gesehen, dass Leute das richtig machen, aber das ist halt eher so die Ausnahme und die Art.

00:14:50.620 --> 00:14:53.260
Was wäre denn richtig? Was gibt es denn für Alternativen?

00:14:53.260 --> 00:15:05.580
Genau, also das, was man tun kann, wäre halt, wenn man jetzt quasi das komplett alles selber hosten möchte, vielleicht so ein Nginx davor zu nehmen, davor zu haben.

00:15:05.580 --> 00:15:18.840
Man hat ja sowieso immer irgendeine Art Reverse-Proxy vom Applikationsserver bei Django und da kann man ja jetzt, also auch diesen Lösungsansatz, den habe ich ja von dir, Johannes.

00:15:21.120 --> 00:15:23.360
Gibt es da was, was man mit NGINX machen kann?

00:15:23.440 --> 00:15:23.820
Ja, ja.

00:15:25.680 --> 00:15:26.120
Genau.

00:15:27.220 --> 00:15:29.980
Dann geht der Request vom Browser aus,

00:15:29.980 --> 00:15:32.100
geht halt direkt zum Applikationsserver.

00:15:32.440 --> 00:15:36.300
Aber der Applikationsserver schickt halt nicht das File zurück,

00:15:36.440 --> 00:15:38.480
sondern der schickt halt eine leere Response zurück,

00:15:39.080 --> 00:15:40.480
in der nur ein Header gesetzt ist.

00:15:41.320 --> 00:15:45.000
Also Xen-File oder X-Excel heißt der, glaube ich, bei NGINX.

00:15:45.720 --> 00:15:47.560
Wo dann drin steht, ja, ja, das ist schon okay.

00:15:47.760 --> 00:15:52.540
Und dann ersetzt der Nginx die leere File-Response durch die echte File-Response.

00:15:53.120 --> 00:15:55.060
Und wo kriegt der die her?

00:15:55.540 --> 00:16:00.220
Ja, der braucht dann halt Zugriff auf, wie auch immer, das Verzeichnis oder was auch immer.

00:16:01.580 --> 00:16:02.640
Also aus einer Datei, oder?

00:16:03.060 --> 00:16:04.100
Ja, genau.

00:16:05.160 --> 00:16:06.600
Okay, aber das ist ja schon mal ziemlich cool, oder?

00:16:06.700 --> 00:16:11.040
Dann kann ich ja sagen, hier, diese Datei darfst du nur ausliefern, wenn folgende Vorbedingungen gelten.

00:16:11.040 --> 00:16:15.360
Also ich kann die Vorbedingungen in meinem App-Server prüfen und das Ausliefern macht dann aber Nginx.

00:16:15.600 --> 00:16:16.480
Also das ist ja schon mal ziemlich cool.

00:16:16.500 --> 00:16:18.220
Damit ist eigentlich ziemlich super. Also das funktioniert

00:16:18.220 --> 00:16:20.300
tatsächlich. Das einzige Problem, wo ich

00:16:20.300 --> 00:16:22.060
sagen würde, naja, das ist halt so ein bisschen hässlich

00:16:22.060 --> 00:16:23.800
an der Lösung, ist, dass

00:16:23.800 --> 00:16:26.380
naja, also man hat

00:16:26.380 --> 00:16:28.220
jetzt plötzlich zwei Systeme, die Zugriff auf alle

00:16:28.220 --> 00:16:30.300
Daten haben müssen. Also

00:16:30.300 --> 00:16:31.440
zumindest auf alle Dateien haben müssen.

00:16:32.480 --> 00:16:34.320
Und es muss halt auch so verbunden sein, dass

00:16:34.320 --> 00:16:36.200
die das beide korrekt finden. Genau. Und

00:16:36.200 --> 00:16:37.820
du kannst es halt nicht mehr gut testen.

00:16:37.960 --> 00:16:38.380
Ob jetzt deine

00:16:38.380 --> 00:16:42.000
Applikation alle

00:16:42.000 --> 00:16:43.980
Sicherheitsanforderungen noch erfüllt, kannst du in

00:16:43.980 --> 00:16:45.720
Django-Tests allein nicht mehr machen.

00:16:46.280 --> 00:16:48.220
weil dein Applikationsserver

00:16:48.220 --> 00:16:50.000
kann ja sagen, nee, da darf jemand nicht

00:16:50.000 --> 00:16:52.020
drauf zugreifen, dein Test überprüft das und sagt so,

00:16:52.180 --> 00:16:53.180
super, hier ist alles richtig.

00:16:53.880 --> 00:16:55.740
Und dein Nginx kann aber die Datei trotzdem ausliefern,

00:16:55.860 --> 00:16:58.080
weil der irgendwie falsch konfiguriert ist oder keine Ahnung,

00:16:58.240 --> 00:16:59.440
weil da sonst irgendwie was schiefgegangen ist.

00:17:00.700 --> 00:17:02.000
Und das heißt, du merkst

00:17:02.000 --> 00:17:03.800
unter Umständen nicht, wenn dein System kaputt geht,

00:17:03.900 --> 00:17:05.880
weil du den einen Teil nicht mehr so

00:17:05.880 --> 00:17:07.640
wirklich mittesten kannst, weil es halt auch schwierig ist,

00:17:08.140 --> 00:17:09.920
das komplette System dann halt immer beim Entwickeln

00:17:09.920 --> 00:17:11.900
hochzufahren mit Nginx und dem ganzen

00:17:11.900 --> 00:17:13.760
Kram. Also eigentlich müsstest du es ja dann

00:17:13.760 --> 00:17:14.300
mittesten.

00:17:15.040 --> 00:17:21.440
Man verschiebt quasi so ein bisschen was von dieser Testlast in den operativen Bereich.

00:17:21.980 --> 00:17:25.740
Weil im Endeffekt musst du ja dann das operative System testen und überprüfen.

00:17:26.480 --> 00:17:29.080
Und du müsstest ja eigentlich sogar einen negativen Test machen.

00:17:29.200 --> 00:17:33.940
Du musst ja nachweisen, dass Nginx diese Datei unter keinen Umständen ausliefert, außer wenn.

00:17:36.300 --> 00:17:38.460
Und das ist natürlich sehr, sehr schwierig.

00:17:39.380 --> 00:17:42.060
Aber gibt es denn da Echtweltbeispiele?

00:17:42.140 --> 00:17:43.380
Das passiert doch in der echten Welt nicht, oder?

00:17:43.440 --> 00:17:45.120
dass irgendwas offen konfiguriert ist, wo

00:17:45.120 --> 00:17:47.440
Daten rumliegen. Das passiert so gut wie

00:17:47.440 --> 00:17:49.400
die, ja. Also auch

00:17:49.400 --> 00:17:50.800
diese Leaks, die dann immer gibt.

00:17:52.600 --> 00:17:53.460
Das passiert ja

00:17:53.460 --> 00:17:55.280
nicht. Also ich meine, tatsächlich ist auch eine der häufigsten

00:17:55.280 --> 00:17:57.360
Sachen, die man so sieht, dass dann irgendwo jemand

00:17:57.360 --> 00:17:59.180
halt sich mal irgendwelche Sachen angeguckt hat

00:17:59.180 --> 00:18:01.200
und dann, oh, was ist denn da? Hier sehe ich

00:18:01.200 --> 00:18:03.120
meine Dateien. Hm, was ist denn? Da gibt es halt vielleicht noch mehr.

00:18:04.260 --> 00:18:05.500
Oder dass irgendwelche Backup-Server

00:18:05.500 --> 00:18:07.160
offen sind oder dass irgendwelche Log-Server

00:18:07.160 --> 00:18:09.120
offen sind oder dass irgendwelche. Ja, ja.

00:18:09.240 --> 00:18:10.900
Und dann sind halt plötzlich alle Daten

00:18:10.900 --> 00:18:13.140
von allen Leuten irgendwie öffentlich und das ist halt furchtbar

00:18:13.140 --> 00:18:13.520
eigentlich.

00:18:15.360 --> 00:18:17.220
Genau, also so kann man das halt

00:18:17.220 --> 00:18:19.200
machen, aber dafür muss man jetzt, also ich würde

00:18:19.200 --> 00:18:21.060
sagen, das ist auf jeden Fall schon somit die beste Lösung,

00:18:21.140 --> 00:18:21.780
die ich so gesehen habe,

00:18:23.220 --> 00:18:24.640
wie man das richtig machen kann.

00:18:26.320 --> 00:18:27.240
Man kann das auch noch

00:18:27.240 --> 00:18:29.120
machen, also wenn man jetzt die eigene

00:18:29.120 --> 00:18:31.220
Infrastruktur komplett unter Kontrolle hat, wenn man das nicht

00:18:31.220 --> 00:18:33.140
hat. Es hört sich halt auch so ein bisschen an, als wäre es

00:18:33.140 --> 00:18:34.920
ein bisschen komplexer, zu dem

00:18:34.920 --> 00:18:37.180
NGINX zu erzählen, dass er die selben Sachen versteht

00:18:37.180 --> 00:18:39.220
für Authentifizierung, Autorisierung, wie zum Beispiel

00:18:39.220 --> 00:18:41.120
die Applikationshilfe mit dem Django dahinter

00:18:41.120 --> 00:18:41.500
oder so.

00:18:42.720 --> 00:18:43.900
Nee, das ist gar nicht das Problem.

00:18:44.140 --> 00:18:45.940
Das muss er nicht. Der Request geht ja durch

00:18:45.940 --> 00:18:48.140
einen Applikationsserver. Das heißt, der Applikationsserver

00:18:48.140 --> 00:18:49.060
entscheidet. Der Nginx

00:18:49.060 --> 00:18:51.840
sieht nur den Header und macht dann, oder

00:18:51.840 --> 00:18:53.780
macht eben nicht. Das heißt, das Einzige, was man quasi macht,

00:18:53.840 --> 00:18:55.420
muss die richtigen Header setzen und dann läuft es.

00:18:55.420 --> 00:18:56.660
Vom Applikationsserver aus, ja genau.

00:18:57.320 --> 00:18:59.280
Das ist auch sowas. Da gab es dann in der Reaktion

00:18:59.280 --> 00:19:01.540
auf den Talk, glaube ich, im Slack

00:19:01.540 --> 00:19:03.560
oder so, hat dann jemand gesagt, da gibt es doch in Nginx

00:19:03.560 --> 00:19:04.420
auch ein Ding, wo man

00:19:04.420 --> 00:19:07.540
der Nginx dann beim Applikationsserver nachfragt,

00:19:07.620 --> 00:19:09.460
ob das authentifiziert ist oder nicht. Das ist auch sehr schön.

00:19:09.620 --> 00:19:11.280
Das ist, also würde ich sagen,

00:19:11.460 --> 00:19:13.540
funktioniert ähnlich gut und das ist vielleicht sogar noch mal

00:19:13.540 --> 00:19:15.400
ein bisschen besser, weil man es dann

00:19:15.400 --> 00:19:17.100
schlechter falsch konfigurieren kann, weil

00:19:17.100 --> 00:19:18.140
ja.

00:19:19.000 --> 00:19:20.760
Es ist leichter testbar, oder?

00:19:21.060 --> 00:19:23.520
Es ist leichter testbar. Wenn die Authentifizierung

00:19:23.520 --> 00:19:24.920
nicht da ist, darf der einfach nichts ausliefern.

00:19:25.900 --> 00:19:27.340
Das kann man leichter nachweisen.

00:19:27.620 --> 00:19:29.580
Also insofern, das kannte ich noch gar nicht und das

00:19:29.580 --> 00:19:30.880
klingt eigentlich auch sehr gut.

00:19:31.440 --> 00:19:33.580
Das ist durchaus eine Geschichte, die man machen kann.

00:19:33.680 --> 00:19:35.480
Das Einzige, was daran so ein bisschen

00:19:35.480 --> 00:19:37.440
blöd ist, ist halt, es funktioniert nur,

00:19:37.520 --> 00:19:39.280
wenn man, also es macht die Infrastruktur

00:19:39.280 --> 00:19:41.400
komplizierter und es funktioniert nur, wenn man die komplette Kontrolle

00:19:41.400 --> 00:19:43.080
drüber hat. Wenn man jetzt ein CDN verwendet oder so,

00:19:43.580 --> 00:19:45.300
geht das halt nicht mehr so richtig. Ja, was könnte

00:19:45.300 --> 00:19:47.180
ich denn machen, wenn ich meine Dateien auf S3 habe?

00:19:47.240 --> 00:19:49.240
Die kann ich ja auch auf Private schalten

00:19:49.240 --> 00:19:51.240
oder Public. Gibt es denn da auch eine Möglichkeit?

00:19:51.560 --> 00:19:53.240
Erzähl mal. Genau, ja. Also was man

00:19:53.240 --> 00:19:55.320
da tun kann, ist, man benutzt

00:19:55.320 --> 00:19:57.160
entweder Signed Cookies oder halt

00:19:57.160 --> 00:19:58.220
signierte URLs

00:19:58.220 --> 00:19:59.740
und

00:19:59.740 --> 00:20:03.000
über den Applikationsserver aus. Also das

00:20:03.000 --> 00:20:05.420
bedeutet im Grunde, die URL, die man an den Browser ausliefert,

00:20:06.460 --> 00:20:07.440
da steht halt,

00:20:07.520 --> 00:20:09.200
also ist halt eine Signatur drin. Ein Token

00:20:09.200 --> 00:20:11.140
dran oder? Ja, so was. Also

00:20:11.140 --> 00:20:13.420
es ist ein bisschen mehr Daten, es ist nicht nur

00:20:13.420 --> 00:20:15.080
die Signatur, sondern es ist halt immer noch so

00:20:15.080 --> 00:20:17.520
also ich weiß nicht, ob das dann letztendlich JSON ist

00:20:17.520 --> 00:20:19.260
oder so, also das kann man auch, ist halt wahrscheinlich

00:20:19.260 --> 00:20:21.220
gibt es verschiedene Techniken für, genau

00:20:21.220 --> 00:20:23.440
da steht dann halt meistens noch sowas drin

00:20:23.440 --> 00:20:25.400
wie, also diese URL ist

00:20:25.400 --> 00:20:27.400
jetzt 30 Minuten gültig ab jetzt, oder ab

00:20:27.400 --> 00:20:29.240
diesem Zeitstempel, oder die ist halt nur

00:20:29.240 --> 00:20:31.440
gültig für IP-Adressen aus

00:20:31.440 --> 00:20:33.500
dem Adressbereich oder sowas. Oder nur für einen Klick

00:20:33.500 --> 00:20:34.980
oder sowas, oder für einen Aufruf oder sowas?

00:20:35.540 --> 00:20:37.280
Ja, weiß ich nicht, ob man das da einstellen kann, also

00:20:37.280 --> 00:20:39.380
IP-Adressen und Zeit weiß ich, dass es

00:20:39.380 --> 00:20:40.620
bei Amazon geht, auf jeden Fall

00:20:40.620 --> 00:20:43.480
und das kann man halt entweder in die URL packen

00:20:43.480 --> 00:20:45.380
oder man kann es halt sozusagen vom

00:20:45.380 --> 00:20:46.660
Server aus als Cookie setzen

00:20:46.660 --> 00:20:49.320
und wenn das dann quasi,

00:20:49.440 --> 00:20:51.360
wenn dieser Request, da kommt es halt

00:20:51.360 --> 00:20:53.280
darauf an, wie die Domains aussehen und so

00:20:53.280 --> 00:20:55.120
und wenn das eine andere Domain ist, ist es manchmal vielleicht schwierig

00:20:55.120 --> 00:20:57.320
also ob man jetzt als

00:20:57.320 --> 00:20:59.200
Applikationsserver ein Cookie setzen kann für

00:20:59.200 --> 00:21:00.920
die Domain, unter der dann tatsächlich

00:21:00.920 --> 00:21:03.220
die Files liegen, aber wenn man das kann, kann man das

00:21:03.220 --> 00:21:04.800
halt auch einfach so als Cookie setzen

00:21:04.800 --> 00:21:06.060
und

00:21:06.060 --> 00:21:08.040
ja, das

00:21:08.040 --> 00:21:10.740
funktioniert halt auch.

00:21:11.820 --> 00:21:13.320
Das ist auch richtig

00:21:13.320 --> 00:21:15.520
eigentlich sozusagen in Anführungsstrichen

00:21:15.520 --> 00:21:17.520
ordentlich, aber man hat halt immer noch

00:21:17.520 --> 00:21:18.880
das gleiche Problem, dass

00:21:18.880 --> 00:21:21.540
eigentlich ist es ein bisschen schlechter als

00:21:21.540 --> 00:21:23.620
die Lösung mit dem Nginx, weil man

00:21:23.620 --> 00:21:25.560
halt nicht wirklich von dem

00:21:25.560 --> 00:21:27.540
CDN aus überprüfen kann, ob die Autorisierung noch

00:21:27.540 --> 00:21:29.680
da ist oder nicht. Also wenn man jetzt in Django Admin

00:21:29.680 --> 00:21:31.300
sagt, diese Files, dieser User,

00:21:31.440 --> 00:21:33.180
darf die nicht mehr sehen, dann

00:21:33.180 --> 00:21:35.440
kann das halt nicht sofort funktionieren,

00:21:35.540 --> 00:21:37.540
sondern wenn man halt eine gültige URL hat, dann

00:21:37.540 --> 00:21:40.600
ja, funktioniert die erst mal

00:21:40.600 --> 00:21:42.340
weiter, zumindest 30 Minuten lang oder so.

00:21:42.580 --> 00:21:44.420
Gut, ist dann halt nicht mehr so schlimm, als wäre die für immer

00:21:44.420 --> 00:21:45.260
gültig, aber

00:21:45.260 --> 00:21:48.640
auch da reicht es ja unter Umständen schon,

00:21:49.200 --> 00:21:49.720
um

00:21:49.720 --> 00:21:51.740
irgendwie die Daten daraus zu kriegen.

00:21:52.900 --> 00:21:54.420
Es ist halt so ein bisschen, also es ist

00:21:54.420 --> 00:21:56.460
besser als nichts zu machen, aber es ist halt immer noch so ein bisschen

00:21:56.460 --> 00:21:58.340
so, ah, so richtig schön ist es eigentlich nicht.

00:21:59.420 --> 00:21:59.520
Ja.

00:22:00.500 --> 00:22:01.800
Und genau.

00:22:03.080 --> 00:22:04.520
Ja, also das sind halt so die beiden

00:22:04.520 --> 00:22:06.240
Ansätze, wie man das ordentlich macht eigentlich.

00:22:06.500 --> 00:22:07.860
Aber was ist denn jetzt die richtige Lösung?

00:22:08.060 --> 00:22:10.660
Was kann man denn heutzutage noch besser machen?

00:22:11.520 --> 00:22:13.900
Genau, meine Idee an der Stelle war,

00:22:14.760 --> 00:22:18.360
okay, naja, es muss im Grunde über den Applikationsserver gehen,

00:22:18.440 --> 00:22:19.900
weil der der Einzige ist, der weiß,

00:22:20.080 --> 00:22:21.920
ob jetzt ein User irgendwas sehen darf oder nicht.

00:22:22.580 --> 00:22:24.760
Das kann man auch nicht irgendwie großartig anders machen,

00:22:25.820 --> 00:22:27.500
ohne Probleme zu bekommen.

00:22:27.860 --> 00:22:31.240
Wie wäre es denn, wenn der einfach selber die Files ausliefert?

00:22:34.200 --> 00:22:36.160
Aber davon wird ja erstmal abgeraten, oder?

00:22:36.440 --> 00:22:38.700
hast du Worker beschäftigt und dann hast du

00:22:38.700 --> 00:22:41.140
nur so und so viele App-Server

00:22:41.140 --> 00:22:42.840
und dann sind die

00:22:42.840 --> 00:22:44.400
langsam und brauchen viel Speicher und so.

00:22:44.880 --> 00:22:46.720
Genau, also in allen Tutorials

00:22:46.720 --> 00:22:48.700
steht immer drin, nee, macht das nicht. Also wenn ihr

00:22:48.700 --> 00:22:50.620
irgendwie Files ausliefern wollt, macht das über einen

00:22:50.620 --> 00:22:52.500
getrennten App-Server, der da statt

00:22:52.500 --> 00:22:54.540
Files direkt ausliefern kann oder macht das mit White Noise

00:22:54.540 --> 00:22:56.540
und CDN oder so, aber

00:22:56.540 --> 00:22:58.760
macht das nicht über den Applikations-Server, weil das Problem

00:22:58.760 --> 00:23:00.760
beim Applikations-Server ist halt, dass es normalerweise

00:23:00.760 --> 00:23:01.700
standardmäßig

00:23:01.700 --> 00:23:04.700
ein Pre-Fogged, also sozusagen

00:23:04.700 --> 00:23:33.640
Es gibt mehrere Prozesse, die halt Requests beantworten, davon gibt es halt so ein paar, eine Handvoll vielleicht oder allgemein vielleicht zweimal Anzahl der Cores plus eins oder so, was halt halbwegs optimal ist und solange die irgendwas ausliefern, sind die halt belegt und wenn ich jetzt einen Pfeil ausliefer, das groß ist oder einen kleinen Tab, der sehr wenig Bandbreite hat, dann kann das halt lange dauern und solange wie das dauert, ist der Worker-Prozess sozusagen belegt

00:23:33.640 --> 00:23:35.760
und wenn alle Worker-Prozesse belegt

00:23:35.760 --> 00:23:37.900
sind, dann kann niemand mehr anrufen

00:23:37.900 --> 00:23:38.520
und dann ist es schlecht.

00:23:38.900 --> 00:23:39.560
das hinausläuft.

00:23:40.400 --> 00:23:41.680
Und genau.

00:23:43.180 --> 00:23:44.720
Ja, daher sollte man das nicht machen,

00:23:44.840 --> 00:23:46.740
und das kann schnell passieren. Wenn man eine Webseite hat,

00:23:46.760 --> 00:23:47.860
da sind ja viele Bilder drauf.

00:23:48.880 --> 00:23:50.720
Auch die Browser, die fragen ja inzwischen

00:23:50.720 --> 00:23:52.380
Concurrent ab und so.

00:23:52.520 --> 00:23:55.040
Dann ist es halt relativ schnell vorbei mit den Workern.

00:23:55.840 --> 00:23:55.960
Und

00:23:55.960 --> 00:23:58.680
ja, dann müssen halt

00:23:58.680 --> 00:24:00.320
andere Clients warten.

00:24:00.320 --> 00:24:02.240
Und das ist natürlich schlecht, weil das hat halt

00:24:02.240 --> 00:24:04.340
direkten Einfluss auf die User Experience,

00:24:04.440 --> 00:24:06.380
weil entweder dauert es länger oder noch schlimmer.

00:24:06.500 --> 00:24:08.420
Es gibt halt eine Fehlermeldung, weil irgendwas timeoutet.

00:24:08.900 --> 00:24:10.500
Das heißt, man müsste die auch konkurrent bedienen.

00:24:11.240 --> 00:24:16.760
Genau, und das kann dieses Pre-Forked-Worker-Modell-Synchronen-Sachen-Ausliefern eigentlich nicht leisten.

00:24:17.560 --> 00:24:18.860
Deswegen wird immer davon abgeraten.

00:24:20.460 --> 00:24:25.440
Aber wir haben ja jetzt Async-Await in Python seit einiger Zeit.

00:24:26.760 --> 00:24:30.700
In Django noch nicht so lange, weil da konnte es halt lange nicht so richtig verwendet werden,

00:24:30.920 --> 00:24:37.200
weil die Standardschnittstelle zwischen Applikationsserver und Web-Framework ist halt WSGI.

00:24:37.920 --> 00:24:39.740
Und WSGI kann das halt einfach nicht.

00:24:40.640 --> 00:24:41.600
Da ist halt, das sind halt

00:24:41.600 --> 00:24:43.660
synchrone Funktionsaufrufe, da kannst du auch nichts machen.

00:24:44.820 --> 00:24:45.160
Und

00:24:45.160 --> 00:24:47.640
ASGI, also der quasi

00:24:47.640 --> 00:24:49.480
Nachfolger, der halt dann auch

00:24:49.480 --> 00:24:51.400
sozusagen asynchrone

00:24:51.400 --> 00:24:52.300
Dinge

00:24:52.300 --> 00:24:55.560
kann, der ist halt noch nicht so alt,

00:24:55.660 --> 00:24:57.260
ist auch quasi auch im Kontext von

00:24:57.260 --> 00:24:59.480
im

00:24:59.480 --> 00:25:00.660
Django-Kontext irgendwie entstanden.

00:25:01.040 --> 00:25:03.420
Der Standard ist von Andrew Godwin geschrieben worden,

00:25:03.420 --> 00:25:05.280
der halt auch... Ja, das habe ich im Janals-Projekt

00:25:05.280 --> 00:25:06.900
aus dem Janals-Projekt, das ist rausgefallen.

00:25:07.920 --> 00:25:35.340
Genau und damit geht das dann, aber Unterstützung für die Syntax war auch lange nicht möglich, weil Django lange Zeit noch Python 2 zum Beispiel unterstützt hat bis Dezember 2019, also bis Django 3 rausgekommen ist und mit Python 2 geht es gar nicht, weil da gibt es einfach nicht die Syntax für, so Async Await Syntax geht damit nicht und auch mit Python 3.5 ging das nicht gut.

00:25:35.340 --> 00:25:37.140
ich weiß ehrlich gesagt nicht genau, woran das

00:25:37.140 --> 00:25:39.120
liegt, also weil die Syntax kam eigentlich mit

00:25:39.120 --> 00:25:41.140
3.5, aber alle Bibliotheken, die das

00:25:41.140 --> 00:25:43.100
irgendwie, die Async Await unterstützen, die sagen

00:25:43.100 --> 00:25:44.980
alle immer, ja, erst ab Python 3.6, da ist wohl

00:25:44.980 --> 00:25:47.060
irgendwas Wichtiges noch passiert, aber ich habe nie so richtig

00:25:47.060 --> 00:25:49.060
rausgefunden, was. Vielleicht sind es auch

00:25:49.060 --> 00:25:50.760
einfach nur die F-Springs und alle sagen so,

00:25:51.100 --> 00:25:53.040
ach, wenn wir jetzt schon was Modernes haben, wollen wir auch F-Springs

00:25:53.040 --> 00:25:54.960
haben und dann geht das halt erst

00:25:54.960 --> 00:25:56.060
ab 3.6, ich habe keine Ahnung.

00:25:57.960 --> 00:25:58.580
Und ja.

00:25:58.840 --> 00:26:00.760
Aber ich meine, 3.5 und 3.6 macht jetzt für uns

00:26:00.760 --> 00:26:02.760
nicht so den Riesenunterschied, oder? Wir sind ja alle modern.

00:26:03.320 --> 00:26:05.180
Auch Debian ist inzwischen auf 3.8

00:26:05.180 --> 00:26:06.940
und oh wow, okay.

00:26:07.280 --> 00:26:09.400
Ja, genau.

00:26:09.520 --> 00:26:10.000
Jedenfalls also

00:26:10.000 --> 00:26:13.380
die Syntax kann man, also dass es überhaupt geht

00:26:13.380 --> 00:26:15.020
ist halt ab

00:26:15.020 --> 00:26:16.080
Django 3.0 so.

00:26:16.440 --> 00:26:18.420
Support für Python 2

00:26:18.420 --> 00:26:20.600
und für Python 3.5 gedroppt

00:26:20.600 --> 00:26:23.160
und seitdem gibt es auch

00:26:23.160 --> 00:26:25.260
Unterstützung für ASGI und halt auch

00:26:25.260 --> 00:26:26.540
prinzipiell die Möglichkeit

00:26:26.540 --> 00:26:29.020
AsyncIO-Syntax zu verwenden in Django.

00:26:29.400 --> 00:26:31.080
Aber es gab noch keine AsyncViews.

00:26:31.220 --> 00:26:33.040
Das heißt, man konnte keine

00:26:33.040 --> 00:26:34.940
AsyncFileResponse schreiben,

00:26:35.120 --> 00:26:36.460
weil, naja,

00:26:36.540 --> 00:26:38.600
Isingviews gab es halt einfach nicht. Und das kam

00:26:38.600 --> 00:26:40.600
erst dazu im August

00:26:40.600 --> 00:26:42.100
letzten Jahres, August 2020.

00:26:42.480 --> 00:26:43.800
Das heißt, es geht noch gar nicht so lange.

00:26:44.640 --> 00:26:45.860
August 2019 meinst du?

00:26:46.160 --> 00:26:46.680
Nee, 2020.

00:26:48.520 --> 00:26:50.040
Letztes Jahr war doch 2019.

00:26:50.820 --> 00:26:51.820
Ach ja, okay.

00:26:53.400 --> 00:26:54.020
Ach ja.

00:26:56.200 --> 00:26:56.680
Ja, okay,

00:26:56.740 --> 00:26:58.480
auf jeden Fall gibt es das erst seit ungefähr einem Jahr.

00:26:58.880 --> 00:27:00.620
Genau. Und damals hatte ich ja auch

00:27:00.620 --> 00:27:01.320
schon ein bisschen... Warum ist das cool?

00:27:02.400 --> 00:27:03.880
Genau, das ist halt total cool, weil

00:27:03.880 --> 00:27:06.120
das bedeutet eigentlich,

00:27:06.220 --> 00:27:08.280
dass man jetzt so richtig Async-Sachen mit Django

00:27:08.280 --> 00:27:10.320
tun kann. Was man auch nicht tun

00:27:10.320 --> 00:27:12.220
kann, was auch total cool wäre, aber das wird halt noch ein bisschen

00:27:12.220 --> 00:27:13.900
dauern, ist halt tatsächlich

00:27:13.900 --> 00:27:16.240
Async, die Datenbank

00:27:16.240 --> 00:27:18.160
fragen oder so, aber man hat zumindest

00:27:18.160 --> 00:27:20.280
schon mal Async-Views. Und das ist halt

00:27:20.280 --> 00:27:22.280
hilfreich.

00:27:22.340 --> 00:27:24.080
Ich hatte damals einen Artikel

00:27:24.080 --> 00:27:26.160
auch drüber geschrieben, mit Dominik zusammen.

00:27:27.500 --> 00:27:27.960
Genau, der ist sogar

00:27:27.960 --> 00:27:30.000
in der Zeitung erschienen, auf Deutsch dann, unter deinem Blog.

00:27:30.720 --> 00:27:31.440
Echt? Cool.

00:27:32.340 --> 00:27:33.620
Darf man das sagen, Entwickler?

00:27:33.880 --> 00:27:35.340
oder? Ja, ich glaube, ja.

00:27:35.360 --> 00:27:36.660
Schickle-Magazin war das.

00:27:37.580 --> 00:27:37.920
Und

00:27:37.920 --> 00:27:41.680
genau, da haben wir überlegt, okay, was für

00:27:41.680 --> 00:27:43.460
Anwendungsfälle gibt es denn jetzt eigentlich, wenn man schon

00:27:43.460 --> 00:27:44.520
Async-Kram machen kann?

00:27:45.740 --> 00:27:47.280
Und der

00:27:47.280 --> 00:27:49.560
Anwendungsfall, den wir dann da benutzt haben, war,

00:27:50.140 --> 00:27:50.820
du machst halt

00:27:50.820 --> 00:27:53.340
in der Django-Applikation halt vielleicht ganz viele

00:27:53.340 --> 00:27:55.560
API-Zugriffe irgendwo nach außen hin und

00:27:55.560 --> 00:27:57.180
möchtest halt nicht, dass sich die

00:27:57.180 --> 00:27:59.160
Latenzen, die du dann beim Abfragen dieser

00:27:59.160 --> 00:28:01.280
Requests hast, halt aufsummieren, sondern

00:28:01.280 --> 00:28:02.900
dass halt der

00:28:02.900 --> 00:28:05.660
die Latenz nur so lang ist, wie der längste

00:28:05.660 --> 00:28:07.540
Request, den du machst. Und dann schickst du einfach all die

00:28:07.540 --> 00:28:09.560
Requests, die du zu irgendwelchen APIs machst, halt gleichzeitig

00:28:09.560 --> 00:28:10.800
los und

00:28:10.800 --> 00:28:13.540
die Antworten kommen halt sozusagen dann

00:28:13.540 --> 00:28:15.480
auch concurrent zurück und

00:28:15.480 --> 00:28:17.600
nur, also die Latenz wird

00:28:17.600 --> 00:28:19.460
bestimmt durch die langsamste API,

00:28:19.760 --> 00:28:21.440
aber nicht mehr durch die Summe aller

00:28:21.440 --> 00:28:23.680
Requests. Und das

00:28:23.680 --> 00:28:25.600
macht es dann halt schon deutlich schneller. Also wenn du da viele

00:28:25.600 --> 00:28:27.440
APIs fragst, dann kann es sein, dass du da halt

00:28:27.440 --> 00:28:29.620
in Größenordnung schneller

00:28:29.620 --> 00:28:31.580
bist oder so. Und das ist

00:28:31.580 --> 00:28:32.740
dann ja schon praktisch.

00:28:33.840 --> 00:28:35.000
Und das war so der Anwendungsfall.

00:28:35.060 --> 00:28:37.120
Hatten wir da nicht auch drüber gesprochen in der

00:28:37.120 --> 00:28:38.620
Async-Episode? Ja, ja, bestimmt.

00:28:39.720 --> 00:28:41.240
Ja, genau, da hatten wir ja auch schon mal

00:28:41.240 --> 00:28:42.700
zwei Episoden dazu gemacht.

00:28:44.080 --> 00:28:45.040
Wir brauchen noch mehr.

00:28:45.760 --> 00:28:47.160
Thema, da kann man immer noch mal drüber sprechen.

00:28:47.960 --> 00:28:49.280
Ja, vielleicht sogar alle gleichzeitig.

00:28:49.280 --> 00:28:51.080
Wenn man ein Thema einmal drin hat, dann muss man das auch ein bisschen ausschalten.

00:28:51.340 --> 00:28:51.900
Ja, genau.

00:28:53.260 --> 00:28:55.080
Aber jetzt, genau, ist mir dann halt irgendwann,

00:28:55.120 --> 00:28:56.900
das war so Anfang des Jahres, dann dachte ich so,

00:28:56.960 --> 00:28:58.740
ach, wenn man jetzt schon so Async-Evade hat,

00:28:59.020 --> 00:29:00.900
vielleicht ist ja tatsächlich Files-Serven

00:29:00.900 --> 00:29:02.780
ein guter Anwendungsfall,

00:29:03.260 --> 00:29:05.180
weil es ist ja immer so ein bisschen hässlich,

00:29:05.620 --> 00:29:07.320
so richtig toll ist es nie und

00:29:07.320 --> 00:29:09.240
eigentlich könnte man ja jetzt eine Async

00:29:09.240 --> 00:29:11.140
File Response schreiben, die

00:29:11.140 --> 00:29:13.280
die Daten sozusagen da

00:29:13.280 --> 00:29:15.200
so asynchron rausstreamt, ohne

00:29:15.200 --> 00:29:17.160
zu blockieren und dann

00:29:17.160 --> 00:29:19.340
müsste das ja eigentlich, müsste ich ja quasi beliebig

00:29:19.340 --> 00:29:21.500
viele Clients

00:29:21.500 --> 00:29:23.200
den Files ausliefern können.

00:29:24.240 --> 00:29:25.200
Und dann habe ich

00:29:25.200 --> 00:29:26.660
dann halt so ein bisschen rumprobiert und

00:29:26.660 --> 00:29:28.980
hat so ein bisschen gedauert und irgendwann aber

00:29:28.980 --> 00:29:31.540
dachte ich so, okay, das funktioniert tatsächlich und

00:29:31.540 --> 00:29:33.360
ja, dann habe ich daraus halt

00:29:33.360 --> 00:29:35.420
dann hat

00:29:35.420 --> 00:29:37.440
der Johannes erzählt, dass er dann irgendwas

00:29:37.440 --> 00:29:39.420
bei der Django.eu eingereicht hat

00:29:39.420 --> 00:29:41.020
und da dachte ich so, das muss ich dann auch machen

00:29:41.020 --> 00:29:43.020
den Talk eingereicht haben

00:29:43.020 --> 00:29:43.840
der soziale Druck

00:29:43.840 --> 00:29:47.060
ja und

00:29:47.060 --> 00:29:49.180
genau, das war dann auch Thema

00:29:49.180 --> 00:29:51.260
des Talks im Grunde und ja, es

00:29:51.260 --> 00:29:53.200
funktioniert auch tatsächlich, ich habe jetzt

00:29:53.200 --> 00:29:55.180
ich habe unterwegs auch

00:29:55.180 --> 00:29:57.220
Methoden gefunden, wie man das gleiche hinkriegt

00:29:57.220 --> 00:29:59.240
und auch schon vorher hinkriegen

00:29:59.240 --> 00:30:00.760
konnte, ohne sich so zu verrenken.

00:30:01.680 --> 00:30:03.100
Insofern war es

00:30:03.100 --> 00:30:04.320
vielleicht alles nicht so richtig notwendig.

00:30:05.480 --> 00:30:07.060
Ja, aber das ist ja schon sauberer,

00:30:07.080 --> 00:30:08.840
was du da geschrieben hast. Wir haben ja die Tests

00:30:08.840 --> 00:30:11.240
gesehen und in einigen

00:30:11.240 --> 00:30:13.100
Tagen kann vielleicht jeder auch sich diesen Talk

00:30:13.100 --> 00:30:14.620
selber angucken. Ja, ich packe das.

00:30:15.060 --> 00:30:17.000
Ist ja schon deutlich sauberer und deutlich einfacher.

00:30:17.600 --> 00:30:19.120
Wirst du das auch an

00:30:19.120 --> 00:30:19.620
Django schicken?

00:30:20.680 --> 00:30:22.000
Ich mache dann einfach ein

00:30:22.000 --> 00:30:24.280
Party-Package draus.

00:30:25.640 --> 00:30:27.040
Das wäre ja prinzipiell was, was vielleicht

00:30:27.040 --> 00:30:28.800
auch für Django an sich interessant ist.

00:30:28.800 --> 00:30:30.460
Ja, das Problem ist,

00:30:31.220 --> 00:30:32.820
leider funktioniert es nicht so

00:30:32.820 --> 00:30:34.860
richtig, kann man es nicht einfach in Django,

00:30:34.940 --> 00:30:36.880
könnte man es nicht in Django reinbauen

00:30:36.880 --> 00:30:38.480
oder könnte man schon, aber dazu müsste man

00:30:38.480 --> 00:30:40.460
den ASGI-Händler, das ist so

00:30:40.460 --> 00:30:42.040
das Ding, was halt mit

00:30:42.040 --> 00:30:44.600
die Applikation ist, quasi die

00:30:44.600 --> 00:30:47.160
ASGI-Applikation, das ist halt der ASGI-Händler

00:30:47.160 --> 00:30:48.180
in Django.

00:30:49.140 --> 00:30:50.500
Ach, den hast du einfach mal gemunkeypatcht, oder?

00:30:50.660 --> 00:30:52.820
Naja, den müsste man anpassen

00:30:52.820 --> 00:30:53.900
und das ist natürlich nicht so schön.

00:30:54.140 --> 00:30:56.260
Ja gut, aber das ist in MPR auch prinzipiell möglich.

00:30:57.040 --> 00:30:59.180
Oder dass man Subklassen anbietet oder sowas.

00:30:59.280 --> 00:31:00.840
Ja, muss man

00:31:00.840 --> 00:31:02.980
mal mit jemandem

00:31:02.980 --> 00:31:04.320
drüber sprechen. Ja genau, dann machst du halt den

00:31:04.320 --> 00:31:06.860
ASCII mit Async-File-Response-Händler.

00:31:07.800 --> 00:31:08.820
Genau, aber den habe ich

00:31:08.820 --> 00:31:10.640
jetzt einfach erstmal in einem anderen Paket drin und wenn man

00:31:10.640 --> 00:31:12.340
das verwenden möchte, dann muss man das halt

00:31:12.340 --> 00:31:13.760
entweder get

00:31:13.760 --> 00:31:16.740
Async-File-Response-Händler

00:31:16.740 --> 00:31:17.600
oder Application

00:31:17.600 --> 00:31:20.440
importieren oder halt den Händler direkt

00:31:20.440 --> 00:31:22.300
und dann die Applikation selber instanziieren

00:31:22.300 --> 00:31:24.480
und dann geht das, aber das ist halt schon

00:31:24.480 --> 00:31:26.540
ein Umbau an Django. Das Problem ist, ich weiß halt nicht, was das alles

00:31:26.540 --> 00:31:27.220
kaputt machen würde.

00:31:27.460 --> 00:31:30.480
Da kann es schon sein, dass einige Dinge nicht mehr funktionieren.

00:31:30.840 --> 00:31:31.700
Ja, genau, dafür gibt es Tests.

00:31:32.900 --> 00:31:33.260
Ja.

00:31:34.520 --> 00:31:36.420
Ja, klingt auf jeden Fall ziemlich cool. Das heißt, man kann jetzt

00:31:36.420 --> 00:31:38.300
einfach mit dem Dango-Applikations-Server

00:31:38.300 --> 00:31:39.840
seine Files direkt ausliefern.

00:31:40.320 --> 00:31:42.020
Man muss sie nicht mehr irgendwie außen vom

00:31:42.020 --> 00:31:44.460
Web-Server quasi routen lassen, sondern man kann direkt sagen,

00:31:44.540 --> 00:31:46.160
Dango, hey, nimm die doch mal direkt aus.

00:31:46.240 --> 00:31:48.320
Was nutzt man dafür? Dango-Storages raus oder so

00:31:48.320 --> 00:31:49.680
und liefer die mal mit.

00:31:49.680 --> 00:31:50.960
Ja, und das, achso,

00:31:51.100 --> 00:31:53.500
das war damals, als ich den, damals,

00:31:53.700 --> 00:31:54.120
vor zwei Wochen,

00:31:54.580 --> 00:31:56.700
war das

00:31:56.700 --> 00:31:58.360
noch nicht so klar. Also man kann auch irgendwie

00:31:58.360 --> 00:32:00.440
ein selbst gehostetes S3

00:32:00.440 --> 00:32:01.820
oder so benutzen, weil das ist ja eigentlich

00:32:01.820 --> 00:32:04.400
auch mein Ziel. Ich habe es mit dem Filesystem gezeigt,

00:32:04.540 --> 00:32:06.420
aber Filesystem ist ja eigentlich so ein bisschen langweilig, weil

00:32:06.420 --> 00:32:08.500
Wie hostet man S3 selber? Minio?

00:32:08.840 --> 00:32:09.560
Minio, genau.

00:32:10.980 --> 00:32:12.440
Weil man möchte eigentlich nicht,

00:32:12.800 --> 00:32:14.080
dass User

00:32:14.080 --> 00:32:16.140
selbst so Content,

00:32:16.560 --> 00:32:18.500
Files, wo sie den Content kontrollieren, in das gleiche

00:32:18.500 --> 00:32:20.640
Filesystem nehmen kann, in dem die Applikation

00:32:20.640 --> 00:32:22.120
läuft. Das ist halt auch so ein bisschen gefährlich.

00:32:22.760 --> 00:32:24.480
Und man hat dann das Synchronisationsproblem,

00:32:24.580 --> 00:32:25.860
kann man natürlich irgendwie so ein

00:32:25.860 --> 00:32:28.180
Samba-Share nehmen oder NFS oder was weiß ich.

00:32:28.360 --> 00:32:28.620
Oder 7.

00:32:30.080 --> 00:32:32.000
Geht alles, aber ist halt auch so ein bisschen

00:32:32.000 --> 00:32:32.480
äh.

00:32:34.320 --> 00:32:35.340
Ancient Relaying.

00:32:36.220 --> 00:32:37.960
Ja, also die

00:32:37.960 --> 00:32:38.360
Standard

00:32:38.360 --> 00:32:42.220
Geschichte, wie man das selber hostet

00:32:42.220 --> 00:32:44.060
momentan, also so ein Object Store wie

00:32:44.060 --> 00:32:44.980
S3 oder so,

00:32:46.100 --> 00:32:47.420
ist halt wohl momentan Minio.

00:32:48.500 --> 00:32:50.160
Da müssen wir ja quasi direkt so einen kleinen Exkurs

00:32:50.160 --> 00:32:52.160
machen, weil an der Stelle, das hast du alles

00:32:52.160 --> 00:32:53.900
gezeigt auf deinem neuen

00:32:53.900 --> 00:32:54.500
Twitch-Stream.

00:32:55.780 --> 00:32:56.600
Genau, genau, genau.

00:32:56.960 --> 00:32:59.920
Die Entwicklung daran, die habe ich jetzt gerade mal gestreamt, weil ich dachte so,

00:33:00.180 --> 00:33:01.780
jetzt konnte ich dieses Atem-Mini-Dings

00:33:01.780 --> 00:33:03.920
da gar nicht auf den Talk einsetzen.

00:33:04.040 --> 00:33:05.260
Da muss ich es auf irgendwas anderes benutzen.

00:33:05.500 --> 00:33:07.760
Also Jochen hat tatsächlich in der letzten Woche

00:33:07.760 --> 00:33:09.600
oder in den letzten zwei Wochen ein bisschen mehr auf Twitch gestreamt

00:33:09.600 --> 00:33:11.640
und auf YouTube gleichzeitig und da seine Sachen

00:33:11.640 --> 00:33:13.520
hochgeladen. Da könnt ihr ihm ein bisschen beim Live-Programmieren

00:33:13.520 --> 00:33:15.560
mal gucken. Das ist vielleicht ein bisschen was anderes, als nur so

00:33:15.560 --> 00:33:17.380
zu theorisieren.

00:33:18.200 --> 00:33:19.680
Sondern halt auch mal tatsächlich live zu sehen,

00:33:19.760 --> 00:33:20.560
wie Jochen das denn so macht.

00:33:20.560 --> 00:33:22.360
Ich da vorsitze und keine Ahnung habe, was ich da eigentlich tue.

00:33:22.500 --> 00:33:25.000
Genau, Jochen ist auch nur Mensch und macht die ganze Zeit Fehler und so und mir fällt

00:33:25.000 --> 00:33:27.360
wenn ich da vorsitze, ich möchte die ganze Zeit

00:33:27.360 --> 00:33:28.140
hier so einen Stock nehmen und

00:33:28.140 --> 00:33:31.180
Bist du auch wünschend gegen Jochen? Kann man sich wünschen, was du

00:33:31.180 --> 00:33:33.200
programmierst? Oder programmierst du nur, was

00:33:33.200 --> 00:33:33.860
dir Freude macht?

00:33:35.560 --> 00:33:35.920
Ja,

00:33:36.580 --> 00:33:38.860
prinzipiell kein Problem, ja klar.

00:33:40.420 --> 00:33:41.180
Vielleicht gegen eine

00:33:41.180 --> 00:33:42.420
kleine Spende, kannst du vielleicht

00:33:42.420 --> 00:33:44.680
Requests annehmen.

00:33:45.120 --> 00:33:45.520
Ja, genau.

00:33:47.220 --> 00:33:49.180
Mir sind auch immer wieder aufgefallen, schöne Sachen da

00:33:49.180 --> 00:33:50.880
bei dir, die du schön gemacht hast.

00:33:51.680 --> 00:33:53.780
Ich packe den Link mal rein, mal gucken, ob

00:33:53.780 --> 00:33:55.840
da... Immer wenn ich denke, hä, das

00:33:55.840 --> 00:33:57.720
hätte ich doch ganz anders gemacht, fällt Jochen dann eine halbe Stunde

00:33:57.720 --> 00:33:59.020
später auf, oh, das kann man ja auch anders machen.

00:33:59.480 --> 00:34:01.460
Ja, aber ich meine, so ist das halt.

00:34:01.640 --> 00:34:03.600
Mir sind da auch schon tatsächlich live Dinge passiert,

00:34:03.600 --> 00:34:05.720
wie, ich habe

00:34:05.720 --> 00:34:08.060
da live einen Bug in irgendeiner

00:34:08.060 --> 00:34:09.680
Library gefunden, sozusagen, und

00:34:09.680 --> 00:34:11.540
dann sitzt da, also ich hatte bisher

00:34:11.540 --> 00:34:13.060
immer so den Impuls dann zu sagen, so, okay,

00:34:13.620 --> 00:34:15.560
das muss ich dann mal irgendwann debuggen, wenn ich Zeit habe, weil

00:34:15.560 --> 00:34:16.780
das ist zu langweilig.

00:34:18.080 --> 00:34:19.520
Immer wieder, aber

00:34:19.520 --> 00:34:21.540
das ging, glaube ich. Also ich meine, aber es ist ja vielleicht

00:34:21.540 --> 00:34:23.420
auch ganz gut mal zu sehen, was man da so

00:34:23.420 --> 00:34:25.360
rumsucht. Also Jochen benutzt dafür

00:34:25.360 --> 00:34:27.320
übrigens NBDEV.

00:34:27.320 --> 00:34:29.120
Da hatten wir auch schon mal eine Folge ein bisschen eingeleitet.

00:34:29.440 --> 00:34:31.080
Genau, das mache ich eigentlich nur, weil

00:34:31.080 --> 00:34:33.220
ich das Projekt ganz cool fand.

00:34:33.300 --> 00:34:35.300
Das mache ich jetzt nicht unbedingt mit allen Sachen so, aber für das

00:34:35.300 --> 00:34:36.680
Ding dachte ich, kann ich das machen.

00:34:36.680 --> 00:34:38.460
Du musst das ja nicht nochmal anders machen, also nochmal

00:34:38.460 --> 00:34:41.460
in VI und einmal in VS Code

00:34:41.460 --> 00:34:43.260
oder so, da können wir mal schauen. Vielleicht sogar in PyCharm,

00:34:43.320 --> 00:34:45.200
dass man so ein bisschen einmal zeigt, wie das denn überall so geht.

00:34:45.740 --> 00:34:47.180
Genau, das habe ich

00:34:47.180 --> 00:34:48.260
auf jeden Fall auch vor.

00:34:50.080 --> 00:34:50.940
Ja, genau.

00:34:51.360 --> 00:34:52.740
Vielleicht kriegen wir das ja auch mit dem Podcast nochmal

00:34:52.740 --> 00:34:53.760
da so ein bisschen

00:34:53.760 --> 00:34:57.240
den vielleicht so ein bisschen

00:34:57.240 --> 00:34:59.600
Video-Live-

00:34:59.600 --> 00:35:00.840
Live-Schalter gestalten.

00:35:01.140 --> 00:35:03.260
Mal gucken, ob wir dafür Zuschauer

00:35:03.260 --> 00:35:04.240
begeistern können.

00:35:05.620 --> 00:35:06.640
Ja, cool. Genau.

00:35:07.620 --> 00:35:09.280
Ich glaube, noch jemand hat halt tatsächlich

00:35:09.280 --> 00:35:10.320
einen Workshop bei der dann begonnen.

00:35:10.440 --> 00:35:13.520
Ja, ich bin ja

00:35:13.520 --> 00:35:14.820
quasi schuld dran, dass der ja von dem

00:35:14.820 --> 00:35:17.300
Talk überhaupt eingereicht hat, weil ich

00:35:17.300 --> 00:35:19.280
hab das nämlich auch gemacht und das war bei mir auch so ein bisschen

00:35:19.280 --> 00:35:20.820
so halb spontan.

00:35:22.180 --> 00:35:23.180
Also lange geplant.

00:35:24.320 --> 00:35:40.040
Nee, eigentlich überhaupt nicht, weil die Botschaft auf der Webseite, die die Organisierer, die übrigens großartig sind, so verbreiten, ist ja, ja, selbst wenn du dir nicht sicher bist, probier es halt mal. Komm, reich was ein, im schlimmsten Fall machst du keinen Talk. Im schlimmsten Fall musst du einen Talk machen.

00:35:41.620 --> 00:36:08.440
Und so war es dann auch so ein bisschen. Ich habe mir überlegt, was andere Menschen interessieren könnte und was ich Interessantes sagen könnte und habe es einfach mal so ein kleines bisschen reingeschrieben. Die Talk-Beschreibung hat sich dann auch im Laufe der Zeit noch mehrmals geändert. Es ist auch nicht genau das gewesen, was ich mir anfänglich gedacht hatte. Aber ja, ich habe einen Talk eingereicht, der dann als Workshop akzeptiert wurde. Und es ging so ein bisschen darum, wie ich Django-Projekte mache.

00:36:08.740 --> 00:36:11.700
Also so ein bisschen das, was du auch von dir in unseren Podcast-Folgen erzählt hast wahrscheinlich.

00:36:11.760 --> 00:36:17.760
Genau, so ein bisschen Best Practices oder Programmierer-Erfahrung.

00:36:17.940 --> 00:36:19.480
Ich programmiere jetzt schon sehr lange in Django.

00:36:20.400 --> 00:36:23.520
Ich habe mal nachgeguckt, welches die erste Version war, die ich benutzt habe.

00:36:23.640 --> 00:36:24.840
Das war die 0.96.

00:36:27.980 --> 00:36:30.980
Ist schon eine ganze Weile her, das war 2005.

00:36:32.180 --> 00:36:35.480
Also ich habe jetzt tatsächlich 15 Jahre Django-Erfahrung.

00:36:35.480 --> 00:36:37.140
15? Das ist ja noch 2020.

00:36:38.740 --> 00:36:39.660
Ja, wieso?

00:36:39.900 --> 00:36:42.420
Ich habe den Witz eben nicht verstanden, deswegen habe ich ihn noch nicht gefasst.

00:36:43.520 --> 00:36:48.080
Wir müssen den Witz jetzt einfach so lange wiederholen, bis jeder glaubt.

00:36:49.920 --> 00:36:59.620
Ich habe also über 15 Jahre Django-Erfahrung und da sammeln sich einfach so Dinge an, die man sich angewöhnt, an die man tut und die dann auch sinnvoll sind.

00:37:00.560 --> 00:37:06.940
Und Best Practices dazu zu sagen, ist ein bisschen zu hoch geflogen, weil Best Practices heißt ja, dass das jeder so macht oder jeder so machen sollte.

00:37:08.020 --> 00:37:09.160
Und so weit will ich gar nicht gehen.

00:37:09.520 --> 00:37:11.380
Ich will eigentlich nur sagen, hier folgende Dinge

00:37:11.380 --> 00:37:12.840
haben sich für mich bewährt und

00:37:12.840 --> 00:37:14.780
hier ist auch die Begründung.

00:37:15.360 --> 00:37:17.120
Und ja, das habe ich dann so ein bisschen da reingepackt.

00:37:17.360 --> 00:37:19.140
Also ich hatte vier Bereiche

00:37:19.140 --> 00:37:20.640
mehr aufgeschrieben.

00:37:21.260 --> 00:37:22.540
Während des Live-Talks

00:37:22.540 --> 00:37:25.340
sind es leider nur drei Bereiche geworden, aber

00:37:25.340 --> 00:37:27.300
es gibt ja genau wie beim

00:37:27.300 --> 00:37:29.340
Jochen auch eine sehr frühzeitig eingereichte

00:37:29.340 --> 00:37:30.100
Aufnahme,

00:37:31.040 --> 00:37:33.320
die auch auf meiner Webseite

00:37:33.320 --> 00:37:35.340
zur Verfügung steht. Können wir nachher gerne verlinken.

00:37:35.360 --> 00:37:37.380
Wagen euch auch ein bisschen mehr für Einsteiger

00:37:37.380 --> 00:37:39.340
geeignet, glaube ich, den Talk, den du gemacht hast, das was doch

00:37:39.340 --> 00:37:41.480
jetzt. Ja, es war so ein bisschen

00:37:41.480 --> 00:37:43.380
gedacht, dass ich vier verschiedene Bereiche habe

00:37:43.380 --> 00:37:45.400
und manche sind für Einsteiger gut und manche

00:37:45.400 --> 00:37:47.540
sind eher für Fortgeschrittenere

00:37:47.540 --> 00:37:47.720
gut.

00:37:49.860 --> 00:37:51.420
Was dann halt am Ende so ein kleines

00:37:51.420 --> 00:37:53.380
bisschen rausgefallen ist. Diese Einsteiger

00:37:53.380 --> 00:37:55.420
Sachen, wobei auch erfahrene

00:37:55.420 --> 00:37:57.140
Leute, also ich

00:37:57.140 --> 00:37:59.200
wechsle da immer so hin und her. Der Bereich,

00:37:59.940 --> 00:38:01.400
der mich da hauptsächlich beschäftigt

00:38:01.400 --> 00:38:02.320
war, ist Projektstruktur.

00:38:03.260 --> 00:38:05.600
Wo kommt Code hin? Wie heißen die Dateien?

00:38:05.920 --> 00:38:07.220
Wie sorge ich dafür, dass ich

00:38:07.220 --> 00:38:08.220
die Sachen alle wiederfinde?

00:38:09.060 --> 00:38:11.260
Wie sorge ich dafür, dass ich auch in einem großen Projekt

00:38:11.260 --> 00:38:13.360
den Überblick bewahre? Und sowas

00:38:13.360 --> 00:38:15.280
halt. Und ich wechsle da immer

00:38:15.280 --> 00:38:17.440
so hin und her. Es gibt ja Leute, die sind da ganz krass drauf.

00:38:17.560 --> 00:38:19.200
Die haben dann ihre extrem

00:38:19.200 --> 00:38:20.840
angepassten Cookie-Cutter-Vorlagen,

00:38:21.340 --> 00:38:23.120
wo alles anders ist, wo alles

00:38:23.120 --> 00:38:23.700
Custom ist.

00:38:25.560 --> 00:38:27.120
Und es gibt Leute, die benutzen Django

00:38:27.120 --> 00:38:28.460
Start Project. Und ich

00:38:28.460 --> 00:38:30.560
wechsle da immer so ein bisschen hin und her.

00:38:30.840 --> 00:38:33.100
Ich sehe die Vorteile von beidem. Und in

00:38:33.100 --> 00:38:34.940
den letzten Jahren bin ich mehr so in Richtung

00:38:34.940 --> 00:38:36.300
Django Start Project gegangen.

00:38:37.220 --> 00:38:38.620
Weil das schon eine gute Basis

00:38:38.620 --> 00:38:39.800
ist und weil das jeder machen kann

00:38:39.800 --> 00:38:42.540
und weil das

00:38:42.540 --> 00:38:44.400
jeder auch versteht. Aber das hat so

00:38:44.400 --> 00:38:46.700
ein paar Dinge, die mir da nicht so gut gefallen.

00:38:46.960 --> 00:38:47.860
Zum Beispiel das Apps-Folder.

00:38:48.480 --> 00:38:50.220
Zum Beispiel der Apps-Folder, ja. Ich finde,

00:38:50.540 --> 00:38:52.560
alle Apps, die man selbst in seinem Code

00:38:52.560 --> 00:38:54.500
hat, die gehören in ein eigenes Verzeichnis. Die gehören

00:38:54.500 --> 00:38:56.240
nicht in das Projektverzeichnis rein.

00:38:56.580 --> 00:38:58.460
Bei dem Projektverzeichnis sind ganz viele andere Sachen drin.

00:38:58.600 --> 00:39:00.820
Config zum Beispiel. Und dass das Config-Verzeichnis

00:39:00.820 --> 00:39:02.380
nicht Config heißt, ist auch sowas.

00:39:03.600 --> 00:39:04.440
Passe ich in jedem

00:39:04.440 --> 00:39:06.220
meiner Projekte an, ja. Und

00:39:06.220 --> 00:39:08.380
das einfach mal sozusagen zusammenzuholen

00:39:08.380 --> 00:39:10.280
und zusammenzufassen und ein bisschen drüber zu sprechen

00:39:10.280 --> 00:39:10.920
auch, was

00:39:10.920 --> 00:39:13.740
da für Schritte drin sind.

00:39:14.120 --> 00:39:16.180
War super hilfreich. Inzwischen habe ich das

00:39:16.180 --> 00:39:18.180
Ganze auch in ein Template verpasst. Django

00:39:18.180 --> 00:39:20.560
hat tatsächlich einen Template-Mechanismus

00:39:20.560 --> 00:39:22.120
für Startproject und für Startapp.

00:39:22.840 --> 00:39:24.180
Den kannte ich auch noch nicht. Das

00:39:24.180 --> 00:39:25.840
fand ich auch sehr interessant. Das wusste ich nicht.

00:39:26.320 --> 00:39:28.120
Vollnützliche Informationen, ja. Echt sehr gut.

00:39:28.900 --> 00:39:30.100
Ich habe da jetzt auch inzwischen

00:39:30.100 --> 00:39:32.460
das so eben zusammengefasst,

00:39:32.560 --> 00:39:34.120
dass man also mit Startproject

00:39:34.120 --> 00:39:35.940
slash slash Template

00:39:35.940 --> 00:39:38.620
geht tatsächlich sogar von GitHub direkt,

00:39:39.560 --> 00:39:41.080
dass man

00:39:41.080 --> 00:39:42.840
da meine Konventionen

00:39:42.840 --> 00:39:44.820
reinnehmen kann, die fast genauso sind wie die

00:39:44.820 --> 00:39:46.140
von Django und

00:39:46.140 --> 00:39:48.400
eben da mehr Struktur reinbringen.

00:39:49.020 --> 00:39:50.700
Oh, das finde ich auch nochmal interessant, wie man

00:39:50.700 --> 00:39:52.480
das nochmal aufsetzt und das editiert, dass man sein

00:39:52.480 --> 00:39:54.540
eigenes Skeleton-Start-Template

00:39:54.540 --> 00:39:56.760
über das Django-Start-Project-Kommando

00:39:56.760 --> 00:39:58.240
reinbekommt. Das fände ich auch nochmal spannend.

00:39:58.240 --> 00:40:00.120
Ja, können wir gerne mal

00:40:00.120 --> 00:40:02.400
besprechen oder vielleicht machen wir da einfach eine Bibliothek

00:40:02.400 --> 00:40:04.820
dafür, Dominik. Wollte ich sowieso noch

00:40:04.820 --> 00:40:06.400
machen. Können wir mal zusammenprogrammieren.

00:40:06.960 --> 00:40:08.700
Genau, also es war einfach so ein bisschen, wie

00:40:08.700 --> 00:40:10.780
entwickle ich und was hat sich für mich bewährt

00:40:10.780 --> 00:40:11.260
und

00:40:11.260 --> 00:40:14.680
dann eben, genau,

00:40:14.780 --> 00:40:16.340
so ein bisschen im Dialog, so ein bisschen

00:40:16.340 --> 00:40:18.680
drüber sprechen, was bei den anderen

00:40:18.680 --> 00:40:20.640
so ist. Und das hat super gut funktioniert. Das ist auch, glaube ich,

00:40:20.640 --> 00:40:21.360
ganz gut angekommen.

00:40:23.620 --> 00:40:24.220
Klingt spannend.

00:40:25.740 --> 00:40:26.560
Müsst ihr euch auf jeden Fall mal angucken.

00:40:26.560 --> 00:40:27.540
Kommt auch in zehn Tagen.

00:40:27.860 --> 00:40:29.020
Genau, wir verlinken das.

00:40:29.200 --> 00:40:32.440
Oder eben meine Aufnahme ist schon auf der Seite.

00:40:33.940 --> 00:40:34.580
Das war so

00:40:34.580 --> 00:40:36.280
die sechste oder siebte Aufnahme, die ich gemacht habe.

00:40:36.400 --> 00:40:37.060
Also die ist ganz okay.

00:40:37.900 --> 00:40:40.300
Ja, das fand ich auch, ehrlich gesagt, damit hätte ich nicht gerechnet,

00:40:40.420 --> 00:40:42.560
wie oft man dann ein paar Mal aufgenommen

00:40:42.560 --> 00:40:44.060
und dann passiert irgendein Scheiß.

00:40:44.480 --> 00:40:46.140
Das war einfach nochmal.

00:40:46.280 --> 00:40:47.720
Fällt einem die Kaffeetasse aus der Hand.

00:40:47.720 --> 00:40:49.860
Bei der letzten Aufnahme, die ich

00:40:49.860 --> 00:40:51.680
nehmen wollte, das war dann auch schon am Tag der

00:40:51.680 --> 00:40:53.480
Abgabe, habe ich

00:40:53.480 --> 00:40:55.460
drei verschiedene Aufnahmen gemacht.

00:40:55.560 --> 00:40:57.740
Audio-Aufnahme und Kamera-Aufnahme und

00:40:57.740 --> 00:40:59.740
Screencast. Und da wollte ich

00:40:59.740 --> 00:41:01.560
zusammenschneiden und dann war der Screencast kaputt.

00:41:03.880 --> 00:41:05.460
Und dann habe ich gedacht, jetzt muss ich nochmal

00:41:05.460 --> 00:41:07.900
eine Stunde mich hinsetzen und nochmal das

00:41:07.900 --> 00:41:09.860
ganze Ding machen. Aber zum Glück war es nur die

00:41:09.860 --> 00:41:11.300
Datei auf der SSD, die

00:41:11.300 --> 00:41:14.020
auf der mobilen SSD, die ich fertig kopiert hatte.

00:41:14.800 --> 00:41:16.020
Konnte ich dann tatsächlich noch retten.

00:41:16.180 --> 00:41:17.320
Und da war ich so,

00:41:18.720 --> 00:41:19.200
ich hätte sonst,

00:41:19.560 --> 00:41:21.680
der Rest des Tages wäre sonst futsch gewesen.

00:41:21.760 --> 00:41:23.760
Ja, also dein Probevideo ist auch abgestürzt, glaube ich,

00:41:23.900 --> 00:41:25.720
30 Sekunden vor Ende. Das heißt, man hat deine Grußworte

00:41:25.720 --> 00:41:27.680
nicht mehr ganz mitbekommen. Das hast du ja dann auch noch gefixt.

00:41:28.240 --> 00:41:29.680
Habe ich auch noch gefixt, genau. Also es

00:41:29.680 --> 00:41:31.780
gab da verschiedene Aufnahmen, die alle nicht so gut

00:41:31.780 --> 00:41:33.740
waren und dann gab es alle, die ganz okay waren.

00:41:33.760 --> 00:41:36.080
Also ihr merkt, es ist auch eine relativ viel technische Detailarbeit

00:41:36.080 --> 00:41:37.740
hinten. Ja, aber tatsächlich

00:41:37.740 --> 00:41:39.740
erstaunlich viel mehr Vorbereitung,

00:41:40.040 --> 00:41:41.720
als ich gedacht hätte.

00:41:41.880 --> 00:41:43.500
Genau. Und aber

00:41:43.500 --> 00:41:45.240
was ich sagen muss, also das war

00:41:45.240 --> 00:41:47.680
dann, da war Johannes' Vortrag auch echt

00:41:47.680 --> 00:41:48.600
einer der

00:41:48.600 --> 00:41:51.540
positiv herausstechendsten,

00:41:51.680 --> 00:41:53.740
also sowohl Video- als auch Audioqualität war gut.

00:41:55.720 --> 00:41:55.860
Während

00:41:55.860 --> 00:41:57.800
das aber, das war...

00:41:57.800 --> 00:41:58.120
Ja, ja.

00:41:59.320 --> 00:42:01.080
Tatsächlich muss man leider sagen, also ich fand,

00:42:01.480 --> 00:42:03.400
oft war das nicht so gut. Ich hab dann

00:42:03.400 --> 00:42:05.700
ich hatte während der Konferenz gar nicht so richtig

00:42:05.700 --> 00:42:07.100
Zeit, das live zu verfolgen, weil

00:42:07.100 --> 00:42:09.680
Dinge

00:42:09.680 --> 00:42:11.340
passieren, genau.

00:42:11.940 --> 00:42:13.560
Aber ich habe die dann alle versucht

00:42:13.560 --> 00:42:15.680
nachzuhören hinterher und habe die dann

00:42:15.680 --> 00:42:17.960
halt auf dem Telefon

00:42:17.960 --> 00:42:19.280
laufen lassen,

00:42:19.700 --> 00:42:21.640
weil, ja, auch hier komme ich nicht von Rechner

00:42:21.640 --> 00:42:23.740
setzen. Dinge passieren, man hat keine Zeit.

00:42:24.960 --> 00:42:25.740
Und das ging

00:42:25.740 --> 00:42:27.620
auch ganz gut, aber was

00:42:27.620 --> 00:42:29.740
mich halt dann schon so nach dem dritten, vierten

00:42:29.740 --> 00:42:31.480
Talk, den ich gehört habe, angenervt hat, ist halt,

00:42:31.640 --> 00:42:33.360
dass die Audioqualität oft nicht gut

00:42:33.360 --> 00:42:35.280
ist, weil was viele Leute dann

00:42:35.280 --> 00:42:37.260
machen ist, sie stellen sich halt

00:42:37.260 --> 00:42:39.260
nehmen halt ihr Laptop oder sonst irgendwas und stellen sich dann

00:42:39.260 --> 00:42:41.080
halt irgendwie ein paar Meter dahinter, damit sie halt irgendwie

00:42:41.080 --> 00:42:43.220
zu sehen sind und dann sind sie halt weit

00:42:43.220 --> 00:42:45.380
vom Mikrofon weg und das Mikrofon ist schon schlecht

00:42:45.380 --> 00:42:47.240
und dann wird das nochmal

00:42:47.240 --> 00:42:49.260
kaputt komprimiert von irgendwie Zoom

00:42:49.260 --> 00:42:51.180
oder so und dann gehen die Lüfter an und

00:42:51.180 --> 00:42:53.120
dann ist es schwer zu

00:42:53.120 --> 00:42:55.060
verstehen. Also ich hatte tatsächlich bei einigen

00:42:55.060 --> 00:42:57.160
Talks das Problem, dass ich kaum verstanden

00:42:57.160 --> 00:42:59.180
habe und ich habe die Lautstärke auf dem Telefon

00:42:59.180 --> 00:43:01.180
komplett aufgedreht und trotzdem Schwierigkeiten

00:43:01.180 --> 00:43:03.060
gehabt, das richtig zu verstehen und es ist

00:43:03.060 --> 00:43:04.640
vor allen Dingen auch anstrengend,

00:43:04.700 --> 00:43:05.660
selbst wenn man es verstehen kann,

00:43:06.280 --> 00:43:08.680
Audio zu hören, wo man immer so,

00:43:08.960 --> 00:43:10.680
dass es halt so schlecht ist, dass man sich

00:43:10.680 --> 00:43:12.660
wirklich anstrengen muss, um es hören zu können.

00:43:13.380 --> 00:43:14.900
Und da denke ich vielleicht

00:43:14.900 --> 00:43:16.460
auch manchmal, vielleicht sollte man,

00:43:16.560 --> 00:43:18.660
da gab es ja auch so einen Talk, den gab es

00:43:18.660 --> 00:43:20.140
diesmal nicht, aber glaube ich bei der letzten

00:43:20.140 --> 00:43:21.580
DjangoCon EU,

00:43:22.160 --> 00:43:23.880
How to get on the stage.

00:43:25.860 --> 00:43:26.520
Der war verlinkt,

00:43:26.520 --> 00:43:28.400
der war verlinkt für die Sprecher, damit die wissen,

00:43:28.520 --> 00:43:29.120
was auf sie zukommt.

00:43:29.940 --> 00:43:32.540
Und vielleicht kann man irgendwie so, wie kriegt man

00:43:32.540 --> 00:43:34.380
eigentlich zumindest verständliches Audio

00:43:34.380 --> 00:43:36.480
und nicht so, beim Video ist

00:43:36.480 --> 00:43:38.480
ja fast egal, das ist gar nicht so furchtbar

00:43:38.480 --> 00:43:39.780
wichtig, aber ich finde das Audio ist halt schon

00:43:39.780 --> 00:43:42.460
so das halt, was man verstehen können

00:43:42.460 --> 00:43:44.500
sollte, wenn man den Inhalt mitbekommen möchte

00:43:44.500 --> 00:43:46.440
und wie kriegt man das so hin, dass man das

00:43:46.440 --> 00:43:48.160
verstehen kann und dass das nicht total schrecklich ist

00:43:48.160 --> 00:43:50.360
und ja, weil das war

00:43:50.360 --> 00:43:52.160
durchgängig, fand ich bei

00:43:52.160 --> 00:43:54.500
vielen nicht gut. Es gab

00:43:54.500 --> 00:43:56.200
ein paar Ausnahmen, eben Johannes eine

00:43:56.200 --> 00:43:58.040
löbliche Ausnahme, aber

00:43:58.040 --> 00:43:59.940
bei vielen war das nicht so richtig toll.

00:43:59.940 --> 00:44:00.520
Man tut, was man kann.

00:44:02.540 --> 00:44:17.280
Ja, das ist schade, dass es dann oft an so technischen Sachen auch hängt, aber das ist halt wirklich bei so einer Remote-Konferenz eine sehr inhomogene Mischung von Technik und Menschen und Ideen und Anforderungen und Zeit auch.

00:44:19.560 --> 00:44:22.020
Nicht mir ist doch völlig klar, dass ich hier damit beschäftigen möchte.

00:44:25.100 --> 00:44:31.200
Was man eigentlich bräuchte, wäre irgendwie so Sets, die man verschickt, wo eine gute Kamera dabei ist und ein gutes Mikrofon und die dann hinterher wieder zurückgeschickt werden.

00:44:31.460 --> 00:44:33.360
und irgendwie ein Tutorial, wie man das anschließt

00:44:33.360 --> 00:44:35.100
und wie man das, weil es ist halt dummerweise,

00:44:35.180 --> 00:44:37.280
es ist leider schwieriger, als man so denkt

00:44:37.280 --> 00:44:39.120
und genau. Ja, eigentlich macht man alles mit

00:44:39.120 --> 00:44:41.420
so bunten Kabeln, die immer genau an die richtigen Stecker passen,

00:44:41.500 --> 00:44:42.820
also die Stecker sehen genau so aus, wie die klingen

00:44:42.820 --> 00:44:45.260
und dann steckt man es ein und dann hat man auf einen Knopf und dann läuft es.

00:44:46.060 --> 00:44:47.240
Ja, USB, einfach nur

00:44:47.240 --> 00:44:48.060
einen USB-Anschluss.

00:44:48.620 --> 00:44:51.600
Ja, was mich tatsächlich so ein bisschen,

00:44:51.840 --> 00:44:53.160
was mir so ein bisschen

00:44:53.160 --> 00:44:54.520
negativ aufgefallen ist, war, dass

00:44:54.520 --> 00:44:57.260
diese Zoom-Meetings oft qualitativ

00:44:57.260 --> 00:44:58.360
nicht so cool waren, ja.

00:44:59.000 --> 00:45:01.100
Also ich habe jetzt auch nicht die beste Kamera,

00:45:01.460 --> 00:45:03.920
aufgestellt gehabt, aber ich sah halt auf dem Bild

00:45:03.920 --> 00:45:04.960
echt krümelig aus auch.

00:45:05.820 --> 00:45:07.800
Und danach, nach den

00:45:07.800 --> 00:45:09.880
Talks, waren immer noch Jitsi,

00:45:10.300 --> 00:45:11.960
hatten sie immer noch einen Jitsi-Raum für den jeweiligen

00:45:11.960 --> 00:45:13.720
Talk, auch super, ja, großartige Idee,

00:45:14.520 --> 00:45:15.940
dass man sozusagen noch so dieses Gefühl

00:45:15.940 --> 00:45:17.840
hat, ich gehe jetzt vor zu dem Sprecher so, ich gehe

00:45:17.840 --> 00:45:19.940
zur Bühne und spreche noch fünf Minuten mit dem.

00:45:20.880 --> 00:45:21.780
Haben sie super hingekriegt

00:45:21.780 --> 00:45:23.820
und da war die Bildqualität bei den Sprechern dann

00:45:23.820 --> 00:45:25.780
oft wesentlich besser als vorher in diesem Zoom-Meeting.

00:45:27.300 --> 00:45:27.840
Das ist

00:45:27.840 --> 00:45:28.940
natürlich schon irgendwie schade.

00:45:29.960 --> 00:45:30.900
Das ist schon irgendwie schade.

00:45:31.240 --> 00:45:33.920
Aber von der ganzen Technikkritik

00:45:33.920 --> 00:45:34.860
jetzt hier und den Bildern.

00:45:35.440 --> 00:45:37.300
Was hat euch denn inhaltlich noch super gefallen?

00:45:38.140 --> 00:45:40.000
Aber das ist halt das Einzige, was man kritisieren

00:45:40.000 --> 00:45:41.800
kann. Das alles andere war halt super.

00:45:42.000 --> 00:45:43.720
Die Vorträge waren super und

00:45:43.720 --> 00:45:45.340
die Community war super.

00:45:46.520 --> 00:45:47.920
Die hatten ein Tool, das heißt

00:45:47.920 --> 00:45:48.600
Gather Town.

00:45:49.280 --> 00:45:50.640
Oh ja, Gather Town ist großartig.

00:45:51.340 --> 00:45:53.240
Da kann man nicht rumlaufen mit einem kleinen Avatar

00:45:53.240 --> 00:45:55.800
und sich dann quasi live auf dem Konferenzgelände

00:45:55.800 --> 00:45:57.140
treffen mit so einem Pixel-Avatar.

00:45:57.540 --> 00:45:59.600
Und da kann man sich auch dann sehen, weil dann nämlich, wenn man sich da live

00:45:59.600 --> 00:46:01.520
begegnet, dann geht nämlich die Kamera an und man kann

00:46:01.520 --> 00:46:03.520
den Ton hören und dann kann man sich irgendwie auf dem Dorfplatz

00:46:03.520 --> 00:46:05.380
versammeln oder ich weiß jetzt nicht genau, ich war gar nicht ja bei der

00:46:05.380 --> 00:46:06.640
Dango Condor Live im Gather Town.

00:46:07.300 --> 00:46:09.200
Es hat einfach eine Räumlichkeit,

00:46:09.480 --> 00:46:11.560
du bist nicht, wenn du in einem Jitsi bist

00:46:11.560 --> 00:46:13.480
oder in einem Slack oder so, dann bist du ja immer mit allen

00:46:13.480 --> 00:46:15.320
Leuten gleichzeitig am Sprechen

00:46:15.320 --> 00:46:17.520
und das ist zwar schön, ja, weil

00:46:17.520 --> 00:46:19.500
du mit allen Leuten gleichzeitig sprechen kannst, aber es ist auch

00:46:19.500 --> 00:46:21.420
so ein bisschen erschreckend, weil dir alle Leute immer

00:46:21.420 --> 00:46:23.300
zuhören, ja, weil alles public ist.

00:46:23.500 --> 00:46:25.440
Ja und außerdem meinte ich, die Leute reden vielleicht dann gar nicht,

00:46:25.520 --> 00:46:27.420
weil irgendwer immer redet halt. Ja genau, weil man sich

00:46:27.420 --> 00:46:27.800
nicht traut.

00:46:29.600 --> 00:46:34.720
Oder man kann an den Stand gehen von den Sponsoren

00:46:34.720 --> 00:46:36.400
und kann sich da was zeigen lassen.

00:46:36.540 --> 00:46:38.900
Oder man kann sich an den Tisch setzen, wo schon vier Leute sitzen

00:46:38.900 --> 00:46:41.260
und dann weißt du, es sind genau vier Leute da und nicht 80.

00:46:42.620 --> 00:46:44.700
Und das macht einfach ein ganz nettes Gefühl.

00:46:44.840 --> 00:46:47.160
Also man kann eigentlich gar nicht so richtig viel kritisieren,

00:46:47.260 --> 00:46:48.500
außer eben die Bildqualität.

00:46:53.540 --> 00:46:55.640
Jochen, du hast alle Talks angeguckt, oder?

00:46:55.860 --> 00:46:56.060
Ja.

00:46:56.220 --> 00:46:58.280
Was war denn der Talk, der dich am meisten überrascht hat?

00:46:59.360 --> 00:47:02.760
Tatsächlich der erste, würde ich sagen. Insofern ist das ein bisschen langweilig immer.

00:47:04.440 --> 00:47:05.480
Dann sprechen wir da nicht nochmal drüber.

00:47:05.880 --> 00:47:17.620
Genau. Ansonsten fand ich die, also man muss auch unter, also ich meine, es gab halt, es gibt halt mehrere Dimensionen sozusagen. Es gab halt Text, Talks, die mich halt irgendwie inhaltlich überrascht haben, irgendwie so wie die.

00:47:17.800 --> 00:47:19.520
der erste und die ich auch gut fand. Oder es gab

00:47:19.520 --> 00:47:20.820
welche, die ich technisch gut fand.

00:47:22.220 --> 00:47:23.640
Oder es gab welche, wo ich

00:47:23.640 --> 00:47:25.600
den Inhalt fachlich super fand.

00:47:26.420 --> 00:47:27.720
Aber das muss alles nicht unbedingt

00:47:27.720 --> 00:47:29.560
gleichzeitig passiert sein, sondern das war

00:47:29.560 --> 00:47:31.540
teilweise, ja. Hast du vielleicht noch

00:47:31.540 --> 00:47:33.660
eine Empfehlung von einem Talk, den man unbedingt gucken sollte,

00:47:33.720 --> 00:47:35.480
wenn du jetzt mal drauf bist? Also einer

00:47:35.480 --> 00:47:37.660
meiner Lieblingstalks war auf jeden Fall

00:47:37.660 --> 00:47:39.000
der von Carlton Gibson.

00:47:40.840 --> 00:47:41.520
Static Sides.

00:47:41.520 --> 00:47:42.460
Das ist auch generell großartig.

00:47:43.160 --> 00:47:45.360
Static Sides mit Zwings, weil

00:47:45.360 --> 00:47:47.220
ich hatte auch selber da schon mal so Dinge gemacht.

00:47:47.360 --> 00:47:49.400
Ich habe auch überlegt, ob ich da nicht irgendwie

00:47:49.400 --> 00:47:51.500
Viewpress oder

00:47:51.500 --> 00:47:53.380
Whitepress, ich habe da schon

00:47:53.380 --> 00:47:55.620
auch Dinge mitgemacht, für Dokumentation

00:47:55.620 --> 00:47:56.680
von Software verwenden soll.

00:47:57.780 --> 00:47:58.700
Und dann

00:47:58.700 --> 00:48:00.800
dieses, diese

00:48:00.800 --> 00:48:03.480
Read the Docs

00:48:03.480 --> 00:48:04.940
Geschichte, wie heißt das noch da?

00:48:05.480 --> 00:48:07.340
Restructured Text, das ist ja eigentlich auch ganz nett,

00:48:07.400 --> 00:48:09.420
da kann man auch viele schöne Sachen, aber es ist meistens nicht so

00:48:09.420 --> 00:48:10.800
vielleicht unbedingt

00:48:10.800 --> 00:48:12.860
hat eben auch Vor- und Nachteile.

00:48:13.460 --> 00:48:15.400
Und das, was er da vorgestellt hat, das fand ich schon

00:48:15.400 --> 00:48:17.600
großartig, dass man halt sozusagen auf der einen Seite

00:48:17.600 --> 00:48:20.180
diese etablierte

00:48:20.180 --> 00:48:21.320
Dokumentations-

00:48:21.320 --> 00:48:23.660
Erstellungsgeschichte benutzen kann, aber auf der

00:48:23.660 --> 00:48:25.300
anderen Seite dann halt, das war mir auch völlig

00:48:25.300 --> 00:48:27.800
überhaupt gar nicht klar, dass die Django-Dokumentation das so macht,

00:48:28.180 --> 00:48:29.720
dass da nicht ein fertig

00:48:29.720 --> 00:48:31.360
gerendertes statisches HTML ist,

00:48:31.640 --> 00:48:33.740
sondern dass das dynamische Elemente hat und dass das halt

00:48:33.740 --> 00:48:35.720
sozusagen die Art, wie

00:48:35.720 --> 00:48:37.720
der Dokumentations-Content

00:48:37.720 --> 00:48:39.340
in die Django-Dokumentationsseite reinkommt,

00:48:39.660 --> 00:48:40.780
ist halt über JSON.

00:48:41.980 --> 00:48:43.640
Das war mir überhaupt nicht klar

00:48:43.640 --> 00:48:45.280
und das ist eigentlich aber voll gut.

00:48:45.400 --> 00:48:45.960
Total absurd.

00:48:47.740 --> 00:48:49.340
Und deswegen, also den Talk fand ich

00:48:49.340 --> 00:48:51.380
auch technisch gut. Also das Audio war

00:48:51.380 --> 00:48:53.420
super. Carlton macht das auch total

00:48:53.420 --> 00:48:55.000
gut. Er ist total entspannt und

00:48:55.000 --> 00:48:56.940
ein bisschen flapsig und kurz und

00:48:56.940 --> 00:48:59.080
echt cool. Carlton Gibson

00:48:59.080 --> 00:49:00.680
Static Pages, ja.

00:49:01.520 --> 00:49:03.340
Carlton Gibson ist generell so einer, der in der

00:49:03.340 --> 00:49:05.240
Community ganz viel macht. Er ist

00:49:05.240 --> 00:49:06.420
einer von den Django Fellows.

00:49:07.180 --> 00:49:09.300
Der macht die ganze Drecksarbeit.

00:49:09.460 --> 00:49:10.940
Er bezeichnet sich selbst als Janitor.

00:49:12.220 --> 00:49:13.220
Django ist Janitor.

00:49:13.700 --> 00:49:13.880
Und

00:49:13.880 --> 00:49:15.960
der ist schon

00:49:15.960 --> 00:49:17.940
jahrelang in der Community

00:49:17.940 --> 00:49:19.900
drin und der ist großartig. Also das kann ich jedem

00:49:19.900 --> 00:49:22.000
empfehlen. Oh, er macht ja auch einen Podcast

00:49:22.000 --> 00:49:23.640
mit Will Winston zusammen,

00:49:23.900 --> 00:49:25.600
Django Chat. Ach, das ist auch gut.

00:49:26.000 --> 00:49:28.100
Hatte ich kürzlich im Auto die Zeit, acht Episoden

00:49:28.100 --> 00:49:28.700
anzuhören.

00:49:31.800 --> 00:49:34.140
Also auch das, da muss man die Konkurrenz

00:49:34.140 --> 00:49:35.980
einmal hier hervorheben. Du hast ja demnächst

00:49:35.980 --> 00:49:37.980
öfter mal Zeit wieder für die Podcasts

00:49:37.980 --> 00:49:39.920
in einem Auto, habe ich gehört. Ja, es kann

00:49:39.920 --> 00:49:41.660
passieren, dass ich demnächst mehr Auto fahren muss.

00:49:42.660 --> 00:49:44.080
Der Talk, der mich am meisten

00:49:44.080 --> 00:49:46.100
überrascht hat, wusste ich aber

00:49:46.100 --> 00:49:48.140
vorher schon, weil ich kenne die Person auch

00:49:48.140 --> 00:49:50.260
von anderen

00:49:50.260 --> 00:49:51.460
Django-Cons, wo ich schon war, ist

00:49:51.460 --> 00:49:53.680
Rewriting Django from Scratch in 2021

00:49:53.680 --> 00:49:55.160
von Emma Deliscore,

00:49:55.980 --> 00:49:57.940
die sich die Frage gestellt hat, wenn wir

00:49:57.940 --> 00:49:58.740
kein Django hätten

00:49:58.740 --> 00:50:01.960
und es aus

00:50:01.960 --> 00:50:03.800
Bibliotheken zusammensetzen müssten, wie

00:50:03.800 --> 00:50:04.800
schwierig wäre das denn?

00:50:06.340 --> 00:50:07.840
Und die Antwort ist, erstaunlich wenig.

00:50:08.260 --> 00:50:09.100
Ja, wäre gar nicht so schwer.

00:50:09.960 --> 00:50:11.980
Ja genau, man findet quasi für alle Bauteile

00:50:11.980 --> 00:50:13.340
was und sie hat dann eben wenige

00:50:13.340 --> 00:50:15.960
hundert Zeilen Glue-Code geschrieben,

00:50:16.180 --> 00:50:17.880
die das Ganze zu einem Django machen und

00:50:17.880 --> 00:50:19.860
das so als Denkanstoß für Django

00:50:19.860 --> 00:50:22.040
4, weil das steht ja demnächst

00:50:22.040 --> 00:50:23.920
an, wo

00:50:23.920 --> 00:50:25.900
wohl auch einige technische Änderungen drin sein sollen.

00:50:26.940 --> 00:50:27.700
Fand ich super spannend.

00:50:28.460 --> 00:50:29.780
Ja, ja, aber ich meine,

00:50:30.240 --> 00:50:31.860
also in gewisser Weise wäre

00:50:31.860 --> 00:50:33.740
das, aber das kann auch sein, dass ich das nicht so

00:50:33.740 --> 00:50:35.980
richtig verstanden habe, weil ich dachte so

00:50:35.980 --> 00:50:37.820
erst so, ja, interessant, die ganzen

00:50:37.820 --> 00:50:39.680
Dinge, die sie da nennt, aber warum sollte man das so machen, weil

00:50:39.680 --> 00:50:41.920
für mich ist ja eigentlich der Vorteil

00:50:41.920 --> 00:50:43.920
von Django jetzt gegenüber, zum Beispiel

00:50:43.920 --> 00:50:45.700
sowas wie Flask oder so,

00:50:46.060 --> 00:50:47.880
oder könnte man auch gleich nochmal kurz was zu sagen,

00:50:49.240 --> 00:50:50.080
dass man

00:50:50.080 --> 00:50:51.780
das eben nicht machen muss, dass man auch

00:50:51.780 --> 00:50:53.640
nicht sich daran kümmern muss, dass die ganzen Sachen

00:50:53.640 --> 00:50:55.980
immer noch gemaintained sind und wenn sie

00:50:55.980 --> 00:50:57.960
das nicht mehr sind, das austauscht, sondern Django kriegst du

00:50:57.960 --> 00:50:59.960
sozusagen das Komplettpaket, wo andere Leute sich

00:50:59.960 --> 00:51:02.060
darum gekümmert haben, vielleicht nicht

00:51:02.060 --> 00:51:03.620
alle Funktionen und nicht so

00:51:03.620 --> 00:51:08.340
im Detail ausgefeilt,

00:51:08.440 --> 00:51:09.840
aber dafür halt irgendwie

00:51:09.840 --> 00:51:11.380
Stimmig. Integriert. Genau.

00:51:11.520 --> 00:51:13.120
Integriert. Ja, aber

00:51:13.120 --> 00:51:15.460
was wäre denn, wenn Django nicht ein

00:51:15.460 --> 00:51:17.660
Paket wäre, sondern wenn Django ein Meta-Paket wäre,

00:51:17.780 --> 00:51:19.520
was zwölf andere Pakete

00:51:19.520 --> 00:51:21.560
reinzieht, wo wenn du

00:51:21.560 --> 00:51:23.440
Django installierst, kriegst du es immer noch integriert

00:51:23.440 --> 00:51:25.580
und immer noch stimmig, aber hast

00:51:25.580 --> 00:51:27.420
dann trotzdem die Möglichkeit, einen Baukasten

00:51:27.420 --> 00:51:29.500
zu haben. Hast trotzdem die Möglichkeit zu sagen,

00:51:29.620 --> 00:51:31.560
ah, Moment mal, ich möchte eigentlich lieber

00:51:31.560 --> 00:51:33.600
Templates haben, die x machen oder Templates

00:51:33.600 --> 00:51:35.320
die y haben. Ja. Oder auch

00:51:35.320 --> 00:51:37.460
eben so Contrib-Pakete. Was ist denn,

00:51:37.460 --> 00:51:38.680
wenn ich mal den Admin nicht brauche?

00:51:39.840 --> 00:51:42.140
was ist denn, wenn ich mal eine Seite habe, die den Admin

00:51:42.140 --> 00:51:44.200
nicht braucht? Im Moment kann ich ja

00:51:44.200 --> 00:51:45.340
nicht viel machen. Ich kann die App

00:51:45.340 --> 00:51:48.260
deaktivieren und ich kann die URLs deaktivieren.

00:51:48.940 --> 00:51:50.260
Aber der Code ist auf jeden Fall drin, ja.

00:51:50.500 --> 00:51:51.340
Aber der Code ist immer noch da.

00:51:52.660 --> 00:51:54.160
Und sich diese

00:51:54.160 --> 00:51:55.940
Frage zu stellen, was wäre denn, wenn Django

00:51:55.940 --> 00:51:58.060
modular wäre? Es ist ja modular,

00:51:58.280 --> 00:52:00.160
es ist ja jetzt schon so, dass du die verschiedenen

00:52:00.160 --> 00:52:02.200
Bausteine miteinander kombinierst,

00:52:02.260 --> 00:52:04.060
aber was wäre denn, wenn die auf technischer Ebene

00:52:04.060 --> 00:52:05.040
auch modular wären?

00:52:06.320 --> 00:52:08.080
Was im Django-Chat gesagt wurde, was wäre

00:52:08.080 --> 00:52:09.980
denn, wenn man manche Pakete einfach ein bisschen

00:52:09.980 --> 00:52:10.720
ausgliedern könnte?

00:52:11.500 --> 00:52:13.740
Carlton Gibson möchte gerne das E-Mail-Paket

00:52:13.740 --> 00:52:14.660
ausgliedern.

00:52:16.460 --> 00:52:17.820
Was wäre denn, wenn

00:52:17.820 --> 00:52:19.940
das möglich wäre? Und was wäre denn, wenn sich da

00:52:19.940 --> 00:52:21.780
vielleicht ein eigener Maintainer dafür findet, der

00:52:21.780 --> 00:52:22.720
E-Mail macht?

00:52:24.840 --> 00:52:25.940
Was wäre denn, wenn es

00:52:25.940 --> 00:52:27.940
ein E-Mail-Paket gibt, was automatisch alles

00:52:27.940 --> 00:52:29.460
macht, dass ich über SendGrid

00:52:29.460 --> 00:52:30.720
verschicke?

00:52:31.560 --> 00:52:33.760
Ich muss nur PipInstall, Django, SendGrid machen

00:52:33.760 --> 00:52:35.480
und dann ist das komplett nah.

00:52:35.740 --> 00:52:37.300
Diese Frage ist

00:52:37.300 --> 00:52:38.940
Das ist eine großartige, gute Frage.

00:52:39.280 --> 00:52:41.260
Okay, ja, gut. Also so gesehen doch,

00:52:41.420 --> 00:52:43.300
ja, weil im Grunde ist Django

00:52:43.300 --> 00:52:44.900
ja schon, da sind viele Teile sind ja schon

00:52:44.900 --> 00:52:46.740
pluggable, eben Storage oder halt

00:52:46.740 --> 00:52:49.360
Authentication, halt nicht auf so einer

00:52:49.360 --> 00:52:51.600
ich installiere dann halt ein anderes

00:52:51.600 --> 00:52:53.140
Paket, sondern auf der Ebene von

00:52:53.140 --> 00:52:55.240
in den Settings sage ich halt, ja,

00:52:55.800 --> 00:52:57.380
du bist jetzt für mehrere Pakete

00:52:57.380 --> 00:52:59.320
und dann stelle ich es in den Settings ein, welches benutzt

00:52:59.320 --> 00:53:01.180
wird. Genau, aber

00:53:01.180 --> 00:53:03.260
stimmt, also dass man

00:53:03.260 --> 00:53:05.200
den Code gar nicht mit drin haben muss, das ist natürlich schon so ein

00:53:05.200 --> 00:53:05.800
Punkt, ja.

00:53:06.840 --> 00:53:09.200
Das ist aber auch noch

00:53:09.200 --> 00:53:10.800
interessant. Genau, jetzt fällt mir doch noch

00:53:10.800 --> 00:53:13.000
was ein, zu welcher Talk hat mich am meisten

00:53:13.000 --> 00:53:14.620
überrascht. Und zwar, ich weiß nicht, ob ihr den

00:53:14.620 --> 00:53:17.160
oder Johannes, ob du den auch gehört hast,

00:53:18.180 --> 00:53:19.220
von Jannis Leidl,

00:53:19.300 --> 00:53:20.720
der Jazzband

00:53:20.720 --> 00:53:22.660
Talk. Ja, habe ich gehört.

00:53:22.880 --> 00:53:25.160
Ich bin auch live während des

00:53:25.160 --> 00:53:26.380
Talks Jazzband beigetreten.

00:53:26.840 --> 00:53:29.200
Ah, okay, genau. Ich habe es mir nur überlegt,

00:53:29.200 --> 00:53:30.720
ich habe es noch nicht getan, aber ich

00:53:30.720 --> 00:53:32.720
habe stark daran gedacht, es zu tun.

00:53:34.760 --> 00:53:34.800
Und

00:53:34.800 --> 00:53:36.780
genau, ich hatte das immer nur gesehen.

00:53:36.780 --> 00:53:37.840
Was ist denn Jazzband, Jochen? Erklär mal.

00:53:38.300 --> 00:53:40.260
Ich hatte das immer nur gesehen bisher als

00:53:40.260 --> 00:53:42.540
das ist irgendwie eine Organisation,

00:53:42.960 --> 00:53:44.600
in der viele der im Django

00:53:44.600 --> 00:53:46.840
Kosmos befindlichen

00:53:46.840 --> 00:53:48.960
Pakete halt so auch mit drin sind

00:53:48.960 --> 00:53:50.540
und was da gemantet wird,

00:53:50.660 --> 00:53:52.260
Django Filter und weiß ich nicht,

00:53:52.460 --> 00:53:53.400
ganz, ganz viel Zeug.

00:53:53.860 --> 00:53:56.300
Storages und Comments.

00:53:57.300 --> 00:53:58.740
Also ganz

00:53:58.740 --> 00:54:00.040
viel und da dachte ich immer so, ja.

00:54:00.420 --> 00:54:02.340
Und dann wusste ich auch irgendwie so, ja, das ist halt irgendwie so, wenn man

00:54:02.340 --> 00:54:04.340
keine Lust mehr hat, das selber zu mantennen, dann kann man das vielleicht dahin

00:54:04.340 --> 00:54:07.800
das loswerden.

00:54:07.800 --> 00:54:08.680
Projekthalde meinst du?

00:54:09.420 --> 00:54:11.380
Irgendwie, weiß ich nicht,

00:54:11.600 --> 00:54:13.380
ein Schleifchen dran binden und das dann da aussetzen.

00:54:13.760 --> 00:54:14.880
Wie an der Autobahnraststätte.

00:54:15.380 --> 00:54:17.340
Die Apache Foundation der Django-Welt.

00:54:18.100 --> 00:54:18.300
Ja.

00:54:20.060 --> 00:54:21.480
Aber genau.

00:54:22.480 --> 00:54:24.100
Die sind ja tatsächlich sehr aktiv,

00:54:24.100 --> 00:54:25.340
habe ich jetzt gehört in dem Talk.

00:54:25.580 --> 00:54:27.840
Ja, aber dann,

00:54:28.160 --> 00:54:30.280
was mich in dem Talk dann halt überrascht hat und was ich nicht wusste,

00:54:30.420 --> 00:54:32.040
ist, dass

00:54:32.040 --> 00:54:33.560
das tatsächlich etwas ist, wo man

00:54:33.560 --> 00:54:36.180
selber sehr leicht beitreten kann

00:54:36.180 --> 00:54:36.560
und

00:54:36.560 --> 00:54:40.060
man hat so ein bisschen die Anforderungen an ein Projekt,

00:54:40.160 --> 00:54:41.520
aber es ist auch relativ leicht zu erfüllen

00:54:41.520 --> 00:54:43.440
und dann kann man

00:54:43.440 --> 00:54:46.180
quasi Projekte davon maintainen lassen

00:54:46.180 --> 00:54:48.060
und also der entscheidende Punkt, und der war mir überhaupt

00:54:48.060 --> 00:54:49.180
nicht klar, ist

00:54:49.180 --> 00:54:52.220
bei diesen Projekten ist es so, dass man das so ein bisschen

00:54:52.220 --> 00:54:54.020
umkehrt, weil normalerweise hast du halt immer

00:54:54.020 --> 00:54:55.960
in vielen Projekten irgendwie so

00:54:55.960 --> 00:54:57.600
Core-Entwickler oder Leute, die halt

00:54:57.600 --> 00:54:59.660
da reinkommitten dürfen, also dieses

00:54:59.660 --> 00:55:01.900
Privileg bekommt man halt

00:55:01.900 --> 00:55:25.720
Normalerweise, weiß ich nicht, nach ein paar erfolgreichen Pull-Requests oder so oft bei vielen Projekten. Und vielleicht bei so noch größeren ist es so, dass es dann Leute gibt, die dann überwiegend, ja, sich um den Issue-Tracker kümmern oder sowas. Und es gibt halt einen Unterschied zwischen diesen sozusagen offiziell Beteiligten und den ganzen Leuten, die halt tatsächlich die Pull-Requests erstellen.

00:55:27.820 --> 00:55:37.420
Und dieses Jazzband dreht das halt um und sagt, du kannst halt einfach da reinkommitten. Es funktioniert halt. Und dann muss, es gibt halt nur weniger Release.

00:55:37.420 --> 00:55:38.140
Und jeder kann beitreten.

00:55:38.280 --> 00:55:54.240
Jeder kann beitreten und erst beim Release wird dann halt geguckt, okay, macht das denn irgendwie Sinn oder ist das irgendwie Quatsch? Und das passiert halt deutlich seltener, sodass du halt diese Hürde, das ist tatsächlich eine Hürde, das habe ich mir auch schon oft gedacht, muss ich das jetzt wirklich?

00:55:55.100 --> 00:55:57.420
Ja, und ein Pull-Request stellen und dann

00:55:57.420 --> 00:55:59.180
hörst du acht Wochen lang nichts und dann

00:55:59.180 --> 00:56:01.440
fragst du, ja hier ist was und dann weißt du es schon alles

00:56:01.440 --> 00:56:03.040
gar nicht mehr oder geht ganz unter.

00:56:03.520 --> 00:56:04.740
Ja und was ich dann oft mache ist,

00:56:05.240 --> 00:56:07.520
ach dann fork ich es doch mal schnell selber, fix das

00:56:07.520 --> 00:56:08.660
da und dann

00:56:08.660 --> 00:56:11.700
dann vielleicht mache ich doch tatsächlich

00:56:11.700 --> 00:56:13.580
nochmal ein Pull-Request, aber eigentlich auch egal

00:56:13.580 --> 00:56:15.540
und tatsächlich habe ich das

00:56:15.540 --> 00:56:17.280
auch bei Projekten gemacht, die in Jasmine da

00:56:17.280 --> 00:56:19.220
drin sind und dann hätte ich dann so, okay

00:56:19.220 --> 00:56:21.560
eigentlich hätte ich die direkt fixen

00:56:21.560 --> 00:56:22.980
können und

00:56:22.980 --> 00:56:24.740
dann wäre dieser ganze

00:56:24.740 --> 00:56:27.380
ja, hätte man diesen ganzen Tanz

00:56:27.380 --> 00:56:29.420
um GitHub-Pull-Request-Issue gar nicht

00:56:29.420 --> 00:56:31.020
machen müssen, sondern jetzt einfach gefixt, committet

00:56:31.020 --> 00:56:33.120
und fertig. Was heißt bei Django

00:56:33.120 --> 00:56:34.240
Field-Hastorisches All-Outs?

00:56:35.420 --> 00:56:37.440
Django Field-Hastorisches All-Outs? Ja, ganz viele von diesen Sachen,

00:56:37.540 --> 00:56:39.260
die man kennt, ich glaube auch Django Extensions und

00:56:39.260 --> 00:56:41.120
Debug-Toolbars sind inzwischen Jazzband-Projekte.

00:56:41.280 --> 00:56:43.540
Ja. Oh, apropos

00:56:43.540 --> 00:56:45.120
Debug-Toolbar, da gab es ja auch was für das.

00:56:45.360 --> 00:56:47.260
Der Jazzband, weil

00:56:47.260 --> 00:56:49.120
das irgendwie sozusagen,

00:56:49.740 --> 00:56:51.540
ja, Django ist ja auch vom Namen her

00:56:51.540 --> 00:56:53.360
wird das zurückgeführt

00:56:53.360 --> 00:56:54.380
auf dem Django rein hat.

00:56:55.740 --> 00:56:57.180
Ach so. Ja, daher kommt das.

00:56:58.020 --> 00:56:59.340
Und Band. Cooler Name,

00:56:59.480 --> 00:57:01.220
finde ich. Ja.

00:57:01.480 --> 00:57:03.280
Django Extensions, hast du noch irgendwas Schönes

00:57:03.280 --> 00:57:05.000
geteilt, Johannes? Und zwar hast du

00:57:05.000 --> 00:57:06.740
da was entdeckt, das heißt die Kolo-App

00:57:06.740 --> 00:57:08.820
heißt, was auch für Debug

00:57:08.820 --> 00:57:10.900
für Django relativ lustig sein soll.

00:57:12.660 --> 00:57:13.300
Da musst du mir auf die

00:57:13.300 --> 00:57:15.200
Sprünge helfen, Dominik. Weiß gar nicht, was du meinst gerade.

00:57:15.460 --> 00:57:16.540
Du hast das schon schon hingeteilt.

00:57:16.840 --> 00:57:19.540
Kolo-App, das ist eine Django-Applikation

00:57:19.540 --> 00:57:21.320
zum Debuggen. Vor allem auch in VS Code

00:57:21.320 --> 00:57:22.860
Grundsätzlich. Du kannst halt so den

00:57:22.860 --> 00:57:24.040
Thor Street anschauen.

00:57:25.620 --> 00:57:27.060
Genau, das hat mich jetzt

00:57:27.060 --> 00:57:29.120
gar nicht so richtig, hat mir gar nicht so richtig

00:57:29.120 --> 00:57:31.260
geholfen, weil ich VSCode nicht benutze.

00:57:32.720 --> 00:57:33.080
Aber

00:57:33.080 --> 00:57:34.920
die haben eben einen Django-Debugger

00:57:34.920 --> 00:57:36.960
in VSCode integriert und zwar so richtig tief.

00:57:37.120 --> 00:57:38.540
Also der zeigt einem direkt alle Innereien.

00:57:40.100 --> 00:57:41.260
Genau, Best Response,

00:57:41.400 --> 00:57:42.340
die Queries und so.

00:57:43.080 --> 00:57:44.800
Genau, und auch mit Profiling drin und wenn

00:57:44.800 --> 00:57:46.520
Fehler auftreten, kommst du gleich an eine richtige Stelle.

00:57:46.520 --> 00:57:48.380
Genau, man kann sogar den Executed-Code-Path

00:57:48.380 --> 00:57:49.380
visualisieren und so.

00:57:50.600 --> 00:57:52.780
Es ist ein richtig, richtig ausgefeilter

00:57:52.780 --> 00:57:54.900
Debugger, geht allerdings nur in Visual Studio Code.

00:57:55.400 --> 00:57:56.640
Also Celery Task kann man damit machen.

00:57:58.100 --> 00:57:58.820
Also der zeigt

00:57:58.820 --> 00:58:01.000
dann wirklich alles an und das ist sehr beeindruckend.

00:58:02.180 --> 00:58:02.860
Ja, ich habe es leider

00:58:02.860 --> 00:58:04.860
nicht weiter benutzt, weil ich bin

00:58:04.860 --> 00:58:06.840
ja, ich komme ja aus einer anderen Richtung.

00:58:06.840 --> 00:58:07.180
Charming.

00:58:08.300 --> 00:58:09.320
Ich bin sehr charming.

00:58:11.600 --> 00:58:11.960
Ja.

00:58:12.680 --> 00:58:14.760
Auch was, was ich da gesehen habe. Okay, ich habe noch eine andere

00:58:14.760 --> 00:58:16.340
Sache, die mich überrascht hat da.

00:58:17.160 --> 00:58:17.900
Bei der DjangoCon.

00:58:18.500 --> 00:58:19.420
Und das war HTMX.

00:58:20.240 --> 00:58:21.980
Oh ja. Du hattest das schon mal

00:58:21.980 --> 00:58:22.900
erwähnt, Jochen. Ja.

00:58:23.660 --> 00:58:25.400
Du hattest HTMLX schon mal gesagt.

00:58:25.980 --> 00:58:28.220
HTMLX ist eine JavaScript-Bibliothek

00:58:28.220 --> 00:58:29.640
ohne JavaScript.

00:58:31.340 --> 00:58:31.840
Das heißt,

00:58:32.180 --> 00:58:33.960
anstatt dass ich selber JavaScript schreibe,

00:58:34.320 --> 00:58:35.880
schreibe ich nur spezifische

00:58:35.880 --> 00:58:37.280
Tags an meinen HTML dran,

00:58:37.560 --> 00:58:40.060
die dann irgendwelches dynamisches Verhalten auslösen.

00:58:40.140 --> 00:58:41.760
Zum Beispiel kann ich einem Button sagen, dass er

00:58:41.760 --> 00:58:43.080
das Formular submitten soll.

00:58:43.840 --> 00:58:45.700
Oder ich kann sagen, wenn

00:58:45.700 --> 00:58:46.720
ein Item

00:58:46.720 --> 00:58:49.580
in den Bildschirmbereich gescrollt wird,

00:58:49.780 --> 00:58:53.520
dann macht das ein AJAX-Request

00:58:53.520 --> 00:58:55.980
und holt neue Listen-Einträge

00:58:55.980 --> 00:58:57.320
und kann ich Infinite Scrolling machen.

00:58:57.660 --> 00:58:58.780
Oder ich kann sagen,

00:58:58.860 --> 00:59:00.020
ich möchte Formvalidierung haben

00:59:00.020 --> 00:59:00.620
oder ich kann sagen,

00:59:00.720 --> 00:59:01.880
ich möchte Animationen haben oder so.

00:59:02.300 --> 00:59:04.380
Und das Ganze nur über HTML-Tags,

00:59:04.700 --> 00:59:07.440
ohne selbst JavaScript schreiben zu müssen.

00:59:08.940 --> 00:59:12.660
Und das kam in drei oder vier Talks hintereinander.

00:59:12.960 --> 00:59:14.460
Haben sie alle auf HTMLX verwiesen

00:59:14.460 --> 00:59:18.020
und offensichtlich auch nicht abgestimmt,

00:59:18.200 --> 00:59:20.640
weil die dann, die Sprecher dann auch gesagt haben,

00:59:20.700 --> 00:59:22.480
ja, es ist jetzt schon wieder, ich weiß,

00:59:22.540 --> 00:59:24.440
es kam jetzt eben schon in den anderen Talks, aber jetzt ist es schon wieder.

00:59:24.920 --> 00:59:25.760
Und auch im Slack

00:59:25.760 --> 00:59:27.960
kam das dann auf,

00:59:29.080 --> 00:59:30.140
dass da jetzt schon wieder

00:59:30.140 --> 00:59:31.100
HTMX vorkommt.

00:59:32.380 --> 00:59:33.760
Und ich glaube, das ist was, was ich mir,

00:59:34.140 --> 00:59:35.460
also ich wusste, dass es das gibt,

00:59:36.600 --> 00:59:38.020
aber mir war gar nicht so klar

00:59:38.020 --> 00:59:40.220
gewesen, wie sinnvoll das ist und wie nützlich das ist.

00:59:40.700 --> 00:59:41.900
Und dass man ja tatsächlich

00:59:41.900 --> 00:59:44.020
sehr viel Dynamik in seiner Seite mit

00:59:44.020 --> 00:59:45.960
diesen einfachen Mitteln hinkriegen kann.

00:59:46.860 --> 00:59:48.080
Also das, wo man früher

00:59:48.080 --> 00:59:49.500
jQuery verwendet hat, ja,

00:59:49.640 --> 00:59:51.100
Button.click

00:59:51.100 --> 00:59:54.320
und dann $ajax

00:59:54.320 --> 00:59:55.920
machen, ist jetzt einfach

00:59:55.920 --> 00:59:58.120
in dieses htmx-Attribut

00:59:58.120 --> 01:00:00.020
reingewandert. Und

01:00:00.020 --> 01:00:01.920
ich glaube, ich muss mir das mal noch

01:00:01.920 --> 01:00:02.860
genauer angucken,

01:00:04.040 --> 01:00:05.620
wie weit man da gehen kann.

01:00:06.380 --> 01:00:08.020
Also, ich meine, einen Talk gab es

01:00:08.020 --> 01:00:09.520
damit, der hat es quasi zu Ende gedacht.

01:00:09.720 --> 01:00:11.860
Was ist denn, wenn wir diese Sachen alle aus dem

01:00:11.860 --> 01:00:14.160
Django-Form, aus der Form-Klasse

01:00:14.160 --> 01:00:15.960
generieren und aus dem Django-Modell generieren?

01:00:16.640 --> 01:00:18.080
auch großartige Idee,

01:00:18.740 --> 01:00:21.540
Data-Binding automatisch erzeugen

01:00:21.540 --> 01:00:24.120
über Django-Template-Syntax.

01:00:24.720 --> 01:00:26.080
Geht vielleicht einen Schritt zu weit.

01:00:27.720 --> 01:00:29.380
Möchte ich schon noch die Kontrolle drüber haben.

01:00:30.060 --> 01:00:33.460
Aber, ja, dass man quasi JavaScript schreibt,

01:00:33.560 --> 01:00:34.940
ohne JavaScript schreiben zu müssen,

01:00:36.260 --> 01:00:37.140
großartige Idee.

01:00:37.260 --> 01:00:39.200
Ja, ich habe letztens,

01:00:39.600 --> 01:00:40.880
ja genau, würde ich auch sagen,

01:00:40.980 --> 01:00:43.580
das war auf jeden Fall auch eines der großen Themenfelder,

01:00:43.580 --> 01:00:44.660
die es auf der Django-Con gab.

01:00:45.040 --> 01:00:46.240
Nämlich, wie macht man eigentlich,

01:00:46.640 --> 01:00:47.740
sozusagen, ja,

01:00:49.400 --> 01:00:50.660
etwas interaktivere

01:00:50.660 --> 01:00:52.400
oder so modernere,

01:00:52.640 --> 01:00:55.400
so Single-Page-App

01:00:55.400 --> 01:00:56.740
mäßige

01:00:56.740 --> 01:00:58.880
Applikationen mit Django, weil

01:00:58.880 --> 01:01:00.860
wohl auch der Druck größer wird irgendwie von da

01:01:00.860 --> 01:01:02.920
außen. Und vielleicht kann

01:01:02.920 --> 01:01:04.600
man aber, muss man dafür nicht jetzt irgendwie

01:01:04.600 --> 01:01:06.700
das, also es gibt einen Weg,

01:01:06.880 --> 01:01:07.940
den halt auch viele Leute beschreiben,

01:01:08.600 --> 01:01:10.640
beschreiten, der ist halt, naja, du machst halt

01:01:10.640 --> 01:01:12.260
Django REST-Framework oder halt, weiß ich nicht,

01:01:12.320 --> 01:01:14.580
GraphQL irgendwie, Graphene. Gab's auch einen Talk dazu.

01:01:14.980 --> 01:01:16.760
Ja, und machst halt deine

01:01:16.760 --> 01:01:18.660
Applikationen im Frontend halt

01:01:18.660 --> 01:01:20.800
quasi als, weiß ich nicht, ReactView

01:01:20.800 --> 01:01:22.400
Angular. Django Headless.

01:01:22.780 --> 01:01:24.120
Und Headless, genau. Und

01:01:24.120 --> 01:01:26.600
dein Backend ist sozusagen, dein Django ist halt nur noch

01:01:26.600 --> 01:01:28.460
das Backend und macht halt, rennt halt nur noch

01:01:28.460 --> 01:01:29.340
JSON raus und sonst nichts.

01:01:30.200 --> 01:01:32.520
Das ist eine Möglichkeit. Das ist aber eigentlich irgendwie

01:01:32.520 --> 01:01:34.480
traurig, oder? Das ist irgendwie traurig, weil

01:01:34.480 --> 01:01:36.300
man die ganzen guten Teile halt

01:01:36.300 --> 01:01:38.420
Ja, es gibt halt schöne Teile

01:01:38.420 --> 01:01:39.820
von Django, eben die

01:01:39.820 --> 01:01:42.340
Formulare, ja, Formvalidation oder so,

01:01:42.380 --> 01:01:44.060
das kann man halt alles nicht mehr nutzen. Template,

01:01:44.240 --> 01:01:45.700
Da gibt es sehr schöne Geschichten für.

01:01:46.480 --> 01:01:48.320
Authentifizierung auch, alles mögliche.

01:01:48.540 --> 01:01:49.980
Genau. Man verliert halt

01:01:49.980 --> 01:01:52.280
viele Dinge, die halt bei Django

01:01:52.280 --> 01:01:53.380
eigentlich total nützlich machen.

01:01:54.040 --> 01:01:56.080
Und die muss man dann selber machen. Und wenn man das

01:01:56.080 --> 01:01:58.120
dann macht in JavaScript, stellt man oft fest,

01:01:58.740 --> 01:01:59.280
äh.

01:02:01.240 --> 01:02:02.360
Ja, man schreibt sich halt

01:02:02.360 --> 01:02:04.060
die langweiligen Teile von Django,

01:02:04.160 --> 01:02:05.800
schreibt man sich dann in JavaScript nochmal nach.

01:02:05.800 --> 01:02:07.800
Genau. Und das ist halt...

01:02:07.800 --> 01:02:09.620
Und man hat dann immer noch

01:02:09.620 --> 01:02:11.360
eine andere Programmiersprache, die man halt auch noch mit

01:02:11.360 --> 01:02:13.300
kämpfen muss. Und das ist halt...

01:02:13.300 --> 01:02:15.540
Aber mit JavaScript muss man doch.

01:02:16.100 --> 01:02:17.060
Deswegen nimmt man ja TypeScript.

01:02:17.940 --> 01:02:19.500
Ja, also es ist besser geworden,

01:02:19.600 --> 01:02:20.940
sagen wir mal so. Aber

01:02:20.940 --> 01:02:23.400
ehrlich gesagt, mir ist Python

01:02:23.400 --> 01:02:25.360
immer noch lieber, auch die ganzen...

01:02:25.360 --> 01:02:27.000
Auch angenehmer. Ja, ja, durchaus.

01:02:27.800 --> 01:02:28.760
Und eben,

01:02:29.000 --> 01:02:31.360
was kann man denn jetzt eigentlich noch tun?

01:02:31.440 --> 01:02:33.300
Da gibt es ja dann mehrere Gegenbewegungen, aber

01:02:33.300 --> 01:02:35.800
wir hatten das ja auch schon ein paar Mal,

01:02:36.200 --> 01:02:37.620
sowas wie dieses ganze

01:02:37.620 --> 01:02:39.920
Hotwire-Zeugs,

01:02:39.920 --> 01:02:41.520
irgendwie Ruby on Rails macht das ja auch,

01:02:41.600 --> 01:02:43.500
dass man halt sozusagen, oder Elixir,

01:02:44.100 --> 01:02:44.860
Felix,

01:02:46.260 --> 01:02:47.460
man rendert halt HTML

01:02:47.460 --> 01:02:49.420
auf der Server-Seite und

01:02:49.420 --> 01:02:51.280
hat nur noch wenig JavaScript auf der

01:02:51.280 --> 01:02:52.840
Client-Seite, was halt dann irgendwie

01:02:52.840 --> 01:02:55.240
die Seite updatet. Und

01:02:55.240 --> 01:02:57.300
tatsächlich fällt für mich HTMX halt auch in

01:02:57.300 --> 01:02:59.460
diese Klasse von Dingen rein.

01:03:00.160 --> 01:03:01.120
Oder, sagen wir mal so,

01:03:01.540 --> 01:03:03.220
jQuery scheint jetzt wohl dann so

01:03:03.220 --> 01:03:04.620
endgültig irgendwie tot zu sein.

01:03:06.360 --> 01:03:07.280
Ja, das ist ja

01:03:07.280 --> 01:03:09.260
mit ECMAScript 6 sind ja die

01:03:09.260 --> 01:03:11.120
meisten Sachen, für die man früher

01:03:11.120 --> 01:03:13.400
jQuery benutzt hat, einfach direkt in VanillaJS

01:03:13.400 --> 01:03:14.860
drin und dann...

01:03:14.860 --> 01:03:16.880
Genau, genau. Und es gibt dann

01:03:16.880 --> 01:03:18.940
im Grunde, entweder verwendet man halt, wenn man noch mehr

01:03:18.940 --> 01:03:21.100
JavaScript machen möchte,

01:03:21.200 --> 01:03:22.740
dann sowas wie AlpineJS oder so.

01:03:23.160 --> 01:03:25.380
Oder halt eben HTMX, wenn man nichts kompliziertes

01:03:25.380 --> 01:03:27.080
macht oder wo da auch schon einige interessante

01:03:27.080 --> 01:03:28.860
Sachen gehen. Und ich habe jetzt letztens auch

01:03:28.860 --> 01:03:30.960
eine Podcast-Episode gehört mit dem Auto

01:03:30.960 --> 01:03:33.180
von HTMX.

01:03:34.000 --> 01:03:34.360
Und

01:03:34.360 --> 01:03:37.060
der beschrieb so ein bisschen, was er damit vorhatte

01:03:37.060 --> 01:03:38.780
und das fand ich auch sehr interessant, weil das hat mich tatsächlich

01:03:38.780 --> 01:03:40.880
an die Episode, wo wir

01:03:40.880 --> 01:03:42.800
das letzte Mal zusammengesetzt haben, REST

01:03:42.800 --> 01:03:43.220
erinnert.

01:03:44.560 --> 01:03:46.700
Da haben wir auch das

01:03:46.700 --> 01:03:48.180
erste Mal HTMX erwähnt.

01:03:49.760 --> 01:03:49.960
Und

01:03:49.960 --> 01:03:52.520
dass das Ding HTMX nennt, heißt,

01:03:52.740 --> 01:03:54.340
das ist kein Zufall. Das ist

01:03:54.340 --> 01:03:55.760
tatsächlich, meinte er,

01:03:56.400 --> 01:03:58.700
er hat aber mit jQuery angefangen und dann

01:03:58.700 --> 01:04:00.480
hat er sich überlegt, okay, eigentlich ist das ja blöd.

01:04:01.600 --> 01:04:01.820
Und

01:04:01.820 --> 01:04:05.020
hat dann versucht, die Funktionalität,

01:04:05.780 --> 01:04:06.720
da hat er irgendwie das

01:04:06.720 --> 01:04:08.560
Gefühl, das müsste ja eigentlich in HTML

01:04:08.560 --> 01:04:10.180
oder so drin sein und das bricht ja auch mit

01:04:10.180 --> 01:04:12.160
ist ein ganzes REST-Ding. Und da hat er

01:04:12.160 --> 01:04:14.020
wohl auch die Dissertation von Roy Feeling

01:04:14.020 --> 01:04:16.260
da gelesen. Und er meinte so, was wäre denn,

01:04:16.320 --> 01:04:18.000
wenn ich eine Bibliothek schreiben würde,

01:04:18.000 --> 01:04:19.800
die es erlaubt, dass

01:04:19.800 --> 01:04:21.940
das irgendwie so ist, wie das eigentlich sein

01:04:21.940 --> 01:04:23.440
sollte, aber

01:04:23.440 --> 01:04:25.820
man selber das JavaScript dafür

01:04:25.820 --> 01:04:27.920
nicht schreiben muss. Also ich erweitere sozusagen

01:04:27.920 --> 01:04:29.620
HTML

01:04:29.620 --> 01:04:32.160
so, wie das eigentlich gehören würde,

01:04:32.220 --> 01:04:33.960
wenn es Browser-Supporter für gäbe. Und das mache ich dann halt

01:04:33.960 --> 01:04:35.720
in JavaScript. Und das Ding nennt er irgendwie

01:04:35.720 --> 01:04:37.900
Intercooler.js. Und das war am Anfang noch so

01:04:37.900 --> 01:04:39.240
ein bisschen grude und sehr Jackfairy-mäßig.

01:04:40.100 --> 01:04:42.620
Ich habe schon mal davon gehört.

01:04:42.700 --> 01:04:44.560
Auch noch gelobt heutzutage.

01:04:45.560 --> 01:04:47.600
Er meinte, der Name ist halt schlecht,

01:04:47.720 --> 01:04:49.280
weil das JS hinten dran

01:04:49.280 --> 01:04:50.880
vermittelt den Eindruck,

01:04:50.980 --> 01:04:53.420
das wäre eins von diesen JavaScript-Frameworks,

01:04:53.540 --> 01:04:55.340
was es eigentlich nicht ist von den Frameworks.

01:04:56.180 --> 01:04:57.240
Und Intercooler versteht auch keiner.

01:04:57.500 --> 01:04:59.400
Und dann hat er so ein bisschen

01:04:59.400 --> 01:05:00.080
so ähnlich,

01:05:00.820 --> 01:05:02.880
wie nennen wir diesen Podcast?

01:05:02.880 --> 01:05:03.500
Na ja, gucken wir mal.

01:05:06.240 --> 01:05:06.920
Eigentlich möchte ich

01:05:06.920 --> 01:05:08.320
HTML, aber erweitert, extended.

01:05:08.640 --> 01:05:10.440
htmx, okay, htmx-org noch frei,

01:05:10.560 --> 01:05:11.800
oh, super. Und dann

01:05:11.800 --> 01:05:13.580
ist das Ding halt htmx.

01:05:14.620 --> 01:05:16.380
Und die Idee ist...

01:05:16.380 --> 01:05:18.160
Die Buchstaben org-demands ist auch nicht schlecht.

01:05:18.220 --> 01:05:19.800
Ja, gibt's eigentlich gar nicht mehr so häufig, aber

01:05:19.800 --> 01:05:22.040
hat wohl funktioniert.

01:05:22.720 --> 01:05:24.580
Und deswegen hat er das dann halt

01:05:24.580 --> 01:05:26.360
jetzt nochmal so, ist halt sozusagen Nachfolger

01:05:26.360 --> 01:05:27.680
von intercooler.js.

01:05:28.400 --> 01:05:30.540
Und die Idee ist tatsächlich,

01:05:31.280 --> 01:05:32.480
was wäre denn, also was

01:05:32.480 --> 01:05:34.400
ist das Hauptproblem bei, wenn man jetzt

01:05:34.400 --> 01:05:36.220
einfach nur ganz stinknormal

01:05:36.220 --> 01:05:38.360
html rendert und

01:05:38.360 --> 01:05:39.120
dieses HOS

01:05:39.120 --> 01:05:42.080
verwenden möchte, also

01:05:42.080 --> 01:05:44.260
Hypermedia ist die Engine of Application

01:05:44.260 --> 01:05:46.360
State-Dings und so quasi die

01:05:46.360 --> 01:05:47.520
Prinzipien beibringen möchte,

01:05:48.260 --> 01:05:50.560
die halt auch in dieser Dissertation

01:05:50.560 --> 01:05:51.580
von Roy Fielding drin sind.

01:05:52.040 --> 01:05:54.340
Also das Hauptproblem, weshalb das nicht

01:05:54.340 --> 01:05:55.660
gut ist und weshalb alle irgendwie

01:05:55.660 --> 01:05:58.200
JavaScript zusätzlich machen, ist, dass

01:05:58.200 --> 01:06:00.220
sobald du irgendwas änderst

01:06:00.220 --> 01:06:02.300
in diesem alten Modell, musst du

01:06:02.300 --> 01:06:04.260
deinen kompletten DOM neu aufbauen,

01:06:04.640 --> 01:06:06.380
also einen Request-Response-Type

01:06:06.380 --> 01:06:08.500
einen kompletten Page Reload. Ja, du musst einen kompletten Page Reload

01:06:08.500 --> 01:06:09.880
machen und das ist halt etwas, was

01:06:09.880 --> 01:06:12.340
nicht gut funktioniert, weil das

01:06:12.340 --> 01:06:14.320
ist halt für, wenn die Seite komplizierter wird,

01:06:14.740 --> 01:06:16.600
dann dauert das halt einfach schon mal über eine Sekunde,

01:06:16.820 --> 01:06:18.460
bis sich die Seite wieder aufgebaut hat und das

01:06:18.460 --> 01:06:20.340
heißt irgendwie alles, das fühlt sich dann einfach

01:06:20.340 --> 01:06:21.660
nicht mehr flüssig an und das ist halt

01:06:21.660 --> 01:06:24.080
ja, aber

01:06:24.080 --> 01:06:26.360
mit AJAX und so

01:06:26.360 --> 01:06:28.060
konnte man ja da immer schon so ein bisschen was machen, so

01:06:28.060 --> 01:06:29.540
Web 2.0 mäßig und

01:06:29.540 --> 01:06:32.120
aber das ist halt eben dann eben

01:06:32.120 --> 01:06:34.000
und jQuery, aber das ist halt eben nicht

01:06:34.000 --> 01:06:35.520
REST eigentlich.

01:06:36.380 --> 01:06:52.840
Und auch diese Single-Page-Apps sind auch nicht REST, weil die sagen, okay, naja, der Application-State ist halt im Frontend und Backend liefert halt nur Daten oder vielleicht so ein bisschen State, aber du hast halt dieses Synchronisationsproblem, aber die eigentliche Applikation läuft halt im Browser.

01:06:53.260 --> 01:07:07.680
Und er meinte, okay, wie ist es denn, wenn wir jetzt sagen, okay, wir erweitern HTML eigentlich um die Elemente. Warum ist es so, dass nur Form, nur das Form-Tag einen Post auslösen kann? Warum kann das nur einen Post auslösen? Warum gibt es nichts, was irgendwie einen Put auslösen kann?

01:07:08.680 --> 01:07:37.900
Ja, okay, aber gut, man kann das ja einfach dann so machen, weil aus JavaScript heraus kann man das ja dann tun, dann führt man halt Attribute ein, wo dann Elemente eben auch einen Put machen können oder halt eben auch andere Elemente einen Post machen können und dann kommt dabei, wenn man das dann halt sozusagen so ein bisschen standardisiert, kommt halt HTMLX eigentlich raus, sodass du halt sozusagen diese ganzen anderen netten Sachen halt auch einfach nur in deinem HTML sozusagen machst und ja, es gibt halt dann noch so eine Bibliothek, die das, solange die Browser das nicht unterstützen,

01:07:37.900 --> 01:07:39.840
halt dann für dich in JavaScript tut,

01:07:40.080 --> 01:07:42.440
aber im Grunde könnte man das auch einfach so...

01:07:42.440 --> 01:07:44.040
Ja. Und das ist

01:07:44.040 --> 01:07:45.660
eigentlich ein sehr, sehr

01:07:45.660 --> 01:07:47.720
interessanter Gedanke. Also fand ich auch sehr gut.

01:07:48.660 --> 01:07:48.800
Ja.

01:07:50.020 --> 01:07:51.960
Ja, und es kam einfach so häufig

01:07:51.960 --> 01:07:53.940
vor. Ja. Ja, also man merkt,

01:07:54.040 --> 01:07:55.920
dass man gezwungen war, sich das anzusehen. Also es

01:07:55.920 --> 01:07:57.960
scheint irgendwie jetzt so im Zeitgeist drin zu

01:07:57.960 --> 01:07:59.860
sein oder eben im Gedanken

01:07:59.860 --> 01:08:01.880
der Moment, das Moment ist...

01:08:01.880 --> 01:08:03.720
Ja, der Zeitgeist geht auf jeden Fall Richtung

01:08:03.720 --> 01:08:05.420
ja, was wäre denn, wenn wir einfach HTML

01:08:05.420 --> 01:08:07.840
rüberschicken und nicht irgendwie JSON

01:08:07.840 --> 01:08:08.680
So ein bisschen, ja.

01:08:10.380 --> 01:08:13.540
Na gut, diese ganzen Single-Page-Apps,

01:08:13.900 --> 01:08:15.820
so eine React-App oder so eine Angular-App

01:08:15.820 --> 01:08:17.300
oder so eine Ember-App oder was auch immer,

01:08:18.000 --> 01:08:19.440
sind ja im Wesentlichen gar keine Webseiten.

01:08:19.580 --> 01:08:20.760
Das sind ja Desktop-Anwendungen,

01:08:21.740 --> 01:08:24.900
die halt, okay, zufällig in so einer VM laufen,

01:08:25.020 --> 01:08:26.420
die Browser und JavaScript heißt.

01:08:27.480 --> 01:08:31.800
Und die aber im Wesentlichen ja selbstständig sind.

01:08:32.200 --> 01:08:34.340
Und es geht ja bei vielen Sachen auch total gut,

01:08:34.480 --> 01:08:37.020
dass du halt eine Anwendung hast im Vordergrund.

01:08:37.020 --> 01:08:38.820
also es gibt ja inzwischen alle möglichen Sachen. Es gibt ja

01:08:38.820 --> 01:08:40.780
Fotobearbeitungssoftware

01:08:40.780 --> 01:08:41.600
im Browser.

01:08:42.680 --> 01:08:44.040
Ja gut, also klar, wenn man...

01:08:44.040 --> 01:08:45.780
Es braucht ja überhaupt gar keinen...

01:08:45.780 --> 01:08:48.160
dass das Internet da ist.

01:08:48.440 --> 01:08:50.980
Wenn man so eine Applikation hat, die selber sehr viel macht

01:08:50.980 --> 01:08:52.980
und die ab und zu, wo vielleicht man mit dem Backend reden muss,

01:08:53.540 --> 01:08:54.920
okay, dann ist das dafür vielleicht

01:08:54.920 --> 01:08:56.940
auch super geeignet. Aber ich meine,

01:08:56.980 --> 01:08:58.820
die meisten Webseiten sind ja gar nicht unbedingt so.

01:08:59.500 --> 01:09:00.680
Genau, deshalb meine ich das ja.

01:09:01.340 --> 01:09:02.380
Das meine ich ja.

01:09:02.540 --> 01:09:04.820
Es gibt ja ganz viele solche Anwendungen, die halt

01:09:04.820 --> 01:09:06.600
einfach Desktop-Anwendungen sind, die

01:09:06.600 --> 01:09:07.900
die zufällig im Browser laufen.

01:09:09.140 --> 01:09:10.100
Und es gibt aber auch

01:09:10.100 --> 01:09:11.860
sicherlich den größeren Teil

01:09:11.860 --> 01:09:13.940
der Webseiten, die halt

01:09:13.940 --> 01:09:16.060
die gerne so wären,

01:09:16.300 --> 01:09:18.280
aber es eigentlich gar nicht nötig haben.

01:09:18.680 --> 01:09:20.340
Und so diese Brücke

01:09:20.340 --> 01:09:21.280
dazwischen zu schaffen,

01:09:22.520 --> 01:09:23.720
ist glaube ich,

01:09:24.060 --> 01:09:26.080
das ist eben das, weshalb es im Zeitgeist ist,

01:09:26.200 --> 01:09:28.480
dass man jetzt eben von den ganz statischen

01:09:28.480 --> 01:09:30.480
Webseiten, sind wir ja schon lange

01:09:30.480 --> 01:09:32.380
weg oder sind wir ja schon auf eine gewisse

01:09:32.380 --> 01:09:34.380
Art und Weise lange weg, die ganz dynamischen

01:09:34.380 --> 01:09:36.200
Sachen, die ja eigentlich Anwendungen sind,

01:09:36.600 --> 01:09:38.560
selbst freistehende Anwendungen, die

01:09:38.560 --> 01:09:40.720
zufällig halt auch noch Internet-Requests machen.

01:09:42.120 --> 01:09:42.740
Das ist die

01:09:42.740 --> 01:09:44.680
andere Seite und eine Weile lang hat man versucht, das alles,

01:09:44.820 --> 01:09:46.520
ja, alles muss so eine Anwendung sein,

01:09:46.640 --> 01:09:48.180
was aber auch nicht sinnvoll ist.

01:09:49.180 --> 01:09:50.540
So auf den Zwischenschritt zu gehen,

01:09:50.640 --> 01:09:52.680
dass du eigentlich eine, dass du statische Informationen

01:09:52.680 --> 01:09:54.660
anzeigst, die aber trotzdem irgendwie auf

01:09:54.660 --> 01:09:56.760
Events reagieren können und sich dann trotzdem so ein bisschen

01:09:56.760 --> 01:09:57.840
zumindest verändern können,

01:09:59.120 --> 01:10:01.040
ist, glaube ich,

01:10:01.040 --> 01:10:02.660
einfach, ja, das ist der

01:10:02.660 --> 01:10:04.880
Kompromiss in der Mitte und der deckt

01:10:04.880 --> 01:10:06.620
sicherlich da super viele

01:10:06.620 --> 01:10:08.440
Use Cases ab und super viele Sachen

01:10:08.440 --> 01:10:10.760
ab, die man eben früher entweder

01:10:10.760 --> 01:10:12.700
so oder so machen musste und deshalb

01:10:12.700 --> 01:10:14.040
ja,

01:10:14.800 --> 01:10:16.100
in die Mitte ist richtig.

01:10:17.700 --> 01:10:18.840
Das Nash-Gleichgewicht

01:10:18.840 --> 01:10:19.400
ist immer in der Mitte.

01:10:21.020 --> 01:10:22.660
Wie heißt es bei

01:10:22.660 --> 01:10:24.500
Alexander Kluge, glaube ich,

01:10:24.600 --> 01:10:26.380
in Gefahr und großer Not,

01:10:26.460 --> 01:10:28.100
es bringt der Mittelweg den Tod.

01:10:31.460 --> 01:10:32.700
Ja, aber in der Mitte der Herde

01:10:32.700 --> 01:10:34.320
zu sein, ist der sicherste Ort, deshalb

01:10:34.320 --> 01:10:55.520
Ja, genau. Zu der letzten Rest-Episode, da gab es dann auch eine Erwähnung im Podlovers-Podcast, wo es um die Entwicklung von so einer Podcast-Plattform geht, im Grunde, basierend auf WordPress und so einem Plugin. Und da wurde durchaus wahrgenommen, dass wir irgendwie über XML gelästert haben. So was.

01:10:56.710 --> 01:10:58.250
Passt. Habt ihr euch

01:10:58.250 --> 01:11:00.510
gerügt

01:11:00.510 --> 01:11:01.730
worden? Ja.

01:11:03.090 --> 01:11:04.430
Nee, es wurde sogar ein gewisses

01:11:04.430 --> 01:11:06.430
Verständnis dafür gezeigt, dass Entwickler vielleicht doch lieber

01:11:06.430 --> 01:11:08.890
Jason mögen, unter Umständen

01:11:08.890 --> 01:11:09.550
als XML.

01:11:11.090 --> 01:11:12.730
Was hat dir denn gefehlt

01:11:12.730 --> 01:11:14.530
an der DjangoCon? Was müsste die DjangoCon mehr

01:11:14.530 --> 01:11:14.830
haben?

01:11:17.430 --> 01:11:18.490
Schwer zu sagen, also was mir

01:11:18.490 --> 01:11:20.390
ich war jetzt

01:11:20.390 --> 01:11:22.490
gar nicht so wahnsinnig da mit drin,

01:11:22.590 --> 01:11:24.310
also ich würde sagen, was mir persönlich gefehlt hat, war halt

01:11:24.310 --> 01:11:26.450
der Kontakt mit den anderen Leuten, aber das ging halt einfach nicht.

01:11:26.650 --> 01:11:29.250
Aber da kann man jetzt keinen Vorwurf

01:11:29.250 --> 01:11:30.910
machen. Ja, aber das ist halt der Grund,

01:11:31.030 --> 01:11:32.870
warum man eigentlich das... Ja, also ich

01:11:32.870 --> 01:11:34.770
würde auch sagen, eigentlich, wenn man vor Ort sein könnte,

01:11:34.910 --> 01:11:36.990
ich wäre auch gerne mal nach Porto gefahren,

01:11:37.250 --> 01:11:38.510
wo das hätte eigentlich stattfinden sollen.

01:11:40.050 --> 01:11:41.050
Ja, das ist auf jeden Fall eine ganz andere

01:11:41.050 --> 01:11:42.830
Atmosphäre, ne? Also wenn man da die ganze Zeit doch noch

01:11:42.830 --> 01:11:44.330
wieder vor dem selben Rechner sitzt. Ja, und auch mehr

01:11:44.330 --> 01:11:45.710
Fokus einfach. Ja.

01:11:47.290 --> 01:11:48.090
Aber... Das ist ja

01:11:48.090 --> 01:11:50.210
Vor- und Nachteil, ja.

01:11:50.650 --> 01:11:52.830
Ich habe das auch sehr genossen, dass ich da nicht hinfahren

01:11:52.830 --> 01:11:54.830
musste, weil ich konnte mich halt trotzdem um

01:11:54.830 --> 01:11:56.370
meine Kinder kümmern, konnte trotzdem

01:11:56.370 --> 01:11:59.230
dann abends mit der Familie

01:11:59.230 --> 01:12:01.190
essen und dann trotzdem abends

01:12:01.190 --> 01:12:03.050
noch die Talks. Als ob du es nicht genossen hättest, wenn du auch mal

01:12:03.050 --> 01:12:05.050
ausnahmsweise ohne die Familie und ohne die Kinder

01:12:05.050 --> 01:12:06.690
irgendwie frei in Porto.

01:12:07.010 --> 01:12:09.170
Klar, hätte ich auch genossen. Wäre aber

01:12:09.170 --> 01:12:10.890
einfach schwieriger gewesen,

01:12:11.210 --> 01:12:13.210
das zu machen. Ich glaube,

01:12:13.430 --> 01:12:15.230
ich glaube, in Zukunft wäre

01:12:15.230 --> 01:12:17.390
das sehr schön, wenn solche Konferenzen so ein Hybridmodell

01:12:17.390 --> 01:12:19.230
hätten. Dass man da sein

01:12:19.230 --> 01:12:21.030
kann, aber dass man

01:12:21.030 --> 01:12:23.130
auch online sein kann.

01:12:23.430 --> 01:12:24.970
Okay, finde ich ehrlich gesagt ein bisschen

01:12:24.970 --> 01:12:25.450
anstrengend.

01:12:26.630 --> 01:12:28.950
Ja, mag sein, aber es sind einfach

01:12:28.950 --> 01:12:30.430
unterschiedliche Zielgruppen und

01:12:30.430 --> 01:12:32.970
es gibt ganz viele Leute, die können nicht

01:12:32.970 --> 01:12:34.870
reisen oder die wollen nicht reisen oder die

01:12:34.870 --> 01:12:36.670
haben das sehr schwer

01:12:36.670 --> 01:12:38.730
zu reisen und machen es deshalb

01:12:38.730 --> 01:12:40.550
entsprechend selten und ich glaube,

01:12:40.650 --> 01:12:42.670
Online-Konferenzen ist was, was bleiben wird

01:12:42.670 --> 01:12:44.090
und dann müsste man irgendwas,

01:12:44.730 --> 01:12:46.610
ich habe da auch ganz eigene Ideen, ich finde es ganz

01:12:46.610 --> 01:12:48.230
cool, dass es Online-Konferenzen gibt,

01:12:48.790 --> 01:12:50.530
aber eigentlich, wenn man die Online-Konferenz macht,

01:12:50.650 --> 01:12:52.730
dann braucht man keine DjangoCon EU und keine

01:12:52.730 --> 01:12:54.750
DjangoCon India und

01:12:54.750 --> 01:12:56.610
keine DjangoCon America, sondern es müsste eigentlich

01:12:56.610 --> 01:12:58.330
eine DjangoCon Worldwide geben und

01:12:58.330 --> 01:13:00.710
dann ist die Sache klar, ja, du kannst nicht

01:13:00.710 --> 01:13:02.690
bei allen Talks dabei sein, aber du kannst halt bei denen dabei

01:13:02.690 --> 01:13:03.930
sein, wo du dabei sein kannst und fertig.

01:13:04.530 --> 01:13:06.770
Aber das ist mehr Umbruch

01:13:06.770 --> 01:13:07.630
als

01:13:07.630 --> 01:13:11.070
Also ich finde, das hat auch ein bisschen was familiäres,

01:13:11.190 --> 01:13:12.850
wenn man da hingehen kann, kann die Leute wirklich treffen

01:13:12.850 --> 01:13:14.470
irgendwie, wie kleiner das ist,

01:13:14.530 --> 01:13:16.730
desto familiärer ist das und je größer es wird, desto anonymer wird das

01:13:16.730 --> 01:13:18.450
und das Problem, was du ja gerade schon beschrieben hast,

01:13:18.450 --> 01:13:20.370
an diesen Online-Talks ist halt vor allen Dingen

01:13:20.370 --> 01:13:22.410
dieses Frontalunterrichtsthema, dass

01:13:22.410 --> 01:13:24.450
irgendwie alle Leute einen Speaker in einem Raum hängen,

01:13:24.750 --> 01:13:26.710
Und sich diese ganzen Nebengespräche halt nicht entwickeln,

01:13:26.810 --> 01:13:28.730
sich diese ganze soziale Interaktion irgendwie nicht so

01:13:28.730 --> 01:13:30.810
entwickelt, wie man sich das wünscht, man sich nicht mal gemeinsam Kaffee

01:13:30.810 --> 01:13:32.730
trinkt, irgendwelche zufälligen Bekanntschaften

01:13:32.730 --> 01:13:34.770
auf einem Gang hat oder so. Und das ist ja

01:13:34.770 --> 01:13:36.670
auch das, wovon irgendwie so eine Community lebt und so.

01:13:37.010 --> 01:13:38.930
Und das ist halt virtuell,

01:13:39.470 --> 01:13:40.550
ja, vielleicht hast du sowas wie

01:13:40.550 --> 01:13:41.950
Gather Town so ein bisschen

01:13:41.950 --> 01:13:44.090
reproduzierbar, aber

01:13:44.090 --> 01:13:46.310
naja, ist halt doch schon was ganz anderes, ne?

01:13:46.890 --> 01:13:48.650
Ja klar, aber du schließt halt auch manche

01:13:48.650 --> 01:13:50.390
Leute aus, die das nicht können oder nicht wollen.

01:13:51.070 --> 01:13:52.670
Und die Leute sind auch ein

01:13:52.670 --> 01:13:53.650
wichtiger Teil der Community.

01:13:54.310 --> 01:13:56.310
die irgendwie mitnehmen und deshalb

01:13:56.310 --> 01:13:57.790
denke ich, es wird

01:13:57.790 --> 01:14:00.150
Mischlösungen geben in der Zukunft

01:14:00.150 --> 01:14:02.190
und muss es auch geben. Okay, aber ich habe noch

01:14:02.190 --> 01:14:03.770
was ganz Konkretes, was mir jetzt leider

01:14:03.770 --> 01:14:06.250
gefehlt hat an der Konferenz

01:14:06.250 --> 01:14:08.030
und das waren die Lightning Talks.

01:14:08.410 --> 01:14:09.970
Es gab Lightning Talks. Oh ja, stimmt.

01:14:10.650 --> 01:14:12.150
Und die waren auch alle sehr gut und

01:14:12.150 --> 01:14:14.070
sehr schön und es war wirklich cool, dass da die Leute

01:14:14.070 --> 01:14:16.130
sich, also ich kann das jedem nur empfehlen,

01:14:16.290 --> 01:14:17.970
ja, das ist ein guter Einstieg, fünf Minuten, das

01:14:17.970 --> 01:14:19.990
schafft jeder. Die waren

01:14:19.990 --> 01:14:21.950
alle pre-recorded, das heißt, man hat auch nicht den

01:14:21.950 --> 01:14:23.630
Stress des Live-Daseins

01:14:23.630 --> 01:14:25.990
gehabt. Ich kann es jedem nur empfehlen.

01:14:26.590 --> 01:14:28.330
Aber die Auswahl war dieses Mal

01:14:28.330 --> 01:14:29.190
nicht so groß.

01:14:30.130 --> 01:14:31.890
Es waren alles technische Talks.

01:14:32.190 --> 01:14:33.770
Es waren auch nur eine Handvoll.

01:14:34.750 --> 01:14:36.150
Und die

01:14:36.150 --> 01:14:38.090
waren nicht so promoted, wie sie bei einer

01:14:38.090 --> 01:14:39.750
Konferenz wären. Also so ganz cool,

01:14:40.030 --> 01:14:42.170
wie baue ich mein Baumhaus, das hat denen noch gefehlt.

01:14:42.770 --> 01:14:43.850
Genau, also ich habe einfach

01:14:43.850 --> 01:14:46.070
in Heidelberg hat einer einen Talk gehalten,

01:14:46.070 --> 01:14:47.310
wie baue ich ein Baumhaus?

01:14:47.770 --> 01:14:50.070
Fünf Minuten Lightning Talk. Großartig.

01:14:50.150 --> 01:14:52.230
Hatte überhaupt nichts mit der DjangoCon zu tun,

01:14:52.550 --> 01:14:53.550
aber war großartig.

01:14:53.630 --> 01:15:07.550
Es ist so ein bisschen so ungefähr der einzige Talk, an den ich mich erinnern kann von der DjangoCon 2019 oder 2018 war es, ich weiß nicht mehr. Einfach, weil es so was ganz anderes war und das gab es dieses Mal gar nicht.

01:15:08.610 --> 01:15:25.530
Und das fand ich ein bisschen schade, dass es da nicht mehr so ein bisschen drüber hinausging, weil es war schon sehr fokussiert auf Django, was ja okay ist, aber bei den Lightning-Talks darf man durchaus, finde ich, auch so ein bisschen über die Stränge schlagen und das hätte ich mir mehr gewünscht.

01:15:26.470 --> 01:15:26.870
Ja.

01:15:27.950 --> 01:15:29.870
Das ist keine Kritik an jetzt irgendjemandem,

01:15:29.970 --> 01:15:32.070
sondern das ist eher Kritik an jemandem, der nicht dabei war.

01:15:32.830 --> 01:15:33.750
Schämt euch was. Ihr hättet

01:15:33.750 --> 01:15:35.650
dabei sein sollen und hättet coole Talks über

01:15:35.650 --> 01:15:37.970
abgefahrene Dinge halten können.

01:15:38.250 --> 01:15:39.870
Jeder hat ein Hobby und jeder kann das fünf Minuten

01:15:39.870 --> 01:15:41.710
präsentieren. Das interessiert ganz viele Leute.

01:15:41.830 --> 01:15:42.830
Meine Hobbys sind alle illegal.

01:15:45.230 --> 01:15:45.890
Meine Hobbys

01:15:45.890 --> 01:15:47.730
sind Python und Django, deshalb

01:15:47.730 --> 01:15:48.410
ich bin da schon

01:15:48.410 --> 01:15:50.550
ertappt.

01:15:52.770 --> 01:15:53.170
Ja.

01:15:53.170 --> 01:15:54.290
Ja, ansonsten.

01:15:54.410 --> 01:15:55.130
Das ist ein Bereich.

01:15:56.010 --> 01:15:58.070
Ja, stimmt. Also das hat mich auch gewundert,

01:15:58.170 --> 01:15:59.290
dass ich die Lightning-Talks war,

01:15:59.330 --> 01:16:00.790
schon vorbei, hupsala.

01:16:02.190 --> 01:16:04.030
Ja, waren zu wenige und waren auch nicht

01:16:04.030 --> 01:16:05.470
divers genug, sagen wir mal so.

01:16:06.290 --> 01:16:08.230
Ja, ansonsten so große, große Themen.

01:16:08.690 --> 01:16:09.910
Wir hatten jetzt so, genau, dieses ganze

01:16:09.910 --> 01:16:11.210
HTMX,

01:16:13.210 --> 01:16:14.330
so, genau,

01:16:14.610 --> 01:16:16.150
das war auf jeden Fall ein großes

01:16:16.150 --> 01:16:17.510
Thema, gab es viele Talks zu,

01:16:17.990 --> 01:16:19.570
viele Talks gab es halt auch zu

01:16:19.570 --> 01:16:21.370
Datenbank-Geschichten,

01:16:21.730 --> 01:16:23.270
das fand ich auch voll gut, also da waren auch einige,

01:16:23.910 --> 01:16:25.790
ja, eben diese. Der von Haki Benita,

01:16:25.890 --> 01:16:27.390
großartig. Ja, Markus Holtermann auch.

01:16:27.690 --> 01:16:28.950
Let's use another index.

01:16:29.810 --> 01:16:31.470
Ja. Can we do better?

01:16:31.650 --> 01:16:33.650
You've been in this talk long enough to know that yes,

01:16:33.730 --> 01:16:34.350
we can do better.

01:16:35.970 --> 01:16:37.510
Ja, oder auch der, wie macht man

01:16:37.510 --> 01:16:39.810
Migration eigentlich ordentlich, wenn man ein Produktionssystem

01:16:39.810 --> 01:16:41.150
hat, das irgendwie vielleicht nicht so

01:16:41.150 --> 01:16:43.650
verträgt, wenn man da mal, das fand ich auch

01:16:43.650 --> 01:16:44.430
sehr gut. Ich meine, klar.

01:16:44.750 --> 01:16:47.810
Was können wir denn machen, ohne den Django ORM zu benutzen?

01:16:47.890 --> 01:16:49.490
Was ist denn, wenn wir nur SQL benutzen wollen?

01:16:49.630 --> 01:16:51.370
Auch super. Ja, fand ich auch gut, weil

01:16:51.370 --> 01:16:53.650
dass das geht, war mir schon klar und

01:16:53.650 --> 01:16:55.690
ich habe das auch so ab und zu gemacht, aber was man da alles

01:16:55.690 --> 01:16:57.590
machen kann, das war mir jetzt gar nicht so präsent und das war

01:16:57.590 --> 01:16:59.630
ja, das war auch super. Und das

01:16:59.630 --> 01:17:01.350
SQL ist ja eigentlich auch eine sehr interessante

01:17:01.350 --> 01:17:03.510
Geschichte, dass man viel

01:17:03.510 --> 01:17:04.450
in SQL machen kann.

01:17:05.450 --> 01:17:07.430
Da kann man eine eigene Episode machen.

01:17:07.550 --> 01:17:07.970
Ja, drüber.

01:17:09.390 --> 01:17:11.370
Ja, ja, ja. Und Postgres wird immer besser.

01:17:12.310 --> 01:17:13.530
Ja, Postgres wird so langsam

01:17:13.530 --> 01:17:15.250
zur Eier legenden Wollmilch, aber das kann alles.

01:17:17.830 --> 01:17:19.250
Ja, das war auf jeden Fall auch ein

01:17:19.250 --> 01:17:20.630
großes Thema.

01:17:22.050 --> 01:17:23.590
Ja, dann, was hatten wir denn

01:17:23.590 --> 01:17:25.370
noch an größeren, dann

01:17:25.370 --> 01:17:26.990
GraphQL, war halt auch

01:17:26.990 --> 01:17:31.690
ein großes Thema,

01:17:31.810 --> 01:17:32.730
aber auch vor allen Dingen in Kombination,

01:17:32.930 --> 01:17:34.470
in einem Talk gab es, fand ich,

01:17:36.890 --> 01:17:39.530
im Zusammenhang

01:17:39.530 --> 01:17:41.110
mit Domain-Driven

01:17:41.110 --> 01:17:41.770
Design

01:17:41.770 --> 01:17:45.450
und genau.

01:17:45.650 --> 01:17:47.250
Sehr gut. Genau, aber da

01:17:47.250 --> 01:17:49.370
war auch, das muss ich, ja, es ist halt

01:17:49.370 --> 01:17:51.230
tatsächlich nicht so ganz einfach, das

01:17:51.230 --> 01:17:53.290
miteinander zu verknüpfen. Da wäre

01:17:53.290 --> 01:17:55.150
auch nochmal interessant gewesen, wie du

01:17:55.150 --> 01:17:57.070
das in dem dritten Teil, der da nicht vorgekommen ist.

01:17:57.070 --> 01:17:57.810
Achso, der ist ja in der

01:17:57.810 --> 01:17:59.790
Aufzeichnung.

01:18:01.490 --> 01:18:02.990
Genau, wie macht man das eigentlich,

01:18:03.130 --> 01:18:03.510
wenn man jetzt

01:18:03.510 --> 01:18:07.230
wenn man jetzt

01:18:07.230 --> 01:18:08.950
irgendwie

01:18:08.950 --> 01:18:11.030
Business-Logik hat, wo packt man die denn

01:18:11.030 --> 01:18:12.390
jetzt in Django eigentlich hin,

01:18:13.050 --> 01:18:14.890
wenn doch viele sagen, dass

01:18:14.890 --> 01:18:16.850
gar nicht so gut ist, das in die Models zu packen.

01:18:17.050 --> 01:18:18.750
Server, Helpers, Services,

01:18:19.010 --> 01:18:19.790
Helpers, Utils.

01:18:19.790 --> 01:18:21.750
Jochen, da haben wir doch schon

01:18:21.750 --> 01:18:23.550
drüber gesprochen, wenn du das in die Models packst,

01:18:23.590 --> 01:18:25.630
ist überhaupt nicht solid. Die sind überhaupt

01:18:25.630 --> 01:18:27.430
nicht mehr Single Responsibility,

01:18:27.650 --> 01:18:29.670
die sind überhaupt nicht mehr ersetzbar, die sind überhaupt nicht mehr

01:18:29.670 --> 01:18:30.510
Ja.

01:18:31.210 --> 01:18:33.270
Jede Buchstabe von Solid ist direkt

01:18:33.270 --> 01:18:35.390
ist direkt

01:18:35.390 --> 01:18:37.650
verletzt. Aber ja, das Problem

01:18:37.650 --> 01:18:39.550
ist halt, andererseits auch irgendwie

01:18:39.550 --> 01:18:40.810
nicht, weil das andererseits ist

01:18:40.810 --> 01:18:43.350
Es ist halt auch schon sehr praktisch, das ist auch richtig.

01:18:44.430 --> 01:18:45.770
Aber da, auf jeden Fall

01:18:45.770 --> 01:18:47.550
mich kam darauf, weil sich auch, glaube ich, eben

01:18:47.550 --> 01:18:49.810
in dieser Domain-Driven-Design-Plus-GraphQL

01:18:49.810 --> 01:18:51.570
Geschichte hat sich auch, oder vielleicht war es

01:18:51.570 --> 01:18:53.250
so ein anderer, vielleicht kriege ich es auch mal so richtig zusammen,

01:18:53.590 --> 01:18:55.710
Talk, hat sich auch jemand dann so, ja, wie macht man

01:18:55.710 --> 01:18:57.370
das eigentlich mit Django? Und dann, okay,

01:18:57.610 --> 01:18:59.390
irgendwie geht es nicht so richtig gut, weil

01:18:59.390 --> 01:19:01.830
wenn man es in die Models

01:19:01.830 --> 01:19:03.230
schreibt, dann hat man da etwas,

01:19:03.810 --> 01:19:05.450
macht man da etwas, was man eigentlich nicht tun sollte

01:19:05.450 --> 01:19:07.710
und ja, aber anders geht es

01:19:07.710 --> 01:19:08.870
irgendwie auch nicht gut und

01:19:08.870 --> 01:19:11.510
Ja, das ist einfach so eine

01:19:11.510 --> 01:19:13.590
ungelöste Frage.

01:19:13.750 --> 01:19:15.610
Da ist auf jeden Fall noch eine Baustelle

01:19:15.610 --> 01:19:17.470
und ich fand, man hat diesmal auch gemerkt, dass

01:19:17.470 --> 01:19:19.170
die ordentlichen Menge,

01:19:19.770 --> 01:19:21.350
ordentlichen Anteil der Leute tut es halt weh,

01:19:21.610 --> 01:19:23.530
aber es gibt irgendwie keine Lösung, keine jedenfalls

01:19:23.530 --> 01:19:25.510
keine Best Practice, die man einfach so verwenden

01:19:25.510 --> 01:19:25.750
könnte.

01:19:28.230 --> 01:19:29.690
Das ist so ein bisschen

01:19:29.690 --> 01:19:31.530
der letzte Punkt, den ich bringen

01:19:31.530 --> 01:19:33.510
möchte, der letzte Kritikpunkt, den

01:19:33.510 --> 01:19:34.030
ich bringen möchte.

01:19:35.090 --> 01:19:37.550
Die Django-Community ist großartig.

01:19:37.650 --> 01:19:39.210
Die ist ganz große Klasse und

01:19:39.210 --> 01:19:40.670
es gab quasi nichts,

01:19:41.450 --> 01:19:43.070
wo ich irgendwie negative

01:19:43.070 --> 01:19:44.890
Erfahrungen machte. Es gab nichts, wo jemand

01:19:44.890 --> 01:19:46.770
ausgelacht wurde oder wo

01:19:46.770 --> 01:19:49.190
ein unangenehmer Witz gemacht wurde oder wo

01:19:49.190 --> 01:19:51.310
irgendwas negativ betrachtet wurde, sondern es ist

01:19:51.310 --> 01:19:52.550
alles großartig und positiv.

01:19:53.530 --> 01:19:55.810
Und das ist großartig, ja, das ist super für so eine Community

01:19:55.810 --> 01:19:58.010
und ich bin da echt froh

01:19:58.010 --> 01:19:59.970
und dankbar, Teil so einer Community

01:19:59.970 --> 01:20:01.350
zu sein und jetzt nicht irgendwo

01:20:01.350 --> 01:20:03.810
so in so einer

01:20:03.810 --> 01:20:05.790
giftigen Community

01:20:05.790 --> 01:20:07.250
festzustecken, die alle fertig machen.

01:20:08.350 --> 01:20:10.030
Also ja, das ist wirklich großartig.

01:20:10.090 --> 01:20:11.690
Und auch, dass

01:20:11.690 --> 01:20:13.830
es geschafft wurde, dass viele

01:20:13.830 --> 01:20:15.210
Frauen dabei sind, ja, auch

01:20:15.210 --> 01:20:17.810
vielleicht nicht binäre, die waren jetzt, die standen jetzt

01:20:17.810 --> 01:20:19.590
hier nicht irgendwo im Vordergrund oder so, aber

01:20:19.590 --> 01:20:21.470
das wäre überhaupt gar kein Thema gewesen, ja.

01:20:21.830 --> 01:20:22.850
Wäre überhaupt gar kein Thema gewesen.

01:20:23.530 --> 01:20:26.150
großartig, ja, großartige

01:20:26.150 --> 01:20:27.890
Community, sehr inklusiv, sehr, sehr

01:20:27.890 --> 01:20:29.350
positiv, aber

01:20:29.350 --> 01:20:32.250
aber auch

01:20:32.250 --> 01:20:34.270
an manchen Stellen einfach ein bisschen zu positiv.

01:20:35.750 --> 01:20:36.350
Zu wenig

01:20:36.350 --> 01:20:38.030
über die schlechte Bildqualität wurde mal geredet,

01:20:38.070 --> 01:20:40.030
das mal. Ja, das meine ich gar

01:20:40.030 --> 01:20:40.770
nicht, sondern

01:20:40.770 --> 01:20:43.950
Django, es wurde auch auf der Konferenz

01:20:43.950 --> 01:20:45.970
mehrmals als the boring old framework

01:20:45.970 --> 01:20:48.070
bezeichnet und

01:20:48.070 --> 01:20:49.850
das ist was, was man Django

01:20:49.850 --> 01:20:51.790
und der Community vorwerfen kann, ja, die Innovation

01:20:51.790 --> 01:20:53.710
kommt aus anderen Sachen.

01:20:54.250 --> 01:20:56.170
Die innovativen Sachen kommen aus

01:20:56.170 --> 01:20:58.010
der Ruby-Welt, die viel kleiner ist.

01:20:58.590 --> 01:20:59.350
Aus der Rails-Welt.

01:20:59.930 --> 01:21:02.050
Die innovativen Sachen kommen aus der JavaScript-Welt,

01:21:02.350 --> 01:21:04.030
die halt, ja okay,

01:21:04.290 --> 01:21:06.030
die halt tun müssen, ja, weil sie

01:21:06.030 --> 01:21:06.630
nicht anders können.

01:21:08.070 --> 01:21:09.430
Aber warum haben wir

01:21:09.430 --> 01:21:11.970
denn nicht so

01:21:11.970 --> 01:21:14.190
viel Innovation in der Django und in der Python-Welt?

01:21:14.190 --> 01:21:14.570
Warum

01:21:14.570 --> 01:21:18.230
beäugen wir die Sachen nicht auch mal viel skeptischer

01:21:18.230 --> 01:21:20.090
und sagen, ja, das ist ja schon ganz gut, aber

01:21:20.090 --> 01:21:21.530
es könnte noch viel cooler sein?

01:21:21.790 --> 01:21:37.910
So ein bisschen sieht man das ja mit dem HTMLX und mit dem Fullstack without writing JavaScript. Aber das sind immer nur Sachen, die, wir zeigen jetzt mal eine Lösung, die jemand gemacht hat.

01:21:38.810 --> 01:21:40.330
es gab wenig so

01:21:40.330 --> 01:21:42.970
lasst uns doch mal Folgendes machen oder lasst uns mal

01:21:42.970 --> 01:21:45.170
ausprobieren oder hier ist was, was ihr noch nie gesehen habt.

01:21:46.010 --> 01:21:47.110
Weil es das noch nicht gibt

01:21:47.110 --> 01:21:49.070
irgendwo anders. Und ich hatte

01:21:49.070 --> 01:21:50.990
das Gefühl, oder ich habe schon länger das Gefühl,

01:21:51.070 --> 01:21:52.990
dass die Django-Community eben so ein kleines bisschen

01:21:52.990 --> 01:21:53.490
weniger

01:21:53.490 --> 01:21:56.810
weniger

01:21:56.810 --> 01:21:59.030
ja, es ist schwer, das in Worte

01:21:59.030 --> 01:22:00.570
zu fassen, ohne zu negativ zu sein.

01:22:00.570 --> 01:22:02.810
Das ist einfach so gut, dass man einfach den Nied nicht hat,

01:22:02.870 --> 01:22:04.210
sich so schnell in eine andere Richtung zu bringen.

01:22:04.210 --> 01:22:04.590
Ja, vielleicht.

01:22:06.690 --> 01:22:24.350
Ja, aber das ist ja so ein lokales Maximum, ja. Vielleicht ist das ja so. Vielleicht ist ja Django so ein lokales Maximum, wo es eben sehr schwer ist, sich rauszuoptimieren, weil jeder Schritt nach draußen erstmal ein Schritt nach unten ist. Und vielleicht ist es das, aber ich würde es mir halt wünschen, ja.

01:22:24.350 --> 01:22:26.790
Ich habe in der Rails-Welt

01:22:26.790 --> 01:22:28.050
total coole Sachen gesehen.

01:22:28.630 --> 01:22:30.510
Hotwire kommt, glaube ich, aus der Rails-Welt.

01:22:31.090 --> 01:22:32.350
Es wurde mehrmals darauf verwiesen,

01:22:32.450 --> 01:22:34.690
wie Rails das macht, während Konferenztalks.

01:22:35.570 --> 01:22:36.390
Und das ist schade,

01:22:36.530 --> 01:22:38.110
weil Django sollte der Vorreiter sein.

01:22:38.210 --> 01:22:40.250
Django ist nicht der Vorreiter. Django ist die

01:22:40.250 --> 01:22:41.370
beste Lösung, aber nicht der Vorreiter.

01:22:41.590 --> 01:22:44.430
Auf der anderen Seite ist Django

01:22:44.430 --> 01:22:46.110
damit natürlich auch so ein bisschen wie Python selber.

01:22:46.330 --> 01:22:48.230
Irgendwie so das zweitbeste

01:22:48.230 --> 01:22:49.150
Framework.

01:22:49.650 --> 01:22:52.250
Und es ist der absolut beste Platz, wo man sein kann,

01:22:52.250 --> 01:22:54.110
der zweitbeste zu sein, weil der erste wird immer

01:22:54.110 --> 01:22:55.370
angegriffen und sie zerlegt.

01:22:56.470 --> 01:22:58.210
Mach doch mal, Johannes, sei doch mal innovativ.

01:22:58.370 --> 01:22:59.410
Bring doch mal was Neues raus.

01:23:00.110 --> 01:23:01.330
Ja, ich versuch's ja.

01:23:01.590 --> 01:23:02.550
Ich versuch's ja, aber

01:23:02.550 --> 01:23:05.390
erst mal muss ich Geld verdienen.

01:23:06.610 --> 01:23:07.770
Ja, da kommt wieder her

01:23:07.770 --> 01:23:08.990
der Greed und so.

01:23:10.990 --> 01:23:11.890
Ja, ja, ja.

01:23:13.110 --> 01:23:13.850
Diese Sache mit

01:23:13.850 --> 01:23:15.330
Anvil, Jochen, die ist ja großartig.

01:23:15.490 --> 01:23:17.390
Anvil ist ja eine ganz

01:23:17.390 --> 01:23:19.490
verrückte, abgefahrene Sache.

01:23:19.610 --> 01:23:21.710
Was ist Anvil? Ein Schmiede-Amboss

01:23:21.710 --> 01:23:23.870
für... Ja, das ist quasi

01:23:23.870 --> 01:23:25.630
JavaScript aus Python.

01:23:25.790 --> 01:23:26.350
Die haben

01:23:26.350 --> 01:23:30.350
einen Python-Compiler

01:23:30.350 --> 01:23:30.890
für

01:23:30.890 --> 01:23:33.710
JavaScript, der JavaScript erzeugt. Das heißt, du kannst

01:23:33.710 --> 01:23:35.610
dein System komplett in Python schreiben

01:23:35.610 --> 01:23:37.830
und hast dann aber trotzdem hinterher

01:23:37.830 --> 01:23:38.810
eine JavaScript-Webseite.

01:23:40.450 --> 01:23:41.890
Großartig. Großartige Idee.

01:23:43.190 --> 01:23:43.790
Funktioniert auch.

01:23:43.910 --> 01:23:45.950
Kann man jetzt schon

01:23:45.950 --> 01:23:47.890
benutzen. Er hat auch eine Live-Demo gemacht, die dann sofort

01:23:47.890 --> 01:23:49.510
live war. Auch

01:23:49.510 --> 01:23:51.790
sehr großartig. Weiß nicht, ob das Ding noch live ist.

01:23:51.790 --> 01:23:52.390
Müssen wir mal gucken.

01:23:53.870 --> 01:23:58.170
Ja, aber es geht auch,

01:23:58.310 --> 01:23:59.210
das ist dann schon nicht mehr Django.

01:24:00.210 --> 01:24:01.830
Anvil ist, glaube ich, relativ wenig Django.

01:24:02.170 --> 01:24:03.870
Ja, ja, ja. Genau.

01:24:05.010 --> 01:24:06.290
Aber vielleicht ist das ja genau das

01:24:06.290 --> 01:24:08.330
Indiz dafür, dass das aus dem lokalen

01:24:08.330 --> 01:24:10.190
Maximum da raus... Ich glaube auch, es ist

01:24:10.190 --> 01:24:12.110
einfach schwer, du kannst auch Django nicht mehr so leicht

01:24:12.110 --> 01:24:14.190
verändern. Du kannst ja nicht einfach sagen, wir bauen

01:24:14.190 --> 01:24:15.950
jetzt Django so um, dass es sowas wie Anvil ist.

01:24:16.190 --> 01:24:18.050
Ja, das würde halt... Das ist einfach so viel Arbeit.

01:24:18.050 --> 01:24:19.790
Das Johannes eben gesagt hat, dass wir Module

01:24:19.790 --> 01:24:21.970
daraus machen. Ja, das wäre

01:24:21.970 --> 01:24:23.990
möglicherweise ein Grund, das zu

01:24:23.990 --> 01:24:25.870
tun. Wenn man sagt, also ich meine, es fängt ja schon bei

01:24:25.870 --> 01:24:27.910
sowas an wie Django Admin, haben ja auch schon viele

01:24:27.910 --> 01:24:29.830
Leute gesagt, aber es wäre doch auch cooler, wenn das irgendwie

01:24:29.830 --> 01:24:31.990
so ein bisschen reaktiver wäre und wenn man da irgendwie

01:24:31.990 --> 01:24:33.770
so ein paar modernere... Es geht halt nicht, weil

01:24:33.770 --> 01:24:35.330
Django Admin Neuschreiben... Oder wenn man seine Anwendung da besser

01:24:35.330 --> 01:24:37.870
integrieren könnte. Ja, aber

01:24:37.870 --> 01:24:39.910
es wird halt auch da, wird dann immer gesagt, so ja, Django Admin

01:24:39.910 --> 01:24:41.950
Neuschreiben, vergiss es einfach, das kriegst du ja nicht mehr hin.

01:24:42.090 --> 01:24:43.930
Das ist nicht zu machen. Ja, oder

01:24:43.930 --> 01:24:45.930
es ist halt nicht... Es ist halt das

01:24:45.930 --> 01:24:47.750
lokale Maximum, ja. Du kannst ein Django Admin schon

01:24:47.750 --> 01:24:49.850
Neuschreiben, aber der wird erstmal eine ganze Weile

01:24:49.850 --> 01:24:51.690
lang sehr viel schlechter sein, als der Django hat,

01:24:51.730 --> 01:24:52.490
mit dem du jetzt hast.

01:24:54.110 --> 01:24:55.930
Und dann ist die Motivation

01:24:55.930 --> 01:24:57.310
schon so ein bisschen so, ach ja,

01:24:57.450 --> 01:24:58.690
dann nehme ich halt den Django ab.

01:25:00.470 --> 01:25:01.710
Und das vielleicht, ja, vielleicht

01:25:01.710 --> 01:25:04.110
ist das der richtige Weg, das zu modularisieren.

01:25:04.910 --> 01:25:05.270
Ja,

01:25:05.390 --> 01:25:07.730
ich meine, ich würde da sagen,

01:25:07.810 --> 01:25:09.810
Flask, um da nochmal, weil da gab es

01:25:09.810 --> 01:25:10.550
noch News zu.

01:25:12.630 --> 01:25:13.770
Das ist ja der andere Ansatz,

01:25:13.870 --> 01:25:14.430
das ist ja sozusagen,

01:25:14.950 --> 01:25:17.830
alles ist modular und du bastelst

01:25:17.830 --> 01:25:19.630
dir das halt selber zusammen. Und es gibt auch keine

01:25:19.630 --> 01:25:21.690
Standardmodule, sondern du musst dir selber Standardmodule

01:25:21.690 --> 01:25:22.050
suchen.

01:25:23.630 --> 01:25:25.370
Da gab es jetzt eine neue Release,

01:25:25.790 --> 01:25:27.650
Flask 2.0, und

01:25:27.650 --> 01:25:28.850
ich hatte ja mal so irgendwie

01:25:28.850 --> 01:25:31.290
Kess behauptet, ah, das wird nie

01:25:31.290 --> 01:25:33.410
irgendwie, weil

01:25:33.410 --> 01:25:35.330
ich hatte das noch so in Erinnerung,

01:25:35.690 --> 01:25:37.670
dass da ja auch mal sehr, sehr

01:25:37.670 --> 01:25:39.650
stark geachtet wurde auf Abwerbskompatibilität

01:25:39.650 --> 01:25:40.550
und möglichst, also gerade,

01:25:41.490 --> 01:25:42.610
na, wie heißt der noch?

01:25:43.450 --> 01:25:44.730
Dings da, Armin,

01:25:45.470 --> 01:25:47.370
der missfällt das ja total, dass

01:25:47.370 --> 01:25:49.370
irgendwie der

01:25:49.370 --> 01:25:52.110
der hat ja am liebsten Abwärtskompatibilität

01:25:52.110 --> 01:25:53.350
bis, weiß ich nicht, eigentlich

01:25:53.350 --> 01:25:55.430
bis ganz weit, bis Jahrzehnte zurück.

01:25:55.990 --> 01:25:57.410
Was ich ja auch verstehen kann in gewisser Weise.

01:25:57.790 --> 01:25:58.830
Ja, ja, hat auch Vorteile.

01:25:59.610 --> 01:26:01.590
Aber auf der anderen Seite würde das eben bedeuten,

01:26:01.710 --> 01:26:03.450
ja, sowas wie Async Await, das wird dann

01:26:03.450 --> 01:26:05.190
halt nie gehen, weil das, oder

01:26:05.190 --> 01:26:07.550
und Flask ist halt auch

01:26:07.550 --> 01:26:09.230
direkt setzt halt, ist eines der ersten Frames, das

01:26:09.230 --> 01:26:11.450
direkt auf WSGI aufsetzt, was halt

01:26:11.450 --> 01:26:12.830
ein Problem ist, weil

01:26:12.830 --> 01:26:15.470
naja, das ist halt nicht Async

01:26:15.470 --> 01:26:16.670
und das kriegst du auch nicht dazu.

01:26:17.770 --> 01:26:19.210
Und Django hat es da sogar ein bisschen einfacher,

01:26:19.290 --> 01:26:20.510
weil Django ist nämlich älter als

01:26:20.510 --> 01:26:23.190
WSGI und WSGI ist schon

01:26:23.190 --> 01:26:23.770
irgendwie da so

01:26:23.770 --> 01:26:27.190
dran gebastelt und jetzt kann man

01:26:27.190 --> 01:26:28.350
halt auch noch was anderes ranbasteln.

01:26:28.570 --> 01:26:30.710
Auf jeden Fall eine Stelle, an der man was ranbasteln kann,

01:26:30.810 --> 01:26:33.130
die bei Flask so nicht da ist. Deswegen dachte ich so,

01:26:33.250 --> 01:26:35.170
naja, also das Flask-Async-fähig

01:26:35.170 --> 01:26:37.170
wird nicht passieren. Aber es ist

01:26:37.170 --> 01:26:39.130
tatsächlich passiert, jetzt mit 2.0 geht

01:26:39.130 --> 01:26:40.970
das und sie haben auch eine Menge

01:26:40.970 --> 01:26:43.170
eben, sie haben halt die Abwärtskompetitivität

01:26:44.010 --> 01:26:47.410
beendet, jedenfalls.

01:26:47.710 --> 01:26:48.030
Aufgegeben.

01:26:49.290 --> 01:26:52.350
Ja gut, okay, aber in einer Major-Release

01:26:52.350 --> 01:26:52.970
kann man das auch machen.

01:26:54.730 --> 01:26:56.370
Aber dann hätten sie es, geschickterweise

01:26:56.370 --> 01:26:57.930
hätten sie es Flask 3 nennen müssen,

01:26:58.150 --> 01:26:59.850
weil das ist doch das, wo in Python immer die

01:26:59.850 --> 01:27:01.670
Kompetenzen zerbrechen.

01:27:03.810 --> 01:27:04.250
Genau,

01:27:05.010 --> 01:27:06.470
das braucht

01:27:06.470 --> 01:27:07.770
jetzt mindestens Python 3.6 und

01:27:07.770 --> 01:27:10.730
genau, man hat jetzt auch Async-Geschichten

01:27:10.730 --> 01:27:12.290
da drin und SGI und

01:27:12.290 --> 01:27:14.230
es gab da immer so ein Ding

01:27:14.230 --> 01:27:16.050
dafür, Quad, das gibt es auch immer noch, das ist

01:27:16.050 --> 01:27:18.230
ja, da hatte ich das übrigens

01:27:18.230 --> 01:27:18.990
auch her, die Idee

01:27:18.990 --> 01:27:21.870
aus einer Podcast-Episode mit

01:27:21.870 --> 01:27:23.850
dem jetzigen Maintainer von

01:27:23.850 --> 01:27:24.770
Flask,

01:27:26.670 --> 01:27:28.330
dass man doch, weil der sagte so,

01:27:28.390 --> 01:27:29.630
ja ey, wozu braucht man das denn?

01:27:30.650 --> 01:27:32.150
Das ist doch irgendwie, in der Flask-Welt

01:27:32.150 --> 01:27:34.010
machen wir das schon seit jeher mit

01:27:34.010 --> 01:27:36.170
Eventlets und G-Event.

01:27:37.510 --> 01:27:38.210
Ich so, ha, okay.

01:27:40.550 --> 01:27:41.430
Und das geht?

01:27:41.430 --> 01:27:43.330
Und das geht? Und dann habe ich es probiert und ja, es geht.

01:27:43.410 --> 01:27:45.410
Tatsächlich, das kann man machen. Und das ist halt

01:27:45.410 --> 01:27:47.270
möglicherweise auch tatsächlich eine einfachere Lösung für

01:27:47.270 --> 01:27:49.350
dieses File-Surf-Problem

01:27:49.350 --> 01:27:51.410
einfach einen Geo-Event-Worker

01:27:51.410 --> 01:27:53.390
nimmt, der dann halt die Standard-Bibliothek

01:27:53.390 --> 01:27:55.490
monkeypatcht und alle synchronen

01:27:55.490 --> 01:27:56.810
I.O. Calls ersetzt durch

01:27:56.810 --> 01:27:59.150
nicht blockierende und

01:27:59.150 --> 01:28:00.270
das funktioniert dann einfach magisch.

01:28:01.290 --> 01:28:03.350
Über monkeypatching ist halt so ein bisschen gefährlich,

01:28:03.450 --> 01:28:05.150
aber wenn das nur für die Worker macht, die die

01:28:05.150 --> 01:28:06.990
Files ausliefern, ist es vielleicht auch nicht so schlimm.

01:28:07.910 --> 01:28:08.910
Ja, aber

01:28:08.910 --> 01:28:11.310
und was man da auch machen kann,

01:28:11.350 --> 01:28:13.170
ist, man kann das gleichzeitig machen. Man macht halt

01:28:13.170 --> 01:28:14.910
Geo-Event irgendwie auf dem

01:28:14.910 --> 01:28:16.930
Main-Thread und

01:28:16.930 --> 01:28:18.650
packt halt, und das macht Django ja auch, und zwar

01:28:18.650 --> 01:28:20.510
auch aus dem Grund, um G-Event und

01:28:20.510 --> 01:28:22.350
Eventlets nicht zu brechen,

01:28:23.830 --> 01:28:25.010
den ganzen, die lässt

01:28:25.010 --> 01:28:26.390
die Event-Gloob in einem anderen Thread laufen.

01:28:27.070 --> 01:28:28.970
Und dann alles, was I think Await macht, läuft dann halt

01:28:28.970 --> 01:28:30.390
in einem anderen Thread und

01:28:30.390 --> 01:28:32.870
trotzdem funktioniert diese ganze

01:28:32.870 --> 01:28:34.490
Eventlet-G-Event-Geschichte weiterhin.

01:28:35.430 --> 01:28:37.150
Also, interessant

01:28:37.150 --> 01:28:38.730
wusste ich alles gar nicht, aber auf der anderen Seite

01:28:38.730 --> 01:28:40.710
sagten die auch, ja, also tatsächlich, um

01:28:40.710 --> 01:28:42.970
kompatibel zu sein zu moderneren

01:28:42.970 --> 01:28:45.030
Bibliotheken und so, wo man Await-Syntax

01:28:45.030 --> 01:28:46.550
verwenden

01:28:46.550 --> 01:28:48.450
mustern, weil die nur noch das können.

01:28:49.170 --> 01:28:50.890
Hm, ja, bleibt uns wohl auch nichts anderes

01:28:50.890 --> 01:28:52.210
übrig, müssen wir das auch irgendwie können,

01:28:52.770 --> 01:28:55.130
weil du kannst halt in einem synchronen Funktionsaufruf

01:28:55.130 --> 01:28:56.550
nicht irgendwas erwähnen, das geht einfach nicht.

01:28:57.550 --> 01:28:58.950
Ja, und deswegen ist es

01:28:58.950 --> 01:29:00.850
auch in Flask jetzt drin und ja, das wird

01:29:00.850 --> 01:29:03.170
also Flask immer noch weiterentwickelt,

01:29:03.350 --> 01:29:04.930
voll gut. Ich weiß nicht

01:29:04.930 --> 01:29:06.250
so recht, ich habe mit dieser ganzen

01:29:06.250 --> 01:29:09.010
Welt nicht so wahnsinnig viel zu tun,

01:29:09.010 --> 01:29:11.190
weil ich jetzt ehrlich gesagt auch keine Flask-Projekte

01:29:11.190 --> 01:29:12.810
oder sowas habe oder Dinge, wo ich was

01:29:12.810 --> 01:29:14.610
drin schreibe. Ich benutze dann immer,

01:29:14.870 --> 01:29:16.410
Ich habe noch ein paar Sachen, die

01:29:16.410 --> 01:29:18.290
Fast-API sind und das finde ich auch sehr nett.

01:29:18.390 --> 01:29:20.170
Und ich glaube, das ist ja so ähnlich wie Flask quasi.

01:29:22.170 --> 01:29:22.690
Also auch

01:29:22.690 --> 01:29:24.050
in der Hinsicht, dass es halt nicht

01:29:24.050 --> 01:29:26.190
dir vorgibt, was

01:29:26.190 --> 01:29:28.150
also es ist halt nicht integriert, sondern

01:29:28.150 --> 01:29:30.310
es bringt gar nichts mit, sondern du musst

01:29:30.310 --> 01:29:32.230
alles dann halt selber

01:29:32.230 --> 01:29:33.770
konfigurieren und zusammenstecken.

01:29:35.250 --> 01:29:36.290
Ja, aber es ist halt

01:29:36.290 --> 01:29:38.290
war halt nativ direkt Async und macht alles über

01:29:38.290 --> 01:29:39.510
Type und Annotation und so.

01:29:40.630 --> 01:29:42.470
Ja, insofern.

01:29:42.470 --> 01:29:44.350
Aber ja, es ist schön, dass Flask

01:29:44.350 --> 01:29:45.850
halt auch jetzt einen neuen Release hat.

01:29:46.850 --> 01:29:48.390
Wenn wir schon bei den ganzen Webfilmen sind,

01:29:48.510 --> 01:29:49.590
liebt Pyramid eigentlich noch?

01:29:50.150 --> 01:29:51.490
Ja, da gab es ja auch,

01:29:52.090 --> 01:29:54.130
weiß nicht, ist jetzt ein paar Monate her, glaube ich, aber da gab es auch

01:29:54.130 --> 01:29:54.650
einen neuen Release.

01:29:57.030 --> 01:29:58.490
Habe ich allerdings auch nichts mehr zu tun,

01:29:58.570 --> 01:29:59.910
keine Ahnung, kann ich nicht mehr drüber erzählen.

01:30:01.050 --> 01:30:02.610
Aber in unserem

01:30:02.610 --> 01:30:04.190
Bekanntenkreis gibt es Leute, die das

01:30:04.190 --> 01:30:04.890
ganz stark

01:30:04.890 --> 01:30:08.210
in der

01:30:08.210 --> 01:30:08.970
Pi-DDF-Konferenz.

01:30:09.630 --> 01:30:11.390
Kommt immer wieder was auf.

01:30:14.250 --> 01:30:15.770
Ja, genau.

01:30:17.010 --> 01:30:18.470
Ja, ich finde, dann haben wir einen kleinen Überblick

01:30:18.470 --> 01:30:19.850
über die Jungle-Kongen tatsächlich jetzt gegeben.

01:30:21.250 --> 01:30:22.350
Guckt euch doch die ganzen Videos an,

01:30:22.370 --> 01:30:24.090
wenn sie alle draußen sind. Das ist bestimmt noch mal

01:30:24.090 --> 01:30:25.450
interessant.

01:30:25.750 --> 01:30:28.290
Ja, mache ich auf jeden Fall.

01:30:30.250 --> 01:30:30.570
Genau.

01:30:31.150 --> 01:30:32.550
Wollen wir noch was vergessen? Habt ihr noch was dazu?

01:30:33.050 --> 01:30:33.890
Wollen wir noch Pics machen?

01:30:34.050 --> 01:30:34.930
Oh ja, können wir machen.

01:30:35.790 --> 01:30:37.530
Johannes, was ist dein Pick dieses Mal?

01:30:39.790 --> 01:30:40.270
Ich habe

01:30:40.270 --> 01:30:41.730
dieses Mal keinen Pick mitgebracht.

01:30:42.030 --> 01:30:43.790
Na gut. Doch, doch, ich habe keinen Pick.

01:30:44.250 --> 01:30:45.530
DevDocs.

01:30:45.790 --> 01:30:46.910
Ah, ja, achso.

01:30:48.030 --> 01:30:50.130
Tja, die hatten wir leider schon in der letzten Episode.

01:30:50.790 --> 01:30:51.790
Hattet ihr schon? Okay, gut.

01:30:51.970 --> 01:30:53.710
Dann wiederhole ich das, dann bekräftige ich das.

01:30:53.830 --> 01:30:56.230
Jeder sollte sich das sofort auf seinen Rechner runterladen

01:30:56.230 --> 01:30:57.410
und für alles benutzen.

01:30:57.790 --> 01:31:00.090
Ich fand es ja sehr schön. Ich habe das jetzt kürzlich

01:31:00.090 --> 01:31:02.130
gefunden und habe dann natürlich direkt alle

01:31:02.130 --> 01:31:03.550
Dokumentationen runtergeladen, die es runtergeladen hat.

01:31:03.550 --> 01:31:04.950
Vielleicht, weil du unseren Podcast gehört hast?

01:31:05.830 --> 01:31:07.990
Natürlich, weil ich das nachgeholt

01:31:07.990 --> 01:31:09.310
habe, habe ich es nachgeholt quasi.

01:31:12.550 --> 01:31:14.070
Was mich sehr

01:31:14.070 --> 01:31:16.150
belustigt hat, war, ich habe diese Dokumentation

01:31:16.150 --> 01:31:18.130
runtergeladen in den Offline-Modus und die

01:31:18.130 --> 01:31:19.770
Django-Dokumentation sind, glaube ich,

01:31:20.470 --> 01:31:22.150
6 MB und die Python-Dokumentation

01:31:22.150 --> 01:31:24.130
sind etwas über 9 MB und die

01:31:24.130 --> 01:31:26.130
Dokumentation für die DOM sind 64

01:31:26.130 --> 01:31:26.670
MB.

01:31:28.710 --> 01:31:29.350
Also

01:31:29.350 --> 01:31:32.150
6,5 Pythons

01:31:32.930 --> 01:31:34.070
muss man

01:31:34.070 --> 01:31:35.370
komplett kennen, um

01:31:35.370 --> 01:31:38.110
die DOM benutzen zu dürfen.

01:31:38.530 --> 01:31:39.330
Fand ich

01:31:39.330 --> 01:31:42.250
erschreckend, schrägstrich belustigend.

01:31:42.550 --> 01:31:46.470
Ja, damit ihr noch mal wisst, was das ist,

01:31:46.530 --> 01:31:48.490
man kann sich halt tatsächlich auf einer einzigen

01:31:48.490 --> 01:31:50.210
Seite die Dokumentation von verschiedensten

01:31:50.210 --> 01:31:52.250
Frameworks und Sprachen irgendwie

01:31:52.250 --> 01:31:54.630
auf seine Favorites legen und hat dann direkt einen Zugriff

01:31:54.630 --> 01:31:56.210
auf das Buch.

01:31:56.390 --> 01:31:57.790
Ja, und auch offline.

01:31:59.650 --> 01:32:00.490
Jochen, was ist deine

01:32:00.490 --> 01:32:01.510
Pick?

01:32:02.250 --> 01:32:03.270
Das ist eine sehr frohe Frage.

01:32:04.350 --> 01:32:06.050
Ich kann vielleicht auch, was ich tatsächlich

01:32:06.050 --> 01:32:07.770
sehr schick fand, habe ich jetzt,

01:32:07.770 --> 01:32:08.730
das meine ich auch,

01:32:09.490 --> 01:32:11.990
EIO SQL

01:32:11.990 --> 01:32:13.590
ist so eine ganz eigene Art,

01:32:14.410 --> 01:32:15.710
wie man jetzt nochmal, also

01:32:15.710 --> 01:32:17.370
ich dachte dran, musste dran denken,

01:32:17.770 --> 01:32:18.970
ich weiß nicht mehr, wie ich drauf gekommen bin,

01:32:19.570 --> 01:32:21.950
als ich den Talk zu RAW, SQL

01:32:21.950 --> 01:32:23.710
und Django gehört hatte

01:32:23.710 --> 01:32:25.630
und dachte so, ja, also man kann

01:32:25.630 --> 01:32:27.310
halt auch

01:32:27.310 --> 01:32:29.730
sich so als

01:32:29.730 --> 01:32:31.830
alternatives Konzept zu dem klassischen ORMs,

01:32:31.910 --> 01:32:33.710
die man so hat, einfach alles

01:32:33.710 --> 01:32:36.190
über Statements definieren

01:32:36.190 --> 01:32:37.590
und dann diese Statements halt so ein bisschen

01:32:37.590 --> 01:32:39.250
parametrisierbar machen und das ist halt,

01:32:39.250 --> 01:32:40.970
das ist auch alles Async und so und

01:32:40.970 --> 01:32:43.650
das ist auch eine sehr nette

01:32:43.650 --> 01:32:44.530
Geschichte, kann man sich mal angucken.

01:32:44.650 --> 01:32:46.190
Also direkt SGL-Statements aus.

01:32:46.730 --> 01:32:49.190
Ja, ganz, ganz anderer Ansatz als der

01:32:49.190 --> 01:32:50.970
OEM-Ansatz, den man so kennt, aber auch irgendwie

01:32:50.970 --> 01:32:51.730
interessant.

01:32:53.150 --> 01:32:54.590
Und, ah, eine Geschichte,

01:32:56.330 --> 01:32:59.030
das fand ich sehr verwunderlich, ich dachte jetzt

01:32:59.030 --> 01:33:01.110
eigentlich, ich fange jetzt mal mit so einem Stream an, ich habe ja auch nirgendwo

01:33:01.110 --> 01:33:03.210
gesagt, dass ich das tue oder so, außer euch

01:33:03.210 --> 01:33:03.350
jetzt.

01:33:07.250 --> 01:33:09.050
In dem Twitch-Stream waren eigentlich

01:33:09.050 --> 01:33:10.870
relativ sofort irgendwie Leute drin und

01:33:10.870 --> 01:33:12.890
ja, da muss ich mich auch erstmal dran gewöhnen.

01:33:14.490 --> 01:33:14.810
Und

01:33:14.810 --> 01:33:16.830
da hat jemand gesagt, also als ich

01:33:16.830 --> 01:33:18.970
mit Git die ganze Zeit so rumgemurkst habe

01:33:18.970 --> 01:33:20.510
auf der Kommandozeile, nimm doch einfach Tick.

01:33:21.590 --> 01:33:22.890
So, das gebe ich jetzt einfach mal so weiter.

01:33:22.990 --> 01:33:24.950
Ich habe es noch nicht benutzt, ich weiß gar nicht, ob das gut ist, aber das ist wohl

01:33:24.950 --> 01:33:25.990
ein Endcursus

01:33:25.990 --> 01:33:28.850
Client für Git, der vielleicht

01:33:28.850 --> 01:33:29.550
ein bisschen besser ist.

01:33:31.010 --> 01:33:31.330
Interessant.

01:33:32.530 --> 01:33:34.830
Muss man sich mal angucken. Ja, ich habe auch noch

01:33:34.830 --> 01:33:36.870
einen kleinen Pick, ich würde diesmal eine Business-Anwendung

01:33:36.870 --> 01:33:38.590
nehmen, und zwar Lifetimes.

01:33:38.870 --> 01:33:39.950
Das gibt es auf PyPy und

01:33:39.950 --> 01:33:42.350
wenn man da quasi Bestelldaten von

01:33:42.350 --> 01:33:44.450
Kunden reinpiped, dann

01:33:44.450 --> 01:33:46.150
bekommt man quasi die Absprungrate, die

01:33:46.150 --> 01:33:47.470
Churnrate ausgerechnet.

01:33:48.430 --> 01:33:50.430
Und das ist tatsächlich gar nicht so schlecht, wenn man

01:33:50.430 --> 01:33:51.950
so Sales machen möchte oder so.

01:33:53.270 --> 01:33:54.310
Ja, hab ich so entdeckt und fand ich gut.

01:33:55.310 --> 01:33:56.390
Funktioniert echt gut für gute

01:33:56.390 --> 01:33:58.030
Businesses. Kann man wahrscheinlich auch verkaufen,

01:33:58.170 --> 01:34:00.470
also an Endkunden oder so, die wollen das alle haben.

01:34:01.250 --> 01:34:02.390
Die Library, dass du einfach

01:34:02.390 --> 01:34:04.210
nur die Library verkaufst, oder? Ja, du musst

01:34:04.210 --> 01:34:05.550
natürlich schon... Rechnen euch die Churnrate.

01:34:05.930 --> 01:34:08.150
Durch die Daten der Kundenpipen, aber ja.

01:34:09.950 --> 01:34:11.810
Ja klar, das als Service anzubieten.

01:34:12.470 --> 01:34:13.350
Das ist eine coole Idee.

01:34:14.090 --> 01:34:16.230
Ja, vielen Dank,

01:34:16.310 --> 01:34:17.450
dass ihr wieder eingeschaltet habt, dass ihr zugehört habt.

01:34:17.550 --> 01:34:19.850
Bleibt uns gewogen. Hört uns nachts, morgens, mittags,

01:34:19.990 --> 01:34:21.870
abends, am Wochenende, unter der Woche

01:34:21.870 --> 01:34:22.490
beim Schwimmen gehen.

01:34:24.410 --> 01:34:26.170
Ja, schönen Tag,

01:34:26.250 --> 01:34:26.630
schönen Zeit.

01:34:27.430 --> 01:34:28.570
Bis dann. Tschüss.

01:34:30.070 --> 01:34:31.390
Ja, spät wieder.

01:34:32.190 --> 01:34:33.590
Tschüss. Ja, diesmal lassen wir uns nicht so viel Zeit.

01:34:33.590 --> 01:34:35.550
Ja. Bis dann. Tschüss.
