WEBVTT

00:00:00.000 --> 00:00:03.600
Hallo, liebe Hörerinnen und Hörer. Willkommen beim Python-Podcast, Episode 57.

00:00:03.600 --> 00:00:06.900
Heute reden wir über die DjangoCon. Hallo, Jochen.

00:00:06.900 --> 00:00:09.240
Hallo, Dominik. Und hallo.

00:00:09.240 --> 00:00:09.980
Und hallo, Ronny.

00:00:09.980 --> 00:00:10.260
Ronny.

00:00:10.260 --> 00:00:11.720
Hi. Schön, dass du wieder da bist.

00:00:11.720 --> 00:00:12.580
Ja, wunderbar.

00:00:12.580 --> 00:00:13.020
Freue mich auch.

00:00:13.020 --> 00:00:17.160
Dann fangen wir vielleicht mit ein bisschen News an und dann schlagen wir direkt ein, was denn da so kommt.

00:00:17.160 --> 00:00:19.480
Jo, ich mache hier meine Kapitelmarke für News.

00:00:19.480 --> 00:00:25.700
Okay, Kapitelmarke hat nicht funktioniert. Ah, toll. Nichts funktioniert hier?

00:00:25.700 --> 00:00:27.520
Das ist ja nichts Neues.

00:00:27.520 --> 00:00:28.160
Ja.

00:00:30.000 --> 00:00:32.060
Also, es sind keine News.

00:00:32.060 --> 00:00:34.360
Wann war die News angekommen? Fangen wir erst mal damit an.

00:00:34.360 --> 00:00:34.900
Ah ja, ja.

00:00:34.900 --> 00:00:43.800
Die war Anfang Juni in Vigo in Spanien, Nordspanien, Galicien. Eine sehr schöne Stadt. Ohne jetzt tatsächlich große Highlights, aber mir hat es trotzdem gut gefallen.

00:00:43.800 --> 00:00:49.460
Es ist ein sehr schöner Nationalpark, ein Inselnationalpark direkt vor der Küste. Wäre mal die Gelegenheit, da hinzufahren.

00:00:49.460 --> 00:00:50.520
Das sollte man nicht verpassen.

00:00:50.520 --> 00:00:51.380
Zeit, wandern zu gehen.

00:00:51.380 --> 00:00:55.300
Ist das so quasi da irgendwo diese Santiago de Compostela?

00:00:55.300 --> 00:00:59.540
Ja, genau. Das ist so ein bisschen südwestlich davon. Also genau nördlich von Portugal.

00:01:00.000 --> 00:01:00.260
Ah ja.

00:01:00.260 --> 00:01:09.000
Und genau, ich hatte einen Tag Zeit, wandern zu gehen. Auf der Isla Cies, glaube ich. Und das ist wirklich sehr zu empfehlen.

00:01:09.000 --> 00:01:10.620
Klingt sehr gut.

00:01:10.620 --> 00:01:12.720
Ja.

00:01:12.720 --> 00:01:16.200
Ja, nächste Woche ist Europython. Vielleicht das News.

00:01:16.200 --> 00:01:18.820
Ich weiß nicht, ob man das noch hört. Wenn ihr darüber hört, vielleicht ist es dann schon vorbei.

00:01:18.820 --> 00:01:19.880
Ja, wahrscheinlich.

00:01:19.880 --> 00:01:21.860
Ja.

00:01:21.860 --> 00:01:27.840
Wir möchten gerne ein paar Themen von der DangoCon hören. Und es gibt aber noch ein, zwei andere News.

00:01:27.840 --> 00:01:29.000
Ja, genau.

00:01:30.000 --> 00:01:32.560
Wir haben jetzt schon einige Zeit keine Sendung mehr.

00:01:32.560 --> 00:01:35.320
Ja, der Termin ist direkt. Dann ist das immer dasselbe Problem im Moment. Aber gut.

00:01:35.320 --> 00:01:40.840
Also, ein News ist ganz interessant. Google ist ja so ein bisschen unter Druck in letzter Zeit.

00:01:40.840 --> 00:01:46.980
Man sieht sie halt öffentlich schwitzen. Dieses ganze AI-Thema, das ist irgendwie, ja.

00:01:46.980 --> 00:01:52.120
Können sie nicht so richtig entscheiden? Steigen sie jetzt voll ein oder doch nicht? Was machen sie? Oh nein.

00:01:52.120 --> 00:01:56.520
Ja, und jetzt haben sie sich für etwas anderes entschieden, nämlich ihr Patentime-Team zu feuern.

00:01:56.520 --> 00:01:59.440
Die haben dabei, glaube ich, direkt wieder ein neues eingestellt.

00:01:59.560 --> 00:02:00.600
Ich glaube, in Deutschland sogar.

00:02:00.600 --> 00:02:05.320
Ja, sie wollen jetzt, sie sind jetzt, was, alles zu teuer mit dem, mit den teuren...

00:02:05.320 --> 00:02:09.100
Die Amerikaner wollten alle 300.000 Dollar haben pro Jahr. Haben sich irgendwann gedacht, das können wir in Deutschland auch für die Hälfte haben.

00:02:09.100 --> 00:02:14.800
Genau, dann gehen wir halt in so ein Billiglohnland und dann in so eine, so eine, irgendwie, keine Ahnung, Billigvorstadt.

00:02:14.800 --> 00:02:18.600
Und zwar gehen sie nach München und wollen da ein neues Team aufbauen.

00:02:18.600 --> 00:02:20.360
Da sind sie ja auch schon, da sind sie ja auch schon ein bisschen weiter gewachsen.

00:02:20.360 --> 00:02:28.320
Aber ich bin mal gespannt, ob das klappt. Ob sie da jetzt irgendwie, keine Ahnung, äquivalent rekrutieren können. Mal sehen.

00:02:28.320 --> 00:02:29.200
Aber ja.

00:02:29.320 --> 00:02:31.080
Die haben bestimmt erkannt, wo die guten Peißenleute sitzen.

00:02:31.080 --> 00:02:36.120
Und wenn man in München guckt, die sind ja eh immer ganz oben, wenn man sie fragt.

00:02:36.120 --> 00:02:39.100
Entschuldigung, ich wollte jetzt keinen Lokalpatriotismus hier auffangen.

00:02:39.100 --> 00:02:40.120
Ja.

00:02:40.120 --> 00:02:45.620
Genau, also das ist, das ist schon mal irgendwie, war irgendwie, aber normalerweise ist das ja nie passiert.

00:02:45.620 --> 00:02:48.300
Das ist ja immer so, irgendwie mehr Peitenleute einstellen und so, voll gut.

00:02:48.300 --> 00:02:53.020
Und jetzt, und welche, hat man das irgendwie so abgerückt, rückgebaut? Das ist neu.

00:02:53.020 --> 00:02:56.000
Vielleicht ist aber jetzt einfach nur so eine normale Glättung, die irgendwann mal ist, oder?

00:02:56.000 --> 00:02:56.720
Ja, kann auch sein, ja.

00:02:56.720 --> 00:02:59.060
Also vielleicht ist auch, muss man da nicht so viel reininterpretieren.

00:02:59.080 --> 00:02:59.480
Das ist schon richtig.

00:02:59.480 --> 00:03:03.980
Es gibt tatsächlich von Peiten 3.13 jetzt so erste Beta-Versionen.

00:03:03.980 --> 00:03:04.340
Ja.

00:03:04.340 --> 00:03:08.800
Das heißt, wenn man mal ausprobieren will, ob das eigene Zeugs, was man so baut, irgendwie damit tut,

00:03:08.800 --> 00:03:12.420
dann kann man das jetzt mal machen und, tut eigentlich, ne?

00:03:12.420 --> 00:03:19.400
Ja, es gibt, glaube ich, jetzt auch, wo war das, irgendwas kann jetzt auch, man kann jetzt auch Wheels bauen für 3.13.

00:03:19.400 --> 00:03:23.900
Ich habe heute echt keine Zeit gehabt, mich die News nochmal anzugucken.

00:03:23.900 --> 00:03:27.200
Insofern tut mir leid, wird etwas durcheinander, aber, ja.

00:03:27.200 --> 00:03:28.300
Da müssen wir auch mal durch.

00:03:28.840 --> 00:03:33.300
3.13 kann man auf jeden Fall jetzt mal so, jetzt ist der richtige Zeitpunkt, um das mal auszuprobieren.

00:03:33.300 --> 00:03:35.100
Was habe ich denn noch?

00:03:35.100 --> 00:03:42.560
Oh, ich habe gesehen, es gibt, ich weiß aber nicht, ob das News ist, aber es gibt ein Software-Development-Kit für One Password.

00:03:42.560 --> 00:03:44.620
Also ich bin immer noch nicht, ich bin immer noch bei One Password.

00:03:44.620 --> 00:03:49.620
Mir tut das zwar etwas weh, dass das alles super teuer ist und so, aber ich finde es immer noch so der beste Password-Manager.

00:03:49.620 --> 00:03:56.280
Und der hat jetzt auch einen Python-API im Software-Development-Kit gekriegt.

00:03:56.280 --> 00:03:58.780
Das heißt, man kann von Python aus irgendwie One Password anfragen.

00:03:58.800 --> 00:04:03.460
Also sozusagen, man kann halt Python-Sachen schreiben und dann fragt das Ding halt One Password.

00:04:03.460 --> 00:04:07.700
Und dann sagt das Ding halt, ja, guck hier mal in die Kamera oder hier, leg mal da deinen Finger drauf.

00:04:07.700 --> 00:04:10.600
Und dann kann man sich authentifizieren, was ja für manche Sachen ganz nett ist.

00:04:10.600 --> 00:04:12.660
Wie teuer ist denn das? Weißt du das?

00:04:12.660 --> 00:04:15.580
Wenn wir Werbung machen, eigentlich hätten wir nicht beides Episoden-Sponsorien.

00:04:15.580 --> 00:04:20.840
Also One Password kostet, das ist wirklich, die haben ja auch wahnsinnig viel Fremdkapital aufgenommen.

00:04:20.840 --> 00:04:26.700
Und das kostet pro User irgendwie sowas 35 Dollar oder Euro im Jahr ungefähr.

00:04:26.700 --> 00:04:28.580
Und das ist halt schon...

00:04:28.800 --> 00:04:33.500
Und gab es Debatten, wie lange ist der letzte Breach her?

00:04:33.500 --> 00:04:40.020
Ja, es gab einen auch über Okta, der war aber nicht so furchtbar schlimm.

00:04:40.020 --> 00:04:42.200
Also ist auch so ein halbes Jahr her, glaube ich, oder so.

00:04:42.200 --> 00:04:44.400
Ja, ich wollte gerade sagen, ich habe irgendwas im Kopf hier.

00:04:44.400 --> 00:04:48.760
Genau, was haben wir noch?

00:04:48.760 --> 00:04:50.980
Ach so, ja, es gibt auch gute Nachrichten.

00:04:50.980 --> 00:04:56.700
Also das ist ja auch so ein Ding, da kriege ich immer Angst, wenn ich mir angucke, wie das so funktioniert.

00:04:56.700 --> 00:04:58.760
PyPI macht wahnsinnig viel Traffic.

00:04:58.760 --> 00:05:03.160
Also was darüber geht, ist halt atemberaubend und es kostet auch wahnsinnig viel Geld.

00:05:03.160 --> 00:05:11.000
Und das funktioniert halt darüber, dass es einen CDN, so Content Delivery Network Anbieter gibt, der sponsert das halt, der hostet PyPI.

00:05:11.000 --> 00:05:16.660
Und ich weiß nicht, was man zahlen müsste, wenn man das nicht irgendwie kostenlos kriegen würde.

00:05:16.660 --> 00:05:23.160
Es wäre sehr viel und das wäre ein Riesenproblem, weil, ja, per Pippe installieren würde dann halt nicht mehr funktionieren.

00:05:23.160 --> 00:05:28.720
Und die haben jetzt gerade auf der Python, PyCon US verkündet, dass sie...

00:05:28.720 --> 00:05:32.940
... für fünf weitere Jahre PyPI sponsern wollen.

00:05:32.940 --> 00:05:33.860
Cool, cool.

00:05:33.860 --> 00:05:35.000
Das ist natürlich praktisch.

00:05:35.000 --> 00:05:36.720
Also es gibt Py ist noch mindestens fünf Jahre.

00:05:36.720 --> 00:05:38.860
Ja, genau.

00:05:38.860 --> 00:05:48.120
Dann tatsächlich jetzt im Juni vor gar nicht, ja, vor zwei, drei Wochen ist NumPy 2.0 erschienen.

00:05:48.120 --> 00:05:53.040
Nach irgendwie, ich weiß nicht, 14 Jahren Entwicklungszeit oder so.

00:05:53.040 --> 00:05:56.220
Das war eine ganze Zeit lang in Progress.

00:05:56.220 --> 00:05:58.040
Und, ähm...

00:05:58.680 --> 00:05:58.880
Genau.

00:05:58.880 --> 00:06:05.300
Ist vielleicht jetzt nicht der günstigste Moment, um zu steigen, sondern man sollte vielleicht das jetzt mal auf kleiner zwei pinnen oder so.

00:06:05.300 --> 00:06:12.600
Und dann mal gucken, bis alle anderen irgendwie sich angepasst haben, weil das bricht halt einige, äh, einige Geschichten.

00:06:12.600 --> 00:06:21.240
Aber, ja, schön, dass es jetzt raus ist und dann, äh, es macht einige, ich, äh, wie gesagt, ich hab keine, keine Ahnung, was alles genau passiert ist.

00:06:21.240 --> 00:06:22.460
Oder ich wusste es mal, hab's wieder vergessen.

00:06:22.460 --> 00:06:26.220
Ähm, ja, Performance ist irgendwie besser geworden.

00:06:26.220 --> 00:06:28.640
Es sind auch ein paar Upchains drin, das heißt, wir müssen ein bisschen aufpassen.

00:06:28.640 --> 00:06:29.040
Ja, genau.

00:06:29.040 --> 00:06:34.020
Weil, wenn ihr da irgendwie einfach updatet, dann kann es sein, dass euch irgendwie relativ viele Dinge kaputt gehen.

00:06:34.020 --> 00:06:48.720
Also, ich hab so ein paar Updates gehabt, da war es so ein bisschen hässlich, weil ich tatsächlich downgraden musste, weil da irgendwie Pakete irgendwo ganz tief drin waren, die dann leider nicht mehr wollten und die man halt umbauen hätte müssen oder sowas, wo man dann erstmal verstehen muss, was alles ist.

00:06:48.720 --> 00:06:50.000
Das dauert alles relativ viel Zeit.

00:06:50.000 --> 00:06:55.680
Nicht so schön, aber waren ein paar Upper Boundaries dann in den Projekten auf einmal drin.

00:06:55.680 --> 00:06:56.320
Ja.

00:06:56.320 --> 00:06:58.620
Aber gut, also, das ist eigentlich super.

00:06:58.620 --> 00:07:01.020
Das ist auch eh ein Semantic-Version-Ding.

00:07:01.020 --> 00:07:02.380
2.0, Breaking Up, Changes.

00:07:02.380 --> 00:07:04.100
Ja, ja, genau.

00:07:04.100 --> 00:07:18.280
Genau, dann gibt's eine neue, also eine erste 1.0-Release von Polars, was ja auch vielleicht ganz, ganz nett ist, dass man sich jetzt halt so darauf verlassen kann, dass die API da mal eine Zeit lang stabil bleibt und so.

00:07:18.280 --> 00:07:21.660
Und da ist auch sonst nichts Großartiges dazugekommen.

00:07:21.660 --> 00:07:24.500
Nutzt du das irgendwo viel oder ein bisschen?

00:07:24.500 --> 00:07:25.700
Nee, viel nutze ich das nicht.

00:07:25.700 --> 00:07:28.600
Ich nutze das ab und zu mal, aber...

00:07:28.600 --> 00:07:31.060
Ja, Pandas, weil ich mich halt da so an Pandas gewöhnt habe.

00:07:31.060 --> 00:07:32.780
Ja, aber nur, weil du dich dran gewöhnt hast.

00:07:32.780 --> 00:07:33.080
Ja.

00:07:33.080 --> 00:07:34.380
Aber bei Pandas haben die auch ein bisschen schneller gemacht.

00:07:34.380 --> 00:07:39.140
Ich weiß gar nicht, gibt's irgendwie wirklich jemand, der das mal getestet hat, was so für was besser geht?

00:07:39.140 --> 00:07:44.220
Ja, also Polars ist tatsächlich, wenn man einfache Sachen macht, ist es halt ein gutes Stückchen schneller.

00:07:44.220 --> 00:07:49.280
Es gibt halt Dinge, die gehen mit Polars gar nicht so und die gehen mit Pandas und dann...

00:07:49.280 --> 00:07:55.400
Und ich meine, ich hab mich an diese, also viele Sachen sind halt auch total komisch und ich hab mich halt dran gewöhnt, zum Beispiel an diese Multi-Index-Geschichten und so.

00:07:55.400 --> 00:07:58.400
Wahrscheinlich ist es keine gute Idee und das ist richtig...

00:07:58.400 --> 00:08:08.480
Ja, das ist richtig, dass Polars das alles nicht gemacht hat und auch selbst die Leute, die Pandas gebaut haben, also das weiß man, McKinney sagt heute im Podcast so, ja, das mit diesen ganzen komplizierten Index-Geschichten und so, das war wahrscheinlich alles nicht so richtig.

00:08:08.480 --> 00:08:16.100
Aber, ja, wenn man sich mal dran gewöhnt hat, dann ist das halt klar, wie man das damit macht und alles andere muss man halt dann denken.

00:08:16.100 --> 00:08:24.500
Ja, deswegen benutze ich halt eigentlich immer noch lieber Pandas, aber, ja, ich glaube, Polars ist schon der richtige Weg eigentlich.

00:08:24.500 --> 00:08:25.580
Ja.

00:08:25.580 --> 00:08:28.200
Genau.

00:08:28.200 --> 00:08:37.360
Genau, was gibt's noch? Psycho-PG, 3-2 ist raus, also auch etwas, ich weiß nicht, ob alle schon umgestiegen sind auf 3, also ich hab das wahrscheinlich...

00:08:37.360 --> 00:08:42.620
Ja, also es gab ja Psycho-PG 2 explizit und wenn man jetzt aber normal Psycho-PG nimmt, dann ist das jetzt normal 3.

00:08:42.620 --> 00:08:54.700
Ja, genau, klar. Ja. Und, ja, super, da ist halt auch so Essing-Support jetzt mit drin und diverse Geschichten. Also...

00:08:54.700 --> 00:08:57.040
Auf Postgres 15, was ist das Minimum für Psycho-PG?

00:08:57.040 --> 00:08:58.040
Oh, das...

00:08:58.040 --> 00:08:58.980
Warte mal, lass mal grad gucken.

00:08:58.980 --> 00:09:00.560
Bestimmt auch bei Tifa.

00:09:00.560 --> 00:09:03.860
Na, wahrscheinlich, wahrscheinlich, ich würde jetzt tippen Postgres 12 oder so.

00:09:03.860 --> 00:09:08.080
Minimum steht da nicht.

00:09:08.080 --> 00:09:10.580
Nee, steht, steht, ich weiß es, ich weiß es.

00:09:10.580 --> 00:09:15.920
Keine Low-Hanging Fruit, okay, auch nicht so wichtig. Die meisten Leute, sind die bei alten Datenbanken oder bei neuen, was meint ihr?

00:09:15.920 --> 00:09:27.880
Ich denke alte Datenbanken, weil die meisten halt nicht die Kontrolle haben über die Distributionen, auf denen ihr Zeugs läuft und dann haben sie halt irgendwie entweder alte Datenbanken, weil Datenbanken auch oft nicht...

00:09:27.880 --> 00:09:29.040
Kontrollerisiert sind, ne?

00:09:29.040 --> 00:09:29.380
Mhm.

00:09:29.380 --> 00:09:41.220
Und, oder sie haben es kontrollerisiert und haben dann vergessen, dass irgendwie, also, aber ich sehe in der Praxis, sehe ich ganz oft alte Datenbanken.

00:09:41.220 --> 00:09:42.680
Ja, ja, stimmt.

00:09:42.680 --> 00:09:56.680
Und ich, ehrlich gesagt, ich finde es komisch, weil das ist halt so, ich meine, es kostet eigentlich ja nicht viel, das abzudaten oder da abzudaten zu bleiben und es bringt halt ordentlich was, also, wenn ich jetzt mir angucke, so Postgres 12 oder so, was ich häufig sehe oder...

00:09:57.720 --> 00:10:07.200
Also bis, also bis, wenn man jetzt stattdessen ein Postgres 16 nimmt, dann ist es halt schon, da hat sich schon einiges getan, also, da kriegt man irgendwie so 30% Performance-Proofment einfach so gerade.

00:10:07.200 --> 00:10:07.760
Einfach umsonst, ja.

00:10:07.760 --> 00:10:08.920
Ja, also, ja.

00:10:08.920 --> 00:10:16.040
Genau, ähm, ja, äh, dann, oh, hm, HTMLX 2.0 ist erschienen.

00:10:16.040 --> 00:10:16.400
Aha.

00:10:16.400 --> 00:10:27.260
Auch ganz interessant, da hat sich auch nichts geändert, sondern das ist, äh, einfach nur hochgezählt, äh, und gut, ist ein paar Sachen entfernt worden, also ein paar Extensions, die WebSockets-Extension ist nicht mehr da.

00:10:27.260 --> 00:10:27.560
Ja.

00:10:27.560 --> 00:10:33.160
Nicht mehr drin, oder ein paar Dinger, äh, genau, ja, und...

00:10:33.160 --> 00:10:34.060
Du benutzt das immer noch so gern?

00:10:34.060 --> 00:10:35.560
Ich benutze das immer noch super gern.

00:10:35.560 --> 00:10:35.940
Ich auch.

00:10:35.940 --> 00:10:43.280
Ja, ich habe es auch jetzt letztens wieder in einem, äh, in einem Projekt, äh, gehabt und das ist, äh, ja, es war echt total super, ich habe damit irgendwie eine Menge...

00:10:43.280 --> 00:10:44.780
Wie würdest du denn einen Chat umsetzen?

00:10:44.780 --> 00:10:51.840
Äh, ja, gut, okay, Chat, da muss man dann drüber nachdenken, vielleicht ist es da besser, dann was anderes zu nehmen.

00:10:51.840 --> 00:10:52.420
Ja.

00:10:52.420 --> 00:10:53.720
Könnte schon sein.

00:10:53.720 --> 00:10:57.400
Ich meine, man kann es bauen, aber...

00:10:57.400 --> 00:11:05.260
Ja, ist ja manchmal vielleicht der Echtzeit dann tatsächlich, wenn der Echtzeit eine Reaktion hat, irgendwie interessant, wenn man jetzt pollen würde, dann hast du immer so ein bisschen Latenz.

00:11:05.260 --> 00:11:08.720
Server-Send-Events, glaube ich, geht damit?

00:11:08.720 --> 00:11:26.720
Ja, das geht damit natürlich auch, aber das ist ja dann fast das Gleiche, also es ist auf jeden Fall ähnlich wie WebSockets auch, also es ist halt nicht bidirektional, aber du hast halt auch die ganze Zeit eine stehende Verbindung, die halt die ganzen anderen komischen Schwierigkeiten hat, die man dann halt so hat, wie, ja, wie loadbalancen wir das jetzt denn eigentlich, was ist denn, wenn ich jetzt irgendwie...

00:11:27.240 --> 00:11:30.880
Deployment mache und ich restarte das Ding, was passiert denn da mit der Verbindung?

00:11:30.880 --> 00:11:32.260
Ist jetzt erstmal weg.

00:11:32.260 --> 00:11:33.520
Kommt sie wieder?

00:11:33.520 --> 00:11:34.480
Kommt sie nicht wieder?

00:11:34.480 --> 00:11:46.580
Der Mensch am anderen Ende des Chats merkt ja einfach nach drei Tagen irgendwie, dass keiner mit ihm redet und denkt alle, er stinkt irgendwie und niemand will mit ihm reden, tatsächlich ist einfach nur diese Verbindung weg.

00:11:46.580 --> 00:11:53.900
Ja, also da kommt man in all diese blöden Fehlerfälle rein und das ist halt bei WebSockets und bei Server-Send-Events so.

00:11:53.900 --> 00:11:56.880
Insofern, ich weiß nicht.

00:11:57.080 --> 00:12:03.020
Also wenn man es irgendwie ohne sowas machen kann, würde ich es ohne sowas machen, aber kann sein, dass Chat eine der wenigen Sachen ist, wo man das halt tatsächlich braucht.

00:12:03.020 --> 00:12:04.340
Ja.

00:12:04.340 --> 00:12:06.780
Und was ist mit Chat mit dem Server?

00:12:06.780 --> 00:12:09.900
Chat mit dem Server ist...

00:12:09.900 --> 00:12:13.320
Also keine Ahnung, du schickst dem Server eine Frage und nicht einem anderen Menschen.

00:12:13.320 --> 00:12:15.620
Nee, da brauchst du es nicht.

00:12:15.620 --> 00:12:19.040
Achso, du meinst jetzt sowas wie Chat-GPT, wenn man das implementieren wollte.

00:12:19.040 --> 00:12:20.260
Genau, da brauchst du es nicht.

00:12:20.260 --> 00:12:22.440
Das geht, Request-Response, super.

00:12:22.440 --> 00:12:23.620
Dann wartest du einfach drauf.

00:12:23.620 --> 00:12:26.920
Ja, also du kannst halt dann...

00:12:26.920 --> 00:12:28.980
Du kannst ja auch das anzeigen, was dann zurückkommt direkt.

00:12:28.980 --> 00:12:32.860
Aber da brauchst du keine stehende Verbindung.

00:12:32.860 --> 00:12:34.400
So gejankt jetzt, oder?

00:12:34.400 --> 00:12:40.180
Ja, du kannst einfach, sobald da was kommt, kannst du ja das anzeigen.

00:12:40.180 --> 00:12:41.260
Das geht.

00:12:41.260 --> 00:12:43.780
Genau.

00:12:43.780 --> 00:12:46.200
Genau, das ist auch sowas.

00:12:46.200 --> 00:12:53.620
Genau, dafür braucht man keine direktionale Verbindung oder keine stehende Verbindung.

00:12:53.620 --> 00:12:56.600
Okay, dann 5.

00:12:56.760 --> 00:12:57.080
5, 1.

00:12:57.080 --> 00:12:59.620
5, 1, Alpha erschienen, genau.

00:12:59.620 --> 00:13:06.080
Ich weiß nicht, ob hier irgendjemand genau die Liste der Neuigkeiten und so da mit dabei hat.

00:13:06.080 --> 00:13:09.460
Also ich meine, es dauert auch noch ein Momentchen, bis das erscheint, aber...

00:13:09.460 --> 00:13:10.400
Ist das die erste Alpha?

00:13:10.400 --> 00:13:11.080
Ja.

00:13:11.080 --> 00:13:14.000
Also was ich hier schon sehe...

00:13:14.000 --> 00:13:14.980
Ah, Query-String, super.

00:13:14.980 --> 00:13:16.760
Das habe ich hier halt schon ein paar Mal selber gebaut.

00:13:16.760 --> 00:13:18.420
Aber warum gibt es das denn nicht?

00:13:18.420 --> 00:13:19.800
Genau, man hat...

00:13:19.800 --> 00:13:26.600
Also das Problem ist, wenn man quasi ein paar Dinge hinzufügen will, dann...

00:13:26.600 --> 00:13:35.980
Query-String zum Beispiel, wenn man irgendeinen Filter angeschaltet hat oder so, dann ist halt die Frage, okay, aber da sind ja jetzt möglicherweise schon Sachen gesetzt und dann muss man das irgendwie...

00:13:35.980 --> 00:13:37.980
Ja, wie updatet man das denn?

00:13:37.980 --> 00:13:42.620
Und da gibt es jetzt ein Template-Tag für, wo man halt einfach den Query-String kriegt.

00:13:42.620 --> 00:13:43.800
Und das ist natürlich praktisch.

00:13:43.800 --> 00:13:44.360
Genau.

00:13:44.360 --> 00:13:47.360
Ich hatte das Gefühl, dass da viel Quality-of-Life-Sachen dabei sind.

00:13:47.360 --> 00:13:50.760
Jetzt nicht die großen Game-Changer, die sind jetzt eher dann für 5.2, glaube ich, geplant.

00:13:50.760 --> 00:13:51.700
Später mehr.

00:13:51.700 --> 00:13:52.260
Ja.

00:13:52.260 --> 00:13:55.940
Ja, sondern eher Kleinigkeiten, die einem einfach helfen.

00:13:55.940 --> 00:13:56.400
Besser.

00:13:56.440 --> 00:13:58.340
Und angenehmer zu arbeiten.

00:13:58.340 --> 00:13:59.800
Ja.

00:13:59.800 --> 00:14:05.300
Oh, es gibt Connection-Pool-Support für Postgres, was dann auch praktisch ist.

00:14:05.300 --> 00:14:08.820
Also ich meine, ehrlich gesagt, für meine Sachen ist es nicht so...

00:14:08.820 --> 00:14:14.760
Also da komme ich sowieso nie so an die Grenzen, dass ich da wirklich ein Pool lieber hätte oder so, sondern es ist alles egal.

00:14:14.760 --> 00:14:19.280
Aber wenn man das Problem hat, dann ist es natürlich doof, wenn man da irgendwie was anderes tun muss.

00:14:19.280 --> 00:14:20.820
Ja.

00:14:20.820 --> 00:14:23.660
Ja, ja, ja, ja, ja.

00:14:26.280 --> 00:14:28.700
Keine Ahnung, was das ist.

00:14:28.700 --> 00:14:36.000
Aber ich würde sagen, über die ganzen Neuigkeiten bei Dango, da können wir doch tatsächlich den Ronny gleich besser fragen, weil der von der Dango-Con wahrscheinlich mehr erzählen kann als der 5.1.

00:14:36.000 --> 00:14:38.700
Ich glaube, das ist so wahnsinnig...

00:14:38.700 --> 00:14:41.220
Ja, genau.

00:14:41.220 --> 00:14:42.560
Ist auch nichts Weltbewegendes mehr.

00:14:42.560 --> 00:14:44.040
Alles klar, dann, genau.

00:14:44.040 --> 00:14:45.700
Haben wir nur ein Event, dass es das gibt und...

00:14:45.700 --> 00:14:50.820
Dann sind wir vielleicht mit den News heute schon ein bisschen durch oder habt ihr noch irgendwas, was ganz total relevant wichtig war?

00:14:50.820 --> 00:14:52.140
Nicht von meiner Seite.

00:14:52.140 --> 00:14:53.180
Okay.

00:14:53.180 --> 00:14:53.520
Gut.

00:14:53.520 --> 00:14:56.120
Dann erzähl doch mal von der Dango-Con, lieber Ronny.

00:14:56.120 --> 00:14:56.380
Danke, Ronny.

00:14:56.380 --> 00:14:57.900
Also, ich hab...

00:14:57.900 --> 00:14:58.600
Also, erstmal, du...

00:14:58.600 --> 00:15:02.120
Eigentlich müsstest du ja von dir selber erzählen, weil du hast ja auch was gesagt, glaube ich sogar, ne?

00:15:02.120 --> 00:15:02.440
Genau.

00:15:02.440 --> 00:15:03.240
Und was Cooles erzählt.

00:15:03.240 --> 00:15:06.140
Und vielleicht fangen wir doch einfach damit an, dann können wir danach so von allgemeinen Sachen erzählen.

00:15:06.140 --> 00:15:07.140
Ja, genau.

00:15:07.140 --> 00:15:09.120
Also, wie gesagt, ich heiße Ronny.

00:15:09.120 --> 00:15:13.420
Ich arbeite seit 2012 mit Dango.

00:15:13.420 --> 00:15:18.460
Ich hab damals mit 1.4 angefangen, was lange, lange her ist.

00:15:18.460 --> 00:15:22.640
Damals hatten wir auch noch ein anderes Versionsschema, also das ist länger her, als es klingt.

00:15:25.960 --> 00:15:31.360
Ich bin jetzt seit vielen Jahren Tech-Evangelist in meiner Firma.

00:15:31.360 --> 00:15:47.840
Ich arbeite bei der Agentur Ambient in Köln und hab da durch die Möglichkeit, mich mit der Thematik zu beschäftigen und mich in dem ganzen Django-Backend-Kontext so ein bisschen auch up-to-date zu halten und da auch Sachen zu machen.

00:15:47.840 --> 00:15:51.280
Zum Beispiel auch mal zu einer Konferenz zu fahren und einen Vortrag zu halten.

00:15:51.280 --> 00:15:53.180
Das habe ich dieses Mal das erste Mal gemacht.

00:15:53.180 --> 00:15:55.940
Das ist das erste Mal auf einer echten Konferenz.

00:15:55.940 --> 00:16:02.060
Ich war, man könnte vielleicht sagen, zum Warmlaufen letztes Jahr bei dem Django-Day in Kopenhagen.

00:16:02.060 --> 00:16:02.860
Das war sehr cool.

00:16:02.860 --> 00:16:04.280
Das ist so eine Mini-Konferenz.

00:16:04.280 --> 00:16:07.160
Das ist so ein Raum für so 60 bis 70 Leute, würde ich sagen.

00:16:07.160 --> 00:16:09.060
Und das ist nur ein Tag.

00:16:09.060 --> 00:16:11.660
Und das war sehr nett, sehr familiär.

00:16:11.660 --> 00:16:17.360
Und das war so das erste Mal, dass ich irgendwie vor, naja, literally laufender Kamera das gemacht habe.

00:16:17.360 --> 00:16:17.980
Das stimmt überhaupt nicht.

00:16:17.980 --> 00:16:19.680
Wir haben dich schon ganz oft live was erzählen hören.

00:16:19.680 --> 00:16:22.540
Ja, aber das war nicht mit Livestream zu.

00:16:22.540 --> 00:16:25.920
Das ganze Internet konnte zu gucken bei euren Livestreams bei Ambient.

00:16:25.920 --> 00:16:28.660
Während der ganzen Zeit, in der letzten Zeit, ja.

00:16:28.660 --> 00:16:30.140
Ja, die Django-Meetups machen wir nicht.

00:16:30.140 --> 00:16:31.080
Ach so, das meinst du.

00:16:31.080 --> 00:16:31.500
Ja, okay.

00:16:31.500 --> 00:16:32.220
Ja, doch.

00:16:32.220 --> 00:16:34.480
Genau, ich bin nämlich beim Django-Meetup Köln.

00:16:34.480 --> 00:16:37.920
Ich organisiere das und da halte ich auch gelegentlich meinen Vortrag.

00:16:37.920 --> 00:16:40.420
Längst nicht mehr so oft wie früher, was, glaube ich, ein gutes Zeichen ist.

00:16:40.420 --> 00:16:44.740
Das heißt, das Meetup funktioniert, wenn sich Leute finden, die da Spaß daran haben, was vorzutragen.

00:16:44.740 --> 00:16:51.600
Genau, und da habe ich einen Vortrag gehalten über mein Package, das ich für Django gemacht habe.

00:16:51.600 --> 00:16:53.620
Das nennt sich Django Pony Express.

00:16:55.900 --> 00:17:01.340
Böse ist im Endeffekt das Problem, wer schon mal mit Django, also wir machen meistens, so von meinem Job her,

00:17:01.340 --> 00:17:05.540
machen meistens Business-Applikationen und meistens baut man da relativ viele E-Mails.

00:17:05.540 --> 00:17:10.680
Und E-Mails mit Django zu bauen, das geht alles, das funktioniert auch technisch alles sauber,

00:17:10.680 --> 00:17:15.340
nur die, ich mag diesen Begriff sehr, die Developer Experience ist nicht so richtig gut,

00:17:15.340 --> 00:17:20.580
weil man da relativ viel Low-Level-Sachen machen muss, vor allem, wenn man jetzt nicht nur irgendeine E-Mail rausschicken möchte,

00:17:20.580 --> 00:17:25.880
sondern halt eine, die modernen Business-Ansprüchen genügt, also sprich eine HTML-E-Mail, die in 50 Sekunden,

00:17:25.880 --> 00:17:31.500
die entsprechende Heller gesetzt hat, die einen Unsubscribe-Link hat, die irgendwie ansprechend aussieht, etc.

00:17:31.500 --> 00:17:37.420
Und da habe ich mir was überlegt, dass wer Django kennt, kennt ja wahrscheinlich auch Class-Based-Views

00:17:37.420 --> 00:17:39.680
und ich habe das ganze Thema Class-Based-E-Mails genannt.

00:17:39.680 --> 00:17:45.320
Und diese Class-Based-E-Mails habe ich mich sehr an den Class-Based-Views orientiert,

00:17:45.320 --> 00:17:49.500
um einfach mal eine Lösung zu bauen, wo es halt angenehmer ist, dass halt, wenn ich halt eine E-Mail habe,

00:17:49.500 --> 00:17:55.720
die halt dann HTML-Templates hat oder Inhalt hat, einen Plain-Text-Part-Inhalt,

00:17:55.860 --> 00:18:00.060
Übersetzungen, bestimmte Header, bestimmte Variablen, die für das Base-Tempel benötigt werden,

00:18:00.060 --> 00:18:02.820
dass ich da halt nicht jedes Mal so riesige Funktionen hin und her kopiere,

00:18:02.820 --> 00:18:05.120
sondern im Endeffekt halt wirklich nur drei oder vier Zeile habe

00:18:05.120 --> 00:18:08.000
und die restlichen Sachen halt an einer sinnvollen Stelle gekapselt sind.

00:18:08.000 --> 00:18:12.540
Und ein zweites großes Problem, was mich halt auch persönlich immer sehr gestört hat, ist,

00:18:12.540 --> 00:18:16.280
dass E-Mails, weil die ja irgendwie so ein bisschen eine externe API sind,

00:18:16.280 --> 00:18:20.560
weil das halt, ne, man schickt die irgendwie raus und die kommen dann quasi vielleicht wieder bei mir an,

00:18:20.560 --> 00:18:24.600
wenn ich es mir selber schicke, dass wir die nicht so richtig getestet haben,

00:18:24.600 --> 00:18:25.700
weil es einfach auch mühsam ist.

00:18:25.840 --> 00:18:29.000
Und das Django-Test-Framework bringt einem da so ein paar Tools mit,

00:18:29.000 --> 00:18:30.320
aber die sind alle so ein bisschen versteckt.

00:18:30.320 --> 00:18:35.040
Und da habe ich dann so einen Wrapper gebaut, der auch so ein bisschen,

00:18:35.040 --> 00:18:38.820
dass man diese E-Mail-Outbox, wenn man E-Mails in einem Test verschickt,

00:18:38.820 --> 00:18:41.220
dann landen die in so einer Liste, in einer Outbox, werden die gesammelt,

00:18:41.220 --> 00:18:43.000
dass sie nicht aus Versehen rausgeschickt werden an irgendwen,

00:18:43.000 --> 00:18:46.700
und dass man auf diese Liste so ein bisschen wie in einem Query-Set zugreifen kann,

00:18:46.700 --> 00:18:50.820
dass man kann nach Subject, nach Inhalt filtern, man kann gewisse Assertions machen,

00:18:50.820 --> 00:18:55.820
ob zum Beispiel in beiden Content-Parts, es gibt ja mehr als nur HTML und Plain-Text,

00:18:55.820 --> 00:18:59.220
ob in den Context-Parts da bestimmte Dinge drin sind und so weiter.

00:18:59.220 --> 00:19:05.500
Und da habe ich einen Vortrag drüber gehalten, das hat sehr viel Spaß gemacht,

00:19:05.500 --> 00:19:06.260
ich war sehr nervös.

00:19:06.260 --> 00:19:07.460
Ich wollte gerade sagen, warst du aufgeregt?

00:19:07.460 --> 00:19:11.260
Ich war sehr aufgeregt, aber es hat sehr viel Spaß gemacht tatsächlich.

00:19:11.260 --> 00:19:15.360
Ich war unendlich viel schneller als bei den Malen, wo ich geübt habe.

00:19:15.360 --> 00:19:17.920
Das ist glaube ich so eine Sache, das ist man immer, aber ich war wirklich schnell.

00:19:17.920 --> 00:19:22.520
Ich glaube, ich habe auf 21 Minuten Testzeit 16 Minuten Vortragszeit gehabt.

00:19:22.520 --> 00:19:23.400
Ach, du hast immer so schnell geredet wie ich.

00:19:23.400 --> 00:19:25.500
Ich weiß es nicht.

00:19:25.800 --> 00:19:30.360
Ich habe versucht, extra ein bisschen Zeit zu lassen, aber ja, hat so mittelgut funktioniert.

00:19:30.360 --> 00:19:33.620
Nichtsdestotrotz auch viel positives Feedback bekommen

00:19:33.620 --> 00:19:39.060
und ist auch tatsächlich nochmal eine ganz andere Art, auf so einer Konferenz zu sein.

00:19:39.060 --> 00:19:43.120
Das war jetzt, glaube ich, meine fünfte oder sechste DjangoCon mit ein paar,

00:19:43.120 --> 00:19:46.180
ich glaube fünfte, mit zwei Remote wegen Corona.

00:19:46.180 --> 00:19:49.580
Und das ist echt nochmal ein ganz anderes Gefühl.

00:19:49.580 --> 00:19:52.000
Also ich finde generell kann ich das jedem nur ans Herz legen,

00:19:52.000 --> 00:19:53.780
wer es noch nicht gemacht hat, geht mal auf eine Konferenz.

00:19:53.780 --> 00:19:55.780
Auf meiner allerersten DjangoCon.

00:19:55.780 --> 00:19:58.120
Dachte, habe ich halt Uni-Style erwartet.

00:19:58.120 --> 00:20:01.740
Da steht irgendwer und erzählt was langweiliges und dachte, ich gehe eigentlich wegen den Leuten dahin.

00:20:01.740 --> 00:20:05.180
Tatsächlich gehe ich auch gerne wegen den Leuten dahin, jetzt wo ich auch viele kenne.

00:20:05.180 --> 00:20:07.540
Aber die Vorträge sind auch wirklich gut.

00:20:07.540 --> 00:20:10.920
Und wenn man denkt, dass das halt auch alles auf einem kleinen Budget läuft,

00:20:10.920 --> 00:20:14.860
da jetzt keine große Tech-Company dahinter steht, die da irgendwie Millionen einfach mal so verschenkt,

00:20:14.860 --> 00:20:20.780
sondern das alles irgendwie von Volunteers getragen wird und dann die sich freuen,

00:20:20.780 --> 00:20:24.780
wenn halt irgendeine Firma irgendwie ein Tausi reinwirft, ist das schon echt beeindruckend.

00:20:25.740 --> 00:20:29.540
Und genau, da waren echt coole Sachen dabei.

00:20:29.540 --> 00:20:35.820
Das, glaube ich, der große Game-Changer sind die Background-Workers.

00:20:35.820 --> 00:20:39.680
Das ist eine von diesen DEP, also so eine Django, ich weiß gar nicht, was die Abkürzung bedeutet.

00:20:39.680 --> 00:20:41.900
Django Enhancement Proposal.

00:20:41.900 --> 00:20:42.500
Ah ja, genau.

00:20:42.500 --> 00:20:44.700
Dieses DEP, ich glaube 14 oder sowas.

00:20:44.700 --> 00:20:47.940
Die sind auch irgendwie letzte Zeit erst wieder entdeckt worden.

00:20:47.940 --> 00:20:51.480
Ich glaube, dass es die gibt und die werden jetzt auch wieder recht populär.

00:20:51.480 --> 00:20:54.340
Ich glaube auch mit den neuen Fellows, Sarah und Natalia.

00:20:55.700 --> 00:20:57.880
Und diese Background-Workers sind im Endeffekt eine Idee,

00:20:57.880 --> 00:21:01.960
dass man, wenn man in einem Django-Projekt Asynchrone...

00:21:01.960 --> 00:21:03.980
Ich glaube, da müssen wir gleich noch ein bisschen genauer drauf eingehen,

00:21:03.980 --> 00:21:07.240
vielleicht so als extra Thema, weil da haben wir vielleicht noch ein, zwei coole Links zu.

00:21:07.240 --> 00:21:10.560
Deswegen erzähl gerne noch ein bisschen mehr zu deinem Talk über E-Mails,

00:21:10.560 --> 00:21:11.920
bevor wir auf die Background-Tasche gehen.

00:21:11.920 --> 00:21:12.080
Okay.

00:21:12.080 --> 00:21:14.800
Ja, genau.

00:21:14.800 --> 00:21:20.360
Also die, ja, was habe ich denn, was kann ich dazu noch sagen?

00:21:20.360 --> 00:21:25.500
Irgendwie, war das nicht auch irgendwas, wo so ein Architektur-Design,

00:21:25.660 --> 00:21:27.980
dann irgendwie so ein bisschen eine Rolle spielte oder,

00:21:27.980 --> 00:21:30.520
ne, vielleicht habe ich das auch einfach falsch.

00:21:30.520 --> 00:21:33.220
Einfach nur objektorientierte E-Mails quasi.

00:21:33.220 --> 00:21:38.220
Genau, und es ist halt, es ist halt einfach ein Wrapper um die relativ low-levelige API,

00:21:38.220 --> 00:21:43.000
wenn man halt, wie gesagt, ein bisschen aufwendigere E-Mails bauen möchte.

00:21:43.000 --> 00:21:44.700
Ja, das macht Sendmail mit ein bisschen Fluff.

00:21:44.700 --> 00:21:45.360
Genau.

00:21:45.360 --> 00:21:46.560
Ja, genau.

00:21:46.560 --> 00:21:51.600
Weil Sendmail selbst, das erstellt ein Python-E-Mail-Objekt, glaube ich.

00:21:51.600 --> 00:21:55.620
Das gibt doch gerade eine große Diskussion, weil bei Python, das scheinbar etwas deprecated

00:21:55.620 --> 00:21:57.600
wurde, in einer letzten Version.

00:21:57.600 --> 00:22:00.840
Und Django noch auf den alten Sachen, ich glaube tatsächlich deprecated, aber da gibt

00:22:00.840 --> 00:22:05.540
es noch etwas Neueres, Cooleres und die Django-Sachen unter der Haube benutzen noch die alten und

00:22:05.540 --> 00:22:08.540
dann ist gerade viel in Bewegung bezüglich E-Mails, interessanterweise.

00:22:08.540 --> 00:22:11.500
Ich bin da ganz aus Versehen auf diesen Zug aufgesprungen.

00:22:11.500 --> 00:22:19.060
Direkt eine blöde, andere Frage, wie verschickt ihr denn E-Mails?

00:22:19.060 --> 00:22:23.940
Also tatsächlich, das ist auch eine Frage, die ich jedes Mal gestellt werde, wenn ich

00:22:23.940 --> 00:22:25.580
diesen Vortrag, ich muss gestehen, ich habe den eigentlich nicht.

00:22:25.580 --> 00:22:27.120
An mehreren Occasions recycelt.

00:22:27.120 --> 00:22:30.280
Das ist eine Frage, die sehr oft kommt.

00:22:30.280 --> 00:22:35.840
Bei mir geht es wirklich im Endeffekt nur um die Developer Experience und um die Maintainability.

00:22:35.840 --> 00:22:42.340
Also sprich, wie erstelle ich programmatisch diese E-Mail, wie stelle ich sicher, dass da

00:22:42.340 --> 00:22:44.500
alles drin ist und wie kann ich das nachher testen?

00:22:44.500 --> 00:22:49.740
Alles, was danach kommt, also im Endeffekt, das ist alles nicht das, wo das Package ansieht.

00:22:49.740 --> 00:22:51.060
Also da hört es quasi auf.

00:22:51.060 --> 00:22:55.140
Also bei den Unit-Tests, je nachdem, wie man es definiert, ist quasi dann das Ende und

00:22:55.140 --> 00:22:55.500
danach.

00:22:55.540 --> 00:22:58.920
Kann man halt dann die E-Mail so verschicken, wie man sie halt mit Django sonst verschicken

00:22:58.920 --> 00:22:59.140
möchte.

00:22:59.140 --> 00:23:02.540
Also ob man da jetzt irgendeinen Mail-Hawk reinhängt oder irgendein super abgefahrenes

00:23:02.540 --> 00:23:08.880
E-Mailing-Cluster hat oder seine eigene Gmail-Adresse dafür nutzt oder einfach das bei SES reinwirft.

00:23:08.880 --> 00:23:11.880
Das ist nichts, was man im Package versucht zu lösen.

00:23:11.880 --> 00:23:12.460
Wie macht ihr das?

00:23:12.460 --> 00:23:14.520
Wir selbst nutzen SES.

00:23:14.520 --> 00:23:16.660
Das ist von Amazon.

00:23:16.660 --> 00:23:20.120
Ich glaube, das gibt es aber auch in, also ich glaube, das ist ein Standard sogar.

00:23:20.120 --> 00:23:20.900
Ich bin nicht ganz sicher.

00:23:20.900 --> 00:23:25.380
Ich glaube, Amazon hat ja viele von diesen Standards definiert und das ist ein Service,

00:23:25.500 --> 00:23:28.060
der ist halt sehr günstig und sehr leistungsfähig.

00:23:28.060 --> 00:23:34.840
Ich habe für ein Privatprojekt, ich engagiere mich da für Kinder in Bolivien, haben wir

00:23:34.840 --> 00:23:41.420
früher unseren Spendern und Interessenten so einen Jahresbericht per PDF geschickt, das

00:23:41.420 --> 00:23:46.940
damals noch, bevor wir HTML-E-Mails hatten und diese PDFs, das war dann immer so mit

00:23:46.940 --> 00:23:51.140
den Bildern, auch wenn man die runtergerechnet hat, war immer so 500, 800 Kilo bei, das ist

00:23:51.140 --> 00:23:54.840
schon relativ groß für eine E-Mail und unsere alten Mail-Server sind regelmäßig, da ist

00:23:55.460 --> 00:23:57.900
irgendwie abgekackt, hängen geblieben, mühsam.

00:23:57.900 --> 00:23:59.600
Dann habe ich irgendwann auf SES umgestellt.

00:23:59.600 --> 00:24:03.900
Alle E-Mails zu versenden kostet dann vielleicht ein Euro oder zwei, ich weiß es nicht genau

00:24:03.900 --> 00:24:05.740
und das läuft halt einfach.

00:24:05.740 --> 00:24:09.160
Also du kannst dir eine beliebige Menge von E-Mails geben und die kommen halt an.

00:24:09.160 --> 00:24:11.260
Das ist halt sehr, sehr angenehm.

00:24:11.260 --> 00:24:13.600
Genau.

00:24:13.600 --> 00:24:16.760
Ja und tatsächlich eine Sache kann ich dazu sagen, was mich auch sehr gefreut hat.

00:24:16.760 --> 00:24:20.460
Ich habe ja wie gesagt für den Vortrag auf der Con gutes Feedback bekommen, habe mich

00:24:20.460 --> 00:24:23.620
dann mit ein paar Leuten unterhalten und habe ja noch ein paar Tipps bekommen, weil ich

00:24:23.620 --> 00:24:28.680
halt in der Conclusion auch überlegt habe, was da Sachen drin sind, die meiner Meinung

00:24:28.680 --> 00:24:33.180
nach auch gut ins Django Core, also in das Framework passen würden und dass wir dort,

00:24:33.180 --> 00:24:37.520
dass ich mich freuen würde halt was zu contributen, aber ich habe bis jetzt halt noch nicht so

00:24:37.520 --> 00:24:41.820
die richtigen Sachen hatte, es hat nie richtig funktioniert, habe ich ein paar Tipps bekommen,

00:24:41.820 --> 00:24:42.320
wie ich das mache.

00:24:42.320 --> 00:24:46.600
Es gibt nämlich ein Django Forum, das wird es auch gerade noch ein bisschen, die versuchen

00:24:46.600 --> 00:24:50.300
gerade so ein bisschen die Kommunikation da auch drin zu zentralisieren und da dann einfach

00:24:50.300 --> 00:24:51.860
meine Idee, also mit etwas kleinem Anfang.

00:24:51.880 --> 00:24:54.060
fangen, zum Beispiel dieser Testing-Helper,

00:24:54.060 --> 00:24:55.680
dass man halt quasi

00:24:55.680 --> 00:24:56.580
durch einen, also

00:24:56.580 --> 00:24:59.880
dass man alle textbasierten

00:24:59.880 --> 00:25:01.680
Medieninhalte einer E-Mail, also

00:25:01.680 --> 00:25:03.300
in den meisten Fällen HTML und Plaintext,

00:25:03.300 --> 00:25:05.580
wirklich einfach gucken kann, ist

00:25:05.580 --> 00:25:07.140
dieser String da drin, also zum Beispiel

00:25:07.140 --> 00:25:09.720
weiß ich nicht, ist, da steht da drin

00:25:09.720 --> 00:25:11.700
lieber Jochen als Anrede oder steht da

00:25:11.700 --> 00:25:13.620
drin Auftragsbestätigung oder ist da diese

00:25:13.620 --> 00:25:15.160
Auftragsnummer drin, solche Geschichten.

00:25:15.160 --> 00:25:16.700
Und diesen Helper haben wir

00:25:16.700 --> 00:25:19.740
dann in einem Forum-Thread ausdiskutiert.

00:25:19.740 --> 00:25:21.640
Die Lösung, da haben sich auch sehr viele Leute beteiligt,

00:25:21.680 --> 00:25:23.620
die Lösung, die rausgekommen ist, ist viel besser als das, was ich mir

00:25:23.620 --> 00:25:25.640
alleine überlegt hatte. Es war viel

00:25:25.640 --> 00:25:27.580
weniger zu implementieren, lustigerweise auch,

00:25:27.580 --> 00:25:29.800
was man alleine gemacht hat.

00:25:29.800 --> 00:25:30.820
Es gibt diesen schönen Spruch,

00:25:30.820 --> 00:25:33.600
Weeks of Programming can save hours of

00:25:33.600 --> 00:25:35.000
Planning, das war wieder sehr wahr.

00:25:35.000 --> 00:25:37.240
Und genau, dann

00:25:37.240 --> 00:25:39.560
ist vor zwei Wochen, glaube ich,

00:25:39.560 --> 00:25:41.640
dann das auch gemerged

00:25:41.640 --> 00:25:43.620
worden in Django Core, also in 5.2

00:25:43.620 --> 00:25:45.680
habe ich meinen ersten Commit, was mich sehr freut,

00:25:45.680 --> 00:25:46.800
jetzt nach zwölf Jahren.

00:25:46.800 --> 00:25:49.060
Cool. Vielen Dank.

00:25:49.060 --> 00:25:51.040
Genau.

00:25:51.480 --> 00:25:53.280
Ja, das klingt cool.

00:25:53.280 --> 00:25:54.940
Also, ja, ich muss es eigentlich auch mal ausprobieren.

00:25:54.940 --> 00:25:57.360
Ich hatte das zwischendurch mal so angeguckt, aber nicht dann angefasst,

00:25:57.360 --> 00:25:59.260
weil die E-Mail-Lösung bei mir war schon

00:25:59.260 --> 00:26:00.660
fertig und ich hätte hier alles umbauen müssen.

00:26:00.660 --> 00:26:02.120
Ja, ich kenne das.

00:26:02.120 --> 00:26:05.240
Aber eigentlich, für das Template wäre es eigentlich cool,

00:26:05.240 --> 00:26:07.320
das drin zu haben, weil das klingt danach, als müsste man

00:26:07.320 --> 00:26:09.100
das an verschiedenen Stellen schön benutzen können.

00:26:09.100 --> 00:26:11.200
Weil halt auch, wie du sagst, diese ganzen

00:26:11.200 --> 00:26:13.280
Features, Templates per

00:26:13.280 --> 00:26:15.420
HTML und so weiter, sehr gerne

00:26:15.420 --> 00:26:16.680
genutzt werden. Also, tatsächlich ein Feature,

00:26:16.680 --> 00:26:18.500
was ich persönlich sehr mag,

00:26:18.500 --> 00:26:21.120
einfach so ein Convenience-Feature,

00:26:21.280 --> 00:26:23.020
der Faktor interessiert

00:26:23.020 --> 00:26:25.180
die wenigsten Leute wirklich der Plain-Text-Part,

00:26:25.180 --> 00:26:27.040
weil die normalen, die modernen E-Mail-Clients

00:26:27.040 --> 00:26:28.900
oder die Web-basierten Clients, den

00:26:28.900 --> 00:26:30.740
eh nicht anzeigen. Das heißt, die einzigen

00:26:30.740 --> 00:26:32.540
Arten, wo man das sieht, ist, wenn man

00:26:32.540 --> 00:26:34.860
so ein E-Mail-Client hat, dann geht so ein Pop-Up auf,

00:26:34.860 --> 00:26:36.540
das nimmt meistens den Plain-Text-Part.

00:26:36.540 --> 00:26:38.600
Oder wenn halt irgendjemand auf seinem

00:26:38.600 --> 00:26:41.820
Linux-1980-Konsolen-basierten

00:26:41.820 --> 00:26:42.780
E-Mail-Programm noch

00:26:42.780 --> 00:26:45.060
sitzt. Da gibt es auch so ein paar Spezies, die das

00:26:45.060 --> 00:26:46.700
machen. Aber ansonsten sieht das halt niemand.

00:26:46.700 --> 00:26:49.080
Und ich habe mir mit einem externen

00:26:49.080 --> 00:26:51.080
Package als Default

00:26:51.080 --> 00:26:52.840
rendert der einfach das HTML-Template

00:26:52.840 --> 00:26:55.060
als Plain-Text und tauscht dann halt die Tabellen

00:26:55.060 --> 00:26:56.900
durch Pipes und sowas. Die Struktur ist

00:26:56.900 --> 00:26:58.920
nicht schön, es funktioniert. Auch Links und sowas

00:26:58.920 --> 00:27:00.860
kriegt der hin. Also das kriegt

00:27:00.860 --> 00:27:02.160
dann quasi wieder der

00:27:02.160 --> 00:27:04.860
Client dann hin, der

00:27:04.860 --> 00:27:06.680
das dann auch trotzdem, auch Plain-Text

00:27:06.680 --> 00:27:08.700
meistens zumindest, dann wieder

00:27:08.700 --> 00:27:10.800
irgendwie interpretiert. Und das ist sehr

00:27:10.800 --> 00:27:12.820
angenehm, weil dann hat man keine doppelten Templates mehr. Und das

00:27:12.820 --> 00:27:14.740
ist natürlich schon ein Problem, dass man durch diese doppelten

00:27:14.740 --> 00:27:16.820
Inhalte, wie zum Beispiel bei uns in einem Projekt, wo wir

00:27:16.820 --> 00:27:18.900
gearbeitet haben, hatten wir bestimmt 50

00:27:18.900 --> 00:27:20.880
verschiedene E-Mails, alles mögliche

00:27:20.880 --> 00:27:22.620
um halt den Kunden zu informieren, was so mit

00:27:22.620 --> 00:27:24.120
seinen Dingen passiert ist.

00:27:24.120 --> 00:27:26.720
Und da wurde ständig vergessen, eine von

00:27:26.720 --> 00:27:28.800
beiden Teilen anzupassen. Das kann man natürlich in gewissen

00:27:28.800 --> 00:27:30.380
Maßen durch diesen Test-Helper

00:27:30.380 --> 00:27:32.540
lösen, dass man das einfach unit-testet.

00:27:32.540 --> 00:27:34.700
Nichtsdestotrotz, wenn es ein Rechtschreibfehler oder sowas ist,

00:27:34.700 --> 00:27:36.260
hat man vielleicht darauf gerade nicht geschaut.

00:27:36.260 --> 00:27:38.560
Das war ein ständiger Pain. Und

00:27:38.560 --> 00:27:40.700
das kann man sehr gut damit halt einfach

00:27:40.700 --> 00:27:42.880
erschlagen und löst

00:27:42.880 --> 00:27:44.340
das Problem damit. Das ist sehr angenehm.

00:27:44.340 --> 00:27:46.580
Sehr gut. Und

00:27:46.580 --> 00:27:48.300
du hast gesagt, er macht auch sowas dann wie

00:27:48.300 --> 00:27:50.200
Opt-Out-Links oder

00:27:50.680 --> 00:27:53.180
für E-Mail-Newsletter oder sowas dann direkt mit drin.

00:27:53.180 --> 00:27:54.560
Ist das da in einem Package drin, oder?

00:27:54.560 --> 00:27:57.180
Also das Package nicht. Die Idee ist quasi,

00:27:57.180 --> 00:27:59.000
dass man, also diese, dass man,

00:27:59.000 --> 00:28:01.000
also ich biete quasi, also

00:28:01.000 --> 00:28:03.140
das Package, nicht ich, nicht ich persönlich,

00:28:03.140 --> 00:28:04.860
biete so eine

00:28:04.860 --> 00:28:06.940
Basisklasse. Und wenn man von dieser Basisklasse

00:28:06.940 --> 00:28:08.920
erbt, dann kann man halt dann

00:28:08.920 --> 00:28:10.880
eine E-Mail definieren, kann ein paar Attribute setzen, zum Beispiel

00:28:10.880 --> 00:28:11.800
das Subject setzen,

00:28:11.800 --> 00:28:15.260
das Template setzen und halt gegebenenfalls noch Kontextvariable

00:28:15.260 --> 00:28:16.840
mitgeben, zum Beispiel den Auftrag oder

00:28:16.840 --> 00:28:18.640
den Link oder irgendwas, was halt der

00:28:18.640 --> 00:28:20.060
Inhalt der E-Mail ist.

00:28:20.480 --> 00:28:22.880
Jetzt hat man aber natürlich oft einfach

00:28:22.880 --> 00:28:24.740
so ein, also die E-Mails, die man schickt

00:28:24.740 --> 00:28:26.100
aus dem System, sollen ja irgendwie

00:28:26.100 --> 00:28:28.720
einheitlich sein. Du hast, wie auch

00:28:28.720 --> 00:28:30.580
bei einer Webseite, hättest du ein Basis-Template.

00:28:30.580 --> 00:28:32.560
Du hast das Logo oben drin, du hast dann

00:28:32.560 --> 00:28:34.800
vielleicht eine generelle Anrede, du hast ein Footer,

00:28:34.800 --> 00:28:36.580
wo ein paar legale Sachen drinstehen, wo vielleicht

00:28:36.580 --> 00:28:38.500
ein Unsubscribe-Link drin ist. Und

00:28:38.500 --> 00:28:40.400
diese ganzen Sachen,

00:28:40.400 --> 00:28:42.840
die ganzen Informationen, die man dafür braucht,

00:28:42.840 --> 00:28:44.720
das sind auch die dynamischen Sachen. Zum Beispiel, wenn man

00:28:44.720 --> 00:28:46.740
sagt, der Unsubscribe-Link enthält ein Hash oder sowas,

00:28:46.740 --> 00:28:48.620
dass der Nutzer identifiziert werden kann,

00:28:48.620 --> 00:28:50.100
der das draufgeklickt hat und solche Geschichten.

00:28:50.280 --> 00:28:52.260
Und wenn man da einfach von der

00:28:52.260 --> 00:28:54.500
meiner Pony Express Basisklasse

00:28:54.500 --> 00:28:55.960
ableitet, eine eigene Basisklasse macht,

00:28:55.960 --> 00:28:57.860
dort dann halt die zum Beispiel, die

00:28:57.860 --> 00:29:00.160
GetContextData, wer Django kennt, weiß, was ich meine,

00:29:00.160 --> 00:29:01.640
überschreibt,

00:29:01.640 --> 00:29:04.520
dann kann man da halt einmal die ganzen Sachen definieren.

00:29:04.520 --> 00:29:06.340
Oder zum Beispiel, dass man Subject-Prefix hat.

00:29:06.340 --> 00:29:08.480
Ich persönlich finde, es sieht immer schön professionell aus,

00:29:08.480 --> 00:29:10.200
wenn alle E-Mails, die vom System kommen,

00:29:10.200 --> 00:29:12.300
halt irgendwie geprefixet sind. Oder zum Beispiel dann irgendwie

00:29:12.300 --> 00:29:13.860
mein-webshop.de

00:29:13.860 --> 00:29:16.560
und dann halt Account erstellt, Passwort-Reset

00:29:16.560 --> 00:29:18.260
und was auch immer. Und diese Sachen kann man

00:29:18.260 --> 00:29:20.080
einmal definieren und jede E-Mail, die man dann

00:29:20.080 --> 00:29:22.180
weiter erstellt, leitet dann halt von dieser eigenen

00:29:22.180 --> 00:29:23.500
Klasse ab. Und das,

00:29:23.500 --> 00:29:25.920
ich meine, das ist halt ganz normale Objektorientierung,

00:29:25.920 --> 00:29:27.440
das hat jetzt nichts mit dem Pony Express zu tun,

00:29:27.440 --> 00:29:30.120
aber das ist halt, das macht es sehr angenehm und führt

00:29:30.120 --> 00:29:32.120
auch dazu, dass die eigentlichen E-Mails, die mich dann

00:29:32.120 --> 00:29:33.940
am, die ich am Schluss dann, wo ich dann auch die N,

00:29:33.940 --> 00:29:35.080
die N-te,

00:29:35.080 --> 00:29:36.740
implementieren muss,

00:29:36.740 --> 00:29:39.860
dass das wirklich dann meistens halt nur

00:29:39.860 --> 00:29:41.940
zwei oder drei Zeilen Code sind. Was es natürlich auch vieler

00:29:41.940 --> 00:29:44.100
sehr angenehm macht, neue E-Mails

00:29:44.100 --> 00:29:46.220
hinzuzufügen.

00:29:46.220 --> 00:29:47.120
Genau.

00:29:47.120 --> 00:29:49.680
Cool, cool.

00:29:49.880 --> 00:29:52.040
Ähm, hast du da auch so White-Label-Templates

00:29:52.040 --> 00:29:53.740
dabei, die quasi gar nichts vorgeben,

00:29:53.740 --> 00:29:55.620
aber die es schon gibt und die man einfach benutzen kann?

00:29:55.620 --> 00:29:57.760
Also ich tatsächlich, wenn ich das mache,

00:29:57.760 --> 00:29:59.580
ich fange immer an mit einer Google-Suche

00:29:59.580 --> 00:30:01.660
nach Responsive-E-Mail-Template, da lande ich

00:30:01.660 --> 00:30:03.720
immer bei dem gleichen GitHub-Report,

00:30:03.720 --> 00:30:05.780
das es schon seit, ich glaube, 2015 oder sowas gibt.

00:30:05.780 --> 00:30:07.600
Das ist immer noch überraschend gut und

00:30:07.600 --> 00:30:09.280
das funktioniert auch. Das müssen wir unbedingt

00:30:09.280 --> 00:30:10.220
in die Show noch stellen.

00:30:10.220 --> 00:30:13.540
Das ist super simpel,

00:30:13.540 --> 00:30:15.640
es tut es aber irgendwie. Ich weiß

00:30:15.640 --> 00:30:17.640
auch nicht genau warum, aber wenn man sich halt da ein paar Regeln hält,

00:30:17.640 --> 00:30:19.840
je nachdem, wie alte E-Mail-Clients man unterstützen möchte,

00:30:19.840 --> 00:30:19.860
ähm,

00:30:20.420 --> 00:30:21.880
die früheren Outlook-Versionen

00:30:21.880 --> 00:30:23.700
sind da ja ziemlich wild, die dann unter der Haube so

00:30:23.700 --> 00:30:25.260
einen Indexbrowser 5 oder sowas haben.

00:30:25.260 --> 00:30:27.400
Das tut dann schon weh, wenn man die unterstützen möchte.

00:30:27.400 --> 00:30:29.720
Aber, ähm, wie gesagt, kommt halt auch immer dann

00:30:29.720 --> 00:30:31.920
drauf an, ähm, wie wichtig das dann ist.

00:30:31.920 --> 00:30:33.660
Also vielleicht akzeptiert, wie halt auch mit

00:30:33.660 --> 00:30:35.540
Browsern, ne, vielleicht ist auch einfach okay, wenn dann der eine,

00:30:35.540 --> 00:30:37.460
der halt noch den Indexbrowser 11 nutzt, wenn das dann die Webseite

00:30:37.460 --> 00:30:39.720
halt nicht perfekt aussieht. Von daher, das ist

00:30:39.720 --> 00:30:41.680
auch, wie gesagt, ein Thema, ähm, auf das ich

00:30:41.680 --> 00:30:43.620
mich gar nicht fokussiert hab, weil ich

00:30:43.620 --> 00:30:45.580
versucht hab, nicht zu viele Probleme in einem

00:30:45.580 --> 00:30:47.640
zu lösen. Ich hab selbst diese, überlegt, ob ich diese

00:30:47.640 --> 00:30:49.380
Sache mit den Class-Based-E-Mails und die Sache mit der

00:30:49.380 --> 00:30:51.460
Test-Suite, ob ich die auseinanderziehen soll, weil es ja

00:30:51.460 --> 00:30:53.160
im Endeffekt die Test-Suite einen

00:30:53.160 --> 00:30:55.500
eigenständigen Nutzen hat, auch wenn ich

00:30:55.500 --> 00:30:57.120
keine Class-Based-E-Mails

00:30:57.120 --> 00:30:59.200
verwende. Das ist einfach nur ein Django-Ding.

00:30:59.200 --> 00:31:01.520
Und man soll ja Packages eigentlich immer

00:31:01.520 --> 00:31:03.360
so bauen, dass die nach Möglichkeit genau

00:31:03.360 --> 00:31:05.240
ein Problem lösen, weil es auch dann einfacher zu

00:31:05.240 --> 00:31:06.800
verkaufen, einfacher zu verstehen ist.

00:31:06.800 --> 00:31:09.340
Von daher hab ich mich auch entschieden, dann da nicht

00:31:09.340 --> 00:31:10.780
noch weitere Dinge reinzubauen.

00:31:10.780 --> 00:31:13.320
Und auch persönlich, weil ich da halt auch

00:31:13.320 --> 00:31:14.540
nicht so die Pain-Points hatte.

00:31:14.540 --> 00:31:17.540
Okay. Also hast du eh schon konzentriert.

00:31:17.640 --> 00:31:19.220
Immer Copy-Paste. Du musst es aber erst nicht bereitstellen

00:31:19.220 --> 00:31:20.240
mit dem Package. Okay, verstehe ich.

00:31:20.240 --> 00:31:21.560
Genau.

00:31:21.560 --> 00:31:24.280
Ja. Klingt gut.

00:31:24.280 --> 00:31:27.160
Aber jetzt kommen wir tatsächlich, glaube ich, dann zu

00:31:27.160 --> 00:31:29.480
Django-Tasks, weil, wenn man ihm es verschicken möchte,

00:31:29.480 --> 00:31:31.160
möchte man das ja wahrscheinlich nicht

00:31:31.160 --> 00:31:32.520
sequenziell berechnen, oder?

00:31:32.520 --> 00:31:34.140
Genau. Nicht dem Main-Thread.

00:31:34.140 --> 00:31:36.120
Und genau.

00:31:36.120 --> 00:31:39.140
Da gibt es ein neues

00:31:39.140 --> 00:31:41.500
Konzept. Wie gesagt, das nennt sich Background-Workers.

00:31:41.500 --> 00:31:43.300
Das lebt aktuell in einem Package namens

00:31:43.300 --> 00:31:45.480
Django-Tasks. Da muss man aufpassen.

00:31:45.480 --> 00:31:46.840
Es gibt ganz viele, die ähnlich klingen.

00:31:47.320 --> 00:31:48.620
Django-Background-Tasks.

00:31:48.620 --> 00:31:50.320
Ja, Background-Tasks-Manager.

00:31:50.320 --> 00:31:52.680
Genau. Auf jeden Fall dieses Django-Tasks-Package.

00:31:52.680 --> 00:31:54.880
Das ist von Jake Howard. Der hat das jetzt relativ schnell

00:31:54.880 --> 00:31:57.060
zusammengenagelt. Das ist echt erstaunlich.

00:31:57.060 --> 00:31:59.060
Der freut sich auf jeden Fall

00:31:59.060 --> 00:32:00.100
über...

00:32:00.100 --> 00:32:01.880
Doch, es ist nicht Django-Background-Tasks.

00:32:01.880 --> 00:32:04.480
Ja, ich merke schon. Ich merke schon. Ich google hier.

00:32:04.480 --> 00:32:07.220
Der freut sich

00:32:07.220 --> 00:32:08.720
auf jeden Fall immer über Leute, die das ausprobieren.

00:32:08.720 --> 00:32:10.880
Also wer von euch Interesse an Django hat,

00:32:10.880 --> 00:32:12.840
möge das gerne anschauen.

00:32:12.840 --> 00:32:14.540
Jetzt muss ich auch noch einen Satz sagen, was das überhaupt ist.

00:32:14.540 --> 00:32:16.060
Ja. Genau.

00:32:17.000 --> 00:32:19.580
Also in den meisten Projekten,

00:32:19.580 --> 00:32:21.360
wenn man irgendwas asynchron machen möchte,

00:32:21.360 --> 00:32:22.480
da meine ich jetzt gar nicht dieses

00:32:22.480 --> 00:32:25.180
in ganzem Sinne relativ moderne Async, sondern einfach

00:32:25.180 --> 00:32:26.960
ich möchte irgendwelche Prozesse nachgelagert machen.

00:32:26.960 --> 00:32:28.540
Zum Beispiel irgendeine große Berechnung machen,

00:32:28.540 --> 00:32:31.400
irgendeinen Cache befüllen oder halt auch eine E-Mail

00:32:31.400 --> 00:32:33.580
schicken, weil ich möchte ja mit dem... E-Mail ist ja...

00:32:33.580 --> 00:32:35.240
Ich muss ja mit der externen API kommunizieren,

00:32:35.240 --> 00:32:37.480
um die E-Mail zu versenden. Da möchte ich ja im optimalen Fall

00:32:37.480 --> 00:32:38.900
nicht meinen externen Thread blockieren.

00:32:38.900 --> 00:32:41.060
Äh, meinen Main-Thread blockieren.

00:32:41.060 --> 00:32:44.020
Ähm, und, ähm,

00:32:44.020 --> 00:32:45.980
genau. Deshalb, ähm,

00:32:46.680 --> 00:32:48.600
gibt es in jedem Projekt, in dem ich gearbeitet

00:32:48.600 --> 00:32:50.840
habe, irgendeine Art von

00:32:50.840 --> 00:32:52.560
asynchronem Processing. Meistens

00:32:52.560 --> 00:32:53.920
in der Form von Celery. Ja, Celery.

00:32:53.920 --> 00:32:56.260
Das ist in der Python-Welt sehr bekannt, in der Django-Welt.

00:32:56.260 --> 00:32:57.840
Sehr gehasst und gefürchtet.

00:32:57.840 --> 00:33:00.660
Ja. Ähm, gibt es

00:33:00.660 --> 00:33:02.040
Django-Queue oder Queue2?

00:33:02.040 --> 00:33:04.380
Ähm, gibt es, ist jetzt aufgekommen,

00:33:04.380 --> 00:33:05.580
das ist, ähm,

00:33:05.580 --> 00:33:08.680
ähm, das ist so eine leichtgewichtigere

00:33:08.680 --> 00:33:10.880
Alternative, weil der, das Hauptproblem

00:33:10.880 --> 00:33:12.400
ist, dass Celery erzwingt,

00:33:12.400 --> 00:33:14.540
dass man irgendeinen Broker dazwischen stellt,

00:33:14.540 --> 00:33:16.120
der als Message-Queue dient.

00:33:16.360 --> 00:33:18.120
Ja, man kann das auch so konfigurieren,

00:33:18.120 --> 00:33:20.400
dass der direkt die Datenbank nimmt, aber...

00:33:20.400 --> 00:33:22.380
Oder der hat eine lokale Datei, in der er irgendwas reinschreiben kann,

00:33:22.380 --> 00:33:23.880
dann macht er irgendeine SQLite noch extra auf.

00:33:23.880 --> 00:33:26.140
Okay, das weiß ich.

00:33:26.140 --> 00:33:27.860
Ja, aber ich glaube, man muss es nicht unbedingt,

00:33:27.860 --> 00:33:30.140
also das ist üblich, ja. Und es ist auch,

00:33:30.140 --> 00:33:32.220
also ich habe das mehrfach schon

00:33:32.220 --> 00:33:34.280
gesucht und, ähm, für die

00:33:34.280 --> 00:33:36.100
Result-Backends, also bei Celery,

00:33:36.100 --> 00:33:38.120
wenn quasi, um die Ergebnisse zu speichern

00:33:38.120 --> 00:33:40.060
und das im Endeffekt so eine Art Log, was

00:33:40.060 --> 00:33:42.120
passiert ist, äh, dafür geht

00:33:42.120 --> 00:33:43.940
das, das ist relativ einfach, aber für die,

00:33:43.940 --> 00:33:45.980
für den Broker selbst bin ich zumindest immer

00:33:45.980 --> 00:33:46.200
damit

00:33:46.200 --> 00:33:46.340
gescheitert.

00:33:46.360 --> 00:33:48.140
Ich war aber auch tatsächlich nie so viel

00:33:48.140 --> 00:33:50.240
investiert darin. Auf jeden Fall, für die

00:33:50.240 --> 00:33:52.240
allermeisten Cases ist es halt einfach harter

00:33:52.240 --> 00:33:54.320
Overkill, wenn man da halt irgendeine Postgres oder MariaDP

00:33:54.320 --> 00:33:56.180
hat, die kann in den, zum Beispiel

00:33:56.180 --> 00:33:58.000
bei uns, in den meisten Fällen, kann die paar hundert

00:33:58.000 --> 00:33:59.640
Tasks, die am Tag laufen,

00:33:59.640 --> 00:34:02.220
problemlos abfrühstücken, ohne

00:34:02.220 --> 00:34:03.880
dass sie da irgendwie in Verlegenheiten kommen.

00:34:03.880 --> 00:34:06.060
Selbst bei ein paar tausend Tasks ist es immer noch kein

00:34:06.060 --> 00:34:08.020
Problem. Vor allem, wenn man dann vielleicht auch

00:34:08.020 --> 00:34:10.260
sagt, dass, ähm, die, äh,

00:34:10.260 --> 00:34:11.980
dass die ein großer Task vielleicht auch eher nachts

00:34:11.980 --> 00:34:13.800
läuft, für irgendwelche Sachen, dann,

00:34:13.800 --> 00:34:15.540
und da ich auch keine Userlast habe,

00:34:16.200 --> 00:34:18.040
und das wird allgemein, äh, sehr stark

00:34:18.040 --> 00:34:19.860
als Overkill angesehen dazu, wie Dominik

00:34:19.860 --> 00:34:22.000
gerade schon gesagt hat, viele Leute fürchten auf Celery

00:34:22.000 --> 00:34:24.200
für, aus verschiedenen Gründen.

00:34:24.200 --> 00:34:25.140
Ähm.

00:34:25.140 --> 00:34:27.920
Das wird oft kaputt auch eingestellt, verhält sich komisch, aber vielleicht,

00:34:27.920 --> 00:34:29.860
also ist die Frage, ob es an Celery liegt oder daran, dass

00:34:29.860 --> 00:34:31.180
Async halt ein bisschen schwieriger ist?

00:34:31.180 --> 00:34:34.040
Also, da, da, da würde ich gerne noch mal

00:34:34.040 --> 00:34:35.440
kurz eine Begriffsklärung machen, weil

00:34:35.440 --> 00:34:37.920
viele sagen ja, Async, ja, und ich höre

00:34:37.920 --> 00:34:40.020
auch immer, wenn von Async die Rede

00:34:40.020 --> 00:34:41.100
ist, dass dann Leute sagen so,

00:34:41.100 --> 00:34:43.940
das, das merke ich dann irgendwie

00:34:43.940 --> 00:34:46.040
nach einer gewissen Zeit, dass Leute eigentlich sowas wie Celery

00:34:46.040 --> 00:34:47.820
meinen. Mhm. Aber das hat ja

00:34:47.820 --> 00:34:49.640
jetzt mit, mit, zum Beispiel, mit, äh,

00:34:49.640 --> 00:34:51.820
Async.io oder so, damit überhaupt

00:34:51.820 --> 00:34:53.580
gar nichts zu tun ist, das ist ganz anderes. Ja, also,

00:34:53.580 --> 00:34:55.640
Celery ist ein eigener Worker-Prozess, wenn ich dich

00:34:55.640 --> 00:34:57.720
verstehe, der halt einfach Tastarbeite

00:34:57.720 --> 00:34:59.460
zu einer bestimmten Zeit hat, die halt in der Liste stehen,

00:34:59.460 --> 00:35:01.760
und dann also diese Queue, äh, leert.

00:35:01.760 --> 00:35:03.760
Ja, du hast so eine Anzahl von, von Workern, und

00:35:03.760 --> 00:35:05.820
du hast halt, äh, irgendwie, ähm,

00:35:05.820 --> 00:35:07.960
genau ein Ding,

00:35:07.960 --> 00:35:09.860
das halt eventuell auf so einer Queue drauf sitzt,

00:35:09.860 --> 00:35:11.880
und dann verteilt es halt Jobs an diese Worker,

00:35:11.880 --> 00:35:13.760
und, äh, die machen dann halt Dinge und

00:35:13.760 --> 00:35:15.800
schreiben ihre, äh, Resultate wieder irgendwo hin.

00:35:15.880 --> 00:35:17.800
Mhm. Ja. Und, ähm,

00:35:17.800 --> 00:35:19.780
genau. Ich glaube, warum die Leute denken, dass es Async ist, weil das halt

00:35:19.780 --> 00:35:21.820
meistens, wie schon gleich gesagt, nicht im Main-Prozess

00:35:21.820 --> 00:35:23.800
läuft, obwohl man das auch machen kann, du kannst ja mit Django

00:35:23.800 --> 00:35:25.880
mitstarten oder so. Mhm. Ähm, aber die Frage

00:35:25.880 --> 00:35:27.820
ist auch da, was das halt heißt, also, weil,

00:35:27.820 --> 00:35:29.720
äh, Jochen weiß das bestimmt besser,

00:35:29.720 --> 00:35:31.660
weil es ja irgendwie verschiedene Event-Queues, die man

00:35:31.660 --> 00:35:33.600
nutzen kann, G-Event oder Event,

00:35:33.600 --> 00:35:35.380
irgendwas. Nee, nee, gar nicht, damit hat es

00:35:35.380 --> 00:35:37.580
überhaupt nichts zu tun, also mit G-Event oder sowas hat es

00:35:37.580 --> 00:35:39.460
überhaupt nichts zu tun. G-Event ist sowas wie Async.io,

00:35:39.460 --> 00:35:41.760
ganz anderes. Aber kann man machen, also wenn man das mit Django

00:35:41.760 --> 00:35:43.920
selber macht, dann muss man sich überlegen, welche da benutzt

00:35:43.920 --> 00:35:45.800
wird? Ja, aber nicht, also nicht sowas wie

00:35:45.800 --> 00:35:47.460
G-Event oder auch nicht sowas wie Async.io,

00:35:47.460 --> 00:35:49.540
gar nicht. Also, das ist einfach was ganz anderes.

00:35:49.540 --> 00:35:51.780
Das, äh, ist auch nicht, äh, eine Geschichte,

00:35:51.780 --> 00:35:53.620
die im gleichen Prozess normalerweise stattfindet, sondern

00:35:53.620 --> 00:35:55.040
du hast halt tatsächlich andere Prozesse.

00:35:55.040 --> 00:35:57.540
Ja, wenn man die hat, genau, wenn man die

00:35:57.540 --> 00:35:59.620
andere Prozesse hat, dann schon. Anders geht es

00:35:59.620 --> 00:36:01.420
nicht. Äh,

00:36:01.420 --> 00:36:03.460
okay. Also,

00:36:03.460 --> 00:36:05.600
genau, anders geht, anders, jedenfalls

00:36:05.600 --> 00:36:07.620
nicht, dass ich wüsste, dass das irgendwie anders gehen würde,

00:36:07.620 --> 00:36:09.700
weil, wie soll das funktionieren, wenn du halt

00:36:09.700 --> 00:36:11.780
jetzt irgendwie, äh, keine Ahnung,

00:36:11.780 --> 00:36:13.620
in dem Reg, äh, also, nehmen wir an,

00:36:13.620 --> 00:36:13.820
du,

00:36:13.920 --> 00:36:15.720
du stößt halt an in einem

00:36:15.720 --> 00:36:17.560
Request, also, du hast halt irgendwie einen Button, da steht drauf

00:36:17.560 --> 00:36:19.260
Send E-Mail, drückst du auf E-Mail

00:36:19.260 --> 00:36:21.780
und wie soll das jetzt gehen,

00:36:21.780 --> 00:36:23.840
dass dann eine E-Mail,

00:36:23.840 --> 00:36:25.700
ja, so, vielleicht geht es tatsächlich

00:36:25.700 --> 00:36:27.080
irgendwie, aber das ist alles sehr hässlich, also,

00:36:27.080 --> 00:36:29.820
äh, nee, du willst eigentlich

00:36:29.820 --> 00:36:31.900
ein Task dafür starten, der ganz woanders

00:36:31.900 --> 00:36:33.740
ist. Du hast recht, du willst das auf jeden Fall, da würde ich

00:36:33.740 --> 00:36:35.340
dir auf jeden Fall zustimmen, aber ich glaube nicht, dass du mit

00:36:35.340 --> 00:36:37.540
Definitiv. Ja, also, aber diese beiden Dinge haben

00:36:37.540 --> 00:36:39.720
eigentlich nichts miteinander zu tun, auch wenn man das eine für das andere

00:36:39.720 --> 00:36:41.680
vielleicht so halb irgendwie verwenden kann, aber

00:36:41.680 --> 00:36:43.700
nee, das ist eigentlich was ganz anderes.

00:36:43.920 --> 00:36:45.500
Wie gesagt, es ist halt,

00:36:45.500 --> 00:36:47.780
es ist halt, also, die, wenn du dir,

00:36:47.780 --> 00:36:49.520
wenn du quasi auf den Main Thread schaust,

00:36:49.520 --> 00:36:51.720
dann läuft es halt irgendwie nicht da drin,

00:36:51.720 --> 00:36:53.840
von daher liegt es halt nahe, das irgendwie asynchron

00:36:53.840 --> 00:36:55.980
zu nennen, auch wenn das mit dem Async,

00:36:55.980 --> 00:36:57.980
mit dem Python Async natürlich nichts zu tun hat,

00:36:57.980 --> 00:36:58.660
technisch. Ja.

00:36:58.660 --> 00:37:01.700
Genau, aber es

00:37:01.700 --> 00:37:03.500
läuft halt nicht irgendwie Async,

00:37:03.500 --> 00:37:05.800
sondern, oder in einem anderen Thread, sondern es läuft

00:37:05.800 --> 00:37:07.780
in einem anderen Prozess. Ja. Also, hat überhaupt gar

00:37:07.780 --> 00:37:09.540
nichts mehr mit dem Ding zu tun, mit dem

00:37:09.540 --> 00:37:11.540
Interpreter da läuft, also,

00:37:11.540 --> 00:37:13.820
ähm, ja, äh, genau.

00:37:13.920 --> 00:37:15.840
Genau, und insgesamt, das

00:37:15.840 --> 00:37:17.440
Celery Setup ist halt auch, äh, relativ,

00:37:17.440 --> 00:37:20.020
es ist halt, da, da schießt man wirklich schon, äh,

00:37:20.020 --> 00:37:21.820
auf, äh, also mit sehr großen

00:37:21.820 --> 00:37:23.700
Kanonen. Ja. Weil ja meistens man dann mehrere

00:37:23.700 --> 00:37:25.780
Worker hat, man hat einen Beat, der, der für,

00:37:25.780 --> 00:37:27.300
für Scheduling, also der im Endeffekt diesen

00:37:27.300 --> 00:37:29.720
Contab dann, dann ersetzt. Ja. Ähm,

00:37:29.720 --> 00:37:31.460
dann gibt es noch dieses Monitoring Tool Flower,

00:37:31.460 --> 00:37:33.620
ähm, was so mittelgut

00:37:33.620 --> 00:37:35.380
funktioniert und eher schlecht als recht,

00:37:35.380 --> 00:37:37.160
meiner Meinung nach, gewartet ist.

00:37:37.160 --> 00:37:39.460
Ähm, nichtsdestotrotz, wenn man mal irgendwie reingucken möchte,

00:37:39.460 --> 00:37:41.820
hilft es schon. Dazu, das kommt halt noch,

00:37:41.820 --> 00:37:43.820
dass man, wie gesagt, meistens halt dann diesen, äh,

00:37:43.840 --> 00:37:45.300
diesen Message Broker, ähm,

00:37:45.300 --> 00:37:47.620
braucht, der halt dann meistens ein

00:37:47.620 --> 00:37:49.400
Redis oder ein Revitim Queue oder

00:37:49.400 --> 00:37:51.780
ein Derivat davon ist. Und das ist halt

00:37:51.780 --> 00:37:53.800
für viele Projekte, vor allem am Anfang

00:37:53.800 --> 00:37:55.740
ist das halt enormer, ist das ein enormer Setup

00:37:55.740 --> 00:37:57.680
Aufwand. Wer das erste Mal in seinem Leben

00:37:57.680 --> 00:37:59.540
Celery, ähm, einrichten muss,

00:37:59.540 --> 00:38:01.220
ähm, der wird daran keinen Spaß haben.

00:38:01.220 --> 00:38:03.620
Ja. Nicht, weil, wenn du halt zum Beispiel auf das Redis

00:38:03.620 --> 00:38:05.720
sonst nichts anderes benutzt oder sowas, das läuft halt

00:38:05.720 --> 00:38:07.660
halt die ganze Zeit rum, so irgendwie. Genau. Ja.

00:38:07.660 --> 00:38:09.740
Und es, es bläht das Setup halt enorm

00:38:09.740 --> 00:38:11.780
auf und es ist jetzt halt seit, seit

00:38:11.780 --> 00:38:13.760
scheinbar auch Jahren ist es halt irgendwie allen bewusst,

00:38:13.760 --> 00:38:15.680
dass es halt schon cool wäre, wenn Django da selber was

00:38:15.680 --> 00:38:17.560
könnte und man halt eben nicht mit,

00:38:17.560 --> 00:38:19.760
ähm, da, ne, mit, mit Celery

00:38:19.760 --> 00:38:21.720
kommen muss. Wie gesagt, die Popularität von

00:38:21.720 --> 00:38:23.780
Django Queue oder Q2, ähm,

00:38:23.780 --> 00:38:25.460
wie das, äh, wie der Nachfolger davon heißt,

00:38:25.460 --> 00:38:27.840
ähm, der ist ja tatsächlich jetzt auch nicht

00:38:27.840 --> 00:38:29.760
aus der Welt, weil der im Endeffekt wirklich sehr, sehr

00:38:29.760 --> 00:38:31.620
leichtgewichtig einfach nur halt

00:38:31.620 --> 00:38:33.720
Dinge irgendwann außerhalb in einem

00:38:33.720 --> 00:38:35.660
anderen Prozess abarbeitet. Und

00:38:35.660 --> 00:38:37.180
die Idee von Jack Howard ist jetzt,

00:38:37.180 --> 00:38:39.540
ähm, das wirklich in Django zu integrieren.

00:38:39.540 --> 00:38:41.480
Er hat erst mal ein Package gemacht, wie man das halt

00:38:41.480 --> 00:38:43.680
optimalerweise auch so macht, dass Leute es auch separat testen

00:38:43.680 --> 00:38:45.240
können. Und, ähm,

00:38:45.240 --> 00:38:47.360
das Ganze hat er vorgestellt.

00:38:47.360 --> 00:38:49.500
Das war, ähm, ich weiß

00:38:49.500 --> 00:38:51.460
nicht, ob es wirklich eine Keynote war, aber es war

00:38:51.460 --> 00:38:53.340
auf jeden Fall de facto eine Keynote. Ich glaube, das

00:38:53.340 --> 00:38:55.600
war das, was die Leute, wo die Leute am meisten und am heißesten

00:38:55.600 --> 00:38:57.160
drauf waren. Ähm,

00:38:57.160 --> 00:38:59.100
und das ist sehr spannend, weil, ähm,

00:38:59.100 --> 00:39:01.640
ich tatsächlich auch bei mir in meinen diversen Projekten

00:39:01.640 --> 00:39:03.620
glaube ich auch einfach aktiv zurückbauen würde,

00:39:03.620 --> 00:39:05.500
ähm, weil ich einfach

00:39:05.500 --> 00:39:07.220
happy damit wäre,

00:39:07.220 --> 00:39:09.440
ähm, und aus der Celery Setup

00:39:09.440 --> 00:39:11.160
in den allermeisten Fällen verzichten kann.

00:39:11.160 --> 00:39:13.300
Es gibt jetzt wirklich Cases, wo man sagt, okay,

00:39:13.600 --> 00:39:15.640
wir machen so viele, wir machen so komplizierte Dinge.

00:39:15.640 --> 00:39:17.480
Das macht natürlich Sinn, da was

00:39:17.480 --> 00:39:19.480
Explizites zu haben. Nur, wie immer, es macht

00:39:19.480 --> 00:39:21.640
halt vor allem, wenn man jetzt auf ein Budget

00:39:21.640 --> 00:39:23.580
achtet, ähm, macht

00:39:23.580 --> 00:39:25.460
das natürlich schon Sinn, ähm,

00:39:25.460 --> 00:39:27.320
da erst mal mit einer einfachen Lösung anzufangen.

00:39:27.320 --> 00:39:29.500
Einer einfachen, soliden Lösung. Billig und

00:39:29.500 --> 00:39:31.120
schnell rächt sich meistens irgendwann.

00:39:31.120 --> 00:39:32.980
Ähm, genau.

00:39:32.980 --> 00:39:35.460
Was übrigens auch ganz interessant war,

00:39:35.460 --> 00:39:37.520
ähm, ich hab, äh, der, der

00:39:37.520 --> 00:39:39.720
Talk von Carlton Gibson ging im Endeffekt

00:39:39.720 --> 00:39:41.440
um mal wieder, HTMX ist super

00:39:41.440 --> 00:39:43.520
und mit Alpine.js kann man zusammen coole

00:39:43.520 --> 00:39:45.380
Dinge machen. Ja. Und sein Treiber

00:39:45.380 --> 00:39:47.460
davon war, dass er halt sagt, dass

00:39:47.460 --> 00:39:49.600
jetzt, wo wir in einer Zeit leben, wo die Zinsen

00:39:49.600 --> 00:39:51.360
seit langer Zeit wieder ein bisschen höher

00:39:51.360 --> 00:39:53.740
sind, Venture Capital deutlich, äh,

00:39:53.740 --> 00:39:55.640
deutlich, deutlich seltener geworden

00:39:55.640 --> 00:39:57.280
ist und deutlich kleinere, in deutlich

00:39:57.280 --> 00:39:59.340
kleinere Mengen vergeben wird. Und dass

00:39:59.340 --> 00:40:01.160
deshalb, ähm, dieses

00:40:01.160 --> 00:40:03.480
ich hab ein Startup und ich möchte irgendwas ausprobieren,

00:40:03.480 --> 00:40:05.400
dass die einfach mit viel weniger Geld die

00:40:05.400 --> 00:40:07.280
Sachen bauen müssen. Und das ist halt nicht so, wir bauen

00:40:07.280 --> 00:40:09.360
jetzt die in der perfekten Welt, sondern es muss schnell gehen,

00:40:09.360 --> 00:40:11.460
es muss, es muss irgendwie solide sein,

00:40:11.460 --> 00:40:13.260
aber es muss halt vor allem effizient sein.

00:40:13.440 --> 00:40:15.280
Und dass er deshalb nochmal den HTMX-Tag verkauft hat,

00:40:15.280 --> 00:40:17.040
was ich persönlich auch absolut unterschreiben würde.

00:40:17.040 --> 00:40:19.000
Und das Interessante ist halt, dass

00:40:19.000 --> 00:40:20.860
ich zum Beispiel hab jetzt noch nie,

00:40:20.860 --> 00:40:23.200
ich mein, ich hab an ein paar Startup-Projekten mitgearbeitet,

00:40:23.200 --> 00:40:25.340
aber jetzt nicht mit riesigem Venture Capital, das ist halt

00:40:25.340 --> 00:40:27.440
eher so in deutschen Scales gewesen.

00:40:27.440 --> 00:40:29.080
Ja, genau, da gibt's das auch nicht so.

00:40:29.080 --> 00:40:31.120
Und es war immer für uns, also im

00:40:31.120 --> 00:40:33.140
Agenturbusiness, wir haben halt ein Budget und das ist

00:40:33.140 --> 00:40:35.220
eigentlich eher tendenziell zu klein

00:40:35.220 --> 00:40:37.580
als zu groß. Ja, wie immer. Und, ähm,

00:40:37.580 --> 00:40:39.320
das ist einfach, das ist interessant,

00:40:39.320 --> 00:40:41.440
weil das, ja,

00:40:41.440 --> 00:40:43.360
ich mein, wird ihm vorher auch schon klar gewesen,

00:40:43.360 --> 00:40:44.860
aber das nochmal so auf den Punkt zu bringen

00:40:44.860 --> 00:40:47.520
und dann zu sagen, ja, genauso sehe ich das auch,

00:40:47.520 --> 00:40:49.380
weil, ja, natürlich kannst du, wenn du mit

00:40:49.380 --> 00:40:50.900
React oder Vue, kannst du

00:40:50.900 --> 00:40:53.280
ausgefallene Referenzen bauen, kannst du mehr Dinge

00:40:53.280 --> 00:40:55.480
tun. Die Frage ist, brauchst

00:40:55.480 --> 00:40:57.260
du das und schaffst du das in dem

00:40:57.260 --> 00:40:59.100
Geld, das du hast? Und

00:40:59.100 --> 00:41:01.360
das, finde ich, ist halt so der spannende USP da dran.

00:41:01.360 --> 00:41:03.380
Ähm, klar, wenn man erst mal

00:41:03.380 --> 00:41:05.200
seine komplette Applikation mit HTMX

00:41:05.200 --> 00:41:07.320
ohne API gebaut hat und man kommt ein und sagt, ich möchte

00:41:07.320 --> 00:41:09.440
das jetzt alles anders haben, ähm, das ist natürlich

00:41:09.440 --> 00:41:11.440
auch nochmal teuer. Also, ich glaub, man muss da auch ein bisschen

00:41:11.440 --> 00:41:13.280
in die, also, nicht nur sagen, wie viel Geld haben wir

00:41:13.280 --> 00:41:14.520
jetzt, sondern wo geht das Ganze hin?

00:41:14.520 --> 00:41:17.440
Ähm, nichtsdestotrotz persönlich finde ich das auch

00:41:17.440 --> 00:41:19.220
sehr spannend. Der Talk war auch sehr cool

00:41:19.220 --> 00:41:20.920
und sehr energetisch, wie

00:41:20.920 --> 00:41:23.000
Carlton Gibson halt immer so ist. Ähm,

00:41:23.000 --> 00:41:25.120
genau, war, war echt, äh, echt

00:41:25.120 --> 00:41:25.560
super spannend.

00:41:25.560 --> 00:41:29.240
Ähm, war, spielt,

00:41:29.240 --> 00:41:31.480
ich glaub, dieses Django-Template-Partials

00:41:31.480 --> 00:41:33.160
kommt halt auch irgendwie jetzt, ich weiß

00:41:33.160 --> 00:41:34.720
rein, ich weiß nicht, ob das schon bei

00:41:34.720 --> 00:41:37.140
5.1 war oder doch eher 5.2, wahrscheinlich eher

00:41:37.140 --> 00:41:39.300
5.2, nehme ich mal an, ne? Ähm,

00:41:39.300 --> 00:41:41.100
äh, oder hat er auch über

00:41:41.100 --> 00:41:43.200
dieses, äh, Neapolit, äh,

00:41:43.200 --> 00:41:45.060
äh, Neapolitan-Ring gesprochen,

00:41:45.060 --> 00:41:46.960
was er da, das ist ja auch so ein

00:41:46.960 --> 00:41:48.900
neue Quatsch-Views oder so. Ja, genau.

00:41:48.900 --> 00:41:50.980
Also, das dreht sich alles um diese

00:41:50.980 --> 00:41:52.400
Idee des, ähm,

00:41:52.400 --> 00:41:55.040
Locality of Behavior. Ja. Ähm, Carlton

00:41:55.040 --> 00:41:56.820
Gibson hat jetzt vor nicht allzu langer Zeit einen,

00:41:56.820 --> 00:41:59.000
einen Newsletter angefangen, Stack Report

00:41:59.000 --> 00:42:00.900
heißt der, wo er einmal im Monat

00:42:00.900 --> 00:42:02.920
sehr ausführlich zu einem Thema schreibt. Ich

00:42:02.920 --> 00:42:04.860
hab den abonniert, das kostet, glaub ich, irgendwie 5

00:42:04.860 --> 00:42:06.920
Euro oder sowas. Ähm, bis jetzt hat

00:42:06.920 --> 00:42:08.920
sich's, also, ich glaub, jetzt gibt's erst seit 2 oder

00:42:08.920 --> 00:42:10.940
3 Monaten, bis jetzt hat sich's gelohnt, also ich mach

00:42:10.940 --> 00:42:13.020
da gerne auch nochmal Werbung für ihn, unbezahlt. Ah, ja,

00:42:13.120 --> 00:42:15.040
ja, ja. Ähm, das find ich echt, echt cool.

00:42:15.040 --> 00:42:17.000
Ähm, äh, also es war echt

00:42:17.000 --> 00:42:19.060
interessant, er hat jetzt über diverse Dinge

00:42:19.060 --> 00:42:20.920
da geschrieben und es hat in dem aktuellen von

00:42:20.920 --> 00:42:22.600
diesem Monat ging's halt um Locality of Behavior

00:42:22.600 --> 00:42:25.060
und, ähm, er versucht halt im Endeffekt

00:42:25.060 --> 00:42:27.000
das Konzept zu verkaufen, also er sagt

00:42:27.000 --> 00:42:28.980
halt, dass wenn halt alles, was du brauchst, in

00:42:28.980 --> 00:42:31.000
einer Datei steht, ist es halt einfacher zu verstehen.

00:42:31.000 --> 00:42:33.260
Und er, er argumentiert

00:42:33.260 --> 00:42:34.920
nicht, dass man alle guten

00:42:34.920 --> 00:42:37.120
Principles, die man gelernt hat, sofort wegwirft,

00:42:37.120 --> 00:42:39.060
sondern dass man halt dieses Premature Optimizing

00:42:39.060 --> 00:42:40.880
aufhört, dass man sagt, okay, ich

00:42:40.880 --> 00:42:43.040
mache, ich fang jetzt schon mit, weiß ich

00:42:43.040 --> 00:42:44.820
nicht, die, die, die an und mach das alles perfekt

00:42:44.820 --> 00:42:46.940
in vielen Dateien, ein Neueinsteiger in dem

00:42:46.940 --> 00:42:49.000
Projekt hat keine, keine Chance zu verstehen, was eigentlich

00:42:49.000 --> 00:42:51.060
passiert, sondern fangt erstmal klein an

00:42:51.060 --> 00:42:52.500
und refactored, wenn die's wirklich braucht.

00:42:52.500 --> 00:42:54.840
Ähm, weil viel von dem, ah ja, ich brauch's

00:42:54.840 --> 00:42:56.740
nochmal, ich mach das mal irgendwie woanders hin,

00:42:56.740 --> 00:42:58.900
kommt dann nachher mit, naja, ist

00:42:58.900 --> 00:43:00.900
doch irgendwie anders geworden, war doch nicht so, wie ich's

00:43:00.900 --> 00:43:02.720
mir gedacht hab und dann hat man halt immer diese doppelte

00:43:02.720 --> 00:43:04.800
Refactoring-Schleife und dieses

00:43:04.800 --> 00:43:07.020
Django Template Views ist halt die Idee,

00:43:07.020 --> 00:43:08.880
äh, nicht, Django Template Partials,

00:43:08.880 --> 00:43:10.540
Partials, sorry, Partials,

00:43:10.540 --> 00:43:12.960
dass man halt wirklich sagen kann, okay, ich

00:43:12.960 --> 00:43:14.740
diesen Block kann ich jetzt mit HTMX neu

00:43:14.740 --> 00:43:16.840
rendern lassen, der ist aber trotzdem noch in der

00:43:16.840 --> 00:43:18.800
großen Datei und ich muss es nicht zerpflücken, wie man's

00:43:18.800 --> 00:43:20.700
halt vorher, also Stand jetzt mit

00:43:20.700 --> 00:43:22.460
Vanilla Django macht, ähm,

00:43:22.460 --> 00:43:24.900
und, ähm, diese Neapolitan

00:43:24.900 --> 00:43:26.860
Crud Views ist auch die Idee, dass du halt wirklich mehr

00:43:26.860 --> 00:43:28.980
Sachen in einer, an einer Stelle zusammen

00:43:28.980 --> 00:43:30.820
hast. Dass man im Grunde eine, eine Klasse hat, wo die

00:43:30.820 --> 00:43:32.800
ganzen, also Get Post und sonst wie Dinge,

00:43:32.800 --> 00:43:34.880
die da passieren, halt alle drin sind, äh,

00:43:34.880 --> 00:43:36.720
genau, ja. Ich persönlich

00:43:36.720 --> 00:43:38.540
finde, dass, äh, Locality of Behavior ist, glaub ich,

00:43:38.540 --> 00:43:40.740
eine, eine gute Sache, ich mein, das geht auch so ein bisschen nach

00:43:40.740 --> 00:43:42.320
Jagni, also You Ain't Gonna Need It,

00:43:42.880 --> 00:43:44.840
ähm, dass man halt nicht, dass man erst mal überlegt,

00:43:44.840 --> 00:43:46.160
so muss ich jetzt wirklich anfangen,

00:43:46.160 --> 00:43:48.800
alles so hoch zu skalieren, wie es unbedingt

00:43:48.800 --> 00:43:50.980
notwendig ist. Nichtsdestotrotz,

00:43:50.980 --> 00:43:52.800
wenn ich halt in einem Projekt, wenn ich weiß, ein Projekt

00:43:52.800 --> 00:43:54.300
wird eine gewisse Größe erreichen,

00:43:54.300 --> 00:43:56.760
die Dinge zu tun, die ich jetzt schon

00:43:56.760 --> 00:43:58.580
weiß, die sinnvoll sind, ähm,

00:43:58.580 --> 00:44:00.700
glaube ich, dass man sich da dann andererseits auch

00:44:00.700 --> 00:44:02.480
wieder ein paar Refactoring-Zyklen spart,

00:44:02.480 --> 00:44:04.760
aber ich glaube, generell ist man schon sehr

00:44:04.760 --> 00:44:06.620
prone, als Entwickler over zu

00:44:06.620 --> 00:44:08.660
ingenieren und ich glaube, das sich im Kopf zu behalten,

00:44:08.660 --> 00:44:09.940
so muss ich das jetzt wirklich tun.

00:44:09.940 --> 00:44:12.800
Ja, also so ein bisschen so ein Trade-off, ne, mit KISS oder so was

00:44:12.800 --> 00:44:14.860
und schon simpel und dass du irgendwie tatsächlich

00:44:14.860 --> 00:44:16.940
versuchst, vielleicht, also was ich zum Beispiel

00:44:16.940 --> 00:44:18.760
finde, ist, dass wenn halt zu viele Sachen in einer

00:44:18.760 --> 00:44:20.600
Datei drinstehen, selbst wenn das irgendwie am Anfang

00:44:20.600 --> 00:44:22.260
überblicklich ist, wird es halt auch dann wieder hässlich.

00:44:22.260 --> 00:44:24.580
Und wenn eine gute Modulstruktur

00:44:24.580 --> 00:44:26.460
darunter liegt einfach, also einfach nur vom

00:44:26.460 --> 00:44:28.760
Namespacing her, hilft das fast

00:44:28.760 --> 00:44:30.280
am meisten, finde ich. Ja.

00:44:30.280 --> 00:44:32.600
Ähm, was dann auch gar nicht so schwer zu verstehen

00:44:32.600 --> 00:44:34.420
macht, wenn das halt alles in einem Directory liegt, zum Beispiel,

00:44:34.420 --> 00:44:36.580
dann ist das schon vielleicht ein bisschen näher dran. Aber wenn das

00:44:36.580 --> 00:44:38.680
Directory dann groß wird, dann ist das wieder ein Problem.

00:44:38.680 --> 00:44:40.300
Ne, das ist so, ja.

00:44:40.300 --> 00:44:42.720
Oh, ich würde ganz kurz

00:44:42.720 --> 00:44:44.560
nur einmal kurz einwerfen

00:44:44.560 --> 00:44:46.520
nochmal zu dieser Task-Geschichte,

00:44:46.520 --> 00:44:48.580
was ich halt oft sehe, was ich finde,

00:44:48.580 --> 00:44:49.660
was man vermeiden sollte,

00:44:49.660 --> 00:44:52.580
wenn Leute sowas machen

00:44:52.580 --> 00:44:54.140
und das halt irgendwie, weil oft

00:44:54.140 --> 00:44:56.720
macht man das dann ja, man braucht's

00:44:56.720 --> 00:44:58.220
schon meistens, aber dann doch nicht

00:44:58.220 --> 00:45:00.420
irgendwie so dauernd, dass man da,

00:45:00.420 --> 00:45:02.380
dass alle Leute da irgendwie

00:45:02.380 --> 00:45:03.420
viel Erfahrung mit hätten.

00:45:03.420 --> 00:45:06.540
Und was ich jetzt schon häufiger gesehen

00:45:06.540 --> 00:45:08.220
habe und was in der Praxis dann so

00:45:08.220 --> 00:45:10.480
zusätzlich zu diesem ganzen

00:45:10.480 --> 00:45:12.540
Infrastruktur-Ding auch nochmal ordentlich Schmerzen macht,

00:45:12.640 --> 00:45:14.180
ist halt, wenn Leute anfangen,

00:45:14.180 --> 00:45:16.460
irgendwie so ganz Kaskaden von Tasks

00:45:16.460 --> 00:45:18.720
irgendwie zu schreiben,

00:45:18.720 --> 00:45:20.400
so gerade bei Celery ist das dann halt auch

00:45:20.400 --> 00:45:22.580
sehr einfach, ne, und dann hat man mal da Abhängigkeiten

00:45:22.580 --> 00:45:24.580
dazwischen und dann, und Leuten

00:45:24.580 --> 00:45:26.040
ist gar nicht so bewusst, dass es bedeutet, ja,

00:45:26.040 --> 00:45:28.380
es geht jedes Mal über eine Prozessgrenze, dann wird da

00:45:28.380 --> 00:45:30.380
irgendwie wieder irgendwas wieder realisiert, dann muss der

00:45:30.380 --> 00:45:32.220
Kanzlerrahmen wieder so raussehen, wie das realisiert wird,

00:45:32.220 --> 00:45:34.520
dann geht's irgendwo zwischendurch schief und dann hast du halt

00:45:34.520 --> 00:45:35.360
irgendwie so ein

00:45:35.360 --> 00:45:38.600
explodiertes Gedärm irgendwie, was da rumliegt

00:45:38.600 --> 00:45:39.840
und was das halt so steht.

00:45:39.840 --> 00:45:42.480
Und, also was ich nur empfehlen kann,

00:45:42.480 --> 00:45:44.460
ist, man macht halt eine Funktion oder so

00:45:44.460 --> 00:45:46.300
eine Methode an irgendeinem Modell oder so,

00:45:46.300 --> 00:45:48.640
wo man halt das, was man tun möchte, halt reinschreibt

00:45:48.640 --> 00:45:50.640
und dann testet man das ganz normal, synchron,

00:45:50.640 --> 00:45:52.660
irgendwie, wie man

00:45:52.660 --> 00:45:54.380
Sachen halt so testet und dann

00:45:54.380 --> 00:45:56.740
sagt man in einem Celery-Task

00:45:56.740 --> 00:45:58.540
eigentlich nur, okay, man ruft halt dieses Ding auf,

00:45:58.540 --> 00:46:00.560
fertig. Wie man auch

00:46:00.560 --> 00:46:02.280
im Vue schreiben würde, möglichst schlank

00:46:02.280 --> 00:46:03.740
und eigentlich nur die Dinge

00:46:03.740 --> 00:46:06.620
komponieren, denn wirklich da implementieren.

00:46:06.620 --> 00:46:08.560
Ja, und keine Logik in die

00:46:08.560 --> 00:46:10.260
Tasks packen, sondern

00:46:10.260 --> 00:46:12.400
von den Tasks, also in den eigentlichen

00:46:12.400 --> 00:46:14.240
Celery-Tasks immer nur irgendwie Logik,

00:46:14.240 --> 00:46:15.360
die irgendwo anders ist, aufrufen.

00:46:15.360 --> 00:46:18.560
Aber wenn du halt Logik hast, oder am besten Logik verteilt über mehrere Tasks,

00:46:18.560 --> 00:46:20.420
dann passieren scharröckelige

00:46:20.420 --> 00:46:22.080
Dinge unter Umständen und

00:46:22.080 --> 00:46:23.700
ja. Absolut.

00:46:23.700 --> 00:46:26.140
Genau, das war nur so ein kurzer Einwurf.

00:46:26.140 --> 00:46:28.640
Ich hab da noch

00:46:28.640 --> 00:46:30.460
so ein tolles Thread zu

00:46:30.460 --> 00:46:31.980
im Chaos Social,

00:46:31.980 --> 00:46:34.120
den du auch, wo du den Link vorhin geteilt hast,

00:46:34.120 --> 00:46:35.780
der sehr interessant war.

00:46:35.780 --> 00:46:38.400
Einige coole Leute, unter anderem

00:46:38.400 --> 00:46:40.320
Carlton Gibson selber und der Hüneck und so.

00:46:40.320 --> 00:46:42.160
Ja, Hüneck, genau, und diverse Leute,

00:46:42.240 --> 00:46:43.860
da gab's ein Thread zu,

00:46:43.860 --> 00:46:46.100
was braucht man jetzt bei Background-Tasks eigentlich alles?

00:46:46.100 --> 00:46:48.340
Ja. Und was sind da die Anforderungen

00:46:48.340 --> 00:46:49.380
genau? Und was ist auch in der Praxis?

00:46:49.380 --> 00:46:52.160
Neugeschrieben oder anders implementiert, genau. Und auch alle haben sich

00:46:52.160 --> 00:46:53.300
über Celery beschwert aus Gründen.

00:46:53.300 --> 00:46:56.160
Ja, ich kann das mal, ich kann, ja genau, das Ding

00:46:56.160 --> 00:46:58.100
verlinke ich auch mal. Ja, Fettyverse

00:46:58.100 --> 00:47:00.060
ist halt zur Zeit, also wenn er noch nicht ist,

00:47:00.060 --> 00:47:01.760
da sind halt alle,

00:47:01.760 --> 00:47:04.120
also. Es steht tatsächlich auf meiner Liste und ich lese

00:47:04.120 --> 00:47:05.460
halt immer so ein bisschen mit, aber naja.

00:47:05.460 --> 00:47:08.160
Ja, also da ist, also das fühlt sich an

00:47:08.160 --> 00:47:10.140
wie so Twitter früher, so

00:47:10.140 --> 00:47:11.440
ein bisschen Blümchenwiese-mäßig.

00:47:12.160 --> 00:47:14.180
Alle Leute sind, oder viele, viele

00:47:14.180 --> 00:47:16.020
der Leute, die man so kennt, sind halt da.

00:47:16.020 --> 00:47:18.220
Und man kann sich mit denen

00:47:18.220 --> 00:47:19.560
einfach so unterhalten und so, ja.

00:47:19.560 --> 00:47:21.400
Ja, cool. Genau.

00:47:21.400 --> 00:47:23.160
Ja.

00:47:23.160 --> 00:47:24.800
Ja, ist ein interessantes Thema.

00:47:24.800 --> 00:47:28.100
Genau. Und ich bin, was ich auch

00:47:28.100 --> 00:47:29.800
interessant fand, die,

00:47:29.800 --> 00:47:31.980
ich hab mit auf der Konferenz noch ein Wort

00:47:31.980 --> 00:47:33.780
mit dem Creator da

00:47:33.780 --> 00:47:36.060
gewechselt und er meinte

00:47:36.060 --> 00:47:37.540
auch, dass früher wurde,

00:47:37.540 --> 00:47:40.080
also wenn ich's richtig verstanden hab, ich will ihm jetzt keine Worte

00:47:40.080 --> 00:47:41.780
in den Mund legen, aber wenn ich's richtig verstanden hab, meint er,

00:47:42.000 --> 00:47:43.580
dass früher bei Django eher so die Idee war,

00:47:43.580 --> 00:47:45.540
alles, was nach Core kommt, muss

00:47:45.540 --> 00:47:47.780
mehr oder weniger so die

00:47:47.780 --> 00:47:49.820
eierlegende Wollmilchsau, 110%-Lösung

00:47:49.820 --> 00:47:51.960
sein, weil das ist ja Django, das muss ja so.

00:47:51.960 --> 00:47:53.900
Und jetzt war halt die Idee wirklich zu

00:47:53.900 --> 00:47:55.900
sagen, naja, aber lass uns doch erst mal mit was anfangen,

00:47:55.900 --> 00:47:58.200
was halt alleine steht, also dieser MVP-Gedanke.

00:47:58.200 --> 00:47:59.680
Und natürlich kann man noch 400

00:47:59.680 --> 00:48:01.740
Sachen nach und dazu bauen, aber

00:48:01.740 --> 00:48:03.360
braucht man die wirklich?

00:48:03.360 --> 00:48:05.880
Will das die Crowd

00:48:05.880 --> 00:48:07.980
so? Und dass die jetzt wirklich anfangen

00:48:07.980 --> 00:48:08.680
und versuchen,

00:48:08.680 --> 00:48:11.920
ja, also wirklich mit einem kleinen,

00:48:11.920 --> 00:48:13.700
mit einem kleinen Inkrement zu shippen,

00:48:13.700 --> 00:48:15.800
dass das halt stehen kann, das laufen

00:48:15.800 --> 00:48:17.740
kann und alles, was halt danach

00:48:17.740 --> 00:48:19.660
kommt, einfach zu gucken, wie reagieren

00:48:19.660 --> 00:48:21.720
die Leute, so was für Sachen werden wirklich angefragt.

00:48:21.720 --> 00:48:23.700
Das finde ich halt sehr interessant, weil ich glaube, das ist

00:48:23.700 --> 00:48:25.600
einfach so ein generelles Ding, wenn man irgendwie

00:48:25.600 --> 00:48:27.780
in der Softwareentwicklung ist, dieser MVP-Gedanke ist so,

00:48:27.780 --> 00:48:29.180
so, so zentral

00:48:29.180 --> 00:48:31.720
und da kann man so viel falsch machen und so viel Geld

00:48:31.720 --> 00:48:34.040
und Projekte und Chaos verlieren,

00:48:34.040 --> 00:48:35.580
wenn man halt nicht

00:48:35.580 --> 00:48:36.460
dem MVP denkt.

00:48:36.460 --> 00:48:39.720
Weil schöner geht halt immer

00:48:39.720 --> 00:48:41.400
und ja,

00:48:41.840 --> 00:48:42.560
genau.

00:48:42.560 --> 00:48:45.200
Ja, und genau, bei

00:48:45.200 --> 00:48:47.420
Ruby on Rails ist halt auch

00:48:47.420 --> 00:48:49.100
diese Background-House-Geschichte schon

00:48:49.100 --> 00:48:51.360
seit Ewigkeiten drin und

00:48:51.360 --> 00:48:53.300
das war halt mal eine der Geschichten, die in Django halt,

00:48:53.300 --> 00:48:55.360
ja, wo man da halt irgendwie dann immer sagen

00:48:55.360 --> 00:48:57.040
musste, ja, nimm halt Terri,

00:48:57.040 --> 00:48:58.720
ja, es tut weh, nimm's halt trotzdem,

00:48:58.720 --> 00:49:00.460
das ist das, was es gibt.

00:49:00.460 --> 00:49:03.520
Ja, und

00:49:03.520 --> 00:49:05.260
das, wenn sich das jetzt ändert,

00:49:05.260 --> 00:49:07.260
dann ist auf jeden Fall ein Pain-Point irgendwie

00:49:07.260 --> 00:49:07.680
auch weniger.

00:49:07.680 --> 00:49:09.780
Ja, also die haben gesagt,

00:49:09.780 --> 00:49:11.800
dass wenn es gut läuft, landet das mit 5.2,

00:49:11.800 --> 00:49:13.620
du weißt, wann 5.2 rauskommt,

00:49:13.620 --> 00:49:14.200
hattest du gesagt?

00:49:14.200 --> 00:49:15.700
April, ja.

00:49:15.700 --> 00:49:19.620
Genau. Dann wird dann neben meinem

00:49:19.620 --> 00:49:21.600
kleinen Testhelper das zweite

00:49:21.600 --> 00:49:23.160
große Ding werden dann die Background-House.

00:49:23.160 --> 00:49:25.380
Oh. Sehr gut, sehr gut.

00:49:25.380 --> 00:49:27.380
Ähm,

00:49:27.380 --> 00:49:28.620
genau.

00:49:28.620 --> 00:49:31.840
Ja, also, HTMX war diesmal

00:49:31.840 --> 00:49:33.500
auf der DjangoCon also auch quasi wieder so ein,

00:49:33.500 --> 00:49:35.700
es ist ja die letzten Male eigentlich immer ein großes Thema gewesen.

00:49:35.700 --> 00:49:36.340
Genau.

00:49:36.340 --> 00:49:39.000
Ja, ich mein, HTMX ist halt,

00:49:39.000 --> 00:49:41.780
ist halt im Endeffekt die Silver Bullet mit,

00:49:41.800 --> 00:49:43.740
der sehr, sehr viele Leute dann hat im Existenzbereich.

00:49:43.770 --> 00:49:44.490
vermeiden können.

00:49:44.490 --> 00:49:46.850
HTMLX-JavaScript vermeiden können, sorry.

00:49:46.850 --> 00:49:49.490
Was natürlich so ein bisschen

00:49:49.490 --> 00:49:51.030
ein Gänsefüßchen ist, aber natürlich immer noch ein bisschen

00:49:51.030 --> 00:49:53.210
JavaScript braucht und das auch selber mit JavaScript geschrieben ist.

00:49:53.210 --> 00:49:54.650
Nichtsdestotrotz

00:49:54.650 --> 00:49:57.350
vermeidet das halt, dass man in Projekten

00:49:57.350 --> 00:49:59.230
JavaScript verwenden muss,

00:49:59.230 --> 00:50:01.310
was natürlich für viele tendenziell eher

00:50:01.310 --> 00:50:03.370
Backendler, wie ja Django aktuell

00:50:03.370 --> 00:50:05.350
verwendet wird, weil es ja auch ein sehr data-driven Framework ist.

00:50:05.350 --> 00:50:07.390
Das ist

00:50:07.390 --> 00:50:09.310
natürlich sehr angenehm, da zähle ich mich auch dazu.

00:50:09.310 --> 00:50:10.650
Ich habe es auch irgendwie nie geschafft,

00:50:10.650 --> 00:50:12.930
mich ernsthaft mit einem

00:50:12.930 --> 00:50:15.030
JavaScript-Framework zu beschäftigen und

00:50:15.030 --> 00:50:16.270
ich

00:50:16.270 --> 00:50:19.350
bin auch in meinem Beruf immer wieder damit konfrontiert,

00:50:19.350 --> 00:50:21.270
bei den Entscheidungen, wenn man

00:50:21.270 --> 00:50:23.030
ein neues Projekt startet, was nehmen wir jetzt?

00:50:23.030 --> 00:50:25.210
Wir haben uns jetzt tatsächlich bei dem letzten Projekt, das gestartet ist,

00:50:25.210 --> 00:50:26.750
auch aktiv für HTMLX entschieden.

00:50:26.750 --> 00:50:29.310
Auch mit einem Team, die tendenziell

00:50:29.310 --> 00:50:31.630
eher JavaScript-Front-Endy

00:50:31.630 --> 00:50:32.050
sind.

00:50:32.050 --> 00:50:34.050
Oh, ja, das ist natürlich interessant.

00:50:34.050 --> 00:50:36.110
Und weil wir einfach auch

00:50:36.110 --> 00:50:37.810
gesagt haben, wir glauben, es ist immer halt, dass

00:50:37.810 --> 00:50:39.870
das Projekt ist halt so eine ganz klassische

00:50:39.870 --> 00:50:41.690
Backend-Applikation, man hat viele Listen, man hat viele

00:50:41.690 --> 00:50:43.630
Crud-Views, es gibt zwei, drei, vier

00:50:43.630 --> 00:50:45.810
Sachen, die so ein bisschen ausgefallen

00:50:45.810 --> 00:50:47.070
sind, aber auch nicht so wirklich. Also

00:50:47.070 --> 00:50:49.470
da hat man mal so ein Drag-and-Drop-Element oder sowas

00:50:49.470 --> 00:50:51.510
und wir sind einfach der Meinung,

00:50:51.510 --> 00:50:53.730
dass man das dafür

00:50:53.730 --> 00:50:55.590
halt HTMLX wirklich gut funktioniert,

00:50:55.590 --> 00:50:57.430
weil das ist das, was Django wirklich gut kann.

00:50:57.430 --> 00:50:59.130
Und

00:50:59.130 --> 00:51:01.570
das Projekt ist es auch nicht

00:51:01.570 --> 00:51:03.210
etwas, wo man sagt, das ist jetzt irgendwie,

00:51:03.210 --> 00:51:05.570
wenn die Firma durch die

00:51:05.570 --> 00:51:07.530
Decke geht, dann so und so, sondern das

00:51:07.530 --> 00:51:09.110
wird immer eine Backend-Applikation bleiben.

00:51:09.110 --> 00:51:11.350
Logischerweise wird die wachsen, wenn die Firma wächst,

00:51:11.350 --> 00:51:11.650
etc.

00:51:11.690 --> 00:51:13.770
Aber das wirkt

00:51:13.770 --> 00:51:15.870
einfach nach dem perfekten

00:51:15.870 --> 00:51:17.570
Hammer für diesen Nagel, was

00:51:17.570 --> 00:51:19.490
nicht heißt, dass wenn man jetzt sagt, ich möchte

00:51:19.490 --> 00:51:21.610
keine Ahnung, das nächste Instagram oder

00:51:21.610 --> 00:51:23.590
sowas bauen, dass das vielleicht, wenn man schon

00:51:23.590 --> 00:51:25.490
die Kohle dafür hat am Anfang, dass das

00:51:25.490 --> 00:51:27.470
vielleicht nicht unbedingt die beste Wahl ist.

00:51:27.470 --> 00:51:29.350
Geht wahrscheinlich auch alles trotzdem,

00:51:29.350 --> 00:51:31.670
aber ich glaube, umso mehr

00:51:31.670 --> 00:51:33.570
sage ich mal, wirkliche Endnutzer,

00:51:33.570 --> 00:51:35.770
also jetzt nicht Mitarbeiter der Firma oder Administratoren,

00:51:35.770 --> 00:51:37.570
sondern wirkliche Endnutzer, man auf der Plattform hat

00:51:37.570 --> 00:51:39.310
wahrscheinlich schwingt da dann immer so die

00:51:39.310 --> 00:51:40.870
die Notwendigkeit für ein

00:51:40.870 --> 00:51:43.350
richtiges, volles Frontend-Framework, wo man

00:51:43.350 --> 00:51:45.210
das ja auch in Gänzefüßen sehen muss, React und Vue sind ja auch

00:51:45.210 --> 00:51:46.270
keine Frontend-Libraries,

00:51:46.270 --> 00:51:49.250
schwingt dann doch eher so das Pendel in

00:51:49.250 --> 00:51:49.830
diese Richtung.

00:51:49.830 --> 00:51:52.930
Und ich glaube, diese Frage kann man halt wie

00:51:52.930 --> 00:51:55.210
jede einzelne Tech-Frage damit beantworten.

00:51:55.210 --> 00:51:56.050
Es kommt drauf an.

00:51:56.050 --> 00:51:59.270
Nichtsdestotrotz wird das natürlich hart gefeiert

00:51:59.270 --> 00:52:01.290
in der Community, weil, wie das auch bei mir so ist,

00:52:01.290 --> 00:52:02.950
das ist es halt, ich meine, wie gesagt, ich bin seit

00:52:02.950 --> 00:52:05.230
zwölf Jahren dabei, das erste Mal,

00:52:05.230 --> 00:52:07.090
dass man, dass ich jetzt wirklich

00:52:07.090 --> 00:52:09.110
ein Werkzeug bekomme,

00:52:09.110 --> 00:52:10.850
das vernünftig funktioniert.

00:52:10.870 --> 00:52:12.930
Und das, was man früher so immer gemacht hat,

00:52:12.930 --> 00:52:14.790
wie JQuery und sowas, definiere ich

00:52:14.790 --> 00:52:17.070
nicht als vernünftig funktionieren.

00:52:17.070 --> 00:52:18.670
Ja, das hat nicht, also es ging,

00:52:18.670 --> 00:52:20.890
also man kommt damit erstaunlich, aber das hat nie wirklich

00:52:20.890 --> 00:52:22.650
gut funktioniert, das ist richtig, ja.

00:52:22.650 --> 00:52:24.910
Wobei ich

00:52:24.910 --> 00:52:26.810
eine Sache hinzufügen würde, etwas, was

00:52:26.810 --> 00:52:28.750
ich in letzter Zeit auch häufiger mache und wo ich auch

00:52:28.750 --> 00:52:30.810
denke, oh, das ist auch alles gar nicht schlecht und es geht in die

00:52:30.810 --> 00:52:32.970
richtige Richtung, sind halt so Web-Components,

00:52:32.970 --> 00:52:34.750
das ist eigentlich auch ganz nett, es ist,

00:52:34.750 --> 00:52:36.790
da muss man dann halt JavaScript schreiben, das ist halt

00:52:36.790 --> 00:52:38.510
so ein bisschen doof, aber

00:52:38.510 --> 00:52:40.630
man kann halt irgendwie, das hält

00:52:40.630 --> 00:52:40.850
sich dann auch nicht so gut.

00:52:40.870 --> 00:52:42.530
Man kann halt in Grenzen, also, und

00:52:42.530 --> 00:52:44.790
man weiß halt, also, das ist, habe ich

00:52:44.790 --> 00:52:46.710
letztens wieder erlebt und es tut jedes Mal weh,

00:52:46.710 --> 00:52:48.710
irgendwie, größere

00:52:48.710 --> 00:52:50.570
Projekte, die man lange nicht angefasst hat, irgendwie,

00:52:50.570 --> 00:52:52.730
das ist immer schmerzhaft, also

00:52:52.730 --> 00:52:53.790
wenn man jetzt irgendwie,

00:52:53.790 --> 00:52:56.750
ja, da so, zum Beispiel, das war

00:52:56.750 --> 00:52:58.730
jetzt mein View-Projekt, es ist halt,

00:52:58.730 --> 00:53:00.770
irgendwas geht nicht mehr

00:53:00.770 --> 00:53:02.630
und es dauert immer, bis man rausgefunden hat,

00:53:02.630 --> 00:53:04.530
was denn da jetzt eigentlich das Problem ist und bis das

00:53:04.530 --> 00:53:05.830
alles wieder rund läuft und dann

00:53:05.830 --> 00:53:08.690
vergehen vielleicht auch nochmal ein paar Tage oder

00:53:08.690 --> 00:53:10.610
Wochen, bis man wirklich alles gefunden hat, was vielleicht nicht

00:53:10.630 --> 00:53:12.450
mehr ging, weil manchmal war es, es ist nicht so offensichtlich

00:53:12.450 --> 00:53:14.750
und das ist einfach total nervtötend,

00:53:14.750 --> 00:53:16.350
also, und

00:53:16.350 --> 00:53:18.630
genau, das Problem hat man mit Web-Components

00:53:18.630 --> 00:53:20.690
halt auch nicht, weil das ist halt Standard und

00:53:20.690 --> 00:53:22.230
das, wenn das jetzt funktioniert,

00:53:22.230 --> 00:53:24.570
funktioniert das in 10 Jahren

00:53:24.570 --> 00:53:26.090
halt auch noch ganz genauso und

00:53:26.090 --> 00:53:26.950
ja.

00:53:26.950 --> 00:53:30.770
Tatsächlich haben wir zu dem Projekt mal Django-Components

00:53:30.770 --> 00:53:32.490
ausprobiert, das ist ja auch eine von diesen vielen

00:53:32.490 --> 00:53:34.730
Ansätzen, da gibt es auch Django-Slippers und wie die alle heißen,

00:53:34.730 --> 00:53:36.190
um, um,

00:53:36.190 --> 00:53:37.850
das letzte, Django-Slippers,

00:53:37.850 --> 00:53:39.690
um,

00:53:39.690 --> 00:53:39.810
um,

00:53:40.630 --> 00:53:42.430
im Endeffekt dieses Komponentendenken

00:53:42.430 --> 00:53:44.450
in die Django-Welt zu bringen,

00:53:44.450 --> 00:53:46.510
weil de facto die Django-Template-Welt

00:53:46.510 --> 00:53:48.370
ist ja immer noch, wie sie vor 15 Jahren mal

00:53:48.370 --> 00:53:50.490
irgendwann angefangen hat und da zu

00:53:50.490 --> 00:53:52.350
überlegen, dass man Komponenten bauen möchte,

00:53:52.350 --> 00:53:54.430
vor allem in so einer Kombination mit Tailwind, die ja

00:53:54.430 --> 00:53:56.470
dann eher diese Utility-Based-Klasse,

00:53:56.470 --> 00:53:58.490
also ein normales Tailwind-Diff

00:53:58.490 --> 00:54:00.630
hat noch 10, 15 Klassen,

00:54:00.630 --> 00:54:02.530
das eskaliert

00:54:02.530 --> 00:54:04.450
ziemlich hart. Ich finde es gut,

00:54:04.450 --> 00:54:06.490
aber wie gesagt, das ist nicht

00:54:06.490 --> 00:54:08.410
schön anzugucken und von daher die Sachen eher

00:54:08.410 --> 00:54:10.470
zu kapseln und zu sagen, ich habe jetzt nicht, wie bei

00:54:10.470 --> 00:54:11.530
Bootstrap zum Beispiel früher,

00:54:11.530 --> 00:54:14.490
ich habe hier eine Button-Klasse und dann sieht die da Button halt so aus,

00:54:14.490 --> 00:54:15.830
wenn ich was überschreiben muss, bin ich halt

00:54:15.830 --> 00:54:18.010
arm dran, dann wird es schwierig,

00:54:18.010 --> 00:54:20.830
sondern dass man halt wirklich die Sachen individuell

00:54:20.830 --> 00:54:22.370
mit diesen Klassen halt definieren kann,

00:54:22.370 --> 00:54:24.370
ohne halt die ganze CSS-Magie dahinter 100%

00:54:24.370 --> 00:54:26.090
verstehen zu müssen und

00:54:26.090 --> 00:54:28.590
da diese Komponenten in der Django-Welt

00:54:28.590 --> 00:54:30.430
zu machen, klingt super interessant.

00:54:30.430 --> 00:54:32.470
Das konnte man vorher auch schon mit Includes machen.

00:54:32.470 --> 00:54:34.530
Ja genau, mit Includes, ja. Es gibt auch eine neue Version

00:54:34.530 --> 00:54:35.870
von Includes irgendwie, die das so ein bisschen

00:54:35.870 --> 00:54:38.390
zwischenspeichern können irgendwie auch.

00:54:38.390 --> 00:54:40.290
Ja, auf jeden Fall, da gibt es Packages,

00:54:40.310 --> 00:54:42.130
die explizit dafür da sind, um diese

00:54:42.130 --> 00:54:44.490
Frontend-Learnings auch in die Django-Welt

00:54:44.490 --> 00:54:46.350
zu bringen. Wir haben uns jetzt für Django-Components entschieden.

00:54:46.350 --> 00:54:48.330
Das scheint auch okay gut zu

00:54:48.330 --> 00:54:50.290
funktionieren. Habe auch von einem Freund

00:54:50.290 --> 00:54:52.170
gehört, der das ausprobiert hat, der da meinte, dass er

00:54:52.170 --> 00:54:54.310
damit gut, der eigentlich auch sehr viel

00:54:54.310 --> 00:54:55.950
und gerne im Frontend gemacht hat, jetzt aber aus

00:54:55.950 --> 00:54:58.330
besagten Effizienzgründen halt gewechselt

00:54:58.330 --> 00:54:59.710
ist und

00:54:59.710 --> 00:55:01.690
genau, das

00:55:01.690 --> 00:55:04.130
ist auf jeden Fall eine interessante Sache. Also wer

00:55:04.130 --> 00:55:06.170
sich damit beschäftigt und halt ein

00:55:06.170 --> 00:55:08.290
Frontend bauen möchte, für das man sich in 2024

00:55:08.290 --> 00:55:10.250
nicht schämen muss, dann glaube ich,

00:55:10.270 --> 00:55:12.150
ist diese HTMX, AlpineJS und dann

00:55:12.150 --> 00:55:14.050
irgendwas an diesen Komponenten-Libraries, die sich gerade,

00:55:14.050 --> 00:55:16.190
die emergieren gerade alle. Also ich glaube, da gibt es noch nicht so

00:55:16.190 --> 00:55:17.290
diesen de facto Standard.

00:55:17.290 --> 00:55:19.630
Aber wenn man sich da so ein bisschen

00:55:19.630 --> 00:55:21.510
reinliest, da findet man relativ,

00:55:21.510 --> 00:55:24.250
also nicht viel, viel, aber da gibt es

00:55:24.250 --> 00:55:26.390
auf jeden Fall schon Inhalte und

00:55:26.390 --> 00:55:28.190
da kann man sich am Ende vielleicht auch irgendwas ausruhen.

00:55:28.190 --> 00:55:29.810
Das ist alles nicht so kompliziert,

00:55:29.810 --> 00:55:31.950
was einem gefällt.

00:55:31.950 --> 00:55:34.170
Habt ihr mal schon mal herumgespielt mit

00:55:34.170 --> 00:55:36.510
dem HTMX-Ding

00:55:36.510 --> 00:55:37.170
für Mobile?

00:55:37.170 --> 00:55:40.230
Also in einem Hypermedia

00:55:40.230 --> 00:55:41.830
Systems Buch das letzte

00:55:41.830 --> 00:55:43.970
Kapitel, wo es dann

00:55:43.970 --> 00:55:46.030
darum geht, dass man das Ganze auch in Mobile einsetzen

00:55:46.030 --> 00:55:47.710
kann oder soll oder so.

00:55:47.710 --> 00:55:48.850
Als

00:55:48.850 --> 00:55:50.270
so

00:55:50.270 --> 00:55:55.750
Ja, so eine Art von XML-Endpunkt,

00:55:55.750 --> 00:55:57.870
die dann irgendwie gerendert werden

00:55:57.870 --> 00:55:59.850
kann von, ich glaube React war es

00:55:59.850 --> 00:56:01.970
tatsächlich, React Native. Ach so, ja.

00:56:01.970 --> 00:56:04.150
Und dann Apps hat auf dem

00:56:04.150 --> 00:56:06.050
Telefon, die dann diese einzelnen Komponenten

00:56:06.050 --> 00:56:07.990
halt mitziehen können, einfach

00:56:07.990 --> 00:56:09.070
von deinem normalen Endpunkt.

00:56:10.190 --> 00:56:12.130
Ja, klingt wild. Ich hab's noch nicht,

00:56:12.130 --> 00:56:14.290
nee, hab ich nicht angeguckt.

00:56:14.290 --> 00:56:16.150
Also ich hab auch für

00:56:16.150 --> 00:56:18.150
für so

00:56:18.150 --> 00:56:20.270
Mobile, finde ich, eigentlich sind die Webviews

00:56:20.270 --> 00:56:21.590
oder wie heißen die noch?

00:56:21.590 --> 00:56:23.430
Progressive Web Apps, genau.

00:56:23.430 --> 00:56:26.250
Ist eigentlich eine sehr, sehr schicke

00:56:26.250 --> 00:56:28.150
Geschichte. Geht auf iOS auch deutlich

00:56:28.150 --> 00:56:30.030
mehr inzwischen als früher. Wurden die nicht

00:56:30.030 --> 00:56:31.650
irgendwie gebannt? Nee.

00:56:31.650 --> 00:56:34.030
Ah ja, Apple hat da gedroht,

00:56:34.030 --> 00:56:35.230
aber das ist dann nicht passiert.

00:56:35.230 --> 00:56:38.150
Glücklicherweise. Ja, hat doch

00:56:38.150 --> 00:56:39.530
ein bisschen zu viel Gegenwind gegeben.

00:56:40.190 --> 00:56:42.030
Ja, und

00:56:42.030 --> 00:56:44.050
ich denke, dass man vieles, was

00:56:44.050 --> 00:56:45.870
halt man irgendwie

00:56:45.870 --> 00:56:47.930
vielleicht mit nativen Apps früher gemacht hat,

00:56:47.930 --> 00:56:49.990
auch mit, ja genau,

00:56:49.990 --> 00:56:51.810
Progressive Web Apps hinbekommt

00:56:51.810 --> 00:56:52.730
und

00:56:52.730 --> 00:56:55.790
ansonsten sind halt die Mobile

00:56:55.790 --> 00:56:57.870
Geschichten halt immer so eine komplizierte Geschichte, wenn man da

00:56:57.870 --> 00:57:00.090
wirklich eigene, ist halt, ich meine

00:57:00.090 --> 00:57:01.290
für manche Sachen, wenn man eh

00:57:01.290 --> 00:57:03.490
dafür ein Team hat und genug Geld,

00:57:03.490 --> 00:57:05.870
dann kann man schon machen. Also ich würde das tatsächlich irgendwie mal

00:57:05.870 --> 00:57:07.850
ausprobieren. Ich finde diesen Ansatz ganz cool.

00:57:07.850 --> 00:57:09.170
Ja, ausprobieren.

00:57:10.190 --> 00:57:12.770
Ja, für Mobile

00:57:12.770 --> 00:57:14.490
auszuprobieren, das klingt irgendwie super.

00:57:14.490 --> 00:57:16.810
Das ist der selbe Standard da und das selbe

00:57:16.810 --> 00:57:18.850
Prinzip. Ist jetzt eigentlich, glaube ich,

00:57:18.850 --> 00:57:20.470
eine ganz gute Überleitung zu dem nächsten

00:57:20.470 --> 00:57:22.870
Minithema, nämlich Lightning Talks.

00:57:22.870 --> 00:57:23.950
Wer es nicht kennt,

00:57:23.950 --> 00:57:26.750
die Lightning Talks, das ist bei

00:57:26.750 --> 00:57:29.050
den Django-Cons zumindest, ich war noch auf keiner anderen Konferenz,

00:57:29.050 --> 00:57:30.930
aber ich glaube, es gibt es auch an anderen Konferenzen,

00:57:30.930 --> 00:57:32.290
die ist jetzt am Ende des Tages

00:57:32.290 --> 00:57:34.630
fünf bis zehn Leute einen

00:57:34.630 --> 00:57:36.890
hart getimten fünf Minuten

00:57:36.890 --> 00:57:38.630
Maximal-Vortrag halten können bei

00:57:38.630 --> 00:57:40.650
irgendeinem Thema. Das heißt, die Vorbereitung ist

00:57:40.650 --> 00:57:43.090
sehr gering bis nicht vorhanden

00:57:43.090 --> 00:57:44.590
bei den Leuten. Aber das ist ja cool.

00:57:44.590 --> 00:57:46.750
Der coolste Vortrag, den ich gehört habe, war

00:57:46.750 --> 00:57:49.030
Fuck it. Zwei Minuten.

00:57:49.030 --> 00:57:50.830
Und die Idee

00:57:50.830 --> 00:57:52.890
dahinter ist einfach, genau das, was du

00:57:52.890 --> 00:57:55.090
gerade gesagt hast. Ey, ich habe dann im Buch dieses Kapitel gelesen,

00:57:55.090 --> 00:57:56.790
finde ich da halt spannend, habe ich noch nicht ausprobiert,

00:57:56.790 --> 00:57:58.810
wollte ich euch mal mitgeben. Oder was ich

00:57:58.810 --> 00:58:00.770
vorhin gemacht habe. Ey, es gibt Django Components, wer sich

00:58:00.770 --> 00:58:02.630
dafür interessiert, schau ich das mal an.

00:58:02.630 --> 00:58:04.670
Und da ist normalerweise die

00:58:04.670 --> 00:58:06.870
Informationsdichte sehr hoch

00:58:06.870 --> 00:58:08.530
und auch die Unterhaltungsdichte sehr hoch,

00:58:08.630 --> 00:58:10.450
weil natürlich Leute auch dann einfach mal einen Spaßvortrag machen

00:58:10.450 --> 00:58:12.810
oder irgendwas Absurdes aus ihrem

00:58:12.810 --> 00:58:13.610
Alltag erzählen.

00:58:13.610 --> 00:58:15.850
Kannst du dann Ukulele mitbringen?

00:58:15.850 --> 00:58:18.630
Genau. Und ich finde,

00:58:18.630 --> 00:58:20.350
wir haben jetzt das auch bei uns

00:58:20.350 --> 00:58:22.110
intern in unserer, also bei

00:58:22.110 --> 00:58:23.590
meiner Firma,

00:58:23.590 --> 00:58:26.950
bei den internen Barcamps

00:58:26.950 --> 00:58:28.510
so gemacht, dass wir auch einen expliziten

00:58:28.510 --> 00:58:30.710
Lighting Talk Blog haben, weil viel

00:58:30.710 --> 00:58:32.890
von so Content-Teilen

00:58:32.890 --> 00:58:34.750
und Wissensmanagement scheitert daran, dass die Leute

00:58:34.750 --> 00:58:36.670
sich wirklich aufraffen müssen, Sachen

00:58:36.670 --> 00:58:38.590
vorzubereiten, Sachen zu recherchieren. Es gibt gewisse

00:58:38.590 --> 00:58:40.790
Ansprüche, die Leute an sich haben. Es gibt vielleicht

00:58:40.790 --> 00:58:42.870
Erwartungshaltungen, die existieren

00:58:42.870 --> 00:58:44.690
mögen oder nicht existieren mögen. Aber so ein

00:58:44.690 --> 00:58:46.650
Lighting Talk gibt es das halt nicht. Du stellst dich

00:58:46.650 --> 00:58:48.570
da hin oder in dem Fall jetzt in der

00:58:48.570 --> 00:58:50.590
Post-Corona-Neuen-Moderne.

00:58:50.590 --> 00:58:52.050
Du sitzt dann hinter, vor deiner Webcam

00:58:52.050 --> 00:58:54.690
und teilst dann halt kurz deinen Browser oder deine

00:58:54.690 --> 00:58:56.710
zwei Slides und sagst, Leute, das habe ich

00:58:56.710 --> 00:58:58.270
gesehen, das habe ich gelernt voll gut

00:58:58.270 --> 00:59:00.150
oder auch voll kacke.

00:59:00.150 --> 00:59:02.650
Und das ist ein echt

00:59:02.650 --> 00:59:04.710
cooles Format, den man auch, wie gesagt, gut glaube ich

00:59:04.710 --> 00:59:06.370
in Firmen oder auf Meetups

00:59:06.370 --> 00:59:08.510
auch sehr gut, wir haben

00:59:08.510 --> 00:59:10.570
mal vor ein paar Monaten, ich glaube

00:59:10.570 --> 00:59:12.150
im Februar diesen Jahres, haben wir eine komplette

00:59:12.150 --> 00:59:13.310
Lighting Talk Session gemacht

00:59:13.310 --> 00:59:16.550
beim Django Meetup Köln hier

00:59:16.550 --> 00:59:18.490
und das ist echt ein

00:59:18.490 --> 00:59:20.390
cooles Format, was

00:59:20.390 --> 00:59:22.550
viele von den Problemen löst, die man

00:59:22.550 --> 00:59:23.710
sonst so hat, wenn man

00:59:23.710 --> 00:59:26.050
Content teilen möchte.

00:59:26.050 --> 00:59:28.310
Ja, ich finde auch, gerade in jedem Format, also das

00:59:28.310 --> 00:59:30.350
irgendwie für Konferenzen oder Barcamp oder was man

00:59:30.350 --> 00:59:31.970
auch immer hat, wo man zusammen arbeitet, ist dieses

00:59:31.970 --> 00:59:34.330
Lighting Camp, äh, Lighting Camp zeige ich schon,

00:59:34.330 --> 00:59:36.290
das Lighting Talk Format echt

00:59:36.290 --> 00:59:38.070
cool geeignet, um so ein bisschen

00:59:38.430 --> 00:59:40.290
lockere Atmosphäre reinzubringen, entweder

00:59:40.290 --> 00:59:42.210
am Ende eines Tages oder am Anfang von diesem

00:59:42.210 --> 00:59:44.470
wir teilen uns irgendwelche Sessions auf Dingen, so kurze

00:59:44.470 --> 00:59:46.310
Slots, selbst wenn es nur eine Viertelstunde ist,

00:59:46.310 --> 00:59:48.330
zwei Minuten oder eine halbe oder sowas, um

00:59:48.330 --> 00:59:50.530
so ein bisschen mit den Leuten so reinzukommen,

00:59:50.530 --> 00:59:52.390
das ist echt schön, ich glaube auch außerhalb vom Coding

00:59:52.390 --> 00:59:54.350
ehrlicherweise. Man muss halt, glaube ich, immer noch

00:59:54.350 --> 00:59:56.430
so auffassen, dass man halt wirklich hart guckt,

00:59:56.430 --> 00:59:58.030
dass die nicht überschritten werden, weil

00:59:58.030 --> 01:00:00.310
einige Leute dann ihr Co-Referat halten, dass dann doch ein bisschen länger

01:00:00.310 --> 01:00:02.430
wird. Ja, das

01:00:02.430 --> 01:00:04.330
nervt die meisten immer, glaube ich,

01:00:04.330 --> 01:00:06.330
aber ja. Und eine andere super

01:00:06.330 --> 01:00:08.190
Sache ist halt auch einfach mal ein Gefühl zu bekommen,

01:00:08.350 --> 01:00:10.330
ob man selber mal einen Vortrag halten möchte. Eingangs habe ich ja

01:00:10.330 --> 01:00:11.910
gesagt, das war echt eine richtig coole Erfahrung

01:00:11.910 --> 01:00:14.370
und ich habe auf der letzten

01:00:14.370 --> 01:00:15.510
Konferenz in Edinburgh

01:00:15.510 --> 01:00:18.390
habe ich auch einfach mal einen Lightning Talk gehalten,

01:00:18.390 --> 01:00:20.430
um mal zu sehen, um mal

01:00:20.430 --> 01:00:22.410
so den Fuß ins Wasser zu halten, wie ist das

01:00:22.410 --> 01:00:23.290
überhaupt so? Über was?

01:00:23.290 --> 01:00:25.950
Um den Fuß ins Wasser zu halten.

01:00:25.950 --> 01:00:28.230
Über was? Ach so. Über Füße ins Wasser halten, also kein

01:00:28.230 --> 01:00:29.990
Lightning Talk. Nein. Nur

01:00:29.990 --> 01:00:32.130
über Füße ins Wasser.

01:00:32.130 --> 01:00:34.070
Angeln mit den Zehen.

01:00:34.070 --> 01:00:34.610
Das war die Frage.

01:00:34.610 --> 01:00:37.890
Ich habe tatsächlich,

01:00:38.270 --> 01:00:40.290
keine Ahnung, ich habe dieses Jahr einen über

01:00:40.290 --> 01:00:42.550
meinen Django Migration Zero Package

01:00:42.550 --> 01:00:43.390
gehalten.

01:00:43.390 --> 01:00:46.130
Ich beantworte meine Frage aber mit diesem Jahr,

01:00:46.130 --> 01:00:47.410
weil ich es beim letzten Mal vergessen habe.

01:00:47.410 --> 01:00:49.950
Ist ganz cool, es ist ein Pattern, das hat sich

01:00:49.950 --> 01:00:52.050
2018 jemand ausgedacht. Wer schon mal mit

01:00:52.050 --> 01:00:54.070
Django Migrations gearbeitet hat und

01:00:54.070 --> 01:00:55.990
länger auf einem Projekt war, weiß, da sammeln sich ziemlich

01:00:55.990 --> 01:00:57.610
viele Migrations nach kürzester Zeit an.

01:00:57.610 --> 01:01:00.190
Diese Migrations, wenn man die volle

01:01:00.190 --> 01:01:02.090
Kontrolle über seine Datenbank hat,

01:01:02.090 --> 01:01:04.190
also zum Beispiel beim Package hat man das nicht, weil das installiert

01:01:04.190 --> 01:01:06.090
sich irgendjemand und dann macht irgendwer was damit.

01:01:06.090 --> 01:01:08.090
Das ist außerhalb der Macht,

01:01:08.190 --> 01:01:09.970
des Creators. Aber in so einer klassischen

01:01:09.970 --> 01:01:11.950
Applikation, die man baut, hat man eigentlich die volle

01:01:11.950 --> 01:01:14.190
Kontrolle über die Datenbanken. Dann ist irgendwann

01:01:14.190 --> 01:01:15.510
es auf dem letzten

01:01:15.510 --> 01:01:17.870
Produktivis-System angekommen und die Migrationen haben de facto

01:01:17.870 --> 01:01:19.850
eigentlich keinen Wert mehr, außer vielleicht einen historischen,

01:01:19.850 --> 01:01:22.030
der aber auch sehr relativ zu sehen ist,

01:01:22.030 --> 01:01:24.070
weil abgesehen von natürlich Custom-Datenmigration

01:01:24.070 --> 01:01:25.870
die ganzen Sachen auch im Git irgendwie, die ganzen

01:01:25.870 --> 01:01:27.270
Modeländerungen hinterlegt sind.

01:01:27.270 --> 01:01:29.290
Viele Migrationen führen dazu,

01:01:29.290 --> 01:01:31.770
dass die Tests langsamer laufen, dass die

01:01:31.770 --> 01:01:33.850
Test-Datenbank aufgebaut wird, weil

01:01:33.850 --> 01:01:35.790
oft ist es ja so, dass es ja nicht ist, man

01:01:35.790 --> 01:01:37.970
fügt immer was hinzu, sondern da kommt was hinzu,

01:01:38.110 --> 01:01:39.710
da kommt wieder was weg, dann habe ich was geändert, dann habe ich zum

01:01:39.710 --> 01:01:41.890
18. Mal irgendwas geändert. Und

01:01:41.890 --> 01:01:43.730
Django bietet dafür eine Möglichkeit an, das nennt sich

01:01:43.730 --> 01:01:45.310
Squash Migrations, um das aufzuräumen.

01:01:45.310 --> 01:01:47.810
Das Problem ist, das kann sehr, sehr schlecht mit

01:01:47.810 --> 01:01:49.050
Circular Imports umgehen.

01:01:49.050 --> 01:01:51.790
Also sprich, ich habe einen User

01:01:51.790 --> 01:01:53.790
und der hat ein Projekt und das Projekt

01:01:53.790 --> 01:01:56.230
hat, keine Ahnung, Kommentare

01:01:56.230 --> 01:01:57.490
und die Kommentare haben wieder den User.

01:01:57.490 --> 01:01:59.770
Das heißt, man muss dann, wenn man das macht,

01:01:59.770 --> 01:02:01.970
diese Migrationen sehr

01:02:01.970 --> 01:02:03.750
stark auseinanderziehen. Also wie man das

01:02:03.750 --> 01:02:05.810
bei Circular Imports machen würde, das ist ja ein generelles

01:02:05.810 --> 01:02:08.030
Python-Thema. Und das

01:02:08.030 --> 01:02:09.790
ist sehr, sehr mühsam, was dazu führt.

01:02:09.790 --> 01:02:11.870
Lazy importieren und die Sachen da als Strings hinschreiben.

01:02:11.870 --> 01:02:13.870
Genau. Und wie das halt dann immer so ist

01:02:13.870 --> 01:02:15.790
mit Sachen, die mühsam sind, die Leute machen

01:02:15.790 --> 01:02:17.850
sie nicht. Umso einfacher Sachen sind, umso schneller

01:02:17.850 --> 01:02:19.290
werden und umso besser werden sie getan.

01:02:19.290 --> 01:02:21.510
Und es gibt einen Pattern, das nennt sich Migration Zero

01:02:21.510 --> 01:02:23.710
und das hat sich jemand bei

01:02:23.710 --> 01:02:25.750
Medium 2018 ausgedacht, da sitzt er schon

01:02:25.750 --> 01:02:27.570
eine Weile. Und die Idee ist halt einfach

01:02:27.570 --> 01:02:29.650
auf Deutsch gesagt, du löscht halt einfach

01:02:29.650 --> 01:02:31.770
alles, haust alles weg, was du hast und lässt einfach

01:02:31.770 --> 01:02:33.530
Django initial

01:02:33.530 --> 01:02:35.670
neue Migrationen erstellen. Das

01:02:35.670 --> 01:02:37.950
klappt auch für große Projekte sehr gut

01:02:37.950 --> 01:02:39.610
Also ich hatte das beim richtig großen Projekt

01:02:39.610 --> 01:02:41.930
mit großem Entwicklungsteam, 5-6

01:02:41.930 --> 01:02:44.110
Jahre Laufzeit, hatte ich einen Mini-Konflikt

01:02:44.110 --> 01:02:45.830
der aber auch so offensichtlich war, dass ich ihn sofort

01:02:45.830 --> 01:02:47.650
lösen konnte. Also es war wirklich gar kein Problem

01:02:47.650 --> 01:02:49.830
und da habe ich halt dann dieses Package gebaut,

01:02:49.830 --> 01:02:52.190
das dieses Pattern

01:02:52.190 --> 01:02:53.810
implementiert und das ist im Endeffekt

01:02:53.810 --> 01:02:55.750
ein zweistufiges Ding. Einmal habe ich einen Helfer gebaut,

01:02:55.750 --> 01:02:57.890
der halt einem Verein quasi durch alle Apps

01:02:57.890 --> 01:02:59.730
geht, die Sachen aufräumt, weil das tatsächlich auch, wenn man

01:02:59.730 --> 01:03:01.650
das öfter macht, ist es, je nachdem wie viele Apps man hat,

01:03:01.650 --> 01:03:03.210
ist es auch Arbeit, auch wenn es doof klingt.

01:03:03.210 --> 01:03:05.930
Und das zweite ist ein Skript, das in die Pipeline

01:03:05.930 --> 01:03:07.930
geht, weil Django hat ja alle Migrationen,

01:03:07.930 --> 01:03:09.370
werden in der Datenbank in so einer

01:03:09.370 --> 01:03:11.650
ja, in so einem Log, in so einer

01:03:11.650 --> 01:03:13.730
Historientabelle hinterlegt, da quasi noch

01:03:13.730 --> 01:03:15.710
die Änderungen anpasst.

01:03:15.710 --> 01:03:17.710
Das heißt, du kannst es einfach in die Pipeline hängen, du hast

01:03:17.710 --> 01:03:19.830
den Django-Admin in Switch, du kannst sagen, ja, jetzt habe ich

01:03:19.830 --> 01:03:21.810
Migration gelöscht, jetzt bitte beim nächsten Deployment

01:03:21.810 --> 01:03:24.130
lass bitte, bereite bitte die Datenbank

01:03:24.130 --> 01:03:26.090
auf, um diesen Prozess zu streamlinen

01:03:26.090 --> 01:03:28.030
und das ist ein Thema, das verkauft

01:03:28.030 --> 01:03:29.330
sich sehr schwer, weil

01:03:29.330 --> 01:03:31.470
es ist halt, wie wahrscheinlich es auch

01:03:31.470 --> 01:03:33.170
der geneigte Zuhörer gemerkt hat,

01:03:33.170 --> 01:03:35.650
relativ tief und auch nur so ein

01:03:35.650 --> 01:03:37.750
Edge-Case, eigentlich sollte man es tun, aber so richtig Lust hat da keiner

01:03:37.750 --> 01:03:37.910
drauf.

01:03:37.910 --> 01:03:39.890
Ich weiß, da ist mir schon mal drüber gefallen,

01:03:39.890 --> 01:03:41.770
dass sie irgendwie dann Migrations erinnert haben, dann bumm,

01:03:41.770 --> 01:03:44.010
oh, Datenbank geht nicht. Genau, und

01:03:44.010 --> 01:03:46.090
ja, aus dem Grund fand ich

01:03:46.090 --> 01:03:47.750
das eigentlich für ein Lightning Talk ein ganz cooles Thema,

01:03:47.750 --> 01:03:49.950
weil so war das den Leuten so, Leute, wenn ihr das Problem habt,

01:03:49.950 --> 01:03:51.350
guckt euch das an, das gibt's.

01:03:51.350 --> 01:03:54.050
Ich habe dabei, als ich das Package gemacht habe,

01:03:54.050 --> 01:03:55.290
auch direkt noch eine zweite Sache gelernt.

01:03:55.290 --> 01:03:57.870
Es ist super, wenn man einen coolen Namen für

01:03:57.870 --> 01:03:59.770
sein Package hat, man sollte aber vorher gucken, ob der vielleicht

01:03:59.770 --> 01:04:01.950
schon belegt ist, weil es gibt

01:04:01.950 --> 01:04:03.770
nämlich ein Django

01:04:03.770 --> 01:04:05.570
Zero Migration

01:04:05.570 --> 01:04:07.890
und Migration Zero ohne Django, glaube ich

01:04:07.890 --> 01:04:09.670
bin ich ganz sicher. Und du hast es dann Zero Migration

01:04:09.670 --> 01:04:11.830
2 genannt? Ne, Django Migration

01:04:11.830 --> 01:04:13.550
Zero gab es tatsächlich noch nicht,

01:04:13.550 --> 01:04:15.850
aber es ist natürlich trotzdem allein schon

01:04:15.850 --> 01:04:17.830
wegen SEO extrem blöd, wenn

01:04:17.830 --> 01:04:19.810
halt dann Leute ständig aus falschem Package kommen, weil das andere

01:04:19.810 --> 01:04:21.590
halt schon seit 2014 da rumsitzt mit einem

01:04:21.590 --> 01:04:23.850
Commit. Genau,

01:04:23.850 --> 01:04:25.790
von daher, wenn jemand ein Package erstellt, dann checkt

01:04:25.790 --> 01:04:26.970
vorher die Namen ab, das hilft.

01:04:26.970 --> 01:04:29.850
Genau. Jochen sollte

01:04:29.850 --> 01:04:31.770
das Package unbedingt mal benutzen, ich habe ja gestern nochmal über die Schultern

01:04:31.770 --> 01:04:33.410
geguckt, als du Django Cast migriert hast

01:04:33.410 --> 01:04:35.970
und irgendwie wie viele Migrations da allein von weg da rangekommen sind,

01:04:35.970 --> 01:04:37.770
das waren ja hunderte. Ja, ich habe mir das auch

01:04:37.770 --> 01:04:39.690
überlegt, dass ich das überall wegschmeißen möchte

01:04:39.690 --> 01:04:41.710
und nochmal, aber dann denke ich mir immer, das sollte ich vielleicht

01:04:41.710 --> 01:04:43.590
dann machen, wenn sich an der Datenbank nicht mehr so viel

01:04:43.590 --> 01:04:44.870
ändert, aber es ändert sich immer.

01:04:44.870 --> 01:04:47.610
Genau, aber ich werde das auf jeden Fall tun.

01:04:47.610 --> 01:04:49.730
Ich würde mich freuen, wenn du mal ein Package ausprobieren würdest.

01:04:49.730 --> 01:04:51.870
Ja, kann ich mal, kann ich mal probieren,

01:04:51.870 --> 01:04:53.850
genau, ja. Aber das Problem ist auch bei mir,

01:04:53.850 --> 01:04:55.730
ist es halt blöderweise

01:04:55.730 --> 01:04:57.930
eine Library und ich werde Leuten...

01:04:57.930 --> 01:04:59.710
Bei der Library geht es eh nicht, dann musst du dir

01:04:59.710 --> 01:05:01.610
also, da musst du ja mit Squashen arbeiten.

01:05:01.610 --> 01:05:03.890
Ja. Das, weil, ne, du weißt

01:05:03.890 --> 01:05:05.710
ja nicht, in welchem Stand quasi das

01:05:05.710 --> 01:05:07.650
die letzte Person deinen

01:05:07.650 --> 01:05:09.750
Package, äh, oder die Person

01:05:09.750 --> 01:05:12.170
deinen Package nutzen, welcher Version, also...

01:05:12.170 --> 01:05:13.710
Ja, vielleicht werde ich bei irgendeiner

01:05:13.710 --> 01:05:15.930
Major-Version... Ich wollte gerade sagen, Release-Update

01:05:15.930 --> 01:05:17.790
und wer weiß, wie viele Leute

01:05:17.790 --> 01:05:19.710
außer Jochen sein Jochen-Paket... Ja, ich kann sagen,

01:05:19.710 --> 01:05:21.830
dass es nicht so viele sind, das ist schon richtig, ja, genau.

01:05:21.830 --> 01:05:24.290
Und dann schieße ich mir nur,

01:05:24.290 --> 01:05:25.670
schieße ich nur in meinen Fuß und nicht

01:05:25.670 --> 01:05:27.270
in den Fuß von noch hundert anderen Leuten, das

01:05:27.270 --> 01:05:29.710
kann ich vertreten. Das Risiko von

01:05:29.710 --> 01:05:31.710
Open-Source-Hafen, ja, genau. Und man kann ja dann

01:05:31.710 --> 01:05:32.990
downgraden.

01:05:32.990 --> 01:05:35.770
Ja. Datenbank brennt,

01:05:35.770 --> 01:05:36.850
sorry, downgrade einfach.

01:05:37.530 --> 01:05:39.730
Ja, ja, ja, ja, aber

01:05:39.730 --> 01:05:42.090
ja, das ist ein Problem. Ich meine, das ist auch so ein Problem

01:05:42.090 --> 01:05:43.830
wie bei so Projekten wie zum Beispiel

01:05:43.830 --> 01:05:45.850
Wagtail, da hat sich halt,

01:05:45.850 --> 01:05:48.030
es ist ja auch schon recht alt, und das

01:05:48.030 --> 01:05:50.010
ist halt auch, das verwendet man ja auch als Library, und da hat sich

01:05:50.010 --> 01:05:51.990
so viel Zweig angesammelt, dass halt das

01:05:51.990 --> 01:05:54.010
mit dem Testen, also, wenn

01:05:54.010 --> 01:05:56.070
man jetzt quasi, und mein Paket

01:05:56.070 --> 01:05:57.670
hängt zum Beispiel auch von Wagtail ab, das

01:05:57.670 --> 01:05:59.890
halb muss ich für alle Tests und so immer so

01:05:59.890 --> 01:06:02.010
Wege drumherum finden, dass ich auf jeden Fall

01:06:02.010 --> 01:06:03.270
beim Testen nicht die Migration

01:06:03.270 --> 01:06:05.710
laufen lassen muss, weil

01:06:05.710 --> 01:06:07.410
sonst werden die Tests irre langsam.

01:06:07.410 --> 01:06:08.510
Also machst du ReuseDB.

01:06:08.510 --> 01:06:11.350
Ja. Und dann musst du halt dafür ganz hart sorgen, dass alle

01:06:11.350 --> 01:06:13.390
Funktionen so wieder aufgeräumt werden. Minus Minus ReuseDB, Minus Minus

01:06:13.390 --> 01:06:15.130
No Migrations, genau. Aber dann

01:06:15.130 --> 01:06:17.310
gibt's halt dann so Fälle, wo, ah, nee, dann

01:06:17.310 --> 01:06:19.370
muss man's doch haben. Wie man's, zum Beispiel, wenn man

01:06:19.370 --> 01:06:20.390
dann halt vertrockst, die ganzen

01:06:20.390 --> 01:06:23.270
unterschiedlichen Versionen durchgeht, dann muss man natürlich, wenn

01:06:23.270 --> 01:06:25.250
das, wenn man jetzt, dann kann man nicht die gleiche Datenbank

01:06:25.250 --> 01:06:27.290
verwenden, dann muss man halt schon die Datenbank wieder wegschmeißen,

01:06:27.290 --> 01:06:28.670
wieder neu. Ja. Ja, es ist,

01:06:28.670 --> 01:06:31.250
es geht, aber es ist halt, es ist hacklich.

01:06:31.250 --> 01:06:32.230
Ja. Ja.

01:06:32.230 --> 01:06:34.510
Ja, ja. Ja, einzelne Pipeline.

01:06:34.510 --> 01:06:35.370
Ja.

01:06:35.370 --> 01:06:37.290
Ja,

01:06:37.290 --> 01:06:39.150
ja, du hattest ja gerade mich schon wegen

01:06:39.150 --> 01:06:41.230
Edinburgh gefragt. Ja. Was ich

01:06:41.230 --> 01:06:42.630
sehr interessant fand jetzt in Vigo,

01:06:42.630 --> 01:06:45.170
in Edinburgh gab es von mehreren Leuten,

01:06:45.170 --> 01:06:47.290
die, ich glaube, auch berechtigte

01:06:47.290 --> 01:06:49.250
Kritik, dass die

01:06:49.250 --> 01:06:51.490
Themenauswahl zwischen,

01:06:51.490 --> 01:06:53.210
meistens kann man das ja grob in

01:06:53.210 --> 01:06:55.330
Community Talks oder, ja,

01:06:55.330 --> 01:06:57.230
Community Talks und Tech Talks mit vielleicht

01:06:57.230 --> 01:06:58.770
Meta Talks, die so irgendwie dazwischen sitzen,

01:06:58.770 --> 01:07:01.430
aufteilen und in Edinburgh war's relativ stark

01:07:01.430 --> 01:07:03.290
auf der Community Seite. Also, Leute,

01:07:03.290 --> 01:07:05.150
die über Community Erfahrungen berichtet haben, die,

01:07:05.150 --> 01:07:07.070
wo Parallelen gezogen

01:07:07.070 --> 01:07:07.170
werden,

01:07:07.170 --> 01:07:09.210
zwischen anderen Arten von Communities,

01:07:09.210 --> 01:07:11.170
meine

01:07:11.170 --> 01:07:12.910
Erfahrung, wie ich das erste Mal zu Django

01:07:12.910 --> 01:07:14.830
Contributed hab, solche Geschichten, ja, das

01:07:14.830 --> 01:07:17.010
gab in Edinburgh von mehreren Leuten die

01:07:17.010 --> 01:07:19.030
Kritik, dass das halt relativ

01:07:19.030 --> 01:07:20.990
viel war und

01:07:20.990 --> 01:07:23.030
das ist mir jetzt positiv aufgefallen,

01:07:23.030 --> 01:07:24.950
dass, ich fand, dass die Mischung aus den

01:07:24.950 --> 01:07:27.230
Community Talks und aus den

01:07:27.230 --> 01:07:29.430
Tech Talks und aus den Meta Talks

01:07:29.430 --> 01:07:30.570
richtig gut war

01:07:30.570 --> 01:07:32.730
und ich

01:07:32.730 --> 01:07:34.890
sehr, sehr happy war mit

01:07:34.890 --> 01:07:36.970
der Themauswahl. Ich meine, wie gesagt, das sind halt immer

01:07:36.970 --> 01:07:38.770
eine große Menge auch von Leuten,

01:07:38.770 --> 01:07:40.990
die das mit Absicht zum

01:07:40.990 --> 01:07:42.830
ersten Mal machen, die

01:07:42.830 --> 01:07:44.850
Englisch nicht als Muttersprache haben und sowas, ne, das ist

01:07:44.850 --> 01:07:45.530
natürlich immer Sachen,

01:07:45.530 --> 01:07:48.950
also ich hab immer gehört, dass Spanien immer so ein bisschen anstrengender ist,

01:07:48.950 --> 01:07:50.910
was so das angeht, also für Englisch,

01:07:50.910 --> 01:07:52.830
weil halt da Englisch nicht so verbreitet ist und viele Leute

01:07:52.830 --> 01:07:54.630
halt dann nicht so. Ja, also es ist,

01:07:54.630 --> 01:07:56.950
wir hatten auch, glaube ich, gar nicht so viele Spanier,

01:07:56.950 --> 01:07:58.270
ich glaube, eine Frau aus

01:07:58.270 --> 01:08:00.510
Katalonien, was jetzt so ein bisschen

01:08:00.510 --> 01:08:02.530
Definitionssache ist, was Spanien ist oder nicht

01:08:02.530 --> 01:08:04.850
und ansonsten,

01:08:04.850 --> 01:08:06.510
ja, vielleicht ein, zwei,

01:08:06.850 --> 01:08:08.630
aber ich, wie gesagt, generell ist es,

01:08:08.630 --> 01:08:10.250
fand ich das diesmal

01:08:10.250 --> 01:08:12.850
gut, es war sehr angenehm, waren viele interessante

01:08:12.850 --> 01:08:13.450
Sachen dabei,

01:08:13.450 --> 01:08:16.510
da gab es zum Beispiel einen von Octopus Energy,

01:08:16.510 --> 01:08:18.670
das ist einer von den großen Django-Playern, die auch eigentlich immer

01:08:18.670 --> 01:08:20.590
so mit Platinum-Sponsor bei den Konferenzen sind,

01:08:20.590 --> 01:08:22.430
über Layered Architecture bei Django,

01:08:22.430 --> 01:08:24.450
ich bin schon sehr gespannt, wenn das Video rauskommt, das war

01:08:24.450 --> 01:08:26.830
sehr, also bei YouTube werden die ja alle veröffentlicht,

01:08:26.830 --> 01:08:28.230
das war sehr,

01:08:28.230 --> 01:08:30.610
sehr viel Information da drin und ich

01:08:30.610 --> 01:08:32.570
hab mir nur ein ganz, ganz paar

01:08:32.570 --> 01:08:34.450
wenige Fotos gemacht und ich bin sehr gespannt,

01:08:34.450 --> 01:08:36.570
mir das Ganze nochmal in Ruhe zu Hause

01:08:36.730 --> 01:08:38.510
zu hören, genau,

01:08:38.510 --> 01:08:40.470
wie die Background-Workers, die Sache von Carlton Gibson,

01:08:40.470 --> 01:08:42.390
es gab coole Meta-Talks,

01:08:42.390 --> 01:08:44.550
also das fand ich

01:08:44.550 --> 01:08:46.350
von der Auswahl her, bin ich da mit

01:08:46.350 --> 01:08:48.290
vielen schlauen Gedanken nach Hause gegangen

01:08:48.290 --> 01:08:49.670
und

01:08:49.670 --> 01:08:52.330
was ich auch sehr interessant fand,

01:08:52.330 --> 01:08:54.490
bezüglich des Community-Talks, direkt die allererste

01:08:54.490 --> 01:08:56.410
Keynote ging um Django Girls,

01:08:56.410 --> 01:08:58.110
das ist eine

01:08:58.110 --> 01:09:00.650
Vereinigung, ein Non-Profit, glaube ich

01:09:00.650 --> 01:09:02.490
inzwischen auch, die

01:09:02.490 --> 01:09:04.410
dafür da ist, explizit

01:09:04.410 --> 01:09:06.610
Frauen ans Programmieren ranzuführen, weil es ja

01:09:06.610 --> 01:09:08.770
immer noch so ist, dass halt die IT-Branche

01:09:08.770 --> 01:09:10.210
immer noch hart in Männerhand ist und das

01:09:10.210 --> 01:09:12.570
soll einfach vor allem die

01:09:12.570 --> 01:09:14.970
Mädels so ein bisschen ermutigen,

01:09:14.970 --> 01:09:16.270
dass sie das können, also nicht

01:09:16.270 --> 01:09:18.490
irgendwie, ich glaube, da ist gar nicht so groß der Faktor,

01:09:18.490 --> 01:09:20.110
dass du da rausgehst, also das ist immer so ein Wochenende-Workshop.

01:09:20.110 --> 01:09:21.450
Positive Bestärken, viel und so, genau.

01:09:21.450 --> 01:09:24.710
Und der YouTube-Python ist auch, glaube ich, ein ganzer

01:09:24.710 --> 01:09:26.070
Workshop für Django Girls, ja.

01:09:26.070 --> 01:09:28.270
Und ich hab, als das mal hier in Köln war,

01:09:28.270 --> 01:09:30.490
2015, glaube ich, war ich auch mal

01:09:30.490 --> 01:09:31.410
da Coach

01:09:31.410 --> 01:09:34.010
und das war eine sehr interessante Erfahrung,

01:09:34.010 --> 01:09:36.490
hat echt Spaß gemacht und

01:09:36.490 --> 01:09:38.270
war auch interessant,

01:09:38.270 --> 01:09:40.350
wie, weil die Mädels, glaube ich,

01:09:40.350 --> 01:09:42.330
alle komplett noch nie irgendwas

01:09:42.330 --> 01:09:44.290
programmiert haben, also wirklich, die waren komplett

01:09:44.290 --> 01:09:46.450
bei Null, die drei, die in meiner Gruppe

01:09:46.450 --> 01:09:48.470
waren und wie die da auch unterschiedlich rangegangen sind,

01:09:48.470 --> 01:09:50.450
das war wirklich auch für mich, also im Sinne

01:09:50.450 --> 01:09:52.370
von, man hat ja auch immer wieder mal mit neuen Leuten zu tun,

01:09:52.370 --> 01:09:53.890
wenn mal jemand Neues anfängt, wenn man mal

01:09:53.890 --> 01:09:56.350
Werkstudenten betreut oder sowas, echt interessant zu sehen,

01:09:56.350 --> 01:09:57.930
da

01:09:57.930 --> 01:10:00.050
dieses Coaching zu machen

01:10:00.050 --> 01:10:02.030
und wie gesagt, das ist halt vor zehn Jahren,

01:10:02.030 --> 01:10:04.270
das war jetzt Jubiläum, in Berlin gegründet worden, was ich auch

01:10:04.270 --> 01:10:06.370
ganz cool finde, also sprich...

01:10:06.370 --> 01:10:08.310
Wenn jemand jemanden kennt,

01:10:08.310 --> 01:10:10.090
der, also, ne,

01:10:10.090 --> 01:10:12.010
jemand eine Frau kennt, der

01:10:12.010 --> 01:10:14.310
die potenziellen sowas Interesse hat, die werden

01:10:14.310 --> 01:10:16.350
immer wieder mal hier und da angeboten,

01:10:16.350 --> 01:10:18.210
diese Workshops und

01:10:18.210 --> 01:10:19.970
das ist, glaube ich, echt cool,

01:10:19.970 --> 01:10:22.330
so für einen ersten, ja,

01:10:22.330 --> 01:10:23.830
Fuß ins Wasser halten mal wieder

01:10:23.830 --> 01:10:25.170
und

01:10:25.170 --> 01:10:28.330
die Idee dabei ist, dass die halt im Endeffekt ihre erste

01:10:28.330 --> 01:10:30.330
Django-Seite erstellen und auch irgendwo

01:10:30.330 --> 01:10:32.250
hindeployen und der Fokus ist

01:10:32.250 --> 01:10:34.150
halt eher darauf, wie du schon gesagt hast, positive

01:10:34.150 --> 01:10:36.170
Bestärkung, denn, ja,

01:10:36.250 --> 01:10:38.190
äh, pädagogisch wertvoll.

01:10:38.190 --> 01:10:39.970
Das ist total, das ist auch relativ gut

01:10:39.970 --> 01:10:42.070
und relativ komplett. Ja, genau.

01:10:42.070 --> 01:10:43.990
Wenn man überhaupt mit Django ansteigen will, ich meine, das haben wir jetzt

01:10:43.990 --> 01:10:46.010
vielleicht, hätten wir es früher sagen müssen, die Leute, die jetzt noch

01:10:46.010 --> 01:10:48.050
drin sind, sind wahrscheinlich eher schon tiefer auch

01:10:48.050 --> 01:10:50.130
in Django, aber ja, vielleicht können wir das da weiter

01:10:50.130 --> 01:10:52.050
verraten auch. Ja, aber das sind dann auch

01:10:52.050 --> 01:10:54.050
die Motivierten. Ja. Bei denen lohnt sich das dann.

01:10:54.050 --> 01:10:55.990
Ja, vielleicht tragen das in ihre eigenen

01:10:55.990 --> 01:10:58.030
Communities weiter auch. Genau. Du kannst einfach in der

01:10:58.030 --> 01:10:59.610
Linksammlung noch hinzufügen, da freuen die sich.

01:10:59.610 --> 01:11:01.270
Ja, ja, mach ich auf jeden Fall.

01:11:01.270 --> 01:11:03.950
Ja, ich hab das auch tatsächlich an die Neulinge

01:11:03.950 --> 01:11:05.970
bei uns mit Django, auch einmal Django Girls,

01:11:06.130 --> 01:11:08.090
also er ist natürlich offizielles, ne, Tutorial

01:11:08.090 --> 01:11:10.030
ist nicht schlecht, aber Django Girls auch so schönes

01:11:10.030 --> 01:11:11.490
schnelles Einstiegsding, ja.

01:11:11.490 --> 01:11:13.930
Ich erinnere mich gerade, ich war jetzt zu langsam, um da

01:11:13.930 --> 01:11:15.370
einzuholen, ich hab mich dann irgendwann

01:11:15.370 --> 01:11:17.950
kurz danach daran erinnert, es gab auch

01:11:17.950 --> 01:11:20.050
jetzt irgendein, äh, muss ich auch

01:11:20.050 --> 01:11:21.990
nachgucken, welcher das war, ähm,

01:11:21.990 --> 01:11:23.770
Podcast-Episode Django Chat mit

01:11:23.770 --> 01:11:25.970
einer von Octopus

01:11:25.970 --> 01:11:27.910
Energy und die

01:11:27.910 --> 01:11:30.050
erzählte da auch irgendwie, äh, ja,

01:11:30.050 --> 01:11:32.050
dass sie halt, äh,

01:11:32.050 --> 01:11:34.110
auf so ein

01:11:34.110 --> 01:11:36.010
Problem gestoßen hat, dass sie eigentlich

01:11:36.010 --> 01:11:37.890
nicht wollen, dass in Templates irgendwie

01:11:37.890 --> 01:11:39.350
Datenbank-Queries passieren oder so.

01:11:39.350 --> 01:11:41.910
Und das ist auch etwas, was mir, äh, inzwischen

01:11:41.910 --> 01:11:43.890
halt, ich hab ja versucht, so ein bisschen Performance-Optimierung

01:11:43.890 --> 01:11:46.170
zu machen, auch bei den, äh,

01:11:46.170 --> 01:11:47.830
beim Django-Cast-Ding,

01:11:47.830 --> 01:11:49.510
was ich baue, und

01:11:49.510 --> 01:11:51.430
das ist mir auch ganz böse auf die Füße, also

01:11:51.430 --> 01:11:53.830
eigentlich, das, da dachte ich auch so, oh ja,

01:11:53.830 --> 01:11:55.850
das hab ich, eigentlich möchte man nicht, also

01:11:55.850 --> 01:11:57.790
wenn man in Templates Datenbank-Queries

01:11:57.790 --> 01:11:59.810
macht, ganz blöde Idee, die haben, die sind dann so weit

01:11:59.810 --> 01:12:01.870
gegangen zu sagen, sie haben, sie benutzen

01:12:01.870 --> 01:12:03.870
so eine Art Class-Based Views, wo sie

01:12:03.870 --> 01:12:05.890
halt verhindern, also sie nehmen nicht die Modelle

01:12:05.890 --> 01:12:07.770
mehr, sondern sie machen irgendwie da so

01:12:07.770 --> 01:12:09.790
so Data-Class-mäßig irgendwie

01:12:09.790 --> 01:12:11.510
Read-Only-Kopien von den Dingern,

01:12:11.510 --> 01:12:13.750
sodass, wenn du da irgendwo was versuchst

01:12:13.750 --> 01:12:15.710
aus der Datenbank zu holen, dass das halt

01:12:15.710 --> 01:12:17.370
einfach nicht geht, ja, und, ähm,

01:12:17.370 --> 01:12:19.610
das kann ich gut verstehen, das ist eine, also

01:12:19.610 --> 01:12:21.750
du willst eigentlich, wenn du, wenn du zum Beispiel

01:12:21.750 --> 01:12:23.610
deine Daten, die Anzahl der Datenbank-Queries

01:12:23.610 --> 01:12:25.090
in der Kontrolle behalten willst, willst du halt

01:12:25.090 --> 01:12:27.590
irgendeinen Punkt haben, wo du sagst, also hier, da

01:12:27.590 --> 01:12:29.710
sind alle Queries, und ich mach nirgendwo

01:12:29.710 --> 01:12:31.570
anders welche, weil das, äh,

01:12:31.570 --> 01:12:33.850
äh, das ist so schwer zu containen,

01:12:33.850 --> 01:12:35.770
wenn man, wenn da irgendwas passieren

01:12:35.770 --> 01:12:37.790
kann, dass das halt ganz blöde

01:12:37.790 --> 01:12:39.310
Performance-Implikationen hat.

01:12:39.310 --> 01:12:41.610
Und wo man dann quasi durch das Frontend auch

01:12:41.610 --> 01:12:43.550
Angriffe machen kann, oder was? Ne, Angriffe,

01:12:43.550 --> 01:12:45.450
also es ist einfach irgendwie, äh,

01:12:45.450 --> 01:12:47.870
das ist halt unheimlich, äh,

01:12:47.870 --> 01:12:49.690
macht, macht Dinge halt deutlich

01:12:49.690 --> 01:12:51.810
langsamer, und man weiß gar nicht so, warum

01:12:51.810 --> 01:12:54.230
irgendwie, ne, und, äh,

01:12:54.230 --> 01:12:55.870
ja, also

01:12:55.870 --> 01:12:57.690
zum Beispiel... Warum wird das langsamer? Das, vielleicht müssen wir

01:12:57.690 --> 01:12:59.610
es nochmal genau erklären. Datenbank-Queries sind immer super langsam.

01:12:59.610 --> 01:13:01.650
Ja, aber warum muss das, also wenn man

01:13:01.650 --> 01:13:03.890
die eh machen muss, warum dann nicht im Template,

01:13:03.890 --> 01:13:05.650
also man muss ja eh drauf warten, wenn irgendwo... Naja, wenn

01:13:05.650 --> 01:13:07.730
man die halt alle an einer Stelle macht, dann ist

01:13:07.730 --> 01:13:09.550
es halt auch nicht so schlimm. Also was auch,

01:13:09.550 --> 01:13:11.750
das ist, weiß ich nicht so genau, das ist ein Gefühl. Das hab ich

01:13:11.750 --> 01:13:13.770
noch nicht wirklich gemessen, aber ich hab auch das Gefühl,

01:13:13.770 --> 01:13:16.350
dass, wenn man die Datenbank-Queries

01:13:16.350 --> 01:13:17.330
sehr verstreut macht,

01:13:17.330 --> 01:13:19.630
dass das halt besonders schlecht ist auch.

01:13:19.630 --> 01:13:21.250
Warum das genau ist, weiß ich nicht.

01:13:21.250 --> 01:13:23.650
Was meinst du, wenn die verstreut, was, also an verschiedenen

01:13:23.650 --> 01:13:25.530
Stellen im Code, meinst du halt? Ja.

01:13:25.530 --> 01:13:27.610
Ähm, oder an verschiedenen, äh, Orten des

01:13:27.610 --> 01:13:29.170
Frameworks, glaub ich, meinst du?

01:13:29.170 --> 01:13:31.490
Ja, ja, also wenn ich jetzt zum Beispiel gucke von,

01:13:31.490 --> 01:13:33.390
ähm, es kommt ein Request rein, ja, dann

01:13:33.390 --> 01:13:35.530
äh, passieren ja Dinge, Dinge, Dinge, Dinge,

01:13:35.530 --> 01:13:37.510
Dinge, auch erstaunlich viele, so beim, das weiß

01:13:37.510 --> 01:13:39.410
ich jetzt, weil ich's halt so ein bisschen, äh, geproffelt

01:13:39.410 --> 01:13:41.070
hab. Bei mir sind es halt von,

01:13:41.070 --> 01:13:43.350
also bei, wenn man jetzt einen Blog nimmt und da

01:13:43.350 --> 01:13:45.490
die List-Page und dann halt nur so fünf Artikel

01:13:45.490 --> 01:13:47.350
oder sonst irgendwas, also aus diesem

01:13:47.350 --> 01:13:49.170
List-View, dann macht das halt so

01:13:49.170 --> 01:13:51.450
110.000 Funktionsaufrufe oder

01:13:51.450 --> 01:13:53.390
sowas, was eine Menge ist. Ich dachte so,

01:13:53.390 --> 01:13:54.990
wow, shit, warum ist das so viel?

01:13:54.990 --> 01:13:57.350
Das ist ganz schön viel. Und ich, mein, mein Ding

01:13:57.350 --> 01:13:59.090
wär jetzt, wenn jetzt so alle tausend,

01:13:59.090 --> 01:14:01.270
äh, ähm, Funktionsaufrufe

01:14:01.270 --> 01:14:02.930
kommt irgendwie in die Datenbank-Query, das ist schlecht.

01:14:02.930 --> 01:14:05.130
Also, so war's quasi vorher,

01:14:05.410 --> 01:14:07.410
irgendwie implizit, weil halt, sind die

01:14:07.410 --> 01:14:09.110
Datenbank-Querys halt da passiert, wo es es halt,

01:14:09.110 --> 01:14:11.250
äh, äh, wo es halt

01:14:11.250 --> 01:14:13.350
aufgetreten ist. Und das war,

01:14:13.350 --> 01:14:15.370
und einfach nur dadurch, dass ich

01:14:15.370 --> 01:14:17.210
jetzt das einfach mal so umgebaut hab,

01:14:17.210 --> 01:14:19.350
dass es jetzt diese Datenbank-Querys, an denen ich selber

01:14:19.350 --> 01:14:21.330
noch gar nicht viel geändert hab, alle an einer Stelle passieren,

01:14:21.330 --> 01:14:22.790
ist es irgendwie doppelt so schnell geworden.

01:14:22.790 --> 01:14:25.250
Und ich weiß nicht genau, woran das liegt, aber es ist

01:14:25.250 --> 01:14:27.290
auf jeden Fall irgendwie, scheint das so zu

01:14:27.290 --> 01:14:29.310
sein, dass auch der, äh,

01:14:29.310 --> 01:14:31.070
nicht, nicht nur, dass man halt

01:14:31.070 --> 01:14:33.190
blockiert und dann muss man auf die Datenbank warten,

01:14:33.190 --> 01:14:34.830
sondern auch dieses Ganze irgendwie,

01:14:35.290 --> 01:14:35.630
Untertitelung des ZDF, 2020

01:14:35.650 --> 01:14:38.350
ja, man ist da in diesem Bereich,

01:14:38.350 --> 01:14:40.250
wo dann Dinge, die Jungle-Modelle

01:14:40.250 --> 01:14:42.130
gebaut werden oder ich weiß es nicht so genau, also das

01:14:42.130 --> 01:14:44.170
scheint alles nicht so richtig kostenlos

01:14:44.170 --> 01:14:46.210
zu sein, sondern das... Also das heißt, wann irgendwas geladen wird

01:14:46.210 --> 01:14:48.230
an der Stelle und warst du irgendwie vorbereitet

01:14:48.230 --> 01:14:49.570
oder tiered down oder so hin und her,

01:14:49.570 --> 01:14:52.270
kostet dann unheimlich viel, oder? Ja, also

01:14:52.270 --> 01:14:54.250
ja, das allein,

01:14:54.250 --> 01:14:56.070
dass man da halt irgendwie viele Objekte erzeugt

01:14:56.070 --> 01:14:58.250
und dann, ja,

01:14:58.250 --> 01:15:00.150
und wenn das halt an einer Stelle ist, dann passiert das halt

01:15:00.150 --> 01:15:02.090
einmal und wenn das halt verteilt ist, dann

01:15:02.090 --> 01:15:03.750
macht es das irgendwie nochmal langsamer

01:15:03.750 --> 01:15:06.030
und ja, ich versuche immer noch momentan gerade

01:15:06.030 --> 01:15:08.130
rauszukriegen, woran liegt das eigentlich, dass da so viele

01:15:08.130 --> 01:15:09.850
Funktionsaufrufe passieren, weil das ist einfach zu viel.

01:15:09.850 --> 01:15:11.950
Kann man nicht

01:15:11.950 --> 01:15:13.970
eventuell, kann ich, also meine Idealvorstellung wäre

01:15:13.970 --> 01:15:15.290
natürlich, dass ich irgendwann

01:15:15.290 --> 01:15:17.910
sozusagen nur noch eine Datenbank-Query mache

01:15:17.910 --> 01:15:20.050
oder so, in der ich alle Informationen aus der Datenbank hole.

01:15:20.050 --> 01:15:22.110
Geht

01:15:22.110 --> 01:15:24.010
das nicht vielleicht? Ja, Tim, wie groß

01:15:24.010 --> 01:15:25.790
hältst du, wenn das in den RAM passt? Ja,

01:15:25.790 --> 01:15:27.410
das ist alles gar kein Problem.

01:15:27.410 --> 01:15:29.850
Aber kann ich so eine

01:15:29.850 --> 01:15:31.770
Query formulieren und wenn ich jetzt die Daten

01:15:31.770 --> 01:15:33.710
aus dieser Query habe, kann ich die so transformieren, dass ich

01:15:33.750 --> 01:15:34.930
daraus wieder Django-Objekte machen kann.

01:15:34.930 --> 01:15:37.430
Das ist halt so, aber das mache ich jetzt auch schon,

01:15:37.430 --> 01:15:39.570
also ich benutze nicht mehr irgendwie

01:15:39.570 --> 01:15:40.550
einfach so, ich mache

01:15:40.550 --> 01:15:42.350
aus,

01:15:42.350 --> 01:15:45.550
ich benutze nicht quasi den

01:15:45.550 --> 01:15:47.310
ORM, um halt Django-Modelle, sondern ich

01:15:47.310 --> 01:15:49.530
ziehe die Daten halt in einer

01:15:49.530 --> 01:15:51.350
Form, dass ich die halt auch, das ist auch sowas, wenn man

01:15:51.350 --> 01:15:53.490
cachen will, dann muss man das ja auch irgendwie

01:15:53.490 --> 01:15:55.310
zum Beispiel als Sticked haben,

01:15:55.310 --> 01:15:57.350
dass man halt auch irgendwie serialisieren kann.

01:15:57.350 --> 01:15:59.390
Wenn du Django-Objekte hast, die kannst du nicht,

01:15:59.390 --> 01:16:01.930
also es gibt viele Dinge an Django, die kannst

01:16:01.930 --> 01:16:02.710
du nicht serialisieren.

01:16:03.750 --> 01:16:05.770
Du kannst es auch nicht cachen, weil Query-Sets kannst du

01:16:05.770 --> 01:16:07.010
nicht gut cachen, geht nicht.

01:16:07.010 --> 01:16:09.530
Aber wenn du jetzt das in eine

01:16:09.530 --> 01:16:11.770
Dict-Geschichte

01:16:11.770 --> 01:16:13.550
überführt hast, wie im Prinzip JSON

01:16:13.550 --> 01:16:15.690
serialisierbar ist, dann kannst du halt

01:16:15.690 --> 01:16:17.430
auch das, was du aus der Datenbank kriegst, einfach

01:16:17.430 --> 01:16:19.490
nehmen, irgendwie auf eine Platte schreiben oder so und sage,

01:16:19.490 --> 01:16:21.570
okay, die nächsten fünf Minuten einfach das Pfeil nehmen

01:16:21.570 --> 01:16:23.650
und nicht mehr die Datenbank fragen oder irgendwo

01:16:23.650 --> 01:16:25.490
in den Hauptspeicher oder in Redis oder sonst irgendwo hin

01:16:25.490 --> 01:16:27.670
und dann kannst du das halt cachen.

01:16:27.670 --> 01:16:29.270
Aber das, genau.

01:16:29.270 --> 01:16:31.590
Und aus den Dingern

01:16:31.590 --> 01:16:33.550
wieder Django-Modelle zu bauen, ist jetzt gar nicht so

01:16:33.550 --> 01:16:35.110
schlimm. Da dachte ich auch so, das ist vielleicht schlimm.

01:16:35.110 --> 01:16:36.530
Nö, ist gar nichts, das geht ziemlich leicht.

01:16:36.530 --> 01:16:39.330
Und ja, genau.

01:16:39.330 --> 01:16:41.890
Also ja, ich mache momentan so ein bisschen Performance-Optimierungsgeschichten.

01:16:41.890 --> 01:16:42.730
Ja.

01:16:42.730 --> 01:16:44.970
Ja. Tja, ja.

01:16:44.970 --> 01:16:47.550
Ja, aber wenn Performance auch dazu

01:16:47.550 --> 01:16:49.370
führt, dass du weniger Rechenleistung aufwenden musst, ist das ja sogar

01:16:49.370 --> 01:16:50.150
Green Engineering.

01:16:50.150 --> 01:16:53.510
Da gab es auch Vorträge dazu.

01:16:53.510 --> 01:16:55.210
110.000 Funktionsaufrufe für

01:16:55.210 --> 01:16:57.130
ein Webseiten-Rendering ist nicht so richtig green.

01:16:57.130 --> 01:16:58.910
Ehrlich gesagt, das ist eher so mehr so braun.

01:16:58.910 --> 01:17:03.350
Ja. Aber weil du, ich habe gerade

01:17:03.350 --> 01:17:05.090
den, deinen, deinen

01:17:05.090 --> 01:17:07.050
Einstiegspunkt vergessen, der mich daran erinnert hat,

01:17:07.050 --> 01:17:09.210
aber es war super interessant. Bei diesem Django Girls

01:17:09.210 --> 01:17:10.810
Vortrag gab es auch so eine,

01:17:10.810 --> 01:17:13.310
ja, so Success-Stories einfach,

01:17:13.310 --> 01:17:14.810
ne, von Mädels, die das halt

01:17:14.810 --> 01:17:16.870
teilgenommen haben und die jetzt halt irgendwo einen

01:17:16.870 --> 01:17:19.130
coolen Job haben oder irgendwie eine coole Erfahrung haben

01:17:19.130 --> 01:17:21.250
oder irgendwo sich halt irgendwas Positives in ihrem Leben geändert

01:17:21.250 --> 01:17:23.290
hat, sondern im Sinne von, ne, das hat einen Impact.

01:17:23.290 --> 01:17:24.990
Und was ich da echt

01:17:24.990 --> 01:17:27.230
krass fand, war, dass eine

01:17:27.230 --> 01:17:29.050
US-Amerikanerin, die daran teilgenommen hat, die halt

01:17:29.050 --> 01:17:31.090
vorher irgendwas gearbeitet hat und jetzt halt dann in

01:17:31.090 --> 01:17:33.170
Tech eingestiegen ist, weil sie halt am Ball geblieben ist,

01:17:33.190 --> 01:17:35.030
dass sie deshalb

01:17:35.030 --> 01:17:37.190
jetzt mit dem neuen Job eine Familie gegründet

01:17:37.190 --> 01:17:39.270
hat, also sprich ein Kind bekommen hat, weil vorher

01:17:39.270 --> 01:17:41.090
nach ihrer Aussage, sie es in

01:17:41.090 --> 01:17:42.770
USA sich nicht hätte leisten können.

01:17:42.770 --> 01:17:45.030
Ich kann jetzt nicht bewerten, ob das stimmt,

01:17:45.030 --> 01:17:47.070
also ob das jetzt so eine absolut

01:17:47.070 --> 01:17:48.930
richtige Aussage ist, aber

01:17:48.930 --> 01:17:51.110
allein, dass das subjektiv so ist, hat

01:17:51.110 --> 01:17:51.890
mich echt schockiert.

01:17:51.890 --> 01:17:54.690
Ja gut, aber ich meine, ich würde sagen, dass halt, wenn man,

01:17:54.690 --> 01:17:56.610
also so ein Programmierer ist jetzt schon,

01:17:56.610 --> 01:17:58.890
ist jetzt auch nicht das Bestbezahlte überhaupt, aber

01:17:58.890 --> 01:18:00.370
sagen wir mal so, ist halt schon

01:18:00.370 --> 01:18:02.410
deutlich besser wahrscheinlich als viele

01:18:02.410 --> 01:18:02.870
andere Sachen.

01:18:03.030 --> 01:18:05.030
Vielleicht sollten wir gar nicht so viele Leute schulen, damit nicht so viel

01:18:05.030 --> 01:18:06.830
Wettbewerb da ist, dass es immer noch weiter gut bezahlt wird.

01:18:06.830 --> 01:18:09.170
Auch wenn wir Probleme haben, unsere Kinder zu ernähren.

01:18:09.170 --> 01:18:10.930
Ja.

01:18:10.930 --> 01:18:13.110
Ich glaube auch, es ist ja

01:18:13.110 --> 01:18:14.710
nicht nur das Geld, sondern auch, dass man so eine gewisse

01:18:14.710 --> 01:18:17.110
Flexibilität hat. Ich meine, es gibt

01:18:17.110 --> 01:18:19.050
immer noch diese Marketing

01:18:19.050 --> 01:18:20.870
Agenturen, wo man dann irgendwie bis nachts

01:18:20.870 --> 01:18:22.950
um zwölf irgendwie irgendwelche

01:18:22.950 --> 01:18:24.910
Marketing-One-Pager zusammenlötet, aber

01:18:24.910 --> 01:18:26.130
bei...

01:18:26.130 --> 01:18:28.870
Nein, du hast völlig recht, also ich glaube, das ist einer der Jobs, die

01:18:28.870 --> 01:18:31.030
von Hause aus sehr dafür geeignet

01:18:31.030 --> 01:18:32.870
sind, dass man das remote machen kann und es

01:18:32.870 --> 01:18:34.830
relativ kompatibel ist zur Vereinbarkeit von

01:18:34.830 --> 01:18:35.470
Familie und Beruf.

01:18:35.470 --> 01:18:38.830
Ich ziehe mit reicher Arbeit von zu Hause

01:18:38.830 --> 01:18:40.110
aus eine Menge Geld verdienen.

01:18:40.110 --> 01:18:41.930
Hier ist es in die Halle angewogen.

01:18:41.930 --> 01:18:45.410
Gesellschaftliche

01:18:45.410 --> 01:18:47.170
Transformation wäre ja sowas wie Vereinbarkeit

01:18:47.170 --> 01:18:49.130
eine der Hauptdinge

01:18:49.130 --> 01:18:49.750
auch, glaube ich.

01:18:49.750 --> 01:18:52.610
Also fällt mir auch immer wieder auf, ja, das ist halt total

01:18:52.610 --> 01:18:54.670
hart, wenn irgendjemand den ganzen Tag irgendwo

01:18:54.670 --> 01:18:56.530
hinfahren muss und dann mit Kinderbetreuung ist es schon schwer.

01:18:56.530 --> 01:18:58.950
Ja, also ich meine

01:18:58.950 --> 01:19:00.750
auch jetzt die letzten Jahre

01:19:00.750 --> 01:19:02.710
Erfahrung mit Kinderbetreuung, es passiert immer

01:19:02.710 --> 01:19:04.990
so viel Zeugs, wo man dann...

01:19:04.990 --> 01:19:06.830
Ja, das wäre übel gewesen,

01:19:06.830 --> 01:19:09.030
wenn ich jetzt irgendwie hätte in einem Büro sitzen müssen oder...

01:19:09.030 --> 01:19:09.950
Ja, oder hinfahren jeden Tag.

01:19:09.950 --> 01:19:12.010
Du kannst auch nicht wirklich wegfahren.

01:19:12.010 --> 01:19:14.630
Oder Schichtdienst

01:19:14.630 --> 01:19:16.510
einfach die ganze Nacht. Ja, ganz übel.

01:19:16.510 --> 01:19:18.850
Ja gut, aber es gibt Leute, die kriegen das trotzdem irgendwie hin.

01:19:18.850 --> 01:19:20.670
Ja, das ist beeindruckend.

01:19:20.670 --> 01:19:22.270
Ja.

01:19:22.270 --> 01:19:24.770
Ja, du wolltest jetzt über Party

01:19:24.770 --> 01:19:26.070
reden, auch wenn wir gerade über Kinderkriegen reden.

01:19:26.070 --> 01:19:28.470
Ja.

01:19:28.470 --> 01:19:30.610
Für manche Leute ein Thema. Nach der Party kommt

01:19:30.610 --> 01:19:32.550
der Kater und...

01:19:32.550 --> 01:19:34.190
Genau. Nein, tatsächlich,

01:19:34.190 --> 01:19:36.150
bei den Dungercons gibt es immer eine Party

01:19:36.150 --> 01:19:38.650
und ich finde das ein ganz interessantes

01:19:38.650 --> 01:19:39.310
Thema, weil

01:19:39.310 --> 01:19:42.450
in Edinburgh war es so, dass man,

01:19:42.450 --> 01:19:44.450
wenn man sich die Tickets kauft,

01:19:44.450 --> 01:19:46.490
musste man ein Opt-in machen, ob man

01:19:46.490 --> 01:19:48.170
auf die Party geht, dann gab es so eine Art

01:19:48.170 --> 01:19:49.730
ja,

01:19:49.730 --> 01:19:52.110
Aufwandsentschädigung von

01:19:52.110 --> 01:19:54.290
10 Pfund oder so und

01:19:54.290 --> 01:19:56.430
was die nicht bedacht haben ist, dass

01:19:56.430 --> 01:19:58.590
in vielen, also viele

01:19:58.590 --> 01:20:00.690
Leute gehen halt über ihre Agentur dahin,

01:20:00.690 --> 01:20:02.450
also auf irgendeine Art von Weiterbildungsbudget,

01:20:02.550 --> 01:20:04.430
und da buchen die Leute nicht selbst die Tickets

01:20:04.430 --> 01:20:06.510
und die werden halt am Block von irgendjemand

01:20:06.510 --> 01:20:08.430
aus, zum Beispiel der

01:20:08.430 --> 01:20:10.490
Buchhaltung gebucht und die natürlich mit

01:20:10.490 --> 01:20:12.390
der Information Party kostet extra nichts

01:20:12.390 --> 01:20:14.470
anfangen können und dann

01:20:14.470 --> 01:20:16.550
bei uns und auch bei anderen war es dann

01:20:16.550 --> 01:20:18.330
so, dass wir halt auf einmal alle nicht dahin gehen konnten,

01:20:18.330 --> 01:20:20.590
weil...

01:20:20.590 --> 01:20:20.990
Ach so.

01:20:20.990 --> 01:20:24.470
Und einfach, weil halt das Häkchen nicht gesetzt wurde und das war

01:20:24.470 --> 01:20:26.350
halt irgendwie einfach so ein bisschen

01:20:26.350 --> 01:20:28.270
die Realität zu Theorie.

01:20:28.270 --> 01:20:30.270
In der Theorie ist es kein Problem, in der Praxis, naja,

01:20:30.270 --> 01:20:31.530
so ist es halt. Gehört eigentlich dazu.

01:20:32.390 --> 01:20:34.110
Ähm, ich persönlich finde nämlich die Party

01:20:34.110 --> 01:20:36.070
eigentlich immer eine sehr schöne Art, nochmal mit

01:20:36.070 --> 01:20:38.270
Leuten, die man halt vielleicht noch auf der Stage gesehen

01:20:38.270 --> 01:20:40.090
hat an den Tagen, die sind ja auch meistens

01:20:40.090 --> 01:20:42.210
am Ende. Aber das ist mir in den Review-Piecen

01:20:42.210 --> 01:20:43.970
auch aufgefallen, da gibt es auch mehrere Partys, wo man sich extra

01:20:43.970 --> 01:20:46.110
registrieren muss, ja. Und ich finde

01:20:46.110 --> 01:20:47.950
das eine sehr schöne Gelegenheit, nochmal in einem etwas

01:20:47.950 --> 01:20:49.470
lockeren, weniger

01:20:49.470 --> 01:20:51.990
ernsten Umfeld mit den Leuten,

01:20:51.990 --> 01:20:53.190
ich meine, viele Leute haben da irgendwie...

01:20:53.190 --> 01:20:56.050
da noch mit den Leuten

01:20:56.050 --> 01:20:58.030
reden zu können, einfach auch nochmal

01:20:58.030 --> 01:21:00.050
mit Leuten connecten zu können, zum Beispiel

01:21:00.050 --> 01:21:02.070
in Porto, also jetzt vor zwei Jahren, die Party war,

01:21:02.230 --> 01:21:04.330
glaube ich, eine der besten Partys,

01:21:04.330 --> 01:21:06.170
also die war super, die war echt gut organisiert, richtig

01:21:06.170 --> 01:21:08.350
schöne Location, bestes Wetter, alles draußen.

01:21:08.350 --> 01:21:10.170
Ähm, und

01:21:10.170 --> 01:21:12.170
da bin ich dann einfach in eine Runde von

01:21:12.170 --> 01:21:14.190
Leuten reingestolpert und dann bin ich halt nachher

01:21:14.190 --> 01:21:16.010
mit einem im Gespräch hängen geblieben und nachher

01:21:16.010 --> 01:21:18.130
irgendwann meinte er, weißt du echt,

01:21:18.130 --> 01:21:19.810
wer ich bin? Ich so, ja, keine Ahnung. Ja, ich bin

01:21:19.810 --> 01:21:22.070
Präsident hier von Jungle Software, von der ich so,

01:21:22.070 --> 01:21:23.310
oh, äh, ups, sorry.

01:21:23.310 --> 01:21:26.070
Ja, da kannte ich halt noch nicht so viele Leute

01:21:26.070 --> 01:21:28.070
in dem Umfeld. Und es ist halt einfach, das

01:21:28.070 --> 01:21:30.150
würde halt so, ich meine, das kann passieren,

01:21:30.150 --> 01:21:32.070
wenn man so auf der Konferenz rumläuft, aber

01:21:32.070 --> 01:21:34.090
man ist da schon immer relativ getaktet mit,

01:21:34.090 --> 01:21:35.930
ne, also die kommt dann, ist irgendwie, dann gibt's dann

01:21:35.930 --> 01:21:37.970
eine Verlosung und dann ist der nächste Vortrag und dann

01:21:37.970 --> 01:21:40.070
muss man sich vielleicht selber auf irgendwas vorbereiten, dann

01:21:40.070 --> 01:21:42.250
will irgendwie die eigene Crew irgendwas

01:21:42.250 --> 01:21:44.110
ähm. Oh, ein Konferenz-Experiment,

01:21:44.110 --> 01:21:45.670
da kann man auch eine eigene Folge zu machen, glaube ich, ja.

01:21:45.670 --> 01:21:48.150
Ähm, und das fand ich tatsächlich, ähm,

01:21:48.150 --> 01:21:49.930
ich, das finde das einen sehr wichtigen Punkt,

01:21:49.930 --> 01:21:51.390
weil es ja immer dann auch, ne, auch dann so,

01:21:51.390 --> 01:21:53.730
naja, nö, sie gehen umsaufen, nö, aber ich finde,

01:21:53.730 --> 01:21:56.130
es ist schon ein sehr, sehr schöner, ähm,

01:21:56.130 --> 01:21:57.790
sehr, sehr schöne Atmosphäre und

01:21:57.790 --> 01:21:59.750
eine Möglichkeit, mit Leuten nochmal so

01:21:59.750 --> 01:22:01.850
zu socialisen, auch mal Leute ein bisschen persönlicher,

01:22:01.910 --> 01:22:04.170
vielleicht auch kennenzulernen und, ähm,

01:22:04.170 --> 01:22:05.890
genau, also fand das wirklich schön

01:22:05.890 --> 01:22:07.830
und jetzt bei diesem Mal, ähm,

01:22:07.830 --> 01:22:09.630
das war so ein bisschen doppelt unglücklich, ähm,

01:22:09.630 --> 01:22:11.870
die, äh, dieses Konferenzgebäude in Vigo,

01:22:11.870 --> 01:22:13.770
das war direkt am Hafen, das war nicht so

01:22:13.770 --> 01:22:15.630
ein schöner Hafen, aber es war halt, immerhin hat man

01:22:15.630 --> 01:22:16.910
Meerblick, ähm,

01:22:16.910 --> 01:22:19.570
äh, und die andere Seite der Bucht war schön,

01:22:19.570 --> 01:22:21.350
äh, hatte eine

01:22:21.350 --> 01:22:23.950
gigantische Dachterrasse, also riesig

01:22:23.950 --> 01:22:25.910
und genau, oder fast

01:22:25.910 --> 01:22:27.690
genau als die Party anfing, kam ja das Gewitter auf,

01:22:27.690 --> 01:22:30.050
das wir drei Tage gewartet haben, ähm,

01:22:30.050 --> 01:22:31.450
ja, war dann blöd, weil,

01:22:31.750 --> 01:22:33.650
dann mussten wir halt in die kleinen Gänge rein,

01:22:33.650 --> 01:22:35.510
die halt irgendwie so die Räume verbunden haben

01:22:35.510 --> 01:22:37.510
und um neun war Schluss,

01:22:37.510 --> 01:22:39.350
was halt auch schade war, weil, ähm,

01:22:39.350 --> 01:22:41.390
wie gesagt, in, äh, Porto, glaube ich, waren

01:22:41.390 --> 01:22:43.430
bis eins oder zwei,

01:22:43.430 --> 01:22:44.770
ich glaube, in Kopenhagen davor

01:22:44.770 --> 01:22:47.470
war auch relativ lang, so lange wie Leute mehr da

01:22:47.470 --> 01:22:49.530
oder wie lang, solange die Organisatoren halt Lust hatten,

01:22:49.530 --> 01:22:51.630
so, dass das nicht abschließen zu wollen

01:22:51.630 --> 01:22:53.370
und, ähm, ja,

01:22:53.370 --> 01:22:55.070
das, das fand ich tatsächlich ein bisschen schade.

01:22:55.070 --> 01:22:57.370
Wird bestimmt seine Gründe gehabt haben,

01:22:57.370 --> 01:22:59.430
ich will mich da jetzt gar nicht irgendwie, ich hab nichts dazu

01:22:59.430 --> 01:23:01.550
beigetragen, ich will da nicht rummosern, ich persönlich fand's

01:23:01.590 --> 01:23:03.390
nur schade, weil, ähm, wie gesagt,

01:23:03.390 --> 01:23:05.330
ich das eigentlich, ich meine, es ist ein sehr schöner Ort,

01:23:05.330 --> 01:23:07.490
finde, und ich meine, auch da habe ich mich mit Leuten

01:23:07.490 --> 01:23:08.850
unterhalten, mit denen ich, mit denen ich

01:23:08.850 --> 01:23:11.450
mehr oder weniger im gleichen Raum saß für drei Tage

01:23:11.450 --> 01:23:13.450
und halt vorher noch nicht gesehen habe, hatten interessante

01:23:13.450 --> 01:23:15.610
Gespräche und, ähm,

01:23:15.610 --> 01:23:17.390
genau, das finde ich immer ein, äh,

01:23:17.390 --> 01:23:19.450
ein schöner Ort und, ähm, kann da auch

01:23:19.450 --> 01:23:20.530
nur eine Lanze dafür brechen.

01:23:20.530 --> 01:23:23.390
Ja, ich würde auch sagen, Socializing bei diesen Konferenzen ist mit

01:23:23.390 --> 01:23:25.510
so der Hauptgrund, warum man da, ich finde das ja auch

01:23:25.510 --> 01:23:27.350
gestern war ja wieder bei DDF auch immer

01:23:27.350 --> 01:23:29.310
super, dass man danach noch was essen geht, weil da auch immer

01:23:29.310 --> 01:23:31.430
der Hauptteil des Spaßes ist, also nichts gegen die ganz

01:23:31.430 --> 01:23:32.950
tollen Vorträge, die alle tollen Menschen machen,

01:23:32.950 --> 01:23:35.150
wie halt auch bestimmt bei der DangoCon, wo ich irgendwann

01:23:35.150 --> 01:23:37.290
auch da hinfährt und so, aber das Socializing ist ein großer Teil,

01:23:37.290 --> 01:23:39.310
dass man so Leute kennenlernt und, also

01:23:39.310 --> 01:23:41.350
dass diese Experience, die man von anderen Menschen mitbekommt,

01:23:41.350 --> 01:23:43.210
die was ähnliches machen, vielleicht ein bisschen anders

01:23:43.210 --> 01:23:45.330
als man selber und sich darüber austauschen, ist schon

01:23:45.330 --> 01:23:47.390
super, also, manchmal

01:23:47.390 --> 01:23:49.190
kann man auch selber mal ganz viel reden, das machen

01:23:49.190 --> 01:23:51.190
einige Leute gern, aber auch manchmal zuhören ist auch

01:23:51.190 --> 01:23:53.350
super und das ist irgendwie ja was, was

01:23:53.350 --> 01:23:55.150
Gutes, ich kann das auch, äh, sehr

01:23:55.150 --> 01:23:57.250
nachvollziehen, ich finde das auch mit den wichtigeren

01:23:57.250 --> 01:23:59.310
Teilen, dann, also, manchmal ist man da auch

01:23:59.310 --> 01:24:01.230
im Gang so ein bisschen, ne, und weil du gerade

01:24:01.270 --> 01:24:03.230
gesagt hast, das fand ich interessant, deine Art und Weise war

01:24:03.230 --> 01:24:05.350
wahrscheinlich sehr strukturiert und sehr organisiert,

01:24:05.350 --> 01:24:07.450
möglichst viel von dem Content mitzubekommen

01:24:07.450 --> 01:24:09.170
und, also, äh, ich

01:24:09.170 --> 01:24:11.170
kenne ja, also von der Europe-Python kenne ich zum Beispiel so,

01:24:11.170 --> 01:24:13.190
die ist ja lang und wenn man da halt die ganze Woche da ist,

01:24:13.190 --> 01:24:15.430
dann sind es ja sieben Tage, also zwei Tage

01:24:15.430 --> 01:24:17.050
Workshop, drei Tage Vorträge, zwei Tage

01:24:17.050 --> 01:24:19.290
irgendwas anderes, da tut es immer

01:24:19.290 --> 01:24:21.090
ganz gut, wenn man sich ein oder zwei Tage nicht

01:24:21.090 --> 01:24:23.110
ganz so vollpackt, weil man so ein bisschen

01:24:23.110 --> 01:24:24.950
sich so, ähm,

01:24:24.950 --> 01:24:27.350
fließen lässt, weil dann kommt man mehr mit Leuten

01:24:27.350 --> 01:24:29.110
ins Gespräch, die auch irgendwo rumstehen, vielleicht, vielleicht

01:24:29.110 --> 01:24:31.110
näher nochmal an irgendeinen Stand und dann hat sich dann mit den Leuten

01:24:31.110 --> 01:24:33.210
länger, anstatt dass man jetzt sagt, okay, meine Uhr, in zehn Minuten

01:24:33.210 --> 01:24:35.070
geht der nächste Vortrag los, der Kopf ist ja

01:24:35.070 --> 01:24:36.970
irgendwann eh voll oder man bleibt halt dann nochmal länger

01:24:36.970 --> 01:24:38.670
auf der Party oder man geht halt dann am

01:24:38.670 --> 01:24:40.950
Wochenende mit Leuten, die man kennengelernt hat, nochmal in die Stadt

01:24:40.950 --> 01:24:42.990
oder spazieren oder was von der Natur anschauen

01:24:42.990 --> 01:24:44.710
oder sowas, was auch irgendwie, glaube ich,

01:24:44.710 --> 01:24:47.050
mit dazugehören kann, aber das ist halt witzig, weil

01:24:47.050 --> 01:24:49.150
es so unterschiedliche Herangehensweisen gibt

01:24:49.150 --> 01:24:50.830
und ich halt auch Leute gesehen habe, die das ganz anders machen,

01:24:50.830 --> 01:24:52.730
es gibt Leute, die kommen halt nur für zwei Tage

01:24:52.730 --> 01:24:54.990
und da ist das halt dann sehr intensiv oder

01:24:54.990 --> 01:24:56.850
es gibt Leute, die sind nur bei den Workshops da und dann nie wieder gesehen

01:24:56.850 --> 01:24:59.190
oder Leute, die schaffen sogar nur so ein oder zwei Vorträgen,

01:24:59.570 --> 01:25:01.330
was manche an Kinderbetreuung liegt oder sowas,

01:25:01.330 --> 01:25:02.810
die man da auch netterweise hinbringen kann

01:25:02.810 --> 01:25:05.230
oder halt nur sogar Notzinssprings, glaube ich, auch Menschen,

01:25:05.230 --> 01:25:07.090
die halt wirklich nur da hingegangen sind, um mit den Leuten

01:25:07.090 --> 01:25:09.170
an Sachen zu arbeiten, aber

01:25:09.170 --> 01:25:10.910
das ist so witzig, weil diese, das ist so ein bisschen,

01:25:10.910 --> 01:25:13.070
ich weiß nicht, ob es eine Kulturfrage ist, aber so diese Art und Weise

01:25:13.070 --> 01:25:15.090
ändert sich je nach Lebensphase oder

01:25:15.090 --> 01:25:16.710
wo du gerade selber bist, total

01:25:16.710 --> 01:25:19.050
und das ist, glaube ich, auch eine der Herausforderungen

01:25:19.050 --> 01:25:20.890
für so Konferenzen, für die unterschiedlichen

01:25:20.890 --> 01:25:22.870
Ziele, die die Leute so mitbringen,

01:25:22.870 --> 01:25:24.470
irgendwie gut ausgestattet zu sein.

01:25:24.470 --> 01:25:27.170
Und mich würde dieses Django-Condi auf jeden Fall auch mal

01:25:27.170 --> 01:25:28.650
reizen, ehrlicherweise, ich finde das auch mal ganz nett.

01:25:28.650 --> 01:25:29.550
Es ist halt ein bisschen mehr

01:25:29.570 --> 01:25:31.250
Fokus auf Django, was auch mal cool ist.

01:25:31.250 --> 01:25:33.390
Also nächstes Mal ist es in Dublin, das ist auch nicht

01:25:33.390 --> 01:25:34.830
verkehrt. Ah, okay, da war ich jetzt schon, ja.

01:25:34.830 --> 01:25:37.490
Ich auch, ich fahre trotzdem gerne

01:25:37.490 --> 01:25:39.030
nochmal hin, ich finde das super. Dublin ist toll, ja.

01:25:39.030 --> 01:25:41.090
Weißt du auch schon, wo gibt es so einen Ort?

01:25:41.090 --> 01:25:43.450
Nein, also es gibt, glaube ich,

01:25:43.450 --> 01:25:44.290
eine

01:25:44.290 --> 01:25:47.230
Webseite, wo literally

01:25:47.230 --> 01:25:49.270
das Logo drauf ist, alles

01:25:49.270 --> 01:25:50.990
weitere folgt dann.

01:25:50.990 --> 01:25:52.990
Ich finde es auf jeden Fall sehr cool.

01:25:52.990 --> 01:25:55.270
Also Edinburgh und Vigo

01:25:55.270 --> 01:25:57.230
hätte ich wahrscheinlich beide auch gemacht, aber Vigo kann ich noch nicht,

01:25:57.230 --> 01:25:59.170
Edinburgh schon und Dublin, ja,

01:25:59.170 --> 01:25:59.550
ist das einfach.

01:25:59.570 --> 01:26:00.770
Das ist eine tolle Stadt, ne, Irland, das ist eh,

01:26:00.770 --> 01:26:02.270
wenn ich noch Bier trinken dürfte,

01:26:02.270 --> 01:26:04.230
wäre ganz toll.

01:26:04.230 --> 01:26:07.510
Überall wunderschöne Sachen. Gut, musst du halt Whisky trinken.

01:26:07.510 --> 01:26:08.230
Ja.

01:26:08.230 --> 01:26:11.630
Wir waren ja irgendwann mal cool, ja.

01:26:11.630 --> 01:26:13.450
Am Shannon entlang ist da immer

01:26:13.450 --> 01:26:15.270
toll, da gibt es tolle Sachen. Ich meine, es ist halt sehr

01:26:15.270 --> 01:26:16.370
moderne, hippe Stadt auch, ne.

01:26:16.370 --> 01:26:19.530
Naja, gut, das sind die meistens alle, irgendwo.

01:26:19.530 --> 01:26:20.950
Bis auf hier

01:26:20.950 --> 01:26:23.370
noch ein, ja.

01:26:23.370 --> 01:26:25.410
Aber wie, das waren

01:26:25.410 --> 01:26:27.470
jetzt aber drei Tage quasi, ne? Genau, das waren

01:26:27.470 --> 01:26:29.250
drei Tage Konferenz, da waren immer wieder,

01:26:29.570 --> 01:26:31.890
also die hatten eigentlich nur eine, also es gab einen Konferenztrack

01:26:31.890 --> 01:26:33.590
und dazwischen gab es immer wieder mal in einem

01:26:33.590 --> 01:26:35.750
anderen Raum dann die Workshops. Ich habe die Workshops

01:26:35.750 --> 01:26:37.650
nicht teilgenommen, ich nehme irgendwie von diesen

01:26:37.650 --> 01:26:38.630
Workshops nicht so viel mit.

01:26:38.630 --> 01:26:41.730
Ich habe auch, ich war letztes Mal

01:26:41.730 --> 01:26:43.570
in Edinburgh mal bei den Sprints dabei und

01:26:43.570 --> 01:26:45.550
da muss man auch sagen, das ist kein Umfeld, wo

01:26:45.550 --> 01:26:47.370
ich wirklich produktiv arbeiten kann, ne. Also

01:26:47.370 --> 01:26:49.450
dann sitzen da ganz viele Leute in einem Raum und

01:26:49.450 --> 01:26:51.010
es ist halt so ein gewisser Geräuschpegel.

01:26:51.010 --> 01:26:53.470
Weiß ich nicht, jedem zweiten fehlt irgendwie

01:26:53.470 --> 01:26:55.450
Strom und dann hast du da kein Ladekabel

01:26:55.450 --> 01:26:57.790
und es ist,

01:26:57.790 --> 01:26:59.490
also es ist unruhig,

01:26:59.570 --> 01:27:00.810
Interessant, also ich finde das mit den Workshops

01:27:00.810 --> 01:27:03.590
total anders, also weil, vielleicht bist du

01:27:03.590 --> 01:27:05.210
schon viel weiter als ich in vielen Punkten, aber

01:27:05.210 --> 01:27:07.450
die Dinge, die ich da so mitgenommen hatte,

01:27:07.450 --> 01:27:09.490
habe ich immer super viel gelernt und das

01:27:09.490 --> 01:27:11.470
hängt wahrscheinlich total davon ab, was für ein

01:27:11.470 --> 01:27:13.450
Workshop man da hat und welches Niveau da ist und

01:27:13.450 --> 01:27:15.570
wenn man eine gute Auswahl hat, findet man bestimmt was.

01:27:15.570 --> 01:27:17.390
Also ich habe wirklich immer da am meisten

01:27:17.390 --> 01:27:18.930
von mir genommen, mehr als von den vielen Talks.

01:27:18.930 --> 01:27:21.510
Aber ich glaube auch was, ich gehe halt auch ganz

01:27:21.510 --> 01:27:23.470
gerne auf die Konferenzen, nehme

01:27:23.470 --> 01:27:25.250
mir die Stichpunkte mit und

01:27:25.250 --> 01:27:27.370
sortiere dann quasi danach nochmal so ein bisschen

01:27:27.370 --> 01:27:29.290
aus, so was speichere ich ab, also es gibt

01:27:29.570 --> 01:27:31.810
hier irgendwo, zum Beispiel diese Sache mit der Architektur,

01:27:31.810 --> 01:27:32.950
das finde ich super spannend, ich

01:27:32.950 --> 01:27:35.690
müsste auch nochmal, also ich gehe da auch nochmal

01:27:35.690 --> 01:27:36.870
ins Gespräch mit ihr

01:27:36.870 --> 01:27:39.670
und gucke mal, ob wir sie vielleicht

01:27:39.670 --> 01:27:41.730
mal zum Django Meetup Köln oder sowas einladen können

01:27:41.730 --> 01:27:43.470
oder sowas, weil das ist halt ein Thema, das halt für mich

01:27:43.470 --> 01:27:45.570
super spannend ist und wo ich auch noch

01:27:45.570 --> 01:27:46.670
definitiv zu wenig weiß

01:27:46.670 --> 01:27:48.710
und

01:27:48.710 --> 01:27:50.890
das ist, so gehe ich dann damit um.

01:27:50.890 --> 01:27:53.490
Ich weiß jetzt nicht, vielleicht gleich deine Länge der Workshop, also die Workshop, die ich hatte, waren halt

01:27:53.490 --> 01:27:55.550
mindestens einmal einen halben Tag, also vier Stunden oder so.

01:27:55.550 --> 01:27:56.510
Die sind kürzer da.

01:27:56.510 --> 01:27:59.430
Ich bin da richtig tief in die Themen reingekommen, habe mich da richtig

01:27:59.430 --> 01:28:01.410
reingehackt, habe da auch wirklich was gemacht und habe dann auch

01:28:01.410 --> 01:28:03.530
teilweise noch wirklich nachgearbeitet und die Dinge wirklich

01:28:03.530 --> 01:28:04.970
umgesetzt und benutzt.

01:28:04.970 --> 01:28:07.470
Also da sind die eher kürzer, also ich glaube so ein bis zwei

01:28:07.470 --> 01:28:09.550
Stunden, glaube ich, ich bin nicht ganz

01:28:09.550 --> 01:28:11.630
sicher. Ich habe letztes oder letztes Mal

01:28:11.630 --> 01:28:13.170
habe ich mal welche mitgemacht, aber wie gesagt, irgendwie

01:28:13.170 --> 01:28:15.470
die Atmosphäre ist nicht so ganz meins. Also ich konnte zum Beispiel auch

01:28:15.470 --> 01:28:17.250
konzentriert arbeiten, weil es da ruhig war und

01:28:17.250 --> 01:28:19.310
wo ich direkt gehen muss, ist bei den Sprints.

01:28:19.310 --> 01:28:21.410
Sprints sind immer sehr chaotisch, meistens, also ich

01:28:21.410 --> 01:28:23.470
nutze Sprints oft dann auch zum Socializen, mit den Leuten quatschen,

01:28:23.470 --> 01:28:24.570
um nochmal rumzustehen.

01:28:24.570 --> 01:28:27.490
Aber ich muss ehrlich gestehen,

01:28:27.490 --> 01:28:29.290
ich habe bei den Sprints auch immer nicht das Thema gefunden

01:28:29.290 --> 01:28:31.370
und ich sagte so, wow, das finde ich jetzt super toll

01:28:31.370 --> 01:28:32.810
und da will ich jetzt mitmachen.

01:28:32.810 --> 01:28:34.290
Weil ich glaube, das ist, wenn du

01:28:34.290 --> 01:28:37.550
idealerweise vielleicht, wenn man ein Thema bei dem Sprint

01:28:37.550 --> 01:28:39.030
hat, wo man vielleicht sogar schon drin ist,

01:28:39.030 --> 01:28:41.170
wo man das ganze Setup schon gemacht hat, wo man die

01:28:41.170 --> 01:28:43.490
Entwicklungsumgebung bei sich auf dem Rechner schon eh drauf hat

01:28:43.490 --> 01:28:45.130
und dann sich einfach einloggen kann, dann kann man das Feature

01:28:45.130 --> 01:28:47.370
zu nehmen, das mit anderen Leuten mal so diskutieren,

01:28:47.370 --> 01:28:49.470
durchdenken und dann von mehreren Seiten mal

01:28:49.470 --> 01:28:51.370
echt mal die Lösung, die man gerade hat, mit drei

01:28:51.370 --> 01:28:52.850
oder vier Leuten, die da fokussiert dran arbeiten,

01:28:52.850 --> 01:28:55.150
wirklich implementieren. Das ist auch cool, glaube ich.

01:28:55.150 --> 01:28:57.310
Auf jeden Fall, auf jeden Fall. Also wir haben

01:28:57.310 --> 01:28:59.150
ja auch beim Django Meetup in Köln

01:28:59.150 --> 01:29:00.590
jetzt im Januar hatten wir

01:29:00.590 --> 01:29:02.950
Sarah A. und Thibaut, also die

01:29:02.950 --> 01:29:05.190
sind beide Django Board Members, ganz frisch geworden,

01:29:05.190 --> 01:29:06.850
hatten wir eingeladen,

01:29:06.850 --> 01:29:09.130
sind netterweise vorbeigekommen, da haben wir

01:29:09.130 --> 01:29:10.510
dann auch einen Open Source Sprint gemacht.

01:29:10.510 --> 01:29:12.810
Der schon am Mittag war, wo ich leider erst so spät konnte, ja.

01:29:12.810 --> 01:29:14.570
Und das war

01:29:14.570 --> 01:29:16.730
auch echt cool. Also es war eine coole Erfahrung.

01:29:16.730 --> 01:29:18.790
Jeder hat da so ein bisschen an dem gearbeitet, wo er

01:29:18.790 --> 01:29:20.990
drauf Lust hatte. Es sind mehrere Tickets auch

01:29:20.990 --> 01:29:21.670
erstellt worden.

01:29:21.670 --> 01:29:23.750
Und

01:29:23.750 --> 01:29:26.990
also wurde an mehreren Podcasts auch erstellt

01:29:26.990 --> 01:29:29.010
worden. Und danach hat man

01:29:29.010 --> 01:29:31.030
auch so ein bisschen Diskussionen, so Future of Django,

01:29:31.030 --> 01:29:32.910
was auch super interessant war, weil man halt wirklich mal

01:29:32.910 --> 01:29:34.810
zwei Board Members am Start hat und die dann

01:29:34.810 --> 01:29:36.390
wirklich mit denen so ins 1 zu 1 gehen kann.

01:29:36.390 --> 01:29:38.850
Aber wie gesagt, ich bin da gar nicht dagegen oder so. Ich sage

01:29:38.850 --> 01:29:40.790
nur, das ist halt nicht so mein Arbeitsumfeld.

01:29:40.790 --> 01:29:42.950
Ich finde, fürs wirklich Programmieren

01:29:42.950 --> 01:29:44.710
Also kategorisch, ja. Also es ist nicht nur so zufällig

01:29:44.710 --> 01:29:46.870
gewesen, sondern du denkst halt wirklich, brauchst eher deine Ruhe.

01:29:46.870 --> 01:29:48.890
Ja, definitiv. Aber das, was ich dann interessant

01:29:48.890 --> 01:29:50.770
finde, ist, dass du zwischendurch, also ich weiß nicht,

01:29:50.770 --> 01:29:52.750
ob sich das geändert hat, sagtest, dass du im

01:29:52.750 --> 01:29:54.570
Büro total die schöne Arbeitsatmosphäre hast und

01:29:54.570 --> 01:29:56.830
das sogar zu Hause vorziehst. Wo ich immer

01:29:56.830 --> 01:29:58.630
sagen würde, im Büro habe ich immer den Stress, das mache ich lieber

01:29:58.630 --> 01:30:00.870
zu Hause. Also jetzt, wo ich wieder öfters

01:30:00.870 --> 01:30:02.950
ins Büro gehe, also ich mache so drei Tage

01:30:02.950 --> 01:30:04.490
Büro, zwei Tage zu Hause,

01:30:04.490 --> 01:30:06.730
ist,

01:30:06.730 --> 01:30:08.750
als ich nur einen Tag

01:30:08.750 --> 01:30:10.490
die Woche im Büro war, dann hast du halt ständig

01:30:10.490 --> 01:30:12.630
irgendjemanden, mit dem du dich über die letzte Woche austauschen

01:30:12.630 --> 01:30:14.710
musst. Das lenkt dann schon sehr ab. Aber wenn du drei Tage

01:30:14.710 --> 01:30:16.530
da bist, dann hast du halt deine Nasen alle gesehen

01:30:16.530 --> 01:30:18.610
und dann streckt sich das so ein bisschen über die drei Tage und

01:30:18.610 --> 01:30:20.550
dann ist es eher das, wenn man eh mal gerade eine Pause

01:30:20.550 --> 01:30:22.550
braucht und mal kurz zu die Tür geht oder so, dass man halt damit

01:30:22.550 --> 01:30:24.470
jemanden hat, mit dem man reden kann. Das finde ich ganz angenehm.

01:30:26.690 --> 01:30:28.510
Und tatsächlich ist auch, dass

01:30:28.510 --> 01:30:30.590
Post-Corona bei uns auch einfach nicht so

01:30:30.590 --> 01:30:32.630
viele Leute im Büro sind, dass wirklich da ein gewisser

01:30:32.630 --> 01:30:34.590
Lärmpegel entstehen könnte. Ich meine, natürlich

01:30:34.590 --> 01:30:36.510
telefoniert vielleicht mal irgendwer irgendwo oder so,

01:30:36.510 --> 01:30:37.930
aber es gibt ja immer noch Kopfhörer.

01:30:37.930 --> 01:30:40.510
Dann bin ich ins Büro, dann muss ich eine Hose anziehen, das ist so

01:30:40.510 --> 01:30:40.890
fürchterlich.

01:30:40.890 --> 01:30:46.070
For the record, du hast jetzt auch eine Hose an.

01:30:46.070 --> 01:30:48.190
Hey, jetzt hast du wieder gespoilert.

01:30:48.190 --> 01:30:50.170
Nein.

01:30:50.170 --> 01:30:52.290
Ich wollte jetzt niemanden zu nahe drehen.

01:30:56.550 --> 01:30:59.690
Ja, wir könnten noch Pics machen.

01:30:59.690 --> 01:31:02.530
Das klingt, glaube ich,

01:31:02.530 --> 01:31:04.670
ganz gut und dann ist es eigentlich auch schon

01:31:04.670 --> 01:31:06.610
so eine runde Sache.

01:31:06.610 --> 01:31:10.590
Ja, dann bin ich ja mal gespannt, was für Pics

01:31:10.590 --> 01:31:12.990
wollt ihr denn nehmen?

01:31:12.990 --> 01:31:16.270
Du hast einen von mir geklaut, ich weiß gar nicht,

01:31:16.270 --> 01:31:17.330
ob ich den schon gesagt habe.

01:31:17.330 --> 01:31:18.850
Hab ich den geklaut? Ja, das kann sein.

01:31:18.850 --> 01:31:22.330
Ich habe mich in letzter Zeit

01:31:22.330 --> 01:31:24.370
nochmal so ein bisschen, also es gibt

01:31:24.370 --> 01:31:26.070
da auch sehr schön, das kann ich vielleicht dazu sagen,

01:31:26.410 --> 01:31:28.450
Vortrag von Simon Willison

01:31:28.450 --> 01:31:30.330
zu einem Kommandozeilentool, was er

01:31:30.330 --> 01:31:32.470
geschrieben hat, namens LLM.

01:31:32.470 --> 01:31:34.630
Und das LLM picke ich mal,

01:31:34.630 --> 01:31:36.730
weil da habe ich jetzt auch wieder ein bisschen mehr mitgemacht

01:31:36.730 --> 01:31:38.590
und das ist halt wirklich

01:31:38.590 --> 01:31:39.910
nett, weil man da

01:31:39.910 --> 01:31:42.370
ja, unterschiedliche

01:31:42.370 --> 01:31:44.350
Modelle mal so ausprobieren kann, damit man so ein bisschen

01:31:44.350 --> 01:31:46.030
rumspielen kann. Aber auch,

01:31:46.030 --> 01:31:48.390
du kannst halt einfach in deine Kommandozeile

01:31:48.390 --> 01:31:50.330
reinpipen. Genau, du kannst halt

01:31:50.330 --> 01:31:52.370
ja, für solche, also ich

01:31:52.370 --> 01:31:54.430
benutze es dann halt auch für solche Dinge

01:31:54.430 --> 01:31:56.270
wie alle, ich habe jetzt jetzt

01:31:56.270 --> 01:31:58.090
sogar eine Funktion tatsächlich für DjangoCast

01:31:58.090 --> 01:31:59.290
geschrieben, wo ich sagen kann,

01:31:59.290 --> 01:32:02.450
gib mir doch mal den gesamten

01:32:02.450 --> 01:32:04.270
Source-Code aus oder gib mir mal den gesamten Source-Code

01:32:04.270 --> 01:32:05.930
mit Tests aus oder so

01:32:05.930 --> 01:32:08.270
und dann, und mach mir das zu einem

01:32:08.270 --> 01:32:10.230
Prompt, wo dann halt die Dateinamen auch

01:32:10.230 --> 01:32:12.170
noch immer mit drüberstehen und

01:32:12.170 --> 01:32:14.230
dann kann ich sagen, okay, pipe das mal irgendwie

01:32:14.230 --> 01:32:16.010
in ein Modell rein und dann mache ich da irgendwie

01:32:16.010 --> 01:32:17.890
einen System-Prompt zu, von wegen, ja,

01:32:17.890 --> 01:32:19.790
habe ich bei der Dokumentation irgendwas vergessen

01:32:19.790 --> 01:32:22.190
oder kann man das irgendwie, es gibt so offensichtliche Dinge,

01:32:22.190 --> 01:32:23.610
die man irgendwie besser machen kann und so

01:32:23.610 --> 01:32:26.130
und ja, das funktioniert

01:32:26.130 --> 01:32:27.850
tatsächlich ziemlich gut. Alle

01:32:27.850 --> 01:32:30.070
Anfragen und Antworten

01:32:30.070 --> 01:32:31.990
landen in der SQLite, das heißt, hinterher kann man sich auch

01:32:31.990 --> 01:32:34.150
gut angucken, was da, also man hat alle Sachen,

01:32:34.150 --> 01:32:36.030
die man je irgendwie gepromptet hat und

01:32:36.030 --> 01:32:37.630
wo man Antworten gekriegt hat, hat man in

01:32:37.630 --> 01:32:39.770
einem strukturierten Format, das man halt auch wieder

01:32:39.770 --> 01:32:41.890
irgendwie auslesen kann und analysieren kann.

01:32:41.890 --> 01:32:43.930
Total heißt halt, deine Templates verwenden, die man halt auch

01:32:43.930 --> 01:32:46.110
dann hintereinander pipen kann und dann kann man

01:32:46.110 --> 01:32:47.670
auch das Default-Template überschreiben, wenn man will und so.

01:32:47.670 --> 01:32:50.130
Da hat man halt immer schon sein System-Prompt

01:32:50.130 --> 01:32:51.610
und sein Alignment so ein bisschen

01:32:51.610 --> 01:32:54.210
vor oder hinter dem ganzen Zeugs, was man

01:32:54.210 --> 01:32:55.990
da kommuniziert. Das finde ich auch super

01:32:55.990 --> 01:32:57.970
cool. Man kann jetzt, also ich habe

01:32:57.970 --> 01:33:00.070
zum Beispiel so einen, den nenne ich dann den Senior,

01:33:00.070 --> 01:33:01.930
bereite ich dann das Template Senior, dann gibt der mir immer

01:33:01.930 --> 01:33:04.010
schnippische Antworten, wie ich das von Jochen immer kenne.

01:33:04.010 --> 01:33:04.430
Nein.

01:33:04.430 --> 01:33:07.830
Es funktioniert super, es macht

01:33:07.830 --> 01:33:09.870
sehr viel Spaß und der sagt immer so,

01:33:09.870 --> 01:33:11.950
warum hast du das denn nicht selber rausgefunden? Jetzt auch die Anleitung

01:33:11.950 --> 01:33:13.950
und die ist gut. Es ist toll und es macht so ein bisschen

01:33:13.950 --> 01:33:15.810
Spaß beim Arbeiten, wenn man dann Fragen

01:33:15.810 --> 01:33:17.290
stellt und jemand, der dann so antwortet.

01:33:17.290 --> 01:33:18.570
Sehr lustig.

01:33:18.570 --> 01:33:21.990
Sehr gut. Genau.

01:33:21.990 --> 01:33:23.670
Ja, also das Ding,

01:33:23.670 --> 01:33:25.850
ups, ja, das wäre

01:33:25.850 --> 01:33:26.870
mein Pick, genau.

01:33:26.870 --> 01:33:28.710
Ja.

01:33:28.710 --> 01:33:30.450
Ja, äh, Ronny.

01:33:30.450 --> 01:33:33.510
Boah, ähm,

01:33:33.510 --> 01:33:35.710
so ganz spontan fallen

01:33:35.710 --> 01:33:37.610
mir nicht mehr

01:33:37.610 --> 01:33:39.570
Sachen ein. Wie, du kennst etwa die Praxis

01:33:39.570 --> 01:33:41.510
nicht von dem Pick der Woche,

01:33:41.510 --> 01:33:43.590
des Monats hier bei uns im Podcast? Also ich

01:33:43.590 --> 01:33:45.670
kenne das doch, aber mir fällt gerade irgendwie nichts wirklich ein,

01:33:45.670 --> 01:33:47.010
was ich nicht gerade schon irgendwie in einer Art und Weise erwähnt habe.

01:33:47.010 --> 01:33:49.750
Oder hast du vielleicht mal einen interessanten Talk gesehen?

01:33:49.750 --> 01:33:51.470
Oder du kannst ja, genau, wenn du einen Talk

01:33:51.470 --> 01:33:53.730
zum Beispiel bei der DjangoCon super gefallen hast,

01:33:53.730 --> 01:33:55.670
dann können die Leute ihn jetzt noch nicht

01:33:55.670 --> 01:33:57.410
sehen, aber irgendwie

01:33:57.410 --> 01:33:59.410
sich schon mal darauf freuen, dass es den dann später irgendwo

01:33:59.410 --> 01:34:01.590
auf YouTube gibt oder so. Also wie gesagt, der, der Talk

01:34:01.590 --> 01:34:03.490
über die, äh, die Layered Architect

01:34:03.490 --> 01:34:05.050
über Django. Ah, ja, okay, gut zu hören, ja.

01:34:05.050 --> 01:34:07.330
Ähm, ich weiß nicht genau, wie er hieß,

01:34:07.330 --> 01:34:08.990
der war auf jeden Fall sehr spannend

01:34:08.990 --> 01:34:11.310
und auch einen Talk, wenn man sich für

01:34:11.310 --> 01:34:13.310
Django interessiert und auch in das, in das,

01:34:13.310 --> 01:34:15.570
die Idee bezüglich, ähm,

01:34:15.570 --> 01:34:17.650
großer Applikationen und wie lässt

01:34:17.650 --> 01:34:19.390
man eine Django-Applikation wachsen, weil ich bin schon

01:34:19.390 --> 01:34:21.710
davon überzeugt, dass man auch große Applikationen

01:34:21.710 --> 01:34:23.510
damit bauen kann. Ja. Es ist nicht nur zwingend

01:34:23.510 --> 01:34:25.390
nur dieses kleine, äh, Blog-Ding,

01:34:25.470 --> 01:34:27.430
was man, womit's mal angefangen hat. Ja. Da gibt es

01:34:27.430 --> 01:34:29.470
einen Talk, äh, Scaling Django to 500

01:34:29.470 --> 01:34:31.430
Apps. Ähm, das ist auch

01:34:31.430 --> 01:34:32.930
Kraken-basiert, Kraken, äh,

01:34:32.930 --> 01:34:34.790
hier, Octopus Energy

01:34:34.790 --> 01:34:37.410
related, glaube ich. Und die haben

01:34:37.410 --> 01:34:39.410
eine Idee von, also Django-Apps ist halt

01:34:39.410 --> 01:34:41.270
im Endeffekt eine Art und Weise, wie man den Code kapselt.

01:34:41.270 --> 01:34:42.870
Das haben ja viele, ähm, Frameworks.

01:34:42.870 --> 01:34:45.070
Und die haben da eine Idee, ähm,

01:34:45.070 --> 01:34:47.270
naja, in ganz einfach, sie missbrauchen da ein bisschen das

01:34:47.270 --> 01:34:49.250
Framework, machen was, was nicht vorgesehen war, was aber

01:34:49.250 --> 01:34:51.190
trotzdem funktioniert, nämlich die machen Sub-Apps.

01:34:51.190 --> 01:34:53.490
Und haben da so eine Sprint-to-Naming-Konvention,

01:34:53.490 --> 01:34:55.030
um im Endeffekt zu sagen,

01:34:55.270 --> 01:34:57.190
ähm, ich hab, ich mö, ich hab immer noch eine Domäne,

01:34:57.190 --> 01:34:59.010
die sich um mein Projekt oder

01:34:59.010 --> 01:35:01.050
mein Accounting oder mein weiß der Geier was

01:35:01.050 --> 01:35:02.950
kümmert, mein Produkt, aber da drin,

01:35:02.950 --> 01:35:05.030
das ist so groß geworden, ich möchte das weiter strukturieren.

01:35:05.030 --> 01:35:06.990
Mhm. Und, ähm, das

01:35:06.990 --> 01:35:08.970
finde ich super spannend, das ist gerade auch eine Sache, über die ich sehr

01:35:08.970 --> 01:35:10.830
aktiv nachdenke, wie ich das in meinen

01:35:10.830 --> 01:35:13.130
Projekt, in dem ich aktuell arbeite, reinbringen kann.

01:35:13.130 --> 01:35:15.150
Ähm, weil ich, ich jetzt

01:35:15.150 --> 01:35:17.130
zum Beispiel in meinem Projekt, wir haben's, ähm, wir haben

01:35:17.130 --> 01:35:19.090
da so ein bisschen, also manche

01:35:19.090 --> 01:35:21.030
Apps sind einfach riesig geworden, wo man sagen muss, die müssen

01:35:21.030 --> 01:35:23.150
aufgeteilt werden. Und mit diesem Sub-App-Gedanken

01:35:23.150 --> 01:35:25.070
bin ich heute einfach nur in der, in diesem

01:35:25.070 --> 01:35:27.030
Structure-View, also wo man quasi sieht, welche Klassen

01:35:27.030 --> 01:35:28.910
gibt es in meiner Datei. Einfach mal mit

01:35:28.910 --> 01:35:31.070
einem Blick, ähm, sind mir und meinem Kollegen

01:35:31.070 --> 01:35:32.830
wirklich einfach so, okay, das ist ein

01:35:32.830 --> 01:35:34.930
Kontext, also das ist so eine Sub-App, das ist eine,

01:35:34.930 --> 01:35:37.050
das ist eine, also es war super schnell, wie so Sachen

01:35:37.050 --> 01:35:39.070
so reingehen, wo man auch sagt, okay, das gehört hier echt gar nicht rein,

01:35:39.070 --> 01:35:40.630
das muss eigentlich komplett woanders hin.

01:35:40.630 --> 01:35:42.970
Einfach nur mit einem Blick und diesem Gedanken, dass es dieses,

01:35:42.970 --> 01:35:44.650
dieses Sub-App-Pattern gibt. Mhm.

01:35:44.650 --> 01:35:46.930
Und dann auch bei ein paar Sachen gesagt, okay, das ist definitiv keine

01:35:46.930 --> 01:35:48.850
Sub-App, das muss einfach, das ist ein Standalone so, ne,

01:35:48.850 --> 01:35:50.990
das kann man gut rausziehen. Ähm, das finde ich

01:35:50.990 --> 01:35:53.050
auf jeden Fall einen sehr interessanten Vortrag, den ich, äh,

01:35:53.050 --> 01:35:54.950
jedem ans Herz legen kann, der sich für

01:35:54.950 --> 01:35:56.170
sowas interessiert.

01:35:56.170 --> 01:35:58.710
Sub-Apps habe ich auch in letzter Woche in irgendeinem Projekt eingebaut,

01:35:58.710 --> 01:36:00.610
aber ohne das Pattern jetzt so zu. Aber ich bin

01:36:00.610 --> 01:36:02.610
eigentlich eher, äh, gut, vielleicht

01:36:02.610 --> 01:36:04.810
bin ich da auch irgendwie, irgendwie falsch abgebogen,

01:36:04.810 --> 01:36:06.750
aber ich bin eigentlich eher so auf dem, ich mach

01:36:06.750 --> 01:36:08.650
gar keine Django-Apps mehr, weil, äh,

01:36:08.650 --> 01:36:10.790
also, immer wenn ich, wenn ich, wie sonst?

01:36:10.790 --> 01:36:12.810
Naja, einfach ganz

01:36:12.810 --> 01:36:14.710
stinknormal mit Python, äh,

01:36:14.710 --> 01:36:16.870
Wortmitteln Dinge modularisieren. Modular,

01:36:16.870 --> 01:36:18.670
ja, ja, ja. Weil, weil das Problem bei den

01:36:18.670 --> 01:36:20.330
Apps ist halt, äh, einmal,

01:36:20.330 --> 01:36:22.670
äh, ja, es ist halt

01:36:22.670 --> 01:36:23.030
irgendwie so eine

01:36:23.050 --> 01:36:24.490
Spezialgeschichte, die halt irgendwie anders

01:36:24.490 --> 01:36:25.850
funktioniert als alles andere.

01:36:25.850 --> 01:36:28.350
Und du musst es halt auch in den Settings ja immer

01:36:28.350 --> 01:36:30.230
dann mit setzen und so. Und dann,

01:36:30.230 --> 01:36:32.470
äh, das, was ich eigentlich am,

01:36:32.470 --> 01:36:34.590
am, äh, äh, fiesesten

01:36:34.590 --> 01:36:36.350
finde, ist, dass man halt, wenn man, man kann

01:36:36.350 --> 01:36:38.410
halt Sachen schlecht refactoren, so von

01:36:38.410 --> 01:36:40.530
einer App zum Beispiel in eine andere, dann man kann die Migration

01:36:40.530 --> 01:36:42.350
nicht umziehen. Nicht so richtig. Aber so Modelle, genau,

01:36:42.350 --> 01:36:44.470
wäre so ein Punkt, wo ich sage, wo deine App für, wenn es

01:36:44.470 --> 01:36:46.390
irgendwo Modelle gibt, ist für mich

01:36:46.390 --> 01:36:48.410
immer bisher so eine App. Ja, aber was, was

01:36:48.410 --> 01:36:50.330
machst du dann, wenn, wenn du mal das eine Modell

01:36:50.330 --> 01:36:52.250
in eine andere App ziehen willst? Das ist mühsam, das habe ich schon

01:36:52.250 --> 01:36:52.850
gemacht. Ja.

01:36:53.050 --> 01:36:55.050
Es geht, aber es ist mühsam. Also, weil,

01:36:55.050 --> 01:36:57.550
ja. Also musst du halt mit

01:36:57.550 --> 01:36:58.850
RAW, RAW SQL und

01:36:58.850 --> 01:37:01.430
Daten halt. Ja, ja, klar, du kannst natürlich,

01:37:01.430 --> 01:37:03.350
das geht schon, aber es ist halt nicht einfach mal

01:37:03.350 --> 01:37:05.310
ein verschiebtes. Nee, nee, da kann man auch was kaputt

01:37:05.310 --> 01:37:06.690
machen. Ja, genau.

01:37:06.690 --> 01:37:09.290
Wenn, wenn man es halt alles in einer App hat,

01:37:09.290 --> 01:37:10.550
sozusagen, dann kann man es einfach umziehen.

01:37:10.550 --> 01:37:13.110
Ist eine interessante Idee, habe ich nicht drüber nachgedacht,

01:37:13.110 --> 01:37:15.150
dass wir diese Modellis des Maiko

01:37:15.150 --> 01:37:17.370
diskutieren. Ich habe, ich habe meistens dann zum Beispiel

01:37:17.370 --> 01:37:19.170
Models, äh, also wenn es größer wird, dann halt,

01:37:19.170 --> 01:37:20.770
ich habe jetzt halt ein Models-Verzeichnis

01:37:20.770 --> 01:37:23.030
und dann habe ich halt. Alle Models in einer Datei.

01:37:23.050 --> 01:37:24.970
Nee, genau, das eben nicht mehr, weil das wird dann halt riesig.

01:37:24.970 --> 01:37:27.030
Ja. Also, also, wenn,

01:37:27.030 --> 01:37:29.070
wenn Models irgendwie größer wird als, als tausend

01:37:29.070 --> 01:37:30.990
Zeilen oder so, dann würde ich denken, na gut, dann wahrscheinlich

01:37:30.990 --> 01:37:33.030
sollte man es mal ein bisschen aufteilen. Und,

01:37:33.030 --> 01:37:35.030
ähm, ja, dann kann man die ja auch so gruppieren

01:37:35.030 --> 01:37:36.910
und dann macht man, hat man noch eine Init-Py,

01:37:36.910 --> 01:37:38.970
in der man dann halt irgendwie festlegt,

01:37:38.970 --> 01:37:40.790
welche überhaupt exportiert werden sollen, weil viele Dinge

01:37:40.790 --> 01:37:43.070
braucht man gar nicht nach außen reichen, sondern die sind ja rein intern.

01:37:43.070 --> 01:37:45.010
Und, äh. Das ist interessant,

01:37:45.010 --> 01:37:46.670
da habe ich noch nicht drüber nachgedacht, um so eine API zu sehen.

01:37:46.670 --> 01:37:48.870
Ja, ja, das, das finde ich auch, also ich mache halt, also

01:37:48.870 --> 01:37:50.810
unterverzeichnet, wo halt nur bestimmte Sachen rauskommen und die anderen

01:37:50.810 --> 01:37:52.790
Sachen, also dann implizit intern, aber.

01:37:52.790 --> 01:37:54.890
Das ist, das ist interessant. Habe ich

01:37:54.890 --> 01:37:56.630
heute noch drüber nachgedacht, aber, ähm,

01:37:56.630 --> 01:37:58.930
auf diese, auf diesen, also dass das ein Benefit

01:37:58.930 --> 01:38:00.530
ist, habe ich, äh, bin ich drauf gekommen.

01:38:00.530 --> 01:38:01.090
Das ist interessant.

01:38:01.090 --> 01:38:04.010
Ja. Ja, cool.

01:38:04.010 --> 01:38:06.970
Und dein Pick? Ähm, mein Pick,

01:38:06.970 --> 01:38:08.910
ich habe natürlich wieder von Jens geklaut, der das in unsere

01:38:08.910 --> 01:38:10.670
Gruppe geschrieben hat, das ist, äh, Monkey Type.

01:38:10.670 --> 01:38:12.530
Ähm, das,

01:38:12.530 --> 01:38:14.990
glaube ich, von Instagram entwickelt worden ist, wenn ich das richtig verstanden habe.

01:38:14.990 --> 01:38:17.190
Äh, und das baut dir Type Annotations.

01:38:17.190 --> 01:38:18.310
Ah.

01:38:18.310 --> 01:38:20.790
Das heißt, du gehst einfach hin und, äh,

01:38:20.810 --> 01:38:23.090
hast irgendeine Python-Funktion oder sowas

01:38:23.090 --> 01:38:24.910
und sagst dann Command-Teile Monkey Type

01:38:24.910 --> 01:38:26.930
und dann nimmt der halt die File

01:38:26.930 --> 01:38:28.990
oder das Ding und, äh, schreibt da die Annotations

01:38:28.990 --> 01:38:30.850
dran. Mhm. Und das ist gar nicht so schlecht.

01:38:30.850 --> 01:38:32.810
Da, also, das funktioniert besser, als man

01:38:32.810 --> 01:38:34.770
vielleicht denkt. Mhm. Ja.

01:38:34.770 --> 01:38:36.810
Und, äh, ja, das, also, wenn man halt gerade

01:38:36.810 --> 01:38:38.570
nicht so weiß, hey, man möchte irgendwas Type Annotieren, also,

01:38:38.570 --> 01:38:40.090
warum man, wenn man das mal möchte,

01:38:40.090 --> 01:38:42.830
dann macht man das doch. Und dann sieht man,

01:38:42.830 --> 01:38:44.930
was da passiert, das kann einem schon ein bisschen Arbeit abnehmen.

01:38:44.930 --> 01:38:46.410
Mhm. Und irgendwie,

01:38:46.410 --> 01:38:48.670
man entdeckt manchmal sogar auch Bugs, weil man halt so,

01:38:48.670 --> 01:38:50.310
hä, nee, das stimmt aber eigentlich gar nicht oder so, dann.

01:38:50.810 --> 01:38:52.970
Ja. Man andere Sachen erwartet.

01:38:52.970 --> 01:38:54.870
Oder, oh, Mist, dann kommt auf einmal

01:38:54.870 --> 01:38:56.450
der Delinther oder MyPy sagt halt so, nee,

01:38:56.450 --> 01:38:59.030
der stimmt aber jetzt gar nicht, das ist schon ganz gut.

01:38:59.030 --> 01:39:00.350
Interessant.

01:39:00.350 --> 01:39:03.110
Ja. Ja, gut, dann würde ich

01:39:03.110 --> 01:39:04.870
sagen. Haben wir für heute die Episode.

01:39:04.870 --> 01:39:06.670
Dann herzlichen Dank, dass du wieder da warst, Freunde. Ja, ja.

01:39:06.670 --> 01:39:08.910
Ja, vielen Dank. Ähm, dann machen wir jetzt gleich

01:39:08.910 --> 01:39:10.810
noch, äh, unter uns weiter, würde ich sagen.

01:39:10.810 --> 01:39:12.550
Ja. Äh, herzlichen Dank fürs Zuhören.

01:39:12.550 --> 01:39:14.090
Bleibt uns gebogen, wo immer ihr auch seid.

01:39:14.090 --> 01:39:16.950
Danke, Jochen. Ähm, und, äh, ja.

01:39:16.950 --> 01:39:19.610
Feedback an hallo-at-python-podcast.de

01:39:19.610 --> 01:39:20.750
Feedback-Anregungen kommen

01:39:20.750 --> 01:39:22.210
Kommentare, Lobkritik und so weiter.

01:39:22.210 --> 01:39:24.410
Was ihr alles möchtet. Bis bald.

01:39:24.410 --> 01:39:25.850
Bis dann. Tschüss.
