WEBVTT

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

00:00:03.180 --> 00:00:07.960
Episode 64, heute nochmal von der DjangoCon. Eine Sonderausgabe.

00:00:08.220 --> 00:00:09.400
Ja, zweite Live-Episode.

00:00:09.660 --> 00:00:11.040
Ja, freut mich wieder da zu sein. Hey Jochen.

00:00:11.200 --> 00:00:12.000
Ja, hallo Dominik.

00:00:12.540 --> 00:00:13.040
Hallo Johannes.

00:00:13.380 --> 00:00:13.880
Hallo zusammen.

00:00:14.220 --> 00:00:15.300
Und hey Rolli, heute alles klar.

00:00:15.300 --> 00:00:15.640
Hallo Rollis.

00:00:15.800 --> 00:00:16.680
Hi, schön hier zu sein.

00:00:16.900 --> 00:00:17.740
Ja, schön, dass du da bist.

00:00:18.300 --> 00:00:18.540
Ja.

00:00:18.960 --> 00:00:22.780
Ja, wir wollten noch ein bisschen wieder von der DjangoCon erzählen, auf der wir gerade sind in Dublin.

00:00:23.440 --> 00:00:23.600
Ja.

00:00:23.640 --> 00:00:27.260
Das hatten wir ja gestern schon getan, die Folge ist ja tatsächlich auch pünktlich online gegangen.

00:00:27.580 --> 00:00:28.560
Ja, fast pünktlich.

00:00:28.560 --> 00:00:37.140
Und so nach dem Pub-Besuch ist das immer so ein bisschen schwieriger, also das Hotelzimmer wiederzufinden und dann auch irgendwie eine Visone online zu stellen.

00:00:37.240 --> 00:00:39.440
Insofern, das ging nur so irgendwie unterschiedlich.

00:00:39.440 --> 00:00:43.520
Nee, ich habe noch mein Fletter vermisst und dann habe ich mein Fletter gefunden, das war wahnsinnig gut.

00:00:43.780 --> 00:00:46.560
Dann hatte ich aber meine Hotelzimmer-Eintrittskarte nicht.

00:00:47.280 --> 00:00:47.480
Aha.

00:00:48.940 --> 00:00:50.620
Am ersten Tag einmal alles mitgebracht.

00:00:50.620 --> 00:00:52.400
Ja, und wenn man das Zimmer wechselt, ist auch schlecht.

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

00:00:54.000 --> 00:00:54.680
Alles anders.

00:00:55.340 --> 00:00:57.480
Ja, aber es hat irgendwie alles geklappt.

00:00:58.100 --> 00:00:58.280
Ja.

00:00:58.280 --> 00:00:58.780
Es ist immer noch da.

00:00:59.020 --> 00:01:02.660
Wir haben ja gestern bis zum ungefähr Mittagszeit ja erzählt, was so war.

00:01:02.740 --> 00:01:04.440
Was war denn gestern noch Interessantes?

00:01:04.660 --> 00:01:07.060
Oh, das muss ja nur die Zeit sein.

00:01:07.060 --> 00:01:07.860
Das ist ja nur die Zeit.

00:01:07.860 --> 00:01:08.620
Du warst schon bei heute.

00:01:08.940 --> 00:01:14.400
Ich glaube, das Erste, was wir tatsächlich gesehen haben, oder zumindest teilweise gesehen haben, war HTMX.

00:01:15.100 --> 00:01:18.340
Ja, da kamen wir gerade nach dem Podcast noch so rein.

00:01:18.620 --> 00:01:18.780
Ja.

00:01:19.060 --> 00:01:19.240
Ja.

00:01:20.100 --> 00:01:24.420
Und ja, war solide, aber auch nichts Überraschendes oder so.

00:01:24.520 --> 00:01:28.040
Ich weiß nicht genau, ob jemand von euch da irgendwas Neues gesehen hat.

00:01:28.040 --> 00:01:29.120
Also, ich finde, dann...

00:01:29.120 --> 00:01:30.820
Ja, nachdem wir die erste Hälfte verpasst haben.

00:01:30.920 --> 00:01:31.320
Ja, stimmt.

00:01:31.420 --> 00:01:32.920
Da kann man auch nicht so wirklich was zu sagen.

00:01:33.000 --> 00:01:35.800
Und ich war kurz im Gym- und Barbereich.

00:01:36.660 --> 00:01:36.980
Oh.

00:01:37.140 --> 00:01:39.280
Also, ich habe es gesehen und ich würde mich da anschließen.

00:01:39.420 --> 00:01:41.680
Also, ich fand es solide, wenn man sich nicht damit beschäftigt hat.

00:01:41.700 --> 00:01:44.500
Auf jeden Fall super hilfreich, wenn man sich nicht damit beschäftigt hat.

00:01:44.540 --> 00:01:46.080
Glaube ich, nicht allzu viele neue Dinge.

00:01:47.160 --> 00:01:48.700
Kurzes Zeitnot, bevor du runtergehst.

00:01:49.340 --> 00:01:54.160
Den Talk mittags von Sebastian hattet ihr den besprochen, weil der ist ja auch aus der Region bei uns.

00:01:54.460 --> 00:01:54.700
Aus Völln.

00:01:56.480 --> 00:01:57.360
Ach, den hatten wir nicht besprochen.

00:01:57.640 --> 00:01:57.880
Nein, den hatten wir nicht besprochen.

00:01:57.880 --> 00:01:57.900
Nein, den hatten wir nicht besprochen.

00:01:57.900 --> 00:01:59.100
Den haben wir gesehen.

00:01:59.260 --> 00:01:59.460
Genau, genau.

00:01:59.660 --> 00:02:00.340
Den haben wir nicht auch noch.

00:02:00.540 --> 00:02:01.520
Ja, dann haben wir das doch.

00:02:02.160 --> 00:02:06.460
Genau, da freue ich mich über ein bisschen, dass es geklappt hat, weil er hatte mich noch gefragt,

00:02:07.180 --> 00:02:12.240
weil ich ja schon mal letztes Mal bei der DjangoCon mich beworben hatte und genommen wurde,

00:02:12.240 --> 00:02:18.600
wie es denn aussieht und ob er meint, dass die Idee fliegt.

00:02:18.900 --> 00:02:21.160
Und genau, fand das eine coole Sache.

00:02:22.180 --> 00:02:24.240
Ich fand den Vortrag tatsächlich noch cooler.

00:02:25.020 --> 00:02:27.800
Also, für mich, ich habe mehr mitgenommen, als ich jetzt persönlich erwartet hätte,

00:02:27.800 --> 00:02:28.040
noch.

00:02:28.280 --> 00:02:29.760
Vielleicht erst mal kurz, worum ging es denn?

00:02:29.820 --> 00:02:30.740
Sorry, sorry, natürlich.

00:02:31.180 --> 00:02:36.480
Genau, also der hieß The Fine Print in Django Release Notes und es ging um neue Features in den neuen Versionen.

00:02:36.640 --> 00:02:43.160
Also im Endeffekt, der Aufhänger ist, liest die Release Notes, abgesehen von dem einen megakrassen geilen Feature,

00:02:43.300 --> 00:02:48.660
weil man halt da sehr viele Dinge immer kommt, die einem das Leben leichter machen, wo man Code sparen kann,

00:02:48.800 --> 00:02:54.680
irgendwelche fiesen Hex-Walkarounds ausbauen kann und hat sich dann durch die 5.x-Versionen durchgehangelt.

00:02:54.820 --> 00:02:56.500
Da waren solche Sachen dabei, die ich noch nicht gesehen hatte.

00:02:56.920 --> 00:02:57.640
Ja, der Code.

00:02:57.640 --> 00:03:01.960
Der Code, da hat er das ja vorhin auch so erwähnt, dass er auf keinen Fall wieder zu 4.2 zurückgehen würde, wenn das...

00:03:01.960 --> 00:03:02.140
Ja.

00:03:02.340 --> 00:03:03.260
Wenn die dich verhalten lässt.

00:03:03.740 --> 00:03:03.960
Genau.

00:03:04.540 --> 00:03:11.160
Und genau, freut mich sehr, weil der ist jetzt auch bei, auch ein Regular beim Colony, Django Cologne.

00:03:11.440 --> 00:03:13.140
Was hat der denn alles Schönes erzählt?

00:03:13.360 --> 00:03:14.720
Vielleicht kannst du so ein paar...

00:03:14.720 --> 00:03:18.420
Ach, da fragst du mich Sachen, es ist immer so schwer, sich in Details zu erinnern, wenn man sich so am Abend tagt.

00:03:18.420 --> 00:03:20.780
Wenn man nicht so Notizen hat, wie der Johannes hier vor sich.

00:03:20.780 --> 00:03:23.960
Ja, ich war aber nicht in dem Talk, deshalb hatte ich keine Notizen zu dem Vortrag.

00:03:24.660 --> 00:03:25.180
Da war ja was.

00:03:25.180 --> 00:03:25.380
Ja.

00:03:25.880 --> 00:03:26.240
Ja.

00:03:26.240 --> 00:03:26.280
Ja.

00:03:26.280 --> 00:03:26.340
Ja.

00:03:26.340 --> 00:03:26.360
Ja.

00:03:26.360 --> 00:03:26.380
Ja.

00:03:26.380 --> 00:03:26.400
Ja.

00:03:26.400 --> 00:03:26.420
Ja.

00:03:26.420 --> 00:03:26.440
Ja.

00:03:26.440 --> 00:03:27.600
Ja.

00:03:27.600 --> 00:03:27.600


00:03:27.600 --> 00:03:27.600


00:03:27.600 --> 00:03:27.600


00:03:27.600 --> 00:03:27.600


00:03:27.600 --> 00:03:27.600


00:03:27.600 --> 00:03:27.600


00:03:27.600 --> 00:03:27.600


00:03:27.600 --> 00:03:27.600


00:03:27.600 --> 00:03:27.600


00:03:27.600 --> 00:03:27.600


00:03:27.600 --> 00:03:27.600


00:03:27.600 --> 00:03:27.600


00:03:27.600 --> 00:03:27.600


00:03:27.600 --> 00:03:27.600


00:03:27.600 --> 00:03:27.600


00:03:27.600 --> 00:03:27.600


00:03:27.600 --> 00:03:27.600


00:03:27.600 --> 00:03:27.600


00:03:27.600 --> 00:03:27.600


00:03:27.600 --> 00:03:27.600


00:03:27.600 --> 00:03:27.600


00:03:27.600 --> 00:03:27.600


00:03:27.600 --> 00:03:27.600


00:03:27.600 --> 00:03:27.600


00:03:27.600 --> 00:03:27.600


00:03:27.600 --> 00:03:27.600


00:03:27.600 --> 00:03:27.600


00:03:27.600 --> 00:03:27.600


00:03:27.600 --> 00:03:27.600


00:03:27.600 --> 00:03:27.600


00:03:27.600 --> 00:03:27.600


00:03:27.600 --> 00:03:27.600


00:03:27.600 --> 00:03:27.600


00:03:27.600 --> 00:03:27.600


00:03:27.600 --> 00:03:27.600


00:03:27.600 --> 00:03:27.600


00:03:27.600 --> 00:03:27.600


00:03:27.600 --> 00:03:27.600


00:03:27.600 --> 00:03:27.600


00:03:27.600 --> 00:03:27.600


00:03:27.600 --> 00:03:27.600


00:03:27.600 --> 00:03:27.600


00:03:27.600 --> 00:03:39.680
Ja.

00:03:39.680 --> 00:03:39.680


00:03:39.680 --> 00:03:39.680


00:03:39.680 --> 00:03:39.680


00:03:39.680 --> 00:03:39.680


00:03:39.680 --> 00:03:39.680


00:03:39.680 --> 00:03:39.740
Ja.

00:03:39.800 --> 00:03:33.560
!

00:03:33.560 --> 00:03:34.900
die auch übersetzbar sind.

00:03:36.480 --> 00:03:37.460
Und es waren im Endeffekt

00:03:37.460 --> 00:03:39.580
alles relativ kleine Dinge, aber immer auf Use Cases

00:03:39.580 --> 00:03:41.520
bezogen, wie sie es halt vorher gelöst haben

00:03:41.520 --> 00:03:43.460
und nachher. Also selbst wenn man

00:03:43.460 --> 00:03:45.220
jetzt sagt, oh, diesen Case hatte ich noch nie,

00:03:45.320 --> 00:03:47.540
ich muss noch nie eine Custom Unique

00:03:47.540 --> 00:03:48.440
Constraint definieren,

00:03:49.200 --> 00:03:51.340
dann war halt immer so, ah, aber das sieht tatsächlich

00:03:51.340 --> 00:03:53.560
nützlich aus, weil diesen Fall kann ich

00:03:53.560 --> 00:03:55.520
mir nicht vorstellen, weil man ihn halt präsentiert bekommt.

00:03:55.900 --> 00:03:56.860
Also wie gesagt, das

00:03:56.860 --> 00:03:59.280
war deutlich, auch für mich,

00:03:59.660 --> 00:04:01.640
deutlich nützlicher, als ich es mir eigentlich vorgestellt hatte.

00:04:01.640 --> 00:04:03.320
Weil ich dachte eigentlich, ich weiß schon alles,

00:04:03.320 --> 00:04:05.400
aber tatsächlich habe ich scheinbar das Frameplay

00:04:05.400 --> 00:04:06.160
auch nicht so genau gelesen.

00:04:06.820 --> 00:04:09.400
Das ist aber auch wirklich

00:04:09.400 --> 00:04:11.460
so eine Sache, dass in vielen Frameworks

00:04:11.460 --> 00:04:13.640
hat man ja diesen Death by a Thousand Papercuts.

00:04:13.860 --> 00:04:15.320
Das sind einfach viele,

00:04:15.460 --> 00:04:17.260
viele kleine Sachen, die gut oder

00:04:17.260 --> 00:04:18.940
nicht so gut sind. Und

00:04:18.940 --> 00:04:21.320
ich glaube, dass das tatsächlich eine der Stärken von Django ist,

00:04:21.380 --> 00:04:23.240
dass die halt auch an diesen Kleinigkeiten arbeiten

00:04:23.240 --> 00:04:25.260
und dann auch sagen, wir haben an diesen Kleinigkeiten

00:04:25.260 --> 00:04:27.560
gearbeitet und dass die sich dann so langsam mit der Zeit

00:04:27.560 --> 00:04:28.880
auflösen.

00:04:29.340 --> 00:04:31.480
Ich kann ja auch nochmal in diesem Kontext

00:04:31.480 --> 00:04:33.200
erwähnen, dass ich es in 5.2 meine erste

00:04:33.200 --> 00:04:34.560
Django-Contribution drin habe.

00:04:34.660 --> 00:04:36.680
Oh, herzlichen Glückwunsch.

00:04:37.060 --> 00:04:38.600
Was bringst du uns denn?

00:04:38.640 --> 00:04:41.140
Ich habe für, im Zuge von meinem Pony Express

00:04:41.140 --> 00:04:43.020
Package, habe ich nach der Django-Convigo, habe ich

00:04:43.020 --> 00:04:45.280
einen Vortrag darüber gehalten. Das ist ein Package,

00:04:45.280 --> 00:04:47.460
was E-Mailing ein bisschen vereinfacht.

00:04:47.580 --> 00:04:48.320
Also wirklich die

00:04:48.320 --> 00:04:51.200
programmatische Erstellung und Testen von

00:04:51.200 --> 00:04:52.540
E-Mails, was ich relativ

00:04:52.540 --> 00:04:55.280
verbose finde, wenn man das mit den gegebenen

00:04:55.280 --> 00:04:56.060
Django-Tools macht.

00:04:56.720 --> 00:04:58.540
Und fürs Testing,

00:04:58.880 --> 00:05:01.260
eine E-Mail hat ja nicht nur Text,

00:05:01.420 --> 00:05:02.380
sondern die hat ja verschiedene,

00:05:03.200 --> 00:05:05.140
Text, also Inhalte.

00:05:05.240 --> 00:05:07.140
Also die kann theoretisch Medieninhalte haben.

00:05:07.500 --> 00:05:09.320
Es gibt den HTML-Inhalt und den Plaintext-Inhalt.

00:05:09.360 --> 00:05:11.080
Die sind, glaube ich, die relevantesten für die meisten

00:05:11.080 --> 00:05:12.200
modernen E-Mail-Clients.

00:05:12.900 --> 00:05:15.060
Und man musste im Endeffekt wirklich manuell

00:05:15.060 --> 00:05:17.320
sich durch ein multidimensionales Dictionary

00:05:17.320 --> 00:05:19.180
in den E-Mail-Alternatives durchgraben, wenn man

00:05:19.180 --> 00:05:21.340
das testen möchte. Dafür haben wir in dem Package

00:05:21.340 --> 00:05:23.120
für die Testsuit einen Wrapper geschrieben.

00:05:23.360 --> 00:05:24.840
Also die Testsuit nicht fürs Package, sondern

00:05:24.840 --> 00:05:27.240
für die E-Mail-Klassen, die man produziert

00:05:27.240 --> 00:05:28.980
mit dem Package. Und

00:05:28.980 --> 00:05:31.160
habe dann vorgeschlagen, ob das nicht ein relativer

00:05:31.160 --> 00:05:32.960
No-Brainer wäre, wenn man sowas auch

00:05:32.960 --> 00:05:34.900
irgendwie dem E-Mail-Alternatives geben könnte.

00:05:35.340 --> 00:05:37.060
Dass es quasi alle, also

00:05:37.060 --> 00:05:37.340
diese,

00:05:38.880 --> 00:05:40.400
wie nennt man das, dieses

00:05:40.400 --> 00:05:43.240
Text-slash-JavaScript-

00:05:43.240 --> 00:05:44.740
Script-slash-irgendwas, diese,

00:05:45.040 --> 00:05:45.760
ich komme gerade nicht drauf,

00:05:45.800 --> 00:05:49.120
Content-Types, genau.

00:05:49.220 --> 00:05:49.960
Ja, achso, Content-Types.

00:05:50.760 --> 00:05:52.880
Dass man quasi alles, was mit Text-slash anfängt

00:05:52.880 --> 00:05:54.580
und was man hinzugefügt, was in 99%

00:05:54.580 --> 00:05:56.940
der Fälle wahrscheinlich immer nur Plain und

00:05:56.940 --> 00:05:59.080
HTML sein wird, trotzdem, dass man das dann

00:05:59.080 --> 00:06:00.820
aus dem Objekt zurückbekommt und dann halt im Test

00:06:00.820 --> 00:06:02.860
sehr einfach darauf versorgen kann, ohne halt

00:06:02.860 --> 00:06:04.960
sich durch irgendwelche nicht dokumentierten

00:06:04.960 --> 00:06:06.840
APIs durchzugraben. Und

00:06:06.840 --> 00:06:09.100
genau, das ging auch tatsächlich relativ gut durch.

00:06:09.220 --> 00:06:10.620
Ich habe dann nochmal was anderes probiert

00:06:10.620 --> 00:06:12.860
nach meinem Erfolgserlebnis

00:06:12.860 --> 00:06:14.820
und habe dann genau gemerkt, was Carlton

00:06:14.820 --> 00:06:16.920
heute in seinem Vortrag, ich greife vor, aber

00:06:16.920 --> 00:06:18.860
was er sagt, kann ich jetzt nachher

00:06:18.860 --> 00:06:20.600
nochmal meine persönliche Erfahrung dazu

00:06:20.600 --> 00:06:21.280
spiegeln.

00:06:22.560 --> 00:06:24.820
Ja, da werden wir auf jeden Fall gleich nochmal eingehen. Das ist auch das Thema von gestern,

00:06:24.900 --> 00:06:26.840
was wir dann, glaube ich, nochmal ein bisschen aufmachen, wo es um

00:06:26.840 --> 00:06:28.880
geht, wie man denn partizipieren

00:06:28.880 --> 00:06:30.760
kann an Django. Aber vielleicht

00:06:30.760 --> 00:06:32.140
machen wir chronologisch weiter mit den Talks.

00:06:32.860 --> 00:06:35.460
Ja, der nächste war Solving a Python

00:06:35.460 --> 00:06:37.120
Mystery. Oder war

00:06:37.120 --> 00:06:39.000
jemand bei dem Quality Workshop?

00:06:39.420 --> 00:06:41.120
Den war ich auch nicht drin.

00:06:41.380 --> 00:06:42.220
Nee, leider nicht.

00:06:43.220 --> 00:06:44.600
Aber irgendwie hat es nicht

00:06:44.600 --> 00:06:46.360
geklappt.

00:06:46.980 --> 00:06:48.940
Aber der war gut.

00:06:49.140 --> 00:06:50.620
Der war sehr gut. Insofern...

00:06:50.620 --> 00:06:53.060
Nicht so, dass ich den jetzt anwenden könnte, aber

00:06:53.060 --> 00:06:55.040
einfach mal mit SJS überall

00:06:55.040 --> 00:06:57.020
reingucken und schauen,

00:06:57.140 --> 00:06:58.540
was da für Dateien offen sind und so.

00:06:59.320 --> 00:07:00.640
Ja, genau.

00:07:00.780 --> 00:07:01.920
Da ging es hauptsächlich um so

00:07:01.920 --> 00:07:02.800
Dinge,

00:07:02.860 --> 00:07:05.180
die man halt... Also was ist, wenn man ein Produktionssystem

00:07:05.180 --> 00:07:06.560
hat, wo man nicht so gut drauf gucken kann?

00:07:06.980 --> 00:07:08.760
Man hat bloß halt vielleicht

00:07:08.760 --> 00:07:10.880
Logfiles oder man kann nur extern drauf gucken, man kommt

00:07:10.880 --> 00:07:12.460
nicht in die Prozesse rein. Ja, da hat man eine

00:07:12.460 --> 00:07:13.940
eingeschränkte Shell drauf, sowas.

00:07:14.680 --> 00:07:16.880
Aber man kann halt... Ja, also zum Beispiel, man hat

00:07:16.880 --> 00:07:18.560
einen Docker-Container. Wie kommt man dann das Environment

00:07:18.560 --> 00:07:20.820
halt über das Proc-File-System?

00:07:21.080 --> 00:07:22.240
Kommt man da halt dann ran?

00:07:22.680 --> 00:07:24.980
Und dann hat man die ganzen Credentials,

00:07:25.000 --> 00:07:26.520
die man so braucht, um halt in die anderen Sachen

00:07:26.520 --> 00:07:27.640
reingucken zu können.

00:07:28.360 --> 00:07:30.720
Und dann kann man viel mit

00:07:30.720 --> 00:07:32.540
SJS machen. Und ja, das mache ich

00:07:32.540 --> 00:07:32.840
auch.

00:07:32.860 --> 00:07:33.360
Das mache ich auch sehr gern.

00:07:35.200 --> 00:07:37.000
Und naja, es gibt halt

00:07:37.000 --> 00:07:38.340
noch so ein paar andere Sachen, die man halt auch

00:07:38.340 --> 00:07:40.820
sich angucken muss. So wie viel I.O. Operationen

00:07:40.820 --> 00:07:42.700
pro Sekunde gibt es denn eigentlich auf der Maschine?

00:07:43.200 --> 00:07:44.780
Was macht die denn? Was schreibt die? Was liest

00:07:44.780 --> 00:07:46.760
die denn so? Und er hatte, ich glaube,

00:07:46.800 --> 00:07:48.600
das erste Beispiel, was er hatte, war irgendwie ein Kafka,

00:07:49.520 --> 00:07:50.540
was irgendwie 25

00:07:50.540 --> 00:07:52.860
Messages pro Sekunde gemacht hat oder so.

00:07:52.920 --> 00:07:54.680
Und alle waren so halbwegs zufrieden. Das ist übrigens auch

00:07:54.680 --> 00:07:56.720
etwas, was ich immer wieder sehe bei Kunden oder so, dass sie halt

00:07:56.720 --> 00:07:58.400
mit Dingen zufrieden sind. Und man ist einfach so,

00:07:58.720 --> 00:08:00.680
Moment, das kann nicht sein. Das ist

00:08:00.680 --> 00:08:02.780
einfach so weit, dass es mehrere Größen

00:08:02.780 --> 00:08:04.720
Ordnung von dem entfernt, was man erwarten

00:08:04.720 --> 00:08:06.320
würde. Das kann einfach nicht sein.

00:08:06.600 --> 00:08:08.420
Aber oft wissen Leute halt nicht,

00:08:09.140 --> 00:08:10.720
dass das eigentlich irgendwie anders aussehen

00:08:10.720 --> 00:08:12.280
sollte. Und denken dann, ja, so ist das halt.

00:08:12.700 --> 00:08:13.960
Und dann machen sie halt ein Kafka-Cluster.

00:08:14.560 --> 00:08:16.620
Statt halt mal zu gucken, warum das nicht so richtig funktioniert.

00:08:16.880 --> 00:08:18.780
Dann, genau,

00:08:18.900 --> 00:08:20.100
war da halt so eine Geschichte,

00:08:20.380 --> 00:08:22.640
TCP, No-Delay kann man irgendwie

00:08:22.640 --> 00:08:24.320
setzen, wenn man...

00:08:24.320 --> 00:08:25.900
Genau, macht Python,

00:08:26.520 --> 00:08:28.600
macht es irgendwie nicht. Und dann

00:08:28.600 --> 00:08:30.540
sieht man so ein typisches 40 Millisekunden

00:08:30.540 --> 00:08:32.620
Delay irgendwie. Und wenn man

00:08:32.620 --> 00:08:34.240
das irgendwo sieht, dann weiß man schon so,

00:08:34.300 --> 00:08:35.760
oha, genau.

00:08:36.400 --> 00:08:38.180
Und, ja, solche Sachen halt.

00:08:38.640 --> 00:08:40.480
Und, was war das? Was hat er

00:08:40.480 --> 00:08:41.380
noch alles erzählt?

00:08:42.100 --> 00:08:43.500
TCP, No-Delay, genau.

00:08:43.740 --> 00:08:46.220
Es ging schon sehr weit runter in den Kernel.

00:08:46.280 --> 00:08:48.220
Das war eigentlich das Interessante, dass der halt

00:08:48.220 --> 00:08:50.600
nicht Python debugged hat, sondern er hat eigentlich

00:08:50.600 --> 00:08:52.780
Linux und File Handles

00:08:52.780 --> 00:08:54.160
und Kernel Traces debugged.

00:08:54.260 --> 00:08:56.420
Das war ganz einfach. Er meinte so, ja, von außen

00:08:56.420 --> 00:08:58.360
solche Sachen debuggen, das ist eigentlich super einfach.

00:08:58.660 --> 00:09:00.020
Und dann hat er ein Diagramm irgendwie

00:09:00.020 --> 00:09:02.520
auf einer Seite gezeigt und das war halt ultra kompliziert.

00:09:02.620 --> 00:09:03.860
Das war alles an Teilen irgendwie

00:09:03.860 --> 00:09:06.280
vom Kernel bis zu...

00:09:06.280 --> 00:09:07.620
Und dann gibt es auch noch irgendwie

00:09:07.620 --> 00:09:10.240
eBPF-Trace oder so. Es gibt ja dieses tolle neue

00:09:10.240 --> 00:09:11.900
Interface da, so Berkeley

00:09:11.900 --> 00:09:15.180
Packet-Filter-Interface

00:09:15.180 --> 00:09:16.360
im Kernel. Da kannst du halt auch

00:09:16.360 --> 00:09:17.980
tatsächlich die Syscrolls selber

00:09:17.980 --> 00:09:20.180
tracen. Du kannst eigenen Code in den

00:09:20.180 --> 00:09:21.240
Kernel

00:09:21.240 --> 00:09:22.680
injecten.

00:09:22.720 --> 00:09:25.920
Der dann

00:09:25.920 --> 00:09:28.320
im Kernel, vom Kernel, formal bewiesen

00:09:28.320 --> 00:09:30.440
wird, dass er nichts Böses tut und dann ausgeführt werden kann.

00:09:31.400 --> 00:09:31.720
Ja, dann.

00:09:31.720 --> 00:09:32.600
Ja, ja.

00:09:32.620 --> 00:09:35.360
Und jemand, den wir auch schon im Podcast hatten,

00:09:35.440 --> 00:09:37.240
Martin, hat dafür ein Python-To

00:09:37.240 --> 00:09:39.580
irgendwie diese Intermediate-Language-Compiler

00:09:39.580 --> 00:09:41.500
mal geschrieben. Dann kann man das auch in Python machen.

00:09:41.760 --> 00:09:43.160
Also, das Ding ist total gut.

00:09:43.240 --> 00:09:44.840
Er meinte auch, das verwendet er auch häufig.

00:09:45.600 --> 00:09:47.020
Irgendwie, wenn er nochmal tiefer gehen muss.

00:09:48.380 --> 00:09:48.700
Ja,

00:09:49.360 --> 00:09:51.320
ansonsten weiß ich, kann mich nicht mehr so

00:09:51.320 --> 00:09:53.520
wirklich erinnern an alle Details, aber es war halt

00:09:53.520 --> 00:09:55.300
so, ja, also man muss immer mal gucken

00:09:55.300 --> 00:09:57.300
und oft

00:09:57.300 --> 00:09:59.260
kann man halt mit so

00:09:59.260 --> 00:10:01.480
Standard-Linux-Tools irgendwie

00:10:01.480 --> 00:10:02.480
dann doch rauskriegen, was da

00:10:02.620 --> 00:10:04.640
irgendwie schiefläuft an Produktionssystemen.

00:10:04.740 --> 00:10:06.620
Also, ja. Aber der, man merkte, der hatte

00:10:06.620 --> 00:10:08.540
richtig viel Erfahrung und schon eine Menge gesehen.

00:10:09.580 --> 00:10:10.540
Mein Hauptgedanke war,

00:10:10.620 --> 00:10:12.660
ich bin dankbar für die Abstraktionsebene, die wir

00:10:12.660 --> 00:10:14.660
inzwischen in unserem Berufsfeld haben, dass das

00:10:14.660 --> 00:10:16.720
Dinge sind, mit denen ich einfach nicht beschäftigen muss.

00:10:17.320 --> 00:10:17.460
Ja.

00:10:17.960 --> 00:10:20.580
Mein Gedanke war, dass ich dankbar bin, dass

00:10:20.580 --> 00:10:22.320
es so Leute gibt wie ihn, der das macht.

00:10:23.780 --> 00:10:24.700
Meinte er auch erst halt so,

00:10:24.740 --> 00:10:26.520
wenn er irgendwo einen 500er-Fehler sieht oder

00:10:26.520 --> 00:10:28.080
sowas, dann, er kann nicht mehr schlafen.

00:10:28.200 --> 00:10:29.060
Er muss das irgendwie rauskriegen.

00:10:29.060 --> 00:10:30.920
Das geht auch ohne Unix-Debugging.

00:10:32.620 --> 00:10:33.820
Ja.

00:10:34.180 --> 00:10:34.340
Ja.

00:10:35.240 --> 00:10:36.280
Genau, ja. War so schön.

00:10:36.500 --> 00:10:39.200
Danach war der Celery-Vortrag,

00:10:39.340 --> 00:10:41.480
also der Parallelisierungs-Vortrag mit Celery.

00:10:42.120 --> 00:10:43.200
Den fand ich jetzt nicht so,

00:10:43.620 --> 00:10:45.460
der ist nicht so tief reingegangen,

00:10:46.000 --> 00:10:47.320
wie ich gedacht hätte, dass man kann.

00:10:47.400 --> 00:10:48.620
Und für mich war es mehr so ein,

00:10:49.640 --> 00:10:51.180
so eine Bestätigung, dass die Sachen,

00:10:51.260 --> 00:10:53.300
die ich rausgefunden habe, nicht ganz abwegig sind.

00:10:53.380 --> 00:10:55.020
Ja, ja, ja. Und die waren?

00:10:55.820 --> 00:10:57.020
Ja, dass du

00:10:57.020 --> 00:10:59.300
Tasks in möglichst kleine Teile aufteilst,

00:10:59.300 --> 00:11:01.060
dass du ein Modell hast mit einem Status drauf,

00:11:01.140 --> 00:11:02.300
dass du den Status atomar änderst,

00:11:02.620 --> 00:11:05.260
also in der Transaktion

00:11:05.260 --> 00:11:07.520
machst du ein Select-for-Update auf dieses Modell,

00:11:07.640 --> 00:11:08.840
änderst den Status, speicherst den,

00:11:09.080 --> 00:11:11.420
dann, das hat er nicht gezeigt, dann mache ich es

00:11:11.420 --> 00:11:13.580
normalerweise so, dass ich an dem Punkt die Transaktion beende,

00:11:14.280 --> 00:11:15.400
weil dann habe ich ja mein Modell

00:11:15.400 --> 00:11:16.880
in der Hand mit dem korrekten Status,

00:11:16.980 --> 00:11:18.180
dass ich kein anderer mehr nehmen kann.

00:11:18.620 --> 00:11:21.200
Und dann kannst du diesen Task abarbeiten und dann hast du nochmal so einen Block,

00:11:21.320 --> 00:11:23.480
der dann den Status auf die nächste Stufe stellt,

00:11:23.560 --> 00:11:24.820
sodass es verarbeitet werden kann.

00:11:25.380 --> 00:11:27.600
Und dieses Muster, das ist so was,

00:11:27.600 --> 00:11:29.920
da, ich weiß nicht, vielleicht bin ich da

00:11:29.920 --> 00:11:31.560
als einziger draufgekommen oder auch nicht,

00:11:31.660 --> 00:11:32.600
ja, und dieser Vortragsmodell,

00:11:32.620 --> 00:11:34.980
war so ein bisschen die Bestätigung, ich bin nicht als einziger draufgekommen.

00:11:35.480 --> 00:11:36.640
Das ist immer sehr gut,

00:11:36.740 --> 00:11:39.560
weil das eben bedeutet, dass man nicht was ganz Verrücktes macht.

00:11:39.780 --> 00:11:40.880
Also du hast ein Statusmodell,

00:11:40.960 --> 00:11:42.320
das halt dann immer da, wo bist du denn gerade,

00:11:42.480 --> 00:11:44.380
und das wird dann immer transaktionsfroh angefasst

00:11:44.380 --> 00:11:46.600
und du füllst das dann auf Dinge,

00:11:46.740 --> 00:11:48.540
die auf dieses Statusmodell...

00:11:48.540 --> 00:11:50.900
Ja, und wenn du in so ein Task reingehst,

00:11:51.360 --> 00:11:52.380
dann erwartest du,

00:11:52.560 --> 00:11:54.420
dass das Objekt, was du bearbeitest,

00:11:54.480 --> 00:11:55.560
in einem bestimmten Status ist

00:11:55.560 --> 00:11:58.400
und änderst es in einen anderen Status,

00:11:58.500 --> 00:12:00.280
damit kein anderer Task das anfassen kann.

00:12:00.280 --> 00:12:01.620
Das heißt, direkt am Anfang?

00:12:02.620 --> 00:12:03.620
Das ist das allererste, was du machst,

00:12:03.740 --> 00:12:04.860
bevor du irgendwas anderes machst.

00:12:04.980 --> 00:12:06.980
Auch, änderst du das auf ein Processing oder sowas?

00:12:07.280 --> 00:12:08.960
Ja, genau, also es kommt darauf an,

00:12:09.000 --> 00:12:10.700
je nachdem, was du halt für Status hast.

00:12:11.920 --> 00:12:14.360
Es kann ja sein, dass du durch mehrere Stufen durch musst.

00:12:14.420 --> 00:12:15.100
Genau, also ich meine,

00:12:15.200 --> 00:12:16.660
du änderst das nicht direkt in den nächsten,

00:12:16.780 --> 00:12:17.900
sondern in den einen Intermittenten.

00:12:17.920 --> 00:12:19.600
Sondern du änderst das in einen,

00:12:19.920 --> 00:12:22.380
der sagt, dass es gerade bearbeitet wird,

00:12:22.480 --> 00:12:23.660
auf eine bestimmte Art und Weise

00:12:23.660 --> 00:12:25.940
und dass kein anderer dieses gerade bearbeiten darf.

00:12:26.660 --> 00:12:29.620
Und dann machst du deine Verarbeitung da drauf

00:12:29.620 --> 00:12:30.800
und wenn die fehlschlägt,

00:12:31.360 --> 00:12:32.600
dann machst du es rückgängig,

00:12:32.620 --> 00:12:33.920
und gehst zurück auf den vorherigen Status,

00:12:34.020 --> 00:12:35.260
weil dann kannst du nämlich einen Retry machen.

00:12:35.860 --> 00:12:36.920
Wenn die funktioniert,

00:12:37.140 --> 00:12:38.580
dann stellst du auf den nächsten Status,

00:12:38.720 --> 00:12:40.840
sodass der nächste Prozessschritt gehen kann.

00:12:41.260 --> 00:12:42.580
In der einfachsten Stufe ist es,

00:12:42.700 --> 00:12:43.840
du hast einen, der ist pending,

00:12:43.960 --> 00:12:45.420
dann hast du Processing und dann hast du Done.

00:12:46.700 --> 00:12:48.620
Aber du kannst natürlich diesen Aufbau,

00:12:49.240 --> 00:12:50.460
kannst natürlich x Stufen haben.

00:12:50.580 --> 00:12:52.700
Du kannst ja 5 verschiedene Verarbeitungsschritte

00:12:52.700 --> 00:12:54.760
oder 100 verschiedene oder dann auch verzweigt haben.

00:12:56.380 --> 00:12:57.720
Und das Wichtige ist aber,

00:12:57.800 --> 00:12:59.380
dass du tatsächlich dieses Statusfeld hast.

00:12:59.500 --> 00:13:01.340
Eins, was Warte auf Verarbeitung heißt

00:13:01.340 --> 00:13:02.100
und eins, das heißt,

00:13:02.100 --> 00:13:03.100
das wird verarbeitet.

00:13:04.100 --> 00:13:05.340
Und dann kannst du sicher gehen,

00:13:05.440 --> 00:13:06.600
dass du den nicht doppelt verarbeitest.

00:13:06.700 --> 00:13:07.900
Wenn du das nämlich das erste machst,

00:13:08.000 --> 00:13:09.060
das erste, was du machst,

00:13:09.160 --> 00:13:11.160
du holst dir den aus der Datenbank

00:13:11.260 --> 00:13:12.540
mit der Datenbank Transaktion,

00:13:12.640 --> 00:13:14.000
mit einem Select for Update.

00:13:14.100 --> 00:13:15.700
Das Select for Update und genau das hier.

00:13:15.800 --> 00:13:17.600
Genau, das Select for Update sorgt genau dafür,

00:13:17.700 --> 00:13:18.600
dass wenn du den,

00:13:18.700 --> 00:13:20.500
wenn du den rausholst aus der Datenbank

00:13:20.600 --> 00:13:22.100
mit dem Status und der ID,

00:13:22.200 --> 00:13:24.100
das ist sozusagen der kritische Fehler.

00:13:24.200 --> 00:13:26.100
Du suchst nach der ID und nach dem Status

00:13:26.200 --> 00:13:28.000
und dann kriegst du von der Datenbank

00:13:28.100 --> 00:13:30.100
eben genau einen oder keinen.

00:13:30.200 --> 00:13:32.000
Wenn du keinen kriegst, sagst du, gut,

00:13:32.100 --> 00:13:33.200
dann hat es wohl schon jemand anders gemacht

00:13:33.300 --> 00:13:35.400
oder der ist schon fertig oder was auch immer.

00:13:35.500 --> 00:13:38.200
Und wenn du einen kriegst, machst du weiter.

00:13:38.300 --> 00:13:41.000
Und so schützt du dich quasi davor,

00:13:41.100 --> 00:13:44.400
dass du diese Race Conditions in die Datenbank rein trägst,

00:13:44.500 --> 00:13:47.000
dass du sagst, okay, der verarbeitet jetzt was

00:13:47.100 --> 00:13:49.800
und derweil verarbeitet jemand anders auch noch irgendwas.

00:13:49.900 --> 00:13:51.700
Und er hat das gestern Idempotency genannt,

00:13:51.800 --> 00:13:56.400
also Idempotenz meiner Meinung nach nicht 100% korrekt genannt.

00:13:56.500 --> 00:13:59.000
Darfst du es ja nicht ein paar Mal ausführen.

00:13:59.100 --> 00:14:00.500
Ja, weil Idempotenz eigentlich bedeutet,

00:14:00.600 --> 00:14:01.800
wenn du es mehrmals ausführst,

00:14:01.800 --> 00:14:03.000
hast du das gleiche Ergebnis.

00:14:03.100 --> 00:14:04.400
Ja.

00:14:04.500 --> 00:14:07.900
So ein bisschen der Outcome ist das gleiche.

00:14:08.000 --> 00:14:09.700
Was wäre der richtige Begriff dafür?

00:14:09.800 --> 00:14:11.300
Korrekte Idempotenz.

00:14:11.400 --> 00:14:14.600
Ja, der korrekte Begriff wäre hier irgendwie Locking oder sowas.

00:14:14.700 --> 00:14:18.000
Du hast einen Lock da drauf und das machst du so eingerichtet,

00:14:18.100 --> 00:14:19.600
dass es wirklich nur eine kommt.

00:14:19.700 --> 00:14:22.900
Wie gesagt, dieser Talk war für mich hauptsächlich Bestätigung dessen,

00:14:23.000 --> 00:14:26.600
dass das, was ich mir ausgedacht habe, nicht ganz verrückt ist.

00:14:26.700 --> 00:14:29.800
Das ist ja ungeheuer viel wichtiger, ungeheuer viel wert,

00:14:29.900 --> 00:14:31.200
dass du nicht so,

00:14:31.200 --> 00:14:34.500
ja, man baut sich ja oft so Sachen und dann kommt man auf irgendwelche Lösungen

00:14:34.600 --> 00:14:36.600
und irgendwann findet man raus, das ist absoluter Quatsch.

00:14:36.700 --> 00:14:37.900
Ja, das ist so.

00:14:38.000 --> 00:14:39.000
Ich weiß nicht, was da passiert.

00:14:39.100 --> 00:14:40.500
Das ist mir noch nie passiert.

00:14:40.600 --> 00:14:42.100
Bei mir passiert das ständig.

00:14:42.200 --> 00:14:42.700
Ja.

00:14:42.800 --> 00:14:44.900
Und jetzt mal das andere Erlebnis zu haben,

00:14:45.000 --> 00:14:47.100
ist es nicht ganz Quatsch, was du dir ausgedacht hast.

00:14:47.200 --> 00:14:49.100
Na, schön.

00:14:50.500 --> 00:14:52.100
Ja, genau, genau.

00:14:52.200 --> 00:14:53.800
Aber ja, Celery immer so ein bisschen.

00:14:53.900 --> 00:14:56.100
Aber der macht dann auch so Dinge mit Workflows und keine Ahnung,

00:14:56.200 --> 00:14:56.800
das ist kompliziert.

00:14:56.900 --> 00:14:58.000
Ich denke so, ha, lieber nicht.

00:14:58.100 --> 00:14:59.000
Sowas macht man das nicht.

00:14:59.100 --> 00:15:01.000
Wie ist denn jetzt der Stand mit den Dango-Tasks?

00:15:01.200 --> 00:15:02.300
Die sollten doch jetzt langsam mal.

00:15:02.400 --> 00:15:03.800
Ja, ist aber noch nicht.

00:15:03.900 --> 00:15:04.600
Die kommen auch irgendwann.

00:15:04.700 --> 00:15:06.500
Kommt jetzt dann vielleicht demnächst.

00:15:06.600 --> 00:15:09.000
Aber ich glaube, es geht ja vor allem nur ums Interface erstmal.

00:15:09.100 --> 00:15:12.900
Es gibt ja dieses Package, wo das jetzt erstmal quasi so eine Art,

00:15:13.000 --> 00:15:17.100
ich glaube, die Datenbank-Task, das Primärding implementiert werden.

00:15:17.200 --> 00:15:20.400
Und in Django Core soll tatsächlich nur der Dummy-Taskrunner,

00:15:20.500 --> 00:15:23.000
den man dann für Tests nutzen kann, und das Interface.

00:15:23.100 --> 00:15:25.300
Und diese Idee mit diesen Interfaces finde ich super spannend.

00:15:25.400 --> 00:15:27.300
Es gibt ja jetzt auch starke Überlegungen,

00:15:27.400 --> 00:15:30.200
die ganze Authentifizierung bei Django, was ja auch oft kritisiert wird,

00:15:30.300 --> 00:15:31.100
dass im User-Model,

00:15:31.200 --> 00:15:34.100
in einem sehr Western-Centric-Vorname-Nachname-Konzept,

00:15:34.200 --> 00:15:37.400
das passt oft nicht in vielen Use Cases oder auch anderen Kulturen,

00:15:37.500 --> 00:15:40.700
dann viele, also es wird dann Username-standardmäßig genutzt.

00:15:40.800 --> 00:15:42.100
Du kannst das irgendwie opt-outen.

00:15:42.200 --> 00:15:44.600
Es gibt so Packages, E-Mail-Adresse ist nicht unik,

00:15:44.700 --> 00:15:45.500
also ganz viele Dinge.

00:15:45.600 --> 00:15:48.100
Und dass halt nicht die richtige Lösung wäre, zu sagen,

00:15:48.200 --> 00:15:50.300
wir ändern das jetzt oder wir bauen jetzt was Neues dazu,

00:15:50.400 --> 00:15:52.500
sondern dass man das einfach auch Plug-and-Play macht,

00:15:52.600 --> 00:15:54.400
wie halt auch die Datenbank-Anbindung Plug-and-Plays,

00:15:54.500 --> 00:15:55.800
wie die Caches Plug-and-Play sind,

00:15:55.900 --> 00:15:57.900
wie mehr oder weniger eigentlich alles Plug-and-Plays.

00:15:58.000 --> 00:16:00.200
Und da ein Authentifizierungssystem zu haben,

00:16:00.300 --> 00:16:01.100
wäre natürlich super.

00:16:01.200 --> 00:16:02.800
Ich glaube, die auf diesem gleichen Konzept basiert,

00:16:02.900 --> 00:16:03.800
auf dieses Task.

00:16:03.900 --> 00:16:05.300
Das ist im Endeffekt das Django Core,

00:16:05.400 --> 00:16:08.800
im Endeffekt mit jedem kompatiblen Task-Runner oder Task...

00:16:08.900 --> 00:16:10.600
Ist es Task-Runner? Ich weiß es nicht genau.

00:16:10.700 --> 00:16:14.000
Background-Task-Backend.

00:16:14.100 --> 00:16:15.300
Ja, Backend, genau.

00:16:15.400 --> 00:16:16.900
Task-Backend, dann kommunizieren kann,

00:16:17.000 --> 00:16:18.800
wenn man dann sagt, ich möchte ein 1 mit Celery,

00:16:18.900 --> 00:16:19.700
dann baust du dir eins.

00:16:19.800 --> 00:16:21.300
Und wenn du sagst, mir reicht die Datenbank,

00:16:21.400 --> 00:16:23.800
dann baust du dir dafür eins oder nimmst das, was da ist.

00:16:23.900 --> 00:16:25.400
Und das...

00:16:25.500 --> 00:16:27.900
Ja, ich warte da aber auch schon sehnsüchtig drauf.

00:16:28.000 --> 00:16:29.300
Wir können auch noch kurz vorgreifen

00:16:29.400 --> 00:16:30.800
auf einen der Lightning Talks,

00:16:30.800 --> 00:16:34.800
weil da war noch mal der Mann da,

00:16:34.900 --> 00:16:36.400
der auch über die Python-Mystery gesprochen hat

00:16:36.500 --> 00:16:39.000
und hat mit so ein kleines bisschen Zorn gesagt hier,

00:16:39.100 --> 00:16:42.300
Celery, das ist alles Mist und viel zu viel Aufwand

00:16:42.400 --> 00:16:44.500
und deshalb habe ich mir mein eigenes geschrieben.

00:16:44.600 --> 00:16:46.400
Und das Interessante daran war,

00:16:46.500 --> 00:16:49.700
dass er das gleiche Interface benutzt hat wie das von Celery.

00:16:49.800 --> 00:16:52.100
Also nicht das Django-Tasks-Interface,

00:16:52.200 --> 00:16:53.700
sondern das von Celery.

00:16:53.800 --> 00:16:55.200
Das heißt, es ist ein Drop-in-Replacement

00:16:55.300 --> 00:16:56.500
und man kann einfach seine Lösung verwenden,

00:16:56.600 --> 00:16:58.600
wenn man keinen Bock mehr hat auf Celery.

00:16:58.700 --> 00:17:00.200
Und wenn es nicht so funktioniert, wie man es möchte,

00:17:00.300 --> 00:17:00.700
geht mal zu Celery.

00:17:00.900 --> 00:17:02.100
Das ist ein guter Eindruck.

00:17:02.200 --> 00:17:04.400
Fand ich auch eine interessante Idee.

00:17:04.500 --> 00:17:06.100
Was ich daran sehr interessant fand,

00:17:06.200 --> 00:17:08.400
ist, dass wenn man viele nutzen...

00:17:08.500 --> 00:17:11.100
Celery kann ja nicht mit der Datenbank als Broker sprechen,

00:17:11.200 --> 00:17:13.000
aus Gründen, die niemand so genau weiß.

00:17:13.100 --> 00:17:15.400
Ja, aber es gibt so ein Interface dafür.

00:17:15.500 --> 00:17:16.400
Ja, aber...

00:17:16.500 --> 00:17:19.300
Aber das wird immer rot umrandet und da...

00:17:19.400 --> 00:17:22.500
Das heißt, die meisten Leute nutzen halt dann Redis oder Revit im Queue

00:17:22.600 --> 00:17:24.400
und ein Derivate von Redis ist das bekannteste.

00:17:24.500 --> 00:17:26.000
Viele Leute nutzen Redis.

00:17:26.100 --> 00:17:27.900
Und dann gibt es halt diesen Disclaimer auf der Webseite,

00:17:28.000 --> 00:17:29.400
dass wenn man halt Schedule...

00:17:29.500 --> 00:17:30.700
Also wenn man quasi Tasks...

00:17:30.800 --> 00:17:32.900
in die Zukunft plant,

00:17:33.000 --> 00:17:35.300
dass es damit Redis-Issues gibt.

00:17:35.400 --> 00:17:36.400
Das ist da seit...

00:17:36.500 --> 00:17:39.100
Also uns ist das glaube ich 2018 auf die Nase gefallen.

00:17:39.200 --> 00:17:41.600
Und unser...

00:17:41.700 --> 00:17:42.700
Also wir haben ja immer gesagt, okay,

00:17:42.800 --> 00:17:44.200
dann nutzen wir Revit im Queue, das war kein Problem.

00:17:44.300 --> 00:17:46.400
Aber im Endeffekt haben wir auch dann einfach angefangen,

00:17:46.500 --> 00:17:48.600
wir planen einfach keine Tasks mehr in die Zukunft,

00:17:48.700 --> 00:17:51.100
weil du kannst ja einfach quasi die schedulen lassen.

00:17:51.200 --> 00:17:51.700
So.

00:17:51.800 --> 00:17:53.000
Aber du kannst ja einen Scheduler verwenden,

00:17:53.100 --> 00:17:53.900
du kannst andere Sachen...

00:17:54.000 --> 00:17:56.700
Also wir haben das wirklich mehr oder weniger gut ausgebaut bekommen.

00:17:56.800 --> 00:17:58.300
Kein Problem mehr, Kuh vom Eis.

00:17:58.400 --> 00:18:00.700
Und dann meinte dann in einem Lightning Talk erst einmal,

00:18:00.800 --> 00:18:01.500
meinte er so,

00:18:01.600 --> 00:18:04.400
ja, ja, ihr denkt, ihr nutzt die nicht.

00:18:04.500 --> 00:18:06.700
Aber in dem Moment, wo ein Retry kommt,

00:18:06.800 --> 00:18:08.100
nutzt ihr die plötzlich schon.

00:18:08.200 --> 00:18:09.200
Und das war mir nicht bewusst.

00:18:09.300 --> 00:18:10.400
Und das ist dann so ein,

00:18:10.500 --> 00:18:11.800
oh, dann sollte ich vielleicht wirklich

00:18:11.900 --> 00:18:13.500
kein Redis zusammen mit Hellraise verwenden.

00:18:15.900 --> 00:18:18.300
Ja, Ivar Skalvans ist der Name.

00:18:18.400 --> 00:18:19.900
Ja, ja, also den Namen mal gesagt.

00:18:20.000 --> 00:18:21.000
Ich verstehe auch nicht so genau,

00:18:21.100 --> 00:18:22.800
warum mit dem Scheduler,

00:18:22.900 --> 00:18:24.800
das funktioniert immer nicht so, wie man das richtig will.

00:18:24.900 --> 00:18:28.800
Und das Package heißt übrigens Django-Task-Queue,

00:18:28.900 --> 00:18:30.100
also wie der Buchstabe.

00:18:30.100 --> 00:18:32.000
Das heißt, irgendwer mal Spaß hat, das auszuprobieren.

00:18:32.100 --> 00:18:34.300
Ja, es gibt leider so ein bisschen viele Django-Task-Sachen,

00:18:34.400 --> 00:18:36.600
die alle so ganz ernst sind.

00:18:36.700 --> 00:18:39.100
Ja, kann ich verlinken, aus jeden Fall.

00:18:39.200 --> 00:18:41.300
Genau.

00:18:41.400 --> 00:18:43.000
Genau, dann kam so ein bisschen,

00:18:43.100 --> 00:18:44.400
ging es so ein bisschen ins Abendprogramm rein,

00:18:44.500 --> 00:18:45.400
da war es schon 17 Uhr.

00:18:45.500 --> 00:18:48.900
Und dann kam der Words-Vortrag.

00:18:49.000 --> 00:18:51.900
Logs, Shells, Caches and other strange words.

00:18:52.000 --> 00:18:54.900
Von einem Dortmunder, das fand ich auch interessant.

00:18:55.000 --> 00:18:57.300
Ja, das ist ja auch relativ nah bei uns dran,

00:18:57.400 --> 00:18:58.400
aber noch nie gehört.

00:18:58.500 --> 00:18:59.800
Nee, ist ungeheuer weit weg, finde ich.

00:19:00.100 --> 00:19:01.200
Ja, ja, gut.

00:19:01.300 --> 00:19:05.100
Ja, Hörertreffen in Stuttgart.

00:19:05.200 --> 00:19:05.900
Ja.

00:19:06.000 --> 00:19:07.200
Die machen sich jetzt dafür ab.

00:19:07.300 --> 00:19:10.600
Genau, der Vortrag.

00:19:10.700 --> 00:19:12.400
Wir haben übrigens ganz kurz zum Hörertreffen,

00:19:12.500 --> 00:19:14.700
schon uns entschieden für das Wort.

00:19:14.800 --> 00:19:15.800
Er kam ja immer noch um.

00:19:15.900 --> 00:19:16.300
Unsere.

00:19:16.400 --> 00:19:20.100
Ja, da ging es dann schon so ein bisschen ins Abendprogramm rein,

00:19:20.200 --> 00:19:21.100
hat er auch selber gesagt.

00:19:21.200 --> 00:19:23.500
War ein sehr unterhaltsamer Vortrag, fand ich.

00:19:23.600 --> 00:19:26.000
War sehr schön gemacht, war sehr nett.

00:19:26.100 --> 00:19:29.000
Er hat einfach so ein bisschen über die Etymologie gesprochen

00:19:29.100 --> 00:19:29.900
und über die lustigen,

00:19:29.900 --> 00:19:33.800
lustigen Herkünfte von den Wörtern, die wir benutzen,

00:19:33.900 --> 00:19:36.900
die aber eigentlich nautischen Ursprungs im 17. Jahrhundert sind.

00:19:37.000 --> 00:19:38.100
Was mich tatsächlich schockiert hat,

00:19:38.200 --> 00:19:39.500
ist, dass die Story mit dem Bug,

00:19:39.600 --> 00:19:41.800
also der Motte in dem IBM-Computer,

00:19:41.900 --> 00:19:42.700
dass das nicht stimmt,

00:19:42.800 --> 00:19:45.200
also dass das nicht die Ursache davon ist.

00:19:45.300 --> 00:19:48.000
Das habe ich schon oft rum erzählt.

00:19:48.100 --> 00:19:49.100
Ja.

00:19:49.200 --> 00:19:50.500
Das ist auch ein schönes Bild.

00:19:50.600 --> 00:19:52.500
Ja, aber das musst du mir noch mal erzählen.

00:19:52.600 --> 00:19:54.000
Ich habe den Tag nämlich verpasst.

00:19:54.100 --> 00:19:55.800
Warum stimmt das nicht?

00:19:55.900 --> 00:19:59.800
Also es gibt diesen Eintrag von dieser Computermitarbeiter,

00:19:59.900 --> 00:20:02.300
die die Motte aus dem Gerät gefischt hat.

00:20:02.400 --> 00:20:03.000
Ja.

00:20:03.100 --> 00:20:05.900
Und dann in ihrem handgeschriebenen Logs,

00:20:06.000 --> 00:20:09.400
also wirklich das, was heute halt auf dem System irgendwie im Hintergrund läuft,

00:20:09.500 --> 00:20:10.400
in einem Buch.

00:20:10.500 --> 00:20:12.000
Und als er hat sich die Motte eingeklebt

00:20:12.100 --> 00:20:14.400
und hat das dann so geschrieben als,

00:20:14.500 --> 00:20:16.400
wir haben gerade den ersten Bug gefunden.

00:20:16.500 --> 00:20:18.400
Tatsächlich war das aber ironisch gemeint,

00:20:18.500 --> 00:20:21.900
weil das Wort Bug auf, ich glaube, Edison war es, zurückgeht,

00:20:22.000 --> 00:20:24.600
der geschrieben hat, sein Ideenfindungsprozess ist so,

00:20:24.700 --> 00:20:27.800
wenn er eine neue Idee hat, dann kommt das so in einem Schwall heraus

00:20:27.900 --> 00:20:29.800
und danach kommen,

00:20:29.900 --> 00:20:32.600
wie kleine, wie kleines Ungeziefer,

00:20:32.700 --> 00:20:34.700
diese ganzen Probleme in der Realität,

00:20:34.800 --> 00:20:36.700
mit denen er sich dann auseinandersetzen muss,

00:20:36.800 --> 00:20:38.000
bevor er dann irgendeine Lösung hat,

00:20:38.100 --> 00:20:40.200
die er wirklich verkaufen kann oder nicht.

00:20:40.300 --> 00:20:41.500
Ach so, die kleinen Käfer.

00:20:41.600 --> 00:20:42.700
Und dann hat sie gesagt, okay,

00:20:42.800 --> 00:20:44.700
jetzt haben wir wirklich einen echten Käfer.

00:20:44.800 --> 00:20:45.300
Genau.

00:20:45.400 --> 00:20:46.100
Ja, die Mutter.

00:20:46.200 --> 00:20:47.100
Das fand ich aber auch sehr interessant,

00:20:47.200 --> 00:20:48.500
dieses Zitat, weil das ist ja auch ein Gefühl,

00:20:48.600 --> 00:20:49.300
was man so kennt.

00:20:49.400 --> 00:20:49.800
Ja.

00:20:49.900 --> 00:20:51.500
Dass man einmal so einen Inspirationsschub hat

00:20:51.600 --> 00:20:53.700
und dann stellt sich da die Realität in den Weg.

00:20:53.800 --> 00:20:54.800
Ja.

00:20:54.900 --> 00:20:56.600
Und du weißt aber eigentlich erst,

00:20:56.700 --> 00:20:59.600
wenn du diese ganze schmutzige Arbeit gemacht hast,

00:20:59.600 --> 00:21:01.100
ob es ein Erfolg oder ein Misserfolg ist.

00:21:01.200 --> 00:21:01.600
Ja.

00:21:01.700 --> 00:21:03.000
Ja, das ist echt eine Idee.

00:21:03.100 --> 00:21:04.400
Dir selber kannst du das nicht ansehen.

00:21:04.500 --> 00:21:06.300
Außer du kennst jemanden, der den Weg schon gegangen ist

00:21:06.400 --> 00:21:07.200
und kannst ihn fragen.

00:21:07.300 --> 00:21:08.500
Ja, aber das ist keine neue Idee.

00:21:08.600 --> 00:21:09.900
So erfindest du die Glühbirne nicht.

00:21:10.000 --> 00:21:10.500
Ja.

00:21:10.600 --> 00:21:12.900
Ja.

00:21:13.000 --> 00:21:13.500
Gut.

00:21:13.600 --> 00:21:15.000
Und danach gab es natürlich noch Lightning Talks.

00:21:15.100 --> 00:21:17.100
Lightning Talks sind immer super, finde ich großartig.

00:21:17.200 --> 00:21:20.700
Da ist immer eine schöne Auswahl.

00:21:20.800 --> 00:21:22.400
Und das war auch gestern so.

00:21:22.500 --> 00:21:23.400
Apropos Lightning Talks.

00:21:23.500 --> 00:21:24.900
Ich glaube, es gibt heute interessante Lightning Talks.

00:21:25.000 --> 00:21:25.800
Machst du ein bisschen Spoiler?

00:21:25.900 --> 00:21:27.100
Ich weiß nur von einem Lightning Talk,

00:21:27.200 --> 00:21:28.900
den es heute gibt, weil ich habe mich angemeldet.

00:21:29.000 --> 00:21:29.500
Ja.

00:21:29.600 --> 00:21:31.900
Unvorsichtigerweise zu einem Lightning Talk.

00:21:32.000 --> 00:21:33.900
Und ich werde in fünf Minuten darüber sprechen,

00:21:34.000 --> 00:21:36.700
wie man in fünf Minuten einschlafen kann.

00:21:36.800 --> 00:21:39.400
Und wie man das hinkriegt, in fünf Minuten einzuschlafen.

00:21:39.500 --> 00:21:41.000
Ja, also wenn ihr das noch nicht geschafft habt,

00:21:41.100 --> 00:21:42.400
habt ihr es noch nicht geschafft.

00:21:42.500 --> 00:21:45.400
Ja.

00:21:45.500 --> 00:21:46.800
Ich habe heute Abend dann fünf Minuten Zeit.

00:21:46.900 --> 00:21:49.000
Mal schauen, bei wie vielen es klappt.

00:21:49.100 --> 00:21:50.000
Okay.

00:21:50.100 --> 00:21:53.000
Und Ronny, du wolltest auch was über deinen Lightning Talk erzählen.

00:21:53.100 --> 00:21:53.500
Genau.

00:21:53.600 --> 00:21:55.900
Ich hatte eigentlich vor, mich gestern schon

00:21:56.000 --> 00:21:57.000
auch für einen Lightning Talk anzumelden.

00:21:57.100 --> 00:21:59.400
Ich habe leider gestern ein bisschen

00:21:59.400 --> 00:22:01.400
geschwächelt, gesundheitsbedingt.

00:22:01.500 --> 00:22:02.500
Habe es dann nicht gemacht.

00:22:02.600 --> 00:22:04.500
Jetzt habe ich gerade gehört, dass alle Slots schon voll sind.

00:22:04.600 --> 00:22:08.800
Von daher werde ich nicht über das Thema reden.

00:22:08.900 --> 00:22:10.100
Aber ich kann es ja hier ganz kurz präsentieren.

00:22:10.200 --> 00:22:11.000
Morgen haben wir schon.

00:22:11.100 --> 00:22:11.500
Sehr gut.

00:22:11.600 --> 00:22:12.700
Morgen ist er auch schon voll, habe ich gehört.

00:22:12.800 --> 00:22:13.800
Auch schon voll.

00:22:13.900 --> 00:22:14.300
Heide ne.

00:22:14.400 --> 00:22:15.200
Genau.

00:22:15.300 --> 00:22:18.000
Es geht darum, dass ich habe vor einiger Zeit,

00:22:18.100 --> 00:22:19.300
ich habe da auch einen Blogpost drüber geschrieben,

00:22:19.400 --> 00:22:22.100
hatte ich den Fall, dass wir so eine Art

00:22:22.200 --> 00:22:26.200
Django-DevOps-Geschichte in so einem großen Monolithen brauchten.

00:22:26.300 --> 00:22:29.300
Es hatte zu tun, ganz konkret, um Django Migrations

00:22:29.400 --> 00:22:31.300
aufzuräumen für einen relativ spezifischen Case,

00:22:31.400 --> 00:22:34.400
für ein Projekt mit sehr, sehr langen Deployment-Zyklen.

00:22:34.500 --> 00:22:39.200
Und ja, das aus Gründen nicht funktioniert hat.

00:22:39.300 --> 00:22:42.300
Und so wegen, the circle dependencies auflösen dauert zu lange, etc.

00:22:42.400 --> 00:22:43.200
Etc.

00:22:43.300 --> 00:22:46.800
Auf jeden Fall habe ich dann mich relativ stark dafür eingesetzt

00:22:46.900 --> 00:22:49.400
und habe da beim Kunden auch so ein paar Hierarchie-Ebenen,

00:22:49.500 --> 00:22:51.000
Hierarchie-Träbchen rauf und runter gemacht,

00:22:51.100 --> 00:22:52.900
um die davon zu überzeugen, dass wir das Ding

00:22:53.000 --> 00:22:54.600
doch einfach Open Source machen könnten

00:22:54.700 --> 00:22:56.300
und sie es trotzdem voll zahlen.

00:22:56.400 --> 00:22:59.300
Was am Anfang für ein paar Gehoffene

00:22:59.500 --> 00:23:02.300
oben Augenbrauen geführt hat, weil, warum Open Source?

00:23:02.400 --> 00:23:03.400
Hä, wir zahlen doch auch wieder.

00:23:03.500 --> 00:23:04.400
Warum Sachen verschenken?

00:23:04.500 --> 00:23:05.400
Genau.

00:23:05.500 --> 00:23:07.400
Und ich habe dann aber nachher tatsächlich

00:23:07.500 --> 00:23:08.800
einen ganzen Haufen Argumente gefunden,

00:23:08.900 --> 00:23:11.400
warum das einfach für alle Beteiligten besser ist.

00:23:11.500 --> 00:23:14.000
Weil man dann endlich eure Fehler finden kann,

00:23:14.100 --> 00:23:16.200
die dann auch öffentlich verfügbar und einsehbar sind.

00:23:16.300 --> 00:23:18.600
Ja, vor allem auch, weil wir ansonsten

00:23:18.700 --> 00:23:20.200
das halt irgendwie in den Monolithen reingewurschtelt hätten.

00:23:20.300 --> 00:23:22.000
Und sobald irgendwann mal ein Problem kommt,

00:23:22.100 --> 00:23:24.000
sowas fasst ja nie wieder einer freiwillig an.

00:23:24.100 --> 00:23:25.800
Wenn das jetzt Open Source ist,

00:23:25.900 --> 00:23:28.000
dann würde ich mich zumindest, solange ich es aktiv maintaine,

00:23:28.100 --> 00:23:29.200
mich drum kümmern.

00:23:29.200 --> 00:23:32.500
Und ich hatte bei zwei Themen, wo ich selber...

00:23:32.600 --> 00:23:34.500
Open Source war also ein Maintaining-Versprechen.

00:23:34.600 --> 00:23:35.600
Interessant, ja?

00:23:35.700 --> 00:23:37.500
Solange ich mich drum kümmere zumindest.

00:23:37.600 --> 00:23:41.100
Da war die Kinderplanung noch nicht so weit fortgeschritten.

00:23:41.200 --> 00:23:42.300
Wird mich wahrscheinlich irgendjemand

00:23:42.400 --> 00:23:45.500
auf meine Python-Podcast-Folge von vor zwei, drei Jahren

00:23:45.600 --> 00:23:47.500
festnageln, wo ich gesagt habe,

00:23:47.600 --> 00:23:48.900
das muss man immer weiter maintainen.

00:23:49.000 --> 00:23:49.900
Ja.

00:23:50.000 --> 00:23:52.000
Nein, genau.

00:23:52.100 --> 00:23:54.300
Man kann ja auch schlecht maintainen.

00:23:54.400 --> 00:23:57.000
Ich maintaine Sachen aber teilweise sehr, sehr schlecht.

00:23:57.100 --> 00:23:59.100
Nein, aber vor allem das Schöne an der Geschichte,

00:23:38.300 --> 00:23:57.300
dass man sich nicht so weit fortgeschritten hat,

00:23:57.400 --> 00:23:57.400


00:23:57.500 --> 00:23:57.500


00:23:57.600 --> 00:23:57.800
dass man sich nicht so weit fortgeschritten hat,

00:23:57.800 --> 00:23:58.700
ist, dass wir jetzt endgültige Sprachver dialogieren.

00:23:58.700 --> 00:23:58.700


00:23:58.700 --> 00:24:00.600
endgültige Sprachver dialogieren.

00:24:00.600 --> 00:24:00.600


00:24:00.600 --> 00:24:01.800
endgültige Sprachver dialogieren.

00:24:01.800 --> 00:24:01.800


00:24:01.800 --> 00:24:01.800


00:24:01.800 --> 00:24:01.800


00:24:01.800 --> 00:24:01.800


00:24:01.800 --> 00:24:01.800


00:24:01.800 --> 00:24:01.800


00:24:01.800 --> 00:24:01.800


00:24:01.800 --> 00:24:01.800


00:24:01.800 --> 00:24:01.800


00:24:01.800 --> 00:24:01.800


00:24:01.800 --> 00:24:01.800


00:24:01.800 --> 00:24:03.420
geschrieben habe und es halt wirklich auch

00:24:03.420 --> 00:24:05.360
im Endeffekt eine wirkliche Win-Win-Situation war,

00:24:05.360 --> 00:24:06.840
weil auch wirklich die Entkoppelung auch dann da war,

00:24:06.880 --> 00:24:09.420
weil man gar nicht in die Verlegenheit kam, irgendwas projektspezifisch zu machen,

00:24:10.920 --> 00:24:11.440
hatte ich dann

00:24:11.440 --> 00:24:12.320
irgendwann plötzlich

00:24:12.320 --> 00:24:15.160
ein Issue von

00:24:15.160 --> 00:24:17.240
einer

00:24:17.240 --> 00:24:19.680
scheinbar sehr, sehr kompetenten

00:24:19.680 --> 00:24:21.360
Entwicklerin, die geschrieben hat,

00:24:21.460 --> 00:24:23.420
dass sie folgende zwei Probleme

00:24:23.420 --> 00:24:24.380
identifiziert hat.

00:24:25.240 --> 00:24:27.400
Und das eine hatte ich sogar literally as to do im Code,

00:24:27.460 --> 00:24:28.900
weil ich wusste, dass ich das eigentlich noch fixen muss,

00:24:29.020 --> 00:24:30.820
aber ich brauchte es halt für einen Case gerade nicht,

00:24:30.820 --> 00:24:31.880
darum habe ich es dann offen gelassen.

00:24:32.380 --> 00:24:34.380
Dann hat sie mich gefragt, ob sie das lösen darf

00:24:34.380 --> 00:24:35.900
und hat dann zwei

00:24:35.900 --> 00:24:38.280
absolut perfekte Merge-Requests,

00:24:38.340 --> 00:24:40.860
wo ich wirklich absolut oder fast nichts daran aussetzen konnte,

00:24:41.560 --> 00:24:42.580
delivered, die einfach

00:24:42.580 --> 00:24:44.380
funktioniert haben, alles durchgetestet

00:24:44.380 --> 00:24:46.780
und das sind halt Sachen, die hätten die ansonsten

00:24:46.780 --> 00:24:48.860
halt niemals da reinbekommen.

00:24:49.960 --> 00:24:50.660
Und genau,

00:24:50.820 --> 00:24:52.800
ansonsten, ich nutze das natürlich auch für meine Projekte

00:24:52.800 --> 00:24:54.520
und das ist eine sehr schöne Success-Story

00:24:54.520 --> 00:24:56.540
und ich glaube, wenn das mehr Leute

00:24:56.540 --> 00:24:58.540
im Kopf haben, dass das geht, dann könnte man

00:24:58.540 --> 00:25:00.380
sehr, sehr viel mehr in Open Source einfach

00:25:00.380 --> 00:25:00.800
leveragen.

00:25:00.820 --> 00:25:02.820
Über Kundengeld,

00:25:02.900 --> 00:25:04.840
wenn man es halt einfach im Kopf hat.

00:25:04.860 --> 00:25:06.640
Und das wolltest du quasi als Success-Story

00:25:06.640 --> 00:25:08.080
verkaufen und ein bisschen Werbung zu.

00:25:08.540 --> 00:25:10.140
Was war das genau? Worum ging es da?

00:25:10.240 --> 00:25:12.240
Also ich habe, du hast gesagt, Deployment-Zeugs bei Django.

00:25:12.780 --> 00:25:15.040
Also genau, das Package heißt Django Migration Zero.

00:25:15.240 --> 00:25:16.900
Es gibt leider, ich habe auch eine Sache,

00:25:16.960 --> 00:25:18.580
wenn man Packages erstellt, checkt vorher mal,

00:25:18.660 --> 00:25:20.220
was es für Packages gibt, die ähnlich heißen.

00:25:21.040 --> 00:25:21.880
Es gibt nämlich

00:25:21.880 --> 00:25:24.520
Mig Zero und Migration Zero Django

00:25:24.520 --> 00:25:26.220
und ich glaube, Migration Zero ohne Django.

00:25:27.220 --> 00:25:28.680
Ja, meinst du,

00:25:28.680 --> 00:25:30.560
ich habe einen Artikel geschrieben, ich habe in Blogposts

00:25:30.560 --> 00:25:31.960
verlinkt und noch einen Artikel drüber geschrieben.

00:25:32.080 --> 00:25:35.400
Das heißt, Google packt mich jetzt auf Platz 1, glaube ich.

00:25:35.740 --> 00:25:35.900
Yay!

00:25:37.020 --> 00:25:38.880
Aber genau, also es geht einfach

00:25:38.880 --> 00:25:40.620
darum, dass wenn man, wir bei uns

00:25:40.620 --> 00:25:42.700
nutzen aus historischen Gründen, wie du vorhin auch

00:25:42.700 --> 00:25:44.580
meintest, man hat mal so eine Lösung im Kopf und dann

00:25:44.580 --> 00:25:46.380
nutzt man die immer weiter. Wir haben, um quasi

00:25:46.380 --> 00:25:48.380
Object-Ownership zu haben, haben wir quasi in so einer

00:25:48.380 --> 00:25:50.480
unserer Toolbox-Package, wo so

00:25:50.480 --> 00:25:52.520
kleine Dinge, die sich nicht als eigenes Package lohnen,

00:25:53.120 --> 00:25:54.700
haben wir quasi so

00:25:54.700 --> 00:25:57.000
dieses Created-By, Last-Modified-By

00:25:57.000 --> 00:25:58.620
und das ziert jetzt auf den User,

00:25:59.000 --> 00:26:00.360
was dazu halber führt, dass wir sehr, sehr

00:26:00.360 --> 00:26:02.340
viele Circular Dependencies haben, wenn wir

00:26:02.340 --> 00:26:04.480
ein Custom-User-Model haben, was wir aus

00:26:04.480 --> 00:26:06.440
historischen Gründen, weil früher war das alles sehr mühsam mit

00:26:06.440 --> 00:26:08.360
Django, mit Aus, wie immer mit, auch Modelswitchen

00:26:08.360 --> 00:26:10.440
und haben wir meistens uns für

00:26:10.440 --> 00:26:12.400
ein Custom-Model entschieden, was wir

00:26:12.400 --> 00:26:14.140
heute nicht mehr tun, aber es war halt ein älteres Projekt

00:26:14.140 --> 00:26:16.480
und das heißt, du hast sehr, sehr, sehr, sehr

00:26:16.480 --> 00:26:18.640
viele Circular Dependencies und wenn du squaschen möchtest,

00:26:19.020 --> 00:26:20.600
musst du die, also das dauert,

00:26:20.720 --> 00:26:22.680
weiß ich nicht, Tage, glaube ich, hätte das gedauert zu lösen,

00:26:23.080 --> 00:26:24.500
für den Effekt, dass ich weiß,

00:26:24.800 --> 00:26:26.460
welche Migrations mal da waren, aber das ist

00:26:26.460 --> 00:26:28.320
halt kein Packages-Deployed-System, also

00:26:28.320 --> 00:26:30.340
was auf dem Produktivsystem angekommen ist,

00:26:30.360 --> 00:26:32.340
da ist Ende, so, ich muss

00:26:32.340 --> 00:26:34.400
nicht wissen, was danach passiert ist, was davor

00:26:34.400 --> 00:26:36.740
passiert ist, das heißt, es ist einfach determiniert

00:26:36.740 --> 00:26:38.340
und ich kann mir halt einfach auch,

00:26:38.460 --> 00:26:40.020
was Migration Zero im Endeffekt ist,

00:26:40.600 --> 00:26:42.340
ist, du gehst halt einfach hin und löscht alles, so,

00:26:42.400 --> 00:26:44.360
und startest halt neu, weil das, das, das

00:26:44.360 --> 00:26:46.260
haben wir alle schon ausgemacht, Create Migrations

00:26:46.260 --> 00:26:48.260
lustigerweise nicht das Problem hat,

00:26:48.320 --> 00:26:50.220
was Squashing hat, das kriegt es einfach hin,

00:26:50.360 --> 00:26:51.900
ich weiß nicht wie, aber es kriegt es hin

00:26:51.900 --> 00:26:54.440
und genau,

00:26:54.540 --> 00:26:56.420
von daher ist das halt für, wenn man einfach

00:26:56.420 --> 00:26:58.480
eine Applikation hat und regelmäßig aufräumen möchte,

00:26:58.580 --> 00:27:00.200
der Trick ist halt, dass ich im Endeffekt

00:27:00.200 --> 00:27:00.200


00:27:00.360 --> 00:27:02.280
habe, manchmal so gezogen, dass der Stand stimmt und

00:27:02.280 --> 00:27:03.960
dann schmeißt du alle Migrations weg und machst neue Migrations hin.

00:27:03.980 --> 00:27:06.360
Genau, und du musst halt, du kannst halt in ganz, ganz

00:27:06.360 --> 00:27:08.240
fiese Edge-Cases kommen, die nicht so alt

00:27:08.240 --> 00:27:10.300
wahrscheinlich sind, aber wenn du halt ein Produktionssystem hast mit

00:27:10.300 --> 00:27:12.580
Abteilen und sowas, möchte man halt einfach nicht sich solche

00:27:12.580 --> 00:27:14.440
Dinge einbauen, das heißt, du musst

00:27:14.440 --> 00:27:16.500
halt auch gucken, dass die Django Migration Table im Endeffekt

00:27:16.500 --> 00:27:17.360
den, der

00:27:17.360 --> 00:27:20.240
Apply Cache, ja, von Django

00:27:20.240 --> 00:27:22.320
muss man halt auch aufräumen und damit man halt, weil

00:27:22.320 --> 00:27:24.240
niemand gerne auf der Produktionsdatenbank herumfudelt,

00:27:24.300 --> 00:27:26.380
habe ich quasi ein Skript geschrieben, dass das für

00:27:26.380 --> 00:27:28.240
einen macht und du kannst es von Django Atom quasi

00:27:28.240 --> 00:27:30.340
an- und ausstellen, also du sagst, okay, ich weiß, es kommt

00:27:30.360 --> 00:27:31.900
ein Deployment, das nächste Deployment, das ist,

00:27:32.220 --> 00:27:34.260
mach den Haken an, dann macht dir das quasi für einen selber,

00:27:34.380 --> 00:27:36.640
das heißt, du musst nicht mehr auf der Datenbank rumfudeln,

00:27:36.720 --> 00:27:38.320
du musst im Endeffekt einfach nur noch das tun,

00:27:38.340 --> 00:27:40.220
was du gerne machst, irgendwas im Code ändern,

00:27:40.340 --> 00:27:42.320
committest das und der Rest passiert dann

00:27:42.320 --> 00:27:44.280
automatisch und, ähm, genau.

00:27:44.680 --> 00:27:46.320
Das ist sehr, ich finde das für den

00:27:46.320 --> 00:27:47.420
Use Case sehr konvenient.

00:27:48.260 --> 00:27:49.180
Ja, cool, coole Sache.

00:27:50.380 --> 00:27:52.260
Nice. Aber habe ich das richtig rausgehört?

00:27:52.300 --> 00:27:53.860
Ihr nehmt kein Custom User Model mehr?

00:27:54.600 --> 00:27:56.360
Ähm, wir versuchen eher

00:27:56.360 --> 00:27:58.360
über diesen User Profile Ansatz zu gehen, also

00:27:58.360 --> 00:28:00.340
das Problem ist, dass, ich glaube,

00:28:00.360 --> 00:28:02.380
Django lädt sehr, sehr, sehr, sehr, sehr,

00:28:02.380 --> 00:28:04.280
sehr stark dazu ein, dass man

00:28:04.280 --> 00:28:06.340
so gewisse zentrale Models mit immer

00:28:06.340 --> 00:28:08.320
mehr belädt und dass man halt nicht wirklich

00:28:08.320 --> 00:28:10.300
versucht, Domänen zu schneiden.

00:28:11.420 --> 00:28:12.320
Ich meine, Foreign Keys,

00:28:12.560 --> 00:28:14.600
so enorm praktisch die sind,

00:28:14.680 --> 00:28:16.320
ist halt auch, du bist halt einfach in

00:28:16.320 --> 00:28:18.280
irgendeiner Funktion plötzlich drei

00:28:18.280 --> 00:28:20.460
Domänen irgendwo weiter und hast

00:28:20.460 --> 00:28:22.400
dann plötzlich irgendwelche Daten dir gefischt, weil es geht

00:28:22.400 --> 00:28:24.160
halt und, ähm,

00:28:24.680 --> 00:28:26.440
von daher versuchen wir jetzt in den neuen Projekten

00:28:26.440 --> 00:28:28.000
eher über Profile zu gehen.

00:28:28.000 --> 00:28:29.920
Also Profile ist für euch ein eigenes Modell, eine eigene

00:28:29.920 --> 00:28:30.220
Tabelle?

00:28:30.360 --> 00:28:32.200
Genau, also wir sagen quasi alle, also der

00:28:32.200 --> 00:28:34.560
Django-User ist nur für die Authentifizierung

00:28:34.560 --> 00:28:36.280
da, also wir nutzen im besten Fall auch nicht den

00:28:36.280 --> 00:28:38.300
Namen oder E-Mail, also E-Mail-Adresse logischerweise

00:28:38.300 --> 00:28:40.280
schon, aber nicht den Namen und dann

00:28:40.280 --> 00:28:42.160
gibt es zum Beispiel dann irgendwie ein Account-Profil,

00:28:42.240 --> 00:28:44.240
wo dann der Name drinsteht, dann vielleicht die Adresse,

00:28:44.880 --> 00:28:45.320
ähm, dann,

00:28:46.080 --> 00:28:48.020
das fällt mir gerade kein Beispiel mehr, zum Beispiel,

00:28:48.280 --> 00:28:50.100
wenn du sagst, ich habe irgendwelche Konfigurationen, die ich

00:28:50.100 --> 00:28:52.080
machen kann in meiner Applikation, gibt es vielleicht ein User-

00:28:52.080 --> 00:28:54.300
Konfigurationsprofil und versuch

00:28:54.300 --> 00:28:56.300
das aufzuteilen und dann die verschiedenen

00:28:56.300 --> 00:28:58.000
kleinen Models in ihren Domänen zu haben,

00:28:58.120 --> 00:28:59.920
was halt auch dazu führt, dass du, wenn du zum Beispiel

00:28:59.920 --> 00:29:02.080
den User immer weiter aufbläst, teilweise hast du dann ja

00:29:02.080 --> 00:29:03.900
50, 60 Felder in einer hinreichend großen

00:29:03.900 --> 00:29:05.720
Applikation, ist ja keine Seltenheit,

00:29:05.800 --> 00:29:08.120
die Daten werden auch immer gefetcht und die wenigsten

00:29:08.120 --> 00:29:09.960
Leute in Django machen ja auch, dass sie wirklich dann per

00:29:09.960 --> 00:29:11.880
Select sich nur die Felder holen, die sie brauchen, sondern

00:29:11.880 --> 00:29:14.120
eher so, ja, gib mir mal alles, das erzeugt

00:29:14.120 --> 00:29:16.000
auch wohl vor allem, also gegeben der

00:29:16.000 --> 00:29:17.840
Last, aber auch immer einen relativ großen Overhead,

00:29:18.220 --> 00:29:19.960
plus ist natürlich auch für den Jackson

00:29:19.960 --> 00:29:22.060
Junior, der ins Projekt kommt, der muss halt 50 Felder

00:29:22.060 --> 00:29:23.100
verstehen und nicht nur drei.

00:29:23.840 --> 00:29:26.140
Das mit der Daten habe ich noch nicht drüber nachgedacht,

00:29:26.220 --> 00:29:27.880
aber ich habe jetzt tatsächlich User-Profile an

00:29:27.880 --> 00:29:29.540
ein Profile-JSON-Field

00:29:29.540 --> 00:29:29.900
gehängt.

00:29:29.920 --> 00:29:31.980
Ja, also ich finde

00:29:31.980 --> 00:29:33.900
JSON-Fields sind ein sehr zweischneidiges Schwert,

00:29:33.980 --> 00:29:36.100
das ist immer so ein bisschen, die führen

00:29:36.100 --> 00:29:37.960
so ein bisschen die Relational-Datemark-Adaptsodum,

00:29:38.060 --> 00:29:39.280
manche Dinge sind die super.

00:29:39.660 --> 00:29:41.680
Ja, für solche Sachen im Profil möchte ich das nicht filtern, also

00:29:41.680 --> 00:29:43.560
das ist nicht so Filter-Rebuilding, deswegen ist der gar nicht.

00:29:43.560 --> 00:29:45.580
Also ich sage mal so, ich versuche die,

00:29:46.080 --> 00:29:48.000
ich nutze die, aber ich versuche da dreimal

00:29:48.000 --> 00:29:49.940
drüber nachzudenken, ob ich sie wirklich nutzen möchte und

00:29:49.940 --> 00:29:51.760
wenn ich zum Beispiel so eine Profil-Konfiguration

00:29:51.760 --> 00:29:53.900
habe, weiß ich nicht, die Farbe und die Sprache und

00:29:53.900 --> 00:29:55.880
keine Ahnung was, das kann ich

00:29:55.880 --> 00:29:58.100
ja relational speichern, dann versuche ich es auch zu tun.

00:29:58.860 --> 00:29:59.840
Ich bin tatsächlich

00:29:59.840 --> 00:30:01.600
gerade in die andere Richtung unterwegs,

00:30:01.940 --> 00:30:02.900
zum Thema User-Model.

00:30:03.460 --> 00:30:06.000
Ich bin jetzt eher wieder dazu übergegangen, Custom-User-Models zu machen,

00:30:06.440 --> 00:30:08.040
aber nicht um da Felder

00:30:08.040 --> 00:30:10.060
hinzuzufügen, sondern eben genau um Felder wegzuschneiden,

00:30:10.140 --> 00:30:11.980
weil ich keinen Firstname brauche, ich brauche keinen Lastname,

00:30:12.100 --> 00:30:13.760
ich brauche keinen... Ich habe auch alles gestrichen,

00:30:13.800 --> 00:30:15.960
nur E-Mail. Ja, genau,

00:30:16.080 --> 00:30:18.000
einfach nur E-Mail und Passwort und das ist eigentlich

00:30:18.000 --> 00:30:20.060
für die meisten Sachen reicht das ja schon.

00:30:20.300 --> 00:30:21.800
Aber das spricht ja tatsächlich

00:30:21.800 --> 00:30:23.680
meinem eigentlich gar nicht. Ja, genau,

00:30:23.900 --> 00:30:24.680
das ist eigentlich das Gleiche.

00:30:25.740 --> 00:30:27.540
Vielleicht sogar noch ein logischer weiterer Schritt.

00:30:27.860 --> 00:30:29.520
Ja, aber halt mit Aufwand verbunden.

00:30:29.840 --> 00:30:31.580
Ja, und das ist dann in meinem

00:30:31.580 --> 00:30:33.680
Projekt-Template drin und dann habe ich es einmal gemacht und dann

00:30:33.680 --> 00:30:34.640
ist es fertig.

00:30:35.200 --> 00:30:37.680
Ja, das ist auch so was,

00:30:37.800 --> 00:30:39.880
man baut sich ja dann irgendwie so eine

00:30:39.880 --> 00:30:41.780
Sammlung an so eine Schatzkiste an Lösungen

00:30:41.780 --> 00:30:43.560
auf und die benutzt man dann schon immer wieder.

00:30:43.660 --> 00:30:45.680
Und wenn die je verloren geht, dann bin ich wieder ein

00:30:45.680 --> 00:30:46.220
Jumbo-Anfänger.

00:30:48.180 --> 00:30:49.720
Darum haben wir damals mal angefangen,

00:30:49.760 --> 00:30:51.240
die ganzen Sachen in ein Package zu packen.

00:30:51.900 --> 00:30:53.760
Das ist zwar nicht der Weg, wie Packages sein,

00:30:53.800 --> 00:30:55.520
die sollen ja eigentlich Single-Purpose und

00:30:55.520 --> 00:30:57.680
dass du einem eine Sache hast, aber es gibt so

00:30:57.680 --> 00:30:59.320
viele Kleinigkeiten auch für ein Admin,

00:30:59.320 --> 00:31:01.340
wo man sagt, ich will das jetzt nicht jedes Mal

00:31:01.340 --> 00:31:02.740
neu googeln, wie ich jetzt

00:31:02.740 --> 00:31:05.260
dieses eine Read-Only-Dingsbums da irgendwie

00:31:05.260 --> 00:31:07.280
machen kann oder sowas oder diesen einen Sonderfall

00:31:07.280 --> 00:31:08.460
mit weiß ich nicht was.

00:31:09.140 --> 00:31:11.300
Das ist schon praktisch, wenn man das da reingießen kann.

00:31:11.760 --> 00:31:13.220
Ja, man hat sich ja so ein kleines kariertes

00:31:13.220 --> 00:31:15.420
Maiglöckchen da gemacht, hat noch ein bisschen gehegt und gepflegt

00:31:15.420 --> 00:31:17.240
und ordentlich aufgezogen und dann noch

00:31:17.240 --> 00:31:19.000
die Ecken und Kanten ein bisschen richtig gestutzt,

00:31:19.080 --> 00:31:19.900
dass das genauso aussieht.

00:31:20.760 --> 00:31:22.940
Ich finde das zum Beispiel super,

00:31:23.060 --> 00:31:24.420
dieses Toolbox-Package, das wir haben.

00:31:24.600 --> 00:31:27.120
Das nutzen wir in den Projekten. Da sind natürlich auch viele Sachen drin,

00:31:27.120 --> 00:31:29.120
die Leute einfach nicht brauchen, aber ich meine im Endeffekt...

00:31:29.120 --> 00:31:30.120
Es ist halt...

00:31:30.120 --> 00:31:33.240
Ich räume da auch regelmäßig auf.

00:31:33.420 --> 00:31:35.260
Also einfach, wenn ich dann sage, okay, jetzt bin ich zu einem Zeitpunkt gekommen,

00:31:35.360 --> 00:31:36.660
wo das nicht mehr relevant ist oder

00:31:36.660 --> 00:31:38.520
habe einfach Sachen aktiv rausgezogen.

00:31:38.940 --> 00:31:41.040
Also das Body Express Package, von dem ich vorhin

00:31:41.040 --> 00:31:43.160
am Anfang gesprochen habe, das war auch mal Teil

00:31:43.160 --> 00:31:45.460
davon. Da habe ich auch gesagt, das ist sowas von Single Purpose.

00:31:45.600 --> 00:31:47.280
Also das macht keinen Sinn, das da mit reinzufudeln.

00:31:47.360 --> 00:31:48.400
Das kann man gut rausziehen. Genau.

00:31:50.120 --> 00:31:50.320
Cool.

00:31:51.060 --> 00:31:52.700
Dann sind wir mit gestern durch.

00:31:53.300 --> 00:31:54.180
Dann kommen wir nach heute.

00:31:54.540 --> 00:31:55.800
Heute der Tag hat angefangen.

00:31:56.000 --> 00:31:56.820
Er hat sehr früh angefangen.

00:31:56.980 --> 00:31:58.260
Einer so früh überlassen.

00:31:58.340 --> 00:31:58.620
Auch ich.

00:31:59.120 --> 00:32:00.700
Und das seit 9 Uhr nach

00:32:00.700 --> 00:32:03.500
Lukala. Mein Jetlag ist schon vorbei.

00:32:05.580 --> 00:32:06.740
Ich fand es jedenfalls interessant.

00:32:06.940 --> 00:32:07.700
Es war ja...

00:32:07.700 --> 00:32:10.580
Es war der Talk für die Django Software Foundation,

00:32:10.740 --> 00:32:12.500
die Versammlung und der offizielle

00:32:12.500 --> 00:32:13.820
20. Geburtstag.

00:32:14.460 --> 00:32:17.080
Ja, war ja gar kein Talk, sondern es war das Django Software Foundation

00:32:17.080 --> 00:32:17.740
Board Meeting.

00:32:18.600 --> 00:32:20.280
Das jährliche Board Meeting.

00:32:20.420 --> 00:32:22.200
Das erste jährliche Board Meeting.

00:32:22.740 --> 00:32:24.080
Weiß noch nicht, ob man davon jährlich sprechen kann.

00:32:24.080 --> 00:32:26.500
Gleichzeitig die Geburtstagsfeier. 20 Jahre Django.

00:32:26.660 --> 00:32:27.240
Es gab auch Kuchen.

00:32:28.280 --> 00:32:28.880
Das war sehr schön.

00:32:29.120 --> 00:32:30.760
Aber es war halt heute früh um 8.

00:32:30.840 --> 00:32:33.020
Und mir ist durchaus aufgefallen, dass dann so um 8.10 Uhr

00:32:33.020 --> 00:32:34.120
noch ein paar Leute gekommen sind.

00:32:34.260 --> 00:32:36.020
Um 8.15 Uhr oder um 8.20 Uhr.

00:32:36.180 --> 00:32:37.240
Oder um 8.30 Uhr, wie ich.

00:32:38.500 --> 00:32:40.820
Es scheint tatsächlich nicht ganz einfach zu sein,

00:32:40.900 --> 00:32:42.520
so früh aufzustehen.

00:32:42.640 --> 00:32:45.520
Für Kinder mit Kindern ist das eigentlich so.

00:32:45.960 --> 00:32:46.880
Ich kam halt aus der Stadt

00:32:46.880 --> 00:32:48.040
und die Busse fahren so mittel.

00:32:48.760 --> 00:32:49.380
Ja, okay, gut.

00:32:50.720 --> 00:32:50.760
Das ist natürlich...

00:32:50.760 --> 00:32:54.200
Wir sind ja alle hier im Hotel.

00:32:54.320 --> 00:32:55.220
Da ist es natürlich einfacher.

00:32:55.220 --> 00:32:55.440
Ja.

00:32:57.040 --> 00:32:58.960
Ich habe jemanden gesehen, der mit Bade...

00:32:58.960 --> 00:33:00.560
Badelatschen die ganze Zeit.

00:33:00.800 --> 00:33:03.040
Da dachte ich mir so, oh, warum bin ich da nicht drauf gekommen?

00:33:03.260 --> 00:33:04.200
Die Schuhe an.

00:33:04.660 --> 00:33:05.620
Ja, ich habe mich auch nicht gedacht.

00:33:05.660 --> 00:33:08.420
Ich wollte eigentlich gerade eben nochmal in Stim und Steam.

00:33:08.580 --> 00:33:11.060
Aber dann muss ich mit Bademantel an der Konferenz vorbei und kurz winken.

00:33:11.240 --> 00:33:12.900
Mit Bademantel zur Konferenz gehen.

00:33:13.340 --> 00:33:14.320
Das habe ich mir auch überlegt.

00:33:14.760 --> 00:33:16.260
Solange der Bademantel zu ist, doch alles auf dem Boden.

00:33:16.260 --> 00:33:16.620
Power-Mode.

00:33:16.620 --> 00:33:17.760
Ja, das ist auch eine Frage.

00:33:18.040 --> 00:33:19.880
Also, ich passe immerhin rein.

00:33:19.940 --> 00:33:21.420
Ich habe ja nämlich meinen eigenen Bademantel.

00:33:22.520 --> 00:33:23.780
Das haben wahrscheinlich auch nicht so viele.

00:33:24.280 --> 00:33:26.260
Okay, also das Django-Sachverfahren der Board Meeting.

00:33:26.420 --> 00:33:27.400
Das war...

00:33:27.400 --> 00:33:28.620
Ich bin da hingegangen, weil...

00:33:29.440 --> 00:33:30.340
Ich das mal sehen wollte.

00:33:31.000 --> 00:33:32.680
Ich weiß, dass ich da nichts beitragen kann.

00:33:32.780 --> 00:33:35.760
Ich weiß, dass ich diese Verantwortung nicht tragen kann, weil ich nicht genügend Zeit habe.

00:33:35.760 --> 00:33:36.500
Und was hast du gesehen?

00:33:37.120 --> 00:33:37.860
Es war interessant.

00:33:38.100 --> 00:33:39.600
Die Diskussionskultur war interessant.

00:33:40.220 --> 00:33:41.700
Die Menschen, die sich daran beteiligen.

00:33:41.820 --> 00:33:45.060
Ich meine, viele von den Namen kennt man, wenn man so ein bisschen in der Szene ist.

00:33:46.400 --> 00:33:49.040
Aber es war trotzdem einfach mal interessant zu sehen, wie die so...

00:33:49.040 --> 00:33:51.400
Wie viel Zeit man mit so Dingen verbringen kann.

00:33:51.680 --> 00:33:51.880
Richtig.

00:33:52.020 --> 00:33:54.280
Auch wie viele Meta-Dinge einfach passieren müssen.

00:33:54.700 --> 00:33:57.660
Und wenn sie nicht passieren, wie viele negative Konsequenzen das hat.

00:33:57.920 --> 00:33:58.820
Und wie viele Kommentare.

00:33:58.960 --> 00:33:59.420
Es gibt so allem.

00:33:59.800 --> 00:33:59.940
Ja.

00:34:00.140 --> 00:34:01.160
Ja, dann muss man nochmal reden.

00:34:01.260 --> 00:34:02.280
Jeder darf auch was dazu sagen.

00:34:02.400 --> 00:34:03.260
Und dann wird dem auch zugehört.

00:34:03.440 --> 00:34:04.060
Und dann...

00:34:04.060 --> 00:34:05.420
Also, sehr corporate.

00:34:06.320 --> 00:34:06.440
Ja.

00:34:06.880 --> 00:34:07.780
Und dann gab es Kuchen.

00:34:07.840 --> 00:34:08.440
Das war sehr schön.

00:34:08.680 --> 00:34:09.340
Ja, das...

00:34:09.340 --> 00:34:11.580
Hat sich gelohnt, früher aufzustehen und hinzugehen.

00:34:13.260 --> 00:34:13.580
Ja.

00:34:14.080 --> 00:34:17.040
Gut, dann gab es den Einführungsvortrag des heutigen Tages.

00:34:17.220 --> 00:34:19.220
So für die breite Masse, sage ich mal, im Mainstream.

00:34:19.460 --> 00:34:20.380
Oh, im Mainstream.

00:34:20.380 --> 00:34:21.140
Im Mainhall.

00:34:21.340 --> 00:34:22.420
Nee, es heißt ja Mainhall, ich meine.

00:34:22.840 --> 00:34:23.180
Hab ich...

00:34:23.180 --> 00:34:23.640
Gab es den?

00:34:23.700 --> 00:34:24.360
Hab ich den verpasst?

00:34:24.480 --> 00:34:27.020
Nein, da war es auch der Most Bizarre Software Bugs in History.

00:34:27.060 --> 00:34:27.540
Ach so, ach so.

00:34:27.620 --> 00:34:28.220
Ja, das ist...

00:34:28.220 --> 00:34:28.700
Ja, okay, klar.

00:34:29.760 --> 00:34:31.260
War eine schöne Aufstellung.

00:34:31.440 --> 00:34:35.660
Ach so, hat der Jochen den Lightning Talk vom Johannes vorher schon gehört?

00:34:38.240 --> 00:34:40.100
Ich habe ihm das vorher kurz gezeigt.

00:34:40.240 --> 00:34:45.800
Das war nur der Vulkanier Mind...

00:34:45.800 --> 00:34:46.580
Mindgrab.

00:34:47.960 --> 00:34:49.040
Genau, das war auch eine sehr schöne...

00:34:49.040 --> 00:34:50.480
War sehr unterhaltsam, dieser Vortrag.

00:34:50.840 --> 00:34:51.520
War auch nicht lang.

00:34:52.840 --> 00:34:54.060
Er hat viele Sachen gesagt.

00:34:54.680 --> 00:34:57.660
Und viele von den Geschichten kennt man ja schon so ein bisschen.

00:34:58.040 --> 00:34:58.080
Ja, ja.

00:34:58.220 --> 00:34:58.980
Hast du schon mal gehört.

00:34:59.280 --> 00:35:01.220
Ein Lion Air Flight 110 und...

00:35:03.380 --> 00:35:07.140
Ich habe gar nicht mehr die Geschichten alle notiert.

00:35:07.220 --> 00:35:09.400
Ich habe nur notiert, wie die Geschichten heißen.

00:35:10.020 --> 00:35:12.160
Ja, das mit der Mars-Mission mit demetrischen Systemen.

00:35:12.160 --> 00:35:12.900
Ja, ja.

00:35:13.240 --> 00:35:14.340
Vielleicht gehen wir nochmal kurz darauf ein.

00:35:14.420 --> 00:35:16.620
Also ein Bagger ist natürlich in den Flugzeug abgestürzt.

00:35:16.680 --> 00:35:17.360
Nicht so gut, weil...

00:35:17.360 --> 00:35:18.120
Nee, es sind zwei sogar.

00:35:18.220 --> 00:35:19.080
Es sind zwei abgestürzt.

00:35:19.320 --> 00:35:19.640
Boing.

00:35:19.640 --> 00:35:20.360
Wo was passiert ist.

00:35:20.680 --> 00:35:23.320
So ein System eingebaut hat, das die Nase immer korrigieren sollte.

00:35:23.500 --> 00:35:24.600
Und dann ist der Sensor ausgefallen.

00:35:24.680 --> 00:35:26.500
Der hat nur einen eingebaut und dann...

00:35:26.500 --> 00:35:27.660
Und die Piloten wussten nichts davon?

00:35:27.660 --> 00:35:27.900
Ja.

00:35:28.220 --> 00:35:31.060
Bei dem zweiten Flug, der war sogar noch ein bisschen tragischer.

00:35:31.600 --> 00:35:33.200
Weil da wussten die Piloten davon.

00:35:34.000 --> 00:35:35.180
Haben es nicht abgeschickt gekriegt.

00:35:35.420 --> 00:35:36.460
Haben es nicht abgeschickt gekriegt.

00:35:36.600 --> 00:35:40.480
Und vor allem, dieses System ist gekoppelt an den Steuerknüppel.

00:35:41.400 --> 00:35:43.660
Das heißt, die haben versucht an den Steuerknüppel zu ziehen.

00:35:43.760 --> 00:35:44.920
Und das System hat dagegen gedrückt.

00:35:45.040 --> 00:35:46.100
Und irgendwann konnten die nicht mehr.

00:35:47.320 --> 00:35:48.940
Und das finde ich noch viel tragischer.

00:35:49.060 --> 00:35:51.560
Wenn du halt gegen die Maschine kämpfen musst.

00:35:51.740 --> 00:35:53.840
Und die Maschine in dem Moment will dich umbringen.

00:35:54.820 --> 00:35:55.560
Wie ist gesagt.

00:35:55.720 --> 00:35:56.200
Und dann gewinnst du auch noch.

00:35:56.200 --> 00:35:56.720
Das ist hart.

00:35:56.720 --> 00:35:57.820
Das ist echt hart.

00:35:58.220 --> 00:35:59.220
Und dann klappt es.

00:35:59.320 --> 00:35:59.620
Oh je.

00:35:59.780 --> 00:36:00.520
Und dann, genau.

00:36:00.600 --> 00:36:06.080
Nachdem diese beiden Flugzeuge abstürzt waren, ist ja auch die gesamte Flotte einfach stillgelegt worden.

00:36:06.400 --> 00:36:10.020
Für den Moment, bis da einmal eine neue Zertifikation durch war.

00:36:10.660 --> 00:36:11.460
Ja, die die haben.

00:36:11.600 --> 00:36:11.700
Ja.

00:36:12.100 --> 00:36:15.260
Also es war eine wirklich schöne Aufstellung von Sachen.

00:36:15.260 --> 00:36:15.280
Genau.

00:36:15.440 --> 00:36:17.880
Auf der Mars-Mission ist vielleicht auch noch interessant.

00:36:18.280 --> 00:36:18.920
Ah ja, Mars-Mission.

00:36:19.160 --> 00:36:19.780
Ja, weil es dann...

00:36:19.780 --> 00:36:20.300
Klassischer Fall.

00:36:20.660 --> 00:36:23.720
Kein Backup zwischen Umrechnung, zwischen metrischen und...

00:36:23.720 --> 00:36:24.240
Nur ein kleiner Fall.

00:36:25.120 --> 00:36:26.060
Das war das andere System.

00:36:26.240 --> 00:36:26.420
Genau.

00:36:26.420 --> 00:36:27.760
Das ist ein Imperiales System.

00:36:27.760 --> 00:36:27.660
Imperiales.

00:36:27.660 --> 00:36:27.940
Ja.

00:36:28.220 --> 00:36:28.520
Und halt...

00:36:28.520 --> 00:36:29.420
Genau.

00:36:29.520 --> 00:36:32.500
Das eine hat eben halt den Zoll gerechnet und das andere hat den Millimeter gerechnet.

00:36:32.540 --> 00:36:33.420
Empire Strikes Back.

00:36:33.880 --> 00:36:34.040
Ja.

00:36:34.520 --> 00:36:36.100
Was ich total ironisch finde wirklich.

00:36:36.440 --> 00:36:39.880
Wenn man mal in den USA war, da wird ja dieses Independence Day und diese Unabhängigkeit

00:36:39.880 --> 00:36:42.120
von England wirklich ganz, ganz, ganz, ganz hoch gehalten.

00:36:42.260 --> 00:36:42.960
Ja, aber...

00:36:42.960 --> 00:36:46.060
Und es ist keine Gelegenheit, nicht jedes Schiff und jeden Soldaten nochmal hervorzuheben,

00:36:46.140 --> 00:36:47.980
wie besonders das war, gegen England gewonnen zu haben.

00:36:48.300 --> 00:36:51.880
Aber da mit Händen und Füßen am imperialen System bei den Einheiten festzuhalten.

00:36:52.020 --> 00:36:52.100
Ja.

00:36:52.540 --> 00:36:53.900
Am Ende gewinnt der König doch.

00:36:56.240 --> 00:36:57.940
Ja, das war auch eine tragische Sache.

00:36:58.060 --> 00:36:58.140
Ja.

00:36:58.140 --> 00:36:58.160
Ja.

00:36:58.160 --> 00:36:58.200
Ja.

00:36:58.220 --> 00:36:58.660
Das ist dieses...

00:36:58.660 --> 00:37:05.560
Dieser Mars Reconnaissance Orbiter war das, glaube ich, wo einfach die Positionierung

00:37:05.560 --> 00:37:06.100
nicht gestimmt hat.

00:37:06.180 --> 00:37:08.940
Das heißt, er wollte um den Mars kreisen, aber er hat ihn getroffen.

00:37:09.700 --> 00:37:10.060
Klabum.

00:37:11.600 --> 00:37:14.120
Andererseits, habe es auch zum Jochen schon in dem Vortrag gesagt, ist auch so ein gewisser

00:37:14.120 --> 00:37:17.980
Power Move, ja, von der Erde, dass wir da hier Jahre und Millionen reinstecken und

00:37:17.980 --> 00:37:19.220
dann einfach...

00:37:19.220 --> 00:37:19.400
Zack.

00:37:22.080 --> 00:37:23.220
Verglüht im Orbit.

00:37:23.600 --> 00:37:24.940
Ja, und dann die anderen Geschichten.

00:37:25.100 --> 00:37:26.740
Da gibt es ja viele so Geschichten.

00:37:26.740 --> 00:37:28.300
Ich finde es tatsächlich praktisch.

00:37:28.300 --> 00:37:32.180
Also ich meine, die meisten Leute werden keine Software für Flugzeuge schreiben oder auch

00:37:32.180 --> 00:37:35.940
den Mars nicht mit irgendwas beschießen, aber was tatsächlich viel im Alltag irgendwie

00:37:35.940 --> 00:37:39.900
ja betrifft und das ist tatsächlich, ah ja, auch immer eine sehr hübsche Fehler, also

00:37:39.900 --> 00:37:44.740
dass Leute Excel-Sheets halt für alles möglich verwenden und dann da halt diese ganzen normalen

00:37:44.740 --> 00:37:48.800
Standard-Software-Engineering-Practices, die man halt so hat, die einen vor dem Gröbsten

00:37:48.800 --> 00:37:52.440
irgendwie bewahren, die gibt es da halt nicht.

00:37:52.860 --> 00:37:53.920
Man kann auf Excel dann das nachbauen.

00:37:54.540 --> 00:37:54.700
Bitte?

00:37:54.880 --> 00:37:55.640
Man kann das dann auch nachbauen.

00:37:55.760 --> 00:37:56.660
Ja, aber das wird...

00:37:56.660 --> 00:38:00.400
Ja, hast du schon mal gesehen, dass jemand Excel-Sheets in quasi...

00:38:00.400 --> 00:38:01.760
Habt ihr keine Unitests, aber in Excel-Sheets...

00:38:01.760 --> 00:38:06.500
Ja, oder Unitests oder irgendwie ein Repository eincheckt und das gibt es alles irgendwie nicht so richtig?

00:38:06.700 --> 00:38:07.060
Ja, ich habe...

00:38:07.060 --> 00:38:08.220
Nee, das geht alles über E-Mail...

00:38:08.220 --> 00:38:10.940
Du hast die Leitung schon ein paar Jahre nachgebaut, das war eine ganz tolle Erfahrung.

00:38:11.620 --> 00:38:11.680
Ja.

00:38:12.060 --> 00:38:12.960
Ach so, du hast es mal nach...

00:38:12.960 --> 00:38:13.380
Oh Gott.

00:38:13.940 --> 00:38:14.300
Genau.

00:38:15.740 --> 00:38:16.700
Das kann ja dann auch...

00:38:16.700 --> 00:38:19.880
Also sie hat ja da so ein paar Sachen erwähnt, die einfach richtig schlimme Folgen haben.

00:38:20.220 --> 00:38:23.120
JP Morgan hat halt eine von den Berechnungen, haben sie...

00:38:23.120 --> 00:38:23.280
Hups.

00:38:24.620 --> 00:38:25.020
Falsch.

00:38:25.180 --> 00:38:25.780
Addiert statt...

00:38:25.780 --> 00:38:25.780


00:38:25.780 --> 00:38:25.800
Addiert.

00:38:25.800 --> 00:38:25.840
Addiert.

00:38:26.000 --> 00:38:26.020
Addiert.

00:38:26.020 --> 00:38:26.500
Addiert.

00:38:26.500 --> 00:38:26.600
Addiert.

00:38:26.800 --> 00:38:31.260
Und dann haben sie ihre Risikobewertung einfach um Faktor 2 falsch gehabt und Milliarden an

00:38:31.260 --> 00:38:31.800
Dollar verloren.

00:38:32.760 --> 00:38:34.300
Ja gut.

00:38:34.820 --> 00:38:37.000
Als Softwareentwickler sagt man, selber schuld?

00:38:37.320 --> 00:38:38.680
Hättet ihr mal von uns gehört, aber...

00:38:38.680 --> 00:38:39.660
Er denkt halt so...

00:38:39.660 --> 00:38:42.180
Portier für jedes Feind-Wochenende.

00:38:43.880 --> 00:38:45.520
Ja, sechs Milliarden unter Freunden kommen.

00:38:46.500 --> 00:38:46.760
Ja.

00:38:47.760 --> 00:38:48.460
Ja, genau.

00:38:48.900 --> 00:38:51.560
Also es war wirklich eine schöne Zusammenstellung, war sehr unterhaltsam, war ein guter Anfang.

00:38:51.560 --> 00:38:52.740
Sie hat auch einen sehr guten Vortragsstil.

00:38:52.940 --> 00:38:53.120
Ja.

00:38:53.220 --> 00:38:54.220
War wirklich sehr angenehm.

00:38:54.500 --> 00:38:54.700
Perfekt.

00:38:55.000 --> 00:38:55.120
Ja.

00:38:55.120 --> 00:38:56.980
Ja, was gab es denn da noch?

00:38:57.140 --> 00:38:57.580
Danach.

00:38:58.200 --> 00:38:59.380
Oh ja, das war cool.

00:38:59.480 --> 00:39:02.980
Danach war so ein bisschen, für mich bisher, das Highlight des Tages.

00:39:03.480 --> 00:39:05.480
Das Highlight der Woche bisher.

00:39:06.140 --> 00:39:07.020
Haki Benita.

00:39:07.180 --> 00:39:07.380
Genau.

00:39:08.060 --> 00:39:09.820
How to get foreign keys horribly wrong.

00:39:10.200 --> 00:39:14.860
Ja, das müssen wir jetzt erzählen, weil ich bin nämlich in der Zeit rübergegangen zu dem anderen Workshop

00:39:14.860 --> 00:39:19.220
und habe dann aber nicht wirklich zugehört, sondern gearbeitet.

00:39:20.420 --> 00:39:20.800
Ja, gut.

00:39:21.020 --> 00:39:22.540
Aber deswegen kann ich das Workshop kennen.

00:39:22.540 --> 00:39:25.040
Denn aber den Topfer Haki Benita hätte ich gerne noch mehr verstanden,

00:39:25.140 --> 00:39:26.340
wie man den Foreign Keys richtig macht.

00:39:27.220 --> 00:39:28.540
Indizes setzen oder was hat er gesagt?

00:39:28.740 --> 00:39:35.940
Ja, aber also die Sache an Haki Benita ist, der ist ein DBA, ein Database Admin,

00:39:36.120 --> 00:39:37.960
der seit 20 Jahren im Geschäft ist, der kennt alle Tricks.

00:39:38.860 --> 00:39:43.080
Und er hat einen sehr unterhaltsamen Vortragsstil.

00:39:43.080 --> 00:39:44.100
Sehr energetisch.

00:39:44.680 --> 00:39:49.020
Ja, und auch das Publikum mit einbezogen und Fragen und dann auf Leute gezeigt und so.

00:39:49.100 --> 00:39:49.900
Also das ist großartig.

00:39:50.580 --> 00:39:52.260
Aber er hat so ganz harmlos angefangen.

00:39:52.540 --> 00:39:55.080
Er hat gesagt, ja, was fällt euch da auf?

00:39:56.120 --> 00:39:58.060
Und dann kam natürlich so, ja, da muss man ein Index machen.

00:39:58.160 --> 00:39:59.260
Und er hat gesagt, ja, aber?

00:40:00.960 --> 00:40:03.340
Und dann hat er das gemacht und hat so ein bisschen da die Sachen erzählt.

00:40:03.420 --> 00:40:04.840
Und dann hat er gesagt, was fällt euch denn jetzt auf?

00:40:04.900 --> 00:40:06.360
Und dann ist er noch eine Ebene runtergegangen.

00:40:06.540 --> 00:40:08.420
Und dann kamen schon weniger Kommentare.

00:40:08.580 --> 00:40:09.940
Und er hat gesagt, was fällt euch denn jetzt auf?

00:40:10.700 --> 00:40:14.940
Also er ist einfach ganz harmlos angefangen und dann so tief runtergegangen.

00:40:16.260 --> 00:40:16.920
Ja, okay.

00:40:17.460 --> 00:40:21.880
Ja, aber auch, als er dann aufgehört hat, hat das Publikum an seiner Stelle weitergemacht

00:40:21.880 --> 00:40:22.160
und hat ihm gesagt, ja, das ist ein DBA.

00:40:22.160 --> 00:40:22.220
Ja, okay.

00:40:22.220 --> 00:40:22.280
Ja, okay.

00:40:22.280 --> 00:40:22.340
Ja, okay.

00:40:22.340 --> 00:40:22.400
Ja, okay.

00:40:22.400 --> 00:40:22.500
Ja, okay.

00:40:22.540 --> 00:40:23.560
Und er hat dann gesagt, ja, das muss man nicht.

00:40:24.060 --> 00:40:27.680
Und sein Fazit war dann so, okay, das mit den Migrationen sollte man einfach lassen.

00:40:27.800 --> 00:40:28.420
Das ist keine gute Idee.

00:40:28.580 --> 00:40:30.380
Das muss man irgendwie nicht machen.

00:40:30.980 --> 00:40:32.720
Ja, also es ist wirklich, es ist halt problematisch.

00:40:32.800 --> 00:40:37.140
Je genauer man hinguckt, desto mehr Probleme sieht man da auch.

00:40:38.220 --> 00:40:41.540
Die natürlich aber auch nie nur nicht in allen Cases wirklich relevant sind.

00:40:41.640 --> 00:40:43.360
Vorher wieder so Eintauchter.

00:40:43.880 --> 00:40:45.260
Wir müssen erstmal kurz nochmal erklären.

00:40:45.780 --> 00:40:47.900
Also, dass das ein interessanter Talk war, haben wir jetzt verstanden.

00:40:48.000 --> 00:40:49.820
Aber womit ging es denn jetzt eigentlich?

00:40:50.240 --> 00:40:50.540
Also es...

00:40:51.440 --> 00:40:52.500
Nee, sprich du, René.

00:40:52.540 --> 00:41:08.880
Also im Endeffekt ging es darum, es war im Endeffekt ein Standardmodel, also Django-Model, jetzt mehr oder weniger, was man halt so kennt. Und dann ging es halt darum, was kann man daran verbessern.

00:41:08.880 --> 00:41:10.640
Und dann hat sich halt Ex-Videoforeign-Keys bezogen.

00:41:10.660 --> 00:41:11.300
Oder was ist gefährlich auch.

00:41:11.480 --> 00:41:13.220
Genau, oder was könnte gefährlich sein.

00:41:13.980 --> 00:41:21.480
Natürlich immer mit dem Hintergedanken, wenn man da jetzt eine Tabelle mit 50 Einträgen hat oder auch 500.000, ist das wahrscheinlich alles relativ egal.

00:41:21.800 --> 00:41:28.040
Oder kein Hochverfügbarkeitssystem, aber halt, was für Systeme kann, was kann man halt theoretisch kaputt machen, ohne es zu wissen.

00:41:28.580 --> 00:41:37.280
Und dann hat er sich halt quasi dann darüber rausgehangelt, wie sieht es aus, wenn ich diesen Index setze, was ist mit automatisch gesetzten Indizes, kann ich die wegnehmen?

00:41:37.920 --> 00:41:38.360
Ja.

00:41:38.880 --> 00:41:41.080
Genau, und wie weit kann man da gehen?

00:41:41.840 --> 00:41:42.000
Genau.

00:41:42.560 --> 00:41:46.100
Was kann man alles kaputt machen, was kann einem alles implizit auf die Füße fallen?

00:41:46.160 --> 00:41:57.500
Genau, und dann auch viele Migrations, Migration-Anordnungen, was man damit noch anders machen kann, also indem man die einfach auseinanderzieht, Atomare Transaktionen, Reihenfolge und da halt immer weiter runter.

00:41:57.780 --> 00:42:06.280
Und das halt in einem sehr, sehr energetischen, interaktiven Weg, um auch dieses Thema, das man auch perfekt, ultra-trocken irgendwie runterbeten könnte.

00:42:06.780 --> 00:42:08.860
Also das ist tatsächlich einer von den Talks, die ich mir auch immer...

00:42:08.860 --> 00:42:11.400
Auf die Liste geschrieben habe, für die muss ich später nochmal nachschauen.

00:42:11.420 --> 00:42:12.080
Ja, solltest du...

00:42:12.080 --> 00:42:21.040
Also was konkrete Dinge drin waren, wie zum Beispiel ist sowas wie, du hast halt ein Foreign Key auf dein User-Modell als Created Ad oder sowas an irgendeinem Modell dran.

00:42:21.580 --> 00:42:26.640
Und wenn du jetzt sagst, okay, das wird jetzt schon allmählich relativ groß, ich mach das...

00:42:26.640 --> 00:42:37.540
Das wird eh nicht benutzt und dann nimmst du den Index weg und dann löscht irgendein automatischer Job ab und zu mal User und legt dann deine Datenbank lahm, weil, naja, es gibt keinen Index mehr auf dem Ding.

00:42:37.540 --> 00:42:37.700
Ja.

00:42:37.700 --> 00:42:37.820
Ja.

00:42:37.820 --> 00:42:37.840
Ja.

00:42:37.840 --> 00:42:37.980
Ja.

00:42:37.980 --> 00:42:38.020
Ja.

00:42:38.020 --> 00:42:38.080
Ja.

00:42:38.080 --> 00:42:38.220
Ja.

00:42:38.220 --> 00:42:38.260
Ja.

00:42:38.260 --> 00:42:38.320
Ja.

00:42:38.320 --> 00:42:38.360
Ja.

00:42:38.360 --> 00:42:38.360


00:42:38.360 --> 00:42:38.380
Ja.

00:42:38.380 --> 00:42:38.400
Ja.

00:42:38.400 --> 00:42:38.460
Ja.

00:42:38.860 --> 00:42:40.020
Ja.

00:42:40.020 --> 00:42:40.020


00:42:40.020 --> 00:42:40.020


00:42:40.020 --> 00:42:40.020


00:42:40.020 --> 00:42:40.020


00:42:40.020 --> 00:42:40.020


00:42:40.020 --> 00:42:40.020


00:42:40.020 --> 00:42:40.020


00:42:40.020 --> 00:42:40.020


00:42:40.020 --> 00:42:40.020


00:42:40.020 --> 00:42:40.020


00:42:40.020 --> 00:42:40.020


00:42:40.020 --> 00:42:41.540
Ja.

00:42:41.540 --> 00:42:41.660
Ja.

00:42:41.660 --> 00:42:41.660


00:42:41.660 --> 00:42:41.660


00:42:41.660 --> 00:42:42.000
Ja.

00:42:42.000 --> 00:42:42.200
Ja.

00:42:42.200 --> 00:42:42.200


00:42:42.200 --> 00:42:42.580
Ja.

00:42:42.580 --> 00:42:42.580


00:42:42.580 --> 00:42:42.760
Ja.

00:42:42.760 --> 00:42:42.860
Ja.

00:42:42.860 --> 00:42:42.860


00:42:42.860 --> 00:42:42.860


00:42:42.860 --> 00:42:42.920
Ja.

00:42:42.920 --> 00:42:42.920


00:42:42.920 --> 00:42:42.960
Ja.

00:42:42.960 --> 00:42:43.060
Ja.

00:42:43.060 --> 00:42:43.060


00:42:43.060 --> 00:42:43.120
Ja.

00:42:45.980 --> 00:42:45.980


00:42:45.980 --> 00:42:45.980


00:42:45.980 --> 00:42:45.980


00:42:45.980 --> 00:42:45.980


00:42:45.980 --> 00:42:45.980


00:42:45.980 --> 00:42:45.980


00:42:45.980 --> 00:42:45.980


00:42:45.980 --> 00:42:45.980


00:42:45.980 --> 00:42:45.980


00:42:45.980 --> 00:42:45.980


00:42:45.980 --> 00:42:45.980


00:42:45.980 --> 00:42:45.980


00:42:45.980 --> 00:42:45.980


00:42:45.980 --> 00:42:45.980


00:42:45.980 --> 00:42:45.980


00:42:45.980 --> 00:42:45.980


00:42:45.980 --> 00:42:45.980


00:42:45.980 --> 00:42:45.980


00:42:45.980 --> 00:42:45.980


00:42:45.980 --> 00:42:45.980


00:42:45.980 --> 00:42:45.980


00:42:45.980 --> 00:42:45.980


00:42:45.980 --> 00:42:45.980


00:42:45.980 --> 00:42:45.980


00:42:45.980 --> 00:42:47.900
hast. Wenn du bei Instagram mit 500 Millionen

00:42:47.900 --> 00:42:50.000
Nutzer anscheinend bist. Ja, genau. Die müssen da schon

00:42:50.000 --> 00:42:51.960
aufpassen. Das hat er am Ende auch

00:42:51.960 --> 00:42:53.660
gesagt. Viele von den Sachen sind halt jetzt

00:42:53.660 --> 00:42:56.160
rausgesucht als Probleme für einen Vortrag.

00:42:56.420 --> 00:42:57.920
Sonst kannst du nichts zeigen.

00:42:59.020 --> 00:43:00.360
So für den Hausgebrauch.

00:43:01.360 --> 00:43:01.940
Weil wenn

00:43:01.940 --> 00:43:03.980
du 10.000

00:43:03.980 --> 00:43:05.860
TPS hast, Transaktionen pro Sekunde, ist das

00:43:05.860 --> 00:43:07.740
sicherlich ein anderes Thema, als wenn du drei

00:43:07.740 --> 00:43:08.980
Transaktionen pro Sekunde hast.

00:43:09.980 --> 00:43:10.660
Also ich glaube,

00:43:11.000 --> 00:43:13.740
einer von den Learnings war, dass er quasi

00:43:13.740 --> 00:43:15.020
die Nutzer

00:43:15.020 --> 00:43:17.600
aware gemacht hat, dass Django

00:43:17.600 --> 00:43:18.900
sehr viele Dinge

00:43:18.900 --> 00:43:22.000
für einen mitdenkt

00:43:22.000 --> 00:43:23.660
und dass es halt Cases gibt,

00:43:23.920 --> 00:43:25.640
wo man das nicht tun,

00:43:25.740 --> 00:43:27.400
also wo man Django nicht das...

00:43:27.400 --> 00:43:29.640
Also er hat am Anfang die Queries, glaube ich,

00:43:29.660 --> 00:43:30.160
mit angemacht.

00:43:30.160 --> 00:43:31.040
Die bei den Queries.

00:43:31.560 --> 00:43:33.220
Ja, oder dass man auf jeden Fall immer

00:43:33.220 --> 00:43:35.300
die Queries, nicht bei einer Migration zum Beispiel,

00:43:35.400 --> 00:43:38.160
er hatte dann irgendwie eine schöne Stop-Slide,

00:43:39.080 --> 00:43:40.420
die dann ab und zu mal kamen,

00:43:40.480 --> 00:43:41.780
sondern erst immer mal das SQL

00:43:41.780 --> 00:43:43.800
angucken, bevor man die Migration wirklich ausführt, weil

00:43:43.800 --> 00:43:46.500
den wichtigsten Schritt hat er da für mich

00:43:46.500 --> 00:43:47.960
eigentlich in den Fragen am Ende gesagt.

00:43:48.460 --> 00:43:50.400
Und hat er nämlich gesagt, bei Ihnen machen

00:43:50.400 --> 00:43:52.620
sie es so, dass sie eine GitHub-Action haben,

00:43:53.300 --> 00:43:54.640
die das SQL, wenn du eine

00:43:54.640 --> 00:43:56.500
Migration machst, schreibt die dir das SQL

00:43:56.500 --> 00:43:58.260
als Kommentar in deine Review.

00:43:58.280 --> 00:43:59.260
Das fand ich auch krass.

00:44:00.120 --> 00:44:02.420
Das heißt, du bist gezwungen, dieses SQL anzugucken.

00:44:02.540 --> 00:44:04.380
Du kannst gar nicht, du kannst nicht zustimmen,

00:44:04.460 --> 00:44:06.200
ohne das SQL gesagt zu haben. Und das fand ich

00:44:06.200 --> 00:44:06.860
einen super Trick.

00:44:07.160 --> 00:44:10.840
Das ist psychologisch

00:44:10.840 --> 00:44:12.420
korrekt. Ja, das ist kein, wir halten dich

00:44:12.420 --> 00:44:13.720
ab, das zu tun, sondern ein,

00:44:13.800 --> 00:44:14.740
hier, guck doch mal.

00:44:16.140 --> 00:44:18.200
Ja, absolut. Großartig. Und was auch noch echt

00:44:18.200 --> 00:44:20.140
cool war, der hat gesagt, dass

00:44:20.140 --> 00:44:22.400
sie exzessiv die Django-Checks

00:44:22.400 --> 00:44:24.600
verwenden, also die System-Check-Framework.

00:44:24.620 --> 00:44:25.920
Aber mit eigenen, geschriebenen Regeln. Genau.

00:44:26.280 --> 00:44:28.120
Also, erstmal hängt es bei denen in der Pipeline.

00:44:28.180 --> 00:44:29.940
Das geht relativ einfach. Das haben wir jetzt auch angefangen,

00:44:30.000 --> 00:44:32.280
einzubauen. Also, das führt auch dazu, dass man da einmal

00:44:32.280 --> 00:44:34.280
wirklich auch mal guckt, was Django so meldet.

00:44:34.380 --> 00:44:36.440
Manche Dinge machen jetzt auch zum Beispiel in der

00:44:36.440 --> 00:44:38.120
Pipeline einfach keinen Sinn, manche Einstellungen,

00:44:38.220 --> 00:44:39.920
aber trotzdem, dass man die da einmal so konfrontiert, dass

00:44:39.920 --> 00:44:42.100
der Pipeline grün ist, was schon mal super ist.

00:44:42.480 --> 00:44:43.780
Und eigene Checks wirklich zu verwenden.

00:44:43.800 --> 00:44:45.680
Weil das ist, die laufen natürlich

00:44:45.680 --> 00:44:47.960
in jedem Mal, wenn der Development-Server

00:44:47.960 --> 00:44:49.760
startet. Das heißt, wenn man da sehr viele hat,

00:44:49.800 --> 00:44:51.900
oder sehr langsame hat, kann man natürlich die Developer-Experience

00:44:51.900 --> 00:44:53.620
massiv beeinflussen, negativ.

00:44:54.020 --> 00:44:55.820
Muss man ein bisschen aufpassen. Weil viele

00:44:55.820 --> 00:44:57.740
Dinge könnte man auch irgendwie in der Linting-Stage machen,

00:44:57.820 --> 00:44:59.860
vermutlich. Trotzdem hast du halt Zugriff

00:44:59.860 --> 00:45:01.700
auf das komplette initialisierte Django-Projekt.

00:45:01.760 --> 00:45:03.660
Und da kann man, glaube ich, sehr, sehr viele coole Dinge

00:45:03.660 --> 00:45:05.640
Richtung Code-Qualität machen,

00:45:05.760 --> 00:45:07.220
weil du halt den Leuten sagst, so, hey,

00:45:07.660 --> 00:45:09.360
guck mal, hier, lieber

00:45:09.360 --> 00:45:11.800
Mitentwickler, folgendes ist gerade komisch.

00:45:12.380 --> 00:45:13.780
Das ist sehr mächtig und das

00:45:13.780 --> 00:45:15.520
ist auch eine Sache, wo ich mich auch nochmal mehr

00:45:15.520 --> 00:45:17.640
damit beschäftigen möchte. Weil ich glaube, dass das

00:45:17.640 --> 00:45:19.680
wirklich sehr, dass man

00:45:19.680 --> 00:45:20.980
da nochmal sehr viel rausholen kann.

00:45:21.400 --> 00:45:23.520
Wie letztes Jahr bei dem Vigo-Talk,

00:45:23.960 --> 00:45:25.800
deine Architektur oder Code-Qualität

00:45:25.800 --> 00:45:27.180
ist so gut wie dein Tooling, das du hast.

00:45:27.820 --> 00:45:29.660
Ohne Tooling degradet

00:45:29.660 --> 00:45:30.560
alles sofort.

00:45:32.540 --> 00:45:33.580
Also war nach Fistball

00:45:33.580 --> 00:45:35.500
viele coole Sachen drin. Haki Benita ist

00:45:35.500 --> 00:45:36.060
immer gut.

00:45:38.120 --> 00:45:39.800
Kann ja die Links wieder unten reintun.

00:45:40.520 --> 00:45:41.420
Dann der nächste Talk.

00:45:42.020 --> 00:45:42.820
Keinen Gipsen.

00:45:42.820 --> 00:45:44.880
War gar kein technischer Talk diesmal.

00:45:45.160 --> 00:45:46.220
Nee, hat er auch am Anfang

00:45:46.220 --> 00:45:48.380
so scherzhaft gesagt.

00:45:48.600 --> 00:45:50.680
Nächstes Mal wieder Techno-Talk war viel zu anstrengend.

00:45:52.620 --> 00:45:52.840
Ja,

00:45:52.900 --> 00:45:54.120
How we make decisions in Django.

00:45:55.880 --> 00:45:56.320
Ja,

00:45:56.600 --> 00:45:58.740
mir fällt es schwer,

00:45:58.840 --> 00:45:59.620
da jetzt was zu sagen.

00:46:01.000 --> 00:46:02.900
Ich habe in der Zeit was vergessen. Kaffee getrunken.

00:46:03.520 --> 00:46:04.520
Ja, ich würde auch zu.

00:46:04.560 --> 00:46:06.420
Es ist halt ein schwieriges Thema und ich habe absolut keine Meinung

00:46:06.420 --> 00:46:07.600
oder keine Ahnung davon.

00:46:07.940 --> 00:46:09.920
Ich würde auch sagen, so, ja, ja.

00:46:09.920 --> 00:46:11.460
Ich finde es gut, dass das jemand macht.

00:46:11.860 --> 00:46:11.980
Ja.

00:46:12.820 --> 00:46:14.380
Muss man...

00:46:14.380 --> 00:46:16.460
Also im Endeffekt, es ging ihm ja, glaube ich,

00:46:17.280 --> 00:46:19.680
ging ihm ja darum,

00:46:19.800 --> 00:46:20.300
dass er,

00:46:21.420 --> 00:46:24.020
ich werde darauf angesprochen, ich zu oft im Endeffekt sage.

00:46:24.080 --> 00:46:25.380
Ja, wir haben schon ein Prächspiel draus gemacht.

00:46:26.680 --> 00:46:27.680
Das werden wir heute Abend

00:46:27.680 --> 00:46:29.300
beim Review der Folge nochmal spielen.

00:46:31.460 --> 00:46:32.320
Ging ihm darum,

00:46:32.660 --> 00:46:34.960
dass halt der Prozess,

00:46:35.180 --> 00:46:36.380
wie über gewisse Dinge

00:46:36.380 --> 00:46:38.980
abgestimmt wird, also meist im Forum soll er diskutiert werden,

00:46:39.400 --> 00:46:40.260
dass das jetzt ermüdet ist,

00:46:40.260 --> 00:46:42.260
da kann ich doch einen schönen Bogen spannen zu meinem Eingangsthema,

00:46:42.820 --> 00:46:46.820
ähm, ich habe vor einem Jahr, ähm,

00:46:47.460 --> 00:46:49.560
äh, ist, sind in den Django-Storages,

00:46:49.660 --> 00:46:51.860
ungefähr vor einem Jahr, glaube ich, sind die Django-Storages,

00:46:51.860 --> 00:46:55.240
ist die, die, äh, die Settings-API leicht verändert worden.

00:46:55.320 --> 00:46:57.160
Da gibt es irgendwie statt mehreren Einzelvariablen,

00:46:57.180 --> 00:46:58.140
gibt es eine Variable.

00:46:58.740 --> 00:47:01.320
Da gab es auch eine, ähm, eine Warnung.

00:47:01.900 --> 00:47:03.900
Und normalerweise kümmere ich mich da immer sofort drum,

00:47:03.920 --> 00:47:05.720
aber wir hatten einen ganz, ganz merkwürdigen Bug

00:47:05.720 --> 00:47:08.440
mit dem, äh, Sorrel-Thumbnail-Package,

00:47:08.500 --> 00:47:11.040
irgendwas ganz Wildes, wo nichts mehr funktioniert hat.

00:47:11.100 --> 00:47:12.800
Und ich habe dann einfach gesagt, ich mache das dann später.

00:47:12.800 --> 00:47:15.960
Und dann irgendwann war die Warnung halt weg.

00:47:16.440 --> 00:47:17.640
Und ich so, ah, okay, dann...

00:47:17.640 --> 00:47:18.500
Ja, perfekt.

00:47:18.660 --> 00:47:18.980
Okay.

00:47:19.340 --> 00:47:21.680
So, ähm, hat es halt auch nicht,

00:47:21.840 --> 00:47:23.220
ausnahmsweise halt einmal nicht,

00:47:23.340 --> 00:47:24.240
auch wie das halt immer so ist.

00:47:24.300 --> 00:47:25.500
Das ist dieses Schweizer Käse-Modell,

00:47:25.560 --> 00:47:26.620
das ist halt genau einmal...

00:47:26.620 --> 00:47:27.480
Das kommt ja nachher auch, ne?

00:47:27.480 --> 00:47:27.800
Genau.

00:47:27.800 --> 00:47:29.440
Das kam vorher schon, im Wartest-Übertrag.

00:47:29.760 --> 00:47:31.920
Ähm, genau in dem einmal,

00:47:32.040 --> 00:47:33.260
wo man sich nicht sofort drum kümmert,

00:47:33.340 --> 00:47:34.380
wo irgendwas Komisches passiert,

00:47:34.480 --> 00:47:35.800
wo man es halt dann doch irgendwie ein bisschen aufschiebt,

00:47:36.460 --> 00:47:40.160
ähm, in Kombination mit, äh, Django-Storages,

00:47:40.460 --> 00:47:42.780
was wir für S3, also für Datentransfer nach S3,

00:47:42.800 --> 00:47:44.920
verwenden, ähm, war eine Plattform,

00:47:45.240 --> 00:47:46.900
ähm, an der ich gearbeitet habe.

00:47:47.300 --> 00:47:50.140
Und, ähm, genau in dem Zeitfenster,

00:47:50.260 --> 00:47:52.460
wo wir dann quasi das Django-Upgedated haben,

00:47:52.860 --> 00:47:54.720
ähm, wo dann quasi diese Storage war,

00:47:54.780 --> 00:47:56.760
also dass die Deprecation quasi aktiv wurde,

00:47:57.420 --> 00:48:00.000
ähm, wurden dann halt von den Nutzern

00:48:00.000 --> 00:48:02.680
hunderte von Dokumenten hochgeladen,

00:48:02.840 --> 00:48:04.320
was mehr Dokumente wahrscheinlich waren,

00:48:04.420 --> 00:48:05.800
als insgesamt bis jetzt hochgeladen wurden,

00:48:05.840 --> 00:48:06.900
weil das halt so ein neues Feature war,

00:48:06.920 --> 00:48:07.580
das dann live ging.

00:48:08.120 --> 00:48:10.720
Und leider hat Django-Storages das nicht gemerkt.

00:48:10.880 --> 00:48:12.200
Django dachte, das Feld ist nicht mehr da

00:48:12.200 --> 00:48:12.780
und die Sachen sind einfach nicht mehr da.

00:48:12.780 --> 00:48:13.800
Die sind alle in Nirvana gelandet.

00:48:14.820 --> 00:48:15.600
Das war ärgerlich.

00:48:16.380 --> 00:48:16.580
Ähm.

00:48:16.980 --> 00:48:19.320
Eine schöne, schöne Übertreibung, die du hier erwählst.

00:48:19.600 --> 00:48:19.880
Ärgerlich.

00:48:20.080 --> 00:48:20.220
Ja.

00:48:21.560 --> 00:48:24.660
Und, äh, war natürlich auch etwas schwierig,

00:48:24.740 --> 00:48:25.660
dann den Leuten zu erklären,

00:48:25.820 --> 00:48:26.960
äh, sorry, bitte alles nochmal.

00:48:27.320 --> 00:48:28.640
Teilweise waren die Sachen natürlich einfach da.

00:48:28.700 --> 00:48:30.280
Nee, die sind da ja da, die...

00:48:30.280 --> 00:48:31.100
Ja, klar, braucht man ja.

00:48:31.240 --> 00:48:31.680
So, weg.

00:48:32.220 --> 00:48:33.000
Ja, war sehr blöd.

00:48:33.080 --> 00:48:34.920
Dann habe ich das halt im Django-Forum halt mal angesprochen,

00:48:35.000 --> 00:48:36.520
hab gesagt, hey Leute, ist das sowas irgendwie dumm gelaufen,

00:48:36.600 --> 00:48:37.260
kann man nicht mehr was tun.

00:48:37.360 --> 00:48:39.080
Und dann hat sich da so eine Diskussion ergeben,

00:48:39.140 --> 00:48:40.160
dass man ja vielleicht, weil,

00:48:40.160 --> 00:48:42.120
weil Django ist ja super dokumentiert,

00:48:42.120 --> 00:48:43.580
so bis Version 1.0 zurück,

00:48:44.080 --> 00:48:45.400
ob man nicht einfach sagen soll,

00:48:45.460 --> 00:48:47.300
hey, wir machen irgendein System-Check mal wieder,

00:48:47.400 --> 00:48:48.520
ein System-Check, wo wir einfach sagen,

00:48:48.600 --> 00:48:50.620
hey, guck mal, du verwendest hier eine Variable,

00:48:50.860 --> 00:48:52.060
die soll das eigentlich nicht mehr geben.

00:48:53.160 --> 00:48:54.900
Denk mal drüber nach, ob du die wirklich noch,

00:48:55.100 --> 00:48:56.600
ob da, ob da alles richtig ist bei dir.

00:48:56.720 --> 00:48:58.800
Ne, man kann ja System-Checks aktiv disablen und so,

00:48:58.860 --> 00:48:59.820
wenn jetzt jemand der Meinung ist,

00:49:00.100 --> 00:49:02.360
er braucht jetzt die Login-URL für irgendwas anderes

00:49:02.360 --> 00:49:03.420
oder ein ganzer Party-Package,

00:49:03.500 --> 00:49:04.360
will unbedingt die Login,

00:49:04.420 --> 00:49:05.640
dann nimmt man es halt aus

00:49:05.640 --> 00:49:07.080
und lebt damit, dass die disabled ist.

00:49:07.620 --> 00:49:09.260
Gut, dann ist mehr oder weniger alles agreed worden.

00:49:09.340 --> 00:49:10.540
Ich habe einen Pull-Request gemacht,

00:49:10.540 --> 00:49:12.080
ähm, hab mir,

00:49:12.120 --> 00:49:14.700
ähm, sehr zum Ärger von manchen Leuten

00:49:14.700 --> 00:49:16.480
eine initiale Liste von, von, äh,

00:49:16.480 --> 00:49:18.040
von GPT generieren lassen,

00:49:18.220 --> 00:49:18.780
weil ich dachte, ich,

00:49:18.860 --> 00:49:20.420
damit ich erstmal was hab zum Testen,

00:49:20.480 --> 00:49:21.320
ob es überhaupt funktioniert,

00:49:21.820 --> 00:49:23.620
hab die danach nochmal manuell abgeglichen,

00:49:23.680 --> 00:49:25.040
trotzdem waren direkt ein paar Leute böse,

00:49:25.380 --> 00:49:26.620
hab dann gesagt, hey, chill,

00:49:26.740 --> 00:49:27.660
wir sind noch nicht fertig.

00:49:27.660 --> 00:49:28.640
Dieser Oni bist du, was du einfach.

00:49:30.880 --> 00:49:32.240
So, haben das dann gemacht,

00:49:32.340 --> 00:49:33.360
ich hab nochmal quasi alle,

00:49:33.380 --> 00:49:34.340
alle Change-Logs gemacht,

00:49:34.420 --> 00:49:35.580
wir haben die nochmal verlinkt,

00:49:35.940 --> 00:49:37.560
ähm, ich hab nochmal Optimierungsideen,

00:49:37.620 --> 00:49:38.620
hey, wenn du ein Set verwendest,

00:49:38.680 --> 00:49:39.880
statt einem, statt einer Liste,

00:49:39.880 --> 00:49:40.980
das ist nochmal einen Ticken schneller,

00:49:41.100 --> 00:49:42.000
weil das läuft ja die ganze Zeit,

00:49:42.080 --> 00:49:42.100
du hast ja noch mal ein paar,

00:49:42.120 --> 00:49:42.400
du, du, du, du,

00:49:42.400 --> 00:49:43.740
richtig coole Lösung,

00:49:44.440 --> 00:49:46.520
und dann kam halt von einer Person,

00:49:47.020 --> 00:49:47.960
naja, aber wir haben doch,

00:49:48.120 --> 00:49:48.920
wir machen doch keine,

00:49:48.960 --> 00:49:50.340
keine Deprecated-Sachen im,

00:49:50.680 --> 00:49:51.880
im, im, im Framework,

00:49:51.960 --> 00:49:52.320
und dann hab ich so,

00:49:52.340 --> 00:49:53.520
ja, aber die Leute haben doch gesagt,

00:49:53.980 --> 00:49:54.640
ich bin nicht der Einzige,

00:49:54.720 --> 00:49:55.340
der das passiert,

00:49:55.740 --> 00:49:56.960
es hilft halt extrem,

00:49:57.560 --> 00:49:58.700
es macht den Update-Prozess

00:49:58.700 --> 00:49:59.700
ein bisschen einfacher,

00:50:00.100 --> 00:50:01.160
es gibt aktuell noch nichts,

00:50:01.220 --> 00:50:01.700
was das tut,

00:50:01.780 --> 00:50:02.860
weil sonst wär's mir ja nicht passiert,

00:50:02.940 --> 00:50:03.600
und ich bin ja aware,

00:50:03.800 --> 00:50:04.680
oh, Danko, upgrade die ganze,

00:50:04.680 --> 00:50:05.840
das ganze Tooling, das es da gibt,

00:50:06.220 --> 00:50:06.840
klingt doch gut.

00:50:07.360 --> 00:50:07.980
Nee, machen wir nicht.

00:50:08.880 --> 00:50:10.340
Und irgendwie war dann halt so

00:50:10.340 --> 00:50:11.860
diese eine Gegenstimme gegen halt,

00:50:11.860 --> 00:50:14.040
zehn Leute, 15 Leute,

00:50:14.160 --> 00:50:15.700
die im PR mitgearbeitet haben,

00:50:15.760 --> 00:50:16.600
also auch wirklich motiviert

00:50:16.600 --> 00:50:17.580
mitgearbeitet haben,

00:50:18.080 --> 00:50:18.920
oder halt auch im Forum

00:50:18.920 --> 00:50:19.960
sich geäußert haben,

00:50:20.580 --> 00:50:22.460
und irgendwie hat halt diese eine Person

00:50:22.460 --> 00:50:23.620
das halt dazu gebracht,

00:50:23.760 --> 00:50:25.400
dass es halt da nicht passiert ist.

00:50:26.380 --> 00:50:26.740
Und, ähm,

00:50:26.760 --> 00:50:27.920
wie der, wie der Diskussion von gestern,

00:50:28.000 --> 00:50:28.680
wer darf denn mergen,

00:50:28.800 --> 00:50:29.580
und wer sagt dann nein?

00:50:30.320 --> 00:50:30.920
Genau, oder auch das,

00:50:31.040 --> 00:50:31.720
was Carlton gesagt hat,

00:50:31.760 --> 00:50:32.940
dass Konsens gesucht wird,

00:50:33.060 --> 00:50:33.120
und das auch genau das bedeutet.

00:50:33.120 --> 00:50:33.960
Genau, das ist ja genau das,

00:50:34.040 --> 00:50:34.400
und ich glaube,

00:50:34.800 --> 00:50:35.320
dass er hat,

00:50:35.460 --> 00:50:36.400
also selbst Carlton war ja auch

00:50:36.400 --> 00:50:38.040
in dem, in dem Thread da dabei,

00:50:38.440 --> 00:50:39.480
und da hat er dann auch

00:50:39.480 --> 00:50:40.740
das durchklingen lassen,

00:50:40.740 --> 00:50:41.600
was, glaube ich,

00:50:41.600 --> 00:50:42.920
teilweise hinter der Motivation

00:50:42.920 --> 00:50:43.880
dieses Vortrags stand,

00:50:44.340 --> 00:50:45.180
weil ihn das, glaube ich,

00:50:45.220 --> 00:50:46.580
auch manchmal einfach frustriert,

00:50:47.060 --> 00:50:47.860
dass es halt dann quasi,

00:50:48.360 --> 00:50:49.760
ne, alle, alle Leute sagen,

00:50:49.920 --> 00:50:51.140
okay, das können wir machen,

00:50:51.260 --> 00:50:52.240
wie dieser schöne Spruch,

00:50:52.420 --> 00:50:52.680
ähm,

00:50:53.640 --> 00:50:54.400
komm ich jetzt drauf,

00:50:55.000 --> 00:50:55.740
äh, safe enough,

00:50:55.840 --> 00:50:56.480
good enough for now,

00:50:56.560 --> 00:50:57.380
safe enough to try,

00:50:57.520 --> 00:50:58.940
so, im allerschlimmsten Fall

00:50:58.940 --> 00:50:59.960
muss man halt so ein Security,

00:51:00.100 --> 00:51:01.560
das baut man den Check halt wieder aus,

00:51:01.600 --> 00:51:01.920
wenn man merkt,

00:51:01.980 --> 00:51:02.800
dass es jetzt nach drei,

00:51:02.880 --> 00:51:03.880
nach einem Major Release

00:51:03.880 --> 00:51:04.640
furchtbar ist,

00:51:04.680 --> 00:51:05.520
und alle es doof finden,

00:51:05.940 --> 00:51:06.480
dann ist es halt,

00:51:06.540 --> 00:51:07.120
hast du ja nicht mehr,

00:51:07.180 --> 00:51:07.740
so, keine Ahnung.

00:51:08.320 --> 00:51:08.880
Und, ähm,

00:51:08.880 --> 00:51:09.220
ich glaube,

00:51:09.340 --> 00:51:10.260
dass das so ein bisschen auch der,

00:51:10.260 --> 00:51:11.620
einer der Väter von,

00:51:11.880 --> 00:51:12.420
der Gedanken war,

00:51:12.480 --> 00:51:12.720
weil ich glaube,

00:51:12.740 --> 00:51:13.980
der erlebt sowas halt sehr, sehr oft.

00:51:14.200 --> 00:51:14.260
Ja.

00:51:14.600 --> 00:51:15.560
Und das hat eine Person,

00:51:15.640 --> 00:51:16.560
die Handbremse quasi,

00:51:16.660 --> 00:51:17.400
ne, einmal so quasi

00:51:17.400 --> 00:51:18.820
schönen Stock ins Getriebe,

00:51:19.240 --> 00:51:19.920
wo mehr oder weniger

00:51:19.920 --> 00:51:21.340
sich eine coole Dynamik entwickelt hat,

00:51:21.380 --> 00:51:22.420
wo man dann auch wirklich sagen kann,

00:51:22.440 --> 00:51:22.780
ey, guck mal,

00:51:22.840 --> 00:51:23.200
das ist ein,

00:51:23.380 --> 00:51:25.080
das hilft vor allem Newbies halt, ne,

00:51:25.200 --> 00:51:25.460
und.

00:51:25.980 --> 00:51:27.440
Ja, man gibt halt vor allem dem Veto

00:51:27.440 --> 00:51:28.260
sehr viel Macht,

00:51:28.460 --> 00:51:29.100
ja, man gibt dem,

00:51:29.240 --> 00:51:30.100
jeder kann sagen nein,

00:51:30.180 --> 00:51:30.800
und dann stimmt's,

00:51:30.860 --> 00:51:31.940
und egal wie viele Leute vorher,

00:51:31.940 --> 00:51:33.600
ein bisschen gespaltenem Meinung zu.

00:51:34.180 --> 00:51:35.360
Ja, es ist auch schwierig,

00:51:35.520 --> 00:51:35.700
aber,

00:51:35.700 --> 00:51:37.720
aber wenn sowas unterwegs ist,

00:51:37.800 --> 00:51:39.180
das ist natürlich super frustrierend,

00:51:39.180 --> 00:51:40.280
wenn man schon viel Zeit

00:51:40.280 --> 00:51:41.500
und viel Arbeit reingesteckt hat,

00:51:41.660 --> 00:51:42.800
und die Frage ist jetzt wobei,

00:51:42.900 --> 00:51:43.380
dann sagt einer,

00:51:43.500 --> 00:51:43.760
ach, ne, du.

00:51:43.800 --> 00:51:45.520
Also ich bin ganz auf der Meinung,

00:51:45.640 --> 00:51:46.820
so better ask for forgiveness

00:51:46.820 --> 00:51:47.540
than for permission.

00:51:48.160 --> 00:51:48.360
Mhm.

00:51:48.620 --> 00:51:49.660
Das ist aber hier ja nicht so.

00:51:49.700 --> 00:51:51.860
Das ist aber genau bei so einem Framework,

00:51:51.900 --> 00:51:53.360
aber vielleicht genau falsch rum ist,

00:51:53.420 --> 00:51:53.580
weil,

00:51:53.980 --> 00:51:54.720
könnte ja sein,

00:51:54.800 --> 00:51:56.180
dass ein Flugzeug mit so einem Dango läuft,

00:51:57.080 --> 00:51:57.760
und da muss man,

00:51:58.240 --> 00:51:58.640
ja, also.

00:51:58.820 --> 00:51:59.440
Es ist auch so,

00:51:59.520 --> 00:52:00.140
es ist auch so,

00:52:00.180 --> 00:52:00.800
dass man manche Sachen

00:52:00.800 --> 00:52:01.940
einfach nicht wieder zurücknehmen kann,

00:52:02.020 --> 00:52:02.780
weil du kannst manche,

00:52:02.860 --> 00:52:03.680
also es gibt ja den

00:52:03.680 --> 00:52:04.460
Depokations-Rotest,

00:52:04.700 --> 00:52:04.760
aber,

00:52:04.760 --> 00:52:04.800
das ist so ein,

00:52:04.800 --> 00:52:05.900
einfach so mit dem Hedge,

00:52:06.020 --> 00:52:07.020
das sammelt sich an.

00:52:07.020 --> 00:52:07.220
Ähm,

00:52:07.380 --> 00:52:08.600
und das ist so ein,

00:52:09.460 --> 00:52:10.320
deswegen verstehe ich sehr gut

00:52:10.320 --> 00:52:10.620
die Leute,

00:52:10.720 --> 00:52:11.660
die da so die Knüppel zwischen,

00:52:11.760 --> 00:52:12.440
wenn der es richtig machen,

00:52:12.500 --> 00:52:13.560
also man kann es halt auch missbrauchen,

00:52:13.680 --> 00:52:14.700
und das kann halt ätzend werden,

00:52:14.880 --> 00:52:15.440
und das muss vor allem

00:52:15.440 --> 00:52:16.480
früh im Prozess sein.

00:52:17.060 --> 00:52:17.160
Genau,

00:52:17.260 --> 00:52:18.320
und dann erst die Leute losrennen lassen,

00:52:18.460 --> 00:52:19.000
zwei Jahre Arbeit,

00:52:19.140 --> 00:52:19.240
ist halt,

00:52:19.300 --> 00:52:20.260
ach, ne, übrigens doch nicht,

00:52:20.420 --> 00:52:21.900
ist halt ziemlich blöd.

00:52:22.340 --> 00:52:22.700
Also ich meine,

00:52:22.760 --> 00:52:23.460
im Endeffekt haben wir halt

00:52:23.460 --> 00:52:24.120
genau das gemacht,

00:52:24.220 --> 00:52:25.300
um auf den Tor-Tag wieder zu kommen,

00:52:25.420 --> 00:52:25.620
was,

00:52:26.120 --> 00:52:26.400
äh,

00:52:26.480 --> 00:52:27.800
was Carlton halt auch vorgeschlagen hat,

00:52:27.820 --> 00:52:28.100
der sagt,

00:52:28.100 --> 00:52:29.580
das Ecosystem von Django

00:52:29.580 --> 00:52:30.580
ist halt im Endeffekt

00:52:30.580 --> 00:52:33.220
einer der Haupt-USBs.

00:52:33.220 --> 00:52:35.000
Ich hab's schon wieder gesagt.

00:52:35.780 --> 00:52:36.740
Ich freu dich drauf hingewiesen.

00:52:37.320 --> 00:52:37.540
Ähm,

00:52:38.060 --> 00:52:38.880
und, äh,

00:52:39.160 --> 00:52:40.120
die, ähm,

00:52:40.180 --> 00:52:41.260
dass neue Dinge

00:52:41.260 --> 00:52:42.720
erstmal in Packages leben sollen,

00:52:42.840 --> 00:52:43.980
und wenn man wirklich das Gefühl hat,

00:52:44.080 --> 00:52:46.300
dass das unbedingt in Core rein muss,

00:52:46.500 --> 00:52:48.040
und ansonsten ein gut gewartetes Package

00:52:48.040 --> 00:52:48.840
halt keinen Nachteil

00:52:48.840 --> 00:52:49.820
zum eigentlichen Django hat,

00:52:50.160 --> 00:52:50.500
vor allem,

00:52:50.600 --> 00:52:50.860
wie es diese,

00:52:50.960 --> 00:52:52.220
gibt es diesen schönen Spruch aus Python,

00:52:52.660 --> 00:52:52.880
äh,

00:52:52.920 --> 00:52:53.200
irgendwie,

00:52:53.620 --> 00:52:55.720
Features go to the main library to die,

00:52:55.720 --> 00:52:56.280
also sprich,

00:52:56.360 --> 00:52:58.100
sobald irgendwas in der Main Library ist,

00:52:58.160 --> 00:52:59.180
wird einfach nichts mehr daran entwickelt,

00:52:59.280 --> 00:52:59.860
weil die Zyklen halt

00:52:59.860 --> 00:53:01.240
etwas viel zu langsam sind,

00:53:01.360 --> 00:53:01.420
um,

00:53:02.160 --> 00:53:02.780
von daher gibt es jetzt

00:53:02.780 --> 00:53:03.180
Django Removal.

00:53:03.220 --> 00:53:03.500
Django Removal,

00:53:03.680 --> 00:53:04.120
ganz kurz,

00:53:04.200 --> 00:53:04.680
noch ein kurz,

00:53:04.800 --> 00:53:05.960
also wer sich dafür interessiert,

00:53:06.360 --> 00:53:07.000
das ist, äh,

00:53:07.100 --> 00:53:07.780
sehr, sehr klein

00:53:07.780 --> 00:53:08.860
und tut nur was

00:53:08.860 --> 00:53:09.720
auf dem Development Server,

00:53:09.840 --> 00:53:10.560
kann man theoretisch,

00:53:10.620 --> 00:53:11.100
wenn man das möchte,

00:53:11.160 --> 00:53:11.940
auch als Development,

00:53:12.580 --> 00:53:12.740
äh,

00:53:12.740 --> 00:53:13.440
Dependence installieren,

00:53:13.500 --> 00:53:14.380
dann läuft's ja nicht in der Pipeline,

00:53:14.620 --> 00:53:15.620
und dann kann man quasi,

00:53:15.760 --> 00:53:16.040
wenn man,

00:53:16.100 --> 00:53:17.180
vor allem für alte Projekte,

00:53:17.680 --> 00:53:17.920
äh,

00:53:18.120 --> 00:53:18.460
Fun Fact,

00:53:18.540 --> 00:53:20.160
in jedem einzelnen alten Projekt,

00:53:20.300 --> 00:53:20.740
also alt,

00:53:20.800 --> 00:53:21.140
sag ich mal,

00:53:21.220 --> 00:53:22.560
2018 und davor,

00:53:23.020 --> 00:53:24.480
hab ich mindestens eine Variable gefunden,

00:53:24.680 --> 00:53:25.820
die nicht mehr da drin sein sollen,

00:53:25.960 --> 00:53:26.820
hat in allen anderen Fällen

00:53:26.820 --> 00:53:27.680
keine Auswirkung gehabt,

00:53:27.680 --> 00:53:28.640
die hat einfach nichts getan,

00:53:29.220 --> 00:53:30.060
aber trotzdem interessant,

00:53:30.200 --> 00:53:31.620
das mindestens einmal drüber laufen zu lassen

00:53:31.620 --> 00:53:32.300
und zu merken,

00:53:32.460 --> 00:53:32.660
äh,

00:53:32.880 --> 00:53:33.700
was man vielleicht vergessen hat.

00:53:33.700 --> 00:53:34.460
Hat mich auch schon,

00:53:34.540 --> 00:53:35.160
das ist auch schon ein bisschen,

00:53:35.280 --> 00:53:35.820
also irgendwie einfach

00:53:35.820 --> 00:53:36.800
ein altes Template genommen

00:53:36.800 --> 00:53:38.240
und dann mit neuem Projekt angefangen,

00:53:38.340 --> 00:53:39.080
alte, äh,

00:53:39.180 --> 00:53:40.120
Settings halt drin gehabt

00:53:40.120 --> 00:53:40.500
und dann,

00:53:40.740 --> 00:53:41.420
ja, bumm,

00:53:41.460 --> 00:53:42.740
äh, hup, huch,

00:53:42.760 --> 00:53:42.880
also,

00:53:43.160 --> 00:53:44.040
wenn man's dann merkt,

00:53:44.080 --> 00:53:44.260
ist gut,

00:53:44.260 --> 00:53:44.920
jetzt habt ihr die Lösung.

00:53:45.140 --> 00:53:45.240
Ja,

00:53:45.380 --> 00:53:46.900
das,

00:53:47.060 --> 00:53:47.680
das Problem,

00:53:47.740 --> 00:53:48.700
was ich hab mit dem,

00:53:49.000 --> 00:53:50.060
mit der Library-Lösung,

00:53:50.140 --> 00:53:51.200
ist Visibility.

00:53:51.600 --> 00:53:51.780
Ja,

00:53:51.900 --> 00:53:52.920
weil niemand erfährt davon,

00:53:52.920 --> 00:53:53.640
dass es das gibt, ja.

00:53:53.680 --> 00:53:53.800
Ja.

00:53:53.800 --> 00:53:54.960
Du hast keine Chance,

00:53:55.060 --> 00:53:55.760
wenn du nicht, äh,

00:53:55.780 --> 00:53:56.600
Carlton Gibson heißt,

00:53:56.700 --> 00:53:57.240
oder sonst was,

00:53:57.380 --> 00:53:58.100
äh,

00:53:58.100 --> 00:53:59.100
irgendwo Benutzer

00:53:59.100 --> 00:54:00.380
für deine Library anzukriegen.

00:54:00.400 --> 00:54:00.520
Ja.

00:54:00.600 --> 00:54:01.140
Wenn's irgendwie so ein

00:54:01.140 --> 00:54:01.960
Nischen-Use-Case ist,

00:54:02.020 --> 00:54:02.800
also ich hab so ein,

00:54:03.380 --> 00:54:03.880
so ein Feature,

00:54:03.920 --> 00:54:04.920
was ich gerne in Django drin hätte,

00:54:05.000 --> 00:54:05.500
wo ich jetzt auch schon

00:54:05.500 --> 00:54:06.020
mit mehreren Leuten

00:54:06.020 --> 00:54:07.820
drüber gesprochen hab, äh,

00:54:07.920 --> 00:54:08.320
wo ich mich,

00:54:08.320 --> 00:54:08.420
wo ich mich,

00:54:08.420 --> 00:54:10.700
wo ich mich,

00:54:10.700 --> 00:54:12.320
weil so langsam rantasten werde

00:54:12.320 --> 00:54:13.140
und es ist auch wirklich

00:54:13.140 --> 00:54:13.860
was ganz Kleines.

00:54:13.860 --> 00:54:14.280
Sächtest du das denn in Django?

00:54:14.900 --> 00:54:15.140
Ja,

00:54:15.260 --> 00:54:16.020
das erzähl ich nachher mal.

00:54:16.320 --> 00:54:16.960
Da muss ich erst mal

00:54:16.960 --> 00:54:17.820
mehr politischen,

00:54:18.300 --> 00:54:19.260
guten Widerspruch,

00:54:19.560 --> 00:54:20.440
bevor ich das verraten kann.

00:54:20.700 --> 00:54:21.020
Aber,

00:54:21.240 --> 00:54:21.680
okay.

00:54:22.320 --> 00:54:23.600
Es wäre eine sehr einfache Änderung

00:54:23.600 --> 00:54:24.480
und es wäre auch was,

00:54:24.540 --> 00:54:25.020
was man einfach

00:54:25.020 --> 00:54:25.880
in der Bibliothek machen würde,

00:54:25.960 --> 00:54:26.800
aber wenn ich's in der Bibliothek

00:54:26.800 --> 00:54:27.120
machen würde,

00:54:27.220 --> 00:54:28.260
wäre es unsichtbar.

00:54:28.400 --> 00:54:29.920
Niemand würde das finden.

00:54:30.140 --> 00:54:30.320
Ja.

00:54:30.660 --> 00:54:31.980
Weil es eine Funktionalität

00:54:31.980 --> 00:54:32.500
von Django,

00:54:32.740 --> 00:54:33.760
die in Django Core drin ist,

00:54:33.960 --> 00:54:34.340
erweitert.

00:54:34.600 --> 00:54:34.820
Mhm.

00:54:35.360 --> 00:54:35.920
Genauso wie bei

00:54:35.920 --> 00:54:36.680
Dying Removals, ja.

00:54:37.420 --> 00:54:38.120
Da ist doch ein

00:54:38.120 --> 00:54:39.440
Warnungsmechanismus drin.

00:54:39.560 --> 00:54:40.580
Warum muss ich jetzt

00:54:40.580 --> 00:54:41.160
nochmal was machen,

00:54:41.260 --> 00:54:41.940
damit ich andere

00:54:41.940 --> 00:54:42.800
Warnungen bekomme?

00:54:43.540 --> 00:54:44.600
Und ich glaube,

00:54:44.780 --> 00:54:45.440
dass das einfach,

00:54:45.600 --> 00:54:46.180
also das ist das,

00:54:46.260 --> 00:54:46.840
was mich frustriert,

00:54:46.940 --> 00:54:47.000
ja,

00:54:47.080 --> 00:54:48.880
dass es Dinge gibt,

00:54:48.960 --> 00:54:50.280
die man mit wenig Aufwand

00:54:50.280 --> 00:54:50.840
machen könnte,

00:54:50.940 --> 00:54:52.240
die halt Django erweitern

00:54:52.240 --> 00:54:53.060
und die Antwort ist,

00:54:53.180 --> 00:54:53.740
tu's in der Library.

00:54:53.980 --> 00:54:54.400
Ja, okay,

00:54:54.400 --> 00:54:56.040
aber dann ist es halt für mich.

00:54:56.040 --> 00:54:56.960
Dann ist es für mich.

00:54:57.920 --> 00:54:58.700
Ja, könnte ich auch machen.

00:55:01.540 --> 00:55:01.940
Entschuldigung.

00:55:03.260 --> 00:55:04.700
Darüber sprechen wir dann morgen.

00:55:04.720 --> 00:55:05.200
Das nächste Mal

00:55:05.200 --> 00:55:05.660
habe ich gehört,

00:55:05.700 --> 00:55:06.520
folgen wir die Django-Con

00:55:06.520 --> 00:55:07.240
und machen die einfach

00:55:07.240 --> 00:55:07.880
bei uns in Germany.

00:55:08.300 --> 00:55:09.180
Gibt's ein großes Gerücht?

00:55:09.740 --> 00:55:10.340
Ja, hm,

00:55:10.560 --> 00:55:11.200
mal sehen.

00:55:13.200 --> 00:55:13.600
Ja, also,

00:55:13.600 --> 00:55:13.920
wir werden sehen.

00:55:14.420 --> 00:55:14.680
Ich meine,

00:55:14.980 --> 00:55:16.680
wir Softwareentwickler

00:55:16.680 --> 00:55:17.220
sind ja,

00:55:17.460 --> 00:55:18.220
wir mögen das,

00:55:18.280 --> 00:55:19.260
technische Probleme zu lösen

00:55:19.260 --> 00:55:20.360
und jetzt hier geht's

00:55:20.360 --> 00:55:20.840
sehr viel,

00:55:21.040 --> 00:55:21.980
bei Parten ging's darum,

00:55:22.080 --> 00:55:23.080
bei der Django Software Foundation

00:55:23.080 --> 00:55:23.900
ging's um Menschen

00:55:23.900 --> 00:55:24.380
und das ist

00:55:24.380 --> 00:55:24.860
auch blöd.

00:55:24.980 --> 00:55:25.420
Ja, das ist immer

00:55:25.420 --> 00:55:25.980
das selbe Problem.

00:55:26.340 --> 00:55:26.780
Ich bin noch nicht

00:55:26.780 --> 00:55:27.600
Softwareentwickler geworden,

00:55:27.640 --> 00:55:28.920
um mit Menschen zu tun zu haben

00:55:28.920 --> 00:55:29.380
und jetzt muss ich

00:55:29.380 --> 00:55:30.200
mit Menschen sprechen.

00:55:30.340 --> 00:55:30.700
Schrecklich.

00:55:31.180 --> 00:55:31.680
Ich, ähm,

00:55:32.040 --> 00:55:32.880
ich könnte da so eine

00:55:32.880 --> 00:55:34.280
Coaching-AI fragen.

00:55:35.160 --> 00:55:36.600
Ja, aber mit AI sprechen

00:55:36.600 --> 00:55:37.140
ist ja noch schleller.

00:55:37.720 --> 00:55:38.120
Warum?

00:55:38.220 --> 00:55:38.600
Äh, was,

00:55:38.880 --> 00:55:39.980
war jemand bei dem Workshop?

00:55:40.340 --> 00:55:40.580
Nee.

00:55:40.900 --> 00:55:41.240
Nein.

00:55:41.720 --> 00:55:42.020
Hm, hm,

00:55:42.020 --> 00:55:42.540
okay, schade,

00:55:42.600 --> 00:55:43.500
dann müssen wir den jetzt auslassen.

00:55:43.740 --> 00:55:45.320
Ein Unique Voting System.

00:55:45.400 --> 00:55:45.780
Ach so, äh,

00:55:45.840 --> 00:55:46.600
nur eine Minute.

00:55:47.100 --> 00:55:47.340
Hm, ja.

00:55:47.940 --> 00:55:48.220
Okay.

00:55:48.340 --> 00:55:49.060
Klingt aber interessant.

00:55:49.480 --> 00:55:50.340
Ja, ja,

00:55:50.340 --> 00:55:51.080
da hatte ich mich auch,

00:55:51.740 --> 00:55:52.280
aber die,

00:55:52.400 --> 00:55:53.600
der war halt sehr lang

00:55:53.600 --> 00:55:54.060
und der hat dann

00:55:54.060 --> 00:55:54.920
zwei andere Talks

00:55:54.920 --> 00:55:55.040
überlegt.

00:55:55.040 --> 00:55:55.180
Genau.

00:55:55.400 --> 00:55:55.560
Ja.

00:55:55.880 --> 00:55:56.660
Ich habe auch überlegt,

00:55:56.660 --> 00:55:57.360
wo ich gehe,

00:55:57.480 --> 00:55:57.680
genau,

00:55:57.800 --> 00:55:57.980
und dann,

00:55:58.060 --> 00:55:59.620
ich habe mich nicht so

00:55:59.620 --> 00:55:59.920
interessant,

00:56:00.260 --> 00:56:01.060
irgendwie erst drüber gegangen,

00:56:01.160 --> 00:56:01.500
aber dann habe ich gedacht,

00:56:01.580 --> 00:56:01.940
ach, komm.

00:56:02.520 --> 00:56:02.660
Ah.

00:56:03.540 --> 00:56:03.700
Ja.

00:56:03.980 --> 00:56:04.460
Äh, genau,

00:56:04.560 --> 00:56:05.180
dann gab es noch den

00:56:05.180 --> 00:56:06.500
How to enjoy debugging

00:56:06.500 --> 00:56:07.060
in production.

00:56:07.280 --> 00:56:07.840
Oh ja, stimmt.

00:56:08.380 --> 00:56:08.660
Von der,

00:56:08.880 --> 00:56:10.140
von Karen Tracy.

00:56:10.640 --> 00:56:10.960
Genau.

00:56:11.540 --> 00:56:12.260
Der war am Anfang

00:56:12.260 --> 00:56:12.860
sehr unterhaltsam,

00:56:12.940 --> 00:56:13.580
weil sie nicht,

00:56:13.740 --> 00:56:14.420
weil sie eine Kiste,

00:56:14.560 --> 00:56:15.780
weil sie eine Kiste gekriegt hat,

00:56:15.820 --> 00:56:16.640
weil sie ein bisschen kleiner ist

00:56:16.640 --> 00:56:17.740
und nicht über dieses Pult

00:56:17.740 --> 00:56:18.320
gekommen ist.

00:56:18.540 --> 00:56:18.680
Ja.

00:56:18.920 --> 00:56:20.480
Das Audio-Setup ist dieses Mal

00:56:20.480 --> 00:56:21.220
ein bisschen schwierig,

00:56:21.360 --> 00:56:21.960
habe ich das Gefühl.

00:56:21.960 --> 00:56:23.220
Da ist noch ein Mikrofon

00:56:23.220 --> 00:56:23.640
da vorne.

00:56:24.000 --> 00:56:24.900
Ja, das Mastering war,

00:56:25.140 --> 00:56:25.320
ja.

00:56:25.520 --> 00:56:26.200
Ja, das Mastering.

00:56:26.360 --> 00:56:27.060
Sie haben es dann ja

00:56:27.060 --> 00:56:28.320
quasi so weit aufgedreht,

00:56:28.420 --> 00:56:29.260
bis es halt kurz

00:56:29.260 --> 00:56:30.060
vor dem Rückkoppeln war.

00:56:30.340 --> 00:56:30.780
Das war immer noch

00:56:30.780 --> 00:56:31.280
viel zu leise.

00:56:31.860 --> 00:56:32.020
Ja.

00:56:32.540 --> 00:56:32.820
Ja.

00:56:33.160 --> 00:56:34.180
Das war in einer anderen

00:56:34.180 --> 00:56:35.220
Konstanz.

00:56:35.260 --> 00:56:36.260
Aber das war eigentlich

00:56:36.260 --> 00:56:36.560
interessant,

00:56:36.660 --> 00:56:37.260
was sie erzählt hat.

00:56:37.380 --> 00:56:38.000
Es war super interessant.

00:56:38.020 --> 00:56:38.140
Ja.

00:56:39.280 --> 00:56:39.900
Was hat sie eigentlich,

00:56:40.040 --> 00:56:40.580
also das Wichtigste,

00:56:40.680 --> 00:56:40.960
was sie gesagt hat,

00:56:41.000 --> 00:56:41.180
irgendwie.

00:56:41.440 --> 00:56:42.160
Es war aber auch wieder

00:56:42.160 --> 00:56:42.580
sowas,

00:56:42.940 --> 00:56:43.840
so ein,

00:56:44.520 --> 00:56:45.260
ja, mache ich so.

00:56:45.480 --> 00:56:46.040
Ja, mache ich so.

00:56:46.040 --> 00:56:47.100
Ja, kenne ich.

00:56:47.160 --> 00:56:47.340
Genau.

00:56:47.680 --> 00:56:47.660
Also,

00:56:47.780 --> 00:56:48.180
ja,

00:56:48.180 --> 00:56:50.820
man sagt halt quasi,

00:56:50.820 --> 00:56:51.860
dass man für Produktionssysteme

00:56:51.860 --> 00:56:52.380
ein Logging

00:56:52.380 --> 00:56:53.340
und ein Monitoring extra braucht,

00:56:53.400 --> 00:56:54.160
was auch LRs kann.

00:56:54.220 --> 00:56:54.340
Ja.

00:56:54.540 --> 00:56:55.040
Und dass man es halt

00:56:55.040 --> 00:56:55.620
dazu bauen muss.

00:56:56.520 --> 00:56:57.380
Und dass man halt,

00:56:57.440 --> 00:56:58.000
also im Endeffekt,

00:56:58.080 --> 00:56:58.740
ich habe bei dem Talk

00:56:58.740 --> 00:56:59.760
ein bisschen was anderes erwartet.

00:56:59.860 --> 00:57:00.240
Das hat, glaube ich,

00:57:00.240 --> 00:57:01.260
auch irgendwer aus dem Publikum

00:57:01.260 --> 00:57:01.900
nachher gefragt,

00:57:02.400 --> 00:57:03.120
weil ich dachte ja eigentlich

00:57:03.120 --> 00:57:03.940
eher, es ging jetzt darum,

00:57:04.020 --> 00:57:04.940
wie man halt wirklich tatsächlich

00:57:04.940 --> 00:57:06.340
in Produktion irgendwas debugt.

00:57:06.380 --> 00:57:06.720
Und ich glaube,

00:57:06.780 --> 00:57:07.640
ein Großteil ging halt davon,

00:57:07.820 --> 00:57:08.620
wie man eigentlich vermeidet,

00:57:09.100 --> 00:57:09.840
dass es halt kommt,

00:57:10.180 --> 00:57:10.780
was ja auch genau

00:57:10.780 --> 00:57:11.460
der richtige Weg ist.

00:57:11.460 --> 00:57:11.780
Ja, ja, gut.

00:57:11.840 --> 00:57:12.360
Aber ich glaube,

00:57:12.420 --> 00:57:12.680
sie meinte,

00:57:12.800 --> 00:57:13.880
also Debugging hat sie tatsächlich

00:57:13.880 --> 00:57:15.080
unter Logging und Monitoring verstanden.

00:57:15.080 --> 00:57:15.860
Also dass tatsächlich

00:57:15.860 --> 00:57:17.800
automatisiert nach Fehlermeldungen

00:57:17.800 --> 00:57:18.160
gesucht wird.

00:57:18.220 --> 00:57:18.440
Weil ich glaube,

00:57:18.620 --> 00:57:19.360
die Menge, die sie hatte,

00:57:19.440 --> 00:57:19.980
war ziemlich viel.

00:57:20.080 --> 00:57:20.440
Also sowas wie,

00:57:20.520 --> 00:57:20.760
keine Ahnung,

00:57:20.860 --> 00:57:22.660
Tausende von Messages,

00:57:22.800 --> 00:57:23.500
die immer so aufhoppen,

00:57:23.580 --> 00:57:24.640
dass man die halt ordentlich filtern

00:57:24.640 --> 00:57:25.940
und nach Prioritäten sortieren kann

00:57:25.940 --> 00:57:26.300
und sowas.

00:57:26.820 --> 00:57:28.520
Und dann halt die richtigen

00:57:28.520 --> 00:57:29.780
weiterleitet.

00:57:29.900 --> 00:57:30.780
Also dass dann bei jemandem

00:57:30.780 --> 00:57:31.500
so ein Licht angeht,

00:57:31.600 --> 00:57:32.120
dass er dann wirklich

00:57:32.120 --> 00:57:32.960
direkt drauf gucken kann.

00:57:33.720 --> 00:57:33.840
Und so.

00:57:33.940 --> 00:57:34.780
Und dafür muss man das natürlich

00:57:34.780 --> 00:57:35.740
alles ordentlich eingestellt haben.

00:57:35.800 --> 00:57:36.400
Ja, klar.

00:57:36.440 --> 00:57:36.960
Und sein eigenes

00:57:36.960 --> 00:57:37.540
Arbeitsplatz betreiben.

00:57:37.680 --> 00:57:38.700
Die Antwort auf diese Frage,

00:57:38.820 --> 00:57:39.220
die da kam,

00:57:39.280 --> 00:57:39.960
wie vermeidet man denn

00:57:39.960 --> 00:57:40.940
Fehler in Produktion,

00:57:41.600 --> 00:57:42.980
fand ich eigentlich ziemlich gut,

00:57:42.980 --> 00:57:44.140
weil sie hat halt gesagt,

00:57:44.280 --> 00:57:44.680
kannst du nicht.

00:57:45.140 --> 00:57:46.700
Du musst drauf vorbereitet sein,

00:57:46.760 --> 00:57:47.680
Fehler in Produktion zu haben

00:57:47.680 --> 00:57:48.780
und egal, was du machst,

00:57:48.900 --> 00:57:49.640
wenn du mehr Testing machst,

00:57:49.720 --> 00:57:50.080
hast du weniger,

00:57:50.480 --> 00:57:51.160
aber du hast sie trotzdem.

00:57:51.600 --> 00:57:52.920
Was ich auch sehr interessant fand,

00:57:53.540 --> 00:57:53.940
also wie gesagt,

00:57:54.020 --> 00:57:54.240
ich glaube,

00:57:54.400 --> 00:57:55.040
vieles von dem,

00:57:55.120 --> 00:57:55.680
was sie gesagt hat,

00:57:55.680 --> 00:57:56.380
ist so, ja okay,

00:57:57.000 --> 00:57:58.000
man sollte Sentry haben,

00:57:58.320 --> 00:57:59.300
so, das ist eine gute Sache.

00:58:00.600 --> 00:58:01.900
Muss ich kurz was einwerfen?

00:58:02.380 --> 00:58:03.460
Ich habe jetzt kürzlich gelernt,

00:58:03.500 --> 00:58:04.280
es gibt Glitchtip.

00:58:05.080 --> 00:58:05.440
Glitchtip?

00:58:05.440 --> 00:58:06.460
Das benutzt,

00:58:06.580 --> 00:58:07.820
das hat die gleiche AP wie Sentry,

00:58:07.920 --> 00:58:08.120
das heißt,

00:58:08.180 --> 00:58:09.160
man benutzt Sentry Client,

00:58:09.280 --> 00:58:10.620
aber es ist einfacher zu hosten,

00:58:10.660 --> 00:58:11.520
weil es einfach so wie,

00:58:12.060 --> 00:58:12.960
Sentry vor fünf Jahren

00:58:12.980 --> 00:58:13.340
ist.

00:58:13.600 --> 00:58:13.700
Okay.

00:58:14.360 --> 00:58:15.860
Für die kleinen Benutzer

00:58:15.860 --> 00:58:16.700
ist das einfacher als Sentry

00:58:16.700 --> 00:58:17.660
und wenn man dann groß wird,

00:58:17.700 --> 00:58:18.520
kann man auch noch aus Sentry umsteigen.

00:58:18.540 --> 00:58:19.000
Ja, cool.

00:58:19.660 --> 00:58:20.440
Ja, Entschuldigung,

00:58:20.560 --> 00:58:20.700
jetzt.

00:58:22.020 --> 00:58:23.180
Also, was ich ganz interessant fand,

00:58:23.200 --> 00:58:23.680
ist so diese,

00:58:23.680 --> 00:58:25.720
diese Side Notes aus der Praxis,

00:58:25.840 --> 00:58:26.260
zum Beispiel,

00:58:26.760 --> 00:58:27.160
so diese,

00:58:27.520 --> 00:58:28.300
jeder kennt das ja wahrscheinlich,

00:58:28.480 --> 00:58:29.000
wenn man,

00:58:29.000 --> 00:58:29.980
wenn man als Entwickler fragt,

00:58:31.000 --> 00:58:31.240
was ist,

00:58:31.320 --> 00:58:31.840
wenn nichts passiert?

00:58:32.100 --> 00:58:32.960
Das kann nicht passieren.

00:58:33.440 --> 00:58:34.000
So, was ist,

00:58:34.200 --> 00:58:35.580
wenn hier quasi,

00:58:35.740 --> 00:58:36.220
zum Beispiel,

00:58:36.280 --> 00:58:36.980
man spricht DAPI an

00:58:36.980 --> 00:58:38.020
und zieht sich irgendwelche Daten

00:58:38.020 --> 00:58:40.000
und dann irgendwelche Nutzer

00:58:40.000 --> 00:58:40.780
haben dann eine Firma.

00:58:40.920 --> 00:58:41.280
So, ja, okay,

00:58:41.280 --> 00:58:42.660
aber das ist eine Liste.

00:58:42.760 --> 00:58:42.940
Was ist,

00:58:42.980 --> 00:58:43.620
wenn jetzt zwei kommen?

00:58:43.700 --> 00:58:44.380
Ja, das passiert nicht.

00:58:45.060 --> 00:58:45.780
Ja, was, wenn doch?

00:58:45.940 --> 00:58:46.620
Nein, das passiert nicht.

00:58:46.680 --> 00:58:47.660
Und genau diese Cases

00:58:47.660 --> 00:58:48.500
sind halt meistens die,

00:58:48.840 --> 00:58:50.020
die einem danach halt das Genick brechen,

00:58:50.080 --> 00:58:51.080
weil dann halt doch irgendwo

00:58:51.080 --> 00:58:52.380
der zweite,

00:58:52.520 --> 00:58:53.520
die zweite Firma kommt

00:58:53.520 --> 00:58:54.660
und da schon quasi

00:58:54.660 --> 00:58:56.300
über diese Strategien nachzudenken,

00:58:56.380 --> 00:58:57.560
bevor sie passieren

00:58:57.560 --> 00:58:58.580
und nicht zu sagen,

00:58:58.660 --> 00:58:59.000
also ich meine,

00:58:59.220 --> 00:59:00.000
es gibt natürlich Cases,

00:59:00.100 --> 00:59:00.660
wo es sich immer lohnt,

00:59:00.680 --> 00:59:01.540
die Handbremse zu ziehen,

00:59:01.620 --> 00:59:02.160
aber selbst wenn,

00:59:02.680 --> 00:59:03.680
das bewusst zu tun

00:59:03.680 --> 00:59:04.760
und nicht in irgendeinem random,

00:59:05.220 --> 00:59:06.100
tiefen Python-Fehler

00:59:06.100 --> 00:59:07.440
dann zu explodieren

00:59:07.440 --> 00:59:09.360
oder einfach zu sagen,

00:59:09.500 --> 00:59:09.980
also zum Beispiel,

00:59:09.980 --> 00:59:10.740
es gibt ja auch so einfach

00:59:10.740 --> 00:59:11.760
so dumme Strategien,

00:59:11.880 --> 00:59:12.480
dass man zum Beispiel sagt,

00:59:12.560 --> 00:59:12.680
oh,

00:59:13.200 --> 00:59:14.520
ich nehme zum Beispiel einfach

00:59:14.520 --> 00:59:15.640
die erste Firma

00:59:15.640 --> 00:59:16.700
und mache einfach weiter.

00:59:17.220 --> 00:59:17.520
So, ja.

00:59:17.900 --> 00:59:18.420
Je nachdem,

00:59:18.460 --> 00:59:19.040
das muss man halt dann

00:59:19.040 --> 00:59:20.020
mit dem Kunden

00:59:20.020 --> 00:59:20.820
oder wer auch immer

00:59:20.820 --> 00:59:22.060
das dann für jemanden

00:59:22.060 --> 00:59:22.580
ausfinden,

00:59:22.640 --> 00:59:23.300
ob es richtig ist.

00:59:23.540 --> 00:59:23.720
Genau.

00:59:24.220 --> 00:59:24.420
Genau.

00:59:24.480 --> 00:59:25.020
Oder dass man es irgendwo

00:59:25.020 --> 00:59:26.000
vermerkt oder sowas.

00:59:26.140 --> 00:59:27.340
Ja, aber ich glaube,

00:59:27.480 --> 00:59:28.340
da kann man sich echt

00:59:28.340 --> 00:59:29.980
sehr, sehr viel Ärger sparen

00:59:29.980 --> 00:59:31.600
und vor allem auch den Stress,

00:59:31.700 --> 00:59:31.960
weil ich meine,

00:59:32.000 --> 00:59:32.400
im Endeffekt,

00:59:32.480 --> 00:59:33.040
der einzige Unterschied

00:59:33.040 --> 00:59:34.380
zwischen Produktionsdebugging

00:59:34.380 --> 00:59:35.480
und lokalem Debugging,

00:59:35.540 --> 00:59:36.280
es macht ja jetzt nicht mehr

00:59:36.280 --> 00:59:37.240
oder weniger Spaß an sich,

00:59:37.580 --> 00:59:38.520
sondern du weißt halt,

00:59:38.580 --> 00:59:39.800
dass du gerade aktiv,

00:59:40.180 --> 00:59:41.200
hat jemand das Problem

00:59:41.200 --> 00:59:42.620
und im Zweifel,

00:59:42.680 --> 00:59:42.960
dann machst du,

00:59:42.980 --> 00:59:43.160
dass du gerade

00:59:43.160 --> 00:59:44.580
Datenkaputte aufräumen musst,

00:59:44.620 --> 00:59:45.280
sodass wir die Sachen

00:59:45.280 --> 00:59:46.060
dies ätzend machen.

00:59:46.600 --> 00:59:47.240
Ja, und du hast auch nicht

00:59:47.240 --> 00:59:48.200
so viel Sichtbarkeit rein.

00:59:48.380 --> 00:59:49.100
Wenn du es lokal hast,

00:59:49.160 --> 00:59:49.780
kannst du ja fünfmal

00:59:49.780 --> 00:59:50.740
hintereinander den Fehler machen.

00:59:50.760 --> 00:59:51.080
Gut, ich meine,

00:59:51.200 --> 00:59:51.900
oft kann man es ja auch

00:59:51.900 --> 00:59:52.880
reproduzieren zum Glück,

00:59:53.020 --> 00:59:53.940
wenn irgendwie eine Möglichkeit

00:59:53.940 --> 00:59:54.480
zum Beispiel,

00:59:54.960 --> 00:59:55.720
also wir haben in mehreren

00:59:55.720 --> 00:59:56.420
großen Systemen

00:59:56.420 --> 00:59:57.160
das so eingebaut,

00:59:57.580 --> 00:59:58.900
dass wir so einen Job haben,

00:59:58.960 --> 01:00:00.360
der anonymisierte Dumps postet.

01:00:00.400 --> 01:00:00.760
Da gibt es auch

01:00:00.760 --> 01:00:01.500
ein cooles Package,

01:00:01.580 --> 01:00:02.820
auch aus Stuttgart.

01:00:03.840 --> 01:00:05.000
Django Scrubber heißt das.

01:00:05.860 --> 01:00:07.320
Da kann man über so eine Metaklasse,

01:00:07.320 --> 01:00:09.100
kann man quasi über Faker definieren,

01:00:09.220 --> 01:00:10.540
wie Daten anonymisiert werden.

01:00:10.660 --> 01:00:11.020
Also das heißt,

01:00:11.020 --> 01:00:11.600
du hast dann quasi

01:00:11.600 --> 01:00:13.000
produktionsnahe Daten

01:00:13.000 --> 01:00:14.080
gegen zu Random-Daten,

01:00:14.140 --> 01:00:15.120
mit denen es keinen Spaß macht

01:00:15.120 --> 01:00:15.560
zu arbeiten

01:00:15.560 --> 01:00:16.560
und die auch meistens irgendwie

01:00:16.560 --> 01:00:17.780
nicht ins UI passen und so.

01:00:18.260 --> 01:00:18.960
Also Django Scrubber

01:00:18.960 --> 01:00:19.560
könnt ihr euch mal anschauen

01:00:19.560 --> 01:00:19.980
auf jeden Fall.

01:00:20.060 --> 01:00:20.380
Das ist auch so,

01:00:20.380 --> 01:00:21.060
was du sie meintest, ne?

01:00:21.120 --> 01:00:22.380
Also so Staging erzeugen,

01:00:22.420 --> 01:00:23.500
das von der Datenvolume

01:00:23.500 --> 01:00:24.440
genauso groß ist wie...

01:00:24.440 --> 01:00:25.420
Genau, sie hat das nicht gesagt,

01:00:25.560 --> 01:00:26.200
aber im Endeffekt,

01:00:26.280 --> 01:00:27.060
das ist glaube ich das,

01:00:27.140 --> 01:00:27.800
was sie gemeint hat.

01:00:28.180 --> 01:00:29.280
Und wir haben halt dann immer

01:00:29.280 --> 01:00:29.680
so ein S3,

01:00:29.780 --> 01:00:30.680
so in den größeren Projekten

01:00:30.680 --> 01:00:31.900
ein S3-Bucket,

01:00:31.960 --> 01:00:33.740
wo dann halt diese quasi,

01:00:33.740 --> 01:00:35.940
also dieses typische logarithmische

01:00:35.940 --> 01:00:36.700
von der letzten Stunde,

01:00:37.060 --> 01:00:38.940
von der letzten Nacht,

01:00:38.940 --> 01:00:39.880
vom letzten Tag,

01:00:39.940 --> 01:00:40.480
von der letzten Woche,

01:00:40.580 --> 01:00:40.940
vom letzten Monat,

01:00:41.600 --> 01:00:42.320
die Dumps dann liegen,

01:00:42.400 --> 01:00:43.440
die dann immer aufgeräumt werden.

01:00:43.700 --> 01:00:44.820
Die kann man sich dann halt runterziehen

01:00:44.820 --> 01:00:45.320
und dann sagen,

01:00:45.420 --> 01:00:47.380
okay, da ist jetzt irgendein Bug

01:00:47.380 --> 01:00:48.860
mit User 27.

01:00:49.300 --> 01:00:50.720
Man kann ja Sentry auch so einstellen,

01:00:50.940 --> 01:00:53.300
dass die IDs geschickt werden

01:00:53.300 --> 01:00:53.920
nach Sentry,

01:00:54.360 --> 01:00:55.820
aber alle personenbezogenen Daten,

01:00:55.980 --> 01:00:57.040
also per Default nämlich,

01:00:57.100 --> 01:00:58.120
sind alle User-Daten raus.

01:00:58.260 --> 01:00:59.280
Also man kriegt gar nichts mit,

01:00:59.600 --> 01:01:00.380
was natürlich schwierig ist,

01:01:00.420 --> 01:01:00.920
wenn man nicht weiß,

01:01:01.340 --> 01:01:01.880
was ist der Grund.

01:01:01.880 --> 01:01:02.520
Welcher User war das?

01:01:02.660 --> 01:01:04.520
So, aber das kann man relativ einfach

01:01:04.520 --> 01:01:05.800
ein Miniscript schreiben,

01:01:05.860 --> 01:01:06.380
dass im Endeffekt alles,

01:01:06.420 --> 01:01:07.500
was man nicht in Sentry haben möchte,

01:01:07.500 --> 01:01:07.920
raus wird.

01:01:08.080 --> 01:01:08.240
Das heißt,

01:01:08.500 --> 01:01:08.500


01:01:08.940 --> 01:01:10.380
GDPR ist man super safe

01:01:10.380 --> 01:01:12.100
und dann hast du halt die User-ID in Sentry,

01:01:12.180 --> 01:01:13.260
kannst damit das dann nachstellen,

01:01:13.340 --> 01:01:14.160
hast vielleicht noch die Produkt-ID,

01:01:14.280 --> 01:01:14.980
wo jemand geklickt hat,

01:01:15.040 --> 01:01:15.460
keine Ahnung.

01:01:15.860 --> 01:01:18.240
Und damit kann man viele Probleme,

01:01:18.720 --> 01:01:19.940
klar, wenn du irgendwas ganz fieses

01:01:19.940 --> 01:01:20.600
mit Concurrency

01:01:20.600 --> 01:01:22.960
oder verteilte Systeme oder sowas,

01:01:23.120 --> 01:01:24.300
das ist nochmal ein anderes Problem,

01:01:24.480 --> 01:01:25.580
aber ja.

01:01:26.640 --> 01:01:27.560
Ja, ein solches System

01:01:27.560 --> 01:01:28.580
macht man halt einfach keine Fehler.

01:01:29.320 --> 01:01:29.580
Stimmt.

01:01:30.360 --> 01:01:31.320
Darum ist es auch einfach

01:01:31.320 --> 01:01:32.560
absolut gesehen besser,

01:01:32.820 --> 01:01:33.780
in jedem Fall.

01:01:34.380 --> 01:01:36.440
Es gibt ein Zitat von Donald Knuth,

01:01:36.440 --> 01:01:37.280
der geschrieben hat,

01:01:37.380 --> 01:01:38.520
beware the above code,

01:01:38.520 --> 01:01:39.560
I've only proved it,

01:01:39.640 --> 01:01:40.380
not tried it.

01:01:41.100 --> 01:01:41.680
Passt auf,

01:01:41.740 --> 01:01:42.680
was er mit diesem Code macht.

01:01:42.760 --> 01:01:43.420
Ich habe nur bewiesen,

01:01:43.560 --> 01:01:44.120
dass er richtig ist,

01:01:44.140 --> 01:01:45.140
aber ich habe ihn nicht ausprobiert.

01:01:46.580 --> 01:01:47.620
Ganz der Mathematiker.

01:01:48.420 --> 01:01:49.440
Ja, da gibt es auch so einen Anspruch,

01:01:49.500 --> 01:01:50.560
ich weiß jetzt gar nicht mehr von wem,

01:01:50.960 --> 01:01:51.660
sagt dann so,

01:01:51.860 --> 01:01:54.920
Definition von funktionierender Software,

01:01:55.280 --> 01:01:56.240
also funktionierende Software

01:01:56.240 --> 01:01:57.120
kann man nur so nennen,

01:01:57.540 --> 01:02:01.480
wenn sie zumindest in Produktion gewesen ist

01:02:01.480 --> 01:02:02.840
und da gescheitert

01:02:02.840 --> 01:02:03.900
und man sie dann schon mal

01:02:03.900 --> 01:02:04.900
ein paar Mal verbessert hat.

01:02:05.260 --> 01:02:06.640
So vorher kann man nicht sagen,

01:02:06.640 --> 01:02:07.260
dass sie funktioniert,

01:02:07.420 --> 01:02:08.500
weil wahrscheinlich,

01:02:08.520 --> 01:02:09.240
äh,

01:02:09.400 --> 01:02:09.700
nicht,

01:02:10.020 --> 01:02:10.460
war,

01:02:10.800 --> 01:02:11.280
genau,

01:02:11.580 --> 01:02:11.800
ja.

01:02:12.660 --> 01:02:13.740
Muss man erst nochmal da durch.

01:02:14.060 --> 01:02:15.680
Dann gab es noch einen Vortrag

01:02:15.680 --> 01:02:16.000
und zwar

01:02:16.000 --> 01:02:18.060
100 Million Parking Transactions

01:02:18.060 --> 01:02:18.560
per Year

01:02:18.560 --> 01:02:19.100
with Django.

01:02:19.700 --> 01:02:20.400
Ja, die meinen halt

01:02:20.400 --> 01:02:21.280
mit Transaktionen was anderes

01:02:21.280 --> 01:02:22.000
als andere Leute,

01:02:22.140 --> 01:02:22.740
daher war das so ein bisschen

01:02:22.740 --> 01:02:23.740
verwirrend für mich,

01:02:23.940 --> 01:02:24.120
aber

01:02:24.120 --> 01:02:26.580
sie meinen damit tatsächlich,

01:02:26.720 --> 01:02:27.180
wie viele Leute

01:02:27.180 --> 01:02:27.660
sich so ein paar

01:02:27.660 --> 01:02:28.800
Parktransaktionen

01:02:28.800 --> 01:02:29.260
Ja, genau.

01:02:30.100 --> 01:02:30.560
Hat er ja auch gesagt,

01:02:30.640 --> 01:02:31.460
gibt es verschiedene Sorten,

01:02:31.580 --> 01:02:32.660
je nachdem wo du parkst,

01:02:32.700 --> 01:02:33.060
den die Daten schiebst.

01:02:33.060 --> 01:02:33.380
Das ist das Bekenntnis

01:02:33.380 --> 01:02:34.520
von den Parkplätzen

01:02:34.520 --> 01:02:35.260
in den Niederlanden, oder?

01:02:35.540 --> 01:02:35.760
Ja.

01:02:35.760 --> 01:02:36.520
Und jetzt auch in Deutschland,

01:02:36.640 --> 01:02:37.140
hat er auch gesagt.

01:02:37.180 --> 01:02:37.480
Ja, genau.

01:02:37.480 --> 01:02:39.600
War aber nicht auf der Karte drauf,

01:02:39.640 --> 01:02:40.240
hätte mich jetzt interessiert.

01:02:40.260 --> 01:02:41.220
Ja, ich habe auch so eine App,

01:02:41.300 --> 01:02:41.600
ich weiß nicht,

01:02:41.700 --> 01:02:43.160
Pay by Phone oder was das heißt,

01:02:43.260 --> 01:02:44.240
vielleicht benutzt du was ähnliches

01:02:44.240 --> 01:02:45.120
oder sogar den gleichen Service.

01:02:46.980 --> 01:02:47.580
Ja, war,

01:02:47.800 --> 01:02:48.600
also da waren schon

01:02:48.600 --> 01:02:49.760
viele schöne Sachen drin

01:02:49.760 --> 01:02:50.440
und das ist halt

01:02:50.440 --> 01:02:51.500
schön zu sehen,

01:02:51.880 --> 01:02:52.620
dass man halt irgendwie,

01:02:52.820 --> 01:02:53.520
das sind ja nur irgendwie

01:02:53.520 --> 01:02:54.300
vier Leute oder so

01:02:54.300 --> 01:02:55.200
und die machen das halt

01:02:55.200 --> 01:02:56.400
quasi für alle Parkplätze

01:02:56.400 --> 01:02:57.960
und das machen sie mit Django

01:02:57.960 --> 01:02:58.760
und das funktioniert super.

01:02:58.960 --> 01:03:00.180
Es war also ein ETL-System,

01:03:00.300 --> 01:03:00.700
haben die gebaut.

01:03:00.720 --> 01:03:01.520
Genau, die haben so ein ETL-System

01:03:01.520 --> 01:03:02.580
mit Django Admin gebaut, ne?

01:03:03.220 --> 01:03:03.400
Ja.

01:03:03.400 --> 01:03:04.700
Das fand ich so ein bisschen besonders.

01:03:04.900 --> 01:03:05.740
Weiß ich nicht, ob ich das

01:03:05.740 --> 01:03:07.220
dann gedacht hätte.

01:03:07.480 --> 01:03:08.540
Also, ne,

01:03:08.760 --> 01:03:09.500
du musst Daten,

01:03:10.120 --> 01:03:11.120
musst du erst irgendwo herbekommen

01:03:11.120 --> 01:03:12.140
und dann musst du sie transformieren

01:03:12.140 --> 01:03:13.080
und wieder drücken.

01:03:13.420 --> 01:03:15.160
Also Extract, Transform und Load.

01:03:15.300 --> 01:03:15.480
Genau.

01:03:18.820 --> 01:03:19.660
Weiß ja nicht jeder.

01:03:20.080 --> 01:03:21.440
Aber es ist trotzdem interessant,

01:03:21.560 --> 01:03:23.320
dass es mit dem Django-Framework,

01:03:23.720 --> 01:03:26.000
dass es auf der Skala funktioniert,

01:03:26.180 --> 01:03:27.040
dass die es mit vier Leuten

01:03:27.040 --> 01:03:27.860
maintained bekommen

01:03:27.860 --> 01:03:29.700
und sich auch noch gut dabei fühlen,

01:03:29.920 --> 01:03:30.480
sagt er.

01:03:31.700 --> 01:03:32.500
Das würde ich unterschreiben,

01:03:32.700 --> 01:03:33.620
ich hätte das auch das Gefühl,

01:03:33.680 --> 01:03:34.200
dass es gut geht.

01:03:34.740 --> 01:03:35.220
Ich glaube,

01:03:35.280 --> 01:03:36.080
es gibt viele Setups,

01:03:36.180 --> 01:03:37.380
wo du das nicht mit vier Mann

01:03:37.380 --> 01:03:37.460
hinbekommst.

01:03:37.480 --> 01:03:37.920
Absolut.

01:03:39.260 --> 01:03:40.220
Das ist so ein bisschen

01:03:40.220 --> 01:03:40.940
der Take-away, oder?

01:03:41.480 --> 01:03:43.020
Wie weit du es treiben kannst.

01:03:43.460 --> 01:03:45.120
Es müssen auch vier gute Leute sein,

01:03:45.340 --> 01:03:45.700
dann tatsächlich,

01:03:45.880 --> 01:03:46.920
die das gut organisieren können.

01:03:48.020 --> 01:03:49.340
Oder drei gute Leute

01:03:49.340 --> 01:03:49.920
und einer macht das,

01:03:50.160 --> 01:03:51.160
worauf die anderen keinen Bock haben.

01:03:53.380 --> 01:03:54.960
Das kam auch bei diesen anderen Tops,

01:03:54.960 --> 01:03:56.260
bei dem von Hake Benita.

01:03:57.940 --> 01:03:59.820
Gestern bei dem,

01:04:00.620 --> 01:04:02.380
wie man von Integer

01:04:02.380 --> 01:04:03.540
zu Big Integer wechselt,

01:04:03.580 --> 01:04:04.220
wenn du mehr als

01:04:04.220 --> 01:04:05.720
eine Milliarde Zeilen hast.

01:04:05.820 --> 01:04:06.960
Da kam das durchaus

01:04:06.960 --> 01:04:07.460
für mich so ein bisschen

01:04:07.460 --> 01:04:07.920
raus,

01:04:08.080 --> 01:04:09.780
wie weit man mit diesen Tools

01:04:09.780 --> 01:04:10.440
gehen kann.

01:04:11.200 --> 01:04:12.000
Wie viel Schmerz

01:04:12.000 --> 01:04:13.280
die doch die meiste Zeit

01:04:13.280 --> 01:04:13.940
von einem fernhalten.

01:04:15.220 --> 01:04:16.420
Wir haben ja vorhin

01:04:16.420 --> 01:04:17.000
über diesen Talk

01:04:17.000 --> 01:04:17.920
von Hake Benita gesprochen.

01:04:18.540 --> 01:04:19.440
Da könnte man jetzt rausziehen,

01:04:19.580 --> 01:04:21.040
dass das Migrationssystem blöd ist

01:04:21.040 --> 01:04:22.820
und dass man gleich von Anfang an

01:04:22.820 --> 01:04:23.760
SQL machen sollte

01:04:23.760 --> 01:04:24.780
und lieber eigene Indizes

01:04:24.780 --> 01:04:25.140
und so weiter.

01:04:25.820 --> 01:04:26.900
Aber für mich das Fazit

01:04:26.900 --> 01:04:27.380
ist ein anderes.

01:04:27.540 --> 01:04:28.400
Für mich das Fazit ist,

01:04:29.060 --> 01:04:29.760
du kannst das eigentlich

01:04:29.760 --> 01:04:30.980
so machen, wie du willst

01:04:30.980 --> 01:04:32.080
und sobald du dann

01:04:32.080 --> 01:04:33.920
an die Grenze stößt,

01:04:33.920 --> 01:04:34.760
gibt es trotzdem Mittel,

01:04:34.940 --> 01:04:35.660
um über diese Grenze

01:04:35.660 --> 01:04:36.440
noch hinauszukommen.

01:04:36.440 --> 01:04:37.440
Und auch,

01:04:37.460 --> 01:04:38.360
auch unkompliziert.

01:04:38.540 --> 01:04:38.680
Ja.

01:04:38.800 --> 01:04:39.420
Das war ja kein Hexenwerk,

01:04:39.500 --> 01:04:40.060
was er gemacht hat.

01:04:40.080 --> 01:04:40.260
Ja.

01:04:40.420 --> 01:04:41.140
Und er hat auch gesagt,

01:04:41.260 --> 01:04:42.520
wenn es eine Möglichkeit gibt,

01:04:42.580 --> 01:04:43.340
das mit den Django-Mitteln

01:04:43.340 --> 01:04:43.700
zu machen,

01:04:43.800 --> 01:04:44.420
dann macht er das,

01:04:44.500 --> 01:04:46.060
weil es einfach komfortabler ist

01:04:46.060 --> 01:04:47.960
und zukunftssicherer

01:04:47.960 --> 01:04:49.780
und Datenbanktransferierbar

01:04:49.780 --> 01:04:50.120
und so weiter.

01:04:50.300 --> 01:04:50.460
Ja.

01:04:50.880 --> 01:04:52.040
Und das ist so ein bisschen

01:04:52.040 --> 01:04:52.840
eine schöne Bestätigung,

01:04:52.980 --> 01:04:53.680
dass man eigentlich

01:04:53.680 --> 01:04:55.620
sich erstmal keine Sorgen

01:04:55.620 --> 01:04:56.320
darüber machen muss

01:04:56.320 --> 01:04:57.040
über den Erfolg.

01:04:57.600 --> 01:04:59.040
Ganz viele Leute

01:04:59.040 --> 01:04:59.800
machen sich dann Sorgen,

01:04:59.880 --> 01:05:00.180
was ist,

01:05:00.220 --> 01:05:01.080
wenn ich mal eine Million

01:05:01.080 --> 01:05:01.700
User habe.

01:05:01.840 --> 01:05:02.040
Okay.

01:05:03.800 --> 01:05:04.540
Zu viele Sorgen

01:05:04.540 --> 01:05:05.540
über den Erfolg gemacht.

01:05:06.160 --> 01:05:07.100
Und für mich ist das

01:05:07.100 --> 01:05:07.320
so ein bisschen

01:05:07.320 --> 01:05:07.840
die Botschaft.

01:05:08.580 --> 01:05:10.040
Man kann das machen

01:05:10.040 --> 01:05:10.760
und das funktioniert.

01:05:11.020 --> 01:05:11.440
Und wenn ich dann

01:05:11.440 --> 01:05:12.400
drei Nutzer habe,

01:05:12.480 --> 01:05:12.940
vielleicht funktioniert

01:05:12.940 --> 01:05:13.900
das ja dann auch trotzdem.

01:05:14.620 --> 01:05:15.060
Ja, das,

01:05:15.880 --> 01:05:16.240
vielleicht.

01:05:17.060 --> 01:05:18.220
Beim ersten geht es noch.

01:05:18.280 --> 01:05:18.800
Beim zweiten,

01:05:18.940 --> 01:05:19.220
na.

01:05:20.160 --> 01:05:21.040
Als Mathematiker,

01:05:21.100 --> 01:05:21.760
der größte Sprung

01:05:21.760 --> 01:05:23.100
ist eigentlich von eins zu zwei.

01:05:23.240 --> 01:05:24.180
Alle anderen sind dann,

01:05:24.380 --> 01:05:25.460
das ist egal.

01:05:26.400 --> 01:05:26.500
Ja,

01:05:26.640 --> 01:05:27.600
dann sind wir bei,

01:05:27.640 --> 01:05:28.340
man kann ja auch nur noch

01:05:28.340 --> 01:05:28.920
mit Agenten reden.

01:05:29.540 --> 01:05:29.720
Ja.

01:05:30.780 --> 01:05:31.820
Ist das dann schon viele?

01:05:33.020 --> 01:05:33.500
Ist der Agent,

01:05:33.640 --> 01:05:33.840
ist dann,

01:05:34.360 --> 01:05:35.400
das ist ja ein anderes Thema.

01:05:35.760 --> 01:05:36.200
Anderes Thema.

01:05:36.920 --> 01:05:37.120
Genau,

01:05:37.220 --> 01:05:37.300
das ist ein anderes Thema.

01:05:37.300 --> 01:05:37.620
Das war es.

01:05:38.220 --> 01:05:39.320
Jetzt ist gerade Mittagspause.

01:05:39.960 --> 01:05:40.080
Ja.

01:05:41.220 --> 01:05:42.120
Es war Mittagspause,

01:05:42.200 --> 01:05:42.880
wir haben schon was verpasst.

01:05:43.060 --> 01:05:43.240
Ja.

01:05:44.760 --> 01:05:46.040
Aber was tut man nicht

01:05:46.040 --> 01:05:46.700
für seine Hörer?

01:05:48.700 --> 01:05:49.020
Ja,

01:05:49.180 --> 01:05:50.140
dann schaltet uns wieder ein.

01:05:50.360 --> 01:05:51.280
Vielleicht morgen wieder,

01:05:51.360 --> 01:05:52.480
wir wissen es noch nicht ganz genau.

01:05:53.360 --> 01:05:53.520
Ja,

01:05:53.560 --> 01:05:53.860
mal schauen.

01:05:54.560 --> 01:05:54.880
Ja,

01:05:54.980 --> 01:05:55.480
morgen ist auch noch

01:05:55.480 --> 01:05:56.340
die Party abends

01:05:56.340 --> 01:05:57.460
und wir können ja nicht

01:05:57.460 --> 01:05:57.860
eigentlich,

01:05:57.960 --> 01:05:58.300
oder vielleicht auch

01:05:58.300 --> 01:05:59.240
noch eine.

01:05:59.840 --> 01:06:00.100
Ja,

01:06:00.220 --> 01:06:00.620
schauen wir mal.

01:06:01.020 --> 01:06:01.380
Ja,

01:06:01.480 --> 01:06:02.160
also wie auch immer,

01:06:02.260 --> 01:06:02.800
wenn ihr uns wieder hört,

01:06:02.900 --> 01:06:03.520
bleibt uns gewogen,

01:06:03.660 --> 01:06:04.200
schaltet wieder rein.

01:06:04.200 --> 01:06:04.420
Hallo,

01:06:04.480 --> 01:06:05.720
erpeißenpodcast.de

01:06:05.720 --> 01:06:06.460
für alles Feedback.

01:06:06.660 --> 01:06:06.980
Vielen Dank,

01:06:07.060 --> 01:06:07.200
Sonny.

01:06:07.200 --> 01:06:08.000
Wir sind jetzt effektiv am Ende.

01:06:08.080 --> 01:06:08.100
Ja,

01:06:08.100 --> 01:06:08.420
danke.

01:06:08.500 --> 01:06:09.160
Wir machen heute Abend

01:06:09.160 --> 01:06:09.480
das nicht.

01:06:09.800 --> 01:06:10.260
Danke auch.

01:06:10.660 --> 01:06:10.820
Ja.

01:06:11.380 --> 01:06:12.080
Und ja,

01:06:12.420 --> 01:06:12.800
dann bis morgen.

01:06:12.900 --> 01:06:13.180
Bis zum nächsten Mal.

01:06:13.320 --> 01:06:13.480
Tschüss.

01:06:13.900 --> 01:06:14.100
Ciao.

01:06:14.440 --> 01:06:14.620
Ciao.
