WEBVTT

00:00:00.000 --> 00:00:04.880
Hallo und herzlich willkommen bei einem Python-Podcast. Heute ist die 40. Jochen, wir haben ein Jubiläum.

00:00:05.680 --> 00:00:13.620
Oh ja, herzlich willkommen Dominik. 40, das ist ja schon viel älter als wir sind.

00:00:15.260 --> 00:00:16.000
Ja, fast.

00:00:17.020 --> 00:00:18.100
Ja, zumindest teilweise.

00:00:19.260 --> 00:00:19.720
Ja, noch.

00:00:22.440 --> 00:00:26.020
Was wollen wir heute machen? Wir haben ja erst überlegt, ob wir irgendwas über Ensebild erzählen wollen,

00:00:26.020 --> 00:00:27.980
aber das müssen wir wann anders, glaube ich, nachholen, weil

00:00:27.980 --> 00:00:29.560
wir niemanden gefunden haben, der

00:00:29.560 --> 00:00:31.940
sich mit Ansible so richtig gut auskennt, den wir ja gerne

00:00:31.940 --> 00:00:32.860
als Gast gehabt hätten.

00:00:34.180 --> 00:00:35.980
Wenn ihr also von Ansible Ahnung habt

00:00:35.980 --> 00:00:38.080
und was erzählen wollt, dann sagt uns doch einfach mal Bescheid.

00:00:38.960 --> 00:00:40.160
Das gilt auch übrigens für alles andere

00:00:40.160 --> 00:00:42.560
Feedback, was ihr uns schicken wollt an hallo.pythonpodcast.de

00:00:42.560 --> 00:00:44.160
Genau, wenn ihr ein Thema

00:00:44.160 --> 00:00:45.640
habt, über das ihr gerne mal

00:00:45.640 --> 00:00:48.020
gesprochen haben wollen würdet, dann könnt

00:00:48.020 --> 00:00:49.760
ihr das auch gerne selber mit uns tun oder

00:00:49.760 --> 00:00:51.980
jemanden nennen, den wir mal fragen sollen,

00:00:52.140 --> 00:00:54.020
weil genau...

00:00:54.020 --> 00:00:55.940
Wir haben zwar noch viele schöne Themen auf unserer Liste und so,

00:00:55.940 --> 00:00:58.420
Aber wir lassen uns auch immer gerne bereichern mit neuen tollen Themen

00:00:58.420 --> 00:01:00.820
Da müssen wir vielleicht nachher nochmal drüber reden, welche Themen das denn sind

00:01:00.820 --> 00:01:03.020
damit Leute dann auch eine Chance haben, irgendwie zu sagen

00:01:03.020 --> 00:01:03.520
ob sie jemanden kennen

00:01:03.520 --> 00:01:05.400
Die können ja einfach ihr Thema bringen, auf das sie besonders Lust haben

00:01:05.400 --> 00:01:09.140
Okay, dann sagen wir das jetzt zuerst, wo noch so viele Leute dazuhören, dass sie das mal machen sollen

00:01:09.140 --> 00:01:10.760
Ja, es gibt ja so eine Burnrate

00:01:10.760 --> 00:01:12.100
Genau, und dann am Schluss

00:01:12.100 --> 00:01:13.540
ist ja keiner mehr übrig

00:01:13.540 --> 00:01:16.700
Ja, aber was machen wir denn dann heute? Wir wollen eigentlich fast so ein bisschen mal wieder

00:01:16.700 --> 00:01:18.960
kunterbunt voneinander reden

00:01:18.960 --> 00:01:20.020
Zeugs besprechen

00:01:20.020 --> 00:01:22.300
Eben so Metageschichten vielleicht tatsächlich mal wieder

00:01:22.300 --> 00:01:23.640
Das haben wir jetzt auch schon länger nicht mehr gemacht

00:01:23.640 --> 00:01:26.000
so eben, über was man mal reden könnte

00:01:26.000 --> 00:01:28.400
oder ja, was wir so tun.

00:01:28.500 --> 00:01:28.920
Ja, so richtig Meta,

00:01:29.480 --> 00:01:31.100
ja, Meta bei was, ja.

00:01:31.440 --> 00:01:33.320
Bei Podcast ist es nicht Meta, bei Python ist es

00:01:33.320 --> 00:01:35.280
eigentlich so WebDev-Meta, oder?

00:01:35.640 --> 00:01:37.500
Also was man so alles benutzen kann, an Tools

00:01:37.500 --> 00:01:40.080
oder so. Ja, ich meine, wir machen ja

00:01:40.080 --> 00:01:41.800
relativ viel Webentwicklung, oder ich

00:01:41.800 --> 00:01:43.620
mache gerade relativ viel Webentwicklung

00:01:43.620 --> 00:01:44.960
seit einer ganzen Zeit.

00:01:46.300 --> 00:01:47.740
Ich weiß auch nicht, warum das so ist, weil ich

00:01:47.740 --> 00:01:49.460
mache ja eigentlich auch viel Maschinenleutent-Kram und so,

00:01:49.620 --> 00:01:51.680
oder habe auch mal viel gemacht, aber in letzter Zeit

00:01:51.680 --> 00:01:54.800
und das ist irgendwie mehr Webentwicklung, obwohl das andere Ding ja auch gerade so halbt.

00:01:55.000 --> 00:01:57.840
Ich weiß nicht, woran das liegt. Ich muss da vielleicht einfach mehr Machine Learning wieder machen.

00:01:58.080 --> 00:01:59.720
Ich wollte gerade sagen, ich will erst mal den Job wechseln, Jochen.

00:01:59.900 --> 00:02:01.160
Ja, das kann natürlich auch sein.

00:02:02.040 --> 00:02:03.300
Ja, gut.

00:02:04.700 --> 00:02:09.700
Vielleicht Webentwicklung ist eigentlich so ein bisschen Convenience-Software-Entwicklung.

00:02:10.260 --> 00:02:12.220
Das kann man mal so ein bisschen dazwischen schieben.

00:02:12.280 --> 00:02:13.300
Vielleicht musst du was Lippes machen.

00:02:13.300 --> 00:02:13.600
Das ist nicht so schlimm.

00:02:13.660 --> 00:02:15.920
Also Machine Learning auf Blockchain oder so.

00:02:16.440 --> 00:02:17.000
Oh mein Gott.

00:02:18.500 --> 00:02:20.020
Ja, das ist jetzt so, das weiß ich nicht.

00:02:20.020 --> 00:02:21.000
Duo in Finale.

00:02:21.680 --> 00:02:28.420
Ich weiß nicht, ob ich das machen möchte. Nee, eher nicht. Aber genau, vielleicht fangen wir einfach mit News an.

00:02:28.520 --> 00:02:29.000
Ja, mit News.

00:02:30.000 --> 00:02:31.960
Okay, warte mal, die Kapitelmarke News.

00:02:33.660 --> 00:02:37.000
Dafür musst du dich jetzt aber ziemlich stricken. Das müssen wir noch optimieren.

00:02:37.180 --> 00:02:39.200
Das muss ich. Der Raum ist noch nicht ganz optimal, das stimmt.

00:02:39.340 --> 00:02:41.420
Okay. Also wir haben gerade ein Kapitelmarke.

00:02:41.600 --> 00:02:47.200
Ich sehe schon, dass die Kapitelmarke irgendwie am Anfang jetzt sitzt und nicht da, wo ich sie eigentlich haben wollte. Irgendwie funktioniert das alles noch nicht so richtig.

00:02:47.280 --> 00:02:48.640
Ja, in Melkrotte wird eher eine Laberfolge.

00:02:48.640 --> 00:02:50.920
Ah, was ist denn da schon wieder kaputt?

00:02:51.680 --> 00:02:54.980
Okay, ich stelle jetzt hier mal das Ding in Ultraschall auf.

00:02:55.640 --> 00:02:58.120
Wir benutzen übrigens Ultraschall zum Aufnehmen.

00:02:58.120 --> 00:03:00.560
Ja, Ultraschall 5, sehr gut.

00:03:01.300 --> 00:03:03.820
Ein Plugin auf Reaper.

00:03:04.940 --> 00:03:05.980
Ja, genau.

00:03:06.920 --> 00:03:08.520
Wie produziert man Podcasts?

00:03:08.620 --> 00:03:10.040
Das haben wir noch gar nicht.

00:03:10.040 --> 00:03:11.720
Haben wir das schon mal gesagt, wie man einen Podcast produziert?

00:03:11.940 --> 00:03:13.500
Oder wie wir unseren produzieren vielleicht?

00:03:14.720 --> 00:03:16.040
Also Kurzversion ist tatsächlich,

00:03:16.120 --> 00:03:18.600
wir nehmen das auf mit diesem Plugin für Reaper.

00:03:18.600 --> 00:03:23.060
Reaper ist eine Software, die ist eigentlich kostenlos, aber...

00:03:23.060 --> 00:03:24.160
Nein, nein, nein.

00:03:24.340 --> 00:03:29.820
Ja, also in der Testversion, in der Evaluation-Version gibt es, also erstmal zum Ausprobieren kostenlos, ich wollte jetzt sagen.

00:03:29.920 --> 00:03:30.420
Ja, okay.

00:03:30.620 --> 00:03:33.680
Und dann gibt es halt dann dieses Plugin Ultraschall für Podcasts, was echt cool ist.

00:03:34.100 --> 00:03:38.320
Und danach machen wir noch so Post-Production mit Auphonic.

00:03:38.960 --> 00:03:43.800
Ja, und Shownotes schreiben und so, das machen wir auch so, leider nicht automatisch, sondern auf Auphonic.

00:03:43.800 --> 00:03:45.660
Ja, aber das kann man ja

00:03:45.660 --> 00:03:47.660
einigermaßen gebrauchen, dann kann man doch mal nachschauen,

00:03:47.740 --> 00:03:49.400
was wir für einen Quatsch irgendwann mal erzählt haben.

00:03:49.500 --> 00:03:51.640
Vielleicht ist da ein Schumanns drin, wenn das denn jemand

00:03:51.640 --> 00:03:52.260
aufgeschrieben hat.

00:03:53.440 --> 00:03:55.400
Genau. So, jetzt kann ich auch die

00:03:55.400 --> 00:03:56.920
News-Kapitelmarke nochmal verschieben.

00:03:57.060 --> 00:03:58.520
Ich kann ein schlechtes Gewissen haben.

00:03:59.460 --> 00:04:01.600
Jetzt haben wir aber auch wirklich ein bisschen Meta über Podcasts.

00:04:01.600 --> 00:04:03.780
Das ist doch schon mal etwas. Du wolltest bestimmt auch mal über andere Podcasts

00:04:03.780 --> 00:04:04.280
gleich erzählen.

00:04:04.960 --> 00:04:06.260
Ja, aber das war auch Meta.

00:04:06.260 --> 00:04:06.940
Das war News.

00:04:07.420 --> 00:04:10.300
Das ist ein bisschen Neues.

00:04:10.940 --> 00:04:12.420
Also ganz schick.

00:04:12.420 --> 00:04:14.260
Task Groups

00:04:14.260 --> 00:04:16.320
gibt es jetzt, ist gerade gemerged

00:04:16.320 --> 00:04:17.680
worden für Python 3.11.

00:04:18.360 --> 00:04:20.380
Okay, was ist Task Groups? Fangen wir vielleicht erstmal

00:04:20.380 --> 00:04:22.440
damit an. Naja, also

00:04:22.440 --> 00:04:24.040
sagen wir so, es gibt ja irgendwie bei,

00:04:24.220 --> 00:04:26.060
also es gibt eine Schwachstelle bei

00:04:26.060 --> 00:04:27.680
Python Async

00:04:27.680 --> 00:04:29.800
Geschichten, die halt da schon

00:04:29.800 --> 00:04:32.420
oft irgendwie

00:04:32.420 --> 00:04:33.860
ja,

00:04:34.500 --> 00:04:35.560
Leute ein bisschen

00:04:35.560 --> 00:04:38.180
depressiv gemacht hat, oder keine Ahnung, oder

00:04:38.180 --> 00:04:39.620
geagert hat, ich glaube,

00:04:39.620 --> 00:04:40.120
das ist am besten

00:04:40.120 --> 00:04:42.620
Also zum Beispiel

00:04:42.620 --> 00:04:45.880
Trio ist eine Bibliothek, die sich halt mit diesen ganzen Problemen

00:04:45.880 --> 00:04:47.460
beschäftigt. Es ist halt auch schwierig.

00:04:47.740 --> 00:04:48.100
Ja, Trio.

00:04:49.520 --> 00:04:51.260
Nathaniel Smith hat die geschrieben.

00:04:51.420 --> 00:04:53.900
Es gibt ja diverse Implementationen

00:04:53.900 --> 00:04:55.660
in diesem Async. Ich habe jetzt ganz viel gehört, aber ich habe

00:04:55.660 --> 00:04:58.020
immer noch nicht genau verstanden, was denn das Problem dabei ist.

00:04:58.300 --> 00:04:59.700
Also das Problem ist halt,

00:05:00.020 --> 00:05:02.100
also sagen wir mal so,

00:05:02.680 --> 00:05:04.080
wir befinden

00:05:04.080 --> 00:05:06.020
uns, was diese Async-Geschichten angeht, ja so ein bisschen

00:05:06.020 --> 00:05:07.060
in einem ähnlichen

00:05:07.060 --> 00:05:09.780
Stadium wie, als man

00:05:09.780 --> 00:05:11.800
irgendwann mal angeführt hat, strukturierte Programmierung

00:05:11.800 --> 00:05:13.780
zu verwenden, anstelle von

00:05:13.780 --> 00:05:14.900
Gotoh oder so.

00:05:16.320 --> 00:05:17.820
Das ist jetzt ein bisschen abstrakt.

00:05:18.160 --> 00:05:19.540
Es ist jetzt so, als wäre es nebenläufig

00:05:19.540 --> 00:05:21.520
ein zweiter Gedanke losgelaufen, der aber nicht mit dem anderen

00:05:21.520 --> 00:05:23.440
wieder zusammengekommen ist, weil ich den nicht einsammeln konnte.

00:05:23.760 --> 00:05:25.620
Ja, aber genau.

00:05:27.620 --> 00:05:29.900
Also nachdem man strukturierte Programmierung, also mit Funktionen

00:05:29.900 --> 00:05:31.840
und so oder Prozeduren irgendwie eingeführt

00:05:31.840 --> 00:05:33.700
hatte, da musste man auch erstmal sich umgewöhnen oder so, weil man

00:05:33.700 --> 00:05:35.760
das bisher immer anders gemacht hat. Also man strukturierte Programmierung

00:05:35.760 --> 00:05:37.700
bedeutet, man schreibt nicht von oben nach unten irgendwas durch

00:05:37.700 --> 00:05:39.660
und sagt dann, okay, geh wieder zu dieser Zeile und

00:05:39.660 --> 00:05:41.460
macht da irgendwie weiter, sondern man

00:05:41.460 --> 00:05:43.380
kennt das in logische Blöcke,

00:05:43.500 --> 00:05:44.960
die man aufrufen kann.

00:05:44.960 --> 00:05:47.020
Wo man am Anfang weiß,

00:05:47.100 --> 00:05:48.840
was da reinkommt und am Schluss weiß, was da wieder

00:05:48.840 --> 00:05:50.660
zurückgeht und sozusagen

00:05:50.660 --> 00:05:53.300
damit man das halt nur noch...

00:05:53.300 --> 00:05:54.600
Nennt man das eine Closure?

00:05:55.880 --> 00:05:56.160
Nö.

00:05:57.040 --> 00:05:58.640
Closure ist eine

00:05:58.640 --> 00:06:00.500
innere Funktion,

00:06:01.000 --> 00:06:03.020
die halt Zugriff

00:06:03.020 --> 00:06:04.020
auf etwas hat, was

00:06:04.020 --> 00:06:06.580
ja,

00:06:07.020 --> 00:06:08.680
also du kannst zum Beispiel, wenn du eine Funktion

00:06:08.680 --> 00:06:10.840
in der Funktion hast und du gibst jetzt sozusagen

00:06:10.840 --> 00:06:11.860
die innere Funktion zurück,

00:06:12.680 --> 00:06:14.980
dann hat die ja noch Zugriff auf den Scope der Funktion,

00:06:15.140 --> 00:06:16.960
aus der sie rauskommt. Und da kannst du

00:06:16.960 --> 00:06:17.900
jetzt Sachen drin definieren.

00:06:18.640 --> 00:06:20.900
Also zum Beispiel Closures ist halt das allgemeine Prinzip

00:06:20.900 --> 00:06:23.040
hinter, wie man Dekoratoren in Python

00:06:23.040 --> 00:06:25.060
dann implementiert. Also Dekoratoren

00:06:25.060 --> 00:06:26.980
machen das. Die rappen

00:06:26.980 --> 00:06:28.940
sozusagen die Funktion, die man dekoriert,

00:06:29.040 --> 00:06:30.300
in eine innere Funktion rein.

00:06:30.320 --> 00:06:32.880
Bin ich mir gerade nicht ganz sicher, ob wir die Menschen, die uns zuhören,

00:06:32.940 --> 00:06:34.760
jetzt nochmal abhören dabei, was weiß ein Dekorator sind?

00:06:35.160 --> 00:06:36.160
Oder ob die das alles schon wissen?

00:06:36.160 --> 00:06:39.660
Da können wir mal eine Episode dazu machen, die Quadrant, super Sache.

00:06:39.840 --> 00:06:42.100
Eigentlich schon, ne? Ja, okay, dann machen wir eine eigene Episode dazu.

00:06:42.380 --> 00:06:43.220
Also, man

00:06:43.220 --> 00:06:46.060
man webbt dann quasi

00:06:46.060 --> 00:06:48.020
die Funktion und dann, da die aufgerufen wird

00:06:48.020 --> 00:06:50.000
und das Funktionsobjekt dadurch die Gegend gereicht

00:06:50.000 --> 00:06:52.040
wird, muss man halt Objekte oder Dinge

00:06:52.040 --> 00:06:53.920
reingeben können, rausgeben können und kann halt vorher

00:06:53.920 --> 00:06:55.440
und nachher was machen.

00:06:56.400 --> 00:06:57.600
Oder da irgendwelchen Kontext setzen, genau.

00:06:58.140 --> 00:06:59.860
Und, ja,

00:07:00.160 --> 00:07:00.700
also,

00:07:01.200 --> 00:07:03.920
das ist nochmal was komplizierteres, aber

00:07:03.920 --> 00:07:05.800
also Funktionen sind eigentlich relativ einfach, aber

00:07:05.800 --> 00:07:07.860
trotzdem, wenn man das halt nicht gewohnt ist, dann muss man das umstellen

00:07:07.860 --> 00:07:09.960
und es ist die Frage, wie arbeitet man damit, was macht man

00:07:09.960 --> 00:07:11.820
jetzt eigentlich in einem Fehlerfall und so und all diese

00:07:11.820 --> 00:07:13.900
Probleme haben wir jetzt nochmal so ein bisschen, weil

00:07:13.900 --> 00:07:15.880
wir jetzt uns irgendwie überlegen müssen, okay

00:07:15.880 --> 00:07:17.840
wenn wir jetzt async Sachen machen,

00:07:17.920 --> 00:07:19.860
wie machen wir das denn richtig und

00:07:19.860 --> 00:07:21.860
zum Beispiel ein Problem, was jetzt

00:07:21.860 --> 00:07:23.640
halt den Leuten öfter mal auf den Fuß gefallen ist,

00:07:23.720 --> 00:07:25.280
vor allen Dingen die Bibliotheken entwickeln,

00:07:25.380 --> 00:07:27.200
als Endanwender oder

00:07:27.200 --> 00:07:29.500
Endproduzer von diesen Geschichten

00:07:29.500 --> 00:07:31.600
hat man das eigentlich gar nicht so oft,

00:07:31.780 --> 00:07:33.960
aber kann sich ungefähr verdeutlichen,

00:07:34.060 --> 00:07:35.720
also wenn man jetzt zum Beispiel, man hat halt so

00:07:35.720 --> 00:07:38.680
also was man mit AsyncIO oft macht, ist sowas wie

00:07:38.680 --> 00:07:40.340
zum Beispiel, also im einfachsten Fall

00:07:40.340 --> 00:07:42.440
man hat eine Liste von URLs, die man abfragen möchte

00:07:42.440 --> 00:07:44.460
und dann sagt man halt irgendwie

00:07:44.460 --> 00:07:46.180
AsyncIO, oder man sagt halt

00:07:46.180 --> 00:07:47.820
Gather den ganzen Kram

00:07:47.820 --> 00:07:50.060
und kriegt dann halt das alles zurück.

00:07:51.140 --> 00:07:51.820
Was passiert denn?

00:07:52.140 --> 00:07:53.300
Was macht denn das Gather jetzt genau?

00:07:54.560 --> 00:07:56.380
Das wartet, bis sie alle einmal

00:07:56.380 --> 00:07:58.080
durch sind, alle Awaiten. Gather macht

00:07:58.080 --> 00:08:00.360
Await eins nach dem anderen und zwar in der Reihenfolge, wie die Liste

00:08:00.360 --> 00:08:02.380
drinsteht, oder das letzte.

00:08:02.800 --> 00:08:04.420
Die Reihenfolge gibt es so ja nicht mehr.

00:08:04.600 --> 00:08:05.080
Naja, aber

00:08:05.080 --> 00:08:07.940
und die laufen ja nebenläufig und eins ist ja zuerst fertig.

00:08:09.240 --> 00:08:09.460
Ja.

00:08:09.920 --> 00:08:10.820
Und eins zuletzt fertig.

00:08:11.460 --> 00:08:13.040
Und Geza wartet, bis alle fertig sind.

00:08:13.520 --> 00:08:13.840
Genau.

00:08:16.140 --> 00:08:16.440
Das

00:08:16.440 --> 00:08:19.300
sozusagen, also man muss es halt noch erwarten,

00:08:19.660 --> 00:08:21.500
aber das wartet, bis halt alle fertig sind.

00:08:21.840 --> 00:08:23.180
Und die Ergebnisse sammelt das auch?

00:08:23.540 --> 00:08:24.420
Oder gibt es da Ergebnisse?

00:08:26.320 --> 00:08:27.620
Ja, also man kann da

00:08:27.620 --> 00:08:29.580
durchaus auch, wenn da halt Ergebnisse

00:08:29.580 --> 00:08:31.600
zurückkommen, jetzt weiß ich jetzt nicht genau was mit all den Dingern,

00:08:31.600 --> 00:08:33.620
wenn da jetzt unterschiedlich, also normalerweise hast du eine Liste von Sachen,

00:08:33.620 --> 00:08:35.580
wo das ist das gleiche, wo Liste von Responses

00:08:35.580 --> 00:08:37.140
oder so zurückkommt. Dann kriegst du halt die Liste von

00:08:37.140 --> 00:08:39.560
Responses dann halt

00:08:39.560 --> 00:08:41.060
zurück, denke ich.

00:08:41.720 --> 00:08:43.340
Wenn das jetzt unterschiedliche Sachen sein sollten,

00:08:43.420 --> 00:08:44.180
weiß ich gar nicht so genau.

00:08:45.180 --> 00:08:47.460
Ich bin gar nicht so sicher,

00:08:47.620 --> 00:08:48.100
was dann passiert.

00:08:49.480 --> 00:08:50.840
Wahrscheinlich kriegst du halt eine

00:08:50.840 --> 00:08:52.080
Liste, der

00:08:52.080 --> 00:08:55.640
wie auch immer die Liste aussieht.

00:08:55.880 --> 00:08:57.520
Keine Ahnung. Aber das

00:08:57.520 --> 00:08:59.600
Problem ist halt eben, und das was halt nicht so gut

00:08:59.600 --> 00:09:00.980
geht, wenn du jetzt sagst

00:09:00.980 --> 00:09:03.320
async-io-gether und jetzt passieren

00:09:03.320 --> 00:09:05.340
aber mehrere Dinge. Jetzt hast du

00:09:05.340 --> 00:09:06.960
zum Beispiel einmal einen Connection-Error irgendwie

00:09:06.960 --> 00:09:08.240
bei nur einem URL,

00:09:09.080 --> 00:09:10.900
sondern bei einem anderen Ding hast du aber

00:09:10.900 --> 00:09:13.000
irgendwie einen, weiß ich nicht,

00:09:14.560 --> 00:09:17.200
not authorized und bei einem anderen hast du

00:09:17.200 --> 00:09:17.700
irgendwie

00:09:17.700 --> 00:09:20.880
Authentication-Error oder was auch immer.

00:09:20.940 --> 00:09:23.500
Du hast halt so unterschiedliche Fehlertypen.

00:09:24.880 --> 00:09:25.200
Du kannst

00:09:25.200 --> 00:09:27.040
jetzt aber im Interpreter, der kann

00:09:27.040 --> 00:09:29.160
immer nur eine Exception weiterreichen.

00:09:29.160 --> 00:09:32.340
Was passiert denn jetzt? Du kriegst die aber zu unterschiedlichen Zeitpunkten.

00:09:33.000 --> 00:09:33.700
Wenn du jetzt hast

00:09:33.700 --> 00:09:35.300
try irgendwas, gather,

00:09:36.020 --> 00:09:38.120
was passiert denn jetzt, wenn du accept sagst?

00:09:38.540 --> 00:09:39.940
Ja, dann sollte die accept, die zuerst

00:09:39.940 --> 00:09:42.000
rausfliegt, sollte rausfliegen. Aber eigentlich sollte man die ja vorher

00:09:42.000 --> 00:09:44.120
catchen, oder? Also innerhalb des

00:09:44.120 --> 00:09:45.540
Dekor-Routines und nicht...

00:09:45.540 --> 00:09:47.960
Ja, willst du ja aber auch nicht. Also du willst ja die exception

00:09:47.960 --> 00:09:49.860
an der Stelle fangen, wo du irgendwas mit der machen kannst.

00:09:53.940 --> 00:09:55.460
Also es hängt halt davon ab natürlich,

00:09:55.660 --> 00:09:57.780
aber es ist halt so die Frage, wenn du die Frage

00:09:57.780 --> 00:09:59.760
gefangen hast, okay gut, dann kriegst du sie ja auch nicht mehr.

00:10:00.320 --> 00:10:01.960
Aber wenn du jetzt mehrere

00:10:01.960 --> 00:10:03.740
Exceptions hast, die halt da

00:10:03.740 --> 00:10:05.600
auftreten, was passiert denn dann? Und ja,

00:10:05.700 --> 00:10:07.600
die Antwort momentan ist halt irgendwie,

00:10:07.740 --> 00:10:08.980
ja, ist doof, weil

00:10:08.980 --> 00:10:11.700
du kannst, es gibt

00:10:11.700 --> 00:10:13.640
sowas wie Chained Exceptions, das sieht man manchmal

00:10:13.640 --> 00:10:15.400
auch gerade bei so Webframeworks häufiger,

00:10:15.660 --> 00:10:17.500
irgendwie, dass halt irgendwas eine Exception wirft

00:10:17.500 --> 00:10:19.700
und dann dir sagt, ah, also

00:10:19.700 --> 00:10:21.740
das ist passiert, also oder ein Test

00:10:21.740 --> 00:10:22.640
passiert auch häufig,

00:10:23.160 --> 00:10:25.560
während ich versucht habe, diese Exception zu werfen,

00:10:25.560 --> 00:10:26.860
ist halt das passiert oder keine Ahnung,

00:10:26.860 --> 00:10:29.140
oder sowas geht auch,

00:10:29.760 --> 00:10:31.120
aber das bildet

00:10:31.120 --> 00:10:33.120
das halt auch nicht ab, was du dann eigentlich können

00:10:33.120 --> 00:10:34.820
müsstest, wenn jetzt irgendwie mehrere

00:10:34.820 --> 00:10:37.160
unterschiedliche Exceptions halt aufgetreten

00:10:37.160 --> 00:10:39.160
sind oder ein ganzer Baum, also im allgemeinen Fall

00:10:39.160 --> 00:10:40.880
ein ganzer Grafbaum von

00:10:40.880 --> 00:10:42.980
Exceptions, die halt irgendwie, so

00:10:42.980 --> 00:10:45.100
das geht irgendwie nicht. Das kann auch tatsächlich der Interpreter

00:10:45.100 --> 00:10:46.560
nicht. Und

00:10:46.560 --> 00:10:49.100
ja, das ist halt ein Problem. Und dafür gab es

00:10:49.100 --> 00:10:49.880
ein PEP

00:10:49.880 --> 00:10:53.340
654, Exception Groups

00:10:53.340 --> 00:10:53.900
and Except.

00:10:53.900 --> 00:10:56.960
und der Code dafür ist jetzt

00:10:56.960 --> 00:10:58.040
irgendwie

00:10:58.040 --> 00:11:00.400
vor Woche oder so,

00:11:00.520 --> 00:11:02.700
ein paar Tagen, gemerged worden

00:11:02.700 --> 00:11:04.700
und alle so, huu, und das kommt in 3.11

00:11:04.700 --> 00:11:06.720
und das bedeutet halt, dass man

00:11:06.720 --> 00:11:08.760
jetzt quasi damit sauber umgehen kann. Also Trio

00:11:08.760 --> 00:11:10.740
habe ich deswegen angesprochen, weil das war

00:11:10.740 --> 00:11:12.980
halt so ein Ding, damit umzugehen.

00:11:13.560 --> 00:11:14.740
Also der nannte seinen Ansatz

00:11:14.740 --> 00:11:15.780
da auch irgendwie

00:11:15.780 --> 00:11:18.580
Structured Concurrency und

00:11:18.580 --> 00:11:20.000
der hatte dieses Konzept von Nurseries,

00:11:20.180 --> 00:11:22.640
die man da benutzen kann, um halt damit dann sauber

00:11:22.640 --> 00:11:24.680
umzugehen. Das hat eine Asynchroge, glaube ich, schon mal erwähnt.

00:11:24.880 --> 00:11:26.680
Das hat eine Asynchroge und ich weiß nicht,

00:11:26.760 --> 00:11:28.580
ob wir das wirklich, also ich glaube, das hat

00:11:28.580 --> 00:11:29.540
damals schon niemanden so wirklich

00:11:29.540 --> 00:11:29.820
gesagt.

00:11:32.480 --> 00:11:34.400
Wahrscheinlich ist das jetzt auch nicht anders. Aber ich finde es

00:11:34.400 --> 00:11:35.380
interessant und

00:11:35.380 --> 00:11:38.520
es ist aber auch ein kompliziertes

00:11:38.520 --> 00:11:39.200
Thema und

00:11:39.200 --> 00:11:42.400
sagen wir so, die

00:11:42.400 --> 00:11:44.400
Kurzfassung ist, es geht jetzt alles, also ab 3.11.

00:11:44.500 --> 00:11:46.240
wird es deutlich besser. Es gibt da diverse Leute, zum Beispiel auch

00:11:46.240 --> 00:11:46.960
der Juri

00:11:46.960 --> 00:11:49.100
Selim Zvanov,

00:11:49.800 --> 00:11:51.620
der mit

00:11:51.620 --> 00:11:53.380
mit HQL und HDB.

00:11:54.100 --> 00:11:56.020
Der hat auf Twitter relativ enthusiastisch

00:11:56.020 --> 00:11:57.580
gesagt, so 3.11, das ist voll gut,

00:11:57.700 --> 00:11:59.700
dass das jetzt drin ist. Wir haben schon seit Jahren Probleme

00:11:59.700 --> 00:12:01.840
damit und jetzt ist es endlich

00:12:01.840 --> 00:12:03.720
sauber gelöst und damit ist quasi

00:12:03.720 --> 00:12:05.020
Python hat jetzt irgendwie

00:12:05.020 --> 00:12:07.560
sehr gute Unterstützung im Vergleich zu allen

00:12:07.560 --> 00:12:08.520
anderen Sprachen eigentlich.

00:12:10.100 --> 00:12:11.520
Spielt da jetzt ganz vorne mit.

00:12:11.920 --> 00:12:12.660
Und juhu!

00:12:14.200 --> 00:12:15.620
Also das kann man

00:12:15.620 --> 00:12:17.660
auf jeden Fall schon mal erwähnen, dass das irgendwie ziemlich cool werden

00:12:17.660 --> 00:12:17.860
wird.

00:12:19.320 --> 00:12:21.600
Jetzt muss ich nur noch verstehen, wie man halt so eine

00:12:21.600 --> 00:12:22.740
Exception Group.

00:12:24.720 --> 00:12:25.960
Ja, da musst du dir den

00:12:25.960 --> 00:12:28.100
Pep angucken, da steht da schon, wie man

00:12:28.100 --> 00:12:28.900
damit umgeht.

00:12:30.320 --> 00:12:32.240
Ich glaube, man kann das ganz normal

00:12:32.240 --> 00:12:33.640
in die Exception so auseinanderschreiben.

00:12:33.660 --> 00:12:34.940
Wir haben jetzt relativ viel.

00:12:36.560 --> 00:12:37.880
Also ich habe zwei verschiedene Exceptions.

00:12:38.040 --> 00:12:40.060
Wir fangen mit zwei an, die gleichzeitig auftreten.

00:12:40.200 --> 00:12:41.820
Also einmal, keine Ahnung, Autopsy-Grundverweigerung,

00:12:41.880 --> 00:12:42.880
einmal Connection abgebrochen.

00:12:43.440 --> 00:12:44.720
In zwei verschiedenen Threads.

00:12:46.280 --> 00:12:47.040
Was machen die?

00:12:47.040 --> 00:12:47.900
Du musst ja nicht Threads sein.

00:12:47.980 --> 00:12:51.100
Aber ist auch egal.

00:12:51.100 --> 00:12:53.440
Die haben auch dieselbe API oder auf eine andere API zugegriffen, ist auch egal.

00:12:53.580 --> 00:12:55.120
Also Hauptsache, die schmeißen beide irgendwie Exceptions.

00:12:55.800 --> 00:12:57.880
Aber der Zeitpunkt

00:12:57.880 --> 00:12:59.900
ist egal oder nicht egal,

00:13:00.180 --> 00:13:01.020
wenn das aufgetreten ist.

00:13:01.920 --> 00:13:03.580
Naja, du kannst jetzt nach dem

00:13:03.580 --> 00:13:05.320
Zeitpunkt ordnen, du kannst aber auch irgendwie anders ordnen,

00:13:05.620 --> 00:13:07.640
je nachdem, wie du willst. Also du hast halt eine Exception-Group

00:13:07.640 --> 00:13:09.620
und darunter hast du jetzt dann halt unterschiedliche

00:13:09.620 --> 00:13:10.180
Exceptions.

00:13:11.360 --> 00:13:12.860
Und dann hast du halt quasi einen Baum.

00:13:13.160 --> 00:13:14.480
Eine Exception-Group kann halt wieder

00:13:14.480 --> 00:13:17.240
unterschiedliche Exception-Groups drunter haben,

00:13:17.500 --> 00:13:19.020
die dann wieder Exceptions drunter haben.

00:13:19.020 --> 00:13:20.480
Das ist halt ein Baum von...

00:13:20.480 --> 00:13:21.660
und wofür brauche ich das?

00:13:22.720 --> 00:13:24.400
Naja, also wie gesagt, als Endanwender hat man

00:13:24.400 --> 00:13:26.300
da den Fall, dass man das wirklich braucht, gar nicht so häufig,

00:13:26.460 --> 00:13:28.620
aber wenn du jetzt halt irgendwie so eine High-Performance-Datenbank

00:13:28.620 --> 00:13:29.480
Library

00:13:29.480 --> 00:13:31.920
Geschichte baust, sowas wie

00:13:31.920 --> 00:13:32.680
zum Beispiel

00:13:32.680 --> 00:13:35.600
AsyncPG oder so, dann

00:13:35.600 --> 00:13:38.760
kann das durchaus passieren,

00:13:38.880 --> 00:13:39.520
dass dann halt

00:13:39.520 --> 00:13:42.280
in solche Sachen reinläufst,

00:13:42.380 --> 00:13:44.280
wo du dann gerne irgendwie was

00:13:44.280 --> 00:13:46.160
gut, wo du zum Beispiel einfach noch

00:13:46.160 --> 00:13:48.080
einen ordentlichen Traceback werfen wollen

00:13:48.080 --> 00:13:50.300
würdest, wo man sehen kann,

00:13:50.300 --> 00:13:50.940
was passiert ist.

00:13:52.280 --> 00:13:54.340
Weil wenn du das auf 1 runter dampfen musst

00:13:54.340 --> 00:13:55.960
und dann rausschmeißen und sagst Datenbankerror,

00:13:56.060 --> 00:13:57.960
sagen wir mal so, gibt es eine Zahl zurück,

00:13:58.280 --> 00:13:59.280
Datenbankfehler,

00:13:59.520 --> 00:14:01.420
dann ist das nicht sehr hilfreich.

00:14:02.180 --> 00:14:04.280
Du musst halt, aber alle Sachen

00:14:04.280 --> 00:14:06.160
kannst du nicht angeben, weil du hast

00:14:06.160 --> 00:14:08.160
nur eine Exception. Also weil die erste, die

00:14:08.160 --> 00:14:10.400
quasi dann geracet wird, dann die die rausfliegt

00:14:10.400 --> 00:14:12.380
und die anderen gehen dann unter, das wäre das Problem

00:14:12.380 --> 00:14:14.280
sonst. Genau, ja. Ja, okay, und ich will halt

00:14:14.280 --> 00:14:16.260
quasi, dass die durchgereicht werden. Du willst die

00:14:16.260 --> 00:14:18.220
irgendwie behandeln können, ob du sie jetzt

00:14:18.220 --> 00:14:20.320
rausprintest oder irgendwie darauf reagierst

00:14:20.320 --> 00:14:22.220
oder so, ist ja nochmal eine andere Sache, aber du kannst

00:14:22.220 --> 00:14:24.120
sie jetzt handeln. Also das wäre

00:14:24.120 --> 00:14:25.960
quasi so, als müsste ich so eine Art

00:14:25.960 --> 00:14:28.160
Exception Cache bauen und

00:14:28.160 --> 00:14:30.180
dann irgendwann alle Exceptions in

00:14:30.180 --> 00:14:32.180
diesem Exception Cache zurückgeben, anstatt die zu raisen,

00:14:32.280 --> 00:14:34.380
die quasi in diesen Exception Cache reinspeichern

00:14:34.380 --> 00:14:35.880
und ganz am Ende alle

00:14:35.880 --> 00:14:38.120
Exceptions da drin sind in eine Custom

00:14:38.120 --> 00:14:39.760
Exception zusammenfassen und raisen.

00:14:40.800 --> 00:14:42.120
Keine Ahnung, wie das jetzt

00:14:42.120 --> 00:14:43.040
dann Leute gerade machen.

00:14:43.200 --> 00:14:46.140
Da gibt es unterschiedliche Ansätze wahrscheinlich,

00:14:46.340 --> 00:14:48.060
aber jetzt geht es halt so, dass es

00:14:48.060 --> 00:14:48.760
cool ist und sauber.

00:14:51.460 --> 00:14:52.340
Ansonsten hatten wir noch

00:14:52.340 --> 00:14:53.220
iPython,

00:14:53.740 --> 00:14:56.440
erste Major Release seit drei Jahren

00:14:56.440 --> 00:14:56.900
oder so.

00:14:58.720 --> 00:14:59.420
iPython 8.

00:14:59.980 --> 00:15:00.320
Ja, okay.

00:15:01.640 --> 00:15:03.860
Ehrlich gesagt, so wahnsinnig viel Neues ist da gar nicht unbedingt.

00:15:04.020 --> 00:15:05.280
Also außer Black ist irgendwie neu.

00:15:05.460 --> 00:15:06.900
Da mussten sie auch ein bisschen zurückrudern.

00:15:07.100 --> 00:15:10.260
Das hat Leute irgendwie auch böse überrascht.

00:15:10.560 --> 00:15:11.800
Das haben wir doch letztes Mal noch gelobt.

00:15:12.800 --> 00:15:14.260
Aber im Prinzip ist es eigentlich

00:15:14.260 --> 00:15:15.140
schon richtig.

00:15:15.140 --> 00:15:16.100
und

00:15:16.100 --> 00:15:19.280
ja, ist es viel

00:15:19.280 --> 00:15:21.400
deprecated worden von Dingen, die man

00:15:21.400 --> 00:15:23.280
nicht mehr braucht und so. Und ich glaube, ich habe es auch schon,

00:15:23.380 --> 00:15:24.700
ist es nur Beta, ist es noch nicht

00:15:24.700 --> 00:15:26.920
stable, aber

00:15:26.920 --> 00:15:29.360
ich habe es auch schon, also wenn man es einfach so

00:15:29.360 --> 00:15:31.540
installiert, man pinnt es nicht runter oder so,

00:15:31.620 --> 00:15:33.220
sondern man sagt einfach nur piv install

00:15:33.220 --> 00:15:35.580
ipython und dann kriegt man das halt.

00:15:36.060 --> 00:15:37.340
Und funktioniert bei mir auch schon super.

00:15:37.340 --> 00:15:38.060
Ich verwende es schon

00:15:38.060 --> 00:15:41.800
die paar Tage, die es veröffentlicht ist

00:15:41.800 --> 00:15:43.300
auf jeden Fall und da hat es bisher immer getan.

00:15:44.760 --> 00:15:44.840
Ja.

00:15:45.140 --> 00:15:49.220
Genau, ja, ansonsten

00:15:49.220 --> 00:15:51.060
so war es, ich glaube, wir haben jetzt irgendwie

00:15:51.060 --> 00:15:53.640
super viele

00:15:53.640 --> 00:15:55.100
Episoden in letzter Zeit aufgenommen,

00:15:55.200 --> 00:15:56.260
weil gar nicht so viel passiert ist,

00:15:56.260 --> 00:15:57.940
weil gar nicht so viel Zeit vergangen ist.

00:15:57.940 --> 00:15:58.820
Ja, okay.

00:15:59.340 --> 00:16:01.200
Ich weiß nicht, hast du noch irgendwas?

00:16:01.820 --> 00:16:03.940
Wir machen nochmal Werbung

00:16:03.940 --> 00:16:04.440
dieser Episode.

00:16:04.900 --> 00:16:06.740
Oh ja, genau, das müssen wir dann jetzt auch machen.

00:16:07.680 --> 00:16:09.840
Also, diese Episode kommt wieder mit der

00:16:09.840 --> 00:16:11.020
freundlichen Unterstützung von NordVPN.

00:16:12.360 --> 00:16:13.240
Ja, und

00:16:13.240 --> 00:16:16.280
schnappt ihr den Exklusiv-Deal und ein Geschenk

00:16:16.280 --> 00:16:18.460
obendrauf zum NordVPN-Geburtstag.

00:16:19.020 --> 00:16:19.540
Gehe auf

00:16:19.540 --> 00:16:20.820
https

00:16:20.820 --> 00:16:24.320
nordvpn.com slash pythonpodcast

00:16:24.320 --> 00:16:25.920
und sichere dir den

00:16:25.920 --> 00:16:28.000
Wahnsinnsteal jetzt auch komplett risikofrei

00:16:28.000 --> 00:16:30.060
mit 30 Tage Geld-Zurück-Garantie.

00:16:30.340 --> 00:16:30.920
Also das ist

00:16:30.920 --> 00:16:33.960
eine Geschichte, die man durchaus mal machen kann.

00:16:34.500 --> 00:16:35.700
Also, ja,

00:16:35.880 --> 00:16:37.640
NordVPN, VPN-Anbieter,

00:16:39.260 --> 00:16:39.520
da

00:16:39.520 --> 00:16:42.100
kann man sich zum Beispiel irgendwie im Urlaub

00:16:42.100 --> 00:16:43.640
auch darauf verlassen, dass man dann weiter Netflix

00:16:43.640 --> 00:16:45.840
gucken kann, was man ja sonst

00:16:45.840 --> 00:16:47.920
manchmal hat man da so Probleme zu Video-Blocking und so

00:16:47.920 --> 00:16:49.800
und damit kann man das irgendwie relativ

00:16:49.800 --> 00:16:51.600
einfach umgehen oder halt auch wenn man

00:16:51.600 --> 00:16:54.220
irgendwie sonst Konnektivitätsprobleme

00:16:54.220 --> 00:16:55.980
hat, dann kann man aber auch irgendwie da

00:16:55.980 --> 00:16:57.740
was gegen tun mit und

00:16:57.740 --> 00:16:59.500
ja, hat viele

00:16:59.500 --> 00:17:01.520
Server in allen möglichen Ländern

00:17:01.520 --> 00:17:03.580
und so, also ist auf jeden Fall irgendwie

00:17:03.580 --> 00:17:05.860
einer der größten Anbieter da in dem Bereich

00:17:05.860 --> 00:17:07.920
und ja, kann man

00:17:07.920 --> 00:17:09.780
ja einfach mal ausprobieren und auf

00:17:09.780 --> 00:17:10.620
HTTPS,

00:17:10.620 --> 00:17:12.460
www.notrpn.com

00:17:12.460 --> 00:17:15.480
und die den Wandelstil sichern, der jetzt auch komplett

00:17:15.480 --> 00:17:17.860
risikofrei mit der 30-Tage-Geld-Zurück-Garantie

00:17:17.860 --> 00:17:18.400
ist.

00:17:19.400 --> 00:17:19.920
Wunderbar.

00:17:21.600 --> 00:17:22.780
Worüber reden wir denn heute?

00:17:24.020 --> 00:17:25.420
Die ganzen Tipps,

00:17:25.740 --> 00:17:27.560
Tools im Web und

00:17:27.560 --> 00:17:29.580
CSS-Frameworks und

00:17:29.580 --> 00:17:31.960
vielleicht fangen wir damit an.

00:17:32.020 --> 00:17:33.700
Was für ein CSS-Framework benutzt denn du,

00:17:33.700 --> 00:17:33.980
Jochen?

00:17:35.240 --> 00:17:36.720
Ja, irgendwie gar nicht.

00:17:37.420 --> 00:17:40.040
Ich habe vielleicht gesehen,

00:17:40.040 --> 00:17:42.000
Podcasts zu unserer Schande in

00:17:42.000 --> 00:17:43.960
Bootstrap, weil das Einzige, was wir gemacht haben

00:17:43.960 --> 00:17:45.920
für Styling ist Import CDN

00:17:45.920 --> 00:17:47.200
vom, also Bootstrap vom CDN.

00:17:47.860 --> 00:17:49.860
Ja, das weiß ich gar nicht mal. Ich glaube, das mache ich tatsächlich nicht.

00:17:50.020 --> 00:17:51.500
Aber das mache ich.

00:17:52.200 --> 00:17:53.740
Oh Gott, das ist ja nicht schlecht.

00:17:55.080 --> 00:17:55.980
Tja, wir müssen das

00:17:55.980 --> 00:17:57.960
irgendwann mal anfassen. Weil ich würde sagen, das sollte man

00:17:57.960 --> 00:17:59.540
natürlich eigentlich auf keinen Fall machen, sowas.

00:18:00.060 --> 00:18:01.340
Aber weil

00:18:01.340 --> 00:18:03.880
ja, das ist natürlich extrem unsicher. Das erinnert

00:18:03.880 --> 00:18:04.340
mich an was?

00:18:05.540 --> 00:18:07.680
Weiß das wirklich? Ja, ist das nicht so?

00:18:08.340 --> 00:18:09.840
Ich meine nicht,

00:18:09.840 --> 00:18:25.840
und

00:18:25.840 --> 00:18:29.020
CodejQuery.com

00:18:29.020 --> 00:18:29.760
Oh mein Gott.

00:18:31.240 --> 00:18:32.340
Bootstrap CDN.

00:18:32.720 --> 00:18:33.000
Oh nein.

00:18:34.720 --> 00:18:37.000
Das war mir gar nicht so klar.

00:18:37.220 --> 00:18:39.620
Kontrolle ist besser als...

00:18:39.620 --> 00:18:40.400
Ja, ja, dankeschön.

00:18:40.400 --> 00:18:41.540
Dann ist mir das jetzt auch bewusst.

00:18:41.640 --> 00:18:43.220
Ich dachte, ach, sowas mache ich aber nicht.

00:18:43.340 --> 00:18:44.960
Aber doch, mache ich schon. Kacke.

00:18:45.680 --> 00:18:48.000
Ja, also Bootstrap ist raus.

00:18:48.660 --> 00:18:50.380
Also sagen wir so, das benutzt man

00:18:50.380 --> 00:18:52.540
halt natürlich dann, wenn man keine Zeit für irgendwas anderes hat.

00:18:53.000 --> 00:18:54.100
Dann macht man einfach Import Bootstrap

00:18:54.100 --> 00:18:56.280
vom CDN und dann sieht alles irgendwie ein bisschen

00:18:56.280 --> 00:18:57.880
besser aus. Das hätte man gar nicht gestylt.

00:18:58.620 --> 00:18:59.900
Aber auch nicht viel besser, ehrlich gesagt.

00:19:00.660 --> 00:19:02.340
Ja, vor allen Dingen ist es halt das, was

00:19:02.340 --> 00:19:05.140
in dem Django-Cookie-Cutter-Template

00:19:05.140 --> 00:19:06.660
mit dabei war. Deswegen habe ich das vorhin gesagt.

00:19:07.360 --> 00:19:08.480
Du benutzt ja kein Cookie-Cutter

00:19:08.480 --> 00:19:09.300
von...

00:19:09.300 --> 00:19:12.320
Eigentlich seit einiger Zeit nicht mehr, aber ich

00:19:12.320 --> 00:19:13.300
habe es lange verwendet, ja.

00:19:13.860 --> 00:19:16.300
Ich habe es auch ein bisschen mal ausprobiert. Das war nicht so ganz

00:19:16.300 --> 00:19:16.860
mein Ding.

00:19:18.860 --> 00:19:19.440
Also ich

00:19:19.440 --> 00:19:22.180
benutze inzwischen gerne

00:19:22.180 --> 00:19:24.340
irgendwie tatsächlich Startproject oder halt auch das,

00:19:24.440 --> 00:19:25.640
das habe ich jetzt letztens wieder verwendet,

00:19:26.400 --> 00:19:28.600
das Project Template,

00:19:28.660 --> 00:19:29.900
weil man kann ja dem Startproject auch

00:19:29.900 --> 00:19:32.260
Project Templates mitgeben von Johannes.

00:19:32.520 --> 00:19:34.280
Das gefällt mir eigentlich tatsächlich auch ganz gut.

00:19:35.120 --> 00:19:36.440
Und Cookiecutter ist einfach

00:19:36.440 --> 00:19:38.020
es mir zu viel

00:19:38.020 --> 00:19:39.880
Zeug, das ich irgendwie nicht brauche.

00:19:40.400 --> 00:19:42.180
Also ich habe eigentlich meine eigenen Skeletons einfach

00:19:42.180 --> 00:19:44.100
geschrieben, also so zwei, drei Templates für

00:19:44.100 --> 00:19:46.240
Sachen, die ich manchmal brauche. Django mit Postgres, Django

00:19:46.240 --> 00:19:48.140
Minimal, Farbpapier

00:19:48.140 --> 00:19:49.980
und dann klone ich die einfach.

00:19:51.400 --> 00:19:52.120
Ja, kannst du halt

00:19:52.120 --> 00:19:54.080
auch machen, aber dann bleiben halt manchmal

00:19:54.080 --> 00:19:56.080
so Reste übrig. Ja, aber das ist nicht viel.

00:19:56.160 --> 00:19:58.240
Also ich weiß ja dann wo und ich habe mir das da so ein bisschen

00:19:58.240 --> 00:20:00.120
weggescriptet, dann kann ich einfach

00:20:00.120 --> 00:20:02.200
zwei Skripte ausführen und dann habe ich es einmal replaced

00:20:02.200 --> 00:20:04.300
und dann schmeiße ich drei Dateien weg, die ich nicht brauche

00:20:04.300 --> 00:20:06.220
und dann ist es gut. Also es ist halt mein

00:20:06.220 --> 00:20:08.300
Zeug, ich kenne mich da ja auch aus und das geht aber dann wirklich schnell.

00:20:08.500 --> 00:20:09.820
Und da ist halt aber auch dann das bei, was ich will.

00:20:10.240 --> 00:20:11.580
Ja, also

00:20:11.580 --> 00:20:12.900
es ist halt

00:20:12.900 --> 00:20:15.800
irgendwie, also ich bin da noch nicht bei null.

00:20:15.800 --> 00:20:18.080
Ja, andersrum ist es, du fängst halt bei null an und dann musst du aus allen alten

00:20:18.080 --> 00:20:19.980
Projekten, wo du das benutzt hast, das jetzt mal reinkopieren.

00:20:20.120 --> 00:20:21.080
Das geht auch nicht schneller.

00:20:22.120 --> 00:20:23.280
Ja, aber

00:20:23.280 --> 00:20:25.380
für sowas hast du ja normalerweise

00:20:25.380 --> 00:20:27.340
ein Template, damit du das nicht

00:20:27.340 --> 00:20:29.780
aber es ist wirklich, also ich habe auch

00:20:29.780 --> 00:20:31.900
ich würde jetzt nicht sagen, dass es

00:20:31.900 --> 00:20:33.580
da irgendwie eine Lösung für das Problem gibt, weil

00:20:33.580 --> 00:20:35.000
es ist irgendwie, ich

00:20:35.000 --> 00:20:37.200
habe inzwischen auch, also

00:20:37.200 --> 00:20:39.680
am Anfang fand ich das

00:20:39.680 --> 00:20:41.020
tatsächlich hilfreich, weil

00:20:41.020 --> 00:20:43.600
es gibt ja so viele Settings in Django

00:20:43.600 --> 00:20:45.440
auch, das ist halt echt eine Menge Zeug

00:20:45.440 --> 00:20:47.660
dass man gar nicht weiß, wie man das alles

00:20:47.660 --> 00:20:49.640
setzen soll und wenn man vor dieser Aufgabe

00:20:49.640 --> 00:20:51.460
steht, ohne jetzt wirklich damit

00:20:51.460 --> 00:20:52.560
mit schon langer Erfahrung zu haben.

00:20:53.420 --> 00:20:55.360
Dann ist man so ein bisschen, also jedenfalls hatte ich das am Anfang

00:20:55.360 --> 00:20:57.260
das Problem, du stehst halt wieder

00:20:57.260 --> 00:21:09.662
wie so ein Ox von Berg Ja gut aber wenn du das jetzt von PyDanny nimmst also tats das Komplett mit Cookie Cutter das ist ja derselbe Typ der auch Two Scoops of Django Ja das Buch geschrieben hat oder die diversen

00:21:09.662 --> 00:21:10.882
Bücher, die es jetzt in dem Thema gibt.

00:21:11.862 --> 00:21:12.222
Aber

00:21:12.222 --> 00:21:14.922
da ist so viel Zeugs drin.

00:21:15.322 --> 00:21:16.722
Da ist so viel Zeugs drin.

00:21:17.042 --> 00:21:18.462
Ja, die Hälfte brauchst du nicht.

00:21:18.982 --> 00:21:21.243
Ja, aber das ist halt die Frage. Am Anfang

00:21:21.243 --> 00:21:22.762
weißt du halt nicht, was du brauchst und was du nicht brauchst.

00:21:22.762 --> 00:21:24.382
Ja, aber

00:21:24.382 --> 00:21:27.142
für Anfänger würde ich auf gar keinen Fall

00:21:27.142 --> 00:21:29.382
Klar, weißt du noch nicht, was du nicht brauchst, aber das würde ich

00:21:29.382 --> 00:21:31.262
auf gar keinen Fall machen, weil ich würde blank Django nehmen

00:21:31.262 --> 00:21:32.722
als Anfänger. Ja gut, also

00:21:32.722 --> 00:21:35.482
für mich war das gar nicht so ein schlechter Weg,

00:21:35.642 --> 00:21:37.362
aber inzwischen mache ich das halt auch nicht mehr,

00:21:37.402 --> 00:21:39.222
weil ich jetzt sagen würde, okay, ich weiß jetzt, was ich

00:21:39.222 --> 00:21:40.902
alles nicht brauche und ich brauche den meisten Kram.

00:21:40.982 --> 00:21:43.182
Vor allen Dingen ein Ding, das mich

00:21:43.182 --> 00:21:45.162
von dem Django-Kurkikata

00:21:45.162 --> 00:21:47.262
komplett weggebracht hat, ist halt, dass die

00:21:47.262 --> 00:21:49.282
halt irgendwann, das war auch nicht so,

00:21:49.522 --> 00:21:50.522
das war am Anfang ja nicht so,

00:21:51.102 --> 00:21:53.042
am Anfang war das komplett ohne Docker und

00:21:53.042 --> 00:21:54.682
dann haben sie irgendwann gesagt, okay,

00:21:55.482 --> 00:21:57.062
das jetzt für unterschiedliche Plattformen, das wird halt

00:21:57.062 --> 00:22:27.042
und Jochen unterhalten sich über die Programmiersprache Python

00:22:27.062 --> 00:22:29.042
mit drin ist, während der aktuellen

00:22:29.042 --> 00:22:30.882
Geschichten, aber ja, also

00:22:30.882 --> 00:22:33.082
genau, eigentlich ist das natürlich nicht so

00:22:33.082 --> 00:22:35.062
schön. Ich habe jetzt auch letztens gesehen, wie groß

00:22:35.062 --> 00:22:36.942
Bootstrap eigentlich ist, das war mir auch nie so klar, das ist ja

00:22:36.942 --> 00:22:38.002
irgendwie alles ziemlich riesig.

00:22:38.862 --> 00:22:40.602
Und dann eben hat das noch so

00:22:40.602 --> 00:22:42.782
Dependencies of jQuery und so, das sind ja alles Zeugs,

00:22:42.862 --> 00:22:44.842
das man heutzutage im Grunde nicht mehr wirklich haben will,

00:22:44.942 --> 00:22:46.882
braucht und so, aber es ist halt

00:22:46.882 --> 00:22:48.042
irgendwie dann alles immer noch mit dabei.

00:22:49.502 --> 00:22:51.022
Ja, also Foundation gibt's noch,

00:22:51.082 --> 00:22:53.102
das habe ich von Johannes mal...

00:22:53.102 --> 00:22:55.002
Ja, Foundation ist so quasi

00:22:55.002 --> 00:22:56.922
so ähnlich wie... Ja, auch so, du musst halt

00:22:56.922 --> 00:22:58.862
eigentlich. Du schreibst halt nichts, importierst halt

00:22:58.862 --> 00:23:00.842
einfach irgendwas vom CDN oder kannst es natürlich

00:23:00.842 --> 00:23:02.862
auch vom Lokal. Und es sieht halt ein bisschen hübscher

00:23:02.862 --> 00:23:04.542
aus. Man kann natürlich immer nasteilen, wenn man will.

00:23:05.862 --> 00:23:06.883
Dann gibt es noch

00:23:06.883 --> 00:23:08.862
Materialize und

00:23:09.482 --> 00:23:10.123
UIKit.

00:23:10.922 --> 00:23:12.722
Und das sind alles immer so große klassenbasierte

00:23:12.722 --> 00:23:14.522
CSS-Sachen oder Post-SS oder so,

00:23:15.082 --> 00:23:16.602
wo man halt dann seine Klassen,

00:23:17.142 --> 00:23:18.862
vordefinierte Klassen hat, die dann irgendwelche tolle Magie

00:23:18.862 --> 00:23:21.002
machen. Ja, oder Semantic

00:23:21.002 --> 00:23:22.822
UI habe ich jetzt auch gesehen, dass das viele Leute

00:23:22.822 --> 00:23:24.383
verwenden. AntDesign.

00:23:25.402 --> 00:23:26.602
Das kenne ich nicht. Das ist

00:23:26.602 --> 00:23:28.102
und das ist auch total schräg.

00:23:28.242 --> 00:23:31.202
End.design.

00:23:31.542 --> 00:23:32.222
Das ist so

00:23:32.222 --> 00:23:33.502
was Chinesisches.

00:23:34.022 --> 00:23:37.242
Das hat mehr

00:23:37.242 --> 00:23:38.482
Stars aufgetappt als Django.

00:23:40.802 --> 00:23:41.362
Und

00:23:41.362 --> 00:23:42.123
ist irgendwie

00:23:42.123 --> 00:23:44.082
in China verwendet. Das sind Millionen Leute.

00:23:45.082 --> 00:23:46.642
Aber hier kennt man das Ding gar nicht so sehr.

00:23:47.902 --> 00:23:49.002
Ja, ist auch eigentlich...

00:23:51.082 --> 00:23:52.482
Wahrscheinlich verwendet es deswegen Leute,

00:23:52.482 --> 00:23:53.922
weil es gute Dokumentation auf Chinesisch hat.

00:23:53.982 --> 00:23:54.502
Man weiß es nicht.

00:23:54.502 --> 00:23:55.782
Ja, mag sein.

00:23:56.262 --> 00:23:58.522
Dann gibt es noch Bulma. Das benutzen zum Beispiel

00:23:58.522 --> 00:24:00.342
viel von den VJS-Leuten, also wenn man

00:24:00.342 --> 00:24:02.182
irgendwie jetzt auch V-Mastery oder so Kurse macht.

00:24:02.682 --> 00:24:04.082
Da gibt es so ein paar Leute, die Bulma machen,

00:24:04.242 --> 00:24:05.802
fand ich, das hat mich nicht so ehrlich

00:24:05.802 --> 00:24:08.502
begeistert. Ist vielleicht eher so für...

00:24:09.142 --> 00:24:10.562
Ja, aber das ist glaube ich in der gleichen Kategorie

00:24:10.562 --> 00:24:12.422
wie eben, also das habe ich ja auch unter

00:24:12.422 --> 00:24:13.202
Utility First,

00:24:14.262 --> 00:24:16.722
CSS-Frameworks, genauso wie Tailwind.

00:24:17.162 --> 00:24:18.062
Das ist ja auch... Ja, genau, aber

00:24:18.062 --> 00:24:19.182
Tailwind würde ich sagen,

00:24:20.402 --> 00:24:21.502
so mache ich das. Okay.

00:24:22.022 --> 00:24:23.462
Ja, also ich finde es sehr, sehr toll.

00:24:24.502 --> 00:24:28.862
Ja, ich habe auch viel Gutes gehört und habe aber auch Leute schon stöhnen gehört, also ich weiß es nicht.

00:24:29.362 --> 00:24:39.282
Ja, also wir haben im Vorfeld jetzt kurz drüber gesprochen, du hast es mir so oben, Moment, also ich habe es schon nicht benutzt, aber ich habe ja gehört A und B und C und die haben gesagt, das ist doof und...

00:24:39.282 --> 00:24:43.582
Ja, genau, aber das Problem ist halt immer so, bei diesen Entscheidungen,

00:24:43.702 --> 00:24:46.022
ich meine, wahrscheinlich ist das einfach alles Unsinn, muss man irgendwas anfangen,

00:24:46.082 --> 00:24:47.182
aber ich habe ja keine Ahnung davon.

00:24:47.582 --> 00:24:49.742
Ich habe aber jetzt, reden wir da schon fünf Minuten drüber,

00:24:50.002 --> 00:24:51.623
und ich habe ja auch eine Liste mir dann gemacht, weil ich dachte,

00:24:52.002 --> 00:24:56.282
vielleicht muss ich da mal von 20 Dingern, die es hier irgendwie gibt,

00:24:56.422 --> 00:24:57.402
die ich mir alle mal angucken muss.

00:24:57.922 --> 00:24:59.522
Ich denke jetzt so, ich habe noch überhaupt nicht angefangen,

00:24:59.602 --> 00:25:01.582
jetzt muss ich schon zwischen so vielen unterschiedlichen Sachen aushalten,

00:25:01.682 --> 00:25:03.262
ich habe absolut keine Ahnung, was ich da machen soll.

00:25:04.302 --> 00:25:05.123
Oh mein Gott.

00:25:05.123 --> 00:25:08.482
Und dann eben, genau, soll man jetzt das selber machen?

00:25:08.482 --> 00:25:10.383
soll man BAM machen, soll man irgendwie

00:25:10.383 --> 00:25:12.282
Utility-First machen, soll man

00:25:12.282 --> 00:25:14.383
ein Framework nehmen, soll man SAS nehmen, LESS nehmen,

00:25:14.922 --> 00:25:16.182
Post-CSS, irgendwie

00:25:16.182 --> 00:25:18.383
was auch immer. Ich weiß es doch

00:25:18.383 --> 00:25:20.402
alles nicht und ich

00:25:20.402 --> 00:25:22.302
habe keine Ahnung. Ja, ich würde tatsächlich

00:25:22.302 --> 00:25:24.362
Table nehmen. Ja, gut, dann fange ich mal mit. Aber du hast ja gesagt,

00:25:24.402 --> 00:25:25.482
das ist ja alles nur für Low-Budget.

00:25:27.062 --> 00:25:28.462
Und ich bin ja eher

00:25:28.462 --> 00:25:30.222
so, ich persönlich bin ja eher so

00:25:30.222 --> 00:25:31.822
der High-Budget-Typ.

00:25:32.222 --> 00:25:32.822
High-Buller, ja.

00:25:34.842 --> 00:25:36.502
Finde ich, ich muss mich da schon

00:25:36.502 --> 00:25:38.282
irgendwie so ein bisschen positionieren, ansonsten

00:25:38.282 --> 00:25:40.282
nicht, dass man da irgendwie

00:25:40.282 --> 00:25:45.282
mit dem falschen Ende rauskommt.

00:25:45.402 --> 00:25:45.802
Das wäre nicht gut.

00:25:46.602 --> 00:25:47.342
Ja, aber

00:25:47.342 --> 00:25:49.442
ich weiß es halt nicht.

00:25:49.802 --> 00:25:51.822
Es gibt noch andere Sachen. Es gibt noch die ganzen Mini-Dinger.

00:25:52.162 --> 00:25:53.442
Habe ich jetzt gesehen bei

00:25:53.442 --> 00:25:55.642
wie heißt der noch?

00:25:57.242 --> 00:25:58.062
Andrew Johnson

00:25:58.062 --> 00:25:59.742
hat das verwendet. MVP

00:25:59.742 --> 00:26:00.442
CSS.

00:26:01.602 --> 00:26:02.542
Ja, das kenne ich auch nicht.

00:26:03.302 --> 00:26:05.582
Super Minimal und davon gibt es dann halt auch wieder ein paar.

00:26:05.582 --> 00:26:07.162
Es gibt Mini-CSS.

00:26:07.162 --> 00:26:08.482
Ja, da muss man immer CSS sein.

00:26:08.602 --> 00:26:10.722
Also ich muss jetzt nochmal Talvand

00:26:10.722 --> 00:26:12.202
nochmal loben, weil

00:26:12.202 --> 00:26:15.102
es sieht hässlich aus auf den ersten Blick,

00:26:15.582 --> 00:26:17.102
weil das das HTML so ein bisschen

00:26:17.102 --> 00:26:19.002
bloatet. Du hast halt in deinem

00:26:19.002 --> 00:26:21.062
HTML ganz viel mehr Klassen drin, die halt direkt

00:26:21.062 --> 00:26:23.142
das Styling machen, aber dafür hast du halt eben

00:26:23.142 --> 00:26:25.123
keine extra CSS-File mehr, musst nicht hin und her

00:26:25.123 --> 00:26:27.262
switchen und eigentlich steht es meiner Meinung nach

00:26:27.262 --> 00:26:29.202
genau da halt die Definition des

00:26:29.202 --> 00:26:30.942
Styles drin, wo es halt hingehört und zwar genau

00:26:30.942 --> 00:26:33.142
an dem HTML-Element.

00:26:34.822 --> 00:26:35.322
Und das finde ich

00:26:35.322 --> 00:26:36.842
super angenehm und da man eh

00:26:36.842 --> 00:26:38.522
meiner Meinung nach ja immer so wieder

00:26:38.522 --> 00:26:40.742
benutzbare Komponenten aktuell so hat.

00:26:41.282 --> 00:26:42.742
Ist das mit der Redundanz hier auch

00:26:42.742 --> 00:26:43.502
nicht so schlimm und

00:26:43.502 --> 00:26:46.883
ja, wenn du dann halt so ein Hot Reloading

00:26:46.883 --> 00:26:48.662
weit noch nebenbei anhast, dann

00:26:48.662 --> 00:26:50.822
siehst du halt jede Änderung der

00:26:50.822 --> 00:26:52.742
Farbe, schreibst halt Red

00:26:52.742 --> 00:26:54.842
als Klasse hin und dann

00:26:54.842 --> 00:26:55.902
ist es Rot und dann schreibst du

00:26:55.902 --> 00:26:58.542
Red wächst mal Blau und dann ist es direkt Blau

00:26:58.542 --> 00:27:00.702
und das ist einfach, das ist so ein bisschen

00:27:00.702 --> 00:27:02.042
wie den 90ern HTML-Coden.

00:27:03.383 --> 00:27:04.962
Da muss man das ja auch alles noch

00:27:04.962 --> 00:27:06.302
direkt hineinschreiben.

00:27:06.302 --> 00:27:07.582
und ich mochte das.

00:27:07.883 --> 00:27:09.942
Okay, ich habe das weder in den 90ern gemacht, noch jetzt

00:27:09.942 --> 00:27:12.123
oder dazwischen irgendwann, aber gut.

00:27:13.082 --> 00:27:14.102
Na ja, jetzt

00:27:14.102 --> 00:27:16.162
muss ich wohl doch irgendwie mal.

00:27:16.322 --> 00:27:17.422
Ja, das musst du auf jeden Fall mal angucken.

00:27:17.722 --> 00:27:19.662
Wir haben ja auch eben noch über Winly kurz gesprochen,

00:27:19.802 --> 00:27:22.322
das hast du ja auch noch gehabt. Da gab es ja eine lustige...

00:27:22.322 --> 00:27:23.562
Also über Tailwind,

00:27:23.662 --> 00:27:25.922
da gab es einen neuen Releaser, das hätten wir in die News packen können.

00:27:26.342 --> 00:27:26.662
Ja.

00:27:28.322 --> 00:27:29.602
Es gab eine

00:27:29.602 --> 00:27:32.322
Working Draft Episode letzte Woche oder so was

00:27:32.322 --> 00:27:33.402
über Tailwind

00:27:33.402 --> 00:27:35.062
CSS3

00:27:35.062 --> 00:27:37.022
wo auch irgendwie der

00:27:37.022 --> 00:27:39.142
Tenor war, so eigentlich ist ganz gut und

00:27:39.142 --> 00:27:41.242
die Vorteile sind halt irgendwie, dass man jetzt nicht mehr

00:27:41.242 --> 00:27:43.222
also früher war es so ein Default-Fall, hat das halt irgendwie

00:27:43.222 --> 00:27:45.142
immer

00:27:45.142 --> 00:27:46.822
die gleiche Größe an CSS ausgelegt.

00:27:46.822 --> 00:27:48.662
Ja, man musste halt manuell purgen die

00:27:48.662 --> 00:27:50.822
CSS-Dinge, die man nicht haben wollte.

00:27:51.022 --> 00:27:52.822
Die musste man dann weg purgen, dass der

00:27:52.822 --> 00:27:54.362
die Falle nicht so groß wurde, ja.

00:27:54.883 --> 00:27:57.302
Genau, und das passiert jetzt irgendwie alles automatisch

00:27:57.302 --> 00:27:58.002
und man

00:27:58.002 --> 00:28:01.062
muss auch nicht mehr Node.js verwenden, sondern

00:28:01.062 --> 00:28:02.482
es hat irgendwie Standalone

00:28:02.482 --> 00:28:04.502
Command-Line-Utilities

00:28:04.502 --> 00:28:05.662
irgendwie für all die Sachen.

00:28:06.562 --> 00:28:07.582
Und das ist ja schon sehr nett.

00:28:08.362 --> 00:28:10.162
Da dachte ich auch so, oh, das klingt aber gut.

00:28:10.462 --> 00:28:12.362
Und dann eben hieß es da auch, ja, das kommt

00:28:12.362 --> 00:28:13.522
aber von den Leuten von Winnie oder so.

00:28:14.222 --> 00:28:16.582
Ja, also Winnie hat ja Tailwind geklaut und dann

00:28:16.582 --> 00:28:18.442
Sachen so ein bisschen halt faster gemacht

00:28:18.442 --> 00:28:20.522
vielleicht oder so, so ein bisschen mehr Opinion reingebracht.

00:28:20.542 --> 00:28:21.782
Dann haben sie das halt wieder zurückgeklaut.

00:28:23.222 --> 00:28:24.542
Und dann haben sich die Winnie-Leute

00:28:24.542 --> 00:28:26.582
beschert, dass sie nicht gecredited

00:28:26.582 --> 00:28:27.802
werden für diese Geschichten.

00:28:28.542 --> 00:28:29.982
Und dann hat irgendjemand anders gemeint, so, ah,

00:28:30.123 --> 00:28:31.662
ihr habt das auch nur von mir wieder geklaut.

00:28:31.662 --> 00:28:32.302
und so. Keine Ahnung.

00:28:32.542 --> 00:28:35.402
Das verflüstert sich auf einmal so, als wären das jetzt irgendwelche Geheiminformationen.

00:28:35.623 --> 00:28:37.002
Nö, das ist es nicht. Aber ich,

00:28:37.202 --> 00:28:37.862
keine Ahnung.

00:28:38.042 --> 00:28:41.262
Also ich mag tatsächlich auch die Bezahlsachen von

00:28:41.262 --> 00:28:43.022
Table & Consent kennen. Es gibt ja so vorgefertigte

00:28:43.022 --> 00:28:44.802
UI-Komponenten, die man sich kaufen konnte.

00:28:45.022 --> 00:28:47.422
Und das Projekt zu unterstützen ist von denselben Leuten, die

00:28:47.422 --> 00:28:48.782
das Projekt geschrieben haben.

00:28:49.842 --> 00:28:51.123
Ja, es gibt ja auch

00:28:51.123 --> 00:28:53.362
so ein tolles Buch, irgendwie Refactoring UI

00:28:53.362 --> 00:28:55.162
oder so. Ja. Habe ich mir

00:28:55.162 --> 00:28:56.822
auch irgendwann mal gekauft, aber habe ich dann nicht gelesen.

00:28:57.182 --> 00:28:58.002
Vielleicht sollte ich das auch mal machen.

00:28:58.322 --> 00:29:01.162
Vielleicht sollte ich damit immer starten.

00:29:01.162 --> 00:29:03.123
irgendwie mal ein Buch lesen oder so. Das könnte vielleicht

00:29:03.123 --> 00:29:03.722
hilfreich sein.

00:29:05.002 --> 00:29:07.262
Eine Geschichte, die tatsächlich interessanter

00:29:07.262 --> 00:29:09.002
aussieht als diese Myriade an

00:29:09.002 --> 00:29:11.002
unterschiedlichen CSS-Arten,

00:29:11.383 --> 00:29:13.123
Frameworks, Minimal-Dinger, die man

00:29:13.123 --> 00:29:15.042
so benutzen kann, die ich

00:29:15.042 --> 00:29:16.142
letztens gesehen habe, ist

00:29:16.142 --> 00:29:18.162
Missing.style.

00:29:19.682 --> 00:29:21.102
Und zwar, weil das halt

00:29:21.102 --> 00:29:23.162
aus dem HTMX-Umfeld kommt.

00:29:23.682 --> 00:29:25.123
Und da Leute

00:29:25.123 --> 00:29:25.962
sich überlegt haben, okay,

00:29:26.842 --> 00:29:28.682
das fehlt halt noch. Also wenn man

00:29:28.682 --> 00:29:30.702
HTMX macht, das mache ich jetzt auch relativ viel,

00:29:30.702 --> 00:29:32.623
und damit bin ich eigentlich super

00:29:32.623 --> 00:29:34.862
zufrieden mit und ja, aber wie macht man das

00:29:34.862 --> 00:29:36.002
denn jetzt, weil da ist ja auch viel

00:29:36.002 --> 00:29:38.842
Animationsgeschichten oder so drin,

00:29:39.082 --> 00:29:40.903
die das dann Sachen verschwinden, wenn man irgendwo drauf

00:29:40.903 --> 00:29:42.362
klickt oder auftauchen und so

00:29:42.362 --> 00:29:44.702
Transition-Effekte und so und

00:29:44.702 --> 00:29:46.742
ja, da haben sie überlegt, okay, dann brauchen wir eigentlich

00:29:46.742 --> 00:29:48.842
genau dafür eins, aber wir wollen vielleicht nicht

00:29:48.842 --> 00:29:49.442
so ein super

00:29:49.442 --> 00:29:52.702
all-in-one

00:29:52.702 --> 00:29:54.862
Riesending haben, sondern nur für die Sachen,

00:29:54.962 --> 00:29:56.502
die wir da benutzen, irgendwie so ein

00:29:56.502 --> 00:29:58.462
CSS-Geschichten mitrahmen und

00:29:58.462 --> 00:30:00.522
sozusagen der Missing-Link

00:30:00.522 --> 00:30:01.123
irgendwie.

00:30:02.822 --> 00:30:04.403
Soll das irgendwie so sein? Das kann man sich auch mal

00:30:04.403 --> 00:30:06.262
angucken. Also da werde ich auf jeden Fall auch mal drauf gucken,

00:30:06.322 --> 00:30:08.282
was die da machen. Und das

00:30:08.282 --> 00:30:10.322
klang auf jeden Fall interessant, weil das fehlt halt tatsächlich.

00:30:10.322 --> 00:30:12.202
Also bisher muss man dann halt diese ganzen

00:30:12.202 --> 00:30:14.123
Transition-Geschichten

00:30:14.123 --> 00:30:16.342
halt irgendwie in sein CSS mit reinfrickeln

00:30:16.342 --> 00:30:18.422
dann. Und wenn das halt automatisch

00:30:18.422 --> 00:30:19.582
alles da wäre, wäre natürlich schon nett.

00:30:21.862 --> 00:30:22.002
Ja.

00:30:23.782 --> 00:30:24.262
Genau.

00:30:24.682 --> 00:30:26.143
Ansonsten, tja, ich weiß nicht.

00:30:29.162 --> 00:30:30.242
CSS haben

00:30:30.242 --> 00:30:30.762
Tja.

00:30:32.422 --> 00:30:34.682
Ich muss mich damit mal auseinandersetzen.

00:30:34.802 --> 00:30:35.482
Ich komme nicht mehr drum rum.

00:30:35.762 --> 00:30:37.623
Das erzählst du mir schon seit Jahren.

00:30:37.623 --> 00:30:38.242
Seit Jahren.

00:30:39.002 --> 00:30:41.042
Und dann habe ich doch immer wieder was anderes gefunden.

00:30:42.482 --> 00:30:42.623
Ja.

00:30:43.682 --> 00:30:45.442
Ja, es ist...

00:30:45.442 --> 00:30:47.502
Es lässt sich aber, glaube ich, inzwischen echt nicht mehr vermeiden.

00:30:48.062 --> 00:30:49.123
Ja, wie zum bisschen. Also deswegen

00:30:49.123 --> 00:30:51.342
empfehlen wir immer noch Tailwind.

00:30:51.623 --> 00:30:52.342
Hast du das schon gesagt?

00:30:52.702 --> 00:30:54.062
Ich bin ein kleiner Fan davon.

00:30:54.762 --> 00:30:56.342
Es war so ein bisschen...

00:30:56.342 --> 00:30:58.702
Ich konnte CSS sehr, sehr lange überhaupt nicht leiden.

00:30:58.702 --> 00:30:59.762
und es war irgendwie mega hässlich.

00:31:00.403 --> 00:31:02.623
Und dann fühlte sich es so an,

00:31:02.682 --> 00:31:04.643
wie ich es machen will. Das ist so wie bei Python,

00:31:05.162 --> 00:31:06.342
wo ich relativ schnell wusste,

00:31:06.462 --> 00:31:07.182
okay, so will ich es machen.

00:31:08.762 --> 00:31:10.482
Ja. Das ist immer dann, wenn man

00:31:10.482 --> 00:31:12.322
gar nicht weiß, wie es geht und dann findet man was,

00:31:12.403 --> 00:31:13.562
was irgendwie cool ist. Ich weiß auch nicht.

00:31:14.182 --> 00:31:16.143
Vielleicht ist man auch völlig auf dem Holzweg, weil man keinen hat,

00:31:16.442 --> 00:31:18.462
der einem erklärt hat, wie es richtig ist. Aber vielleicht ist es auch

00:31:18.462 --> 00:31:20.742
manchmal gar nicht so schlecht, wenn man da so ein bisschen seiner Intuition folgt.

00:31:21.862 --> 00:31:22.682
Ja, am besten

00:31:22.682 --> 00:31:24.462
ist es wahrscheinlich, man muss irgendwas machen und dann

00:31:24.462 --> 00:31:26.662
schauen, ob man

00:31:26.662 --> 00:31:28.602
den Kurs korrigiert, wenn es irgendwie nicht mehr gut

00:31:28.602 --> 00:31:30.362
gut. Ja, das sollte schon

00:31:30.362 --> 00:31:32.602
möglich sein, dass man seine Meinung auch wechseln

00:31:32.602 --> 00:31:33.462
kann. Das ist, glaube ich, schon...

00:31:33.462 --> 00:31:35.522
Wir werden

00:31:35.522 --> 00:31:37.862
uns weiter

00:31:37.862 --> 00:31:40.562
Dinge angucken und dann sagen wir

00:31:40.562 --> 00:31:42.062
Bescheid, wenn wir irgendwie das perfekt gefunden haben.

00:31:44.123 --> 00:31:44.643
Ansonsten, ja,

00:31:44.742 --> 00:31:46.462
ich meine, keine Ahnung, ich könnte ein bisschen was erzählen

00:31:46.462 --> 00:31:48.482
zu den Sachen, die ich so mache. Warum gucke ich

00:31:48.482 --> 00:31:49.682
mir eigentlich CSS-Geschichten an?

00:31:50.022 --> 00:31:52.662
Ja, erzähl mal, warum guckst du dir CSS-Geschichten an? Ist ja langweilig.

00:31:52.762 --> 00:31:53.722
Jochen hat schon was zu tun.

00:31:54.422 --> 00:31:55.802
Ja, ich habe ja diverse

00:31:55.802 --> 00:31:57.042
Projekte, ja.

00:31:57.042 --> 00:31:58.302
aber

00:31:58.302 --> 00:32:00.762
genau, momentan

00:32:00.762 --> 00:32:03.822
also eine Geschichte, die ganz

00:32:03.822 --> 00:32:05.802
interessant ist, also HTMLX

00:32:05.802 --> 00:32:08.182
das beeinflusst halt

00:32:08.182 --> 00:32:09.202
so viele Sachen, weil das halt

00:32:09.202 --> 00:32:11.682
mit HTMLX sagen wir die nächsten Trinkspiele, Jochen

00:32:11.682 --> 00:32:13.222
wenn ich das sage, was

00:32:13.222 --> 00:32:15.903
ja, stimmt schon

00:32:15.903 --> 00:32:17.782
aber, naja, so

00:32:17.782 --> 00:32:19.722
weil vieles

00:32:19.722 --> 00:32:22.123
so gerade, ich hatte mal irgendwann vor Jahren

00:32:22.123 --> 00:32:24.262
also das ist zum Beispiel wieder eins von diesen Beispielen

00:32:24.262 --> 00:32:26.422
so ein Bookmarking

00:32:26.422 --> 00:32:28.422
angefangen und das macht halt auch so viel

00:32:28.422 --> 00:32:29.822
mit Bootstrap

00:32:29.822 --> 00:32:32.462
und so und jQuery

00:32:32.462 --> 00:32:34.462
und ist halt alles ziemlich hässlich,

00:32:34.762 --> 00:32:36.042
was Frontend-Geschichten angeht.

00:32:36.962 --> 00:32:40.383
das im letzten Moment angefasst,

00:32:40.442 --> 00:32:42.462
wieder auf aktuellen Stand gebracht und

00:32:42.462 --> 00:32:44.282
da könnte man wahrscheinlich mit HTML

00:32:44.282 --> 00:32:46.522
sehr viel machen und dann ist halt die Frage,

00:32:46.602 --> 00:32:48.342
kann man dann nicht den ganzen anderen Kram gleich mit

00:32:48.342 --> 00:32:50.403
rausschmeißen, also sowas wie dieses ganze

00:32:50.403 --> 00:32:52.403
jQuery-Graffel und irgendwie

00:32:52.403 --> 00:32:53.883
Bootstrap und so, das wäre doch eigentlich ganz nett.

00:32:54.162 --> 00:32:56.102
Und dann ist halt die Frage, okay, was macht man in der Hand?

00:32:56.102 --> 00:32:56.942
was sind denn deine CSS?

00:32:57.062 --> 00:32:57.682
Genau, genau.

00:32:58.442 --> 00:32:59.462
Weil genau, perfekt,

00:32:59.682 --> 00:33:01.022
dann ist auch dafür auch super geeignet.

00:33:01.302 --> 00:33:02.202
Du hast ein Snippet,

00:33:02.282 --> 00:33:03.602
das du per HTMLX rausrennen kannst

00:33:03.602 --> 00:33:04.822
und was schreibst du in dein Snippet rein?

00:33:05.022 --> 00:33:05.502
Ja, genau,

00:33:05.702 --> 00:33:07.022
also das wäre natürlich nett,

00:33:07.262 --> 00:33:07.982
das sind halt so Sachen,

00:33:08.422 --> 00:33:09.262
die Tailwind-Blend machen,

00:33:09.403 --> 00:33:09.623
ist halt,

00:33:09.722 --> 00:33:09.922
dass es,

00:33:10.082 --> 00:33:11.202
wenn es im HTML-Strom steht,

00:33:11.282 --> 00:33:12.542
dann kann man es eben auch direkt mit,

00:33:13.022 --> 00:33:13.722
man muss halt nicht

00:33:13.722 --> 00:33:14.782
ein neues CSS mit ausliefern.

00:33:15.262 --> 00:33:15.582
Genau,

00:33:15.662 --> 00:33:16.662
und du musst auch nicht jedes Mal

00:33:16.662 --> 00:33:16.942
in das,

00:33:17.242 --> 00:33:18.143
irgendein großes CSS,

00:33:18.262 --> 00:33:19.022
in das du schon ausgeliefert hast,

00:33:19.082 --> 00:33:19.762
genau die Sachen reintreiben,

00:33:19.842 --> 00:33:20.662
sondern schreibst halt genau das,

00:33:20.662 --> 00:33:21.062
was du willst,

00:33:21.502 --> 00:33:21.862
in dein,

00:33:22.383 --> 00:33:22.582
ja.

00:33:22.582 --> 00:33:32.942
Aber du hast eben auch gesagt, also ja, also die großen Designer, die sich die ganz tollen Konzepte überlegt haben mit ihren Style Guides, die könnten eventuell sagen, dass du dann einfach trotzdem den Button kleiner machst, obwohl das verboten ist im Style Guide.

00:33:32.942 --> 00:33:35.682
Ja, ich weiß, ich habe ehrlich gesagt

00:33:35.682 --> 00:33:37.702
keine Ahnung, wie man das alles wirklich macht, aber naja

00:33:37.702 --> 00:33:39.482
Ja, aber genau

00:33:39.482 --> 00:33:41.162
das wäre so

00:33:41.162 --> 00:33:44.222
das war so einer der Gründe, warum ich da nochmal drüber nachgedacht habe

00:33:44.222 --> 00:33:45.562
dann genau

00:33:45.562 --> 00:33:46.862
war auch sowas wie

00:33:46.862 --> 00:33:49.482
ja

00:33:49.482 --> 00:33:51.822
diese, dafür würde ich gerne

00:33:51.822 --> 00:33:53.582
so eine Landingpage bauen, halt irgendwie

00:33:53.582 --> 00:33:55.082
Podcast-Hosting

00:33:55.082 --> 00:33:56.782
Service-Geschichte

00:33:56.782 --> 00:33:59.722
und da braucht man dann ja auch vielleicht ein bisschen

00:33:59.722 --> 00:34:01.383
mehr Design-Wumms und dann

00:34:01.383 --> 00:34:03.042
Es bootstrapft vielleicht irgendwie nicht das Richtige.

00:34:03.623 --> 00:34:04.742
Also was wir da machen, ist

00:34:04.742 --> 00:34:05.883
Designer fragen.

00:34:07.022 --> 00:34:09.143
Dann machen die uns einen Entwurf,

00:34:09.302 --> 00:34:11.282
Design. Und dann machen wir das

00:34:11.282 --> 00:34:11.782
in Tablet.

00:34:13.403 --> 00:34:15.462
Ja, irgendwie

00:34:15.462 --> 00:34:15.762
sowas.

00:34:16.703 --> 00:34:17.782
Da helfe ich dir gerne bei.

00:34:19.082 --> 00:34:21.422
Du hast noch ein paar Sachen entdeckt, ein paar Pics fast.

00:34:22.442 --> 00:34:23.363
Ja, aber genau.

00:34:23.482 --> 00:34:24.643
Kann man auch einfach mal raushauen.

00:34:25.383 --> 00:34:27.582
Gibt es ja genug Gelegenheiten für andere Pics.

00:34:28.042 --> 00:34:29.482
Mermaid. Mermaid habe ich jetzt

00:34:29.482 --> 00:34:30.663
letztens gesehen.

00:34:30.663 --> 00:34:32.422
ziemlich coole Sache, das kann ich noch nicht.

00:34:32.722 --> 00:34:34.582
Was man damit machen kann, ist Markdown-Enhance

00:34:34.582 --> 00:34:36.683
um sowas wie Diagramme.

00:34:37.602 --> 00:34:38.643
Ja, genau. Und das kann halt

00:34:38.643 --> 00:34:40.462
auch diese Diagramme, die Arten von Diagrammen,

00:34:40.502 --> 00:34:42.442
die man halt... Also das, was

00:34:42.442 --> 00:34:44.562
ihr von Draw.io vielleicht kennt so ein bisschen oder so.

00:34:44.922 --> 00:34:46.623
Wenn ihr so, weiß nicht, ob das in der Komplexität

00:34:46.623 --> 00:34:48.183
geht, aber richtig coole Sachen,

00:34:48.542 --> 00:34:50.203
die man echt gut dastehen kann.

00:34:50.343 --> 00:34:52.722
EM-Diagramme, Flowcharts,

00:34:52.883 --> 00:34:54.562
sowas. Einfach als Markdown

00:34:54.562 --> 00:34:56.482
schreiben, so ein bisschen runterschreiben und dann könnt

00:34:56.482 --> 00:34:58.442
ihr das auch direkt rennern lassen. Auch von

00:34:58.442 --> 00:35:00.383
sowas wie GitHub. Ja, also

00:35:00.383 --> 00:35:22.383
und

00:35:22.383 --> 00:35:24.722
mit Graphics oder Dot irgendwie hat das

00:35:24.722 --> 00:35:26.762
dann gerendert, aber das ist alles

00:35:26.762 --> 00:35:28.802
nicht so...

00:35:28.802 --> 00:35:30.842
Also für das ERM, die Rahmen direkt rausrennen lassen

00:35:30.842 --> 00:35:32.782
aus den Models, ist das natürlich schon nett. Also wir reden ja

00:35:32.782 --> 00:35:34.582
gerade über Mermaid, dass das glaube ich nicht macht.

00:35:34.782 --> 00:35:36.742
Nee, da machst du es von Hand, aber da hast du halt dann auch mehr

00:35:36.742 --> 00:35:38.442
Kontrollmöglichkeiten. Also insofern...

00:35:38.442 --> 00:35:40.143
Ja gut, aber ich will jetzt natürlich nicht jetzt irgendwie,

00:35:40.643 --> 00:35:42.462
wenn irgendjemand einfach kurz das ERM sehen will,

00:35:42.582 --> 00:35:44.322
dann explotiere ich halt einfach aus meinen Dango-Models.

00:35:45.222 --> 00:35:46.502
Aber ja, du hast natürlich recht.

00:35:46.722 --> 00:35:48.982
Viel schöner, wenn man das vorbereitet und am Anfang,

00:35:49.422 --> 00:35:50.722
bevor man die Models hat, kann man das

00:35:50.722 --> 00:35:51.623
ja vielleicht bauen so.

00:35:51.623 --> 00:35:55.403
Naja, ist eher so, weil die Frage ist, was willst du in deiner Dokumentation verlinken?

00:35:56.502 --> 00:35:57.663
Und ein automatisch

00:35:57.663 --> 00:35:59.422
generiertes Ding in der Dokumentation ist halt

00:35:59.422 --> 00:36:01.422
irgendwie nicht so

00:36:01.422 --> 00:36:03.522
super. Die wichtigere Frage wäre, liest jemand

00:36:03.522 --> 00:36:04.222
die Dokumentation?

00:36:05.383 --> 00:36:07.082
Ja, das ist auch, vielleicht nicht.

00:36:07.602 --> 00:36:09.602
Ja, wenn nicht, dann mache ich es automatisch, weil

00:36:09.602 --> 00:36:11.582
dann muss ich ja keine Arbeitszeit reinstecken. Wenn doch,

00:36:11.683 --> 00:36:13.562
dann sollte man es ordentlich machen. Aber das ist immer ein bisschen

00:36:13.562 --> 00:36:15.342
die Frage, weil einige Leute wollen die unbedingt haben,

00:36:15.482 --> 00:36:16.582
aber niemand guckt rein.

00:36:17.262 --> 00:36:19.403
Dann ist es halt nur für einen selber und dann weiß ich nicht,

00:36:19.403 --> 00:36:20.802
ob ich das dann...

00:36:20.802 --> 00:36:46.163
Ja, aber, also was mich halt freut, ist, dass es jetzt auf jeden Fall ein Ding gibt, wo man, also sonst habe ich mich immer gefragt, ja, nehme ich Draw.io oder nehme ich irgendein anderes Tool oder nehme ich halt irgendwie irgendein Desktop-Ding, was ich halt habe und dann mache ich das als PNG raus oder als SVG, nehme ich lieber ein SVG oder weiß nicht so genau und dann, das sieht aber auch wieder ganz anders aus als alle anderen Diagramme, die ich sonst so gemacht habe, also Mist auf dem Hintergrund funktioniert das aber nicht, halt diese ganzen Probleme und das ist dann halt alles los, wenn man das mit Mermaid macht.

00:36:46.163 --> 00:37:05.102
Ja, also das ist wie gesagt Master und ihr könnt auch sowas machen wie verschiedene Projekte, wie lange wollt ihr die ins Kedulen und dann nebeneinander, das finde ich echt sehr cool, also ich muss mir das unbedingt angucken, weil ich halt diese Tasks, die hintereinander kommen, wie lange brauchen die denn, kannst du so ein Ad-Gent oder sowas für verschiedene Projekte bauen kann in Markdown und wir benutzen ja eh für alles jetzt Markdown, nicht wahr Jochen?

00:37:06.562 --> 00:37:09.102
Ja, ich weiß nicht so genau.

00:37:09.403 --> 00:37:10.683
Nein, zum Schreiben, nicht?

00:37:10.683 --> 00:37:12.302
Ja, meistens, also

00:37:12.302 --> 00:37:14.342
genau, ich habe jetzt auch

00:37:14.342 --> 00:37:16.683
MPDocs mehr dann angeguckt und damit geht das halt auch

00:37:16.683 --> 00:37:17.802
da gibt es so ein Plugin für

00:37:17.802 --> 00:37:21.203
Data-Templates geht auch

00:37:21.203 --> 00:37:22.262
PDF geht, sogar

00:37:22.262 --> 00:37:24.062
so Richtung Latex-Templates geht

00:37:24.062 --> 00:37:26.663
es geht, was noch?

00:37:26.722 --> 00:37:28.123
Was brauchen wir noch? PDF natürlich, aber

00:37:28.123 --> 00:37:30.183
Präsentationen geht

00:37:30.183 --> 00:37:32.762
Naja, oder Notebooks verwende ich halt auch

00:37:32.762 --> 00:37:33.582
Markdown viel

00:37:33.582 --> 00:37:35.562
Klar, aber

00:37:35.562 --> 00:37:38.802
sagen wir mal so, also für Python-Dokumentation

00:37:38.802 --> 00:37:40.422
traditionell verwenden Leute ja dann

00:37:40.422 --> 00:37:42.663
Restructured Text. Ja, aber das ist so hässlich.

00:37:42.982 --> 00:37:44.362
Ja, es ist hässlich, aber

00:37:44.362 --> 00:37:46.242
es kann halt viel mehr als Markdown.

00:37:46.602 --> 00:37:48.362
Und es gibt halt, die Leute sagen halt

00:37:48.362 --> 00:37:50.322
immer so, ja, also Markdown

00:37:50.322 --> 00:37:52.422
nett, aber es kann halt nicht die Sachen, die ich brauche.

00:37:52.582 --> 00:37:54.422
Daher nehme ich lieber, also gerade was

00:37:54.422 --> 00:37:55.922
Links angeht und so,

00:37:56.362 --> 00:37:58.362
daher nehme ich lieber Restructured Text.

00:37:58.462 --> 00:38:00.442
Ich glaube auch, das ist immer noch

00:38:00.442 --> 00:38:02.062
das, was am häufigsten verwendet wird.

00:38:02.502 --> 00:38:04.342
Also wenn man irgendwie Dokumentationen von Projekten anguckt,

00:38:04.342 --> 00:38:05.582
dann ist es meistens Restructured Text.

00:38:05.623 --> 00:38:08.502
Aber ich hatte auch öfter mal Restructured Text mit Trinks oder so.

00:38:08.862 --> 00:38:08.962
Ja.

00:38:08.962 --> 00:38:10.802
versucht, aber...

00:38:10.802 --> 00:38:12.502
Ich verstehe,

00:38:12.542 --> 00:38:13.643
wo das Problem ist, ja.

00:38:14.062 --> 00:38:16.542
Also es schlägt dann keiner mehr. Also Markdown kann man irgendwie

00:38:16.542 --> 00:38:17.542
besser...

00:38:17.542 --> 00:38:19.782
Ich weiß nicht, Research-Dischekt wird es nicht schaffen.

00:38:21.302 --> 00:38:22.442
Keine Ahnung, aber...

00:38:22.442 --> 00:38:24.422
Bin ich mir sicher. Also Markdown kann man so

00:38:24.422 --> 00:38:26.163
super viele Anwendungsfelder haben. Man kann das halt einfach

00:38:26.163 --> 00:38:28.002
sein GitHub hochladen, es ist direkt gerendert.

00:38:28.163 --> 00:38:30.502
Man kann, weiß nicht, es gibt so Typora oder so,

00:38:30.542 --> 00:38:32.042
ich glaube, der ist leider, der war tischendurch frei,

00:38:32.143 --> 00:38:34.342
ich glaube, der ist jetzt leider auch

00:38:34.342 --> 00:38:36.262
proprietär, aber

00:38:36.262 --> 00:38:38.542
da konnte man wie so ein Schreibprogramm

00:38:38.542 --> 00:38:40.562
seine Eltern überreden, wenn die

00:38:40.562 --> 00:38:42.582
irgendwas schreiben wollen und kein Word brauchen, hey, schreib doch

00:38:42.582 --> 00:38:44.203
Depora, dann hat die Markdown-Files voll toll.

00:38:44.522 --> 00:38:46.703
Und die haben es gar nicht gemerkt, weil das so ein Wolf-Misky-Editor

00:38:46.703 --> 00:38:48.562
für Markdown hat das. Richtig schön.

00:38:49.163 --> 00:38:50.703
Und so war es halt. Und ja,

00:38:51.062 --> 00:38:52.143
Obsidian vielleicht noch.

00:38:52.562 --> 00:38:54.822
Und das halt so eine grafische Visualisierung

00:38:54.822 --> 00:38:56.683
von deinen Markdowns macht, wenn du das

00:38:56.683 --> 00:38:58.602
möchtest. Und dann kannst du so ein bisschen sehen, woran du arbeitest.

00:38:58.683 --> 00:39:00.623
Oder wie die Themen untereinander verknüpft sind. Die Links können

00:39:00.623 --> 00:39:03.002
man... Kennst du das Zettelkasten-

00:39:03.002 --> 00:39:03.062
Prinzip?

00:39:04.723 --> 00:39:06.482
Äh, Luhmann ist das

00:39:06.482 --> 00:39:08.362
irgendwie, ne? Oder... Ich weiß nicht genau,

00:39:08.362 --> 00:39:08.643
wie heißt?

00:39:10.822 --> 00:39:12.362
Ach, jetzt können wir es nicht erklären.

00:39:12.522 --> 00:39:12.902
Jetzt müssen wir

00:39:12.902 --> 00:39:15.782
ein eigenes Amt hier haben.

00:39:16.723 --> 00:39:17.482
Doch, ich glaube,

00:39:18.942 --> 00:39:20.183
du kannst auf jeden Fall Sachen da richtig

00:39:20.183 --> 00:39:22.322
einsortieren und hast durch die Verknüpfung direkt

00:39:22.322 --> 00:39:24.562
viel schnellere Sachbehalte

00:39:24.562 --> 00:39:25.482
miteinander gebündelt.

00:39:27.402 --> 00:39:27.802
Ja.

00:39:28.402 --> 00:39:30.243
Ja, Luhmann kann sein, dass das richtig war, aber

00:39:30.243 --> 00:39:32.163
wie genau das ging, weiß ich jetzt nicht genau.

00:39:32.502 --> 00:39:34.462
Jedenfalls unterstützt

00:39:34.462 --> 00:39:36.582
auch das deine Ablage an dieser

00:39:36.582 --> 00:39:38.022
Methoden.

00:39:38.362 --> 00:39:40.163
Mein Notizblock SimpleNode, ich muss

00:39:40.163 --> 00:39:42.243
auch Markdown, Vendable und so.

00:39:42.663 --> 00:39:44.143
Ja, also es gibt ganz viele Kleinigkeiten,

00:39:44.442 --> 00:39:46.163
die in diese Markdown-Welt reinspielen und diese

00:39:46.163 --> 00:39:48.482
schlimmste sind alle Interchangeable

00:39:48.482 --> 00:39:50.482
und das ist, also ich bin auch ein großer

00:39:50.482 --> 00:39:51.902
Fan von Markdown, habe ich ja schon gesagt.

00:39:52.762 --> 00:39:54.382
Nee, aber ich glaube, man kann das irgendwie

00:39:54.382 --> 00:39:56.362
durchaus so raushören, wenn man da

00:39:56.362 --> 00:39:58.482
ganz, ganz genau mit der Lupe

00:39:58.482 --> 00:39:59.302
draufkommt.

00:40:01.723 --> 00:40:02.082
Ja.

00:40:03.402 --> 00:40:03.762
Ja,

00:40:04.022 --> 00:40:06.422
ja, es läuft

00:40:06.422 --> 00:40:07.922
momentan alles ein bisschen auf Markdown hinaus.

00:40:07.922 --> 00:40:08.822
mal schauen.

00:40:09.723 --> 00:40:11.962
Genau, auch schön ist, dass es halt auch in GitHub-Geschichten

00:40:11.962 --> 00:40:13.782
funktioniert, dass es auch irgendwie Standard-

00:40:13.782 --> 00:40:16.002
Integration, Standard-Message-Integration

00:40:16.002 --> 00:40:17.522
an, das heißt, wenn man das einfach so reinschreibt, dann

00:40:17.522 --> 00:40:19.542
hat man das halt auch in Issues oder halt in

00:40:19.542 --> 00:40:21.822
irgendwie, ja, Markdown, was halt

00:40:21.822 --> 00:40:23.183
auch von GitHub gerendert wird.

00:40:25.402 --> 00:40:25.942
Ja, überhaupt

00:40:25.942 --> 00:40:27.703
aber das ganze Dokumentationsthema

00:40:27.703 --> 00:40:29.203
ist ja auch so, in letzter Zeit habe ich mich

00:40:29.203 --> 00:40:32.163
ein bisschen

00:40:32.163 --> 00:40:33.562
mit MakeDocs

00:40:33.562 --> 00:40:35.922
beschäftigt, aber halt

00:40:35.922 --> 00:40:37.822
auch überhaupt mit diesem Ding, dass man das

00:40:37.822 --> 00:40:39.062
halt vielleicht mal tun sollte, weil

00:40:39.062 --> 00:40:41.723
also meine Ansicht dazu bisher war ja eigentlich

00:40:41.723 --> 00:40:43.542
immer so Dokumentation, ah ne, lieber nicht.

00:40:45.042 --> 00:40:45.683
Ist ein bisschen

00:40:45.683 --> 00:40:46.762
zweifelhaft vielleicht und

00:40:46.762 --> 00:40:49.522
inzwischen denke ich mir so,

00:40:49.602 --> 00:40:50.882
naja, vielleicht ist es doch nicht so schlau.

00:40:51.723 --> 00:40:53.842
Und genau,

00:40:54.442 --> 00:40:55.542
da hatte Simon Willison

00:40:55.542 --> 00:40:57.322
auch irgendwie diverse Artikel jetzt

00:40:57.322 --> 00:40:59.362
in letzter Zeit in seinem Blog einmal

00:40:59.362 --> 00:41:01.782
irgendwie bessere Release Notes

00:41:01.782 --> 00:41:03.683
schreiben. Da versuche ich mich

00:41:03.683 --> 00:41:04.782
jetzt auch so ein bisschen dran zu halten.

00:41:05.183 --> 00:41:07.502
Ja, das finde ich schwierig. Also bei mir steht auch

00:41:07.502 --> 00:41:09.102
in den meisten Commits nur Schrott drin wie

00:41:09.102 --> 00:41:11.163
FixedSomething oder FixedFinal

00:41:11.163 --> 00:41:12.882
oder FixedAgain oder Typo.

00:41:13.723 --> 00:41:15.302
Ja, also ich versuche es immer. Also es gibt dann immer

00:41:15.302 --> 00:41:16.902
einen Commit, der ist ordentlich

00:41:16.902 --> 00:41:19.442
und 15 dann, die sind irgendwie

00:41:19.442 --> 00:41:21.502
so Fixes davon. Ich glaube, man kann die irgendwie

00:41:21.502 --> 00:41:22.643
stacken.

00:41:23.482 --> 00:41:24.542
Du kannst sie hinterher

00:41:24.542 --> 00:41:27.482
squashen, wenn du das halt

00:41:27.482 --> 00:41:29.322
in einem Pull-Request zusammenfasst.

00:41:29.322 --> 00:41:30.743
Ja, aber das mache ich zum Beispiel nicht.

00:41:31.822 --> 00:41:33.683
Ja? Ja, das würde man in Pull-Requests

00:41:33.683 --> 00:41:35.402
machen. Das ist bei mir relativ egal,

00:41:35.462 --> 00:41:37.382
wenn ich der Einzige bin, der auf so einem Branch ackert, dann ist das

00:41:37.382 --> 00:41:38.442
für dich burschen. Ja, klar, klar.

00:41:39.862 --> 00:41:41.822
Ja, würde ich auch sagen. Also normalerweise

00:41:41.822 --> 00:41:43.623
irgendwie mache ich das halt auch nicht, wenn ich da

00:41:43.623 --> 00:41:45.802
irgendwie alleine... Aber wenn man sich jetzt überlegt,

00:41:45.982 --> 00:41:47.502
eigentlich möchte man ja vielleicht

00:41:47.502 --> 00:41:49.163
irgendwie die Entwicklung auch skalieren können.

00:41:50.902 --> 00:41:51.902
Ja, das ist sehr sinnvoll,

00:41:52.002 --> 00:41:53.123
dass man gute

00:41:53.123 --> 00:41:55.362
Commit-Messages hat, wo auch was passiert

00:41:55.362 --> 00:41:57.502
und nicht nur zwei Leerzeichen gemittet werden. Dann müsste man

00:41:57.502 --> 00:41:59.042
auf jeden Fall seine Commits alles squashen

00:41:59.042 --> 00:42:12.245
und die ordentlich machen und so Aber so Commit ist jetzt bei mir so die gehen eigentlich finde ich Die sind gar nicht so schlimm Aber die sind auch ganz okay Ich habe mich ja mal die Zeit mit euch

00:42:12.245 --> 00:42:13.485
unterhalten. Das ist auch schon ein paar

00:42:13.485 --> 00:42:16.205
Jährchen her, glaube ich. Und zwar, ob man die in Präsenz

00:42:16.205 --> 00:42:17.965
oder in der

00:42:17.965 --> 00:42:19.445
Vergangenheitsform formuliert.

00:42:20.385 --> 00:42:20.665
Ja.

00:42:21.885 --> 00:42:24.045
Weiß ich auch gar nicht mehr. Das Ergebnis war, Präsenz wurde

00:42:24.045 --> 00:42:25.565
bevorzugt. Präsenz, ja, kann sein.

00:42:26.065 --> 00:42:27.085
Ich weiß jetzt gar nicht, was ich...

00:42:27.085 --> 00:42:30.025
Dieser Comment-Trick ist dissonierend, anstatt dieser

00:42:30.025 --> 00:42:31.285
hat das gefixt.

00:42:31.925 --> 00:42:32.025
Ja.

00:42:33.645 --> 00:42:36.285
Aber das ist ja nicht das gleiche wie Release Logs.

00:42:36.345 --> 00:42:38.065
Release Logs ist nochmal eine andere Geschichte.

00:42:38.205 --> 00:42:39.425
Ja, aber wann macht man das zum Beispiel?

00:42:39.565 --> 00:42:42.025
Wann schreibt man quasi sein...

00:42:43.805 --> 00:42:44.065
Ja.

00:42:46.425 --> 00:42:47.645
Die Fixliste.

00:42:48.785 --> 00:42:50.225
Wenn du

00:42:50.225 --> 00:42:51.625
eine Release machst.

00:42:52.125 --> 00:42:53.685
Ja, aber auf Semantic Version,

00:42:53.825 --> 00:42:55.205
auf welcher...

00:42:55.205 --> 00:42:57.265
Semantic Version ist halt eine Sache.

00:42:57.565 --> 00:42:58.745
Braucht man das? Nein?

00:42:59.145 --> 00:42:59.745
Warum nicht?

00:43:00.025 --> 00:43:03.065
Naja, weil es ja auch nicht wirklich hilft

00:43:03.065 --> 00:43:04.925
und also gut, auch da gibt es

00:43:04.925 --> 00:43:07.085
eine Menge Leute, die mittlerweile

00:43:07.085 --> 00:43:08.725
halt irgendwie einfach

00:43:08.725 --> 00:43:10.025
fortlaufende Geschichten machen.

00:43:10.025 --> 00:43:11.185
Ein bisschen Pseudo ist ja ganz okay.

00:43:11.505 --> 00:43:13.685
Wenn man zum Beispiel weiß, man hat jetzt nur ein bisschen was

00:43:13.685 --> 00:43:15.505
gefixt oder arbeitet an so ein paar

00:43:15.505 --> 00:43:17.945
Sachen rum, dann macht man

00:43:17.945 --> 00:43:19.125
immer so die Patch-Version.

00:43:19.685 --> 00:43:21.805
Wenn man jetzt quasi ein paar neue Features eingebaut hat, würde ich

00:43:21.805 --> 00:43:23.405
sagen, schon Miner nach oben.

00:43:23.565 --> 00:43:25.405
Machen wir einfach Miner einen hoch. Neue Features,

00:43:25.845 --> 00:43:26.045
Miner.

00:43:27.405 --> 00:43:29.885
Und Mater ist Breaking Change, also es geht irgendwas

00:43:29.885 --> 00:43:30.945
nicht mehr mit früher, dann ist es major.

00:43:31.945 --> 00:43:33.885
Ja, wenn man das so machen will,

00:43:33.965 --> 00:43:35.645
klar, aber die Frage ist halt,

00:43:35.965 --> 00:43:37.725
ob das jetzt sinnvoll ist oder nicht, das ist halt nochmal

00:43:37.725 --> 00:43:39.865
eine andere Frage. Es gibt Leute, die machen es so, machen es anders.

00:43:40.365 --> 00:43:41.505
Aber egal, wie man es macht,

00:43:41.805 --> 00:43:43.625
also Release Notes zu schreiben,

00:43:43.685 --> 00:43:45.845
ist wahrscheinlich immer eine ganz gute Idee, egal, wie man es

00:43:45.845 --> 00:43:46.025
macht.

00:43:46.785 --> 00:43:49.725
Und auch da ein Datum zum Beispiel dazu

00:43:49.725 --> 00:43:51.605
zu schreiben und dann halt noch, da kann man sich

00:43:51.605 --> 00:43:53.065
auch die Artikel mal im Detail angucken.

00:43:53.645 --> 00:43:55.365
Ja, stimmt, sollte man machen.

00:43:55.885 --> 00:43:57.645
Idealerweise sollte da die User-Story beschrieben sein,

00:43:57.645 --> 00:43:59.865
die gefixt wurde oder die dazugekommen ist.

00:43:59.885 --> 00:44:01.925
ist auch nicht gut. Es sollte

00:44:01.925 --> 00:44:03.305
so sein, dass...

00:44:03.305 --> 00:44:06.365
Ein Satz zu dem Punkt.

00:44:06.365 --> 00:44:08.205
Ein Satz, okay, das ist okay,

00:44:08.285 --> 00:44:09.685
aber es sollte halt nicht irgendwie, genau.

00:44:10.985 --> 00:44:12.365
Man kann ja durchaus die Issues

00:44:12.365 --> 00:44:12.885
und so reinschreiben.

00:44:12.885 --> 00:44:15.905
Der User kann sich jetzt

00:44:15.905 --> 00:44:17.665
auf unserem Backend einloggen.

00:44:18.105 --> 00:44:20.105
Oder sowas wie, der User

00:44:20.105 --> 00:44:22.145
kann jetzt den Filter

00:44:22.145 --> 00:44:23.525
so bedienen, dass er alle möglichen...

00:44:23.525 --> 00:44:25.705
Das ist halt die Frage, für wen schreibst du das?

00:44:25.745 --> 00:44:26.905
Das sollte man sich vielleicht auch überlegen.

00:44:26.905 --> 00:44:28.705
und die Devs.

00:44:28.725 --> 00:44:30.685
Ja, aber die interessiert das doch nicht, was die User-Story ist.

00:44:31.105 --> 00:44:32.545
Also ich würde sagen, aus einer technischen Perspektive

00:44:32.545 --> 00:44:34.845
sind die User-Stories doch eigentlich komplett uninteressant.

00:44:34.865 --> 00:44:36.265
Ja, aber das wäre die technische Formulierung von

00:44:36.265 --> 00:44:38.845
du kannst jetzt in diesem Formular das und das, die Auswahlfehler.

00:44:38.865 --> 00:44:40.725
Also technisch würde ich reinschreiben, was tatsächlich passiert ist,

00:44:41.045 --> 00:44:41.745
was man geändert hat.

00:44:43.005 --> 00:44:44.965
Oder so, die Cop-Messages aneinander kleben.

00:44:45.085 --> 00:44:46.245
Nee, nee, nicht die,

00:44:46.405 --> 00:44:48.405
aber halt sozusagen reinschreiben,

00:44:48.405 --> 00:44:49.805
was da passiert ist.

00:44:50.665 --> 00:44:52.625
Aber aus Business-Sicht ist das halt uninteressant.

00:44:52.705 --> 00:44:53.965
Aus Business-Sicht ist halt nur interessant,

00:44:54.085 --> 00:44:56.445
was ist denn jetzt mit unseren User-Stories passiert.

00:44:56.445 --> 00:44:59.045
aber aus technischer Sicht sind die User-Stories halt relativ irrelevant.

00:44:59.445 --> 00:45:00.185
Das finde ich gar nicht.

00:45:00.605 --> 00:45:02.925
Ne? Okay, gut. Interessant.

00:45:03.045 --> 00:45:04.045
Ich weiß es nicht so genau.

00:45:04.225 --> 00:45:06.665
Ich würde sagen, dass die meisten Open-Source-Projekte

00:45:06.665 --> 00:45:08.965
sowas gar nicht haben. Die haben gar keine User-Stories oder sowas.

00:45:09.605 --> 00:45:10.285
Ja, okay, aber

00:45:10.285 --> 00:45:12.785
das, was damit gemeint ist, weil tatsächlich ja das Feature,

00:45:12.925 --> 00:45:14.725
das man baut, vielleicht das ist, was man dann umsetzt

00:45:14.725 --> 00:45:16.725
und wie man das, also das würde ich jetzt

00:45:16.725 --> 00:45:18.705
in den Release-Log reintreiben, welches Feature jetzt

00:45:18.705 --> 00:45:19.245
umgesetzt ist.

00:45:21.045 --> 00:45:22.945
Ja, wie gesagt, aber ich glaube,

00:45:22.945 --> 00:45:24.885
es würde wahrscheinlich schon viel helfen, wenn man sich

00:45:24.885 --> 00:45:26.505
überlegt, an wen richtet sich das eigentlich?

00:45:26.745 --> 00:45:27.405
Wer soll das lesen?

00:45:28.685 --> 00:45:30.105
Kann man ja zu unterschiedlichen Ergebnissen kommen.

00:45:30.105 --> 00:45:31.785
Kann man zu unterschiedlichen Ergebnissen kommen.

00:45:31.785 --> 00:45:34.145
Nutzer lesen oder die Devs lesen.

00:45:35.025 --> 00:45:36.225
Und zum Beispiel

00:45:36.225 --> 00:45:37.925
ein Ding, das mich jetzt gerade interessiert,

00:45:38.285 --> 00:45:39.585
deswegen beschäftige ich mich damit auch so ein bisschen,

00:45:39.765 --> 00:45:41.585
wenn man jetzt Entwicklung skalieren möchte,

00:45:42.025 --> 00:45:42.205
dann

00:45:42.205 --> 00:45:45.685
ist es vielleicht gar nicht so schlecht,

00:45:45.805 --> 00:45:47.625
zum Beispiel eben auch andere Artikel,

00:45:47.685 --> 00:45:49.085
ich weiß jetzt gar nicht mehr, wie der Titel von dem war,

00:45:49.205 --> 00:45:51.305
hat er so, ja, also

00:45:51.305 --> 00:45:53.805
er schreibt immer, seit einiger Zeit

00:45:53.805 --> 00:45:57.245
und macht er immer GitHub-Issues auf für alles, was er macht.

00:45:58.565 --> 00:46:02.425
Und einfach, um halt einen Punkt zu haben, wo er alles sammeln kann,

00:46:02.545 --> 00:46:04.145
was zu einem bestimmten Ding gehört.

00:46:05.085 --> 00:46:06.745
Und zwar nicht nur...

00:46:06.745 --> 00:46:10.805
Was ich ganz gerne mache, das muss man halt immer ein bisschen einstellen,

00:46:11.005 --> 00:46:14.025
ist To-Do-Kommentare im Code.

00:46:15.085 --> 00:46:19.425
Aber die mit GitHub-Post-Assessing, dass ihr einen Hook habt,

00:46:19.565 --> 00:46:22.325
dass ihr automatisch aus meinen To-Dos im Code Issues erstellt,

00:46:22.325 --> 00:46:24.465
auf GitHub und die automatisch wieder zumacht,

00:46:24.525 --> 00:46:26.405
wenn das To-Do da verschwindet und das CD

00:46:26.405 --> 00:46:28.245
automatisch auch nummeriert und das dann halt auch in dem

00:46:28.245 --> 00:46:29.165
Commit mit ergänzt.

00:46:30.385 --> 00:46:32.185
Das heißt, er schreibt dann quasi an den To-Do die

00:46:32.185 --> 00:46:33.725
Issue-Nummer mit dran und

00:46:33.725 --> 00:46:36.405
dann kann man quasi darüber auch direkt sich linken

00:46:36.405 --> 00:46:38.305
lassen, wenn man das einstellt, auf den Issue

00:46:38.305 --> 00:46:40.385
auf GitHub und sich den angucken und die Diskussion dazu angucken

00:46:40.385 --> 00:46:42.225
und hat aber das im Code stehen und muss halt

00:46:42.225 --> 00:46:44.345
nicht zwei Sachen pflegen, sondern du kannst halt einfach im Code

00:46:44.345 --> 00:46:46.045
das dann bereinigen

00:46:46.045 --> 00:46:47.865
und dann ist halt geschlossen

00:46:47.865 --> 00:46:50.165
und sowas. Und das finde ich

00:46:50.165 --> 00:46:50.565
sehr gut.

00:46:50.565 --> 00:46:52.585
Ja, wenn du eine Stelle hast an einem Code, wo du das hin...

00:46:52.585 --> 00:46:54.925
Aber es gibt ja auch viele Dinge, die sind...

00:46:54.925 --> 00:46:56.245
Kannst ja nicht an einer Stelle festmachen.

00:46:56.325 --> 00:46:57.305
Aber gut, ja.

00:46:58.245 --> 00:47:00.605
Wie man es macht, ist ja letztlich...

00:47:00.605 --> 00:47:02.465
Du kannst natürlich auch ein extra machen und dann halt referenzieren.

00:47:02.825 --> 00:47:04.205
In einem Commit oder so. Aber, ja.

00:47:05.205 --> 00:47:06.485
Genau, und das kannst du ja mit dem

00:47:06.485 --> 00:47:08.125
Issue auch super machen. GitHub macht das ja gut.

00:47:08.385 --> 00:47:10.445
Also es erinnert dich niemand daran, noch extra Issues aufzumachen,

00:47:10.525 --> 00:47:11.005
wollte ich da mal sagen.

00:47:11.005 --> 00:47:11.945
Ja, ja. Nee, klar.

00:47:12.985 --> 00:47:14.445
Ich weiß gar nicht...

00:47:14.445 --> 00:47:16.685
Wie man es jetzt macht, das kann man

00:47:16.685 --> 00:47:18.925
halt machen, wie man will.

00:47:18.925 --> 00:47:20.745
aber was ich daran interessant fand

00:47:20.745 --> 00:47:22.025
ist halt, also einmal sagt er halt

00:47:22.025 --> 00:47:25.205
warum er das macht

00:47:25.205 --> 00:47:26.825
ist halt, dass er einen Punkt haben möchte

00:47:26.825 --> 00:47:28.785
sozusagen

00:47:28.785 --> 00:47:30.905
an dem alles andere hängt

00:47:30.905 --> 00:47:32.745
und GitHub macht das ja automatisch für ihn

00:47:32.745 --> 00:47:34.865
das alles zusammenzuführen, wenn er irgendwo dann halt

00:47:34.865 --> 00:47:36.965
die Issue-Nummer mit reinschreibt

00:47:36.965 --> 00:47:38.565
und

00:47:38.565 --> 00:47:41.025
der andere Punkt ist halt

00:47:41.025 --> 00:47:43.105
er hätte gerne dann daraus einen Pull-Request

00:47:43.105 --> 00:47:44.725
und dann sozusagen einen perfekten Commit

00:47:44.725 --> 00:47:46.585
der halt das dann halt irgendwie handelt

00:47:46.585 --> 00:47:48.585
wo er dann halt

00:47:48.585 --> 00:47:50.245
sozusagen alles zusammen hat, was

00:47:50.245 --> 00:47:52.465
Änderungen an Dokumentation,

00:47:52.625 --> 00:47:54.785
Test, Code gemacht werden muss,

00:47:54.985 --> 00:47:56.185
damit das halt irgendwie dann,

00:47:56.565 --> 00:47:57.545
damit er das Ding zumachen kann.

00:47:58.525 --> 00:47:58.825
Und

00:47:58.825 --> 00:48:02.625
dann ist der

00:48:02.625 --> 00:48:04.605
Issue sozusagen eigentlich auch so eine schöne

00:48:04.605 --> 00:48:05.545
Geschichte, um halt

00:48:05.545 --> 00:48:08.405
da reinzuschreiben, was dann

00:48:08.405 --> 00:48:10.525
überhaupt passieren soll. Auch eine gute Gelegenheit,

00:48:10.605 --> 00:48:11.965
um sich Gedanken zu machen, was man eigentlich machen will.

00:48:12.505 --> 00:48:14.485
Und allein, wenn man sich

00:48:14.485 --> 00:48:16.265
überlegt, okay, ich mache jetzt ein Issue auf und schreibe mir erstmal auf,

00:48:16.425 --> 00:48:18.345
was denn jetzt dazugehört, dann

00:48:18.345 --> 00:48:20.465
erledigen sich halt viele Sachen schon, weil man dann anfängt,

00:48:20.625 --> 00:48:22.305
so ein bisschen gezwungen ist, darüber nochmal nachzudenken

00:48:22.305 --> 00:48:24.325
und dann vieles sich dann auch schon wieder erledigt.

00:48:24.525 --> 00:48:26.285
Wenn man so anfängt nachzudenken, ist ja manchmal so ein bisschen

00:48:26.285 --> 00:48:28.485
nicht so

00:48:28.485 --> 00:48:30.345
schlecht. Oft ist es halt so, dass

00:48:30.345 --> 00:48:32.425
man das dann später merkt, wenn man irgendwie anfängt zu entwickeln

00:48:32.425 --> 00:48:34.285
und dann später merkt man so, oh, das hätte ich jetzt alles

00:48:34.285 --> 00:48:35.965
eigentlich gar nicht machen müssen. Aber

00:48:35.965 --> 00:48:38.405
also, das

00:48:38.405 --> 00:48:39.845
fand ich ganz nett.

00:48:41.025 --> 00:48:42.345
Vor allen Dingen, ich habe das jetzt zum Beispiel

00:48:42.345 --> 00:48:44.345
für einen Ding, ich habe so einen Podcast klein geschrieben.

00:48:44.465 --> 00:48:46.205
Ich weiß nicht genau, warum ich das jetzt gemacht habe.

00:48:47.265 --> 00:48:47.585
Wahrscheinlich.

00:48:47.585 --> 00:48:48.405
für diesen Ding, Jagni.

00:48:48.785 --> 00:48:50.665
Ich weiß nicht genau, wo ich den noch gemacht habe.

00:48:51.445 --> 00:48:53.545
Ja, Jagni könnte sein.

00:48:54.445 --> 00:48:55.545
Oder halt auch einfach

00:48:55.545 --> 00:48:57.365
so Standard-Jag-Shaving

00:48:57.365 --> 00:48:58.245
könnte auch gut sein.

00:48:59.065 --> 00:48:59.545
Ja, eben.

00:48:59.905 --> 00:49:01.565
Ich kann mir vielleicht gleich nochmal eine Abschweife

00:49:01.565 --> 00:49:02.285
nicht so unternehmen.

00:49:03.125 --> 00:49:06.345
Aber genau.

00:49:06.605 --> 00:49:07.745
Und da habe ich mir dann gedacht,

00:49:07.845 --> 00:49:09.845
okay, das war dann halt auch das Richtige.

00:49:10.505 --> 00:49:12.245
Das mit den Issues mache ich jetzt vielleicht auch mal so.

00:49:12.705 --> 00:49:13.925
Ich lege einfach schon mal ein paar Issues an.

00:49:13.925 --> 00:49:15.685
Wenn jemand vorbeikommt und da drauf guckt,

00:49:15.765 --> 00:49:16.785
dann kann er das vielleicht einfach so machen.

00:49:16.785 --> 00:49:18.345
einfach, damit Leute halt einen Ansatzpunkt haben.

00:49:18.785 --> 00:49:20.685
Wenn du halt einfach so eine Code-Basis hast, dann weißt du ja gar nicht,

00:49:20.765 --> 00:49:22.385
selbst wenn du dann irgendwas machen wollen würdest,

00:49:23.345 --> 00:49:24.265
was du dir jetzt da machen sollst.

00:49:24.285 --> 00:49:26.665
Die meisten Leute, die gehen ja nicht hin und gucken,

00:49:26.765 --> 00:49:28.365
oh, was gibt es denn schon für Git-Apps für coole

00:49:28.365 --> 00:49:30.725
Podcast-Clients? Oh, der ist auch total unfertig,

00:49:30.765 --> 00:49:32.565
das sieht doch cool aus, da gucke ich mir in die Intuos rein,

00:49:32.785 --> 00:49:33.705
was ich alles machen kann.

00:49:34.845 --> 00:49:37.285
Sondern die fangen dann ihren eigenen Podcast-Client an.

00:49:37.525 --> 00:49:38.385
Ja, so wie ich, das stimmt.

00:49:39.865 --> 00:49:41.065
Ja, genau.

00:49:41.185 --> 00:49:42.745
Vielleicht ist es ein bisschen zu enthusiastisch,

00:49:43.265 --> 00:49:44.365
optimistisch

00:49:45.765 --> 00:49:46.085
verblendet.

00:49:46.085 --> 00:49:46.405
aber

00:49:46.405 --> 00:49:50.065
wenn man das denn machen wollen

00:49:50.065 --> 00:49:52.205
würde, dann ist es natürlich die Wahrscheinlichkeit,

00:49:52.285 --> 00:49:54.225
dass jemand vorbeikommt und was macht, vielleicht viel höher,

00:49:54.425 --> 00:49:56.025
wenn da schon sowas ist. Ja, ich würde sagen,

00:49:56.065 --> 00:49:58.145
das macht tatsächlich dann Sinn, wenn das Projekt schon so ein

00:49:58.145 --> 00:49:59.985
bisschen Drive aufgenommen hat,

00:50:00.105 --> 00:50:02.085
ein paar Stars gesammelt hat und man dann

00:50:02.085 --> 00:50:03.925
denkt so, hey, es wäre jetzt vielleicht cool, so ein paar

00:50:03.925 --> 00:50:05.725
Nee, ich mache das vor allen Dingen

00:50:05.725 --> 00:50:08.145
deswegen halt auch, um das zu üben, weil

00:50:08.145 --> 00:50:10.045
wenn man es dann braucht, dann ist es ja

00:50:10.045 --> 00:50:12.085
immer schlecht. Wenn man das dann erst lernt.

00:50:12.265 --> 00:50:14.145
Genau. Man muss ja immer schon alles direkt perfekt

00:50:14.145 --> 00:50:17.385
können. Nicht perfekt, aber so ein bisschen besser als wie man vergrattert.

00:50:17.465 --> 00:50:17.905
Also perfekt.

00:50:19.565 --> 00:50:21.845
Ja, es ist manchmal nicht so einfach.

00:50:21.845 --> 00:50:23.805
Ja, also immer auf jeden Fall besser als alle.

00:50:24.065 --> 00:50:25.085
Ja, ja, ich verstehe das.

00:50:25.465 --> 00:50:26.405
Ah, ja.

00:50:26.665 --> 00:50:30.585
Ja, das ist halt aber tatsächlich so eins der Probleme, die wir in unserer Gesellschaft

00:50:30.585 --> 00:50:33.485
und unserer Kultur haben. Das sehen andere Leute aus anderen Ländern überhaupt nicht

00:50:33.485 --> 00:50:36.205
so. Die verstehen das überhaupt nicht, warum wir da so völlig bescheuert sind.

00:50:36.305 --> 00:50:39.485
Und denen ist das, also die können das wirklich nicht anbeziehen.

00:50:40.005 --> 00:50:41.425
Ich finde das auch ein bisschen anstrengend immer.

00:50:41.425 --> 00:50:43.765
und ich finde das auch nicht so produktiv

00:50:43.765 --> 00:50:45.385
und es ist tatsächlich nicht so

00:50:45.385 --> 00:50:46.185
Business-optimiert.

00:50:47.145 --> 00:50:47.765
Ja, das mag sein.

00:50:48.325 --> 00:50:51.425
Aber zu Glück muss ich auch nicht auf Business-Ziele

00:50:51.425 --> 00:50:51.785
optimieren.

00:50:52.505 --> 00:50:53.525
Ja, gut für dich, Jochen.

00:50:55.905 --> 00:50:56.925
Ja, genau.

00:50:57.825 --> 00:50:58.885
Ja, genau.

00:50:59.065 --> 00:51:00.165
Ich wollte einfach mal ein bisschen

00:51:00.165 --> 00:51:01.725
Übungen zu schreiben und

00:51:01.725 --> 00:51:04.065
ja, das mache ich jetzt auch so ein bisschen.

00:51:04.065 --> 00:51:05.865
Und tatsächlich, ich finde eigentlich

00:51:05.865 --> 00:51:07.905
Podcast-Client ist, also habe ich schon erzählt, warum ich das

00:51:07.905 --> 00:51:10.025
interessant finde oder was mich da so dran angesprungen hat.

00:51:11.425 --> 00:51:34.225
Der Grund, warum ich das mache, ist, dass man das ja sowieso irgendwie braucht. Ich habe das Gefühl, ich muss es sowieso früher oder später irgendwann tun. Und der Grund, warum ich das tun muss, ist, weil da ja so viele schöne andere Dinge dranhängen, wie zum Beispiel, wenn du jetzt wissen möchtest, wie zum Beispiel ein Podcast aussieht in einem Podcast-Rosting.

00:51:34.225 --> 00:51:37.345
Dann willst du den vielleicht importieren

00:51:37.345 --> 00:51:39.405
Wie machst du das? Naja, du sagst halt, hier ist mein Feed

00:51:39.405 --> 00:51:40.245
Importier doch mal

00:51:40.245 --> 00:51:42.505
Feed importieren irgendwo her

00:51:42.505 --> 00:51:45.125
und einen Client haben, der irgendwie sagt

00:51:45.125 --> 00:51:46.945
Das ist fast das gleiche

00:51:46.945 --> 00:51:48.305
Das ist fast das gleiche

00:51:48.305 --> 00:51:50.085
Ja, fast

00:51:50.085 --> 00:51:51.405
Und überhaupt

00:51:51.405 --> 00:51:54.045
Vielleicht willst du einen Katalog haben

00:51:54.045 --> 00:51:57.205
Da musst du auch die

00:51:57.205 --> 00:51:58.125
Dinger parsen können

00:51:58.125 --> 00:52:00.645
Podcast Client haben ist fast das gleiche

00:52:00.645 --> 00:52:02.745
Ganz interessante Geschichte und dann wollte ich mal gucken

00:52:02.745 --> 00:52:32.725
und Jochen unterhalten sich über die Programmiersprache Python

00:52:32.745 --> 00:52:33.625
verwendet habe, ist Butt.

00:52:34.605 --> 00:52:36.545
Das verwende ich auch immer noch. Ich finde das super.

00:52:36.825 --> 00:52:38.545
Ja, so ist es. Das ist auch ganz gut.

00:52:38.945 --> 00:52:39.565
Fast, Modern Unix.

00:52:40.185 --> 00:52:42.565
Ja, aber bei mir

00:52:42.565 --> 00:52:44.565
man kann es konfigurieren,

00:52:44.645 --> 00:52:46.645
aber in der Default-Konfiguration macht es halt

00:52:46.645 --> 00:52:48.665
irgendwie Zeilennummern davor. Ja, das kann man nicht mehr

00:52:48.665 --> 00:52:50.505
copy und pasten, hast du recht. Das heißt, da kann man auch nicht mehr

00:52:50.505 --> 00:52:52.565
pipen, wie man das mit Cut gewohnt ist. Und deswegen

00:52:52.565 --> 00:52:54.505
muss man die Konfiguration anpassen. Das sind zwei

00:52:54.505 --> 00:52:55.785
Environment Variables, die man testen muss.

00:52:56.605 --> 00:52:58.285
Und dann muss man machen,

00:52:58.285 --> 00:52:59.205
was man haben möchte.

00:53:00.265 --> 00:53:02.305
Also eine für den Style und eine für die Teilnummern

00:53:02.305 --> 00:53:08.285
und dann kann man das nach wie vor in einen Pipes einsetzen und kann das dann alias auch auf Cut und dann kann man Butt nehmen für Mitzeichnungen.

00:53:09.705 --> 00:53:11.725
Ja, aber wie gesagt, wenn man

00:53:11.725 --> 00:53:16.425
Rich nimmt, dann ist das halt, also Rich CLI und auf der Kommandozeile ist es dann einfach nur

00:53:16.425 --> 00:53:19.745
Rich, dann muss man das eben nicht machen, sondern es funktioniert einfach so.

00:53:20.305 --> 00:53:24.125
Und es kann auch ein bisschen mehr syntax-highlighting-Geschichten machen als Butt.

00:53:25.065 --> 00:53:27.425
Also insofern, ja, kann man ja mal ausprobieren.

00:53:27.425 --> 00:53:31.125
Also ich mag ja Rich auch, ich mache mit Rich auch

00:53:31.125 --> 00:53:33.285
Konsolenanwendung teilweise.

00:53:34.125 --> 00:53:35.065
Ja, gibt es jetzt auch.

00:53:35.745 --> 00:53:37.305
Nein, das sage ich jetzt nicht.

00:53:38.405 --> 00:53:39.505
Da müsst ihr jetzt warten

00:53:39.505 --> 00:53:41.205
bis zum Schluss, dann picke ich nämlich das

00:53:41.205 --> 00:53:41.805
stattdessen.

00:53:44.625 --> 00:53:45.645
Und genau.

00:53:46.205 --> 00:53:47.365
Da dachte ich, so kommen halt ein paar

00:53:47.365 --> 00:53:49.025
Sachen zusammen, die das aus unterschiedlichen

00:53:49.025 --> 00:53:51.225
Gesichtspunkten interessant machen. Deswegen habe ich damit mal

00:53:51.225 --> 00:53:51.565
angefangen.

00:53:54.125 --> 00:53:55.165
Ich habe, genau, also

00:53:55.165 --> 00:53:57.205
eine der Geschichten von diesem Bootstrap-Ding

00:53:57.205 --> 00:53:59.085
und Jungle-Crispy-Forms und so muss man irgendwie weg.

00:53:59.165 --> 00:54:00.725
Ich habe jetzt auch, das habe ich relativ

00:54:00.725 --> 00:54:03.525
aus anderen Gründen

00:54:03.525 --> 00:54:05.085
und dann das jetzt nicht mehr in der privaten

00:54:05.085 --> 00:54:06.625
Praxis viel mehr zu tun gehabt.

00:54:07.245 --> 00:54:08.925
Es gibt auch irgendein, ich weiß nicht mehr,

00:54:09.065 --> 00:54:10.605
ob das mit Crispyforms war oder sowas,

00:54:10.905 --> 00:54:12.885
wo man einen Hook reinbauen kann

00:54:12.885 --> 00:54:14.485
und dann halt die Forms mit Tailwind benutzen kann.

00:54:15.465 --> 00:54:16.905
Ja, also ich würde sagen,

00:54:17.185 --> 00:54:18.625
das wäre auch interessant, wenn da jemand

00:54:18.625 --> 00:54:19.385
Empfehlungen zu hat.

00:54:20.985 --> 00:54:22.945
Crispyform habe ich auch immer so verwendet. Ich habe es nie so genau

00:54:22.945 --> 00:54:24.245
angeguckt, sondern immer nur so benutzt.

00:54:24.985 --> 00:54:26.885
Und es hat ja einige ganz nette

00:54:26.885 --> 00:54:28.825
Geschichten und es macht einige Dinge ja

00:54:28.825 --> 00:54:32.825
einfacher. Und jetzt habe ich da so mal tief reingeguckt und ich muss sagen, das muss alles weg.

00:54:33.905 --> 00:54:36.765
Das geht nicht. Das ist alles

00:54:36.765 --> 00:54:40.705
ganz schrecklich. Also das ist halt irgendwie langsam.

00:54:40.885 --> 00:54:44.725
Man kriegt es auch nicht schnell, weil es ist furchtbar. Und das ist

00:54:44.725 --> 00:54:48.165
alles so. Also das ist, nee. Also ich

00:54:48.165 --> 00:54:52.685
denke, man sollte das anders machen. Ich weiß jetzt auch noch nicht wie, aber man muss das irgendwie

00:54:52.685 --> 00:54:56.765
anders machen. Das geht so nicht. Und das war mir nicht so klar vorher, als ich

00:54:56.765 --> 00:54:57.505
noch nicht reingeguckt hat.

00:54:57.505 --> 00:54:58.365
Das hätte ich auch schon nehmen.

00:55:01.745 --> 00:55:03.345
Irgendwas mit Forms muss man sich nochmal ausdenken.

00:55:03.725 --> 00:55:04.525
Ja, wobei,

00:55:04.945 --> 00:55:08.705
das ist halt das Problem.

00:55:08.885 --> 00:55:09.045
Ich meine,

00:55:09.465 --> 00:55:10.245
wenn du das jetzt so machst,

00:55:10.445 --> 00:55:13.065
dass du die CSS-Klassen in HTML setzt und so,

00:55:13.305 --> 00:55:14.665
dann hast du halt beim Rendern ein Problem,

00:55:14.785 --> 00:55:16.345
weil dann musst du das nämlich alles irgendwie setzen.

00:55:17.945 --> 00:55:19.505
Wieso? Du machst ein Template für einen...

00:55:20.545 --> 00:55:21.065
Ja, weil

00:55:21.065 --> 00:55:23.625
das ist ja genau das Problem, das CrispyForms löst.

00:55:23.925 --> 00:55:24.925
Du hast halt eine Form,

00:55:24.925 --> 00:55:26.245
jetzt kommen die Formfehler zurück,

00:55:26.245 --> 00:55:27.925
wie machst du das so, dass

00:55:27.925 --> 00:55:30.645
jetzt deine Fehler ordentlich, dass da so ein roter

00:55:30.645 --> 00:55:31.585
Klingel drumrum ist?

00:55:31.765 --> 00:55:34.305
Ja, du benutzt den Default, den machst du zum Beispiel mit

00:55:34.305 --> 00:55:36.045
Crispy Template, Crispy Table gibt es auch

00:55:36.045 --> 00:55:38.445
und dann, also ich kann nicht sagen,

00:55:38.485 --> 00:55:40.225
dass das auch langsam ist, weil das auch Crispy Form ist,

00:55:40.445 --> 00:55:41.945
aber dann machst du halt einfach

00:55:41.945 --> 00:55:43.845
in deinem Template, überschreibst dann halt den Default

00:55:43.845 --> 00:55:46.125
und hast dann

00:55:46.125 --> 00:55:46.805
einen schönen Style.

00:55:46.905 --> 00:55:50.505
Du musst es ja in das HTML rausrendern, weil die Klassen müssen ja im HTML drin sein.

00:55:50.505 --> 00:55:52.085
Das wird dann da reingeredert,

00:55:52.605 --> 00:55:54.345
wenn du einfach deine Form erzeugst und die Form

00:55:54.345 --> 00:55:57.205
gibt es im Flanko View.

00:55:58.245 --> 00:56:01.325
Also wie passiert das denn zum Beispiel, wenn da halt die Fehler zurückgegeben werden?

00:56:01.785 --> 00:56:04.285
Du hast jetzt eine Form, jetzt validiert das nicht, sondern das sind irgendwie Fehler.

00:56:04.585 --> 00:56:08.305
Dann nimmt dir die Fehlerklasse und in der Fehlerklasse hängt ein HTML-Element mit dran.

00:56:08.425 --> 00:56:12.625
Ja, aber das ist nicht einfach irgendwie eine Fehlerklasse.

00:56:13.325 --> 00:56:15.525
Doch, das ist doch...

00:56:15.525 --> 00:56:17.085
Da wird ganz kompliziertes Zeug gemacht.

00:56:17.405 --> 00:56:19.965
Da werden diverse Klassen hinzugefügt, diverse Sachen geändert.

00:56:20.525 --> 00:56:22.885
Und das musst du auch machen, sonst geht das nicht gut aus hinterher.

00:56:22.885 --> 00:56:25.325
Ja, aber du kannst ja überschreiben, glaube ich.

00:56:25.445 --> 00:56:27.185
Ich hatte aber irgendwie mal ein, zwei Sachen

00:56:27.185 --> 00:56:29.465
customised, ging. Ja, man kann so ein bisschen

00:56:29.465 --> 00:56:31.585
customisen, aber naja, okay, keine Ahnung.

00:56:31.925 --> 00:56:33.425
Also wie gesagt, dieses Problem hast du,

00:56:33.505 --> 00:56:35.185
wenn du das HTML verändern

00:56:35.185 --> 00:56:37.525
musst, wenn du jetzt einen Fehler rennst.

00:56:37.825 --> 00:56:39.405
Dann musst du das irgendwie machen, wie auch immer

00:56:39.405 --> 00:56:40.845
du das machst, aber du musst es ja irgendwie tun.

00:56:41.225 --> 00:56:43.365
Und das ist nicht so, dass da irgendwas in Django drin wäre, was dir

00:56:43.365 --> 00:56:45.025
dabei hilft, sondern da musst du halt dann irgendwie

00:56:45.025 --> 00:56:47.365
Crispy Forms nehmen oder irgendwas anderes, was das halt für dich

00:56:47.365 --> 00:56:49.365
macht. Und das ist halt nicht so

00:56:49.365 --> 00:56:51.105
ganz einfach. Während wenn du jetzt, sagen wir so,

00:56:51.105 --> 00:57:21.085
und Jochen unterhalten sich über die Programmiersprache Python

00:57:21.105 --> 00:57:22.865
und zahlst du das in einem CSS und fertig.

00:57:24.205 --> 00:57:25.345
Das macht es dann halt

00:57:25.345 --> 00:57:27.245
deutlich einfacher. Aber ich weiß es noch nicht.

00:57:27.285 --> 00:57:28.645
Ich muss mal gucken. Ich habe keine Ahnung.

00:57:29.625 --> 00:57:30.565
Ich werde mich damit mal beschäftigen.

00:57:31.165 --> 00:57:32.725
Da muss man so ein Template wieder bauen für

00:57:32.725 --> 00:57:33.485
HTMLX und Django.

00:57:34.265 --> 00:57:35.785
Also eine Geschichte

00:57:35.785 --> 00:57:38.725
ist halt, ich weiß nicht,

00:57:38.765 --> 00:57:39.965
SQL Model, sagt ihr ja.

00:57:40.985 --> 00:57:42.805
Es gab jetzt auch letztens eine Episode

00:57:42.805 --> 00:57:44.705
zu irgendwie wieder auf

00:57:44.705 --> 00:57:45.385
TalkPython2Me.

00:57:46.205 --> 00:57:48.565
Und das versuche ich ja gerade zu entfernen.

00:57:48.565 --> 00:57:49.465
Zum Beispiel aus

00:57:49.465 --> 00:57:51.605
aus dem

00:57:51.605 --> 00:57:52.185
Fast Deploy.

00:57:53.425 --> 00:57:54.385
Und der Grund ist,

00:57:55.705 --> 00:57:56.985
weshalb ich das versuche zu machen,

00:57:57.205 --> 00:57:58.965
ist, dass ich

00:57:58.965 --> 00:58:01.265
versuche, mal das so ein bisschen

00:58:01.265 --> 00:58:02.465
umzuorganisieren.

00:58:05.465 --> 00:58:07.125
Dass halt so ein bisschen Software-Architektur

00:58:07.125 --> 00:58:08.725
reinkommt. Ich weiß, das ist auch nicht ohne Gittermann Sache.

00:58:08.905 --> 00:58:10.345
Ich habe auch früher mal schon gedacht,

00:58:10.405 --> 00:58:10.885
Software-Architektur.

00:58:11.365 --> 00:58:15.285
Das schnürt mir schon, wenn ich das Wort ausspreche,

00:58:15.365 --> 00:58:16.585
irgendwie die Krawatte, die Luft ab.

00:58:17.765 --> 00:58:18.665
Als Architekt.

00:58:18.665 --> 00:58:19.445
Ein feiner Herr.

00:58:19.465 --> 00:58:20.785
Ja, geil. Aber

00:58:20.785 --> 00:58:23.485
vielleicht gibt es Situationen, in denen das doch nicht so

00:58:23.485 --> 00:58:25.485
verkehrt ist und ich wollte es einfach mal so ein bisschen

00:58:25.485 --> 00:58:27.505
ausprobieren und deswegen mache ich das da jetzt

00:58:27.505 --> 00:58:29.225
und genau,

00:58:29.465 --> 00:58:31.385
da ist ja immer so...

00:58:31.385 --> 00:58:33.285
Was ist denn Architektur, Softwarearchitektur überhaupt?

00:58:33.805 --> 00:58:35.225
Naja, es ist im Wesentlichen

00:58:35.225 --> 00:58:37.365
quasi die Beschreibung

00:58:37.365 --> 00:58:38.705
für die Tätigkeit, die man halt

00:58:38.705 --> 00:58:40.565
ausübt, wenn man

00:58:40.565 --> 00:58:43.345
Software versucht zu modularisieren, also

00:58:43.345 --> 00:58:45.385
so in Teile zu zerlegen, dass man nur noch

00:58:45.385 --> 00:58:46.945
irgendwie, dass die

00:58:48.205 --> 00:58:49.065
Gesamtkomplexität nur noch

00:58:49.065 --> 00:58:53.305
dominiert wird von der Komplexität des kompliziertesten, komplexesten

00:58:53.305 --> 00:58:56.005
Moduls und nicht mehr alles mit allem zusammenhängt.

00:58:56.845 --> 00:59:00.445
Und die Art, was man macht, wenn man das jetzt tut und versucht, das klein zu hauen,

00:59:01.005 --> 00:59:03.005
das nennt man Softwarearchitektur, sage ich jetzt mal so.

00:59:04.025 --> 00:59:08.825
Das wäre jetzt meine aus der hohlen Hand Definition. Es gibt da Leute, die versucht haben,

00:59:08.885 --> 00:59:12.765
das ernsthaft zu definieren, wie so Martin Fowler und so, die würden sowas sagen wie

00:59:12.765 --> 00:59:15.505
Softwarearchitektur sind alle die

00:59:15.505 --> 00:59:19.585
grundlegenden und schwer änderbaren Entscheidungen, die

00:59:19.585 --> 00:59:23.705
ich weiß nicht, ob ich die Definition richtig zusammenkriege,

00:59:24.165 --> 00:59:27.445
die Einfluss dann halt auf das Projekt haben und die dazu führen,

00:59:27.585 --> 00:59:31.565
ob man jetzt irgendwie Dinge schneller ändern kann oder nicht. Kann man auch kritisieren,

00:59:32.065 --> 00:59:35.345
es ist so wichtig, ob man Code hinterher ändern kann oder nicht,

00:59:35.705 --> 00:59:39.285
was sind das denn eigentlich, wenn man weiß, dass es wichtig ist, dann hat man ja schon den Teil der

00:59:39.285 --> 00:59:43.545
Softwarearchitektur irgendwie erledigt im Grunde, man weiß halt vor allem bei den Entscheidungen halt dummerweise

00:59:43.545 --> 00:59:45.545
leider vorher meistens nie, ob die jetzt wichtig sind

00:59:45.545 --> 00:59:47.705
oder nicht. Aber das ist halt

00:59:47.705 --> 00:59:49.245
eine Definition. Ich glaube, ich habe die von,

00:59:49.805 --> 00:59:51.605
die haben auch andere Leute so ähnlich

00:59:51.605 --> 00:59:52.385
auch schon gebracht.

00:59:54.865 --> 00:59:55.605
Mir gefällt

00:59:55.605 --> 00:59:57.345
die, irgendwie, wie zerlegt man

00:59:57.345 --> 00:59:59.685
eigentlich ein Programm in kleinere Teile

00:59:59.685 --> 01:00:00.545
ein bisschen besser.

01:00:01.745 --> 01:00:03.345
Aber, ja gut, ist halt

01:00:03.345 --> 01:00:04.945
ein bisschen schmackser. Aber im Grunde irgendwie so,

01:00:05.245 --> 01:00:07.185
man kann sich das auch vorstellen, ja, wie wenn man ein Haus

01:00:07.185 --> 01:00:09.625
da Eisvektor hat, dann kann man auch für ein Software-Ding

01:00:09.625 --> 01:00:11.525
Eisvektor haben. Also Microsoft

01:00:11.525 --> 01:00:12.965
ist das für so Häuser breitstellen. Also

01:00:12.965 --> 01:00:14.345
auf seinem eigenen.

01:00:14.825 --> 01:00:16.625
Microservices wäre halt ein

01:00:16.625 --> 01:00:18.845
Ding, wie man, also aber Architektur

01:00:18.845 --> 01:00:20.225
bezieht sich jetzt nicht auf

01:00:20.225 --> 01:00:22.965
den IT-Teil, nicht auf das System,

01:00:23.945 --> 01:00:24.645
sondern

01:00:24.645 --> 01:00:26.545
eher auf die Software. Also

01:00:26.545 --> 01:00:28.685
du kannst natürlich auch, ich meine, das sind halt

01:00:28.685 --> 01:00:30.785
eher so die Dinge, wo ich das Gefühl habe, das geht dann halt schief.

01:00:31.365 --> 01:00:31.985
Wenn Leute

01:00:31.985 --> 01:00:34.285
das Software-Problem,

01:00:34.785 --> 01:00:36.365
weil sie es irgendwie nicht lösen können,

01:00:36.925 --> 01:00:38.705
das sieht man übrigens ganz oft, also

01:00:38.705 --> 01:00:40.745
mir begegnet das häufig und es ist

01:00:40.745 --> 01:00:41.185
furchtbar.

01:00:41.185 --> 01:00:44.845
meistens, also die Konsequenzen sind meistens

01:00:44.845 --> 01:00:45.325
furchtbar,

01:00:46.085 --> 01:00:49.105
dass Leute halt diese Modularisierungsding

01:00:49.105 --> 01:00:50.905
in der Software nicht gebacken kriegen, aus welchen Gründen

01:00:50.905 --> 01:00:52.785
auch immer, und dann

01:00:52.785 --> 01:00:54.825
hingehen und das versuchen auf einer anderen Ebene

01:00:54.825 --> 01:00:56.785
zu lösen. Also auf der Ebene zum Beispiel, was man

01:00:56.785 --> 01:00:59.105
häufig sieht, ist, dass die Leute dann versuchen, das organisatorisch

01:00:59.105 --> 01:01:01.065
zu lösen, oder dass Leute versuchen, es mit

01:01:01.065 --> 01:01:03.045
IT-Geschichten zu lösen,

01:01:03.165 --> 01:01:05.185
irgendwie, wir nehmen jetzt die Cloud, oder

01:01:05.185 --> 01:01:07.165
dass Leute es mit Microservices

01:01:07.165 --> 01:01:09.105
versuchen, und all diese

01:01:09.105 --> 01:01:11.105
Ansätze sind eigentlich immer, das scheitert immer ganz schräg.

01:01:11.185 --> 01:01:12.885
ganz spektakulär, weil

01:01:12.885 --> 01:01:15.685
an dem grundsätzlichen Problem

01:01:15.685 --> 01:01:17.765
ändert sich dadurch nichts und du hast dir das Leben

01:01:17.765 --> 01:01:19.185
halt irgendwie gerade nochmal

01:01:19.185 --> 01:01:21.745
in Größenordnung schwerer gemacht, dadurch, dass du jetzt

01:01:21.745 --> 01:01:22.985
zum Beispiel...

01:01:22.985 --> 01:01:25.505
Ein Park, ein Fuhrpark,

01:01:25.685 --> 01:01:27.645
ein Zoo...

01:01:27.645 --> 01:01:29.465
Ja, gerade Microservice gab es auch

01:01:29.465 --> 01:01:31.425
letztens, habe ich auch letztens in einem Podcast

01:01:31.425 --> 01:01:33.545
darüber gehört, es gibt

01:01:33.545 --> 01:01:35.385
ein Buch, das irgendwie alle immer referenzieren, was

01:01:35.385 --> 01:01:36.185
Microservice angeht

01:01:36.185 --> 01:01:39.545
und der

01:01:39.545 --> 01:01:40.825
sprach dann halt auch so drüber,

01:01:41.525 --> 01:01:43.445
der hat das Buch geschrieben und meinte so, ich bin ein bisschen

01:01:43.445 --> 01:01:45.505
unglücklich, ich gelte jetzt immer als der Experte für Microservices,

01:01:45.725 --> 01:01:46.945
jetzt, weil ich dieses Buch geschrieben habe, na gut.

01:01:47.785 --> 01:01:49.185
Und der meinte,

01:01:49.305 --> 01:01:51.265
er macht halt viel Consulting irgendwie und

01:01:51.265 --> 01:01:53.365
wird eigentlich immer dazu gerufen, wenn irgendwelche

01:01:53.365 --> 01:01:55.205
Leute auf die Idee gekommen sind, wir müssen jetzt mal auf

01:01:55.205 --> 01:01:56.865
Microsoft-Architektur umsteigen.

01:01:57.145 --> 01:01:59.325
Und dann holt man sich halt irgendjemanden dazu, der dann

01:01:59.325 --> 01:02:01.385
sagen soll, warum das irgendwie alles eine super Idee war.

01:02:02.065 --> 01:02:03.365
Und dann sitzt er dann immer

01:02:03.365 --> 01:02:04.605
und meint so, hm,

01:02:05.305 --> 01:02:07.445
das ist vielleicht gar nicht so eine gute Idee in eurem Fall.

01:02:08.785 --> 01:02:09.265
Und das

01:02:09.265 --> 01:02:13.965
macht ihn halt nicht unbedingt beliebt, aber er versucht das dann irgendwie so diplomatisch zu verpacken.

01:02:14.165 --> 01:02:17.305
Aber ganz oft ist es halt so, dass Leute das dann so probieren,

01:02:17.945 --> 01:02:21.285
aber eigentlich sollte man vielleicht andersrum anfangen und eher Monolith nehmen

01:02:21.285 --> 01:02:25.885
und dann halt, wenn man dann auf bestimmte Probleme stößt, die man anders nicht mehr lösen kann,

01:02:26.025 --> 01:02:30.485
dann Microservice ist dann vielleicht eine Möglichkeit unter Umständen.

01:02:31.065 --> 01:02:34.965
Aber damit anzufangen, ohne zu wissen, was man jetzt eigentlich machen möchte,

01:02:35.065 --> 01:02:36.125
das ist vielleicht nicht so eine gute Idee.

01:02:36.125 --> 01:02:37.925
und das ist eigentlich, also wenn man jetzt halt

01:02:37.925 --> 01:02:40.105
vorher schon ein Problem mit der Modularisierung

01:02:40.105 --> 01:02:42.205
hatte und dann auch noch

01:02:42.205 --> 01:02:44.165
Microservices dazu nimmt, dann hast du halt hinterher

01:02:44.165 --> 01:02:46.145
einen Distributed Ball of Mud sozusagen.

01:02:47.365 --> 01:02:48.205
Also das Problem

01:02:48.205 --> 01:02:48.925
an

01:02:48.925 --> 01:02:52.505
Modularisierung

01:02:52.505 --> 01:02:54.125
kann sein, dass man verschiedene Stellen hat, an denen man

01:02:54.125 --> 01:02:54.905
Dinge pflegen muss?

01:02:56.685 --> 01:02:58.465
Ne, Modularisierung ist eigentlich eine gute Sache.

01:02:59.325 --> 01:03:00.265
Aber wenn nicht, du hast gerade

01:03:00.265 --> 01:03:01.445
ein Beispiel gesagt, du hast gesagt,

01:03:01.525 --> 01:03:13.768
das ist gut wenn man das hinkriegt das ist gut Wenn man es nicht hinkriegt ist doof aufzunehmen Also wenn du es nicht schaffst sozusagen Dinge voneinander zu trennen Wobei jetzt auch nicht Trennung beliebig super ist

01:03:13.968 --> 01:03:17.788
Natürlich kann man das auch falsch machen, in dem Sinne, dass man das an den falschen Stellen trennt,

01:03:17.948 --> 01:03:21.587
in der falschen Granulatität trennt. Das ist natürlich nicht schlecht.

01:03:22.448 --> 01:03:26.228
Und wenn man jetzt sozusagen es aber gar nicht schafft, das zu trennen

01:03:26.228 --> 01:03:29.488
und sagt, wir machen jetzt aber Microservices, um die Sachen, wo wir es falsch getrennt haben,

01:03:29.488 --> 01:03:31.908
nochmal zu zementieren, indem wir es auf andere Rechner packen.

01:03:32.688 --> 01:03:34.468
und in andere Repositories und so

01:03:34.468 --> 01:03:36.668
und dazwischen halt jetzt

01:03:36.668 --> 01:03:38.668
Schnittstellen haben, die wir schlecht ändern können und

01:03:38.668 --> 01:03:40.448
die, wo wir Fehlerbehandlung machen müssen

01:03:40.448 --> 01:03:42.567
und das ist alles ganz, ganz schrecklich, dann

01:03:42.567 --> 01:03:44.508
ist das halt noch viel schlimmer als vorher.

01:03:44.607 --> 01:03:46.488
Also wenn du vorher das Problem hattest, du hast es nur in deiner

01:03:46.488 --> 01:03:48.528
in deinen Funktionsaufrufen

01:03:48.528 --> 01:03:50.408
nicht geschafft, das ordentlich zu trennen

01:03:50.408 --> 01:03:52.327
und jetzt hast du es halt irgendwie

01:03:52.327 --> 01:03:53.768
diese Funktionsaufrufe verteilt,

01:03:55.067 --> 01:03:56.327
aber du hast es

01:03:56.327 --> 01:03:58.428
quasi nicht wirklich modularisiert,

01:03:58.508 --> 01:04:00.228
sondern du hast ja Abhängigkeiten immer noch,

01:04:00.948 --> 01:04:02.408
dann hast du danach

01:04:02.408 --> 01:04:03.908
ein viel schwereres Problem als vorher.

01:04:05.107 --> 01:04:06.607
Du hast es nur dann eine ganze Zeit

01:04:06.607 --> 01:04:08.567
lang nicht mehr gemerkt, weil da warst

01:04:08.567 --> 01:04:10.428
du damit beschäftigt, irgendwie Kubernetes

01:04:10.428 --> 01:04:12.607
zu konfigurieren, so ein halbes Jahr oder so.

01:04:13.008 --> 01:04:14.208
Und dann nach einem halben Jahr fällt dir auf,

01:04:14.327 --> 01:04:16.208
das Problem ist eigentlich noch viel schlimmer als vorher.

01:04:17.008 --> 01:04:17.908
Und das ist halt dann,

01:04:18.188 --> 01:04:20.388
dann bist du in einer doofen Position, weil da

01:04:20.388 --> 01:04:21.548
kommst du dann auch nicht mehr so leicht raus.

01:04:22.548 --> 01:04:24.087
Und ja, das ist halt

01:04:24.087 --> 01:04:27.928
genau, ja, das ist halt

01:04:27.928 --> 01:04:30.228
ja, Architektur,

01:04:30.367 --> 01:04:32.028
genau, also jedenfalls

01:04:32.028 --> 01:04:34.748
Damit beschäftige ich mich halt auch gerade so ein bisschen.

01:04:34.928 --> 01:04:37.127
Ich meine, da müsste man mal drüber reden, wenn ich da irgendwie mehr zu weiß.

01:04:37.668 --> 01:04:39.008
Ich glaube, da müsste man auch eine eigene Folge zu machen.

01:04:40.648 --> 01:04:43.048
Oder auch Microservice versus Modulit.

01:04:45.048 --> 01:04:46.607
Wenn ihr das auskennt,

01:04:47.228 --> 01:04:47.888
dann sagen wir uns Bescheid.

01:04:47.888 --> 01:04:48.408
Hallo, ich heiße Martin.

01:04:50.067 --> 01:04:50.468
Genau.

01:04:51.408 --> 01:04:53.748
Was ich halt gerade versuche, ist halt mich mit diesem

01:04:53.748 --> 01:04:56.087
Was macht man denn eigentlich so

01:04:56.087 --> 01:04:57.688
üblicherweise, wenn man jetzt eine

01:04:57.688 --> 01:04:59.648
Architektur, wenn man überhaupt so ein bisschen

01:04:59.648 --> 01:05:00.948
Architektur haben möchte,

01:05:00.948 --> 01:05:03.168
wie macht man das denn?

01:05:03.488 --> 01:05:05.508
Und zum Beispiel, was ich, ein schönes

01:05:05.508 --> 01:05:07.408
Zitat, was es halt in dem Buch, diesem

01:05:07.408 --> 01:05:09.408
Software-Energischer-Patterns

01:05:09.408 --> 01:05:11.488
was Python-Buch, das ich da so lese,

01:05:11.688 --> 01:05:13.408
zu lese, gibt,

01:05:13.508 --> 01:05:13.888
ist halt,

01:05:15.327 --> 01:05:17.648
und ja, das fällt mir halt dazu,

01:05:18.327 --> 01:05:19.567
dann auch allen,

01:05:19.668 --> 01:05:20.268
wenn man sagt, ja, super,

01:05:20.768 --> 01:05:23.327
ich kenne das, ganz viele Leute,

01:05:23.327 --> 01:05:24.708
ah, super, Microsoft ist voll gut,

01:05:24.827 --> 01:05:26.127
oder sonst wie, irgendwie,

01:05:26.867 --> 01:05:27.347
ja,

01:05:27.347 --> 01:05:31.708
das hatte mal, glaube ich, der Autor von

01:05:31.708 --> 01:05:33.188
von Clojure

01:05:33.188 --> 01:05:35.087
der Programmiersprache

01:05:35.087 --> 01:05:35.847
Rick Hickey

01:05:35.847 --> 01:05:39.708
hat das gesagt

01:05:39.708 --> 01:05:40.627
und hatte so, ja

01:05:40.627 --> 01:05:43.648
es gibt immer unter Ökonomen

01:05:43.648 --> 01:05:45.208
den Witz, ja, so Ökonomen kennen

01:05:45.208 --> 01:05:47.268
wie den Preis von allem, aber den Wert von nix

01:05:47.268 --> 01:05:49.548
und für Softwareentwickler

01:05:49.548 --> 01:05:51.327
kann man das halt auch anpassen und sagen, ja

01:05:51.327 --> 01:05:52.567
Softwareentwickler, die kennen halt

01:05:52.567 --> 01:05:55.468
irgendwie die Vorteile von

01:05:55.468 --> 01:05:56.968
oder die Features,

01:05:57.228 --> 01:05:59.248
aber sie kennen halt irgendwie

01:05:59.248 --> 01:06:01.288
die Trade-offs und die Nachteile von Nix.

01:06:02.048 --> 01:06:02.688
Und das ist halt,

01:06:03.188 --> 01:06:05.347
das ist so ein bisschen, da ist was Wahres

01:06:05.347 --> 01:06:06.627
dran und

01:06:06.627 --> 01:06:09.548
zum Beispiel

01:06:09.548 --> 01:06:10.808
eben, das ist da,

01:06:11.808 --> 01:06:13.168
wir hatten ja letztes Mal diese

01:06:13.168 --> 01:06:14.648
Fast-API-Episode oder so.

01:06:17.228 --> 01:06:17.468
Also,

01:06:18.988 --> 01:06:19.408
das ist so,

01:06:19.648 --> 01:06:20.708
ich weiß nicht, würde

01:06:20.708 --> 01:06:22.928
man, auch

01:06:22.928 --> 01:06:24.567
wenn ich das so, auch bei

01:06:24.567 --> 01:06:28.087
bei TalkPython-Termin oder so, wenn ich das höre. Ich höre immer so, ja, das ist alles voll gut und so.

01:06:29.208 --> 01:06:32.208
Aber es gibt ja auch Nachteile, die das hat, wenn man das jetzt so macht.

01:06:32.508 --> 01:06:36.048
Also wenn man jetzt zum Beispiel sagt, man nimmt jetzt FastAPI, nehmen wir mal ein paar Beispiele,

01:06:36.148 --> 01:06:40.248
du nimmst halt FastAPI, SQL-Model und so und

01:06:40.248 --> 01:06:44.388
alles funktioniert mehr oder weniger automagisch. Was ist der große

01:06:44.388 --> 01:06:45.248
Nachteil an dieser Geschichte?

01:06:48.648 --> 01:06:52.408
Erzähl. Tja, da würde ich sagen, eben, da bist du schon

01:06:52.408 --> 01:06:55.768
Typischer Softwareentwickler, die meisten würden sagen, ja, das hat doch keinen Nachteil.

01:06:56.627 --> 01:06:59.168
Es hat halt schon Nachteile und der Nachteil ist halt,

01:07:00.028 --> 01:07:04.228
wenn du halt von SQL-Model erbst, dann kannst du das nie wieder ändern.

01:07:04.587 --> 01:07:08.448
Wenn du jetzt auf die Idee kommst, wir machen das, oder du stellst halt fest,

01:07:08.627 --> 01:07:11.808
du misst das, du hast viele kleine Sachen, die halt serialisiert werden müssen,

01:07:11.928 --> 01:07:13.327
das ist halt zu langsam, das funktioniert irgendwie nicht.

01:07:14.228 --> 01:07:16.928
Und das ginge besser, wenn ich das jetzt irgendwie mit einem Unpile machen würde oder keine Ahnung,

01:07:17.668 --> 01:07:20.268
dann, das kannst du nicht mehr anpassen.

01:07:20.268 --> 01:07:22.248
das ist halt einfach, dann hast du halt mehr oder weniger

01:07:22.248 --> 01:07:24.248
verloren. Naja, du könntest ja schon

01:07:24.248 --> 01:07:26.228
Export der Datenbank machen und Import von anderer Stelle

01:07:26.228 --> 01:07:27.808
man muss dann so kurze Downtime kaufen und so

01:07:27.808 --> 01:07:29.688
Conversion

01:07:29.688 --> 01:07:32.268
dazwischen schreiten, also irgendwie geht das ja schon

01:07:32.268 --> 01:07:34.567
Wenn da eine Business-Logik

01:07:34.567 --> 01:07:35.688
da drin hängt

01:07:35.688 --> 01:07:38.268
und du hast von SQL-Model geabt

01:07:38.828 --> 01:07:40.367
oder von

01:07:40.367 --> 01:07:42.208
Pidentic, irgendwie von den Base-Models, da kannst du

01:07:42.208 --> 01:07:43.468
nicht mehr viel machen, das ist halt dann

01:07:43.468 --> 01:07:45.708
das ist halt das Problem, du hast halt

01:07:45.708 --> 01:07:48.268
oder sagen wir mal so, ich will gar nicht

01:07:48.268 --> 01:07:50.047
auf Fast-API rumhacken oder so, also ich meine

01:07:50.047 --> 01:07:52.047
dieser Ansatz ist ja durchaus verbreitet.

01:07:52.607 --> 01:07:54.047
Bei allen Frameworks ist es halt so,

01:07:54.047 --> 01:07:55.428
du erbst von irgendwas und dann

01:07:55.428 --> 01:07:58.067
hast du halt viel mehr

01:07:58.067 --> 01:07:59.648
Fähigkeiten und hast halt in kurzer Zeit

01:07:59.648 --> 01:08:01.968
sozusagen viel geschafft, aber du kannst es

01:08:01.968 --> 01:08:03.688
halt auch nicht mehr ändern. Wenn du das in Django machst, ist das

01:08:03.688 --> 01:08:05.567
das gleiche Problem. Wenn du in Django

01:08:05.567 --> 01:08:07.308
irgendwie erbst du ja von

01:08:07.308 --> 01:08:09.808
Models.irgendwas.model und

01:08:09.808 --> 01:08:11.408
hast da deine Fields und so.

01:08:11.788 --> 01:08:13.867
Was ist denn jetzt, wenn das aus irgendwelchen Gründen nicht mehr gut

01:08:13.867 --> 01:08:14.888
auf deine Anforderungen passt?

01:08:15.567 --> 01:08:16.888
Da musst du halt umziehen.

01:08:17.467 --> 01:08:19.627
Aber das geht quasi nicht. Endpunkt pro Endpunkt.

01:08:20.047 --> 01:08:23.167
funktioniert nicht gut. Das kannst du praktisch nicht mehr ändern.

01:08:23.328 --> 01:08:24.627
Also da würde ich sagen, der große Nachteil,

01:08:24.808 --> 01:08:26.467
du kaufst dir eine Menge,

01:08:26.868 --> 01:08:29.368
du kriegst halt viel Magie einfach so ganz schnell

01:08:29.368 --> 01:08:30.828
und es funktioniert ganz viel.

01:08:31.188 --> 01:08:33.228
Der große Nachteil, den du dir einkaufst,

01:08:33.328 --> 01:08:34.728
ist, du kannst das nicht mehr ändern.

01:08:35.947 --> 01:08:37.228
Du hast dich ganz eng

01:08:37.228 --> 01:08:38.408
an dein Framework gekoppelt.

01:08:38.947 --> 01:08:41.047
Das ist die engste Kopflung, die es überhaupt gibt von irgendwas zu erben.

01:08:42.547 --> 01:08:42.848
Und

01:08:42.848 --> 01:08:45.188
jetzt eben

01:08:45.188 --> 01:08:46.768
sozusagen diese klassische

01:08:46.768 --> 01:08:48.808
Software-Architektur würde halt sagen,

01:08:48.808 --> 01:08:50.828
ja, Frameworks sind nicht deine Freunde, sei

01:08:50.828 --> 01:08:52.428
vorsichtig, wenn du von irgendwie mehr erbst.

01:08:53.007 --> 01:08:54.928
Das ist immer, du koppelst dich da ganz eng.

01:08:55.067 --> 01:08:56.908
Also all diese Sachen von Sachen erben,

01:08:57.067 --> 01:08:58.868
Sachen importieren, alles

01:08:58.868 --> 01:09:00.688
vielleicht nicht so gut, weil das lässt sich hinterher alles

01:09:00.688 --> 01:09:01.768
selber machen.

01:09:02.828 --> 01:09:04.908
Das musst du ja nicht. Du könntest zum Beispiel stattdessen

01:09:04.908 --> 01:09:05.768
eine Software-Architektur machen.

01:09:07.967 --> 01:09:08.848
Ist halt die Frage.

01:09:08.908 --> 01:09:10.067
Du meinst Kapseln dann?

01:09:10.868 --> 01:09:13.208
Du kannst es halt

01:09:13.208 --> 01:09:14.428
so machen, dass zum Beispiel dein

01:09:14.428 --> 01:09:16.627
Kern, deine Applikation halt

01:09:16.627 --> 01:09:19.808
von überhaupt nichts abhängen, von XR und auch nichts importiert.

01:09:19.947 --> 01:09:22.667
Aber es braucht einen Händler für Speichern von Daten.

01:09:23.808 --> 01:09:26.167
Ja, aber den kannst du reinreichen sozusagen.

01:09:26.268 --> 01:09:29.487
Genau, aber das ist dann eine Dependency Injection, habe ich das jetzt richtig?

01:09:29.627 --> 01:09:34.167
Ja, genau. Du würdest die Dependencies umdrehen.

01:09:34.288 --> 01:09:37.987
Du würdest halt sagen, der Kern meiner Software basiert halt

01:09:37.987 --> 01:09:42.027
oder hängt halt ab von anderen Sachen, sondern du würdest sagen, man dreht das halt um

01:09:42.027 --> 01:09:46.328
und die anderen Sachen hängen halt von meiner Software ab.

01:09:46.627 --> 01:09:48.408
und als

01:09:48.408 --> 01:09:50.848
Mittel, um das zu erreichen, könnte man

01:09:50.848 --> 01:09:52.428
Dependency Injection zum Beispiel verwenden,

01:09:52.748 --> 01:09:54.428
aber das muss man ja auch nicht automatisch, also Dependency

01:09:54.428 --> 01:09:56.027
Injection oder

01:09:56.027 --> 01:09:58.987
Dependency Injection Frameworks,

01:09:59.348 --> 01:10:00.688
da wird das ja quasi

01:10:00.688 --> 01:10:02.828
so ein bisschen automatisiert.

01:10:03.308 --> 01:10:04.788
Man kann das ja aber auch manuell

01:10:04.788 --> 01:10:06.748
machen. Also manuell heißt das

01:10:06.748 --> 01:10:08.567
eigentlich, du machst das so, dass du

01:10:08.567 --> 01:10:09.708
hast halt dann

01:10:09.708 --> 01:10:12.908
quasi Schnittstellen oder irgendwelche abstrakten

01:10:12.908 --> 01:10:14.728
Interfaces, von denen du

01:10:14.728 --> 01:10:16.668
halt, die du halt sagst, okay, das ist halt

01:10:16.668 --> 01:10:18.547
das, was hier, so, da wird zum Beispiel

01:10:18.547 --> 01:10:19.408
so eine

01:10:19.408 --> 01:10:21.368
Datenbank,

01:10:21.587 --> 01:10:24.047
ein Repository, ja, das muss jetzt,

01:10:24.408 --> 01:10:26.127
sagt gar nicht, was das für eine Datenbank ist,

01:10:26.308 --> 01:10:28.728
sondern wird halt reingereicht, ja, dass halt bestimmte

01:10:29.388 --> 01:10:30.368
Methoden hat und dann

01:10:30.368 --> 01:10:32.527
bestimmte Schnittstelle hat. Also quasi Abstract Base Class

01:10:32.527 --> 01:10:34.587
mit Methoden zu

01:10:34.587 --> 01:10:36.467
implementieren, die man dann

01:10:36.467 --> 01:10:38.728
verwenden muss als Injection und die man dann,

01:10:39.447 --> 01:10:40.648
wo dann klar ist, okay, das muss jetzt

01:10:40.648 --> 01:10:42.487
so und so implementiert sein, egal wie du das löst, das ist mir

01:10:42.487 --> 01:10:44.567
wurscht, aber Hauptsache, du stellst diese Interfaces für mich

01:10:44.567 --> 01:10:46.368
bereit, die benutze ich dann einfach und

01:10:46.368 --> 01:10:48.308
Input, Output sind vordefiniert. Und man dependet dann

01:10:48.308 --> 01:10:49.967
eben auf diese abstrakte Schnittstelle

01:10:49.967 --> 01:10:52.047
und nicht auf eine konkrete Implementation.

01:10:52.328 --> 01:10:53.728
Das habe ich tatsächlich auch schon mal gemacht.

01:10:54.148 --> 01:10:55.947
Ja, das ist ja schon

01:10:55.947 --> 01:10:56.848
so richtig.

01:10:58.067 --> 01:10:59.888
Kannst du mich jetzt Architekt nennen?

01:11:00.627 --> 01:11:01.748
Ich glaube, das darfst du nicht wieder.

01:11:02.087 --> 01:11:03.828
Das ist gar kein Problem. Hast du alles schon gesehen,

01:11:03.928 --> 01:11:04.967
welche Leute sich Architekt benennen?

01:11:05.728 --> 01:11:07.188
Das ist wohl jetzt auch kein geschützter Begriff.

01:11:08.007 --> 01:11:09.467
Ja, Informatiker glaube ich auch nicht.

01:11:11.027 --> 01:11:12.208
Ich glaube, du darfst dich nicht

01:11:12.208 --> 01:11:13.888
Diplom-Informatiker nennen, aber

01:11:13.888 --> 01:11:14.888
im Maticast.

01:11:16.388 --> 01:11:17.047
Ja, ist auch wurscht.

01:11:19.527 --> 01:11:19.967
Jedenfalls,

01:11:20.328 --> 01:11:21.848
wenn du halt auf diese Abstraktionen

01:11:21.848 --> 01:11:24.027
dependest und nicht auf irgendwas Konkretes,

01:11:24.107 --> 01:11:25.148
dann kannst du halt das,

01:11:26.047 --> 01:11:27.967
die konkrete Implementation dieser

01:11:27.967 --> 01:11:29.708
Schnittstelle halt austauschen.

01:11:29.808 --> 01:11:32.047
Wenn du ein Repository hast, das halt irgendwie SQL Alchemy

01:11:32.047 --> 01:11:33.908
war, kannst du sagen, okay, ich nehme jetzt ein Django

01:11:33.908 --> 01:11:35.768
Repository stattdessen

01:11:35.768 --> 01:11:38.047
und dann merkt deine Applikation gar nicht,

01:11:38.127 --> 01:11:38.828
dass das geändert wurde.

01:11:40.007 --> 01:11:41.947
Der Nachteil ist halt irgendwie

01:11:41.947 --> 01:11:43.368
Django OEM und so, das ist ja schon nett,

01:11:43.368 --> 01:11:44.808
und du sparst halt viel Arbeit.

01:11:45.388 --> 01:11:47.107
Du musst halt dann nochmal selber bauen, die ganzen Methoden,

01:11:47.208 --> 01:11:49.148
die es da halt gibt quasi. Und dann halt quasi,

01:11:49.168 --> 01:11:51.188
du musst einer die abstrakte Klasse bauen, die musst du dann

01:11:51.188 --> 01:11:52.947
für deine Sache identifizieren.

01:11:53.027 --> 01:11:55.127
Wenn du das mit dem Django-ORM nutzen willst, dann musst du quasi den Händler

01:11:55.127 --> 01:11:56.968
dafür schreiben für deine abstrakte Klasse, die dann

01:11:56.968 --> 01:11:59.127
den Django-ORM benutzt, damit die Methoden,

01:11:59.148 --> 01:12:01.288
die du dir bereitstellen willst, auch dann darüber gehen.

01:12:01.768 --> 01:12:03.208
Ja, also sagen wir so, du verlierst halt

01:12:03.208 --> 01:12:05.248
einen Großteil der Gründe, warum man

01:12:05.248 --> 01:12:06.668
jetzt... Der Convenience. Der Convenience,

01:12:06.968 --> 01:12:08.468
den verlierst du tatsächlich, das ist halt so.

01:12:10.248 --> 01:12:11.288
Dadurch, dass du halt Django

01:12:11.288 --> 01:12:12.968
austauschbar machst oder FastAPI

01:12:12.968 --> 01:12:14.308
austauschbar machst. Ich habe das

01:12:14.308 --> 01:12:16.627
überlegt, zum Spaß könnte man eigentlich

01:12:16.627 --> 01:12:18.728
noch einen Flask Entry Point

01:12:18.728 --> 01:12:20.607
davor hängen, wenn ich damit

01:12:20.607 --> 01:12:22.788
fertig sein sollte und das wäre praktisch

01:12:22.788 --> 01:12:24.768
kein Problem, das zu machen. Ich könnte halt

01:12:24.768 --> 01:12:26.768
Flask gegen FastAPI austauschen oder umgekehrt

01:12:26.768 --> 01:12:28.447
oder Django, das wäre alles kein großes Problem,

01:12:28.888 --> 01:12:30.688
aber man hat halt auch die ganzen Vorteile dann nicht mehr.

01:12:30.947 --> 01:12:32.768
Das ist halt dein Nachteil.

01:12:33.447 --> 01:12:34.708
Aber ja,

01:12:35.188 --> 01:12:36.848
ich wollte es einfach mal ausprobieren, deswegen habe ich da so ein bisschen

01:12:36.848 --> 01:12:38.328
mit angefangen und

01:12:38.328 --> 01:12:39.127
ja,

01:12:39.127 --> 01:12:43.228
Ja, aber man sollte sich halt, wenn man jetzt

01:12:43.228 --> 01:12:48.087
ihm diesen Weg geht und sagt, ich nehme einfach ein Framework, dann ist alles schnell

01:12:48.087 --> 01:12:52.087
Ich wusste, dass man das Software-Architektur nennt und so ein bisschen

01:12:52.087 --> 01:12:53.248
Hochtraben überlegt

01:12:53.248 --> 01:12:59.928
Ja, abstrakte Infrastructures bauen, damit man so ein bisschen

01:12:59.928 --> 01:13:04.168
die Dependency-Insertion auslagern kann und damit man reduziert die Abhängigkeit

01:13:04.168 --> 01:13:08.127
in seine eigenen Codes von anderen Dingen

01:13:08.127 --> 01:13:10.188
und die einfach austauschen kann. Also dieses Pattern

01:13:10.188 --> 01:13:12.288
der Dependency Injection in diesem Fall, mit diesem abstrakten

01:13:12.288 --> 01:13:14.047
Ansatz, ist glaube ich eine richtig gute Idee,

01:13:14.248 --> 01:13:16.368
wenn man Skalierung möchte und irgendwann...

01:13:16.368 --> 01:13:18.148
Ja, es hat halt auch so Vor- und Nachweise. Also es hat halt

01:13:18.148 --> 01:13:20.047
den Vorteil, dass du dann eben flexibel diese Sachen

01:13:20.047 --> 01:13:22.007
austauschen kannst und so und dann halt nicht

01:13:22.007 --> 01:13:24.148
davon abhängst, dass wenn irgendeiner von deinen

01:13:24.148 --> 01:13:26.047
Dependencies sich nicht so gut

01:13:26.047 --> 01:13:28.007
weiß und du willst was anderes machen, dann kannst du das halt tun.

01:13:28.828 --> 01:13:30.087
Auf der anderen Seite ist es halt,

01:13:30.148 --> 01:13:31.567
wenn du weißt, dass du das nie musst

01:13:31.567 --> 01:13:32.987
und dass es auch egal ist,

01:13:33.788 --> 01:13:36.067
also wenn du zum Beispiel eben eine klasse CRUD-Geschichte

01:13:36.067 --> 01:13:37.587
hast, die relativ einfach ist,

01:13:37.587 --> 01:13:42.527
dann macht das keinen Sinn, da viel Architektur zu machen, weil das ist sowieso egal.

01:13:44.007 --> 01:13:47.828
Aber genau, ich mache es jetzt auch nicht, weil es nötig ist, sondern einfach nur, um zu verstehen.

01:13:48.188 --> 01:13:50.848
Lass dich auch fanden, ich habe genug Zeit und mache da so schöne Sachen.

01:13:52.768 --> 01:13:54.428
Genau, das ist einfach nur Spaß.

01:13:55.547 --> 01:13:56.928
Das ist auch immer ein Selbstzweck.

01:13:57.788 --> 01:14:03.728
Vielleicht noch erzählen wollte, da ich immer so viele Webentwicklungen mache,

01:14:03.728 --> 01:14:05.808
fehlt mir halt dieser ganze

01:14:05.808 --> 01:14:07.888
Machine Learning Teil so ein bisschen. Ich bin da

01:14:07.888 --> 01:14:09.507
momentan auch nicht so richtig auf dem Laufenden.

01:14:09.888 --> 01:14:11.768
Wenn ich letztens wieder einen Podcast gehört habe, so krass,

01:14:12.248 --> 01:14:13.067
was da alles so passiert.

01:14:13.928 --> 01:14:15.047
Da wusste ich ja gar nichts von.

01:14:17.428 --> 01:14:18.007
Ich kann auch

01:14:18.007 --> 01:14:20.007
sagen, dass ich jetzt ein bisschen Unsinn erzähle, weil ich da nicht mehr so richtig

01:14:20.007 --> 01:14:21.907
drinstecke, aber vielleicht ist es ja interessant. Also mich hat es

01:14:21.907 --> 01:14:22.648
auf jeden Fall überrascht.

01:14:24.188 --> 01:14:25.567
Einmal gibt es halt jetzt die Bestrebung,

01:14:25.728 --> 01:14:27.888
das kennst du ja wahrscheinlich auch, es gibt so große

01:14:27.888 --> 01:14:29.507
Modelle, die trainiert werden auf irgendwie

01:14:29.507 --> 01:14:31.648
self-supervised trainiert werden auf

01:14:31.648 --> 01:14:32.907
quasi im Internet zum Beispiel.

01:14:33.728 --> 01:14:36.368
Modelle gibt es da, diese GPT-3.

01:14:36.368 --> 01:14:41.708
Und die machen ja alles

01:14:41.708 --> 01:14:44.447
irgendwie so ein bisschen besser, wenn man jetzt irgendwie die verwendet.

01:14:46.168 --> 01:14:49.928
Und dann sozusagen das eigene Problem

01:14:49.928 --> 01:14:54.168
darauf feintunt irgendwie. Und das dachte ich auch immer,

01:14:54.308 --> 01:14:57.808
das ist der Hauptvorteil, den man da hat, wenn man den Kram verwendet. Aber

01:14:57.808 --> 01:15:01.288
tatsächlich können die halt noch eine ganze Menge mehr. Und das war mir so gar nicht so richtig klar.

01:15:01.288 --> 01:15:04.228
oder zum Beispiel bei GPT-3

01:15:04.228 --> 01:15:06.328
ist es halt so, du kannst halt auch so Dinge

01:15:06.328 --> 01:15:08.047
machen wie Zero-Shot-Learning oder

01:15:08.047 --> 01:15:10.127
Few-Shot-Learning, also gar nicht irgendwie, du feintunst

01:15:10.127 --> 01:15:12.228
es nicht mit ein paar hunderttausend, was auch immer

01:15:12.228 --> 01:15:14.107
Beispielen, sondern

01:15:14.107 --> 01:15:16.127
du sagst zum Beispiel GPT-3 einfach

01:15:16.127 --> 01:15:17.848
so, irgendwie dein Job ist jetzt

01:15:17.848 --> 01:15:19.567
Übersätze von Englisch nach Deutsch.

01:15:20.047 --> 01:15:22.027
Und du tust das einfach so, ohne dass du ihm

01:15:22.027 --> 01:15:23.308
irgendwelche Trainingsbeispiele gezeigt hast.

01:15:23.828 --> 01:15:25.607
Oder du sagst ihm, dein Job ist jetzt

01:15:25.607 --> 01:15:28.027
Übersätze von Englisch nach Deutsch

01:15:28.027 --> 01:15:29.868
und gibst ihm halt noch drei, vier Beispiele.

01:15:29.868 --> 01:15:31.888
und dann geht das auch schon ganz gut.

01:15:32.868 --> 01:15:33.947
Und das ist halt schon krass.

01:15:34.728 --> 01:15:36.487
Und für viele andere Tasks

01:15:36.487 --> 01:15:38.328
geht das auch. Ich glaube, es gibt dann auch wieder die Frage,

01:15:38.447 --> 01:15:40.188
wie man das nennt, dann Instruction-Based

01:15:40.188 --> 01:15:42.527
Learning oder Zero-Shot Learning.

01:15:42.688 --> 01:15:44.668
Die KI-Conconscious so ungefähr, ja.

01:15:45.648 --> 01:15:46.688
Ja, das weiß ich nicht.

01:15:48.268 --> 01:15:48.947
Aber es ist

01:15:48.947 --> 01:15:50.248
auf jeden Fall beeindruckend, was damit geht.

01:15:50.368 --> 01:15:51.567
Und es gab dann halt so, tatsächlich,

01:15:52.107 --> 01:15:53.567
das wusste ich überhaupt nicht, dass das existiert.

01:15:53.668 --> 01:15:57.748
Es gibt inzwischen so

01:15:57.748 --> 01:16:00.248
den Job quasi mehr oder weniger von Leuten,

01:16:00.328 --> 01:16:02.027
die sich halt überlegen, wie sie

01:16:02.027 --> 01:16:04.087
Anfragen an das Modell formulieren, dass da irgendwas,

01:16:04.208 --> 01:16:05.627
was sie dann hinterher verwerten können, dabei rauskommt.

01:16:05.708 --> 01:16:08.027
Man muss da auch so ein bisschen aufpassen und rumtricksen

01:16:08.027 --> 01:16:10.168
und welche Beispiele gibt man dann, um das halt noch ein bisschen

01:16:10.168 --> 01:16:12.087
zu verbessern. Und da kann man

01:16:12.087 --> 01:16:14.107
halt solche, diese großen Modelle wohl

01:16:14.107 --> 01:16:15.487
dazu bewegen, Dinge zu tun,

01:16:16.268 --> 01:16:17.348
die ganz erschauend nicht sind.

01:16:17.828 --> 01:16:19.888
Genau, wie beim Copilot ist das auch so ein bisschen so.

01:16:20.148 --> 01:16:21.127
Copilot ist auch so, ja.

01:16:21.607 --> 01:16:24.047
Gute Beispiele gibt es, also gute Methoden und so, gute Namen,

01:16:24.127 --> 01:16:26.127
gute Argumente, gute Docs, lernt ja sehr gut

01:16:26.127 --> 01:16:28.127
raus. Also wenn man das in einem Projekt mal so konstant hat,

01:16:28.947 --> 01:16:29.607
da ist es echt gut wert.

01:16:30.388 --> 01:16:30.808
Ja, genau.

01:16:32.567 --> 01:16:33.928
Habe ich jetzt auch letztens gehört,

01:16:34.848 --> 01:16:36.148
genau, ist die Frage, wie nennt man

01:16:36.148 --> 01:16:38.228
das jetzt eigentlich? Weil all die

01:16:38.228 --> 01:16:40.027
Sachen, wie man das früher genannt hat, das trifft es eigentlich nicht.

01:16:40.208 --> 01:16:41.627
So Pre-Train-Modelle, das

01:16:41.627 --> 01:16:44.127
klingt so ein bisschen, als wäre dann schon alles

01:16:44.648 --> 01:16:46.407
passiert.

01:16:47.148 --> 01:16:48.268
Aber das trifft es ja

01:16:48.268 --> 01:16:49.987
nicht, weil man muss ja jetzt mit dem Ding noch irgendwie so lange

01:16:49.987 --> 01:16:52.007
interagieren, bis man das dazu gekriegt hat, dass das macht,

01:16:52.067 --> 01:16:53.527
was man eigentlich möchte.

01:16:53.527 --> 01:16:55.768
Also einfach

01:16:55.768 --> 01:16:56.027
nur

01:16:56.027 --> 01:16:59.928
selbst

01:16:59.928 --> 01:17:01.607
supervised, ist halt auch nicht so ganz richtig,

01:17:01.688 --> 01:17:03.087
weil es ist nicht immer selbst supervised.

01:17:03.208 --> 01:17:05.607
Wir müssen dazu auch noch eine Machine Learning-Folge machen, glaube ich, das wird sich

01:17:05.607 --> 01:17:07.627
sehr interessant. Ja, aber da brauchen wir auch jemanden,

01:17:07.648 --> 01:17:09.087
der sich damit wirklich auskennt, nicht so der

01:17:09.087 --> 01:17:10.527
Papauskast-Wörter wie ich.

01:17:12.388 --> 01:17:12.627
Und

01:17:12.627 --> 01:17:15.348
also unklar, es gab jetzt den Vorschlag,

01:17:15.348 --> 01:17:17.228
glaube ich, von Stanford oder so,

01:17:17.328 --> 01:17:19.148
wo sie gesagt haben, lass uns die Dinger doch

01:17:19.148 --> 01:17:20.768
Foundation Models nennen.

01:17:21.728 --> 01:17:23.168
Weil das macht das ein bisschen

01:17:23.168 --> 01:17:25.328
klarer, weil wir wissen auch nicht so genau, wie das

01:17:25.328 --> 01:17:27.188
jetzt, es wird halt auch,

01:17:27.348 --> 01:17:29.468
für Bilder gibt es das noch nicht so richtig, aber es sieht so aus,

01:17:29.507 --> 01:17:30.248
als ob das jetzt auch

01:17:30.248 --> 01:17:33.288
in die Richtung läuft, dass man das irgendwann mit Bildern und auch

01:17:33.288 --> 01:17:35.067
vielleicht mit Videos machen kann und dann

01:17:35.067 --> 01:17:37.067
werden auch mal sehr

01:17:37.067 --> 01:17:38.888
interessante Sachen gehen

01:17:38.888 --> 01:17:41.487
und vielleicht ist es

01:17:41.487 --> 01:17:43.328
eben auch nicht nur selbst super weiß, vielleicht kann man auch

01:17:43.328 --> 01:17:45.268
irgendwie bei ImageNet oder so, hat man ja das rein

01:17:45.268 --> 01:17:46.888
super weiß irgendwie sozusagen,

01:17:47.127 --> 01:17:48.288
kann man ja auch benutzen,

01:17:48.987 --> 01:17:51.107
aber wir haben auf jeden Fall irgendwie so eine Klasse von Modellen,

01:17:51.208 --> 01:17:53.328
die sind sehr groß und mit denen kann man irgendwie interessante Dinge tun

01:17:53.328 --> 01:17:54.987
und das ist so ein bisschen unklar, aber

01:17:54.987 --> 01:17:56.828
sind irgendwie die Foundation für

01:17:56.828 --> 01:17:58.567
alle möglichen anderen Dinge, die man damit macht.

01:17:58.768 --> 01:18:00.688
Also lass uns die doch Foundation Models nennen und

01:18:00.688 --> 01:18:02.728
sozusagen da irgendwie die ganzen Themen,

01:18:02.828 --> 01:18:04.768
die jetzt da dran hängen, halt irgendwie mit

01:18:04.768 --> 01:18:06.987
Abflussstücken.

01:18:08.148 --> 01:18:08.968
Und die Idee fand ich

01:18:08.968 --> 01:18:10.808
eigentlich gar nicht so schlecht. Ich bin mal gespannt, ob sich das durchsetzt.

01:18:11.868 --> 01:18:12.728
Ja, und

01:18:12.728 --> 01:18:14.407
genau.

01:18:15.087 --> 01:18:16.328
Ja, und dann ist es halt so, dass

01:18:16.328 --> 01:18:18.848
auch der Fortschritt in dem ganzen

01:18:18.848 --> 01:18:20.468
Deep Learning Bereich war in letzter Zeit so

01:18:20.468 --> 01:18:22.708
stark. Das konsolidiert sich jetzt auch

01:18:22.708 --> 01:18:24.567
alles so ein bisschen. Finde ich auch

01:18:24.567 --> 01:18:26.728
ziemlich cool, da gibt es halt irgendwie

01:18:26.728 --> 01:18:28.888
Leute, die

01:18:28.888 --> 01:18:30.987
auf GitHub

01:18:30.987 --> 01:18:32.728
irgendwie jetzt die ganzen

01:18:32.728 --> 01:18:34.848
Sachen polieren, also das hatte ich früher auch mal so, wenn man sich

01:18:34.848 --> 01:18:36.888
jetzt anguckt, so diese ganzen Leute,

01:18:36.987 --> 01:18:38.688
die in diesem Forschungsumfeld

01:18:38.688 --> 01:18:40.188
tätig sind, also wenn man sich den Code anguckt,

01:18:40.348 --> 01:18:41.507
so

01:18:41.507 --> 01:18:44.487
ist halt oft theoretisch

01:18:44.487 --> 01:18:46.768
sehr avanciert

01:18:46.768 --> 01:18:48.808
und irgendwie Leute machen sich da viele Gedanken

01:18:48.808 --> 01:18:50.587
und so, sind sehr kreativ und

01:18:50.587 --> 01:18:52.888
machen irgendwie

01:18:52.888 --> 01:18:57.047
Klasse Mathematik, aber irgendwie jetzt so den Code, den sie schreiben, ist manchmal schon so ein bisschen unangenehm.

01:18:57.248 --> 01:18:58.368
Also da geht auf jeden Fall noch was.

01:18:59.087 --> 01:19:00.368
Das hast du jetzt lieb ausgedrückt.

01:19:00.447 --> 01:19:02.668
Ja, ich meine, klar, man kann ja auch nicht in allem gut sein.

01:19:02.808 --> 01:19:04.987
Das ist halt irgendwie so, man muss sich auf irgendwas beschränken.

01:19:05.907 --> 01:19:08.708
Aber da ist auf jeden Fall noch nicht so das Ende der Fahnenstange erreicht.

01:19:08.708 --> 01:19:14.547
Und was ich jetzt interessant fand, ist, dass es jetzt Leute gibt, die aus dem Softwareentwicklungsbereich kommen,

01:19:15.168 --> 01:19:17.728
die sich das angucken und sagen, da kann man ja noch was machen.

01:19:18.748 --> 01:19:20.688
Und das hat jetzt wieder Einfluss auf die Forschung.

01:19:20.688 --> 01:19:23.087
zum Beispiel eben aus der

01:19:23.087 --> 01:19:24.127
Kettel-Ecke kommende einige,

01:19:25.468 --> 01:19:27.248
also Competitive Machine Learning

01:19:27.248 --> 01:19:28.968
oder halt auch aus der Industrie,

01:19:29.168 --> 01:19:30.607
es gibt da zum Beispiel einen, Ross Whiteman,

01:19:31.587 --> 01:19:32.627
der

01:19:32.627 --> 01:19:33.888
sich diese ganzen

01:19:33.888 --> 01:19:36.848
Standard-Image-Modelle mal nochmal angeguckt hat

01:19:36.848 --> 01:19:37.888
und

01:19:37.888 --> 01:19:41.007
der dann im Wesentlichen rausgefunden hat,

01:19:41.228 --> 01:19:42.888
naja,

01:19:43.127 --> 01:19:44.547
also das, was ihr sagt,

01:19:44.547 --> 01:19:46.208
also es gibt der State-of-the-Art

01:19:46.208 --> 01:19:48.208
sozusagen für den Score

01:19:48.208 --> 01:19:50.527
auf bestimmten Problemen, jetzt nehmen wir ImageNet oder so,

01:19:50.688 --> 01:19:54.708
der wurde ja ermittelt

01:19:54.708 --> 01:19:56.947
für bestimmte Modelle vor ein paar Jahren

01:19:56.947 --> 01:19:59.987
so inzwischen hat es aber nicht nur

01:19:59.987 --> 01:20:02.067
Fortschritte bei den Modellen gegeben

01:20:02.067 --> 01:20:03.648
also wie ist die Architektur der Modelle oder so

01:20:03.648 --> 01:20:04.468
auch bei den Kameras

01:20:04.468 --> 01:20:07.468
das spielt alles nicht so eine große Rolle

01:20:07.468 --> 01:20:09.268
weil man kann eh nur kleine Bilder nehmen

01:20:09.268 --> 01:20:11.208
weil die Datenmengen halt sonst

01:20:11.208 --> 01:20:12.788
schwierig für die Modelle wären

01:20:12.788 --> 01:20:15.907
aber wo sich was getan hat

01:20:15.907 --> 01:20:16.868
ist zum Beispiel sowas wie

01:20:16.868 --> 01:20:18.487
wie trainiert man die Dinger eigentlich

01:20:18.487 --> 01:20:42.487
und

01:20:42.487 --> 01:20:42.547
Python.

01:20:42.547 --> 01:20:44.428
nicht mehr dabei und andersrum.

01:20:45.868 --> 01:20:46.188
Ich bin gespannt.

01:20:47.607 --> 01:20:48.788
Wir machen auf jeden Fall noch eine Episode

01:20:48.788 --> 01:20:50.527
dazu, das ist versprochen. Ihr seht, Jochen ist ja auch

01:20:50.527 --> 01:20:52.328
sehr bewiesen und

01:20:52.328 --> 01:20:53.848
ich finde das auch super interessant.

01:20:54.468 --> 01:20:56.168
Vielleicht nochmal kurz zum Abschluss zu bringen.

01:20:56.288 --> 01:20:57.388
Es ist auf jeden Fall so, dass

01:20:57.388 --> 01:21:00.788
man jetzt die ganzen

01:21:00.788 --> 01:21:02.027
Fortschritte, die es in anderen Bereichen gibt,

01:21:02.428 --> 01:21:04.447
jetzt nochmal mit den alten Modellen zusammennimmt,

01:21:04.507 --> 01:21:05.527
dann stimmt die Baseline nicht mehr.

01:21:05.888 --> 01:21:08.328
Es ist nicht so, dass die Modelle von damals

01:21:08.328 --> 01:21:10.567
schlecht wären. Es ist nur so, dass die Methoden,

01:21:10.567 --> 01:21:12.507
mit denen wir die trainiert haben damals, sind halt vielleicht nicht so

01:21:12.507 --> 01:21:42.487
und so weiter.

01:21:42.507 --> 01:21:50.648
Ja, ich weiß nicht, jetzt haben wir das Problem. Aber jetzt bist du dran, jetzt muss ich erst mal meinen Pick wieder nachgucken, den du mir ja versaut hast. Was würdest du denn picken?

01:21:51.188 --> 01:21:52.987
Ich muss was picken, in dieser Folge schon wieder.

01:21:53.368 --> 01:21:54.487
Ich weiß nicht, wo könntest du?

01:21:54.487 --> 01:22:12.288
Ja, ich picke Critical Role. Das ist eine wunderschöne Serie, die auf Prime läuft. Falls jemand sich für D&D interessiert, es gibt einen Vodcast von Matthew Mercer dazu, der Critical Role heißt.

01:22:12.288 --> 01:22:14.627
und der hat eine Kampagne mit seinen SpielerInnen

01:22:14.627 --> 01:22:15.067
gespielt.

01:22:16.507 --> 01:22:18.268
Vox Machina und diese Vox Machina

01:22:18.268 --> 01:22:19.527
ist jetzt auf Prime Machine.

01:22:20.007 --> 01:22:22.527
Es war eigentlich

01:22:22.527 --> 01:22:24.368
gar nicht geplant als Fernsehserie natürlich,

01:22:24.507 --> 01:22:26.328
aber irgendwer sagt, ach, total toll,

01:22:26.388 --> 01:22:28.248
was wir hier machen. Also das sind alles so Voice Actors und so.

01:22:28.808 --> 01:22:30.288
Macht total Spaß. Eigentlich sollte

01:22:30.288 --> 01:22:32.127
mal jemand einen Comic draus machen. Dann hat irgendwer gesagt,

01:22:32.268 --> 01:22:34.007
ach, ja, kein Comic. Ja, vielleicht doch.

01:22:34.268 --> 01:22:36.168
Ja, da brauchen wir doch irgendwie Geld für. Ja, dann lass doch einen Kickstarter

01:22:36.168 --> 01:22:37.567
machen, meint dann irgendwer. Dann sagt er, ach,

01:22:37.648 --> 01:22:40.368
hat irgendwer einen Kickstarter gemacht. 48 Stunden

01:22:40.368 --> 01:22:42.007
später irgendwie 11 Millionen Dollar oder so eingenommen.

01:22:42.007 --> 01:22:43.868
und dann haben die gesagt, hey, yo, wir machen

01:22:43.868 --> 01:22:45.888
doch so eine Serie

01:22:45.888 --> 01:22:47.968
und dann hat Amazon gesagt, oh, wir kaufen es

01:22:47.968 --> 01:22:49.788
und hat direkt die Staffeln da

01:22:49.788 --> 01:22:51.708
veröffentlicht und die laufen jetzt tatsächlich auf Prime.

01:22:52.288 --> 01:22:53.788
Glaube ich, die erste Staffel gerade rum und das ist

01:22:53.788 --> 01:22:56.007
D&D, eine Abenteurergruppe,

01:22:56.087 --> 01:22:57.868
die es live gab quasi, gibt es auf YouTube, kann man

01:22:57.868 --> 01:22:59.447
die echten Abenteuer nachhören, also eine

01:22:59.447 --> 01:23:01.947
Folge ist, glaube ich, so dreieinhalb, vier Stunden oder so was

01:23:01.947 --> 01:23:04.148
und die haben, glaube ich, 150 Sessions abgehalten

01:23:04.148 --> 01:23:05.987
für diese Kampagne. Das ist also ein bisschen

01:23:05.987 --> 01:23:07.627
verkürzt dargestellt, aber

01:23:07.627 --> 01:23:09.027
ja.

01:23:09.027 --> 01:23:12.848
wo wir eben bei

01:23:12.848 --> 01:23:14.188
Jackshaving waren

01:23:14.188 --> 01:23:16.107
was man alles verbessern und optimieren kann

01:23:16.107 --> 01:23:17.668
und wie tief das bei euch jeweils ist

01:23:17.668 --> 01:23:20.348
aber nur ein kleines bisschen was Privates

01:23:20.348 --> 01:23:22.708
Jochen, dein Pick

01:23:22.708 --> 01:23:24.428
Ja, ich habe jetzt versucht den

01:23:24.428 --> 01:23:26.248
gerade zu finden, ich habe ihn nicht mehr gefunden

01:23:26.248 --> 01:23:28.567
aber ich kann ihn beschreiben und ich reiche

01:23:28.567 --> 01:23:29.828
den Link dann in den Show Notes nach

01:23:29.828 --> 01:23:31.228
es gibt Rich

01:23:31.228 --> 01:23:34.007
also es gibt ja Typer, das macht auch schon eine Menge

01:23:34.007 --> 01:23:36.168
so Commandline-Geschichten

01:23:36.168 --> 01:23:37.127
es basiert aber auch auf Click

01:23:37.127 --> 01:23:39.447
und es gibt jetzt auch irgendwie Rich Click

01:23:39.447 --> 01:23:41.288
oder ich weiß jetzt eben nicht, wie man es hinschreibt, aber

01:23:41.288 --> 01:23:43.228
wo man sozusagen

01:23:43.228 --> 01:23:45.268
Click und Rich irgendwie ganz nett kombiniert hat

01:23:45.268 --> 01:23:47.127
und das sah sehr gut aus

01:23:47.127 --> 01:23:48.468
und das war dann mein Pick.

01:23:48.888 --> 01:23:49.688
Interessant, cool.

01:23:50.607 --> 01:23:52.748
Ja, super, dann vielen Dank, dass ihr wieder eingeschaltet habt.

01:23:53.788 --> 01:23:54.507
Bleibt uns gewogen.

01:23:54.708 --> 01:23:56.788
Ich hoffe, ihr dürft diese Episode nicht ganz so

01:23:56.788 --> 01:23:58.728
verstören wie uns und

01:23:58.728 --> 01:24:00.047
schreibt beim nächsten Mal wieder ein.

01:24:01.027 --> 01:24:02.708
Und ja, wie gesagt, schreibt uns gerne alles, was

01:24:02.708 --> 01:24:05.127
euch beschäftigt an hallo-at-python-podcast.de

01:24:05.127 --> 01:24:06.848
Bis zum nächsten Mal.

01:24:07.127 --> 01:24:08.007
und bis dahin.

01:24:08.888 --> 01:24:09.288
Tschüss.
