WEBVTT

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

00:00:04.360 --> 00:00:05.900
Heute reden wir über die DjangoCon.

00:00:06.440 --> 00:00:06.880
Hallo Jochen.

00:00:07.520 --> 00:00:08.120
Hallo Dominik.

00:00:08.500 --> 00:00:09.240
Und hallo.

00:00:09.400 --> 00:00:09.940
Und hallo Ronny.

00:00:10.000 --> 00:00:10.400
Ronny, hi.

00:00:10.900 --> 00:00:11.680
Schön, dass du wieder da bist.

00:00:11.920 --> 00:00:12.520
Ja, wunderbar.

00:00:12.680 --> 00:00:12.980
Ich auch.

00:00:13.740 --> 00:00:17.020
Dann fangen wir vielleicht mit ein bisschen News an und dann schlagen wir direkt ein, was

00:00:17.020 --> 00:00:17.380
da noch los ist.

00:00:17.380 --> 00:00:19.440
Jo, ich mache hier mal eine Kapitelmarke für News.

00:00:20.560 --> 00:00:23.660
Okay, Kapitelmarke hat nicht funktioniert.

00:00:23.880 --> 00:00:24.360
Ah, toll.

00:00:24.920 --> 00:00:25.660
Nichts funktioniert hier?

00:00:26.340 --> 00:00:27.480
Das ist ja nichts Neues.

00:00:27.880 --> 00:00:28.120
Ja.

00:00:30.000 --> 00:00:32.040
Das sind keine News

00:00:32.040 --> 00:00:33.240
Wann war die nicht dann gekommen?

00:00:33.320 --> 00:00:34.380
Erst mal damit an

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

00:00:37.780 --> 00:00:39.320
Nordspanien, Galicien

00:00:39.320 --> 00:00:40.760
Eine sehr schöne Stadt

00:00:40.760 --> 00:00:43.780
Ohne jetzt tatsächlich große Highlights, aber mir hat es trotzdem gut gefallen

00:00:43.780 --> 00:00:45.880
Es ist ein sehr schöner Nationalpark

00:00:45.880 --> 00:00:47.700
Ein Inselnationalpark direkt vor der Küste

00:00:47.700 --> 00:00:49.420
Wäre mal die Gelegenheit, da hinzufahren

00:00:49.420 --> 00:00:50.500
Das sollte man nicht verpassen

00:00:50.500 --> 00:00:53.240
Ist das so quasi da irgendwo diese

00:00:53.240 --> 00:00:55.280
Santiago de Compostela

00:00:55.280 --> 00:00:57.300
Ja genau, das ist so ein bisschen südwestlich davon

00:00:57.300 --> 00:00:59.560
Also genau nördlich von Portugal

00:00:59.560 --> 00:01:01.640
und genau, ich hatte

00:01:01.640 --> 00:01:03.340
einen Tag Zeit, wandern zu gehen,

00:01:03.640 --> 00:01:05.780
auf der Isla Cies,

00:01:05.880 --> 00:01:07.140
glaube ich, und

00:01:07.140 --> 00:01:08.980
das ist wirklich sehr zu empfehlen.

00:01:10.000 --> 00:01:10.600
Ging sehr gut.

00:01:12.460 --> 00:01:12.700
Ja.

00:01:13.700 --> 00:01:15.320
Ja, nächste Woche ist EuroPython,

00:01:15.460 --> 00:01:17.420
vielleicht das News. Ich weiß nicht, ob man das noch hört,

00:01:17.420 --> 00:01:18.820
wenn ihr darüber hört, vielleicht ist es dann schon vorbei.

00:01:19.540 --> 00:01:19.840
Ja, wahrscheinlich.

00:01:21.540 --> 00:01:21.900
Ja.

00:01:23.500 --> 00:01:25.420
Wir möchten gerne ein paar Themen von der

00:01:25.420 --> 00:01:27.300
DynamoCon hören und es gibt aber noch ein, zwei

00:01:27.300 --> 00:01:28.960
andere News. Ja, genau.

00:01:28.960 --> 00:01:30.780
Wir haben ja jetzt schon einige Zeit

00:01:30.780 --> 00:01:32.540
keine Sendung mehr.

00:01:33.200 --> 00:01:35.300
Das ist immer dasselbe Problem im Moment, aber gut.

00:01:36.300 --> 00:01:37.380
Also ein News

00:01:37.380 --> 00:01:38.260
ist ganz interessant.

00:01:38.940 --> 00:01:40.800
Google ist ja so ein bisschen unter Druck in letzter Zeit.

00:01:41.280 --> 00:01:42.660
Man sieht sie halt öffentlich schwitzen.

00:01:44.080 --> 00:01:44.860
Dieses ganze

00:01:44.860 --> 00:01:46.960
AI-Thema, das ist irgendwie, ja.

00:01:48.400 --> 00:01:49.120
Können sie nicht so richtig

00:01:49.120 --> 00:01:51.000
entscheiden, schlagen sie jetzt voll ein oder doch nicht?

00:01:51.100 --> 00:01:52.080
Was machen sie? Oh nein.

00:01:53.060 --> 00:01:54.880
Jetzt haben sie sich für etwas anderes entschieden,

00:01:55.020 --> 00:01:56.500
nämlich ihr Python-Team zu feuern.

00:01:56.500 --> 00:02:00.620
Die haben da glaube ich direkt wieder ein neues eingestellt, ich glaube in Deutschland sogar.

00:02:01.040 --> 00:02:05.280
Ja, sie sind jetzt, also es ist zu teuer mit dem teuren...

00:02:05.280 --> 00:02:09.080
Die Amerikaner wollten alle 300.000 Dollar haben pro Jahr und haben sich irgendwann gedacht, das können wir in Deutschland auch viel heftiger haben.

00:02:09.360 --> 00:02:16.760
Genau, dann gehen wir halt in so ein Billig-Lonand und dann in so eine, keine Ahnung, Billig-Vorstadt und zwar gehen sie nach München.

00:02:17.340 --> 00:02:18.800
Und wollen da ein neues Team aufbauen.

00:02:18.800 --> 00:02:20.320
Da sind sie ja auch schon, da sind sie ja schon ein bisschen gewachsen.

00:02:20.320 --> 00:02:24.620
Aber ich bin mal gespannt, ob das klappt, dass sie da jetzt irgendwie, keine Ahnung,

00:02:25.360 --> 00:02:28.300
äquivalent rekrutieren können. Mal sehen.

00:02:28.740 --> 00:02:29.160
Aber ja.

00:02:29.280 --> 00:02:31.060
Ja, dann bestimmt er kann vor die guten Python-Leute sitzen.

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

00:02:36.720 --> 00:02:38.900
Zudem gibt es keinen Lokal-Python-Rekrutismus hier auch.

00:02:39.700 --> 00:02:40.060
Ja.

00:02:41.320 --> 00:02:45.580
Genau, also das ist schon mal irgendwie, aber normalerweise ist das ja nie passiert.

00:02:45.700 --> 00:02:48.260
Das ist ja immer so, mehr Python-Leute einstellen und so, voll gut.

00:02:48.260 --> 00:02:53.000
und jetzt, und welche, hat man das irgendwie so rückgebaut? Das ist neu.

00:02:53.240 --> 00:02:55.960
Vielleicht ist aber erstmal einfach nur so eine normale Glättung, die irgendwann mal ist, oder?

00:02:55.960 --> 00:02:56.700
Ja, kann auch sein, ja.

00:02:56.760 --> 00:02:59.460
Also vielleicht ist auch, muss man da nicht so viel reininterpretieren, das ist schon richtig.

00:02:59.720 --> 00:03:03.960
Es gibt tatsächlich von Python 3.13 jetzt so erste Beta-Versionen.

00:03:04.140 --> 00:03:04.320
Ja.

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

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

00:03:12.780 --> 00:03:15.160
Ja, es gibt, glaube ich, jetzt auch, wo war das?

00:03:15.160 --> 00:03:17.000
Irgendwas kann jetzt auch, man kann jetzt auch Reels bauen

00:03:17.000 --> 00:03:19.360
für 3.13.

00:03:19.520 --> 00:03:20.840
Ich habe es jetzt wieder, ich habe

00:03:20.840 --> 00:03:22.560
heute echt keine Zeit gehabt, mich

00:03:22.560 --> 00:03:25.040
die News nochmal anzugucken. Insofern tut mir

00:03:25.040 --> 00:03:26.580
leid, wird etwas durcheinander, aber

00:03:26.580 --> 00:03:29.140
ja, also genau. Python 3.13

00:03:29.140 --> 00:03:31.040
kann man auf jeden Fall jetzt

00:03:31.040 --> 00:03:33.260
mal so, jetzt ist der richtige Zeitpunkt, um das mal auszuprobieren.

00:03:34.180 --> 00:03:35.060
Was habe ich noch?

00:03:35.480 --> 00:03:36.420
Oh, ich habe gesehen, es gibt,

00:03:36.800 --> 00:03:38.220
ich weiß aber nicht, ob das News ist, aber

00:03:38.220 --> 00:03:40.900
es gibt ein Software-Development-Kit

00:03:40.900 --> 00:03:42.520
für 1Password.

00:03:42.520 --> 00:03:44.580
Also ich bin immer noch bei 1Password.

00:03:44.580 --> 00:03:46.720
wie tut das zwar etwas weh, dass das alles super teuer ist

00:03:46.720 --> 00:03:48.520
und so, aber ich finde es immer noch so

00:03:48.520 --> 00:03:50.600
der beste Passwortmanager und

00:03:50.600 --> 00:03:51.940
der hat jetzt auch ein Python

00:03:51.940 --> 00:03:53.860
API im

00:03:53.860 --> 00:03:56.500
Software Development Kit gekriegt, das heißt

00:03:56.500 --> 00:03:58.500
man kann von Python aus irgendwie One Password

00:03:58.500 --> 00:04:00.220
anfragen, also sozusagen man kann halt

00:04:00.220 --> 00:04:02.500
Python Sachen schreiben und dann fragt

00:04:02.500 --> 00:04:04.460
das Ding halt One Password und dann sagt das Ding

00:04:04.460 --> 00:04:06.340
halt da, guck hier mal in die Kamera oder

00:04:06.340 --> 00:04:08.260
hier, leg mal da deinen Finger drauf und dann kann man sich

00:04:08.260 --> 00:04:10.560
authentifizieren, was ja für manche Sachen ganz nett ist.

00:04:11.160 --> 00:04:12.080
Wie teuer ist denn das?

00:04:12.260 --> 00:04:12.620
Weißt du das?

00:04:12.620 --> 00:04:13.460
für meine Werbung machen.

00:04:13.660 --> 00:04:16.520
Also OneCupBot

00:04:16.520 --> 00:04:18.860
kostet, das ist wirklich, die haben ja auch wahnsinnig

00:04:18.860 --> 00:04:20.800
viel Fremdkapital aufgenommen

00:04:20.800 --> 00:04:22.500
und das kostet pro User

00:04:22.500 --> 00:04:24.380
irgendwie sowas 35

00:04:24.380 --> 00:04:26.700
Dollar oder Euro im Jahr ungefähr.

00:04:27.960 --> 00:04:28.600
Und das ist halt schon

00:04:28.600 --> 00:04:29.960
ja.

00:04:31.440 --> 00:04:32.740
Und gab es Debatten, wie lange

00:04:32.740 --> 00:04:33.480
ist der letzte Breach her?

00:04:34.960 --> 00:04:36.340
Ja, es gab einen auch

00:04:36.340 --> 00:04:37.480
über Okta,

00:04:38.480 --> 00:04:39.980
der war aber nicht so furchtbar schlimm.

00:04:39.980 --> 00:04:41.860
Also ist auch so ein halbes Jahr her, glaube ich.

00:04:41.860 --> 00:04:42.160
oder so.

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

00:04:47.840 --> 00:04:49.100
Genau, was haben wir noch? Ach so,

00:04:49.560 --> 00:04:51.120
ja, es gibt auch gute Nachrichten, also

00:04:51.120 --> 00:04:53.500
das ist ja auch so ein Ding, da kriege ich immer Angst, wenn ich mir

00:04:53.500 --> 00:04:53.900
angucke,

00:04:54.860 --> 00:04:57.220
wie das so funktioniert. PyPI

00:04:57.220 --> 00:04:58.820
macht wahnsinnig viel Traffic.

00:04:59.700 --> 00:05:01.780
Also was darüber geht, ist halt atemberaubend

00:05:01.780 --> 00:05:03.380
und es kostet auch wahnsinnig viel Geld und das

00:05:03.380 --> 00:05:05.100
funktioniert halt darüber, dass es einen

00:05:05.100 --> 00:05:07.520
CDN, so Content Delivery Network

00:05:07.520 --> 00:05:09.640
Anbieter gibt, der sponsert das halt,

00:05:09.920 --> 00:05:10.980
der hostet PyPI.

00:05:11.860 --> 00:05:14.180
und ich weiß nicht, was man zahlen müsste,

00:05:14.280 --> 00:05:16.200
wenn man das nicht kostenlos

00:05:16.200 --> 00:05:17.960
kriegen würde. Das wäre sehr viel und das wäre

00:05:17.960 --> 00:05:19.040
ein Riesenproblem, weil

00:05:19.040 --> 00:05:22.160
per Pivot installieren

00:05:22.160 --> 00:05:23.120
würde dann halt nicht mehr funktionieren.

00:05:23.980 --> 00:05:26.040
Und die haben jetzt gerade auf der

00:05:26.040 --> 00:05:27.620
Python US

00:05:27.620 --> 00:05:28.860
verkündet, dass sie

00:05:28.860 --> 00:05:31.160
für fünf weitere Jahre

00:05:31.160 --> 00:05:32.900
PyPI sponsern wollen.

00:05:33.220 --> 00:05:34.960
Das ist natürlich praktisch.

00:05:34.960 --> 00:05:36.700
Also es gibt noch mindestens fünf Jahre.

00:05:36.900 --> 00:05:38.820
Ja, genau.

00:05:40.120 --> 00:05:41.000
Dann tatsächlich

00:05:41.000 --> 00:05:42.320
jetzt im Juni vor

00:05:42.320 --> 00:05:45.460
zwei, drei Wochen

00:05:45.460 --> 00:05:47.620
ist NumPy 2.0

00:05:47.620 --> 00:05:48.900
erschienen nach irgendwie

00:05:48.900 --> 00:05:51.600
14 Jahren

00:05:51.600 --> 00:05:52.540
Entwicklungszeit.

00:05:53.200 --> 00:05:54.520
Das war eine ganze Zeit lang

00:05:54.520 --> 00:05:56.180
in Progress.

00:05:57.780 --> 00:05:58.860
Und genau.

00:05:59.420 --> 00:06:01.400
Ist vielleicht mal jetzt nicht der günstigste Moment

00:06:01.400 --> 00:06:03.000
umzusteigen, sondern man sollte vielleicht

00:06:03.000 --> 00:06:04.960
das jetzt mal auf kleiner 2 pinnen

00:06:04.960 --> 00:06:06.580
oder mal gucken, bis alle anderen

00:06:06.580 --> 00:06:08.860
sich angepasst haben, weil

00:06:08.860 --> 00:06:10.420
das bricht halt einige

00:06:10.420 --> 00:06:12.580
einige Geschichten.

00:06:13.560 --> 00:06:14.800
Aber ja, schön, dass es jetzt raus ist

00:06:14.800 --> 00:06:16.780
und dann macht einige

00:06:16.780 --> 00:06:18.840
wie gesagt,

00:06:18.980 --> 00:06:20.800
ich habe keine Ahnung, was alles genau

00:06:20.800 --> 00:06:22.440
passiert ist oder ich wusste es mal, aber ich habe es wieder vergessen.

00:06:24.380 --> 00:06:24.580
Ja,

00:06:24.700 --> 00:06:26.180
Performance ist irgendwie besser geworden.

00:06:26.520 --> 00:06:28.840
Es sind auch ein paar Updates, das heißt, ihr müsst ein bisschen aufpassen,

00:06:29.000 --> 00:06:30.540
weil wenn ihr da irgendwie einfach updatet,

00:06:30.640 --> 00:06:32.980
dann kann es sein, dass euch relativ

00:06:32.980 --> 00:06:34.780
viele Dinge kaputt gehen. Also ich habe so ein paar

00:06:34.780 --> 00:06:36.780
Updates gehabt, da war es so ein bisschen

00:06:36.780 --> 00:06:38.600
hässlich, weil ich tatsächlich

00:06:38.600 --> 00:07:08.580
und Jochen unterhalten sich über die Programmiersprache Python

00:07:08.600 --> 00:07:10.440
erste 1.0 Release von Polos,

00:07:11.220 --> 00:07:12.700
was ja auch vielleicht

00:07:12.700 --> 00:07:13.660
ganz nett ist,

00:07:13.860 --> 00:07:16.460
dass man sich jetzt halt so darauf verlassen kann, dass die

00:07:16.460 --> 00:07:18.240
API da mal eine Zeit lang stabil bleibt und so.

00:07:19.340 --> 00:07:20.380
Und da ist auch sonst nichts

00:07:20.380 --> 00:07:21.640
Großartiges dazugekommen.

00:07:22.460 --> 00:07:23.860
Nutzt du das irgendwo viel?

00:07:24.280 --> 00:07:26.720
Nee, viel nutze ich das nicht. Ich nutze das ab und zu mal.

00:07:27.020 --> 00:07:27.600
Hast du noch Pandas?

00:07:27.740 --> 00:07:30.440
Ich nutze eher Pandas, weil ich mich halt da so an Pandas

00:07:30.440 --> 00:07:32.720
gewöhnt habe. Nur weil du dich daran gewöhnt hast.

00:07:32.900 --> 00:07:34.340
Ja. Aber Pandas haben die auch ein bisschen schneller gemacht.

00:07:34.440 --> 00:07:36.480
Ich weiß gar nicht, gibt es irgendwie wirklich jemand, der das mal

00:07:36.480 --> 00:07:37.840
getestet hat, was so für was

00:07:37.840 --> 00:07:38.660
besser.

00:07:39.560 --> 00:07:41.280
Ja, also Polars ist tatsächlich, wenn man

00:07:41.280 --> 00:07:43.940
einfache Sachen macht, ist es halt ein gutes Stückchen

00:07:43.940 --> 00:07:44.200
schneller.

00:07:45.640 --> 00:07:47.620
Es gibt halt Dinge, die gehen mit Polars gar nicht so

00:07:47.620 --> 00:07:48.420
und die gehen mit Pandas.

00:07:50.240 --> 00:07:51.820
Viele Sachen sind halt auch total komisch

00:07:51.820 --> 00:07:53.420
und ich habe mich halt daran gewöhnt, zum Beispiel an diese

00:07:53.420 --> 00:07:55.360
Multi-Index-Geschichten und so.

00:07:56.800 --> 00:07:58.020
Wahrscheinlich ist das keine gute Idee

00:07:58.020 --> 00:07:59.880
und es ist richtig, dass Polars das alles nicht

00:07:59.880 --> 00:08:01.620
gemacht hat und auch selbst die Leute, die Pandas gebaut haben.

00:08:02.140 --> 00:08:03.580
Das weiß man, McKinney sagt heute

00:08:03.580 --> 00:08:05.760
im Podcast so, ja, das mit diesen ganzen

00:08:05.760 --> 00:08:07.780
komplizierten Index-Geschichten und so, das war wahrscheinlich

00:08:07.780 --> 00:08:37.760
und Jochen unterhalten sich über die Programmiersprache Python

00:08:37.780 --> 00:08:39.880
PsychoPG 2 explizit

00:08:39.880 --> 00:08:41.520
und wenn man jetzt aber normal PsychoPG nimmt,

00:08:41.620 --> 00:08:42.580
dann ist es jetzt normal 3.

00:08:42.700 --> 00:08:43.100
Ja, genau.

00:08:45.340 --> 00:08:47.620
Und ja, super, da ist halt auch

00:08:47.620 --> 00:08:49.700
so Async Support

00:08:49.700 --> 00:08:51.020
jetzt mit drin und

00:08:51.020 --> 00:08:52.240
diverse Geschichten.

00:08:54.400 --> 00:08:55.480
Auf Postgres 15,

00:08:55.560 --> 00:08:56.980
was ist das Minimum für PsychoPG?

00:08:57.800 --> 00:08:58.940
Warte mal, lass mal grad gucken.

00:08:59.700 --> 00:09:00.540
Bestimmt noch bei Tifa.

00:09:00.880 --> 00:09:03.440
Wahrscheinlich, ich würde jetzt tippen, Postgres 12

00:09:03.440 --> 00:09:03.800
oder so.

00:09:03.800 --> 00:09:08.060
Minimove steht da nicht.

00:09:09.040 --> 00:09:10.420
Nee, steht, steht, ich weiß es.

00:09:10.540 --> 00:09:11.700
Keine Low-Hand-Food. Okay.

00:09:12.260 --> 00:09:14.140
Auch nicht so wichtig. Die meisten Leute,

00:09:14.220 --> 00:09:15.880
sind die bei alten Datenbanken oder bei neuen? Was meint ihr?

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

00:09:18.240 --> 00:09:20.560
weil die meisten halt nicht die Kontrolle

00:09:20.560 --> 00:09:22.260
haben über die Distributionen, auf denen

00:09:22.260 --> 00:09:24.240
ihr Zeugs läuft und dann haben sie halt irgendwie

00:09:24.240 --> 00:09:26.440
entweder alte Datenbanken,

00:09:26.580 --> 00:09:28.360
weil Datenbanken auch oft nicht kontinuiert

00:09:28.360 --> 00:09:28.800
sind,

00:09:29.200 --> 00:09:31.700
oder

00:09:31.700 --> 00:09:33.620
oder sie haben es konterinisiert

00:09:33.620 --> 00:09:35.640
und haben dann vergessen, dass es irgendwie

00:09:35.640 --> 00:09:36.520
was ist.

00:09:37.480 --> 00:09:39.580
Aber ich sehe in der Praxis

00:09:39.580 --> 00:09:41.180
ganz oft alte Daten machen.

00:09:41.620 --> 00:09:42.640
Ja, stimmt.

00:09:43.140 --> 00:09:45.240
Und ehrlich gesagt, ich finde es komisch, weil

00:09:45.240 --> 00:09:47.460
das ist halt so, ich meine, das kostet eigentlich

00:09:47.460 --> 00:09:49.600
ja nicht viel, das abzudaten oder da abzudaten

00:09:49.600 --> 00:09:51.520
zu bleiben und es bringt halt ordentlich was.

00:09:52.360 --> 00:09:53.520
Also eben, wenn ich jetzt mir

00:09:53.520 --> 00:09:55.520
angucke, Postgres 12 oder so, was ich häufig

00:09:55.520 --> 00:09:56.740
sehe oder

00:09:56.740 --> 00:09:59.440
wenn man jetzt stattdessen

00:09:59.440 --> 00:10:01.520
einen Postgres 16 nimmt, dann ist es halt schon

00:10:01.520 --> 00:10:02.980
Da hat sich schon einiges getan.

00:10:03.700 --> 00:10:05.080
Da kriegt man irgendwie so 30%

00:10:05.080 --> 00:10:07.180
Performance-Proofment einfach so gerade.

00:10:07.920 --> 00:10:08.860
Also, ja.

00:10:10.220 --> 00:10:10.720
Genau.

00:10:12.080 --> 00:10:13.220
Ja, dann

00:10:13.220 --> 00:10:15.260
oh, HTMLX 2.0

00:10:15.260 --> 00:10:17.280
ist erschienen. Auch ganz interessant.

00:10:17.420 --> 00:10:19.140
Da hat sich auch nichts geändert, sondern das ist

00:10:19.140 --> 00:10:20.980
einfach nur hochgezählt.

00:10:21.700 --> 00:10:23.420
Und gut, es sind ein paar Sachen entfernt worden.

00:10:24.160 --> 00:10:25.380
Also ein paar Extensions.

00:10:25.980 --> 00:10:27.240
Die Websockers-Extension

00:10:27.240 --> 00:10:29.120
ist nicht mehr drin. Oder ein paar Dinger.

00:10:30.700 --> 00:10:31.140
Genau.

00:10:31.520 --> 00:10:32.340
Ja.

00:10:33.100 --> 00:10:34.040
Du benutzt es immer noch so gern?

00:10:34.360 --> 00:10:35.540
Ich benutze es immer noch super gern.

00:10:35.620 --> 00:10:35.860
Ich auch.

00:10:35.860 --> 00:10:42.000
Ich habe es auch jetzt letztens wieder in einem Projekt gehabt und das war echt total super.

00:10:43.020 --> 00:10:44.740
Wie würdest du denn einen Chat umsetzen?

00:10:46.360 --> 00:10:49.460
Ja gut, okay, Chat, da muss man dann drüber nachdenken.

00:10:49.860 --> 00:10:51.820
Vielleicht ist es da besser, dann was anderes zu nehmen.

00:10:52.240 --> 00:10:52.380
Ja.

00:10:52.900 --> 00:10:53.680
Könnte schon sein.

00:10:53.800 --> 00:10:54.720
Ich meine, man kann es bauen.

00:10:55.140 --> 00:10:59.220
Man kann, aber ob das so viel Spaß macht, weil da ist ja manchmal vielleicht Echtzeit dann tatsächlich,

00:10:59.220 --> 00:11:29.200
und Jochen unterhalten sich über die Programmiersprache Python

00:11:29.220 --> 00:11:59.200
und Jochen unterhalten sich über die Programmiersprache Python

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

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

00:12:03.960 --> 00:12:04.320
Ja.

00:12:05.000 --> 00:12:06.740
Und das ist mit Chat mit dem Server?

00:12:07.700 --> 00:12:08.800
Chat mit dem Server?

00:12:09.720 --> 00:12:10.960
Also keine Ahnung, du schießt mit dem Server

00:12:10.960 --> 00:12:12.200
eine Frage und nicht einem anderen

00:12:12.200 --> 00:12:13.280
Menschen.

00:12:14.780 --> 00:12:16.940
Ja, da brauchst du es nicht. Achso, du meinst jetzt sowas wie

00:12:16.940 --> 00:12:19.040
Chat-GPT, wenn man das implementieren wollte.

00:12:19.460 --> 00:12:20.240
Genau, da brauchst du es nicht.

00:12:20.800 --> 00:12:22.400
Das geht Request-Response super.

00:12:22.640 --> 00:12:23.580
Dann wartest du einfach drauf.

00:12:24.900 --> 00:12:26.660
Ja, also du kannst halt dann,

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

00:12:29.220 --> 00:12:32.260
aber da brauchst du keine

00:12:32.260 --> 00:12:32.840
stehende Verbindung.

00:12:33.400 --> 00:12:34.360
So gejankt jetzt, oder?

00:12:35.620 --> 00:12:36.600
Ja, du kannst einfach

00:12:36.600 --> 00:12:40.160
das anzeigen,

00:12:40.600 --> 00:12:41.220
das geht.

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

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

00:12:47.620 --> 00:12:48.440
Dafür braucht man

00:12:48.440 --> 00:12:49.780
keine

00:12:50.900 --> 00:12:52.760
direktionale Verbindung,

00:12:52.840 --> 00:12:53.600
keine stehende Verbindung.

00:12:55.100 --> 00:12:55.780
Okay, dann

00:12:55.780 --> 00:12:57.080
5.1?

00:12:57.080 --> 00:12:59.300
Django 5.1 Alpha erschienen.

00:12:59.420 --> 00:13:00.140
Genau, ich weiß nicht,

00:13:01.640 --> 00:13:03.440
ob hier irgendjemand genau die Liste

00:13:03.440 --> 00:13:05.280
der Neuigkeiten und so

00:13:05.280 --> 00:13:07.380
mit dabei hat. Also ich meine, es dauert auch noch

00:13:07.380 --> 00:13:09.440
ein Momentchen, bis das erscheint, aber...

00:13:09.440 --> 00:13:11.040
Ist das die erste Alpha? Ja.

00:13:12.480 --> 00:13:13.940
Also was ich hier schon sehe...

00:13:13.940 --> 00:13:15.340
Ah, Query String, super. Das habe ich

00:13:15.340 --> 00:13:16.720
hier halt schon ein paar Mal selber gebaut.

00:13:17.280 --> 00:13:18.380
Warum gibt es das denn nicht?

00:13:19.200 --> 00:13:21.280
Also das Problem ist, wenn man

00:13:21.280 --> 00:13:22.380
quasi

00:13:22.380 --> 00:13:24.560
ein paar

00:13:24.560 --> 00:13:27.500
Dinge hinzufügen will zu einem Query-String,

00:13:27.580 --> 00:13:29.380
zum Beispiel, wenn man irgendeinen Filter angeschaltet hat oder so,

00:13:30.080 --> 00:13:31.680
dann ist halt die Frage,

00:13:31.820 --> 00:13:33.340
okay, aber da sind ja jetzt möglicherweise

00:13:33.340 --> 00:13:35.360
schon Sachen gesetzt und dann muss man das irgendwie,

00:13:35.940 --> 00:13:37.960
ja, wie updatet man das hin?

00:13:38.180 --> 00:13:39.640
Und da gibt es jetzt ein Template-Tag

00:13:39.640 --> 00:13:41.420
für, wo man halt einfach

00:13:41.420 --> 00:13:43.760
den Query-String kriegt und das ist natürlich praktisch.

00:13:44.220 --> 00:13:44.320
Genau.

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

00:13:47.440 --> 00:13:49.220
Nicht die großen Game-Changer, die sind jetzt eher

00:13:49.220 --> 00:13:50.720
dann für 5.2, glaube ich, geplant.

00:13:51.140 --> 00:13:51.660
Später mehr.

00:13:51.660 --> 00:13:58.300
von eher Kleinigkeiten, die einem einfach helfen, besser und angenehmer zu arbeiten.

00:13:59.660 --> 00:14:00.660
Ja, es gibt

00:14:00.660 --> 00:14:05.300
Connection Pool Support für Postgres, was auch praktisch ist.

00:14:05.760 --> 00:14:09.820
Also ich meine, ehrlich gesagt, für meine Sachen ist es nicht so, also da komme ich sowieso nie so

00:14:09.820 --> 00:14:13.680
an die Grenzen, dass ich da wirklich ein Pool lieber hätte oder so, sondern

00:14:13.680 --> 00:14:17.620
das ist alles egal. Aber wenn man das Problem hat, dann ist es natürlich doof,

00:14:17.620 --> 00:14:19.260
wenn man da irgendwie was anderes tun muss.

00:14:21.660 --> 00:14:23.840
Ja, ja, ja, ja, ja.

00:14:25.980 --> 00:14:27.900
Middleware to require authentication by default.

00:14:27.980 --> 00:14:28.680
Keine Ahnung, was das ist.

00:14:29.620 --> 00:14:31.280
Aber ich würde sagen, über die ganzen Neuigkeiten bei Dango,

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

00:14:33.500 --> 00:14:34.900
weil der von Dango konnte wahrscheinlich mehr erzählen,

00:14:34.940 --> 00:14:36.000
als er aus dem 5.1.

00:14:36.340 --> 00:14:39.660
Ich glaube, das ist so wahnsinnig...

00:14:40.580 --> 00:14:41.180
Ja, genau.

00:14:41.360 --> 00:14:42.520
Ist auch nichts Weltbewegendes mehr.

00:14:43.020 --> 00:14:45.400
Alles klar, dann haben wir nur ein Event, das das gibt.

00:14:46.620 --> 00:14:48.580
Dann sind wir vielleicht mit der News heute schon ein bisschen durch,

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

00:14:51.340 --> 00:14:52.120
Nicht von meiner Seite.

00:14:52.940 --> 00:14:53.500
Okay, gut.

00:14:54.280 --> 00:14:56.340
Dann erzähl doch mal von der DjangoCon, lieber Ronny.

00:14:57.320 --> 00:14:58.400
Also ich hab ja, du, also erstmal,

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

00:15:00.480 --> 00:15:02.400
was gesagt, glaube ich sogar, ne? Genau.

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

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

00:15:06.480 --> 00:15:08.520
Ja, genau. Also wie gesagt,

00:15:08.600 --> 00:15:10.740
ich heiße Ronny, ich arbeite

00:15:10.740 --> 00:15:12.320
seit 2012

00:15:12.320 --> 00:15:14.440
mit Django. Ich hab damals mit

00:15:14.440 --> 00:15:16.020
1.4 angefangen, was

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

00:15:18.880 --> 00:15:20.440
Damals hatten wir auch noch ein anderes Versionsgeschäft

00:15:20.800 --> 00:15:50.780
und Jochen unterhalten sich über die Programmiersprache Python

00:15:50.800 --> 00:15:52.820
zu halten. Das habe ich dieses Mal das erste Mal

00:15:52.820 --> 00:15:54.260
gemacht. Das ist das erste Mal auf einer

00:15:54.260 --> 00:15:56.620
echten Konferenzstage. Ich war

00:15:56.620 --> 00:15:58.820
man könnte vielleicht sagen zum

00:15:58.820 --> 00:16:00.440
Warmlaufen letztes Jahr bei dem

00:16:00.440 --> 00:16:02.820
Django Day in Kopenhagen. Das war sehr cool.

00:16:02.920 --> 00:16:04.760
Das ist so eine Mini-Konferenz. Das ist so ein

00:16:04.760 --> 00:16:06.760
Raum für so 60 bis 70 Leute, würde

00:16:06.760 --> 00:16:08.760
ich sagen. Und das ist nur ein

00:16:08.760 --> 00:16:10.820
Tag. Und das war sehr nett,

00:16:10.940 --> 00:16:12.360
sehr familiär. Und

00:16:12.360 --> 00:16:14.700
das war so das erste Mal, dass ich irgendwie

00:16:14.700 --> 00:16:16.680
vor, naja, literally laufender Kamera

00:16:16.680 --> 00:16:18.800
das gemacht habe. Das stimmt überhaupt nicht. Wir haben nicht schon ganz oft

00:16:18.800 --> 00:16:20.660
live was erzählen hören. Ja, aber das

00:16:20.660 --> 00:16:50.640
und Jochen unterhalten sich über die Programmiersprache Python

00:16:50.660 --> 00:16:52.580
für Django gemacht habe. Das nennt sich

00:16:52.580 --> 00:16:53.580
Django Pony Express.

00:16:55.040 --> 00:16:56.480
Das löst im Endeffekt

00:16:56.480 --> 00:16:57.900
das Problem, wer schon mal mit Django,

00:16:58.260 --> 00:17:00.360
wir machen meistens, so von

00:17:00.360 --> 00:17:03.120
meinem Job her, machen meistens Business-Applikationen

00:17:03.120 --> 00:17:04.720
und meistens baut man da relativ

00:17:04.720 --> 00:17:05.520
viele E-Mails.

00:17:06.500 --> 00:17:08.520
Und E-Mails mit Django zu bauen,

00:17:08.580 --> 00:17:10.660
das geht alles, das funktioniert auch technisch alles sauber,

00:17:10.780 --> 00:17:12.720
nur die, ich mag diesen Begriff

00:17:12.720 --> 00:17:14.620
sehr, die Developer Experience ist nicht

00:17:14.620 --> 00:17:16.640
so richtig gut, weil man da relativ viel

00:17:16.640 --> 00:17:18.680
Low-Level-Sachen machen muss, vor allem wenn man jetzt

00:17:18.680 --> 00:17:20.540
nicht nur irgendeine E-Mail rausschicken möchte,

00:17:20.540 --> 00:17:50.520
und Jochen unterhalten sich über die Programmiersprache Python

00:17:50.540 --> 00:17:53.180
und HTML-Templates

00:17:53.180 --> 00:17:54.600
oder Inhalte hatten,

00:17:54.720 --> 00:17:56.440
Plaintext-Part-Inhalte, Übersetzungen,

00:17:56.680 --> 00:17:58.660
bestimmte Header, bestimmte Variablen,

00:17:58.740 --> 00:18:00.020
die für das Base-Template benötigt werden,

00:18:00.360 --> 00:18:02.800
dass ich da nicht jedes Mal so riesige Funktionen hin und her kopiere,

00:18:02.900 --> 00:18:04.800
sondern im Endeffekt wirklich nur drei oder vier Zeile

00:18:04.800 --> 00:18:06.340
habe und die restlichen Sachen

00:18:06.340 --> 00:18:07.960
an einer sinnvollen Stelle gekapselt sind.

00:18:08.880 --> 00:18:10.560
Und ein zweites großes Problem, was mich

00:18:10.560 --> 00:18:12.520
auch persönlich immer sehr gestört hat, ist,

00:18:13.080 --> 00:18:14.780
dass E-Mails, weil die ja irgendwie so ein bisschen

00:18:14.780 --> 00:18:16.240
eine externe API sind,

00:18:16.700 --> 00:18:18.660
weil man schickt die irgendwie raus

00:18:18.660 --> 00:18:21.400
und die kommen dann quasi vielleicht wieder bei mir an, wenn ich es mir selber schicke,

00:18:22.280 --> 00:18:24.560
dass wir die nicht so richtig getestet haben,

00:18:24.640 --> 00:18:27.440
weil es einfach auch mühsam ist und das Django-Test-Framework

00:18:27.440 --> 00:18:30.280
bringt einem da so ein paar Tools mit, aber die sind alle so ein bisschen versteckt

00:18:30.280 --> 00:18:33.720
und da habe ich dann so einen Wrapper gebaut,

00:18:33.920 --> 00:18:36.340
der auch so ein bisschen, dass man diese E-Mail-Outbox,

00:18:37.140 --> 00:18:39.880
wenn man E-Mails in einem Test verschickt, dann landen die in so einer Liste,

00:18:40.140 --> 00:18:42.500
in einer Outbox, werden die gesammelt, dass die nicht aus Versehen rausgeschickt werden

00:18:42.500 --> 00:18:45.300
an irgendwen und dass man auf diese Liste so ein bisschen wie

00:18:45.300 --> 00:18:48.400
in einem Query-Set zugreifen kann, dass man kann nach Subject,

00:18:48.400 --> 00:18:50.460
nach Inhalt filtern, man kann gewisse Assertions

00:18:50.460 --> 00:18:52.200
machen, ob zum Beispiel in beiden

00:18:52.200 --> 00:18:54.580
Content Parts, es gibt ja

00:18:54.580 --> 00:18:55.960
mehr als nur HTML und Plaintext,

00:18:56.500 --> 00:18:58.320
ob in den Context Parts da bestimmte Dinge

00:18:58.320 --> 00:18:59.180
drin sind und so weiter.

00:19:00.620 --> 00:19:02.340
Da habe ich einen Vortrag drüber gehalten,

00:19:02.500 --> 00:19:04.640
das hat

00:19:04.640 --> 00:19:06.240
sehr viel Spaß gemacht, ich war sehr nervös.

00:19:06.460 --> 00:19:07.440
Ich kann sagen, du warst ja aufgeregt.

00:19:07.900 --> 00:19:10.380
Ich war sehr aufgeregt, aber es hat sehr viel

00:19:10.380 --> 00:19:12.260
Spaß gemacht tatsächlich. Ich war

00:19:12.260 --> 00:19:14.440
unendlich viel schneller als bei den

00:19:14.440 --> 00:19:16.360
Malen, wo ich geübt habe. Das ist glaube ich so eine Sache,

00:19:16.360 --> 00:19:17.900
das ist man immer, aber ich war wirklich schnell.

00:19:18.400 --> 00:19:20.620
Ich glaube, ich habe auf 21 Minuten Testzeit

00:19:20.620 --> 00:19:22.480
16 Minuten Vortragszeit gehabt.

00:19:22.500 --> 00:19:23.360
Ach, du hast wahrscheinlich geredet wie ich.

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

00:19:26.540 --> 00:19:27.540
Zeit zu lassen, aber

00:19:27.540 --> 00:19:30.340
ja, hat so mittelgut funktioniert.

00:19:31.480 --> 00:19:32.440
Nichtsdestotrotz auch viel

00:19:32.440 --> 00:19:33.960
positives Feedback bekommen und

00:19:33.960 --> 00:19:36.100
ist auch tatsächlich nochmal eine ganz andere

00:19:36.100 --> 00:19:38.740
Art, auf so einer Konferenz

00:19:38.740 --> 00:19:40.160
zu sein. Das war jetzt, glaube ich,

00:19:40.180 --> 00:19:41.920
meine fünfte oder sechste DjangoCon

00:19:41.920 --> 00:19:43.880
mit ein paar, ich glaube fünfte,

00:19:44.280 --> 00:19:46.140
mit zwei Remote wegen Corona

00:19:46.140 --> 00:19:53.760
und das ist echt nochmal ein ganz anderes Gefühl. Also ich finde generell, kann ich das jedem nur ans Herz legen, wer es noch nicht gemacht hat, geht mal auf eine Konferenz.

00:19:54.600 --> 00:20:01.700
Auf meiner allerersten DjangoCon habe ich halt Uni-Styler erwartet, da steht irgendwer und erzählt was Langweiliges und dachte, ich gehe eigentlich wegen den Leuten dahin.

00:20:01.860 --> 00:20:10.880
Tatsächlich gehe ich auch gerne wegen den Leuten dahin, jetzt wo ich auch viele kenne, aber die Vorträge sind auch wirklich gut und wenn man denkt, dass das halt auch alles auf einem kleinen Budget läuft,

00:20:10.880 --> 00:20:40.860
und Jochen unterhalten sich über die Programmiersprache Python

00:20:40.880 --> 00:20:42.460
Harnson Proposal. Ah ja, genau.

00:20:42.640 --> 00:20:44.680
Dieses DEP, ich glaube, 14 oder sowas.

00:20:44.920 --> 00:20:46.440
Die sind auch irgendwie in letzter Zeit erst wieder

00:20:46.440 --> 00:20:47.900
entdeckt worden.

00:20:48.540 --> 00:20:50.180
Ich glaube, dass es die gibt und die werden jetzt auch

00:20:50.180 --> 00:20:52.440
wieder recht populär. Ich glaube auch

00:20:52.440 --> 00:20:54.300
mit den neuen Fellows, Sarah und Natalia.

00:20:55.420 --> 00:20:56.540
Und diese Background Worker

00:20:56.540 --> 00:20:58.600
ist im Endeffekt eine Idee, dass man,

00:20:58.660 --> 00:21:00.640
wenn man in einem Django-Projekt asynchrone

00:21:00.640 --> 00:21:02.680
Ich glaube, da müssen wir

00:21:02.680 --> 00:21:04.420
gleich noch ein bisschen genauer drauf eingehen, vielleicht so als

00:21:04.420 --> 00:21:06.360
extra Thema, weil da haben wir vielleicht noch

00:21:06.360 --> 00:21:08.560
zwei coole Links zu. Deswegen erzähl

00:21:08.560 --> 00:21:10.500
gerne noch ein bisschen mehr zu deinem Talk über E-Mails.

00:21:10.500 --> 00:21:11.540
auf die Backend.

00:21:11.540 --> 00:21:12.020
Okay.

00:21:13.880 --> 00:21:14.740
Ja, genau.

00:21:15.020 --> 00:21:17.540
Also die...

00:21:17.540 --> 00:21:18.840
Ja, was habe ich denn?

00:21:19.120 --> 00:21:20.340
Was kann ich dazu noch sagen?

00:21:21.140 --> 00:21:23.220
Irgendwie, war das

00:21:23.220 --> 00:21:25.540
nicht auch irgendwas, wo so ein Architektur-Design-Pattern

00:21:26.060 --> 00:21:27.580
irgendwie so ein bisschen eine Rolle spielte?

00:21:28.520 --> 00:21:29.000
Oder...

00:21:29.000 --> 00:21:30.480
Ne, vielleicht habe ich das auch einfach falsch.

00:21:31.220 --> 00:21:33.180
Einfach nur objektorientierte E-Mails quasi.

00:21:33.860 --> 00:21:35.200
Genau, und es ist halt

00:21:35.200 --> 00:21:37.300
einfach ein Wrapper um die relativ

00:21:37.300 --> 00:21:39.280
low-level-Api, wenn man halt

00:21:39.280 --> 00:21:41.460
wie gesagt, ein bisschen

00:21:41.460 --> 00:21:42.960
aufwendigere E-Mails bauen möchte.

00:21:43.020 --> 00:21:44.660
Das war Sendmail mit ein bisschen Fluff.

00:21:45.060 --> 00:21:45.340
Genau.

00:21:47.080 --> 00:21:49.220
Bei Sendmail selbst, das erstellt ein

00:21:49.220 --> 00:21:51.560
Python E-Mail Objekt, glaube ich.

00:21:51.660 --> 00:21:53.620
Es gibt auch gerade eine große Diskussion

00:21:53.620 --> 00:21:55.060
bei Python, dass scheinbar etwas

00:21:55.060 --> 00:21:57.580
deprecated wurde in der letzten Version

00:21:57.580 --> 00:21:59.420
und Django noch auf den alten Sachen.

00:21:59.460 --> 00:22:01.520
Ich glaube, es ist nicht deprecated, dabei gibt es etwas Neueres,

00:22:01.600 --> 00:22:03.580
Cooleres und die Django-Sachen

00:22:03.580 --> 00:22:05.360
unter der Haube benutzen auch die alten

00:22:05.360 --> 00:22:07.380
und dann ist gerade viel in Bewegung bezüglich

00:22:07.380 --> 00:22:08.980
E-Mails. Interessanterweise, ich bin da

00:22:08.980 --> 00:22:11.460
ganz aus Versehen auf diesen Zug aufgesprungen.

00:22:15.420 --> 00:22:16.920
Das ist direkt eine blöde

00:22:16.920 --> 00:22:19.020
Anwendungsfrage. Wie verschickt ihr denn E-Mails?

00:22:20.340 --> 00:22:21.300
Also tatsächlich,

00:22:21.380 --> 00:22:22.900
das ist auch eine Frage, die ich

00:22:22.900 --> 00:22:24.880
jedes Mal gestellt habe, wenn ich diesen Vortrag, ich muss

00:22:24.880 --> 00:22:27.080
gestehen, ich habe den an mehreren Occasions recycelt.

00:22:28.820 --> 00:22:29.320
Das ist

00:22:29.320 --> 00:22:30.240
eine Frage, die sehr oft kommt.

00:22:30.840 --> 00:22:32.840
Bei mir geht es wirklich im Endeffekt

00:22:32.840 --> 00:22:34.980
nur um die Developer Experience und um

00:22:34.980 --> 00:22:36.620
die Maintainability. Also sprich,

00:22:36.620 --> 00:22:44.480
wie erstelle ich programmatisch diese E-Mail, wie stelle ich sicher, dass da alles drin ist und wie kann ich das nachher testen.

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

00:22:49.800 --> 00:22:51.020
Also da hört es quasi auf.

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

00:22:54.580 --> 00:22:59.100
und danach kann man halt dann die E-Mail so verschicken, wie man sie halt mit Django sonst verschicken möchte.

00:22:59.200 --> 00:23:03.440
Also ob man da jetzt einen Mailhawk reinhängt oder irgendein super abgefahrenes E-Mailing-Cluster hat

00:23:03.440 --> 00:23:05.440
oder seine eigene Gmail-Adresse dafür nutzt

00:23:05.440 --> 00:23:07.220
oder einfach das bei

00:23:07.220 --> 00:23:08.840
SES reinwirft.

00:23:09.360 --> 00:23:11.340
Das ist nichts, was mein Package versucht

00:23:11.340 --> 00:23:12.420
zu lösen. Wie macht ihr das?

00:23:13.240 --> 00:23:14.540
Wir selbst nutzen SES.

00:23:15.360 --> 00:23:16.640
Das ist von Amazon.

00:23:17.020 --> 00:23:18.380
Ich glaube, das gibt es aber auch in,

00:23:18.900 --> 00:23:20.860
das ist ein Standard sogar, ich bin nicht ganz sicher.

00:23:21.000 --> 00:23:22.560
Ich glaube, Amazon hat ja viele von diesen Standards definiert.

00:23:24.140 --> 00:23:25.360
Und das ist ein Service,

00:23:25.460 --> 00:23:27.300
der ist halt sehr günstig und sehr

00:23:27.300 --> 00:23:29.280
leistungsfähig. Ich habe für

00:23:29.280 --> 00:23:31.020
ein Privatprojekt, ich

00:23:31.020 --> 00:23:33.120
engagiere mich da für Kinder

00:23:33.120 --> 00:23:41.180
in Bolivien, haben wir früher unseren Spendern und Interessenten so einen Jahresbericht per PDF geschickt,

00:23:41.260 --> 00:23:47.420
das damals noch, bevor wir HTML-E-Mails hatten. Und diese PDFs waren immer so mit den Bildern,

00:23:47.520 --> 00:23:52.380
auch wenn man die runtergerechnet hat, waren immer so 500, 800 Kilo beide, das ist schon relativ groß für eine E-Mail.

00:23:52.960 --> 00:23:57.860
Und unsere alten Mail-Server sind regelmäßig da irgendwie abgekackt hängen geblieben, mühsam.

00:23:57.860 --> 00:24:02.880
Dann habe ich irgendwann auf SCS umgestellt, alle E-Mails zu versenden kostet dann vielleicht einen Euro oder zwei.

00:24:02.880 --> 00:24:05.720
und das läuft halt einfach.

00:24:06.060 --> 00:24:08.100
Also du kannst dir eine beliebige Menge von E-Mails geben

00:24:08.100 --> 00:24:09.140
und die kommen halt an.

00:24:10.000 --> 00:24:11.220
Das ist halt sehr, sehr angenehm.

00:24:13.200 --> 00:24:13.560
Genau.

00:24:14.100 --> 00:24:15.760
Ja, und tatsächlich eine Sache kann ich dazu sagen,

00:24:15.820 --> 00:24:16.720
was mich auch sehr gefreut hat.

00:24:16.820 --> 00:24:19.160
Ich habe ja, wie gesagt, für den Vortrag auf der Core

00:24:19.160 --> 00:24:20.120
ein gutes Feedback bekommen,

00:24:20.200 --> 00:24:21.420
habe mich dann mit ein paar Leuten unterhalten

00:24:21.420 --> 00:24:23.280
und habe ja noch ein paar Tipps bekommen,

00:24:23.360 --> 00:24:26.960
weil ich halt in der Conclusion auch überlegt habe,

00:24:27.020 --> 00:24:27.820
dass da Sachen drin sind,

00:24:27.900 --> 00:24:29.840
die meiner Meinung nach auch gut in Django Core,

00:24:30.100 --> 00:24:31.680
also in das Framework passen würden

00:24:31.680 --> 00:24:35.960
und dass wir dort, dass ich mich freuen würde, halt was zu contributen, aber ich

00:24:35.960 --> 00:24:39.820
habe bis jetzt halt noch nicht so die richtigen Sachen, das hat nie richtig

00:24:39.820 --> 00:24:42.660
funktioniert, habe ich ein paar Tipps bekommen, wie ich das mache. Es gibt

00:24:42.660 --> 00:24:46.280
nämlich ein Django-Forum, das wird es auch gerade noch ein bisschen, die

00:24:46.280 --> 00:24:58.085
versuchen gerade so ein bisschen die Kommunikation da auch drin zu transitalisieren und da dann einfach meine Idee also mit etwas kleinem Anfang zum Beispiel dieser Testing Helper dass man halt quasi durch einen also dass man alle

00:24:58.085 --> 00:25:01.065
textbasierten Medieninhalte

00:25:01.065 --> 00:25:02.645
einer E-Mail, also in den meisten Fällen HTML

00:25:02.645 --> 00:25:04.765
und Plaintext, wirklich einfach

00:25:04.765 --> 00:25:07.105
gucken kann, ist dieser String da drin, also zum Beispiel

00:25:07.105 --> 00:25:08.645
weiß ich nicht,

00:25:08.785 --> 00:25:10.685
steht da drin, lieber Jochen als

00:25:10.685 --> 00:25:12.865
Anrede oder steht da drin Auftragsbestätigung

00:25:12.865 --> 00:25:14.685
oder ist da diese Auftragsnummer drin, solche

00:25:14.685 --> 00:25:16.625
Geschichten und diesen Helper haben wir

00:25:16.625 --> 00:25:19.685
dann in einem Forumsfeld ausdiskutiert.

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

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

00:25:23.565 --> 00:25:25.585
alleine überlegt hatte. Es war viel

00:25:25.585 --> 00:25:27.525
weniger zu implementieren, lustigerweise auch.

00:25:28.105 --> 00:25:29.765
Was mal Leiner gemacht hat,

00:25:29.805 --> 00:25:30.765
es gibt diesen schönen Spruch,

00:25:31.845 --> 00:25:33.565
Weeks of Programming can save hours of

00:25:33.565 --> 00:25:34.945
Planning. Das war wieder sehr wahr.

00:25:36.225 --> 00:25:37.205
Und genau, dann

00:25:37.205 --> 00:25:39.505
ist vor zwei Wochen, glaube ich,

00:25:39.585 --> 00:25:41.585
dann das auch gemerged

00:25:41.585 --> 00:25:43.565
worden in Django Core. Also in 5.2

00:25:43.565 --> 00:25:45.625
habe ich meinen ersten Commit, was mich sehr freut.

00:25:45.625 --> 00:25:46.765
jetzt nach zwölf Jahren.

00:25:47.825 --> 00:25:49.025
Cool. Vielen Dank.

00:25:50.665 --> 00:25:50.965
Genau.

00:25:52.185 --> 00:25:53.245
Ja, das klingt cool.

00:25:53.645 --> 00:25:55.565
Ich muss es eigentlich auch mal ausprobieren. Ich hatte das zwischendurch

00:25:55.565 --> 00:25:57.585
mal so angeguckt, aber nicht dann angefasst, weil

00:25:57.585 --> 00:25:59.605
die E-Mail-Lösung bei mir war schon fertig

00:25:59.605 --> 00:26:00.585
und ich hätte hier alles rüber müssen.

00:26:01.425 --> 00:26:02.085
Ja, ich kenne das.

00:26:02.865 --> 00:26:05.745
Aber eigentlich, für das Template wäre es eigentlich cool, das drin zu haben,

00:26:05.825 --> 00:26:07.445
weil das klingt danach, als müsste man das

00:26:07.445 --> 00:26:09.045
an verschiedenen Stellen schön benutzen können.

00:26:09.445 --> 00:26:11.565
Weil halt auch, wie du gesagt hast, diese ganzen Features,

00:26:12.325 --> 00:26:13.225
Templates per

00:26:13.585 --> 00:26:14.425
HTML und so weiter,

00:26:14.425 --> 00:26:15.685
sehr gerne genutzt werden.

00:26:15.705 --> 00:26:18.445
Tatsächlich ein Feature, was ich persönlich sehr mag,

00:26:19.405 --> 00:26:21.085
einfach so ein Convenience-Feature,

00:26:21.825 --> 00:26:22.965
de facto interessiert

00:26:22.965 --> 00:26:25.145
die wenigsten Leute wirklich der Plaintext-Part,

00:26:25.205 --> 00:26:26.985
weil die normalen, die modernen E-Mail-Clients

00:26:26.985 --> 00:26:28.285
oder die Web-basierten Clients

00:26:28.285 --> 00:26:30.685
den eh nicht anzeigen. Das heißt, die einzigen

00:26:30.685 --> 00:26:32.465
Arten, wo man das sieht, ist, wenn man

00:26:32.465 --> 00:26:34.805
so ein E-Mail-Client hat, dann geht so ein Pop-up auf,

00:26:34.865 --> 00:26:36.485
das nimmt meistens den Plaintext-Part

00:26:36.485 --> 00:26:38.565
oder wenn halt irgendjemand auf seinem

00:26:38.565 --> 00:26:40.205
Linux-1980

00:26:40.205 --> 00:26:42.725
konsolenbasierten E-Mail-Programm noch

00:26:42.725 --> 00:26:45.245
und Sitz. Da gibt es auch so ein paar Spezies, die das machen.

00:26:45.645 --> 00:26:46.645
Aber ansonsten sieht es halt niemand.

00:26:47.245 --> 00:26:49.045
Und ich habe mir mit einem externen

00:26:49.045 --> 00:26:51.065
Package, als Default

00:26:51.065 --> 00:26:52.785
rendert der einfach das HTML-Template

00:26:52.785 --> 00:26:55.005
als Plaintext und tauscht dann halt die Tabellen

00:26:55.005 --> 00:26:57.005
durch Pipes und sowas. Die Struktur ist nicht

00:26:57.005 --> 00:26:58.865
schön, es funktioniert. Auch Links und sowas

00:26:58.865 --> 00:27:00.925
kriegt der hin. Also das kriegt dann

00:27:00.925 --> 00:27:02.125
quasi wieder der

00:27:02.125 --> 00:27:04.965
Client dann hin, der das

00:27:04.965 --> 00:27:06.645
dann auch trotzdem auf Plaintext

00:27:06.645 --> 00:27:08.845
meistens zumindest dann wieder irgendwie

00:27:08.845 --> 00:27:11.025
interpretiert. Und das ist sehr angenehm,

00:27:11.025 --> 00:27:12.885
weil dann hat man keine doppelten Templates mehr und das ist

00:27:12.885 --> 00:27:15.085
natürlich schon ein Problem, dass man durch diese doppelten Inhalte

00:27:15.085 --> 00:27:17.045
wie zum Beispiel bei uns in einem Projekt, wo wir gearbeitet

00:27:17.045 --> 00:27:18.845
haben, hatten wir bestimmt 50

00:27:18.845 --> 00:27:20.965
verschiedene E-Mails, alles mögliche,

00:27:21.025 --> 00:27:22.565
um halt den Kunden zu informieren, was so mit

00:27:22.565 --> 00:27:24.065
seinen Dingen passiert ist.

00:27:24.785 --> 00:27:26.865
Und da wurde ständig vergessen, eine von beiden

00:27:26.865 --> 00:27:29.025
Teilen anzupassen. Das kann man natürlich in gewissen Maßen

00:27:29.025 --> 00:27:30.345
durch diesen Testhelper

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

00:27:33.025 --> 00:27:34.905
Nichtsdestotrotz, wenn es ein Rechtschreibfehler oder sowas ist, hat man

00:27:34.905 --> 00:27:36.845
vielleicht darauf gerade nicht geschaut. Das war

00:27:36.845 --> 00:27:38.925
ein ständiger Pain und das

00:27:38.925 --> 00:27:40.645
kann man sehr gut damit halt einfach

00:27:40.645 --> 00:27:42.845
erschlagen und löst

00:27:42.845 --> 00:27:44.305
das Problem damit. Das ist sehr angenehm.

00:27:44.645 --> 00:27:46.925
Sehr gut. Und du hast

00:27:46.925 --> 00:27:48.225
gesagt, er macht auch sowas dann wie

00:27:48.225 --> 00:27:50.185
Opt-Outlinks oder

00:27:50.185 --> 00:27:52.805
E-Mail-Newsletter oder sowas dann direkt

00:27:52.805 --> 00:27:54.345
mit drin. Ist das da in einem Package drin?

00:27:54.805 --> 00:27:56.805
Also das Package nicht. Die Idee ist

00:27:56.805 --> 00:27:57.885
quasi, dass man, also diese,

00:27:58.485 --> 00:28:00.605
dass man, also ich biete quasi

00:28:00.605 --> 00:28:02.105
also das Package, nicht ich,

00:28:02.265 --> 00:28:04.765
nicht ich persönlich, biete so eine

00:28:04.765 --> 00:28:06.885
Basisklasse und wenn man von dieser Basisklasse

00:28:06.885 --> 00:28:08.705
erbt, dann kann man halt

00:28:08.705 --> 00:28:10.485
dann eine E-Mail definieren, kann ein paar Attribute setzen,

00:28:10.565 --> 00:28:11.745
zum Beispiel das Subject setzen,

00:28:13.025 --> 00:28:14.605
das Template setzen, gegebenenfalls noch

00:28:14.605 --> 00:28:16.665
Kontextvariable mitgeben, zum Beispiel den Auftrag

00:28:16.665 --> 00:28:18.245
oder den Link oder irgendwas, was halt

00:28:18.245 --> 00:28:20.005
der Inhalt der E-Mail ist.

00:28:20.805 --> 00:28:22.065
Jetzt hat man aber natürlich oft

00:28:22.065 --> 00:28:24.485
einfach so, also die E-Mails, die man

00:28:24.485 --> 00:28:26.045
schickt aus dem System, sollen ja irgendwie

00:28:26.045 --> 00:28:28.665
einheitlich sein. Du hast, wie auch

00:28:28.665 --> 00:28:30.525
bei der Webseite, hättest du ein Basis-Template.

00:28:30.765 --> 00:28:32.365
Du hast das Logo oben drin, du hast

00:28:32.365 --> 00:28:34.445
vielleicht eine generelle Anrede, du hast ein

00:28:34.445 --> 00:28:36.325
Footer, wo ein paar legale Sachen drinstehen, wo

00:28:36.325 --> 00:28:38.425
vielleicht ein Unsubscribe-Link drin ist und

00:28:38.425 --> 00:28:40.345
diese ganzen Sachen,

00:28:41.045 --> 00:28:42.785
die ganzen Informationen, die man dafür braucht,

00:28:42.845 --> 00:28:44.465
das sind auch die dynamischen Sachen, zum Beispiel

00:28:44.465 --> 00:28:46.685
wenn man sagt, der Unsubscribe-Link enthält ein Hash oder sowas,

00:28:46.745 --> 00:28:48.565
dass der Nutzer identifiziert werden kann,

00:28:48.625 --> 00:28:50.065
der das draufgeklickt hat und solche Geschichten.

00:28:50.725 --> 00:28:52.205
Wenn man da einfach von der

00:28:52.205 --> 00:28:54.425
meiner Pony Express Basisklasse

00:28:54.425 --> 00:28:55.905
ableitet, eine eigene Basisklasse macht,

00:28:56.345 --> 00:28:57.825
dort dann halt die zum Beispiel die

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

00:29:00.705 --> 00:29:01.605
überschreibt,

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

00:29:04.565 --> 00:29:06.285
Oder zum Beispiel, dass man Subject-Prefix hat.

00:29:06.285 --> 00:29:08.425
und ich persönlich finde, es sieht immer schön professionell aus,

00:29:08.705 --> 00:29:10.145
wenn alle E-Mails, die vom System kommen,

00:29:10.245 --> 00:29:12.245
halt irgendwie geprefixed sind oder zum Beispiel dann irgendwie

00:29:12.245 --> 00:29:13.805
meinwebshop.de

00:29:13.805 --> 00:29:16.105
minus und dann halt Account erstellt, Passwort

00:29:16.105 --> 00:29:18.205
reset und was auch immer. Und diese Sachen kann man

00:29:18.205 --> 00:29:19.985
einmal definieren und jede E-Mail, die man dann

00:29:19.985 --> 00:29:22.105
weiter erstellt, leitet dann halt von dieser eigenen

00:29:22.105 --> 00:29:23.445
Klasse ab. Und das,

00:29:23.645 --> 00:29:26.045
ich meine, das ist halt ganz normale Objektorientierung, das hat

00:29:26.045 --> 00:29:27.385
nichts mit dem Pony Express zu tun,

00:29:27.925 --> 00:29:30.065
aber das macht es sehr angenehm und führt

00:29:30.065 --> 00:29:32.605
auch dazu, dass die eigentlichen E-Mails, die ich

00:29:32.605 --> 00:29:33.685
am Schluss dann, wo ich dann auch die

00:29:33.685 --> 00:29:35.045
Ente

00:29:35.045 --> 00:29:36.705
implementieren muss,

00:29:37.285 --> 00:29:39.545
dass das wirklich dann meistens

00:29:39.545 --> 00:29:41.165
halt nur zwei oder drei Zeilen Code sind.

00:29:41.265 --> 00:29:42.685
Was es natürlich auch viele sehr angenehm macht,

00:29:43.265 --> 00:29:44.045
neue E-Mails

00:29:44.045 --> 00:29:46.165
hinzuzufügen.

00:29:46.945 --> 00:29:47.065
Genau.

00:29:48.945 --> 00:29:49.665
Cool, cool.

00:29:50.745 --> 00:29:53.285
Hast du da so White Label Templates dabei, die quasi gar nichts

00:29:53.285 --> 00:29:55.565
vorgeben, aber die es schon gibt, die man einfach benutzen kann?

00:29:55.605 --> 00:29:57.245
Also ich tatsächlich, wenn ich

00:29:57.245 --> 00:29:59.005
das mache, ich fange immer an mit einer

00:29:59.005 --> 00:30:01.205
Google-Suche nach Responsive E-Mail Template,

00:30:01.205 --> 00:30:03.665
da lande ich immer bei dem gleichen GitHub-Repo,

00:30:03.665 --> 00:30:33.645
und Jochen unterhalten sich über die Programmiersprache Python

00:30:33.665 --> 00:30:59.165
und Python-Browser. Vielleicht ist es auch einfach okay, wenn dann der eine, der halt noch den Explorer 11 nutzt, wenn das dann die Webseite halt nicht perfekt aussieht. 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 Test-Suite, ob ich die auseinanderziehen soll, weil es ja im Endeffekt die Test-Suite einen eigenständigen Nutzen hat, auch wenn ich keine Class-Based E-Mails verwende. Das ist einfach nur ein Django-Ding.

00:30:59.165 --> 00:31:01.445
und man soll ja Packages eigentlich immer

00:31:01.445 --> 00:31:03.285
so bauen, dass die nach Möglichkeit genommen

00:31:03.285 --> 00:31:05.605
ein Problem lösen, weil es dann einfacher zu verkaufen,

00:31:05.725 --> 00:31:06.765
einfacher zu verstehen ist.

00:31:07.625 --> 00:31:09.485
Von daher habe ich mich auch entschieden, dann da nicht noch

00:31:09.485 --> 00:31:10.725
weitere Dinge reinzubauen

00:31:10.725 --> 00:31:13.565
und auch persönlich, weil ich da halt auch nicht so

00:31:13.565 --> 00:31:14.485
die Pain-Points hatte.

00:31:16.645 --> 00:31:17.385
Also hast du eh schon

00:31:17.385 --> 00:31:19.645
immer Copy-Paste, musst es aber erst nicht bereitstellen mit den Packages.

00:31:19.945 --> 00:31:20.105
Genau.

00:31:22.605 --> 00:31:22.885
Ja.

00:31:23.845 --> 00:31:24.225
Klingt gut.

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

00:31:27.105 --> 00:31:29.065
Django Tasks, weil, wenn man ihm es verschicken

00:31:29.065 --> 00:31:30.825
möchte, möchte man das ja wahrscheinlich

00:31:30.825 --> 00:31:31.745
nicht sequenziell.

00:31:32.905 --> 00:31:34.085
Genau, nicht dem Main Thread.

00:31:34.745 --> 00:31:36.065
Und genau,

00:31:38.065 --> 00:31:39.085
da gibt es ein neues

00:31:39.085 --> 00:31:40.725
Konzept, wie gesagt, das nennt sich

00:31:40.725 --> 00:31:42.845
Background Workers, das lebt aktuell in einem Package

00:31:42.845 --> 00:31:44.685
namens Django-Tasks,

00:31:44.785 --> 00:31:46.785
da muss man aufpassen, es gibt ganz viele, die ähnlich klingen.

00:31:47.485 --> 00:31:48.565
Django-Background-Tasks,

00:31:48.625 --> 00:31:50.565
ja, Background-Tasks-Manager, ja.

00:31:51.125 --> 00:31:52.625
Genau, auf jeden Fall dieses Django-Tasks-Package,

00:31:52.645 --> 00:31:54.825
das ist von Jack Howard, der hat das jetzt relativ schnell

00:31:54.825 --> 00:31:57.025
zusammengenagelt, das ist echt erstaunlich.

00:31:57.105 --> 00:31:59.485
Der freut sich auf jeden Fall über

00:31:59.485 --> 00:32:01.845
dass du nicht Django Background hast

00:32:01.845 --> 00:32:03.565
Ja, ich merke schon

00:32:03.565 --> 00:32:04.445
ich google hier

00:32:04.445 --> 00:32:07.605
Der freut sich auf jeden Fall

00:32:07.605 --> 00:32:09.645
immer über Leute, die das ausprobieren, also wer von euch

00:32:09.645 --> 00:32:10.845
Interesse an Django hat

00:32:10.845 --> 00:32:13.605
möge das gerne anschauen, jetzt muss ich noch einen Satz

00:32:13.605 --> 00:32:14.545
sagen, was das überhaupt ist

00:32:14.545 --> 00:32:16.565
Genau, die

00:32:16.565 --> 00:32:19.525
also in den meisten Projekten

00:32:19.525 --> 00:32:21.305
wenn man irgendwas asynchron machen möchte

00:32:21.305 --> 00:32:22.445
da meine ich es gar nicht dieses

00:32:22.445 --> 00:32:25.125
relativ moderne Async, sondern einfach

00:32:25.125 --> 00:32:27.305
Ich möchte irgendwelche Prozesse nachgelagert machen, zum Beispiel

00:32:27.305 --> 00:32:28.465
irgendeine große Berechnung machen,

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

00:32:31.345 --> 00:32:33.125
schicken, weil ich möchte ja mit dem E-Mail,

00:32:33.465 --> 00:32:35.185
ich muss ja mit der externen API kommunizieren,

00:32:35.505 --> 00:32:37.405
um die E-Mail zu versenden, dann möchte ich ja im Optimalfall

00:32:37.405 --> 00:32:38.865
nicht meinen externen Thread blockieren,

00:32:39.285 --> 00:32:41.025
meinen Main Thread blockieren.

00:32:42.945 --> 00:32:43.125
Und

00:32:43.125 --> 00:32:45.425
genau, deshalb

00:32:45.425 --> 00:32:47.565
gibt es in jedem

00:32:47.565 --> 00:32:48.985
Projekt, in dem ich gearbeitet habe,

00:32:49.465 --> 00:32:51.385
irgendeine Art von asynchronen

00:32:51.385 --> 00:32:53.365
Processing, meistens in der Form von Celery.

00:32:53.365 --> 00:32:57.825
Das ist in der Python-Welt sehr bekannt, in der Django-Welt sehr gehasst und gefürchtet.

00:32:59.905 --> 00:33:01.965
Gibt es Django-Queue oder Queue-To?

00:33:02.805 --> 00:33:09.285
Das ist jetzt aufgekommen, das ist so eine leichtgewichtigere Alternative,

00:33:09.765 --> 00:33:14.485
weil das Hauptproblem ist, dass Celery erzwingt, dass man irgendeinen Broker dazwischen stellt,

00:33:14.605 --> 00:33:16.085
der als Message-Queue dient.

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

00:33:19.845 --> 00:33:22.325
oder der hat eine lokale Datei, in der er irgendwas reinschreiben kann

00:33:22.325 --> 00:33:23.845
und macht irgendeine SQLite noch extra auf.

00:33:25.225 --> 00:33:26.085
Okay, das weiß ich.

00:33:26.185 --> 00:33:27.825
Ja, aber ich glaube, man muss es nicht unbedingt.

00:33:27.965 --> 00:33:29.025
Also das ist üblich, ja.

00:33:29.425 --> 00:33:31.905
Und es ist auch, also ich habe das mehrfach

00:33:31.905 --> 00:33:32.985
schon gesucht und

00:33:32.985 --> 00:33:35.705
für die Result-Backends, also bei

00:33:35.705 --> 00:33:38.065
Celery, wenn quasi um die Ergebnisse zu speichern

00:33:38.065 --> 00:33:39.825
und das im Endeffekt so eine Art Log,

00:33:39.905 --> 00:33:42.065
was passiert ist, dafür geht

00:33:42.065 --> 00:33:43.745
das. Das ist relativ einfach, aber für

00:33:43.745 --> 00:33:45.925
den Broker selbst bin ich zumindest immer

00:33:45.925 --> 00:33:47.845
damit gescheitert. Ich war tatsächlich nie so

00:33:47.845 --> 00:33:49.905
viel investiert darin. Auf jeden Fall

00:33:49.905 --> 00:33:51.885
für die allermeisten Cases ist es halt einfach

00:33:51.885 --> 00:33:53.805
harter Overkill, wenn man da halt irgendeine Postgres oder

00:33:53.805 --> 00:33:55.625
MariaDB hat. Die kann in den,

00:33:55.805 --> 00:33:57.745
zum Beispiel bei uns in den meisten Fällen, kann die paar

00:33:57.745 --> 00:33:59.585
hundert Tasks, die am Tag laufen,

00:34:00.105 --> 00:34:01.925
problemlos abfrühstücken,

00:34:02.025 --> 00:34:03.825
ohne dass sie da irgendwie in Verlegenheiten kommen.

00:34:03.925 --> 00:34:05.445
Selbst bei ein paar tausend Tasks ist es immer noch

00:34:05.445 --> 00:34:07.805
kein Problem. Vor allem, wenn man dann vielleicht

00:34:07.805 --> 00:34:09.465
auch sagt, dass

00:34:09.465 --> 00:34:11.585
der große Task vielleicht auch eher

00:34:11.585 --> 00:34:13.445
nachts läuft für irgendwelche Sachen,

00:34:13.845 --> 00:34:15.505
da ich auch keine Userlast habe.

00:34:16.225 --> 00:34:17.765
Und das wird allgemein sehr

00:34:17.765 --> 00:34:19.805
stark als Overkill angesehen dazu, wie Dominik

00:34:19.805 --> 00:34:21.585
gerade schon gesagt hat, viele Leute fürchten auf

00:34:21.585 --> 00:34:23.685
Celery aus verschiedenen

00:34:23.685 --> 00:34:24.145
Gründen.

00:34:24.965 --> 00:34:26.545
Das ist dann auch kaputt eingestellt.

00:34:27.185 --> 00:34:29.665
Aber vielleicht ist die Frage auch, ob es an Celery liegt oder daran,

00:34:29.705 --> 00:34:31.125
dass Async halt ein bisschen schwieriger ist.

00:34:31.825 --> 00:34:33.645
Also da würde ich gerne

00:34:33.645 --> 00:34:35.425
nochmal kurz eine Begriffsklärung machen, weil

00:34:35.425 --> 00:34:37.125
viele sagen ja Async,

00:34:37.405 --> 00:34:39.685
und ich höre auch immer, wenn von Async

00:34:39.685 --> 00:34:41.085
geredet ist, dass dann Leute sagen so,

00:34:42.185 --> 00:34:43.665
das merke ich dann

00:34:43.665 --> 00:34:45.545
irgendwie nach einer gewissen Zeit, dass Leute eigentlich so etwas

00:34:45.545 --> 00:34:47.585
wie Celery meinen, aber das

00:34:47.585 --> 00:34:48.665
hat ja jetzt mit zum Beispiel

00:34:48.665 --> 00:34:51.445
Async.io oder so, damit

00:34:51.445 --> 00:34:53.105
überhaupt gar nichts zu tun ist, das ist ganz anderes.

00:34:53.245 --> 00:34:55.245
Ja, also Tenor ist ein eigener Worker-Prozess,

00:34:55.365 --> 00:34:56.705
natürlich, ich verstehe die halt einfach sehr

00:34:56.705 --> 00:34:59.425
Tastacharbeit zu einer bestimmten Zeit, weil die halt in der Liste stehen

00:34:59.425 --> 00:35:01.705
und dann also diese Queue leert.

00:35:01.825 --> 00:35:03.385
Du hast eine Anzahl von Workern

00:35:03.385 --> 00:35:05.225
und hast halt irgendwie

00:35:05.225 --> 00:35:07.405
genau

00:35:07.405 --> 00:35:09.365
ein Ding, das halt eventuell auf so einer Queue

00:35:09.365 --> 00:35:11.245
drauf sitzt und dann verteilt es halt Jobs an

00:35:11.245 --> 00:35:13.325
diese Worker und die machen dann halt

00:35:13.325 --> 00:35:15.245
Dinge und schreiben ihre Resultate wieder

00:35:15.245 --> 00:35:15.765
irgendwo hin.

00:35:15.765 --> 00:35:18.045
Ja, und genau

00:35:18.045 --> 00:35:20.065
Ich glaube, warum die Leute denken, dass es Async ist, weil das halt meistens

00:35:20.065 --> 00:35:21.965
wie schon gesagt, nicht im Main-Prozess läuft

00:35:21.965 --> 00:35:24.285
obwohl man das auch machen kann, du kannst ja mit Django mitstarten

00:35:24.285 --> 00:35:26.245
oder so, aber die Frage ist auch da

00:35:26.245 --> 00:35:27.785
was das halt heißt, also weil

00:35:27.785 --> 00:35:30.145
Jochen weiß das bestimmt besser, weil es ja irgendwie

00:35:30.145 --> 00:35:32.205
verschiedene Event-Queues, die man nutzen kann

00:35:32.205 --> 00:35:34.005
G-Event oder Event oder irgendwas

00:35:34.005 --> 00:35:36.365
Nee, nee, gar nicht, damit hat es überhaupt nichts zu tun

00:35:36.365 --> 00:35:38.125
also mit G-Event oder sowas hat es überhaupt nichts zu tun

00:35:38.125 --> 00:35:40.245
G-Event ist sowas wie Async.io, ganz anderes

00:35:40.245 --> 00:35:42.205
Aber kann man machen, also wenn man das mit Django selber macht

00:35:42.205 --> 00:35:44.105
dann muss man sich überlegen, welche da benutzt wird

00:35:44.105 --> 00:35:47.985
Ja, aber nicht sowas wie G-Event oder auch nicht sowas wie Async.io, gar nicht.

00:35:48.305 --> 00:35:49.505
Also das ist einfach was ganz anderes.

00:35:50.025 --> 00:35:53.405
Das ist auch nicht eine Geschichte, die im gleichen Prozess normalerweise stattfindet,

00:35:53.445 --> 00:35:55.005
sondern du hast halt tatsächlich andere Prozesse.

00:35:55.965 --> 00:35:58.545
Ja, wenn man die hat, genau, wenn man die anderen Prozesse hat, dann schon.

00:35:58.885 --> 00:35:59.765
Anders geht das nicht.

00:36:01.885 --> 00:36:02.245
Okay.

00:36:03.205 --> 00:36:04.885
Also, genau, anders geht anders.

00:36:05.185 --> 00:36:07.565
Jedenfalls nicht, dass ich wüsste, dass das irgendwie anders gehen würde,

00:36:07.685 --> 00:36:11.725
weil wie soll das funktionieren, wenn du halt jetzt irgendwie, keine Ahnung,

00:36:11.725 --> 00:36:19.205
und nehmen wir an, du stößt halt an in einem Request, also du hast halt irgendwie einen Button, das steht drauf Send E-Mail, drückst auf E-Mail

00:36:19.205 --> 00:36:26.765
und wie soll das jetzt gehen, dass dann eine E-Mail, ja so vielleicht geht es tatsächlich irgendwie, aber das ist alles sehr hässlich.

00:36:27.025 --> 00:36:31.885
Also du willst eigentlich einen Task dafür starten, der ganz woanders ist.

00:36:31.905 --> 00:36:34.345
Du hast recht, du willst das auf jeden Fall, da würde ich auf jeden Fall zustimmen.

00:36:35.805 --> 00:36:36.165
Definitiv.

00:36:36.225 --> 00:36:38.805
Ja, aber diese beiden Dinge haben eigentlich nichts miteinander zu tun.

00:36:38.805 --> 00:36:40.645
auch. Wenn man das eine für das andere vielleicht so halb

00:36:40.645 --> 00:36:42.605
irgendwie verwenden kann, aber nee, das ist

00:36:42.605 --> 00:36:43.645
eigentlich was ganz anderes.

00:36:44.045 --> 00:36:46.465
Wie gesagt, es ist halt,

00:36:46.745 --> 00:36:48.645
also wenn du quasi auf den

00:36:48.645 --> 00:36:50.445
Main Thread schaust, dann läuft es halt

00:36:50.445 --> 00:36:52.605
irgendwie nicht da drin, von daher liegt es halt

00:36:52.605 --> 00:36:54.505
nahe, das irgendwie asynchron zu nennen,

00:36:54.925 --> 00:36:56.825
auch wenn es mit dem Python Async

00:36:56.825 --> 00:36:58.305
natürlich nichts zu tun hat, technisch.

00:36:58.485 --> 00:36:58.585
Ja.

00:37:00.585 --> 00:37:02.645
Genau, aber es läuft halt nicht

00:37:02.645 --> 00:37:04.625
irgendwie Async, oder in einem

00:37:04.625 --> 00:37:06.505
anderen Thread, sondern es läuft in einem anderen Prozess.

00:37:06.785 --> 00:37:08.465
Also hat überhaupt gar nichts mehr mit dem

00:37:08.465 --> 00:37:10.465
zu tun, mit dem der Interpreter da läuft.

00:37:11.445 --> 00:37:12.365
Also, ja.

00:37:13.285 --> 00:37:13.765
Genau.

00:37:14.665 --> 00:37:16.585
Genau, und insgesamt, das Celery-Setup ist halt auch

00:37:16.585 --> 00:37:18.925
relativ, es ist halt, da schießt

00:37:18.925 --> 00:37:20.705
man wirklich schon auf,

00:37:21.065 --> 00:37:22.805
also mit sehr großen Kanonen, weil ja

00:37:22.805 --> 00:37:24.825
meistens man dann mehrere Worker hat, man hat einen Beat,

00:37:24.965 --> 00:37:26.925
der für Scheduling, also der im Endeffekt

00:37:26.925 --> 00:37:28.805
diesen Contab dann ersetzt.

00:37:29.445 --> 00:37:30.985
Dann gibt es noch dieses Monitoring-Tool

00:37:30.985 --> 00:37:32.605
Flower, was so

00:37:32.605 --> 00:37:34.585
mittelgut funktioniert und eher

00:37:34.585 --> 00:37:36.885
schlecht als recht meiner Meinung nach gewartet

00:37:36.885 --> 00:37:38.845
ist. Nichtsdestotrotz, wenn man mal irgendwie

00:37:38.845 --> 00:37:40.885
reingucken möchte, hilft es schon. Dazu

00:37:40.885 --> 00:37:42.805
kommt halt noch, dass man meistens

00:37:42.805 --> 00:37:44.665
halt dann diesen Message Broker

00:37:44.665 --> 00:37:46.825
braucht, der halt dann

00:37:46.825 --> 00:37:48.965
meistens ein Redis oder ein RevitMQ

00:37:48.965 --> 00:37:50.505
oder ein Derivat davon ist

00:37:50.505 --> 00:37:52.625
und das ist halt für viele Projekte

00:37:52.625 --> 00:37:54.685
vor allem am Anfang ist das halt enormer

00:37:54.685 --> 00:37:56.845
Setup-Aufwand. Wer das

00:37:56.845 --> 00:37:58.045
erste Mal in seinem Leben Celery

00:37:58.045 --> 00:38:00.905
einrichten muss, der wird daran keinen Spaß

00:38:00.905 --> 00:38:01.185
haben.

00:38:02.265 --> 00:38:04.685
Wenn du halt zum Beispiel auf das Redis sonst nichts anderes benutzt

00:38:04.685 --> 00:38:06.205
oder sowas, das läuft halt die ganze Zeit rum.

00:38:06.885 --> 00:38:34.925
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 Celery kommen muss. 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:34.925 --> 00:38:37.165
und die Idee von Jack Howard ist jetzt,

00:38:38.305 --> 00:38:39.485
das wirklich in Django zu integrieren.

00:38:39.585 --> 00:38:41.105
Er hat erstmal ein Package gemacht, wie man das

00:38:41.105 --> 00:38:43.005
halt optimalerweise auch so macht, dass Leute es auch

00:38:43.005 --> 00:38:44.885
separat testen können und

00:38:44.885 --> 00:38:47.305
das Ganze hat er vorgestellt.

00:38:47.445 --> 00:38:47.825
Das war,

00:38:49.045 --> 00:38:50.925
ich weiß nicht, ob es wirklich eine Keynote war,

00:38:51.045 --> 00:38:52.985
aber es war auf jeden Fall de facto eine Keynote. Ich glaube,

00:38:53.145 --> 00:38:54.945
das war das, wo die Leute am meisten

00:38:54.945 --> 00:38:56.025
und am heißesten drauf waren.

00:38:57.565 --> 00:38:58.665
Und das ist sehr spannend, weil

00:38:58.665 --> 00:39:00.725
ich tatsächlich auch bei mir in meinen

00:39:00.725 --> 00:39:02.625
diversen Projekten, glaube ich, auch einfach aktiv

00:39:02.625 --> 00:39:04.805
zurückbauen würde, weil

00:39:04.805 --> 00:39:34.785
und Jochen unterhalten sich über die Programmiersprache Python

00:39:34.805 --> 00:39:36.705
interessant war. Ich habe

00:39:36.705 --> 00:39:38.765
der Talk von Carlton Gibson

00:39:38.765 --> 00:39:40.405
ging im Endeffekt um mal wieder

00:39:40.405 --> 00:39:42.785
HTMLX ist super und mit AlpineJS kann man

00:39:42.785 --> 00:39:43.945
zusammen coole Dinge machen.

00:39:44.665 --> 00:39:46.905
Und sein Treiber davon war, dass er halt sagt,

00:39:47.245 --> 00:39:48.925
dass jetzt, wo wir in einer Zeit leben,

00:39:48.985 --> 00:39:50.765
wo die Zinsen seit langer Zeit wieder

00:39:50.765 --> 00:39:52.485
ein bisschen höher sind, Venture Capital

00:39:52.485 --> 00:39:55.265
deutlich seltener

00:39:55.265 --> 00:39:56.225
geworden ist und deutlich

00:39:56.225 --> 00:39:58.505
in kleinere Mengen vergeben wird.

00:39:59.085 --> 00:39:59.785
Und dass deshalb

00:39:59.785 --> 00:40:02.585
dieses, ich habe ein Startup und ich möchte

00:40:02.585 --> 00:40:04.565
irgendwas ausprobieren, dass die einfach mit viel

00:40:04.565 --> 00:40:34.545
und Jochen unterhalten sich über die Programmiersprache Python

00:40:34.565 --> 00:40:35.925
zu klein als zu groß.

00:40:37.045 --> 00:40:38.365
Und das ist

00:40:38.365 --> 00:40:39.545
interessant, weil

00:40:39.545 --> 00:40:41.785
das, ja, ich meine,

00:40:42.225 --> 00:40:44.385
wird ihm vorher auch schon klar gewesen sein, aber das nochmal so auf den Punkt

00:40:44.385 --> 00:40:46.105
zu bringen und dann zu sagen,

00:40:46.205 --> 00:40:48.345
ja, genauso sehe ich das auch, weil, ja, natürlich

00:40:48.345 --> 00:40:50.085
kannst du, wenn du mit React oder Vue

00:40:50.085 --> 00:40:51.925
kannst du ausgefallene

00:40:51.925 --> 00:40:53.585
Reformen bauen, kannst du mehr Dinge tun.

00:40:53.925 --> 00:40:55.865
Die Frage ist, brauchst du das

00:40:55.865 --> 00:40:57.985
und schaffst du das in dem Geld, das du hast?

00:40:58.765 --> 00:41:00.145
Und das, finde ich, ist halt so der

00:41:00.145 --> 00:41:01.305
spannende USP da dran.

00:41:02.325 --> 00:41:03.825
Klar, wenn man erstmal seine

00:41:03.825 --> 00:41:05.985
komplette Applikation mit HTMLX ohne API gebaut

00:41:05.985 --> 00:41:07.945
und irgendwann kommt einer und sagt, ich möchte das jetzt alles anders

00:41:07.945 --> 00:41:10.045
haben. Das ist natürlich auch nochmal teuer.

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

00:41:11.625 --> 00:41:13.805
nicht nur sagen, wie viel Geld haben wir jetzt, sondern wo geht

00:41:13.805 --> 00:41:16.105
das Ganze hin. Nichtsdestotrotz

00:41:16.105 --> 00:41:17.765
persönlich finde ich das auch sehr

00:41:17.765 --> 00:41:19.605
spannend. Der Talk war auch sehr cool und sehr

00:41:19.605 --> 00:41:21.845
energetisch, wie Carlton Gibson halt immer so

00:41:21.845 --> 00:41:23.765
ist. Genau,

00:41:23.905 --> 00:41:25.505
war echt super spannend.

00:41:28.605 --> 00:41:29.665
Ich glaube,

00:41:30.085 --> 00:41:31.705
dieses Django-Template-Partials kommt

00:41:31.705 --> 00:41:33.105
halt auch irgendwie jetzt, ich weiß,

00:41:33.105 --> 00:41:37.485
rein. Ich weiß nicht, ob das schon bei 5.1 war oder doch eher 5.2, wahrscheinlich eher 5.2.

00:41:39.885 --> 00:41:41.225
Oder hat er auch über

00:41:41.225 --> 00:41:45.445
dieses Neapolitan-Ring gesprochen, was er da

00:41:45.445 --> 00:41:48.845
das ist ja auch so ein... Neue Crud-Views oder so. Ja, genau.

00:41:49.505 --> 00:41:54.005
Also das dreht sich alles um diese Idee des Locality of Behavior.

00:41:54.785 --> 00:41:57.585
Carlton Gibson hat jetzt vor nicht allzu langer Zeit einen Newsletter

00:41:57.585 --> 00:42:01.745
angefangen, Stack Report heißt der, wo er einmal im Monat sehr ausführlich

00:42:01.745 --> 00:42:03.525
zu einem Thema schreibt. Ich habe den abonniert.

00:42:03.585 --> 00:42:05.765
Das kostet, glaube ich, irgendwie 5 Euro oder so was.

00:42:06.385 --> 00:42:07.305
Bis jetzt hat es sich, also

00:42:07.305 --> 00:42:09.325
ich glaube, es gibt es erst seit 2-3 Monaten,

00:42:09.645 --> 00:42:11.725
bis jetzt hat es sich gelohnt. Also ich mache da gerne auch nochmal Werbung

00:42:11.725 --> 00:42:12.685
für ihn, unbezahlt.

00:42:13.485 --> 00:42:14.965
Das finde ich echt cool.

00:42:16.345 --> 00:42:17.385
Also es war echt interessant.

00:42:17.625 --> 00:42:19.465
Er hat jetzt über diverse Dinge da geschrieben

00:42:19.465 --> 00:42:21.605
und in dem aktuellen von diesem Monat ging es halt

00:42:21.605 --> 00:42:22.565
um Locality of Behavior.

00:42:23.405 --> 00:42:25.485
Und er versucht halt im Endeffekt das Konzept

00:42:25.485 --> 00:42:27.365
zu verkaufen. Also er sagt halt, dass wenn

00:42:27.365 --> 00:42:29.705
alles, was du brauchst, in einer Datei steht,

00:42:29.785 --> 00:42:30.945
ist es halt einfacher zu verstehen.

00:42:30.945 --> 00:42:33.345
und er argumentiert nicht,

00:42:33.445 --> 00:42:35.445
dass man alle guten Principles,

00:42:35.485 --> 00:42:37.045
die man gelernt hat, sofort wegwirft,

00:42:37.145 --> 00:42:39.005
sondern dass man halt dieses Premature Optimizing

00:42:39.005 --> 00:42:40.265
aufhört, dass man sagt, okay,

00:42:40.725 --> 00:42:43.085
ich fange jetzt schon mit, weiß ich nicht,

00:42:43.185 --> 00:42:44.925
die, die, die an und mache das alles perfekt in

00:42:44.925 --> 00:42:47.085
vielen Dateien, ein Neueinsteiger in dem Projekt

00:42:47.085 --> 00:42:48.945
hat keine Chance zu verstehen, was eigentlich

00:42:48.945 --> 00:42:51.025
passiert, sondern fangt erstmal klein an

00:42:51.025 --> 00:42:52.445
und refactet, wenn ihr es wirklich braucht.

00:42:53.145 --> 00:42:54.805
Weil viel von dem, ah ja, ich brauche es

00:42:54.805 --> 00:42:56.685
nochmal, ich mache das mal irgendwie woanders hin,

00:42:57.065 --> 00:42:59.045
kommt dann nachher mit, naja, ist doch

00:42:59.045 --> 00:43:00.925
irgendwie anders geworden, war doch nicht so, wie ich es mir

00:43:00.925 --> 00:43:02.665
gedacht haben und dann hat man halt immer diese doppelte

00:43:02.665 --> 00:43:04.745
Refactoring-Schleife und dieses

00:43:04.745 --> 00:43:06.985
Django Template Views ist halt die Idee

00:43:06.985 --> 00:43:08.845
Django Template Partials

00:43:08.845 --> 00:43:10.485
Sorry, Partials

00:43:10.485 --> 00:43:12.485
dass man halt wirklich sagen kann, okay

00:43:12.485 --> 00:43:14.685
diesen Block kann ich jetzt mit HTMLX neu

00:43:14.685 --> 00:43:16.785
rendern lassen, der ist aber trotzdem noch in der

00:43:16.785 --> 00:43:18.745
großen Datei und ich muss es nicht zerpflücken, wie man es

00:43:18.745 --> 00:43:20.625
halt vorher, also Stand jetzt mit

00:43:20.625 --> 00:43:21.525
Vanilla Django macht

00:43:21.525 --> 00:43:24.845
und diese Neapolitan

00:43:24.845 --> 00:43:26.805
Crud Views ist auch die Idee, dass du halt wirklich mehr

00:43:26.805 --> 00:43:28.925
Sachen an einer Stelle zusammen

00:43:28.925 --> 00:43:30.765
hast. Dass man im Grunde eine Klasse hat, wo die

00:43:30.765 --> 00:43:34.405
also GetPost und sonst wie Dinge, die da passieren, halt alle drin sind.

00:43:35.865 --> 00:43:39.305
Ich persönlich finde, dass Locality of Behaviour ist, glaube ich, eine gute Sache.

00:43:39.485 --> 00:43:42.305
Ich meine, das geht auch so ein bisschen nach Yagni, also you ain't gonna need it.

00:43:42.925 --> 00:43:46.105
Dass man halt nicht, dass man erstmal überlegt, so muss ich jetzt wirklich anfangen,

00:43:47.005 --> 00:43:49.825
alles so hoch zu skalieren, wie es unbedingt notwendig ist.

00:43:50.565 --> 00:43:54.225
Nichtsdestotrotz, wenn ich weiß, ein Projekt wird eine gewisse Größe erreichen,

00:43:55.005 --> 00:43:57.745
die Dinge zu tun, die ich jetzt schon weiß, die sinnvoll sind,

00:43:57.745 --> 00:44:00.525
glaube ich, dass man sich da dann andererseits

00:44:00.525 --> 00:44:02.425
auch wieder ein paar Refactoring-Zyklen spart.

00:44:02.865 --> 00:44:04.405
Aber ich glaube, generell ist man schon

00:44:04.405 --> 00:44:06.385
sehr prone, als Entwickler over

00:44:06.385 --> 00:44:08.605
zu ingenieren und ich glaube, das sich im Kopf zu behalten,

00:44:08.705 --> 00:44:09.885
so muss ich das jetzt wirklich tun.

00:44:10.145 --> 00:44:12.245
Also so ein Trade-off mit KISS

00:44:12.245 --> 00:44:14.365
oder sowas, schon simpel und dass du irgendwie

00:44:14.365 --> 00:44:16.325
tatsächlich versuchst, vielleicht, also

00:44:16.325 --> 00:44:18.365
was ich zum Beispiel finde, ist, dass wenn halt zu viele Sachen

00:44:18.365 --> 00:44:20.205
in einer Datei drinstehen, selbst wenn das irgendwie

00:44:20.205 --> 00:44:22.205
am Anfang überblicklich ist, wird es halt auch dann wieder hässlich.

00:44:22.805 --> 00:44:24.505
Und wenn eine gute Modulstruktur

00:44:24.505 --> 00:44:26.225
darunter liegt einfach, also einfach nur

00:44:26.225 --> 00:44:27.945
vom Namespacing, hilft das

00:44:27.945 --> 00:44:29.725
fast am meisten, finde ich.

00:44:31.025 --> 00:44:32.245
Was dann auch gar nicht schwer

00:44:32.245 --> 00:44:34.005
zu verstehen macht, wenn das halt alles in einem Director liegt,

00:44:34.085 --> 00:44:35.905
zum Beispiel, dann ist das schon vielleicht ein bisschen näher dran.

00:44:36.185 --> 00:44:38.145
Aber wenn das Director in einem Gruß wird, dann ist das

00:44:38.145 --> 00:44:38.625
wieder ein Problem.

00:44:41.705 --> 00:44:42.345
Oh, ich würde

00:44:42.345 --> 00:44:44.065
ganz kurz nur einmal kurz

00:44:44.065 --> 00:44:45.465
einwerfen, nochmal zu dieser

00:44:45.465 --> 00:44:47.705
Task-Geschichte, was ich halt oft sehe,

00:44:47.825 --> 00:44:49.605
was ich finde, was man vermeiden sollte,

00:44:50.245 --> 00:44:52.005
wenn Leute

00:44:52.005 --> 00:44:53.785
sowas machen und das halt irgendwie, weil

00:44:53.785 --> 00:44:55.325
oft macht man das dann ja,

00:44:55.325 --> 00:44:58.125
Man braucht es schon meistens, aber dann doch nicht

00:44:58.125 --> 00:45:00.025
irgendwie so dauernd, dass

00:45:00.025 --> 00:45:02.325
alle Leute da irgendwie

00:45:02.325 --> 00:45:03.365
viel Erfahrung mit hätten.

00:45:04.925 --> 00:45:06.485
Und was ich jetzt schon häufiger gesehen

00:45:06.485 --> 00:45:07.785
habe und was in der Praxis dann so

00:45:07.785 --> 00:45:10.425
zusätzlich zu diesem ganzen

00:45:10.425 --> 00:45:12.485
Infrastrukturding auch nochmal ordentlich Schmerzen macht,

00:45:12.605 --> 00:45:14.125
ist halt, wenn Leute anfangen,

00:45:14.545 --> 00:45:16.405
irgendwie so ganz Kaskaden von Tasks

00:45:16.405 --> 00:45:18.665
irgendwie zu schreiben.

00:45:18.885 --> 00:45:20.365
So gerade bei Celery ist das dann halt auch

00:45:20.365 --> 00:45:22.525
sehr einfach. Und dann hat man da Abhängigkeiten

00:45:22.525 --> 00:45:23.405
dazwischen und dann

00:45:23.405 --> 00:45:25.745
und Leuten ist gar nicht so bewusst, dass es bedeutet,

00:45:25.865 --> 00:45:27.965
ja, das geht jedes Mal über eine Prozessgrenze,

00:45:28.065 --> 00:45:29.685
dann wird da irgendwie wieder irgendwas wieder realisiert,

00:45:29.805 --> 00:45:32.245
dann muss der ganze Rahmen wieder so rausgelegt und realisiert werden,

00:45:32.605 --> 00:45:33.765
dann geht es irgendwo zwischendurch schief

00:45:33.765 --> 00:45:35.945
und dann hast du halt irgendwie so ein

00:45:35.945 --> 00:45:37.745
explodiertes Gedärm irgendwie,

00:45:37.865 --> 00:45:38.545
was dann rumliegt.

00:45:40.465 --> 00:45:41.745
Also was ich nur

00:45:41.745 --> 00:45:43.465
empfehlen kann, ist, man macht halt eine

00:45:43.465 --> 00:45:45.805
Funktion oder so eine Methode an irgendeinem Modell

00:45:45.805 --> 00:45:47.885
oder so, wo man halt das, was man tun möchte,

00:45:47.945 --> 00:45:49.905
halt reinschreibt und dann testet man das ganz normal,

00:45:50.145 --> 00:45:50.585
synchron,

00:45:50.585 --> 00:45:52.605
irgendwie, wie man

00:45:52.605 --> 00:45:54.725
Sachen halt so testet und dann sagt man

00:45:54.725 --> 00:45:56.685
in einem Celery-Task

00:45:56.685 --> 00:45:58.925
eigentlich nur, okay, man ruft halt dieses Ding auf, fertig.

00:45:59.365 --> 00:46:00.505
Wie man auch

00:46:00.505 --> 00:46:02.645
im Vue schreiben würde, möglichst schlank und

00:46:02.645 --> 00:46:03.685
eigentlich nur die Dinge

00:46:03.685 --> 00:46:06.565
komponieren, denn wirklich da implementieren.

00:46:06.905 --> 00:46:08.505
Ja, und keine Logik in die

00:46:08.505 --> 00:46:10.205
Tasks parken, sondern

00:46:10.205 --> 00:46:12.385
von den Tasks, also in den eigentlichen

00:46:12.385 --> 00:46:14.365
Celery-Tasks immer nur irgendwie Logik, die

00:46:14.365 --> 00:46:16.405
irgendwo anders ist, aufrufen. Aber wenn du halt

00:46:16.405 --> 00:46:18.485
im besten Logik verteilt über mehrere Tasks,

00:46:18.565 --> 00:46:20.325
dann passieren scheröckliche

00:46:20.325 --> 00:46:21.785
Dinge unter Umständen.

00:46:23.165 --> 00:46:23.645
Absolut.

00:46:24.545 --> 00:46:26.085
Genau, das war nur so ein kurzer Einwurf.

00:46:27.845 --> 00:46:28.585
Es gab da noch

00:46:28.585 --> 00:46:30.405
so ein tolles Thread zu

00:46:30.405 --> 00:46:31.945
im Chaos Social,

00:46:32.645 --> 00:46:34.065
den du auch den Link vorhin geteilt hast.

00:46:34.185 --> 00:46:35.525
Das ist sehr, sehr interessant.

00:46:36.905 --> 00:46:38.325
Einige coole Leute, unter anderem

00:46:38.325 --> 00:46:40.265
Carlton Gibson selber und Hüneck und so.

00:46:40.405 --> 00:46:42.105
Ja, Hüneck, genau. Und diverse Leute,

00:46:42.105 --> 00:46:43.805
da gab es ein Thread zu,

00:46:43.925 --> 00:46:46.045
was braucht man jetzt bei Background Tasks eigentlich alles?

00:46:46.405 --> 00:46:48.285
Ja, genau. Und was sind da die Anforderungen

00:46:48.285 --> 00:46:49.445
genau? Und das ist auch in der Praxis.

00:46:50.325 --> 00:46:52.505
anders implementiert. Und auch alle haben sich über Celery

00:46:52.505 --> 00:46:53.245
beschwert aus Gründen.

00:46:54.065 --> 00:46:56.405
Ja, ich kann mir genau das Ding verlinken.

00:46:57.145 --> 00:46:58.485
Ja, Fettyverse ist halt

00:46:58.485 --> 00:47:00.025
zur Zeit, also wenn er noch nicht ist,

00:47:00.785 --> 00:47:02.385
da sind halt alle...

00:47:02.385 --> 00:47:04.385
Das steht tatsächlich auf meiner Liste und ich lese halt immer

00:47:04.385 --> 00:47:05.425
so ein bisschen mit, aber naja.

00:47:06.185 --> 00:47:08.225
Ja, also das fühlt sich an wie

00:47:08.225 --> 00:47:10.365
Twitter früher, so ein bisschen

00:47:10.365 --> 00:47:12.325
Blümchenwiese-mäßig, weil alle

00:47:12.325 --> 00:47:14.485
Leute oder viele der Leute,

00:47:14.485 --> 00:47:16.285
die man so kennt, sind da und

00:47:16.285 --> 00:47:18.485
man kann sich mit denen einfach so

00:47:18.485 --> 00:47:19.265
unterhalten und so.

00:47:19.265 --> 00:47:49.245
Ja, cool.

00:47:49.265 --> 00:48:19.245
und Jochen unterhalten sich über die Programmiersprache Python

00:48:19.265 --> 00:48:21.225
reagieren die Leute? Was für Sachen werden wirklich

00:48:21.225 --> 00:48:22.665
angefragt? Das finde ich halt sehr interessant,

00:48:23.065 --> 00:48:24.645
weil ich glaube, das ist einfach so ein generelles Ding.

00:48:25.125 --> 00:48:27.265
Wenn man irgendwie in der Softwareentwicklung ist, dieser MVP-Gedanke

00:48:27.265 --> 00:48:29.145
ist so, so, so zentral

00:48:29.145 --> 00:48:31.025
und da kann man so viel falsch machen,

00:48:31.125 --> 00:48:33.245
so viel Geld und Projekte und Chaos

00:48:33.245 --> 00:48:35.145
verlieren, wenn man

00:48:35.145 --> 00:48:36.405
halt nicht dem MVP denkt.

00:48:37.965 --> 00:48:39.185
Weil schöner geht

00:48:39.185 --> 00:48:40.365
halt immer und

00:48:40.365 --> 00:48:42.505
ja, genau.

00:48:43.105 --> 00:48:44.925
Ja, und genau,

00:48:45.045 --> 00:48:47.205
bei Ruby on Rails ist halt

00:48:47.205 --> 00:48:49.065
auch diese Background-House-Geschichte schon

00:48:49.065 --> 00:48:50.145
seit Ewigkeiten drin.

00:48:51.065 --> 00:48:52.985
Und das war immer eine der Geschichten, die in Django

00:48:52.985 --> 00:48:54.945
halt, ja, wo man da halt irgendwie dann

00:48:54.945 --> 00:48:56.905
immer sagen musste, ja, nimm halt Terry.

00:48:57.325 --> 00:48:58.665
Ja, es tut weh. Nimm's halt trotzdem.

00:48:58.965 --> 00:49:00.365
Das ist das, was es gibt.

00:49:01.985 --> 00:49:02.345
Ja.

00:49:03.065 --> 00:49:04.985
Und wenn sich das jetzt

00:49:04.985 --> 00:49:06.825
ändert, dann ist auf jeden Fall ein Painpoint

00:49:06.825 --> 00:49:07.645
irgendwie auch weniger.

00:49:08.625 --> 00:49:10.865
Sie haben gesagt, dass wenn es gut läuft, landet das

00:49:10.865 --> 00:49:13.085
in 5.2. Du weißt, wann 5.2

00:49:13.085 --> 00:49:14.145
rauskommt, hattest du gesagt?

00:49:14.625 --> 00:49:15.645
April, ja.

00:49:17.085 --> 00:49:17.385
Genau.

00:49:17.385 --> 00:49:20.705
Dann wird dann neben meinem kleinen Testhelper

00:49:20.705 --> 00:49:22.105
das zweite große Ding,

00:49:22.265 --> 00:49:23.125
wenn du dann die Background hast

00:49:23.125 --> 00:49:26.265
Sehr gut, sehr gut

00:49:26.265 --> 00:49:28.585
Genau

00:49:28.585 --> 00:49:30.685
Ja, also

00:49:30.685 --> 00:49:32.425
HTMLX war diesmal auf der DjangoCon

00:49:32.425 --> 00:49:34.305
also auch quasi wieder so ein, es ist ja die letzten

00:49:34.305 --> 00:49:35.665
Male eigentlich immer ein großes Thema gewesen

00:49:35.665 --> 00:49:37.985
Genau, ja ich meine

00:49:37.985 --> 00:49:49.450
HTMLX ist halt im Endeffekt die Silver Bullet mit der sehr sehr viele Leute dann HTMLX vermeiden k HTMLX JavaScript vermeiden k was nat so ein bisschen

00:49:49.450 --> 00:49:50.970
Gänsefüßchen ist, aber natürlich immer noch ein bisschen

00:49:50.970 --> 00:49:53.170
JavaScript braucht und das auch sehr viel mit JavaScript geschrieben ist.

00:49:54.130 --> 00:49:54.610
Nichtsdestotrotz

00:49:54.610 --> 00:49:57.310
vermeidet das halt, dass man in Projekten

00:49:57.310 --> 00:49:59.170
JavaScript verwenden muss,

00:49:59.250 --> 00:50:01.270
was natürlich für viele tendenziell eher

00:50:01.270 --> 00:50:03.330
Backendler, wie ja Django aktuell

00:50:03.330 --> 00:50:05.310
verwendet wird, weil es ja auch ein sehr data-driven Framework ist.

00:50:06.790 --> 00:50:07.330
Das ist

00:50:07.330 --> 00:50:09.270
natürlich sehr angenehm, da zähle ich mich auch dazu.

00:50:09.450 --> 00:50:10.590
Ich habe es auch irgendwie nie geschafft,

00:50:11.050 --> 00:50:12.890
mich ernsthaft mit einem

00:50:12.890 --> 00:50:14.990
JavaScript-Framework zu beschäftigen und

00:50:14.990 --> 00:50:17.370
ich bin

00:50:17.370 --> 00:50:19.310
auch in meinem Beruf immer wieder damit konfrontiert,

00:50:19.730 --> 00:50:21.210
bei den Entscheidungen, wenn man

00:50:21.210 --> 00:50:22.990
ein neues Projekt startet, was nehmen wir jetzt?

00:50:23.070 --> 00:50:25.170
Wir haben es jetzt tatsächlich bei dem letzten Projekt, das gestartet ist,

00:50:25.210 --> 00:50:26.690
auch aktiv für HTMX entschieden.

00:50:27.410 --> 00:50:29.270
Auch mit einem Team, die tendenziell

00:50:29.270 --> 00:50:31.390
eher auf JavaScript-Front-End

00:50:31.390 --> 00:50:31.950
sind.

00:50:33.130 --> 00:50:33.950
Das ist ganz interessant.

00:50:35.250 --> 00:50:36.530
Weil wir einfach auch gesagt haben,

00:50:36.530 --> 00:50:38.730
Beglauers, da ist immer halt, dass das Projekt ist halt

00:50:38.730 --> 00:50:40.370
so eine ganz klassische Backend-Ableck,

00:50:40.490 --> 00:50:42.370
man hat viele Listen, man hat viele Crud-Views,

00:50:42.630 --> 00:50:44.330
es gibt zwei, drei, vier Sachen, die so

00:50:44.330 --> 00:50:46.490
ein bisschen ausgefallen sind, aber auch nicht so

00:50:46.490 --> 00:50:48.830
wirklich, also da hat man mal so ein Drag-and-Drop-Element

00:50:48.830 --> 00:50:50.350
oder sowas und

00:50:50.350 --> 00:50:51.890
wir sind aber der Meinung, dass

00:50:51.890 --> 00:50:54.330
man das dafür halt HTMX

00:50:54.330 --> 00:50:56.470
wirklich gut funktioniert, weil das ist das, was Django

00:50:56.470 --> 00:50:57.390
wirklich gut kann.

00:50:58.730 --> 00:51:00.170
Und das

00:51:00.170 --> 00:51:02.270
Projekt ist es auch nicht etwas, wo man sagt,

00:51:02.370 --> 00:51:03.150
das ist jetzt irgendwie,

00:51:03.730 --> 00:51:06.350
wenn die Firma durch die Decke geht, dann

00:51:06.350 --> 00:51:08.690
so und so, sondern das wird immer eine Backend-Applikation

00:51:08.690 --> 00:51:10.530
bleiben. Logischerweise wird die wachsen,

00:51:10.610 --> 00:51:11.590
wenn die Firma wächst, etc.

00:51:12.630 --> 00:51:14.470
Aber das wirkte einfach nach dem

00:51:14.470 --> 00:51:16.470
perfekten Hammer für diesen

00:51:16.470 --> 00:51:18.370
Nagel, was nicht heißt, dass

00:51:18.370 --> 00:51:20.050
wenn man jetzt sagt, ich möchte es, keine Ahnung,

00:51:20.170 --> 00:51:22.170
das nächste Instagram oder sowas bauen,

00:51:22.650 --> 00:51:24.250
dass das vielleicht, wenn man schon die Kohle dafür hat

00:51:24.250 --> 00:51:26.230
am Anfang, dass das vielleicht nicht

00:51:26.230 --> 00:51:28.310
unbedingt die beste Wahl ist. Geht wahrscheinlich

00:51:28.310 --> 00:51:30.170
auch alles trotzdem, aber

00:51:30.170 --> 00:51:32.450
ich glaube, umso mehr, sag ich mal,

00:51:32.490 --> 00:51:34.470
wirkliche Endnutzer, also jetzt nicht Mitarbeiter

00:51:34.470 --> 00:51:36.650
der Firma oder Administratoren, so mögliche Endnutzer

00:51:36.650 --> 00:51:38.450
man auf der Plattform hat, wahrscheinlich schwingt da

00:51:38.450 --> 00:51:40.610
dann immer so die Notwendigkeit für

00:51:40.610 --> 00:51:43.050
ein richtiges, volles Frontend-Framework,

00:51:43.110 --> 00:51:44.410
wo man das ja auch in Gänzefüßen sehen muss,

00:51:44.490 --> 00:51:46.230
React und Vue sind ja auch keine Frontend-Libraries,

00:51:46.870 --> 00:51:48.450
schwingt dann doch eher

00:51:48.450 --> 00:51:49.790
so das Pendel in diese Richtung.

00:51:51.050 --> 00:51:52.530
Und ich glaube, diese Frage kann man

00:51:52.530 --> 00:51:54.290
halt wie jede einzelne Tech-Frage

00:51:54.290 --> 00:51:56.010
damit beantworten, es kommt drauf an.

00:51:57.730 --> 00:51:58.390
Nichtsdestotrotz wird das

00:51:58.390 --> 00:52:00.010
natürlich hart gefeiert in der Community, weil

00:52:00.010 --> 00:52:01.910
wie das auch bei mir so ist, das ist es halt,

00:52:02.090 --> 00:52:03.590
ich bin seit zwölf Jahren dabei,

00:52:03.590 --> 00:52:05.830
das erste Mal, dass

00:52:05.830 --> 00:52:07.030
ich jetzt wirklich

00:52:07.030 --> 00:52:09.790
ein Werkzeug bekomme, das

00:52:09.790 --> 00:52:11.850
vernünftig funktioniert. Und das, was

00:52:11.850 --> 00:52:13.710
man früher so immer gemacht hat, wie JQuery und sowas,

00:52:13.830 --> 00:52:15.630
definiere ich nicht als

00:52:15.630 --> 00:52:17.030
vernünftig funktionieren.

00:52:18.030 --> 00:52:19.570
Also man kommt damit

00:52:19.570 --> 00:52:21.450
erstaunlich, aber das hat nie wirklich gut

00:52:21.450 --> 00:52:21.790
funktioniert.

00:52:24.310 --> 00:52:25.490
Wobei ich eine Sache

00:52:25.490 --> 00:52:27.530
hinzufügen würde, etwas, was ich in letzter Zeit auch

00:52:27.530 --> 00:52:29.570
häufiger mache und wo ich auch denke, oh, das ist

00:52:29.570 --> 00:52:31.230
auch alles gar nicht schlecht und es geht in die richtige Richtung,

00:52:31.790 --> 00:52:32.910
sind halt so Web-Components.

00:52:32.910 --> 00:52:34.210
Das ist eigentlich auch ganz nett.

00:52:34.830 --> 00:52:37.230
Da muss man dann halt JavaScript schreiben. Das ist halt so ein bisschen doof.

00:52:38.050 --> 00:52:39.090
Aber man kann

00:52:39.090 --> 00:52:41.010
halt irgendwie, das hält sich dann halt

00:52:41.010 --> 00:52:42.950
in Grenzen. Und man

00:52:42.950 --> 00:52:44.990
weiß halt, das habe ich letztens

00:52:44.990 --> 00:52:47.150
wieder erlebt und das tut jedes Mal weh,

00:52:47.570 --> 00:52:49.030
größere Projekte,

00:52:49.090 --> 00:52:50.110
die man lange nicht angefasst hat,

00:52:50.410 --> 00:52:52.170
das ist immer schmerzhaft.

00:52:52.610 --> 00:52:53.770
Also wenn man jetzt irgendwie

00:52:53.770 --> 00:52:56.850
da so, zum Beispiel das war jetzt

00:52:56.850 --> 00:52:58.710
mein View-Projekt, es ist halt

00:52:58.710 --> 00:53:00.730
irgendwas geht nicht mehr

00:53:00.730 --> 00:53:02.590
und es dauert immer, bis man rausgefunden hat,

00:53:02.590 --> 00:53:04.670
was denn da jetzt eigentlich das Problem ist und bis das alles

00:53:04.670 --> 00:53:05.770
wieder rund läuft und dann

00:53:05.770 --> 00:53:08.570
vergehen vielleicht auch noch mal ein paar Tage oder

00:53:08.570 --> 00:53:10.690
Wochen, bis man wirklich alles gefunden hat, was vielleicht nicht mehr

00:53:10.690 --> 00:53:12.410
ging, weil manchmal war es das nicht so offensichtlich

00:53:12.410 --> 00:53:14.710
und das ist einfach total nervtötend.

00:53:14.990 --> 00:53:16.310
Also und

00:53:16.310 --> 00:53:18.570
genau, das Problem hat man mit Web Components

00:53:18.570 --> 00:53:20.630
halt auch nicht, weil das ist halt Standard und

00:53:20.630 --> 00:53:22.170
wenn das jetzt funktioniert,

00:53:22.330 --> 00:53:24.530
funktioniert das in 10 Jahren

00:53:24.530 --> 00:53:26.050
halt auch noch ganz genauso und

00:53:26.050 --> 00:53:26.910
ja.

00:53:28.270 --> 00:53:30.710
Tatsächlich haben wir jetzt in dem Projekt mal Django Components

00:53:30.710 --> 00:53:32.430
ausprobiert, das ist ja auch eine von diesen vielen

00:53:32.430 --> 00:53:34.890
ansetzen, da gibt es ja auch Django Slippers und wie die alle heißen,

00:53:35.610 --> 00:53:35.830
um

00:53:35.830 --> 00:53:36.030
um

00:53:36.030 --> 00:53:36.930
um

00:53:36.930 --> 00:53:41.830
im Endeffekt dieses Komponentendenken

00:53:42.390 --> 00:53:43.990
in die Django-Welt

00:53:43.990 --> 00:53:46.450
zu bringen, weil de facto die Django-Template-Welt

00:53:46.450 --> 00:53:48.170
ist ja immer noch, wie sie vor 15 Jahren

00:53:48.170 --> 00:53:49.410
mal irgendwann angefangen hat

00:53:49.410 --> 00:53:51.970
und da zu überlegen, dass man Komponenten

00:53:51.970 --> 00:53:53.730
bauen möchte, vor allem in so einer Kombination mit Tailwind,

00:53:54.130 --> 00:53:56.410
die ja dann eher diese Utility-Based-Klasse,

00:53:56.570 --> 00:53:57.790
also ein normales

00:53:57.790 --> 00:54:00.090
Tailwind-Div hat noch 10, 15

00:54:00.090 --> 00:54:00.570
Klassen,

00:54:00.570 --> 00:54:02.730
so, das eskaliert ziemlich

00:54:02.730 --> 00:54:04.770
hart. Ich finde es gut, aber

00:54:04.770 --> 00:54:06.710
wie gesagt, es ist nicht schön

00:54:06.710 --> 00:54:09.010
anzugucken und von daher die Sachen eher zu kapseln

00:54:09.010 --> 00:54:10.790
und zu sagen, ich habe jetzt nicht, wie bei Bootstrap

00:54:10.790 --> 00:54:12.670
zum Beispiel früher, ich habe hier

00:54:12.670 --> 00:54:14.590
eine Button-Class und dann sieht dieser Button halt so aus, wenn ich

00:54:14.590 --> 00:54:16.870
überschreiben muss, bin ich halt arm dran,

00:54:17.110 --> 00:54:17.970
dann wird es schwierig,

00:54:18.730 --> 00:54:20.790
sondern dass man wirklich die Sachen individuell

00:54:20.790 --> 00:54:22.690
mit diesen Klassen halt definieren kann, ohne halt

00:54:22.690 --> 00:54:24.630
die ganze CSS-Magie dahinter 100% verstehen

00:54:24.630 --> 00:54:26.490
zu müssen und da

00:54:26.490 --> 00:54:28.550
diese Komponenten in der Django-Welt

00:54:28.550 --> 00:54:30.390
zu machen, klingt super interessant,

00:54:30.570 --> 00:54:32.430
Das konnte man vorher auch schon mit Includes machen.

00:54:32.450 --> 00:54:34.470
Ja, genau, mit Includes. Es gibt auch eine neue Version

00:54:34.470 --> 00:54:35.810
von Includes irgendwie, die das so ein bisschen

00:54:35.810 --> 00:54:38.350
zwischenspeichern können irgendwie auch.

00:54:38.910 --> 00:54:40.250
Ja, auf jeden Fall, da gibt es Packages,

00:54:40.350 --> 00:54:42.090
die explizit dafür da sind, um diese

00:54:42.090 --> 00:54:44.450
Frontend-Learnings auch in die Django-Welt

00:54:44.450 --> 00:54:46.310
zu bringen. Wir haben uns jetzt für Django-Components entschieden.

00:54:46.910 --> 00:54:48.290
Das scheint auch okay gut zu

00:54:48.290 --> 00:54:50.530
funktionieren. Habe auch von einem Freund gehört,

00:54:50.610 --> 00:54:52.370
der das ausprobiert hat, der da meinte, dass er damit

00:54:52.370 --> 00:54:54.510
gut und der eigentlich auch sehr viel und gerne

00:54:54.510 --> 00:54:55.910
im Frontend gemacht hat, jetzt aber aus

00:54:55.910 --> 00:54:58.450
besagten Effizienzgründen halt gewechselt ist.

00:55:00.150 --> 00:55:00.510
Und

00:55:00.510 --> 00:55:15.230
Genau, das ist auf jeden Fall eine interessante Sache. Also wer sich damit beschäftigt und halt ein Frontend bauen möchte, für das man sich in 2024 nicht schämen muss, dann glaube ich ist diese HTML, Excel, Python, JS und dann irgendwas an diesen Komponentenlibraries, die sich gerade, die emergieren gerade alle.

00:55:15.230 --> 00:55:17.250
also ich glaube, da gibt es noch nicht so diesen de facto Standard,

00:55:18.070 --> 00:55:21.450
aber wenn man sich da so ein bisschen reinliest, da findet man relativ,

00:55:22.170 --> 00:55:25.350
also nicht viel, viel, aber da gibt es auf jeden Fall schon Inhalte

00:55:25.350 --> 00:55:28.150
und da kann man sich am Ende vielleicht auch irgendwas aussuchen,

00:55:28.210 --> 00:55:31.910
das ist alles nicht so kompliziert, was einem gefällt.

00:55:32.850 --> 00:55:37.130
Habt ihr mal schon mal herumgespielt mit dem HTMX-Ding für Mobile?

00:55:38.170 --> 00:55:42.310
Also in einem Hypermedia-Systems-Buch, das letzte Kapitel,

00:55:42.310 --> 00:55:46.430
wo es dann darum geht, dass man das Ganze auch in Mobile einsetzen kann

00:55:46.430 --> 00:55:47.690
oder soll oder so.

00:55:48.430 --> 00:55:50.210
Als so

00:55:50.210 --> 00:55:58.310
Ja, so eine Art von XML-Endpunkt, die dann irgendwie gerendert werden kann

00:55:58.310 --> 00:56:01.170
von, ich glaube React war es tatsächlich, React Native

00:56:01.170 --> 00:56:06.010
und dann Apps hat auf dem Telefon, die dann diese einzelnen Komponenten

00:56:06.010 --> 00:56:09.030
halt mitziehen können, einfach von deinem normalen Endpunkt.

00:56:09.030 --> 00:56:10.370
Klingwild.

00:56:10.810 --> 00:56:12.090
Ich habe es noch nicht

00:56:12.090 --> 00:56:14.230
angeguckt.

00:56:15.190 --> 00:56:16.090
Also ich habe auch für

00:56:16.090 --> 00:56:18.910
so mobile finde ich

00:56:18.910 --> 00:56:20.510
eigentlich so die Webviews oder wie

00:56:20.510 --> 00:56:23.090
heißen die noch? Progressive Web Apps.

00:56:23.270 --> 00:56:23.370
Genau.

00:56:24.550 --> 00:56:26.470
Ist eigentlich eine sehr schicke Geschichte.

00:56:26.630 --> 00:56:28.990
Geht auf iOS auch deutlich mehr inzwischen als

00:56:28.990 --> 00:56:30.490
früher. Wurden die nicht irgendwie gebannt?

00:56:31.330 --> 00:56:31.590
Nee.

00:56:32.310 --> 00:56:34.910
Apple hat da gedroht, aber das ist dann nicht

00:56:34.910 --> 00:56:35.190
passiert.

00:56:36.390 --> 00:56:36.870
Glücklicherweise.

00:56:36.870 --> 00:56:38.690
hat doch ein bisschen zu viel

00:56:38.690 --> 00:56:39.490
Gegenwind gegeben.

00:56:41.450 --> 00:56:42.950
Und ich denke,

00:56:43.070 --> 00:56:44.810
dass man vieles, was halt man

00:56:44.810 --> 00:56:47.010
irgendwie vielleicht mit nativen

00:56:47.010 --> 00:56:48.450
Apps früher gemacht hat, auch mit

00:56:48.450 --> 00:56:50.990
Progressive Web Apps

00:56:50.990 --> 00:56:51.790
hinbekommt.

00:56:53.770 --> 00:56:54.890
Ansonsten sind halt die

00:56:54.890 --> 00:56:57.130
Mobile-Geschichten halt immer so eine komplizierte

00:56:57.130 --> 00:56:59.290
Geschichte, wenn man da wirklich eigene...

00:56:59.290 --> 00:57:01.070
Ich meine, für manche Sachen, wenn man

00:57:01.070 --> 00:57:03.170
eh dafür ein Team hat und genug

00:57:03.170 --> 00:57:04.290
Geld, dann...

00:57:04.290 --> 00:57:06.070
Ich würde das tatsächlich irgendwie mal ausprobieren.

00:57:06.070 --> 00:57:07.810
für diesen Ansatz ganz cool,

00:57:08.110 --> 00:57:09.570
Hikar Media für

00:57:09.570 --> 00:57:12.730
Mobile

00:57:12.730 --> 00:57:14.450
auszuprobieren. Das klingt irgendwie super.

00:57:14.690 --> 00:57:16.330
Das ist derselbe Standard da

00:57:16.330 --> 00:57:17.090
und derselbe Prinzip.

00:57:17.850 --> 00:57:20.110
Das ist eigentlich, glaube ich, eine ganz gute Überleitung zu dem

00:57:20.110 --> 00:57:21.770
nächsten Minithema, nämlich

00:57:21.770 --> 00:57:23.890
Lightning Talks. Wer es nicht kennt,

00:57:25.110 --> 00:57:25.830
die Lightning Talks,

00:57:25.990 --> 00:57:28.150
das ist bei den Django-Cons zumindest, ich war noch

00:57:28.150 --> 00:57:30.070
auf keiner anderen Konferenz, aber ich glaube, es gibt

00:57:30.070 --> 00:57:32.250
auch andere Konferenzen, die ist jetzt am Ende des Tages

00:57:32.250 --> 00:57:34.110
fünf bis zehn Leute

00:57:34.110 --> 00:57:36.150
einen hart getimten

00:57:36.150 --> 00:57:38.210
fünf Minuten Maximalfortrag halten

00:57:38.210 --> 00:57:40.370
können über irgendein Thema. Das heißt, die Vorbereitung

00:57:40.370 --> 00:57:42.270
ist sehr gering bis nicht

00:57:42.270 --> 00:57:43.830
vorhanden bei den Leuten.

00:57:43.950 --> 00:57:46.430
Der coolste Vortrag, den ich

00:57:46.430 --> 00:57:47.030
gehört habe, war Fuck it.

00:57:48.590 --> 00:57:48.970
Zwei Minuten.

00:57:50.150 --> 00:57:51.870
Die Idee dahinter ist einfach,

00:57:52.270 --> 00:57:54.130
genau das, was du gerade gesagt hast. Ey, ich habe dann im Buch

00:57:54.130 --> 00:57:55.730
dieses Kapitel gelesen, finde ich total spannend,

00:57:55.950 --> 00:57:57.570
habe ich noch nicht ausprobiert, wollte ich mal mitgeben.

00:57:57.990 --> 00:58:00.290
Oder, was ich vorhin gemacht habe, ey, es gibt Jungle Components,

00:58:00.390 --> 00:58:01.430
wer sich dafür interessiert,

00:58:02.010 --> 00:58:03.830
schau ich das mal an. Und da ist

00:58:03.830 --> 00:58:05.750
normalerweise die Informationsdichte

00:58:05.750 --> 00:58:08.110
sehr hoch und auch die Unterhaltungsdichte

00:58:08.110 --> 00:58:10.130
sehr hoch, weil natürlich Leute auch dann einfach mal einen Spaßvortrag

00:58:10.130 --> 00:58:12.010
machen oder irgendwas

00:58:12.010 --> 00:58:13.550
Absurdes aus ihrem Alltag erzählen.

00:58:14.230 --> 00:58:15.810
Ja, oder kannst du deine Ukulele mitbringen.

00:58:16.570 --> 00:58:17.250
Ja, genau.

00:58:17.790 --> 00:58:19.890
Und ich finde, wir haben jetzt das auch

00:58:19.890 --> 00:58:21.050
bei uns intern,

00:58:21.610 --> 00:58:23.530
in meiner Firma,

00:58:24.970 --> 00:58:25.490
bei den

00:58:25.490 --> 00:58:27.830
internen Barcamps so gemacht, dass wir

00:58:27.830 --> 00:58:29.510
auch einen expliziten Lightning-Talk-Block haben,

00:58:29.870 --> 00:58:31.830
weil viel von so Content-

00:58:32.490 --> 00:58:33.630
Teilen und Wissensmanagement

00:58:33.630 --> 00:58:35.930
scheitert daran, dass die Leute sich wirklich aufraffen müssen,

00:58:36.430 --> 00:58:37.970
Sachen vorzubereiten, Sachen zu recherchieren.

00:58:38.070 --> 00:58:39.790
Es gibt gewisse Ansprüche, die Leute an sich haben.

00:58:40.250 --> 00:58:41.710
Es gibt vielleicht Erwartungshaltungen,

00:58:41.830 --> 00:58:43.810
die existieren mögen oder auch nicht existieren

00:58:43.810 --> 00:58:45.630
mögen. Aber so ein Lightning Talk gibt es

00:58:45.630 --> 00:58:47.790
das halt nicht. Du stellst dich da hin oder in dem Fall

00:58:47.790 --> 00:58:49.610
jetzt in der Post-Corona

00:58:49.610 --> 00:58:51.570
neuen Moderne, du sitzt dann hinter, vor deiner

00:58:51.570 --> 00:58:53.510
Webcam und teilst dann halt kurz

00:58:53.510 --> 00:58:55.630
deinen Browser oder deine zwei Slides und

00:58:55.630 --> 00:58:57.730
sagst, Leute, das habe ich gesehen, das habe ich gelernt

00:58:57.730 --> 00:58:59.550
voll gut oder auch

00:58:59.550 --> 00:59:01.370
voll kacke. Und

00:59:01.370 --> 00:59:03.230
und das ist ein echt cooles Format,

00:59:03.310 --> 00:59:04.650
den man auch, wie gesagt, gut, glaube ich,

00:59:04.690 --> 00:59:08.210
in Firmen oder auf Meetups auch sehr gut,

00:59:08.250 --> 00:59:09.870
wir haben mal einmal vor ein paar Monaten,

00:59:10.330 --> 00:59:11.430
ich glaube im Februar diesen Jahres,

00:59:11.510 --> 00:59:13.290
haben wir eine komplette Lightning Talk Session gemacht

00:59:13.290 --> 00:59:16.510
beim Django Meetup Köln hier

00:59:16.510 --> 00:59:19.190
und das ist echt ein cooles Format,

00:59:19.710 --> 00:59:22.170
was viele von den Problemen löst,

00:59:22.270 --> 00:59:23.110
die man sonst so hat,

00:59:23.270 --> 00:59:26.010
wenn man Content teilen möchte.

00:59:26.110 --> 00:59:26.550
Ja, ich finde auch,

00:59:26.630 --> 00:59:27.950
also gerade in jedem Format,

00:59:28.030 --> 00:59:29.710
also das irgendwie für Konferenzen oder Barcamp

00:59:29.710 --> 00:59:30.710
oder was man auch immer hat,

00:59:30.710 --> 00:59:34.310
zusammenarbeitet, ist dieses Lightning Camp, äh, Lightning Camp, sag ich mal,

00:59:34.570 --> 00:59:38.030
das Lightning Talk-Format echt cool geeignet, um so ein bisschen

00:59:38.030 --> 00:59:42.170
lockere Atmosphäre reinzubringen. Entweder am Ende eines Tages oder am Anfang von diesem,

00:59:42.390 --> 00:59:46.270
wir teilen uns in irgendwelche Sessions auf, so kurze Slots, selbst wenn es nur eine Viertelstunde ist,

00:59:46.310 --> 00:59:50.490
zwei Minuten oder eine halbe oder sowas, um so ein bisschen mit den Leuten so reinzukommen.

00:59:50.570 --> 00:59:54.390
Das ist echt schön. Ich glaube auch außerhalb vom Coding, ehrlicherweise. Man muss halt, glaube ich, immer noch so

00:59:54.390 --> 00:59:58.450
auffassen, dass man halt wirklich hart guckt, dass die nicht überschritten werden, weil einige Leute

00:59:58.450 --> 01:00:00.430
dann ihr Co-Referat halten, das dann doch ein bisschen länger wird.

01:00:01.770 --> 01:00:02.390
Ja, das

01:00:02.390 --> 01:00:04.290
nervt die meisten immer, glaube ich.

01:00:04.950 --> 01:00:06.550
Und eine andere super Sache

01:00:06.550 --> 01:00:08.490
ist halt auch einfach mal ein Gefühl zu bekommen, ob man

01:00:08.490 --> 01:00:10.430
selber mal einen Vortrag halten möchte. Eingangs habe ich ja gesagt,

01:00:10.470 --> 01:00:11.870
das war echt eine richtig coole Erfahrung

01:00:11.870 --> 01:00:14.310
und ich habe auf der letzten

01:00:14.310 --> 01:00:15.470
Konferenz in Edinburgh

01:00:15.470 --> 01:00:18.350
habe ich auch einfach mal einen Lightning Talk gehalten,

01:00:18.650 --> 01:00:20.470
um mal zu sehen, um mal so

01:00:20.470 --> 01:00:22.350
den Fuß ins Wasser zu halten, wie ist das

01:00:22.350 --> 01:00:22.770
überhaupt?

01:00:22.770 --> 01:00:23.250
Über was?

01:00:24.610 --> 01:00:25.910
Um den Fuß ins Wasser zu halten.

01:00:26.510 --> 01:00:27.790
Ach so, den Fuß ins Wasser zu halten.

01:00:28.450 --> 01:00:29.210
Nein.

01:00:29.690 --> 01:00:32.110
Nur Füße und Wasser.

01:00:32.890 --> 01:00:34.010
Angeln mit den Fäden.

01:00:34.010 --> 01:00:34.550
Das war die Frage.

01:00:36.630 --> 01:00:37.750
Ich habe tatsächlich

01:00:37.750 --> 01:00:39.590
keine Ahnung. Ich habe dieses Jahr

01:00:39.590 --> 01:00:42.010
einen über meinen Django Migration Zero

01:00:42.010 --> 01:00:43.330
Package gehalten.

01:00:43.690 --> 01:00:46.090
Ich beantworte meine Frage aber mit diesem Jahr,

01:00:46.150 --> 01:00:47.350
weil ich es beim letzten Mal vergessen habe.

01:00:48.370 --> 01:00:49.910
Ist ganz cool. Es ist ein Pattern, das hat sich

01:00:49.910 --> 01:00:51.890
2018 jemand ausgedacht. Wer schon mal

01:00:51.890 --> 01:00:53.510
mit Django Migrations gearbeitet hat

01:00:53.510 --> 01:00:55.730
und länger auf einem Projekt war, weiß, da sammeln sich

01:00:55.730 --> 01:00:57.550
ziemlich viele Migrations nach kürzester Zeit an.

01:00:57.550 --> 01:00:59.810
diese Migrations, wenn man

01:00:59.810 --> 01:01:01.850
die volle Kontrolle über seine Datenbank

01:01:01.850 --> 01:01:03.690
hat, also zum Beispiel beim Package hat man das nicht, weil

01:01:03.690 --> 01:01:05.810
das installiert sich irgendjemand und dann macht irgendwer was

01:01:05.810 --> 01:01:07.810
damit, das ist außerhalb der

01:01:07.810 --> 01:01:09.910
Macht des Creators, aber in so einer klassischen

01:01:09.910 --> 01:01:11.890
Applikation, die man baut, hat man eigentlich die volle

01:01:11.890 --> 01:01:13.610
Kontrolle über die Datenbanken, dann ist

01:01:13.610 --> 01:01:15.470
irgendwann es auf dem letzten

01:01:15.470 --> 01:01:17.810
Product-Release-System angekommen und die Migrationen haben de facto

01:01:17.810 --> 01:01:19.790
eigentlich keinen Wert mehr, außer vielleicht einen historischen,

01:01:20.170 --> 01:01:21.970
der aber auch sehr relativ zu sehen ist,

01:01:22.290 --> 01:01:24.010
weil abgesehen von natürlich Kasten-Daten-Migration

01:01:24.010 --> 01:01:25.810
die ganzen Sachen auch im Git irgendwie, die ganzen

01:01:25.810 --> 01:01:27.230
Model-Änderungen hinterlegt sind.

01:01:27.550 --> 01:01:45.270
Viele Migrationen führen dazu, dass die Tests langsamer laufen, dass die Testdatenbank aufgebaut wird, weil oft ist es ja so, dass es ja nicht ist, man fügt immer was hinzu, sondern da kommt was hinzu, dann kommt wieder was weg, dann habe ich was geändert, dann habe ich zum 18. Mal irgendwas geändert und Django bietet dafür eine Möglichkeit an, das nennt sich Squash Migrations, um das aufzuräumen.

01:01:45.270 --> 01:01:47.250
Das Problem ist, das kann sehr, sehr

01:01:47.250 --> 01:01:49.010
schlecht mit Circular Imports umgehen.

01:01:49.850 --> 01:01:50.330
Also sprich,

01:01:50.810 --> 01:01:53.170
ich habe einen User und der hat ein Projekt und

01:01:53.170 --> 01:01:55.630
das Projekt hat, keine Ahnung,

01:01:55.750 --> 01:01:57.430
Kommentare und die Kommentare haben wir den User.

01:01:57.990 --> 01:01:59.330
Das heißt, man muss dann, wenn man

01:01:59.330 --> 01:02:00.950
das macht, diese Migration

01:02:00.950 --> 01:02:03.230
sehr stark auseinanderziehen.

01:02:03.350 --> 01:02:04.950
Wie man das auch bei Circular Imports machen würde,

01:02:05.030 --> 01:02:06.310
das ist ja generell das Python-Thema.

01:02:07.410 --> 01:02:08.930
Und das ist sehr, sehr mühsam,

01:02:09.110 --> 01:02:09.750
was dazu führt.

01:02:09.750 --> 01:02:13.830
Und wie das halt dann immer so ist

01:02:13.830 --> 01:02:14.870
mit Sachen, die mühsam sind.

01:02:15.270 --> 01:02:17.190
Leute machen sie nicht. Umso einfacher Sachen sind,

01:02:17.390 --> 01:02:19.250
umso schneller und umso besser werden sie getan.

01:02:19.710 --> 01:02:21.450
Es gibt einen Pattern, das nennt sich Migration Zero

01:02:21.450 --> 01:02:23.270
und das hat sich jemand

01:02:23.270 --> 01:02:25.210
bei Medium 2018 ausgedacht,

01:02:25.290 --> 01:02:27.530
da sitzt er schon eine Weile und die Idee ist halt einfach

01:02:27.530 --> 01:02:29.370
auf Deutsch gesagt, du löscht halt

01:02:29.370 --> 01:02:31.430
einfach alles, haust alles weg, was du hast und lässt

01:02:31.430 --> 01:02:33.490
einfach Django initial

01:02:33.490 --> 01:02:35.110
neue Migrationen erstellen.

01:02:35.410 --> 01:02:37.350
Das klappt auch für große Projekte

01:02:37.350 --> 01:02:39.570
sehr gut. Also ich hatte das beim richtig großen Projekt

01:02:39.570 --> 01:02:41.450
mit großem Entwicklungsteam,

01:02:41.530 --> 01:02:43.370
fünf, sechs Jahre Laufzeit, hatte ich einen

01:02:43.370 --> 01:02:47.610
Mini-Konflikt, der aber auch so offensichtlich war, dass ich ihn sofort lösen konnte. Also es war wirklich gar kein Problem.

01:02:48.350 --> 01:02:50.390
Und da habe ich halt dann dieses Package gebaut, das dieses

01:02:50.390 --> 01:02:55.410
Pattern implementiert und das ist im Endeffekt ein zweistufiges Ding. Einmal habe ich einen Helfer

01:02:55.410 --> 01:02:59.490
gebaut, der halt einem Verein quasi durch alle Apps geht, die Sachen aufräumt, weil das tatsächlich auch,

01:02:59.530 --> 01:03:03.150
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.910 --> 01:03:07.290
Und das Zweite ist ein Skript, das in die Pipeline geht, weil Django hat ja alle

01:03:07.290 --> 01:03:11.330
Migrationen, werden in der Datenbank in so einem Log,

01:03:11.330 --> 01:03:13.510
in so einer Historientabelle hinterlegt, da quasi

01:03:13.510 --> 01:03:15.650
noch die Änderungen anpasst.

01:03:15.710 --> 01:03:17.130
Das heißt, du kannst es einfach in die Pipeline hängen,

01:03:17.490 --> 01:03:19.370
du hast den Django-Admin in Switch, du sagst, ja,

01:03:19.470 --> 01:03:21.150
jetzt habe ich Migration gelöscht, jetzt bitte beim nächsten

01:03:21.150 --> 01:03:23.590
Deployment, bereite bitte

01:03:23.590 --> 01:03:25.450
die Datenbank auf, um diesen Prozess zu

01:03:25.450 --> 01:03:27.430
streamlinen. Und das ist ein Thema,

01:03:27.470 --> 01:03:29.270
das verkauft sich sehr schwer, weil

01:03:29.270 --> 01:03:31.430
es ist halt, wie wahrscheinlich es auch

01:03:31.430 --> 01:03:33.110
der geneigte Zuhörer gemerkt hat,

01:03:33.610 --> 01:03:35.450
relativ tief und auch nur

01:03:35.450 --> 01:03:37.470
so ein Edge-Case. Eigentlich sollte man es tun, aber so richtig Lust hat

01:03:37.470 --> 01:03:38.050
da keiner drauf.

01:03:38.610 --> 01:03:41.310
Ich weiß, du hast mir schon mal drüber gefallen, dass wir irgendwie dann Migrations erinnert haben,

01:03:41.330 --> 01:03:42.850
und Bum, oh, Datenbank nicht.

01:03:43.290 --> 01:03:45.530
Genau, und ja, aus dem Grund

01:03:45.530 --> 01:03:47.510
fand ich das eigentlich für ein Lightning Talk ein ganz cooles

01:03:47.510 --> 01:03:49.410
Thema, weil so war das den Leuten so, Leute, wenn ihr das

01:03:49.410 --> 01:03:51.290
Problem habt, guckt euch das an, das gibt's.

01:03:51.870 --> 01:03:53.430
Ich habe dabei, als ich das

01:03:53.430 --> 01:03:55.250
Package gemacht habe, auch direkt noch eine zweite Sache gelernt.

01:03:56.210 --> 01:03:57.310
Es ist super, wenn man einen

01:03:57.310 --> 01:03:59.270
coolen Namen für sein Package hat, man sollte aber vorher gucken,

01:03:59.330 --> 01:04:01.210
ob der vielleicht schon belegt ist, weil

01:04:01.210 --> 01:04:02.730
es gibt nämlich ein

01:04:02.730 --> 01:04:05.490
Django Zero Migration

01:04:05.490 --> 01:04:07.370
und Migration Zero ohne Django,

01:04:07.370 --> 01:04:08.590
glaube ich, bin ich ganz sicher.

01:04:08.690 --> 01:04:10.210
Du hast es dann Zero Migration 2 genannt.

01:04:10.210 --> 01:04:12.710
Django Migration Zero gab es tatsächlich

01:04:12.710 --> 01:04:14.830
noch nicht, aber es ist

01:04:14.830 --> 01:04:16.870
natürlich trotzdem allein schon wegen SEO extrem

01:04:16.870 --> 01:04:18.910
blöd, wenn halt dann Leute ständig aus falschem

01:04:18.910 --> 01:04:20.470
Package kommen, weil das andere halt schon seit 2014

01:04:20.470 --> 01:04:21.830
da rumsitzt mit einem Commit

01:04:21.830 --> 01:04:24.950
Genau, von daher, wenn ihr mal ein Package

01:04:24.950 --> 01:04:26.950
erstellt, dann checkt vorher die Namen ab, das hilft

01:04:26.950 --> 01:04:28.810
Genau

01:04:28.810 --> 01:04:30.670
Jochen sollte das Package unbedingt mal benutzen

01:04:30.670 --> 01:04:32.890
Ich habe ja gestern nochmal über die Schultern geguckt, als du Django Cast

01:04:32.890 --> 01:04:34.910
migriert hast und irgendwie wie viele Migrations

01:04:34.910 --> 01:04:36.710
da dann von weg herangekommen sind, das waren ja hunderte

01:04:36.710 --> 01:04:38.710
Ich habe mir das auch überlegt, dass ich das überall

01:04:38.710 --> 01:04:41.130
wegschmeißen möchte. Aber dann denke ich mir immer,

01:04:41.170 --> 01:04:43.090
das sollte ich vielleicht dann machen, wenn sich an der Datenbank

01:04:43.090 --> 01:04:44.710
nicht mehr so viel an der Datenbank aus der Datenbank zieht.

01:04:45.730 --> 01:04:47.250
Genau, aber ich werde das auf jeden Fall

01:04:47.250 --> 01:04:49.070
tun. Ich würde mich freuen, wenn du mein Package

01:04:49.070 --> 01:04:51.030
ausprobieren würdest. Ja, kann ich mal

01:04:51.030 --> 01:04:53.090
probieren, genau. Aber das

01:04:53.090 --> 01:04:55.030
Problem ist auch bei mir, es ist halt

01:04:55.030 --> 01:04:57.090
eine blöde Art Library und ich werde Leuten...

01:04:57.890 --> 01:04:58.930
Bei der Library geht es eh nicht.

01:04:59.130 --> 01:05:01.210
Da musst du ja mit Squashen

01:05:01.210 --> 01:05:01.570
arbeiten.

01:05:03.230 --> 01:05:05.110
Du weißt ja nicht, in welchem Stand

01:05:05.110 --> 01:05:07.210
quasi die letzte Person

01:05:07.210 --> 01:05:08.070
dein Package,

01:05:08.850 --> 01:05:10.950
die Person dein Package nutzen.

01:05:11.910 --> 01:05:13.050
Ja, vielleicht werde ich

01:05:13.050 --> 01:05:15.210
bei irgendeiner Major-Version...

01:05:15.210 --> 01:05:17.230
Release-Update und wer weiß,

01:05:17.310 --> 01:05:19.170
wie viele Leute außer Jochen sein Jochen-Paket sind.

01:05:19.190 --> 01:05:20.530
Ja, ich kann sagen, dass es nicht so viele sind.

01:05:20.650 --> 01:05:21.250
Das ist schon richtig.

01:05:23.410 --> 01:05:25.350
Schieße ich nur in meinen Fuß

01:05:25.350 --> 01:05:26.890
und nicht in den Fuß von noch 100 anderen Leuten.

01:05:27.710 --> 01:05:28.730
Das kann ich vertreten.

01:05:29.010 --> 01:05:30.030
Das Risiko von Open Source.

01:05:30.830 --> 01:05:32.930
Man kann ja dann downgraden.

01:05:34.930 --> 01:05:35.710
Datenbank brennt.

01:05:35.830 --> 01:05:36.830
Sorry, downgrade einfach.

01:05:37.210 --> 01:05:39.470
Ja, ja, ja, ja

01:05:39.470 --> 01:05:41.070
aber ja, das ist ein Problem

01:05:41.070 --> 01:05:43.130
ich meine, das ist auch so ein Problem wie bei so Projekten

01:05:43.130 --> 01:05:44.550
wie zum Beispiel Wagtail

01:05:44.550 --> 01:05:47.010
da hat sich halt, es ist ja auch schon recht alt

01:05:47.010 --> 01:05:49.130
und das ist halt auch, das verwendet man ja auch

01:05:49.130 --> 01:05:50.790
als Library und da hat sich so viel Zeug

01:05:50.790 --> 01:05:52.710
angesammelt, dass halt das mit dem Testen

01:05:52.710 --> 01:05:54.850
also, wenn man jetzt quasi

01:05:54.850 --> 01:05:57.130
und mein Paket hängt zum Beispiel auch von Wagtail ab

01:05:57.130 --> 01:05:59.170
deshalb muss ich für alle Tests

01:05:59.170 --> 01:06:01.170
und so immer so Wege drumherum finden, dass ich

01:06:01.170 --> 01:06:03.210
auf jeden Fall beim Testen nicht die Migration

01:06:03.210 --> 01:06:05.210
laufen lassen muss

01:06:05.210 --> 01:06:07.350
weil sonst werden die Tests irre langsam.

01:06:07.510 --> 01:06:08.470
Also machst du reuse DB.

01:06:09.190 --> 01:06:11.310
Und dann musst du halt dafür ganz hart sorgen, dass alle

01:06:11.310 --> 01:06:12.790
Verschiebungen wieder aufgeräumt werden.

01:06:12.810 --> 01:06:15.090
Minus minus no migrations, genau. Aber dann

01:06:15.090 --> 01:06:16.630
gibt es halt dann so Fälle, wo

01:06:16.630 --> 01:06:18.690
muss man es doch haben. Zum Beispiel

01:06:18.690 --> 01:06:20.350
wenn man dann halt per Tox die ganzen

01:06:20.350 --> 01:06:23.030
unterschiedlichen Versionen durchgeht, dann muss man natürlich

01:06:23.030 --> 01:06:25.190
wenn man jetzt, dann kann man nicht die gleiche Datenbank

01:06:25.190 --> 01:06:27.250
verwenden. Dann muss man halt schon die Datenbank wieder wegschmeißen.

01:06:27.950 --> 01:06:28.590
Es ist

01:06:28.590 --> 01:06:31.210
es geht, aber es ist halt, es ist hacklich.

01:06:31.210 --> 01:06:31.450
Ja.

01:06:32.830 --> 01:06:34.470
Ja, also in der Pipeline.

01:06:35.210 --> 01:07:02.310
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 irgendwie dazwischen sitzen, aufteilen und in Edinburgh war es relativ stark auf der Community Seite.

01:07:02.310 --> 01:07:09.190
also Leute, die über Community-Erfahrungen berichtet haben, wo Parallelen gezogen werden zwischen anderen Arten von Communities.

01:07:10.590 --> 01:07:14.230
Meine Erfahrung, wie ich das erste Mal zu Django contributed habe, solche Geschichten.

01:07:14.570 --> 01:07:19.830
Das ist in Edinburgh von mehreren Leuten die Kritik, dass das halt relativ viel war.

01:07:20.730 --> 01:07:30.530
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:30.530 --> 01:07:32.670
und ich

01:07:32.670 --> 01:07:34.830
sehr happy war mit

01:07:34.830 --> 01:07:36.910
der Themauswahl. Ich meine, wie gesagt, es sind halt immer

01:07:36.910 --> 01:07:38.730
eine große Menge auch von Leuten,

01:07:39.130 --> 01:07:40.950
die das mit Absicht zum

01:07:40.950 --> 01:07:42.790
ersten Mal machen, die

01:07:42.790 --> 01:07:44.430
englisch nicht als Muttersprache haben und sowas.

01:07:44.570 --> 01:07:45.970
Das ist natürlich immer Sachen...

01:07:45.970 --> 01:07:48.910
Ich habe immer gehört, dass Spanien immer so ein bisschen anstrengender ist,

01:07:48.970 --> 01:07:50.850
was so das angeht. Also für Englisch,

01:07:50.950 --> 01:07:52.790
weil halt da Englisch nicht so verbreitet ist und viele Leute

01:07:52.790 --> 01:07:53.650
halt dann nicht so...

01:07:53.650 --> 01:07:56.890
Wir hatten auch, glaube ich, gar nicht so viele Spanier.

01:07:56.890 --> 01:07:58.190
Ich glaube, eine Frau aus

01:07:58.190 --> 01:08:00.470
aus Katalonien, was jetzt so ein bisschen

01:08:00.470 --> 01:08:02.490
definitionsaristisch aus Spanien ist oder nicht.

01:08:04.310 --> 01:08:05.450
Und ansonsten,

01:08:05.630 --> 01:08:06.450
ja, vielleicht ein, zwei,

01:08:06.770 --> 01:08:08.270
aber wie gesagt, generell

01:08:08.270 --> 01:08:10.190
fand ich das diesmal

01:08:10.190 --> 01:08:12.210
gut. Es war sehr angenehm,

01:08:12.270 --> 01:08:13.390
waren viele interessante Sachen dabei.

01:08:14.570 --> 01:08:16.450
Da gab es zum Beispiel einen von Octopus Energy,

01:08:16.550 --> 01:08:18.270
das ist einer von den großen Django-Playern, die auch

01:08:18.270 --> 01:08:20.310
eigentlich immer so mit Platinum-Sponsor bei den Konferenzen

01:08:20.310 --> 01:08:22.390
sind, über Layered Architecture bei Django.

01:08:22.490 --> 01:08:24.070
Ich bin schon sehr gespannt, wenn das Video rauskommt.

01:08:24.070 --> 01:08:25.990
Das war sehr, also bei YouTube werden

01:08:25.990 --> 01:08:28.150
die ja alle veröffentlicht, das war sehr

01:08:28.150 --> 01:08:30.110
sehr viel Information da drin.

01:08:30.330 --> 01:08:32.330
Ich habe mir nur ein ganz, ganz

01:08:32.330 --> 01:08:34.130
paar wenige Fotos gemacht und ich bin sehr

01:08:34.130 --> 01:08:35.410
gespannt, mir das Ganze noch mal in Ruhe

01:08:35.410 --> 01:08:37.090
zu Hause anzuhören.

01:08:38.070 --> 01:08:39.950
Genau, wie geht die Background Workers, die Sache von

01:08:39.950 --> 01:08:42.330
Carlton Gibson, es gab coole Meta-Talks.

01:08:43.390 --> 01:08:43.750
Also das

01:08:43.750 --> 01:08:46.010
fand ich von der Auswahl her, bin ich

01:08:46.010 --> 01:08:47.910
da mit vielen schlauen Gedanken nach Hause

01:08:47.910 --> 01:08:49.650
gegangen. Und

01:08:49.650 --> 01:08:51.970
was ich auch sehr interessant

01:08:51.970 --> 01:08:53.890
fand bezüglich des Community Talks, direkt die

01:08:53.890 --> 01:08:55.730
allererste Keynote ging um

01:08:55.730 --> 01:08:57.990
Django Girls. Das ist eine

01:08:57.990 --> 01:09:01.230
Vereinigung, eine Non-Profit, glaube ich, inzwischen auch,

01:09:01.490 --> 01:09:03.190
die dafür da ist,

01:09:03.910 --> 01:09:04.770
explizit Frauen

01:09:04.770 --> 01:09:07.130
ans Programmieren ranzuführen, weil es ja immer noch

01:09:07.130 --> 01:09:09.030
so ist, dass halt die IT-Branche immer noch

01:09:09.030 --> 01:09:11.030
hart in Männerhand ist und das soll einfach

01:09:11.030 --> 01:09:12.510
vor allem die

01:09:12.510 --> 01:09:14.910
Mädels so ein bisschen ermutigen,

01:09:14.990 --> 01:09:16.730
dass sie das können. Also nicht irgendwie,

01:09:16.950 --> 01:09:19.170
ich glaube, da ist gar nicht so groß der Faktor, dass du da rausgehst.

01:09:19.350 --> 01:09:20.550
Also das ist immer so ein Wochenende-Workshop.

01:09:21.550 --> 01:09:21.670
Genau.

01:09:23.110 --> 01:09:25.030
Und der U-Python ist auch, glaube ich, ein ganzer Workshop

01:09:25.030 --> 01:09:25.810
für Tango Girls.

01:09:25.810 --> 01:09:27.750
hier. Und ich war, als das mal hier

01:09:27.750 --> 01:09:29.670
in Köln war, 2015 glaube ich,

01:09:29.710 --> 01:09:31.350
war ich auch mal da Coach

01:09:31.350 --> 01:09:33.950
und das war eine sehr interessante Erfahrung,

01:09:34.390 --> 01:09:35.430
hat echt Spaß gemacht

01:09:35.430 --> 01:09:37.790
und war

01:09:37.790 --> 01:09:39.690
auch interessant, wie, weil die

01:09:39.690 --> 01:09:41.890
Mädels, da habe ich alle komplett noch nie

01:09:41.890 --> 01:09:43.610
irgendwas programmiert haben, also wirklich,

01:09:43.670 --> 01:09:45.790
die waren komplett bei Null, die drei,

01:09:45.910 --> 01:09:47.850
die in meiner Gruppe waren und wie die da auch unterschiedlich

01:09:47.850 --> 01:09:49.450
rangegangen sind, das war wirklich auch für mich,

01:09:49.830 --> 01:09:51.710
also im Sinne von, man hat ja auch immer wieder mal mit neuen

01:09:51.710 --> 01:09:53.830
Leuten zu tun, wenn mal jemand Neues anfängt, wenn man mal

01:09:53.830 --> 01:09:56.290
Werkstudenten betreut oder sowas. Echt interessant zu sehen,

01:09:57.690 --> 01:10:00.010
dieses Coaching zu machen.

01:10:00.430 --> 01:10:01.970
Und wie gesagt, das ist halt vor zehn Jahren,

01:10:02.050 --> 01:10:04.110
das war jetzt Jubiläum, in Berlin gegründet worden, was ich

01:10:04.110 --> 01:10:04.850
auch ganz cool finde.

01:10:05.830 --> 01:10:08.270
Wenn jemand jemand kennt,

01:10:09.090 --> 01:10:11.650
eine Frau kennt,

01:10:11.830 --> 01:10:13.950
die potenziell sowas Interesse hat,

01:10:13.990 --> 01:10:15.810
die werden immer wieder mal hier und da

01:10:15.810 --> 01:10:16.990
angeboten, diese Workshops.

01:10:17.970 --> 01:10:19.930
Und das ist, glaube ich, echt cool.

01:10:20.250 --> 01:10:21.870
So für einen ersten

01:10:21.870 --> 01:10:23.770
Fuß ins Wasser halten mal wieder.

01:10:23.830 --> 01:10:25.110
und

01:10:25.110 --> 01:10:28.270
die Idee dabei ist, dass die halt im Endeffekt ihre erste

01:10:28.270 --> 01:10:29.990
Django-Seite erstellen und auch

01:10:29.990 --> 01:10:32.210
irgendwo hin deployen und der Fokus ist

01:10:32.210 --> 01:10:34.110
eher darauf, wie du schon gesagt hast, positive

01:10:34.110 --> 01:10:34.850
Bestärkung, denn

01:10:34.850 --> 01:10:38.150
pädagogisch wertvoll.

01:10:38.710 --> 01:10:39.930
Tutorial ist auch relativ gut

01:10:39.930 --> 01:10:41.110
und relativ komplett.

01:10:41.830 --> 01:10:43.370
Wenn man überhaupt in Django ansteigen will,

01:10:43.550 --> 01:10:46.330
hätten wir es früher sagen müssen, die Leute, die jetzt noch drin sind,

01:10:46.470 --> 01:10:48.290
sind wahrscheinlich eher schon tiefer auch in Django,

01:10:48.430 --> 01:10:50.510
aber ja, das kann man weiter verraten.

01:10:50.770 --> 01:10:52.130
Ja, aber das sind dann auch die

01:10:52.130 --> 01:10:54.010
motivierten. Bei denen lohnt sich das dann.

01:10:54.790 --> 01:10:55.950
Ja, vielleicht tragen das dann ihre eigene

01:10:55.950 --> 01:10:57.790
Communitys weiter auf. Du kannst einfach

01:10:57.790 --> 01:10:59.570
in der Linksammlung noch hinzufügen, da freuen die sich.

01:10:59.870 --> 01:11:01.210
Ja, auf jeden Fall.

01:11:02.350 --> 01:11:03.910
Ich habe das auch tatsächlich an die Neulinge

01:11:03.910 --> 01:11:05.910
bei uns mit Dango, auch einmal Dango Girls.

01:11:06.070 --> 01:11:08.050
Also er ist natürlich offizielles Tutorial,

01:11:08.130 --> 01:11:09.970
ist nicht schlecht, aber Dango Girls auch so schönes

01:11:09.970 --> 01:11:11.110
schnelles Einstiegsding.

01:11:11.790 --> 01:11:13.890
Ich erinnere mich gerade, ich war jetzt zu langsam, um da

01:11:13.890 --> 01:11:15.330
einzu... Ich habe mich dann irgendwann

01:11:15.330 --> 01:11:17.910
kurzer Nacht daran erinnert, es gab auch

01:11:17.910 --> 01:11:19.570
jetzt irgendein...

01:11:19.570 --> 01:11:20.830
Muss ich auch nachgucken, welcher das war.

01:11:22.130 --> 01:11:23.730
Podcast-Episode Django Chat mit

01:11:23.730 --> 01:11:25.910
einer von Octopus

01:11:25.910 --> 01:11:27.870
Energy und die

01:11:27.870 --> 01:11:29.990
erzählte da auch irgendwie, ja,

01:11:30.250 --> 01:11:31.490
dass sie halt

01:11:31.490 --> 01:11:34.070
auf so ein

01:11:34.070 --> 01:11:35.490
Problem gestoßen hat, dass sie eigentlich

01:11:35.490 --> 01:11:37.850
nicht wollen, dass in Templates irgendwie

01:11:37.850 --> 01:11:39.310
Datenbank-Queries passieren oder so.

01:11:39.790 --> 01:11:41.850
Und das ist auch etwas, was mir inzwischen

01:11:41.850 --> 01:11:43.850
halt, ich habe ja versucht, so ein bisschen Performance-Optimierung

01:11:43.850 --> 01:11:45.510
zu machen, auch bei den

01:11:45.510 --> 01:11:47.790
Django-Cast-Dingen,

01:11:47.850 --> 01:11:49.510
was ich baue, und

01:11:49.510 --> 01:11:51.370
das ist mir auch ganz böse auf die Füße. Also

01:11:51.370 --> 01:11:53.570
eigentlich, da dachte ich auch so,

01:11:53.610 --> 01:11:55.630
oh ja, eigentlich möchte man nicht,

01:11:55.730 --> 01:11:57.730
also wenn man in Templates Datenbank-Queries

01:11:57.730 --> 01:11:59.530
macht, ganz blöde Idee, die sind dann

01:11:59.530 --> 01:12:01.830
so weit gegangen zu sagen, sie benutzen

01:12:01.830 --> 01:12:03.530
so eine Art Class-Based Views,

01:12:03.590 --> 01:12:05.510
wo sie halt verhindern, also sie nehmen nicht die

01:12:05.510 --> 01:12:07.730
Modelle, sondern sie machen irgendwie da so

01:12:07.730 --> 01:12:09.730
Data-Class-mäßig irgendwie

01:12:09.730 --> 01:12:11.430
Read-Only-Kopien von den Dingern,

01:12:11.750 --> 01:12:13.690
sodass wenn du da irgendwo was versuchst

01:12:13.690 --> 01:12:15.470
aus der Datenbank zu holen, dass das

01:12:15.470 --> 01:12:16.350
halt einfach nicht geht.

01:12:17.510 --> 01:12:18.630
Das kann ich gut verstehen.

01:12:18.630 --> 01:12:20.450
das ist eine, also du willst eigentlich

01:12:20.450 --> 01:12:22.330
wenn du zum Beispiel deine Daten

01:12:22.330 --> 01:12:24.490
die Anzahl der Datenbankquerys in der Kontrolle behalten willst

01:12:24.490 --> 01:12:26.510
willst du halt irgendeinen Punkt haben, wo du sagst

01:12:26.510 --> 01:12:28.390
also hier, da sind alle Queries

01:12:28.390 --> 01:12:30.370
und ich mache nirgendwo anders welche, weil

01:12:30.370 --> 01:12:32.690
das ist so schwer

01:12:32.690 --> 01:12:34.530
zu containen, wenn man

01:12:34.530 --> 01:12:36.610
wenn da irgendwas passieren kann, dass das

01:12:36.610 --> 01:12:38.650
halt ganz blöde Performance-

01:12:38.650 --> 01:12:40.610
Implikationen hat. Und wo man dann quasi

01:12:40.610 --> 01:12:42.570
durch das Frontend auch Angriffe machen kann oder was?

01:12:42.990 --> 01:12:44.390
Ne, Angriffe, also es ist einfach

01:12:44.390 --> 01:12:46.470
irgendwie, das ist halt

01:12:46.470 --> 01:12:47.070
unheimlich

01:12:47.070 --> 01:12:50.030
macht Dinge halt deutlich langsamer

01:12:50.030 --> 01:12:51.790
und man weiß gar nicht so, warum

01:12:51.790 --> 01:12:52.350
irgendwie.

01:12:53.530 --> 01:12:54.670
Und ja,

01:12:55.650 --> 01:12:56.410
also zum Beispiel...

01:12:56.410 --> 01:12:59.570
Datenbank-Queries sind immer super langsam.

01:12:59.830 --> 01:13:01.730
Ja, aber warum muss das, also wenn man die

01:13:01.730 --> 01:13:03.850
eh machen muss, warum dann nicht im Template?

01:13:03.990 --> 01:13:04.910
Also man muss ja eh drauf warten.

01:13:05.190 --> 01:13:07.370
Naja, wenn man die halt an einer Stelle macht,

01:13:07.470 --> 01:13:08.630
dann ist es halt auch nicht so schlimm.

01:13:09.490 --> 01:13:11.170
Das weiß ich nicht so genau, das ist ein Gefühl.

01:13:11.470 --> 01:13:13.710
Das habe ich noch nicht wirklich gemessen, aber ich habe auch das Gefühl,

01:13:14.450 --> 01:13:15.650
dass wenn man die

01:13:15.650 --> 01:13:17.290
Datenbank-Reels sehr verstreut macht,

01:13:18.070 --> 01:13:19.590
dass das halt besonders schlecht ist auch.

01:13:19.830 --> 01:13:21.210
Warum das genau ist, weiß ich nicht.

01:13:21.230 --> 01:13:23.590
Was meinst du, was an verschiedenen

01:13:23.590 --> 01:13:24.910
Stellen im Code meint er halt?

01:13:25.570 --> 01:13:27.570
Oder an verschiedenen Orten des

01:13:27.570 --> 01:13:29.130
Frameworks, glaube ich. Meinst du?

01:13:29.590 --> 01:13:31.450
Ja, also wenn ich jetzt zum Beispiel gucke von

01:13:31.450 --> 01:13:33.370
es kommt ein Request rein, ja, dann

01:13:33.370 --> 01:13:35.610
passieren ja Dinge, Dinge, Dinge, Dinge, Dinge.

01:13:35.830 --> 01:13:37.670
Auch erstaunlich viele, das weiß ich jetzt,

01:13:37.710 --> 01:13:39.570
weil ich es halt so ein bisschen geproffelt habe.

01:13:39.970 --> 01:13:41.570
Bei mir sind es halt von, also

01:13:41.570 --> 01:13:43.530
wenn man jetzt einen Blog nimmt und da die

01:13:43.530 --> 01:13:45.430
List-Page und dann halt nur so fünf Artikel

01:13:45.430 --> 01:13:47.750
oder sonst irgendwas. Also aus diesem Listview

01:13:47.750 --> 01:13:49.150
dann macht das halt so

01:13:49.150 --> 01:13:51.710
110.000 Funktionsaufrufe oder sowas.

01:13:51.930 --> 01:13:53.610
Was eine Menge ist. Ich dachte so, wow,

01:13:53.790 --> 01:13:54.930
shit, warum ist das so viel?

01:13:55.230 --> 01:13:57.590
Das ist ganz schön viel. Und mein Ding wäre jetzt,

01:13:57.710 --> 01:13:59.050
wenn jetzt so alle tausend

01:13:59.050 --> 01:14:01.430
Funktionsaufrufe kommt,

01:14:01.430 --> 01:14:02.890
dann kommt irgendwie die Datenbank-Query. Das ist schlecht.

01:14:03.790 --> 01:14:05.110
Also so war es quasi vorher

01:14:05.110 --> 01:14:06.630
irgendwie implizit, weil

01:14:06.630 --> 01:14:08.730
die Datenbank-Query ist halt da passiert, wo es

01:14:08.730 --> 01:14:09.030
halt

01:14:09.030 --> 01:14:13.290
aufgetreten ist. Und das war

01:14:13.290 --> 01:14:15.330
und einfach nur dadurch, dass ich

01:14:15.330 --> 01:14:40.735
und halt blockiert und dann muss man auf die Datenbank warten sondern auch dieses Ganze irgendwie ja man ist da in diesem Bereich wo dann Dinge die Jungle gebaut werden

01:14:40.735 --> 01:14:42.795
oder ich weiß es nicht so genau, also das scheint alles nicht so

01:14:42.795 --> 01:14:44.675
richtig kostenlos zu sein, sondern

01:14:44.675 --> 01:14:46.575
das heißt, wann irgendwas geladen wird an der Stelle

01:14:46.575 --> 01:14:48.755
und warst du irgendwie vorbereitet oder teardown

01:14:48.755 --> 01:14:50.875
oder so hin und her, kostet dann unheimlich

01:14:50.875 --> 01:14:52.235
viel, oder? Ja, also

01:14:52.235 --> 01:14:54.815
ja, das allein, dass man da halt

01:14:54.815 --> 01:14:56.335
irgendwie viele Objekte erzeugt und dann

01:14:56.335 --> 01:14:58.815
ja, und wenn das halt

01:14:58.815 --> 01:15:00.395
an einer Stelle ist, dann passiert das halt einmal

01:15:00.395 --> 01:15:02.395
und wenn das halt verteilt ist, dann macht es das

01:15:02.395 --> 01:15:03.715
irgendwie nochmal langsamer.

01:15:04.395 --> 01:15:06.695
Und ja, ich versuche immer noch momentan gerade rauszukriegen,

01:15:06.775 --> 01:15:08.675
woran liegt das eigentlich, dass da so viele Funktionsaufrufe

01:15:08.675 --> 01:15:09.795
passieren, weil das ist einfach zu viel.

01:15:11.155 --> 01:15:12.535
Kann man nicht eventuell,

01:15:12.695 --> 01:15:14.235
also meine Idealvorstellung wäre natürlich,

01:15:14.595 --> 01:15:16.235
dass ich irgendwann sozusagen

01:15:16.235 --> 01:15:18.195
nur noch eine Datenbankquery mache oder so,

01:15:18.255 --> 01:15:20.015
in der ich alle Informationen aus der Datenbank hole.

01:15:21.715 --> 01:15:22.715
Geht das nicht vielleicht?

01:15:23.395 --> 01:15:24.515
Ja, Tim, wie groß hättest du, wenn das

01:15:24.515 --> 01:15:24.975
in RAM passt?

01:15:25.595 --> 01:15:27.375
Ja, das ist alles gar kein Problem.

01:15:27.375 --> 01:15:29.315
aber kann ich

01:15:29.315 --> 01:15:31.355
so eine Query formulieren und wenn ich

01:15:31.355 --> 01:15:33.475
jetzt die Daten aus dieser Query habe, kann ich die so transformieren

01:15:33.475 --> 01:15:35.235
dass ich daraus wieder Django-Objekte machen kann

01:15:35.235 --> 01:15:37.455
das ist halt so, das mache ich jetzt auch schon

01:15:37.455 --> 01:15:38.795
also ich benutze nicht mehr

01:15:38.795 --> 01:15:40.515
irgendwie einfach so, ich mache

01:15:40.515 --> 01:15:42.315
aus

01:15:42.315 --> 01:15:45.075
ich benutze nicht quasi

01:15:45.075 --> 01:15:47.275
den ORM um halt Django-Modelle, sondern ich

01:15:47.275 --> 01:15:49.215
ziehe die Daten halt in

01:15:49.215 --> 01:15:51.135
einer Form, das ist auch sowas

01:15:51.135 --> 01:15:53.435
wenn man cachen will, dann muss man das ja auch irgendwie

01:15:53.435 --> 01:15:55.295
zum Beispiel als Sticked haben

01:15:55.295 --> 01:15:57.315
dass man halt auch irgendwie serialisieren kann

01:15:57.315 --> 01:15:59.355
Wenn du Django-Objekte hast, die kannst du nicht

01:15:59.355 --> 01:16:01.995
also es gibt viele Dinge an Django-Objekten, die kannst du

01:16:01.995 --> 01:16:02.655
nicht serialisieren.

01:16:03.155 --> 01:16:04.815
Du kannst es auch nicht cachen, weil

01:16:04.815 --> 01:16:06.975
Furry-Sets kannst du nicht gut cachen. Geht nicht.

01:16:07.655 --> 01:16:09.495
Aber wenn du jetzt das in eine

01:16:09.495 --> 01:16:11.735
Dict-Geschichte

01:16:11.735 --> 01:16:13.135
überführt hast, wie im Prinzip

01:16:13.135 --> 01:16:15.535
JSON serialisierbar ist, dann kannst du

01:16:15.535 --> 01:16:17.395
halt auch das, was du aus der Datenbank kriegst, einfach

01:16:17.395 --> 01:16:19.455
nehmen, irgendwie auf eine Platte schreiben oder so und sage

01:16:19.455 --> 01:16:21.395
okay, die nächsten fünf Minuten einfach das Pfeil

01:16:21.395 --> 01:16:23.115
nehmen und nicht mehr die Datenbank fragen. Oder

01:16:23.115 --> 01:16:25.435
irgendwo in den Hauptspeicher oder in Redis oder sonst irgendwo hin.

01:16:25.435 --> 01:16:27.615
und dann kannst du das halt cachen.

01:16:28.155 --> 01:16:29.235
Aber das, genau.

01:16:30.375 --> 01:16:31.555
Und aus den Dingern

01:16:31.555 --> 01:16:33.715
Jungle-Modelle zu bauen, ist jetzt gar nicht so schlimm.

01:16:33.835 --> 01:16:35.075
Da dachte ich auch so, das ist vielleicht schlimm.

01:16:35.255 --> 01:16:36.495
Nö, ist gar nicht so schlimm. Ziemlich leicht.

01:16:38.175 --> 01:16:39.295
Und ja, genau.

01:16:39.435 --> 01:16:41.855
Also ja, ich mache momentan so ein bisschen Performance-Optimierungsgeschichten.

01:16:42.595 --> 01:16:42.695
Ja.

01:16:43.455 --> 01:16:43.815
Ja.

01:16:44.415 --> 01:16:47.675
Ja, aber wenn Performance auch dazu führt,

01:16:47.675 --> 01:16:49.335
dass du weniger Rechenleistung aufwenden musst, ist das ja sogar

01:16:49.335 --> 01:16:50.115
Green Engineering.

01:16:50.755 --> 01:16:51.095
Ja, ja.

01:16:51.095 --> 01:16:53.515
Da gab es auch Vorträge dazu

01:16:53.515 --> 01:16:56.175
110.000 Funktionsaufrufe für ein Webseitenrendering

01:16:56.175 --> 01:16:57.735
ist nicht so richtig cool, ehrlich gesagt

01:16:57.735 --> 01:16:59.155
das ist eher so mehr so braun

01:16:59.155 --> 01:17:03.455
Aber Walter, ich habe gerade

01:17:03.455 --> 01:17:06.175
deinen Einstiegspunkt vergessen

01:17:06.175 --> 01:17:08.135
der mich daran erinnert hat, aber es war super interessant

01:17:08.135 --> 01:17:10.055
bei diesem Dango Girls Vortrag gab es auch

01:17:10.055 --> 01:17:10.755
so eine

01:17:10.755 --> 01:17:13.275
ja so Success Stories einfach

01:17:13.275 --> 01:17:15.855
von Mädels, die das halt teilgenommen haben

01:17:15.855 --> 01:17:17.895
und die jetzt halt irgendwo einen coolen Job haben

01:17:17.895 --> 01:17:19.615
oder irgendwie eine coole Erfahrung haben oder irgendwo

01:17:19.615 --> 01:17:49.595
und Jochen unterhalten sich über die Programmiersprache Python

01:17:49.615 --> 01:18:19.595
und Jochen unterhalten sich über die Programmiersprache Python

01:18:19.615 --> 01:18:24.635
wo man dann irgendwie bis nachts um 12 irgendwie irgendwelche Marketing-One-Pattern zusammenlötet.

01:18:26.055 --> 01:18:26.955
Nein, du hast völlig recht.

01:18:27.075 --> 01:18:31.135
Ich glaube, das ist einer der Jobs, die von Hause aus sehr dafür geeignet sind,

01:18:31.195 --> 01:18:35.695
dass man das remote machen kann und es relativ kompatibel ist zur Vereinbarkeit von Familie und Beruf.

01:18:36.615 --> 01:18:39.175
Das ist eine echte Arbeit von zu Hause aus.

01:18:39.295 --> 01:18:40.075
Eine Menge Geld verdienen.

01:18:40.735 --> 01:18:41.855
Hier ist in die Halle angewogen.

01:18:41.855 --> 01:18:47.135
Ich glaube, eine gesellschaftliche Transformation wäre sowas wie Vereinbarkeit.

01:18:47.135 --> 01:18:49.095
eine der Hauptdinge.

01:18:50.315 --> 01:18:51.755
Das fällt mir auch immer wieder auf.

01:18:51.875 --> 01:18:52.375
Ja, das ist halt,

01:18:52.475 --> 01:18:55.295
wenn irgendjemand den ganzen Tag irgendwo hinfahren muss

01:18:55.295 --> 01:18:56.495
und dann mit Kinderbetreuung ist das schon schwer.

01:18:58.015 --> 01:18:59.155
Ja, also ich meine auch

01:18:59.155 --> 01:19:00.715
in den letzten Jahren

01:19:00.715 --> 01:19:03.055
mit Kinderbetreuung, es passiert immer so viel

01:19:03.055 --> 01:19:04.055
Zeugs, wo man dann,

01:19:04.595 --> 01:19:07.075
das wäre übel gewesen, wenn ich

01:19:07.075 --> 01:19:08.515
jetzt hätte in einem Büro sitzen müssen.

01:19:09.015 --> 01:19:09.915
Oder hinfahren jeden Tag.

01:19:10.695 --> 01:19:11.975
Du kannst auch nicht glücklich wegfahren.

01:19:13.475 --> 01:19:15.415
Oder Schichtdienst einfach die ganze Nacht.

01:19:15.415 --> 01:19:16.475
Ja, ganz übel.

01:19:17.135 --> 01:19:18.815
Ja gut, aber es gibt Leute, die kriegen das trotzdem irgendwie hin.

01:19:18.935 --> 01:19:20.655
Ja, das ist sehr beeindruckend.

01:19:22.055 --> 01:19:22.315
Ja.

01:19:22.515 --> 01:19:24.915
Ja, du wolltest jetzt über Party reden,

01:19:24.975 --> 01:19:26.035
auch wenn wir gerade über Kinderkriegen reden.

01:19:28.095 --> 01:19:28.415
Ja.

01:19:29.095 --> 01:19:30.975
Für manche Leute ein Thema. Nach der Party kommt der Kater

01:19:30.975 --> 01:19:32.795
und...

01:19:32.795 --> 01:19:35.035
Nein, tatsächlich, bei den Dungercons

01:19:35.035 --> 01:19:36.655
gibt es immer eine Party und

01:19:36.655 --> 01:19:38.894
ich fand das ein ganz interessantes Thema,

01:19:39.055 --> 01:19:40.975
weil in Edinburgh

01:19:40.975 --> 01:19:42.435
war es so, dass man,

01:19:43.155 --> 01:19:44.935
wenn man sich die Tickets kauft, musste man

01:19:44.935 --> 01:19:46.995
ein Opt-in machen, ob man auf die Party

01:19:46.995 --> 01:20:16.975
und Jochen unterhalten sich über die Programmiersprache Python

01:20:16.995 --> 01:20:18.735
auf einmal alle nicht dahin gehen konnten, weil

01:20:18.735 --> 01:20:20.975
sich eingeladen zur Praxis. Ach so.

01:20:21.955 --> 01:20:22.915
Und weil einfach, weil halt

01:20:22.915 --> 01:20:24.915
das Heck hier nicht gesetzt wurde und das war halt irgendwie

01:20:24.915 --> 01:20:27.394
einfach so ein bisschen die Realität

01:20:27.394 --> 01:20:29.335
zu Theorie. In der Theorie ist es kein Problem,

01:20:29.415 --> 01:20:30.815
in der Praxis, naja, so ist es halt.

01:20:30.835 --> 01:20:33.275
Gehört eigentlich dazu. Und ich persönlich

01:20:33.275 --> 01:20:34.975
finde nämlich die Party eigentlich immer eine sehr schöne

01:20:34.975 --> 01:20:36.815
Art nochmal mit Leuten, die man halt

01:20:36.815 --> 01:20:39.335
vielleicht noch auf der Stage gesehen hat an den Tagen.

01:20:39.435 --> 01:20:40.735
Die sind ja auch meistens eher am Ende.

01:20:41.535 --> 01:20:43.115
Das ist mir in den Google-Python auch aufgefallen, da gibt es auch mehrere

01:20:43.115 --> 01:20:44.615
Partys, wo man sich extra registrieren muss.

01:20:44.615 --> 01:20:49.455
und ich finde das eine sehr schöne Gelegenheit, nochmal in einem etwas lockeren, weniger

01:20:49.455 --> 01:20:53.115
ernsten Umfeld mit den Leuten, ich meine, viele Leute haben da irgendwie

01:20:53.115 --> 01:20:57.815
da noch mit den Leuten reden zu können, einfach nochmal

01:20:57.815 --> 01:21:02.055
mit Leuten connecten zu können, zum Beispiel in Porto, also jetzt vor zwei Jahren, die Party war

01:21:02.055 --> 01:21:05.915
glaube ich eine der besten Partys, also die war super, das war echt gut organisiert,

01:21:06.015 --> 01:21:08.315
richtig schöne Location, bestes Wetter, alles draußen

01:21:08.315 --> 01:21:13.855
und da bin ich dann einfach in eine Runde von Leuten reingestolpert und dann bin ich

01:21:13.855 --> 01:21:15.995
nachher mit einem im Gespräch hängen geblieben und nachher

01:21:15.995 --> 01:21:17.935
irgendwann meinte er, weißt du

01:21:17.935 --> 01:21:19.735
echt, wer ich bin? Ich sage, keine Ahnung, ich bin

01:21:19.735 --> 01:21:21.715
Präsident hier von Django Software.

01:21:21.855 --> 01:21:23.275
Oh, ups, sorry.

01:21:24.755 --> 01:21:25.835
Da kannte ich halt noch nicht so viele

01:21:25.835 --> 01:21:27.815
Leute in dem Umfeld. Und es ist halt einfach,

01:21:27.935 --> 01:21:30.115
das würde halt so, ich meine, das kann passieren,

01:21:30.235 --> 01:21:31.775
wenn man so auf der Konferenz rumläuft,

01:21:31.875 --> 01:21:33.855
aber man ist da schon immer relativ getaktet

01:21:33.855 --> 01:21:35.775
mit. Dann gibt es

01:21:35.775 --> 01:21:37.675
eine Verlosung und dann ist der nächste Vortrag

01:21:37.675 --> 01:21:39.515
und dann muss man sich vielleicht selber auf irgendwas vorbereiten.

01:21:39.775 --> 01:21:41.715
Dann will irgendwie die eigene Crew

01:21:41.715 --> 01:21:42.235
irgendwas.

01:21:42.235 --> 01:21:44.115
und Konferenz-Experiments.

01:21:44.175 --> 01:21:45.495
Da kann man auch eine eigene Folge zu machen, glaube ich.

01:21:46.415 --> 01:21:47.555
Und das fand ich tatsächlich,

01:21:48.675 --> 01:21:50.255
ich finde das einen sehr wichtigen Punkt, weil es ja immer

01:21:50.255 --> 01:21:51.915
dann auch von, ne, auch dann so, naja,

01:21:51.995 --> 01:21:54.075
sieh du uns auf, nö. Aber ich finde, es ist schon

01:21:54.075 --> 01:21:54.775
sehr, sehr schöne

01:21:54.775 --> 01:21:58.315
Atmosphäre und Möglichkeit

01:21:58.315 --> 01:22:00.415
mit Leuten nochmal so zu socialisen,

01:22:00.495 --> 01:22:02.195
auch mal Leute ein bisschen persönlicher vielleicht auch

01:22:02.195 --> 01:22:03.755
kennenzulernen und

01:22:03.755 --> 01:22:06.175
genau, also fand das wirklich schön und

01:22:06.175 --> 01:22:08.235
jetzt bei diesem Mal, das war so

01:22:08.235 --> 01:22:09.255
ein bisschen doppelt unglücklich,

01:22:09.255 --> 01:22:39.235
und Jochen unterhalten sich über die Programmiersprache Python

01:22:39.255 --> 01:22:41.355
wie gesagt in Porto glaube ich waren

01:22:41.355 --> 01:22:43.394
bis eins oder zwei

01:22:43.394 --> 01:22:44.735
ich glaube in Kopenhagen davor

01:22:44.735 --> 01:22:47.155
war auch relativ lang, solange wie Leute

01:22:47.155 --> 01:22:49.195
mehr da waren oder solange die Organisatoren halt Lust

01:22:49.195 --> 01:22:51.135
hatten, so dass das nicht abschließen

01:22:51.135 --> 01:22:52.735
zu wollen und

01:22:52.735 --> 01:22:55.035
ja, das fand ich tatsächlich ein bisschen schade

01:22:55.035 --> 01:22:57.355
wird bestimmt seine Gründe gehabt haben

01:22:57.355 --> 01:22:58.655
ich will mich da jetzt gar nicht irgendwie

01:22:58.655 --> 01:23:00.635
ich habe mich dazu beigetragen, ich will da nicht rummosern

01:23:00.635 --> 01:23:02.255
ich persönlich fand es nur schade, weil

01:23:02.255 --> 01:23:05.295
wie gesagt, ich meine es ist ein sehr schöner Ort

01:23:05.295 --> 01:23:07.175
finde und ich meine auch da habe ich mich

01:23:07.175 --> 01:23:08.815
mit Leuten unterhalten, mit denen ich

01:23:08.815 --> 01:23:12.755
mehr oder weniger im gleichen Raum saß für drei Tage und halt vorher noch nicht gesehen habe,

01:23:12.835 --> 01:23:16.775
hatten interessante Gespräche und genau, das finde ich immer

01:23:16.775 --> 01:23:20.495
einen schönen Ort und kann da auch nur eine Lanze dafür brechen.

01:23:20.915 --> 01:23:24.615
Also ich würde auch sagen, Socializing bei diesen Konferenzen ist mit so der Hauptgrund, warum man da

01:23:24.615 --> 01:23:28.795
ich finde das ja auch, gestern war ja wieder bei DDF auch immer super, dass man danach noch was essen geht,

01:23:28.894 --> 01:23:32.915
weil da auch immer der Hauptteil des Spaßes ist, also nichts gegen die ganz tollen Vorträge, die alle tollen Menschen machen,

01:23:33.335 --> 01:23:36.755
mir halt auch bestimmt bei der Dango-Con, wo ich dagegen meine, der auch da hinfährt und so, aber das Socializing ist

01:23:36.755 --> 01:23:45.615
und das 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, das ist schon super.

01:23:46.495 --> 01:23:53.535
Also manchmal kann man auch selber mal ganz viel reden, das machen einige Leute gerne, aber auch manchmal zuhören ist auch super und das ist irgendwie was Gutes.

01:23:53.695 --> 01:23:58.175
Ich kann das auch sehr nachvollziehen. Ich finde das auch mit den wichtigeren Teilen.

01:23:58.175 --> 01:23:59.975
Manchmal ist man ja auch im Gang so ein bisschen.

01:24:00.495 --> 01:24:02.175
Und weil du gerade sagtest, das fand ich interessant,

01:24:02.335 --> 01:24:04.375
deine Art und Weise war wahrscheinlich sehr strukturiert

01:24:04.375 --> 01:24:06.295
und sehr organisiert, möglichst viel

01:24:06.295 --> 01:24:07.415
von dem Content mitzubekommen.

01:24:09.735 --> 01:24:10.195
Von der

01:24:10.195 --> 01:24:11.595
Europe Python kenne ich es zum Beispiel so, die ist ja lang.

01:24:11.875 --> 01:24:14.175
Und wenn man da halt die ganze Woche da ist, dann sind es ja sieben Tage.

01:24:14.555 --> 01:24:16.055
Also zwei Tage Workshop, drei Tage

01:24:16.055 --> 01:24:17.855
Vorträge, zwei Tage irgendwas anderes.

01:24:18.415 --> 01:24:20.095
Da tut es immer ganz gut, wenn man sie ein

01:24:20.095 --> 01:24:22.195
oder zwei Tage nicht ganz so vollpackt,

01:24:22.415 --> 01:24:23.755
weil man so ein bisschen sich so

01:24:23.755 --> 01:24:26.394
fließen lässt.

01:24:26.475 --> 01:24:27.915
Weil dann kommt man mehr mit Leuten ins Gespräch, die auch

01:24:27.915 --> 01:24:57.894
und so weiter.

01:24:57.915 --> 01:24:59.155
zu ein oder zwei Vorträgen,

01:24:59.715 --> 01:25:01.735
was manche an Kinderbetreuung liegt oder sowas, die man da

01:25:01.735 --> 01:25:03.775
netterweise hinbringen kann. Oder halt nur sogar

01:25:03.775 --> 01:25:05.715
Notschuldensprünge gab es, glaube ich, auch Menschen, die halt wirklich

01:25:05.715 --> 01:25:07.755
nur da hingegangen sind, um mit den Leuten an Sachen zu arbeiten.

01:25:08.955 --> 01:25:09.935
Aber das ist so witzig,

01:25:10.035 --> 01:25:11.615
weil diese, das ist so ein bisschen, ich weiß nicht, ob es eine

01:25:11.615 --> 01:25:13.695
Kulturfrage ist, aber so diese Art und Weise ändert

01:25:13.695 --> 01:25:15.735
sich je nach Lebensphase oder wo du

01:25:15.735 --> 01:25:17.795
gerade selber bist, total. Und das

01:25:17.795 --> 01:25:19.735
ist, glaube ich, auch eine der Herausforderungen für so Konferenzen,

01:25:19.855 --> 01:25:21.815
für die unterschiedlichen Ziele,

01:25:21.955 --> 01:25:23.715
die die Leute so mitbringen, irgendwie gut

01:25:23.715 --> 01:25:25.695
ausgestattet zu sein. Und mich würde dieses

01:25:25.695 --> 01:25:27.795
Django-Conding auf jeden Fall auch mal reinziehen, ehrlicherweise.

01:25:27.915 --> 01:25:57.894
und die Programmiersprache Python.

01:25:57.915 --> 01:26:06.355
und ja, Dublin, ja, es ist einfach eine tolle Stadt in Irland, das ist eh, wenn ich noch Bier trinken dürfe, wäre ganz toll, überall wunderschöne Sachen.

01:26:06.615 --> 01:26:07.495
Du musst halt Whisky trinken.

01:26:08.015 --> 01:26:16.355
Ja, am Shannon entlang ist es immer toll, da gibt es tolle Sachen, ich meine, es ist halt sehr moderne Hilfestadt auch, ne?

01:26:17.475 --> 01:26:21.855
Naja, gut, das sind die meistens alle irgendwo, bis auf hier, Jochen.

01:26:23.195 --> 01:26:23.355
Tja.

01:26:23.515 --> 01:26:23.675
Ja.

01:26:24.315 --> 01:26:26.894
Aber das waren jetzt aber drei Tage quasi, ne?

01:26:26.894 --> 01:26:28.394
Genau, das war eine 3-Tage-Konferenz.

01:26:28.515 --> 01:26:34.675
Da gab es einen Konferenztrack und dazwischen gab es immer wieder mal in einem anderen Raum die Workshops.

01:26:35.075 --> 01:26:36.775
Ich habe die Workshops nicht teilgenommen.

01:26:36.875 --> 01:26:38.575
Ich nehme irgendwie von diesen Workshops nicht so viel mit.

01:26:40.295 --> 01:26:42.955
Ich war letztes Mal in Edinburgh bei den Sprints dabei.

01:26:43.515 --> 01:26:46.995
Und man muss auch sagen, das ist kein Umfeld, wo ich wirklich produktiv arbeiten kann.

01:26:47.375 --> 01:26:50.995
Dann sitzen da ganz viele Leute in einem Raum und es ist halt so ein gewisser Geräuschpegel.

01:26:51.894 --> 01:26:55.415
Weiß ich nicht, jedem zweiten fehlt irgendwie Strom und dann hast du da kein Ladekabel.

01:26:55.415 --> 01:26:57.755
und es ist

01:26:57.755 --> 01:26:59.455
also es ist unruhig.

01:26:59.535 --> 01:27:01.655
Interessant, also ich finde das mit dem Workshop sich total

01:27:01.655 --> 01:27:03.715
anders, also weil, vielleicht bist du schon

01:27:03.715 --> 01:27:05.175
viel weiter als ich in dem Punkt, aber

01:27:05.175 --> 01:27:07.415
die Dinge, die ich da so mitgenommen habe,

01:27:07.415 --> 01:27:09.235
da habe ich immer super viel gelernt und

01:27:09.235 --> 01:27:11.435
das hängt wahrscheinlich total davon ab, was für ein

01:27:11.435 --> 01:27:13.415
Workshop man da hat und welches Niveau da ist und

01:27:13.415 --> 01:27:15.535
wenn man eine gute Auswahl hat, findet man bestimmt was.

01:27:16.115 --> 01:27:17.375
Also ich habe wirklich immer da am meisten

01:27:17.375 --> 01:27:18.915
von mir genommen, mehr als von den vielen Talks.

01:27:19.195 --> 01:27:21.455
Aber ich glaube auch, ich gehe halt auch ganz

01:27:21.455 --> 01:27:23.435
gerne auf die Konferenzen, nehme

01:27:23.435 --> 01:27:25.215
mir die Stichpunkte mit und

01:27:25.215 --> 01:27:27.755
und sortiere dann quasi danach nochmal so ein bisschen aus,

01:27:27.894 --> 01:27:30.055
was weichere ich ab, also es existiert irgendwo.

01:27:30.415 --> 01:27:32.675
Zum Beispiel diese Sache mit der Architektur, das finde ich super spannend.

01:27:32.915 --> 01:27:36.835
Ich müsste auch nochmal, also ich gehe da auch nochmal ins Gespräch mit ihr

01:27:36.835 --> 01:27:42.095
und gucke mal, ob wir sie vielleicht mal zum Django Meetup Köln oder sowas einladen können oder sowas,

01:27:42.335 --> 01:27:44.735
weil das ist halt ein Thema, das halt für mich super spannend ist

01:27:44.735 --> 01:27:46.635
und wo ich auch noch definitiv zu wenig weiß.

01:27:48.375 --> 01:27:50.855
Und das ist, so gehe ich dann damit um.

01:27:51.095 --> 01:27:52.375
Also das ist jetzt nicht vielleicht gleich deine Länge in der Workshop.

01:27:52.375 --> 01:27:54.394
Also die Workshop, die ich hatte, waren halt mindestens einmal einen halben Tag,

01:27:54.394 --> 01:27:55.535
also vier Stunden oder so.

01:27:56.535 --> 01:27:58.535
Ich bin da richtig tief in die Themen

01:27:58.535 --> 01:28:00.335
reingekommen, hab mich da richtig reingehackt, hab da auch wirklich

01:28:00.335 --> 01:28:02.855
was gemacht und hab dann auch teilweise noch wirklich nachgearbeitet

01:28:02.855 --> 01:28:04.335
und die Dinge wirklich umgesetzt

01:28:04.335 --> 01:28:06.435
und benutzt. Also da sind die eher kürzer,

01:28:06.555 --> 01:28:07.855
also ich glaube so ein bis zwei Stunden,

01:28:08.255 --> 01:28:09.775
glaube ich, ich bin nicht ganz sicher.

01:28:10.875 --> 01:28:12.455
Letztes oder letztes Mal hab ich mal welche mitgemacht,

01:28:12.515 --> 01:28:14.515
aber wie gesagt, irgendwie die Atmosphäre ist nicht so ganz

01:28:14.515 --> 01:28:16.235
mein. Ich konnte zum Beispiel auch konzentriert arbeiten,

01:28:16.315 --> 01:28:18.375
weil es da ruhig war. Wo ich direkt

01:28:18.375 --> 01:28:20.375
gehen muss, ist bei den Sprints. Sprints sind immer sehr

01:28:20.375 --> 01:28:22.275
chaotisch, meistens. Also ich nutze Sprints oft dann auch

01:28:22.275 --> 01:28:24.275
zum Socializen, mit den Leuten quatschen, um nochmal rumzusteigen.

01:28:24.394 --> 01:28:54.375
Ja, genau.

01:28:54.394 --> 01:28:56.255
auch cool, glaube ich. Auf jeden Fall, auf jeden Fall.

01:28:56.394 --> 01:28:58.215
Also wir haben ja auch beim Django

01:28:58.215 --> 01:29:00.275
Meetup in Köln jetzt im Januar hatten

01:29:00.275 --> 01:29:02.415
wir Sarah A. und Thibaut,

01:29:02.555 --> 01:29:04.235
also die sind beide Django Board Members,

01:29:04.335 --> 01:29:06.115
ganz frisch geworden, hatten wir

01:29:06.115 --> 01:29:08.175
eingeladen, sind netterweise

01:29:08.175 --> 01:29:10.175
vorbeigekommen, da haben wir dann auch einen Open Source Sprint

01:29:10.175 --> 01:29:12.155
gemacht. Der schon am Mittag war, wo ich leider erst so

01:29:12.155 --> 01:29:14.135
spät konnte. Und das

01:29:14.135 --> 01:29:15.855
war auch echt cool.

01:29:16.095 --> 01:29:18.175
Also es war eine coole Erfahrung. Jeder hat da so ein bisschen an dem gearbeitet,

01:29:18.455 --> 01:29:19.955
wo er drauf Lust hatte.

01:29:20.055 --> 01:29:21.615
Es sind mehrere Tickets auch erstellt worden

01:29:21.615 --> 01:29:23.715
und

01:29:23.715 --> 01:29:25.955
oder mehreren

01:29:25.955 --> 01:29:27.295
Pull-Defers erstellt worden.

01:29:27.894 --> 01:29:29.935
Und danach hat man noch so ein bisschen Diskussionen

01:29:29.935 --> 01:29:31.855
so Future of Django, was auch

01:29:31.855 --> 01:29:33.975
super interessant war, weil man halt wirklich mal zwei Broadminers am Start hat

01:29:33.975 --> 01:29:35.894
und dann wirklich mit denen so ins 1-2-1

01:29:35.894 --> 01:29:37.975
gehen kann. Aber wirklich, ich bin da gar nicht

01:29:37.975 --> 01:29:39.975
dagegen oder so. Ich sage nur, das ist halt nicht so

01:29:39.975 --> 01:29:41.015
mein Arbeitsunfall. Ich finde,

01:29:41.195 --> 01:29:43.135
wirklich programmieren...

01:29:43.135 --> 01:29:45.355
Also kategorisch, ja. Es ist nicht nur so zufällig gewesen, sondern du denkst,

01:29:45.435 --> 01:29:47.635
du brauchst eher deine Ruhe. Ja, definitiv.

01:29:47.735 --> 01:29:49.615
Aber was ich dann interessant finde, ist, dass du

01:29:49.615 --> 01:29:51.455
zwischendurch, also ich weiß nicht, ob sich das geändert hat,

01:29:51.875 --> 01:29:53.455
sagtest, dass du im Büro total

01:29:53.455 --> 01:29:56.195
und das sogar zu Hause vorzieht.

01:29:56.415 --> 01:29:58.055
Wo ich immer sagen würde, im Büro habe ich immer den Stress,

01:29:58.135 --> 01:29:58.995
das mache ich lieber zu Hause.

01:29:59.475 --> 01:30:01.335
Also jetzt, wo ich wieder öfters ins Büro gehe,

01:30:01.415 --> 01:30:04.475
also ich mache so drei Tage Büro, zwei Tage zu Hause,

01:30:06.455 --> 01:30:06.695
ist,

01:30:07.755 --> 01:30:09.735
also nur einen Tag die Woche im Büro war,

01:30:09.735 --> 01:30:11.075
dann hast du halt ständig irgendjemanden,

01:30:11.155 --> 01:30:12.795
mit dem du dich über die letzte Woche austauschen musst.

01:30:12.855 --> 01:30:13.715
Das lenkt dann schon sehr ab.

01:30:13.775 --> 01:30:14.995
Aber wenn du drei Tage da bist,

01:30:15.055 --> 01:30:16.475
dann hast du halt deine Nasen alle gesehen

01:30:16.475 --> 01:30:18.435
und dann streckt sich das so ein bisschen über die drei Tage

01:30:18.435 --> 01:30:19.555
und dann ist es eher das,

01:30:19.635 --> 01:30:20.755
wenn man eh mal gerade eine Pause braucht,

01:30:20.795 --> 01:30:21.975
wenn man kurz für die Tür geht oder so,

01:30:21.975 --> 01:30:51.955
und

01:30:51.975 --> 01:30:59.675
Ja, wir könnten noch Pics machen.

01:31:01.215 --> 01:31:02.894
Das klingt, glaube ich, ganz gut.

01:31:03.295 --> 01:31:04.635
Und dann, das war eigentlich auch schon

01:31:04.635 --> 01:31:06.575
eine runde Sache.

01:31:08.375 --> 01:31:09.695
Ja, dann bin ich ja mal gespannt,

01:31:09.855 --> 01:31:10.555
was für Pics

01:31:10.555 --> 01:31:12.955
wollt ihr denn nehmen.

01:31:12.955 --> 01:31:14.115
Soll ich anfangen?

01:31:14.295 --> 01:31:15.835
Du hast einen von mir geklaut.

01:31:15.915 --> 01:31:20.615
Ich habe mich

01:31:20.615 --> 01:31:23.315
in letzter Zeit nochmal so ein bisschen,

01:31:23.915 --> 01:31:24.894
also es gibt da auch sehr schön,

01:31:25.155 --> 01:31:27.295
das kann ich vielleicht dazu sagen, einen Vortrag von

01:31:27.295 --> 01:31:28.935
Simon Willison zu einem

01:31:28.935 --> 01:31:30.955
Kommandozeilentool, was er geschrieben hat

01:31:30.955 --> 01:31:32.435
namens LLM.

01:31:32.535 --> 01:31:34.935
Und das LLM picke ich mal, weil

01:31:34.935 --> 01:31:36.695
da habe ich jetzt auch wieder ein bisschen mehr mitgemacht.

01:31:37.354 --> 01:31:39.215
Und das ist halt wirklich nett,

01:31:39.215 --> 01:31:39.775
weil man da

01:31:39.775 --> 01:31:43.075
unterschiedliche Modelle mal so

01:31:43.075 --> 01:31:45.015
ausprobieren kann, damit man so ein bisschen rumspielen kann.

01:31:45.115 --> 01:31:47.255
Aber auch, du kannst halt

01:31:47.255 --> 01:31:48.875
einfach in deine Kommandozeile reinpipen.

01:31:48.875 --> 01:31:50.215
Genau, du kannst halt

01:31:50.215 --> 01:31:53.115
für solche, also ich benutze es dann halt auch

01:31:53.115 --> 01:31:54.715
für solche Dinge wie

01:31:54.715 --> 01:31:56.975
alle, ich habe jetzt sogar eine Funktion

01:31:56.975 --> 01:31:59.275
tatsächlich für Django Cast geschrieben, wo ich sagen kann

01:31:59.275 --> 01:32:03.035
gib mir doch mal den gesamten Source-Code aus

01:32:03.035 --> 01:32:04.935
oder gib mir mal den gesamten Source-Code mit Tests aus

01:32:04.935 --> 01:32:05.894
oder so

01:32:05.894 --> 01:32:08.575
und mach mir das zu einem Prompt

01:32:08.575 --> 01:32:11.115
wo dann halt die Dateinamen auch noch immer mit drüberstehen

01:32:11.115 --> 01:32:12.894
und dann kann ich sagen, okay

01:32:12.894 --> 01:32:14.955
pipe das mal irgendwie in ein Modell rein

01:32:14.955 --> 01:32:16.915
und dann mache ich da irgendwie ein System-Prompt zu

01:32:16.915 --> 01:32:19.215
von wegen, ja, habe ich bei der Dokumentation

01:32:19.215 --> 01:32:21.035
irgendwas vergessen oder kann man das

01:32:21.035 --> 01:32:22.935
irgendwie, gibt es offensichtliche Dinge, die man irgendwie besser

01:32:22.935 --> 01:32:24.655
machen kann und so. Und

01:32:24.655 --> 01:32:27.015
ja, das funktioniert tatsächlich ziemlich gut.

01:32:27.575 --> 01:32:29.255
Alle Anfragen

01:32:29.255 --> 01:32:30.975
und Antworten landen in der SQLite.

01:32:31.075 --> 01:32:32.995
Das heißt, hinterher kann man sich auch gut angucken, was da,

01:32:33.255 --> 01:32:35.135
also man hat alle Sachen, die man je irgendwie

01:32:35.135 --> 01:32:37.175
gepromptet hat und wo man Antworten gekriegt hat,

01:32:37.195 --> 01:32:39.095
hat man in einem strukturierten Format,

01:32:39.135 --> 01:32:40.935
dass man halt auch wieder irgendwie auslesen kann und

01:32:40.935 --> 01:32:42.875
analysieren kann. Und dann kann man totaler Zeit deine Templates

01:32:42.875 --> 01:32:44.875
verwenden, die man halt auch dann hintereinander

01:32:44.875 --> 01:32:46.815
pipen kann und dann kann man auch das Default-Template

01:32:46.815 --> 01:32:48.975
überschreiben werden will und so. Da hat man halt immer schon

01:32:48.975 --> 01:32:50.854
sein System prompt und sein Alignment

01:32:50.854 --> 01:32:52.995
so ein bisschen vor oder hinter

01:32:52.995 --> 01:32:54.835
dem ganzen Zeugs, was man da kommuniziert.

01:32:55.015 --> 01:32:56.235
Das finde ich auch super cool.

01:32:57.575 --> 01:32:58.655
Ich habe zum Beispiel so einen,

01:32:58.894 --> 01:33:00.035
den nenne ich dann den Senior,

01:33:00.375 --> 01:33:02.835
dann gibt der mir immer schnippische Antworten,

01:33:02.955 --> 01:33:03.975
wie ich das von Jochen immer kenne.

01:33:06.635 --> 01:33:08.455
Es funktioniert super, es macht sehr viel Spaß.

01:33:08.595 --> 01:33:10.815
Und dann sagt der mir so, warum hast du das denn nicht selber

01:33:10.815 --> 01:33:11.915
rausgefunden? Hättest du auch die Anleitung.

01:33:12.354 --> 01:33:14.755
Das ist toll und es macht so ein bisschen Spaß beim Arbeiten,

01:33:14.835 --> 01:33:16.735
wenn man dann Fragen stellt und jemand, der dann so

01:33:16.735 --> 01:33:18.535
antwortet. Das ist sehr lustig.

01:33:19.915 --> 01:33:20.675
Sehr gut.

01:33:21.715 --> 01:33:21.935
Genau.

01:33:22.835 --> 01:33:23.894
Ja, also das Ding, ups,

01:33:24.135 --> 01:33:26.835
das wäre dann mein Pick, genau.

01:33:28.155 --> 01:33:28.675
Ja,

01:33:29.935 --> 01:33:30.415
Ronny?

01:33:32.495 --> 01:33:32.894
Boah,

01:33:34.195 --> 01:33:35.135
so ganz spontan

01:33:35.135 --> 01:33:36.955
fallen mir nicht

01:33:36.955 --> 01:33:38.394
mehr Sachen ein.

01:33:38.435 --> 01:33:40.695
Du kennst etwa die Praxis nicht von dem Pick

01:33:40.695 --> 01:33:42.675
der Woche des Monats hier bei uns im Podcast?

01:33:43.235 --> 01:33:44.635
Also ich kenne das doch, aber mir fällt gerade

01:33:44.635 --> 01:33:46.755
nichts wirklich ein, was ich nicht gerade schon irgendwie

01:33:46.755 --> 01:33:47.915
in einer Art und Weise erwähnt habe.

01:33:47.935 --> 01:33:49.715
Hast du einen interessanten Talk gesehen?

01:33:50.535 --> 01:33:52.815
Wenn dir ein Talk zum Beispiel bei der DjangoCon

01:33:52.815 --> 01:33:54.955
super gefallen hat, dann können die Leute

01:33:54.955 --> 01:33:56.295
ihn jetzt noch nicht sehen, aber

01:33:56.295 --> 01:33:58.635
irgendwie sich schon mal darauf freuen, dass es

01:33:58.635 --> 01:34:00.215
später auf YouTube gibt oder so.

01:34:00.375 --> 01:34:02.795
Also wie gesagt, der Talk über die

01:34:02.795 --> 01:34:03.894
Layered Architect über Django,

01:34:05.295 --> 01:34:06.835
ich weiß nicht genau,

01:34:06.995 --> 01:34:08.955
wie er hieß, der war auf jeden Fall sehr spannend

01:34:08.955 --> 01:34:10.775
und auch einen Talk,

01:34:10.815 --> 01:34:12.655
wenn man sich für Django interessiert und auch

01:34:12.655 --> 01:34:14.935
die Idee bezüglich

01:34:14.935 --> 01:34:17.255
großer Applikationen

01:34:17.255 --> 01:34:18.795
und wie lässt man eine Django-Applikation wachsen,

01:34:18.875 --> 01:34:20.275
weil ich bin schon davon überzeugt, dass man auch

01:34:20.275 --> 01:34:22.495
große Applikationen damit bauen kann.

01:34:22.795 --> 01:34:24.295
Nicht nur zwingend dieses kleine

01:34:24.295 --> 01:34:26.655
Blog-Ding, womit es mal angefangen hat.

01:34:27.075 --> 01:34:28.854
Da gibt es einen Talk, Scaling Django

01:34:28.854 --> 01:34:29.815
to 500 Apps.

01:34:30.875 --> 01:34:31.775
Das ist auch Kraken,

01:34:31.835 --> 01:34:34.775
Octopus Energy

01:34:34.775 --> 01:34:36.315
related, glaube ich.

01:34:36.935 --> 01:34:39.095
Und die haben eine Idee von, also Django-Apps

01:34:39.095 --> 01:34:40.875
ist halt im Endeffekt eine Art und Weise, wie man den Code

01:34:40.875 --> 01:34:42.854
Kapsel, das haben ja viele Frameworks

01:34:42.854 --> 01:34:44.675
und die haben da eine Idee,

01:34:45.155 --> 01:34:46.815
naja, in ganzer Hinsicht missbrauchen

01:34:46.815 --> 01:34:48.915
da ein bisschen das Framework, machen was, was nicht vorgesehen

01:34:48.915 --> 01:34:51.155
war, was aber trotzdem funktioniert, nämlich die machen Sub-Apps

01:34:51.155 --> 01:34:52.275
und haben da so eine

01:34:52.275 --> 01:34:54.995
Naming-Konvention, um im Endeffekt zu sagen,

01:34:55.375 --> 01:34:56.715
ich habe immer noch eine

01:34:56.715 --> 01:34:58.735
Domäne, die sich um mein Projekt

01:34:58.735 --> 01:35:00.815
oder mein Accounting oder mein weiß der Geier

01:35:00.815 --> 01:35:02.935
was kümmert, mein Produkt, aber da drin

01:35:02.935 --> 01:35:04.995
das ist so groß geworden, ich möchte das weiter strukturieren.

01:35:05.915 --> 01:35:06.935
Und das

01:35:06.935 --> 01:35:08.735
finde ich super spannend, das ist gerade auch eine Sache, über die ich

01:35:08.735 --> 01:35:10.835
sehr aktiv nachdenke, wie ich das in meinen

01:35:10.835 --> 01:35:13.135
Projekt, in dem ich aktuell arbeite, reinbringen kann.

01:35:14.255 --> 01:35:15.115
Weil ich jetzt

01:35:15.115 --> 01:35:17.055
zum Beispiel in meinem Projekt, wir haben

01:35:17.055 --> 01:35:19.055
da so ein bisschen, also manche

01:35:19.055 --> 01:35:20.975
Apps sind einfach riesig geworden, wo man sagen muss, die müssen

01:35:20.975 --> 01:35:23.115
aufgeteilt werden. Und mit diesem Sub-App-Gedanken

01:35:23.115 --> 01:35:24.955
bin ich heute einfach nur in diesem

01:35:24.955 --> 01:35:26.995
Structure-View, also wo man quasi sieht, welche Klassen

01:35:26.995 --> 01:35:28.875
gibt es in meiner Datei. Einfach mal mit

01:35:28.875 --> 01:35:31.035
einem Blick sind mir und meinem Kollegen

01:35:31.035 --> 01:35:32.795
wirklich einfach so, okay, das ist ein

01:35:32.795 --> 01:35:34.515
Kontext, also das ist so eine Sub-App,

01:35:34.615 --> 01:35:36.295
das ist super schnell,

01:35:36.635 --> 01:35:39.035
wie so Sachen reingehen, wo man auch sagt, okay, das gehört hier echt gar nicht rein,

01:35:39.075 --> 01:35:40.595
das muss eigentlich komplett woanders hin.

01:35:40.835 --> 01:35:42.555
einfach nur mit einem Blick und diesem Gedanken, dass es

01:35:42.555 --> 01:35:44.335
dieses Sub-App-Pattern gibt.

01:35:45.175 --> 01:35:46.695
Dann auch bei ein paar Sachen gesagt, okay, das ist definitiv

01:35:46.695 --> 01:35:48.435
kein Sub-App, das muss einfach, das ist ein Standalone,

01:35:48.635 --> 01:35:49.775
das kann man gut rausziehen.

01:35:50.394 --> 01:35:52.775
Das finde ich auf jeden Fall einen sehr interessanten Vortrag, den ich

01:35:52.775 --> 01:35:54.354
jedem ans Herz legen kann, der sich

01:35:54.354 --> 01:35:56.155
für sowas interessiert.

01:35:56.394 --> 01:35:58.675
Sub-Apps habe ich ja auch in letzter Woche in irgendeinem Projekt eingebaut,

01:35:58.755 --> 01:35:59.735
aber ohne das Pattern dazu.

01:36:00.035 --> 01:36:02.215
Aber ich bin eigentlich eher, gut,

01:36:02.335 --> 01:36:04.755
vielleicht bin ich da auch irgendwie falsch abgebogen,

01:36:04.894 --> 01:36:06.275
aber ich bin eigentlich eher so auf dem,

01:36:06.394 --> 01:36:08.175
ich mache gar keine Django-Apps mehr, weil

01:36:08.175 --> 01:36:10.215
also immer, wenn ich

01:36:10.215 --> 01:36:10.775
Wie sonst?

01:36:11.755 --> 01:36:13.935
Naja, einfach ganz stinknormal mit Python

01:36:13.935 --> 01:36:16.354
Bordmitteln Dinge modularisieren.

01:36:16.415 --> 01:36:17.135
Modular, ja.

01:36:17.935 --> 01:36:19.335
Weil das Problem bei den Apps ist halt

01:36:19.335 --> 01:36:21.495
einmal, ja,

01:36:22.135 --> 01:36:24.015
das ist halt irgendwie so eine Spezialgeschichte, die halt

01:36:24.015 --> 01:36:25.815
irgendwie anders funktioniert als alles andere

01:36:25.815 --> 01:36:28.015
und du musst es halt auch in den Settings

01:36:28.015 --> 01:36:29.495
ja immer dann mit setzen und so.

01:36:29.854 --> 01:36:31.975
Und dann, das was ich eigentlich

01:36:31.975 --> 01:36:32.475
am

01:36:32.475 --> 01:36:35.815
fiesesten finde, ist, dass man halt,

01:36:35.894 --> 01:36:37.655
man kann halt Sachen schlecht refactoren,

01:36:38.135 --> 01:36:39.455
so von einer App zum Beispiel in eine andere,

01:36:39.455 --> 01:36:41.015
und man kann die Migration nicht umziehen.

01:36:41.135 --> 01:36:43.135
Aber so Modelle, genau. Wäre so ein Punkt, wo ich sage,

01:36:43.195 --> 01:36:45.135
wenn es irgendwo Modelle gibt,

01:36:45.955 --> 01:36:47.195
ist für mich immer bisher so eine App.

01:36:47.835 --> 01:36:49.595
Ja, aber was machst du dann, wenn du mal

01:36:49.595 --> 01:36:51.155
das eine Modell in eine andere App ziehen willst?

01:36:51.295 --> 01:36:53.875
Das ist mühsam, das habe ich schon gemacht. Es geht, aber es ist mühsam.

01:36:54.595 --> 01:36:54.995
Also weil,

01:36:55.235 --> 01:36:57.515
ja. Also musst du halt mit

01:36:57.515 --> 01:36:58.815
RAW SQL und

01:36:58.815 --> 01:37:01.415
Daten halt. Ja, klar, du kannst natürlich,

01:37:01.555 --> 01:37:03.335
es geht schon, aber es ist halt nicht einfach, man

01:37:03.335 --> 01:37:05.475
verschiebt es. Da kann man auch alles kaputt machen.

01:37:05.595 --> 01:37:06.655
Ja, genau.

01:37:07.435 --> 01:37:09.275
Wenn man es halt alles in einer App hat,

01:37:09.275 --> 01:37:10.515
sozusagen, dann kann man es einfach umziehen.

01:37:11.215 --> 01:37:13.075
Das ist eine interessante Idee, habe ich nicht drüber nachgedacht.

01:37:13.535 --> 01:37:14.835
Dass wir diese Modellis für das

01:37:14.835 --> 01:37:15.815
Myco-Diskussionieren machen.

01:37:15.815 --> 01:37:17.835
Ich habe meistens dann zum Beispiel Models,

01:37:18.055 --> 01:37:19.675
also wenn es größer wird, dann habe ich halt ein

01:37:19.675 --> 01:37:20.755
Models-Verzeichnis.

01:37:21.555 --> 01:37:23.015
Alle Models in einer Datei.

01:37:23.095 --> 01:37:24.935
Nee, genau, das eben nicht mehr, weil das wird dann halt riesig.

01:37:26.255 --> 01:37:27.595
Also wenn Models

01:37:27.595 --> 01:37:29.595
irgendwie größer wird als tausend Zeilen oder so,

01:37:29.635 --> 01:37:31.975
dann würde ich denken, gut, dann wahrscheinlich sollte man es mal ein bisschen aufteilen.

01:37:32.795 --> 01:37:33.655
Und ja,

01:37:33.715 --> 01:37:35.555
dann kann man die ja auch so gruppieren und dann

01:37:35.555 --> 01:37:37.715
hat man noch eine Init-Py, in der man dann halt

01:37:37.715 --> 01:37:43.035
irgendwie festlegt, welche überhaupt exportiert werden sollen, weil viele Dinge braucht man gar nicht nach außen reichen, sondern die sind ja rein intern.

01:37:44.235 --> 01:37:45.735
Das ist interessant, da habe ich noch nicht drüber nachgedacht,

01:37:45.894 --> 01:37:46.655
so ein API zu sehen.

01:37:47.135 --> 01:37:51.015
Ja, das finde ich auch. Also ich mache halt unterverzeichnis, wo nur bestimmte Sachen rauskommen, die anderen Sachen

01:37:51.015 --> 01:37:52.495
implizit intern.

01:37:53.195 --> 01:37:56.255
Das ist interessant, da habe ich heute noch drüber nachgedacht, aber

01:37:56.255 --> 01:37:59.235
dass das ein Benefit ist, habe ich

01:37:59.235 --> 01:38:01.075
nicht drauf gekommen. Das ist interessant.

01:38:02.595 --> 01:38:05.415
Ja, cool. Und dein Pick?

01:38:05.415 --> 01:38:11.115
Mein Pick, ich habe natürlich wieder von Jens geklaut, der das in unsere Gruppe geschrieben hat, ist MonkeyType.

01:38:12.095 --> 01:38:14.975
Das ist von Instagram entwickelt worden, wenn ich das richtig verstanden habe.

01:38:15.515 --> 01:38:17.155
Und das baut dir Type Annotations.

01:38:18.615 --> 01:38:24.915
Das heißt, du gehst einfach hin und hast irgendeine Python-Funktion oder sowas und sagst dann Command-Seite MonkeyType

01:38:24.915 --> 01:38:29.195
und dann nimmt der halt die File oder das Ding und schreibt da die Annotations dran.

01:38:29.975 --> 01:38:30.795
Das ist gar nicht so schlecht.

01:38:31.394 --> 01:38:33.375
Das funktioniert besser, als man vielleicht denkt.

01:38:33.375 --> 01:38:37.195
und wenn man halt gerade nicht so weiß,

01:38:37.255 --> 01:38:40.035
warum man das mal möchte,

01:38:40.535 --> 01:38:43.275
dann macht man das doch und dann sieht man, was da passiert.

01:38:43.394 --> 01:38:44.915
Das kann einem schon ein bisschen Arbeit abnehmen.

01:38:47.175 --> 01:38:48.354
Man entdeckt manchmal sogar auch Bugs,

01:38:48.455 --> 01:38:50.075
das stimmt aber eigentlich gar nicht oder so.

01:38:50.995 --> 01:38:52.655
Ja, man erwartet andere Sachen.

01:38:53.055 --> 01:38:55.795
Oder oh Mist, dann kommt auf einmal der Delinther oder MyPy

01:38:55.795 --> 01:38:57.695
und sagt halt so, ne Moment, der Destroider wäre jetzt gar nicht das.

01:38:58.135 --> 01:38:58.975
Das ist schon ganz gut.

01:38:59.915 --> 01:39:00.315
Interessant.

01:39:00.915 --> 01:39:03.315
Ja, gut, dann würde ich sagen,

01:39:03.375 --> 01:39:04.815
Haben wir für heute die Episode?

01:39:05.035 --> 01:39:06.354
Dann herzlichen Dank, dass du wieder da warst, Freund.

01:39:06.354 --> 01:39:07.315
Ja, vielen Dank.

01:39:08.175 --> 01:39:10.795
Dann machen wir es gleich noch unter uns weiter, würde ich sagen.

01:39:11.455 --> 01:39:12.535
Herzlichen Dank fürs Zuhören.

01:39:12.695 --> 01:39:14.055
Bleibt uns gebogen, wo immer ihr auch seid.

01:39:14.595 --> 01:39:15.155
Danke, Jochen.

01:39:16.354 --> 01:39:18.695
Und Feedback an hallo.at,

01:39:18.695 --> 01:39:20.975
peißenpodcast.de, Feedback, Anregungen, Kommentare,

01:39:21.195 --> 01:39:22.175
Lob, Kritik und so weiter.

01:39:22.715 --> 01:39:24.375
Was ihr alles möchtet. Bis bald.

01:39:25.115 --> 01:39:25.715
Bis dann. Tschüss.
