WEBVTT

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

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

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

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

00:00:10.060 --> 00:00:10.260
Ronny.

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

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

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

00:00:13.800 --> 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:20.600 --> 00:00:25.700
Okay, Kapitelmarke hat nicht funktioniert. Ah, toll. Nichts funktioniert hier?

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

00:00:27.900 --> 00:00:28.160
Ja.

00:00:30.000 --> 00:00:32.060
Das sind keine News.

00:00:32.500 --> 00:00:33.280
Wann war die nicht angekommen?

00:00:33.340 --> 00:00:34.340
Vielleicht erst mal damit an.

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

00:00:35.740 --> 00:00:37.780
Die war Anfang Juni in Vigo in Spanien,

00:00:37.960 --> 00:00:39.340
Nordspanien, Galicien.

00:00:40.040 --> 00:00:40.780
Eine sehr schöne Stadt.

00:00:41.400 --> 00:00:42.620
Ohne jetzt tatsächlich große Highlights,

00:00:42.740 --> 00:00:43.800
aber mir hat es trotzdem gut gefallen.

00:00:43.940 --> 00:00:45.920
Es ist ein sehr schöner Nationalpark,

00:00:46.000 --> 00:00:47.720
ein Inselnationalpark direkt vor der Küste.

00:00:48.120 --> 00:00:49.460
Wäre mal die Gelegenheit, da hinzufahren.

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

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

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

00:00:55.300 --> 00:00:55.860
Ja, genau.

00:00:55.960 --> 00:00:57.320
Das ist so ein bisschen südwestlich davon.

00:00:57.540 --> 00:00:59.540
Also genau nördlich von Portugal.

00:01:00.000 --> 00:01:02.300
Und genau, ich hatte einen Tag

00:01:02.300 --> 00:01:04.140
Zeit, wandern zu gehen, auf der

00:01:04.140 --> 00:01:06.340
Isla Cies, glaube ich.

00:01:06.880 --> 00:01:08.200
Und das ist

00:01:08.200 --> 00:01:09.020
wirklich sehr zu empfehlen.

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

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

00:01:14.300 --> 00:01:16.200
Nächste Woche ist Europython, vielleicht das News.

00:01:16.460 --> 00:01:18.040
Ich weiß nicht, ob man das noch hört. Wenn ihr darüber hört,

00:01:18.100 --> 00:01:19.900
vielleicht ist es ja schon vorbei. Ja, wahrscheinlich.

00:01:21.600 --> 00:01:21.960
Ja.

00:01:23.520 --> 00:01:24.320
Wir möchten

00:01:24.320 --> 00:01:26.160
gerne ein paar Themen von der DangoCon hören.

00:01:26.160 --> 00:01:27.820
Und es gibt aber noch ein, zwei andere News.

00:01:28.360 --> 00:01:30.500
Ja, genau. Also wir haben ja jetzt schon einige

00:01:30.500 --> 00:01:32.580
Zeit keine Sendung mehr.

00:01:33.480 --> 00:01:34.900
Das ist immer dasselbe Problem im Moment,

00:01:35.000 --> 00:01:35.320
aber gut.

00:01:36.340 --> 00:01:38.300
Also ein News ist ganz interessant.

00:01:38.980 --> 00:01:40.600
Google ist ja so ein bisschen unter Druck in letzter

00:01:40.600 --> 00:01:42.700
Zeit. Man sieht sie halt öffentlich schwitzen.

00:01:44.120 --> 00:01:44.520
Dieses

00:01:44.520 --> 00:01:46.540
ganze AI-Thema, das ist irgendwie

00:01:46.540 --> 00:01:47.020
ja,

00:01:48.440 --> 00:01:50.420
können sie nicht so richtig entscheiden. Steigen sie jetzt voll ein

00:01:50.420 --> 00:01:52.120
oder doch nicht? Was machen sie? Oh nein.

00:01:52.540 --> 00:01:54.660
Ja, und jetzt haben sie sich für etwas anderes

00:01:54.660 --> 00:01:56.540
entschieden, nämlich ihr Patentime-Team zu feuern.

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

00:01:59.540 --> 00:02:00.620
Ich glaube, in Deutschland sogar.

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

00:02:05.320 --> 00:02:07.140
Die Amerikaner wollten alle 300.000 Dollar haben pro Jahr.

00:02:07.260 --> 00:02:09.100
Haben sich irgendwann gedacht, das können wir in Deutschland auch für die Hälfte haben.

00:02:09.400 --> 00:02:10.920
Genau, dann gehen wir halt in so ein Billiglohnland

00:02:10.920 --> 00:02:14.820
und dann in so eine, keine Ahnung, Billigvorstadt.

00:02:15.160 --> 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.340
Da sind sie ja auch schon, da sind sie ja auch schon ein bisschen gewachsen.

00:02:20.660 --> 00:02:21.980
Aber ich bin mal gespannt, ob das klappt.

00:02:21.980 --> 00:02:24.660
ob sie da jetzt irgendwie, keine Ahnung,

00:02:25.400 --> 00:02:26.860
äquivalent rekrutieren können.

00:02:27.740 --> 00:02:28.320
Mal sehen.

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

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

00:02:31.880 --> 00:02:34.700
Und wenn man in München guckt, die sind ja eh immer ganz oben,

00:02:35.040 --> 00:02:36.100
wenn man sie fragt.

00:02:36.760 --> 00:02:39.080
Entschuldigung, ich wollte jetzt keinen Lokalpatriotismus hier auffangen.

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

00:02:41.300 --> 00:02:43.560
Genau, also das ist schon mal irgendwie,

00:02:44.180 --> 00:02:45.620
aber normalerweise ist das ja nie passiert.

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

00:02:48.900 --> 00:02:51.800
Und jetzt, und welche, hat man das irgendwie so rückgebaut?

00:02:51.980 --> 00:02:54.000
neu. Vielleicht ist aber jetzt

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

00:02:56.000 --> 00:02:57.500
Ja, kann auch sein, ja. Also vielleicht ist auch,

00:02:57.700 --> 00:02:59.500
muss man da nicht so viel rein interpretieren, das ist schon richtig.

00:02:59.760 --> 00:03:02.260
Es gibt tatsächlich von Python 3.13

00:03:02.260 --> 00:03:03.980
jetzt so erste Beta-Versionen.

00:03:04.200 --> 00:03:06.020
Das heißt, wenn man mal ausprobieren

00:03:06.020 --> 00:03:08.000
will, ob das eigene Zeugs, was man so baut,

00:03:08.160 --> 00:03:09.820
irgendwie damit tut, dann kann man das jetzt mal

00:03:09.820 --> 00:03:11.760
machen und...

00:03:11.760 --> 00:03:13.840
Tut eigentlich, ne? Ja, es gibt glaube ich

00:03:13.840 --> 00:03:15.860
jetzt auch, wo war das? Irgendwas kann jetzt auch,

00:03:15.940 --> 00:03:17.400
man kann jetzt auch Wheels bauen für

00:03:17.400 --> 00:03:19.400
3.13.

00:03:20.400 --> 00:03:22.420
Ich habe heute echt keine Zeit gehabt,

00:03:22.500 --> 00:03:23.900
mich die News nochmal anzugucken.

00:03:24.520 --> 00:03:26.120
Insofern tut mir leid, wird etwas durcheinander.

00:03:26.620 --> 00:03:27.200
Aber ja.

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

00:03:28.520 --> 00:03:31.400
Python 3.13 kann man auf jeden Fall jetzt mal so.

00:03:31.480 --> 00:03:33.300
Jetzt ist der richtige Zeitpunkt, um das mal auszuprobieren.

00:03:34.240 --> 00:03:35.080
Was habe ich noch?

00:03:35.520 --> 00:03:36.460
Oh, ich habe gesehen, es gibt,

00:03:36.840 --> 00:03:38.000
ich weiß aber nicht, ob das News ist,

00:03:38.120 --> 00:03:42.560
aber es gibt ein Software-Development-Kit für One Password.

00:03:42.840 --> 00:03:44.620
Also ich bin immer noch bei One Password.

00:03:45.020 --> 00:03:47.020
Mir tut das zwar etwas weh, dass das alles super teuer ist und so,

00:03:47.020 --> 00:03:48.920
aber ich finde es immer noch so, der beste

00:03:48.920 --> 00:03:51.000
Passwortmanager und der hat

00:03:51.000 --> 00:03:53.360
jetzt auch einen Python-API

00:03:53.360 --> 00:03:55.040
im Software

00:03:55.040 --> 00:03:56.960
Development Kit gekriegt. Das heißt, man kann von

00:03:56.960 --> 00:03:58.780
Python aus irgendwie One Password anfragen.

00:03:58.940 --> 00:04:00.720
Also sozusagen, man kann halt Python

00:04:00.720 --> 00:04:02.960
Sachen schreiben und dann fragt das Ding halt

00:04:02.960 --> 00:04:04.860
One Password und dann sagt das Ding halt da,

00:04:04.980 --> 00:04:06.660
guck hier mal in die Kamera oder hier,

00:04:06.940 --> 00:04:08.880
leg mal da deinen Finger drauf und dann kann man sich authentifizieren.

00:04:09.280 --> 00:04:10.600
Was ja für manche Sachen ganz nett ist.

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

00:04:12.900 --> 00:04:14.200
Wenn wir Werbung machen. Eigentlich hätten wir die

00:04:14.200 --> 00:04:26.740
Das kostet, die haben ja auch wahnsinnig viel Fremdkapital aufgenommen und das kostet pro User irgendwie sowas 35 Dollar oder Euro im Jahr ungefähr.

00:04:27.980 --> 00:04:30.000
Und das ist halt schon, ja.

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

00:04:35.040 --> 00:04:42.240
Ja, es gab einen auch über Okta, der war aber nicht so furchtbar schlimm, also ist auch so ein halbes Jahr her, glaube ich, oder so.

00:04:42.440 --> 00:04:43.000
Ja, ich wollte gerade sagen.

00:04:44.200 --> 00:05:03.160
Ja, genau. Was haben wir noch? Achso, ja, es gibt auch gute Nachrichten. Das ist ja auch so ein Ding, da kriege ich immer Angst, wenn ich mir angucke, wie das so funktioniert. PyPI macht wahnsinnig viel Traffic. Also was darüber geht, ist halt atemberaubend und es kostet auch wahnsinnig viel Geld.

00:05:03.160 --> 00:05:23.180
Und das funktioniert halt darüber, dass es einen CDN, so Content Delivery Network Anbieter gibt, der sponsert das halt, der hostet PyPI. Und ich weiß nicht, was man zahlen müsste, wenn man das nicht irgendwie kostenlos kriegen würde. Es wäre sehr viel und das wäre ein Riesenproblem, weil ja, per Pip installieren würde dann halt nicht mehr funktionieren.

00:05:23.660 --> 00:05:28.520
Und die haben jetzt gerade auf der Python US verkündet,

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

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

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

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

00:05:36.940 --> 00:05:38.880
Ja, genau.

00:05:40.160 --> 00:05:45.500
Dann tatsächlich jetzt im Juni vor zwei, drei Wochen

00:05:45.500 --> 00:05:48.120
ist NumPy 2.0 erschienen.

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

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

00:05:57.520 --> 00:05:57.820
Und

00:05:57.820 --> 00:06:00.140
genau, ist vielleicht

00:06:00.140 --> 00:06:02.120
jetzt nicht der günstigste Moment, um zu steigen,

00:06:02.240 --> 00:06:03.780
sondern man sollte vielleicht das erst mal auf

00:06:03.780 --> 00:06:05.800
kleiner zwei pinnen oder so und dann mal gucken,

00:06:06.060 --> 00:06:07.240
bis alle anderen irgendwie sich

00:06:07.240 --> 00:06:10.060
angepasst haben, weil das bricht halt

00:06:10.060 --> 00:06:10.520
einige

00:06:10.520 --> 00:06:14.020
Geschichten. Aber ja,

00:06:14.020 --> 00:06:15.400
schön, dass es jetzt raus ist und dann

00:06:15.400 --> 00:06:18.060
es macht einige...

00:06:18.060 --> 00:06:19.480
Wie gesagt, ich habe keine

00:06:19.480 --> 00:06:21.880
Ahnung, was alles genau passiert ist oder ich wusste es mal,

00:06:21.920 --> 00:06:22.500
hab es wieder vergessen.

00:06:23.660 --> 00:06:26.220
ja, Performance ist irgendwie besser geworden.

00:06:26.540 --> 00:06:27.960
Es sind auch ein paar Updates, das heißt,

00:06:28.020 --> 00:06:30.120
ihr müsst ein bisschen aufpassen, weil wenn ihr da irgendwie einfach

00:06:30.120 --> 00:06:31.620
updatet, dann kann es sein, dass euch

00:06:31.620 --> 00:06:34.020
relativ viele Dinge kaputt gehen.

00:06:34.180 --> 00:06:36.300
Also ich habe so ein paar Updates gehabt, da war es

00:06:36.300 --> 00:06:37.600
so ein bisschen hässlich, weil

00:06:37.600 --> 00:06:39.480
ich tatsächlich downgraden musste,

00:06:40.280 --> 00:06:42.220
weil da irgendwie Pakete irgendwo

00:06:42.220 --> 00:06:43.480
ganz tief drin waren, die dann

00:06:43.480 --> 00:06:46.260
leider nicht mehr wollten und die man halt

00:06:46.260 --> 00:06:47.960
umbauen hätte müssen oder sowas, wo man dann erstmal

00:06:47.960 --> 00:06:50.000
verstehen muss, was alles ist. Das dauert alles relativ viel Zeit.

00:06:51.200 --> 00:06:51.920
Nicht so schön, aber

00:06:51.920 --> 00:06:53.160
waren ein paar Upper Boundaries dann

00:06:53.160 --> 00:06:55.680
in den Projekten auf einmal drin.

00:06:56.120 --> 00:06:57.640
Ja. Aber gut,

00:06:57.640 --> 00:06:59.180
das ist eigentlich super, dass man

00:06:59.180 --> 00:07:01.040
halt, das ist auch eh ein Semantic-Version-Ding,

00:07:01.100 --> 00:07:02.400
2.0, Breaking-Api-Changes,

00:07:02.680 --> 00:07:04.100
what happens. Genau.

00:07:05.820 --> 00:07:06.960
Genau, dann gibt's

00:07:06.960 --> 00:07:09.000
eine neue, also eine erste

00:07:09.000 --> 00:07:10.460
1.0-Release von Polars,

00:07:11.260 --> 00:07:13.040
was ja auch vielleicht ganz

00:07:13.040 --> 00:07:15.140
nett ist, dass man sich

00:07:15.140 --> 00:07:17.160
jetzt halt so drauf verlassen kann, dass die Api da mal

00:07:17.160 --> 00:07:18.280
eine Zeit lang stabil bleibt und so.

00:07:19.420 --> 00:07:20.960
Und da ist auch sonst nichts Großartiges

00:07:20.960 --> 00:07:23.100
dazugekommen. Nutzt du das

00:07:23.100 --> 00:07:24.500
irgendwo viel oder ein bisschen?

00:07:24.520 --> 00:07:27.020
Nee, viel nutze ich das nicht. Ich nutze das ab und zu mal, aber

00:07:27.020 --> 00:07:29.180
Pandas oder ist das egal? Ich nutze eher Pandas,

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

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

00:07:32.940 --> 00:07:34.880
Ja. Pandas haben die auch ein bisschen schneller gemacht. Ich weiß gar nicht,

00:07:34.940 --> 00:07:37.020
gibt es irgendwie wirklich jemand, der das mal getestet hat,

00:07:37.080 --> 00:07:39.120
was so für was besser geht?

00:07:39.700 --> 00:07:41.020
Ja, also Polars ist tatsächlich,

00:07:41.140 --> 00:07:42.980
wenn man einfache Sachen macht, ist es halt

00:07:42.980 --> 00:07:44.220
ein gutes Stückchen schneller.

00:07:45.760 --> 00:07:46.940
Es gibt halt Dinge, die gehen mit

00:07:46.940 --> 00:07:48.740
Polars gar nicht so und die gehen mit Pandas und dann

00:07:48.740 --> 00:07:50.860
und ich meine, ich habe mich an diese, also viele Sachen

00:07:50.860 --> 00:07:52.780
sind halt auch total komisch. Und ich habe mich halt dran gewöhnt.

00:07:52.840 --> 00:07:54.960
Zum Beispiel an diese Multi-Index-Geschichten

00:07:54.960 --> 00:07:55.840
und so. Und

00:07:55.840 --> 00:07:58.660
wahrscheinlich ist es keine gute Idee. Und es ist richtig,

00:07:58.760 --> 00:08:00.660
dass Bollers das alles nicht gemacht hat. Und auch selbst

00:08:00.660 --> 00:08:01.660
die Leute, die Pandas gebaut haben.

00:08:02.720 --> 00:08:04.320
McKinney sagt heute im Podcast so,

00:08:04.780 --> 00:08:06.840
ja, das mit diesen ganzen komplizierten Index-Geschichten

00:08:06.840 --> 00:08:08.480
und so, das war wahrscheinlich alles nicht so richtig.

00:08:09.100 --> 00:08:10.780
Aber wenn man sich mal dran gewöhnt hat,

00:08:11.020 --> 00:08:12.580
dann

00:08:12.580 --> 00:08:14.400
ist das halt klar, wie man das damit macht.

00:08:14.520 --> 00:08:16.080
Und alles andere muss man halt dann denken.

00:08:17.040 --> 00:08:18.540
Ja, deswegen benutze ich halt eigentlich

00:08:18.540 --> 00:08:20.320
immer noch lieber Pandas. Aber

00:08:20.320 --> 00:08:23.180
ja, ich glaube

00:08:23.180 --> 00:08:24.540
Polas ist schon der richtige Weg eigentlich.

00:08:25.560 --> 00:08:28.180
Ja, genau.

00:08:28.360 --> 00:08:30.040
Was gibt es noch? Psycho-PG

00:08:30.040 --> 00:08:31.480
3.2 ist raus, also

00:08:31.480 --> 00:08:34.120
auch etwas, ich weiß

00:08:34.120 --> 00:08:35.700
nicht, ob alle schon umgestiegen sind auf 3,

00:08:35.940 --> 00:08:37.380
also ich habe das wahrscheinlich...

00:08:37.380 --> 00:08:39.920
Es gab ja Psycho-PG 2 explizit

00:08:39.920 --> 00:08:41.560
und wenn man jetzt aber normal Psycho-PG nimmt,

00:08:41.640 --> 00:08:43.140
dann ist das jetzt normal 3. Ja, genau.

00:08:45.420 --> 00:08:45.780
Und

00:08:45.780 --> 00:08:47.660
ja, super, da ist halt auch

00:08:47.660 --> 00:08:49.780
so Essing-Support

00:08:49.780 --> 00:08:51.820
jetzt mit drin und diverse

00:08:51.820 --> 00:08:53.460
Geschichten. Also

00:08:53.460 --> 00:08:56.180
Auf Postgres 15, was ist das Minimum

00:08:56.180 --> 00:08:57.060
für Seiko BD?

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

00:08:59.740 --> 00:09:00.580
Bestimmt auch bei Tifa.

00:09:00.940 --> 00:09:03.860
Wahrscheinlich, ich würde jetzt tippen, Postgres 12 oder so.

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

00:09:09.080 --> 00:09:09.820
Nee, steht, steht,

00:09:10.080 --> 00:09:11.300
ich weiß es. Keine Low-Hanging Fruit.

00:09:12.040 --> 00:09:13.460
Auch nicht so wichtig. Die meisten

00:09:13.460 --> 00:09:15.920
Leute, sind die bei alten Datenbanken oder bei neuen? Was meint ihr?

00:09:16.800 --> 00:09:18.180
Ich denke alte Datenbanken,

00:09:18.180 --> 00:09:20.860
weil die meisten halt nicht die Kontrolle haben

00:09:20.860 --> 00:09:22.980
über die Distributionen, auf denen ihr Zeugs läuft.

00:09:23.160 --> 00:09:26.460
Und dann haben sie halt irgendwie entweder alte Datenbanken,

00:09:26.600 --> 00:09:28.880
weil Datenbanken auch oft nicht kontinuierisiert sind.

00:09:31.240 --> 00:09:34.840
Oder sie haben es kontinuiert und haben dann vergessen,

00:09:35.120 --> 00:09:37.240
dass es irgendwie ...

00:09:37.240 --> 00:09:41.220
Aber in der Praxis sehe ich ganz oft alte Datenbanken.

00:09:41.660 --> 00:09:42.660
Ja, stimmt.

00:09:43.180 --> 00:09:44.960
Und ehrlich gesagt, ich finde es komisch,

00:09:44.960 --> 00:09:46.600
weil das ist halt so ...

00:09:46.600 --> 00:09:48.140
Ich meine, es kostet eigentlich ja nicht viel,

00:09:48.180 --> 00:09:49.960
das abzudaten oder da abzudaten zu bleiben

00:09:49.960 --> 00:09:52.000
und es bringt halt ordentlich was, also

00:09:52.000 --> 00:09:54.020
eben, wenn ich jetzt mir angucke, so

00:09:54.020 --> 00:09:56.100
Postgres 12 oder so, was ich häufig sehe, oder

00:09:56.100 --> 00:09:58.160
äh, selbst, also

00:09:58.160 --> 00:10:00.000
bis, wenn man jetzt stattdessen ein

00:10:00.000 --> 00:10:02.120
Postgres 16 nimmt, dann ist es halt schon, da hat sich

00:10:02.120 --> 00:10:03.360
schon einiges getan, also

00:10:03.360 --> 00:10:05.720
kriegt man irgendwie so 30% Performance

00:10:05.720 --> 00:10:07.220
Proofment einfach so gerade.

00:10:07.640 --> 00:10:08.900
Ja, also, ja.

00:10:10.320 --> 00:10:11.500
Genau, ähm,

00:10:12.140 --> 00:10:13.560
ja, äh, dann, oh,

00:10:13.880 --> 00:10:16.040
HTMLX 2.0 ist erschienen,

00:10:16.260 --> 00:10:18.080
auch ganz interessant, da hat sich auch nichts

00:10:18.080 --> 00:10:20.120
geändert, sondern das ist einfach nur

00:10:20.120 --> 00:10:22.000
hochgezählt und

00:10:22.000 --> 00:10:23.480
gut, ist ein paar Sachen entfernt worden.

00:10:24.280 --> 00:10:25.420
Also ein paar Extensions,

00:10:26.020 --> 00:10:28.020
die Websockers-Extension ist nicht mehr drin

00:10:28.020 --> 00:10:29.200
oder ein paar Dinger.

00:10:30.800 --> 00:10:31.240
Genau.

00:10:32.680 --> 00:10:34.080
Du benutzt das immer noch so gern?

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

00:10:35.560 --> 00:10:37.200
Ich auch. Ich habe es auch jetzt letztens wieder

00:10:37.200 --> 00:10:39.380
in einem Projekt gehabt

00:10:39.380 --> 00:10:41.320
und das war echt

00:10:41.320 --> 00:10:42.020
total super.

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

00:10:46.380 --> 00:10:47.500
Ja gut, okay.

00:10:47.620 --> 00:10:49.520
Chat, da muss man dann drüber nachdenken,

00:10:49.880 --> 00:10:51.680
vielleicht ist es da besser, dann was anderes zu

00:10:51.680 --> 00:10:53.720
nehmen. Ja. Könnte schon sein.

00:10:53.840 --> 00:10:55.160
Ich meine, man kann es bauen, aber

00:10:55.160 --> 00:10:57.700
ob das so viel Spaß macht, weil da ist ja

00:10:57.700 --> 00:10:59.260
manchmal vielleicht die Echtzeit dann tatsächlich,

00:10:59.640 --> 00:11:01.700
wenn die Echtzeit eine Reaktion hat, irgendwie interessant.

00:11:02.180 --> 00:11:03.700
Wenn man jetzt pollen würde, dann

00:11:03.700 --> 00:11:05.260
hast du immer so ein bisschen Latenz.

00:11:05.660 --> 00:11:07.960
Server-Send-Events, glaube ich,

00:11:08.100 --> 00:11:09.580
geht damit. Ja, das geht damit

00:11:09.580 --> 00:11:11.360
natürlich auch, aber das ist ja dann

00:11:11.360 --> 00:11:13.600
fast das Gleiche, also es ist auf jeden Fall ähnlich wie

00:11:13.600 --> 00:11:15.640
WebSockets auch. Also es ist

00:11:15.640 --> 00:11:17.640
halt nicht bidirektional, aber du hast halt auch die ganze

00:11:17.640 --> 00:11:19.540
Zeit eine stehende Verbindung, die halt die

00:11:19.540 --> 00:11:21.320
ganzen anderen komischen Schwierigkeiten

00:11:21.320 --> 00:11:22.740
hat, die man dann halt so hat, wie

00:11:22.740 --> 00:11:25.460
ja, wie loadbalancen wir das jetzt denn eigentlich?

00:11:25.660 --> 00:11:27.680
Was ist denn, wenn ich jetzt irgendwie ein Deployment

00:11:27.680 --> 00:11:29.100
mache und ich restarte das Ding?

00:11:29.240 --> 00:11:30.880
Was passiert denn da mit der Verbindung?

00:11:31.580 --> 00:11:33.520
Ist sie jetzt erstmal weg? Kommt sie wieder?

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

00:11:36.600 --> 00:11:37.520
Der Mensch am anderen

00:11:37.520 --> 00:11:39.340
Ende des Chats merkt ja einfach nach drei Tagen

00:11:39.340 --> 00:11:41.520
irgendwie, dass

00:11:41.520 --> 00:11:43.500
keiner mit ihm redet und denkt alle, er stinkt

00:11:43.500 --> 00:11:45.100
irgendwie und niemand will mit ihm reden,

00:11:45.180 --> 00:11:46.580
tatsächlich ist einfach nur diese Verbindung weg.

00:11:47.180 --> 00:11:49.180
Ja, also da kommt man in all diese blöden Fehlerfälle

00:11:49.180 --> 00:11:50.480
rein und

00:11:50.480 --> 00:11:53.020
das ist halt bei WebSockets und bei

00:11:53.020 --> 00:11:53.900
Server-Send-Events so.

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

00:11:57.040 --> 00:11:59.220
Also wenn man es irgendwie ohne sowas machen kann, würde ich es

00:11:59.220 --> 00:12:01.080
ohne sowas machen, aber kann sein, dass Chat

00:12:01.080 --> 00:12:03.020
eine der wenigen Sachen ist, wo man das halt tatsächlich braucht.

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

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

00:12:07.760 --> 00:12:09.260
Chat mit dem Server ist

00:12:09.260 --> 00:12:11.000
Also keine Ahnung, du schickst mit dem Server

00:12:11.000 --> 00:12:12.240
eine Frage und nicht einem anderen

00:12:12.240 --> 00:12:13.320
Menschen.

00:12:14.820 --> 00:12:16.660
Nee, da brauchst du es nicht. Achso, du meinst jetzt so was

00:12:16.660 --> 00:12:18.800
wie Chat-GPT, wenn man das implementieren

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

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

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

00:12:24.940 --> 00:12:26.680
Ja, also du kannst halt dann,

00:12:26.860 --> 00:12:28.680
du kannst ja auch das anzeigen, was dann zurückkommt

00:12:28.680 --> 00:12:30.660
direkt, aber

00:12:30.660 --> 00:12:32.560
da brauchst du keine stehende

00:12:32.560 --> 00:12:34.420
Verbindung. So gechankt jetzt, oder?

00:12:35.680 --> 00:12:36.640
Ja, du kannst einfach

00:12:36.640 --> 00:12:38.560
mal da rauskommen, kannst

00:12:38.560 --> 00:12:40.180
ja das anzeigen,

00:12:40.680 --> 00:12:41.260
das geht.

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

00:12:44.640 --> 00:12:46.200
Ja, genau, das ist auch so was.

00:12:47.440 --> 00:12:48.480
Genau, dafür braucht man

00:12:48.480 --> 00:12:49.760
keine

00:12:49.760 --> 00:12:52.580
direktionale

00:12:52.580 --> 00:12:53.620
Verbindung oder keine stehende Verbindung.

00:12:55.200 --> 00:12:55.840
Okay, dann

00:12:55.840 --> 00:12:57.280
5.1 hast du noch.

00:12:57.280 --> 00:12:59.620
5.1 Alpha erschienen, genau.

00:12:59.800 --> 00:13:00.180
Ich weiß nicht,

00:13:01.720 --> 00:13:03.780
ob hier irgendjemand genau die Liste der

00:13:03.780 --> 00:13:06.060
Neuigkeiten und so mit dabei hat.

00:13:06.700 --> 00:13:07.840
Also ich meine, es dauert auch noch ein Momentchen,

00:13:07.940 --> 00:13:09.460
bis das erscheint, aber...

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

00:13:10.920 --> 00:13:13.600
Ja, also was ich hier schon sehe,

00:13:14.000 --> 00:13:16.160
Query-String, super, das habe ich hier halt schon ein paar Mal

00:13:16.160 --> 00:13:18.420
selber gebaut. Aber warum gibt es das denn nicht?

00:13:19.240 --> 00:13:20.420
Genau, also das Problem

00:13:20.420 --> 00:13:22.400
ist, wenn man quasi

00:13:22.400 --> 00:13:24.600
ein paar

00:13:24.600 --> 00:13:26.640
Dinge hinzufügen

00:13:26.640 --> 00:13:28.040
will zu einem Query-String, zum Beispiel, wenn man

00:13:28.040 --> 00:13:29.420
irgendeinen Filter angeschaltet hat oder so,

00:13:30.120 --> 00:13:32.080
dann ist halt die Frage, okay,

00:13:32.440 --> 00:13:34.240
aber da sind jetzt möglicherweise schon Sachen gesetzt

00:13:34.240 --> 00:13:35.400
und dann muss man das irgendwie,

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

00:13:38.220 --> 00:13:39.920
Und da gibt es jetzt ein Template-Tag für,

00:13:40.660 --> 00:13:42.320
wo man halt einfach den Query-String

00:13:42.320 --> 00:13:43.800
kriegt und das ist natürlich praktisch.

00:13:44.000 --> 00:13:46.940
Ich hatte das Gefühl, dass da viel Quality-of-Life-Sachen

00:13:46.940 --> 00:13:48.580
dabei sind. Es sind nicht die großen Game-Changer,

00:13:48.720 --> 00:13:50.760
die sind jetzt eher dann für 5.2, glaube ich, geplant.

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

00:13:53.800 --> 00:13:55.000
Ja, sondern eher Kleinigkeiten,

00:13:55.160 --> 00:13:56.440
die einem einfach helfen, besser

00:13:56.440 --> 00:13:58.320
und angenehmer zu arbeiten.

00:13:59.680 --> 00:14:00.700
Ja, oh, es gibt

00:14:00.700 --> 00:14:03.340
Connection-Pool-Support

00:14:03.340 --> 00:14:05.300
für Postgres, was dann auch praktisch ist.

00:14:05.800 --> 00:14:07.060
Also ich meine, ehrlich gesagt, für meine Sachen

00:14:07.060 --> 00:14:09.260
ist es nicht so, also da komme ich

00:14:09.260 --> 00:14:11.000
sowieso nie so an die Grenzen, dass ich da wirklich

00:14:11.000 --> 00:14:13.300
ein Pool lieber hätte oder so,

00:14:13.420 --> 00:14:14.760
sondern es ist alles egal.

00:14:15.280 --> 00:14:17.420
Aber wenn man das Problem hat, dann ist es natürlich

00:14:17.420 --> 00:14:19.320
doof, wenn man da irgendwie was anderes machen muss.

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

00:14:22.540 --> 00:14:23.580
Ja, ja, ja, ja.

00:14:26.000 --> 00:14:27.520
Middleware to require authentication

00:14:27.520 --> 00:14:28.700
by default. Keine Ahnung, was das ist.

00:14:29.660 --> 00:14:31.320
Aber ich würde sagen, über die ganzen Neuigkeiten bei Django,

00:14:31.420 --> 00:14:33.460
da können wir doch tatsächlich den Ronny gleich besser fragen,

00:14:33.540 --> 00:14:35.020
weil der von Django-Con wahrscheinlich mehr erzählen kann,

00:14:35.020 --> 00:14:36.440
als er aus dem 5.1...

00:14:36.440 --> 00:14:39.440
Ich glaube, das ist so wahnsinnig...

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

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

00:14:43.040 --> 00:14:44.760
Alles klar, dann, genau, haben wir nur

00:14:44.760 --> 00:14:45.780
ein Event, dass es das gibt und

00:14:45.780 --> 00:14:48.620
Dann sind wir vielleicht mit der News heute schon ein bisschen durch

00:14:48.620 --> 00:14:50.840
oder habt ihr noch irgendwas, was ganz total relevant, wichtig war?

00:14:51.400 --> 00:14:52.160
Nicht von meiner Seite.

00:14:52.960 --> 00:14:53.520
Okay. Gut.

00:14:54.300 --> 00:14:56.380
Dann erzähl doch mal von der DangoCon, lieber Ronny.

00:14:57.360 --> 00:14:58.420
Also ich hab, du, also erstmal,

00:14:58.520 --> 00:15:00.520
du, eigentlich müsstest du ja von dir selber erzählen, weil du hast ja auch

00:15:00.520 --> 00:15:02.440
was gesagt, glaube ich sogar, ne? Genau.

00:15:02.540 --> 00:15:04.460
Und was Cooles erzählt und vielleicht fangen wir doch einfach damit an,

00:15:04.480 --> 00:15:06.140
dann können wir danach so von allgemeinen Sachen erzählen.

00:15:06.520 --> 00:15:08.560
Ja, genau. Also wie gesagt,

00:15:08.620 --> 00:15:10.780
ich heiße Ronny, ich arbeite

00:15:10.780 --> 00:15:12.360
seit 2012

00:15:12.360 --> 00:15:15.080
mit Django. Ich habe damals mit 1.4

00:15:15.080 --> 00:15:16.060
angefangen, was

00:15:16.060 --> 00:15:18.460
lange, lange her ist.

00:15:18.920 --> 00:15:21.000
Damals hatten wir auch noch ein anderes Versionsschema,

00:15:21.240 --> 00:15:22.660
also das ist länger her, als es klingt.

00:15:24.780 --> 00:15:25.080
Und

00:15:25.080 --> 00:15:29.260
bin jetzt seit vielen Jahren

00:15:29.260 --> 00:15:31.080
Tech Evangelist in meiner

00:15:31.080 --> 00:15:33.120
Firma. Ich arbeite bei der Agentur

00:15:33.120 --> 00:15:35.060
Ambient in Köln und

00:15:35.060 --> 00:15:37.100
habe da durch die Möglichkeit

00:15:37.100 --> 00:15:38.860
mich mit der

00:15:38.860 --> 00:15:40.620
Thematik zu beschäftigen und

00:15:40.620 --> 00:15:43.300
mich in dem ganzen Django-Backend-Kontext

00:15:43.300 --> 00:15:45.180
so ein bisschen auch up-to-date

00:15:45.180 --> 00:15:47.160
zu halten und da auch

00:15:47.160 --> 00:15:49.280
Sachen zu machen, zum Beispiel auch mal

00:15:49.280 --> 00:15:51.280
zu einer Konferenz zu fahren und einen Vortrag zu halten.

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

00:15:53.320 --> 00:15:54.300
Das ist das erste Mal auf einer

00:15:54.300 --> 00:15:56.660
echten Konferenz-Stage. Ich war

00:15:56.660 --> 00:15:59.380
man könnte vielleicht sagen zum Warmlaufen

00:15:59.380 --> 00:16:00.480
letztes Jahr bei dem

00:16:00.480 --> 00:16:02.860
Django-Day in Kopenhagen. Das war sehr cool.

00:16:02.940 --> 00:16:05.020
Das ist so eine Mini-Konferenz. Das ist so ein Raum

00:16:05.020 --> 00:16:07.160
für so 60 bis 70 Leute, würde ich sagen.

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

00:16:09.500 --> 00:16:17.360
Und das war sehr nett, sehr familiär und das war so das erste Mal, dass ich irgendwie vor, naja, literally laufender Kamera das gemacht habe.

00:16:17.360 --> 00:16:19.700
Das stimmt überhaupt nicht, wir haben dich schon ganz oft live was erzählen hören.

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

00:16:23.400 --> 00:16:28.640
Das ganze Internet konnte zu gucken bei euren Livestreams bei Ambient während der ganzen Zeit, in der letzten Zeit, ja?

00:16:28.640 --> 00:16:31.500
Ja, die Django Meetups machen wir nicht. Ach so, das meinst du. Ja, okay.

00:16:31.640 --> 00:16:32.240
Ja, doch.

00:16:32.860 --> 00:16:44.740
Genau, ich bin nämlich beim Django Meetup Köln, ich organisiere das und da halte ich auch gelegentlich meinen Vortrag, längst nicht mehr so oft wie früher, was glaube ich ein gutes Zeichen ist, das heißt, das Meetup funktioniert, wenn sich Leute finden, die da Spaß dran haben, was vorzutragen.

00:16:45.740 --> 00:17:05.560
Genau, und da habe ich einen Vortrag gehalten über mein Package, das ich für Django gemacht habe. Das nennt sich Django Pony Express. Das löst im Endeffekt das Problem, wer schon mal mit Django, also wir machen meistens, so von meinem Job her, machen meistens Business-Applikationen und meistens baut man da relativ viele E-Mails.

00:17:07.040 --> 00:17:24.080
Und E-Mails mit Django zu bauen, das geht alles, das funktioniert auch technisch alles sauber, nur die, ich mag diesen Begriff sehr, die Developer Experience ist nicht so richtig gut, weil man da relativ viel Low-Level-Sachen machen muss, vor allem wenn man jetzt nicht nur irgendeine E-Mail rausschicken möchte, sondern halt eine, die modernen Business-Ansprüchen genügt.

00:17:24.080 --> 00:17:47.800
Also sprich eine HTML-E-Mail, die ein 50s-Based-Template hat, die entsprechende Heller gesetzt hat, die einen Unsubscribe-Link hat, die irgendwie ansprechend aussieht etc. Und da habe ich mir was überlegt, dass wer Django kennt, kennt ja wahrscheinlich auch Class-Based-Views und ich habe das ganze Thema Class-Based-E-Mails genannt und diese Class-Based-E-Mails habe ich mich sehr an den Class-Based-Views orientiert, um einfach mal eine Lösung zu bauen, wo es halt angenehmer ist.

00:17:47.800 --> 00:18:08.000
Dass halt, wenn ich halt eine E-Mail habe, die halt dann HTML-Templates hat oder Inhalt hatten, Plaintext-Part-Inhalt, Übersetzungen, bestimmte Header, bestimmte Variablen, die für das Base-Template benötigt werden, dass ich da halt nicht jedes Mal so riesige Funktionen hin und her kopiere, sondern im Endeffekt halt wirklich nur drei oder vier Zeile habe und die restlichen Sachen halt an einer sinnvollen Stelle gekapselt sind.

00:18:08.560 --> 00:18:25.700
Und ein zweites großes Problem, was mich halt auch persönlich immer sehr gestört hat, ist, dass E-Mails, weil die ja irgendwie so ein bisschen eine externe API sind, weil das halt, man schickt die irgendwie raus und die kommen dann quasi vielleicht wieder bei mir an, wenn ich es mir selber schicke, dass wir die nicht so richtig getestet haben, weil es einfach auch mühsam ist.

00:18:25.700 --> 00:18:46.720
Und das Django-Test-Framework bringt einem da so ein paar Tools mit, aber die sind alle so ein bisschen versteckt. Und da habe ich dann so einen Wrapper gebaut, der auch so ein bisschen, dass man diese E-Mail-Outbox, wenn man E-Mails in einem Test verschickt, dann landen die in so einer Liste, in einer Outbox, werden die gesammelt, dass sie nicht aus Versehen rausgeschickt werden an irgendwen, dass man auf diese Liste so ein bisschen wie in einem Query-Set zugreifen kann.

00:18:46.720 --> 00:19:06.260
Also man kann nach Subject, nach Inhalt filtern, man kann gewisse Assertions machen, ob zum Beispiel in beiden Content-Parts, es gibt ja mehr als nur HTML und Plaintext, ob in den Context-Parts da bestimmte Dinge drin sind und so weiter. Und da habe ich einen Vortrag drüber gehalten, das hat sehr viel Spaß gemacht, ich war sehr nervös.

00:19:06.260 --> 00:19:22.520
Ich war sehr aufgeregt, aber es hat sehr viel Spaß gemacht tatsächlich. Ich war unendlich viel schneller als bei den Malen, wo ich geübt habe. Das ist glaube ich so eine Sache, das ist man immer, aber ich war wirklich schnell. Ich glaube, ich habe auf 21 Minuten Testzeit 16 Minuten Vortragszeit gehabt.

00:19:22.520 --> 00:19:23.400
immer so schnell geredet wie ich.

00:19:24.660 --> 00:19:26.560
Ich weiß es nicht. Ich habe mir versucht, extra ein bisschen

00:19:26.560 --> 00:19:27.580
Zeit zu lassen, aber

00:19:27.580 --> 00:19:30.380
ja, hat so mittelgut funktioniert.

00:19:31.600 --> 00:19:32.480
Nichtsdestotrotz auch viel

00:19:32.480 --> 00:19:33.980
positives Feedback bekommen und

00:19:33.980 --> 00:19:36.140
ist auch tatsächlich nochmal eine ganz andere

00:19:36.140 --> 00:19:38.760
Art, auf so einer Konferenz

00:19:38.760 --> 00:19:40.380
zu sein. Das war jetzt, glaube ich, meine

00:19:40.380 --> 00:19:42.520
fünfte oder sechste DjangoCon mit

00:19:42.520 --> 00:19:44.500
ein paar, ich glaube fünfte, mit

00:19:44.500 --> 00:19:46.180
zwei Remote wegen Corona

00:19:46.180 --> 00:19:48.640
und das ist echt

00:19:48.640 --> 00:19:50.500
nochmal ein ganz anderes Gefühl. Also ich finde generell

00:19:50.500 --> 00:19:52.400
kann ich das jedem nur ans Herz legen, wäre es noch nicht

00:19:52.400 --> 00:19:53.780
gemacht hat, geht mal auf eine Konferenz.

00:19:54.640 --> 00:19:56.000
Auf meiner allerersten Django-Con

00:19:56.000 --> 00:19:58.120
habe ich halt Unistyle erwartet.

00:19:58.220 --> 00:19:59.860
Da steht irgendwer und erzählt was Langweiliges

00:19:59.860 --> 00:20:01.740
und dachte, ich gehe eigentlich wegen den Leuten dahin.

00:20:02.000 --> 00:20:04.220
Tatsächlich gehe ich auch gerne wegen den Leuten dahin,

00:20:04.280 --> 00:20:06.100
jetzt wo ich auch viele kenne, aber die Vorträge

00:20:06.100 --> 00:20:07.980
sind auch wirklich gut und wenn man

00:20:07.980 --> 00:20:10.040
denkt, dass das halt auch alles auf einem

00:20:10.040 --> 00:20:12.180
kleinen Budget läuft, da jetzt keine große Tech-Company

00:20:12.180 --> 00:20:13.760
dahinter steht, die da irgendwie Millionen

00:20:13.760 --> 00:20:16.020
einfach mal so verschenkt, sondern das alles irgendwie von

00:20:16.020 --> 00:20:17.840
von Volonteers

00:20:17.840 --> 00:20:20.000
getragen wird und dann

00:20:20.000 --> 00:20:21.900
die sich freuen, wenn da halt irgendeine Firma irgendwie

00:20:21.900 --> 00:20:24.060
Tausi reinwirft, ist

00:20:24.060 --> 00:20:25.780
das schon echt beeindruckend und

00:20:25.780 --> 00:20:27.800
genau, da waren echt

00:20:27.800 --> 00:20:29.560
coole Sachen dabei.

00:20:30.780 --> 00:20:31.900
Das, glaube ich, der

00:20:31.900 --> 00:20:33.140
große Game Changer

00:20:33.140 --> 00:20:35.760
sind die Background Workers.

00:20:35.920 --> 00:20:37.700
Das ist eine von diesen DEP, also so eine

00:20:37.700 --> 00:20:39.720
Django, ich weiß gar nicht, was die Abkürzung bedeutet.

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

00:20:42.040 --> 00:20:43.800
Ah ja, genau. Dieses DEP, ich glaube

00:20:43.800 --> 00:20:45.580
14 oder sowas. Die sind auch irgendwie

00:20:45.580 --> 00:20:47.940
in letzter Zeit erst wieder entdeckt worden.

00:20:48.580 --> 00:20:49.720
Ich glaube, dass es die gibt und

00:20:49.720 --> 00:20:51.460
die werden jetzt auch wieder recht populär.

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

00:20:55.460 --> 00:20:57.900
Und diese Background Work ist im Endeffekt eine Idee,

00:20:58.280 --> 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:04.060 --> 00:21:04.880
vielleicht so als Extrathema,

00:21:05.040 --> 00:21:07.240
weil da haben wir vielleicht noch ein, zwei coole Links zu.

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

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

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

00:21:14.060 --> 00:21:14.780
Ja, genau.

00:21:14.780 --> 00:21:17.060
Also die ...

00:21:17.060 --> 00:21:18.880
Ja, was habe ich denn?

00:21:19.160 --> 00:21:20.360
Was kann ich dazu noch sagen?

00:21:21.240 --> 00:21:27.640
Irgendwie, war das nicht auch irgendwas, wo so ein Architektur-Design-Pattern irgendwie so ein bisschen eine Rolle spielte?

00:21:29.020 --> 00:21:30.520
Ne, vielleicht habe ich das auch einfach falsch.

00:21:31.320 --> 00:21:33.240
Einfach nur objektorientierte E-Mails quasi.

00:21:33.920 --> 00:21:43.000
Genau, und es ist halt einfach ein Wrapper um die relativ low-levelige API, wenn man halt, wie gesagt, ein bisschen aufwendigere E-Mails bauen möchte.

00:21:43.080 --> 00:21:44.680
Das macht Sendmail mit ein bisschen Fluff.

00:21:45.080 --> 00:21:45.380
Genau.

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

00:21:51.680 --> 00:21:53.660
Es gibt auch gerade eine große Diskussion,

00:21:54.000 --> 00:21:55.900
weil bei Python da scheinbar etwas deprecated wurde.

00:21:56.260 --> 00:21:57.600
In der letzten Version.

00:21:58.160 --> 00:21:59.460
Und Django noch auf den alten Sachen.

00:21:59.500 --> 00:22:00.500
Ich glaube, es wird nicht deprecated,

00:22:00.600 --> 00:22:02.040
aber es gibt so etwas Neueres, Cooleres.

00:22:02.760 --> 00:22:05.380
Und die Django-Sachen unter der Haube benutzen noch die alten.

00:22:05.520 --> 00:22:07.780
Und dann ist gerade viel in Bewegung bezüglich E-Mails.

00:22:08.080 --> 00:22:10.400
Interessanterweise, ich bin da ganz aus Versehen

00:22:10.400 --> 00:22:11.480
auf diesen Zug aufgesprungen.

00:22:15.680 --> 00:22:17.780
direkt eine blöde Anwendungsfrage, wie

00:22:17.780 --> 00:22:19.060
verschickt ihr denn E-Mails?

00:22:20.360 --> 00:22:21.820
Also tatsächlich, das ist auch

00:22:21.820 --> 00:22:23.800
eine Frage, die ich jedes Mal gestellt werde,

00:22:23.860 --> 00:22:25.700
wenn ich diesen Vortrag, ich muss gestehen, ich bin an

00:22:25.700 --> 00:22:27.120
mehreren Occasions recycelt,

00:22:28.640 --> 00:22:30.000
das ist eine Frage, die sehr oft

00:22:30.000 --> 00:22:31.840
kommt. Bei mir geht es wirklich

00:22:31.840 --> 00:22:33.900
im Endeffekt nur um die Developer

00:22:33.900 --> 00:22:35.880
Experience und um die Maintainability.

00:22:36.200 --> 00:22:37.660
Also sprich, wie erstelle ich

00:22:37.660 --> 00:22:39.860
programmatisch diese E-Mail,

00:22:41.260 --> 00:22:42.080
wie stelle ich sicher,

00:22:42.080 --> 00:22:44.060
dass da alles drin ist und wie kann ich das nachher

00:22:44.060 --> 00:22:46.140
testen. Alles, was danach kommt,

00:22:46.240 --> 00:22:48.020
also im Endeffekt, das ist alles

00:22:48.020 --> 00:22:49.740
nicht das, wo das Package ansieht.

00:22:49.820 --> 00:22:52.160
Also da hört es quasi auf. Also bei den Unit-Tests,

00:22:52.260 --> 00:22:54.100
je nachdem, wie man es definiert, ist quasi

00:22:54.100 --> 00:22:56.060
dann das Ende und danach kann man halt

00:22:56.060 --> 00:22:57.960
dann die E-Mail so verschicken, wie man sie halt

00:22:57.960 --> 00:22:59.900
mit Django sonst verschicken möchte. Also ob man da jetzt irgendeinen

00:22:59.900 --> 00:23:01.820
Mail-Hawk reinhängt oder irgendein super

00:23:01.820 --> 00:23:03.900
abgefahrenes E-Mailing-Cluster hat oder seine

00:23:03.900 --> 00:23:05.800
eigene Gmail-Adresse dafür nutzt oder

00:23:05.800 --> 00:23:07.280
einfach das bei

00:23:07.280 --> 00:23:09.900
SES reinwirft, das ist

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

00:23:12.020 --> 00:23:13.860
Wie macht ihr das? Wir selbst

00:23:13.860 --> 00:23:15.760
nutzen, SES. Das ist

00:23:15.760 --> 00:23:17.940
von Amazon. Ich glaube, das gibt's

00:23:17.940 --> 00:23:19.820
aber auch in, also ich glaube, das ist ein Standard

00:23:19.820 --> 00:23:21.940
sogar. Ich bin nicht ganz sicher. Ich glaube, Amazon hat ja viele von diesen

00:23:21.940 --> 00:23:22.580
Standards definiert.

00:23:24.120 --> 00:23:25.880
Und das ist ein Service, der ist

00:23:25.880 --> 00:23:28.080
halt sehr günstig und sehr leistungsfähig.

00:23:28.800 --> 00:23:29.740
Ich habe für ein

00:23:29.740 --> 00:23:31.940
Privatprojekt, ich engagiere mich da

00:23:31.940 --> 00:23:33.740
für Kinder in Bolivien,

00:23:34.320 --> 00:23:35.140
haben wir früher

00:23:35.140 --> 00:23:37.600
unseren Spendern und Interessenten

00:23:37.600 --> 00:23:39.720
so einen Jahresbericht

00:23:39.720 --> 00:23:41.820
per PDF geschickt, das damals

00:23:41.820 --> 00:23:43.320
noch, bevor wir HTML-E-Mails hatten.

00:23:43.860 --> 00:24:11.240
Und diese PDFs, das war dann immer so mit den Bildern, auch wenn man die dann runtergerechnet hat, war immer so 500, 800 Kilo bei, das ist schon relativ groß für eine E-Mail. Und unsere alten Mail-Server sind regelmäßig da irgendwie abgekackt, hängen geblieben, mühsam. Dann habe ich irgendwann auf SCS umgestellt. Alle E-Mails zu versenden kostet dann vielleicht ein Euro oder zwei, ich weiß es nicht genau. Und das läuft halt einfach. Also du kannst dir eine beliebige Menge von E-Mails geben und die kommen halt an. Das ist halt sehr, sehr angenehm.

00:24:13.240 --> 00:24:40.340
Genau. Ja und tatsächlich, eine Sache kann ich dazu sagen, was mich auch sehr gefreut hat, ich habe ja wie gesagt für den Vortrag auf der Con ein gutes Feedback bekommen, habe mich da mit ein paar Leuten unterhalten und habe ja noch ein paar Tipps bekommen, weil ich halt in der Conclusion auch überlegt habe, was da Sachen drin sind, die meiner Meinung nach auch gut ins Django Core, also in das Framework passen würden und dass wir dort, dass ich mich freuen würde halt was zu contributen, aber ich halt bis jetzt halt noch nicht so die richtigen Sachen hatte, es hat nie richtig funktioniert.

00:24:40.680 --> 00:24:51.860
Da habe ich ein paar Tipps bekommen, wie ich das mache. Es gibt nämlich ein Django-Forum, das wird es auch gerade noch ein bisschen, die versuchen gerade so ein bisschen die Kommunikation da auch drin zu centralisieren und da dann einfach meine Idee, also mit etwas kleinem Anliegen.

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

00:24:54.580 --> 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.680 --> 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.600 --> 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.860 --> 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.560
weniger zu implementieren, lustigerweise auch,

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

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

00:25:31.900 --> 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:36.260 --> 00:25:37.240
Und genau, dann

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

00:25:39.640 --> 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.980 --> 00:25:46.800
jetzt nach zwölf Jahren.

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

00:25:50.720 --> 00:25:51.020
Genau.

00:25:51.680 --> 00:26:00.660
Ja, das klingt cool. Also ja, ich muss es eigentlich auch mal ausprobieren. Ich hatte das zwischendurch mal so angeguckt, aber nicht dann angefasst, weil die E-Mail-Lösung bei mir war schon fertig und ich hätte hier alles umbauen müssen.

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

00:26:02.420 --> 00:26:15.740
Und ja, aber eigentlich für das Template wäre es eigentlich cool, das drin zu haben, weil das klingt danach, als müsste man das an verschiedenen Stellen schön benutzen können, weil halt auch, wie du gesagt hast, diese ganzen Features, Templates per HTML und so weiter, sehr gerne genutzt werden.

00:26:15.740 --> 00:26:29.720
Tatsächlich ein Feature, was ich persönlich sehr mag, einfach so ein Convenience-Feature, de facto interessiert die wenigsten Leute wirklich der Plaintext-Part, weil die normalen, die modernen E-Mail-Clients oder die Web-basierten Clients den eh nicht anzeigen.

00:26:29.720 --> 00:26:45.300
Das heißt, die einzigen Arten, wo man das sieht, ist, wenn man so ein E-Mail-Client hat, dann geht so ein Pop-up auf, das nimmt meistens den Plaintext-Part oder wenn halt irgendjemand auf seinem Linux-1980-Konsolen-basierten E-Mail-Programm noch sitzt, da gibt es auch so ein paar Spezies, die das machen.

00:26:45.300 --> 00:27:09.500
Aber ansonsten sieht es halt niemand. Und ich habe mir mit einem externen Package, als Default rendert der einfach das HTML-Template als Plaintext und tauscht dann halt die Tabellen durch Pipes und sowas. Die Struktur ist nicht schön, es funktioniert, auch Links und sowas kriegt der hin. Also das kriegt dann quasi wieder der Client dann hin, der das dann auch trotzdem, auch Plaintext meistens zumindest, dann wieder irgendwie interpretiert.

00:27:10.100 --> 00:27:27.680
Und das ist sehr angenehm, weil dann hat man keine doppelten Templates mehr und das ist natürlich schon ein Problem, dass man durch diese doppelten Inhalte, wie zum Beispiel bei uns in einem Projekt, wo wir gearbeitet haben, hatten wir bestimmt 50 verschiedene E-Mails, alles mögliche, um halt den Kunden zu informieren, was so mit seinen Dingen passiert ist und da wurde ständig vergessen, eine von beiden Teilen anzupassen.

00:27:27.680 --> 00:27:44.360
Das kann man natürlich in gewissen Maßen durch diesen Testhelper lösen, dass man das einfach unit testet. Nichtsdestotrotz, wenn es ein Rechtschreibfehler oder sowas ist, hat man vielleicht darauf gerade nicht geschaut. Das war ein ständiger Pain und das kann man sehr gut damit halt einfach erschlagen und löst das Problem damit. Das ist sehr angenehm.

00:27:44.700 --> 00:27:54.400
Sehr gut. Und du hast gesagt, macht auch sowas dann wie Opt-out-Links oder für E-Mail-Newsletter oder sowas dann direkt mit drin? Ist das da in einem Package drin?

00:27:54.820 --> 00:28:20.060
Also das Package nicht, die Idee ist quasi, dass man, also diese, dass man, also ich biete quasi, also das Package, nicht ich, nicht ich persönlich, biete so eine Basisklasse und wenn man von dieser Basisklasse erbt, dann kann man halt dann eine E-Mail definieren, kann ein paar Attribute setzen, zum Beispiel das Subject setzen, das Template setzen, gegebenenfalls noch Kontextvariable mitgeben, zum Beispiel den Auftrag oder den Link oder irgendwas, was halt der Inhalt der E-Mail ist.

00:28:20.560 --> 00:28:44.000
Jetzt hat man aber natürlich oft einfach so, also die E-Mails, die man schickt aus dem System, sollen ja irgendwie einheitlich sein. Wie auch bei einer Webseite hättest du ein Basis-Template. Du hast da das Logo oben drin, du hast da vielleicht eine generelle Anrede, du hast ein Footer, wo ein paar legale Sachen drinstehen, wo vielleicht ein Unsubscribe-Link drin ist und diese ganzen Sachen, die ganzen Informationen, die man dafür braucht, das sind auch die dynamischen Sachen.

00:28:44.000 --> 00:29:06.340
Zum Beispiel, wenn man sagt, der Unsubscribe-Link enthält ein Hash oder sowas, dass der Nutzer identifiziert werden kann, der das draufgeklickt hat und solche Geschichten. Wenn man da einfach von der meiner Pony Express Basisklasse ableitet, eine eigene Basisklasse macht, dort dann halt die zum Beispiel die Get-Context-Data, wer Django kennt, weiß, was ich meine, überschreibt, dann kann man da halt einmal die ganzen Sachen definieren oder zum Beispiel, dass man Subject-Prefix hat.

00:29:06.340 --> 00:29:35.080
Ich persönlich finde, es sieht immer schön professionell aus, wenn alle E-Mails, die vom System kommen, halt irgendwie geprefixed sind oder zum Beispiel dann irgendwie meinwebshop.de minus und dann halt Account erstellt, Passwort reset und was auch immer und diese Sachen kann man einmal definieren und jede E-Mail, die man dann weiter erstellt, leitet dann halt von dieser eigenen Klasse ab und das, ich meine, das ist halt ganz normale Objektorientierung, das hat jetzt nichts mit dem Pony Express zu tun, aber das ist halt, das macht es sehr angenehm und führt auch dazu, dass die eigentlichen E-Mails, die ich am Schluss dann, wo ich dann auch die N, die N-te,

00:29:36.180 --> 00:29:47.120
dokumentieren muss, dass das wirklich dann meistens halt nur zwei oder drei Zeilen Code sind. Was es natürlich auch wieder sehr angenehm macht, neue E-Mails hinzuzufügen. Genau.

00:29:49.060 --> 00:29:55.620
Cool, cool. Hast du da auch so White-Label-Templates dabei, die quasi gar nichts vorgeben, aber die es schon gibt und die man einfach benutzen kann?

00:29:55.620 --> 00:30:08.540
Also ich tatsächlich, wenn ich das mache, ich fange immer an mit einer Google-Suche nach responsive E-Mail-Template, da lande ich immer bei dem gleichen GitHub-Repo, das es schon seit, ich glaube, 2015 oder sowas gibt. Das ist immer noch überraschend gut und das funktioniert auch.

00:30:08.540 --> 00:30:10.220
Das müssen wir unbedingt in die Show noch stellen.

00:30:11.540 --> 00:30:38.420
Das ist super simpel, es tut es aber irgendwie, ich weiß auch nicht genau warum, aber wenn man sich halt da ein paar Regeln hält, je nachdem wie alte E-Mail-Clients man unterstützen möchte, die früheren Outlook-Versionen sind ja ziemlich wild, die dann unter der Haube so ein Indexbrowser 5 oder sowas haben, das tut dann schon weh, wenn man die unterstützen möchte, aber wie gesagt, kommt halt auch immer dann drauf an, wie wichtig das dann ist, also vielleicht akzeptiert, wie halt auch mit Browsern, vielleicht ist es auch einfach okay, wenn dann der eine, der halt noch den Indexbrowser 11 nutzt, wenn das dann die Webseite halt nicht perfekt aussieht.

00:30:38.920 --> 00:30:57.740
Von daher, das ist auch wie gesagt ein Thema, auf das ich mich gar nicht fokussiert habe, weil ich versucht habe, nicht zu viele Probleme in einem zu lösen. Ich habe selbst überlegt, ob ich diese Sache mit den Class-Based-E-Mails und die Sache mit der Testsuit, ob ich die auseinanderziehen soll, weil es ja im Endeffekt die Testsuit einen eigenständigen Nutzen hat, auch wenn ich keine Class-Based-E-Mails verwende.

00:30:57.740 --> 00:31:14.540
Es ist einfach nur ein Django-Ding und man soll ja Packages eigentlich immer so bauen, dass die nach Möglichkeit genau ein Problem lösen, weil es auch dann einfacher zu verkaufen, einfacher zu verstehen ist. Von daher habe ich mich auch entschieden, dann da nicht noch weitere Dinge reinzubauen und auch persönlich, weil ich da halt auch nicht so die Pain-Points hatte.

00:31:16.700 --> 00:31:20.080
Also hast du eh schon trotzdem mal Copy-Paste, musstest aber erst nicht bereitstellen mit dem Package, okay, verstehe.

00:31:20.080 --> 00:31:20.200
Genau.

00:31:22.660 --> 00:31:24.280
Ja, klingt gut.

00:31:25.280 --> 00:31:26.740
Aber jetzt kommen wir tatsächlich, glaube ich,

00:31:26.800 --> 00:31:28.560
dann zu Django Tasks, weil, wenn man

00:31:28.560 --> 00:31:30.560
ihm es verschicken möchte, möchte man das ja

00:31:30.560 --> 00:31:31.800
wahrscheinlich nicht sequenziell.

00:31:32.980 --> 00:31:34.140
Genau, nicht im Main Thread.

00:31:34.880 --> 00:31:36.120
Und genau,

00:31:38.120 --> 00:31:38.780
da gibt es

00:31:38.780 --> 00:31:40.540
ein neues Konzept, wie gesagt, das

00:31:40.540 --> 00:31:42.560
nennt sich Background Workers, das lebt aktuell in einem

00:31:42.560 --> 00:31:44.740
Package namens Django-Tasks.

00:31:44.840 --> 00:31:46.540
Da muss man aufpassen, es gibt ganz viele, die ähnlich

00:31:46.540 --> 00:31:48.600
klingen. Django-Background-Tasks,

00:31:48.660 --> 00:31:50.320
Ja, Background-Task-Manager.

00:31:50.980 --> 00:31:52.680
Genau, auf jeden Fall dieses Django-Task-Package.

00:31:52.720 --> 00:31:53.780
Das ist von Jake Howard.

00:31:53.860 --> 00:31:55.580
Der hat das jetzt relativ schnell zusammengenagelt.

00:31:55.680 --> 00:31:57.060
Das ist echt erstaunlich.

00:31:57.880 --> 00:32:00.100
Der freut sich auf jeden Fall über ...

00:32:00.100 --> 00:32:01.840
Doch, das ist nicht Django-Background-Task.

00:32:02.560 --> 00:32:03.600
Ja, ich merke schon.

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

00:32:06.500 --> 00:32:08.180
Der freut sich auf jeden Fall immer über Leute,

00:32:08.260 --> 00:32:08.720
die das ausprobieren.

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

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

00:32:12.920 --> 00:32:13.860
Jetzt muss ich auch noch einen Satz sagen,

00:32:13.920 --> 00:32:14.520
was das überhaupt ist.

00:32:15.060 --> 00:32:15.160
Ja.

00:32:15.620 --> 00:32:15.980
Genau.

00:32:18.140 --> 00:32:41.080
Also in den meisten Projekten, wenn man irgendwas asynchron machen möchte, da meine ich jetzt gar nicht dieses in ganzem Sinne relativ moderne Async, sondern einfach, ich möchte irgendwelche Prozesse nachgelagert machen, zum Beispiel irgendeine große Berechnung machen, irgendeinen Cache befüllen oder halt auch eine E-Mail schicken, weil ich möchte ja mit dem, E-Mail ist ja, ich muss ja mit der externen API kommunizieren, um die E-Mail zu versenden, da möchte ich ja im Optimalfall nicht meinen externen Thread blockieren, äh, meinen Main Thread blockieren.

00:32:43.800 --> 00:32:56.260
Genau, deshalb gibt es in jedem Projekt, in dem ich gearbeitet habe, irgendeine Art von asynchronem Processing, meistens in der Form von Celery, das ist in der Python-Welt sehr bekannt, in der Django-Welt.

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

00:32:57.840 --> 00:33:16.140
Ja. Gibt es Django Q oder Q2? Ist jetzt aufgekommen, das ist so eine leichtgewichtigere Alternative, weil das Hauptproblem ist, dass Celery erzwingt, dass man irgendeinen Broker dazwischen stellt, der als Message-Queue dient.

00:33:16.480 --> 00:33:19.880
Man kann das auch so konfigurieren, dass der direkt die Datenbank nimmt.

00:33:20.380 --> 00:33:23.880
Oder der hat eine lokale Datei, in der er irgendwas reinschreiben kann und macht irgendeine SQLite noch extra auf.

00:33:25.120 --> 00:33:29.080
Okay, das weiß ich, ja, aber ich glaube, man muss es nicht unbedingt, also es ist üblich, ja.

00:33:29.500 --> 00:33:46.680
Und es ist auch, also ich habe das mehrfach schon gesucht und für die Result Backends, also bei Celery, wenn quasi um die Ergebnisse zu speichern und das im Endeffekt so eine Art Log, was passiert ist, dafür geht das, das ist relativ einfach, aber für den Broker selbst bin ich zumindest immer damit gescheitert.

00:33:46.680 --> 00:34:03.880
Ich war tatsächlich nie so viel investiert darin. Auf jeden Fall für die allermeisten Cases ist es halt einfach harter Overkill, wenn man da halt irgendeine Postgres oder MariaDB hat. Die kann in den, zum Beispiel bei uns in den meisten Fällen, kann die paar hundert Tasks, die am Tag laufen, problemlos abfrühstücken, ohne dass sie da irgendwie in Verlegenheiten kommen.

00:34:03.880 --> 00:34:05.500
und selbst bei ein paar tausend Tasks ist es immer noch

00:34:05.500 --> 00:34:07.660
kein Problem. Vor allem, wenn man dann

00:34:07.660 --> 00:34:09.560
vielleicht auch sagt, dass

00:34:09.560 --> 00:34:11.640
die, dass die ein großer Task vielleicht auch eher

00:34:11.640 --> 00:34:13.500
nachts läuft für irgendwelche Sachen,

00:34:13.680 --> 00:34:15.540
dann, da ich auch keine Userlast habe

00:34:15.540 --> 00:34:17.420
und das wird allgemein

00:34:17.420 --> 00:34:19.240
sehr stark als Overkill angesehen. Dazu,

00:34:19.520 --> 00:34:21.460
wie Dominik gerade schon gesagt hat, viele Leute fürchten

00:34:21.460 --> 00:34:23.740
auf Celery für, aus verschiedenen

00:34:23.740 --> 00:34:24.200
Gründen.

00:34:25.000 --> 00:34:27.300
Das wird oft kaputt auch eingestellt, verhält sich komisch.

00:34:27.580 --> 00:34:29.500
Aber vielleicht, also ist die Frage, ob es an Celery liegt oder

00:34:29.500 --> 00:34:31.200
daran, dass Icing halt ein bisschen schwieriger ist?

00:34:31.640 --> 00:34:33.560
Also da würde ich

00:34:33.560 --> 00:34:35.460
gerne nochmal kurz eine Begriffsklärung machen, weil

00:34:35.460 --> 00:34:37.160
viele sagen ja, Async,

00:34:37.440 --> 00:34:39.220
und ich höre auch immer, wenn von

00:34:39.220 --> 00:34:41.140
Async die Rede ist, dass dann Leute sagen so,

00:34:42.220 --> 00:34:43.580
das merke ich

00:34:43.580 --> 00:34:45.300
dann irgendwie nach einer gewissen Zeit, dass Leute eigentlich

00:34:45.300 --> 00:34:46.260
sowas wie Celery meinen.

00:34:47.160 --> 00:34:49.240
Aber das hat ja jetzt zum Beispiel mit

00:34:49.240 --> 00:34:50.840
Async.io oder so

00:34:50.840 --> 00:34:53.180
damit überhaupt gar nichts zu tun, das ist etwas ganz anderes.

00:34:53.300 --> 00:34:55.320
Ja, also Celery ist ein eigener Worker-Prozess,

00:34:55.420 --> 00:34:57.280
wenn ich mich nicht verstehe, der halt einfach Taster

00:34:57.280 --> 00:34:59.480
arbeitet zu einer bestimmten Zeit, die halt in der Liste stehen

00:34:59.480 --> 00:35:01.240
und dann also diese Queue

00:35:01.240 --> 00:35:03.420
leert. Ja, du hast so eine Anzahl von Workern

00:35:03.420 --> 00:35:05.300
und du hast halt irgendwie

00:35:05.300 --> 00:35:07.460
genau

00:35:07.460 --> 00:35:09.200
ein Ding, das halt eventuell auf so einer

00:35:09.200 --> 00:35:11.300
Queue drauf sitzt und dann verteilt es halt Jobs an

00:35:11.300 --> 00:35:13.380
diese Worker und die machen dann halt

00:35:13.380 --> 00:35:15.300
Dinge und schreiben ihre Resultate wieder

00:35:15.300 --> 00:35:15.820
irgendwo hin.

00:35:17.580 --> 00:35:19.360
Ich glaube, warum die Leute denken, dass es Essing ist,

00:35:19.420 --> 00:35:21.260
weil das halt meistens, wie schon gesagt, nicht im

00:35:21.260 --> 00:35:23.320
Main-Prozess läuft, obwohl man das auch machen kann. Du kannst ja

00:35:23.320 --> 00:35:24.640
mit Django mitstarten oder so.

00:35:25.360 --> 00:35:27.360
Die Frage ist auch da, was das halt heißt.

00:35:27.620 --> 00:35:29.320
Also weil, Jochen weiß das

00:35:29.320 --> 00:35:31.440
bestimmt besser, weil es ja irgendwie verschiedene Event-Queues

00:35:31.440 --> 00:35:33.600
die man nutzen kann, G-Event oder Event

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

00:35:35.380 --> 00:35:37.380
überhaupt nichts zu tun. Also mit G-Event oder sowas

00:35:37.380 --> 00:35:39.440
hat es überhaupt nichts zu tun. G-Event ist sowas wie Async.io

00:35:39.440 --> 00:35:41.360
ganz anderes. Aber kann man machen, also wenn man das

00:35:41.360 --> 00:35:43.260
mit der Django selber macht, dann muss man sich überlegen, welche

00:35:43.260 --> 00:35:45.300
da benutzt wird. Ja, aber nichts, also

00:35:45.300 --> 00:35:47.480
nicht sowas wie G-Event oder auch nicht sowas wie Async.io

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

00:35:50.080 --> 00:35:51.060
Das ist auch nicht

00:35:51.060 --> 00:35:53.460
eine Geschichte, die im gleichen Prozess normalerweise stattfindet,

00:35:53.500 --> 00:35:55.060
sondern du hast halt tatsächlich andere Prozesse.

00:35:56.020 --> 00:35:57.240
Ja, wenn man die hat, genau,

00:35:57.320 --> 00:35:59.300
wenn man die anderen Prozesse hat, dann schon. Anders

00:35:59.300 --> 00:35:59.820
geht es nicht.

00:36:01.440 --> 00:36:04.060
okay. Also, genau.

00:36:04.260 --> 00:36:06.140
Das geht anders, jedenfalls nicht, dass ich

00:36:06.140 --> 00:36:07.980
wüsste, dass das irgendwie anders gehen würde, weil

00:36:07.980 --> 00:36:09.940
wie soll das funktionieren, wenn du halt jetzt

00:36:09.940 --> 00:36:11.760
irgendwie, keine Ahnung,

00:36:11.880 --> 00:36:13.840
also, nehmen wir an, du

00:36:13.840 --> 00:36:16.060
stößt halt an einem Request,

00:36:16.200 --> 00:36:18.200
also du hast halt irgendwie einen Button, da steht drauf, send email,

00:36:18.580 --> 00:36:19.220
drückst du auf email

00:36:19.220 --> 00:36:22.080
und wie soll das jetzt gehen, dass

00:36:22.080 --> 00:36:23.820
dann eine email,

00:36:24.140 --> 00:36:25.920
ja, so vielleicht geht es tatsächlich irgendwie,

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

00:36:27.080 --> 00:36:29.800
ne, du willst eigentlich

00:36:29.800 --> 00:36:31.940
ein Task dafür schrauben, der ganz woanders ist.

00:36:31.960 --> 00:36:33.340
Du hast recht, du willst das auf jeden Fall.

00:36:33.420 --> 00:36:34.380
Da würde ich dir auf jeden Fall zustimmen.

00:36:35.880 --> 00:36:37.840
Definitiv. Ja, aber diese beiden Dinge haben eigentlich

00:36:37.840 --> 00:36:39.720
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:44.100 --> 00:36:45.500
Wie gesagt, es ist halt,

00:36:45.980 --> 00:36:47.800
es ist halt, also die, wenn du dir,

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

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

00:36:51.840 --> 00:36:53.360
Von daher liegt es halt nahe, das irgendwie

00:36:53.360 --> 00:36:55.520
asynchron zu nennen. Auch wenn das mit dem

00:36:55.520 --> 00:36:57.840
Async, mit dem Python Async natürlich nichts zu tun

00:36:57.840 --> 00:36:58.660
hat, technisch. Ja.

00:36:59.800 --> 00:37:10.520
Genau, aber es läuft halt nicht irgendwie Async oder in einem anderen Thread, sondern es läuft in einem anderen Prozess. Also hat überhaupt gar nichts mehr mit dem Ding zu tun, mit dem der Interpreter da läuft.

00:37:14.600 --> 00:37:37.180
Genau und insgesamt das Salary Setup ist halt auch relativ, also da schießt man wirklich schon mit sehr großen Kanonen, weil ja meistens man dann mehrere Worker hat, man hat einen Beat für Scheduling, also der im Endeffekt diesen Contab dann ersetzt, dann gibt es noch dieses Monitoring Tool Flower, was so mittelgut funktioniert und eher schlecht als recht meiner Meinung nach gewartet ist.

00:37:38.040 --> 00:38:01.220
Nichtsdestotrotz, wenn man mal irgendwie reingucken möchte, hilft es schon. Dazu, das kommt halt noch, dass man wie gesagt meistens halt dann diesen Message Broker braucht, der halt dann meistens ein Redis oder ein RabbitMQ oder irgendein Derivat davon ist. Und das ist halt für viele Projekte, vor allem am Anfang, ist das halt ein enormer Setup-Aufwand. Wer das erste Mal in seinem Leben Celery einrichten muss, der wird daran keinen Spaß haben.

00:38:02.020 --> 00:38:06.240
Nicht, weil, wenn du halt zum Beispiel auf das redest, wo du sonst nichts anderes benutzt oder sowas, das läuft halt halt die ganze Zeit rum.

00:38:07.000 --> 00:38:20.300
Genau, und es bläht das Setup halt enorm auf und es ist jetzt halt, seit scheinbar auch Jahren ist es halt irgendwie allen bewusst, dass es halt schon cool wäre, wenn Django da selber was könnte und man halt eben nicht mit, da, ne, mit Celery kommen muss.

00:38:20.300 --> 00:38:34.980
Wie gesagt, die Popularität von Django Q oder Q2, wie der Nachfolger davon heißt, der ist ja tatsächlich jetzt auch nicht aus der Welt, weil der im Endeffekt wirklich sehr, sehr leichtgewichtig einfach nur halt Dinge irgendwann außerhalb in einem anderen Prozess abarbeitet.

00:38:35.260 --> 00:38:56.060
Und die Idee von Jack Howard ist jetzt, das wirklich in Django zu integrieren. Er hat erstmal ein Package gemacht, wie man das halt optimalerweise auch so macht, dass Leute es auch separat testen können. Und das Ganze hat er vorgestellt. Das war, ich weiß nicht, ob es wirklich eine Keynote war, aber es war auf jeden Fall de facto eine Keynote. Ich glaube, das war das, wo die Leute am meisten und am heißesten drauf waren.

00:38:57.220 --> 00:39:11.160
Und das ist sehr spannend, weil ich tatsächlich auch bei mir in meinen diversen Projekten glaube ich auch einfach aktiv zurückbauen würde, weil ich einfach happy damit wäre und aus der Salary Setup in den allermeisten Fällen verzichten kann.

00:39:11.280 --> 00:39:28.940
Es gibt jetzt wirklich Cases, wo man sagt, okay, wir machen so viele, wir machen so komplizierte Dinge, das macht natürlich Sinn, da was Explizites zu haben, nur wie immer, es macht halt vor allem, wenn man jetzt auf ein Budget achtet, macht das natürlich schon Sinn, da erst mal mit einer einfachen Lösung anzufangen, einer einfachen, soliden Lösung.

00:39:28.940 --> 00:39:58.560
Billig und schnell rächt sich meistens irgendwann. Genau. Was übrigens auch ganz interessant war, ich habe der Talk von Carlton Gibson, ging im Endeffekt um mal wieder HTMX ist super und mit Alpine.js kann man zusammen coole Dinge machen und sein Treiber davon war, dass er halt sagt, dass jetzt, wo wir in einer Zeit leben, wo die Zinsen seit langer Zeit wieder ein bisschen höher sind, Venture Capital deutlich seltener geworden ist und in deutlich kleinere Mengen vergeben wird.

00:39:58.940 --> 00:40:27.420
Und dass deshalb dieses, ich habe ein Startup und ich möchte irgendwas ausprobieren, dass die einfach mit viel weniger Geld die Sachen bauen müssen. Und das ist halt nicht so, wir bauen jetzt die in der perfekten Welt, sondern es muss schnell gehen. Es muss irgendwie solide sein, aber es muss halt vor allem effizient sein. Und das hat deshalb nochmal den HTMX Tech verkauft, was ich persönlich auch absolut unterschreiben würde. Und das Interessante ist halt, dass ich zum Beispiel habe jetzt noch nie, ich meine, ich habe an ein paar Startup-Projekten mitgearbeitet, aber jetzt nicht mit riesigem Venture Capital. Das ist halt eher so in deutschen Scales gewesen.

00:40:27.700 --> 00:40:29.080
Ja, genau, da gibt es das auch nicht so.

00:40:29.300 --> 00:40:35.960
Und es war immer für uns im Agenturbusiness, wir haben halt ein Budget und das ist eigentlich eher tendenziell zu klein als zu groß.

00:40:36.240 --> 00:40:36.620
Ja, wie immer.

00:40:37.480 --> 00:40:53.640
Und das ist einfach, das ist interessant, weil das, ja, ich meine, wird ihm vorher auch schon klar gewesen sein, aber das nochmal so auf den Punkt zu bringen und dann zu sagen, ja, genauso sehe ich das auch, weil ja, natürlich kannst du, wenn du mit React oder Vue kannst du ausgefallene Referendums bauen, kannst du mehr Dinge tun.

00:40:54.000 --> 00:40:55.920
Die Frage ist, brauchst du das

00:40:55.920 --> 00:40:58.040
und schaffst du das in dem Geld, das du hast?

00:40:58.740 --> 00:41:00.020
Und das, finde ich, ist halt

00:41:00.020 --> 00:41:01.360
so der spannende USP da dran.

00:41:02.380 --> 00:41:03.880
Klar, wenn man erstmal seine

00:41:03.880 --> 00:41:06.180
komplette Applikation in HTMX ohne API gebaut hat

00:41:06.180 --> 00:41:08.000
und man kommt ein und sagt, ich möchte das jetzt alles anders

00:41:08.000 --> 00:41:10.100
haben, das ist natürlich auch nochmal teuer.

00:41:10.420 --> 00:41:11.680
Also ich glaube, man muss da auch ein bisschen in die

00:41:11.680 --> 00:41:13.860
also nicht nur sagen, wie viel Geld haben wir jetzt, sondern wo geht

00:41:13.860 --> 00:41:16.160
das Ganze hin? Nichtsdestotrotz

00:41:16.160 --> 00:41:18.160
persönlich finde ich das auch sehr spannend.

00:41:18.300 --> 00:41:19.660
Der Talk war auch sehr cool und sehr

00:41:19.660 --> 00:41:22.100
energetisch, wie Carlton Gibson halt immer so ist.

00:41:23.680 --> 00:41:23.840
Genau,

00:41:23.940 --> 00:41:25.560
War echt super spannend.

00:41:29.000 --> 00:41:29.720
Ich glaube,

00:41:30.140 --> 00:41:31.960
dieses Django-Template-Partials kommt halt

00:41:31.960 --> 00:41:33.880
auch irgendwie jetzt, ich weiß es rein,

00:41:33.960 --> 00:41:35.780
ich weiß nicht, ob das schon bei 5.1 war,

00:41:35.780 --> 00:41:37.520
oder doch eher 5.2, wahrscheinlich eher 5.2,

00:41:37.600 --> 00:41:38.000
nehme ich mal an.

00:41:39.980 --> 00:41:41.200
Oder hat er auch über

00:41:41.200 --> 00:41:44.660
dieses Neapolitan-Ring

00:41:44.660 --> 00:41:45.860
gesprochen, was er da...

00:41:45.860 --> 00:41:47.100
Genau. Das ist ja auch so ein...

00:41:47.100 --> 00:41:48.900
Neue Quad-Views oder so? Ja, genau.

00:41:49.540 --> 00:41:51.360
Also das dreht sich alles um diese Idee

00:41:51.360 --> 00:41:53.540
des Locality of

00:41:53.540 --> 00:41:55.380
Behavior. Carlton Gibson hat jetzt

00:41:55.380 --> 00:41:56.840
vor nicht allzu langer Zeit einen

00:41:56.840 --> 00:41:59.300
Newsletter angefangen, Stack Report heißt

00:41:59.300 --> 00:42:01.300
der, wo er einmal im Monat sehr

00:42:01.300 --> 00:42:03.180
ausführlich zu einem Thema schreibt. Ich habe den

00:42:03.180 --> 00:42:05.220
abonniert, das kostet glaube ich irgendwie 5 Euro

00:42:05.220 --> 00:42:07.060
oder sowas. Bis jetzt hat es sich,

00:42:07.220 --> 00:42:09.380
also ich glaube es gibt es erst seit 2 oder 3 Monaten,

00:42:09.700 --> 00:42:11.220
bis jetzt hat es sich gelohnt, also ich mache da gerne

00:42:11.220 --> 00:42:12.740
auch nochmal Werbung für ihn, unbezahlt.

00:42:13.520 --> 00:42:15.020
Das finde ich echt cool.

00:42:16.380 --> 00:42:17.440
Also es war echt interessant,

00:42:17.660 --> 00:42:19.220
er hat jetzt über diverse Dinge da

00:42:19.220 --> 00:42:21.120
geschrieben und das hat in dem aktuellen von diesem

00:42:21.120 --> 00:42:22.600
Monat ging es halt um Locality of Behavior

00:42:22.600 --> 00:42:25.060
und er versucht halt im Endeffekt

00:42:25.060 --> 00:42:27.160
das Konzept zu verkaufen, also er sagt halt,

00:42:27.240 --> 00:42:29.180
dass wenn halt alles, was du brauchst, in einer

00:42:29.180 --> 00:42:31.000
Datei steht, ist es halt einfacher zu verstehen

00:42:31.000 --> 00:42:33.260
und 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.200 --> 00:42:39.060
sondern dass man halt dieses Premature Optimizing

00:42:39.060 --> 00:42:40.300
aufhört, dass man sagt, okay,

00:42:40.780 --> 00:42:43.140
ich fange jetzt schon mit, weiß ich nicht,

00:42:43.220 --> 00:42:44.980
die, die, die an und mache das alles perfekt in

00:42:44.980 --> 00:42:47.120
vielen Dateien, ein Neueinsteiger in dem Projekt

00:42:47.120 --> 00:42:49.000
hat keine Chance zu verstehen, was eigentlich

00:42:49.000 --> 00:42:51.080
passiert, sondern fangt erstmal klein an

00:42:51.080 --> 00:42:52.500
und refactored, wenn ihr es wirklich braucht.

00:42:53.160 --> 00:42:54.860
Weil viel von dem, ah ja, ich brauch das

00:42:54.860 --> 00:42:56.740
nochmal, ich mach das mal irgendwie woanders hin,

00:42:57.140 --> 00:42:59.100
kommt dann nachher mit, naja, ist doch

00:42:59.100 --> 00:43:00.980
irgendwie anders geworden, war doch nicht so, wie ich es mir

00:43:00.980 --> 00:43:02.720
gedacht habe. 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.480 --> 00:43:08.900
Django Template Partials,

00:43:09.200 --> 00:43:10.540
sorry, Partials,

00:43:11.000 --> 00:43:12.540
dass man halt wirklich sagen kann, okay,

00:43:12.860 --> 00:43:14.540
diesen Block kann ich jetzt mit HTMLX

00:43:14.540 --> 00:43:16.540
neu rendern lassen, der ist aber trotzdem noch

00:43:16.540 --> 00:43:18.440
in der großen Datei und ich muss es nicht zerpflücken,

00:43:18.540 --> 00:43:20.680
wie man es halt vorher, also Stand jetzt mit

00:43:20.680 --> 00:43:21.580
Vanilla Django macht

00:43:21.580 --> 00:43:24.900
und diese Neapolitan

00:43:24.900 --> 00:43:26.860
Crudviews ist auch die Idee, dass du halt wirklich mehr

00:43:26.860 --> 00:43:29.000
Sachen an einer Stelle zusammen

00:43:29.000 --> 00:43:30.820
hast. Dass man im Grunde eine Klasse hat, wo die

00:43:30.820 --> 00:43:32.800
ganzen, also GetPost und sonst wie Dinge,

00:43:32.920 --> 00:43:34.460
die da passieren, halt alle drin sind.

00:43:35.920 --> 00:43:36.720
Ich persönlich

00:43:36.720 --> 00:43:38.560
finde, dass Locality of Behaviour ist, glaube ich,

00:43:38.560 --> 00:43:40.740
eine gute Sache. Ich meine, das geht auch so ein bisschen nach

00:43:40.740 --> 00:43:42.320
Yagni, also You Ain't Gonna Need It,

00:43:42.980 --> 00:43:44.840
dass man halt nicht, dass man erstmal überlegt,

00:43:44.920 --> 00:43:46.160
so muss ich jetzt wirklich anfangen,

00:43:47.040 --> 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:51.080 --> 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:55.000 --> 00:43:56.760
die Dinge zu tun, die ich jetzt schon

00:43:56.760 --> 00:43:57.800
weiß, die sinnvoll sind,

00:43:58.360 --> 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.920 --> 00:44:04.780
Aber ich glaube, generell ist man schon sehr

00:44:04.780 --> 00:44:06.620
prone, als Entwickler over zu

00:44:06.620 --> 00:44:08.640
ingenieren und ich glaube, das sich im Kopf zu behalten,

00:44:08.760 --> 00:44:09.940
so muss ich das jetzt wirklich tun.

00:44:10.340 --> 00:44:12.820
So ein bisschen so ein Trade-off mit KISS oder so was

00:44:12.820 --> 00:44:14.840
und schon simpel und dass du irgendwie tatsächlich

00:44:14.840 --> 00:44:16.720
versuchst, vielleicht, also was ich

00:44:16.720 --> 00:44:18.760
zum Beispiel 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.880 --> 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:29.780
am meisten, finde ich.

00:44:31.080 --> 00:44:32.760
Was dann auch gar nicht schwer zu verstehen macht,

00:44:32.820 --> 00:44:34.420
wenn das halt alles in einem Directory liegt, zum Beispiel,

00:44:34.520 --> 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:39.540 --> 00:44:40.300
Das ist so, ja.

00:44:41.820 --> 00:44:42.840
Oh, ich würde ganz kurz

00:44:42.840 --> 00:44:44.540
nur einmal kurz einlaufen

00:44:44.540 --> 00:44:46.500
nochmal zu dieser Task-Geschichte,

00:44:46.880 --> 00:44:48.560
was ich halt oft sehe, was ich finde,

00:44:48.640 --> 00:44:49.680
was man vermeiden sollte,

00:44:50.280 --> 00:44:52.580
wenn Leute sowas machen

00:44:52.580 --> 00:44:54.180
und das halt irgendwie, weil oft

00:44:54.180 --> 00:44:56.480
macht man das dann ja, man braucht

00:44:56.480 --> 00:44:58.220
es schon meistens, aber dann doch nicht

00:44:58.220 --> 00:45:00.420
irgendwie so dauernd, dass man da,

00:45:00.580 --> 00:45:02.380
dass alle Leute da irgendwie

00:45:02.380 --> 00:45:03.420
viel Erfahrung mit hätten.

00:45:04.740 --> 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
Infrastrukturding auch nochmal ordentlich Schmerzen macht,

00:45:12.540 --> 00:45:14.180
ist halt, wenn Leute anfangen,

00:45:14.580 --> 00:45:16.460
irgendwie so ganz Kaskaden von Tasks

00:45:16.460 --> 00:45:18.740
irgendwie zu schreiben,

00:45:18.920 --> 00:45:20.540
so gerade bei Celery ist das dann halt auch sehr

00:45:20.540 --> 00:45:22.580
einfach und dann hat man da Abhängigkeiten

00:45:22.580 --> 00:45:24.580
inzwischen und dann, und Leuten

00:45:24.580 --> 00:45:26.040
ist gar nicht so bewusst, dass es bedeutet, ja,

00:45:26.360 --> 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.280
Kanzlerrahmen wieder so heraussehlich realisiert werden

00:45:32.280 --> 00:45:34.520
und dann geht es 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 das ist halt so schön.

00:45:40.680 --> 00:45:42.460
Und also was ich nur empfehlen kann,

00:45:42.460 --> 00:45:44.280
ist, man macht halt eine Funktion oder

00:45:44.280 --> 00:45:46.300
so 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.440
und dann testet man das ganz normal, synchron,

00:45:51.440 --> 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.040
sagt man in einem

00:45:56.040 --> 00:45:58.300
Celery-Task eigentlich nur, okay, man ruft halt dieses Ding

00:45:58.300 --> 00:46:00.420
auf, fertig. Wie man

00:46:00.420 --> 00:46:02.280
auch 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.940 --> 00:46:08.320
Ja, und keine Logik

00:46:08.320 --> 00:46:10.280
in die Tasks packen, sondern

00:46:10.280 --> 00:46:12.440
von den Tasks, also in dem eigentlichen

00:46:12.440 --> 00:46:14.240
Celery-Task immer nur irgendwie Logik,

00:46:14.240 --> 00:46:15.360
die irgendwo anders ist, aufrufen.

00:46:15.940 --> 00:46:17.880
Aber wenn du halt Logik hast, oder am besten Logik verteilt

00:46:17.880 --> 00:46:19.220
über mehrere Tasks, dann passieren

00:46:19.220 --> 00:46:21.840
scharröckelige Dinge unter Umständen.

00:46:22.080 --> 00:46:23.680
Und ja. Absolut.

00:46:24.680 --> 00:46:25.860
Genau. Das war nur so ein kurzer

00:46:25.860 --> 00:46:26.380
Einwurf. Ja.

00:46:27.980 --> 00:46:29.240
Es gab da noch so ein tolles

00:46:29.240 --> 00:46:32.000
Thread zu im Chaos Social,

00:46:32.700 --> 00:46:34.120
den du auch, wo du den Link vorhin geteilt hast,

00:46:34.200 --> 00:46:35.780
der sehr, sehr interessant war.

00:46:35.900 --> 00:46:37.980
Zu dem, ja. Einige coole Leute.

00:46:38.080 --> 00:46:39.520
Unter anderem Carlton Gibson selber und

00:46:39.520 --> 00:46:41.500
der Hüneck und so. Ja, Hüneck. Ja, genau.

00:46:41.500 --> 00:46:43.620
Und diverse Leute. Da gab es ein Thread

00:46:43.620 --> 00:46:45.460
zu, was braucht man jetzt bei Background-Tasks

00:46:45.460 --> 00:46:47.560
eigentlich alles. Ja. Und was sind

00:46:47.560 --> 00:46:48.800
da die Anforderungen genau?

00:46:48.960 --> 00:46:51.140
Neu geschrieben oder anders implementiert.

00:46:51.440 --> 00:46:53.300
Und auch alle haben sich über Celery beschwert aus Gründen.

00:46:54.100 --> 00:46:55.060
Ja, ich kann das mal,

00:46:55.220 --> 00:46:56.920
genau das Ding verlinke ich auch mal.

00:46:57.400 --> 00:46:59.440
Ja, Fediverse ist halt zur Zeit, also wenn

00:46:59.440 --> 00:47:01.440
er noch nicht ist, da sind halt

00:47:01.440 --> 00:47:03.500
alle. Es steht tatsächlich auf meiner Liste

00:47:03.500 --> 00:47:05.480
und ich lese halt immer so ein bisschen mit, aber naja.

00:47:06.220 --> 00:47:07.260
Ja, also da ist,

00:47:07.400 --> 00:47:09.380
also das fühlt sich an wie Twitter früher,

00:47:09.380 --> 00:47:11.520
so ein bisschen Blümchenwiese mäßig.

00:47:12.080 --> 00:47:13.380
Weil alle Leute sind,

00:47:13.480 --> 00:47:15.060
oder viele der Leute, die man so kennt,

00:47:15.240 --> 00:47:17.920
und da und man kann

00:47:17.920 --> 00:47:19.300
sich mit denen einfach so unterhalten und so.

00:47:20.300 --> 00:47:21.400
Ja, cool. Genau.

00:47:22.780 --> 00:47:23.180
Ja,

00:47:23.800 --> 00:47:24.800
das ist ein interessantes Thema.

00:47:26.540 --> 00:47:26.940
Genau.

00:47:27.220 --> 00:47:28.800
Was ich auch interessant fand,

00:47:29.660 --> 00:47:31.220
ich habe mit auf der Konferenz

00:47:31.220 --> 00:47:33.000
noch ein Wort mit dem

00:47:33.000 --> 00:47:34.760
Creator da gewechselt

00:47:34.760 --> 00:47:36.420
und er meinte auch, dass

00:47:36.420 --> 00:47:38.840
früher wurde, also wenn ich es richtig

00:47:38.840 --> 00:47:40.800
verstanden habe, ich will mir jetzt keine Worte in den Mund legen, aber wenn ich es

00:47:40.800 --> 00:47:42.760
richtig verstanden habe, meinte er, dass früher bei Django

00:47:42.760 --> 00:47:44.720
eher so die Idee war, alles was nach

00:47:44.720 --> 00:47:46.620
Chor kommt, muss mehr oder weniger

00:47:46.620 --> 00:47:48.740
so die eierlegende Wollmilchsau

00:47:48.740 --> 00:47:50.800
110%-Lösung sein, weil das ist ja

00:47:50.800 --> 00:47:52.800
Django, das muss ja so. Und jetzt

00:47:52.800 --> 00:47:54.840
war halt die Idee wirklich zu sagen, naja, aber lass uns

00:47:54.840 --> 00:47:56.700
doch erst mal mit was anfangen, was halt alleine

00:47:56.700 --> 00:47:58.200
steht, also dieser MVP-Gedanke.

00:47:58.560 --> 00:48:00.500
Natürlich kann man noch 400 Sachen nach

00:48:00.500 --> 00:48:02.660
und dazu bauen, aber braucht man

00:48:02.660 --> 00:48:04.400
die wirklich? Will das

00:48:04.400 --> 00:48:06.180
die Crowd so?

00:48:06.700 --> 00:48:08.740
Und dass die jetzt wirklich anfangen und versuchen,

00:48:10.420 --> 00:48:10.740
ja,

00:48:10.880 --> 00:48:11.960
also wirklich mit einem kleinen

00:48:11.960 --> 00:48:14.360
Inkrement zu shippen, dass halt

00:48:14.360 --> 00:48:16.100
stehen kann, das laufen kann

00:48:16.100 --> 00:48:18.300
und alles, was halt danach kommt, einfach

00:48:18.300 --> 00:48:20.060
zu gucken, wie reagieren die Leute,

00:48:20.280 --> 00:48:22.240
was für Sachen werden wirklich angefragt, das finde ich halt

00:48:22.240 --> 00:48:24.460
sehr interessant, weil ich glaube, das ist einfach so ein generelles

00:48:24.460 --> 00:48:26.420
Ding, wenn man irgendwie in der Softwareentwicklung ist,

00:48:26.480 --> 00:48:28.260
dieser MVP-Gedanke ist so, so,

00:48:28.260 --> 00:48:30.260
so zentral und da kann man

00:48:30.260 --> 00:48:32.460
so viel falsch machen und so viel Geld und Projekte

00:48:32.460 --> 00:48:34.040
und Chaos verlieren,

00:48:34.560 --> 00:48:36.040
wenn man halt nicht dem MVP

00:48:36.040 --> 00:48:38.340
denkt, weil

00:48:38.340 --> 00:48:40.420
schöner geht halt immer und

00:48:40.420 --> 00:48:41.420
ja,

00:48:42.060 --> 00:48:42.580
genau.

00:48:43.520 --> 00:48:46.460
Genau, bei Ruby on Rails

00:48:46.460 --> 00:48:47.740
ist halt auch diese

00:48:47.740 --> 00:48:50.200
Background-House-Geschichte schon seit Ewigkeiten drin

00:48:50.200 --> 00:48:52.180
und das war halt mal eine

00:48:52.180 --> 00:48:54.280
der Geschichten, die in Django halt, ja, wo man

00:48:54.280 --> 00:48:55.620
da halt irgendwie dann immer sagen musste,

00:48:56.140 --> 00:48:58.000
ja, nimm mal Terry, ja, es tut weh,

00:48:58.140 --> 00:49:00.200
nimm's halt trotzdem, das ist das, was es

00:49:00.200 --> 00:49:00.460
gibt.

00:49:02.080 --> 00:49:03.520
Ja, und

00:49:03.520 --> 00:49:05.860
wenn sich das jetzt ändert, dann ist auf jeden Fall

00:49:05.860 --> 00:49:07.680
ein Pain-Point irgendwie auch weniger.

00:49:08.680 --> 00:49:10.140
Die haben gesagt, dass wenn es

00:49:10.140 --> 00:49:12.020
gut läuft, landet das in 5.2, du

00:49:12.020 --> 00:49:14.220
weißt, wann 5.2 rauskommt, hattest du gesagt?

00:49:14.360 --> 00:49:15.780
Äh, April hatte, ja.

00:49:17.140 --> 00:49:17.420
Genau.

00:49:18.400 --> 00:49:20.020
Dann wird dann neben meinem kleinen

00:49:20.020 --> 00:49:22.140
Testhelper das zweite große Ding,

00:49:22.340 --> 00:49:23.160
während du dann die Background hast.

00:49:24.080 --> 00:49:25.380
Oh, sehr gut, sehr gut.

00:49:26.940 --> 00:49:27.420
Ähm,

00:49:28.120 --> 00:49:28.640
genau.

00:49:30.220 --> 00:49:32.140
Ja, also, HTMX war diesmal auf der

00:49:32.140 --> 00:49:33.500
JungleCon also auch quasi wieder so ein,

00:49:33.540 --> 00:49:35.700
ist ja die letzten Male eigentlich immer ein großes Thema gewesen.

00:49:36.100 --> 00:49:38.040
Genau. Ja, ich meine,

00:49:38.120 --> 00:49:39.940
HTMX ist halt, ist halt

00:49:39.940 --> 00:49:41.940
im Endeffekt die Silver Bullet, mit der

00:49:41.940 --> 00:49:43.760
sehr, sehr viele Leute dann HTMX

00:49:43.770 --> 00:49:44.510
vermeiden können,

00:49:44.730 --> 00:49:49.490
was natürlich so ein bisschen

00:49:49.490 --> 00:49:51.030
ein Gänsefüßchen ist, weil man natürlich immer noch ein bisschen

00:49:51.030 --> 00:49:53.210
JavaScript braucht und das auch sehr viel mit JavaScript geschrieben ist.

00:49:54.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.310 --> 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:06.850 --> 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.950 --> 00:50:12.950
mich ernsthaft mit einem

00:50:12.950 --> 00:50:15.030
JavaScript-Framework zu beschäftigen und

00:50:15.030 --> 00:50:17.430
ich bin

00:50:17.430 --> 00:50:19.350
auch in meinem Beruf immer wieder damit konfrontiert,

00:50:19.790 --> 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.110 --> 00:50:25.230
Wir haben uns jetzt tatsächlich bei dem letzten Projekt, das gestartet ist,

00:50:25.270 --> 00:50:26.750
auch aktiv für HTMX entschieden.

00:50:27.410 --> 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.770 --> 00:50:34.070
Ja, das ist natürlich interessant.

00:50:34.610 --> 00:50:36.570
Und weil wir einfach auch gesagt haben,

00:50:36.690 --> 00:50:38.750
das Projekt ist halt

00:50:38.750 --> 00:50:40.970
eine ganz klassische Backend-Applikation. Man hat viele

00:50:40.970 --> 00:50:42.930
Listen, man hat viele Crud-Views. Es gibt

00:50:42.930 --> 00:50:45.190
zwei, drei, vier Sachen, die so ein bisschen

00:50:45.190 --> 00:50:46.770
ausgefallen sind, aber auch nicht so wirklich.

00:50:47.430 --> 00:50:48.870
Also da hat man mal so ein Drag-and-Drop-Element

00:50:48.870 --> 00:50:50.910
oder sowas. Und wir sind

00:50:50.910 --> 00:50:51.950
einfach der Meinung, dass

00:50:51.950 --> 00:50:54.690
das dafür halt HTMX wirklich

00:50:54.690 --> 00:50:56.870
gut funktioniert, weil das ist das, was Django wirklich

00:50:56.870 --> 00:50:57.430
gut kann.

00:50:58.770 --> 00:51:00.890
Und das Projekt

00:51:00.890 --> 00:51:02.830
ist es auch nicht etwas, wo man sagt, das ist jetzt

00:51:02.830 --> 00:51:04.230
irgendwie, wenn

00:51:04.230 --> 00:51:06.870
die Firma durch die Decke geht, dann so und

00:51:06.870 --> 00:51:08.730
so, sondern das wird immer eine Backend-Applikation

00:51:08.730 --> 00:51:10.730
bleiben. Logischerweise wird die wachsen, wenn

00:51:10.730 --> 00:51:11.670
die Firma wächst, etc.

00:51:12.670 --> 00:51:14.530
Aber das wirkte einfach nach dem

00:51:14.530 --> 00:51:16.930
nach dem perfekten Hammer für diesen Nagel.

00:51:17.250 --> 00:51:18.710
Was nicht heißt, dass wenn man

00:51:18.710 --> 00:51:20.330
jetzt sagt, ich möchte jetzt keine Ahnung, das

00:51:20.330 --> 00:51:22.230
nächste Instagram oder sowas bauen,

00:51:22.690 --> 00:51:24.810
dass das vielleicht, wenn man schon die Kohle dafür hat am Anfang,

00:51:25.090 --> 00:51:26.570
dass das vielleicht nicht unbedingt

00:51:26.570 --> 00:51:28.650
die beste Wahl ist. Geht wahrscheinlich auch

00:51:28.650 --> 00:51:30.210
alles trotzdem, aber

00:51:30.210 --> 00:51:32.510
ich glaube umso mehr, sag ich mal,

00:51:32.550 --> 00:51:34.530
wirkliche Endnutzer, also jetzt nicht Mitarbeiter

00:51:34.530 --> 00:51:36.690
der Firma oder Administratoren, sondern wirkliche Endnutzer

00:51:36.690 --> 00:51:38.490
man auf der Plattform hat, wahrscheinlich schwingt da

00:51:38.490 --> 00:51:40.650
dann immer so die Notwendigkeit für

00:51:40.650 --> 00:51:43.090
ein richtiges, volles Frontend-Framework,

00:51:43.170 --> 00:51:44.830
wo man das ja auch in Gänzefüßen sehen muss, React und

00:51:44.830 --> 00:51:46.270
Vue sind ja auch keine Frontend-Libraries,

00:51:46.890 --> 00:51:48.810
schwingt dann doch eher so das

00:51:48.810 --> 00:51:49.830
Pendel in diese Richtung.

00:51:51.110 --> 00:51:52.750
Und ich glaube, diese Frage kann man halt

00:51:52.750 --> 00:51:54.650
wie jede einzelne Tech-Frage damit

00:51:54.650 --> 00:51:56.050
beantworten. Es kommt drauf an.

00:51:57.530 --> 00:51:58.730
Nichtsdestotrotz wird das natürlich

00:51:58.730 --> 00:52:00.610
hart gefeiert in der Community, weil, wie das

00:52:00.610 --> 00:52:02.330
auch bei mir so ist, das ist es halt, ich meine,

00:52:02.430 --> 00:52:04.770
ich bin seit zwölf Jahren dabei, das erste

00:52:04.770 --> 00:52:06.630
Mal, dass man, dass ich

00:52:06.630 --> 00:52:08.630
jetzt wirklich ein Werkzeug

00:52:08.630 --> 00:52:10.890
bekomme, das vernünftig funktioniert

00:52:10.890 --> 00:52:12.930
und das, was man früher so immer gemacht hat

00:52:12.930 --> 00:52:14.770
wie JQuery und sowas, definiere ich

00:52:14.770 --> 00:52:17.090
definitiv nicht als vernünftig funktionieren.

00:52:17.270 --> 00:52:18.470
Ja, das hat nicht, also

00:52:18.470 --> 00:52:20.890
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:24.410 --> 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.990
richtige Richtung, sind halt so Web Components,

00:52:33.290 --> 00:52:34.250
das ist eigentlich auch ganz nett,

00:52:34.430 --> 00:52:36.810
da muss man dann halt JavaScript schreiben, das ist halt

00:52:36.810 --> 00:52:38.530
so ein bisschen doof, aber

00:52:38.530 --> 00:52:40.750
man kann halt irgendwie, das hält sich

00:52:40.750 --> 00:52:42.530
dann halt in Grenzen. Also und

00:52:42.530 --> 00:52:44.790
man weiß halt, also das habe ich

00:52:44.790 --> 00:52:47.190
letztens wieder erlebt und das tut jedes Mal weh,

00:52:47.610 --> 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.210
das ist immer schmerzhaft.

00:52:52.570 --> 00:52:53.830
Also wenn man jetzt irgendwie

00:52:53.830 --> 00:52:56.750
ja da so, zum Beispiel das war

00:52:56.750 --> 00:52:58.750
jetzt mein View-Projekt, es ist halt

00:52:58.750 --> 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.710 --> 00:53:04.530
was denn da jetzt eigentlich das Problem ist und bis das

00:53:04.530 --> 00:53:06.370
alles wieder rund läuft und dann

00:53:06.370 --> 00:53:08.350
vergehen vielleicht auch nochmal ein paar Tage

00:53:08.350 --> 00:53:10.250
oder Wochen, bis man wirklich alles gefunden hat, was

00:53:10.250 --> 00:53:12.450
vielleicht nicht mehr ging, weil manchmal war es das nicht so offensichtlich

00:53:12.450 --> 00:53:14.230
und das ist einfach total

00:53:14.230 --> 00:53:15.070
nervtötend, also

00:53:15.070 --> 00:53:18.250
genau, das Problem hat man mit Web

00:53:18.250 --> 00:53:20.270
Components halt auch nicht, weil das ist halt Standard

00:53:20.270 --> 00:53:22.250
und wenn das jetzt funktioniert,

00:53:22.370 --> 00:53:24.230
funktioniert das in

00:53:24.230 --> 00:53:26.090
zehn Jahren halt auch noch ganz genauso und

00:53:26.090 --> 00:53:26.970
ja.

00:53:28.350 --> 00:53:30.090
Tatsächlich haben wir zu dem Projekt mal

00:53:30.090 --> 00:53:32.130
Django Components ausprobiert, das ist ja auch eine von diesen

00:53:32.130 --> 00:53:34.130
vielen Ansätzen, da gibt es auch Django Slippers und wie die

00:53:34.130 --> 00:53:35.890
alle heißen, um

00:53:35.890 --> 00:53:37.190
Was war das letzte? Django Slit?

00:53:37.470 --> 00:53:37.870
Slippers.

00:53:39.290 --> 00:53:41.330
Um im Endeffekt dieses

00:53:41.330 --> 00:53:43.430
Komponentendenken in die

00:53:43.430 --> 00:53:45.150
Django-Welt zu bringen, weil de facto

00:53:45.150 --> 00:53:47.410
die Django-Template-Welt ist ja immer noch, wie sie

00:53:47.410 --> 00:53:49.470
vor 15 Jahren mal irgendwann angefangen hat

00:53:49.470 --> 00:53:51.250
und da zu überlegen, dass man

00:53:51.250 --> 00:53:53.350
Komponenten bauen möchte, vor allem in so einer Kombination mit

00:53:53.350 --> 00:53:55.470
Tailwind, die ja dann eher diese

00:53:55.470 --> 00:53:57.850
Utility-Base-Klasse, also ein normales

00:53:57.850 --> 00:53:58.830
Tailwind-Diff hat noch

00:53:58.830 --> 00:54:00.630
10, 15 Klassen.

00:54:01.450 --> 00:54:03.050
Das eskaliert ziemlich hart.

00:54:03.570 --> 00:54:04.830
Ich finde es gut, aber

00:54:04.830 --> 00:54:06.750
wie gesagt, es ist nicht schön

00:54:06.750 --> 00:54:09.050
anzugucken und von daher die Sachen eher zu kapseln

00:54:09.050 --> 00:54:10.830
und zu sagen, ich habe jetzt nicht, wie bei Bootstrap

00:54:10.830 --> 00:54:12.710
zum Beispiel früher, ich habe hier

00:54:12.710 --> 00:54:14.650
eine Button-Class und dann sieht jeder Button halt so aus, wenn ich

00:54:14.650 --> 00:54:16.910
was überschreiben muss, bin ich halt arm dran,

00:54:17.150 --> 00:54:18.010
dann wird es schwierig,

00:54:18.770 --> 00:54:20.830
sondern dass man wirklich die Sachen individuell

00:54:20.830 --> 00:54:22.730
mit diesen Klassen halt definieren kann, ohne halt

00:54:22.730 --> 00:54:24.690
die ganze CSS-Magie dahinter 100% verstehen

00:54:24.690 --> 00:54:26.530
zu müssen. Und da

00:54:26.530 --> 00:54:28.610
diese Komponenten in der Django-Welt

00:54:28.610 --> 00:54:30.430
zu machen, klingt super interessant.

00:54:30.810 --> 00:54:32.470
Das konnte man vorher auch schon mit Includes machen.

00:54:32.490 --> 00:54:34.510
Ja genau, mit Includes. Es gibt auch eine neue Version

00:54:34.510 --> 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.970 --> 00:54:40.310
Ja, auf jeden Fall, da gibt es Packages,

00:54:40.390 --> 00:54:42.150
die explizit dafür da sind, um diese

00:54:42.150 --> 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.970 --> 00:54:48.330
Das scheint auch okay gut zu

00:54:48.330 --> 00:54:50.570
funktionieren. Habe auch von einem Freund gehört,

00:54:50.650 --> 00:54:52.410
der das ausprobiert hat, der da meinte, dass er damit

00:54:52.410 --> 00:54:54.310
gut und 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.490
besagten Effizienzgründen halt gewechselt ist.

00:54:59.490 --> 00:54:59.710
Und

00:54:59.710 --> 00:55:01.690
genau, das

00:55:01.690 --> 00:55:04.290
ist auf jeden Fall eine interessante Sache. Also wer sich

00:55:04.290 --> 00:55:06.490
damit beschäftigt und halt ein Frontend

00:55:06.490 --> 00:55:08.290
bauen möchte, für das man sich in 2024

00:55:08.290 --> 00:55:10.330
nicht schämen muss, dann glaube ich, ist

00:55:10.330 --> 00:55:12.450
diese HTMX, AlpineJS und dann irgendwas

00:55:12.450 --> 00:55:14.290
an diesen Komponentenlibraries, die sich gerade, die

00:55:14.290 --> 00:55:16.190
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:18.430 --> 00:55:20.450
Aber wenn man sich da so ein bisschen rein

00:55:20.450 --> 00:55:22.390
liest, da findet man relativ, also

00:55:22.390 --> 00:55:24.530
nicht viel, viel, aber da gibt es auf jeden

00:55:24.530 --> 00:55:26.390
Fall schon Inhalte und

00:55:26.390 --> 00:55:28.190
da kann man sich am Ende vielleicht auch irgendwas aussuchen.

00:55:28.270 --> 00:55:29.810
Das ist alles nicht so kompliziert,

00:55:30.370 --> 00:55:31.950
was einem gefällt.

00:55:32.870 --> 00:55:34.870
Habt ihr mal schon mal herumgespielt mit dem

00:55:34.870 --> 00:55:36.510
HTMX-Ding

00:55:36.510 --> 00:55:37.170
für Mobile?

00:55:38.170 --> 00:55:40.870
Das ist ja in dem Hypermedia-Systems-Buch

00:55:40.870 --> 00:55:42.350
das letzte Kapitel,

00:55:43.370 --> 00:55:44.610
wo es dann darum geht, dass man

00:55:44.610 --> 00:55:46.490
das Ganze auch in Mobile einsetzen kann

00:55:46.490 --> 00:55:47.710
oder soll oder so.

00:55:48.430 --> 00:55:50.250
Als so

00:55:50.250 --> 00:55:54.390
Ja, so eine Art von

00:55:54.390 --> 00:55:55.770
XML-Endpunkt,

00:55:56.030 --> 00:55:58.350
die dann irgendwie gerendert werden kann

00:55:58.350 --> 00:56:00.290
von, ich glaube, React war es tatsächlich,

00:56:00.550 --> 00:56:01.990
React Native. Ach so, ja.

00:56:01.990 --> 00:56:04.170
Und dann Apps hat auf dem

00:56:04.170 --> 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.090
von deinem normalen Endpunkt

00:56:09.090 --> 00:56:12.150
klingen will. Ja, klingen will. Ich habe es noch nicht,

00:56:12.330 --> 00:56:14.270
nee, habe ich nicht angeguckt.

00:56:15.210 --> 00:56:16.130
Also ich habe auch für

00:56:16.130 --> 00:56:18.150
so

00:56:18.150 --> 00:56:20.290
Mobile, finde ich, eigentlich sind die Webviews

00:56:20.290 --> 00:56:21.590
oder wie heißen die noch?

00:56:22.250 --> 00:56:23.430
Progressive Web Apps, genau.

00:56:24.570 --> 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.210
mehr inzwischen als früher. Wurden die nicht irgendwie

00:56:30.210 --> 00:56:32.110
gebannt? Ne, also

00:56:32.110 --> 00:56:34.030
das, ah ja, Apple hat da gedroht,

00:56:34.170 --> 00:56:35.230
aber das ist dann nicht passiert.

00:56:36.530 --> 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.830 --> 00:56:42.050
Ja, und

00:56:42.050 --> 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.990 --> 00:56:49.990
auch mit, ja genau,

00:56:50.070 --> 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.770
Geschichten halt immer so eine komplizierte Geschichte, wenn man

00:56:57.770 --> 00:56:59.570
da wirklich eigene, es ist halt,

00:56:59.790 --> 00:57:01.130
Ich meine, für manche Sachen, wenn man

00:57:01.130 --> 00:57:03.230
eh dafür ein Team hat und genug

00:57:03.230 --> 00:57:04.370
Geld, dann kann man schon machen.

00:57:04.370 --> 00:57:06.130
Ich würde das tatsächlich irgendwie mal ausprobieren.

00:57:06.230 --> 00:57:07.870
Ich finde diesen Ansatz ganz cool.

00:57:08.550 --> 00:57:09.630
Media für

00:57:09.630 --> 00:57:12.770
für Mobile

00:57:12.770 --> 00:57:14.510
auszuprobieren, das klingt irgendwie super.

00:57:14.750 --> 00:57:17.130
Das ist derselbe Standard da und derselbe Prinzip.

00:57:17.950 --> 00:57:19.110
Ist jetzt eigentlich, glaube ich, eine ganz

00:57:19.110 --> 00:57:21.310
gute Überleitung zu dem nächsten Mini-Thema,

00:57:21.430 --> 00:57:22.890
nämlich Lightning Talks.

00:57:23.330 --> 00:57:24.010
Wer es nicht kennt,

00:57:25.170 --> 00:57:26.910
die Lightning Talks, das ist bei den

00:57:26.910 --> 00:57:29.050
Django-Cons zumindest, ich war noch auf keiner anderen Konferenz,

00:57:29.130 --> 00:57:30.930
aber ich glaube, es gibt so Online-Konferenzen,

00:57:31.290 --> 00:57:32.310
die jetzt am Ende des Tages

00:57:32.310 --> 00:57:34.670
fünf bis zehn Leute einen

00:57:34.670 --> 00:57:36.890
hart getimten fünf Minuten

00:57:36.890 --> 00:57:39.130
Maximalfortrag halten können bei irgendeinem

00:57:39.130 --> 00:57:40.670
Thema. Das heißt, die Vorbereitung ist

00:57:40.670 --> 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:45.450 --> 00:57:46.770
Der coolste Vortrag, den ich gehört habe, war

00:57:46.770 --> 00:57:49.030
Fuck it. Zwei Minuten.

00:57:49.350 --> 00:57:51.170
Und die Idee dahinter

00:57:51.170 --> 00:57:53.010
ist einfach, genau das, was du gerade

00:57:53.010 --> 00:57:55.090
gesagt hast. Ey, ich habe dann im Buch dieses Kapitel gelesen,

00:57:55.170 --> 00:57:56.790
finde ich da halt spannend, habe ich noch nicht ausprobiert,

00:57:56.870 --> 00:57:58.810
wollte ich euch mal mitgeben. Oder, was ich

00:57:58.810 --> 00:58:00.570
vorhin gemacht habe, ey, es gibt Jungle Components, wer

00:58:00.570 --> 00:58:02.630
sich dafür interessiert, schau ich das mal an.

00:58:03.170 --> 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.790
und auch die Unterhaltungsdichte sehr hoch, weil natürlich

00:58:08.790 --> 00:58:10.450
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:14.270 --> 00:58:15.850
Ja, und dann kannst du deine Ukulele mitbringen.

00:58:16.610 --> 00:58:18.630
Ja, genau. Und ich finde,

00:58:18.890 --> 00:58:20.350
dass wir haben jetzt das auch bei uns

00:58:20.350 --> 00:58:22.110
intern in unserem, also bei

00:58:22.110 --> 00:58:23.590
meiner Firma

00:58:23.590 --> 00:58:26.510
bei den internen

00:58:26.510 --> 00:58:28.510
Barcamps so gemacht, dass wir auch einen expliziten

00:58:28.510 --> 00:58:30.710
Lightning-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.690
sich wirklich aufraffen müssen, Sachen

00:58:36.690 --> 00:58:38.570
vorzubereiten, Sachen zu recherchieren. Es gibt gewisse

00:58:38.570 --> 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.650
mögen oder auch nicht existieren mögen. Aber so

00:58:44.650 --> 00:58:46.650
Lightning-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.670 --> 00:58:52.050
du sitzt dann 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.250
gesehen, das habe ich gelernt voll gut.

00:58:58.510 --> 00:59:26.050
Oder auch Vollkacke. Und das ist ein echt cooles Format, den man auch, wie gesagt, gut, glaube ich, in Firmen oder auf Meetups auch sehr gut. Wir haben mal einmal vor ein paar Monaten, ich glaube im Februar diesen Jahres, haben wir eine komplette Lightning Talk Session gemacht beim Django Meetup Köln hier. Und das ist echt ein cooles Format, was viele von den Problemen löst, die man sonst so hat, wenn man Content teilen möchte.

00:59:26.050 --> 00:59:27.990
Ja, ich finde auch, also gerade in jedem Format,

00:59:28.090 --> 00:59:29.770
also das irgendwie für Konferenzen oder Barcamp

00:59:29.770 --> 00:59:31.530
oder was man auch immer hat, wo man zusammen arbeitet,

00:59:31.670 --> 00:59:33.570
ist dieses Lightning Camp, äh,

00:59:33.710 --> 00:59:35.630
Lightning Talk Format

00:59:35.630 --> 00:59:38.070
echt cool geeignet, um so ein bisschen

00:59:38.070 --> 00:59:39.910
lockere Atmosphäre reinzubringen.

00:59:40.030 --> 00:59:41.790
Entweder am Ende eines Tages oder am Anfang

00:59:41.790 --> 00:59:43.670
von diesem, wir teilen uns irgendwelche Sessions auf,

00:59:43.750 --> 00:59:46.310
so kurze Slots, selbst wenn es nur eine Viertelstunde ist,

00:59:46.370 --> 00:59:47.750
zwei Minuten oder eine halbe oder sowas,

00:59:48.190 --> 00:59:49.930
um so ein bisschen mit den Leuten so

00:59:49.930 --> 00:59:51.570
reinzukommen, das ist echt schön. Ich glaube auch

00:59:51.570 --> 00:59:52.930
außerhalb vom Coding, ehrlicherweise.

00:59:53.510 --> 00:59:55.730
Man muss halt, glaube ich, immer noch so auffassen, dass man halt wirklich hart

00:59:55.730 --> 00:59:57.850
guckt, dass die nicht überschritten werden,

00:59:57.950 --> 00:59:59.590
weil einige Leute dann ihr Co-Referat halten,

00:59:59.670 --> 01:00:00.470
dass dann doch ein bisschen länger wird.

01:00:01.970 --> 01:00:03.670
Ja, das nervt die meisten

01:00:03.670 --> 01:00:04.790
immer, glaube ich, aber ja.

01:00:05.210 --> 01:00:07.390
Und eine andere super Sache ist halt auch einfach mal

01:00:07.390 --> 01:00:09.750
ein Gefühl zu bekommen, ob man selber mal einen Vortrag halten möchte.

01:00:09.870 --> 01:00:11.910
Eingangs habe ich ja gesagt, das war echt eine richtig coole Erfahrung

01:00:11.910 --> 01:00:13.650
und ich habe

01:00:13.650 --> 01:00:15.510
auf der letzten Konferenz in Edinburgh

01:00:15.510 --> 01:00:17.590
habe ich auch einfach mal

01:00:17.590 --> 01:00:19.230
einen Lightning Talk gehalten, um mal

01:00:19.230 --> 01:00:21.610
zu sehen, um mal so den Fuß ins Wasser zu

01:00:21.610 --> 01:00:22.830
halten, wie ist das überhaupt?

01:00:23.050 --> 01:00:23.290
Über was?

01:00:24.690 --> 01:00:25.970
Um den Fuß ins Wasser zu halten.

01:00:25.970 --> 01:00:27.190
Über was soll der? Ach so.

01:00:27.250 --> 01:00:27.850
Über Füße ins Wasser halt.

01:00:28.850 --> 01:00:32.150
Nur über Füße und Wasser.

01:00:33.090 --> 01:00:34.070
Angeln mit den Zehen.

01:00:34.090 --> 01:00:34.590
Das war die Frage.

01:00:36.730 --> 01:00:37.810
Ich habe tatsächlich

01:00:37.810 --> 01:00:39.970
keine Ahnung. Ich habe dieses Jahr einen

01:00:39.970 --> 01:00:42.070
über meinen Django Migration Zero

01:00:42.070 --> 01:00:43.390
Package gehalten.

01:00:43.730 --> 01:00:46.130
Ich beantworte meine Frage aber mit diesem Jahr,

01:00:46.210 --> 01:00:47.410
weil ich es beim letzten Mal vergessen habe.

01:00:48.570 --> 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 Projektbeweis, da sammeln sich ziemlich

01:00:55.990 --> 01:00:57.610
viele Migrations nach kürzester Zeit an.

01:00:58.170 --> 01:00:59.990
Diese Migrations, wenn man die

01:00:59.990 --> 01:01:02.090
volle Kontrolle über seine Datenbank hat,

01:01:02.170 --> 01:01:03.870
also zum Beispiel beim Package hat man das nicht, weil das

01:01:03.870 --> 01:01:06.090
installiert sich irgendjemand und dann macht irgendwer was damit.

01:01:06.210 --> 01:01:07.870
Das ist außerhalb der

01:01:07.870 --> 01:01:09.970
Macht des Creators. Aber in so einer klassischen

01:01:09.970 --> 01:01:11.930
Applikation, die man baut, hat man eigentlich die volle

01:01:11.930 --> 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
Product-Release-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:20.230 --> 01:01:22.010
der aber auch sehr relativ zu sehen ist,

01:01:22.330 --> 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.890 --> 01:01:29.290
Viele Migrationen führen dazu,

01:01:29.930 --> 01:01:31.770
dass die Tests langsamer laufen, dass die

01:01:31.770 --> 01:01:33.850
Testdatenbank 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.030 --> 01:01:39.730
dann kommt wieder was weg, dann habe ich was geändert, dann habe ich zum

01:01:39.730 --> 01:01:41.870
18. Mal irgendwas geändert und

01:01:41.870 --> 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.710 --> 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.830 --> 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:55.670
hat, keine Ahnung,

01:01:55.810 --> 01:01:57.490
Kommentare und die Kommentare haben wieder den User.

01:01:58.050 --> 01:01:59.770
Das heißt, man muss dann, wenn man das macht,

01:01:59.910 --> 01:02:00.990
diese Migration

01:02:00.990 --> 01:02:03.750
sehr stark auseinanderziehen. Also wie man das

01:02:03.750 --> 01:02:05.810
auch bei Circular Imports machen würde, das ist ja ein generelles

01:02:05.810 --> 01:02:06.350
Python-Thema.

01:02:07.510 --> 01:02:09.790
Und das ist sehr, sehr mühsam, was dazu führt.

01:02:09.810 --> 01:02:11.870
Lazy importieren und die Sachen da als Strings hinschreiben.

01:02:12.070 --> 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
und umso besser werden sie getan.

01:02:19.750 --> 01:02:21.510
Und es gibt einen Pattern, das nennt sich Migration Zero

01:02:21.510 --> 01:02:35.150
Und das hat sich jemand bei Medium 2018 ausgedacht, da sitzt er schon eine Weile und die Idee ist halt einfach auf Deutsch gesagt, du löscht halt einfach alles, haust alles weg, was du hast und lässt einfach Django initial neue Migrationen erstellen.

01:02:35.450 --> 01:02:46.370
Das klappt auch für große Projekte sehr gut, also ich hatte das beim richtig großen Projekt, mit großem Entwicklungsteam, fünf, sechs Jahren Laufzeit, hatte ich einen Mini-Konflikt, der aber auch so offensichtlich war, dass ich ihn sofort lösen konnte.

01:02:46.370 --> 01:03:03.210
Also es war wirklich gar kein Problem. Und da habe ich halt dann dieses Package gebaut, das dieses Pattern implementiert und das ist im Endeffekt ein zweistufiges Ding. Einmal habe ich einen Helfer gebaut, der halt einem Verein quasi durch alle Apps geht, die Sachen aufräumt, weil das tatsächlich auch, wenn man das öfter macht, ist es, je nachdem wie viele Apps man hat, ist es auch Arbeit, auch wenn es doof klingt.

01:03:03.750 --> 01:03:26.070
Und das zweite ist ein Skript, das in die Pipeline geht, weil Django hat ja alle Migrationen, werden in der Datenbank in so einem Log, in so einer Historientabelle hinterlegt, da quasi noch die Änderungen anpasst. Das heißt, du kannst einfach in die Pipeline hängen, du hast den Django-Admin in Switch, du kannst sagen, ja, jetzt habe ich Migration gelöscht, jetzt bitte beim nächsten Deployment, bereite bitte die Datenbank auf, um diesen Prozess zu streamlinen.

01:03:26.310 --> 01:03:38.110
Und das ist ein Thema, das verkauft sich sehr schwer, weil es ist halt, wie wahrscheinlich es auch der geneigte Zuhörer gemerkt hat, relativ tief und auch nur so ein Edge-Case und eigentlich sollte man es tun, aber so richtig Lust hat da keiner drauf.

01:03:38.570 --> 01:03:42.930
Ich weiß, da hat es schon mal drüber gefallen, dass sie irgendwie dann Migrations erinnert haben, dann bumm, oh, Daten-Migrate nicht.

01:03:43.370 --> 01:03:51.350
Genau und ja, aus dem Grund fand ich das eigentlich für ein Lightning-Talk ein ganz cooles Thema, weil so war das den Leuten so, Leute, wenn ihr das Problem habt, guckt euch das an, das gibt's.

01:03:51.790 --> 01:04:08.630
Ich habe dabei, als ich das Package gemacht habe, auch direkt noch eine zweite Sache gelernt. Es ist super, wenn man einen coolen Namen für sein Package hat. Man sollte aber vorher gucken, ob der vielleicht schon belegt ist, weil es gibt nämlich ein Django Zero Migration und Migration Zero ohne Django, glaube ich, bin ich ganz sicher.

01:04:08.630 --> 01:04:10.270
Du hast es dann Zero Migration 2 genannt.

01:04:10.950 --> 01:04:12.770
Django Migration Zero gab es tatsächlich

01:04:12.770 --> 01:04:14.890
noch nicht. Aber es ist

01:04:14.890 --> 01:04:16.910
natürlich trotzdem allein schon wegen SEO extrem

01:04:16.910 --> 01:04:18.950
blöd, wenn halt dann Leute ständig aus falschem

01:04:18.950 --> 01:04:20.650
Package kommen, weil das andere halt schon seit 2014

01:04:20.650 --> 01:04:21.890
da rumsitzt mit einem Commit.

01:04:23.650 --> 01:04:25.010
Genau, von daher, wenn jemand ein Package

01:04:25.010 --> 01:04:26.970
erstellt, dann checkt vorher die Namen ab, das hilft.

01:04:28.630 --> 01:04:28.830
Genau.

01:04:29.390 --> 01:04:30.730
Jochen sollte das Package unbedingt mal benutzen.

01:04:30.810 --> 01:04:32.930
Ich habe ja gestern nochmal über die Schultern geguckt, als du DjangoCast

01:04:32.930 --> 01:04:34.950
migriert hast und irgendwie wie viele Migrations

01:04:34.950 --> 01:04:36.770
da allein von weg herangekommen sind. Das waren ja hunderte.

01:04:37.050 --> 01:04:38.790
Ich habe mir das auch überlegt, dass ich das überall

01:04:38.790 --> 01:04:41.190
wegschmeißen möchte. Aber dann denke ich mir immer,

01:04:41.230 --> 01:04:43.130
das sollte ich vielleicht dann machen, wenn sich an der Datenbank

01:04:43.130 --> 01:04:43.950
nicht mehr so viel ändert.

01:04:45.750 --> 01:04:47.290
Aber ich werde das auf jeden Fall

01:04:47.290 --> 01:04:49.130
tun. Ich würde mich freuen, wenn du mein Package

01:04:49.130 --> 01:04:51.550
ausprobieren würdest. Ja, kann ich mal

01:04:51.550 --> 01:04:53.370
probieren, genau. Aber das Problem

01:04:53.370 --> 01:04:55.070
ist auch bei mir, es ist halt

01:04:55.070 --> 01:04:56.930
blöderweise eine Library und ich werde

01:04:56.930 --> 01:04:58.990
Leuten... Bei der Library geht es eh nicht.

01:04:59.190 --> 01:05:00.850
Da musst du ja mit

01:05:00.850 --> 01:05:01.630
Squashen arbeiten.

01:05:03.230 --> 01:05:05.150
Du weißt ja nicht, in welchem Stand

01:05:05.150 --> 01:05:07.270
quasi, dass die letzte Person

01:05:07.270 --> 01:05:08.110
dein Package

01:05:08.110 --> 01:05:10.990
oder die Person dein Package nutzen?

01:05:11.970 --> 01:05:13.110
Ja, vielleicht werde ich

01:05:13.110 --> 01:05:15.250
bei irgendeiner Major-Version...

01:05:15.250 --> 01:05:17.270
Release-Update und wer weiß,

01:05:17.370 --> 01:05:19.110
wie viele Leute aus der Jochen sein Jochen-Paket

01:05:19.110 --> 01:05:20.590
haben. Ja, kann sein, dass es nicht so viele sind.

01:05:20.710 --> 01:05:21.810
Das ist schon richtig, genau.

01:05:23.450 --> 01:05:25.410
Schieße ich nur in meinen Fuß

01:05:25.410 --> 01:05:26.950
und nicht in den Fuß von noch 100 anderen Leuten.

01:05:27.770 --> 01:05:28.790
Das kann ich vertreten.

01:05:29.090 --> 01:05:30.650
Das Risiko von Open-Source-Hafen, ja genau.

01:05:31.190 --> 01:05:32.990
Und man kann ja dann downgraden.

01:05:34.990 --> 01:05:36.890
Datenbank brennt, sorry, Downgrader einfach.

01:05:38.490 --> 01:05:39.390
Ja, ja, ja,

01:05:39.390 --> 01:05:41.130
aber ja, das ist ein Problem.

01:05:41.250 --> 01:05:43.190
Ich meine, das ist auch so ein Problem wie bei so Projekten

01:05:43.190 --> 01:05:44.590
wie zum Beispiel Wagtail.

01:05:45.070 --> 01:05:47.070
Da hat sich halt, es ist ja auch schon recht alt

01:05:47.070 --> 01:05:49.170
und das ist halt auch, das verwendet man ja auch

01:05:49.170 --> 01:05:50.850
als Library und da hat sich so viel Zeug

01:05:50.850 --> 01:05:52.750
angesammelt, dass halt das mit dem Testen,

01:05:53.070 --> 01:05:54.930
also wenn man jetzt quasi

01:05:54.930 --> 01:05:57.190
und mein Paket hängt zum Beispiel auch von Wagtail ab,

01:05:57.590 --> 01:05:59.230
deshalb muss ich für alle Tests

01:05:59.230 --> 01:06:00.850
und so immer so Wege drumherum finden,

01:06:00.950 --> 01:06:02.830
dass ich auf jeden Fall beim Testen nicht die

01:06:02.830 --> 01:06:04.770
Migration laufen lassen

01:06:04.770 --> 01:06:06.910
muss, weil sonst werden die Tests

01:06:06.910 --> 01:06:08.510
irre langsam. Ah, dann machst du ReuseDB.

01:06:09.250 --> 01:06:10.850
Ja. Und dann musst du halt dafür ganz hart sorgen,

01:06:10.950 --> 01:06:12.850
dass alle Funktionen so wieder aufgeräumt werden.

01:06:12.870 --> 01:06:14.450
Minus Minus ReuseDB, Minus Minus No Migrations, genau.

01:06:14.630 --> 01:06:16.670
Aber dann gibt es halt dann so Fälle, wo

01:06:16.670 --> 01:06:18.730
ah, nee, dann muss man es doch haben. Wie man zum Beispiel

01:06:18.730 --> 01:06:20.410
wenn man dann halt vertroxt die ganzen

01:06:20.410 --> 01:06:22.470
unterschiedlichen Versionen durchgeht,

01:06:22.570 --> 01:06:24.590
dann muss man natürlich wenden, wenn man jetzt, dann kann man

01:06:24.590 --> 01:06:26.110
nicht die gleiche Datenbank verwenden. Dann muss man halt schon

01:06:26.110 --> 01:06:27.590
die Datenbank wieder wegschmeißen, wieder neu.

01:06:28.070 --> 01:06:30.610
Es geht, aber es ist halt

01:06:30.610 --> 01:06:31.550
es ist hacklich, ja.

01:06:33.010 --> 01:06:34.510
Ja, ja. Ja, einzelne Pipeline.

01:06:34.770 --> 01:07:02.370
Ja, du hattest ja gerade mich schon wegen Edinburgh gefragt, was ich sehr interessant fand jetzt in Vigo. In Edinburgh gab es von mehreren Leuten die, ich glaube auch berechtigte Kritik, dass die Themenauswahl zwischen, meistens kann man das ja grob in Community Talks oder Community Talks und Tech Talks mit vielleicht Meta Talks, die so irgendwie dazwischen sitzen, aufteilen und in Edinburgh war es relativ stark auf der Community Seite.

01:07:02.370 --> 01:07:30.570
Also Leute, die über Community-Erfahrungen berichtet haben, wo Parallelen gezogen werden zwischen anderen Arten von Communities. Meine Erfahrung, wie ich das erste Mal zu Django Contributed habe, solche Geschichten. Das gab in Edinburgh von mehreren Leuten die Kritik, dass das halt relativ viel war und das ist mir positiv aufgefallen, dass ich fand, dass die Mischung aus den Community-Talks und aus den Tech-Talks und aus den Meta-Talks richtig gut war.

01:07:31.790 --> 01:07:35.910
Und ich sehr, sehr happy war mit der Thema-Auswahl.

01:07:36.030 --> 01:07:38.770
Ich meine, wie gesagt, es sind halt immer eine große Menge auch von Leuten,

01:07:39.730 --> 01:07:41.790
die das mit Absicht zum ersten Mal machen,

01:07:42.330 --> 01:07:44.490
die Englisch nicht als Muttersprache haben und sowas.

01:07:44.590 --> 01:07:46.010
Das ist natürlich immer Sachen...

01:07:46.010 --> 01:07:48.950
Ich habe immer gehört, dass Spanien immer so ein bisschen anstrengender ist,

01:07:49.010 --> 01:07:49.970
was so das angeht.

01:07:50.330 --> 01:07:52.350
Also für Englisch, weil halt da Englisch nicht so verbreitet ist

01:07:52.350 --> 01:07:53.690
und viele Leute halt dann nicht so...

01:07:53.690 --> 01:07:56.950
Ja, also wir hatten auch, glaube ich, gar nicht so viele Spanier.

01:07:57.030 --> 01:07:59.790
Ich glaube, eine Frau aus Katalonien,

01:07:59.870 --> 01:08:01.710
was so ein bisschen Definitionssache

01:08:01.710 --> 01:08:02.530
aus Spanien ist oder nicht.

01:08:04.470 --> 01:08:05.490
Und ansonsten,

01:08:05.690 --> 01:08:07.030
ja, vielleicht ein, zwei, aber

01:08:07.030 --> 01:08:09.690
wie gesagt, generell fand ich das

01:08:09.690 --> 01:08:11.630
diesmal gut. Es war

01:08:11.630 --> 01:08:13.430
sehr angenehm, waren viele interessante Sachen dabei.

01:08:14.630 --> 01:08:15.690
Da gab es zum Beispiel einen

01:08:15.690 --> 01:08:17.430
von Octopus Energy, das ist einer von den großen

01:08:17.430 --> 01:08:19.730
Django-Playern, die auch eigentlich immer so mit Platinum-Sponsor

01:08:19.730 --> 01:08:20.890
bei den Konferenzen sind, über

01:08:20.890 --> 01:08:23.550
Layered Architecture bei Django. Ich bin schon sehr gespannt, wenn das

01:08:23.550 --> 01:08:25.510
Video rauskommt. Das war sehr, also

01:08:25.510 --> 01:08:26.830
bei YouTube werden die ja alle veröffentlicht.

01:08:27.350 --> 01:08:29.330
Das war sehr, sehr viel

01:08:29.330 --> 01:08:30.810
Informationen da drin und ich habe

01:08:30.810 --> 01:08:33.470
mir nur ein ganz, ganz paar wenige Fotos gemacht

01:08:33.470 --> 01:08:35.450
und ich bin sehr gespannt, mir das Ganze noch mal in Ruhe

01:08:35.450 --> 01:08:37.130
zu Hause anzuhören.

01:08:38.150 --> 01:08:39.390
Genau, wie geht die Background Workers,

01:08:39.590 --> 01:08:41.470
die Sache von Carlton Gibson, es gab coole Meta-Talks.

01:08:43.390 --> 01:08:43.530
Also

01:08:43.530 --> 01:08:45.590
das fand ich von der Auswahl

01:08:45.590 --> 01:08:47.590
her, bin ich da mit vielen schlauen Gedanken

01:08:47.590 --> 01:08:48.290
nach Hause gegangen.

01:08:49.430 --> 01:08:51.470
Und was ich auch

01:08:51.470 --> 01:08:53.530
sehr interessant fand bezüglich des Community-Talks,

01:08:53.590 --> 01:08:55.050
direkt die allererste Keynote

01:08:55.050 --> 01:08:57.530
ging um Django Girls. Das ist

01:08:57.530 --> 01:08:59.470
eine Vereinigung,

01:08:59.550 --> 01:09:01.290
ein Non-Profit, glaube ich, inzwischen auch,

01:09:01.510 --> 01:09:03.250
die dafür da ist,

01:09:03.970 --> 01:09:05.750
explizit Frauen ans Programmieren

01:09:05.750 --> 01:09:07.470
ranzuführen, weil es ja immer noch so ist,

01:09:07.550 --> 01:09:09.750
dass halt die IT-Branche immer noch hart in Männerhand

01:09:09.750 --> 01:09:11.070
ist und das soll einfach

01:09:11.070 --> 01:09:13.890
vor allem die Mädels

01:09:13.890 --> 01:09:15.710
so ein bisschen ermutigen, dass sie das können.

01:09:16.010 --> 01:09:17.590
Also nicht irgendwie, ich glaube, da ist

01:09:17.590 --> 01:09:19.210
gar nicht so groß der Faktor, dass du da rausgehst.

01:09:19.390 --> 01:09:20.110
Also das ist immer so ein Wochenende-Workshop.

01:09:20.110 --> 01:09:21.430
Positiv bestärken viele und so, genau.

01:09:23.150 --> 01:09:25.070
Und der YouTube-Python ist auch, glaube ich, ein ganzer Workshop

01:09:25.070 --> 01:09:25.850
für Tango Girls.

01:09:26.410 --> 01:09:56.330
Und ich war, als das mal hier in Köln war, 2015 glaube ich, war ich auch mal da Coach und das war eine sehr interessante Erfahrung, hat echt Spaß gemacht und war auch interessant, weil die Mädels, da habe ich alle komplett noch nie irgendwas programmiert haben, also wirklich, die waren komplett bei Null, die drei, die in meiner Gruppe waren und wie die da auch unterschiedlich rangegangen sind, das war wirklich auch für mich, also im Sinne von, man hat ja auch immer wieder mal mit neuen Leuten zu tun, wenn mal jemand Neues anfängt, wenn man mal Werkstudenten betreut oder sowas, echt interessant zu sehen.

01:09:56.410 --> 01:09:59.650
dieses Coaching

01:09:59.650 --> 01:10:01.330
zu machen. Und wie gesagt, das ist halt

01:10:01.330 --> 01:10:03.310
vor zehn Jahren, das war jetzt Jubiläum, in Berlin

01:10:03.310 --> 01:10:04.910
gegründet worden, was ich auch ganz cool finde.

01:10:05.890 --> 01:10:07.010
Also sprich, wenn

01:10:07.010 --> 01:10:09.130
jemand jemand kennt, der

01:10:09.130 --> 01:10:11.350
also jemand eine Frau

01:10:11.350 --> 01:10:13.270
kennt, der die potenziellen

01:10:13.270 --> 01:10:14.990
sowas Interesse hat, die werden immer wieder mal

01:10:14.990 --> 01:10:17.030
hier und da angeboten, diese Workshops.

01:10:17.990 --> 01:10:19.530
Und das ist glaube ich

01:10:19.530 --> 01:10:20.990
echt cool, so für

01:10:20.990 --> 01:10:23.290
den ersten Fuß ins Wasser

01:10:23.290 --> 01:10:25.190
halten mal wieder. Und

01:10:25.190 --> 01:10:27.770
die Idee dabei ist, dass die halt im Endeffekt

01:10:27.770 --> 01:10:29.790
ihre erste Django-Seite erstellen

01:10:29.790 --> 01:10:31.550
und auch irgendwo hindeployen. Und

01:10:31.550 --> 01:10:33.810
der Fokus ist halt eher darauf, wie du schon gesagt hast,

01:10:33.870 --> 01:10:34.890
positive Bestärkung, denn

01:10:34.890 --> 01:10:37.770
ja, pädagogisch

01:10:37.770 --> 01:10:39.670
wertvoll. Das Tutorial ist auch relativ

01:10:39.670 --> 01:10:41.130
gut und relativ komplett.

01:10:41.850 --> 01:10:43.410
Wenn man überhaupt mit Django ansteigen will.

01:10:43.410 --> 01:10:44.990
Ich meine, das hätten wir jetzt vielleicht früher sagen müssen,

01:10:45.090 --> 01:10:47.110
die Leute, die jetzt noch drin sind, sind wahrscheinlich

01:10:47.110 --> 01:10:48.850
eher schon tiefer auch in Django, aber ja.

01:10:49.130 --> 01:10:50.790
Vielleicht können wir das da weiter verraten auch.

01:10:50.830 --> 01:10:52.650
Ja, aber das sind dann auch die Motivierten.

01:10:53.150 --> 01:10:54.050
Bei denen lohnt sich das dann.

01:10:54.830 --> 01:10:56.010
Ja, vielleicht tragen das in ihre eigenen

01:10:56.010 --> 01:10:57.810
Communities weiter auf. Genau. Du kannst einfach

01:10:57.810 --> 01:10:59.610
in der Linksammlung noch hinzufügen, da freuen die sich.

01:10:59.890 --> 01:11:01.250
Ja, ja, mach ich auf jeden Fall.

01:11:02.410 --> 01:11:03.950
Ich hab das auch tatsächlich an die Neulinge

01:11:03.950 --> 01:11:05.950
bei uns mit Django, auch einmal Django Girls.

01:11:06.110 --> 01:11:07.150
Also erst natürlich offizielles

01:11:07.150 --> 01:11:10.030
Tutorial ist nicht schlecht, aber Django Girls auch so schönes

01:11:10.030 --> 01:11:11.150
schnelles Einstiegsding.

01:11:11.610 --> 01:11:13.930
Ich erinnere mich gerade, ich war jetzt zu langsam, um da

01:11:13.930 --> 01:11:15.370
einzu... 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:19.650
jetzt irgendein...

01:11:19.650 --> 01:11:20.870
Muss ich auch nachgucken, welcher das war.

01:11:22.150 --> 01:11:23.770
Podcast-Episode Django Chat mit

01:11:23.770 --> 01:11:26.530
einer von Octopus Energy

01:11:26.530 --> 01:11:28.310
und die erzählte

01:11:28.310 --> 01:11:30.030
da auch irgendwie, ja,

01:11:30.310 --> 01:11:31.270
dass sie halt

01:11:31.270 --> 01:11:34.350
auf so ein Problem

01:11:34.350 --> 01:11:36.350
gestoßen hat, dass sie eigentlich nicht

01:11:36.350 --> 01:11:38.290
wollen, dass in Templates irgendwie Datenbank

01:11:38.290 --> 01:11:40.170
Queries passieren oder so. Und das

01:11:40.170 --> 01:11:42.190
ist auch etwas, was mir inzwischen halt,

01:11:42.290 --> 01:11:43.890
ich habe ja versucht, so ein bisschen Performance-Optimierung

01:11:43.890 --> 01:11:45.630
zu machen, auch bei den

01:11:45.630 --> 01:11:48.110
beim DjangoCast-Ding, was ich

01:11:48.110 --> 01:11:50.210
baue, und das ist

01:11:50.210 --> 01:11:51.430
mir auch ganz böse auf die Füße. Also

01:11:51.430 --> 01:12:16.390
Also eigentlich, da dachte ich auch so, oh ja, eigentlich möchte man nicht, also wenn man in Templates Datenbank-Queries macht, ganz blöde Idee, die sind dann so weit gegangen zu sagen, sie benutzen so eine Art Class-Based Views, wo sie halt verhindern, also sie nehmen nicht die Modelle, sondern sie machen irgendwie da so Data-Class-mäßig irgendwie Read-Only-Kopien von den Dingern, sodass wenn du da irgendwo was versuchst aus der Datenbank zu holen, dass das halt einfach nicht geht.

01:12:17.210 --> 01:12:39.350
Und das kann ich gut verstehen, das ist eine, also du willst eigentlich, wenn du zum Beispiel eine Daten, die Anzahl der Datenbank-Querys und so toll überhalten willst, willst du halt irgendeinen Punkt haben, wo du sagst, also hier, da sind alle Queries und ich mache nirgendwo anders welche, weil das ist so schwer zu containen, wenn man, wenn da irgendwas passieren kann, dass es halt ganz blöde Performance-Implikationen hat.

01:12:39.950 --> 01:12:42.630
Und wo man dann quasi durch das Frontend auch Angriffe machen kann oder was?

01:12:42.630 --> 01:12:44.450
auf... Nee, Angriffe, also es ist einfach

01:12:44.450 --> 01:12:46.530
irgendwie, das ist halt

01:12:46.530 --> 01:12:47.090
unheimlich,

01:12:48.090 --> 01:12:50.390
macht Dinge halt deutlich langsamer und man

01:12:50.390 --> 01:12:52.390
weiß gar nicht so, warum irgendwie.

01:12:53.530 --> 01:12:54.710
Und, ja.

01:12:55.850 --> 01:12:56.670
Also zum Beispiel... Warum wird das

01:12:56.670 --> 01:12:58.330
langsamer? Vielleicht müssen wir das nochmal genauer erklären.

01:12:58.350 --> 01:13:00.690
Datenbank-Queries sind immer super langsam. Ja, aber warum

01:13:00.690 --> 01:13:02.390
muss das, also wenn man die eh machen muss,

01:13:02.530 --> 01:13:04.590
warum dann nicht im Template, also man muss ja eh

01:13:04.590 --> 01:13:06.150
drauf warten. Naja, wenn man die halt

01:13:06.150 --> 01:13:08.690
an einer Stelle macht, dann ist es halt auch nicht so schlimm.

01:13:09.210 --> 01:13:10.730
Also was auch, das weiß ich nicht so genau.

01:13:10.810 --> 01:13:12.570
Das ist ein Gefühl. Das habe ich noch nicht wirklich gemessen,

01:13:12.730 --> 01:13:14.730
aber ich habe auch das Gefühl, dass

01:13:14.730 --> 01:13:16.530
wenn man die Datenbank-Credits sehr

01:13:16.530 --> 01:13:18.650
verstreut macht, dass das halt

01:13:18.650 --> 01:13:20.770
besonders schlecht ist auch. Warum das genau ist,

01:13:20.810 --> 01:13:21.250
weiß ich nicht.

01:13:22.370 --> 01:13:24.310
Also an verschiedenen Stellen im Code,

01:13:24.430 --> 01:13:26.450
meinst du halt. Oder an verschiedenen

01:13:26.450 --> 01:13:28.630
Orten des Frameworks, glaube ich.

01:13:28.790 --> 01:13:30.630
Meinst du? Ja, also wenn ich

01:13:30.630 --> 01:13:32.550
jetzt zum Beispiel gucke von, es kommt ein Request

01:13:32.550 --> 01:13:34.630
rein, ja, dann passieren

01:13:34.630 --> 01:13:36.450
ja Dinge, Dinge, Dinge, Dinge. Auch erstaunlich

01:13:36.450 --> 01:13:38.430
viele, das weiß ich jetzt, weil ich es halt so ein bisschen

01:13:38.430 --> 01:13:40.570
geproffelt habe. Bei mir sind es

01:13:40.570 --> 01:13:42.230
halt von, also wenn man jetzt

01:13:42.230 --> 01:13:44.450
einen Blog nimmt und da die Listpage und dann

01:13:44.450 --> 01:13:46.390
halt nur so fünf Artikel oder sonst irgendwas, also

01:13:46.390 --> 01:13:48.550
aus diesem Listview, dann macht das

01:13:48.550 --> 01:13:50.470
halt so 110.000

01:13:50.470 --> 01:13:52.170
Funktionsaufrufe oder sowas, was

01:13:52.170 --> 01:13:54.450
eine Menge ist. Ich dachte so, wow, shit, warum ist

01:13:54.450 --> 01:13:56.010
das so viel? Das ist ganz schön viel.

01:13:56.390 --> 01:13:58.270
Und mein Ding wäre jetzt, wenn jetzt so

01:13:58.270 --> 01:13:59.690
alle tausend

01:13:59.690 --> 01:14:02.230
Funktionsaufrufe kommt, irgendwie Datenbankquery.

01:14:02.350 --> 01:14:04.410
Das ist schlecht. Also so war

01:14:04.410 --> 01:14:06.370
es quasi vorher irgendwie implizit,

01:14:06.470 --> 01:14:08.450
weil sind die Datenbankqueries halt da passiert,

01:14:08.450 --> 01:14:09.070
wo es halt

01:14:09.070 --> 01:14:11.270
wo es halt

01:14:11.270 --> 01:14:13.370
aufgetreten ist und das war

01:14:13.370 --> 01:14:15.230
und einfach nur dadurch, dass

01:14:15.230 --> 01:14:17.230
ich jetzt das einfach mal so umgebaut habe,

01:14:17.330 --> 01:14:19.190
dass jetzt diese Datenbank-Queries, an denen ich

01:14:19.190 --> 01:14:21.330
selber noch gar nicht viel geändert habe, alle an einer Stelle passieren,

01:14:21.710 --> 01:14:22.790
ist es irgendwie doppelt so schnell geworden.

01:14:23.370 --> 01:14:25.250
Und ich weiß nicht genau, woran das liegt, aber es ist

01:14:25.250 --> 01:14:27.170
auf jeden Fall irgendwie, scheint das so

01:14:27.170 --> 01:14:28.830
zu sein, dass auch der

01:14:28.830 --> 01:14:31.070
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.470 --> 01:14:34.830
sondern auch dieses Ganze irgendwie

01:14:35.650 --> 01:14:38.350
ja, man ist da in diesem Bereich,

01:14:38.490 --> 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:50.070 --> 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.330 --> 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.330 --> 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:11.190 --> 01:15:12.570
Kann man nicht eventuell,

01:15:12.750 --> 01:15:14.270
kann ich, also meine Idealvorstellung wäre natürlich,

01:15:14.630 --> 01:15:16.250
dass ich irgendwann sozusagen

01:15:16.250 --> 01:15:18.230
nur noch eine Datenbankquery mache oder so,

01:15:18.290 --> 01:15:20.050
in der ich alle Informationen aus der Datenbank hole.

01:15:21.770 --> 01:15:22.370
Geht das nicht

01:15:22.370 --> 01:15:24.010
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:28.190 --> 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.710 --> 01:15:34.930
daraus wieder Django-Objekte machen kann.

01:15:35.530 --> 01:15:37.430
Das ist halt so. Aber das mache ich jetzt auch schon.

01:15:37.770 --> 01:15:39.570
Also ich benutze nicht mehr irgendwie

01:15:39.570 --> 01:15:40.530
einfach so, ich mache

01:15:40.530 --> 01:15:42.350
aus,

01:15:43.730 --> 01:15:45.570
ich benutze nicht quasi den

01:15:45.570 --> 01:15:47.310
ORM, um halt Django-Modelle, sondern ich

01:15:47.310 --> 01:15:49.510
ziehe die Daten halt in einer

01:15:49.510 --> 01:15:51.330
Form, dass ich die halt auch, das ist auch sowas, wenn man

01:15:51.330 --> 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.650 --> 01:15:57.350
Dass man halt auch irgendwie serialisieren kann.

01:15:57.710 --> 01:15:59.390
Wenn du Django-Objekte hast, die kannst du nicht,

01:15:59.710 --> 01:16:00.890
also es gibt viele Dinge an Django,

01:16:01.070 --> 01:16:02.690
die kannst du nicht serialisieren.

01:16:03.150 --> 01:16:04.850
Du kannst es auch nicht cachen, weil

01:16:04.850 --> 01:16:06.990
Curry-Sets kannst du nicht gut cachen. Geht nicht.

01:16:07.690 --> 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.170
überführt hast, wie im Prinzip

01:16:13.170 --> 01:16:15.210
JSON sehr realisierbar ist, dann

01:16:15.210 --> 01:16:17.210
kannst du halt auch das, was du aus der Datenbank kriegst,

01:16:17.270 --> 01:16:19.150
einfach nehmen, irgendwie auf eine Platte schreiben oder so

01:16:19.150 --> 01:16:21.110
und sage, okay, die nächsten fünf Minuten einfach

01:16:21.110 --> 01:16:22.430
das Pfeil nehmen und nicht mehr die Datenbank fragen.

01:16:22.870 --> 01:16:25.090
Oder irgendwo in den Hauptspeicher oder in Redis oder sonst

01:16:25.090 --> 01:16:27.170
irgendwo hin. Und dann kannst du

01:16:27.170 --> 01:16:29.270
das halt cachen. Aber das, genau.

01:16:30.390 --> 01:16:31.070
Und aus

01:16:31.070 --> 01:16:32.990
den Dingern wieder Jungle-Modelle zu bauen, ist

01:16:32.990 --> 01:16:35.110
jetzt gar nicht so schlimm. Da dachte ich auch so, das ist vielleicht schlimm.

01:16:35.310 --> 01:16:36.530
Nö, ist gar nicht. Das geht ziemlich leicht.

01:16:37.370 --> 01:16:38.750
Ja. Und ja,

01:16:39.030 --> 01:16:40.730
genau. Also ja, ich mache momentan so ein bisschen

01:16:40.730 --> 01:16:41.890
Performance-Optimierungsgeschichten.

01:16:42.570 --> 01:16:44.970
Ja. Ja. Tja, ja.

01:16:45.090 --> 01:16:47.150
Ja. Ja, aber wenn Performance

01:16:47.150 --> 01:16:48.870
auch dazu führt, dass du weniger Rechenleistung aufwenden musst,

01:16:48.910 --> 01:16:50.110
ist das ja sogar Green Engineering.

01:16:50.770 --> 01:16:53.210
Ja, ja. Da gab es auch Vorträge

01:16:53.210 --> 01:16:54.990
dazu. 110.000 Funktionsaufrufe

01:16:54.990 --> 01:16:56.890
für ein Webseiten-Rendering ist nicht so richtig

01:16:56.890 --> 01:16:58.930
green. Ehrlich gesagt, das ist eher so mehr so braun.

01:17:01.070 --> 01:17:03.490
ja. Aber Walter, ich habe gerade

01:17:03.490 --> 01:17:05.730
deinen Einstiegspunkt

01:17:05.730 --> 01:17:07.410
vergessen, der mich daran erinnert hat, aber es war

01:17:07.410 --> 01:17:09.590
super interessant, bei diesem Jungle Girls Vortrag

01:17:09.590 --> 01:17:10.790
gab es auch so eine,

01:17:11.490 --> 01:17:13.310
ja, so Success Stories einfach,

01:17:13.450 --> 01:17:15.610
von Mädels, die das halt teilgenommen

01:17:15.610 --> 01:17:17.670
haben und die jetzt halt irgendwo einen coolen Job

01:17:17.670 --> 01:17:19.650
haben oder irgendwie eine coole Erfahrung haben oder irgendwo

01:17:19.650 --> 01:17:21.490
sich halt irgendwas Positives in ihrem Leben geändert hat,

01:17:21.810 --> 01:17:23.290
so im Sinne von, das hat einen Impact

01:17:23.290 --> 01:17:24.990
und was ich da echt

01:17:24.990 --> 01:17:27.910
krass fand war, dass eine US-Amerikanerin,

01:17:27.990 --> 01:17:29.610
die daran teilgenommen hat, die halt vorher irgendwas

01:17:29.610 --> 01:17:31.850
gearbeitet hat und jetzt halt dann in Tech eingestiegen

01:17:31.850 --> 01:17:33.170
ist, weil sie halt am Ball geblieben ist,

01:17:33.830 --> 01:17:35.590
dass sie deshalb jetzt mit dem

01:17:35.590 --> 01:17:37.610
neuen Job eine Familie gegründet hat, also

01:17:37.610 --> 01:17:39.270
sprich ein Kind bekommen hat, weil vorher

01:17:39.270 --> 01:17:41.510
nach ihrer Aussage sie es in den USA

01:17:41.510 --> 01:17:43.630
sich nicht hätte leisten können. Ich kann

01:17:43.630 --> 01:17:45.650
es nicht bewerten, ob das stimmt, also ob das

01:17:45.650 --> 01:17:47.510
jetzt so eine absolut richtige

01:17:47.510 --> 01:17:49.530
Aussage ist, aber allein,

01:17:49.670 --> 01:17:51.490
dass es subjektiv so ist, hat mich echt

01:17:51.490 --> 01:17:53.330
schockiert. Ja gut, aber ich meine,

01:17:53.510 --> 01:17:55.390
ich würde sagen, dass halt, wenn man, also so

01:17:55.390 --> 01:17:57.470
Programmierer ist jetzt schon, ist jetzt auch nicht

01:17:57.470 --> 01:17:58.890
das Bestbezahlte überhaupt, aber

01:17:58.890 --> 01:18:00.350
sagen wir mal so, ist halt schon

01:18:00.350 --> 01:18:02.870
deutlich besser wahrscheinlich als viele andere Sachen.

01:18:03.130 --> 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:07.290 --> 01:18:09.170
Auch wenn wir Probleme haben, unsere Kinder zu ernähren.

01:18:10.610 --> 01:18:10.930
Ja.

01:18:11.450 --> 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.530
immer noch diese Marketingagenturen,

01:18:19.610 --> 01:18:21.030
wo man dann irgendwie bis nachts um

01:18:21.030 --> 01:18:22.970
zwölf irgendwie irgendwelche

01:18:22.970 --> 01:18:24.910
Marketing-One-Pager zusammen lötet, aber

01:18:24.910 --> 01:18:26.130
bei...

01:18:26.130 --> 01:18:35.490
Nein, du hast völlig recht. Also ich glaube, das ist einer der Jobs, die von Hause aus sehr dafür geeignet sind, dass man das remote machen kann und es relativ kompatibel ist zur Vereinbarkeit von Familie und Beruf.

01:18:36.390 --> 01:18:41.910
Genau, ich ziehe mit reicher Arbeit von zu Hause aus eine Menge Geld verdienen. Hier ist idealer Angewohn.

01:18:41.910 --> 01:18:49.750
Nein, aber ich glaube, gesellschaftliche Transformation wäre sowas wie Vereinbarkeit eine der Hauptdinge, glaube ich.

01:18:50.390 --> 01:18:52.790
Also fällt mir auch immer wieder auf, ja, das ist halt total hart,

01:18:52.870 --> 01:18:55.030
wenn irgendjemand den ganzen Tag irgendwo hinfahren

01:18:55.030 --> 01:18:56.730
muss, und dann mit Kinderbetreuung ist es schon schwer, ne?

01:18:58.210 --> 01:18:58.950
Ja, also ich meine

01:18:58.950 --> 01:19:00.750
auch jetzt die Erfahrung, in den letzten Jahren

01:19:00.750 --> 01:19:02.850
Erfahrung mit Kinderbetreuung, es passiert immer so

01:19:02.850 --> 01:19:04.810
viel Zeugs, wo man dann, also ich,

01:19:05.050 --> 01:19:06.830
ja, das wäre übel gewesen,

01:19:06.910 --> 01:19:08.810
wenn ich jetzt irgendwie hätte in einem Büro sitzen müssen, oder

01:19:08.810 --> 01:19:10.650
Ja, oder hinfahren jeden Tag, du fährst abends mal

01:19:10.650 --> 01:19:12.010
abends abends abends nach Hause. Du kannst auch nicht wirklich wegfahren,

01:19:12.150 --> 01:19:14.630
das wäre echt übel gewesen, ja. Oder Schichtdienst,

01:19:14.730 --> 01:19:16.790
einfach die ganze Nacht. Ja, ganz übel, also

01:19:16.790 --> 01:19:18.850
Ja gut, aber es gibt Leute, die kriegen das trotzdem irgendwie hin,

01:19:18.890 --> 01:19:20.710
Ja, es ist sehr beeindruckend.

01:19:22.090 --> 01:19:24.350
Ja, du wolltest jetzt

01:19:24.350 --> 01:19:26.070
über Party reden, auch wenn wir gerade für Kinderkriegen reden.

01:19:28.070 --> 01:19:29.930
Ja, für manche Leute ein Thema.

01:19:29.950 --> 01:19:31.010
Nach der Party kommt der Kater.

01:19:32.690 --> 01:19:34.170
Genau, nein, tatsächlich

01:19:34.170 --> 01:19:36.150
bei den Dungercons gibt es immer eine Party

01:19:36.150 --> 01:19:38.290
und ich finde das ein ganz

01:19:38.290 --> 01:19:39.310
interessantes Thema, weil

01:19:39.310 --> 01:19:42.470
in Edinburgh war es so, dass man

01:19:42.470 --> 01:19:44.450
wenn man sich die Tickets kauft,

01:19:44.570 --> 01:19:46.010
musste man ein Opt-in machen,

01:19:46.130 --> 01:19:48.170
ob man auf die Party geht, dann gab es so eine Art

01:19:48.170 --> 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.410
was die nicht bedacht haben ist, dass

01:19:56.410 --> 01:19:58.290
in vielen, also

01:19:58.290 --> 01:20:00.430
viele Leute gehen halt über ihre Agentur

01:20:00.430 --> 01:20:02.450
dahin, also auf irgendeine Art von Weiterbildungsbudget

01:20:02.450 --> 01:20:04.190
und da buchen die Leute nicht selbst

01:20:04.190 --> 01:20:06.510
die Tickets und die werden halt am Blog von irgendjemand

01:20:06.510 --> 01:20:08.270
aus zum Beispiel

01:20:08.270 --> 01:20:10.350
der Buchhaltung gebucht und die natürlich

01:20:10.350 --> 01:20:12.090
mit der Information Party kostet extra

01:20:12.090 --> 01:20:14.010
nichts anfangen können und

01:20:14.010 --> 01:20:15.770
dann bei uns und auch bei anderen

01:20:15.770 --> 01:20:17.990
war es dann so, dass wir halt auf einmal alle nicht dahin gehen

01:20:17.990 --> 01:20:19.970
konnten. Weil nicht eingeladen zur Party.

01:20:20.370 --> 01:20:21.010
Ach so.

01:20:21.970 --> 01:20:24.050
Und einfach, weil halt das Heck hier nicht gesetzt wurde

01:20:24.050 --> 01:20:25.410
und das war halt irgendwie einfach

01:20:25.410 --> 01:20:27.850
so ein bisschen die Realität zu

01:20:27.850 --> 01:20:29.890
Theorie. In der Theorie ist es kein Problem, in der Praxis

01:20:29.890 --> 01:20:31.510
naja, so ist es halt. Gehört eigentlich dazu.

01:20:31.990 --> 01:20:34.110
Und ich persönlich finde nämlich die Party

01:20:34.110 --> 01:20:35.890
eigentlich immer eine sehr schöne Art, nochmal

01:20:35.890 --> 01:20:37.910
mit Leuten, die man halt vielleicht auch auf der Stage

01:20:37.910 --> 01:20:40.090
gesehen hat an den Tagen. Die sind ja auch meistens

01:20:40.090 --> 01:20:40.770
eher am Ende.

01:20:41.590 --> 01:20:43.970
Das ist mir in den Videopeisen auch aufgefallen, da gibt es auch mehrere Partys, wo man sich extra

01:20:43.970 --> 01:20:44.670
registrieren muss.

01:20:45.510 --> 01:20:47.950
Und ich finde das eine sehr schöne Gelegenheit, nochmal in einem etwas

01:20:47.950 --> 01:20:49.490
lockeren, weniger

01:20:49.490 --> 01:20:51.990
ernsten Umfeld mit den Leuten.

01:20:52.190 --> 01:20:53.150
Ich meine, viele Leute haben da irgendwie

01:20:53.150 --> 01:20:56.050
da noch mit den Leuten

01:20:56.050 --> 01:20:58.110
reden zu können, einfach auch noch mal

01:20:58.110 --> 01:20:59.650
mit Leuten connecten zu können.

01:20:59.790 --> 01:21:01.810
Zum Beispiel in Porto, also jetzt vor zwei Jahren, die Party

01:21:01.810 --> 01:21:03.390
war, glaube ich, eine der besten

01:21:03.390 --> 01:21:05.950
Partys. Also die war super, die war echt gut organisiert,

01:21:06.030 --> 01:21:07.330
richtig schöne Location, bestes Wetter,

01:21:07.770 --> 01:21:08.350
alles draußen.

01:21:09.770 --> 01:21:11.990
Und da bin ich dann einfach in eine Runde

01:21:11.990 --> 01:21:13.890
von Leuten reingestolpert und dann bin ich

01:21:13.890 --> 01:21:16.030
halt nachher mit einem im Gespräch hängen geblieben und nachher

01:21:16.030 --> 01:21:18.550
irgendwann meinte er, weißt du echt, wer ich bin?

01:21:18.630 --> 01:21:20.490
Ich sage, keine Ahnung, ich bin Präsident

01:21:20.490 --> 01:21:22.350
hier von Django Software, von der ich sage, oh,

01:21:22.630 --> 01:21:23.310
ups, sorry,

01:21:24.790 --> 01:21:26.570
da kannte ich halt noch nicht so viele Leute in dem Umfeld

01:21:26.570 --> 01:21:28.590
und es ist halt einfach, das würde halt

01:21:28.590 --> 01:21:30.490
so, ich meine, das kann passieren, wenn man

01:21:30.490 --> 01:21:32.590
so auf der Konferenz rumläuft, aber man ist

01:21:32.590 --> 01:21:34.090
da schon immer relativ getaktet mit,

01:21:34.270 --> 01:21:36.470
dann gibt es da eine Verlosung

01:21:36.470 --> 01:21:38.350
und dann ist der nächste Vortrag und dann muss man sich

01:21:38.350 --> 01:21:39.570
vielleicht selber auf irgendwas vorbereiten,

01:21:39.770 --> 01:21:42.270
dann will irgendwie die eigene Crew irgendwas

01:21:42.270 --> 01:21:44.150
und Konferenz-Experiments,

01:21:44.210 --> 01:21:45.710
da kann man auch eine eigene Folge zu machen, glaube ich, ja?

01:21:46.030 --> 01:22:14.390
Und das fand ich tatsächlich, ich finde das einen sehr wichtigen Punkt, weil es ja immer dann auch, ne, auch dann so, naja, nö, sie nehmen es auf, nö, aber ich finde es ist schon sehr, sehr schöne Atmosphäre und Möglichkeit mit Leuten nochmal so zu socialisen, auch mal Leute ein bisschen persönlicher vielleicht auch kennenzulernen und genau, also fand das wirklich schön und jetzt bei diesem Mal, das war so ein bisschen doppelt unglücklich, dieses Konferenzgebäude in Vigo, das war direkt am Hafen, das war nicht so ein schöner Hafen,

01:22:14.390 --> 01:22:28.930
Aber es war halt, immerhin hat man Meerblick. Und die andere Seite der Bucht war schön. Hatte eine gigantische Dachterrasse, also riesig. Und genau oder fast genau als die Party anfing, kam ja das Gewitter, auf das wir drei Tage gewartet haben.

01:22:30.050 --> 01:22:55.050
Ja, war dann blöd, weil dann mussten wir halt in die kleinen Gänge rein, die halt irgendwie so die Räume verbunden haben. Und um neun war Schluss, was halt auch schade war, weil, wie gesagt, in Porto, glaube ich, waren bis eins oder zwei. Ich glaube, in Kopenhagen davor war auch relativ lang, solange die Organisatoren halt Lust hatten, so dass das nicht abschließen zu wollen. Und ja, das fand ich tatsächlich ein bisschen schade.

01:22:55.530 --> 01:23:20.530
Er wird bestimmt seine Gründe gehabt haben, ich will mich da jetzt gar nicht irgendwie, ich habe nichts dazu beigetragen, ich will da nicht rummosern, ich persönlich fand es nur schade, weil, wie gesagt, ich das eigentlich meine, es ist ein sehr schöner Ort, finde und ich meine auch da habe ich mich mit Leuten unterhalten, mit denen ich mehr oder weniger im gleichen Raum saß für drei Tage und halt vorher noch nicht gesehen habe, hatten interessante Gespräche und genau, das finde ich immer einen schönen Ort und kann da auch nur eine Lanze dafür brechen.

01:23:20.670 --> 01:23:45.670
Also ich würde auch sagen, Socializing bei diesen Konferenzen ist mit so der Hauptgrund, warum man da, ich finde das ja auch, gestern war ja wieder bei DDF auch immer super, dass man danach noch was essen geht, weil auch immer der Hauptteil des Spaßes ist, also nichts gegen die ganz tollen Vorträge, die alle tollen Menschen machen, mir halt auch bestimmt bei der DangoCon, wo ich irgendwann auch dahin fährt und so, aber das Socializing ist ein großer Teil, dass man so Leute kennenlernt, also dass diese Experience, die man von anderen Menschen mitbekommt, die was ähnliches machen, vielleicht ein bisschen anders als man selber und sich darüber austauschen, ist schon super.

01:23:45.670 --> 01:23:48.810
Also manchmal kann man auch selber mal ganz viel reden.

01:23:48.950 --> 01:23:49.790
Das machen einige Leute gerne.

01:23:50.070 --> 01:23:51.390
Aber auch manchmal zuhören ist auch super.

01:23:51.890 --> 01:23:53.590
Und das ist irgendwie was Gutes.

01:23:53.730 --> 01:23:55.750
Ich kann das auch sehr nachvollziehen.

01:23:55.870 --> 01:23:58.190
Ich finde das auch mit den wichtigeren Teilen.

01:23:58.390 --> 01:24:00.010
Also manchmal ist man halt auch im Gang so ein bisschen.

01:24:00.330 --> 01:24:02.210
Und weil du gerade sagtest, das fand ich interessant.

01:24:02.390 --> 01:24:04.410
Deine Art und Weise war wahrscheinlich sehr strukturiert

01:24:04.410 --> 01:24:05.350
und sehr organisiert,

01:24:05.870 --> 01:24:07.450
möglichst viel von dem Content mitzubekommen.

01:24:07.450 --> 01:24:11.170
Und also von der Europython kenne ich es zum Beispiel so,

01:24:11.190 --> 01:24:11.630
die ist ja lang.

01:24:11.910 --> 01:24:13.190
Und wenn man da halt die ganze Woche da ist,

01:24:13.250 --> 01:24:14.230
dann sind es ja sieben Tage.

01:24:14.570 --> 01:24:30.190
Also zwei Tage Workshop, drei Tage Vorträge, zwei Tage irgendwas anderes. Da tut es immer ganz gut, wenn man sich ein oder zwei Tage nicht ganz so vollpackt, weil man so ein bisschen sich so fließen lässt, weil dann kommt man mehr mit Leuten ins Gespräch, die auch irgendwo rumstehen, vielleicht näher nochmal an irgendeinem Stand.

01:24:30.270 --> 01:24:46.090
Und man hält sich dann mit den Leuten länger, anstatt dass man jetzt sagt, okay, meine Uhr in zehn Minuten geht der nächste Vortrag los, der Kopf ist ja irgendwann eh voll oder man bleibt halt dann nochmal länger auf der Party oder man geht halt dann am Wochenende mit Leuten, die man kennengelernt hat, nochmal in die Stadt oder spazieren oder was von der Natur anschauen oder sowas, was auch irgendwie, glaube ich, mit dazugehören kann.

01:24:46.090 --> 01:25:07.790
Aber das ist halt witzig, weil es so unterschiedliche Herangehensweisen gibt und ich halt auch Leute gesehen habe, die das ganz anders machen. Es gibt Leute, die kommen halt nur für zwei Tage und da ist das halt dann sehr intensiv. Oder es gibt Leute, die sind nur bei den Workshops da und haben nie wieder gesehen. Oder Leute, die schaffen sogar nur zu ein oder zwei Vorträgen, was manche an Kinderbetreuung liegt oder sowas, die man da auch netterweise hinbringen kann. Oder halt sogar nur zu den Sprints, glaube ich, auch Menschen, die halt wirklich nur da hingegangen sind, um mit den Leuten an Sachen zu arbeiten.

01:25:08.810 --> 01:25:24.470
Aber das ist so witzig, weil diese, das ist so ein bisschen, ich weiß nicht, ob es eine Kulturfrage ist, aber so diese Art und Weise ändert sich je nach Lebensphase oder wo du gerade selber bist, total. Und das ist, glaube ich, auch eine der Herausforderungen für so Konferenzen, für die unterschiedlichen Ziele, die die Leute so mitbringen, irgendwie gut ausgestattet zu sein.

01:25:24.570 --> 01:25:24.810
Absolut.

01:25:25.010 --> 01:25:31.230
Und mich würde dieses Django-Connect auf jeden Fall auch mal reinziehen, ehrlicherweise. Ich finde das auch mal ganz nett. Ist halt ein bisschen mehr Fokus auf Django, was auch mal cool ist.

01:25:31.610 --> 01:25:33.670
Also nächstes Mal ist es in Dublin, das ist auch nicht verkehrt.

01:25:33.670 --> 01:25:34.830
Ah, okay, da war ich jetzt schon, ja.

01:25:36.370 --> 01:25:37.910
Ich auch, ich fahre trotzdem gerne nochmal hin.

01:25:38.050 --> 01:25:40.230
Dublin ist toll. Weißt du auch schon wo?

01:25:40.570 --> 01:25:41.090
Gibt es da einen Ort?

01:25:41.810 --> 01:25:43.450
Es gibt glaube ich

01:25:43.450 --> 01:25:46.270
eine Webseite,

01:25:46.530 --> 01:25:48.230
wo literally das Logo drauf ist.

01:25:49.050 --> 01:25:49.790
Alles weitere

01:25:49.790 --> 01:25:50.990
folgt dann.

01:25:52.010 --> 01:25:52.990
Ich finde es auf jeden Fall sehr cool.

01:25:54.510 --> 01:25:56.250
Edinburgh und Vigo hätte ich wahrscheinlich beide auch gemacht.

01:25:56.410 --> 01:25:57.790
Vigo kann ich noch nicht, Edinburgh schon.

01:25:58.530 --> 01:26:00.050
Dublin, ja, ist das einfach eine tolle Stadt.

01:26:01.110 --> 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:05.310 --> 01:26:06.390
Überall wunderschöne Sachen.

01:26:06.650 --> 01:26:07.730
Du musst halt Whisky trinken.

01:26:08.050 --> 01:26:23.690
Ja, wir waren ja immer, ja, am Schennen entlang ist ja immer toll, da gibt es tolle Sachen, ich meine, es ist halt sehr moderne Hilfestadt auch, ne, naja, gut, das sind die meistens alle irgendwo, bis auf hier noch ein, ja.

01:26:24.350 --> 01:26:26.930
Aber wie, das waren jetzt aber drei Tage quasi, ne?

01:26:26.930 --> 01:26:55.450
Genau, das waren drei Tage Konferenz, da waren immer wieder, also die hatten eigentlich nur eine, also es gab einen Konferenztrack und dazwischen gab es immer wieder mal in einem anderen Raum dann die Workshops, ich habe die Workshops nicht teilgenommen, ich nehme irgendwie von diesen Workshops nicht so viel mit, ich war letztes Mal in Edinburgh mal bei den Sprints dabei und man muss auch sagen, das ist kein Umfeld, wo ich wirklich produktiv arbeiten kann, also dann sitzen da ganz viele Leute in einem Raum und es ist halt so ein gewisser Geräuschpegel, weiß ich nicht, jedem zweiten fehlt irgendwie Strom und dann hast du da kein Ladekabel

01:26:55.450 --> 01:26:57.770
und es ist

01:26:57.770 --> 01:26:59.490
also es ist unruhig.

01:26:59.750 --> 01:27:01.690
Interessant, also ich finde das mit dem Workshop sehe ich total

01:27:01.690 --> 01:27:03.750
anders, also weil, vielleicht bist du schon

01:27:03.750 --> 01:27:05.230
viel weiter als ich in vielen Punkten, aber

01:27:05.230 --> 01:27:07.450
die Dinge, die ich da so mitgenommen habe,

01:27:07.470 --> 01:27:09.630
habe ich immer super viel gelernt und das hängt

01:27:09.630 --> 01:27:11.650
wahrscheinlich total davon ab, was für einen Workshop

01:27:11.650 --> 01:27:13.450
man da hat und welches Niveau da ist und

01:27:13.450 --> 01:27:15.550
wenn man eine gute Auswahl hat, findet man bestimmt was.

01:27:16.150 --> 01:27:17.570
Also ich habe wirklich immer da am meisten von

01:27:17.570 --> 01:27:18.930
bekommen, mehr als von den vielen Talks.

01:27:19.230 --> 01:27:21.710
Aber ich glaube auch, ich gehe halt auch ganz gerne

01:27:21.710 --> 01:27:23.590
auf die Konferenzen, nehme mir

01:27:23.590 --> 01:27:25.250
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.150
aus, so was speichere ich ab, also es

01:27:29.150 --> 01:27:31.250
existiert irgendwo, zum Beispiel diese Sache mit

01:27:31.250 --> 01:27:32.950
der Architektur, das finde ich super spannend, ich

01:27:32.950 --> 01:27:35.330
müsste auch nochmal, also ich gehe

01:27:35.330 --> 01:27:36.870
da auch nochmal ins Gespräch mit ihr

01:27:36.870 --> 01:27:39.370
und gucke mal, ob wir

01:27:39.370 --> 01:27:41.090
sie vielleicht mal zum Django Meetup Köln oder sowas

01:27:41.090 --> 01:27:43.250
einladen können oder sowas, weil das ist halt ein Thema, das halt für

01:27:43.250 --> 01:27:45.170
mich super spannend ist und wo ich

01:27:45.170 --> 01:27:46.670
auch noch definitiv zu wenig weiß

01:27:46.670 --> 01:27:48.710
und

01:27:48.710 --> 01:27:50.910
das ist, so gehe ich dann damit um.

01:27:51.150 --> 01:27:53.190
Ich weiß jetzt nicht, vielleicht gleich deine Länge der Workshop, also die Workshop, die ich hatte,

01:27:53.250 --> 01:27:55.210
waren halt mindestens einmal einen halben Tag, also vier Stunden

01:27:55.210 --> 01:27:56.490
oder so. Die sind kürzer da.

01:27:57.250 --> 01:27:58.950
Ich bin da richtig tief in die Themen reingekommen,

01:27:59.030 --> 01:28:00.790
hab mich da richtig reingehackt, hab da auch wirklich was gemacht

01:28:00.790 --> 01:28:02.890
und hab dann auch teilweise noch wirklich nachgearbeitet

01:28:02.890 --> 01:28:04.990
und die Dinge wirklich umgesetzt und benutzt.

01:28:05.330 --> 01:28:06.870
Also da sind die eher kürzer, also ich glaube

01:28:06.870 --> 01:28:08.790
so ein bis zwei Stunden, glaube ich.

01:28:08.910 --> 01:28:09.790
Ich bin nicht ganz sicher.

01:28:10.910 --> 01:28:12.490
Letztes oder letztes Mal hab ich mal welche mitgemacht.

01:28:12.550 --> 01:28:14.830
Aber wie gesagt, irgendwie die Atmosphäre ist nicht so ganz meins.

01:28:14.850 --> 01:28:17.110
Ich konnte zum Beispiel auch konzentriert arbeiten, weil es da ruhig war.

01:28:17.570 --> 01:28:19.310
Wo ich dir recht geben muss, ist bei den Sprints.

01:28:19.710 --> 01:28:20.690
Sprints sind immer sehr chaotisch.

01:28:20.790 --> 01:28:22.830
Meistens, also ich nutze Sprints oft dann auch zum Socializen,

01:28:22.890 --> 01:28:24.570
mit den Leuten quatschen, um nochmal rumzustehen.

01:28:25.210 --> 01:28:27.310
Aber ich muss ehrlich

01:28:27.310 --> 01:28:29.070
gestehen, ich habe bei den Sprints auch immer nicht das Thema

01:28:29.070 --> 01:28:31.030
gefunden, wo ich dachte so, wow, das finde ich jetzt super

01:28:31.030 --> 01:28:32.810
toll und da will ich jetzt mitmachen.

01:28:33.370 --> 01:28:34.290
Weil ich glaube, das ist, wenn du

01:28:34.290 --> 01:28:37.090
idealerweise vielleicht, wenn man ein Thema

01:28:37.090 --> 01:28:39.030
bei dem Sprint hat, wo man vielleicht sogar schon drin ist,

01:28:39.530 --> 01:28:41.050
wo man das ganze Setup schon gemacht hat, wo man

01:28:41.050 --> 01:28:43.010
die Entwicklungsumgebung bei sich auf dem Rechner schon eh

01:28:43.010 --> 01:28:44.830
drauf hat und dann sich einfach einloggen kann, dann kann man das

01:28:44.830 --> 01:28:46.810
Feature zu nehmen, das mit anderen Leuten mal so

01:28:46.810 --> 01:28:49.030
diskutieren, durchdenken und dann von mehreren

01:28:49.030 --> 01:28:51.070
Seiten mal echt mal die Lösung, die man gerade hat

01:28:51.070 --> 01:28:52.850
mit drei oder vier Leuten, die da fokussiert dran arbeiten,

01:28:53.370 --> 01:28:55.150
wirklich implementieren. Das ist auch cool, glaube ich.

01:28:55.210 --> 01:29:10.510
Auf jeden Fall, auf jeden Fall. Also wir haben ja auch beim Django Meetup in Köln jetzt im Januar hatten wir Sarah A. und Thibaut, also die sind beide Django Board Members, ganz frisch geworden, hatten wir eingeladen, sind netterweise vorbeigekommen, da haben wir dann auch einen Open Source Sprint gemacht.

01:29:10.510 --> 01:29:12.590
Der schon am Mittag war, wo ich leider erst so spät konnte.

01:29:13.050 --> 01:29:14.590
Und das war

01:29:14.590 --> 01:29:16.730
auch echt cool. Also es war eine coole Erfahrung.

01:29:16.830 --> 01:29:18.790
Jeder hat da so ein bisschen an dem gearbeitet, wo er

01:29:18.790 --> 01:29:20.830
drauf Lust hatte. Es sind mehrere Tickets

01:29:20.830 --> 01:29:21.690
auch erstellt worden.

01:29:23.430 --> 01:29:23.750
Und

01:29:23.750 --> 01:29:26.970
also wurden mehrere Pulls erstellt

01:29:26.970 --> 01:29:28.770
worden. Und danach

01:29:28.770 --> 01:29:31.030
hat man noch so ein bisschen Diskussionen, so Future of Django.

01:29:31.430 --> 01:29:32.790
War auch super interessant, weil man halt wirklich

01:29:32.790 --> 01:29:34.430
mal zwei Boardminers am Start hat und

01:29:34.430 --> 01:29:36.390
wirklich mit denen so ins 1 zu 1 gehen kann.

01:29:37.210 --> 01:29:38.610
Aber wirklich, ich bin da gar nicht dagegen oder so.

01:29:38.670 --> 01:29:40.790
Ich sage nur, das ist halt nicht so mein Arbeitsumfeld.

01:29:40.910 --> 01:29:43.230
Ich finde, für das wirklich Programmieren ...

01:29:43.230 --> 01:29:43.810
Also kategorisch, ja.

01:29:43.830 --> 01:29:44.950
Also es ist nicht nur so zufällig gewesen,

01:29:45.070 --> 01:29:46.870
sondern du denkst wirklich, du brauchst eher deine Ruhe.

01:29:47.070 --> 01:29:47.670
Ja, definitiv.

01:29:47.770 --> 01:29:50.230
Aber was ich dann interessant finde, ist, dass du zwischendurch,

01:29:50.330 --> 01:29:51.470
also ich weiß nicht, ob sich das geändert hat,

01:29:51.870 --> 01:29:54.390
sagtest, dass du im Büro total die schöne Arbeitsatmosphäre hast

01:29:54.390 --> 01:29:56.250
und das sogar zu Hause vorziehst.

01:29:56.490 --> 01:29:58.090
Wo ich immer sagen würde, im Büro habe ich immer den Stress,

01:29:58.170 --> 01:29:59.010
das mache ich lieber zu Hause.

01:29:59.530 --> 01:30:01.370
Also jetzt, wo ich wieder öfters ins Büro gehe,

01:30:01.370 --> 01:30:04.510
also ich mache so drei Tage Büro, zwei Tage zu Hause,

01:30:06.490 --> 01:30:08.430
ist, als ich nur

01:30:08.430 --> 01:30:10.470
einen Tag die Woche im Büro war, dann hast du halt ständig

01:30:10.470 --> 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.510
da bist, dann hast du halt deine Nasen alle gesehen

01:30:16.510 --> 01:30:18.470
und dann streckt sich das so ein bisschen über die drei Tage

01:30:18.470 --> 01:30:20.550
und dann ist es eher das, wenn man eh mal gerade eine Pause

01:30:20.550 --> 01:30:22.390
braucht, wenn man kurz vor die Tür geht oder so, dass man halt

01:30:22.390 --> 01:30:24.470
jemanden hat, mit dem man reden kann, das finde ich ganz angenehm.

01:30:26.910 --> 01:30:27.190
Und

01:30:27.190 --> 01:30:28.510
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.490
Ich telefoniere vielleicht mal irgendwer, irgendwo oder so.

01:30:36.790 --> 01:30:37.930
Aber es gibt ja immer noch Kopfhörer.

01:30:38.670 --> 01:30:40.270
Dann bin ich ins Boot, dann muss ich eine Hose anziehen.

01:30:40.390 --> 01:30:40.890
Das ist so fürchterlich.

01:30:44.350 --> 01:30:46.070
For the record, du hast jetzt auch eine Hose an.

01:30:46.770 --> 01:30:48.190
Hey, jetzt hast du wieder gespoilert.

01:30:49.810 --> 01:30:50.130
Nein.

01:30:50.630 --> 01:30:52.310
Ich wollte jetzt niemanden zu nahe drehen.

01:30:54.550 --> 01:30:54.870
Ja.

01:30:56.870 --> 01:30:59.670
Ja, wir könnten noch Pics machen.

01:31:01.270 --> 01:31:02.910
Das klingt, glaube ich, ganz gut.

01:31:03.330 --> 01:31:04.670
Und dann ist es eigentlich auch schon

01:31:04.670 --> 01:31:06.610
eine runde Sache.

01:31:08.410 --> 01:31:09.370
Ja, dann bin ich

01:31:09.370 --> 01:31:10.570
ja mal gespannt, was für Picks

01:31:10.570 --> 01:31:12.970
wollt ihr denn nehmen?

01:31:13.410 --> 01:31:14.130
Soll ich anfangen?

01:31:14.470 --> 01:31:15.850
Du hast einen von mir geklaut.

01:31:15.850 --> 01:31:17.330
Ich weiß gar nicht, ob ich den schon gesagt habe.

01:31:17.350 --> 01:31:18.850
Hab ich den geklaut? Ja, das kann sein.

01:31:19.090 --> 01:31:20.970
Ich hab mich in

01:31:20.970 --> 01:31:23.350
letzter Zeit noch mal so ein bisschen

01:31:23.350 --> 01:31:25.590
also es gibt da auch einen sehr schönen, das kann ich vielleicht

01:31:25.590 --> 01:31:27.130
dazu sagen, Vortrag von

01:31:27.130 --> 01:31:30.050
Simon Willison zu einem Kommando-Zahlen-Tool,

01:31:30.110 --> 01:31:31.890
was er geschrieben hat namens

01:31:31.890 --> 01:31:33.650
LLM und das LLM

01:31:33.650 --> 01:31:35.890
picke ich mal, weil da habe ich jetzt auch wieder

01:31:35.890 --> 01:31:37.750
ein bisschen mehr mitgemacht und

01:31:37.750 --> 01:31:39.910
das ist halt wirklich nett, weil man da

01:31:39.910 --> 01:31:41.190
ja

01:31:41.190 --> 01:31:43.790
unterschiedliche Modelle mal so ausprobieren kann,

01:31:43.870 --> 01:31:45.030
damit man so ein bisschen rumspielen kann.

01:31:45.670 --> 01:31:47.810
Aber auch, du kannst halt einfach

01:31:47.810 --> 01:31:49.530
in deine Kommandos halt reinpipen. Genau,

01:31:49.830 --> 01:31:50.730
du kannst halt, ja,

01:31:51.150 --> 01:31:53.170
also ich benutze es dann halt auch

01:31:53.170 --> 01:31:55.350
für solche Dinge wie alle,

01:31:55.910 --> 01:31:57.670
ich habe jetzt sogar eine Funktion tatsächlich für

01:31:57.670 --> 01:31:59.290
Django Cars geschrieben, wo ich sagen kann,

01:32:00.030 --> 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.330
Prompt, wo dann halt die Dateinamen auch noch

01:32:10.330 --> 01:32:12.330
immer mit drüberstehen und dann

01:32:12.330 --> 01:32:14.230
kann ich sagen, okay, pipe das mal irgendwie

01:32:14.230 --> 01:32:16.010
in ein Modell rein und dann mach ich da irgendwie

01:32:16.010 --> 01:32:17.890
ein System-Prompt zu, von wegen, ja,

01:32:18.130 --> 01:32:19.810
hab ich bei der Dokumentation irgendwas vergessen

01:32:19.810 --> 01:32:22.210
oder kann man das irgendwie, gibt es so offensichtliche Dinge,

01:32:22.210 --> 01:32:23.610
die man irgendwie besser machen kann und so

01:32:23.610 --> 01:32:26.190
und ja, das funktioniert

01:32:26.190 --> 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.830
landen in der SQLite. Das heißt, hinterher kann man sich

01:32:31.830 --> 01:32:33.650
auch gut angucken, was da, also man hat

01:32:33.650 --> 01:32:35.730
alle Sachen, die man je irgendwie gepromptet hat

01:32:35.730 --> 01:32:37.430
und wo man Antworten gekriegt hat, hat man

01:32:37.430 --> 01:32:39.610
in einem strukturierten Format, das man halt auch

01:32:39.610 --> 01:32:41.890
wieder irgendwie auslesen kann und analysieren kann.

01:32:41.970 --> 01:32:43.230
Und dann kann man totalerseits deine Templates verwenden,

01:32:43.410 --> 01:32:45.430
die man halt auch dann hintereinander pipen kann

01:32:45.430 --> 01:32:47.670
und dann kann man auch das Default-Template überschreiben, wenn man will und so.

01:32:48.050 --> 01:32:49.350
Dann hat man halt immer schon sein

01:32:49.350 --> 01:32:51.610
System prompt und sein Alignment so ein bisschen

01:32:51.610 --> 01:32:53.610
vor oder hinter dem ganzen

01:32:53.610 --> 01:32:55.650
Zeugs, was man da kommuniziert. Das finde ich

01:32:55.650 --> 01:32:56.270
auch super cool.

01:32:57.070 --> 01:32:58.690
Man kann jetzt, also ich habe zum Beispiel so einen,

01:32:59.110 --> 01:33:00.050
den nenne ich dann den Senior,

01:33:00.410 --> 01:33:02.850
dann gibt der mir immer schnüppelische Antworten,

01:33:02.970 --> 01:33:03.990
wie ich das von Jochen immer kenne.

01:33:06.690 --> 01:33:08.490
Es funktioniert super, es macht sehr viel Spaß.

01:33:08.650 --> 01:33:09.870
Und dann sagt der mir so,

01:33:09.910 --> 01:33:11.290
warum hast du das denn nicht selber rausgefunden?

01:33:11.370 --> 01:33:11.950
Jetzt auch die Anleitung.

01:33:12.390 --> 01:33:14.790
Es ist toll und es macht so ein bisschen Spaß beim Arbeiten,

01:33:14.870 --> 01:33:17.290
wenn man dann Fragen stellt und jemand, der dann so antwortet.

01:33:17.290 --> 01:33:18.590
Das ist sehr lustig.

01:33:20.090 --> 01:33:20.710
Sehr gut.

01:33:21.750 --> 01:33:21.990
Genau.

01:33:22.890 --> 01:33:23.930
Ja, also das Ding, ups.

01:33:24.610 --> 01:33:26.850
Das wäre dann mein Pick, genau.

01:33:27.070 --> 01:33:30.450
Ja, Ronny.

01:33:32.530 --> 01:33:32.930
Boah,

01:33:34.250 --> 01:33:36.010
so ganz spontan fallen mir

01:33:36.010 --> 01:33:38.430
nicht mehr Sachen ein.

01:33:38.470 --> 01:33:39.930
Du kennst etwa die Praxis nicht

01:33:39.930 --> 01:33:41.990
von dem Pick der Woche, des Monats

01:33:41.990 --> 01:33:44.070
hier bei uns im Podcast. Also ich kenne das doch,

01:33:44.130 --> 01:33:45.890
aber mir fällt gerade irgendwie nichts wirklich ein, was ich

01:33:45.890 --> 01:33:47.270
nicht gerade schon irgendwie in einer Art und Weise erwähnt habe.

01:33:47.270 --> 01:33:49.750
Oder hast du vielleicht mal einen interessanten Talk gesehen?

01:33:50.030 --> 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:54.090 --> 01:33:55.890
dann können die Leute ihn jetzt noch nicht sehen,

01:33:56.110 --> 01:33:57.730
aber irgendwie sich schon mal

01:33:57.730 --> 01:33:59.710
darauf freuen, dass es den dann später irgendwo auf YouTube

01:33:59.710 --> 01:34:01.590
gibt oder so. Also wie gesagt, der Talk

01:34:01.590 --> 01:34:03.490
über die Layered Architect

01:34:03.490 --> 01:34:03.950
über Django,

01:34:04.890 --> 01:34:07.330
ich weiß nicht genau, wie er hieß,

01:34:07.450 --> 01:34:08.990
der war auf jeden Fall sehr spannend

01:34:08.990 --> 01:34:11.530
und auch einen Talk, wenn man sich für Django

01:34:11.530 --> 01:34:12.990
interessiert und auch in das,

01:34:13.390 --> 01:34:14.970
die Idee bezüglich

01:34:14.970 --> 01:34:17.650
großer Applikationen und wie lässt

01:34:17.650 --> 01:34:19.570
man eine Django-Applikation wachsen, weil ich bin schon davon

01:34:19.570 --> 01:34:21.710
überzeugt, dass man auch große Applikationen

01:34:21.710 --> 01:34:23.530
damit bauen kann. Es ist nicht nur zwingend

01:34:23.530 --> 01:34:25.390
nur dieses kleine Blog-Ding,

01:34:25.510 --> 01:34:27.430
womit es mal angefangen hat, da gibt es

01:34:27.430 --> 01:34:29.490
einen Talk, Scaling Django to 500

01:34:29.490 --> 01:34:31.430
Apps, das ist auch

01:34:31.430 --> 01:34:32.570
Kraken-basiert, Kraken,

01:34:32.770 --> 01:34:34.810
hier, Octopus Energy

01:34:34.810 --> 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.310 --> 01:34:42.870
das haben ja viele Frameworks

01:34:42.870 --> 01:34:44.690
und die haben da eine Idee,

01:34:45.190 --> 01:34:47.270
ja, in general, sie missbrauchen da ein bisschen das

01:34:47.270 --> 01:34:49.270
Framework, machen was, was nicht vorgesehen war, was aber

01:34:49.270 --> 01:34:51.210
trotzdem funktioniert, nämlich die machen Sub-Apps

01:34:51.210 --> 01:34:53.490
und haben da so eine Sprint-to-Naming-Konvention,

01:34:53.970 --> 01:34:55.030
um im Endeffekt zu sagen,

01:34:55.350 --> 01:35:21.770
Ich habe immer noch eine Domäne, die sich um mein Projekt oder mein Accounting oder mein weiß der Geier was kümmert, mein Produkt, aber da drin, das ist so groß geworden, ich möchte das weiter strukturieren und das finde ich super spannend, das ist gerade auch eine Sache, über die ich sehr aktiv nachdenke, wie ich das in mein Projekt, in dem ich aktuell arbeite, reinbringen kann, weil ich jetzt zum Beispiel in meinem Projekt, wir haben da so ein bisschen, also manche Apps sind einfach riesig geworden, wo man sagen muss, die müssen aufgeteilt werden.

01:35:21.770 --> 01:35:44.370
Und mit diesem Sub-App-Gedanken bin ich heute einfach nur in diesem Structure-View, also wo man quasi sieht, welche Klassen gibt es in meiner Datei, einfach mal mit einem Blick sind mir und meinem Kollegen wirklich einfach so, okay, das ist ein Kontext, also das ist so eine Sub-App, das ist eine, also es war super schnell, wie so Sachen reingehen, wo man auch sagt, okay, das gehört hier echt gar nicht rein, das muss eigentlich komplett woanders hin, einfach nur mit einem Blick und diesem Gedanken, dass es dieses Sub-App-Pattern gibt.

01:35:44.930 --> 01:35:46.750
Dann auch bei ein paar Sachen gesagt, okay, das ist definitiv

01:35:46.750 --> 01:35:48.470
keine Subwebs, das ist einfach Standalone.

01:35:48.690 --> 01:35:49.810
Das kann man gut rausziehen.

01:35:50.430 --> 01:35:52.350
Das finde ich auf jeden Fall einen sehr interessanten Vortrag,

01:35:52.430 --> 01:35:54.370
den ich jedem ans Herz legen kann, der sich

01:35:54.370 --> 01:35:56.170
für sowas interessiert.

01:35:56.450 --> 01:35:58.710
Subwebs habe ich auch letzte Woche in irgendeinem Projekt eingebaut,

01:35:58.810 --> 01:35:59.770
aber ohne das Pattern dazu.

01:36:00.070 --> 01:36:01.390
Aber ich bin eigentlich eher,

01:36:01.870 --> 01:36:04.810
vielleicht bin ich da auch irgendwie falsch abgebogen,

01:36:04.950 --> 01:36:06.310
aber ich bin eigentlich eher so auf dem,

01:36:06.430 --> 01:36:07.810
ich mache gar keine Django-Webs mehr.

01:36:08.770 --> 01:36:10.610
Also immer wenn ich...

01:36:10.610 --> 01:36:10.790
Wie sonst?

01:36:11.710 --> 01:36:13.230
Naja, einfach ganz stinknormal

01:36:13.230 --> 01:36:15.490
mit Python-Bordmitteln

01:36:15.490 --> 01:36:16.390
Dinge modularisieren.

01:36:17.270 --> 01:36:19.370
Weil das Problem bei den Apps ist halt

01:36:19.370 --> 01:36:20.430
einmal,

01:36:20.710 --> 01:36:23.730
ja, es ist halt irgendwie so eine Spezialgeschichte,

01:36:23.830 --> 01:36:25.030
die halt irgendwie anders funktioniert als

01:36:25.030 --> 01:36:27.390
alles andere und du musst es halt

01:36:27.390 --> 01:36:29.250
auch in den Settings ja immer dann mitsetzen

01:36:29.250 --> 01:36:30.230
und so. Und dann,

01:36:30.730 --> 01:36:32.530
das, was ich eigentlich am

01:36:32.530 --> 01:36:35.130
fiesesten finde, ist,

01:36:35.390 --> 01:36:37.190
dass man halt, man kann halt Sachen schlecht

01:36:37.190 --> 01:36:39.490
refactoren, so von einer App zum Beispiel in eine andere,

01:36:39.870 --> 01:36:41.030
weil man kann die Migration nicht umziehen.

01:36:41.170 --> 01:36:43.210
Aber so Modelle, genau, wäre so ein Punkt, wo ich sagen würde,

01:36:43.230 --> 01:36:45.170
oder eine App, wenn es irgendwo Modelle gibt,

01:36:45.990 --> 01:36:47.250
ist für mich immer bisher so eine App.

01:36:47.890 --> 01:36:49.010
Ja, aber was machst du dann, wenn

01:36:49.010 --> 01:36:51.190
du mal das eine Modell in eine andere App ziehen willst?

01:36:51.330 --> 01:36:52.550
Das ist mühsam, das habe ich schon gemacht.

01:36:52.770 --> 01:36:53.910
Es geht, aber es ist mühsam.

01:36:54.610 --> 01:36:57.450
Also musst du halt

01:36:57.450 --> 01:36:58.850
mit RAW-SQL und

01:36:58.850 --> 01:37:00.510
Daten halt...

01:37:00.510 --> 01:37:03.190
Ja, klar, das geht schon, aber es ist halt nicht einfach,

01:37:03.310 --> 01:37:04.450
man verschiebt es...

01:37:04.450 --> 01:37:05.510
Da kann man auch gut was kaputt machen.

01:37:05.510 --> 01:37:06.670
Ja, genau.

01:37:07.510 --> 01:37:09.310
Wenn man es halt alles in einer App hat,

01:37:09.470 --> 01:37:10.550
dann kann man es einfach umziehen.

01:37:11.190 --> 01:37:13.110
Das ist eine interessante Idee, da habe ich nicht drüber nachgedacht.

01:37:13.230 --> 01:37:17.870
Ich habe meistens dann zum Beispiel Models.

01:37:18.130 --> 01:37:20.770
Also wenn es größer wird, dann habe ich halt ein Models-Verzeichnis.

01:37:21.590 --> 01:37:23.070
Alle Models in einer Datei.

01:37:23.070 --> 01:37:24.970
Nee, genau. Das eben nicht mehr, weil das wird dann halt riesig.

01:37:25.370 --> 01:37:29.630
Also wenn Models irgendwie größer wird als tausend Zeilen oder so,

01:37:29.670 --> 01:37:32.010
dann würde ich denken, na gut, wahrscheinlich sollte man es mal ein bisschen aufteilen.

01:37:32.830 --> 01:37:35.030
Und ja, dann kann man die ja auch so gruppieren.

01:37:35.310 --> 01:37:38.970
Und dann hat man noch eine Init-Py, in der man dann halt irgendwie festlegt,

01:37:39.050 --> 01:37:40.290
welche überhaupt exportiert werden sollen.

01:37:40.350 --> 01:37:43.070
Weil viele Dinge braucht man gar nicht nach außen reichen, sondern die sind ja rein intern.

01:37:43.230 --> 01:37:45.770
Das ist interessant, da habe ich noch nie drüber nachgedacht

01:37:45.770 --> 01:37:48.170
Ja, das finde ich auch

01:37:48.170 --> 01:37:50.150
Also unterverzeichnet ist, wo halt nur bestimmte Sachen

01:37:50.150 --> 01:37:52.250
rauskommen und die anderen Sachen, also implizit

01:37:52.250 --> 01:37:52.850
intern, aber

01:37:52.850 --> 01:37:55.890
Das ist interessant, da habe ich heute noch drüber nachgedacht

01:37:55.890 --> 01:37:57.990
aber auf diesen

01:37:57.990 --> 01:38:00.110
das ist ein Benefit, da bin ich

01:38:00.110 --> 01:38:01.130
drauf gekommen, das ist interessant

01:38:01.130 --> 01:38:04.030
Ja, cool

01:38:04.030 --> 01:38:05.470
Und dein Pick?

01:38:06.170 --> 01:38:08.070
Mein Pick, ich habe natürlich wieder von Jens

01:38:08.070 --> 01:38:09.630
geklaut, der das in unsere Gruppe geschrieben hat, das ist

01:38:09.630 --> 01:38:10.690
Monkey Type

01:38:10.690 --> 01:38:13.410
von Instagram

01:38:13.410 --> 01:38:15.010
entwickelt worden, wenn ich das richtig verstanden habe.

01:38:15.550 --> 01:38:17.210
Und das baut dir Type Annotations.

01:38:18.630 --> 01:38:19.510
Das heißt, du gehst

01:38:19.510 --> 01:38:21.510
einfach hin und hast

01:38:21.510 --> 01:38:23.470
irgendeine Python-Funktion oder sowas und sagst

01:38:23.470 --> 01:38:25.270
dann Command-Teile MonkeyType und

01:38:25.270 --> 01:38:27.450
dann nimmt der halt die File oder das Ding

01:38:27.450 --> 01:38:29.250
und schreibt da die Annotations dran.

01:38:30.030 --> 01:38:30.850
Und das ist gar nicht so schlecht.

01:38:31.430 --> 01:38:33.430
Das funktioniert besser, als man vielleicht denkt.

01:38:35.070 --> 01:38:35.470
Und

01:38:35.470 --> 01:38:37.210
wenn man halt gerade nicht so weiß,

01:38:37.290 --> 01:38:39.290
man möchte irgendwas Type Annotieren, also warum

01:38:39.290 --> 01:38:41.090
wenn man das mal möchte, dann

01:38:41.090 --> 01:38:43.330
macht man das doch. Und dann sieht man, was da passiert.

01:38:43.410 --> 01:38:44.930
Das kann einem schon ein bisschen Arbeit abnehmen.

01:38:46.090 --> 01:38:46.410
Und irgendwie

01:38:46.410 --> 01:38:49.270
man entdeckt manchmal sogar auch Bugs, weil man halt so, hä, nee, das stimmt

01:38:49.270 --> 01:38:50.110
aber eigentlich gar nicht oder so.

01:38:50.890 --> 01:38:53.190
Wenn man andere Sachen erwartet oder

01:38:53.190 --> 01:38:55.370
oh, Mist, dann kommt auf einmal der Delinther

01:38:55.370 --> 01:38:57.090
oder Maipai sagt halt so, nee, Moment, der stimmt

01:38:57.090 --> 01:38:59.030
aber jetzt gar nicht, das ist schon ganz gut.

01:39:00.030 --> 01:39:00.350
Interessant.

01:39:01.010 --> 01:39:03.390
Ja, gut, dann würde ich sagen,

01:39:03.690 --> 01:39:04.870
haben wir für heute die Episode.

01:39:05.090 --> 01:39:06.290
Dann herzlichen Dank, dass du wieder da warst.

01:39:06.290 --> 01:39:07.330
Ja, vielen Dank.

01:39:08.130 --> 01:39:10.250
Dann machen wir es gleich noch unter uns weiter,

01:39:10.350 --> 01:39:12.190
würde ich sagen. Herzlichen Dank fürs

01:39:12.190 --> 01:39:14.090
Zuhören. Bleibt uns gebogen, wo immer ihr auch seid.

01:39:14.630 --> 01:39:15.190
Danke, Jochen.

01:39:16.210 --> 01:39:18.250
Und ja, Feedback

01:39:18.250 --> 01:39:20.090
an hallo.at, peißenpodcast.de, Feedback,

01:39:20.150 --> 01:39:22.210
Anregungen, Kommentare, Lob, Kritik und so weiter.

01:39:22.750 --> 01:39:24.410
Was ihr alles möchtet. Bis bald.

01:39:25.150 --> 01:39:25.830
Bis dann. Bis bald.

01:39:25.970 --> 01:39:26.710
Tschüss.
