WEBVTT

00:00:00.000 --> 00:00:03.800
Ja, hallo, liebe Hörerinnen und Hörer, willkommen beim Python-Podcast, Episode 46 heute.

00:00:04.640 --> 00:00:07.540
Heute soll es bei uns gehen um Python 3.11 und um Listen.

00:00:09.240 --> 00:00:10.560
Johannes ist wieder dabei. Hi, Johannes.

00:00:11.220 --> 00:00:11.720
Hallo, Johannes.

00:00:12.280 --> 00:00:12.840
Hallo, Jochen.

00:00:13.420 --> 00:00:14.940
Ja, herzlich willkommen, Dominik.

00:00:15.460 --> 00:00:15.700
Hi.

00:00:16.700 --> 00:00:18.960
Ja, wir haben uns ein bisschen Zeit gelassen mit dieser Episode.

00:00:19.100 --> 00:00:22.580
Manchmal ist ein bisschen viel zu tun, gerade in dieser dunklen Jahreszeit.

00:00:23.980 --> 00:00:24.180
Ja.

00:00:24.820 --> 00:00:28.900
Ja, aber Python 3.11, ich würde sagen, mit den News fangen wir heute mal wieder an.

00:00:30.000 --> 00:00:31.640
Genau, also ja.

00:00:31.960 --> 00:00:33.900
Wie fandet ihr das Release? Wie fandet ihr Python 3.11?

00:00:34.020 --> 00:00:34.860
Habt ihr es schon ausprobiert?

00:00:37.100 --> 00:00:37.880
Ja, ich verwende

00:00:37.880 --> 00:00:39.840
das tatsächlich schon und zwar

00:00:39.840 --> 00:00:41.840
auch so produktiv und so und

00:00:41.840 --> 00:00:43.840
war

00:00:43.840 --> 00:00:45.140
überraschend wenig

00:00:45.140 --> 00:00:48.020
Stress irgendwie das Update diesmal

00:00:48.020 --> 00:00:49.820
und für die meisten Sachen, die ich so verwende,

00:00:49.900 --> 00:00:50.840
gab es auch schon Reels, also

00:00:50.840 --> 00:00:53.900
normalerweise muss man am Anfang immer irgendwie alle Dinge

00:00:53.900 --> 00:00:55.780
dann neu komponieren und so, das war jetzt

00:00:55.780 --> 00:00:57.420
mir gar nicht aufgefallen, dass das irgendwie

00:01:00.000 --> 00:01:01.680
Hast du einen Tag länger gewartet als sonst?

00:01:02.240 --> 00:01:04.100
Vielleicht habe ich auch einen Tag länger gewartet, das kann auch sein.

00:01:04.200 --> 00:01:04.940
Ich weiß es nicht mehr so genau.

00:01:05.680 --> 00:01:09.200
Aber nö, das war alles sehr entspannt bei mir.

00:01:10.700 --> 00:01:11.820
Ich benutze das noch nicht.

00:01:12.480 --> 00:01:16.220
Warum muss man das denn jetzt, was lohnt sich denn da jetzt?

00:01:16.360 --> 00:01:17.440
Die ganz tollen Tracebacks.

00:01:19.140 --> 00:01:20.400
Ja, also das würde ich auch sagen.

00:01:20.420 --> 00:01:21.640
Die waren doch schon immer super gut.

00:01:22.380 --> 00:01:23.980
Nee, sind aber jetzt nochmal deutlich besser geworden.

00:01:24.940 --> 00:01:28.380
Tatsächlich zeigen die jetzt wirklich an welcher Stelle der Code kaputt gegangen ist.

00:01:28.380 --> 00:01:30.220
Ja, also das ist etwas, was ich jetzt

00:01:30.220 --> 00:01:31.880
nach wenigen Wochen

00:01:31.880 --> 00:01:34.320
Benutzung auch schon, das ist halt das,

00:01:34.520 --> 00:01:36.200
wie du hast Tracepacks, Jochen, wenn du Fotos hast.

00:01:36.260 --> 00:01:36.940
Ja, ja, ja.

00:01:38.000 --> 00:01:39.720
Auf und zu raise ich mal irgendwas,

00:01:40.240 --> 00:01:41.740
einfach nur so, weil es so gut aussieht.

00:01:43.080 --> 00:01:44.320
Und nee, aber das ist mir auch

00:01:44.320 --> 00:01:44.860
schon, also das

00:01:44.860 --> 00:01:47.760
möchte ich nicht mehr missen.

00:01:47.880 --> 00:01:50.120
Es zeigt einem relativ direkt, wo

00:01:50.120 --> 00:01:51.320
was kaputt ist und

00:01:51.320 --> 00:01:54.160
das ist wirklich sehr hilfreich. Und kommen wir dazu mit

00:01:54.160 --> 00:01:56.020
Rich dann zum Beispiel, Rich Tracepacks, sehr toll.

00:01:56.020 --> 00:01:56.420
Ja.

00:01:58.160 --> 00:01:59.200
PIP kann auch Rich.

00:01:59.440 --> 00:02:00.220
Übrigens, kennt ihr das?

00:02:01.220 --> 00:02:03.200
Wenn Rich installiert ist, nutzt PIP

00:02:03.200 --> 00:02:05.460
automatisch Rich. Ja, und dann hat man so

00:02:05.460 --> 00:02:07.420
farbige Progress Bars

00:02:07.420 --> 00:02:08.840
und sowas. Wundervoll, ich stehe auf sowas.

00:02:10.000 --> 00:02:11.540
Ja, ja. Alles nur

00:02:11.540 --> 00:02:12.080
Eye-Candy.

00:02:13.460 --> 00:02:15.080
Ja, aber es sieht schon alles besser aus,

00:02:15.160 --> 00:02:17.420
als früher. Früher mussten wir ja

00:02:17.420 --> 00:02:19.480
unsere Pakete mit der

00:02:19.480 --> 00:02:20.840
Brieftaube geschickt bekommen.

00:02:21.240 --> 00:02:22.160
Ja, das Deal ist ja alles.

00:02:24.680 --> 00:02:25.500
Wenn wir das nicht

00:02:25.500 --> 00:02:27.420
gebraucht haben, dann kriegen die Kinder das von heute

00:02:27.420 --> 00:02:27.860
ja auch nicht.

00:02:30.060 --> 00:02:31.220
Ich habe auch nicht mal kennengelernt,

00:02:31.300 --> 00:02:32.980
dass er aus den 80er Jahren berichtete

00:02:32.980 --> 00:02:35.400
von C und so, wie furchtbar

00:02:35.400 --> 00:02:36.020
das alles war.

00:02:37.900 --> 00:02:39.440
Das ist bei C, glaube ich, heute immer

00:02:39.440 --> 00:02:39.800
noch so.

00:02:40.560 --> 00:02:43.540
Aber das

00:02:43.540 --> 00:02:45.160
ist eine gute Überleitung, weil einer der Gründe,

00:02:45.380 --> 00:02:47.040
warum Python 3.11 jetzt so

00:02:47.040 --> 00:02:49.320
anders ist oder eine Neuerung, ist

00:02:49.320 --> 00:02:50.600
vielleicht, dass an der C

00:02:50.600 --> 00:02:53.120
Unterbau etwas gearbeitet

00:02:53.120 --> 00:02:53.700
worden ist.

00:02:54.780 --> 00:02:57.280
Naja, es ist ja das Release vom C Python Interpreter,

00:02:57.400 --> 00:03:01.860
Aber genau, also ja, es ist halt, da ist einiges.

00:03:02.000 --> 00:03:03.900
Also es ist echt viel passiert.

00:03:04.900 --> 00:03:05.640
Also es ist schneller.

00:03:06.060 --> 00:03:07.140
Es ist schneller, oder?

00:03:07.240 --> 00:03:09.200
Das ist immer der Grund, warum man Leuten empfiehlt,

00:03:09.320 --> 00:03:10.480
auf neue Parsons zu gehen.

00:03:11.080 --> 00:03:12.100
Es ist wirklich viel, viel schneller.

00:03:12.360 --> 00:03:14.340
Also nicht überall, aber in vielen Anwendungen

00:03:14.340 --> 00:03:16.280
ist es wirklich deutlich, deutlich performanter geworden.

00:03:16.480 --> 00:03:16.680
Ja.

00:03:17.620 --> 00:03:19.620
So viel 20, 25 Prozent munkelt man.

00:03:20.140 --> 00:03:22.680
Ja, ja, also je nach Anwendung kommt es halt darauf an.

00:03:23.160 --> 00:03:24.460
Also es kann auch deutlich mehr sein noch.

00:03:24.460 --> 00:03:26.460
also, aber es ist insgesamt

00:03:26.460 --> 00:03:28.200
über alles wahrscheinlich so 25% schneller

00:03:28.200 --> 00:03:30.300
ungefähr, ähm, äh, und

00:03:30.300 --> 00:03:32.200
das ist auch nochmal ein gutes Stückchen mehr

00:03:32.200 --> 00:03:34.100
als die Verbesserungen vorher, also

00:03:34.100 --> 00:03:35.520
es wird ja immer ein bisschen schneller von

00:03:35.520 --> 00:03:38.140
Version zu Version und, ähm, diesmal

00:03:38.140 --> 00:03:40.500
ist es aber ein größerer Sprung als, ähm

00:03:40.500 --> 00:03:42.060
sozusagen normalerweise oder bisher

00:03:42.060 --> 00:03:44.040
ja, was halt vor allen Dingen daran liegt, dass

00:03:44.040 --> 00:03:45.880
jetzt halt eine Menge Leute tatsächlich

00:03:45.880 --> 00:03:47.400
dediziert an diesem Problem arbeiten

00:03:47.400 --> 00:03:49.920
und, ähm, ja

00:03:49.920 --> 00:03:51.740
äh, da der, der

00:03:51.740 --> 00:03:53.720
Release-Manager von, von

00:03:53.720 --> 00:03:56.160
Python 3.11 irgendwie

00:03:56.160 --> 00:03:58.480
Pablo

00:03:58.480 --> 00:04:00.260
Galindo Salgado, der meinte

00:04:00.260 --> 00:04:01.940
auch so, also irgendwie ist das

00:04:01.940 --> 00:04:03.580
deutlich stressiger geworden mit dem

00:04:03.580 --> 00:04:05.620
Releasen oder das war

00:04:05.620 --> 00:04:07.720
halt deutlich stressiger als 3.10

00:04:07.720 --> 00:04:10.100
und einer der Gründe ist halt, dass

00:04:10.100 --> 00:04:11.940
jetzt halt sechs Leute Vollzeit

00:04:11.940 --> 00:04:14.040
irgendwie da an Features arbeiten und

00:04:14.040 --> 00:04:15.840
vorher hat da eigentlich niemand Vollzeit

00:04:15.840 --> 00:04:18.000
an neuen Features oder an Performance-Verbesserungen

00:04:18.000 --> 00:04:19.200
gearbeitet und

00:04:19.200 --> 00:04:21.840
jetzt gibt es doch einige Leute, die da

00:04:21.840 --> 00:04:23.640
irgendwie viel Zeug reintun

00:04:23.640 --> 00:04:46.080
Und ja, da hatten sie halt irgendwie enorme Probleme. Also das war auch sowas. Also 3.11 war sehr, sehr schwer irgendwie fertig zu kriegen wohl. Aber es hat dann doch am Schluss noch alles funktioniert. Aber sie mussten halt, also zum Beispiel ein großes Problem, das sie hatten, ist, dass sie hatten halt richtig fiese Bugs noch, also so Release-Blocker-Bugs bis in den Release-Kandidaten noch mit drin.

00:04:46.080 --> 00:04:54.240
Und auch vor allen Dingen, also das Schlimme war halt nach dem Punkt, wo man sagt, man gewährleistet ABI-Stabilität.

00:04:54.580 --> 00:04:57.460
Also, dass sich dieses Application Binary Interface nicht mehr ändert.

00:04:57.660 --> 00:05:00.140
Also, dass sozusagen C-Funktionen ihre Signaturen nicht mehr ändern und so.

00:05:01.520 --> 00:05:08.520
Das garantiert man ab einem bestimmten Punkt, damit die Pakete, die man zu dem Zeitpunkt oder nach diesem Zeitpunkt halt gebaut hat,

00:05:08.620 --> 00:05:13.120
also Wheels, die man dann kompiliert hat, dass die noch auch mit dem richtigen Release funktionieren.

00:05:13.220 --> 00:05:33.280
Das muss man halt früh genug machen, sonst hat man halt nicht genug fertig komplizierte Binaries und das ist halt ein Problem. Das Problem ist aber, wenn man jetzt irgendwie dahinter, nachdem man diese Schwelle überschritten hat, dann noch Bugs findet, bei denen man gerne was ändern würde, dann geht das halt nicht mehr. Und dann muss man halt teilweise sehr komplizierte Dinge tun, damit man das trotzdem fixen kann.

00:05:34.060 --> 00:05:55.460
Und solche Sachen sind halt leider passiert. Unter anderem sind halt solche Dinge, weil halt, naja, auch was halt für diese Performance-Optimierungen verantwortlich ist, dass halt Dinge halt nicht mehr so gemacht werden, also sie werden eine Zeit lang ganz normal so interpretiert, der Interpreter-Bytecode, so wie er normalerweise interpretiert wird.

00:05:55.460 --> 00:06:12.720
Und wenn das dann achtmal passiert ist oder so, dann sagt er halt, okay, jetzt schalte ich auf was anderes um. Ist mir das zu blöd? Habe ich das achtmal gemacht? Mache ich nicht nochmal? Und nimmt halt eine spezialisierte Version davon, die halt dann zum Beispiel Integer addiert oder Floats addiert und dann das halt nicht mit Objekten macht, sondern direkt irgendwie auf dem Prozessor.

00:06:14.020 --> 00:06:42.160
Und das geht auch meistens gut, aber dann so, es gab es halt so fiese Bugs wie, naja, also das passiert zum Beispiel auch beim Attribut-Akzess und dann manchmal ist es halt so, dann funktioniert das, die ersten acht Attribut-Akzesse funktionieren halt und beim neunten Mal wird halt die Klassenvariable genommen, also wenn du zum Beispiel, das machen ja viele Leute, dass sie halt in der Klasse halt sozusagen die Parameter, die ein Objekt bekommt, definieren und wenn du dann eine Instanz machst, instanzierst das Ding, dann überschreibst du das.

00:06:42.160 --> 00:06:49.340
Und die Instanzvariablen, also wenn Attribute an der Instanz hängen, dann überschreiben die immer das, was an der Klasse dran steht, sodass es kein Problem ist.

00:06:50.320 --> 00:06:58.260
Und jetzt kam halt dann irgendwann so ein Bug-Report rein und dann hat einer so, ha, irgendwie, also achtmal geht das gut und dann beim neunten Mal irgendwie, achso nee, das war nicht der Report.

00:06:58.360 --> 00:07:08.820
Der Report war irgendwo, komische Geschichte ist irgendwie dann geworden und wo es nicht dann werden durfte und irgendwas seltsames und das hat irgendwie lange gedauert, um rauszukriegen, was das Problem ist.

00:07:08.820 --> 00:07:10.520
das Problem war tatsächlich, dass halt beim neunten Mal

00:07:10.520 --> 00:07:12.820
wurde halt irgendwie die Klassenvariable genommen und nicht mehr

00:07:12.820 --> 00:07:15.000
die Instanzvariable, was halt nicht passieren darf,

00:07:15.740 --> 00:07:16.940
weil das

00:07:16.940 --> 00:07:18.660
irgendwie mit dieser Spezialisierung zusammenhing,

00:07:18.780 --> 00:07:20.240
dass man dann halt, dass da halt irgendwas

00:07:20.240 --> 00:07:22.600
direkt genommen wurde.

00:07:22.620 --> 00:07:23.600
Irgendwelche Fallbacks.

00:07:24.140 --> 00:07:27.000
Das ist natürlich total schrecklich,

00:07:27.080 --> 00:07:28.500
wenn man so einen Bug hat. Also einmal

00:07:28.500 --> 00:07:30.740
war es wohl irgendwie super schwierig, den zu finden und dann

00:07:30.740 --> 00:07:32.360
war es halt super schwierig, den zu fixen,

00:07:33.020 --> 00:07:34.760
ohne die C-API nochmal anfassen

00:07:34.760 --> 00:07:36.680
zu müssen und naja, also alles ganz, ganz

00:07:36.680 --> 00:07:37.080
schrecklich.

00:07:38.260 --> 00:07:39.760
Ja, der hat es auf jeden Fall sehr gejammert,

00:07:40.360 --> 00:07:43.320
dass das alles diesmal sehr, sehr schlimm gewesen wäre.

00:07:44.200 --> 00:07:47.920
Aber naja, gut, es hat halt trotzdem funktioniert, also insofern, ja.

00:07:48.480 --> 00:07:50.040
Aber das ist so ein Problem, oder?

00:07:50.080 --> 00:07:52.000
Wenn zu viele Leute an einer Software arbeiten,

00:07:52.160 --> 00:07:56.380
dass dann halt irgendwie doch schwieriger ist oder stressiger oder so.

00:07:57.000 --> 00:07:58.360
Ja, ja.

00:07:58.360 --> 00:08:01.980
Weil wenn nur zwei oder drei, ich glaube, da gibt es irgendwo so eine Grenze.

00:08:02.300 --> 00:08:04.840
Wenn nur zwei oder drei so zusammenarbeiten und man sich jeden Tag sieht,

00:08:04.940 --> 00:08:06.440
dann ist das auch nicht so wild,

00:08:06.540 --> 00:08:08.720
weil dann ist irgendwie das gesamte Wissen so verteilt.

00:08:08.960 --> 00:08:10.680
Aber wenn es dann mehr Leute werden,

00:08:10.780 --> 00:08:14.420
dann ist einfach da so Sachen, die so ineinander greifen.

00:08:14.940 --> 00:08:15.800
Also das ist meine Erfahrung.

00:08:15.940 --> 00:08:17.060
Ich weiß nicht, wie es euch da geht.

00:08:17.280 --> 00:08:17.860
Ja, ja, absolut.

00:08:18.000 --> 00:08:20.780
Also die Komplexität, auch wenn mehr Leute an einem Projekt sind,

00:08:20.860 --> 00:08:25.360
steigt nicht linear, sondern irgendwie bösartiger.

00:08:25.820 --> 00:08:26.180
Exponentiell.

00:08:26.540 --> 00:08:27.680
Exponentiell weiß ich jetzt auch nicht.

00:08:29.060 --> 00:08:30.440
Aber irgendwie dieser.

00:08:30.440 --> 00:08:31.260
Heute geht noch, oder?

00:08:31.460 --> 00:08:33.440
Sechs, sieben geht vielleicht auch.

00:08:34.200 --> 00:08:38.600
Ja, da muss man dann schon Prozesse haben und so und genau darauf aufpassen.

00:08:38.600 --> 00:08:42.160
Und ganz schlimm wird es, also ich würde mich dem Lager zuordnen,

00:08:42.240 --> 00:08:45.660
das sagt also mehr als ein Team an der Software arbeiten,

00:08:45.940 --> 00:08:47.200
vielleicht sowieso keine so gute Idee.

00:08:47.600 --> 00:08:50.840
Also wenn man jetzt quasi aus dem Bereich, wo man noch ein Team haben kann, rauskommt,

00:08:50.900 --> 00:08:51.760
hat jetzt mehrere Teams die anderen.

00:08:52.000 --> 00:08:54.300
Also da gibt es dann ja auch irgendwie diverse Dinge.

00:08:54.620 --> 00:08:56.860
Aber ehrlich gesagt, das ist alles so schrecklich.

00:08:56.860 --> 00:09:00.740
Also ich weiß nicht, ob es sich überhaupt lohnt, in dem Bereich zu skalieren,

00:09:00.860 --> 00:09:02.640
weil wenn du halt ein gutes Team hast, das kleiner ist,

00:09:02.720 --> 00:09:04.720
dann kann das eigentlich aus meiner Perspektive fast immer

00:09:04.720 --> 00:09:06.820
schneller sein, als egal, wie viele Leute du drauf

00:09:06.820 --> 00:09:08.720
wirfst, weil das kriegst du

00:09:08.720 --> 00:09:09.480
eh nicht mehr organisiert.

00:09:12.140 --> 00:09:12.540
Naja,

00:09:13.020 --> 00:09:14.820
keine Ahnung. Was für eine optimale Teamgröße

00:09:14.820 --> 00:09:15.300
würdest du sagen?

00:09:16.960 --> 00:09:18.180
Fünf oder so was?

00:09:18.860 --> 00:09:19.140
Ja, ja.

00:09:20.160 --> 00:09:21.360
Ich würde sagen vier.

00:09:22.900 --> 00:09:23.540
Warum vier?

00:09:24.740 --> 00:09:26.580
Weil fünf schon zu groß ist. Fünf ist ein

00:09:26.580 --> 00:09:28.320
großes Team schon. Vier ist

00:09:28.320 --> 00:09:30.380
ein mittleres Team, drei ist ein kleines Team,

00:09:30.440 --> 00:09:32.540
das ist super. Und alles über

00:09:32.540 --> 00:09:34.600
fünf ist nicht gut. Da musst du dann

00:09:34.600 --> 00:09:36.140
viel Management machen. Da brauchst du dann

00:09:36.140 --> 00:09:38.540
jemanden, der assistiert

00:09:38.540 --> 00:09:41.140
und jemanden, der koordiniert und dann

00:09:41.140 --> 00:09:42.320
gehst du schon in so

00:09:42.320 --> 00:09:44.580
Ist bei dir bei den vier Leuten die

00:09:44.580 --> 00:09:46.480
Kommunikation mit dem Kunden mit drin, bei den vieren?

00:09:46.660 --> 00:09:48.500
Oder macht das noch jemand

00:09:48.500 --> 00:09:49.780
mit Managing ein Projekt?

00:09:50.100 --> 00:09:51.680
Das kommt auf das Projekt an.

00:09:53.800 --> 00:09:54.640
Es gibt

00:09:54.640 --> 00:09:56.420
ja Projekte, die haben gar keinen Kunden

00:09:56.420 --> 00:09:58.500
in dem Sinne. Zum Beispiel Python. Python hat ja

00:09:58.500 --> 00:09:59.140
keinen Kunden.

00:10:00.240 --> 00:10:02.500
Keiner, der sagt, ich habe

00:10:02.500 --> 00:10:04.180
aber das hier beauftragt und das,

00:10:04.680 --> 00:10:06.460
ja, aber die Software-Community ist ja kein

00:10:06.460 --> 00:10:08.540
Naja, du musst ja auch Kommunikation

00:10:08.540 --> 00:10:09.880
machen, du hast ja auch irgendwie eine

00:10:09.880 --> 00:10:12.080
Product-Ownership in gewisser Weise dann.

00:10:12.580 --> 00:10:12.940
Nö.

00:10:14.340 --> 00:10:15.820
Doch. Du kannst machen, was du willst,

00:10:16.100 --> 00:10:17.500
die Community muss das halt annehmen.

00:10:20.760 --> 00:10:22.460
Da ist, da ist man ja

00:10:22.460 --> 00:10:24.000
sozusagen, das ist ja ein schöner Fall eigentlich.

00:10:24.140 --> 00:10:26.200
Also ich würde ja denken, Produktmanagement

00:10:26.200 --> 00:10:28.180
ist halt Marketing und Marketing ist halt

00:10:28.180 --> 00:10:29.640
Ja, so würde ich das nicht sehen. Ich würde jetzt nicht

00:10:29.640 --> 00:10:31.920
Marketing gucken, das geht nur um die

00:10:31.920 --> 00:10:34.020
Kommunikationsstelle mit dem Kunden, also jemand, der

00:10:34.020 --> 00:10:36.360
quasi User-Stories baut und die koordiniert.

00:10:38.000 --> 00:10:39.980
Ja, aber was soll das für User-Stories geben bei Python?

00:10:39.980 --> 00:10:41.920
Bei Python-Entwicklung brauchst du sowas in Quatsch halt nicht.

00:10:42.080 --> 00:10:43.860
Also würde ich jetzt mal so sagen, also so spontan.

00:10:44.300 --> 00:10:45.500
Also das machst du halt, wenn du,

00:10:45.720 --> 00:10:47.060
ja, also, aber

00:10:47.060 --> 00:10:50.060
Nee, aber das brauchst du dann schon

00:10:50.060 --> 00:10:51.740
zusätzlich, wenn du einen Kunden hast

00:10:51.740 --> 00:10:54.080
und in so einer Situation bist, wo du einen Kunden

00:10:54.080 --> 00:10:56.060
hast, der spezifische Wünsche hat,

00:10:56.520 --> 00:10:57.960
dann brauchst du schon eine Rolle, die nicht

00:10:57.960 --> 00:10:58.760
nur Entwickler ist.

00:10:59.720 --> 00:11:01.520
Ja, ja, wenn du Kunden hast, klar, okay, ja.

00:11:01.720 --> 00:11:03.400
Und da brauchst du dann schon

00:11:03.400 --> 00:11:05.340
einen PO oder einen, keine Ahnung.

00:11:05.620 --> 00:11:07.340
Ja, du brauchst halt jemanden, der, also vor allen Dingen,

00:11:07.400 --> 00:11:09.320
wenn die Entwickler auch nicht selber die, also das ist halt

00:11:09.320 --> 00:11:11.120
immer das Ding, ich will, eben,

00:11:11.380 --> 00:11:12.920
ist halt eine Marketingrolle und das halt

00:11:12.920 --> 00:11:15.180
Produktmanagement wäre halt aus meiner Sicht so

00:11:15.180 --> 00:11:16.320
irgendwie Anwalt des Kunden.

00:11:17.320 --> 00:11:19.120
Das ist halt vor allen Dingen dann wichtig, wenn man selber

00:11:19.120 --> 00:11:21.120
als Entwickler das halt nicht verwendet und auch gar nicht

00:11:21.120 --> 00:11:23.080
verwenden kann und wenn es um irgendeine andere

00:11:23.080 --> 00:11:25.360
Geschichte geht, mit der man gar nichts zu tun hat, dann brauchst

00:11:25.360 --> 00:11:27.440
du jemanden, der diese Rolle einnimmt.

00:11:27.520 --> 00:11:29.020
Wenn ich irgendwas mache, was ich selber

00:11:29.020 --> 00:11:31.040
verwende, dann brauche ich das nicht. Dann kann ich das

00:11:31.040 --> 00:11:31.700
super selber machen.

00:11:32.700 --> 00:11:34.840
Wenn mir dann jemand erzählt, wie ich das

00:11:34.840 --> 00:11:36.920
verwenden soll, fände ich komisch, weil

00:11:36.920 --> 00:11:37.980
ich meine,

00:11:38.940 --> 00:11:39.920
wie kann das gehen?

00:11:40.140 --> 00:11:40.660
Jochen, kannst du den nicht auch?

00:11:41.920 --> 00:11:45.980
Du darfst nur an den

00:11:45.980 --> 00:11:47.860
Sachen arbeiten, die gerade im aktuellen

00:11:47.860 --> 00:11:48.940
Sprint drin sind, Jochen.

00:11:49.680 --> 00:11:51.480
Ja, also, weiß ich nicht.

00:11:54.620 --> 00:11:55.700
Doch, ich mache das auch

00:11:55.700 --> 00:11:57.600
für meine privaten Projekte.

00:11:58.260 --> 00:11:59.560
Natürlich, auch für Skripte,

00:11:59.760 --> 00:12:01.840
100-Zeiten-Skripte erstmal eine User-Story

00:12:01.840 --> 00:12:02.800
geschrieben. Erstmal ein Epic.

00:12:03.520 --> 00:12:03.680
Ja.

00:12:05.360 --> 00:12:07.740
Da war es doch die Accountability dann,

00:12:07.820 --> 00:12:09.800
die Responsibility, Jochen. Bist du auch selber für dich

00:12:09.800 --> 00:12:10.360
...

00:12:10.360 --> 00:12:13.280
Binnable.

00:12:14.180 --> 00:12:15.680
Kannst du dir dein Gehalt selber

00:12:15.680 --> 00:12:17.420
in Bonuspunkten ausbezahlen.

00:12:17.560 --> 00:12:19.440
Ja, nee. Das

00:12:19.440 --> 00:12:20.880
muss man da alles nicht machen, zum Glück.

00:12:21.800 --> 00:12:23.380
Ja, aber

00:12:23.380 --> 00:12:25.760
also ja, ich meine, tatsächlich, das ist halt

00:12:25.760 --> 00:12:26.860
groß geworden und

00:12:26.860 --> 00:12:29.500
ja, wenn viele Leute daran entwickeln, ist halt

00:12:29.500 --> 00:12:31.380
schwierig und sie hatten ja,

00:12:31.520 --> 00:12:33.880
es gab ja schon mal in Python 3.9

00:12:33.880 --> 00:12:35.900
beziehungsweise in 3.10

00:12:35.900 --> 00:12:37.740
ist es dann halt aktiv geworden. Der Packparser

00:12:37.740 --> 00:12:39.440
ist halt ja auch die interne, so quasi

00:12:39.440 --> 00:12:41.740
ein zentraler Teil von

00:12:41.740 --> 00:12:43.560
Python, ist halt irgendwie komplett

00:12:43.560 --> 00:12:45.280
einmal irgendwie auf links gedreht worden.

00:12:46.660 --> 00:12:47.740
Das hat aber einfach so funktioniert.

00:12:47.880 --> 00:12:49.380
Das ist nicht irgendwie quasi so

00:12:49.380 --> 00:12:51.840
fies, hat nicht so fiese

00:12:51.840 --> 00:12:53.720
Konsequenzen gehabt wie jetzt, aber ich meine

00:12:53.720 --> 00:12:55.660
manchmal hat man halt auch einfach Glück oder Pech, das kann natürlich

00:12:55.660 --> 00:12:56.080
auch sein.

00:12:57.480 --> 00:12:59.460
Irgendwer hat irgendwas ordentlich gemacht oder irgendwas übersehen.

00:12:59.560 --> 00:13:00.720
Aber darauf kannst du nicht setzen.

00:13:01.320 --> 00:13:02.460
Nee, setzen kann man darauf nicht.

00:13:03.360 --> 00:13:05.500
Aber ja, also ich meine natürlich auch, wenn man mehrere

00:13:05.500 --> 00:13:07.440
Sachen gleichzeitig ändert, dann ist es halt so, dass

00:13:07.440 --> 00:13:09.060
die, dann hat man eine

00:13:09.060 --> 00:13:11.160
kombinatorische Explosion von

00:13:11.160 --> 00:13:13.560
Möglichkeiten, wie es schief gehen kann und dann ist natürlich

00:13:13.560 --> 00:13:15.440
auch die Wahrscheinlichkeit einfach höher, dass es irgendwo kracht.

00:13:16.400 --> 00:13:17.400
Ja, und diesmal

00:13:17.400 --> 00:13:19.600
sind es viele Dinge. Ich war mal in so einem Projekt

00:13:19.600 --> 00:13:21.600
und das war schon so ein bisschen verspätet und dann

00:13:21.600 --> 00:13:23.620
kam irgendwann der Projektmanager,

00:13:23.900 --> 00:13:26.020
was nicht, Projekt oder Produkt oder was auch immer

00:13:26.020 --> 00:13:27.620
für einen Manager, hat gesagt, also

00:13:27.620 --> 00:13:30.180
wir haben

00:13:30.180 --> 00:13:31.880
einen sehr engen Zeitplan, ab jetzt dürfen wir keine

00:13:31.880 --> 00:13:33.040
Fehler mehr machen.

00:13:34.140 --> 00:13:36.020
Unsere Reaktion war dann, ach so,

00:13:36.480 --> 00:13:38.200
na gut, ab jetzt

00:13:38.200 --> 00:13:39.880
dürfen wir keine Fehler mehr machen, na gut,

00:13:40.000 --> 00:13:41.540
dann machen wir das jetzt halt nicht mehr.

00:13:43.260 --> 00:13:44.000
Immer wenn ich

00:13:44.000 --> 00:13:45.660
über die Schulter gucke, ist irgendwas kaputt, ja.

00:13:48.120 --> 00:13:49.860
Sobald der Manager weghockt, fangen die

00:13:49.860 --> 00:13:52.000
Entwickler an, Lego zu spielen

00:13:52.000 --> 00:13:54.000
und Fehler einzubauen.

00:13:54.780 --> 00:13:56.260
Oder Fehler darf man ja nicht

00:13:56.260 --> 00:13:58.200
sagen, man sagt ja Jobsicherheit, ich baue

00:13:58.200 --> 00:13:59.620
Jobsicherheit in dieses Projekt ein.

00:14:00.700 --> 00:14:00.920
Ja.

00:14:01.800 --> 00:14:03.900
Das ist genau wie so eine Schätzung von so einem Softwareprojekt.

00:14:04.720 --> 00:14:05.840
Wer brauchst du denn dafür?

00:14:06.700 --> 00:14:08.300
Zwei Tage, was kommuniziere

00:14:08.300 --> 00:14:08.820
ich denn jetzt?

00:14:09.440 --> 00:14:12.460
Also Schätzung

00:14:12.460 --> 00:14:13.740
ist auch so ein schönes Thema.

00:14:14.300 --> 00:14:16.000
Also das ist halt auch, ja,

00:14:16.000 --> 00:14:16.360
also

00:14:16.360 --> 00:14:19.920
soll ich das

00:14:19.920 --> 00:14:20.560
wirklich sagen?

00:14:22.000 --> 00:14:24.240
Wird das nochmal eine andere Episode,

00:14:24.360 --> 00:14:26.400
wird das eine so irgendwie, ja.

00:14:28.700 --> 00:14:29.960
Haben wir da nicht schon mal drüber gesprochen?

00:14:29.960 --> 00:14:31.880
Ja, wir haben bestimmt über solche Sachen schon häufiger gesprochen.

00:14:32.260 --> 00:14:33.860
Aber ich bin auch irgendwie der Stimmung, also wir

00:14:33.860 --> 00:14:36.220
callen Bullshit auf alle möglichen etablierten Business-Prozesse,

00:14:36.360 --> 00:14:38.020
aber ja, dieses mit dem Schätzen ist

00:14:38.020 --> 00:14:40.180
einfach nur totaler Quark aus meiner Perspektive.

00:14:40.320 --> 00:14:42.000
Also niemand kann das schätzen.

00:14:42.120 --> 00:14:43.940
Wir haben da genug Erfahrung, um das inzwischen relativ

00:14:43.940 --> 00:14:45.660
sicher sagen zu können, dass man das nicht schätzen kann.

00:14:45.760 --> 00:14:47.980
Es geht einfach nicht. Und wenn man

00:14:47.980 --> 00:14:49.600
Leute dazu zwingt, dass sie das tun,

00:14:49.900 --> 00:14:51.720
dann passieren halt Dinge, die man nicht haben will.

00:14:52.000 --> 00:14:55.720
Nämlich zum Beispiel, dann machen sie halt nur noch Sachen, die man gut schätzen kann zum Beispiel.

00:14:58.780 --> 00:14:59.340
Einfache Sachen.

00:14:59.920 --> 00:15:06.660
Du willst ja eigentlich quasi sozusagen, eben aus der Business-Perspektive möchtest du haben, die Leute sollen an dem Kram arbeiten, der den meisten Wert bringt.

00:15:07.360 --> 00:15:12.700
Irgendwie, sozusagen Wert, wie auch immer man das definiert, aber man hat ja irgendeine Vorstellung von dem, was Wert bringt.

00:15:12.980 --> 00:15:15.700
Ja, improvisieren an irgendwelche Aufgaben und wollen, dass die Aufgaben fertiggestellt sind.

00:15:15.920 --> 00:15:19.800
Genau, aber das, was du eigentlich haben willst, ist, dass die Leute etwas produzieren, was sie für dich in Wert hat.

00:15:20.220 --> 00:15:21.880
So, diesen Wert willst du eigentlich optimieren.

00:15:22.000 --> 00:15:35.260
Wenn du den Leuten jetzt sagst, ihr müsst mir aber vorher sagen, wie lange das dauert und das bei denen dazu führt, dass wenn sie das sich verschätzen und du ihnen auf die Finger haust, sie dafür bestraft werden und belohnt werden dafür, dass wenn das stimmt, dann machen sie nur noch Sachen, die man gut schätzen kann.

00:15:35.260 --> 00:15:45.600
Und vor allen Dingen, was du dann halt verstanden hast, wenn du weißt, was Informationsasymmetrie ist und dann verstehst, auf welcher Seite welche Informations liegt und wer da was machen kann, ja bitte, Entschuldigung.

00:15:45.620 --> 00:15:47.520
Ja, aber das führt halt

00:15:47.520 --> 00:15:49.520
dazu, dass dein Wert nicht mehr maximiert

00:15:49.520 --> 00:15:51.240
wird, sondern dann wird halt maximiert auf

00:15:51.240 --> 00:15:53.140
irgendwie langweiligen Scheiß, den man halt

00:15:53.140 --> 00:15:54.080
schön schätzen kann.

00:15:55.120 --> 00:15:56.220
Und das ist ja gar nicht das, was du willst.

00:15:57.120 --> 00:15:58.340
Ich würde anders maximieren.

00:16:00.140 --> 00:16:01.360
Ich würde auf das maximal

00:16:01.360 --> 00:16:03.200
erträgliche Zeitbudget

00:16:03.200 --> 00:16:05.300
maximieren und dann halt gucken, dass ich

00:16:05.300 --> 00:16:07.360
halt das dann trotzdem so schnell mache, wie ich das für richtig

00:16:07.360 --> 00:16:09.220
halte und dann den Rest der Zeit halt

00:16:09.220 --> 00:16:10.300
nicht signalisiere, sondern

00:16:10.300 --> 00:16:13.340
schön meine Sachen machen kann, wie ich das für richtig halte.

00:16:14.860 --> 00:16:15.160
Ja,

00:16:15.420 --> 00:16:16.280
gut, aber

00:16:16.280 --> 00:16:19.300
ja, ich weiß nicht, aber das

00:16:19.300 --> 00:16:21.560
Aus Business-Perspektive ist das nicht so sinnvoll.

00:16:22.660 --> 00:16:23.540
Aus meiner Perspektive

00:16:23.540 --> 00:16:24.940
ist das schon gar nicht so schlecht.

00:16:25.180 --> 00:16:26.660
Ja, ich glaube,

00:16:26.800 --> 00:16:28.140
das sind unterschiedliche Incentives.

00:16:28.960 --> 00:16:30.600
Das ist ja immer ein anderer Fall.

00:16:32.360 --> 00:16:32.920
Aber selbst

00:16:32.920 --> 00:16:34.120
unter der Annahme, dass

00:16:34.120 --> 00:16:36.920
niemand versucht, das zu gamen, sondern dass alle

00:16:36.920 --> 00:16:39.200
sich so verhalten, wie das gedacht ist,

00:16:39.320 --> 00:16:40.680
funktioniert das mit dem Schätzen ja schon nicht.

00:16:41.360 --> 00:16:42.960
Und das ist halt schon echt schlecht. Also wenn man

00:16:42.960 --> 00:16:44.100
jetzt noch mit zusätzlich an dem

00:16:44.100 --> 00:16:46.640
annimmt, die Leute sind bösartig,

00:16:46.760 --> 00:16:48.580
okay, dann weiß ich nicht,

00:16:48.700 --> 00:16:50.520
aber das ist ja nochmal ein anderes Problem. Aber selbst wenn

00:16:50.520 --> 00:16:52.460
sich alle gutartig verhalten und alle

00:16:52.460 --> 00:16:54.520
nur das Beste wollen, funktioniert das halt schon nicht mehr.

00:16:54.680 --> 00:16:56.400
Also die Frage ist halt schon, wenn du halt gemeinsam

00:16:56.400 --> 00:16:58.400
kooperativ irgendwann arbeiten willst, dann musst du ja

00:16:58.400 --> 00:17:00.260
quasi davon ausgehen, dass du Vertrauen den Leuten

00:17:00.260 --> 00:17:01.900
entgegenbringen musst. Ja, genau. Und dafür

00:17:01.900 --> 00:17:04.140
ist das ja schon irgendwie Quatsch, unter Druck zu setzen und dann

00:17:04.140 --> 00:17:05.580
ist eigentlich die einzige

00:17:05.580 --> 00:17:08.380
Info, die man irgendwie geben kann, so ja,

00:17:08.440 --> 00:17:10.480
ist das jetzt eine Frage von Tagen oder von

00:17:10.480 --> 00:17:12.480
Jahren oder sowas, ne? Ja, aber die

00:17:12.480 --> 00:17:14.300
Frage wäre auch, wofür willst du das

00:17:14.300 --> 00:17:16.240
wissen? Warum ist das so? Also, ich meine,

00:17:16.340 --> 00:17:18.000
ich würde ja sagen, okay, manchmal kann es ja sein, dass das...

00:17:18.000 --> 00:17:20.220
Die geschäftliche Planung, ja, so Make or Buy und so was,

00:17:20.300 --> 00:17:22.060
all das halt, ne? Ja, aber...

00:17:22.060 --> 00:17:24.260
Da hast du ja auch oft viele Business-Sachen da,

00:17:24.320 --> 00:17:25.700
die da dran hängen, du Marketing

00:17:25.700 --> 00:17:28.260
und Fremdsysteme und Kundenkontakt

00:17:28.260 --> 00:17:29.840
und so. Ja.

00:17:30.080 --> 00:17:32.340
Dann musst du ja Sachen ankündigen. Jahresbudget.

00:17:32.620 --> 00:17:34.820
Ja, am Ende können wir...

00:17:34.820 --> 00:17:36.240
Genau, Jahresbudget und

00:17:36.240 --> 00:17:38.420
manchmal hast du ja auch gesetzliche Vorgaben.

00:17:38.520 --> 00:17:40.140
Ich arbeite ja jetzt in der Versicherungsbranche,

00:17:40.140 --> 00:17:41.420
für die Versicherungsbranche

00:17:41.420 --> 00:17:43.640
und da gibt es

00:17:43.640 --> 00:17:45.680
jede Menge gesetzliche Vorgaben, könnt ihr euch

00:17:45.680 --> 00:17:47.780
gar nicht vorstellen, wie viele gesetzliche Vorgaben

00:17:47.780 --> 00:17:49.200
es da gibt. Und

00:17:49.200 --> 00:17:51.500
wir kommen jetzt ins Jahresendgeschäft,

00:17:51.660 --> 00:17:53.560
das ist auch was, was mir bisher unbekannt war, weil

00:17:53.560 --> 00:17:55.540
die halt so eine Vermittlerstruktur haben und die haben halt

00:17:55.540 --> 00:17:56.240
Jahrespläne

00:17:56.240 --> 00:17:59.380
und weil es jetzt zum Ende des Jahres

00:17:59.380 --> 00:18:01.460
hinzugeht, müssen die jetzt alle noch ihren Plan erfüllen

00:18:01.460 --> 00:18:03.300
und deshalb ist

00:18:03.300 --> 00:18:05.320
im November und Dezember doppelt so viel

00:18:05.320 --> 00:18:06.820
Geschäft wie im Januar und Februar.

00:18:08.240 --> 00:18:09.440
Und da muss man

00:18:09.440 --> 00:18:10.340
halt auch damit klarkommen.

00:18:11.420 --> 00:18:21.660
Also da hängen ja schon Sachen drin. Also ich kann schon verstehen, dass du vorher wissen möchtest, wie viel das kostet, wenn du was kaufst und wie lange es dauert, wann du es kriegst.

00:18:23.080 --> 00:18:27.540
Ja, aber die Frage ist, wie viel dir das wert ist. Das wäre sozusagen die Frage.

00:18:27.540 --> 00:18:29.480
Das ist der Marketingpreis doch. Ich dachte, du magst Marketing nicht.

00:18:30.240 --> 00:18:32.200
Ja, doch, ich mag schon Marketing.

00:18:32.800 --> 00:18:34.620
Wie hoch ist deine Schätzungsmarge?

00:18:37.200 --> 00:18:40.180
Wie hoch ist dein Schätzungsfaktor? Zwei oder drei?

00:18:40.180 --> 00:18:42.340
Zwei bis drei, irgendwie sowas, ja. Ungefähr.

00:18:44.000 --> 00:18:46.520
Ja, das würde ich sagen, ist doch normal, oder? Und dann ist doch okay.

00:18:47.100 --> 00:18:47.460
Ja.

00:18:48.600 --> 00:18:49.980
Dann kriegst du es auch hin in der Zeit.

00:18:50.360 --> 00:18:51.720
Nee, ja, manchmal halt auch nicht.

00:18:52.160 --> 00:18:53.520
Schätzt du Story Points oder Tage?

00:18:55.040 --> 00:19:02.080
Also, sagen wir mal so, Tage ist noch falscher als Story Points, aber Story Points sind auch schon falsch.

00:19:02.100 --> 00:19:03.020
Mit fünf bist du eigentlich immer richtig.

00:19:03.840 --> 00:19:08.660
Ja, genau. Also ich fand, naja, gut. Also ich weiß nicht, es ist halt alles sehr sinnlos.

00:19:08.680 --> 00:19:10.260
Das hatte ich gemacht, Dominik. Jetzt will er nicht mehr.

00:19:11.400 --> 00:19:11.740
Und

00:19:11.740 --> 00:19:14.280
ich meine, die Alternative

00:19:14.280 --> 00:19:16.240
ist ja, ich würde einfach die Alternative

00:19:16.240 --> 00:19:18.160
probieren. Die Alternative ist, man nimmt sich das Nächste, was

00:19:18.160 --> 00:19:20.300
halt irgendwie den höchsten Wert

00:19:20.300 --> 00:19:22.160
verspricht und arbeitet

00:19:22.160 --> 00:19:24.220
halt dran. Und wenn das halt zu lange dauert,

00:19:24.380 --> 00:19:26.180
dann hat das nicht mehr den höchsten Wert, dann nimmt man

00:19:26.180 --> 00:19:27.980
was anderes. Aber das

00:19:27.980 --> 00:19:30.320
vorher alles zu

00:19:30.320 --> 00:19:31.840
schätzen und dann zu priorisieren,

00:19:32.660 --> 00:19:34.220
also ich habe starke Zweifel daran,

00:19:34.340 --> 00:19:36.220
dass das irgendein, dass das irgendwie

00:19:36.220 --> 00:19:38.280
das besser macht. Das ist genau das, worum es da gerade geht.

00:19:38.400 --> 00:19:40.360
du fängst halt an, die Sachen dann untereinander zu

00:19:40.360 --> 00:19:42.360
gamen und zu arbitragieren und sowas und das ist

00:19:42.360 --> 00:19:44.360
halt das, was die dümmste Idee ist, die du

00:19:44.360 --> 00:19:46.180
machen kannst, wenn du vernünftiges Management

00:19:46.180 --> 00:19:48.460
machen willst mit Leuten, die motiviert, intrinsisch motiviert

00:19:48.460 --> 00:19:49.840
an Dingen arbeiten sollen oder wollen

00:19:49.840 --> 00:19:52.360
und das ist genau der entscheidende Punkt, wo

00:19:52.360 --> 00:19:54.220
ich auch sagen würde, dass das keine gute Idee ist, das zu machen

00:19:54.220 --> 00:19:56.740
auch das mit dem Tracking und so, das ist keine gute Idee

00:19:56.740 --> 00:19:58.020
Ja

00:19:58.020 --> 00:20:00.180
Ja, es gibt Leute, die verstehen das nicht, die meinen

00:20:00.180 --> 00:20:01.980
ja, die müssen aber, ja und dann

00:20:01.980 --> 00:20:02.660
Ja gut, also

00:20:02.660 --> 00:20:06.000
Ja, ich meine

00:20:06.000 --> 00:20:08.160
es gibt ja auch genug Beispiele, wo dann halt irgendwie nicht so

00:20:08.160 --> 00:20:09.860
tolle Sachen dann mal rauskommt. Ich freue mich dann immer

00:20:09.860 --> 00:20:11.940
über Leute, bei denen das dann doch funktioniert und

00:20:11.940 --> 00:20:13.740
die anderen, die meinen, dass das funktioniert und

00:20:13.740 --> 00:20:16.000
wenig von der

00:20:16.000 --> 00:20:17.580
Realität informiert

00:20:17.580 --> 00:20:20.060
werden darüber, ob das jetzt

00:20:20.060 --> 00:20:21.820
dann, da freue ich mich auch drüber, weil

00:20:21.820 --> 00:20:24.120
irgendwie... Ja, das hat ja auch was mit Informationsadmetrie zu tun

00:20:24.120 --> 00:20:26.080
und die Frage ist also, ob du die Wahrheit überhaupt

00:20:26.080 --> 00:20:27.900
kennen kannst. Ja.

00:20:28.000 --> 00:20:29.600
An der Stelle, aus der jeweiligen

00:20:29.600 --> 00:20:31.720
Managementperspektive oder so, das geht halt nicht.

00:20:31.780 --> 00:20:33.780
Richtig, das ist auch ein Riesenproblem

00:20:33.780 --> 00:20:36.060
und ich würde sagen, in vielen Sachen, die ich gesehen

00:20:36.060 --> 00:20:37.560
habe, ja, nee, können sie nicht. Also du müsstest

00:20:37.560 --> 00:20:39.560
Ja, du musst es halt zum Beispiel haben, der richtig selber

00:20:39.560 --> 00:20:41.620
kunden kann, der das komplett selber einschätzen kann,

00:20:41.740 --> 00:20:43.620
was aber passiert ist. Ansonsten ist das

00:20:43.620 --> 00:20:45.520
gar nicht so notwendig. Der müsste halt die ganzen Commits lesen und dann

00:20:45.520 --> 00:20:47.460
verstehen, warum es so lange gedauert hat. Der muss

00:20:47.460 --> 00:20:49.220
auch verstehen, dass, keine Ahnung, man manchmal

00:20:49.220 --> 00:20:51.480
zwei Tage lang nach einem fehlenden Punkt oder Komma

00:20:51.480 --> 00:20:53.540
oder Leerzeichen suchen muss, weil das irgendeinen blöden Bug

00:20:53.540 --> 00:20:54.900
an irgendeiner Stelle gibt, den man nicht erwartet hat.

00:20:55.340 --> 00:20:57.300
Und dass dafür bestimmte Sachen halt einfach schnell gehen, obwohl

00:20:57.300 --> 00:20:59.400
die total kompliziert aussehen. Das ist halt so,

00:21:00.640 --> 00:21:01.540
ja, der muss halt so ein Feeling

00:21:01.540 --> 00:21:03.500
haben. Aber das... Manchmal hat man ja auch

00:21:03.500 --> 00:21:05.100
die Inspiration, oder, sowas zu machen.

00:21:05.720 --> 00:21:07.720
manche Sachen gehen schneller,

00:21:07.900 --> 00:21:09.720
obwohl sie komplizierter sind, weil man sie machen möchte.

00:21:09.900 --> 00:21:11.700
Ja, aber das ist das, was du willst. Du willst diesen

00:21:11.700 --> 00:21:13.760
Flow haben. Und damit dieser Flow möglich ist,

00:21:13.840 --> 00:21:15.740
damit dir diesen Flow reinkommt, dass du mal 3, 4,

00:21:15.820 --> 00:21:18.020
5, 6, 7, 8, 9, 10 Stunden

00:21:18.020 --> 00:21:19.720
einfach nur ballerst und dann ist das richtig

00:21:19.720 --> 00:21:21.660
geiles Fertig. Dafür brauchst du danach die Tage

00:21:21.660 --> 00:21:23.760
auch ein bisschen mehr Ruhe. Das kannst du nicht die ganze Zeit machen. Das geht nicht.

00:21:23.840 --> 00:21:25.740
Wie können wir jetzt businessmäßig den

00:21:25.740 --> 00:21:26.500
Flow optimieren?

00:21:27.700 --> 00:21:28.200
Oh je.

00:21:28.860 --> 00:21:30.440
Ah, ich weiß es. Wir brauchen einen

00:21:30.440 --> 00:21:31.300
Kickertisch in der Lande.

00:21:32.580 --> 00:21:33.100
Schon fertig.

00:21:34.160 --> 00:21:37.180
Und einmal im Monat gibt es Pizza-Abends

00:21:37.180 --> 00:21:39.180
für alle, die nach 20 Uhr

00:21:39.180 --> 00:21:39.800
noch da sind.

00:21:41.140 --> 00:21:42.680
Eine Tischtennisplatte natürlich

00:21:42.680 --> 00:21:43.740
und ein Lauftreff.

00:21:45.140 --> 00:21:46.660
Naja, tja.

00:21:47.340 --> 00:21:47.500
Ja.

00:21:49.040 --> 00:21:50.240
Ach ja, man merkt das.

00:21:50.520 --> 00:21:52.900
Ist das bei euch auch so? Ich glaube, ich weiß, warum das jetzt

00:21:52.900 --> 00:21:55.120
gerade alles wieder so am Jahresende

00:21:55.120 --> 00:21:56.620
Ihr habt ja mehr Geschäft, ne?

00:21:56.620 --> 00:21:58.460
Ja, wir auch. Also hier ist gerade relativ

00:21:58.460 --> 00:22:00.500
stressig, weil es ist relativ

00:22:00.500 --> 00:22:02.280
viel Zeugs. Also ich meine, da kann man sich auch mal

00:22:02.280 --> 00:22:03.720
drüber freuen, wenn Leute irgendwie

00:22:03.720 --> 00:22:05.920
wollen, dass man Dinge für sie macht.

00:22:06.060 --> 00:22:06.600
Ist eigentlich gut.

00:22:07.000 --> 00:22:09.720
Ist eigentlich sehr gut, aber

00:22:09.720 --> 00:22:11.920
es ist so zum Jahresende, es wird immer

00:22:11.920 --> 00:22:13.540
mehr irgendwie. Man hat immer so das Gefühl,

00:22:13.680 --> 00:22:15.300
am Jahresende ist es immer so ein bisschen voller irgendwie.

00:22:15.540 --> 00:22:17.920
Man muss ja noch irgendwie die Sachen durchkriegen, die man für das Jahr geplant hat

00:22:17.920 --> 00:22:19.080
und gucken, ob die noch fertig werden.

00:22:19.740 --> 00:22:21.620
Dann wieder muss man aufs Neue ufern.

00:22:24.160 --> 00:22:24.680
Muss dann wieder

00:22:24.680 --> 00:22:25.980
ohne überlegen neue Projekte.

00:22:25.980 --> 00:22:27.540
Wenn du die Zeitperioden einplanst.

00:22:29.440 --> 00:22:29.600
Ja.

00:22:31.100 --> 00:22:31.880
Erstmal die Frage, kann man dann

00:22:31.880 --> 00:22:32.640
eine clevere Planung machen.

00:22:32.780 --> 00:22:33.940
Da sind wir jetzt nämlich genau wieder bei dem Punkt,

00:22:34.040 --> 00:22:35.320
kannst du sagen, clevererweise,

00:22:35.840 --> 00:22:36.760
okay, wir machen sowas so,

00:22:36.840 --> 00:22:37.880
das muss am Ende des Jahres fertig sein,

00:22:37.960 --> 00:22:38.660
da muss man am Ende gucken,

00:22:39.160 --> 00:22:40.140
da hat man ein bisschen geschludert,

00:22:40.220 --> 00:22:41.780
muss man noch ein bisschen antreiben oder sowas,

00:22:41.880 --> 00:22:43.020
aus so einer Management-Perspektive.

00:22:44.120 --> 00:22:44.940
Ja, weiß ich nicht.

00:22:45.700 --> 00:22:46.460
Ich glaube, das geht alles nicht.

00:22:46.760 --> 00:22:47.160
Glaube ich auch nicht.

00:22:49.900 --> 00:22:51.260
Auch etwas, was niemand hören will, aber.

00:22:51.280 --> 00:22:51.880
Für eine gewisse Zeit geht es schon, oder?

00:22:52.560 --> 00:22:54.360
Also ich meine, Crunch-Time funktioniert schon.

00:22:54.660 --> 00:22:56.260
Funktioniert ein bisschen, ja.

00:22:56.260 --> 00:22:57.160
Die Akkus leer sind halt, ne?

00:22:58.020 --> 00:23:00.040
Genau, dann hast du halt danach wieder die Periode,

00:23:00.120 --> 00:23:01.040
wo es langsamer geht.

00:23:01.560 --> 00:23:03.400
Ja, aber es ist auch keine...

00:23:03.400 --> 00:23:04.060
Viele können die das machen so.

00:23:04.500 --> 00:23:04.940
Ja, ja.

00:23:05.540 --> 00:23:07.380
Qualität darf da auch nicht das Merkmal sein.

00:23:07.480 --> 00:23:08.740
Das ist halt dann nur mehr gemacht.

00:23:09.240 --> 00:23:11.760
Ja, aber dann machst du billig und Crunch-Time

00:23:11.760 --> 00:23:14.160
und dann guckst du, dass die Produktivität

00:23:14.160 --> 00:23:16.800
dann immerhin so 60% ist, wenn du einfach gute Leute nimmst.

00:23:16.800 --> 00:23:18.440
Und es kostet aber trotzdem eher mehr.

00:23:19.440 --> 00:23:21.260
Ja, aber gute Leute...

00:23:21.260 --> 00:23:21.780
Sie sind zu rar.

00:23:21.800 --> 00:23:22.720
Kennst du so viele gute Leute,

00:23:23.060 --> 00:23:25.040
dass du ein Viererteam damit füllen könntest?

00:23:25.580 --> 00:23:25.780
Ja.

00:23:26.480 --> 00:23:27.220
Also wir sind jetzt...

00:23:27.220 --> 00:23:28.700
Ja, aber die Zeit hat...

00:23:28.700 --> 00:23:29.680
Kennst du noch einen guten?

00:23:29.800 --> 00:23:30.880
Bereit wären für dich zu arbeiten?

00:23:31.020 --> 00:23:31.380
Schwierig.

00:23:31.560 --> 00:23:32.820
Also ja, nee, ist nicht so einfach.

00:23:32.900 --> 00:23:34.060
Die du bezahlen kannst, Dominik.

00:23:35.260 --> 00:23:35.620
Ja.

00:23:36.400 --> 00:23:37.880
Die Zeit haben, die nicht schon woanders sind.

00:23:37.920 --> 00:23:38.680
Das ist doch das Problem.

00:23:38.760 --> 00:23:40.440
Die guten Leute sind immer belegt.

00:23:42.500 --> 00:23:42.780
Naja.

00:23:44.980 --> 00:23:45.180
Tja.

00:23:46.320 --> 00:23:48.280
Deshalb habe ich auch nie Zeit, Podcasts aufzunehmen.

00:23:49.300 --> 00:23:50.260
Jetzt wisst ihr Bescheid.

00:23:51.320 --> 00:23:51.560
Ja.

00:23:53.020 --> 00:23:56.860
Ja, aber offenbar hat das Python-Projekt ein paar Leute gefunden,

00:23:57.160 --> 00:23:59.580
die tatsächlich irgendwie dafür arbeiten wollen.

00:23:59.660 --> 00:24:00.800
Und die sind auch eigentlich alle ziemlich gut.

00:24:01.120 --> 00:24:03.520
Das war eine der längsten Exkurse, die wir bisher hatten, glaube ich.

00:24:03.660 --> 00:24:04.720
Ja, die haben dieses

00:24:04.720 --> 00:24:07.220
Problem irgendwie in den Griff gekriegt.

00:24:07.640 --> 00:24:07.640
Und

00:24:07.640 --> 00:24:11.020
ja, das hat

00:24:11.020 --> 00:24:13.060
eigentlich auch tatsächlich, also das ist

00:24:13.060 --> 00:24:15.020
ja sowieso eine Neuerung im Grunde, dass

00:24:15.020 --> 00:24:17.020
halt so viele Leute Vollzeit

00:24:17.020 --> 00:24:18.220
jetzt irgendwie da dran arbeiten.

00:24:19.060 --> 00:24:21.240
Und ja, eigentlich hat es ja schon ganz gut funktioniert.

00:24:23.280 --> 00:24:23.940
Ja, das war super.

00:24:25.520 --> 00:24:26.380
Genau, also

00:24:26.380 --> 00:24:28.840
vielleicht gehen wir einfach nochmal durch die

00:24:28.840 --> 00:24:30.780
Dinger so durch, was da alles

00:24:30.780 --> 00:24:32.780
und neuen Sachen dazugekommen ist.

00:24:33.740 --> 00:24:34.920
Also genau,

00:24:35.000 --> 00:24:35.560
wir hatten die

00:24:35.560 --> 00:24:38.400
Performance-Verbesserung so ein bisschen, da können wir

00:24:38.400 --> 00:24:40.420
eigentlich nochmal ein bisschen ins Detail gehen,

00:24:40.780 --> 00:24:42.760
auch was da passiert ist, aber halt

00:24:42.760 --> 00:24:44.820
dann die besseren Fehlermeldungen.

00:24:45.480 --> 00:24:46.480
Was es auch gibt, sind

00:24:46.480 --> 00:24:49.120
Exception-Groups und Accept-Sternen

00:24:49.120 --> 00:24:50.580
irgendwie. Das ist

00:24:50.580 --> 00:24:51.780
etwas,

00:24:54.660 --> 00:24:54.980
also

00:24:54.980 --> 00:24:56.680
auf der einen Seite ist es krass, dass das jetzt erst

00:24:56.680 --> 00:24:58.800
da drin ist sozusagen, weil erst jetzt

00:24:58.800 --> 00:25:00.760
hat man halt die Möglichkeit, bestimmte Sachen zu machen, wo man

00:25:00.760 --> 00:25:02.740
denkt so, oh, das ist aber ganz übel, wenn man das nicht

00:25:02.740 --> 00:25:04.600
machen kann. Und ja, es war einfach schon immer

00:25:04.600 --> 00:25:06.680
ganz übel. Also Python 2 war

00:25:06.680 --> 00:25:08.840
super übel. Da gab es halt bloß

00:25:08.840 --> 00:25:10.860
eine Exception, die halt, wenn eine geflogen

00:25:10.860 --> 00:25:12.800
ist, halt nur eine geflogen. Und wenn irgendwas

00:25:12.800 --> 00:25:14.460
anderes zwischendurch passiert ist, ja, Pech gehabt.

00:25:15.780 --> 00:25:16.840
Und dann

00:25:16.840 --> 00:25:18.480
ab Python 3 gibt es halt diese Chained

00:25:18.480 --> 00:25:20.800
Exceptions, die man manchmal sieht, wenn da so

00:25:20.800 --> 00:25:22.700
wenn man so ein Traceback

00:25:22.700 --> 00:25:24.800
kriegt, so während dieser Traceback geworfen

00:25:24.800 --> 00:25:26.640
wurde, ist halt noch was anderes passiert. Und da kann man

00:25:26.640 --> 00:25:28.680
beliebige aneinanderhängen. Und diesen Mechanismus kann man

00:25:28.680 --> 00:25:30.020
natürlich auch dafür missbrauchen, dann

00:25:30.020 --> 00:25:31.960
oder gebrauchen,

00:25:32.740 --> 00:25:34.120
um halt, wenn man viele Exceptions hat,

00:25:34.260 --> 00:25:36.160
die irgendwie, zum Beispiel wenn man halt viele Tasks

00:25:36.160 --> 00:25:37.860
hat, die man gleichzeitig abgefeuert hat,

00:25:37.980 --> 00:25:39.680
die dann halt alle ja auch irgendwie schief gehen können,

00:25:40.500 --> 00:25:41.420
um das zu

00:25:41.420 --> 00:25:43.960
wieder einzufangen oder solche Sachen.

00:25:44.040 --> 00:25:45.460
Aber das ist natürlich alles sehr hässlich, weil

00:25:45.460 --> 00:25:48.100
eigentlich war das gedacht für Sachen, die was miteinander zu tun

00:25:48.100 --> 00:25:49.880
haben. Und wenn man jetzt

00:25:49.880 --> 00:25:52.280
aber so Async-Geschichten

00:25:52.280 --> 00:25:54.240
macht, die haben ja oft nichts miteinander zu tun.

00:25:54.600 --> 00:25:55.980
Also die aneinander zu ketten ist halt

00:25:55.980 --> 00:25:58.000
irgendwie, macht keinen so großen Sinn.

00:25:59.660 --> 00:26:01.400
Und dafür gibt es jetzt halt

00:26:01.400 --> 00:26:03.380
Exemption Groups und

00:26:03.380 --> 00:26:05.820
wo man die Exceptions so in Bäumen

00:26:05.820 --> 00:26:07.000
anordnen kann und

00:26:07.000 --> 00:26:09.860
ja, es gab auch

00:26:09.860 --> 00:26:11.900
vorher schon so Sachen, die dann versucht haben, drüber umzuarbeiten.

00:26:12.420 --> 00:26:13.940
Nurseries in Trio und so.

00:26:15.360 --> 00:26:16.000
Wir haben auch schon irgendwann

00:26:16.000 --> 00:26:17.040
ganz kurz drüber gesprochen.

00:26:18.040 --> 00:26:19.720
Genau, das war eigentlich so ein fehlendes

00:26:19.720 --> 00:26:22.120
Puzzlestück auch für

00:26:22.120 --> 00:26:23.940
Async.io, um das

00:26:23.940 --> 00:26:25.680
halt so richtig ordentlich zu machen, weil

00:26:25.680 --> 00:26:27.520
das ist halt total blöd, wenn du halt

00:26:27.520 --> 00:26:29.820
nicht tatsächlich alle

00:26:29.820 --> 00:26:31.660
Sachen, die schiefgegangen sind, hinterher

00:26:31.660 --> 00:26:32.160
behandeln kannst.

00:26:32.340 --> 00:26:35.780
Weil manchmal musst du es halt

00:26:35.780 --> 00:26:37.720
handeln und wenn du dann davon gar nicht

00:26:37.720 --> 00:26:39.340
informiert wirst, ist es halt irgendwie schon nicht so gut.

00:26:40.180 --> 00:26:41.760
Und es gibt das aber auch außerhalb

00:26:41.760 --> 00:26:43.560
von AsyncIO. Es ist nicht nur ein

00:26:43.560 --> 00:26:45.660
AsyncIO-Feature, weil es gibt auch so

00:26:45.660 --> 00:26:46.560
Dinge wie zum Beispiel

00:26:46.560 --> 00:26:49.740
im Socket-Modul, wenn du halt eine Verbindung

00:26:49.740 --> 00:26:51.680
irgendwo hin aufmachst, dann probiert das

00:26:51.680 --> 00:26:53.300
Ding halt unterschiedliche

00:26:53.300 --> 00:26:55.460
Sachen

00:26:55.460 --> 00:26:57.600
durch, wenn es halt irgendwie nicht funktioniert.

00:26:58.080 --> 00:26:59.440
Also diverse Optionen, die dann

00:26:59.440 --> 00:27:01.560
gesetzt werden können. Und bisher

00:27:01.560 --> 00:27:03.640
war es halt so, naja, es werden halt diese Sachen durchprobiert,

00:27:03.720 --> 00:27:05.780
wenn das eine nicht funktioniert, wird das andere probiert und so weiter.

00:27:06.100 --> 00:27:07.460
Und jedes Mal fliegt ja eigentlich eine Exception.

00:27:08.100 --> 00:27:09.680
Aber du kriegst immer nur die letzte

00:27:09.680 --> 00:27:10.580
zu sehen eigentlich.

00:27:11.480 --> 00:27:13.340
Was ja auch irgendwie kacke ist, weil du

00:27:13.340 --> 00:27:15.400
möchtest ja im Grunde vielleicht schon sehen können,

00:27:15.580 --> 00:27:17.440
so, was ist denn da alles schiefgegangen? Also bei

00:27:17.440 --> 00:27:19.580
allen Dingen, wo man so Retry-Geschichten hat,

00:27:20.460 --> 00:27:21.480
wenn du jetzt sagst,

00:27:21.900 --> 00:27:23.660
oder bei so einem

00:27:23.660 --> 00:27:25.360
Salary-Task oder was auch immer, sagst halt

00:27:25.360 --> 00:27:27.820
irgendwie fünf Retries und dann geht's

00:27:27.820 --> 00:27:29.560
halt nicht. Dann kriegst du halt, wenn es

00:27:29.560 --> 00:27:30.920
dann eine Exception gab, immer nur die letzte.

00:27:31.360 --> 00:27:33.400
Aber vielleicht gab's ja vorher schon mal Exceptions und

00:27:33.400 --> 00:27:35.520
vielleicht waren die anders. Das wäre ja interessant zu

00:27:35.520 --> 00:27:37.560
wissen. Aber das, momentan gibt's keine

00:27:37.560 --> 00:27:39.400
Möglichkeit, oder bisher gab's keine

00:27:39.400 --> 00:27:41.440
Möglichkeit, da dran zu kommen. Und jetzt

00:27:41.440 --> 00:27:43.540
halt schon. Und ja, da das halt nicht

00:27:43.540 --> 00:27:45.520
nur für Asian-Geschichten, sondern

00:27:45.520 --> 00:27:47.440
halt auch in anderen Kontexten auftritt und

00:27:47.440 --> 00:27:49.360
eigentlich jetzt zum ersten Mal

00:27:49.360 --> 00:27:51.460
ermöglicht, diese Sachen so sauber zu handeln, dass du wirklich

00:27:51.460 --> 00:27:53.900
alles behandeln kannst,

00:27:53.940 --> 00:27:54.740
was da schiefgegangen ist.

00:27:55.200 --> 00:27:56.820
Also man konnte das ja schon vorher machen, indem man

00:27:56.820 --> 00:27:58.480
so ein Python-Feature

00:27:58.480 --> 00:28:00.800
genutzt hat, also indem man

00:28:00.800 --> 00:28:02.920
eine leere Liste als Cache

00:28:02.920 --> 00:28:04.560
irgendeiner Funktion gegeben hat.

00:28:04.840 --> 00:28:07.020
Also quasi selber bauen,

00:28:07.180 --> 00:28:08.700
Dominik. Genau, die immer aufgerufen wurde.

00:28:08.920 --> 00:28:11.100
Und dann konnte man

00:28:11.100 --> 00:28:11.860
die daran dann sammeln.

00:28:13.020 --> 00:28:14.500
Ja, also man kann natürlich solche Sachen...

00:28:14.500 --> 00:28:17.180
Aber das musst du dann halt immer machen. Das ist so wie die C-Fehlernummern,

00:28:17.240 --> 00:28:18.940
oder? Es gibt keine Fehlernummern, also

00:28:18.940 --> 00:28:21.040
wenn du 0 zurückgibst, ist alles

00:28:21.040 --> 00:28:22.900
in Ordnung und wenn du irgendwas anderes zurückgibst, musst du in der

00:28:22.900 --> 00:28:23.720
großen Liste nachschauen.

00:28:24.680 --> 00:28:26.820
Ja, oder was man halt, ein Vorschlag

00:28:26.820 --> 00:28:28.800
war halt auch, man kann es nicht über Logging machen oder solche

00:28:28.800 --> 00:28:30.300
Mechanismen, aber tatsächlich

00:28:30.300 --> 00:28:32.040
es gibt dann Vorrätsel.

00:28:33.420 --> 00:28:34.720
Ja, oder irgendwas in der Richtung,

00:28:34.840 --> 00:28:35.860
dass man das halt nicht,

00:28:36.520 --> 00:28:38.660
weil tatsächlich ist es ja jetzt, es

00:28:38.660 --> 00:28:39.660
ändert ja die Python-Syntax.

00:28:40.380 --> 00:28:42.580
Das müsst ihr mir kurz erklären, warum ihr gerade gelacht habt, mit was

00:28:42.580 --> 00:28:43.640
ist das für ein Vorschlag? Verstehe ich nicht.

00:28:44.760 --> 00:28:46.720
Ja, wenn eine Exception auftritt und du willst wissen,

00:28:46.720 --> 00:28:48.600
was da vor passiert ist, da drüben ist

00:28:48.600 --> 00:28:50.820
eine magische Datei und da hast du es hoffentlich reingeschrieben.

00:28:51.180 --> 00:28:52.700
Ja, wenn die weg ist, keine Lösung

00:28:52.700 --> 00:28:53.540
für dieses Problem.

00:28:54.180 --> 00:28:56.660
Du kannst natürlich hingehen und

00:28:56.660 --> 00:28:58.980
quasi um, also du könntest

00:28:58.980 --> 00:29:00.900
natürlich statt Exceptions zu werfen, einfach

00:29:00.900 --> 00:29:02.760
alles in ein Logfile reinschreiben und dann

00:29:02.760 --> 00:29:04.600
im Code ab und zu mal nachgucken, ob

00:29:04.600 --> 00:29:06.480
eine Exception geflogen ist in ein Logfile.

00:29:07.120 --> 00:29:08.260
Das ist so eine schlaue Art.

00:29:08.260 --> 00:29:09.100
Mit Dragle Expressions.

00:29:09.300 --> 00:29:13.360
Ich habe gehört, so funktioniert Cloud.

00:29:14.080 --> 00:29:16.920
Ja, genau. Oder verteilte Systeme,

00:29:16.980 --> 00:29:18.120
da hat man das Problem natürlich so.

00:29:18.440 --> 00:29:20.860
Das ist unter Umständen

00:29:20.860 --> 00:29:21.480
sehr schmerzhaft.

00:29:22.700 --> 00:29:25.060
es gibt da einen schönen Vortrag von

00:29:25.060 --> 00:29:27.520
der Entwicklerin,

00:29:27.660 --> 00:29:28.860
die das geschrieben hat,

00:29:28.880 --> 00:29:30.820
wo sie halt

00:29:30.820 --> 00:29:33.200
auch kurz durchgeht, ich habe das jetzt

00:29:33.200 --> 00:29:34.800
dummerweise, ich habe das schon

00:29:34.800 --> 00:29:36.880
ein oder zwei Monate her gesehen,

00:29:37.140 --> 00:29:38.600
wo sie halt durchgeht,

00:29:38.780 --> 00:29:41.280
warum das eine sinnvolle Geschichte ist, an der

00:29:41.280 --> 00:29:43.240
die Sprachsyntax zu verändern, weil

00:29:43.240 --> 00:29:45.160
du kannst es, und sie geht dann diverse Möglichkeiten durch,

00:29:45.200 --> 00:29:46.900
wie man das implementieren könnte, und

00:29:46.900 --> 00:29:49.140
da kommt am Schluss raus, ja, es geht nicht

00:29:49.140 --> 00:29:51.360
anders, du musst die Sprach, man muss die Sprachsyntax

00:29:51.360 --> 00:29:53.480
da verändern. Es gibt keine andere

00:29:53.480 --> 00:29:55.360
schöne Möglichkeit, wie man das hinprogrammiert, wie man das

00:29:55.360 --> 00:29:57.480
anders machen kann. Also wenn es eine andere gegeben

00:29:57.480 --> 00:29:59.140
hätte, hätten sie es auch anders gemacht, weil das ist natürlich

00:29:59.140 --> 00:30:00.820
irgendwie so ein bisschen das letzte Mittel,

00:30:01.120 --> 00:30:03.440
die Sprachsyntax ändern, das macht mir ja auch nicht

00:30:03.440 --> 00:30:04.100
so einfach aus Spaß.

00:30:05.180 --> 00:30:07.360
Und es gab aber keine. Und dass es ein Problem

00:30:07.360 --> 00:30:09.400
ist, ist ja schon lange klar. Also das ist ja

00:30:09.400 --> 00:30:11.080
nicht so, dass den Leuten das jetzt erst aufgefallen wäre,

00:30:11.560 --> 00:30:13.580
sondern eigentlich, also quasi

00:30:13.580 --> 00:30:14.980
dass man sowas braucht und

00:30:14.980 --> 00:30:17.060
im Async-Kontext war das, der

00:30:17.060 --> 00:30:19.240
Async.io hauptsächlich implementiert hat,

00:30:19.340 --> 00:30:21.180
Juri Selimanov, der

00:30:21.180 --> 00:30:23.540
hat 2017 schon irgendwie gesagt, wir brauchen das unbedingt

00:30:23.540 --> 00:30:25.500
irgendwie, dann gab es diese Geschichten mit Trio

00:30:25.500 --> 00:30:27.440
und so und aber

00:30:27.440 --> 00:30:29.280
niemand hat eine Möglichkeit, weil man dachte immer so,

00:30:29.360 --> 00:30:31.360
ach das geht bestimmt, irgendwie kriegt man das hin, ohne

00:30:31.360 --> 00:30:33.120
dass man dafür irgendwie die Sprache ändern muss

00:30:33.120 --> 00:30:35.340
und das hat aber niemand hingekriegt und jetzt

00:30:35.340 --> 00:30:37.360
ist die Sprache geändert worden und

00:30:37.360 --> 00:30:39.380
ja, also was es halt an neuer Syntax

00:30:39.380 --> 00:30:41.380
gibt, ist halt dieses Accept-Stern irgendwie,

00:30:41.740 --> 00:30:42.820
wo man dann halt quasi

00:30:42.820 --> 00:30:44.860
alle Dinge aus einer Gruppe halt,

00:30:45.040 --> 00:30:46.760
eine Gruppe von Sachen halt fangen kann,

00:30:47.200 --> 00:30:48.820
dann kann man damit irgendwas machen, dann kann man die splitten

00:30:48.820 --> 00:30:51.740
und damit kann man es eigentlich

00:30:51.740 --> 00:30:53.440
sauber machen und das ist eigentlich sehr schön.

00:30:53.940 --> 00:30:55.880
Ja, also gefällt mir auch sehr gut

00:30:55.880 --> 00:30:57.220
dieses Feature.

00:30:57.540 --> 00:30:59.260
Oh, und man kann in Exceptions auch noch irgendwie so

00:30:59.260 --> 00:31:01.640
Notes dranhängen, sodass man halt irgendwie noch ein bisschen

00:31:01.640 --> 00:31:03.600
Metainformationen mitgeben kann, das auch

00:31:03.600 --> 00:31:05.480
neu, wenn

00:31:05.480 --> 00:31:07.580
da halt irgendwie man halt noch ein bisschen

00:31:07.580 --> 00:31:09.560
Kontext hat, den man gerne da mit

00:31:09.560 --> 00:31:10.360
reintun würde.

00:31:11.720 --> 00:31:11.880
Ja,

00:31:12.720 --> 00:31:14.060
genau.

00:31:15.560 --> 00:31:15.860
Und

00:31:15.860 --> 00:31:18.640
ja,

00:31:18.820 --> 00:31:20.420
Genau, da fällt mir gerade noch

00:31:20.420 --> 00:31:22.480
zu ein, zu Async, da gibt's

00:31:22.480 --> 00:31:24.360
jetzt auch, also vielleicht kennen da viele

00:31:24.360 --> 00:31:26.260
auch dieses, also was man normalerweise verwendet ist,

00:31:26.500 --> 00:31:28.340
ja, irgendwie Gather, um halt

00:31:28.340 --> 00:31:30.200
viele Tasks irgendwie gleichzeitig

00:31:30.200 --> 00:31:32.360
zu awaiten und so. Da gibt's

00:31:32.360 --> 00:31:33.940
jetzt ein neues Ding, es gibt Task Groups,

00:31:34.380 --> 00:31:36.380
das ist quasi so ähnlich wie Nurseries

00:31:36.380 --> 00:31:37.680
in Trio

00:31:37.680 --> 00:31:40.240
und das ist auch die, das

00:31:40.240 --> 00:31:42.380
löst Gather und diverse andere

00:31:42.380 --> 00:31:44.020
Geschichten halt ab und Create Tasks und so

00:31:44.020 --> 00:31:46.260
und da macht man eigentlich, was man tut,

00:31:46.260 --> 00:31:48.240
ist, wenn man sagt AsyncWithTaskGroup

00:31:48.240 --> 00:31:49.620
STG und dann

00:31:49.620 --> 00:31:52.220
createt man halt Tasks und wenn der

00:31:52.220 --> 00:31:54.560
Async-Context-Manager

00:31:54.560 --> 00:31:55.620
durch ist, dann sind alle

00:31:55.620 --> 00:31:58.260
erfolgreich durchgelaufen. Also das sieht auch

00:31:58.260 --> 00:32:00.160
sehr elegant aus, also sehr schöne

00:32:00.160 --> 00:32:02.320
neue Art, wie man

00:32:02.320 --> 00:32:04.280
Sachen hinschreibt. Es spart gar nicht so viel Zahlen, es ist ein bisschen

00:32:04.280 --> 00:32:06.040
weniger als vorher, aber es sieht einfach irgendwie

00:32:06.040 --> 00:32:08.340
ja, sieht gut aus.

00:32:08.520 --> 00:32:09.840
Also das in Kombination mit den

00:32:09.840 --> 00:32:12.400
Exception-Groups, also Async mit 3.11

00:32:12.400 --> 00:32:13.880
ist eigentlich echt so auf dem Stand,

00:32:14.220 --> 00:32:16.340
dass jetzt funktionieren, es greifen so die ganzen Teile

00:32:16.340 --> 00:32:18.340
ineinander und jetzt ist es so richtig rund.

00:32:18.900 --> 00:32:20.060
So vorher haben wir halt... Jetzt kann man endlich

00:32:20.060 --> 00:32:22.080
Async benutzen. Ja, vorher konnte man es auch schon, aber es haben

00:32:22.080 --> 00:32:23.920
schon tatsächlich wesentliche Teile gefehlt irgendwie.

00:32:24.060 --> 00:32:25.300
Also da, ja.

00:32:27.300 --> 00:32:28.280
Ja, das ist auf jeden Fall

00:32:28.280 --> 00:32:28.980
alles sehr erfreulich.

00:32:30.260 --> 00:32:32.280
Genau. Also es ist

00:32:32.280 --> 00:32:34.420
alles besser geworden, würdest du sagen? Ja, ja, ja.

00:32:35.100 --> 00:32:36.060
Schon alles deutlich.

00:32:36.060 --> 00:32:36.620
Das ist doch schön geworden.

00:32:37.460 --> 00:32:39.700
Da müssen wir in der

00:32:39.700 --> 00:32:42.060
Typing-Episode mal drüber reden. Keine Ahnung.

00:32:42.520 --> 00:32:43.720
Variadic Generics

00:32:43.720 --> 00:32:46.180
Zeugs, das da will ich jetzt einfach mal reden.

00:32:46.340 --> 00:32:47.720
Das ist alles viel zu kompliziert.

00:32:48.560 --> 00:32:50.420
Du kriegst eine eigene Episode, glaube ich.

00:32:50.420 --> 00:32:52.060
Ja, haben wir schon geplant.

00:32:53.300 --> 00:32:54.300
Dann, ja,

00:32:54.400 --> 00:32:55.960
Typing ist und einige Sachen mit dazugekommen.

00:32:56.080 --> 00:32:58.080
Eine coole Geschichte beim Typing, die dazugekommen ist,

00:32:58.080 --> 00:32:58.820
ist Self.

00:33:00.640 --> 00:33:02.100
Ja, also wenn man zum Beispiel

00:33:02.100 --> 00:33:03.880
bisher sowas machen wollte,

00:33:04.040 --> 00:33:05.260
habt ihr das mal gemacht, so

00:33:05.260 --> 00:33:08.320
Typ-Annotationen und wenn diese Sachen

00:33:08.320 --> 00:33:09.700
die Self zurückgeben, was gibt man dann zurück?

00:33:10.780 --> 00:33:11.800
Ja, die Klasse selber.

00:33:12.220 --> 00:33:14.500
Ja, das funktioniert leider nicht so. Was ist, wenn du

00:33:14.500 --> 00:33:15.920
erbst, du bist in...

00:33:15.920 --> 00:33:16.840
Es ist halt keine Instanz der Klasse.

00:33:17.500 --> 00:33:19.360
Stell dir vor, du hast halt eine Basisklasse

00:33:19.360 --> 00:33:21.040
und eine Klasse, die von der Basisklasse erbt.

00:33:21.680 --> 00:33:23.560
Und in der Superklasse

00:33:23.560 --> 00:33:25.420
hast du eine Funktion,

00:33:26.020 --> 00:33:26.700
die irgendwie

00:33:26.700 --> 00:33:28.740
sozusagen irgendwas zurückgibt.

00:33:29.320 --> 00:33:30.680
Und das ist dann der Teil des Falls.

00:33:31.020 --> 00:33:32.100
In der Superklasse sagst du jetzt,

00:33:32.980 --> 00:33:34.940
annotierst du mit, gib zurück, eine Superklasse.

00:33:35.060 --> 00:33:36.880
Also eigentlich müsste es dann eine Union machen, ja.

00:33:36.880 --> 00:33:38.520
Aber das ist ja, wenn das in der Instanz

00:33:38.520 --> 00:33:40.740
aufgenommen wird, ist das ja falsch, weil es wird eine andere Klasse

00:33:40.740 --> 00:33:42.880
zurückgegeben. Das geht halt

00:33:42.880 --> 00:33:43.960
nicht. Das ist genau das Problem.

00:33:44.400 --> 00:33:46.320
Deswegen kannst du nicht einfach die Klasse da

00:33:46.320 --> 00:33:47.120
mit der Klasse amüsieren.

00:33:47.940 --> 00:33:50.520
Es wird doch höchstens eine erbende Klasse

00:33:50.520 --> 00:33:51.260
zurückgegeben, oder?

00:33:52.700 --> 00:33:53.980
Ja, eine von denen, die geerbt haben.

00:33:54.120 --> 00:33:55.920
Also ich meine, in gewisser Weise ist das natürlich schon richtig.

00:33:56.260 --> 00:33:57.860
Also du kannst die unterste Base-Klasse zurückgeben,

00:33:57.940 --> 00:33:59.460
das ist ja nicht falsch, weil das ist eine Art von der Instanz.

00:34:00.460 --> 00:34:02.460
Das ist nicht komplett, aber es ist auch nicht falsch.

00:34:02.460 --> 00:34:03.560
Aber wenn du jetzt irgendwo dann

00:34:03.560 --> 00:34:06.620
quasi drauf überprüfst, ob tatsächlich die Unterklasse

00:34:06.620 --> 00:34:08.240
übergeben wird irgendwo

00:34:08.240 --> 00:34:09.740
und nicht die Basisklasse,

00:34:10.060 --> 00:34:11.980
dann geht das halt schief, obwohl es eigentlich richtig ist.

00:34:12.380 --> 00:34:13.280
Dann hast du ein volles Positiv.

00:34:14.280 --> 00:34:15.460
Und jetzt kannst du halt sagen

00:34:15.460 --> 00:34:17.180
from typing import self und dann

00:34:17.180 --> 00:34:18.880
kriegst du das Self-Tool. Warte mal, ich muss das kurz

00:34:18.880 --> 00:34:21.580
als Argument aufschreiben, warum ich Typen nicht mag.

00:34:21.700 --> 00:34:23.060
Warte, das brauche ich für die Typen.

00:34:25.320 --> 00:34:27.460
Ja, ja, also ich habe auch mal so,

00:34:27.560 --> 00:34:29.300
also es ist, also so diese

00:34:29.300 --> 00:34:31.500
Details sind alle schon sehr haarig, muss ich sagen.

00:34:32.180 --> 00:34:33.420
Also es geht

00:34:33.420 --> 00:34:35.340
auch nicht gut anders. Also man sagt, es gab das

00:34:35.340 --> 00:34:37.160
ja vorher nicht, ja, und wenn man sich da Gedanken

00:34:37.160 --> 00:34:39.320
gemacht hat, okay, wie annotiere ich das denn jetzt richtig?

00:34:39.920 --> 00:34:41.380
Sondern es geht nicht richtig

00:34:41.380 --> 00:34:42.780
gut. Man kann das nicht gut annotieren.

00:34:42.920 --> 00:34:44.780
Du darfst einfach nicht selbst zurückgeben.

00:34:45.840 --> 00:34:47.480
Und dann sind wir wieder in dieser Situation

00:34:47.480 --> 00:34:49.520
mit den Schätzungen, dass man jetzt nur noch Sachen macht,

00:34:49.620 --> 00:34:51.500
die man per Typ erreichen kann

00:34:51.500 --> 00:34:53.780
und das ist eine Einschränkung, die nicht gut ist.

00:34:54.340 --> 00:34:55.500
Genau, genau. Aber jetzt

00:34:55.500 --> 00:34:57.640
gibt es zumindest eine Möglichkeit, die nicht ganz so schrecklich ist

00:34:57.640 --> 00:34:59.680
und die einfach das Richtige

00:34:59.680 --> 00:35:01.360
tut quasi. Das ist schon mal gut.

00:35:02.400 --> 00:35:03.880
Alle Ideen verstehen die jetzt dann auch.

00:35:04.600 --> 00:35:04.740
Ja.

00:35:06.980 --> 00:35:07.800
Was haben wir noch?

00:35:10.860 --> 00:35:11.260
Genau.

00:35:12.920 --> 00:35:15.640
Jochen, du stöbert gerade so eine lange Liste.

00:35:16.000 --> 00:35:17.860
Ja, ich habe das im Grunde nur...

00:35:17.880 --> 00:35:20.000
aus dem What's-New-Ding rauskopiert,

00:35:20.140 --> 00:35:20.800
das alles.

00:35:23.000 --> 00:35:23.640
Oh, es gibt eine,

00:35:23.840 --> 00:35:25.180
das war schon mal in Kleinigkeiten,

00:35:25.180 --> 00:35:27.260
oder es gibt

00:35:27.260 --> 00:35:29.080
einen Change-Dir-Context-Manager,

00:35:29.180 --> 00:35:31.200
das ist etwas, was ich, ich weiß nicht, wie viel Mal

00:35:31.200 --> 00:35:32.160
ich mir das geschrieben habe.

00:35:33.120 --> 00:35:35.280
Und wahrscheinlich hat das jeder andere auch schon mal getan.

00:35:35.560 --> 00:35:36.700
So, irgendwie so, ich möchte ein Verzeichnis...

00:35:36.700 --> 00:35:38.400
Ein Change-Dir-Context-Manager, sehr schön.

00:35:38.560 --> 00:35:40.900
Aber ich muss unbedingt wieder zurück, weil

00:35:40.900 --> 00:35:42.860
das ist nicht gut, wenn ich da irgendwo

00:35:42.860 --> 00:35:44.760
in einem, ich muss jetzt irgendwo tief im

00:35:44.760 --> 00:35:47.560
Dateisystem-Baum irgendwas machen, aber ich...

00:35:47.560 --> 00:35:49.480
Du musst ja nicht bleiben und da irgendwas ablegen, was da nicht

00:35:49.480 --> 00:35:51.600
hingehört, aus Versehen oder so. Das Problem ist,

00:35:51.840 --> 00:35:53.520
dass du dann noch, also wenn du halt da noch mehr

00:35:53.520 --> 00:35:55.520
Sachen machst und du bist im falschen Verzeichnis, dann hat

00:35:55.520 --> 00:35:57.200
das halt unter Umständen blöde Konsequenzen, deswegen,

00:35:57.600 --> 00:35:59.520
also ich habe das schon ganz oft gemacht, dass ich dann irgendwie

00:35:59.520 --> 00:36:01.560
mir einen Context-Manager dafür geschrieben habe, wo ich dann sicher sein

00:36:01.560 --> 00:36:03.480
kann, okay, wenn der durch ist, dann bin ich wieder

00:36:03.480 --> 00:36:03.740
zurück.

00:36:05.420 --> 00:36:07.480
Und das Ding ist jetzt in der Context-Lib

00:36:07.480 --> 00:36:08.280
ist jetzt so ein Teil drin.

00:36:09.000 --> 00:36:11.360
Ist ein bisschen doof, kann man nicht gut verwenden, weil ansonsten

00:36:11.360 --> 00:36:13.120
dependet man auf 3.11, aber ja.

00:36:13.240 --> 00:36:15.140
Wirst changed hier und dann

00:36:15.140 --> 00:36:17.340
ein Pass-Objekt oder was? Genau, man sagt

00:36:17.340 --> 00:36:19.680
with ChangeDirPath

00:36:19.680 --> 00:36:21.240
und wenn man da zurückkommt, ist man

00:36:21.240 --> 00:36:21.640
wieder zurück.

00:36:23.120 --> 00:36:24.960
Wusstet ihr, dass Bash auch so ein Feature hat?

00:36:25.080 --> 00:36:26.440
Da kann man Verzeichnisse pushen.

00:36:26.900 --> 00:36:28.400
Man kann so ein Stack machen mit Verzeichnissen.

00:36:29.040 --> 00:36:31.120
Und wenn du fertig bist, kannst du Pop machen und bist dann wieder da,

00:36:31.280 --> 00:36:32.020
wo du vorher Push gemacht hast.

00:36:33.380 --> 00:36:33.960
Ne, wusste ich nicht.

00:36:35.080 --> 00:36:38.880
Du musst allerdings selber darauf aufpassen, dass du wieder

00:36:38.880 --> 00:36:40.200
an die richtige Stelle zurückpopst.

00:36:40.200 --> 00:36:41.940
Bei jedem CD kannst du danach poppen.

00:36:44.060 --> 00:36:46.300
Ja, genau. Du kannst halt einen Stack bauen.

00:36:46.600 --> 00:36:48.120
Und du könntest prinzipiell ja auch Sub-Shells

00:36:48.120 --> 00:36:50.360
machen, wo du dann ein Verzeichnis wechselst,

00:36:50.420 --> 00:36:51.520
aber das wäre ja zu viel drauf.

00:36:51.820 --> 00:36:53.960
Wo ihr gerade schon über Battery, kennt ihr Sockside?

00:36:55.160 --> 00:36:55.840
Nee, was ist das?

00:36:56.200 --> 00:36:58.060
Das ist so ein schönes, kleines

00:36:58.060 --> 00:36:59.960
Tool, das für mich CD ersetzt hat.

00:37:01.000 --> 00:37:02.260
Ach, doch, doch, doch, das verwende ich

00:37:02.260 --> 00:37:03.100
auch. Ja, ja, ja.

00:37:03.520 --> 00:37:04.720
Vielen Dank, war ein guter Tipp.

00:37:05.200 --> 00:37:07.060
Ja, weil man kann nämlich einfach Abbreviation schreiben,

00:37:07.160 --> 00:37:08.820
statt Directly nehmen. Dann merkt sich quasi die

00:37:08.820 --> 00:37:10.100
Verzeichnisse, in denen man schon war.

00:37:10.800 --> 00:37:13.000
Und dann nimmt er den nächsten Match davon.

00:37:13.500 --> 00:37:14.480
Und dann kann man quasi mit

00:37:14.480 --> 00:37:16.700
zwei Zeichen oder sowas

00:37:16.700 --> 00:37:18.500
in das Directory seiner Wahl springen. Und das funktioniert

00:37:18.500 --> 00:37:19.000
ziemlich gut.

00:37:20.360 --> 00:37:22.400
Ja, ist tatsächlich sehr nett.

00:37:23.840 --> 00:37:24.440
Hört sich

00:37:24.440 --> 00:37:25.320
gefährlich an.

00:37:27.120 --> 00:37:28.500
Du musst halt die Fahrer nicht mehr ausschreiben.

00:37:28.660 --> 00:37:30.480
Tipp V, Auto-Completion

00:37:30.480 --> 00:37:30.840
for the win.

00:37:32.980 --> 00:37:34.440
Dieses Manifest unterschreibe ich

00:37:34.440 --> 00:37:35.580
zwar prinzipiell, aber

00:37:35.580 --> 00:37:38.520
ich möchte schon gerne wissen, was der Computer macht.

00:37:38.620 --> 00:37:40.580
Ein Hoch auf den Co-Pilot, das ist hervorragend.

00:37:40.880 --> 00:37:42.400
Weißt du ganz genau, was passiert, wenn du

00:37:42.400 --> 00:37:43.140
Tab drückst?

00:37:44.480 --> 00:37:47.640
natürlich, ganz exakt weiß ich das

00:37:47.640 --> 00:37:50.040
vor allem in sowas wie PyCharm

00:37:50.040 --> 00:37:51.660
das ist ja ein relativ kleines

00:37:51.660 --> 00:37:53.680
übersichtliches Java-Programm

00:37:53.680 --> 00:37:55.920
da weiß man immer genau, was passiert vorher

00:37:55.920 --> 00:37:57.840
aber Control-R zum Beispiel ist ja dann

00:37:57.840 --> 00:37:59.520
auch so, weil ich weiß nicht, kann man das auch konfigurieren

00:37:59.520 --> 00:38:00.500
bei PyCharm oder sowas?

00:38:01.060 --> 00:38:03.920
dass man eine Liste von den Vorschlägen bekommt, die jetzt gerade

00:38:03.920 --> 00:38:05.720
die tollste Alternative

00:38:05.720 --> 00:38:07.500
gewesen wären, wie das

00:38:07.500 --> 00:38:09.240
Fisch-Shell macht das ja zum Beispiel

00:38:09.240 --> 00:38:11.080
Blatt hat ja auch eine History

00:38:11.080 --> 00:38:11.940
das ist ein Bash-Feature

00:38:11.940 --> 00:38:14.900
History Search

00:38:14.900 --> 00:38:17.720
das gibt es jetzt bei Fish

00:38:17.720 --> 00:38:19.060
den nächsten Match

00:38:19.060 --> 00:38:22.120
was ist das

00:38:22.120 --> 00:38:23.800
FZF

00:38:23.800 --> 00:38:26.360
genau das ist halt das was

00:38:26.360 --> 00:38:29.180
genau weil die

00:38:29.180 --> 00:38:30.580
in der Bash-Historie suchen

00:38:30.580 --> 00:38:32.760
FZF ist natürlich deutlich

00:38:32.760 --> 00:38:33.900
schicker

00:38:33.900 --> 00:38:36.000
das kann man dann

00:38:36.000 --> 00:38:38.000
ja

00:38:38.000 --> 00:38:40.420
kennt ihr alle schon

00:38:40.420 --> 00:38:41.880
Kleine Exkurse.

00:38:42.600 --> 00:38:42.940
Ja, ja.

00:38:44.140 --> 00:38:45.640
Genau. Was haben wir denn noch?

00:38:45.800 --> 00:38:47.320
Wenn wir schon mal in den Exkursen sind, also ich wollte noch mal

00:38:47.320 --> 00:38:49.200
sagen, ich bin natürlich einer von den Netten eigentlich.

00:38:49.600 --> 00:38:51.060
Muss halt dann auch nett sein. Aber das ist halt

00:38:51.060 --> 00:38:53.100
Capitalism, Baby. Wir hatten

00:38:53.100 --> 00:38:55.300
über Projektsachen gesprochen. Das ist halt der Punkt.

00:38:56.520 --> 00:38:57.500
Also wenn mich jemand als Sklave

00:38:57.500 --> 00:38:59.280
ausbeuten will, das kann man natürlich nicht zulassen.

00:39:00.180 --> 00:39:01.080
Es sei denn, man ist ja in einer

00:39:01.080 --> 00:39:03.240
holokratischen Gemeinschaft, dann ist das alles was anderes.

00:39:04.240 --> 00:39:05.340
Der Dominik hat gerade auch noch

00:39:05.340 --> 00:39:07.000
was von seinem Stack zurückgeholt.

00:39:10.420 --> 00:39:12.640
Es gibt tatsächlich Dinge,

00:39:12.780 --> 00:39:15.420
die noch gefährlicher sind als Z und Zwei-Wut-Stamm.

00:39:16.680 --> 00:39:16.880
Aber

00:39:16.880 --> 00:39:18.760
ja, ich fürchte,

00:39:18.920 --> 00:39:19.260
dass es halt

00:39:19.260 --> 00:39:23.080
Kapitalismus, das ist schwer.

00:39:23.620 --> 00:39:24.720
Ja, es ist ein Problem.

00:39:27.320 --> 00:39:27.760
Kapitalismus ist schwer.

00:39:27.760 --> 00:39:29.780
Man kann sich da schon die Zähne draus beißen, muss man sagen.

00:39:30.140 --> 00:39:32.000
Nein, nein, das Problem ist halt,

00:39:32.420 --> 00:39:33.620
was heißt Zähne draus beißen?

00:39:34.000 --> 00:39:35.700
Das Problem ist halt, dass man gegamed wird

00:39:35.700 --> 00:39:36.580
vom Geld.

00:39:37.640 --> 00:39:39.380
Ja, das ist das Problem dabei.

00:39:39.980 --> 00:39:41.600
Und dann muss man überlegen, ob man game will.

00:39:42.100 --> 00:39:43.720
Also in Spieltheorie kann man ja überlegen,

00:39:44.300 --> 00:39:46.380
ob das fair verhandelt, dann verhandelbare

00:39:46.380 --> 00:39:47.920
Lösungen gibt oder nicht.

00:39:48.460 --> 00:39:49.920
Und ich sag mal so, man kann nicht

00:39:49.920 --> 00:39:52.080
ja vielleicht glück sein, wenn man Partizipationen sich erkaufen kann

00:39:52.080 --> 00:39:53.020
oder das möchte irgendwie.

00:39:53.960 --> 00:39:55.720
Oder wenn man höhere Ziele dafür aufgibt.

00:39:57.620 --> 00:39:58.180
Für den

00:39:58.180 --> 00:39:58.820
schnöden Mammon.

00:39:59.400 --> 00:40:02.160
Ja, man muss

00:40:02.160 --> 00:40:03.720
aufpassen. Also es ist

00:40:03.720 --> 00:40:05.460
schwierig und ja, man ist

00:40:05.460 --> 00:40:08.340
leichter

00:40:08.340 --> 00:40:09.360
Fehler zu machen, das ist schon richtig.

00:40:09.980 --> 00:40:10.760
Äh, genau.

00:40:11.400 --> 00:40:12.400
Nein, ich finde, es ist eine Pflicht,

00:40:12.600 --> 00:40:14.500
da Widerstand zu leisten, darauf wollte ich hinaus.

00:40:14.600 --> 00:40:16.500
Ach so, ja, ja.

00:40:17.180 --> 00:40:18.800
Na egal, wir wollten keine politischen

00:40:18.800 --> 00:40:20.640
Sachen. Das ist aber schon so ein

00:40:20.640 --> 00:40:22.600
moralisches Dilemma, was man hat manchmal, oder?

00:40:22.700 --> 00:40:24.260
Ja. Also ich meine,

00:40:24.480 --> 00:40:26.380
ich war noch nicht in der Situation, dass ich ein Feature

00:40:26.380 --> 00:40:27.160
bauen musste,

00:40:28.800 --> 00:40:29.200
wo ich

00:40:29.200 --> 00:40:32.680
moralisch nicht dazu in der Lage

00:40:32.680 --> 00:40:34.280
gewesen wäre, um es mal so zu formulieren.

00:40:34.980 --> 00:40:36.720
Ähm, aber es gibt

00:40:36.720 --> 00:40:38.360
ja schon so Situationen, man hört das ja immer wieder.

00:40:38.520 --> 00:40:39.980
jetzt gerade mit den

00:40:39.980 --> 00:40:42.420
zahlreichen Personen,

00:40:42.820 --> 00:40:44.600
deren NDAs bei Twitter ausgelaufen

00:40:44.600 --> 00:40:44.900
ist,

00:40:45.580 --> 00:40:48.580
die jetzt

00:40:48.580 --> 00:40:50.540
über Features sprechen können, die sie hätten

00:40:50.540 --> 00:40:52.640
bauen sollen. Da gibt es

00:40:52.640 --> 00:40:53.580
schon interessante Geschichten.

00:40:55.380 --> 00:40:56.360
Okay, das habe ich

00:40:56.360 --> 00:40:58.600
noch gar nicht gehört. Viel drüber diskutiert,

00:40:58.720 --> 00:40:58.900
aber

00:40:58.900 --> 00:41:02.080
ja, das ist so irgendein, also

00:41:02.080 --> 00:41:03.120
einer von diesen Twitter,

00:41:04.160 --> 00:41:06.220
einer von den wenigen entlassenen

00:41:06.220 --> 00:41:07.460
Twitter-Software-Engineers,

00:41:08.240 --> 00:41:10.200
hat geschrieben auf Twitter,

00:41:12.120 --> 00:41:12.420
dass

00:41:12.420 --> 00:41:14.760
das vor einigen

00:41:14.760 --> 00:41:16.520
Jahren, 2016 war das, als Twitter

00:41:16.520 --> 00:41:17.820
ganz arg Geld gebraucht hat,

00:41:18.680 --> 00:41:20.500
wo übrigens Google und Facebook beide

00:41:20.500 --> 00:41:22.560
nicht Twitter kaufen wollten, wo die sich jetzt glaube ich

00:41:22.560 --> 00:41:22.860
ärgern,

00:41:24.860 --> 00:41:26.460
dass sie da mit so

00:41:26.460 --> 00:41:28.600
Telcos zusammengearbeitet

00:41:28.600 --> 00:41:30.340
haben und die dann halt verlangt haben, dass

00:41:30.340 --> 00:41:32.680
Twitter quasi alle 10 Sekunden

00:41:32.680 --> 00:41:34.440
die aktuelle Position des Benutzers

00:41:34.440 --> 00:41:36.440
übermittelt, damit die schauen, ob die in die Läden

00:41:36.440 --> 00:41:37.420
der Konkurrenz reingehen.

00:41:38.240 --> 00:41:55.160
Und wo dann halt auch der, der Engineer gesagt hat, nee, das brauche ich nicht, mache ich nicht. Und da halt in dem Team der Einzige war, der das hatte machen können, mussten die halt sagen, okay, gut, dann gibt es das halt nicht. Er ist dann wohl auch entlassen worden, aber er hat es nicht gemacht.

00:41:55.160 --> 00:42:14.680
Und da gehört ja schon ein gewisser Mut dazu, gerade, also ich meine, viele Leute haben ja Angst davor, entlassen zu werden, aber 2016 als Software-Ingenieur hat man sich da, glaube ich, keine Sorgen machen müssen. Aber es gehört natürlich trotzdem Mut dazu, zu sagen, ich mache das nicht, auch wenn ihr mich entlasst.

00:42:14.680 --> 00:42:15.980
Ja, und die meisten Leute haben auch ihren Preis.

00:42:16.000 --> 00:42:16.920
Beziehungsweise dann erst recht.

00:42:16.940 --> 00:42:19.100
Nur mehr zahlen und dann geht es dann trotzdem oder so.

00:42:20.060 --> 00:42:20.960
Ja, auch das.

00:42:21.520 --> 00:42:22.640
Das wurde ja wohl auch gefragt,

00:42:22.720 --> 00:42:24.380
wie viel Geld müssen wir dir denn geben, dass du es machst?

00:42:26.320 --> 00:42:28.860
Und dann hat er gesagt, so viel Geld habt ihr nicht.

00:42:31.020 --> 00:42:31.300
Tja.

00:42:33.120 --> 00:42:35.040
Ja, ja, also ich meine, nö, aber ich merke das ja.

00:42:35.840 --> 00:42:38.320
Ich denke, es gibt viele Leute, die wahrscheinlich irgendwie,

00:42:38.440 --> 00:42:42.420
ich glaube, Waffenentwicklung oder so wäre für viele schon ein Tabu

00:42:42.420 --> 00:42:43.520
oder auch eben

00:42:43.520 --> 00:42:45.840
für irgendwelche staatlichen Akteure

00:42:45.840 --> 00:42:48.380
irgendwelche Schnüffelgeschichten bauen oder so.

00:42:48.400 --> 00:42:50.220
Aber da gibt es ja auch wieder Gut und Böse, deswegen sagt

00:42:50.220 --> 00:42:52.340
der Crusader das. Ja, irgendjemand macht's,

00:42:52.460 --> 00:42:54.240
aber ich denke... Ja, irgendjemand hat den

00:42:54.240 --> 00:42:56.440
Staatstrojaner geschrieben, irgendjemand hat...

00:42:56.440 --> 00:42:58.500
Nein, aber die Frage ist halt, wenn du angegriffen wirst,

00:42:58.660 --> 00:43:00.440
dann ist es relativ opportunistischer

00:43:00.440 --> 00:43:01.720
wieder sowas zu tun.

00:43:02.740 --> 00:43:04.480
Hm? Wenn du dich bedroht

00:43:04.480 --> 00:43:06.300
fühlst, wenn du dich...

00:43:06.300 --> 00:43:08.080
Ja, ja. Du bist...

00:43:08.080 --> 00:43:09.880
Deine China und das große Amerika

00:43:09.880 --> 00:43:12.440
versucht, sich zu unterdrücken, der muss sich wehren

00:43:12.440 --> 00:43:13.660
und so weiter.

00:43:13.980 --> 00:43:16.800
Das hat doch nichts mit Privacy-Sachen

00:43:16.800 --> 00:43:18.440
zu tun, die du dir verkaufen kannst.

00:43:18.500 --> 00:43:20.020
Doch, viel.

00:43:20.300 --> 00:43:22.680
Naja, das hat nichts mit

00:43:22.680 --> 00:43:23.460
Datenschutz zu tun.

00:43:23.860 --> 00:43:26.240
Also die ganzen kommerziellen Zwecke, die dann

00:43:26.240 --> 00:43:28.320
dazu führen, dass sowas passiert und

00:43:28.320 --> 00:43:30.380
diese ganzen Incentives

00:43:30.380 --> 00:43:32.300
überhaupt, das zu machen, also auch für Geld und so,

00:43:32.940 --> 00:43:34.280
also die Moral hinten anzustellen

00:43:34.280 --> 00:43:36.340
oder das halt tatsächlich aktiv zu

00:43:36.340 --> 00:43:38.480
machen, um für so einen Staat oder so was

00:43:38.480 --> 00:43:41.120
in Aktion treten zu können und dem mehr Kontrolle

00:43:41.120 --> 00:43:43.120
zu verschaffen, das, glaube ich, hängt sehr stark damit

00:43:43.120 --> 00:43:43.760
ab, zusammen.

00:43:46.300 --> 00:43:47.120
Vielleicht habe ich es auch noch nicht

00:43:47.120 --> 00:43:49.120
so richtig verstanden. Also ich weiß es nicht, ganz ehrlich zu

00:43:49.120 --> 00:43:51.060
sein. Ich weiß es nicht, um ganz ehrlich zu sein,

00:43:51.100 --> 00:43:52.840
wenn man mir Geld anbieten würde für ein

00:43:52.840 --> 00:43:54.380
unethisches Feature.

00:43:54.940 --> 00:43:56.940
Ich kann ja schon mal die Kontonummer sagen,

00:43:57.080 --> 00:43:58.700
aber ich weiß es nicht. Du könntest was mit deiner Fahne tun.

00:43:59.120 --> 00:44:00.080
Die Flagge hochhalten.

00:44:00.660 --> 00:44:03.040
Ich glaube von mir, dass ich

00:44:03.040 --> 00:44:05.000
ein guter Mensch bin, aber wenn es dann

00:44:05.000 --> 00:44:06.920
tatsächlich in der Situation ist, kann ich

00:44:06.920 --> 00:44:08.960
nicht garantieren, dass es tatsächlich so ist, weil

00:44:08.960 --> 00:44:10.200
ich habe halt

00:44:10.200 --> 00:44:12.820
Familie und ein Häusle, was abbezahlt werden

00:44:12.820 --> 00:44:13.440
muss und

00:44:13.440 --> 00:44:16.800
irgendwie will man sich ja

00:44:16.800 --> 00:44:18.680
da schon schützen, ja, und man ist ja auch bequem,

00:44:18.760 --> 00:44:20.360
ganz ehrlich. Ja, das ist Komfort auch nicht.

00:44:20.680 --> 00:44:22.780
Jeden Tagsprojekt. Dafür habe ich

00:44:22.780 --> 00:44:24.600
an der Uni immer Schelte bekommen,

00:44:24.920 --> 00:44:26.020
wenn solche Leute waren.

00:44:27.020 --> 00:44:28.660
Ja, ja, genau, das ist ja völlig klar.

00:44:28.900 --> 00:44:30.720
Die Kampfbereitschaft, die fehlende, der Mut

00:44:30.720 --> 00:44:32.740
zur Veränderung, fehlende revolutionäre

00:44:32.740 --> 00:44:33.880
Anteile und so, ja, ja.

00:44:35.100 --> 00:44:35.660
Verstehe schon.

00:44:36.920 --> 00:44:38.940
Ja, und bevor die das Geld jemand anderem geben,

00:44:39.020 --> 00:44:40.900
der das nicht gescheit macht, dann mach es doch lieber ich.

00:44:45.440 --> 00:44:46.080
Kapitalism, Baby.

00:44:46.960 --> 00:44:48.280
Ja, es ist schwierig.

00:44:49.500 --> 00:44:50.820
Andererseits kenne ich halt auch so Leute,

00:44:50.980 --> 00:44:52.360
die von sich selber sagen, ja gut,

00:44:52.440 --> 00:44:55.000
die sind halt Software-Prostituierte,

00:44:55.120 --> 00:44:57.280
die machen halt, was der Kunde verlangt.

00:44:57.840 --> 00:44:59.400
Solange der das bezahlt, machen die das halt.

00:45:00.240 --> 00:45:01.480
Ich würde sagen, das ist der Default.

00:45:03.880 --> 00:45:04.080
Ja.

00:45:06.920 --> 00:45:09.660
Ist jetzt auch, würde ich sagen,

00:45:09.700 --> 00:45:11.420
nicht so furchtbar verwerflich, ehrlich gesagt,

00:45:11.560 --> 00:45:13.560
weil ich meine, das ist ja das, was alle

00:45:13.560 --> 00:45:15.720
anderen eigentlich auch so machen, üblicherweise.

00:45:16.220 --> 00:45:17.780
Ja, aber gerade dann ist es doch verwerflich.

00:45:18.360 --> 00:45:18.500
Ja?

00:45:19.220 --> 00:45:21.120
Ja, vielleicht ist es dann besonders verwerflich.

00:45:21.140 --> 00:45:23.160
Gerade hier in Deutschland muss man doch aus der Geschichte,

00:45:23.320 --> 00:45:25.120
muss man schon aus der Geschichte sagen, ja, wenn die

00:45:25.120 --> 00:45:26.500
das machen, dann ist es okay.

00:45:26.500 --> 00:45:29.420
Besonders bei einem Beispiel voran in den Abgrund rennen.

00:45:30.020 --> 00:45:30.440
Und möglichst.

00:45:31.060 --> 00:45:33.560
Ja, es ist schwierig.

00:45:33.740 --> 00:45:34.280
Ich weiß es nicht.

00:45:35.600 --> 00:45:45.720
Aber eben, darüber reden bringt auch nichts, weil irgendwie eigentlich, das ist auch so etwas, da können wir den Bogen wieder zurück zu Twitter, dass man auf Twitter irgendwie auch sehr auf den Sack geht eigentlich.

00:45:46.280 --> 00:45:49.260
Das ist ja der Aufruf, jemand soll uns mal in diese Situation bringen.

00:45:49.380 --> 00:45:54.020
Bitte, immer nur dank von den Leuten, die die Böse nicht richtig auseinanderhalten können und nicht wissen, für wen es sich richtig bekämpfen lohnt.

00:45:54.020 --> 00:46:05.360
Aber das Problem ist halt, man kann nicht drüber reden, man kann da nur Sachen machen oder nicht machen, ja, und dann kann man, aber wenn so, ich meine, eigentlich ist das halt eine selbstwidersprüchliche Geschichte, wenn man sagt, ich bin einer von den Guten und mach das nicht.

00:46:05.600 --> 00:46:18.240
Weil damit, wenn ich das höre, dann höre ich eigentlich, du bist einer von den Bösen. Weil das öffentlich zu moralisieren ist halt eine Methode, um das zu gamen.

00:46:18.820 --> 00:46:21.100
Ja, aber es ist ja richtig.

00:46:23.540 --> 00:46:25.800
Ja, es wäre richtig, das zu tun.

00:46:26.140 --> 00:46:27.920
Wir sind die Guten, weil wir das öffentlich gamen.

00:46:29.040 --> 00:46:31.140
Das ist die Frage, ob das nicht noch Signaling ist.

00:46:31.400 --> 00:46:33.120
Genau, also insofern.

00:46:34.080 --> 00:46:35.760
Ich würde auch sagen, was entscheidend wäre, was

00:46:35.760 --> 00:46:37.640
hinterher wirklich gemacht wird und nicht, was

00:46:37.640 --> 00:46:39.380
erzählt wird, was jemand machen wollen würde und

00:46:39.380 --> 00:46:41.720
was andere machen sollen, sollten und so. Das finde ich auch

00:46:41.720 --> 00:46:43.700
immer so ein bisschen problematisch. Aber ja, egal. Jetzt werden wir

00:46:43.700 --> 00:46:45.920
wirklich sehr froh. Also, wie gesagt, ist der Aufruf,

00:46:46.160 --> 00:46:47.900
wenn mir jemand viel Geld für moralisch

00:46:47.900 --> 00:46:49.260
verwerfliche Dinge anbieten möchte,

00:46:49.880 --> 00:46:51.660
meine E-Mail-Adresse ist

00:46:51.660 --> 00:46:52.940
hier in den Shownotes.

00:46:56.600 --> 00:46:57.600
Ich weiß dann zwei,

00:46:57.680 --> 00:46:59.720
ich wüsste zwei andere, denen man das dann auch anbieten

00:46:59.720 --> 00:47:00.160
kann.

00:47:03.040 --> 00:47:03.780
Abzüglich irgendwie.

00:47:03.780 --> 00:47:05.040
die höchsten Provisionen, aber...

00:47:05.040 --> 00:47:09.680
Genau, aber diese ganze Twitter-Geschichte

00:47:09.680 --> 00:47:10.920
ist natürlich auch nochmal interessant.

00:47:11.180 --> 00:47:11.680
Also das ist auch...

00:47:11.680 --> 00:47:14.820
An der Stelle, um nochmal auf die letzte vorgedrückt zu kommen,

00:47:14.900 --> 00:47:16.760
kurz so eine Coin-Adresse.

00:47:17.940 --> 00:47:20.180
Ja, also da ist auch wieder was geplatzt.

00:47:20.200 --> 00:47:21.700
Kann man noch? Lohnen sich Coin-Adressen noch?

00:47:21.720 --> 00:47:23.560
Das würde auch unter News noch fallen, ne?

00:47:23.700 --> 00:47:25.360
FTX irgendwie gerade wieder...

00:47:25.360 --> 00:47:26.800
Ja, FTX und Binance waren nämlich der Bumm.

00:47:27.000 --> 00:47:28.820
Also ich hatte mir letztes Mal schon überlegt,

00:47:28.820 --> 00:47:30.580
aber vielleicht muss ich das jetzt nochmal irgendwie...

00:47:30.580 --> 00:47:31.460
Muss ich da nochmal...

00:47:31.460 --> 00:47:32.940
Wie kann man eigentlich den Kram shorten?

00:47:33.780 --> 00:47:35.100
Ach, naja.

00:47:35.180 --> 00:47:37.440
Das ist schwierig. Das geht nur, wenn jemand

00:47:37.440 --> 00:47:39.440
die Unternehmen, die da investiert sind,

00:47:39.560 --> 00:47:41.220
locken will. Du musst halt

00:47:41.220 --> 00:47:42.780
wissen, wie viel Asset-Anteil

00:47:42.780 --> 00:47:45.520
solche Investitionen an welchen Kapitalgesellschaften

00:47:45.520 --> 00:47:46.480
haben und musst die halt locken.

00:47:47.560 --> 00:47:48.580
Das Problem ist,

00:47:48.900 --> 00:47:51.460
the markets can stay irrational longer

00:47:51.460 --> 00:47:52.600
than you can stay solvent.

00:47:53.600 --> 00:47:55.180
Das ist ein Problem, ja.

00:47:55.700 --> 00:47:57.460
Can. Ja, und deshalb

00:47:57.460 --> 00:47:59.100
ist es ein gefährliches Spiel.

00:48:00.900 --> 00:48:01.680
Ja, genau.

00:48:01.680 --> 00:48:03.000
Vielleicht auch erstmal wieder ignorieren.

00:48:03.780 --> 00:48:07.060
Und hinterher dann sagen, ich wusste es.

00:48:07.060 --> 00:48:08.380
Ich wusste es, aber ich habe nichts gemacht.

00:48:10.340 --> 00:48:11.200
So ist es halt immer.

00:48:11.360 --> 00:48:12.240
Ich habe es euch ja gesagt.

00:48:12.340 --> 00:48:14.060
Aber jetzt ist es zumindest irgendwie aufgenommen.

00:48:14.560 --> 00:48:15.480
Du machst nichts für Eiscreme.

00:48:15.660 --> 00:48:17.440
Ich kann mal drauf linken und sagen, ich habe es tatsächlich gesagt.

00:48:18.200 --> 00:48:23.720
Ja, also dieser Twitter-Auto-Unfall,

00:48:23.720 --> 00:48:24.680
da ist auch gerade...

00:48:24.680 --> 00:48:26.800
Aber in Zeitlupe ist es doch nicht.

00:48:26.980 --> 00:48:29.180
Nee, stimmt, das ist ein relativ schnelles...

00:48:29.180 --> 00:48:33.120
Wenn man versuchen würde, Twitter kaputt zu machen,

00:48:33.440 --> 00:48:35.300
wäre es schwierig, das schneller hinzukriegen.

00:48:36.040 --> 00:48:36.160
Ja.

00:48:37.000 --> 00:48:38.820
Ja, ist schon beeindruckend.

00:48:39.040 --> 00:48:40.940
Ja, erzähl mal mehr. Ich habe gar nichts davon mitbekommen, weil ich

00:48:40.940 --> 00:48:43.080
habe ja seit Twitter, seit, weiß ich nicht,

00:48:43.180 --> 00:48:45.100
2008,

00:48:45.260 --> 00:48:46.580
19, 20. Ach, das ist super unterhaltsam.

00:48:46.800 --> 00:48:49.260
Vor 15 Tagen

00:48:49.260 --> 00:48:51.200
hat er Twitter gekauft und ist hier auch von Twitter

00:48:51.200 --> 00:48:51.560
gekommen.

00:48:53.400 --> 00:48:55.320
Der Saint Elon, wie man ihn

00:48:55.320 --> 00:48:58.540
gemeinhin nennt. Ja, der Heilige.

00:48:58.540 --> 00:49:00.440
Der Saint Elon. Und seither

00:49:00.440 --> 00:49:02.540
gibt es nur gute Nachrichten aus diesem

00:49:02.540 --> 00:49:04.560
Lage. Also eine der

00:49:04.560 --> 00:49:06.400
ersten Sachen, die er gemacht hat, ist, dass er drei Viertel

00:49:06.400 --> 00:49:07.920
der Belegschaft gefeuert hat. So viele?

00:49:08.260 --> 00:49:10.100
Ich glaube, die Hälfte oder drei Viertel, ich weiß es nicht genau.

00:49:10.440 --> 00:49:11.820
Also alle Leute, die vorbeigelaufen sind,

00:49:12.120 --> 00:49:13.100
nach seiner Nase getroffen haben.

00:49:13.320 --> 00:49:16.660
Viele von den Sachen sind schwer zu verifizieren.

00:49:16.780 --> 00:49:18.180
Man weiß es nicht genau, aber man

00:49:18.180 --> 00:49:18.780
hört.

00:49:20.300 --> 00:49:22.100
Dann hat er angekündigt,

00:49:22.220 --> 00:49:24.180
das ist dieses blaue Checkmark. Es gibt ja

00:49:24.180 --> 00:49:25.660
für verifizierte Personen

00:49:25.660 --> 00:49:28.100
gibt es so ein blaues Häkchen. Das wurde

00:49:28.100 --> 00:49:29.420
mal eingeführt, weil

00:49:29.420 --> 00:49:32.040
Identitätsdiebstahl sehr einfach war,

00:49:32.500 --> 00:49:35.600
Man hat sich halt einfach Elon Musk genannt auf Twitter.

00:49:35.600 --> 00:49:37.580
Mit dem Bildchen rein und dann immer seriöse Post verfasst

00:49:37.580 --> 00:49:38.160
von der Zeit lang.

00:49:38.280 --> 00:49:40.420
Genau, so lange seriöse Post, bis du verrückt geworden bist.

00:49:41.060 --> 00:49:45.580
Und für Personen des öffentlichen Lebens

00:49:45.580 --> 00:49:47.860
wurde dann mal eben so eine Verification eingeführt,

00:49:48.000 --> 00:49:48.940
dass du eben sagen kannst,

00:49:49.060 --> 00:49:51.460
okay, du bist tatsächlich der wirkliche Donald.

00:49:53.780 --> 00:49:55.860
Und nur der hat so ein blaues Häkchen

00:49:55.860 --> 00:49:57.460
und das ist dann verifiziert.

00:49:57.600 --> 00:49:59.180
Oder du machst das mit Ausgangsverifikation

00:49:59.180 --> 00:50:00.620
oder kriegst du Post-Ident?

00:50:00.800 --> 00:50:02.400
Ich weiß nicht genau, wie die das

00:50:02.400 --> 00:50:04.620
gemacht haben. Das war wohl ein Team, das das gemacht hat,

00:50:04.840 --> 00:50:05.900
was kompliziert war.

00:50:06.060 --> 00:50:08.360
Es waren ja auch nicht so, also das war halt nur so,

00:50:08.520 --> 00:50:10.160
also haben Leute, Prübenzeiten,

00:50:10.280 --> 00:50:11.640
Journalisten und so gekriegt, aber

00:50:11.640 --> 00:50:13.960
und es wurde halt manuell gemacht.

00:50:14.460 --> 00:50:16.480
Oh, das heißt also neue Fame, der blaue Haken.

00:50:16.620 --> 00:50:17.600
Jaja. Und

00:50:17.600 --> 00:50:20.080
eine der ersten Geschäftsideen, die

00:50:20.080 --> 00:50:22.580
der heilige E mitgebracht

00:50:22.580 --> 00:50:24.420
hat, war, dass das jetzt 20 Dollar im Monat

00:50:24.420 --> 00:50:25.880
kostet, wenn du so ein blaues Häkchen hast.

00:50:27.060 --> 00:50:28.720
Und dann hat Stephen King zurückgeschrieben,

00:50:28.720 --> 00:50:30.680
was, ihr spinnt wohl, ihr solltet mich dafür

00:50:30.680 --> 00:50:32.740
bezahlen, dass ich so ein blaues Häkchen

00:50:32.740 --> 00:50:34.700
habe, nicht umgekehrt. Und dann hat Elon

00:50:34.700 --> 00:50:36.920
geantwortet, okay, vielleicht ist 20 Dollar

00:50:36.920 --> 00:50:38.400
zu viel. Wie wäre es mit 8 Dollar?

00:50:39.540 --> 00:50:40.780
Und das hat ja schon mal für sehr viel

00:50:40.780 --> 00:50:42.700
Unterhaltung gesorgt, weil die Leute

00:50:42.700 --> 00:50:44.600
kommentiert haben, also ich bin ja kein CEO von

00:50:44.600 --> 00:50:46.700
großen Firmen, aber ich dachte, wenn

00:50:46.700 --> 00:50:48.660
man 44 Milliarden Dollar für irgendwas

00:50:48.660 --> 00:50:50.860
ausgibt, überlegt man sich vorher ein Businessmodell.

00:50:53.440 --> 00:50:54.560
Jedenfalls kostet das jetzt

00:50:54.560 --> 00:50:56.580
8 Dollar im Monat und es ist jetzt

00:50:56.580 --> 00:50:58.620
auch frei verfügbar, weil der möchte das ja so vielen

00:50:58.620 --> 00:51:00.680
Leuten wie möglich verkaufen.

00:51:00.700 --> 00:51:02.920
Ich kann jetzt Twitter, meinen blauen Haar für 8 Dollar anmelden.

00:51:03.900 --> 00:51:05.160
Du kannst dich

00:51:05.160 --> 00:51:06.800
verifizieren lassen für 8 Dollar

00:51:06.800 --> 00:51:08.960
und das hat natürlich sofort dazu geführt,

00:51:09.520 --> 00:51:10.880
dass sich ganz viele Leute

00:51:10.880 --> 00:51:12.040
verifizieren lassen.

00:51:12.640 --> 00:51:13.660
Nee, als Elon Musk.

00:51:15.580 --> 00:51:16.860
Ganz viele Leute haben sich als

00:51:16.860 --> 00:51:18.680
Elon Musk verifiziert

00:51:18.680 --> 00:51:21.020
und dann natürlich auch sehr viele schöne Dinge getwittert.

00:51:21.680 --> 00:51:22.840
Kann man auf den

00:51:22.840 --> 00:51:24.080
üblichen Orten im Internet finden.

00:51:24.080 --> 00:51:26.700
Also das war tatsächlich sehr lustig, muss ich sagen.

00:51:26.920 --> 00:51:27.820
Also war gute Unterhaltung.

00:51:27.840 --> 00:51:31.900
Das hat dann aber wiederum dazu gehört.

00:51:31.920 --> 00:51:33.240
Du brauchst eine US-Adresse dafür.

00:51:33.480 --> 00:51:35.000
Also das brauchst du irgendwie VPN und so.

00:51:35.200 --> 00:51:36.000
Aber das geht.

00:51:36.140 --> 00:51:39.060
By the way, the next thing I do, Elon Musk post, I buy Python.

00:51:40.240 --> 00:51:43.200
Ja, aber Elon Musk hat sich ja schon lange Zeit

00:51:43.200 --> 00:51:45.280
als Verfechter des Free Speech hingestellt.

00:51:45.380 --> 00:51:47.400
Ja, dass er jetzt hier wieder alles frei macht.

00:51:47.860 --> 00:51:50.700
Und dann ging es aber sofort, als die Leute angefangen haben,

00:51:50.740 --> 00:51:53.320
sich als Elon Musk auszugeben, wurden die dann sofort suspendiert.

00:51:53.480 --> 00:51:54.940
Und zwar so hart wie immer.

00:51:54.940 --> 00:52:10.620
Dann hat er gesagt, irgendwie ist das wohl zu viel geworden. Ich weiß gar nicht wieso. Also wie gesagt, für mich sehr lustig. Für ihn offenbar. Er hat sich da so ein bisschen dran gestört. Und dann hat er gesagt, nee, das finde ich nicht okay. Also da muss jetzt immer Parodie drüber geschrieben werden, sonst geht das nicht.

00:52:10.620 --> 00:52:15.860
Und wenn das jemand nicht macht, dann verbannt er die Leute irgendwie, ja, hat er dann auch gemacht.

00:52:15.860 --> 00:52:25.860
Genau, aber heute war ja tatsächlich die nächste Welle, die nächste Welle in diesem Drama, weil Personenedetätsdiebstahl ist ja verboten, aber Firmen haben ja keine Persönlichkeitsrechte.

00:52:26.560 --> 00:52:35.920
Und deshalb gab es heute ganz viele Leute, die sich als Firmen verifiziert haben und dann Tweets mit diesen Firmen geschrieben haben.

00:52:35.920 --> 00:52:55.540
Zum Beispiel Tesla hat heute einen wundervollen Tweet veröffentlicht. A second Tesla has arrived at the World Trade Center. Also so ganz gute Sachen. Ein Eli Lilly hat einen Tweet geschrieben, der groß angekommen ist, dass Insulin ab jetzt kostenlos ist.

00:52:56.760 --> 00:53:04.860
Und sie haben sich dann sehr dafür entschuldigt, dass das zu Verwirrungen geführt hat und es kostet natürlich weiterhin 700 Dollar pro Monat.

00:53:10.180 --> 00:53:21.080
Und das ist so der aktuelle Stand und von diesen gefeuerten Leuten wurden wohl schon welche gefragt, ob sie wieder zurückkommen, um sich um dieses Thema zu kümmern.

00:53:22.560 --> 00:53:27.020
Also es ist sehr beeindruckend, wie schnell...

00:53:27.020 --> 00:53:30.060
Was kommt, was die Antwort Double or Nothing oder was ist dann die Antwort?

00:53:31.380 --> 00:53:33.640
Keine Ahnung, also ich würde da nicht zurückgehen, ganz ehrlich.

00:53:33.800 --> 00:53:34.700
Aber das ist auch so eine...

00:53:34.700 --> 00:53:36.840
Wenn mich jemand in die Situation bringt, Double or Nothing,

00:53:38.140 --> 00:53:40.340
möchte man, möge man gerne an mir ausprobieren.

00:53:41.820 --> 00:53:44.180
Es ist auf jeden Fall sehr beeindruckend,

00:53:44.780 --> 00:53:47.960
wie schnell auch so ein Image zerstört sein kann.

00:53:47.960 --> 00:54:00.040
Zwei Wochen, um halt das Image des Industriegottes zu zerstören. Anderer Kommentar war, wenn jemand CEO von zwei oder drei großen Firmen gleichzeitig sein kann, dann kann es kein besonders wichtiger Job sein.

00:54:00.380 --> 00:54:01.580
Ja, natürlich.

00:54:03.000 --> 00:54:05.120
Ja, es ist schon so.

00:54:05.740 --> 00:54:07.460
Also es ist wirklich beeindruckend,

00:54:07.560 --> 00:54:11.380
wie öffentlich dieser ganze Autounfall passiert

00:54:11.380 --> 00:54:13.740
und wie beeindruckend das ist.

00:54:13.820 --> 00:54:15.400
Und man kann auch nicht so richtig wegschauen,

00:54:15.400 --> 00:54:17.400
weil, ach, das ist so,

00:54:17.480 --> 00:54:20.440
überleben sie es oder überleben sie es nicht?

00:54:21.100 --> 00:54:23.660
Und kurz noch anfangen zu brennen

00:54:23.660 --> 00:54:24.980
und anfangen noch, wer,

00:54:25.680 --> 00:54:28.160
also es ist schon sehr beeindruckend, oder?

00:54:28.320 --> 00:54:29.280
Interessiert das sonst irgendjemand?

00:54:29.280 --> 00:54:30.960
Es ist ein großes Spektakel, muss man sagen.

00:54:31.140 --> 00:54:32.740
Es ist ein Spektakel, ja.

00:54:32.760 --> 00:54:33.700
Das ist es auf jeden Fall.

00:54:34.780 --> 00:54:36.020
Und ja, ich meine,

00:54:36.480 --> 00:54:37.720
ist alles nicht so einfach.

00:54:38.600 --> 00:54:39.960
Das moderne Boulevard.

00:54:41.240 --> 00:54:41.720
Ja, genau.

00:54:42.040 --> 00:54:43.280
Es hat natürlich auch sowas für...

00:54:43.280 --> 00:54:46.900
Der einfache Mann auf der Straße interessiert sich halt

00:54:46.900 --> 00:54:48.860
für sowas. Es ist klar, dass so eine kultivierte

00:54:48.860 --> 00:54:50.960
Begünstigkeit wie du da nicht...

00:54:52.680 --> 00:54:54.740
Aber Jochen und ich, wir sind halt einfacher

00:54:54.740 --> 00:54:56.980
gestrickt und deshalb gucken wir dazu.

00:54:59.280 --> 00:55:14.340
Ja, also natürlich ist es auch ein Weg, um Aufmerksamkeit zu kriegen, nur ich weiß nicht, also so super geplant und super, ist es noch drei Level, dreidimensionales Schach mehr, als ich irgendwie verstehen kann oder ist es gar nicht so schlau?

00:55:14.340 --> 00:55:28.760
Wenn Murdoch recht hatte, dann geht es nicht darum, was tatsächlich passiert ist, sondern nur darum, welche Emotionen wir hatten, als wir das hatten. Na doch, gibt schon, aber es gibt nur Emotionen, die wir hatten, als wir das wussten und da wir alle die ganze Zeit ums kaputt gelacht haben, erinnern wir uns an diese Freude, wenn wir noch in zehn Jahren an Twitter denken.

00:55:30.240 --> 00:55:31.440
Und das ist Branding und Marketing.

00:55:31.440 --> 00:55:32.640
Ja, aber das ist doch Schadenfreude.

00:55:33.360 --> 00:55:35.500
Das ist doch egal. Du hast dich gut gefühlt.

00:55:35.780 --> 00:55:36.720
Und das ist genau der Punkt.

00:55:36.880 --> 00:55:38.280
Das ist ein wunderbares Branding.

00:55:38.280 --> 00:55:40.160
Ich habe mich gut gefühlt, als es ihnen schlecht gegangen ist.

00:55:40.300 --> 00:55:44.060
Das ist eine fundamentale Emotion von Menschen.

00:55:44.840 --> 00:55:45.280
Schadenfreude.

00:55:47.380 --> 00:55:49.080
Ja, aber es passieren ja tatsächlich.

00:55:49.260 --> 00:55:51.780
Es gehen tatsächlich gerade sehr, sehr viele Leute weg.

00:55:53.280 --> 00:55:55.260
Schadenfreude gibt es übrigens auch im Englischen, oder?

00:55:55.260 --> 00:55:56.320
Das ist ein Englisch-Original.

00:55:56.400 --> 00:55:58.820
Das ist ein Englisches Wort. Schadenfreude.

00:55:59.280 --> 00:56:01.760
Und damit meinen die immer German Schadenfreude.

00:56:02.900 --> 00:56:04.560
Ja gut, wir können das halt am besten.

00:56:05.220 --> 00:56:06.480
Wir können auch so viele Dinge.

00:56:08.000 --> 00:56:09.880
Und Humor besonders wenig.

00:56:11.040 --> 00:56:14.220
Das ist halt das Einzige, was aus dem Keller ab und zu mal nach außen dringt,

00:56:14.340 --> 00:56:16.540
wenn man in dem Kontext...

00:56:16.540 --> 00:56:17.180
Schadenfreude.

00:56:18.280 --> 00:56:19.960
Wenn dir einer in den Keller gefallen ist.

00:56:23.240 --> 00:56:28.640
Ja, aber genau, also das ist der Autounfall.

00:56:28.640 --> 00:56:30.300
also der andere Teil ist halt lustig,

00:56:30.800 --> 00:56:32.260
dass jetzt Leute irgendwie

00:56:32.260 --> 00:56:34.180
nach Mastodon gehen, irgendwie ins

00:56:34.180 --> 00:56:34.920
Filibus und so.

00:56:36.480 --> 00:56:38.020
Hast du dich auch schon angemeldet, Jochen?

00:56:38.080 --> 00:56:40.360
Ja, aber ich bin nicht zufrieden

00:56:40.360 --> 00:56:41.940
mit meiner... Dann traust du dich nicht, deine Adresse zu sagen.

00:56:42.660 --> 00:56:44.020
Doch, aber ich hab das

00:56:44.020 --> 00:56:45.860
irgendwie, das ist irgendwie ein Ding, das ich mal früher,

00:56:46.020 --> 00:56:48.460
als Twitter auch mal wieder, als Twitter so eine

00:56:48.460 --> 00:56:50.280
Episode hatte, wo es ihnen nicht so gut ging,

00:56:50.400 --> 00:56:52.360
hab ich das dann halt auch mal so in Erwägung gezogen,

00:56:52.480 --> 00:56:54.040
vielleicht lieber nach das zu machen, da hab ich dann

00:56:54.040 --> 00:56:56.780
irgendeinen Server genommen.

00:56:56.780 --> 00:56:59.440
Und zwar irgendwie das Tröth-Café

00:56:59.440 --> 00:57:00.540
oder so, weil das halt offen war.

00:57:01.060 --> 00:57:01.420
Tröth.

00:57:03.280 --> 00:57:04.700
Retro-Tröth gibt's.

00:57:06.080 --> 00:57:06.480
Und

00:57:06.480 --> 00:57:09.260
genau, das habe ich jetzt auch und das ist irgendwie

00:57:09.260 --> 00:57:11.040
nichts, ich weiß nicht, ob ich da bleiben soll. Ich dachte, wenn man

00:57:11.040 --> 00:57:13.120
sich das selber husten kann, ach, dann will ich das vielleicht auch

00:57:13.120 --> 00:57:15.080
machen. Auf der anderen Seite, ich habe so

00:57:15.080 --> 00:57:17.060
viel zu tun und ich habe keine

00:57:17.060 --> 00:57:19.020
Zeit und will ich mir das auch

00:57:19.020 --> 00:57:20.740
ans Bein binden, aber naja.

00:57:21.560 --> 00:57:21.940
Es gibt

00:57:21.940 --> 00:57:24.560
instances.social,

00:57:24.820 --> 00:57:26.160
Link in den Shownotes.

00:57:26.780 --> 00:57:29.420
da kann man

00:57:29.420 --> 00:57:31.740
sich die Instanzen anschauen, was die

00:57:31.740 --> 00:57:33.740
so für Eigenschaften haben und auch, was die für Content

00:57:33.740 --> 00:57:35.520
erlauben und so weiter und

00:57:35.520 --> 00:57:37.700
so fort. Also da, so habe ich

00:57:37.700 --> 00:57:40.000
meine neue Heimat. Ja, da fängt es schon an, Content-Kontrolle.

00:57:40.640 --> 00:57:41.280
Ja, egal.

00:57:42.440 --> 00:57:43.640
Ja, natürlich, aber ich will halt kein

00:57:43.640 --> 00:57:44.860
Spam und keine Werbung haben.

00:57:44.860 --> 00:57:47.000
Ja, aber ich will meine eigenen Sachen da reinchecken.

00:57:47.000 --> 00:57:48.040
Die wollen kein Nudity haben und so.

00:57:48.460 --> 00:57:50.240
Dann mach deine eigene Instanz.

00:57:50.900 --> 00:57:53.540
Oder du filterst nach Instanzen, die das

00:57:53.540 --> 00:57:55.260
explizit erlauben. Dann gibt es halt keinen vernünftigen

00:57:55.260 --> 00:57:57.380
Client, irgendwie richtig fürs Telefon.

00:57:58.940 --> 00:57:59.340
Ja,

00:57:59.480 --> 00:58:01.340
aber das ist bei Twitter ja auch nicht so.

00:58:02.580 --> 00:58:03.280
Also bei Twitter

00:58:03.280 --> 00:58:04.020
gab es welche,

00:58:04.380 --> 00:58:06.480
bis Twitter sie alle abgerührt hat.

00:58:07.160 --> 00:58:09.400
Habe ich gehört davon, aber so alt bin ich

00:58:09.400 --> 00:58:09.720
gar nicht.

00:58:11.880 --> 00:58:13.440
Naja, also ich meine, das Problem

00:58:13.440 --> 00:58:15.220
an dem, die

00:58:15.220 --> 00:58:17.300
Speck ist wohl alle, also ich habe jetzt

00:58:17.300 --> 00:58:19.200
auch viel darüber gelesen, dass Leute das selber wussten und die meisten

00:58:19.200 --> 00:58:20.800
haben gesagt, super, ich wusste das selber.

00:58:21.800 --> 00:58:23.200
Stunden, Tage später kommt es dann so,

00:58:23.320 --> 00:58:25.240
boah, habt ihr mal die Speck angeguckt?

00:58:25.260 --> 00:58:27.540
doch nicht. Habt ihr mal geguckt, was man dafür

00:58:27.540 --> 00:58:29.460
alles braucht, um das zu treiben?

00:58:29.640 --> 00:58:31.540
Meine Güte, wow, wer hat sich das denn

00:58:31.540 --> 00:58:32.700
ausgedacht? Das ist ja schrecklich.

00:58:33.220 --> 00:58:34.980
Und ja, das ist alles schon sehr schrecklich.

00:58:35.400 --> 00:58:37.520
Und naja, also es gibt

00:58:37.520 --> 00:58:39.560
also eigentlich, ja, aber was soll man machen?

00:58:39.840 --> 00:58:41.280
Es ist halt das, was jetzt gerade irgendwie

00:58:41.280 --> 00:58:43.560
auf jeden Fall sehr viel

00:58:43.560 --> 00:58:45.080
Auftrieb hat und vielleicht kann man einfach mal mitmachen.

00:58:45.260 --> 00:58:47.480
Im Prinzip würde ich da sagen, es ist voll gut, wenn es

00:58:47.480 --> 00:58:49.240
irgendwie was gibt, was man selbst beruhigen kann,

00:58:49.320 --> 00:58:50.980
was frei ist und so.

00:58:51.380 --> 00:58:53.660
Indie-Web-Prinzip jetzt. Indie-Web, genau.

00:58:55.080 --> 00:58:56.680
Ja, wäre gut.

00:58:56.700 --> 00:58:58.740
Ja, seine eigenen Daten selber zu besitzen, ist schon gar nicht so schlecht.

00:58:58.860 --> 00:59:02.160
Aber wer stellt denn irgendwie selber so einen eigenen Kasten zu Hause hin,

00:59:02.200 --> 00:59:04.460
den man noch die ganze Zeit selber ownen kann, wo man nur selber reinmacht?

00:59:04.600 --> 00:59:05.460
Gibt es ja auch gehostet.

00:59:05.580 --> 00:59:06.640
Ja, kannst du auch hosten lassen.

00:59:08.280 --> 00:59:11.260
Ja, ich bin noch so ein bisschen unentschieden.

00:59:11.420 --> 00:59:13.620
Aber das Problem ist, so mittlerweile ist es nicht so sehr,

00:59:13.940 --> 00:59:17.240
oh, Twitter und Elon, die sind irgendwie fies und ich gehe da mal weg,

00:59:17.320 --> 00:59:19.080
weil ich will eigentlich nicht mit denen zusammen gesehen werden.

00:59:19.540 --> 00:59:24.620
Zu, hm, irgendwann geht er einfach, irgendwann werde ich den kleinen aufmachen

00:59:24.620 --> 00:59:25.920
und es wird einfach nicht mehr funktionieren.

00:59:26.920 --> 00:59:28.620
Das ist so eher so. Das heißt, ich muss

00:59:28.620 --> 00:59:30.640
Ja, schon. Ich kann nicht mal

00:59:30.640 --> 00:59:32.600
mehr, wahrscheinlich in absehbarer Zeit kann man

00:59:32.600 --> 00:59:34.620
nicht mal mehr nachgucken, wie man jetzt gefolgt hat,

00:59:34.720 --> 00:59:36.560
um das wieder zu tun, weil es ist einfach weg.

00:59:36.780 --> 00:59:38.640
Muss man jetzt exportieren. Muss man jetzt exportieren,

00:59:38.740 --> 00:59:40.680
genau, sonst geht das nicht mehr. Also es ist

00:59:40.680 --> 00:59:42.700
schon, also ja, komisch.

00:59:43.440 --> 00:59:44.440
Ja, Free Speech?

00:59:46.300 --> 00:59:46.660
Tja.

00:59:47.120 --> 00:59:48.760
Ach, Free Speech gibt es in den

00:59:48.760 --> 00:59:50.760
allermeisten Ländern auf der Welt nicht. In Deutschland auch nicht.

00:59:51.120 --> 00:59:52.880
Kannst du auch nicht sagen. Ist die Frage, ist das richtig?

00:59:53.040 --> 00:59:57.000
Selbst in den USA ist es halt sehr stark eingeschränkt.

00:59:57.740 --> 00:59:58.960
Was heißt, naja, sehr stark?

00:59:59.180 --> 01:00:00.860
Es kommt drauf an, auf welchem Standpunkt man steht.

01:00:02.760 --> 01:00:03.800
Es ist ja auch eingeschränkt.

01:00:04.300 --> 01:00:05.920
Was du denkst, wissen wir ja jetzt, Jochen.

01:00:06.080 --> 01:00:06.180
Bitte?

01:00:07.320 --> 01:00:08.920
Was du denkst, wissen wir ja jetzt, Jochen.

01:00:08.920 --> 01:00:10.940
Das ist gerade gesetzlich gesagt.

01:00:13.580 --> 01:00:19.020
Aber auch wenn man in den USA in einem Kino oder einem Theater sitzt,

01:00:19.080 --> 01:00:21.240
darf man auch nicht irgendwie aufstehen und Feuer rufen.

01:00:21.440 --> 01:00:22.120
Geht halt nicht.

01:00:22.560 --> 01:00:24.380
Also sag mal so, du kannst dich dann nicht auf Free Speech

01:00:24.380 --> 01:00:26.320
berufen, wenn du das machst, sondern dann wirst du halt auch

01:00:26.320 --> 01:00:26.720
verknackt.

01:00:27.880 --> 01:00:30.180
Ja, und Defamation gibt es auch

01:00:30.180 --> 01:00:31.580
und Slander gibt es auch und

01:00:31.580 --> 01:00:36.380
deshalb, es gibt überall

01:00:36.380 --> 01:00:37.020
Einschränkungen.

01:00:37.560 --> 01:00:40.000
Was ich halt cleverer finde, für so Online-Leute

01:00:40.000 --> 01:00:41.640
ist halt sowas wie

01:00:41.640 --> 01:00:43.960
Moderation, das wäre schon, also

01:00:43.960 --> 01:00:46.040
kuratierte Dinge, das finde ich ein sehr

01:00:46.040 --> 01:00:47.920
powerful Werkzeug. Das ist halt

01:00:47.920 --> 01:00:50.080
immer unfair, aber ist immer

01:00:50.080 --> 01:00:50.960
irgendwie richtiger.

01:00:52.300 --> 01:00:53.920
Das ist auch so was, was man gehört hat jetzt,

01:00:54.020 --> 01:00:57.640
dass eben das Hauptprodukt von Social Networks

01:00:57.640 --> 01:00:59.400
eigentlich Content Moderation ist.

01:00:59.600 --> 01:01:01.500
Dass du sozusagen den,

01:01:01.900 --> 01:01:05.060
du verkaufst nicht den Benutzern irgendeine Funktionalität,

01:01:05.180 --> 01:01:08.900
sondern du verkaufst den werbetreibenden Content Moderation.

01:01:09.020 --> 01:01:09.880
Community Management.

01:01:09.880 --> 01:01:11.760
Wenn die Content Moderation gut genug ist,

01:01:11.940 --> 01:01:17.260
sodass deine Brand Safety, dass der Genüge getan ist.

01:01:18.020 --> 01:01:19.020
Auch da gibt es so einen Exkurs.

01:01:19.200 --> 01:01:23.960
Da hat wohl der heilige E einen Call gemacht mit den Werbetreibenden

01:01:23.960 --> 01:01:27.060
und dann haben sie ihm halt da verschiedene Dinge erzählt.

01:01:27.460 --> 01:01:30.140
Angeblich haben mehrere große Blöcke

01:01:30.140 --> 01:01:32.740
während dieses Calls ihre Kampagnen ausgesetzt.

01:01:33.740 --> 01:01:35.860
Und einer hat halt auch öffentlich auf Twitter gesagt,

01:01:36.000 --> 01:01:38.800
hier, für uns ist Brand Safety das Wichtigste.

01:01:38.920 --> 01:01:41.260
Wir wollen nicht mit folgenden Dingen in Verbindung gebracht werden.

01:01:41.600 --> 01:01:42.240
Gezeigt, i.

01:01:43.420 --> 01:01:45.200
Genau, er hat ihn dann blockiert.

01:01:45.340 --> 01:01:47.300
Das war dann der nächste Tweet.

01:01:47.660 --> 01:01:49.620
du bist doch für freie Sprache und

01:01:49.620 --> 01:01:50.980
warum hast du mich denn dann blockiert?

01:01:52.120 --> 01:01:52.320
Tja.

01:01:53.700 --> 01:01:54.860
Und das

01:01:54.860 --> 01:01:57.520
ist schon sehr interessant, da mal

01:01:57.520 --> 01:01:59.520
so einen Einblick reinzukriegen, weil sich da

01:01:59.520 --> 01:02:01.480
halt jetzt die Lücken aufreißen und mal einmal

01:02:01.480 --> 01:02:03.220
hier in die Eingeweide gucken. Ja, und die Leute anfangen

01:02:03.220 --> 01:02:05.300
Klartext zu reden und sagen, was halt ihre Interessen sind.

01:02:05.400 --> 01:02:07.280
Und man sieht jetzt wirklich, wie das, also das ist halt das,

01:02:07.440 --> 01:02:09.080
das ist so wie so ein Teilchenbeschleuniger.

01:02:09.280 --> 01:02:11.560
Da nimmt man ja auch irgendwie so, da nehmen die Teilchen

01:02:11.560 --> 01:02:13.260
viel Fahrt auf und dann haupt man die aufeinander

01:02:13.260 --> 01:02:15.380
und dann fliegt der ganze Scheiß auseinander. Dann kann man gucken,

01:02:15.440 --> 01:02:17.520
was steckt da jetzt eigentlich so drin. Ja, was war da eigentlich

01:02:17.520 --> 01:02:19.480
drin. Und das geht jetzt, das sieht

01:02:19.480 --> 01:02:21.260
man jetzt sozusagen in sozial auch gerade

01:02:21.260 --> 01:02:23.340
und das ist total interessant, weil da stecken

01:02:23.340 --> 01:02:24.780
manchmal sehr unerwartete Sachen drin.

01:02:25.220 --> 01:02:26.940
Das ist wirklich sehr, sehr spannend.

01:02:27.220 --> 01:02:27.320
Ja.

01:02:29.260 --> 01:02:31.300
Ja. Aber

01:02:31.300 --> 01:02:33.460
in other news, Amazon ist

01:02:33.460 --> 01:02:35.360
die erste Firma der Welt, die jetzt nicht,

01:02:35.460 --> 01:02:36.960
hat jetzt nicht mit Social Networks zu tun,

01:02:37.420 --> 01:02:39.240
die ist die erste Firma der Welt, die

01:02:39.240 --> 01:02:41.420
über eine Billion an Marktwert

01:02:41.420 --> 01:02:42.460
verloren hat. Oh wow.

01:02:44.420 --> 01:02:45.420
Und das

01:02:45.420 --> 01:02:47.280
ist so, das kommt dann so im Hintergrund

01:02:47.280 --> 01:02:49.640
drüber, wo hier so das große Twitter-Spektakel

01:02:49.640 --> 01:02:51.120
hier im Vordergrund ist und im Hintergrund

01:02:51.120 --> 01:02:51.820
machen die halt

01:02:51.820 --> 01:02:55.280
1 Trillion Dollars, haben sie ihren Marktwert

01:02:55.280 --> 01:02:57.220
verloren und das ist schon...

01:02:57.220 --> 01:02:59.500
Das sind so Zahlen, die sind sehr schwer zu greifen.

01:03:00.560 --> 01:03:00.740
Ja.

01:03:01.220 --> 01:03:02.020
1.000 Milliarden.

01:03:03.540 --> 01:03:05.100
Ja, 1.000 Milliarden, aber was bedeutet

01:03:05.100 --> 01:03:05.660
1.000 Milliarden?

01:03:06.220 --> 01:03:08.000
1 Million Millionen.

01:03:08.860 --> 01:03:10.920
Wenn du überlegst, dass ein Haus

01:03:10.920 --> 01:03:13.060
eine halbe Million, wenn du überlegst, dass ein Haus

01:03:13.060 --> 01:03:15.260
eine Million kostet, dann sind es 2 Millionen Häuser.

01:03:15.620 --> 01:03:16.860
Da kannst du überlegen, dass eine ganze

01:03:16.860 --> 01:03:18.620
Großstadt. Ich finde, das ist eine gute

01:03:18.620 --> 01:03:20.640
Wahl, das zu visualisieren. Der beste Vergleich, den ich

01:03:20.640 --> 01:03:22.580
gehört habe, ist, wenn du zum Bau

01:03:22.580 --> 01:03:25.020
der Pyramiden anfängst, jeden Tag 500.000

01:03:25.020 --> 01:03:26.780
Dollar auszugeben, dann hast

01:03:26.780 --> 01:03:28.480
du jetzt noch nicht eine Billion ausgegeben.

01:03:29.380 --> 01:03:30.780
Tja. Ja. Also ich finde

01:03:30.780 --> 01:03:32.620
das mit der Großstadt gar nicht. Wenn du dir ausrechnest, wie teuer sind denn

01:03:32.620 --> 01:03:34.220
die Immobilien so in der Großstadt oder sowas?

01:03:35.460 --> 01:03:36.680
Und dann nimmst du einfach so eine

01:03:36.680 --> 01:03:38.160
Großstadt. Die ist da einfach komplett.

01:03:38.580 --> 01:03:40.700
Kannst du irgendwo hinschicken. Aber da sind keine zwei Millionen

01:03:40.700 --> 01:03:42.440
Häuser drin. Da kannst du dir Tokio kaufen davon.

01:03:43.300 --> 01:03:44.400
Ja, die haben ja unterschiedliche Größe.

01:03:44.500 --> 01:03:46.080
Das war jetzt natürlich eine Fehlannahme, dass die alle

01:03:46.080 --> 01:03:48.100
gleichverteilt eine halbe Million kosten, aber

01:03:48.100 --> 01:03:49.420
es ist ja schon ein größeres Gebäude und so deswegen.

01:03:49.580 --> 01:03:52.680
Ja, aber in so einem Haus wohnt ja mehr als

01:03:52.680 --> 01:03:54.040
eine Person, also du musst ja dann schon

01:03:54.040 --> 01:03:56.420
eine vergleichsweise

01:03:56.420 --> 01:03:58.420
große Stadt, also so eine große Stadt gibt es in Deutschland

01:03:58.420 --> 01:03:58.700
nicht.

01:04:00.080 --> 01:04:01.660
Doch, ich würde sagen, das unterschätzt du.

01:04:02.080 --> 01:04:03.280
Ich würde sagen, so groß ist die nicht.

01:04:03.600 --> 01:04:05.900
Also ich glaube, da kann man festhalten, dass es nicht so einfach ist,

01:04:05.900 --> 01:04:06.800
sich davon zu stellen.

01:04:08.120 --> 01:04:10.280
Ja, nehmen wir doch mal so Stuttgart oder Düsseldorf

01:04:10.280 --> 01:04:10.660
oder sowas.

01:04:11.720 --> 01:04:14.220
Stuttgart hat 600.000 Einwohner, da gibt es keine 2 Millionen

01:04:14.220 --> 01:04:14.960
Häuser in Stuttgart.

01:04:15.280 --> 01:04:17.300
Ja, aber der Wert, es geht um den Immobilienwert.

01:04:17.300 --> 01:04:18.320
Düsseldorf hat auch 600.000.

01:04:18.660 --> 01:04:19.740
Der Immobilienwert, eine Million.

01:04:19.740 --> 01:04:24.120
Ich glaube auch, dass die Zahl, wenn die Zahlen so groß werden,

01:04:24.240 --> 01:04:26.580
dann ist das unklar, was die an Wert überhaupt beschreiben ist.

01:04:26.720 --> 01:04:27.720
Den Wert gibt es ja.

01:04:28.060 --> 01:04:30.560
Also Amazon als Unternehmen existiert ja, das hat ja irgendwie einen Wert.

01:04:31.560 --> 01:04:32.940
Es waren imaginäre Dollar.

01:04:33.400 --> 01:04:34.760
Ja, das ist halt die Frage.

01:04:34.940 --> 01:04:39.280
Also da stehen ja auch Dollar dran, aber es ist trotzdem irgendwie sehr unklar,

01:04:39.380 --> 01:04:41.040
weil selbst kleine Veränderungen in der Zukunft

01:04:41.040 --> 01:04:43.540
ja riesige Auswirkungen haben können, gerade wenn der Marktwert so hoch ist.

01:04:44.160 --> 01:05:09.440
Das heißt, es ist halt irgendwie unklar, was das Geld da, auch wenn man das quantifizieren kann, was das überhaupt an Wert bezeichnet, weil, ja, also ich meine, bei anderen Großen ist das ja, bei Apple wäre das wahrscheinlich auch so, keine Ahnung, ja, was ist das eigentlich, Apple, die haben auch so einen Aktienwert, ja, was ist, wenn sie es irgendwie verkacken oder keine Ahnung, das jetzt nicht mehr funktioniert, kann, genau, ist sehr unklar, was das eigentlich ist.

01:05:09.440 --> 01:05:12.320
Also diese Aktienwerte sind doch hypothetische Werte, oder?

01:05:12.380 --> 01:05:15.220
Die sind doch der Wert, wenn du zum jetzigen Zeitpunkt alles verkaufst.

01:05:15.240 --> 01:05:16.940
Nein, das sind keine hypothetischen Werte, das sind Buchwerte.

01:05:16.940 --> 01:05:20.200
Nee, nee, das ist, wenn du zum jetzigen Zeitpunkt

01:05:20.200 --> 01:05:23.180
alle Aktien verkaufen könntest, dann hättest du so viel Geld.

01:05:23.220 --> 01:05:25.220
Nein, nein, das ist falsch, weil du sagst, das geht ja nicht.

01:05:25.400 --> 01:05:26.600
Das ist ja physikalisch unmöglich.

01:05:26.660 --> 01:05:28.440
Du sagst hätte, es gibt kein hätte.

01:05:29.020 --> 01:05:29.880
Der Wert ist null.

01:05:29.980 --> 01:05:30.400
Es gibt ein hätte.

01:05:30.600 --> 01:05:31.560
Nein, der Realwert ist null.

01:05:31.660 --> 01:05:32.180
Der Wert ist null.

01:05:33.180 --> 01:05:34.340
Du hast einen Buchwert, der da drin steht.

01:05:34.360 --> 01:05:35.080
Der reale Wert ist null.

01:05:35.520 --> 01:05:36.460
Genau, und das ist ein Buchwert.

01:05:36.940 --> 01:05:38.580
Du musst eine Transaktion machen,

01:05:39.020 --> 01:05:40.880
um was zu verkaufen. Dafür musst du einen Käufer finden.

01:05:41.520 --> 01:05:42.940
Du kannst gar nicht wahrscheinlich zu dem

01:05:42.940 --> 01:05:44.520
Preis alles, was du hast, verkaufen.

01:05:44.700 --> 01:05:46.640
Für 1.000 Milliarden kannst du nicht

01:05:46.640 --> 01:05:47.820
Aktien kaufen. Zumindest nicht alle jetzt.

01:05:48.400 --> 01:05:49.240
Genau, das geht nicht.

01:05:50.520 --> 01:05:52.560
Eben, das sage ich ja. Deshalb sind es ja hypothetische

01:05:52.560 --> 01:05:54.460
Werte. Wenn du

01:05:54.460 --> 01:05:56.820
jetzt gerade alle Aktien verkaufen

01:05:56.820 --> 01:05:58.780
könntest, dann hättest du folgenden

01:05:58.780 --> 01:06:00.820
Wert. Das ist die Hoffnung auf zukünftige

01:06:00.820 --> 01:06:02.520
Umsätze, also auf zukünftige

01:06:02.520 --> 01:06:04.080
Produktivität der

01:06:04.080 --> 01:06:06.800
Marken, des Values, der Businesses,

01:06:06.880 --> 01:06:08.440
wo auch immer die ihre Kohle rausziehen wollen.

01:06:08.980 --> 01:06:09.860
Das ist mir jetzt zu kompliziert.

01:06:10.480 --> 01:06:11.360
Ja, das ist gar nicht so kompliziert.

01:06:11.500 --> 01:06:12.660
Das ist viel, viel Fantasie.

01:06:15.240 --> 01:06:16.520
Ja, genau.

01:06:18.760 --> 01:06:21.300
Jetzt müsste man eigentlich bei Stable Diffusion mal eingeben,

01:06:21.420 --> 01:06:24.260
irgendwie so Twitter, Armageddon und so einen cleveren Satz.

01:06:24.360 --> 01:06:25.760
Mal gucken, was Stable Diffusion ausmacht.

01:06:25.760 --> 01:06:27.700
Da passieren bestimmt dann auch lustige Sachen.

01:06:28.060 --> 01:06:29.980
Wobei, ich meine, bei Stable Diffusion und so,

01:06:30.040 --> 01:06:32.600
man muss halt schon irgendwie, man muss lange warten und so

01:06:32.600 --> 01:06:35.180
und kreativ sein beim Aufschreiben von Prompts und so.

01:06:35.180 --> 01:06:35.520
Ich weiß nicht.

01:06:35.660 --> 01:06:35.840
Was?

01:06:36.640 --> 01:06:36.780
Ja.

01:06:36.880 --> 01:06:38.260
Nicht? Nein. Okay.

01:06:38.740 --> 01:06:40.600
Mach mal mage.space auf. Hast du mal dalle

01:06:40.600 --> 01:06:42.700
ausprobiert? Ach, dalle. Dalle hab ich auch ausprobiert.

01:06:43.060 --> 01:06:44.520
Mach mal mage.space auf.

01:06:44.940 --> 01:06:45.060
Na.

01:06:46.880 --> 01:06:48.860
Wie wird das geschrieben? Mage, wie der

01:06:48.860 --> 01:06:50.700
Magier. Und dann

01:06:50.700 --> 01:06:51.260
.space.

01:06:53.660 --> 01:06:54.940
Checking if the site connection

01:06:54.940 --> 01:06:56.060
is secure. Oh oh.

01:07:00.260 --> 01:07:01.060
Create anything.

01:07:02.900 --> 01:07:03.060
Ja,

01:07:03.240 --> 01:07:04.660
Jochen tippt gerade irgendeinen Satz zu Ihnen.

01:07:05.000 --> 01:07:06.600
Müssen wir ein bisschen warten. Ist okay.

01:07:06.880 --> 01:07:07.920
Ja, aber...

01:07:07.920 --> 01:07:09.700
Ja, ja, es ist

01:07:09.700 --> 01:07:12.320
kein CPS hinterher oder was?

01:07:12.480 --> 01:07:14.060
Also da ist keine dicke Grafikkarte hinterher.

01:07:14.060 --> 01:07:15.240
Das könnte man ja hinterhängen.

01:07:16.060 --> 01:07:18.020
Ja, aber gut, genau, diese Experience

01:07:18.020 --> 01:07:19.840
habe ich auf meinem Laptop auch und die ist

01:07:19.840 --> 01:07:21.800
halt... Geht so.

01:07:21.900 --> 01:07:22.460
Ja, okay.

01:07:23.700 --> 01:07:25.480
Und? Was hast du eingegeben?

01:07:27.040 --> 01:07:27.720
Ja, so...

01:07:27.720 --> 01:07:29.580
Was habt ihr denn eingegeben? Das Twitter-Amageddon, das

01:07:29.580 --> 01:07:30.460
von oben...

01:07:30.460 --> 01:07:33.900
Es kommt so ein Vogel und der hat, also dieser Bird,

01:07:34.580 --> 01:07:35.680
so ein Gelber, der hat

01:07:35.680 --> 01:07:38.100
irgendein Viech in der Hand und versucht das zu fangen.

01:07:38.220 --> 01:07:39.980
Und das ist so ein sehr artifizierter

01:07:39.980 --> 01:07:41.120
Comic. Das sieht cool aus.

01:07:41.480 --> 01:07:41.540
Ja.

01:07:43.080 --> 01:07:44.160
Also bei mir dauert es noch.

01:07:46.260 --> 01:07:47.760
Ja, also...

01:07:47.760 --> 01:07:49.120
Ich habe gerade alle Rechenleistungen aufgenommen.

01:07:49.520 --> 01:07:51.740
Deshalb kann ich jetzt...

01:07:51.740 --> 01:07:53.580
Ah ja, Elon Musk destroying Twitter

01:07:53.580 --> 01:07:54.280
with Gasoline.

01:07:56.920 --> 01:07:57.440
Siehste?

01:07:57.720 --> 01:07:59.720
Wenn man da gute Prompts schreiben kann,

01:07:59.720 --> 01:08:00.800
dann passen auch lustige Sachen.

01:08:01.340 --> 01:08:02.600
Aber ich weiß nicht.

01:08:04.200 --> 01:08:05.820
Also den Prompt kann ich nicht empfehlen.

01:08:08.420 --> 01:08:19.460
Ja, aber gut, also auf jeden Fall, da passieren lustige Sachen gerade und vielleicht gibt es ja, es gibt auch diverse Dinge in Python, die man benutzen kann, um dieses Activity-Pub oder wie das Protokoll heißt, da irgendwie zu sprechen.

01:08:20.240 --> 01:08:23.800
Naja, vielleicht hoste ich da ja doch nochmal was, mal schauen.

01:08:25.280 --> 01:08:27.040
Implementierst du erstmal deine eigenen Instanzen.

01:08:27.620 --> 01:08:29.140
Das habe ich schon hinterher.

01:08:29.140 --> 01:08:31.900
Du kannst doch dann eigentlich alle Nachrichten, die über dich gehen, mitlesen, oder nicht?

01:08:32.320 --> 01:08:34.040
Du kannst doch dann eigentlich alle Nachrichten, die über dich gehen, mitlesen.

01:08:34.060 --> 01:08:35.880
oder ist das im Protokoll verboten?

01:08:37.340 --> 01:08:38.180
Ja, genau, toll.

01:08:38.240 --> 01:08:40.200
Das kann dann sein, dass da eine RP gebannt wird,

01:08:40.620 --> 01:08:42.460
aber da gibt es ja Wege außenrum.

01:08:42.960 --> 01:08:44.060
Nee, aber das gibt es tatsächlich,

01:08:44.140 --> 01:08:46.040
da gibt es ja Vorschläge, der Simon Willison

01:08:46.040 --> 01:08:47.980
zum Beispiel, der ja auch sehr groß ist in der

01:08:47.980 --> 01:08:50.020
Python-Welt, hat gesagt, der ist jetzt

01:08:50.020 --> 01:08:52.020
auf Mastodon und ihm

01:08:52.020 --> 01:08:53.100
gefällt es total und

01:08:53.100 --> 01:08:55.940
er vermisst so ein bisschen seine Timeline, aber

01:08:55.940 --> 01:08:57.260
das kann er sich ja jetzt selber schreiben.

01:08:57.960 --> 01:09:00.040
Ja, das höre ich von vielen Leuten.

01:09:00.140 --> 01:09:01.700
Ich höre von vielen Leuten, die sagen so,

01:09:02.200 --> 01:09:20.300
Auch Simon Wilson hat zum Beispiel zweimal die gleichen Sachen, einmal auf Twitter, der hat auf Twitter irgendwie zehntausende Follower, keine Ahnung, auf Mastodon irgendwie ein Zehntel davon und hat dann zweimal das gleiche gepostet und hat gesagt, guck mal hier, Interaktionen auf Mastodon viel, viel mehr, viel interessantere Geschichten auf Twitter, war eher so lahm.

01:09:20.760 --> 01:09:25.340
Also klar, ist natürlich jetzt auch irgendwie wahrscheinlich, ist keine unabhängige…

01:09:25.340 --> 01:09:26.640
Ja gut, doch der Hype-Bias auch, ne?

01:09:26.660 --> 01:09:26.900
Natürlich.

01:09:26.980 --> 01:09:28.700
Wisst ihr, was der Eternal September ist?

01:09:29.220 --> 01:09:31.320
Genau. Und auf Mastodon sind die jetzt halt noch nicht.

01:09:31.420 --> 01:09:33.300
Das ist richtig. Also ich meine, ja, natürlich.

01:09:34.360 --> 01:09:35.360
Aber andere sagen das auch,

01:09:35.460 --> 01:09:37.340
sagen, momentan ist da echt eine gute Party,

01:09:37.520 --> 01:09:39.300
weil, ja, es sind eigentlich nur

01:09:39.300 --> 01:09:41.380
nette Leute und die ganzen

01:09:41.380 --> 01:09:42.560
Pupa haben es noch nicht gefunden.

01:09:44.620 --> 01:09:45.440
Mal schauen, wenn es

01:09:45.440 --> 01:09:47.220
im nächsten September ist,

01:09:47.280 --> 01:09:49.220
vielleicht dann rum. Dann hast du es ja auch da, Jochen.

01:09:49.320 --> 01:09:51.200
Ja, wenn ich da jetzt auch hingehe, dann ist es wahrscheinlich vorbei.

01:09:51.940 --> 01:09:52.260
Genau.

01:09:53.280 --> 01:09:54.580
Wir gehören immer zu denen.

01:09:55.000 --> 01:09:56.980
Aber schon interessant. Auch

01:09:56.980 --> 01:09:59.160
interessant, Simon Millison habe ich jetzt gesehen, als ich

01:09:59.160 --> 01:10:00.360
in dem Kontext auch

01:10:00.360 --> 01:10:03.140
sich mit der Authentifizierung

01:10:03.140 --> 01:10:05.140
beschäftigt und dann gibt es ein Paket von

01:10:05.140 --> 01:10:06.660
ihm namens Django

01:10:06.660 --> 01:10:08.180
Indie-Auth

01:10:08.180 --> 01:10:10.900
und da fühlte ich mich auch so,

01:10:10.940 --> 01:10:12.280
das habe ich irgendwann mal 2016 auf

01:10:12.280 --> 01:10:15.020
einer von diesen Vorveranstaltungen

01:10:15.020 --> 01:10:16.680
von der Beyond Tolerant

01:10:16.680 --> 01:10:19.020
saßen wir mal da bei ZipGate rum

01:10:19.020 --> 01:10:20.700
und so Indie-Web, voll gut,

01:10:20.980 --> 01:10:23.020
war so eine Indie-Web-Konferenz, habe ich das auch

01:10:23.020 --> 01:10:24.880
mal implementiert, Django Indie-Web ist

01:10:24.880 --> 01:10:26.780
ein Paket von mir, da habe ich auch schon mal Indie-Auth

01:10:26.780 --> 01:10:28.920
implementiert, jetzt hat es ja Heimwildensens auch noch mal

01:10:28.920 --> 01:10:30.600
implementiert, muss ich mal vergleichen.

01:10:30.900 --> 01:10:31.720
Jeder muss das mal machen.

01:10:32.600 --> 01:10:33.820
Offenbar muss das jeder mal machen, ja.

01:10:35.760 --> 01:10:37.440
Ja. Sechs Jahre später, Jochen,

01:10:37.480 --> 01:10:38.440
du bist ja in der Zeit voraus.

01:10:39.180 --> 01:10:40.840
Ja, weiß man nie so genau, oder?

01:10:41.180 --> 01:10:41.340
Ganz ehrlich.

01:10:42.340 --> 01:10:45.480
Ja, aufs falsche Pferd zum falschen Zeitpunkt

01:10:45.480 --> 01:10:46.460
gesetzt, wer weiß.

01:10:47.940 --> 01:10:48.120
Ja.

01:10:50.340 --> 01:10:51.620
Aber ja, das hatte so ein bisschen

01:10:51.620 --> 01:10:52.800
Comeback, aber das war gut.

01:10:53.400 --> 01:10:55.300
Das ist eigentlich eine gute Sache. Genau, wo waren wir stehen geblieben?

01:10:55.400 --> 01:10:56.300
Ich gucke gerade in die Liste.

01:10:57.440 --> 01:10:58.860
Waren noch interessante Dinge dabei?

01:11:00.200 --> 01:11:01.420
Ja, also vielleicht kann man

01:11:01.420 --> 01:11:03.220
noch ein bisschen was zu dem, also die ganzen

01:11:03.220 --> 01:11:04.880
Dinger, die ich jetzt hier noch habe, sind alles so eigentlich

01:11:04.880 --> 01:11:06.560
eher so kleinere Geschichten. Tommellip,

01:11:06.700 --> 01:11:08.320
weiß ich nicht.

01:11:09.720 --> 01:11:11.120
Ja, da war ich total überrascht.

01:11:11.400 --> 01:11:12.320
Ja? Warum?

01:11:12.940 --> 01:11:15.040
Welche ist es denn? Welche haben sie denn reingenommen?

01:11:15.180 --> 01:11:15.680
Oder eine neue?

01:11:16.760 --> 01:11:19.000
Ich glaube, sie haben tatsächlich das, was Tommellip,

01:11:19.200 --> 01:11:20.660
ich dachte, es gibt noch, ich weiß nicht,

01:11:21.040 --> 01:11:22.400
sie haben das Ding irgendwie reingenommen.

01:11:22.420 --> 01:11:23.080
Mindestens drei.

01:11:25.800 --> 01:11:26.160
Tommel?

01:11:26.840 --> 01:11:28.320
Einfach Tommel? Tommli?

01:11:30.520 --> 01:11:30.920
Tommellip.

01:11:30.920 --> 01:11:33.120
Ah, okay. Ja, ich glaube, es ist Tommellip.

01:11:34.240 --> 01:11:35.380
Ist in die Standard-Tab reingegangen.

01:11:35.400 --> 01:11:37.040
Aber es kann noch nicht schreiben.

01:11:37.560 --> 01:11:40.200
Apropos, es gibt auch so eine Riesen-

01:11:40.200 --> 01:11:41.680
PEP gerade zum Rausschmeißen

01:11:41.680 --> 01:11:42.540
von vielen Zeugs.

01:11:43.380 --> 01:11:44.520
Ja, das finde ich auch super.

01:11:45.800 --> 01:11:46.680
Wie heißt der noch?

01:11:47.560 --> 01:11:49.640
Die sind in der Dokumentation jetzt schon separat

01:11:49.640 --> 01:11:51.640
aufgeführt. Deprecated Packages oder

01:11:51.640 --> 01:11:51.980
sowas.

01:11:52.500 --> 01:11:53.880
Removing Dead Batteries.

01:11:53.880 --> 01:11:55.360
Ja, auch von

01:11:55.360 --> 01:11:57.060
Christian.

01:11:57.860 --> 01:11:58.800
Genau, Heimis.

01:11:59.280 --> 01:12:00.560
Der hat auch diese

01:12:00.560 --> 01:12:02.040
PyScript.

01:12:03.360 --> 01:12:05.260
nach WebAssembly, Kompilieren, Python

01:12:05.260 --> 01:12:06.120
gemacht hat, ja.

01:12:06.700 --> 01:12:09.140
Ich war da kürzlich sehr überrascht, weil

01:12:09.140 --> 01:12:11.160
persönlicher Bezug,

01:12:12.120 --> 01:12:13.340
ich verwende

01:12:13.340 --> 01:12:14.400
Tommel, ich finde Tommel gut.

01:12:15.180 --> 01:12:16.820
Und ich habe Sachen

01:12:16.820 --> 01:12:18.800
mit Tommel geladen und die dann gepickelt.

01:12:20.580 --> 01:12:21.240
Fragt nicht,

01:12:21.360 --> 01:12:21.480
warum.

01:12:24.100 --> 01:12:25.100
Und wenn man

01:12:25.100 --> 01:12:27.060
diese Standard-Tommel-Bibliothek, also nicht

01:12:27.060 --> 01:12:29.040
die jetzt in der Standard-Bibliothek ist, sondern die

01:12:29.040 --> 01:12:30.880
davor einfach, also wenn man pip-install-tommel

01:12:30.880 --> 01:12:32.880
gemacht hat, dann kann man

01:12:32.880 --> 01:12:34.640
die Sachen, kann man bestimmte Dinge

01:12:34.640 --> 01:12:35.580
nicht entpickeln.

01:12:36.600 --> 01:12:38.760
Und zwar Timestamps mit

01:12:38.760 --> 01:12:39.340
Zeitzone.

01:12:40.140 --> 01:12:42.540
Da fehlt irgendwas.

01:12:43.360 --> 01:12:44.200
Ja gut, das

01:12:44.200 --> 01:12:47.100
mir macht es auch keinen Spaß

01:12:47.100 --> 01:12:48.820
Timestamps mit Zeitzone

01:12:48.820 --> 01:12:50.240
zu haben, aber die gibt es nun mal.

01:12:52.360 --> 01:12:53.100
Das kann

01:12:53.100 --> 01:12:54.280
Tom Lee kann das nämlich.

01:12:54.940 --> 01:12:56.700
Und dann bin ich auf Tom Lee umgestiegen.

01:12:57.920 --> 01:12:58.440
Und

01:12:58.440 --> 01:13:00.880
jetzt müsste ich dann da tatsächlich mal ausprobieren,

01:13:00.880 --> 01:13:02.800
ob man das in Python 3.11 einfach auch so

01:13:02.800 --> 01:13:04.100
machen kann und ob die korrekt pickeln.

01:13:04.580 --> 01:13:06.780
Ich weiß, das ist eine lustige Kombination, tummeln und pickeln,

01:13:06.980 --> 01:13:08.460
aber ich habe es halt gebraucht.

01:13:08.800 --> 01:13:09.660
Für einen Cash.

01:13:11.280 --> 01:13:12.220
Ich werde gerade pickeln.

01:13:14.560 --> 01:13:16.620
Wenn du pickeln lernst, dann kann ich doch einfach alles ausführen,

01:13:16.700 --> 01:13:17.160
was ich will, oder?

01:13:18.820 --> 01:13:19.640
Ja, schon.

01:13:20.460 --> 01:13:23.260
Und sind die ganzen Machine Learning-Modelle nicht alle pickelfeil?

01:13:23.300 --> 01:13:23.920
Nee, nee.

01:13:24.620 --> 01:13:26.800
Also ja, man benutzt da häufig

01:13:26.800 --> 01:13:28.380
auch Pickel, aber

01:13:28.380 --> 01:13:29.500
nee, nicht wirklich.

01:13:29.500 --> 01:13:33.680
Ja, viele machen das so.

01:13:34.180 --> 01:13:35.460
Das heißt, du kannst einfach so hochladen und sagen,

01:13:35.580 --> 01:13:37.980
guck mal hier, ich habe das neue Maschinenmodell für bla bla bla

01:13:37.980 --> 01:13:39.360
und alle Leute führen deine File out.

01:13:40.360 --> 01:13:41.760
Ja, also ich meine, du kannst auch...

01:13:41.760 --> 01:13:44.080
Und da sind wir wieder bei den guten und bei den schlechten Leuten.

01:13:44.320 --> 01:13:45.820
Ja, aber ich meine, wenn du

01:13:45.820 --> 01:13:47.960
sagst, ich habe hier ein tolles Maschinen-Loading-Modell,

01:13:48.060 --> 01:13:49.720
installiere mal hier dieses per PIP, dieses Paket,

01:13:49.800 --> 01:13:51.500
natürlich. Wenn du per PIP Sachen installierst,

01:13:51.620 --> 01:13:52.800
dann kannst du auch alles machen.

01:13:53.640 --> 01:13:55.980
Ja, bei PIP muss ich aber noch ausführen.

01:13:55.980 --> 01:13:57.360
Nö, wenn du es installierst...

01:13:57.360 --> 01:13:58.860
Pickel musst du auch ausführen, musst du auch laden.

01:13:58.960 --> 01:14:01.460
Beim Rebuilden kommt das schon durch?

01:14:01.860 --> 01:14:02.540
Wenn ich

01:14:02.540 --> 01:14:06.120
installiert werde

01:14:06.120 --> 01:14:07.080
als Paket, kann ich alles machen.

01:14:07.700 --> 01:14:07.840
Okay.

01:14:11.660 --> 01:14:12.460
Ja, ja.

01:14:12.600 --> 01:14:14.500
RIP-Install, RM-RF.

01:14:17.820 --> 01:14:19.000
Ja, also

01:14:19.000 --> 01:14:20.760
genau.

01:14:22.760 --> 01:14:23.800
Ah, genau.

01:14:24.300 --> 01:14:24.600
Was

01:14:24.600 --> 01:14:26.560
was an schnellerem

01:14:26.560 --> 01:14:28.820
Python irgendwie, was da so ein paar

01:14:28.820 --> 01:14:30.740
Sachen sind, die passiert sind, ist vielleicht auch

01:14:30.740 --> 01:14:32.480
also Exceptions hatten vorher so ein bisschen

01:14:32.480 --> 01:14:33.640
Overhead irgendwie

01:14:33.640 --> 01:14:36.820
dadurch, dass sie zum Beispiel

01:14:36.820 --> 01:14:38.720
das halt Speicher

01:14:38.720 --> 01:14:40.080
alloziert werden musste

01:14:40.080 --> 01:14:42.480
den man braucht, wenn man jetzt

01:14:42.480 --> 01:14:45.100
eine Exception schmeißt

01:14:45.100 --> 01:14:46.140
das muss man halt vorher machen

01:14:46.140 --> 01:14:48.820
und das war

01:14:48.820 --> 01:14:50.720
vorher auf dem Heap, das heißt man hat irgendwie mehr oder

01:14:50.720 --> 01:14:52.140
weniger Malog aufgerufen, keine Ahnung

01:14:52.140 --> 01:14:54.540
und das hat es halt langsam gemacht.

01:14:54.680 --> 01:14:56.380
Das heißt, du hast halt dann immer, wenn du

01:14:56.380 --> 01:14:58.300
irgendwie try-accept gesagt hast, hast du damit

01:14:58.300 --> 01:15:00.260
den Code, der da drin steht, ein bisschen langsamer gemacht.

01:15:01.380 --> 01:15:02.300
Und das ist jetzt weg,

01:15:02.420 --> 01:15:04.020
weil jetzt wird halt irgendwie ein statisches Ding

01:15:04.020 --> 01:15:06.300
alloziert und das wird halt immer benutzt und dann

01:15:06.300 --> 01:15:07.720
da kümmert sich jetzt Python selber drum.

01:15:08.540 --> 01:15:10.180
Das heißt, ist jetzt der Overhead von

01:15:10.180 --> 01:15:12.120
try-accept ist nur noch, also es heißt irgendwie

01:15:12.120 --> 01:15:14.460
zero-cost-exceptions

01:15:14.460 --> 01:15:16.540
oder so, oder zero-cost-try-accept,

01:15:16.680 --> 01:15:18.220
aber das ist es nicht wirklich. Es kostet irgendwie

01:15:18.220 --> 01:15:20.140
ein Prozent Overhead immer noch, aber es ist halt viel

01:15:20.140 --> 01:15:20.700
weniger als vorher.

01:15:22.140 --> 01:15:23.000
Dann sind so Dinge

01:15:23.000 --> 01:15:25.040
passiert. Funktionen

01:15:25.040 --> 01:15:26.200
aufrufen ist schneller geworden.

01:15:27.780 --> 01:15:28.460
Unter anderem,

01:15:28.720 --> 01:15:30.160
die brauchen auch weniger Speicher.

01:15:32.300 --> 01:15:33.080
Auch, weil

01:15:33.080 --> 01:15:34.760
da irgendwas mit den

01:15:34.760 --> 01:15:36.720
Frames irgendwie anders gemacht wird.

01:15:36.880 --> 01:15:38.060
Ich weiß nicht mehr genau, was sie gemacht haben.

01:15:39.100 --> 01:15:40.800
Und deswegen gehen auch Rekursionen jetzt

01:15:40.800 --> 01:15:42.700
ein bisschen tiefer. Man muss das noch von Hand umstellen.

01:15:42.700 --> 01:15:43.020
Aber

01:15:43.020 --> 01:15:46.980
dann

01:15:46.980 --> 01:15:48.880
genau

01:15:48.880 --> 01:15:51.120
Python-Objekte

01:15:51.120 --> 01:15:52.620
sind ein bisschen kleiner geworden, also

01:15:52.620 --> 01:15:54.840
bei Python 2 Zeiten

01:15:54.840 --> 01:15:56.300
waren es irgendwie so, wir hatten

01:15:56.300 --> 01:15:58.260
ein Objekt mit vier Attributen,

01:15:59.200 --> 01:16:00.500
wo man braucht irgendwie

01:16:00.500 --> 01:16:01.700
350 Byte oder so.

01:16:02.760 --> 01:16:04.820
In Python 3 waren es dann nur noch so

01:16:04.820 --> 01:16:06.780
irgendwie

01:16:06.780 --> 01:16:08.780
200 oder sowas, sondern irgendwie waren es

01:16:08.780 --> 01:16:10.540
bis bei 3.10 sind es

01:16:10.540 --> 01:16:12.780
120 Byte und jetzt sind es irgendwie

01:16:12.780 --> 01:16:15.180
95 oder sowas, keine Ahnung.

01:16:15.660 --> 01:16:16.820
Aber es ist schon deutlich weniger geworden.

01:16:16.820 --> 01:16:18.700
Also Objekte brauchen auch deutlich weniger

01:16:18.700 --> 01:16:20.720
Platz als früher. Ich meine, das kann man nicht gut mit

01:16:20.720 --> 01:16:22.460
C++ braucht nur 32, aber

01:16:22.460 --> 01:16:23.880
ja.

01:16:24.700 --> 01:16:25.860
Ja, aber auch, ich meine,

01:16:26.880 --> 01:16:29.080
immerhin. Aber immerhin, es geht da schon

01:16:29.080 --> 01:16:30.540
in eine sehr

01:16:30.540 --> 01:16:31.300
erstaunliche Richtung.

01:16:32.280 --> 01:16:34.840
Das Größte

01:16:34.840 --> 01:16:36.580
bei dem Wie wird Python schneller

01:16:36.580 --> 01:16:38.200
Feature ist halt, dass halt

01:16:38.200 --> 01:16:39.500
quasi

01:16:39.500 --> 01:16:42.680
der Bytecode halt umgeschrieben wird.

01:16:43.100 --> 01:16:44.560
Wenn da ein paar Mal irgendwas gemacht

01:16:44.560 --> 01:16:45.440
wurde und

01:16:45.440 --> 01:16:48.620
man das jetzt durch irgendwas

01:16:48.620 --> 01:16:50.700
Einfacheres ersetzen kann, dann wird das halt ersetzt

01:16:50.700 --> 01:16:52.900
und dann wird halt die einfache Operation gemacht an der Stelle.

01:16:53.300 --> 01:16:54.440
Der merkt sich quasi, was er schon kennt

01:16:54.440 --> 01:16:56.500
und macht das dann einfach schnell durch, ohne dass er

01:16:56.500 --> 01:16:59.060
jedes Mal rumhüpfen muss, sondern kennt einfach direkt den...

01:16:59.060 --> 01:17:00.700
Ja, also da sind solche Dinge dran.

01:17:00.820 --> 01:17:02.580
Dick-Look-Ups zum Beispiel, wenn das halt

01:17:02.580 --> 01:17:04.340
häufiger passiert. Ganz wichtig,

01:17:04.640 --> 01:17:06.600
Globals, Locals, also früher hat man ja auch

01:17:06.600 --> 01:17:07.580
immer solche Sachen gemacht wie,

01:17:08.360 --> 01:17:11.100
wenn man

01:17:11.100 --> 01:17:12.780
in Schleifen oder in heißen,

01:17:12.960 --> 01:17:14.260
warmen Kot-Teilen

01:17:14.260 --> 01:17:15.760
irgendwie, wenn man, da habe ich,

01:17:16.120 --> 01:17:18.360
mache ich heute noch irgendwie, manchmal mache ich es so instinktiv,

01:17:18.620 --> 01:17:20.760
dass ich dann halt eine lokale Variable

01:17:20.760 --> 01:17:22.860
verwende, damit halt nicht immer

01:17:22.860 --> 01:17:24.580
quasi, also entweder

01:17:24.580 --> 01:17:26.880
ein Attribut-Log abgemacht werden muss bei einer Klasse oder

01:17:26.880 --> 01:17:28.960
es in Globals oder so nachgeschlagen

01:17:28.960 --> 01:17:30.880
werden muss, sondern dass man es halt im Lokal

01:17:30.880 --> 01:17:32.880
Locals direkt hat und dann sofort gefunden wird.

01:17:33.580 --> 01:17:34.660
Das ist jetzt alles egal,

01:17:34.840 --> 01:17:36.680
das ist alles jetzt immer gleich schnell,

01:17:36.820 --> 01:17:38.800
jedenfalls wenn es achtmal passiert ist danach, ist es dann immer

01:17:38.800 --> 01:17:40.960
gleich schnell und das ist halt auch eine ganz

01:17:40.960 --> 01:17:41.760
ordentliche Verbesserung.

01:17:43.580 --> 01:17:44.900
Kannst du nochmal kurz sagen, was du

01:17:44.900 --> 01:17:46.380
meinst mit heißen Stellen?

01:17:46.920 --> 01:17:49.320
Ja, also du hast halt irgendwie vierfach verschachtelte

01:17:49.320 --> 01:17:51.140
Vor-Loop, die Variable, du machst

01:17:51.140 --> 01:17:52.660
irgendwas plus irgendwas da drin oder so.

01:17:52.960 --> 01:17:55.080
Die Variable, mit der du das machst, die ist halt heiß.

01:17:55.800 --> 01:17:56.700
Die brennt die ganze Zeit.

01:17:56.720 --> 01:17:58.860
Ja, wenn du irgendwas Self-Punkt irgendwas sagst, war das früher

01:17:58.860 --> 01:17:59.460
nicht so gut.

01:18:00.680 --> 01:18:03.060
Es ist so ein Paradigma,

01:18:03.360 --> 01:18:05.080
dass man sagt, der meiste Code, den du

01:18:05.080 --> 01:18:07.260
schreibst, der wird nicht oft ausgeführt.

01:18:07.400 --> 01:18:09.000
Und dafür gibt es ganz wenige

01:18:09.000 --> 01:18:11.060
Stellen, die dafür ganz oft ausgeführt werden.

01:18:11.300 --> 01:18:13.240
Und wenn du Self-Punkt gemacht hast?

01:18:14.620 --> 01:18:15.060
Die Stellen, die

01:18:15.060 --> 01:18:16.940
oft ausgeführt werden, das sind halt die heißen Stellen.

01:18:17.120 --> 01:18:19.060
Und wenn du da Operationen machst, die teuer sind, dann sind

01:18:19.060 --> 01:18:21.260
die halt unverhältnismäßig viel teurer

01:18:21.260 --> 01:18:23.000
für die Gesamtlaufzeit des Programms, als wenn

01:18:23.000 --> 01:18:24.920
irgendwo in der Initialisierung was

01:18:24.920 --> 01:18:27.320
lagert. Weil die wird nur einmal ausgeführt.

01:18:27.580 --> 01:18:27.880
Ja, genau.

01:18:28.480 --> 01:18:30.520
Okay, weil Safety Call macht dann das ganze Objekt mal aus.

01:18:31.360 --> 01:18:33.100
Und wenn du halt in der Schleife, die eine Million

01:18:33.100 --> 01:18:35.140
mal ausgeführt wird, eine Nanosekunde

01:18:35.140 --> 01:18:37.100
mehr verbrauchst, dann ist das halt

01:18:37.100 --> 01:18:37.780
direkt messbar.

01:18:40.140 --> 01:18:40.960
Und deshalb

01:18:40.960 --> 01:18:43.160
versucht man eigentlich Optimierung.

01:18:43.240 --> 01:18:44.940
Das ist das, was man mit Profiling erreichen will.

01:18:45.060 --> 01:18:46.140
Wenn du anfängst zu optimieren,

01:18:46.240 --> 01:18:47.880
guckst du erst, wo du optimieren musst.

01:18:49.140 --> 01:18:50.880
Und deshalb, also es lohnt sich nicht,

01:18:50.980 --> 01:18:52.240
irgendwelche Routinen zu optimieren,

01:18:52.320 --> 01:18:54.280
die im Programmlauf nur zweimal ausgeführt werden,

01:18:54.360 --> 01:18:55.540
wenn du dafür irgendwo eine Schleife hast,

01:18:55.600 --> 01:18:58.620
die eine Milliarde Mal durchgewirbelt wird.

01:18:59.760 --> 01:18:59.900
Ja.

01:19:00.580 --> 01:19:02.080
Und deshalb hat der Jochen direkt

01:19:02.080 --> 01:19:04.260
Mikro-Optimierungen gemacht mit Locker.

01:19:04.260 --> 01:19:05.580
Ja, ist auch vielleicht nicht so schlau,

01:19:05.700 --> 01:19:06.320
so sollte man auch nicht,

01:19:06.340 --> 01:19:07.640
aber es gab durchaus Stellen,

01:19:07.700 --> 01:19:08.540
wo das dann viel gebracht hat.

01:19:09.900 --> 01:19:11.480
Wenn du das weißt, dass das was bringt,

01:19:11.480 --> 01:19:13.200
dann ist das doch legitim.

01:19:13.400 --> 01:19:15.140
Kannst du nochmal erklären, was du da gemacht hast?

01:19:15.760 --> 01:19:17.300
Ja, solche Dinge wie eben

01:19:17.300 --> 01:19:19.100
ein Attribut, das in einer Klasse dranhängt,

01:19:19.200 --> 01:19:21.240
halt einen lokalen Namen zu geben.

01:19:21.620 --> 01:19:23.420
Einfach zu sagen... Also vor dem Ausführen

01:19:23.420 --> 01:19:25.000
hast du das? Lokal-Name gleich

01:19:25.000 --> 01:19:27.520
Self-Punkt, irgendein Attribut, was man dann halt ganz oft braucht.

01:19:27.660 --> 01:19:29.020
Und das da gehst du dann erst rein

01:19:29.020 --> 01:19:30.920
und rechnest daran rum? Ja.

01:19:31.520 --> 01:19:32.940
Genau. Weil dann der Instanz sonst nichts verändert

01:19:32.940 --> 01:19:34.040
und am Ende schreibst du es wieder weg.

01:19:34.920 --> 01:19:36.960
Ja, oder braucht man es dann auch nicht mehr.

01:19:37.920 --> 01:19:38.280
Ja.

01:19:38.860 --> 01:19:40.900
Ja, oder auch Methoden rausholen, dass du halt

01:19:40.900 --> 01:19:43.140
nicht Self-Punkt-Compute machst,

01:19:43.260 --> 01:19:44.740
sondern dass du halt sagst, compute gleich

01:19:44.740 --> 01:19:47.040
self.compute und dann kannst du hundertmal

01:19:47.040 --> 01:19:49.140
compute ausführen und musst nicht jedes Mal

01:19:49.140 --> 01:19:51.080
diesen Lookup machen. Und das ist jetzt

01:19:51.080 --> 01:19:53.120
besser? Ja, genau, das muss man jetzt eigentlich

01:19:53.120 --> 01:19:54.920
nicht mehr machen, das passiert jetzt automatisch sozusagen.

01:19:55.900 --> 01:19:56.240
Okay, ah,

01:19:56.860 --> 01:19:59.060
beim achten Mal. Ja, irgendwie

01:19:59.060 --> 01:20:01.240
so, ich glaube, das ist ein Implementationsdetail,

01:20:01.320 --> 01:20:02.600
das muss ich auch jedes Mal ändern, also

01:20:02.600 --> 01:20:04.780
aber irgendwie, ich glaube total,

01:20:04.880 --> 01:20:05.960
da vertrauen wir drauf.

01:20:07.220 --> 01:20:08.880
Ist ja auch wurscht, also ich meine,

01:20:08.880 --> 01:20:10.900
das macht ja nur einen Unterschied bei Dingen,

01:20:11.080 --> 01:20:12.780
die sowieso tausende Mal gemacht werden

01:20:12.780 --> 01:20:14.660
und da, ob das jetzt

01:20:14.660 --> 01:20:15.720
acht oder zwölf Mal ist, ist auch egal.

01:20:16.920 --> 01:20:18.500
Aber cool, das ist jetzt automatisch, das heißt man kann

01:20:18.500 --> 01:20:20.220
die Sachen, die man vorher nicht kannte,

01:20:20.500 --> 01:20:21.540
kann man jetzt einfach ignorieren.

01:20:23.140 --> 01:20:24.740
Genau, jetzt kann man es halt schön

01:20:24.740 --> 01:20:25.660
hinschreiben und es sollte trotzdem...

01:20:25.660 --> 01:20:29.440
Genau, und

01:20:29.440 --> 01:20:30.560
manche Sachen gehen halt noch nicht.

01:20:30.780 --> 01:20:32.060
Also was geht, was halt zum Beispiel

01:20:32.060 --> 01:20:34.640
durch schnellere Operationen

01:20:34.640 --> 01:20:35.460
ersetzt wird, ist halt so

01:20:35.460 --> 01:20:38.500
Floats, wenn man die addiert, multipliziert

01:20:38.500 --> 01:20:40.360
und so, keine Ahnung, bei int und float,

01:20:40.360 --> 01:20:42.060
also wenn es nur int sind,

01:20:42.160 --> 01:20:43.320
Wenn es nur Float sind, geht es, glaube ich.

01:20:43.680 --> 01:20:45.240
Wenn es Int und Float sind, geht es halt nicht.

01:20:46.680 --> 01:20:47.960
Kommt dann vielleicht irgendwann oder

01:20:47.960 --> 01:20:50.220
es hat sich herausgestellt, es ist nicht so effektiv,

01:20:50.320 --> 01:20:51.980
wenn man das macht. Keine Ahnung, aber

01:20:51.980 --> 01:20:53.560
eigentlich muss man das alles nicht wissen.

01:20:53.960 --> 01:20:56.240
Man kann einfach Code so schreiben, wie man das macht.

01:20:56.580 --> 01:20:58.200
Es gibt eine ganz interessante

01:20:58.200 --> 01:21:00.180
Geschichte. Das Ding

01:21:00.180 --> 01:21:02.120
heißt Specialist

01:21:02.120 --> 01:21:03.400
und

01:21:03.400 --> 01:21:05.720
man kann, also es gibt ja diese

01:21:05.720 --> 01:21:07.720
Dis-Funktion, mit der kann man sich den Bytecode angucken

01:21:07.720 --> 01:21:10.080
und wenn man dem noch

01:21:10.080 --> 01:21:12.100
einen Parameter übergibt, dann zeigt

01:21:12.100 --> 01:21:13.300
es einem auch an, welche Sachen

01:21:13.300 --> 01:21:15.600
rewritet worden sind

01:21:15.600 --> 01:21:17.060
und welche nicht.

01:21:18.400 --> 01:21:20.060
Und das heißt, so kann man sich halt beim

01:21:20.060 --> 01:21:22.040
eigenen Code angucken. Kann quasi beobachten.

01:21:22.320 --> 01:21:23.340
Ja, genau.

01:21:24.580 --> 01:21:24.820
Cool.

01:21:25.400 --> 01:21:27.460
This will disassembly. Genau.

01:21:28.940 --> 01:21:29.100
Ja.

01:21:30.620 --> 01:21:31.060
Ansonsten,

01:21:31.560 --> 01:21:34.080
ja, nee, also ich glaube

01:21:34.080 --> 01:21:35.720
fast immer, oder ich weiß nicht, habt ihr noch

01:21:35.720 --> 01:21:38.060
irgendwelche Dinge, die in Python 3.11 dazugekommen sind,

01:21:38.060 --> 01:21:38.280
die

01:21:38.280 --> 01:21:42.080
ich jetzt noch nicht drin hatte,

01:21:42.100 --> 01:21:44.080
die irgendwie interessant sind.

01:21:44.200 --> 01:21:45.500
Ganz viel Speed, Speed, Speed.

01:21:46.320 --> 01:21:47.900
Ja, und es wird jetzt

01:21:47.900 --> 01:21:50.260
auch immer mehr, also das ist ja

01:21:50.260 --> 01:21:52.440
eigentlich ein Plan, der fünf Jahre lang

01:21:52.440 --> 01:21:54.140
verfolgt wird.

01:21:55.200 --> 01:21:56.020
Oh, der Fünf-Jahres-Plan?

01:21:56.540 --> 01:21:58.400
Ja. Und diese wichtigen Dinge, wo man

01:21:58.400 --> 01:22:00.040
genau weiß, was in fünf Jahren alles passieren wird?

01:22:00.140 --> 01:22:01.740
Ja, so ganz genau weiß man es natürlich nicht, aber

01:22:01.740 --> 01:22:04.300
es ist halt ein langfristiges Projekt, also tatsächlich

01:22:04.300 --> 01:22:05.900
geht über, also ich glaube,

01:22:05.900 --> 01:22:07.800
der Shannon-Plan, der ist halt

01:22:07.800 --> 01:22:09.820
irgendwie, das soll, über fünf Jahre

01:22:09.820 --> 01:22:11.780
soll Python irgendwie ungefähr

01:22:11.780 --> 01:22:12.840
fünfmal so schnell werden wie vorher.

01:22:13.380 --> 01:22:13.740
Magst du?

01:22:14.160 --> 01:22:14.280
Ja.

01:22:16.400 --> 01:22:17.700
Und ja, es sieht gut aus.

01:22:17.700 --> 01:22:19.720
Das ist schön, wenn diese Pläne schon Namen bekommen.

01:22:19.860 --> 01:22:21.100
Ja, es ist gut in der Zeit.

01:22:21.460 --> 01:22:24.260
Also bisher sieht das so aus, als ob es funktionieren würde.

01:22:24.580 --> 01:22:25.960
Was hat jemand richtig geschätzt?

01:22:26.180 --> 01:22:28.900
Es ist jetzt ein Jahr rum und das ist schon einmal so schnell wie vorher.

01:22:31.020 --> 01:22:31.380
Genau.

01:22:32.200 --> 01:22:32.380
Ja.

01:22:33.020 --> 01:22:34.940
Nee, also es hat sich um ein Jahr gezogen irgendwie,

01:22:35.060 --> 01:22:36.440
aber ansonsten ist alles noch so.

01:22:36.500 --> 01:22:38.160
Ja, dann habe ich ja recht tatsächlich.

01:22:38.600 --> 01:22:40.780
Ein Jahr hier mehr und weniger, meine Güte.

01:22:40.780 --> 01:22:42.780
Ja gut, sechs Jahre.

01:22:43.160 --> 01:22:44.400
Also ich meine, das ist halt alles,

01:22:44.520 --> 01:22:46.760
das weiß natürlich keiner so genau.

01:22:47.540 --> 01:22:49.320
Je länger das wird, desto schwerer ist es auch zu sagen.

01:22:50.300 --> 01:22:50.620
Aber

01:22:50.620 --> 01:22:52.720
momentan funktioniert alles.

01:22:53.820 --> 01:22:53.920
Ja.

01:22:56.540 --> 01:22:56.860
Genau.

01:22:57.520 --> 01:22:59.500
Ja, was haben wir denn sonst noch so für News?

01:22:59.580 --> 01:23:01.180
Es gab noch ein paar andere Sachen, außer Python, die

01:23:01.180 --> 01:23:03.180
passiert sind, aber ich glaube, Python können wir dann an der

01:23:03.180 --> 01:23:05.080
Stelle 3.11, jetzt so ein bisschen

01:23:05.080 --> 01:23:05.620
drüber geredet.

01:23:07.140 --> 01:23:08.720
Ein bisschen. Was ist denn noch passiert?

01:23:09.120 --> 01:23:10.560
Erzähl mal. Also

01:23:10.560 --> 01:23:12.260
zum Beispiel

01:23:12.260 --> 01:23:14.980
also gerade noch eine neue Django-Release,

01:23:15.080 --> 01:23:16.660
die jetzt 3.11-Release ist zum Beispiel.

01:23:16.960 --> 01:23:17.260
Voll gut.

01:23:19.180 --> 01:23:20.820
Ich habe gehört, es ist schneller geworden.

01:23:21.240 --> 01:23:22.000
Ja, ja, ja.

01:23:22.760 --> 01:23:24.820
Wollen wir nochmal über die 3.11...

01:23:24.820 --> 01:23:26.600
Was auch noch

01:23:26.600 --> 01:23:28.740
ein großes Release ist, hat jetzt nicht direkt was mit

01:23:28.740 --> 01:23:30.820
Python zu tun, aber in dem Umfeld natürlich

01:23:30.820 --> 01:23:32.760
auch mal interessant, Postgres 15 ist released.

01:23:33.120 --> 01:23:34.820
Also zumindest nachdem wir

01:23:34.820 --> 01:23:36.220
das letzte Mal irgendwie aufgenommen haben.

01:23:37.960 --> 01:23:38.980
Und was kann das mehr?

01:23:39.300 --> 01:23:40.140
Die werden auch immer schneller.

01:23:40.560 --> 01:23:41.980
schneller geworden, genau,

01:23:42.760 --> 01:23:44.400
es kann jetzt das Writer-Headlock

01:23:44.400 --> 01:23:46.360
direkt komprimieren, also ist irgendwie was reingekommen,

01:23:46.480 --> 01:23:48.480
ist halt, dass bestimmte Sachen so LZ4

01:23:48.480 --> 01:23:50.320
und Z-Standard

01:23:50.320 --> 01:23:52.000
sind halt direkt in Postgres drin,

01:23:52.480 --> 01:23:54.180
sodass du das halt, dann kannst du deine Backups

01:23:54.180 --> 01:23:56.500
direkt komprimiert rausschreiben

01:23:56.500 --> 01:23:58.360
und das

01:23:58.360 --> 01:24:00.380
Writer-Headlock kann auch direkt komprimiert geschrieben werden,

01:24:00.680 --> 01:24:02.020
das macht es halt auch ein bisschen schneller,

01:24:02.160 --> 01:24:03.340
einfach deswegen, weil du weniger schreiben musst.

01:24:04.380 --> 01:24:05.940
Ja, das ist dann

01:24:05.940 --> 01:24:08.420
Merge, ach, das große Feature, das ist Merge

01:24:08.420 --> 01:24:11.480
Statements,

01:24:11.760 --> 01:24:13.440
die im SQL-Standard drin sind,

01:24:13.440 --> 01:24:14.920
sind jetzt implementiert worden.

01:24:15.260 --> 01:24:16.840
Da kannst du halt diverse Geschichten,

01:24:16.940 --> 01:24:18.860
Insight-Update, sonst wie Sachen mixen.

01:24:19.400 --> 01:24:20.940
Und weiß ich nicht, ob das,

01:24:21.120 --> 01:24:22.940
also kann man, wenn man rohes SQL schreibt,

01:24:23.000 --> 01:24:24.760
kann man das vielleicht benutzen, bis das irgendwo in den

01:24:24.760 --> 01:24:25.640
ORMs und so ankommt.

01:24:27.300 --> 01:24:28.000
Keine Ahnung.

01:24:29.300 --> 01:24:30.360
Ja, ansonsten, ja,

01:24:30.780 --> 01:24:32.280
Indizes ein bisschen schneller geworden.

01:24:32.520 --> 01:24:34.860
Distinct kann jetzt parallel abgearbeitet werden.

01:24:36.540 --> 01:24:36.960
Ach ja,

01:24:37.300 --> 01:24:38.540
Also eigentlich ist es ein bisschen schneller,

01:24:38.640 --> 01:24:39.300
ein bisschen hübscher geworden.

01:24:41.680 --> 01:24:42.600
Ich habe einen Kunden,

01:24:42.720 --> 01:24:44.160
die haben noch Postgres 8.1.

01:24:45.200 --> 01:24:45.580
Ja.

01:24:46.780 --> 01:24:48.500
Und das ist ganz schön schwierig, weil da

01:24:48.500 --> 01:24:50.200
kriegt man keine Docker-Container dafür,

01:24:50.420 --> 01:24:51.440
da kriegt man keine

01:24:51.440 --> 01:24:53.640
Dokumentation mehr dafür.

01:24:53.720 --> 01:24:56.080
Ich habe einen Kunden, die schreiben mir Backend in Date-File.

01:24:56.080 --> 01:24:56.820
Die machen das schon immer so.

01:24:57.780 --> 01:25:01.420
Warum machen die das?

01:25:01.420 --> 01:25:03.140
Sind deine Kunden so im Bereich

01:25:03.140 --> 01:25:05.420
irgendwie...

01:25:05.420 --> 01:25:07.460
Ja gut, läuft halt noch.

01:25:08.880 --> 01:25:12.480
Sie betreiben kein Museum für alten Code oder so, oder?

01:25:13.320 --> 01:25:17.560
Nein, aber es ist eine öffentliche Kunde.

01:25:18.940 --> 01:25:21.960
Es geht schon in Richtung Museum für alte Maschinen.

01:25:22.920 --> 01:25:23.080
Ja.

01:25:23.460 --> 01:25:25.120
Nee, aber das ist tatsächlich echt schwierig,

01:25:25.220 --> 01:25:28.120
weil zum Beispiel Django so alte Versionen von Postgres

01:25:28.120 --> 01:25:29.060
einfach nicht unterstützt.

01:25:29.060 --> 01:25:32.060
Da kannst du einfach direkt migraten,

01:25:32.660 --> 01:25:33.360
kannst du es gar nicht machen.

01:25:33.920 --> 01:25:34.040
Ja.

01:25:35.020 --> 01:25:40.120
Und dann fängt es schon an, so echt schwer zu werden,

01:25:40.260 --> 01:25:42.260
wenn du dann die Django-Version zurückdrehen musst

01:25:42.260 --> 01:25:44.680
in den Zweier-Bereich.

01:25:46.680 --> 01:25:48.280
Der Draft reicht noch zwei?

01:25:50.080 --> 01:25:51.940
Ja, mit 2.2 ging das, glaube ich.

01:25:52.040 --> 01:25:54.740
Also sie sagen nicht, dass es offizielle Kompatibilität gibt,

01:25:55.060 --> 01:25:56.740
aber es ging dann irgendwie.

01:25:57.880 --> 01:25:59.560
Ich musste irgendein Feature noch vermeiden

01:25:59.560 --> 01:26:01.580
und dann haben wir es irgendwie nicht.

01:26:03.200 --> 01:26:05.620
Aber es ist ja schön, dass dann Postgres jetzt fast

01:26:05.620 --> 01:26:07.000
doppelt so weit ist, wie

01:26:07.000 --> 01:26:09.460
diese Datenbank-Version.

01:26:09.560 --> 01:26:11.240
Die ganzen Legacy-Sachen benutzen.

01:26:12.060 --> 01:26:13.460
Und das sind immer von den Leuten, die meinen,

01:26:13.520 --> 01:26:15.660
die müssen das unbedingt selbst migrieren, weil die die Sicherheitslücken

01:26:15.660 --> 01:26:16.740
besser finden als die Community.

01:26:17.860 --> 01:26:19.220
Ja, das ist die von 8.1. Naja, gut.

01:26:20.180 --> 01:26:21.560
Muss jeder selber entscheiden.

01:26:22.640 --> 01:26:23.940
Ja, wo wir schon

01:26:23.940 --> 01:26:25.260
über Daten machen. In dem Fall habe ich tatsächlich

01:26:25.260 --> 01:26:27.200
einfach gemacht, was der Kunde wollte.

01:26:27.680 --> 01:26:27.800
Ja.

01:26:29.560 --> 01:26:31.740
Die hatten das Geld, um das zu bezahlen.

01:26:32.260 --> 01:26:34.080
Ja, ja, bei dem Thema waren wir heute schon mal.

01:26:35.080 --> 01:26:35.500
Ja, genau.

01:26:35.880 --> 01:26:37.180
Ja, ich meine, gut, dass Leute alte,

01:26:37.640 --> 01:26:39.940
das ist halt irgendwie, ja, manche Leute stehen halt irgendwie drauf.

01:26:40.220 --> 01:26:40.280
Tja.

01:26:41.900 --> 01:26:42.500
Ich mache das so.

01:26:44.820 --> 01:26:48.100
Aber beim Thema Datenbanken ist das auch ganz

01:26:48.100 --> 01:26:49.520
interessant. Da gab es jetzt ein,

01:26:49.940 --> 01:26:51.920
ich glaube, ich weiß nicht, ob das auf der DjangoCon

01:26:51.920 --> 01:26:53.960
US war oder, ich weiß nicht, irgendwie haben

01:26:53.960 --> 01:26:55.960
sich Carlton Gibson und

01:26:55.960 --> 01:26:57.420
Simon Rennison unterhalten und

01:26:57.420 --> 01:26:59.680
Simon Rennison meinte so, hm, warum ist

01:26:59.680 --> 01:27:01.920
eigentlich, warum steht in den DjangoDocs eigentlich

01:27:01.920 --> 01:27:02.160
drin,

01:27:04.180 --> 01:27:05.820
SQLite wird nicht für den Produktionsbetrieb

01:27:05.820 --> 01:27:06.800
empfohlen.

01:27:08.400 --> 01:27:10.060
Und ja, der Grund ist halt,

01:27:10.520 --> 01:27:11.780
naja, wenn man SQLite verwendet

01:27:11.780 --> 01:27:13.900
und dann fangen plötzlich an, also es funktioniert im Entwicklungsmodus,

01:27:13.980 --> 01:27:15.920
funktioniert das ja alles super, und dann

01:27:15.920 --> 01:27:17.860
wenn man es produktiv verwendet, dann fangen Leute an, da Sachen

01:27:17.860 --> 01:27:19.920
reinzuschreiben, dann ist halt relativ schnell

01:27:19.920 --> 01:27:21.040
Ende Gelände, weil

01:27:21.040 --> 01:27:24.000
kann halt immer nur ein Thread reinschreiben und die locken

01:27:24.000 --> 01:27:25.940
halt und wenn man viel schreibt, dann lockt sich das

01:27:25.940 --> 01:27:26.620
alles gegenseitig.

01:27:27.160 --> 01:27:28.440
Concurrent Rights ist das Problem.

01:27:29.180 --> 01:27:31.360
Und dann ist man sehr schnell

01:27:31.360 --> 01:27:33.980
dann kriegt man Time-Outs.

01:27:34.780 --> 01:27:35.660
Ja, es ist total

01:27:35.660 --> 01:27:36.720
so funktioniert nicht gut.

01:27:36.760 --> 01:27:39.020
Das kann man noch ein bisschen in den Griff kriegen.

01:27:39.120 --> 01:27:40.920
Der hat einen 5-Sekunden-Standard-Time-Out.

01:27:42.080 --> 01:27:43.260
Kann man natürlich hochdrehen,

01:27:43.580 --> 01:27:45.200
dann wird es nur langsamer, aber

01:27:45.200 --> 01:27:46.720
es ist am Ende, ja.

01:27:47.000 --> 01:27:48.940
Genau. Und daraufhin,

01:27:49.160 --> 01:27:51.240
okay, Simon Lism hat ganz viel

01:27:51.240 --> 01:27:53.000
mit SQLite, Data Setter und so Zeugs

01:27:53.000 --> 01:27:55.400
und hat auch Ahnung von dem Ding

01:27:55.400 --> 01:27:56.580
und macht so, okay, ich probiere mal was.

01:27:56.980 --> 01:27:58.640
Und hat dann halt Benchmark

01:27:58.640 --> 01:28:01.300
dazu geschrieben und dann so Sachen

01:28:01.300 --> 01:28:03.040
ausprobiert, wie zum Beispiel einfach mal umstellen

01:28:03.040 --> 01:28:04.920
von dem

01:28:04.920 --> 01:28:06.860
normalen, ich weiß nicht, was der normale

01:28:06.860 --> 01:28:09.180
Mechanismus ist, auf

01:28:09.180 --> 01:28:11.320
Write-Ahead-Log, weil SQLite kann auch

01:28:11.320 --> 01:28:12.740
sowas mit Write-Ahead-Log.

01:28:13.880 --> 01:28:15.280
Da hat man zwar immer noch das Locking-Problem,

01:28:15.380 --> 01:28:16.440
aber das ist halt irgendwie,

01:28:18.280 --> 01:28:19.280
also es kann immer nur ein, zwei

01:28:19.280 --> 01:28:21.240
gleichzeitig schreiben, aber irgendwie wird das dann

01:28:21.240 --> 01:28:23.040
halt alles so ein bisschen zwischengepuffert und ist halt

01:28:23.040 --> 01:28:25.020
schneller fertig. Und stellt sich raus, tja,

01:28:25.240 --> 01:28:26.780
also an der Stelle ist dann halt irgendwie diese

01:28:26.780 --> 01:28:29.280
Timeouts gehen weg. Es geht eigentlich. Und es geht

01:28:29.280 --> 01:28:30.400
eigentlich, ja, da hat er wirklich

01:28:30.400 --> 01:28:32.740
so hunderte Requests pro Sekunde

01:28:32.740 --> 01:28:34.580
oder auch, ich weiß nicht, wie viele tausend

01:28:34.580 --> 01:28:36.380
Sachen er da pro Sekunde schreiben konnte,

01:28:36.480 --> 01:28:38.640
viel. Und es geht. Und es

01:28:38.640 --> 01:28:40.520
skaliert auch. Okay, was

01:28:40.520 --> 01:28:42.560
passiert denn jetzt, wenn ich mehrere Prozesse nebeneinander draufschreibe?

01:28:43.920 --> 01:28:44.700
SQLite verwendet

01:28:44.700 --> 01:28:45.680
so ein File-Logging dafür.

01:28:46.940 --> 01:28:48.560
Und ich so, oh, das fliegt mir bestimmt

01:28:48.560 --> 01:28:50.760
in die Ohren. Nö, es ist fast linear skaliert

01:28:50.760 --> 01:28:52.200
bis zu vier Prozessoren.

01:28:53.060 --> 01:28:54.520
Also, geht auch.

01:28:55.400 --> 01:28:56.340
Das heißt, du kannst eigentlich,

01:28:56.620 --> 01:28:58.340
also für die allermeisten, also es wird

01:28:58.340 --> 01:29:00.200
machen. Es wird kaum Leute geben, die,

01:29:00.320 --> 01:29:01.860
wenn man SQLite so konfiguriert,

01:29:02.540 --> 01:29:04.300
in einen Bereich

01:29:04.300 --> 01:29:05.880
kommen, wo sie Schreibprobleme kriegen.

01:29:06.180 --> 01:29:08.160
Das heißt, eigentlich kannst du das Ding halt

01:29:08.160 --> 01:29:09.580
auch produktiv deployen

01:29:09.580 --> 01:29:12.060
und Leuten das als Datenbank

01:29:12.060 --> 01:29:12.440
geben.

01:29:14.120 --> 01:29:16.160
Man will vielleicht aus diversen anderen Gründen auch noch

01:29:16.160 --> 01:29:18.780
ein richtiges Postgres verwenden, aber

01:29:18.780 --> 01:29:20.280
für viele Sachen reicht

01:29:20.280 --> 01:29:22.560
es wahrscheinlich aus. Und dann brauchst du keinen Datenbank-Server mehr,

01:29:22.600 --> 01:29:24.220
weil das ist halt schon

01:29:24.220 --> 01:29:25.900
eine sehr schmerzhafte Geschichte. Ja, das ist schon

01:29:25.900 --> 01:29:27.500
ein Einrichtungsaufwand, der

01:29:27.500 --> 01:29:29.340
vermeidbar ist.

01:29:29.640 --> 01:29:31.120
Und wenn du das jetzt auf irgendeine kleine

01:29:31.120 --> 01:29:33.380
virtuelle Maschine mit

01:29:33.380 --> 01:29:34.980
Dateisystemen deployen kannst,

01:29:35.240 --> 01:29:37.460
reicht für die meisten Leute wahrscheinlich aus.

01:29:38.440 --> 01:29:39.120
Und das ist natürlich schon nett.

01:29:40.260 --> 01:29:41.700
Also als ich das gelesen habe,

01:29:41.740 --> 01:29:42.540
dachte ich auch, super.

01:29:45.540 --> 01:29:45.900
Genau.

01:29:47.200 --> 01:29:47.560
Hat

01:29:47.560 --> 01:29:49.260
SQLite nicht kürzlich so ein

01:29:49.260 --> 01:29:51.660
Sicherheitsthema gehabt? Ich erinnere mich, dass da irgendwas war.

01:29:52.080 --> 01:29:53.320
Oh, das habe ich, glaube ich, überlesen.

01:29:53.400 --> 01:29:53.740
Weiß ich nicht.

01:29:54.920 --> 01:29:57.200
Ich glaube, die hatten so ein

01:29:57.200 --> 01:29:57.920
Sicherheitsproblem

01:29:57.920 --> 01:30:01.180
bei sehr großen

01:30:01.180 --> 01:30:02.880
Rides. Anscheinend gibt es da einen

01:30:02.880 --> 01:30:05.220
Overflow, wenn du irgendwie

01:30:05.220 --> 01:30:07.020
Max Bytes

01:30:07.020 --> 01:30:09.120
minus 1 an Daten

01:30:09.120 --> 01:30:11.120
holst. Das ist irgendwie ein Terabyte oder sowas.

01:30:11.420 --> 01:30:12.820
Okay, na gut. Also es ist nicht

01:30:12.820 --> 01:30:16.380
es ist kein

01:30:16.380 --> 01:30:18.660
realistisches, kein pragmatisches Problem.

01:30:19.600 --> 01:30:21.040
Aber tatsächlich

01:30:21.040 --> 01:30:22.780
war das so ein bisschen News, weil

01:30:22.780 --> 01:30:24.980
SQLite eigentlich sehr, sehr gut vertestet

01:30:24.980 --> 01:30:26.600
ist und sehr, sehr sicher ist.

01:30:27.200 --> 01:30:28.740
Und das war eben so eine Sache, wo

01:30:28.740 --> 01:30:30.680
einer gesagt hat, haha, aber wenn ich

01:30:30.680 --> 01:30:33.120
einen Terabyte gleichzeitig in einer Transaktion

01:30:33.120 --> 01:30:34.100
drin habe und dann

01:30:34.100 --> 01:30:36.780
irgendwas mache, da wird halt auch irgendein Puffer

01:30:36.780 --> 01:30:38.460
alloziert, der dann ausläuft.

01:30:39.320 --> 01:30:40.660
Dann geht es aber nicht mehr.

01:30:41.320 --> 01:30:42.060
Ah, okay.

01:30:42.360 --> 01:30:43.640
Das passiert den Besten.

01:30:43.640 --> 01:30:44.160
Ja.

01:30:46.280 --> 01:30:47.120
Ja, ja.

01:30:48.920 --> 01:30:49.520
Tja,

01:30:49.660 --> 01:30:50.620
ansonsten

01:30:50.620 --> 01:30:53.480
PyMCs4 ist veröffentlicht.

01:30:55.200 --> 01:30:55.800
Heißt

01:30:55.800 --> 01:30:57.440
jetzt nur noch bei MC, also für

01:30:57.440 --> 01:30:59.580
probabilistische Programmierungsgeschichten

01:30:59.580 --> 01:31:01.140
Library, die man sich mal angucken kann.

01:31:02.020 --> 01:31:03.640
Manchmal ist es ganz nett, das zu haben.

01:31:04.160 --> 01:31:05.220
Wofür steht denn MC?

01:31:06.320 --> 01:31:06.720
Monte Carlo.

01:31:08.600 --> 01:31:09.480
Also MC, MC,

01:31:09.660 --> 01:31:11.500
Markov Chain, Monte Carlo.

01:31:12.440 --> 01:31:13.560
Ja, das MC steht für

01:31:13.560 --> 01:31:14.540
Monte Carlo.

01:31:16.180 --> 01:31:16.360
Okay.

01:31:18.460 --> 01:31:18.720
Ja.

01:31:20.580 --> 01:31:21.760
Ja, ich weiß nicht genau.

01:31:21.760 --> 01:31:23.840
Und Andrej Kapati ist ja jetzt

01:31:23.840 --> 01:31:25.700
seinen Job los und hat angefangen

01:31:25.700 --> 01:31:27.560
ein Machine-Learning-Tutorial

01:31:27.560 --> 01:31:30.080
mit Python irgendwie auf YouTube

01:31:30.080 --> 01:31:31.980
zu veröffentlichen. Ach, ja, ja, ich habe gesehen, er macht jetzt

01:31:31.980 --> 01:31:33.340
mehr YouTube-Videos wieder, ja.

01:31:33.640 --> 01:31:36.040
Also so neue Networks und so, so ein bisschen

01:31:36.040 --> 01:31:37.500
Intro, wie das in Python geht und

01:31:37.500 --> 01:31:40.040
Language-Modelling und sowas. Nett, ja, kann man sich

01:31:40.040 --> 01:31:40.840
auf jeden Fall auch angucken.

01:31:41.900 --> 01:31:44.020
Ja, der macht immer sehr schöne Sachen.

01:31:45.160 --> 01:31:45.720
Stimmt, warum?

01:31:46.220 --> 01:31:47.620
Der war bei Tesla, ne?

01:31:47.620 --> 01:31:48.900
War der schon von...

01:31:48.900 --> 01:31:50.200
Tja.

01:31:52.540 --> 01:31:53.740
Ist er wohl entlassen worden?

01:31:54.340 --> 01:31:55.840
Nee, ich glaube, der ist tatsächlich freiwillig.

01:31:56.180 --> 01:31:57.300
Ja, es gibt da einige Leute,

01:31:57.440 --> 01:31:59.140
also der, der sich diese,

01:32:00.400 --> 01:32:01.800
na, wie heißen die GAN-Modelle?

01:32:04.680 --> 01:32:06.980
General Adversarial Networks,

01:32:07.120 --> 01:32:08.060
ja, wie heißt die?

01:32:08.280 --> 01:32:09.980
Generative Adversarial Networks, meine Güte.

01:32:10.580 --> 01:32:11.820
Ist schon spät.

01:32:13.720 --> 01:32:14.680
Wie heißt da ein,

01:32:17.160 --> 01:32:19.620
der war irgendwas auch Chefmäßiges

01:32:19.620 --> 01:32:21.820
für Machine Learning bei Apple

01:32:21.820 --> 01:32:24.220
und der wollte eigentlich weiter

01:32:24.220 --> 01:32:28.060
Homeoffice machen und Apple hat gesagt,

01:32:28.120 --> 01:32:29.500
nee, wollen wir nicht und dann ist er auch gegangen.

01:32:32.500 --> 01:32:34.440
Da muss man halt

01:32:34.440 --> 01:32:36.180
wissen, was einem wichtig ist, ja, ob die Leute

01:32:36.180 --> 01:32:37.700
da sind oder ob sie

01:32:37.700 --> 01:32:38.700
da sind.

01:32:39.960 --> 01:32:40.400
Ja.

01:32:41.720 --> 01:32:43.760
Also ich meine, das ist halt auch eine sehr teure

01:32:43.760 --> 01:32:45.640
Policy, aber offenbar

01:32:45.640 --> 01:32:48.400
scheint es für Leute so

01:32:48.400 --> 01:32:50.260
effektiv zu sein, dass sie das gerne in Kauf

01:32:50.260 --> 01:32:52.000
aufnehmen. Die Policies sind ganz wichtig

01:32:52.000 --> 01:32:54.060
fürs Teamgefüge, fürs Building und für ihre

01:32:54.060 --> 01:32:55.140
Kontrollsüchte.

01:32:56.060 --> 01:32:57.820
Ja, ich glaube auch, das ist einfach,

01:32:57.960 --> 01:33:00.040
ich meine, wenn man, was ist denn, wenn man

01:33:00.040 --> 01:33:02.020
jetzt da so irgendwie eine Firma hat und da ist

01:33:02.020 --> 01:33:03.940
keiner, das ist ja nicht gut. Also ich meine, wenn ich jetzt

01:33:03.940 --> 01:33:05.900
eine Firma habe, dann möchte ich ja auch schon sehen,

01:33:05.980 --> 01:33:07.980
dass da Leute sind. Du meinst, wenn du so ein teures Gebäude hast?

01:33:08.140 --> 01:33:10.200
Ja. Die müssen da schon sitzen und arbeiten,

01:33:10.400 --> 01:33:12.020
damit der Peitsche dahinter fliegen kann.

01:33:12.700 --> 01:33:13.960
Weiß ich gar nicht. Also wenn sie in einem

01:33:13.960 --> 01:33:15.780
Meeting sitzen und mir zuhören, finde ich das eigentlich auch okay.

01:33:15.820 --> 01:33:17.800
Da können sie ja gar nicht so viel arbeiten, aber das ist

01:33:17.800 --> 01:33:19.160
für mich eigentlich auch gar nicht so schlecht, finde ich.

01:33:19.180 --> 01:33:20.140
er kann sich reden würden.

01:33:21.680 --> 01:33:23.460
Andere Leute, Aufmerksamkeit,

01:33:23.540 --> 01:33:24.720
Aufmerksamkeit, nur für dich.

01:33:26.260 --> 01:33:26.660
Ja,

01:33:27.340 --> 01:33:28.200
ansonsten.

01:33:28.200 --> 01:33:28.720
Arsch die Räuber.

01:33:31.080 --> 01:33:37.960
Genau, was hatten wir noch? Also es gab noch

01:33:37.960 --> 01:33:40.160
diverse, wie gut das jetzt für die meisten wahrscheinlich nicht so

01:33:40.160 --> 01:33:41.900
oder ich weiß nicht, für mich war es

01:33:41.900 --> 01:33:44.000
ganz interessant, macOS und iOS

01:33:44.000 --> 01:33:46.020
Updates, da gab es einige ganz interessante

01:33:46.020 --> 01:33:48.100
Geschichten. Also was mich ein bisschen genervt

01:33:48.100 --> 01:33:50.000
hat. Es war diesmal ein sehr, sehr hakeliges Update

01:33:50.000 --> 01:33:50.360
für mich.

01:33:52.940 --> 01:33:54.120
Es gibt ein sehr schönes

01:33:54.120 --> 01:33:55.960
Feature, das ich tatsächlich sehr cool finde. Es gibt auf dem

01:33:55.960 --> 01:33:58.100
Mac, ich weiß nicht, wie macht ihr das eigentlich, wenn ihr Fotos

01:33:58.100 --> 01:33:59.280
teilen wollt mit anderen Leuten?

01:34:01.460 --> 01:34:01.840
Gar nicht.

01:34:02.040 --> 01:34:02.440
Machen wir nicht.

01:34:04.360 --> 01:34:05.980
Ist nicht so ein einfaches Thema, finde ich.

01:34:06.220 --> 01:34:07.960
Und auch auf iOS und so

01:34:07.960 --> 01:34:10.040
oder auf Apple im Apple-Universum

01:34:10.040 --> 01:34:10.920
ist es auch nicht so leicht.

01:34:11.900 --> 01:34:13.900
Also denkt man, man kann so ein Shared-Album

01:34:13.900 --> 01:34:15.560
machen und dann geht das.

01:34:16.140 --> 01:34:17.840
Nee, geht nicht, weil dann werden die ganzen

01:34:17.840 --> 01:34:20.060
das hat irgendwie super klein gerechnet, winzig und dann

01:34:20.060 --> 01:34:20.780
Dropbox?

01:34:21.580 --> 01:34:23.680
Dropbox könnte man machen, aber dann hast du halt das Problem,

01:34:23.960 --> 01:34:25.740
dass du, ja, du musst die Dinger,

01:34:25.940 --> 01:34:26.920
wie willst du die angucken,

01:34:27.760 --> 01:34:30.060
was legst du in diese Dropbox?

01:34:30.720 --> 01:34:31.000
Fotos?

01:34:31.360 --> 01:34:33.540
Ja, aber wenn du jetzt, nimm mal an, du hast

01:34:33.540 --> 01:34:35.040
RAWs. OwnCloud?

01:34:35.280 --> 01:34:37.760
Legst du die da rein? Von RAWs kann da niemand angucken,

01:34:37.860 --> 01:34:38.740
da musst du ja schon irgendwie, ja.

01:34:40.080 --> 01:34:41.560
Ja, aber, ja,

01:34:41.880 --> 01:34:42.560
ist halt,

01:34:42.800 --> 01:34:44.940
wir sind wieder bei so Problemen, die wenige Leute haben.

01:34:46.120 --> 01:34:47.040
Ja, also,

01:34:47.100 --> 01:34:54.160
Ja, der Jochen möchte halt seine 28k-Resolution-Fotos gerne schon in ordentlicher Qualität sharen können.

01:34:54.500 --> 01:35:02.840
Ja, aber dann muss der das halt selber schreiben, muss der halt ein Verzeichnis haben, wo die Dateien drin liegen und die dann irgendwie zugänglich machen.

01:35:03.220 --> 01:35:06.440
Und ich meine, Image-Gallery-Software gibt es genügend.

01:35:06.440 --> 01:35:35.440
Ich habe eine Lösung dafür, also sozusagen für diese, aber was halt auch schön wäre, ist, dass man das so, dass man halt ganze Alben oder so, nicht unbedingt nur so eine Auswahl, das ist ja auch Arbeit, das zu machen, wenn man möchte einfach Leuten sagen, so hier, ihr könnt das einfach auch angucken, das gab es bisher eigentlich nicht und das kann man auch nicht gut öffentlich über eine Webseite oder so machen und das ist jetzt drin und das funktioniert eigentlich auch ganz gut und da funktioniert genau das, dass man, also es gab auch vorher schon eine Möglichkeit, man konnte so einen iCloud-Sharing-Link erzeugen

01:35:35.820 --> 01:35:48.780
Und dann hat man so eine Web an sich gekriegt und da waren auch die Originalgrößen-Dinger drin. Was die meisten Leute machen ist wahrscheinlich, sie nehmen einfach den Kram und verschicken ihn vollkommen hemmungslos per WhatsApp oder so. Und WhatsApp rechnet den Kram dann irgendwie zu gut genug.

01:35:50.440 --> 01:35:54.020
Und dann nehmen die Leute das

01:35:54.020 --> 01:35:55.140
und machen A3-Ausdrucke dafür,

01:35:55.220 --> 01:35:56.000
hängen sich jetzt in die Wand und sagen,

01:35:56.660 --> 01:35:58.280
also irgendwie sah das aus.

01:35:58.740 --> 01:36:00.100
Der Typ kann gar nicht fotografieren,

01:36:00.260 --> 01:36:00.940
das ist ja schrecklich.

01:36:01.840 --> 01:36:03.860
Wer für eine Kamera fällt gar nicht auf,

01:36:03.920 --> 01:36:04.880
das Motiv gefällt denen immer,

01:36:04.920 --> 01:36:05.820
deswegen hängen sie sich an die Wand.

01:36:06.000 --> 01:36:11.120
Ja, es ist wahr, aber es tut manchmal auch ein bisschen weh,

01:36:11.160 --> 01:36:12.400
wenn man sieht, was Leute so machen.

01:36:13.740 --> 01:36:14.780
Mit deinem Auge,

01:36:14.920 --> 01:36:16.060
mit deinem ästhetischen Anspruch.

01:36:16.500 --> 01:36:18.440
Ja, genau.

01:36:18.440 --> 01:36:20.400
Also das, was Leute tun, ist sehr schrecklich.

01:36:20.440 --> 01:36:23.140
Aber ich glaube bei Mac-Update, wir reden schon so lange

01:36:23.140 --> 01:36:24.620
über Mac-Update, wo das hier alles gefixt ist

01:36:24.620 --> 01:36:27.080
Es gibt ja jetzt ein Feature, dass

01:36:27.080 --> 01:36:28.840
das halt fixt, aber das hatte

01:36:28.840 --> 01:36:31.020
ziemlich hakelige Geschichten, bei mir jedenfalls war es alles

01:36:31.020 --> 01:36:33.100
sehr schrecklich, hat die ganzen Counts und alle kaputt gegangen

01:36:33.100 --> 01:36:34.440
Ich hab

01:36:34.440 --> 01:36:37.100
meine Uhr hat teilweise nur noch

01:36:37.100 --> 01:36:38.660
die Uhrzeit von gestern angezeigt

01:36:38.660 --> 01:36:40.920
Also es war alles irgendwie, es war sehr unrund

01:36:40.920 --> 01:36:43.100
Aber dafür in voller Auflösung

01:36:43.700 --> 01:36:45.260
Ja, ja ich weiß auch nicht

01:36:45.260 --> 01:36:46.460
Also

01:36:46.460 --> 01:36:47.440
Hm

01:36:47.960 --> 01:36:49.760
Aber Jochen, weißt du denn, dass es die

01:36:49.760 --> 01:36:51.780
Uhrzeit von gestern ist? Weil gestern hat ja die gleichen

01:36:51.780 --> 01:36:53.960
Uhrzeiten wie heute. Ja, ich weiß,

01:36:54.020 --> 01:36:55.860
wann ich ins Bett gegangen bin und eingeschlafen bin

01:36:55.860 --> 01:36:57.580
und dann, wenn ich morgens aufwache...

01:36:57.580 --> 01:36:59.740
Und dann ist er einfach stehen geblieben. Genau, und dann ist er stehen geblieben.

01:36:59.960 --> 01:37:00.820
Das war ein bisschen...

01:37:00.820 --> 01:37:03.940
Ich dachte, du meinst, er hat jetzt das 12 Uhr

01:37:03.940 --> 01:37:05.120
von gestern angezeigt. Nein, nein.

01:37:06.120 --> 01:37:07.540
Das ist eine philosophische Frage.

01:37:08.960 --> 01:37:09.440
Ja, so

01:37:09.440 --> 01:37:11.760
solche Probleme

01:37:11.760 --> 01:37:13.060
von gestern, ja, das weiß ich.

01:37:14.060 --> 01:37:14.600
Ach ja.

01:37:16.280 --> 01:37:16.600
Genau.

01:37:17.440 --> 01:37:20.180
Ja, nee, das ist schon bei den unwichtigen Dingen angekommen, glaube ich.

01:37:20.180 --> 01:37:21.880
Ja, ich glaube, wir sind jetzt mit den News tatsächlich durch.

01:37:21.980 --> 01:37:23.520
Wir machen mal das Thema, was wir heute machen wollen.

01:37:23.820 --> 01:37:24.940
Ich weiß nicht, wie weit wir das noch haben.

01:37:25.200 --> 01:37:27.300
Nach zwei Stunden Diskussion fangen wir schon das Thema an.

01:37:27.400 --> 01:37:28.580
Ich weiß nicht, ob wir gescheckt haben.

01:37:29.240 --> 01:37:31.920
Wir wollten ganz kurz, mach mal fünf Minuten listen.

01:37:33.000 --> 01:37:35.640
Wir haben es am Anfang versprochen, wir konnten das schon wieder nicht halten.

01:37:35.740 --> 01:37:36.880
Wir haben die ganze Zeit gequatscht.

01:37:37.260 --> 01:37:40.320
Jetzt müssen wir auch einmal kurz fünf Minuten noch in das Thema Listen einsteigen.

01:37:40.380 --> 01:37:41.040
Okay, machen wir.

01:37:41.860 --> 01:37:43.220
Aber vielleicht so ein, gut, machen wir.

01:37:44.740 --> 01:37:45.000
Listen.

01:37:46.460 --> 01:37:47.920
Wer steigt jetzt ein von uns drei?

01:37:48.180 --> 01:37:50.300
Man schreibt doch was rein, wenn man überhaupt was rauchen kann.

01:37:52.460 --> 01:37:53.640
Johannes, du kennst dich doch damit aus.

01:37:53.660 --> 01:37:56.140
Eine lineare Abfolge von Einträgen.

01:37:59.000 --> 01:38:00.100
So, das ist eine Liste.

01:38:02.060 --> 01:38:05.040
Und die Ordnung hat eine Anteil an Leuten.

01:38:05.040 --> 01:38:05.360
Ja, genau.

01:38:05.780 --> 01:38:07.000
Also es ist eine lineare Abfolge.

01:38:07.120 --> 01:38:09.480
Es gibt ein erstes Element und ein zweites Element

01:38:09.480 --> 01:38:11.120
und ein drittes Element und ein viertes Element.

01:38:12.260 --> 01:38:13.900
Und vielleicht gibt es auch ein fünftes Element.

01:38:13.900 --> 01:38:18.580
Und das hört sich doch an wie was Sinnvolles, oder?

01:38:19.020 --> 01:38:21.660
So zum Programmieren, dass man sich mehrere Dinge merken kann.

01:38:21.720 --> 01:38:23.780
Ist eine Liste ein Array? Ist ein String eine Liste?

01:38:24.380 --> 01:38:28.060
Und genau, jetzt gibt es zwei Techniken,

01:38:28.160 --> 01:38:29.220
wie man sich sowas speichern kann.

01:38:29.420 --> 01:38:31.300
Das eine ist einfach alles hintereinander.

01:38:32.600 --> 01:38:38.080
Und das heißt dann normalerweise Array oder Vektor oder Liste.

01:38:39.900 --> 01:38:54.500
Und das andere ist quasi immer mit Verweisen auf das Nächste. Ich habe ein Element in der Hand und das Nächste steht an dieser Stelle. Und das muss dann wieder einen Verweis auf das Nächste haben. Und diese Technik heißt Linklist. Also eine verknüpfte Liste.

01:38:57.360 --> 01:39:13.440
Und die haben sehr unterschiedliche Eigenschaften, obwohl sie sich, also von außen sehen die ja gleich aus. Von außen sage ich, ich gebe mir das dritte Element und dann kriegst du das dritte Element oder gib mir jedes Element nacheinander, so wie man es in Python mit einer Vorschleife hat.

01:39:13.860 --> 01:39:34.580
Und das spielt keine Rolle, wie die darunter liegende Implementierung ist, ob die jetzt im Speicher alle hintereinander gespeichert sind oder ob die alle irgendwo gespeichert sind und dann nur aufeinander verweisen. Aber so von den Laufzeiteigenschaften und von den möglichen Operationen oder von den Kosten der möglichen Operationen unterscheiden die sich ja schon sehr deutlich.

01:39:34.580 --> 01:39:50.860
Und das ist super interessant, weil es halt so das Interface so quasi das gleiche ist, aber halt so vom Verhalten extrem unterschiedlich ist.

01:39:52.540 --> 01:40:04.160
Und das ist so ein bisschen da der Kernpunkt an dieser Debatte, warum wir da diesem Thema eine Podcast-Episode gönnen wollen können.

01:40:04.580 --> 01:40:21.000
Und es gibt da auch Verfechter auf beiden Seiten, das ist auch ganz interessant, dass da halt Leute sagen, nein, es muss so sein und zwar für beide Möglichkeiten.

01:40:25.880 --> 01:40:42.560
Und die sind auch unterschiedlich schwer zu implementieren und das ist auch ganz interessant. Deshalb kennen viele Informatikstudenten halt die Datenstruktur LinkedList, weil die super einfach zu schreiben ist. Es ist super einfach eine Datenstruktur zu schreiben, die LinkedList ist, weil du brauchst nur zwei Felder.

01:40:43.980 --> 01:40:50.860
Du brauchst ein Feld, das was ich speichern möchte und ein Feld, das was das nächste ist. Also ein Paar eigentlich.

01:40:51.180 --> 01:40:52.760
Oder das was das vorherige ist, geht das auch?

01:40:53.620 --> 01:40:55.460
Ja, das kannst du machen. Das heißt dann

01:40:55.460 --> 01:40:57.580
Doubly-Linked-List. Kannst du in beide Richtungen

01:40:57.580 --> 01:40:59.480
durchgehen. Du kannst sogar

01:40:59.480 --> 01:41:01.500
tatsächlich so Tricks machen, dass du auf ein

01:41:01.500 --> 01:41:03.620
späteres Element verweist und dann hast du sowas wie

01:41:03.620 --> 01:41:05.180
eine Skip-List. Skip-Listen. Ja.

01:41:05.440 --> 01:41:07.760
Sehr cool. Ja, das ist eine meiner Lieblings-

01:41:07.760 --> 01:41:09.560
Datenstrukturen. Aber weil die so einfach

01:41:09.560 --> 01:41:11.340
sind, gibt es die schon sehr lange. Zum Beispiel

01:41:11.340 --> 01:41:13.740
Lisp ist im Wesentlichen

01:41:13.740 --> 01:41:14.960
gebaut aus solchen

01:41:14.960 --> 01:41:17.400
Link-Lists. Da gibt es Car und Cutter.

01:41:18.260 --> 01:41:19.500
Also Content of Address

01:41:19.500 --> 01:41:21.360
Register und Content of Decrement

01:41:21.360 --> 01:41:23.480
Register. Das

01:41:23.480 --> 01:41:25.420
eine ist das Element, was man speichern möchte

01:41:25.420 --> 01:41:27.460
und das andere ist ein Verweis auf die nächste Stelle,

01:41:27.580 --> 01:41:29.520
wo man was sich merken kann. Und das

01:41:29.520 --> 01:41:31.500
reicht schon aus, um eine Linklist zu machen. Das reicht schon

01:41:31.500 --> 01:41:33.460
aus, um sich

01:41:33.460 --> 01:41:34.860
Sachen zu speichern und das ist

01:41:34.860 --> 01:41:36.960
ziemlich spannend. Und

01:41:36.960 --> 01:41:39.560
es ist sehr leicht, das zu schreiben und deshalb

01:41:39.560 --> 01:41:41.840
wird das eben oft als Beispiel

01:41:41.840 --> 01:41:43.380
für eine

01:41:43.380 --> 01:41:45.660
Datenstruktur benutzt in Informatik

01:41:45.660 --> 01:41:47.260
Vorlesungen, in Einführungsvorlesungen,

01:41:47.900 --> 01:41:49.620
dass man sagt, jetzt schreibt ihr mal eine Linklist

01:41:49.620 --> 01:41:51.060
und dann fügt mal

01:41:51.060 --> 01:41:53.440
100.000 Elemente ein und schaut mal, wie schnell ihr es machen

01:41:53.440 --> 01:41:54.760
könnt. Und

01:41:54.760 --> 01:41:57.120
macht mal Iterationen und macht mal

01:41:57.120 --> 01:41:59.340
so, dass man in der Mitte was einfügen kann. Und macht

01:41:59.340 --> 01:42:01.300
mal so, dass man am Ende was löschen kann. Und macht mal

01:42:01.300 --> 01:42:03.040
so, dass man X, Y und Z machen kann.

01:42:04.020 --> 01:42:04.380
Und

01:42:04.380 --> 01:42:06.720
weil das so einfach ist und

01:42:06.720 --> 01:42:09.220
weil man es so einfach machen kann, gibt es da dann halt

01:42:09.220 --> 01:42:11.280
sehr viele schöne Optimierungstechniken. Zum Beispiel,

01:42:11.440 --> 01:42:13.180
wie der Dominik schon gesagt hat, Pointer in die andere

01:42:13.180 --> 01:42:15.360
Richtung speichern, dass man auch von hinten

01:42:15.360 --> 01:42:16.580
nach vorne durchiterieren kann.

01:42:18.000 --> 01:42:18.360
Oder

01:42:18.360 --> 01:42:21.360
keine Ahnung, Pointer,

01:42:21.360 --> 01:42:23.340
die halt in die Mitte zeigen oder die

01:42:23.340 --> 01:42:25.580
irgendwelche Segmente haben

01:42:25.580 --> 01:42:27.380
oder Sublisten haben

01:42:27.380 --> 01:42:29.420
oder sonst irgendwas, wo du halt viele schöne Dinge

01:42:29.420 --> 01:42:31.340
machen kannst damit. Oder auch

01:42:31.340 --> 01:42:33.420
Cycle Detection, das ist dann was, was da

01:42:33.420 --> 01:42:35.220
rausfällt, wenn du so eine Liste hast, wo du

01:42:35.220 --> 01:42:36.620
immer nur aufs nächste Element verweist,

01:42:37.180 --> 01:42:39.320
kann es ja sein, dass du ein Element hast, was irgendwo

01:42:39.320 --> 01:42:41.180
an eine andere Stelle in die Liste rein verweist

01:42:41.180 --> 01:42:43.280
und dann hast du so einen Kreis

01:42:43.280 --> 01:42:45.240
in deiner Liste drin. Und wie machst du

01:42:45.240 --> 01:42:46.020
Cycle Detection?

01:42:47.980 --> 01:42:48.760
Bitte? Eine Q.

01:42:49.680 --> 01:42:51.020
Eine Q kannst du auch machen, genau.

01:42:51.740 --> 01:42:53.240
Da musst du dir nur das erste und das letzte

01:42:53.240 --> 01:42:55.360
Element merken, damit du dir was einfügen kannst

01:42:55.360 --> 01:42:57.000
am Ende und was abholen kannst vorne.

01:42:57.820 --> 01:42:59.500
Kann man sehr schön und sehr leicht

01:42:59.500 --> 01:43:01.460
viele Sachen draus

01:43:01.460 --> 01:43:03.260
bauen. Auch einen Tree kannst du dir sehr leicht

01:43:03.260 --> 01:43:04.880
draus bauen. Hast du halt nicht einen Pointer,

01:43:04.880 --> 01:43:06.760
wo das nächste Element ist, sondern

01:43:06.760 --> 01:43:08.780
hast du halt zwei Pointer. Eins

01:43:08.780 --> 01:43:10.980
zum rechten Child und eins zum linken

01:43:10.980 --> 01:43:12.980
Child und dann hast du mit wenig

01:43:12.980 --> 01:43:14.960
Arbeit einen Baum aus deiner Liste

01:43:14.960 --> 01:43:16.900
gemacht. Und deshalb ist das so ein

01:43:16.900 --> 01:43:18.240
bisschen so ein fundamentales

01:43:18.240 --> 01:43:20.880
Bauteil in den

01:43:20.880 --> 01:43:21.560
Datenstrukturen.

01:43:23.060 --> 01:43:24.580
Aber auf modernen Prozessoren sind

01:43:24.580 --> 01:43:26.700
Linklists halt brutal langsam, üblicherweise.

01:43:28.180 --> 01:43:28.700
Weil

01:43:28.700 --> 01:43:30.520
du bei jedem Element

01:43:30.520 --> 01:43:32.500
einen Cashmiss hast, normalerweise.

01:43:34.940 --> 01:43:36.580
Und Cashmisses sind das

01:43:36.580 --> 01:43:38.560
schlechteste, was du machen kannst auf modernen Prozessoren.

01:43:38.560 --> 01:43:40.000
Was ist denn jetzt ein Cashmiss?

01:43:41.380 --> 01:43:41.620
Ja,

01:43:43.620 --> 01:43:46.380
man hat ja im Kopf immer so die Vorstellung,

01:43:46.980 --> 01:43:49.500
Cashmiss ist,

01:43:49.600 --> 01:43:50.720
wenn du kein Geld bekommst,

01:43:51.340 --> 01:43:52.380
wenn du zu wenig Geld hast.

01:43:53.060 --> 01:44:09.280
Nein, man hat ja im Kopf so das Bild, dass ein Computer aus zwei Bauteilen besteht. Das eine ist der Prozessor und das andere ist der Hauptspeicher. Und der Prozessor macht irgendwelche Dinge mit den Sachen, die im Hauptspeicher sind. Und das mag vor 40 Jahren so gewesen sein, aber das ist heutzutage leider nicht mehr so.

01:44:09.280 --> 01:44:11.100
heutzutage gibt es viele verschiedene

01:44:11.100 --> 01:44:12.440
Ebenen von Speicher.

01:44:13.420 --> 01:44:15.160
Und je näher der Speicher am

01:44:15.160 --> 01:44:16.740
Prozessor ist, umso schneller ist der.

01:44:17.300 --> 01:44:18.420
Und umso kleiner ist der.

01:44:19.000 --> 01:44:20.580
Das heißt, ein Prozessor hat

01:44:20.580 --> 01:44:23.040
sogenannte Register, die sind direkt

01:44:23.040 --> 01:44:25.060
in den Prozessor eingebaut, aber davon gibt es halt

01:44:25.060 --> 01:44:26.240
nur, keine Ahnung, 16.

01:44:27.920 --> 01:44:28.400
Und

01:44:28.400 --> 01:44:31.000
die nächste Ebene drüber, die heißt

01:44:31.000 --> 01:44:33.200
L1 Cache, der Level 1 Cache

01:44:33.200 --> 01:44:34.840
und davon gibt es dann halt, keine Ahnung,

01:44:35.800 --> 01:44:36.700
16 Kilobyte.

01:44:37.520 --> 01:44:39.180
Und dann gibt es den L2 Cache und das sind

01:44:39.180 --> 01:44:41.180
dann halt 128 Kilobyte. Und dann gibt's

01:44:41.180 --> 01:44:42.920
den L3-Cache, das sind dann 4 Megabyte.

01:44:44.120 --> 01:44:45.060
Und weil die

01:44:45.060 --> 01:44:47.360
alle sehr klein sind, gibt's danach halt den Hauptspeicher

01:44:47.360 --> 01:44:49.160
und der hat dann auf einmal, keine Ahnung,

01:44:49.280 --> 01:44:51.400
je nachdem, wie viel man halt hat, 8 Gigabyte

01:44:51.400 --> 01:44:53.340
oder 16 Gigabyte oder auch 128

01:44:53.340 --> 01:44:54.660
Gigabyte, das spielt keine Rolle.

01:44:55.780 --> 01:44:57.260
Und die Ebene

01:44:57.260 --> 01:44:59.200
dahinter, hinter dem Hauptspeicher, ist eigentlich die

01:44:59.200 --> 01:45:01.020
Festplatte oder beziehungsweise die SSD,

01:45:01.240 --> 01:45:02.700
die man jetzt drin hat, die dann halt in Terabyte

01:45:02.700 --> 01:45:05.320
gemessen wird, die im Grunde

01:45:05.320 --> 01:45:07.360
genommen gar nicht so viel anders ist

01:45:07.360 --> 01:45:09.260
als das, was im Hauptspeicher drin ist,

01:45:09.700 --> 01:45:11.000
nur halt langsamer.

01:45:12.980 --> 01:45:13.500
Und jede

01:45:13.500 --> 01:45:14.780
dieser Ebenen ist immer langsamer.

01:45:15.060 --> 01:45:17.000
Um auf ein Register zuzugreifen, das dauert

01:45:17.000 --> 01:45:19.120
einen Prozessorzyklus. Um auf den

01:45:19.120 --> 01:45:21.460
L1-Cache zuzugreifen, dauert, keine Ahnung,

01:45:21.560 --> 01:45:23.580
vier Prozessorzyklen. Auf den L2-Cache

01:45:23.580 --> 01:45:25.000
acht Prozessorzyklen.

01:45:25.120 --> 01:45:26.920
Das ist ungefähr ein Faktor 3 dazwischen, ja.

01:45:27.680 --> 01:45:29.300
Also am Schluss wird es mehr, aber

01:45:29.300 --> 01:45:31.440
ja. Bis auf den Hauptspeicher, ja, beim Hauptspeicher

01:45:31.440 --> 01:45:32.160
ist es eine große Lücke.

01:45:33.420 --> 01:45:34.840
Genau, da ist eine große Lücke.

01:45:34.840 --> 01:45:35.440
Das heißt,

01:45:36.380 --> 01:45:52.520
Ja, es ist gefährlich, Sachen aus dem Hauptspeicher in den Prozessor reinzuholen, um dann Sachen damit zu machen. Und dieses ganze Schema funktioniert nur deshalb, weil Programme sowas haben, das heißt Lokalität.

01:45:53.640 --> 01:45:58.120
ich eine Speicherzelle bearbeitet habe, dann ist die Wahrscheinlichkeit hoch, dass ich

01:45:58.120 --> 01:46:03.080
die benachbarten Speicherzellen als nächstes bearbeite. Und deshalb funktioniert dieses

01:46:03.080 --> 01:46:08.120
Caching, weil das Caching eben darauf basiert, dass immer ganze Blöcke von Speicher in die

01:46:08.120 --> 01:46:12.240
Ebene darunter geholt werden. Das heißt, wenn ich jetzt im Hauptspeicher irgendeine

01:46:12.240 --> 01:46:17.060
Speicherseite habe, die hat 16 Kilobyte und ich lese da ein Byte draus, dann wird diese

01:46:17.060 --> 01:46:19.120
ganze Seite in den L3-Cache

01:46:19.120 --> 01:46:21.220
geholt. Und das Byte,

01:46:21.480 --> 01:46:22.820
was ich hole, das wird halt

01:46:22.820 --> 01:46:24.520
mit so einer Cache-Line

01:46:24.520 --> 01:46:27.140
unterschiedlicher Größe in den L2-Cache geholt

01:46:27.140 --> 01:46:28.960
und daraus in den L1-Cache und

01:46:28.960 --> 01:46:31.100
daraus in die Register und in den Register wird das dann gemacht

01:46:31.100 --> 01:46:32.700
und dann geht das ganze Spiel wieder zurück.

01:46:33.520 --> 01:46:35.360
Das heißt, wenn ich auf benachbarten

01:46:35.360 --> 01:46:36.620
Speicherzellen operiere,

01:46:38.220 --> 01:46:39.140
dann muss ich das nur

01:46:39.140 --> 01:46:41.320
einmal diese Seite aus dem Hauptspeicher

01:46:41.320 --> 01:46:42.800
in den Prozessor reinholen

01:46:42.800 --> 01:46:45.240
und die anderen Zugriffe, die sind dann

01:46:45.240 --> 01:46:46.000
wesentlich schneller.

01:46:47.060 --> 01:47:07.600
Wenn ich jetzt aber im Hauptspeicher hin und her springe, so wie es bei einer Linked-List ist, dann muss ich jedes Mal in den Hauptspeicher gehen. Und Hauptspeicher ist halt aus der Sicht eines Prozessors extrem langsam. Also das eine wird in Nanosekunden gemessen und das andere wird in Mikrosekunden gemessen und das ist einfach ein brutal großer Unterschied.

01:47:09.420 --> 01:47:22.760
Und deshalb ist die Linked-List heutzutage so ein kleines bisschen verpönt, habe ich das Gefühl. Das ist so, ach, der benutzt Linked-List, der hat keine Ahnung. Weil die halt Cache-Misses erzeugen, weil die halt im Speicher hin und her springen.

01:47:23.160 --> 01:47:30.500
Die andere Technik, die man machen kann, das heißt oft Array oder Vector, ist, dass du halt die Elemente alle hintereinander schreibst.

01:47:30.940 --> 01:47:38.180
Das heißt, das erste Element steht an Speicheradresse 1 und das zweite Element steht an Speicheradresse 2 und das nächste Element steht an Speicheradresse 3.

01:47:38.340 --> 01:47:41.880
Und halt je nachdem, wie groß die Dinger sind, dass du die halt alle aneinander packst.

01:47:42.180 --> 01:47:46.280
Aber was steht dann, wenn du durch so einen drinstehst, steht dann nur der Zeiger auf das richtige Objekt drin?

01:47:46.460 --> 01:47:47.660
Und unterschiedlich, ja.

01:47:49.460 --> 01:47:51.360
was du halt hast. Sonst hast du ja eine Maximalgröße von Dingen,

01:47:51.440 --> 01:47:53.300
die da drinstehen können und dann verschwendest du den Speicherplatz,

01:47:53.360 --> 01:47:55.000
wenn nicht alle gleich groß sind von den Dingen, die drinstehen.

01:47:55.180 --> 01:47:57.060
Ja, je nachdem, was du halt hast. Also wenn

01:47:57.060 --> 01:47:59.400
du eine Liste von Integern hast, dann sind

01:47:59.400 --> 01:48:01.300
die halt alle 32-Bit groß

01:48:01.300 --> 01:48:03.420
und dann stehen die halt einfach zack, zack, zack nebeneinander.

01:48:03.520 --> 01:48:05.400
Wenn du einen String hast, dann sind die halt alle

01:48:05.400 --> 01:48:07.220
keine Ahnung, auch

01:48:07.220 --> 01:48:08.500
32-Bit groß, weil

01:48:08.500 --> 01:48:11.440
man inzwischen Unicode macht. Wenn du Floats

01:48:11.440 --> 01:48:13.500
hast, hast du halt 32-Bit oder 64-Bit

01:48:13.500 --> 01:48:15.320
oder 128-Bit Floats oder was auch immer

01:48:15.320 --> 01:48:15.620
du hast.

01:48:17.160 --> 01:48:19.300
Das ist sozusagen der Nachteil da dran.

01:48:19.360 --> 01:48:20.440
Du musst halt die Größe wissen.

01:48:21.280 --> 01:48:22.500
Du musst wissen, was du da rein tust.

01:48:23.020 --> 01:48:25.600
Du kannst auch, wenn du Objekte da rein speicherst,

01:48:25.680 --> 01:48:27.880
dann werden das üblicherweise ja Pointer sein zu Objekten

01:48:27.880 --> 01:48:28.980
oder halt Verweise.

01:48:29.420 --> 01:48:30.580
In Python zum Beispiel,

01:48:30.720 --> 01:48:33.300
da braucht man gar nicht so richtig drüber sprechen,

01:48:33.520 --> 01:48:35.980
weil das immer alles nur Verweise sind auf andere Dinge.

01:48:38.360 --> 01:48:42.360
Aber ja, der Vorteil davon ist halt,

01:48:42.360 --> 01:48:44.060
wenn du, sagen wir mal,

01:48:44.800 --> 01:48:47.900
ein Array hast mit 128 Integern drin

01:48:47.900 --> 01:48:50.880
und da das erste Element liest,

01:48:51.080 --> 01:48:52.660
dann musst du das ja aus dem Hauptspeicher

01:48:52.660 --> 01:48:54.620
in den L3 holen und dann hast du aber das

01:48:54.620 --> 01:48:56.380
gesamte Array schon direkt im L3 drin.

01:48:57.140 --> 01:48:58.680
Das heißt, die Zugriffe, die dann auf das

01:48:58.680 --> 01:49:00.400
zweite Element sind, die kosten

01:49:00.400 --> 01:49:01.660
vergleichsweise gar nichts.

01:49:03.480 --> 01:49:03.660
Und

01:49:03.660 --> 01:49:06.460
das ist natürlich sehr schön, wenn du

01:49:06.460 --> 01:49:09.060
Operationen machen kannst, wo die Speicherzugriffe

01:49:09.060 --> 01:49:10.680
einfach schon gecached sind, wo du schon

01:49:10.680 --> 01:49:11.740
die Sachen geholt hast.

01:49:12.660 --> 01:49:14.260
Und deshalb ist das heutzutage so ein bisschen

01:49:14.260 --> 01:49:16.560
die Technik, die man

01:49:16.560 --> 01:49:18.780
eher einsetzt, dass man halt sagt, wir machen Arrays,

01:49:19.420 --> 01:49:22.500
die zwar an dieser Stelle eben

01:49:22.500 --> 01:49:24.580
wesentlich schneller sind, aber dafür andere

01:49:24.580 --> 01:49:26.680
Nachteile haben. Zum Beispiel ist es

01:49:26.680 --> 01:49:28.280
bei Arrays schwieriger, Sachen einzufügen

01:49:28.280 --> 01:49:30.720
und rauszulöschen

01:49:30.720 --> 01:49:32.560
auch. Das heißt, dieses Q-Beispiel,

01:49:32.680 --> 01:49:34.500
was der Dominik sofort intuitiv gesagt hat,

01:49:34.560 --> 01:49:36.820
ja, das ist ja easy, kannst du hinten einfügen und vorne rausnehmen,

01:49:37.400 --> 01:49:38.360
das ist mit einem Array

01:49:38.360 --> 01:49:40.860
nicht so einfach umzusetzen.

01:49:42.140 --> 01:49:42.620
Und das

01:49:42.620 --> 01:49:44.280
hat sehr viele Edge-Cases,

01:49:44.280 --> 01:49:46.260
ja, selbst, also wenn man sich das umsetzen

01:49:46.260 --> 01:49:48.260
möchte, kann man sich ja überlegen, ja, wenn ich

01:49:48.260 --> 01:49:50.340
vorne ein Element rausnehme, dann muss ich alle anderen

01:49:50.340 --> 01:49:52.280
da hinten eins nach vorne schieben.

01:49:52.660 --> 01:49:54.200
Das ist aber auch blöd, ja, weil dann musst du

01:49:54.200 --> 01:49:56.500
jedes Element anfassen, bloß weil du eins rausgeholt hast.

01:49:56.620 --> 01:49:57.980
Und das wird langsamer, wenn es mehr sind.

01:49:58.260 --> 01:50:00.360
Das ist eine, Python-Listen kann man nicht so gut

01:50:00.360 --> 01:50:02.400
als quasi so, wenn man da

01:50:02.400 --> 01:50:04.200
dauernd Sachen hinten raus

01:50:04.200 --> 01:50:06.140
und vorne rein tut oder so, das geht mit

01:50:06.140 --> 01:50:07.840
Python-Listen nicht gut, genau, ganz genau.

01:50:07.860 --> 01:50:09.960
Das ist aber schlecht. Ja, und deswegen sollte man

01:50:09.960 --> 01:50:12.180
dafür lieber von Collections-Deck

01:50:12.180 --> 01:50:13.900
oder so verwenden, also Double-Ended-Queue,

01:50:14.000 --> 01:50:15.260
das geht deutlich besser. Oder Queue.

01:50:16.260 --> 01:50:18.520
oder da baut man sich einen

01:50:18.520 --> 01:50:20.880
zyklischen Puffer, hast du eine Liste mit 100 Elementen

01:50:20.880 --> 01:50:22.440
und hast einen Array,

01:50:22.640 --> 01:50:24.680
einen Index drin, der das erste und das letzte Element

01:50:24.680 --> 01:50:26.360
ist, aber das ist auch schlecht,

01:50:26.480 --> 01:50:27.880
hast du auch ganz viele Edge Cases.

01:50:29.120 --> 01:50:30.860
Was ist, wenn du mehr als 100 Elemente

01:50:30.860 --> 01:50:31.560
in deiner Queue hast?

01:50:31.680 --> 01:50:34.500
Was ist, wenn die

01:50:34.500 --> 01:50:36.640
ausläuft? Das musst du dann abfangen,

01:50:36.960 --> 01:50:38.520
dass du dann lauter,

01:50:38.600 --> 01:50:39.780
also hast du ganz viele so Edge Cases.

01:50:40.460 --> 01:50:41.580
Arrays sind

01:50:41.580 --> 01:50:44.380
vom Aufbau her simpler, aber in der

01:50:44.380 --> 01:50:46.340
Verwendung her irgendwie

01:50:46.340 --> 01:50:48.600
fitzliger, weil

01:50:48.600 --> 01:50:50.100
die halt so eine feste Struktur haben.

01:50:51.660 --> 01:50:52.560
Und das ist so ein bisschen

01:50:52.560 --> 01:50:53.900
die Sache.

01:50:54.540 --> 01:50:56.300
Das ist irgendwie so eine

01:50:56.300 --> 01:50:57.280
Geschwindigkeitsoptimierung.

01:50:58.920 --> 01:51:00.820
Die sind in mancherlei

01:51:00.820 --> 01:51:02.520
Hinsicht schneller und dann halt auch gleich

01:51:02.520 --> 01:51:03.320
richtig viel schneller.

01:51:05.040 --> 01:51:06.620
Aber dafür holst du dir

01:51:06.620 --> 01:51:08.580
ganz viele Implementierungsprobleme rein.

01:51:09.360 --> 01:51:12.340
ich bin eigentlich ein Freund von

01:51:12.340 --> 01:51:14.380
Link-Lists, weil die so schön sind. Und Skip-Lists,

01:51:14.480 --> 01:51:15.900
ich meine, da braucht man nicht drüber sprechen,

01:51:16.020 --> 01:51:17.540
das ist die coolste Sache der Welt.

01:51:18.820 --> 01:51:19.160
Ja, und

01:51:19.160 --> 01:51:22.280
kann man da Elemente deaktivieren

01:51:22.280 --> 01:51:22.620
quasi?

01:51:23.720 --> 01:51:25.600
Nee, die verweisen nicht auf die Liste, sondern

01:51:25.600 --> 01:51:27.240
Ja, genau.

01:51:28.600 --> 01:51:29.920
Genau, eine Skip-List ist was total

01:51:29.920 --> 01:51:31.600
Smartes. Das ist eigentlich eine Liste,

01:51:32.320 --> 01:51:34.000
die aber zusätzliche Pointer

01:51:34.000 --> 01:51:35.400
hat, die durchspringen können.

01:51:36.480 --> 01:51:37.860
Und die

01:51:37.860 --> 01:51:39.220
legst du randomisiert an

01:51:39.220 --> 01:51:41.700
und dann hast du

01:51:41.700 --> 01:51:43.560
ähnliche Zugriffszeiten wie

01:51:43.560 --> 01:51:45.580
bei einem Baum. Das heißt, du kannst da so

01:51:45.580 --> 01:51:47.320
eine Art binäre Suche drin machen,

01:51:48.460 --> 01:51:48.820
aber

01:51:48.820 --> 01:51:51.740
hast nicht die Verwaltungsprobleme

01:51:51.740 --> 01:51:53.420
bei einem Baum, sondern du hast einfach randomisiert,

01:51:53.560 --> 01:51:55.200
ich verweise auf ein späteres Element.

01:51:56.920 --> 01:51:57.580
Und man

01:51:57.580 --> 01:51:59.540
muss ein kleines bisschen mehr Arbeit machen, aber das ist

01:51:59.540 --> 01:52:01.420
so der Kern der Sache, dass du

01:52:01.420 --> 01:52:02.700
eben zufällige

01:52:02.700 --> 01:52:05.460
Skips machst. Und das ist das

01:52:05.460 --> 01:52:07.480
Skip in SkipList, dass du halt

01:52:07.480 --> 01:52:09.460
sagst, okay, ich gehe von Index X

01:52:09.460 --> 01:52:11.580
auf Index X plus eine zufällige

01:52:11.580 --> 01:52:13.540
Zahl, die sich dann zwischendurch auch verändern kann.

01:52:13.680 --> 01:52:15.300
Die sich verändern kann, wenn du in der Mitte was

01:52:15.300 --> 01:52:17.620
einfügst oder was rauslöscht

01:52:17.620 --> 01:52:17.960
oder so.

01:52:19.280 --> 01:52:21.260
Und das ist vom Programmieren her was total

01:52:21.260 --> 01:52:23.460
Simples, gibt dir

01:52:23.460 --> 01:52:25.320
aber eben die logarithmische

01:52:25.320 --> 01:52:27.360
Zugriffszeiten, amortisiert

01:52:27.360 --> 01:52:29.140
statistisch

01:52:29.140 --> 01:52:30.680
logarithmische Zugriffszeiten.

01:52:31.300 --> 01:52:33.300
Und deshalb ist das was total Cooles, das ist so was

01:52:33.300 --> 01:52:35.340
völlig Überraschendes. Als ich das zum ersten

01:52:35.340 --> 01:52:36.140
Mal gesehen habe, habe ich,

01:52:37.020 --> 01:52:38.180
erst versteht man es nicht,

01:52:39.040 --> 01:52:41.120
warum macht man sowas? Und dann

01:52:41.120 --> 01:52:42.560
kommt so ein Aha-Moment

01:52:42.560 --> 01:52:45.240
und dann versteht man es

01:52:45.240 --> 01:52:47.020
immer noch nicht, weil das viel zu simpel ist.

01:52:47.580 --> 01:52:49.120
Das ist sowas Simples und es gibt einem

01:52:49.120 --> 01:52:50.880
so Zugriffszeiten wie bei einem Baum, wo man

01:52:50.880 --> 01:52:53.100
vorher drei Monate mit so

01:52:53.100 --> 01:52:54.980
scheiß Balancing Red-Black-Trees

01:52:54.980 --> 01:52:55.640
verbracht hat.

01:52:57.380 --> 01:52:59.100
Und hinterher sagen sie einem, alles, was

01:52:59.100 --> 01:53:00.900
du hättest machen müssen, wäre Randomized

01:53:00.900 --> 01:53:01.660
irgendwie durchgehen.

01:53:04.120 --> 01:53:05.100
Random Forest.

01:53:07.220 --> 01:53:09.000
Und wenn du eine sortierte Liste hast und

01:53:09.000 --> 01:53:10.800
dann mehrere Skip-Ebenen hast, kannst du das sogar

01:53:10.800 --> 01:53:12.780
garantieren, dass du logarithmische Zugriffszeiten hast.

01:53:14.500 --> 01:53:16.780
Tja, da gibt es schon coole

01:53:16.780 --> 01:53:17.000
Sachen.

01:53:19.520 --> 01:53:20.820
Moment, doch mal, was kannst du

01:53:20.820 --> 01:53:22.820
garantieren, wenn du mehrere...

01:53:23.400 --> 01:53:24.800
Ja, wenn du eine

01:53:24.800 --> 01:53:26.660
sortierte Liste hast, dann

01:53:26.660 --> 01:53:28.780
kannst du so eine Skip-List

01:53:28.780 --> 01:53:30.480
haben, wo du

01:53:30.480 --> 01:53:32.680
auf der untersten Ebene zufällige Skips

01:53:32.680 --> 01:53:34.840
machst und eine Ebene

01:53:34.840 --> 01:53:36.660
drüber machst du zufällige Skips auf

01:53:36.660 --> 01:53:38.700
diesen zufälligen Skips und

01:53:38.700 --> 01:53:40.620
eine Ebene drüber machst du zufällige Skips auf den

01:53:40.620 --> 01:53:42.520
bis du in der obersten Ebene quasi

01:53:42.520 --> 01:53:44.360
vom ersten bis zum letzten Element skippst.

01:53:45.500 --> 01:53:46.560
Und dann kannst du innerhalb

01:53:46.560 --> 01:53:48.200
dieser Skipp-Ebenen

01:53:48.200 --> 01:53:49.780
kannst du binäre Suche machen.

01:53:52.160 --> 01:53:52.580
In der

01:53:52.580 --> 01:53:54.480
Linked-List binäre Suche

01:53:54.480 --> 01:53:56.980
Das ist so ein bisschen wie so ein Reißverschluss.

01:53:58.560 --> 01:54:00.600
Genau, also du kannst entweder sagen,

01:54:00.680 --> 01:54:02.660
du hast das Element gefunden oder du gehst eine Ebene

01:54:02.660 --> 01:54:03.820
runter und suchst genauer.

01:54:04.780 --> 01:54:06.860
Und das gibt dir eben diese logarithmische

01:54:06.860 --> 01:54:08.360
Zugriffszeit, weil du eben

01:54:08.360 --> 01:54:10.840
randomisierten binären Baum

01:54:10.840 --> 01:54:13.160
suchst. Ist das sowas wie ein Random Forest?

01:54:13.180 --> 01:54:15.120
Aber nicht verwalten. Da bin ich total auf dem falschen

01:54:15.120 --> 01:54:15.800
Holzweg gerade.

01:54:17.260 --> 01:54:18.780
Ist es ja kein Baum.

01:54:19.020 --> 01:54:21.660
Es ist so eine

01:54:21.660 --> 01:54:23.040
randomisierte

01:54:23.040 --> 01:54:24.720
Granularität, die du da hast.

01:54:25.560 --> 01:54:26.840
Du hast verschiedene Ebenen

01:54:26.840 --> 01:54:27.920
verschiedener Granularität.

01:54:28.920 --> 01:54:30.100
Und du hast

01:54:30.100 --> 01:54:31.880
Zugriffszeiten wie bei einem Baum, musst

01:54:31.880 --> 01:54:33.440
aber nicht den Baum verwalten und das ist

01:54:33.440 --> 01:54:34.660
super cool.

01:54:36.940 --> 01:54:41.080
Cool. Es ist tatsächlich

01:54:41.080 --> 01:54:42.820
wirklich sehr einfach, sich so eine Liste zu schreiben.

01:54:42.960 --> 01:54:44.320
So eine ganz einfache Linked-List

01:54:44.320 --> 01:54:46.700
schreiben ist super easy und

01:54:46.700 --> 01:54:48.040
jeder sollte das mal ausprobieren.

01:54:50.240 --> 01:54:50.920
Und dann auch

01:54:50.920 --> 01:54:52.800
ein bisschen damit spielen und gucken, wie schnell das ist

01:54:52.800 --> 01:54:54.800
und wie schnell man es machen kann und was man alles damit machen

01:54:54.800 --> 01:54:56.600
kann und ob man eine Queue daraus kriegt und

01:54:56.600 --> 01:54:58.740
ob man da sinnvollerweise eine Queue damit rauskriegt.

01:55:00.440 --> 01:55:01.080
Du meinst,

01:55:01.160 --> 01:55:02.400
da kann man es einfach mit Algorithmen nennen?

01:55:03.900 --> 01:55:04.800
Ja, Algorithmen

01:55:04.800 --> 01:55:05.480
und Datenstrukturen.

01:55:06.780 --> 01:55:08.660
genau, das ist so ein bisschen

01:55:08.660 --> 01:55:10.480
der Grund, warum das

01:55:10.480 --> 01:55:12.520
in Informatikvorlesungen halt oft vorkommt,

01:55:13.100 --> 01:55:14.200
weil man da sehr einfach

01:55:14.200 --> 01:55:16.480
einen Einstieg hat und dann aber

01:55:16.480 --> 01:55:17.540
trotzdem weiter mitkommt.

01:55:19.560 --> 01:55:20.520
Und weil es halt so

01:55:20.520 --> 01:55:22.720
eine fundamentale Datenstruktur ist,

01:55:23.880 --> 01:55:24.520
muss man auch irgendwie,

01:55:24.740 --> 01:55:26.540
sollte man schon irgendwie wissen, wie das funktioniert.

01:55:26.660 --> 01:55:28.140
Das bringt einem ungeheuer viel.

01:55:29.680 --> 01:55:30.480
Ja, und weil man halt

01:55:30.480 --> 01:55:31.940
direkt auf die Probleme stößt, die halt,

01:55:32.880 --> 01:55:34.480
ich glaube, das ist auch der, also da habe ich mich

01:55:34.480 --> 01:55:35.600
vorher gefragt, also

01:55:35.600 --> 01:55:37.480
sagen, warum wird eigentlich, wenn man

01:55:37.480 --> 01:55:39.400
Informatik, das sind doch diese coolen Sachen, wo man so

01:55:39.400 --> 01:55:41.560
Computerspiele macht und irgendwie Grafik und weiß ich

01:55:41.560 --> 01:55:43.240
nicht, so zu zahlen und sich dahin

01:55:43.240 --> 01:55:45.180
und dann wird einem erzählt, also wenn wir jetzt hier,

01:55:45.520 --> 01:55:47.280
wir beschäftigen uns vor allen Dingen damit, wie man so

01:55:47.280 --> 01:55:49.400
Listen sortiert und irgendwie Dinge

01:55:49.400 --> 01:55:51.580
in so Listen wieder sucht

01:55:51.580 --> 01:55:52.480
und findet und so.

01:55:53.260 --> 01:55:55.560
Das macht man jetzt, suchen und sortieren die ganze Zeit

01:55:55.560 --> 01:55:57.360
und dann, ja, der Grund ist halt schon, dass

01:55:57.360 --> 01:55:59.520
irgendjemand hat, vielleicht hat man sogar

01:55:59.520 --> 01:56:01.200
Knut geguckt, also worum

01:56:01.200 --> 01:56:03.520
beschäftigen Rechner eigentlich so den ganzen Tag

01:56:03.520 --> 01:56:05.360
und da war es 70 Prozent waren suchen und sortieren

01:56:05.360 --> 01:56:07.080
von Dingen war halt das, was Rechner so machen.

01:56:08.000 --> 01:56:09.420
Und ja, das ist heute immer noch so,

01:56:09.500 --> 01:56:11.280
glaube ich. Also

01:56:11.280 --> 01:56:13.440
Listen sortieren ist so. Ich glaube eher, dass das mehr wird.

01:56:13.660 --> 01:56:14.640
Es wird wahrscheinlich sogar mehr.

01:56:15.640 --> 01:56:17.360
Weil man doch mehr Fälle gefunden hat,

01:56:17.380 --> 01:56:18.660
wo man das drauf resorzieren kann.

01:56:19.360 --> 01:56:20.560
Weil man mehr Daten hat.

01:56:22.560 --> 01:56:23.260
Oh, sortieren

01:56:23.260 --> 01:56:25.000
und suchen wären auch nochmal so tolle Folgen.

01:56:25.740 --> 01:56:26.100
Ja.

01:56:27.160 --> 01:56:29.060
Das kann man auch mit LinkedLists

01:56:29.060 --> 01:56:31.140
kann man auch sehr schön Sortieralgorithmen

01:56:31.140 --> 01:56:32.760
umsetzen.

01:56:34.480 --> 01:56:35.060
Und auch

01:56:35.060 --> 01:56:36.960
das lohnt sich. Auch das lohnt sich,

01:56:37.100 --> 01:56:39.280
dass man sich mal selber hinsetzt

01:56:39.280 --> 01:56:40.820
und einfach mal BubbleSort

01:56:40.820 --> 01:56:42.840
implementiert. Das ist ja sehr einfach,

01:56:43.020 --> 01:56:44.860
der Algorithmus. Das stimmt. Und

01:56:44.860 --> 01:56:47.040
dann sieht man auch sofort, dass der nur

01:56:47.040 --> 01:56:48.880
eine Handvoll Operationen benötigt und dass

01:56:48.880 --> 01:56:50.840
der langsam ist. Und warum der langsam ist?

01:56:51.040 --> 01:56:52.920
Wenn man sich das dann nämlich rausvisualisiert,

01:56:53.020 --> 01:56:55.060
dann sieht man, was da passiert und das ist großartig.

01:56:56.100 --> 01:56:56.920
Oder ein MergeSort.

01:56:57.040 --> 01:56:58.900
Ein MergeSort ist auch vergleichsweise einfach

01:56:58.900 --> 01:57:01.000
und ist aber eben deutlich schneller

01:57:01.000 --> 01:57:02.760
als BubbleSort.

01:57:02.760 --> 01:57:04.500
Ich mag total gerne

01:57:04.500 --> 01:57:05.260
LSD-Sort.

01:57:06.940 --> 01:57:08.400
Du hast so 10 Buckets

01:57:08.400 --> 01:57:10.600
und da packst du die Sachen einfach dann rückwärts,

01:57:10.700 --> 01:57:12.740
also von der letzten Dezimalstelle immer rein

01:57:12.740 --> 01:57:14.680
und dann packst du einfach die Buckets zusammen

01:57:14.680 --> 01:57:15.140
und dann ist es fertig.

01:57:16.880 --> 01:57:17.120
Okay.

01:57:18.680 --> 01:57:20.540
Das ist auch sehr geil. Das heißt LSD-Sort,

01:57:20.620 --> 01:57:22.560
weil das geht nur, wenn man genügend Drogen genommen hat.

01:57:22.980 --> 01:57:24.700
Nein, nein, das hat damit nichts zu tun.

01:57:25.620 --> 01:57:26.380
Leider natürlich.

01:57:26.840 --> 01:57:27.240
Aber das ist

01:57:27.240 --> 01:57:30.640
super, weil das kannst du auch mit Kindern machen.

01:57:30.640 --> 01:57:32.680
Du kannst einfach denen sagen, hey, pack das mal.

01:57:33.080 --> 01:57:35.000
also so Sortierspiele, pack das mal

01:57:35.000 --> 01:57:36.940
nach der Reihenfolge da rein, dann hast du eine sortierte

01:57:36.940 --> 01:57:37.920
Liste, das ist sehr cool.

01:57:40.660 --> 01:57:40.800
Ja.

01:57:41.240 --> 01:57:42.400
Würde ich nicht sagen, das ist einer der coolsten.

01:57:42.400 --> 01:57:44.820
Und das kann man sehr gut ausprobieren, wenn man sich selber gerade seine

01:57:44.820 --> 01:57:46.780
Linguist geschrieben hat, deshalb ich plädiere

01:57:46.780 --> 01:57:47.820
dafür, dass das jeder mal tut.

01:57:48.560 --> 01:57:50.540
Also es ist so, Radix

01:57:50.540 --> 01:57:52.360
kommt das, ne? Radixort, ja.

01:57:52.660 --> 01:57:54.020
Radixort, ja, Radixort.

01:57:54.240 --> 01:57:54.860
Das kenne ich, ja.

01:57:57.020 --> 01:57:58.220
Es gibt tatsächlich auch

01:57:58.220 --> 01:58:00.500
Verfechter heutzutage und man muss halt auch

01:58:00.500 --> 01:58:02.520
dazu sagen, ja, je nach Anwendungszweck

01:58:02.520 --> 01:58:04.540
sind Arrays besser oder Linked Lists?

01:58:04.680 --> 01:58:06.360
Also warum es LSD ist, was heißt Lists?

01:58:06.640 --> 01:58:08.180
Significant Digit. Ach so, okay.

01:58:08.300 --> 01:58:08.560
Ja, gut.

01:58:12.760 --> 01:58:13.400
Sorry. Okay.

01:58:14.740 --> 01:58:16.520
Es gibt

01:58:16.520 --> 01:58:17.780
es natürlich auch heute noch. Ich habe

01:58:17.780 --> 01:58:20.160
kürzlich einen Artikel gelesen von dem

01:58:20.160 --> 01:58:22.140
Menschen, der Redis

01:58:22.140 --> 01:58:23.780
entwickelt hat,

01:58:24.340 --> 01:58:26.280
der gesagt hat, wir benutzen es an ganz vielen

01:58:26.280 --> 01:58:28.300
Stellen, weil das ist halt das, was man

01:58:28.300 --> 01:58:30.460
braucht. Und auch wenn es so ein kleines bisschen

01:58:30.460 --> 01:58:32.360
verpönt ist, wenn man so ein bisschen belächelt wird,

01:58:32.520 --> 01:58:33.780
Das ist halt das, was richtig ist.

01:58:36.860 --> 01:58:36.900
Und

01:58:36.900 --> 01:58:39.400
er verweist dann auch auf Stellen im

01:58:39.400 --> 01:58:41.580
Linus-Kernel, wo auch Link-Lists verwendet werden

01:58:41.580 --> 01:58:43.640
und sieht es als

01:58:43.640 --> 01:58:45.260
Indiz, dass es halt das Richtige ist.

01:58:46.180 --> 01:58:47.480
Weil das halt das

01:58:47.480 --> 01:58:49.480
Richtige ist. Weil das einen Use-Case

01:58:49.480 --> 01:58:51.680
erfüllt, der sinnvoll

01:58:51.680 --> 01:58:51.900
ist.

01:58:53.840 --> 01:58:54.040
Ja.

01:58:55.940 --> 01:58:56.760
Durchaus. Also ich meine,

01:58:58.960 --> 01:58:59.480
was auch noch so

01:58:59.480 --> 01:59:00.940
eine interessante Geschichte, also auch eine Frage,

01:59:01.220 --> 01:59:02.600
Linklist oder Array

01:59:02.600 --> 01:59:05.420
ist halt, wie indiziert man

01:59:05.420 --> 01:59:07.040
eigentlich, wo fängt man an, 0 oder 1?

01:59:08.460 --> 01:59:09.380
Und Python macht das

01:59:09.380 --> 01:59:10.380
richtig, fängt an 0 an.

01:59:11.860 --> 01:59:13.380
Korrekt, das ist die einzig

01:59:13.380 --> 01:59:14.700
wahre Antwort. Genau.

01:59:15.880 --> 01:59:17.060
Warum macht man das nochmal? Ich hatte

01:59:17.060 --> 01:59:19.180
jemanden, der meinte, das ist total furchtbar, die ganzen

01:59:19.180 --> 01:59:21.340
Entwickler machen alle immer falsch, die fangen immer

01:59:21.340 --> 01:59:23.300
bei 0 an zu zählen. Ja, also weil du

01:59:23.300 --> 01:59:25.080
dann zum Beispiel so nette Sachen machen kannst, wie wenn du

01:59:25.080 --> 01:59:26.740
eine Liste in zwei Teile teilen willst

01:59:26.740 --> 01:59:29.280
und willst sie an der Position 2 teilen,

01:59:29.380 --> 01:59:30.960
dann sagst du einfach Liste

01:59:30.960 --> 01:59:32.380
Ecke-Klammer auf

01:59:32.380 --> 01:59:35.100
Doppelpunkt 2

01:59:35.100 --> 01:59:37.200
Klammer zu oder Liste

01:59:37.200 --> 01:59:38.840
Ecke-Klammer auf 2 Doppelpunkt

01:59:38.840 --> 01:59:41.260
Ecke-Klammer zu und hast dir dann genau an der Position

01:59:41.260 --> 01:59:41.800
2 geteilt.

01:59:42.940 --> 01:59:45.740
Das ist zum Beispiel ein schöner

01:59:45.740 --> 01:59:46.220
Effekt davon.

01:59:47.360 --> 01:59:49.200
Da gibt es tatsächlich eine alte E-Mail

01:59:49.200 --> 01:59:51.260
von Guido von Rossum, wo er genau das

01:59:51.260 --> 01:59:53.420
gefragt wurde, warum er das so gemacht hat

01:59:53.420 --> 01:59:55.060
und genau diese Antwort kommt, dass er sagt,

01:59:55.140 --> 01:59:57.100
wenn du halt diesen Index

01:59:57.100 --> 01:59:59.100
wiederverwendest, dann sind die genau lückenlos

01:59:59.100 --> 02:00:01.220
zusammen. Ich muss mal schauen, ob ich

02:00:01.220 --> 02:00:03.200
diesen Link wieder finde. Das wäre schön, weil

02:00:03.200 --> 02:00:05.240
das mein nettes Argument ist.

02:00:05.240 --> 02:00:07.140
Das wäre schön, ja. Das ist auch sehr angenehm zu lesen. Und der sagt

02:00:07.140 --> 02:00:08.780
auch die anderen Optionen, die du machen kannst.

02:00:09.200 --> 02:00:11.220
Und die haben alle auch ihre

02:00:11.220 --> 02:00:13.300
Plattform. Da gibt es ein super Paper

02:00:13.300 --> 02:00:15.500
von Deikstra.

02:00:17.260 --> 02:00:17.580
Das ist

02:00:17.580 --> 02:00:19.300
im Original. Hat der das handschriftlich

02:00:19.300 --> 02:00:21.460
aufge... Er hat ja so, er hat ja irgendwie in den Diskussionen

02:00:21.460 --> 02:00:22.900
mitbekommen, wo Leute gesagt haben,

02:00:23.100 --> 02:00:25.140
die einen sagten, ah, mit 0 anfangen, die anderen

02:00:25.140 --> 02:00:27.100
mit 1. Und dann der, der

02:00:27.100 --> 02:00:29.020
1 gesagt hat, der sagt dann irgendwann, ah,

02:00:29.100 --> 02:00:31.740
hat denen vorgeworfen, ihr seid

02:00:31.740 --> 02:00:33.760
irgendwie pedantisch, dass ihr da unbedingt auf dieser Null

02:00:33.760 --> 02:00:35.680
besteht, das ist doch eigentlich ganz egal, wir können ja irgendwas

02:00:35.680 --> 02:00:37.240
anfangen zu zählen, sowohl wurscht.

02:00:37.480 --> 02:00:39.580
Das erste Element ist das erste Element, nicht das Nullte.

02:00:40.580 --> 02:00:41.760
Und dann meinte er so,

02:00:42.200 --> 02:00:43.640
ja, also ich hab mir das mal überlegt und

02:00:43.640 --> 02:00:45.700
dann hab ich das mal aufgeschrieben, wie das richtig geht

02:00:45.700 --> 02:00:48.000
und nee, der mit der Eins liegt falsch

02:00:48.000 --> 02:00:49.460
und zwar weil, und

02:00:49.460 --> 02:00:51.820
das dann so auf Karopapier zwei

02:00:51.820 --> 02:00:53.620
Seiten, die er dann handschriftlich vollgeschrieben hat,

02:00:53.860 --> 02:00:55.620
als ich dann zum Beispiel eben, wie man

02:00:55.620 --> 02:00:57.880
sagen kann,

02:00:58.000 --> 02:00:59.500
wie man jetzt, ich glaube, da geht es um,

02:00:59.800 --> 02:01:01.060
er sagt 2, also

02:01:01.060 --> 02:01:03.480
die Folge hat 2,3

02:01:03.480 --> 02:01:05.660
Punkt, Punkt, Punkt, 12 oder so.

02:01:06.180 --> 02:01:07.460
Wie kann ich die jetzt logisch

02:01:07.460 --> 02:01:09.640
hinschreiben? Also überhaupt, ich weiß keine Ahnung,

02:01:09.700 --> 02:01:11.060
wie da drauf gekommen ist, das so zu machen, aber

02:01:11.060 --> 02:01:13.600
und dann hat er alle Möglichkeiten, wie man das hinschreiben

02:01:13.600 --> 02:01:15.660
kann, mit größer, kleiner und so, aufgeschrieben

02:01:15.660 --> 02:01:17.260
und hat gesagt, und ist die dann alle durchgegangen und meinte so,

02:01:17.600 --> 02:01:18.940
also, man könnte jetzt sagen, das wäre gut.

02:01:19.500 --> 02:01:21.340
Das hat folgende Vorteile, folgende Nachteile.

02:01:21.340 --> 02:01:22.500
Man könnte sagen, das macht man so.

02:01:23.040 --> 02:01:25.220
Das ist jetzt auch nicht so gut. Und dann kommt er halt dabei raus

02:01:25.220 --> 02:01:27.120
am Schluss so, ja, nee, man muss mit 0 anfangen.

02:01:27.200 --> 02:01:28.980
Das geht sonst nicht. Ansonsten muss man irgendwie

02:01:28.980 --> 02:01:30.920
kommt man, hat man manchmal

02:01:30.920 --> 02:01:33.060
Vergleiche mit, also mit, wo man

02:01:33.060 --> 02:01:35.180
einen Index minus, also wo

02:01:35.180 --> 02:01:36.880
Null nicht das kleinste ist, sondern

02:01:36.880 --> 02:01:38.820
irgendwas drunter.

02:01:39.460 --> 02:01:41.220
Also wenn man jetzt da

02:01:41.220 --> 02:01:43.180
so unnatürliche Zahlen als Index

02:01:43.180 --> 02:01:45.180
verwendet, das ist irgendwie nicht gut. Das sollte

02:01:45.180 --> 02:01:45.960
man nicht machen.

02:01:47.160 --> 02:01:49.100
Also es ist wirklich, es ist auch sehr amüsant zu

02:01:49.100 --> 02:01:51.200
lesen und, aber es ist

02:01:51.200 --> 02:01:53.120
auch sehr überzeugend. Also am Schluss denke ich so, ja

02:01:53.120 --> 02:01:55.220
stimmt, musst du mit Null indizieren, das geht

02:01:55.220 --> 02:01:56.440
nicht anders. Und

02:01:56.440 --> 02:02:02.380
Und ja, am Schluss endet das, diese zwei Seiten, die er geschrieben hat,

02:02:02.440 --> 02:02:04.240
endet auch mit einem sehr schönen Zitat, wo er dann schreibt,

02:02:04.360 --> 02:02:07.680
ja, ich weiß jetzt gar nicht, von wem das, er zieht ja da irgendjemand anders.

02:02:08.060 --> 02:02:10.820
Er meinte so, ja, also warum regen sich die Leute an so einer Stelle

02:02:10.820 --> 02:02:13.300
dann immer darüber auf und werfen dann vor, dass da Leute pedantisch sind?

02:02:13.620 --> 02:02:16.360
Das ist deswegen, weil so soziale Exklusionen muss man halt,

02:02:16.360 --> 02:02:18.860
wenn es um so religiöse Überzeugungen geht, immer dann besonders machen.

02:02:19.300 --> 02:02:22.380
Nicht deswegen, weil man Angst davor hat,

02:02:22.440 --> 02:02:25.020
dass andere Leute vielleicht was Falsches denken könnten,

02:02:25.100 --> 02:02:26.800
sondern der eigentliche Grund ist

02:02:26.800 --> 02:02:29.000
die Möglichkeit, dass sie recht haben könnten.

02:02:29.120 --> 02:02:30.620
Deswegen muss man da besonders draufhauen.

02:02:31.480 --> 02:02:32.700
Und das ist halt, ja, das ist so.

02:02:33.320 --> 02:02:34.160
Das muss man ausschließen.

02:02:35.020 --> 02:02:35.340
Ja, genau.

02:02:36.600 --> 02:02:39.080
Super. Ja, also da kann man das mal nachlesen.

02:02:39.280 --> 02:02:40.800
Das müsste man auch unbedingt in die Schulungsbücher nehmen.

02:02:40.800 --> 02:02:41.880
Ja, genau.

02:02:43.260 --> 02:02:44.900
Was ich auch manchmal gerne mache,

02:02:45.080 --> 02:02:46.700
ist, man kann, wenn man jetzt

02:02:46.700 --> 02:02:48.600
in einer Liste so bestimmte Teile

02:02:48.600 --> 02:02:50.660
markieren will, da kann man natürlich

02:02:50.660 --> 02:02:52.460
irgendwie Liste, klicke ich da mal auf,

02:02:52.680 --> 02:02:54.120
anfangen, Doppelpunkt Ende,

02:02:54.420 --> 02:02:56.400
hinschreiben. Man kann aber auch,

02:02:56.460 --> 02:02:58.460
es gibt irgendwie ein Bild in Slice, wo man

02:02:58.460 --> 02:03:00.120
sagen kann, Slice irgendwie

02:03:00.120 --> 02:03:02.200
Anfang, Ende

02:03:02.200 --> 02:03:03.920
und dann kann man eben Namen geben.

02:03:04.320 --> 02:03:06.160
Und dann kann man das Ding direkt reintun.

02:03:06.260 --> 02:03:08.180
Das heißt, man kann sagen irgendwie, das ist jetzt

02:03:08.180 --> 02:03:10.200
irgendwie die, weiß ich nicht, der Name oder

02:03:10.200 --> 02:03:11.520
sowas. Und dann gibt dann, sagt man,

02:03:12.260 --> 02:03:13.860
großgeschrieben Name, gleich Slice

02:03:13.860 --> 02:03:16.020
5,12, Klammer zu.

02:03:16.380 --> 02:03:18.400
Und dann kann man hinterher sagen, Liste, Ecke, Klammer auf,

02:03:18.400 --> 02:03:20.380
Name, Ecke, Klammer zu. Das ist

02:03:20.380 --> 02:03:21.200
manchmal ganz nett.

02:03:23.900 --> 02:03:24.300
Ja,

02:03:24.420 --> 02:03:26.580
genau, es gibt natürlich noch diverse Geschichten

02:03:26.580 --> 02:03:28.520
in Python, auch die eher so mit Arrays zu tun haben.

02:03:28.640 --> 02:03:30.220
Es gibt das Array-Modul,

02:03:30.740 --> 02:03:31.660
also das Array-Modul

02:03:31.660 --> 02:03:34.240
in der Standardbibliothek, immer sehr schön.

02:03:34.340 --> 02:03:36.380
Da kann man dann tatsächlich solche Sachen, die alle den gleichen Typ haben,

02:03:36.440 --> 02:03:38.420
reinschreiben. Es gibt auch die Verallgemeinerung

02:03:38.420 --> 02:03:40.380
davon. Sind da sowas, was

02:03:40.380 --> 02:03:42.000
die Indizes dann direkt mit drin oder sowas?

02:03:43.220 --> 02:03:43.580
Indizes,

02:03:44.100 --> 02:03:46.500
dass man da irgendwie dann Dinge drin suchen kann

02:03:46.500 --> 02:03:48.360
oder... Ja, zum Beispiel, oder Zugriff direkt

02:03:48.360 --> 02:03:50.140
Nee, das ist nur, das sind nur

02:03:50.140 --> 02:03:52.220
dann einfache Arrays. Also für sowas kannst du

02:03:52.220 --> 02:03:54.120
dann Pandas oder NumPy oder so. Okay,

02:03:54.320 --> 02:03:56.480
Da muss ich ja direkt immer enumeraten oder so.

02:03:57.200 --> 02:03:58.840
Aber es gibt Memory Views.

02:03:58.940 --> 02:04:00.940
Memory Views sind dafür da, dass man halt so Daten,

02:04:01.200 --> 02:04:03.400
die halt irgendwie im Hauptspeicher zusammenliegen,

02:04:03.500 --> 02:04:06.040
irgendwie durch die Gegend schieben kann,

02:04:06.140 --> 02:04:08.480
ohne dass man jetzt exakt ranschreibt, was das jetzt ist.

02:04:08.680 --> 02:04:11.000
Sondern man kann die Daten einfach in der Gegend rumschieben

02:04:11.000 --> 02:04:12.460
und dann ist es halt ein Memory View.

02:04:12.620 --> 02:04:14.780
Und dann kann man aus dem Memory View wieder irgendwas anderes machen.

02:04:14.900 --> 02:04:18.760
Ein NumPy Array oder halt ein Array oder sonst irgendwas,

02:04:18.760 --> 02:04:22.460
in dem man dann halt dazu sagt, du hast jetzt irgendwie folgende Struktur.

02:04:23.220 --> 02:04:24.140
Und dann kann man halt auch so

02:04:24.140 --> 02:04:27.100
multidimensional

02:04:27.100 --> 02:04:28.120
werden oder so.

02:04:29.180 --> 02:04:31.060
Aber wichtig ist oft, dass man das Ding

02:04:31.060 --> 02:04:33.160
als gesamten Block im Hauptsprecher

02:04:33.160 --> 02:04:34.500
irgendwie rumschieben kann.

02:04:35.300 --> 02:04:36.740
Und dafür sind Memory Views ganz gut.

02:04:37.460 --> 02:04:38.280
Das ist auch ganz nett.

02:04:39.100 --> 02:04:41.400
Das muss natürlich in den Hauptsprecher passen.

02:04:41.900 --> 02:04:43.380
Ja, wenn es nicht reinpasst,

02:04:43.520 --> 02:04:45.160
dann gut, dann muss man was anderes machen.

02:04:46.600 --> 02:04:47.240
Eine Ibis oder so.

02:04:48.140 --> 02:04:48.580
Genau.

02:04:48.940 --> 02:04:51.340
Was auch nett ist, ist, wenn man

02:04:51.340 --> 02:04:52.320
die NumPy

02:04:52.320 --> 02:04:55.120
macht da auch noch viele magische

02:04:55.120 --> 02:04:56.720
Geschichten mit. Man kann jetzt auch mehrere Sachen,

02:04:57.820 --> 02:04:59.220
wenn er jetzt mehrdimensionale Arrays

02:04:59.220 --> 02:05:01.260
hat, sowas gibt es nicht in der Standardbibliothek.

02:05:02.060 --> 02:05:03.100
Aber es gibt halt

02:05:03.100 --> 02:05:05.120
die Möglichkeit, das zu

02:05:05.120 --> 02:05:07.260
benutzen. Also das sieht Python schon vor,

02:05:07.460 --> 02:05:08.300
auch wenn es jetzt

02:05:08.300 --> 02:05:10.780
keine Objekte in der Standardbibliothek implementiert,

02:05:10.840 --> 02:05:12.880
dieses Interface. Aber dass du halt

02:05:12.880 --> 02:05:15.020
sagst, Index, Doppelpunkt,

02:05:15.100 --> 02:05:16.900
irgendwas, Komma und dann die nächste

02:05:16.900 --> 02:05:17.260
Dimension.

02:05:18.720 --> 02:05:20.340
Das macht der NumPy halt,

02:05:21.120 --> 02:05:22.080
kann man auch verwenden,

02:05:22.320 --> 02:05:24.240
und

02:05:24.240 --> 02:05:26.520
ein Ding, das man da häufig

02:05:26.520 --> 02:05:28.460
sieht, was halt komisch aussieht, man kann auch

02:05:28.460 --> 02:05:30.460
statt, also wenn man jetzt sowas schreiben würde, wie

02:05:30.460 --> 02:05:32.640
x, Ecke, Klammer auf

02:05:32.640 --> 02:05:34.740
i, Komma und dann Doppelpunkt, Komma, Doppelpunkt,

02:05:34.840 --> 02:05:35.680
Komma, Doppelpunkt irgendwie,

02:05:36.440 --> 02:05:38.660
um halt nur eine bestimmten,

02:05:39.480 --> 02:05:40.460
also eine bestimmte

02:05:40.460 --> 02:05:42.500
Dimension rauszuziehen

02:05:42.500 --> 02:05:44.660
und genau, alle anderen Sachen

02:05:44.660 --> 02:05:46.320
halt dann beliebig zu lassen,

02:05:46.880 --> 02:05:48.700
dann kann man dafür auch Ellipsis verwenden und einfach

02:05:48.700 --> 02:05:50.420
Klammer auf i, Komma,

02:05:50.600 --> 02:05:52.680
Punkt, Punkt, Punkt schreiben. Das sieht man häufig

02:05:52.680 --> 02:05:54.800
und dann, also hat mich aber anfangs total verwirrt.

02:05:56.300 --> 02:05:57.380
Hä, was ist das denn?

02:05:57.980 --> 02:05:58.100
Ja.

02:05:59.040 --> 02:06:01.120
Kann man sich auch noch mal ein bisschen was sparen?

02:06:01.820 --> 02:06:01.920
Ja.

02:06:02.620 --> 02:06:04.900
Was gibt es sonst noch nennenswertes

02:06:04.900 --> 02:06:05.680
über Listen zu sagen?

02:06:07.260 --> 02:06:08.660
Ich glaube, du musst einmal noch ganz kurz

02:06:08.660 --> 02:06:10.580
über Ellipsis was sagen, weil vielleicht ist das immer noch nicht

02:06:10.580 --> 02:06:12.860
Ja, das ist sowieso so ein interessantes

02:06:12.860 --> 02:06:14.660
Spezial-Ding.

02:06:15.280 --> 02:06:16.820
Also ich sehe das relativ häufig, ich benutze

02:06:16.820 --> 02:06:18.780
das auch mal, wenn ich irgendwas fertig machen möchte.

02:06:19.300 --> 02:06:21.060
Einfach so als Platzhalter in meinem Kopf.

02:06:21.320 --> 02:06:22.960
Aber es ist nicht so ganz richtig verwendet.

02:06:23.280 --> 02:06:24.880
Man kann einfach drei Punkte machen irgendwo und peißen.

02:06:25.560 --> 02:06:27.080
Genau, es gibt auch, man kann es auch ausschreiben.

02:06:27.520 --> 02:06:29.100
Das funktioniert erst mal wie ein Pass, oder?

02:06:29.560 --> 02:06:31.540
Wenn du einfach nur drei Punkte schreibst, ist es wie ein Pass.

02:06:31.940 --> 02:06:33.640
Genau, aber es verhält sich in manchen anderen Kontexten

02:06:33.640 --> 02:06:34.780
halt manchmal so ein bisschen anders.

02:06:35.960 --> 02:06:37.820
Man kann es auch, also in Typ-Annotationen

02:06:37.820 --> 02:06:39.160
wird es häufig verwendet für,

02:06:39.760 --> 02:06:41.500
da steht jetzt halt irgendwas, irgendwie,

02:06:41.500 --> 02:06:43.400
keine Ahnung, oder halt eben

02:06:43.400 --> 02:06:44.960
in diesen

02:06:44.960 --> 02:06:47.640
Index-Geschichten

02:06:47.640 --> 02:06:51.480
man kann auch Ellipsis einfach tatsächlich

02:06:51.480 --> 02:06:53.580
ausschreiben. Und wenn man jetzt sagt, Punkt, Punkt, Punkt

02:06:53.580 --> 02:06:55.420
ist Ellipsis, dann sagt Python halt

02:06:55.420 --> 02:06:56.920
true. Das ist halt das gleiche Objekt.

02:06:58.380 --> 02:06:58.520
Ja.

02:07:00.700 --> 02:07:01.060
Genau.

02:07:01.740 --> 02:07:03.360
Ja, aber es ist halt irgendwie komisch. Es sieht anders aus

02:07:03.360 --> 02:07:05.440
als andere Sachen und man weiß oft nicht so genau, was es denn sein

02:07:05.440 --> 02:07:05.600
soll.

02:07:06.600 --> 02:07:06.760
Ja.

02:07:09.300 --> 02:07:10.240
Ja, ja, ja, ja.

02:07:14.000 --> 02:07:15.300
Ansonsten, ich weiß nicht,

02:07:15.300 --> 02:07:17.300
was noch ganz interessant ist. Das sortet

02:07:17.300 --> 02:07:19.080
irgendwie eine Kopie macht, das sollte man vielleicht wissen,

02:07:19.200 --> 02:07:20.900
das kann einem böse beißen, wenn man das nicht weiß.

02:07:21.920 --> 02:07:23.060
Also man kann entweder... Aber das ist doch Absicht,

02:07:23.120 --> 02:07:25.260
das ist doch extra so. Ja, ja, ist extra so, aber

02:07:25.260 --> 02:07:26.240
genau.

02:07:26.960 --> 02:07:29.200
Sonst kann man ja PunktSort, oder PunktSort macht

02:07:29.200 --> 02:07:30.400
das halt in place, genau.

02:07:31.400 --> 02:07:31.560
Ja.

02:07:33.920 --> 02:07:35.440
Auch das sorgt oft für Verwirrung,

02:07:35.540 --> 02:07:36.980
weil PunktSort gibt nämlich nichts zurück.

02:07:37.700 --> 02:07:39.400
Genau, was dazu führt, dass man es nicht chainen kann

02:07:39.400 --> 02:07:41.220
und wenn man halt

02:07:41.220 --> 02:07:43.100
aus der Data-Science-Welt kommt und dann ist man plötzlich in einer

02:07:43.100 --> 02:07:45.220
anderen Welt, dann kriegen Leute

02:07:45.220 --> 02:07:46.580
plötzlich irgendwie seltsame Probleme.

02:07:47.300 --> 02:07:49.440
Ja, ja, ja.

02:07:52.220 --> 02:07:52.580
Ja.

02:07:55.460 --> 02:07:56.560
Aber ansonsten,

02:07:56.640 --> 02:08:00.360
ja, mir fällt jetzt auch ehrlich gesagt nicht mehr viel ein.

02:08:01.040 --> 02:08:02.500
Weiß nicht, wenn jemand noch eine gute Idee hat.

02:08:04.680 --> 02:08:06.260
Listen, listen. Noch was?

02:08:08.060 --> 02:08:09.940
Auf der Liste nicht mehr genug drauf?

02:08:11.000 --> 02:08:11.800
Nö, mehr habe ich hier nicht.

02:08:13.280 --> 02:08:14.040
Ja, aber ich würde sagen,

02:08:14.040 --> 02:08:15.860
das ging doch jetzt einigermaßen

02:08:15.860 --> 02:08:17.300
flott.

02:08:17.820 --> 02:08:19.280
Das ging erstaunlich flott jetzt von da.

02:08:21.540 --> 02:08:21.980
Ja.

02:08:22.520 --> 02:08:24.100
Wir warten jetzt auf die Rückfragen

02:08:24.100 --> 02:08:25.740
und beantworten. Genau, und beantworten

02:08:25.740 --> 02:08:27.720
muss man zu Listen, alle Rückfragen zu Listen.

02:08:28.020 --> 02:08:29.840
Ja, also ihr wisst ja immer, wie Feedback wie immer

02:08:29.840 --> 02:08:31.140
hallo.peisenpodcast.de

02:08:31.140 --> 02:08:33.700
Ja. Dürft ihr uns gerne schreiben,

02:08:33.860 --> 02:08:35.920
wenn ihr irgendwie Feedback-Anregungen, Kritik,

02:08:37.040 --> 02:08:37.720
Beleidigungen

02:08:37.720 --> 02:08:39.340
zuwerfen wollt. Hatten wir auch schon.

02:08:39.960 --> 02:08:41.740
Ja, ja, ja. Ihr selten.

02:08:42.020 --> 02:08:43.840
Ganz viele tolle Posten. Vielen Dank

02:08:43.840 --> 02:08:45.540
dafür immer. Das mögen wir sehr gerne.

02:08:45.860 --> 02:08:50.460
Es gibt ein sehr schönes

02:08:50.460 --> 02:08:51.680
Buch von John Scalzi

02:08:51.680 --> 02:08:54.440
mit dem Titel Your Hate Mail Will Be

02:08:54.440 --> 02:08:56.420
Graded, wo er

02:08:56.420 --> 02:08:58.500
einfach Briefe, die er bekommen hat,

02:08:58.820 --> 02:09:00.260
veröffentlicht und kommentiert.

02:09:02.420 --> 02:09:04.320
Das ist auch eine sehr interessante Art, damit umzugehen.

02:09:05.520 --> 02:09:06.240
Wenn man das

02:09:06.240 --> 02:09:08.460
öffentlich sagt, dass man das tut, dann kriegt man auch weniger.

02:09:08.880 --> 02:09:10.260
Ich mache Profit aus den Sachen,

02:09:10.260 --> 02:09:10.880
die er mir schickt.

02:09:11.700 --> 02:09:12.960
Ich finde es fair.

02:09:14.160 --> 02:09:16.480
Wir haben noch unseren Pick der Woche, des Monats, der Episode.

02:09:16.960 --> 02:09:18.460
Okay, ja. Ja, ich habe einen.

02:09:18.620 --> 02:09:20.300
Ah, du hast einen. Ich habe mir extra

02:09:20.300 --> 02:09:22.820
einen ausgedacht. Ist eine Python-Bibliothek.

02:09:23.220 --> 02:09:24.300
Open AI Whisper.

02:09:24.800 --> 02:09:26.280
Ah, okay. Vorsicht,

02:09:26.460 --> 02:09:27.740
nicht PIP-Install Whisper.

02:09:28.280 --> 02:09:30.400
Das ist was anderes, sondern man muss das

02:09:30.400 --> 02:09:31.700
aus dem GitHub-Repo installieren.

02:09:32.500 --> 02:09:34.380
Ist ein trainiertes

02:09:34.380 --> 02:09:36.380
Modell zur Spracherkennung.

02:09:37.000 --> 02:09:38.520
Das heißt, es gibt mal ein WAV-File

02:09:38.520 --> 02:09:40.380
oder ein MP3 oder sonst irgendwas und der

02:09:40.380 --> 02:09:42.420
gibt einem den Text, der da

02:09:42.420 --> 02:09:44.060
gesagt wurde, zurück.

02:09:44.160 --> 02:09:57.540
Und es funktioniert erstaunlich gut und es funktioniert auch erstaunlich einfach, weil man hat ja oft so ein bisschen, also ich habe oft so ein bisschen Berührungsangst, wenn dann irgendwo steht, ja, hier ist ein Modell veröffentlicht worden. Es ist tatsächlich einfach nur pip install.

02:09:58.380 --> 02:10:01.120
Also für verschiedene Modelle gibt es sowieso so coole Sachen.

02:10:02.700 --> 02:10:11.440
Und dann drei Zeilen Code und dann tatsächlich Spracherkennung. Also ich habe es ausprobiert und es funktioniert erstaunlich gut.

02:10:11.440 --> 02:10:13.360
Das funktioniert das auch mit Deutsch irgendwie halbwegs?

02:10:14.160 --> 02:10:30.360
Ja, funktioniert auch mit Deutsch. Es gibt verschiedene Modelle, die für die verschiedenen Sprachen eingestellt sind und das hat tatsächlich mit Deutsch so gut funktioniert. Also ich habe Lorem Ipsum reingeschrieben, reingesagt und er hat dann deutsche Wörter daraus gehört.

02:10:32.020 --> 02:10:54.880
Also kennt ihr so ein paar Sachen? Es gibt ja diese ganzen Machine Learning Tools, es gibt ja irgendwie so ein paar, ich nenne es jetzt mal High-Level-Wrapper, Gradio zum Beispiel oder so, wo man einfach so eine App deployen kann, die direkt mit so einem Web-Interface läuft, wo man dann so ein Modell hat, was man dann direkt benutzen kann, irgendwie mit so einem Easy-Web-Interface und sowas, das ist halt total nett zum Dämonen oder Pocken oder MVPen oder sowas.

02:10:56.260 --> 02:10:56.520
Ja.

02:10:56.680 --> 02:10:58.620
Vielleicht in der Kombination mit Streamlit, falls ihr das kennt.

02:10:59.820 --> 02:11:00.740
Das macht auch so

02:11:00.740 --> 02:11:02.000
Web-Apps und für so

02:11:02.000 --> 02:11:04.500
Data-Science-Krams hast du dann direkt

02:11:04.500 --> 02:11:06.520
irgendwie Überblick

02:11:06.520 --> 02:11:08.700
über, weiß ich nicht, Analytics,

02:11:08.980 --> 02:11:10.720
Data Exploration und dann

02:11:10.720 --> 02:11:11.880
kannst du direkt das Modell speichern.

02:11:11.920 --> 02:11:14.640
Da kommen jetzt schon wieder meine Berührungsängste, die ich gerade gesagt habe,

02:11:14.720 --> 02:11:16.580
weil es so kompliziert ist, da den Einstieg zu finden.

02:11:17.580 --> 02:11:18.640
Ja, da müssen wir vielleicht mal

02:11:18.640 --> 02:11:20.280
eine eigene Folge zu machen. Aber das wäre nicht mein Pick,

02:11:20.380 --> 02:11:22.400
aber das hat mich gerade sehr daran erinnert, dass du eine so eine

02:11:22.400 --> 02:11:24.720
schöne, kleine, schnelle Benutzung

02:11:24.720 --> 02:11:26.520
von so einem Modell hast. Zum Beispiel Gradio nutzt

02:11:26.520 --> 02:11:27.900
jetzt komplett Hugging-Face-Zio.

02:11:28.740 --> 02:11:30.500
Da hast du Zugriff über zwei Zeilen

02:11:30.500 --> 02:11:32.420
Python-Code auf, weiß nicht, 10.000 Modelle oder so

02:11:32.420 --> 02:11:34.440
vortrainierte. Und die du einfach direkt

02:11:34.440 --> 02:11:36.180
benutzen kannst. Das ist sehr geil. Ja, auch sehr cool.

02:11:36.380 --> 02:11:38.300
Ja, ist auf jeden Fall. Ja, genau. Ist mir auch schon

02:11:38.300 --> 02:11:40.420
aufgefallen. Viele Leute packen das

02:11:40.420 --> 02:11:42.560
auch auf ihre GitHub-Repos und so.

02:11:44.380 --> 02:11:44.600
Ja.

02:11:46.460 --> 02:11:47.940
Was auch ganz interessant ist, gerade da,

02:11:48.060 --> 02:11:49.740
jetzt habe ich das wieder ein bisschen vergessen,

02:11:50.060 --> 02:11:52.200
leider, ich habe

02:11:52.200 --> 02:11:54.320
mich mit diesem Audio, ich habe mich ja schon ein bisschen

02:11:54.320 --> 02:11:55.040
damit beschäftigt.

02:11:56.520 --> 02:11:58.380
dieser Automatic Speech Recognition

02:11:58.380 --> 02:11:58.900
und

02:11:58.900 --> 02:12:01.800
da früher,

02:12:02.460 --> 02:12:03.140
so

02:12:03.140 --> 02:12:06.160
ganz, ganz früher, so

02:12:06.160 --> 02:12:07.300
2015, 16,

02:12:07.620 --> 02:12:10.240
als die Deep Speech Modelle

02:12:10.240 --> 02:12:11.120
So lange her, hey?

02:12:11.760 --> 02:12:13.920
Also es gab einen riesen Fortschritt, also

02:12:13.920 --> 02:12:15.860
irgendwie niemand hat das richtig hingekriegt,

02:12:16.000 --> 02:12:17.720
weil irgendwie hat alles nicht funktioniert

02:12:17.720 --> 02:12:20.340
und die ersten Modelle,

02:12:20.440 --> 02:12:21.900
die so richtig gut funktioniert haben, auch

02:12:21.900 --> 02:12:24.620
Deep Learning angewendet auf Speech Recognition

02:12:24.620 --> 02:12:26.240
waren halt Deep Speech 1, 2

02:12:26.240 --> 02:12:28.280
für Englisch, Chinesisch

02:12:28.280 --> 02:12:30.700
und genau, dann gab es

02:12:30.700 --> 02:12:32.580
immer da so Verbesserungen und so, aber das Problem

02:12:32.580 --> 02:12:34.280
immer für Deutschland, dass es nie funktioniert, weil

02:12:34.280 --> 02:12:36.520
beziehungsweise, es gibt ein paar Firmen,

02:12:36.580 --> 02:12:37.940
die konnten das gut machen, irgendwie

02:12:37.940 --> 02:12:39.940
Microsoft, Google, Apple,

02:12:40.840 --> 02:12:42.600
Amazon, weil sie halt die Trainingsappen

02:12:42.600 --> 02:12:44.460
dafür haben, ja, die einen dadurch, dass sie halt

02:12:44.460 --> 02:12:46.460
Telefone verkaufen, wo die Leute reinquatschen

02:12:46.460 --> 02:12:48.380
und die anderen dadurch, dass sie halt irgendwie

02:12:48.380 --> 02:12:50.420
den Leuten so irgendwie Lautsprecher

02:12:50.420 --> 02:12:52.080
in die Wohnung stellen oder weiß ich nicht

02:12:52.080 --> 02:12:53.260
und

02:12:53.260 --> 02:12:56.320
ja, die konnten das halt machen, aber

02:12:56.320 --> 02:12:58.500
alle anderen eigentlich nicht, weil die Trainingsdaten gab es halt

02:12:58.500 --> 02:12:59.820
nicht. Und

02:12:59.820 --> 02:13:02.380
dann gab es, gibt es dieses

02:13:02.380 --> 02:13:03.800
tolle Common Voice Projekt von Mozilla,

02:13:04.300 --> 02:13:06.320
wo dann halt

02:13:06.320 --> 02:13:07.900
sozusagen so

02:13:07.900 --> 02:13:09.880
Datenspenden gesammelt wurden,

02:13:10.260 --> 02:13:11.960
dass man konnte man halt irgendwie ein paar Sätze sagen,

02:13:12.200 --> 02:13:13.640
die einem vorgegeben wurden und dann

02:13:13.640 --> 02:13:16.120
wurden das halt als Trainingsdaten

02:13:16.120 --> 02:13:16.780
verwendet für

02:13:16.780 --> 02:13:20.460
dieses Common Voice, für diesen Trainingsdatenkorpus

02:13:20.460 --> 02:13:22.120
und die haben auch selber ein Modell trainiert,

02:13:22.220 --> 02:13:23.740
das halt basierte, glaube ich, auf Deep Speech

02:13:23.740 --> 02:13:26.100
und das dann halt

02:13:26.100 --> 02:13:28.060
auf so eine Word-Error-Rate gekommen ist, die halt relativ

02:13:28.060 --> 02:13:29.880
gut ist, um halt Leuten anbieten zu können,

02:13:30.220 --> 02:13:32.500
okay, ihr könnt die Spracherkennung auch direkt auf eurem

02:13:32.500 --> 02:13:34.380
Raspberry Pi oder so machen und müsst

02:13:34.380 --> 02:13:36.300
es nicht irgendwie an eine Google-API schicken, weil das ist

02:13:36.300 --> 02:13:38.580
eigentlich ja schon nicht so geil, weil die können einen dann ja

02:13:38.580 --> 02:13:40.340
quasi ausnehmen, wenn man irgendwie selber

02:13:40.340 --> 02:13:42.460
ein Produkt baut oder so, muss immer eine Google-API fragen

02:13:42.460 --> 02:13:44.460
und dann sagt Google irgendwann so, ja, nette Gewinne

02:13:44.460 --> 02:13:46.380
macht ihr da, wir hätten auch mal gern was von ab.

02:13:47.040 --> 02:13:48.520
Ja, oder noch schlimmer finde ich, die können einfach

02:13:48.520 --> 02:13:49.700
einen ausschließen oder so.

02:13:50.180 --> 02:13:59.740
Genau, und das ist ja auch irgendwie so Mozilla irgendwie so ein bisschen der Zweck, dass man das so ein bisschen irgendwie auch den Leuten ermöglicht, dass sie was tun können.

02:14:00.380 --> 02:14:05.040
Also eigentlich alles super gut, aber es gab halt nicht genug Trainingsdaten für Deutsch, dass man das hätte irgendwie wirklich trainieren können.

02:14:05.620 --> 02:14:13.440
Aber inzwischen gibt es halt große Fortschritte und zwar, das war ja auch schon bei diesen Natural Language Processing Modellen so,

02:14:13.440 --> 02:14:15.640
dass der Riesenschritt zu

02:14:15.640 --> 02:14:17.420
oh mein Gott, man kann jetzt da Dinge machen, die

02:14:17.420 --> 02:14:19.360
früher waren, eigentlich

02:14:19.360 --> 02:14:21.220
eher diese Self-Supervised-Geschichten,

02:14:21.340 --> 02:14:23.440
dass man halt die Modelle

02:14:23.440 --> 02:14:25.320
dadurch trainiert hat, dass man denen Lückentexte gegeben hat

02:14:25.320 --> 02:14:26.580
und man gibt ihnen einfach irgendwelchen Text,

02:14:27.120 --> 02:14:29.280
trainiert das Modell dadurch, dass man es

02:14:29.280 --> 02:14:31.580
quasi

02:14:31.580 --> 02:14:33.120
voraussagen lässt, welches Wort

02:14:33.120 --> 02:14:35.420
in dieser Lücke gestanden

02:14:35.420 --> 02:14:37.280
hat und es dann halt belohnt oder bestraft,

02:14:37.380 --> 02:14:38.740
je nachdem, wie nah das da halt dran war.

02:14:39.660 --> 02:14:40.960
Und das heißt, man kann plötzlich, und

02:14:40.960 --> 02:14:43.100
dann kann man dieses Modell verwenden für was ganz anderes.

02:14:43.440 --> 02:15:10.320
Ja, aber um dieses Problem Lückentext ausfüllen irgendwie hinzubekommen, muss das Modell halt quasi ganz viel über die Sprache lernen und auch über die Konzepte, die da drin sind. Und eigentlich muss es die fast verstehen können, ja. Sonst kann es das halt nicht gut tun. Und wenn man das Modell halt dann mit genug Texten aus dem ganzen Internet halt prügelt, dann kann es das halt irgendwann. Und dann kann man das aber für andere Sachen verwenden, wie für das Problem, was man eigentlich lösen will, was ja vielleicht was ganz anderes ist. Funktioniert dann aber immer noch super.

02:15:10.740 --> 02:15:37.900
Und so ähnlich funktioniert das mit dem Audiokram auch. Und zwar, ich weiß jetzt, die genauen Verfahren kenne ich jetzt alle nicht. Ich habe es inzwischen wieder vergessen. Da haben Leute das auf irgendwie, weiß ich nicht, tausenden und Millionen Stunden, ich glaube ein paar hunderttausend Stunden YouTube-Videos trainiert, self-supervised und dann nur ein paar annotierte Trainingsbeispiele für irgendwie.

02:15:37.900 --> 02:15:39.680
also dieses Audio war übrigens

02:15:39.680 --> 02:15:41.620
jetzt folgender Satz.

02:15:41.900 --> 02:15:43.560
Und das hat dann auch schon super funktioniert.

02:15:43.660 --> 02:15:45.640
Das heißt quasi, die

02:15:45.640 --> 02:15:46.900
Dinger haben self-supervised auf

02:15:46.900 --> 02:15:49.600
unfassbaren Mengen Audio gelernt, was

02:15:49.600 --> 02:15:51.480
halt so Audio ist und wie das funktioniert, wie Sprache so

02:15:51.480 --> 02:15:53.020
funktioniert. Also

02:15:53.020 --> 02:15:54.600
in Form der

02:15:54.600 --> 02:15:56.740
Audio

02:15:56.740 --> 02:15:58.700
quasi Repräsentation.

02:15:59.480 --> 02:16:01.260
Und dann hat man

02:16:01.260 --> 02:16:03.600
dieses gelernte Modell benutzt, um halt

02:16:03.600 --> 02:16:05.600
mit Transkriptionen

02:16:05.600 --> 02:16:06.640
nochmal zusätzlich zu verändern.

02:16:06.640 --> 02:16:08.420
Ja, dann wirklich halt daraus Text zu machen.

02:16:08.760 --> 02:16:10.440
Und das funktioniert total super. Also die

02:16:10.440 --> 02:16:12.760
Modelle sind alle inzwischen nochmal viel besser als Deep Speech

02:16:12.760 --> 02:16:14.440
und so. Und du brauchst nicht mehr diese gigantischen

02:16:14.440 --> 02:16:16.180
Trainingsdatenmengen. Das heißt,

02:16:16.660 --> 02:16:18.660
ja, eigentlich ist es quasi,

02:16:19.100 --> 02:16:20.700
dieses Problem ist mehr oder weniger gelöst.

02:16:21.840 --> 02:16:22.660
Ist halt jetzt nur

02:16:22.660 --> 02:16:24.220
so eine Frage, wie kriegt man das gut

02:16:24.220 --> 02:16:26.580
irgendwie so umgesetzt, dass es halt gut funktioniert. Also es

02:16:26.580 --> 02:16:28.200
gibt ein Modell, das halt super gute

02:16:28.200 --> 02:16:30.640
Genauigkeit hat,

02:16:30.720 --> 02:16:32.640
aber das braucht halt irre lange. Also bei mir

02:16:32.640 --> 02:16:34.500
braucht das halt pro Faktor

02:16:34.500 --> 02:16:36.580
30 irgendwie von, also wenn du

02:16:36.580 --> 02:16:38.640
zehn Sekunden Audio hast, brauchst du es halt Faktor 30,

02:16:38.840 --> 02:16:40.840
um halt Text rauszumachen. Das kann man

02:16:40.840 --> 02:16:42.060
praktisch nicht so gut verwenden, weil

02:16:42.060 --> 02:16:44.740
eigentlich muss ja Echtzeit sein. Und es braucht dann auch viel

02:16:44.740 --> 02:16:46.500
Hauptspeicher und viel und so weiter.

02:16:47.720 --> 02:16:48.820
Genau. Also, aber

02:16:48.820 --> 02:16:50.200
das wird ja alles auch noch besser, denke ich mal.

02:16:51.560 --> 02:16:52.900
Also bei diesem

02:16:52.900 --> 02:16:54.720
Whisper sind

02:16:54.720 --> 02:16:56.600
verschiedene Modelle dabei und ich habe jetzt nur das

02:16:56.600 --> 02:16:58.540
Tiny-Modell ausprobiert. Das hat

02:16:58.540 --> 02:17:00.500
einen Faktor ungefähr von 0,2.

02:17:01.620 --> 02:17:02.580
Das heißt, in

02:17:02.580 --> 02:17:04.660
deine 30 Sekunden Audio

02:17:04.660 --> 02:17:05.860
hättest du dann eben in

02:17:05.860 --> 02:17:08.540
sechs Sekunden

02:17:08.540 --> 02:17:12.080
durchtranskribiert.

02:17:12.980 --> 02:17:14.400
Und ich war von der Qualität

02:17:14.400 --> 02:17:16.420
sehr positiv überrascht. Für so ein kleines

02:17:16.420 --> 02:17:18.500
Modell, sehr, sehr positiv

02:17:18.500 --> 02:17:20.460
überrascht, dass das so gut funktioniert. Also musst du auf jeden Fall

02:17:20.460 --> 02:17:21.200
mal ausprobieren, Jochen.

02:17:22.060 --> 02:17:24.260
Ja, für Podcasts ist das nicht ganz uninteressant, ja.

02:17:26.360 --> 02:17:28.560
Und wie gesagt, da gibt es halt mehrere Größen,

02:17:28.740 --> 02:17:30.460
je nachdem, wie viel du runterladen willst und wie viele

02:17:30.460 --> 02:17:32.060
Grafikkarten du zu verbrennen hast.

02:17:33.440 --> 02:17:34.360
Oh, hmm.

02:17:34.660 --> 02:17:36.520
und kannst anschauen.

02:17:36.720 --> 02:17:38.560
Die kleinen Modelle laufen auch alle auf CPU

02:17:38.560 --> 02:17:40.240
und das ist ziemlich cool.

02:17:43.200 --> 02:17:43.640
Cool, ja, schön.

02:17:43.780 --> 02:17:44.800
Das ist ja praktisch.

02:17:45.600 --> 02:17:45.780
Bitte?

02:17:46.060 --> 02:17:46.920
Da hast du auch einen Blick.

02:17:47.160 --> 02:17:48.360
Oh, ja, ich dachte eigentlich,

02:17:48.360 --> 02:17:49.860
ich wollte hier das Specialist picken,

02:17:49.980 --> 02:17:51.020
aber das habe ich ja jetzt schon verbrannt.

02:17:51.320 --> 02:17:51.440
Mist.

02:17:52.340 --> 02:17:53.140
Ich habe gerade immer geguckt.

02:17:53.220 --> 02:17:54.000
Es gibt eine andere Geschichte,

02:17:54.140 --> 02:17:55.740
die halt, also wenn man irgendwie mal gucken will,

02:17:56.320 --> 02:17:58.780
wie, welche Sachen im Code langsam oder schnell sind,

02:17:59.440 --> 02:18:00.760
gibt es schöne Profile inzwischen,

02:18:01.080 --> 02:18:01.980
hat sich einiges getan

02:18:01.980 --> 02:18:04.320
und ein wirklich netter ist

02:18:04.320 --> 02:18:06.500
Skalinen. Genau, packe ich auch nicht

02:18:06.500 --> 02:18:07.820
so, Shownotes, da kann man

02:18:07.820 --> 02:18:09.220
eine Menge sehen.

02:18:10.480 --> 02:18:12.460
Ich habe wieder so einen kleinen Pick und ich habe

02:18:12.460 --> 02:18:14.560
PureMagic entdeckt, fand ich

02:18:14.560 --> 02:18:16.620
ganz cool. Aus der Standard

02:18:16.620 --> 02:18:18.380
Lib kann man auf

02:18:18.380 --> 02:18:20.520
Falt schmeißen

02:18:20.520 --> 02:18:22.500
und weiß dann so ein bisschen,

02:18:22.680 --> 02:18:24.500
was das denn für ein Dateiformat sein könnte

02:18:24.500 --> 02:18:25.000
oder so.

02:18:26.260 --> 02:18:26.740
Ah, die Magic

02:18:26.740 --> 02:18:29.620
Numbers.

02:18:30.140 --> 02:18:31.800
Mögliche Extensions raus oder so, genau.

02:18:31.980 --> 02:18:33.860
Das gibt schon Konfidenz und so.

02:18:35.020 --> 02:18:35.820
Ja, cool.

02:18:36.960 --> 02:18:38.420
Und das ist in der Standardlib?

02:18:38.940 --> 02:18:39.860
Ja, Pyramidic, ja.

02:18:40.440 --> 02:18:41.020
Das ist ja Hammer.

02:18:41.800 --> 02:18:43.400
Ich weiß nicht, ist das in der Standardlib?

02:18:44.120 --> 02:18:44.740
Ich weiß nicht, ich werde es nachgucken.

02:18:44.960 --> 02:18:46.260
Ja, es ist bei PyPI auf jeden Fall.

02:18:47.340 --> 02:18:48.860
Aber mir ist das aufgefallen,

02:18:49.860 --> 02:18:50.960
weil ich es darauf kam, weil ich diesen

02:18:50.960 --> 02:18:52.980
Pep gelesen habe von Christian Heimers,

02:18:53.160 --> 02:18:54.740
wo halt dann welche denn die

02:18:54.740 --> 02:18:56.700
Pakete sind, die das ersetzen können,

02:18:56.820 --> 02:18:58.460
die aus der Standardlib duplicated sind.

02:18:58.460 --> 02:18:59.420
Ach so, ja.

02:19:00.640 --> 02:19:02.800
Ich glaube, Pure Magic ist vielleicht nicht drin, aber ...

02:19:02.800 --> 02:19:04.820
Nee, das ist ein externes, aber genau.

02:19:04.840 --> 02:19:06.760
Aber es macht genau das, was ich mir da vorgestellt habe.

02:19:06.900 --> 02:19:08.040
Ah, okay. Ja, ist ja auch interessant.

02:19:09.360 --> 02:19:10.140
Cool, cool, cool.

02:19:11.200 --> 02:19:14.840
Ich habe noch einen zweiten Pick, in Anführungszeichen.

02:19:14.860 --> 02:19:15.640
Noch einen Pick.

02:19:16.060 --> 02:19:18.700
Weil das Post-Pick,

02:19:19.100 --> 02:19:21.640
weil das zum Thema des heutigen Abends sehr gut passt.

02:19:21.640 --> 02:19:22.060
Oh, okay.

02:19:22.180 --> 02:19:25.440
Nannybell.se

02:19:25.440 --> 02:19:29.560
Das ist ein soziales Netzwerk, so ähnlich wie Facebook,

02:19:29.820 --> 02:19:32.700
aber es läuft immer nur lokal auf dem eigenen Telefon.

02:19:33.720 --> 02:19:36.660
Und Datenaustausch funktioniert nur über Bluetooth

02:19:36.660 --> 02:19:38.520
mit Geräten, die in der Nähe sind.

02:19:39.320 --> 02:19:41.660
Das heißt, die Posts, die man dann schreibt,

02:19:41.780 --> 02:19:44.920
die verbreiten sich dann eben langsam in der sozialen Hülle,

02:19:46.120 --> 02:19:50.320
die halt in der Nähe ist.

02:19:51.360 --> 02:19:51.840
Witzig.

02:19:51.980 --> 02:19:53.980
Das finde ich ein sehr schönes Gegenmodell zu dem,

02:19:54.060 --> 02:19:54.860
was man sonst so hat.

02:19:57.740 --> 02:20:00.160
Ich werde sicherlich keins laufen lassen.

02:20:00.320 --> 02:20:01.800
Also das ist für die Leute, die nicht miteinander reden,

02:20:01.880 --> 02:20:03.400
sondern nebeneinander auf ihren Handys rumhacken, oder?

02:20:04.780 --> 02:20:05.080
Genau.

02:20:06.640 --> 02:20:08.080
Wenn man sich Bilder teilen möchte,

02:20:08.220 --> 02:20:08.780
dann ist das gut.

02:20:10.800 --> 02:20:11.980
Nein, aber das, also

02:20:11.980 --> 02:20:14.040
ich meine, wenn du jemanden

02:20:14.040 --> 02:20:15.780
kennst, der jemanden kennt, der jemanden kennt, der jemanden kennt,

02:20:15.840 --> 02:20:18.040
dann kannst du auch bei dem die Posts sehen, aber halt

02:20:18.040 --> 02:20:19.120
erst langsamer.

02:20:21.000 --> 02:20:22.100
Die verbreiten sich dann

02:20:22.100 --> 02:20:24.140
eben durch dieses Netzwerk durch.

02:20:25.360 --> 02:20:26.120
Das finde ich irgendwie

02:20:26.120 --> 02:20:27.420
Aber verbreiten sich alles zu allen?

02:20:28.140 --> 02:20:29.200
Also geht das dann weiter?

02:20:30.080 --> 02:20:32.140
Nee, ich glaube, ich weiß nicht genau,

02:20:32.220 --> 02:20:33.000
wie die das gelöst haben.

02:20:33.580 --> 02:20:35.760
Aber man kann irgendwie halt folgen

02:20:35.760 --> 02:20:38.500
und das muss ja dann irgendwie schließlich da ankommen.

02:20:38.700 --> 02:20:40.440
Also es wird irgendwie so ein, keine Ahnung,

02:20:40.860 --> 02:20:41.980
Distributed Hashtable

02:20:41.980 --> 02:20:43.640
Routing sein,

02:20:44.540 --> 02:20:45.920
was sich halt langsam, was da halt langsam

02:20:45.920 --> 02:20:46.600
hinkonvergiert.

02:20:48.660 --> 02:20:49.020
Interessant.

02:20:50.360 --> 02:20:52.060
Okay, aber ich glaube, das haben wir es heute

02:20:52.060 --> 02:20:53.840
tatsächlich dann doch geschafft. Vielen Dank, dass ihr

02:20:53.840 --> 02:20:55.360
bis hierhin durchgehalten habt und

02:20:55.360 --> 02:20:57.640
ich fand es war eine schöne Folge, hat mir viel Spaß gemacht.

02:20:57.740 --> 02:20:59.240
Vielen Dank Johannes, dass du wieder dabei warst.

02:20:59.340 --> 02:21:01.680
Ja, sehr gerne, mir hat es auch viel Spaß gemacht.

02:21:01.820 --> 02:21:03.720
Danke Jochen. Und ich freue mich schon

02:21:03.720 --> 02:21:05.940
auf die nächste Listen-Folge. Bleibt uns gewogen

02:21:05.940 --> 02:21:06.900
und hört uns zu.

02:21:07.900 --> 02:21:09.320
Vielen Dank für eure Aufmerksamkeit.

02:21:10.140 --> 02:21:10.500
Tschüssi.
