WEBVTT

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

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

00:00:09.200 --> 00:00:10.560
Johannes ist hier dabei, hi Johannes.

00:00:11.160 --> 00:00:11.880
Hallo Johannes.

00:00:12.260 --> 00:00:12.820
Hallo Jochen.

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

00:00:15.420 --> 00:00:15.680
Hi.

00:00:16.660 --> 00:00:22.540
Ja, wir haben uns ein bisschen Zeit gelassen mit dieser Episode, manchmal ist ein bisschen viel zu tun, gerade in dieser dunklen Jahreszeit.

00:00:23.740 --> 00:00:24.140
Ja.

00:00:24.140 --> 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.600
Genau, also, ja.

00:00:31.920 --> 00:00:33.860
Wie fandet ihr das Release? Wie fandet ihr Python 3.11?

00:00:34.000 --> 00:00:34.840
Habt ihr es schon ausprobiert?

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

00:00:37.860 --> 00:00:39.800
das tatsächlich schon und zwar

00:00:39.800 --> 00:00:41.800
auch so produktiv und so und

00:00:41.800 --> 00:00:43.800
war

00:00:43.800 --> 00:00:45.100
überraschend wenig

00:00:45.100 --> 00:00:47.980
Stress irgendwie das Update diesmal

00:00:47.980 --> 00:00:49.780
und für die meisten Sachen, die ich so verwende,

00:00:49.860 --> 00:00:51.680
gab es auch schon Reels, also musste nicht mehr,

00:00:51.780 --> 00:00:53.860
normalerweise muss man am Anfang immer irgendwie alle Dinge

00:00:53.860 --> 00:00:55.740
dann neu komponieren und so, das war jetzt

00:00:55.740 --> 00:00:57.400
mir gar nicht aufgefallen, dass das irgendwie

00:01:00.000 --> 00:01:29.980
und die Programmiersprache Python.

00:01:30.000 --> 00:01:31.900
nach wenigen Wochen

00:01:31.900 --> 00:01:33.620
Benutzung auch schon.

00:01:34.520 --> 00:01:36.100
Wie du hast Spacepacks, Jochen, wenn du Fotos hast?

00:01:36.220 --> 00:01:36.920
Ja, ja, ja.

00:01:37.940 --> 00:01:39.700
Auf und zu raise ich mal irgendwas,

00:01:40.200 --> 00:01:41.700
einfach nur so, weil es so gut aussieht.

00:01:43.060 --> 00:01:44.400
Und nee, aber das ist mir auch schon,

00:01:44.540 --> 00:01:46.060
also das

00:01:46.060 --> 00:01:47.720
möchte ich nicht mehr missen.

00:01:47.720 --> 00:01:49.840
Es zeigt einem relativ direkt,

00:01:49.960 --> 00:01:51.260
wo was kaputt ist und

00:01:51.260 --> 00:01:53.260
das ist wirklich sehr hilfreich.

00:01:53.460 --> 00:01:55.520
Und kommen wir dazu mit Rich, dann zum Beispiel Rich Spacepacks,

00:01:55.580 --> 00:01:56.000
sehr toll.

00:01:58.080 --> 00:01:59.720
Pip kann auch Rich, übrigens.

00:01:59.720 --> 00:02:00.180
Kennt ihr das?

00:02:01.180 --> 00:02:04.140
Wenn Rich installiert ist, nutzt Pip automatisch Rich.

00:02:04.640 --> 00:02:05.960
Ja, und dann hat man so farbige

00:02:05.960 --> 00:02:07.760
Progress Bars und sowas.

00:02:07.780 --> 00:02:08.800
Wundervoll, ich stehe auf sowas.

00:02:10.420 --> 00:02:12.040
Alles nur Eye Candy.

00:02:13.440 --> 00:02:13.940
Ja, aber

00:02:13.940 --> 00:02:15.780
es sieht schon alles besser aus, wenn wir sagen, als früher.

00:02:16.020 --> 00:02:17.840
Früher mussten wir ja unsere

00:02:17.840 --> 00:02:20.060
Pakete mit der Brieftaube

00:02:20.060 --> 00:02:20.820
geschickt bekommen.

00:02:21.220 --> 00:02:22.120
Das Deal ist ja alles.

00:02:24.640 --> 00:02:26.000
Wenn wir das nicht gebraucht haben,

00:02:26.000 --> 00:02:27.800
dann kriegen die Kinder das von heute auch nicht.

00:02:29.720 --> 00:02:36.000
Ich habe mich mal kennengelernt, der aus den 80er Jahren berichtete von C und so, wie furchtbar das alles war.

00:02:37.800 --> 00:02:39.780
Das ist bei C, glaube ich, heute immer noch so.

00:02:40.480 --> 00:02:42.200
Dass ich die wirklich verbessere.

00:02:42.920 --> 00:02:48.640
Aber das ist eine gute Überleitung, weil einer der Gründe, warum Python 3.11 jetzt so anders ist oder eine Neuerung,

00:02:49.100 --> 00:02:53.660
ist vielleicht, dass an der C-Unterbau etwas gearbeitet worden ist.

00:02:54.720 --> 00:02:57.260
Naja, es ist ja das Release von C-Python-Interpreter.

00:02:57.260 --> 00:02:57.520
Ja, aber

00:02:57.520 --> 00:03:00.640
genau, also ja, es ist halt

00:03:00.640 --> 00:03:03.340
einiges, also es ist echt

00:03:03.340 --> 00:03:04.360
viel passiert und

00:03:04.360 --> 00:03:07.080
Das ist schneller, oder?

00:03:07.260 --> 00:03:09.160
Das ist immer der Grund, warum man Leuten empfiehlt

00:03:09.160 --> 00:03:10.460
auf neue Python zu gehen

00:03:10.460 --> 00:03:13.380
Das ist wirklich viel, viel schneller, also nicht überall

00:03:13.380 --> 00:03:15.100
aber in vielen Anwendungen ist es wirklich deutlich

00:03:15.100 --> 00:03:16.440
performanter geworden

00:03:16.440 --> 00:03:19.020
So viel 20-25%

00:03:19.020 --> 00:03:19.660
wunkelt man

00:03:19.660 --> 00:03:22.700
Also je nach Anwendung kommt es halt darauf an

00:03:22.700 --> 00:03:24.440
also es kann auch deutlich mehr sein noch

00:03:24.440 --> 00:03:26.420
also, aber es ist insgesamt

00:03:26.420 --> 00:03:28.460
überall ist wahrscheinlich so 25% schneller ungefähr.

00:03:29.800 --> 00:03:30.240
Und

00:03:30.240 --> 00:03:32.360
das ist auch nochmal ein gutes Stückchen mehr als

00:03:32.360 --> 00:03:34.580
die Verbesserungen vorher. Also es wird

00:03:34.580 --> 00:03:35.500
ja immer ein bisschen schneller von

00:03:35.500 --> 00:03:38.400
Version zu Version und diesmal ist es aber

00:03:38.400 --> 00:03:39.420
ein größerer Sprung als

00:03:39.420 --> 00:03:42.040
sozusagen normalerweise oder bisher.

00:03:42.660 --> 00:03:44.000
Ja, was halt vor allen Dingen daran liegt, dass

00:03:44.000 --> 00:03:45.840
jetzt halt eine Menge Leute tatsächlich

00:03:45.840 --> 00:03:47.360
dediziert an diesem Problem arbeiten.

00:03:48.680 --> 00:03:49.900
Und ja,

00:03:50.160 --> 00:03:51.580
da der

00:03:51.580 --> 00:03:53.640
Release-Manager von

00:03:53.640 --> 00:03:56.100
Python 3.11 irgendwie

00:03:56.100 --> 00:04:26.080
und die

00:04:26.100 --> 00:04:56.080
und Jochen unterhalten sich über die Programmiersprache Python

00:04:56.100 --> 00:04:58.100
Application Binary Interface nicht mehr ändert. Also, dass

00:04:58.100 --> 00:05:00.120
sozusagen C-Funktionen ihre Signaturen nicht mehr ändern und so.

00:05:01.500 --> 00:05:02.320
Das garantiert

00:05:02.320 --> 00:05:03.940
man ab einem bestimmten Punkt, damit die

00:05:03.940 --> 00:05:05.960
Pakete, die man zu dem Zeitpunkt

00:05:05.960 --> 00:05:07.540
oder nach diesem Zeitpunkt halt

00:05:07.540 --> 00:05:10.000
gebaut hat, also Wheels, die man dann kompiliert hat, dass die

00:05:10.000 --> 00:05:10.980
noch auch mit dem

00:05:10.980 --> 00:05:13.920
richtigen Release funktionieren. Das muss man halt

00:05:13.920 --> 00:05:16.000
früh genug machen, sonst hat man halt nicht genug

00:05:16.000 --> 00:05:17.680
fertig kompilierte

00:05:17.680 --> 00:05:19.120
Binary, sonst ist das halt ein Problem.

00:05:19.940 --> 00:05:21.740
Das Problem ist aber, wenn man jetzt irgendwie

00:05:21.740 --> 00:05:24.040
dahinter, nachdem man diese Schwelle überschritten

00:05:24.040 --> 00:05:26.040
hat, dann noch Bugs findet, bei denen man

00:05:26.040 --> 00:05:28.040
gerne was ändern würde, dann geht das

00:05:28.040 --> 00:05:30.040
halt nicht mehr. Und dann muss man halt teilweise

00:05:30.040 --> 00:05:31.780
sehr komplizierte Dinge tun, damit man das

00:05:31.780 --> 00:05:33.240
trotzdem fixen kann.

00:05:34.300 --> 00:05:36.000
Und solche Sachen sind halt leider passiert.

00:05:36.600 --> 00:05:38.020
Unter anderem sind halt solche Dinge

00:05:38.020 --> 00:05:39.680
und weil halt, naja,

00:05:39.720 --> 00:05:41.360
auch was halt für diese

00:05:41.360 --> 00:05:43.960
Performance-Optimierungen verantwortlich ist,

00:05:44.080 --> 00:05:44.560
dass halt

00:05:44.560 --> 00:05:47.920
Dinge halt nicht mehr

00:05:47.920 --> 00:05:49.900
so gemacht werden, also sie werden

00:05:49.900 --> 00:05:51.460
eine Zeit lang ganz normal so

00:05:51.460 --> 00:05:54.140
interpretiert, der Interpreter-Widecode

00:05:54.140 --> 00:05:55.420
so wie er normalerweise interpretiert wird.

00:05:55.420 --> 00:05:57.240
und wenn das dann achtmal passiert ist oder so,

00:05:57.360 --> 00:05:59.180
dann sagt er halt, okay, jetzt schalte ich auf etwas anderes um.

00:05:59.540 --> 00:06:01.020
Ist mir das zu blöd? Habe ich das achtmal gemacht?

00:06:01.100 --> 00:06:03.240
Mache ich nicht nochmal? Und nimmt halt eine spezialisierte

00:06:03.240 --> 00:06:04.820
Version davon, die halt dann zum Beispiel

00:06:04.820 --> 00:06:07.360
Integer addiert

00:06:07.360 --> 00:06:08.860
oder Floats addiert und dann

00:06:08.860 --> 00:06:11.160
das halt nicht mit Objekten macht, sondern direkt

00:06:11.160 --> 00:06:12.680
irgendwie auf dem Prozessor.

00:06:13.780 --> 00:06:15.280
Und das geht auch meistens

00:06:15.280 --> 00:06:17.260
gut, aber dann so, es gab halt so fiese

00:06:17.260 --> 00:06:19.280
Bugs wie, naja, also das

00:06:19.280 --> 00:06:21.200
passiert zum Beispiel auch beim Attribut-Access und

00:06:21.200 --> 00:06:23.080
dann manchmal ist es halt so, dann

00:06:23.080 --> 00:06:25.120
funktioniert dann die ersten acht Attribut-Accesse

00:06:25.120 --> 00:06:27.440
funktionieren halt und beim

00:06:27.440 --> 00:06:29.340
neunten Mal wird halt

00:06:29.340 --> 00:06:31.260
die Klassenvariable genommen, also wenn du

00:06:31.260 --> 00:06:32.600
zum Beispiel, das machen ja viele Leute,

00:06:33.140 --> 00:06:34.960
dass sie halt in der Klasse halt

00:06:34.960 --> 00:06:37.340
sozusagen die Parameter, die ein Objekt bekommt, definieren

00:06:37.340 --> 00:06:39.520
und wenn du dann eine Instanz

00:06:39.520 --> 00:06:40.940
machst, instanzierst das Ding,

00:06:41.300 --> 00:06:43.200
dann überschreibst du das. Und die Instanz

00:06:43.200 --> 00:06:45.280
Variablen, also wenn Attribute an der Instanz

00:06:45.280 --> 00:06:47.200
hängen, dann überschreiben die immer das, was

00:06:47.200 --> 00:06:49.320
an der Klasse dran steht, sodass es kein Problem ist.

00:06:50.280 --> 00:06:51.240
Und jetzt kam halt

00:06:51.240 --> 00:06:52.780
dann irgendwann so ein Bug Report rein und da war einer so

00:06:52.780 --> 00:07:22.760
und Jochen unterhalten sich über die Programmiersprache Python

00:07:22.780 --> 00:07:23.580
Fallbacks.

00:07:24.100 --> 00:07:26.960
Das ist natürlich total schrecklich,

00:07:27.060 --> 00:07:28.940
wenn man so einen Bug hat. Also einmal war es

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

00:07:31.020 --> 00:07:32.300
halt super schwierig, den zu fixen,

00:07:32.980 --> 00:07:35.060
ohne die C-Api nochmal anfassen zu müssen

00:07:35.060 --> 00:07:37.040
und naja, also alles ganz, ganz schrecklich.

00:07:38.140 --> 00:07:39.220
Ja, der hat auf jeden Fall

00:07:39.220 --> 00:07:39.720
sehr gejammert,

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

00:07:44.160 --> 00:07:45.100
Aber, naja, gut,

00:07:45.200 --> 00:07:46.920
es hat halt trotzdem funktioniert, also insofern.

00:07:47.780 --> 00:07:47.860
Ja.

00:07:48.440 --> 00:07:50.840
Aber das ist so ein Problem, oder, wenn zu viele Leute

00:07:50.840 --> 00:07:52.500
an einer Software arbeiten, dass dann

00:07:52.500 --> 00:07:54.720
halt irgendwie doch schwieriger ist

00:07:54.720 --> 00:07:56.340
oder stressiger oder so.

00:07:56.960 --> 00:07:57.140
Ja.

00:07:58.340 --> 00:08:00.360
Wenn nur zwei oder drei,

00:08:00.460 --> 00:08:01.920
ich glaube, da gibt es irgendwo so eine Grenze.

00:08:02.280 --> 00:08:04.600
Wenn nur zwei oder drei so zusammenarbeiten und man sich jeden Tag

00:08:04.600 --> 00:08:06.400
sieht, dann ist das auch nicht so wild,

00:08:06.500 --> 00:08:08.680
weil dann ist irgendwie das gesamte Wissen so verteilt,

00:08:08.820 --> 00:08:10.640
aber wenn es dann mehr Leute werden,

00:08:10.740 --> 00:08:11.820
dann ist es einfach da

00:08:11.820 --> 00:08:14.400
so Sachen, die so ineinander greifen.

00:08:14.860 --> 00:08:16.480
Also das ist meine Erfahrung, ich weiß nicht, wie es

00:08:16.480 --> 00:08:17.820
euch da geht. Ja, ja, absolut.

00:08:17.960 --> 00:08:20.580
Die Komplizität, auch wenn mehr Leute an einem Projekt

00:08:20.580 --> 00:08:22.180
sind, steigt nicht linear, sondern

00:08:22.180 --> 00:08:22.840
irgendwie

00:08:22.840 --> 00:08:26.140
bösartiger. Exponentiell.

00:08:26.420 --> 00:08:27.640
Exponentiell weiß ich jetzt auch nicht.

00:08:29.000 --> 00:08:30.000
Aber irgendwie dieser.

00:08:30.100 --> 00:08:31.220
Also fünf Leute geht noch, oder?

00:08:31.420 --> 00:08:34.020
Sechs, sieben geht vielleicht auch.

00:08:34.140 --> 00:08:35.800
Ja, da muss man dann schon

00:08:35.800 --> 00:08:36.940
Prozesse haben und so.

00:08:38.540 --> 00:08:39.640
Und ganz schlimm wird es,

00:08:40.200 --> 00:08:42.120
also ich würde mich dem Lager zuordnen,

00:08:42.220 --> 00:08:44.000
das sagt, also mehr als ein Team

00:08:44.000 --> 00:08:45.620
an der Software arbeiten,

00:08:45.900 --> 00:08:47.140
vielleicht sowieso keine so gute Idee.

00:08:47.540 --> 00:08:49.900
Also wenn man jetzt quasi aus dem Bereich, wo man noch

00:08:49.900 --> 00:08:51.500
ein Team haben kann, rauskommt, hat jetzt mehrere Teams,

00:08:51.500 --> 00:08:56.840
Da gibt es dann ja auch irgendwie diverse Dinge, aber ehrlich gesagt, das ist alles so schrecklich.

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

00:09:00.840 --> 00:09:03.440
weil wenn du ein gutes Team hast, das kleiner ist, dann kann das eigentlich

00:09:03.440 --> 00:09:07.060
fast immer schneller sein, als egal, wie viele Leute du drauf riffst,

00:09:07.160 --> 00:09:09.460
weil das kriegst du eh nicht mehr organisiert.

00:09:12.100 --> 00:09:13.500
Naja, keine Ahnung.

00:09:13.780 --> 00:09:15.440
Was für eine optimale Teamgröße würdest du sagen, Jochen?

00:09:16.540 --> 00:09:18.140
Da fünf oder so was.

00:09:19.920 --> 00:09:21.340
Ich würde sagen vier.

00:09:21.500 --> 00:09:23.500
4, warum 4?

00:09:24.640 --> 00:09:26.000
Weil 5 schon zu groß ist

00:09:26.000 --> 00:09:27.340
5 ist ein großes Team schon

00:09:27.340 --> 00:09:30.340
4 ist ein mittleres Team, 3 ist ein kleines Team

00:09:30.340 --> 00:09:30.840
das ist super

00:09:30.840 --> 00:09:33.700
und alles über 5 ist nicht gut

00:09:33.700 --> 00:09:35.440
da musst du dann viel Management machen

00:09:35.440 --> 00:09:37.520
da brauchst du dann jemanden, der

00:09:37.520 --> 00:09:40.080
assistiert und jemanden, der koordiniert

00:09:40.080 --> 00:09:41.920
und dann gehst du schon

00:09:41.920 --> 00:09:42.300
in so

00:09:42.300 --> 00:09:45.780
Ist bei dir bei den 4 Leuten die Kommunikation mit dem Kunden mit drin?

00:09:45.980 --> 00:09:46.400
bei den 4?

00:09:46.540 --> 00:09:49.740
Oder macht das noch jemand mit Managing ein Projekt?

00:09:50.080 --> 00:09:51.200
Das kommt aus dem Projekt

00:09:51.200 --> 00:09:51.620
an.

00:09:53.760 --> 00:09:55.100
Es gibt ja Projekte,

00:09:55.180 --> 00:09:56.900
die haben gar keinen Kunden in dem Sinne.

00:09:57.020 --> 00:09:59.100
Zum Beispiel Python. Python hat ja keinen Kunden.

00:10:00.080 --> 00:10:01.100
Keiner, der sagt,

00:10:01.340 --> 00:10:02.940
ich habe aber das hier

00:10:02.940 --> 00:10:03.620
beauftragt.

00:10:04.500 --> 00:10:06.420
Aber die Software-Community ist ja kein

00:10:06.420 --> 00:10:06.540
Kunden.

00:10:07.140 --> 00:10:08.740
Du musst ja auch Kommunikation machen.

00:10:08.860 --> 00:10:11.080
Du hast ja auch eine Product-Ownership

00:10:11.080 --> 00:10:11.800
in gewisser Weise.

00:10:12.360 --> 00:10:12.880
Nö.

00:10:14.520 --> 00:10:16.540
Die Community

00:10:16.540 --> 00:10:17.460
muss das halt annehmen.

00:10:17.460 --> 00:10:23.980
Da ist man ja sozusagen, das ist ja ein schöner Fall eigentlich.

00:10:24.120 --> 00:10:26.180
Also ich würde ja denken, Produktmanagement

00:10:26.180 --> 00:10:26.840
ist halt Marketing.

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

00:10:29.580 --> 00:10:31.880
Marketing gucken, das geht nur um die

00:10:31.880 --> 00:10:33.980
Kommunikationsschnellen mit dem Kunden, also jemand, der

00:10:33.980 --> 00:10:36.320
quasi User-Stories baut und die koordiniert.

00:10:38.000 --> 00:10:39.820
Ja, aber was soll ich so User-Stories geben?

00:10:39.980 --> 00:10:41.880
Bei Python-Entwicklung brauchst du so einen Quatsch halt nicht.

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

00:10:44.260 --> 00:10:45.520
Also das machst du halt, wenn du

00:10:45.520 --> 00:10:47.040
Ja, also, aber

00:10:47.040 --> 00:10:50.020
Nee, aber das brauchst du dann schon

00:10:50.020 --> 00:10:51.700
zusätzlich, wenn du einen Kunden hast

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

00:10:54.040 --> 00:10:56.020
hast, der spezifische Wünsche hat,

00:10:56.500 --> 00:10:57.920
dann brauchst du schon eine Rolle, die nicht

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

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

00:11:01.940 --> 00:11:03.900
Und da brauchst du dann schon einen PO

00:11:03.900 --> 00:11:05.300
oder einen, keine Ahnung.

00:11:05.580 --> 00:11:07.920
Ja, du brauchst halt jemanden, der, also vor allen Dingen, wenn die Entwickler auch nicht

00:11:07.920 --> 00:11:09.760
selber die, also das ist halt immer das Ding,

00:11:10.340 --> 00:11:12.300
eben, ist halt eine Marketingrolle

00:11:12.300 --> 00:11:13.900
und das halt produktlöslich mal

00:11:13.900 --> 00:11:15.840
wäre halt aus meiner Sicht so ein Anwalt

00:11:15.840 --> 00:11:17.960
des Kunden. Das ist halt vor allen Dingen

00:11:17.960 --> 00:11:19.820
dann wichtig, wenn man selber als Entwickler

00:11:19.820 --> 00:11:21.620
das halt nicht verwendet und auch gar nicht verwenden kann

00:11:21.620 --> 00:11:23.740
und wenn es um irgendeine andere Geschichte geht,

00:11:23.800 --> 00:11:25.740
mit der man gar nichts zu tun hat, dann brauchst du jemanden,

00:11:25.800 --> 00:11:27.400
der diese Rolle einnimmt.

00:11:27.480 --> 00:11:29.760
Wenn ich irgendwas mache, was ich selber verwende, dann brauche ich

00:11:29.760 --> 00:11:31.660
das nicht. Dann kann ich das super selber machen.

00:11:32.220 --> 00:11:33.860
Da wäre, wenn mir dann jemand

00:11:33.860 --> 00:11:35.540
erzählt, wie ich das verwenden soll,

00:11:35.800 --> 00:11:36.880
fände ich komisch, weil

00:11:36.880 --> 00:11:39.760
ich meine, also wie kann das

00:11:39.760 --> 00:11:40.080
jeder...

00:11:40.080 --> 00:11:41.960
für den ich auch selber User-Stories

00:11:41.960 --> 00:11:43.980
und Tustins Backlog

00:11:43.980 --> 00:11:45.940
und du darfst nur an den

00:11:45.940 --> 00:11:48.140
Sachen arbeiten, die gerade im aktuellen Sprint

00:11:48.140 --> 00:11:48.900
drin sind, Jochen.

00:11:49.580 --> 00:11:51.460
Ja, also, weiß ich nicht.

00:11:54.560 --> 00:11:55.820
Doch, ich mache das auch für,

00:11:55.940 --> 00:11:57.580
klar, auch für meine privaten Projekte.

00:11:58.160 --> 00:11:59.760
Natürlich, auch für Skripte, so

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

00:12:01.800 --> 00:12:02.760
geschrieben, erstmal ein Epic.

00:12:03.440 --> 00:12:05.960
Ja, weiß ich nicht.

00:12:06.380 --> 00:12:07.700
Da war es doch die Accountability dann,

00:12:07.700 --> 00:12:09.740
die Responsibility, Jochen, bist du auch selber für dich

00:12:09.740 --> 00:12:13.280
in Biddable.

00:12:13.940 --> 00:12:14.480
Ja, also

00:12:14.480 --> 00:12:15.960
kannst du dir dein Gehalt selber in

00:12:15.960 --> 00:12:18.040
Bonuspunkten ausbezahlen. Ja, ja,

00:12:18.220 --> 00:12:20.260
nee, das muss man da alles

00:12:20.260 --> 00:12:20.860
nicht machen zum Glück.

00:12:21.760 --> 00:12:24.100
Ja, aber, also ja,

00:12:24.260 --> 00:12:26.280
ich meine, tatsächlich, das ist halt groß geworden

00:12:26.280 --> 00:12:28.320
und ja, wenn viele Leute

00:12:28.320 --> 00:12:30.640
dran entwickeln, ist es halt schwierig und

00:12:30.640 --> 00:12:32.380
sie hatten ja, es gab ja schon mal

00:12:32.380 --> 00:12:33.840
in Python 3.9

00:12:33.840 --> 00:12:36.460
beziehungsweise in 3.10 ist es dann halt

00:12:36.460 --> 00:12:38.300
aktiv geworden. Der Packparser ist halt ja auch die

00:12:38.300 --> 00:12:40.560
interna, so quasi hat sich ein zentraler

00:12:40.560 --> 00:12:42.000
Teil von Python

00:12:42.000 --> 00:12:43.920
halt irgendwie komplett einmal

00:12:43.920 --> 00:12:45.240
irgendwie auf links gedreht worden.

00:12:46.620 --> 00:12:47.720
Das hat aber einfach so funktioniert.

00:12:47.840 --> 00:12:49.340
Das ist nicht irgendwie quasi so

00:12:49.340 --> 00:12:51.800
fies, hat nicht so fiese

00:12:51.800 --> 00:12:54.260
Konsequenzen gehabt wie jetzt, aber ich meine, manchmal hat man halt

00:12:54.260 --> 00:12:56.040
auch einfach Glück oder Pech, das kann natürlich auch sein.

00:12:56.920 --> 00:12:58.040
Also, das ist halt...

00:12:58.040 --> 00:12:59.400
Irgendwer hat irgendwas ordentlich gemacht oder irgendwas übersehen.

00:12:59.520 --> 00:13:00.680
Aber darauf kannst du nicht setzen.

00:13:01.260 --> 00:13:02.420
Nee, setzen kann man darauf nicht.

00:13:03.220 --> 00:13:06.020
Aber ja, also ich meine natürlich auch, wenn man mehrere Sachen gleichzeitig

00:13:06.020 --> 00:13:07.660
ändert, dann ist es halt so, dass die

00:13:07.660 --> 00:13:10.260
dann hat man eine kombinatorische

00:13:10.260 --> 00:13:12.220
Explosion von Möglichkeiten, wie es

00:13:12.220 --> 00:13:14.260
schief gehen kann und dann ist natürlich auch die Wahrscheinlichkeit

00:13:14.260 --> 00:13:15.400
einfach höher, dass es irgendwo kracht.

00:13:17.080 --> 00:13:18.360
Ich war mal in so einem Projekt

00:13:18.360 --> 00:13:20.180
und das war schon

00:13:20.180 --> 00:13:21.560
so ein bisschen verspätet und dann

00:13:21.560 --> 00:13:23.580
kam irgendwann der Projektmanager,

00:13:23.860 --> 00:13:26.140
der Produkt oder was auch immer für

00:13:26.140 --> 00:13:27.600
Manager, hat gesagt, also

00:13:27.600 --> 00:13:30.140
wir haben

00:13:30.140 --> 00:13:32.120
einen sehr engen Zeitplan, ab jetzt dürfen wir keine Fehler

00:13:32.120 --> 00:13:33.060
mehr machen.

00:13:34.120 --> 00:13:35.920
Unsere Reaktion war dann, ach so,

00:13:36.420 --> 00:13:37.100
na gut, jetzt

00:13:37.100 --> 00:13:39.460
Jetzt dürfen wir keine Fehler mehr machen.

00:13:39.600 --> 00:13:41.480
Na gut, dann machen wir das jetzt halt nicht mehr.

00:13:43.240 --> 00:13:45.320
Immer wenn ich über die Schulter gucke, ist irgendwas kaputt.

00:13:45.420 --> 00:13:45.580
Ja.

00:13:48.100 --> 00:13:49.460
Sobald der Manager weghockt,

00:13:49.540 --> 00:13:50.420
fangen die Entwickler an,

00:13:50.720 --> 00:13:51.980
Lego zu spielen

00:13:51.980 --> 00:13:53.960
und Fehler einzubauen.

00:13:54.760 --> 00:13:56.460
Oder Fehler darf man nicht sagen,

00:13:56.460 --> 00:13:57.920
man sagt ja Jobsicherheit.

00:13:58.020 --> 00:13:59.640
Ich baue Jobsicherheit in dieses Projekt ein.

00:14:00.640 --> 00:14:00.860
Ja.

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

00:14:04.080 --> 00:14:05.800
Hm, was brauchst du denn dafür?

00:14:05.800 --> 00:14:35.780
und Jochen unterhalten sich über die Programmiersprache Python

00:14:35.800 --> 00:14:40.140
Prozesse, aber ja, dieses mit dem Schätzen ist einfach nur totaler Quark aus meiner Perspektive.

00:14:40.300 --> 00:14:41.960
Also niemand kann das schätzen.

00:14:42.080 --> 00:14:44.960
Wir haben da genug Erfahrung, um das inzwischen relativ sicher sagen zu können, dass man

00:14:44.960 --> 00:14:45.640
das nicht schätzen kann.

00:14:45.720 --> 00:14:46.540
Es geht einfach nicht.

00:14:46.980 --> 00:14:51.180
Und wenn man Leute dazu zwingt, dass sie das tun, dann passieren halt Dinge, die man nicht

00:14:51.180 --> 00:14:51.660
haben will.

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

00:14:55.300 --> 00:14:55.660
zum Beispiel.

00:14:57.000 --> 00:14:57.800
Ja, was halt irgendwie...

00:14:58.740 --> 00:14:59.300
Einfache Sachen.

00:14:59.460 --> 00:15:00.080
Ja, genau.

00:15:00.160 --> 00:15:03.760
Du willst ja eigentlich quasi sozusagen, eben aus der Business Perspektive möchtest du

00:15:03.760 --> 00:15:05.640
haben, die Leute sollen an dem Kram arbeiten,

00:15:05.740 --> 00:15:06.620
der den meisten Wert bringt.

00:15:07.900 --> 00:15:09.580
Wert, wie auch immer man das definiert, aber

00:15:09.580 --> 00:15:11.340
man hat ja irgendeine Vorstellung von dem,

00:15:11.860 --> 00:15:12.660
was Wert bringt.

00:15:12.940 --> 00:15:15.660
Ja, provisieren an irgendwelche Aufgaben und wollen, dass die Aufgaben fertiggestellt sind.

00:15:15.940 --> 00:15:17.660
Genau, aber das, was du eigentlich haben willst,

00:15:17.760 --> 00:15:19.800
ist, dass die Leute etwas produzieren, was für dich einen Wert hat.

00:15:20.420 --> 00:15:21.860
So, diesen Wert willst du eigentlich optimieren.

00:15:22.100 --> 00:15:23.800
Wenn du den Leuten jetzt sagst, ihr müsst mir aber vorher sagen,

00:15:23.860 --> 00:15:25.680
wie lange das dauert und das bei denen dazu

00:15:25.680 --> 00:15:27.840
führt, dass wenn sie das sich verschätzen

00:15:27.840 --> 00:15:29.540
und du ihnen auf die Finger haust, sie dafür

00:15:29.540 --> 00:15:31.240
bestraft werden und belohnt werden dafür,

00:15:31.680 --> 00:15:33.320
dass wenn das stimmt, dann

00:15:33.320 --> 00:15:35.220
machen sie nur noch Sachen, die man gut schätzen kann.

00:15:35.220 --> 00:15:37.000
Und vor allen Dingen, was du dann halt verstanden hast,

00:15:37.080 --> 00:15:39.060
wenn du weißt, was Informationsasymmetrie ist

00:15:39.060 --> 00:15:41.120
und dann verstehst du auf welcher Seite welche Information

00:15:41.120 --> 00:15:43.120
liegt und wer

00:15:43.120 --> 00:15:45.100
was machen kann, ja bitte, Entschuldigung.

00:15:45.580 --> 00:15:47.160
Ja, aber das

00:15:47.160 --> 00:15:49.100
führt halt dazu, dass dein Wert nicht mehr

00:15:49.100 --> 00:15:51.200
maximiert wird, sondern dann wird halt maximiert auf

00:15:51.200 --> 00:15:53.100
irgendwie langweiligen Scheiß, den man halt

00:15:53.100 --> 00:15:54.040
schön schätzen kann.

00:15:55.120 --> 00:15:57.000
Und das ist ja gar nicht das, was man vorher schon mal gemacht hat.

00:15:57.120 --> 00:15:59.000
Ich würde anders maximieren, Jochen.

00:16:00.280 --> 00:16:01.320
Ich würde auf das maximal

00:16:01.320 --> 00:16:03.160
erträgliche Zeitbudget

00:16:03.320 --> 00:16:05.540
maximieren und dann halt gucken, dass ich halt

00:16:05.540 --> 00:16:07.600
das dann trotzdem so schnell mache, wie ich das für richtig halte

00:16:07.600 --> 00:16:09.920
und dann den Rest der Zeit halt nicht signalisiere,

00:16:10.040 --> 00:16:11.420
sondern schön

00:16:11.420 --> 00:16:13.720
meine Sachen machen kann, wie ich das für richtig halte.

00:16:14.820 --> 00:16:15.880
Ja, gut,

00:16:16.060 --> 00:16:16.260
aber

00:16:16.260 --> 00:16:19.280
ja, ich weiß nicht, aber das

00:16:19.280 --> 00:16:21.520
Aus Business-Perspektive ist das nicht so sinnvoll.

00:16:22.640 --> 00:16:23.500
Aus meiner Perspektive

00:16:23.500 --> 00:16:24.860
ist das schon ganz schlecht.

00:16:25.140 --> 00:16:26.620
Ja, ich glaube,

00:16:26.720 --> 00:16:29.880
das sind ja nur

00:16:29.880 --> 00:16:30.560
ein anderer Fall.

00:16:32.280 --> 00:16:32.900
Aber selbst

00:16:32.900 --> 00:16:35.180
keine Annahme, dass niemand

00:16:35.180 --> 00:16:37.260
versucht, das zu gamen, sondern dass alle sich so

00:16:37.260 --> 00:16:39.180
verhalten, wie das gedacht ist,

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

00:16:41.340 --> 00:16:43.140
Und das ist halt schon echt schlecht. Also wenn man jetzt noch

00:16:43.140 --> 00:16:45.400
zusätzlich annimmt,

00:16:45.540 --> 00:16:46.980
die Leute sind bösartig, okay.

00:16:47.460 --> 00:16:49.260
Dann weiß ich nicht, aber das ist ja nochmal

00:16:49.260 --> 00:16:51.160
ein anderes Problem. Aber selbst wenn sich alle

00:16:51.160 --> 00:16:53.160
gutartig verhalten und alle nur das Beste

00:16:53.160 --> 00:16:54.500
wollen, funktioniert das halt schon nicht mehr.

00:16:54.660 --> 00:16:56.940
Also die Frage ist halt schon, wenn du halt gemeinsam kooperativ

00:16:56.940 --> 00:16:59.320
arbeiten willst, dann musst du ja quasi davon ausgehen,

00:16:59.400 --> 00:17:00.920
dass du Vertrauen den Leuten entgegenbringen musst.

00:17:00.920 --> 00:17:02.980
und dafür ist das ja schon irgendwie

00:17:02.980 --> 00:17:04.660
Quatsch, unter Druck zu setzen und dann ist

00:17:04.660 --> 00:17:05.540
eigentlich die einzige

00:17:05.540 --> 00:17:08.860
Info, die man irgendwie geben kann, so ja, ist das jetzt

00:17:08.860 --> 00:17:10.880
eine Frage von Tagen oder von Jahren

00:17:10.880 --> 00:17:12.860
oder sowas. Ja, aber die Frage wäre

00:17:12.860 --> 00:17:14.640
auch, wofür willst du das wissen?

00:17:14.960 --> 00:17:16.700
Warum ist das so? Also ich meine, ich würde ja sagen,

00:17:16.780 --> 00:17:18.920
okay, manchmal kann es ja sein, dass das...

00:17:18.920 --> 00:17:20.800
Make or buy und sowas, all das halt, ne?

00:17:21.300 --> 00:17:21.960
Ja, aber...

00:17:21.960 --> 00:17:24.900
Du hast ja auch oft viele Business-Sachen, die da drin hängen,

00:17:25.040 --> 00:17:27.360
du Marketing und Fremdsysteme

00:17:27.360 --> 00:17:28.500
und Kundenkontakt und so.

00:17:29.460 --> 00:17:29.780
Ja.

00:17:29.780 --> 00:17:31.580
und dann muss der Sachen ankündigen.

00:17:32.080 --> 00:17:32.320
Jahresbudget.

00:17:32.600 --> 00:17:34.360
Ja, am Ende können wir.

00:17:34.720 --> 00:17:35.880
Genau, Jahresbudget.

00:17:36.220 --> 00:17:38.380
Und manchmal hast du auch gesetzliche Vorgaben.

00:17:38.500 --> 00:17:41.380
Ich arbeite ja jetzt in der Versicherungsbranche, für die Versicherungsbranche.

00:17:42.140 --> 00:17:45.240
Und da gibt es jede Menge gesetzliche Vorgaben.

00:17:45.340 --> 00:17:48.120
Könnt ihr euch gar nicht vorstellen, wie viele gesetzliche Vorgaben es da gibt.

00:17:48.900 --> 00:17:51.480
Und wir kommen jetzt ins Jahresendgeschäft.

00:17:51.620 --> 00:17:54.960
Das ist auch was, was mir bisher unbekannt war, weil die halt so eine Vermittlerstruktur haben

00:17:54.960 --> 00:17:56.200
und die haben halt Jahrespläne.

00:17:56.200 --> 00:17:59.340
und weil es jetzt zum Ende des Jahres

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

00:18:01.420 --> 00:18:03.280
und deshalb ist

00:18:03.280 --> 00:18:05.280
im November und Dezember doppelt so viel

00:18:05.280 --> 00:18:06.800
Geschäft wie im Januar und Februar.

00:18:08.200 --> 00:18:09.400
Und da muss man

00:18:09.400 --> 00:18:10.300
halt auch damit klarkommen.

00:18:11.780 --> 00:18:13.280
Also da hängen ja schon Sachen drin.

00:18:13.440 --> 00:18:15.240
Also ich kann schon verstehen, dass du

00:18:15.240 --> 00:18:17.280
vorher wissen möchtest, wie viel

00:18:17.280 --> 00:18:19.540
das kostet, wenn du was kaufst

00:18:19.540 --> 00:18:21.600
und wie lange es dauert, wann du es kriegst.

00:18:23.020 --> 00:18:23.280
Ja,

00:18:23.460 --> 00:18:25.160
aber die Frage ist, wie viel dir das wert ist.

00:18:25.160 --> 00:18:27.140
Das wäre sozusagen die

00:18:27.140 --> 00:18:30.140
Die Marketingpreise, ich dachte du magst Marketing nicht

00:18:30.140 --> 00:18:30.480
Jaja

00:18:30.480 --> 00:18:32.220
Doch, ich mag schon Marketing

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

00:18:35.640 --> 00:18:36.020
Ich

00:18:36.020 --> 00:18:38.760
Wie hoch ist dein Schätzungsfaktor?

00:18:38.900 --> 00:18:40.120
Zwei oder drei?

00:18:40.120 --> 00:18:41.620
Zwei bis drei, irgendwie sowas, ja

00:18:41.620 --> 00:18:42.320
Ungefähr

00:18:42.320 --> 00:18:44.600
Ja, aber

00:18:44.600 --> 00:18:46.500
Und dann ist doch okay

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

00:18:49.980 --> 00:18:51.700
Ne, ja, manchmal halt auch nicht

00:18:51.700 --> 00:18:53.520
Schätzt du Storypoints oder Tage?

00:18:53.520 --> 00:19:02.040
Also, sagen wir mal so, Tage ist noch falsch als Storypoints, aber Storypoints sind auch schon falsch.

00:19:02.040 --> 00:19:03.020
Mit 5 bist du eigentlich immer richtig.

00:19:03.800 --> 00:19:08.640
Ja, genau. Also ich hatte, naja gut, ich weiß nicht, es ist alles sehr sinnlos.

00:19:08.660 --> 00:19:10.220
Ich habe mich fertig gemacht, Dominik, jetzt will er nicht mehr.

00:19:11.320 --> 00:19:16.480
Und ich meine, die Alternative ist ja, ich würde einfach die Alternative probieren.

00:19:16.540 --> 00:19:22.620
Die Alternative ist, man nimmt sich das Nächste, was halt irgendwie den höchsten Wert verspricht und arbeitet halt dran.

00:19:22.620 --> 00:19:24.380
und wenn das halt so lange dauert, dann

00:19:24.380 --> 00:19:26.700
hat das nicht mehr den höchsten Wert, dann immer was anderes.

00:19:26.920 --> 00:19:28.720
Aber das vorher alles

00:19:28.720 --> 00:19:30.920
zu schätzen und dann

00:19:30.920 --> 00:19:32.860
zu priorisieren, also

00:19:32.860 --> 00:19:34.600
ich habe starke Zweifel daran, dass das

00:19:34.600 --> 00:19:36.740
irgendwie das besser macht.

00:19:37.080 --> 00:19:38.900
Genau, worum es halt gerade geht. Du fängst halt an,

00:19:38.940 --> 00:19:40.760
die Sachen dann untereinander zu gamen

00:19:40.760 --> 00:19:42.760
und zu arbitragieren und sowas und das ist halt das, was

00:19:42.760 --> 00:19:44.720
die dümmste Idee ist, die du machen kannst,

00:19:44.800 --> 00:19:46.720
wenn du vernünftiges Management machen willst mit

00:19:46.720 --> 00:19:48.660
Leuten, die motiviert, intrinsisch motiviert an Dingen

00:19:48.660 --> 00:19:50.760
arbeiten sollen oder wollen. Und das

00:19:50.760 --> 00:19:52.860
Genau, das ist genau der entscheidende Punkt, wo ich auch sagen würde,

00:19:52.940 --> 00:19:54.640
dass das keine gute Idee ist, das zu machen. Auch das

00:19:54.640 --> 00:19:56.700
mit dem Tracking und so, das ist keine gute Idee.

00:19:57.780 --> 00:19:57.980
Ja.

00:19:58.660 --> 00:20:00.680
Ja, es gibt Leute, die verstehen das nicht. Die meinen, ja, die müssen

00:20:00.680 --> 00:20:02.020
aber. Ja, und dann...

00:20:02.020 --> 00:20:03.820
Ja gut, also...

00:20:03.820 --> 00:20:06.680
Ja, ich meine, es gibt ja auch

00:20:06.680 --> 00:20:08.480
genug Beispiele, wo dann halt irgendwie nicht so tolle Sachen

00:20:08.480 --> 00:20:10.400
rauskommen. Ich freue mich dann immer über Leute,

00:20:10.480 --> 00:20:12.600
bei denen das dann doch funktioniert. Und die anderen, die meinen,

00:20:12.720 --> 00:20:13.700
dass das funktioniert und

00:20:13.700 --> 00:20:15.960
wenig von der

00:20:15.960 --> 00:20:17.540
Realität informiert

00:20:17.540 --> 00:20:20.020
werden darüber, ob das jetzt

00:20:20.020 --> 00:20:24.080
und da freue ich mich auch drüber, weil irgendwie... Ja, das hat ja auch was mit Informationsanalyse zu tun.

00:20:24.200 --> 00:20:26.700
Die Frage ist also, ob du die Wahrheit überhaupt kennen kannst.

00:20:27.720 --> 00:20:31.000
An der Stelle aus der jeweiligen Management-Perspektive oder so.

00:20:31.100 --> 00:20:36.160
Ja, richtig. Das ist auch ein Riesenproblem und ich würde sagen, in vielen Sachen, die ich gesehen habe,

00:20:36.160 --> 00:20:36.880
ja, nee, können sie nicht.

00:20:36.980 --> 00:20:42.680
Also du musst halt zum Beispiel selber kunden, dass du selber einschätzen kannst, was da passiert ist.

00:20:43.060 --> 00:20:45.840
Ansonsten ist das gar nicht so notwendig. Du musst halt die ganzen Commits lesen und dann verstehen,

00:20:46.260 --> 00:20:49.940
warum es so lange gedauert hat. Der muss auch verstehen, dass, keine Ahnung, man manchmal zwei Tage

00:20:49.940 --> 00:20:52.140
nach einem fehlenden Punkt oder Komma oder Leerzeichen

00:20:52.140 --> 00:20:54.100
suchen muss, weil es irgendeinen blöden Bug an irgendeiner Stelle gibt,

00:20:54.160 --> 00:20:55.820
die man nicht erwartet hat und dass dafür

00:20:55.820 --> 00:20:57.540
bestimmte Sachen einfach schnell gehen, obwohl die

00:20:57.540 --> 00:20:58.700
total kompliziert aussehen.

00:20:58.800 --> 00:21:01.800
Der muss halt so ein Feeling haben.

00:21:02.660 --> 00:21:04.180
Manchmal hat man ja auch die Inspiration

00:21:04.180 --> 00:21:05.060
oder sowas zu machen.

00:21:05.740 --> 00:21:07.680
Manche Sachen gehen schneller,

00:21:07.860 --> 00:21:09.700
obwohl sie kompliziert sind, weil man sie machen möchte.

00:21:09.880 --> 00:21:11.920
Ja, aber das ist das, was du willst. Du willst diesen Flow

00:21:11.920 --> 00:21:13.720
haben und damit dieser Flow möglich ist,

00:21:13.800 --> 00:21:15.920
damit dir diesen Flow reinkommt, dass du mal 3, 4, 5,

00:21:15.980 --> 00:21:17.980
6, 7, 8, 9, 10 Stunden

00:21:17.980 --> 00:21:19.900
einfach nur ballerst und dann ist das richtig geil,

00:21:19.940 --> 00:21:21.960
fertig. Dafür brauchst du danach die Tage auch ein bisschen

00:21:21.960 --> 00:21:23.720
mehr Ruhe. Das kannst du nicht die ganze Zeit machen. Das geht nicht.

00:21:23.800 --> 00:21:25.980
Wie können wir jetzt businessmäßig den Flow

00:21:25.980 --> 00:21:26.480
optimieren?

00:21:27.760 --> 00:21:28.160
Oh je.

00:21:28.820 --> 00:21:30.940
Wir brauchen einen Kickertisch.

00:21:32.340 --> 00:21:33.080
Schon fertig.

00:21:34.060 --> 00:21:34.900
Das war ja einfach.

00:21:35.480 --> 00:21:37.680
Einmal im Monat gibt es Pizzaabend für alle.

00:21:38.160 --> 00:21:39.740
Wie nach 20 Uhr noch da sind.

00:21:41.120 --> 00:21:42.120
Eine Tischtennisplatte

00:21:42.120 --> 00:21:43.680
natürlich und ein Lauftreff.

00:21:45.100 --> 00:21:45.380
Naja.

00:21:46.320 --> 00:21:46.620
Tja.

00:21:46.620 --> 00:21:46.720
Ja.

00:21:46.720 --> 00:21:47.480
Ja

00:21:47.480 --> 00:21:50.220
Ach ja, man merkt das

00:21:50.220 --> 00:21:52.860
Ist das bei euch auch so? Ich glaube ich weiß warum das jetzt

00:21:52.860 --> 00:21:55.100
gerade alles wieder so am Jahresende

00:21:55.100 --> 00:21:57.200
Ihr habt ja mehr Geschäft, ne? Ja, wir auch

00:21:57.200 --> 00:21:59.080
Also hier ist gerade relativ stressig

00:21:59.080 --> 00:22:00.980
weil es ist relativ viel Zeugs

00:22:00.980 --> 00:22:02.920
Also ich meine, da kann man sich auch mal drüber freuen

00:22:02.920 --> 00:22:05.000
wenn Leute irgendwie wollen, dass man

00:22:05.000 --> 00:22:05.880
Dinge für sie macht

00:22:05.880 --> 00:22:08.340
Ist eigentlich sehr gut

00:22:08.340 --> 00:22:10.940
aber es ist so zum

00:22:10.940 --> 00:22:12.640
Jahresende, es wird immer mehr irgendwie

00:22:12.640 --> 00:22:14.920
Man hat immer so das Gefühl, am Jahresende ist es immer so ein bisschen voller

00:22:14.920 --> 00:22:16.880
irgendwie. Da musst du ja noch irgendwie die Sachen noch durchkriegen,

00:22:16.940 --> 00:22:19.040
die man für das Jahr geplant hat und gucken, ob die noch fertig werden.

00:22:19.420 --> 00:22:19.580
Ja.

00:22:19.860 --> 00:22:21.040
Das ist ja der sogenannte Hocken.

00:22:21.040 --> 00:22:21.600
Auf neuen Ufern.

00:22:24.140 --> 00:22:26.240
Muss dann wieder ein neues Projekt geben.

00:22:26.240 --> 00:22:27.500
Ja, wenn du eine Zeitperiode einplanst.

00:22:29.340 --> 00:22:29.560
Ja.

00:22:30.580 --> 00:22:30.860
Ja.

00:22:31.080 --> 00:22:32.600
Kann man dann eine clevere Planung machen?

00:22:32.740 --> 00:22:35.280
Jetzt sind wir jetzt nämlich genau wieder bei dem Punkt, kann zu sagen, clevererweise,

00:22:35.800 --> 00:22:37.380
okay, wir machen sowas so, das muss am Ende des Jahres

00:22:37.380 --> 00:22:38.620
fertig sein, dann muss man am Ende gucken,

00:22:39.120 --> 00:22:41.240
hat man ein bisschen geschludert, muss man noch ein bisschen antreiben

00:22:41.240 --> 00:22:43.000
oder sowas, aus so einer Managementperspektive.

00:22:44.060 --> 00:22:44.860
Ja, weiß ich nicht.

00:22:44.920 --> 00:23:14.900
Ich glaube, das geht alles nicht.

00:23:14.920 --> 00:23:44.920
und die

00:23:44.920 --> 00:23:48.260
Tja, deshalb habe ich auch nie Zeit, Podcasts aufzunehmen.

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

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

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

00:23:59.620 --> 00:24:00.780
Und die sind auch eigentlich alle ziemlich gut.

00:24:01.160 --> 00:24:03.500
Das waren ja die längsten Exekuse, die wir bisher hatten, glaube ich.

00:24:03.620 --> 00:24:07.180
Ja, die haben dieses Problem irgendwie in den Griff gekriegt.

00:24:07.180 --> 00:24:14.820
Und ja, das ist ja sowieso eine Neuerung im Grunde,

00:24:14.820 --> 00:24:16.380
und das halt so viele Leute

00:24:16.380 --> 00:24:18.200
Vollzeit jetzt irgendwie daran arbeiten.

00:24:19.040 --> 00:24:20.820
Und ja, eigentlich hat es ja schon ganz gut

00:24:20.820 --> 00:24:21.220
funktioniert.

00:24:23.220 --> 00:24:23.880
Ja, das war super.

00:24:25.420 --> 00:24:26.320
Genau, also

00:24:26.320 --> 00:24:28.820
vielleicht gehen wir einfach nochmal durch die

00:24:28.820 --> 00:24:30.740
Dinger so durch, was da alles

00:24:30.740 --> 00:24:32.740
an neuen Sachen dazugekommen ist.

00:24:33.560 --> 00:24:34.860
Also genau,

00:24:34.940 --> 00:24:35.540
wir hatten die

00:24:35.540 --> 00:24:38.360
Performanceverbesserung so ein bisschen, da können wir

00:24:38.360 --> 00:24:40.380
eigentlich nochmal ein bisschen ins Detail gehen,

00:24:40.740 --> 00:24:42.720
auch was da passiert ist. Aber halt

00:24:42.720 --> 00:24:44.800
dann die besseren Fehlermeldungen

00:24:44.800 --> 00:24:48.920
was es auch gibt sind Exception Groups und Accept Stern

00:24:48.920 --> 00:24:51.760
irgendwie, das ist etwas

00:24:51.760 --> 00:24:56.880
also auf der einen Seite ist es krass, dass das jetzt erst da

00:24:56.880 --> 00:25:00.920
drin ist sozusagen, weil erst jetzt hat man halt die Möglichkeit bestimmte Sachen zu machen, wo man denkt

00:25:00.920 --> 00:25:04.840
so, oh das ist aber ganz übel, wenn man das nicht machen kann und ja, es war einfach schon immer ganz

00:25:04.840 --> 00:25:08.800
übel, also Python 2 war es super übel, da gab es halt bloß

00:25:08.800 --> 00:25:12.760
eine Exception, die halt, wenn eine geflogen ist, halt nur eine geflogen und wenn irgendwas

00:25:12.760 --> 00:25:14.440
anderes zwischendurch passiert ist, ja, Pech gehabt.

00:25:15.720 --> 00:25:16.820
Und dann

00:25:16.820 --> 00:25:18.440
ab Python 3 gibt es halt diese Chained

00:25:18.440 --> 00:25:20.620
Exceptions, die man manchmal sieht, wenn man

00:25:20.620 --> 00:25:22.880
so ein Traceback kriegt,

00:25:22.980 --> 00:25:24.760
so während dieser Traceback geworfen

00:25:24.760 --> 00:25:26.600
wurde, ist halt noch was anderes passiert. Da kann man

00:25:26.600 --> 00:25:28.640
beliebige aneinanderhängen und diesen Mechanismus kann man

00:25:28.640 --> 00:25:29.720
natürlich auch dafür missbrauchen,

00:25:30.120 --> 00:25:31.920
oder gebrauchen,

00:25:32.520 --> 00:25:34.500
wenn man viele Exceptions hat, die irgendwie,

00:25:34.840 --> 00:25:36.360
zum Beispiel, wenn man halt viele Tasks hat,

00:25:36.680 --> 00:25:38.540
die man gleichzeitig abgefeuert hat, die dann halt alle

00:25:38.540 --> 00:25:39.640
ja auch irgendwie schief gehen können.

00:25:40.480 --> 00:25:41.700
Um das zu

00:25:41.700 --> 00:25:43.940
wieder einzufangen oder solche Sachen.

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

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

00:25:48.060 --> 00:25:49.840
haben. Und wenn man jetzt

00:25:49.840 --> 00:25:52.240
aber so Async-Geschichten

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

00:25:54.560 --> 00:25:55.940
Also die aneinander zu ketten ist halt

00:25:55.940 --> 00:25:57.960
irgendwie, macht keinen so großen Sinn.

00:25:59.680 --> 00:26:00.120
Und

00:26:00.120 --> 00:26:01.960
dafür gibt es jetzt halt Exemption

00:26:01.960 --> 00:26:04.000
Groups, wo

00:26:04.000 --> 00:26:05.780
man die Exceptions so in Bäumen

00:26:05.780 --> 00:26:06.520
anordnen kann.

00:26:08.260 --> 00:26:10.000
Ja, es gab auch vorher

00:26:10.000 --> 00:26:11.860
schon so Sachen, die dann versucht haben, drum herum zu arbeiten.

00:26:12.440 --> 00:26:13.880
Nurseries in Trio und so.

00:26:15.340 --> 00:26:15.960
Auch schon irgendwann

00:26:15.960 --> 00:26:17.000
ganz kurz drüber gesprochen.

00:26:17.000 --> 00:26:17.820
Ja, haben wir auch schon mal.

00:26:18.320 --> 00:26:20.860
Das war eigentlich so ein fehlendes Puzzlestück

00:26:20.860 --> 00:26:22.960
auch für Async.io,

00:26:23.520 --> 00:26:24.520
um das halt so richtig

00:26:24.520 --> 00:26:26.980
ordentlich zu machen, weil das ist halt total blöd,

00:26:27.040 --> 00:26:28.200
wenn du halt nicht

00:26:28.200 --> 00:26:30.940
tatsächlich alle Sachen, die schiefgegangen sind,

00:26:31.280 --> 00:26:32.140
hinterher behandeln kannst.

00:26:32.300 --> 00:26:34.400
Wenn die Exzeption irgendwie roh weggeschluckt wird, ist das schon ein bisschen blöd.

00:26:34.460 --> 00:26:36.160
Ja, weil manchmal musst du es halt handeln

00:26:36.160 --> 00:26:38.720
und wenn du davon gar nicht informiert wirst, ist es halt irgendwie

00:26:38.720 --> 00:26:39.320
schon nicht so gut.

00:26:40.000 --> 00:26:41.860
und es gibt es aber auch außerhalb von

00:26:41.860 --> 00:26:43.900
AsyncIO. Es ist nicht nur ein AsyncIO

00:26:43.900 --> 00:26:45.800
Feature, weil es gibt auch so Dinge

00:26:45.800 --> 00:26:46.520
wie zum Beispiel

00:26:46.520 --> 00:26:49.700
im Socket-Modul, wenn du halt eine Verbindung

00:26:49.700 --> 00:26:51.820
irgendwo hin aufmachst, dann probiert das Ding

00:26:51.820 --> 00:26:53.280
halt unterschiedliche

00:26:53.280 --> 00:26:55.980
Sachen durch,

00:26:56.120 --> 00:26:57.560
wenn es halt irgendwie nicht funktioniert.

00:26:58.040 --> 00:26:59.840
Also diverse Optionen, die dann gesetzt werden

00:26:59.840 --> 00:27:01.800
können und bisher war es

00:27:01.800 --> 00:27:03.600
halt so, naja, es werden halt diese Sachen durchprobiert,

00:27:03.700 --> 00:27:05.740
wenn eine nicht funktioniert, wird das andere probiert und so weiter

00:27:05.740 --> 00:27:07.440
und jedes Mal fliegt ja eigentlich eine Exception,

00:27:07.900 --> 00:27:09.420
aber du kriegst immer nur die

00:27:09.420 --> 00:27:39.400
und Jochen unterhalten sich über die Programmiersprache Python

00:27:39.420 --> 00:27:40.520
und die Möglichkeit, da dran zu kommen.

00:27:41.200 --> 00:27:41.740
Und jetzt halt schon.

00:27:42.600 --> 00:27:44.640
Und ja, da das halt nicht nur für

00:27:44.640 --> 00:27:46.720
Async-Geschichten, sondern halt auch in anderen Kontexten

00:27:46.720 --> 00:27:48.480
auftritt und eigentlich jetzt

00:27:48.480 --> 00:27:50.640
zum ersten Mal ermöglicht, diese Sachen so sauber zu

00:27:50.640 --> 00:27:51.900
handeln, dass du wirklich alles

00:27:51.900 --> 00:27:54.740
behandeln kannst, was da schiefgegangen ist.

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

00:27:56.420 --> 00:27:58.440
indem man so ein Python-Feature

00:27:58.440 --> 00:28:00.780
genutzt hat. Also indem man

00:28:00.780 --> 00:28:02.880
eine leere Liste als Cache

00:28:02.880 --> 00:28:04.520
irgendeiner Funktion gegeben hat.

00:28:04.820 --> 00:28:06.680
Also die immer quasi selber

00:28:06.680 --> 00:28:07.000
bauen.

00:28:07.000 --> 00:28:08.660
dominieren. Ja, und die immer aufgerufen wurde.

00:28:08.820 --> 00:28:11.060
Und dann konnte man

00:28:11.060 --> 00:28:11.820
die daran dann sammeln.

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

00:28:14.480 --> 00:28:17.160
Aber das musst du dann halt immer machen. Das ist so wie die C-Federnummern,

00:28:17.200 --> 00:28:18.620
oder? Es gibt keine Federnummern.

00:28:18.820 --> 00:28:21.000
Also wenn du 0 zurückgibst, ist alles

00:28:21.000 --> 00:28:22.860
in Ordnung. Und wenn du irgendwas anderes zurückgibst, musst du in der

00:28:22.860 --> 00:28:23.700
großen Liste nachschauen.

00:28:24.880 --> 00:28:27.020
Ja, oder ein Vorschlag war halt

00:28:27.020 --> 00:28:28.780
auch, man kann es nicht über Logging machen oder solche

00:28:28.780 --> 00:28:30.280
Mechanismen, aber tatsächlich...

00:28:30.280 --> 00:28:31.980
Es gibt da einen Vorrätsel.

00:28:33.380 --> 00:28:34.680
Ja, oder irgendwas in der Richtung,

00:28:34.680 --> 00:28:36.500
dass man das halt nicht...

00:28:36.500 --> 00:28:37.840
weil tatsächlich ist es ja jetzt,

00:28:38.240 --> 00:28:39.640
es hat ja die Python Syntax.

00:28:40.320 --> 00:28:41.820
Das müsst ihr mir kurz erklären, warum ihr gerade

00:28:41.820 --> 00:28:43.120
gedacht habt, mit was ist das für ein Vorschlag?

00:28:44.320 --> 00:28:44.980
Was ist so los?

00:28:44.980 --> 00:28:47.500
Wenn eine Exception auftritt und du willst wissen, was da vor passiert ist,

00:28:47.820 --> 00:28:49.460
da drüben ist eine magische Datei

00:28:49.460 --> 00:28:50.780
und da hast du es hoffentlich reingeschrieben.

00:28:52.040 --> 00:28:53.500
Keine Lösung für dieses Problem.

00:28:54.160 --> 00:28:55.860
Du kannst natürlich

00:28:55.860 --> 00:28:57.240
hingehen und quasi

00:28:57.240 --> 00:28:59.140
um, also du könntest natürlich

00:28:59.140 --> 00:29:01.960
statt Exceptions zu werfen, einfach alles in ein Logfile reinschreiben

00:29:01.960 --> 00:29:03.620
und dann im Code

00:29:03.620 --> 00:29:05.900
ab und zu mal nachgucken, ob eine Exception geflogen ist

00:29:05.900 --> 00:29:06.560
einfach rein.

00:29:07.060 --> 00:29:08.240
Das ist so eine schlaue Art.

00:29:09.240 --> 00:29:10.000
Ich habe gehört,

00:29:10.000 --> 00:29:13.320
das funktioniert Cloud.

00:29:14.040 --> 00:29:15.760
Ja, genau.

00:29:15.980 --> 00:29:17.560
Oder verteilte Systeme, da hat man das Problem.

00:29:18.380 --> 00:29:18.960
Das ist

00:29:18.960 --> 00:29:21.440
unter Umständen sehr schmerzhaft.

00:29:23.500 --> 00:29:24.100
Es gibt

00:29:24.100 --> 00:29:25.660
da einen schönen Vortrag von der

00:29:25.660 --> 00:29:27.500
Entwicklerin,

00:29:27.620 --> 00:29:28.820
die das geschrieben hat,

00:29:28.840 --> 00:29:30.780
wo sie halt

00:29:30.780 --> 00:29:32.680
auch kurz durchgeht.

00:29:32.680 --> 00:29:33.660
Ich habe das jetzt dummerweise,

00:29:33.660 --> 00:29:42.520
Ich habe das schon ein oder zwei Monate her gesehen, wo sie halt durchgeht, warum das eine sinnvolle Geschichte ist, an der die Sprachsyntax zu verändern.

00:29:43.060 --> 00:29:46.100
Weil du kannst es und sie geht dann diverse Möglichkeiten durch, wie man das implementieren könnte.

00:29:46.640 --> 00:29:49.440
Und da kommt am Schluss raus, ja, es geht nicht anders.

00:29:49.620 --> 00:29:51.840
Du musst die Sprach, man muss die Sprachsyntax da verändern.

00:29:52.340 --> 00:30:04.003
Es gibt keine andere sch M wie man das anders machen kann Also wenn es eine andere gegeben h h sie es auch anders gemacht weil das ist nat irgendwie so ein bisschen das letzte Mittel die Sprachsyntax das macht mir ja auch nicht so einfach Spa

00:30:05.102 --> 00:30:07.302
Und es gab aber keine. Und dass es ein Problem

00:30:07.302 --> 00:30:09.182
ist, ist ja schon lange klar. Also das

00:30:09.182 --> 00:30:11.023
ist ja nicht so, dass den Leuten das jetzt erst aufgefallen wäre,

00:30:11.503 --> 00:30:12.222
sondern eigentlich

00:30:12.222 --> 00:30:14.922
quasi, dass man sowas braucht und

00:30:14.922 --> 00:30:16.403
im Async-Kontext war das,

00:30:16.883 --> 00:30:19.043
der Async.io hauptsächlich implementiert

00:30:19.043 --> 00:30:20.743
hatte, Juri Selivanov,

00:30:20.962 --> 00:30:23.082
der hat 2017 schon irgendwie gesagt, wir brauchen das

00:30:23.082 --> 00:30:24.763
unbedingt irgendwie. Dann gab es diese

00:30:24.763 --> 00:30:25.822
Geschichten mit Trio und so.

00:30:27.182 --> 00:30:28.702
Aber niemand hat eine Möglichkeit, weil man

00:30:28.702 --> 00:30:30.822
dachte immer so, ach das geht bestimmt, irgendwie kriegt man das

00:30:30.822 --> 00:30:32.623
hin, ohne dass man dafür irgendwie die Sprache

00:30:32.623 --> 00:30:34.962
ändern muss. Und das hat aber niemand hingekriegt

00:30:34.962 --> 00:30:36.182
und jetzt ist die Sprache geändert worden.

00:30:37.082 --> 00:30:38.802
Und ja, also was es halt

00:30:38.802 --> 00:30:40.922
an neuer Syntax gibt, ist halt dieses Accept-Stern

00:30:40.922 --> 00:30:42.763
irgendwie, wo man dann halt quasi

00:30:42.763 --> 00:30:44.802
alle Dinge aus einer Gruppe halt

00:30:44.802 --> 00:30:46.702
eine Gruppe von Sachen halt fangen kann.

00:30:47.143 --> 00:30:48.763
Dann kann man damit irgendwas machen, dann kann man die splitten

00:30:48.763 --> 00:30:49.163
und ja.

00:30:50.182 --> 00:30:52.222
Und damit kann man es eigentlich sauber machen.

00:30:52.222 --> 00:30:53.383
und das ist eigentlich sehr schön.

00:30:54.602 --> 00:30:55.842
Also gefällt mir auch sehr gut

00:30:55.842 --> 00:30:58.023
dieses Feature. Oh, und man kann in

00:30:58.023 --> 00:31:00.023
Exceptions auch noch irgendwie so Notes

00:31:00.023 --> 00:31:01.582
dranhängen, sodass man halt irgendwie noch ein bisschen

00:31:01.582 --> 00:31:03.802
Metainformationen mitgeben kann, das auch neu.

00:31:04.982 --> 00:31:05.423
Wenn

00:31:05.423 --> 00:31:08.023
da halt irgendwie man halt noch ein bisschen Kontext hat,

00:31:08.202 --> 00:31:10.082
den man gerne mit reintun

00:31:10.082 --> 00:31:10.322
würde.

00:31:11.722 --> 00:31:14.023
Ja, genau.

00:31:15.462 --> 00:31:15.802
Und

00:31:15.802 --> 00:31:20.042
ja, genau, da fällt

00:31:20.042 --> 00:31:21.663
mir gerade noch zu ein, zu Async, da

00:31:21.663 --> 00:31:23.643
gibt es jetzt auch, also vielleicht

00:31:23.643 --> 00:31:25.702
kennen da viele auch dieses, also was man normalerweise

00:31:25.702 --> 00:31:27.542
verwendet ist ja irgendwie Gather,

00:31:27.862 --> 00:31:29.442
um halt viele Tasks irgendwie

00:31:29.442 --> 00:31:31.562
gleichzeitig zu erwaiten und so.

00:31:32.062 --> 00:31:34.283
Da gibt es jetzt ein neues Ding, es gibt Task Groups,

00:31:34.342 --> 00:31:35.763
das ist quasi so ähnlich wie

00:31:35.763 --> 00:31:37.623
Nurseries in Trio

00:31:37.623 --> 00:31:39.722
und das ist auch die,

00:31:39.982 --> 00:31:41.783
das löst Gather und

00:31:41.783 --> 00:31:43.682
diverse andere Geschichten halt ab und Create Tasks

00:31:43.682 --> 00:31:45.802
und so. Und da macht man eigentlich,

00:31:45.883 --> 00:31:47.482
was man tut, ist, man sagt async with

00:31:47.482 --> 00:31:49.582
Task Group STG und dann

00:31:49.582 --> 00:31:52.182
created man halt Tasks und wenn der

00:31:52.182 --> 00:31:53.342
Async

00:31:53.342 --> 00:31:55.562
Context Manager durch ist, dann sind alle

00:31:55.562 --> 00:31:57.342
erfolgreich durchgelaufen. Also

00:31:57.342 --> 00:31:59.302
das sieht auch sehr elegant aus, also

00:31:59.302 --> 00:32:01.523
sehr schöne neue Art

00:32:01.523 --> 00:32:03.582
wenn man so Sachen hinschreibt. Es spart gar nicht so viel

00:32:03.582 --> 00:32:05.663
Zahlen, es ist ein bisschen weniger als vorher, aber es sieht einfach

00:32:05.663 --> 00:32:07.362
irgendwie, ja,

00:32:07.482 --> 00:32:09.623
sieht gut aus. Also das in Kombination mit

00:32:09.623 --> 00:32:11.403
den Exception Groups, also Async

00:32:11.403 --> 00:32:13.562
mit 3.11 ist eigentlich echt so auf dem

00:32:13.562 --> 00:32:15.682
Stand, dass jetzt Funktionen, es greifen

00:32:15.682 --> 00:32:17.623
so die ganzen Teile ineinander und jetzt ist es so richtig

00:32:17.623 --> 00:32:19.342
rund. So vorher haben halt

00:32:19.342 --> 00:32:20.802
Jetzt kann man endlich Async benutzen.

00:32:20.842 --> 00:32:22.643
Ja, vorher konnte man es auch schon, aber es haben schon tatsächlich

00:32:22.643 --> 00:32:23.643
riesige Teile gefehlt.

00:32:24.862 --> 00:32:28.942
Ja, das ist auf jeden Fall alles sehr erfreulich.

00:32:31.163 --> 00:32:33.482
Also es ist alles besser geworden, würdest du sagen?

00:32:33.623 --> 00:32:34.362
Ja, ja, ja.

00:32:35.062 --> 00:32:36.562
Schon alles deutlich besser geworden.

00:32:37.423 --> 00:32:38.263
Dann sind noch Dinge,

00:32:38.263 --> 00:32:40.743
da müssen wir in der Typing-Episode

00:32:40.743 --> 00:32:42.023
mal drüber reden, keine Ahnung,

00:32:42.442 --> 00:32:43.663
Variadic Generics,

00:32:43.842 --> 00:32:47.682
das ist alles viel zu kompliziert.

00:32:47.682 --> 00:32:50.362
Das kriegt eine eigene Episode, glaube ich

00:32:50.362 --> 00:32:52.023
Ja, haben wir schon geplant

00:32:52.023 --> 00:32:54.623
Dann, ja, Typing

00:32:54.623 --> 00:32:55.903
ist in einige Sachen mit dazugekommen

00:32:55.903 --> 00:32:58.322
Eine coole Geschichte beim Typing, die dazugekommen ist, ist

00:32:58.322 --> 00:32:58.783
Self

00:32:58.783 --> 00:33:02.042
Ja, also wenn man zum Beispiel

00:33:02.042 --> 00:33:03.842
bisher sowas machen wollte

00:33:03.842 --> 00:33:04.982
Habt ihr das mal gemacht?

00:33:05.982 --> 00:33:08.263
Typ-Annotationen und wenn diese Sachen

00:33:08.263 --> 00:33:09.663
die Self zurückgeben, was gibt man dann zurück?

00:33:10.962 --> 00:33:11.783
Ja, die Klasse selber

00:33:11.783 --> 00:33:13.462
Ja, das funktioniert leider nicht so richtig

00:33:13.462 --> 00:33:14.962
Was ist, wenn du erbst?

00:33:15.862 --> 00:33:16.802
Das ist halt keine Instanz der Klasse

00:33:16.802 --> 00:33:18.783
oder so. Stell dir vor, du hast halt eine

00:33:18.783 --> 00:33:21.003
Basisklasse und eine Klasse, die von der Basisklasse erbt

00:33:21.003 --> 00:33:22.462
und in der

00:33:22.462 --> 00:33:24.802
Superklasse hast du

00:33:24.802 --> 00:33:26.663
eine Funktion, die irgendwie

00:33:26.663 --> 00:33:28.702
sozusagen irgendwas zurückgibt.

00:33:29.283 --> 00:33:30.523
Und jetzt sagst du,

00:33:30.923 --> 00:33:32.062
in der Superklasse sagst du jetzt,

00:33:32.942 --> 00:33:34.883
annotierst du mit, gib zurück, eine Superklasse.

00:33:35.003 --> 00:33:36.822
Also eigentlich müsste ich dann eine Union machen, ja.

00:33:36.822 --> 00:33:38.663
Aber das ist ja, wenn das in der Instanz aufkommt,

00:33:38.883 --> 00:33:40.682
ist das ja falsch, weil es wird eine andere Klasse

00:33:40.682 --> 00:33:42.822
zurückgegeben. Das geht halt

00:33:42.822 --> 00:33:44.743
nicht, das ist genau das Problem. Deswegen

00:33:44.743 --> 00:33:46.643
kannst du nicht einfach die Klasse da mit der Klasse

00:33:46.643 --> 00:33:48.602
zu passieren. Es wird doch höchstens

00:33:48.602 --> 00:33:50.462
eine erbende Klasse

00:33:50.462 --> 00:33:51.202
zurückgegeben, oder?

00:33:52.643 --> 00:33:54.322
Ja, eine von denen, die geerbt haben. Also ich meine,

00:33:54.383 --> 00:33:55.883
in gewisser Weise ist das natürlich schon richtig.

00:33:56.182 --> 00:33:58.302
Also du kannst die unterste Base-Klasse zurückgeben, das ist ja nicht falsch,

00:33:58.383 --> 00:33:59.423
weil das ist ja eine Art von der Instanz.

00:34:00.042 --> 00:34:02.903
Ja, aber wenn du jetzt

00:34:02.903 --> 00:34:04.423
irgendwo dann quasi

00:34:04.423 --> 00:34:06.582
drauf überprüfst, ob tatsächlich die Unterklasse

00:34:06.582 --> 00:34:08.482
übergeben wird irgendwo und

00:34:08.482 --> 00:34:10.502
nicht die Basisklasse, dann geht das

00:34:10.502 --> 00:34:11.943
halt schief, obwohl es eigentlich richtig ist.

00:34:12.343 --> 00:34:13.163
Dann hast du ein False Positive.

00:34:14.203 --> 00:34:16.042
Und jetzt kannst du halt sagen, from typing

00:34:16.042 --> 00:34:18.262
in Portself und dann sagt Griffiths Selbstzeug...

00:34:18.262 --> 00:34:20.082
Warte mal, ich muss das kurz als Argument

00:34:20.082 --> 00:34:22.042
aufschreiben, warum ich Typen nicht mag. Warte, das

00:34:22.042 --> 00:34:23.002
brauche ich für die Typen.

00:34:25.243 --> 00:34:25.943
Ja, ja, also

00:34:25.943 --> 00:34:27.522
ich habe auch mal so...

00:34:27.522 --> 00:34:29.863
Also diese Details sind

00:34:29.863 --> 00:34:31.443
alle schon sehr haarig, muss ich sagen.

00:34:32.663 --> 00:34:34.022
Also es geht auch nicht gut anders.

00:34:34.163 --> 00:34:35.823
Also man sagt, es gab das ja vorher nicht.

00:34:36.022 --> 00:34:37.782
Und wenn man sich da Gedanken darüber macht, okay, wie

00:34:37.782 --> 00:34:39.262
annotiere ich das denn jetzt richtig?

00:34:40.042 --> 00:34:41.903
Es geht nicht richtig gut. Man kann

00:34:41.903 --> 00:34:42.743
das nicht gut annotieren.

00:34:43.243 --> 00:34:44.762
Lass es noch nicht selbst zurückgeben.

00:34:46.042 --> 00:34:48.302
Und dann sind wir wieder in dieser Situation mit den Schätzungen,

00:34:48.423 --> 00:34:50.463
dass man jetzt nur noch Sachen macht, die man per Typ

00:34:50.463 --> 00:34:52.443
erreichen kann und das ist

00:34:52.443 --> 00:34:53.743
eine Einschränkung, die nicht gut ist.

00:34:54.262 --> 00:34:56.522
Genau, aber jetzt gibt es zumindest eine Möglichkeit,

00:34:56.663 --> 00:34:57.963
die nicht ganz so schrecklich ist und die

00:34:57.963 --> 00:35:00.322
einfach das Richtige tut, quasi.

00:35:00.663 --> 00:35:01.302
Das ist schon mal gut.

00:35:02.362 --> 00:35:03.842
Aber die WGs verstehen die jetzt dann auch.

00:35:04.562 --> 00:35:04.703
Ja.

00:35:06.923 --> 00:35:07.762
Was haben wir noch?

00:35:10.862 --> 00:35:11.223
Genau.

00:35:11.223 --> 00:35:11.383
Genau.

00:35:13.943 --> 00:35:15.602
Jochen, das stöbert gerade so eine lange Liste.

00:35:15.602 --> 00:35:18.383
Ich habe das im Grunde nur aus dem

00:35:18.383 --> 00:35:19.963
What's New Ding rauskopiert,

00:35:20.082 --> 00:35:20.743
das alles.

00:35:22.903 --> 00:35:23.322
Oh, es gibt

00:35:23.322 --> 00:35:25.123
schon ein paar Kleinigkeiten.

00:35:26.683 --> 00:35:28.463
Es gibt einen Change-Dear-

00:35:28.463 --> 00:35:29.862
Context-Manager. Das ist etwas, was ich

00:35:29.862 --> 00:35:32.123
weiß nicht, wie viele Mal ich mir das geschrieben habe.

00:35:33.322 --> 00:35:34.463
Wahrscheinlich hat das jeder

00:35:34.463 --> 00:35:35.223
andere auch schon mal getan.

00:35:36.403 --> 00:35:38.342
Ein Change-Dear-Context-Manager, sehr schön.

00:35:38.502 --> 00:35:40.243
Aber ich muss unbedingt wieder

00:35:40.243 --> 00:35:42.203
zurück, weil das ist nicht gut,

00:35:42.262 --> 00:35:44.203
wenn ich da irgendwo ein

00:35:44.203 --> 00:35:46.042
im Dateisystembaum irgendwas machen,

00:35:46.403 --> 00:35:47.443
aber ich...

00:35:47.443 --> 00:35:49.762
Du musst ja nicht bleiben und da irgendwas ablegen, was da nicht hingehört,

00:35:49.883 --> 00:35:50.802
aus Versehen oder so.

00:35:50.943 --> 00:35:53.982
Das Problem ist, wenn du da noch mehr Sachen machst

00:35:53.982 --> 00:35:56.082
und du bist im falschen Verzeichnis, dann hat das halt unter Umstand

00:35:56.082 --> 00:35:58.042
blöde Konsequenzen, deswegen, also ich habe das schon

00:35:58.042 --> 00:36:00.203
ganz oft gemacht, dass ich dann irgendwie mir einen Context-Manager

00:36:00.203 --> 00:36:01.663
dafür geschrieben habe, wo ich dann sicher sein kann,

00:36:02.022 --> 00:36:03.683
okay, wenn der durch ist, dann bin ich wieder zurück.

00:36:05.362 --> 00:36:06.342
Und das Ding

00:36:06.342 --> 00:36:08.243
ist jetzt in der Context-Lib, ist jetzt so ein Teil drin.

00:36:08.943 --> 00:36:10.223
So ein bisschen doof kann man nicht gut

00:36:10.223 --> 00:36:12.342
verwenden, weil ansonsten dependet man auf 3.11,

00:36:12.443 --> 00:36:13.163
aber...

00:36:13.163 --> 00:36:15.102
with changeDir und dann

00:36:15.102 --> 00:36:17.302
Path-Objekt oder was? Genau, man sagt

00:36:17.302 --> 00:36:19.262
with changeDir

00:36:19.262 --> 00:36:21.203
Path und wenn man da zurückkommt, ist man

00:36:21.203 --> 00:36:21.582
wieder zurück.

00:36:23.062 --> 00:36:24.923
Wusstet ihr, dass Bash auch so ein Feature hat?

00:36:25.042 --> 00:36:26.403
Da kann man Verzeichnisse pushen.

00:36:26.842 --> 00:36:28.362
Man kann es sonst gleich machen mit Verzeichnissen.

00:36:28.982 --> 00:36:31.062
Und wenn du fertig bist, kannst du pop machen und bist dann wieder da,

00:36:31.183 --> 00:36:31.982
wo du vorher push gemacht hast.

00:36:31.982 --> 00:36:33.923
Ah, ne wusste ich nicht.

00:36:34.042 --> 00:36:34.482
Ah, cool.

00:36:36.802 --> 00:36:37.802
Du musst allerdings selber

00:36:37.802 --> 00:36:40.163
darauf aufpassen, dass du wieder in die richtige Stelle zurückpopst.

00:36:40.383 --> 00:36:41.883
Bei jedem CD kannst du danach poppen.

00:36:41.883 --> 00:36:44.262
und ja.

00:36:44.282 --> 00:36:46.243
Ja, genau. Aber du kannst halt einen Stack bauen.

00:36:46.502 --> 00:36:48.342
Und du könntest prinzipiell ja auch Sub-Shells machen,

00:36:48.522 --> 00:36:50.302
wo du dann Verzeichnisse wechselst,

00:36:50.362 --> 00:36:51.623
aber das wäre ja zu viel Aufwand.

00:36:51.862 --> 00:36:53.903
Wo ihr gerade schon bei Battery... Kennt ihr Sockside?

00:36:55.082 --> 00:36:55.802
Nee, was ist das?

00:36:56.123 --> 00:36:58.322
Das ist so ein schönes, kleines Tool,

00:36:58.403 --> 00:36:59.903
das für mich CD ersetzt hat.

00:37:00.923 --> 00:37:02.403
Ach, doch, doch, doch. Das verwende ich auch.

00:37:02.502 --> 00:37:04.022
Ja, ja, ja. Vielen Dank.

00:37:04.163 --> 00:37:05.943
War ein guter Tipp. Ja, weil man kann nämlich einfach

00:37:05.943 --> 00:37:07.522
Abbreviation schreiben statt Direct.

00:37:07.522 --> 00:37:09.302
Der merkt sich quasi die Verzeichnisse,

00:37:09.403 --> 00:37:11.463
in denen man schon war und dann nimmt er den

00:37:11.463 --> 00:37:12.963
nächsten Match davon.

00:37:13.482 --> 00:37:15.703
Und dann kann man quasi mit zwei Zeichen

00:37:15.703 --> 00:37:17.663
oder sowas in das Directory seiner Wahl

00:37:17.663 --> 00:37:18.963
springen und das funktioniert ziemlich gut.

00:37:19.703 --> 00:37:20.562
Ja, okay.

00:37:21.463 --> 00:37:22.362
Ja, ist tatsächlich sehr nett.

00:37:23.822 --> 00:37:25.082
Hört sich gefährlich an.

00:37:27.062 --> 00:37:27.542
Du musst halt

00:37:27.542 --> 00:37:28.443
die Fahrzeuge nicht mehr ausschreiben.

00:37:30.022 --> 00:37:30.982
Autocompletion for the win, ja.

00:37:32.923 --> 00:37:33.322
Dieses

00:37:33.322 --> 00:37:35.542
Manifest unterschreibe ich zwar prinzipiell, aber

00:37:35.542 --> 00:37:37.643
ich möchte schon gerne wissen,

00:37:37.723 --> 00:37:39.602
was der Computer macht. Ein Hoch auf den Copilot,

00:37:39.602 --> 00:37:40.522
das ist hervorragend.

00:37:40.522 --> 00:37:43.082
Weißt du ganz genau, was passiert, wenn du Tab drückst?

00:37:45.203 --> 00:37:45.683
Natürlich.

00:37:46.383 --> 00:37:47.582
Ganz exakt weiß ich das.

00:37:48.203 --> 00:37:49.982
Vor allem in sowas wie PyCharm.

00:37:50.302 --> 00:37:52.383
Das ist ja ein relativ kleines, übersichtliches

00:37:52.383 --> 00:37:54.302
Java-Programm. Da weiß man immer

00:37:54.302 --> 00:37:55.782
genau, was passiert vorher.

00:37:56.362 --> 00:37:58.002
Aber Control-R zum Beispiel ist ja dann auch so,

00:37:58.022 --> 00:38:00.443
kann man das auch konfigurieren bei PyCharm oder sowas?

00:38:00.982 --> 00:38:02.062
Dass man eine Liste von

00:38:02.062 --> 00:38:03.862
Vorschlägen bekommt, die jetzt gerade

00:38:03.862 --> 00:38:06.163
die tollste Alternative gewesen wären.

00:38:07.022 --> 00:38:08.482
Wie das Fisch-Shell

00:38:08.482 --> 00:38:09.183
macht das ja zum Beispiel.

00:38:09.183 --> 00:38:39.163
und Jochen unterhalten sich über die Programmiersprache Python

00:38:39.183 --> 00:38:40.302
und Shell kennt ihr ja alle schon.

00:38:41.062 --> 00:38:41.763
Kleiner Exkurs.

00:38:44.022 --> 00:38:44.342
Genau.

00:38:45.042 --> 00:38:45.602
Was haben wir denn noch?

00:38:45.763 --> 00:38:48.022
Wenn wir schon mal in den Exkursen sind, also ich wollte nochmal sagen, ich bin natürlich

00:38:48.022 --> 00:38:50.383
einer von den Netten eigentlich, muss halt dann auch nett sein,

00:38:50.462 --> 00:38:51.782
aber das ist halt Capitalism, Baby.

00:38:52.322 --> 00:38:54.223
Wir haben über die gerade in den Projekt-Sachen gesprochen.

00:38:54.683 --> 00:38:55.263
Das ist halt der Punkt.

00:38:56.482 --> 00:38:58.282
Also wenn mich jemand als Sklave ausbeuten will,

00:38:58.322 --> 00:38:59.223
das kann man natürlich nicht zulassen.

00:39:00.143 --> 00:39:02.082
Es sei denn, man ist ja in einer holokratischen Gemeinschaft,

00:39:02.163 --> 00:39:03.203
dann ist das für alles was anderes.

00:39:04.203 --> 00:39:06.062
Der Dominik hat gerade auch noch was von seinem Stack

00:39:06.062 --> 00:39:06.962
zurückgeholt.

00:39:09.183 --> 00:39:14.903
Es gibt tatsächlich Dinge, die noch gefährlicher sind als Ted und zwar Woosh

00:39:14.903 --> 00:39:19.223
Aber ja, ich fürchte, dass es halt

00:39:19.223 --> 00:39:23.042
Kapitalismus ist schwer

00:39:23.042 --> 00:39:24.683
Ja, es ist ein Problem

00:39:24.683 --> 00:39:28.203
Kapitalismus ist schwer

00:39:28.203 --> 00:39:29.763
Man kann sich da schon die Zähne draus beißen, muss man sagen

00:39:29.763 --> 00:39:31.943
Nein, nein, das Problem ist halt

00:39:31.943 --> 00:39:36.522
Das Problem ist halt, dass man gegamed wird vom Geld

00:39:36.522 --> 00:39:39.362
Ja, das ist das Problem dabei

00:39:39.362 --> 00:39:41.102
Und dann muss man überlegen, ob man

00:39:41.102 --> 00:39:43.362
ein Game will, also in Spieltheorie kann man ja

00:39:43.362 --> 00:39:45.342
überlegen, ob das fair verhandelt

00:39:45.342 --> 00:39:46.822
dann verhandelbare Lösungen gibt

00:39:46.822 --> 00:39:49.383
oder nicht, und ich sag mal so

00:39:49.383 --> 00:39:50.923
man kann nicht ja vielleicht Glück sein, wenn man ein paar

00:39:50.923 --> 00:39:52.562
Zipationen sich erkaufen kann oder das möchte

00:39:52.562 --> 00:39:55.282
oder wenn man höhere Ziele dafür

00:39:55.282 --> 00:39:55.683
aufgibt

00:39:55.683 --> 00:39:58.782
für den schnöden Mammon

00:39:58.782 --> 00:39:59.482
Ja

00:39:59.482 --> 00:40:02.462
Ja, man muss aufpassen

00:40:02.462 --> 00:40:04.982
Es ist schwierig und ja

00:40:04.982 --> 00:40:08.763
und es ist leichter, Fehler zu machen.

00:40:08.903 --> 00:40:09.302
Das ist schon richtig.

00:40:11.102 --> 00:40:12.342
Ich finde, es ist eine Pflicht,

00:40:12.602 --> 00:40:13.582
da Widerstand zu leisten.

00:40:14.522 --> 00:40:15.163
Ach so, ja.

00:40:17.123 --> 00:40:18.903
Egal, wir wollten keine politischen Sachen.

00:40:18.943 --> 00:40:21.082
Das ist aber schon so ein moralisches

00:40:21.082 --> 00:40:22.302
Dilemma, was man hat manchmal.

00:40:23.582 --> 00:40:25.082
Ich war noch nicht

00:40:25.082 --> 00:40:27.123
in der Situation, dass ich ein Feature bauen musste,

00:40:28.763 --> 00:40:29.143
wo ich

00:40:29.143 --> 00:40:31.482
moralisch

00:40:31.482 --> 00:40:33.243
nicht dazu in der Lage gewesen wäre,

00:40:33.243 --> 00:40:34.223
um es mal so zu formulieren.

00:40:34.982 --> 00:40:38.322
aber es gibt ja schon so Situationen, man hört das ja immer wieder

00:40:38.322 --> 00:40:39.782
gerade mit den

00:40:39.782 --> 00:40:42.362
zahlreichen Personen

00:40:42.362 --> 00:40:44.562
deren MBAs bei Twitter ausgelaufen

00:40:44.562 --> 00:40:45.322
ist

00:40:45.322 --> 00:40:47.723
die

00:40:47.723 --> 00:40:50.482
jetzt über Features sprechen können, die sie hätten

00:40:50.482 --> 00:40:51.223
bauen sollen

00:40:51.223 --> 00:40:54.582
da gibt es schon interessante Geschichten

00:40:54.582 --> 00:40:56.403
okay, das habe ich mir

00:40:56.403 --> 00:40:58.562
viel drüber diskutiert

00:40:58.562 --> 00:40:58.822
aber

00:40:58.822 --> 00:41:01.383
ja, das ist so

00:41:01.383 --> 00:41:03.102
einer von diesen Twitter

00:41:03.102 --> 00:41:07.383
von diesen, einer von den wenigen entlassenen Twitter Software Engineers

00:41:07.383 --> 00:41:10.163
hat geschrieben auf Twitter,

00:41:12.123 --> 00:41:17.763
dass das vor einigen Jahren, 2016 war das, als Twitter ganz arg Geld gebraucht hat,

00:41:18.643 --> 00:41:21.482
wo übrigens Google und Facebook beide nicht Twitter kaufen wollten,

00:41:21.482 --> 00:41:22.822
wo die sich jetzt glaube ich ärgern,

00:41:24.822 --> 00:41:28.743
dass sie da mit so Telcos zusammengearbeitet haben

00:41:28.743 --> 00:41:32.643
und die dann halt verlangt haben, dass Twitter quasi alle 10 Sekunden

00:41:32.643 --> 00:41:34.842
die aktuelle Position des Benutzers übermittelt,

00:41:34.943 --> 00:41:36.943
damit die schauen, ob die in die Läden der Konkurrenz

00:41:36.943 --> 00:41:37.383
reingehen.

00:41:38.562 --> 00:41:40.723
Wo dann halt auch der Engineer

00:41:40.723 --> 00:41:42.143
gesagt hat, das brauche ich nicht.

00:41:42.143 --> 00:41:42.743
Das mache ich nicht.

00:41:44.123 --> 00:41:46.022
Und da halt in dem Team der Einzige war,

00:41:46.322 --> 00:41:47.383
der das hatte machen können,

00:41:47.903 --> 00:41:49.643
mussten die halt sagen, okay gut, dann gibt es das halt nicht.

00:41:50.022 --> 00:41:51.663
Er ist dann wohl auch entlassen worden, aber

00:41:51.663 --> 00:41:55.123
er hat es nicht gemacht.

00:41:55.423 --> 00:41:58.143
Und da gehört ja schon ein gewisser Mut dazu.

00:41:58.462 --> 00:42:00.203
Gerade, also ich meine,

00:42:00.203 --> 00:42:09.342
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.

00:42:10.263 --> 00:42:14.623
Aber es gehört natürlich trotzdem Mut dazu, zu sagen, ich mache das nicht, auch wenn ihr mich entlasst.

00:42:14.703 --> 00:42:15.943
Ja, und die meisten Leute haben auch ihren Preis.

00:42:15.962 --> 00:42:16.883
Dann erst recht.

00:42:16.883 --> 00:42:19.062
Dann nur mehr zahlen und dann geht es dann trotzdem oder so.

00:42:20.022 --> 00:42:24.342
Ja, auch das. Das wurde ja wohl auch gefragt, wie viel Geld müsst ihr denn geben, dass du es machst?

00:42:26.243 --> 00:42:28.822
Und dann hat er gesagt, so viel Geld habt ihr nicht.

00:42:30.203 --> 00:42:31.243
Tja.

00:42:32.862 --> 00:42:35.002
Ja, ja, also ich meine, nö, aber ich merke das ja,

00:42:35.143 --> 00:42:37.143
ich denke, es gibt viele Leute,

00:42:37.342 --> 00:42:38.683
die wahrscheinlich irgendwie, ich glaube,

00:42:39.022 --> 00:42:41.082
Waffenentwicklung oder so wäre für viele

00:42:41.082 --> 00:42:42.862
schon ein Tabu oder auch

00:42:42.862 --> 00:42:45.022
eben, weil für irgendwelche

00:42:45.022 --> 00:42:46.163
staatlichen Akteure irgendwie

00:42:46.163 --> 00:42:48.322
irgendwelche Schnüffelgeschichten bauen oder so.

00:42:48.342 --> 00:42:51.082
Aber da gibt es ja auch wieder Gut und Böse, deswegen sagt ja der Crusader das.

00:42:51.383 --> 00:42:53.482
Ja, irgendjemand macht's, aber ich denke...

00:42:53.482 --> 00:42:55.183
Ja, irgendjemand hat den Staatstrojaner geschrieben.

00:42:55.362 --> 00:42:56.383
Irgendjemand hat...

00:42:56.383 --> 00:42:58.462
Nein, aber die Frage ist halt, wenn du angegriffen wirst,

00:42:58.462 --> 00:43:00.403
und dann ist es relativ opportunistischer,

00:43:00.643 --> 00:43:01.663
wieder sowas zu tun.

00:43:02.643 --> 00:43:02.842
Hm?

00:43:03.223 --> 00:43:04.862
Wenn du dich bedroht fühlst.

00:43:06.243 --> 00:43:08.643
Du bist das kleine China

00:43:08.643 --> 00:43:09.802
und das große Amerika,

00:43:10.362 --> 00:43:11.362
versuchst dich zu unterdrücken,

00:43:11.663 --> 00:43:13.623
dann musst du dich wehren und so weiter.

00:43:13.883 --> 00:43:15.302
Das hat doch nichts mit

00:43:15.302 --> 00:43:18.383
Privacy-Sachen zu tun, die du dir verkaufen kannst.

00:43:18.403 --> 00:43:19.962
Doch. Viel.

00:43:20.282 --> 00:43:20.703
Alles.

00:43:21.403 --> 00:43:23.423
Mit Datenschutz zu tun.

00:43:23.802 --> 00:43:25.802
Ich glaube schon. Also die ganzen kommerziellen Zwecke,

00:43:25.802 --> 00:43:27.663
die dann dazu führen, dass sowas passiert

00:43:27.663 --> 00:43:28.822
und diese ganzen

00:43:28.822 --> 00:43:31.643
Incentives überhaupt, das zu machen, also auch

00:43:31.643 --> 00:43:33.643
für Geld und so, also die Moral

00:43:33.643 --> 00:43:35.743
hinten anzustellen oder das halt tatsächlich aktiv

00:43:35.743 --> 00:43:37.862
zu machen, um für so einen Staat

00:43:37.862 --> 00:43:39.782
oder sowas an eine Aktion

00:43:39.782 --> 00:43:41.582
treten zu können und dem mehr Kontrolle zu verschaffen,

00:43:41.743 --> 00:43:43.243
das, glaube ich, hängt sehr stark damit ab.

00:43:45.542 --> 00:43:47.282
Vielleicht habe ich es auch noch nicht so richtig verstanden.

00:43:47.282 --> 00:43:49.243
Also ich weiß es nicht, um ganz ehrlich zu sein.

00:43:49.663 --> 00:43:51.663
Ich weiß nicht, um ganz ehrlich zu sein, wenn man mehr Geld

00:43:51.663 --> 00:43:53.502
anbieten würde für ein unethisches

00:43:53.502 --> 00:43:54.342
Feature.

00:43:54.842 --> 00:43:57.143
Ich kann ja schon mal die Kontonummer sagen, aber

00:43:57.143 --> 00:43:58.643
Könntest du deine Fahne tun?

00:43:59.062 --> 00:44:00.022
Die Flagge hochhalten?

00:44:00.623 --> 00:44:03.362
Ich glaube von mir, dass ich ein guter

00:44:03.362 --> 00:44:05.282
Mensch bin, aber wenn es dann tatsächlich

00:44:05.282 --> 00:44:07.562
in der Situation ist, kann ich nicht garantieren,

00:44:07.703 --> 00:44:08.923
dass es tatsächlich so ist, weil

00:44:08.923 --> 00:44:11.383
ich habe halt Familie und

00:44:11.383 --> 00:44:13.403
ein Häusle, was abbezahlt werden muss und

00:44:13.403 --> 00:44:15.243
irgendwie

00:44:15.243 --> 00:44:17.502
will man sich ja da schon schützen.

00:44:17.723 --> 00:44:19.163
Und man ist ja auch bequem, ganz ehrlich.

00:44:19.282 --> 00:44:20.022
Ja, das ist komfortabel.

00:44:20.423 --> 00:44:21.723
Jeden Tagsprojekt.

00:44:22.082 --> 00:44:24.562
Dafür habe ich an der Uni immer Schelte bekommen,

00:44:24.862 --> 00:44:25.982
wenn solche Leute waren.

00:44:25.982 --> 00:44:27.223
und der Schwießerbinden, Dominik.

00:44:27.362 --> 00:44:29.862
Ja, genau, das ist ja völlig klar. Die Kampfbereitschaft,

00:44:29.982 --> 00:44:31.302
der Mut zur Veränderung,

00:44:31.623 --> 00:44:33.703
viele revolutionäre Anteile und so, ja, ja.

00:44:35.082 --> 00:44:35.623
Verstehe schon.

00:44:37.042 --> 00:44:38.002
Ja, und bevor die das Geld

00:44:38.002 --> 00:44:39.862
jemand anderem geben, der das nicht gescheit macht,

00:44:39.982 --> 00:44:40.862
dann mach es doch lieber ich.

00:44:45.383 --> 00:44:46.022
Capitalism, Baby.

00:44:46.903 --> 00:44:48.223
Ja, es ist schwierig.

00:44:48.322 --> 00:44:48.723
Andererseits

00:44:48.723 --> 00:44:51.903
kenne ich halt auch so Leute, die von sich selber sagen,

00:44:51.982 --> 00:44:54.462
ja gut, sie sind halt Software-

00:44:54.462 --> 00:44:55.763
Prostituierte, die machen halt, was

00:44:55.763 --> 00:44:57.462
der Kunde verlangt.

00:44:57.782 --> 00:44:59.362
Solange der das bezahlt, machen die das halt.

00:45:00.223 --> 00:45:01.383
Ich würde sagen, das ist nicht voll.

00:45:03.782 --> 00:45:04.002
Ja.

00:45:08.443 --> 00:45:09.602
Ist jetzt auch, würde ich sagen,

00:45:09.663 --> 00:45:11.383
nicht so furchtbar verwerflich, ehrlich gesagt,

00:45:11.502 --> 00:45:13.522
weil ich meine, das ist ja das, was alle

00:45:13.522 --> 00:45:15.683
anderen eigentlich auch so machen, üblicherweise.

00:45:16.183 --> 00:45:17.743
Ja, aber gerade dann ist es doch verwerflich.

00:45:18.322 --> 00:45:18.443
Ja?

00:45:19.143 --> 00:45:21.062
Ja, vielleicht ist es besonders verwerflich.

00:45:21.082 --> 00:45:23.102
Gerade hier in Deutschland muss man doch aus der Geschichte

00:45:23.102 --> 00:45:25.542
sagen, ja, wenn die Hunde das machen,

00:45:25.542 --> 00:45:29.362
dann ist es besonders da, einem zwei Stufen voran in den Abgrund rennen.

00:45:29.982 --> 00:45:34.243
Ja, es ist schwierig, ich weiß es nicht.

00:45:35.562 --> 00:45:38.943
Aber eben darüber reden bringt auch nichts, weil irgendwie eigentlich,

00:45:39.163 --> 00:45:42.423
das ist auch so etwas, da können wir den Bogen wieder zurück zu Twitter,

00:45:42.703 --> 00:45:45.683
dass man auf Twitter irgendwie auch sehr auf den Sack geht eigentlich.

00:45:46.243 --> 00:45:49.223
Das ist ja der Aufruf, jemand soll uns mal in diese Situation bringen.

00:45:49.342 --> 00:45:52.203
Man muss nur danken von den Leuten, die böse nicht richtig auseinanderhalten können

00:45:52.203 --> 00:45:53.962
und nicht wissen, für wen es sich richtig kämpfen lohnt.

00:45:53.962 --> 00:45:56.623
Das Problem ist halt, man kann nicht drüber reden

00:45:56.623 --> 00:45:58.602
Man kann da nur Sachen machen oder nicht machen

00:45:58.602 --> 00:46:00.542
Ja, und dann kann man, aber wenn so

00:46:00.542 --> 00:46:02.923
Ich meine, eigentlich ist das halt eine selbstwidersprüchliche

00:46:02.923 --> 00:46:04.703
Geschichte, wenn man sagt, ich bin einer von den Guten

00:46:04.703 --> 00:46:06.542
und mach das nicht, weil damit

00:46:06.542 --> 00:46:08.062
wenn ich das höre, dann

00:46:08.062 --> 00:46:11.102
höre ich eigentlich, du bist einer von den Bösen

00:46:11.102 --> 00:46:12.263
Weil

00:46:12.263 --> 00:46:13.562
das öffentlich

00:46:13.562 --> 00:46:16.683
zu moralisieren ist halt eine

00:46:16.683 --> 00:46:18.223
Methode, um das zu gamen

00:46:18.223 --> 00:46:19.362
Daher

00:46:19.362 --> 00:46:21.102
Ja, aber das ist ja richtig

00:46:21.102 --> 00:46:25.743
Ja, es wäre richtig, das zu tun.

00:46:25.763 --> 00:46:27.802
Wir sind die Guten, weil wir das öffentlich geben.

00:46:29.143 --> 00:46:30.062
Das ist die Frage,

00:46:30.183 --> 00:46:31.082
ob das nicht nur Signaling ist.

00:46:31.342 --> 00:46:34.123
Genau, also insofern...

00:46:34.123 --> 00:46:35.562
Ich würde auch sagen, was entscheidend wäre,

00:46:35.623 --> 00:46:36.982
was hinterher wirklich gemacht wird und nicht,

00:46:37.383 --> 00:46:39.143
was erzählt wird, was jemand machen wollen würde

00:46:39.143 --> 00:46:41.223
und was andere machen sollen, sollten und so.

00:46:41.263 --> 00:46:42.362
Das finde ich auch immer so ein bisschen...

00:46:42.362 --> 00:46:43.002
Aber ja, egal.

00:46:43.263 --> 00:46:45.862
Wie gesagt, ist der Aufruf,

00:46:46.123 --> 00:46:48.502
wenn mir jemand viel Geld für moralisch verwerfliche Dinge

00:46:48.502 --> 00:46:49.223
anbieten möchte,

00:46:49.223 --> 00:46:52.203
Meine E-Mail-Adresse ist hier.

00:46:56.462 --> 00:47:00.123
Ich wüsste zwei andere, denen man das dann auch anbieten kann.

00:47:02.903 --> 00:47:03.822
Abzüglich irgendwie.

00:47:04.982 --> 00:47:05.562
Ja, genau.

00:47:07.982 --> 00:47:10.883
Genau, aber diese ganze Twitter-Geschichte ist natürlich auch nochmal interessant.

00:47:12.542 --> 00:47:14.623
An der Stelle, um nochmal auf die letzte vorzudrücken,

00:47:14.822 --> 00:47:16.723
kurz so eine Coin-Adresse.

00:47:16.723 --> 00:47:17.903
in die Schuhe zu bringen.

00:47:17.903 --> 00:47:20.143
Ja, also da ist auch wieder was geplattet.

00:47:20.163 --> 00:47:21.643
Kann man noch, lohnen sich Coin-Adressen noch?

00:47:21.663 --> 00:47:24.442
Das würde auch unter News noch fallen, FTX irgendwie.

00:47:25.302 --> 00:47:26.743
Ja, FTX und Binance waren für mich der Bumm.

00:47:26.942 --> 00:47:28.783
Also ich hatte mir letztes Mal schon überlegt,

00:47:28.883 --> 00:47:29.783
aber vielleicht muss ich das jetzt nochmal,

00:47:31.302 --> 00:47:32.883
wie kann man eigentlich den Kram shorten?

00:47:34.582 --> 00:47:35.082
Ach na ja.

00:47:35.123 --> 00:47:35.562
Das ist schwierig.

00:47:36.322 --> 00:47:37.883
Das geht nur, wenn jemanden hast, der

00:47:37.883 --> 00:47:39.862
sorgen will.

00:47:40.783 --> 00:47:42.743
Du musst halt wissen, wie viel Asset-Anteil

00:47:42.743 --> 00:47:44.623
solche Investitionen an welchen

00:47:44.623 --> 00:47:46.342
Kapitalgesellschaften haben und musst die halt shorten.

00:47:46.723 --> 00:47:48.542
Das Problem ist,

00:47:48.842 --> 00:47:51.403
the markets can stay irrational longer

00:47:51.403 --> 00:47:52.582
than you can stay solvent.

00:47:53.502 --> 00:47:55.143
Das ist ein Problem, ja.

00:47:55.643 --> 00:47:55.862
Can.

00:47:56.763 --> 00:47:59.042
Deshalb ist es ein gefährliches Spiel.

00:48:01.123 --> 00:48:01.643
Ja, genau.

00:48:01.763 --> 00:48:02.942
Vielleicht auch erstmal wieder exkludieren.

00:48:05.362 --> 00:48:07.482
Und hinterher dann sagen, ich wusste es.

00:48:07.723 --> 00:48:08.342
Ich habe nichts gemacht.

00:48:10.143 --> 00:48:11.143
So ist es halt immer.

00:48:11.302 --> 00:48:12.183
Ich habe es euch ja gesagt.

00:48:12.183 --> 00:48:14.022
Aber jetzt ist es zumindest irgendwie aufgenommen.

00:48:14.502 --> 00:48:15.582
Macht nichts für Ice Cream, Jochen.

00:48:15.582 --> 00:48:17.403
und sagen, ich habe es tatsächlich gesagt.

00:48:18.062 --> 00:48:18.283
Ja.

00:48:20.683 --> 00:48:21.663
Ja, also

00:48:21.663 --> 00:48:23.683
dieser Twitter-Autounfall

00:48:23.683 --> 00:48:24.663
da ist auch gerade...

00:48:24.663 --> 00:48:26.942
In Zeitlupe ist es doch nicht, oder?

00:48:26.942 --> 00:48:28.522
Stimmt, es ist ein relativ schneller...

00:48:28.522 --> 00:48:31.962
Wenn man versuchen würde,

00:48:32.062 --> 00:48:33.842
Twitter kaputt zu machen, wäre es

00:48:33.842 --> 00:48:35.263
schwierig, das schneller hinzukriegen.

00:48:36.002 --> 00:48:36.123
Ja.

00:48:37.422 --> 00:48:38.763
Das ist schon beeindruckend.

00:48:39.022 --> 00:48:40.903
Ich habe gar nichts davon mitbekommen, weil ich

00:48:40.903 --> 00:48:43.042
habe ja seit Twitter, seit, weiß ich nicht,

00:48:43.143 --> 00:48:45.062
2008,

00:48:45.062 --> 00:48:46.143
9, 10, weiß nicht.

00:48:46.143 --> 00:48:46.542
Super unterhaltsam.

00:48:46.783 --> 00:48:50.283
Vor 15 Tagen hat er Twitter gekauft

00:48:50.283 --> 00:48:51.522
und ist hier auch von Twitter gekommen.

00:48:53.302 --> 00:48:54.562
Der Saint Elon,

00:48:54.822 --> 00:48:56.643
wie man ihn gemeinhin nennt.

00:48:58.082 --> 00:48:58.683
Der heilige Elon.

00:48:59.322 --> 00:49:00.383
Und seither

00:49:00.383 --> 00:49:02.502
gibt es nur gute Nachrichten aus diesem

00:49:02.502 --> 00:49:04.522
Laden. Also eine der

00:49:04.522 --> 00:49:06.362
ersten Sachen, die er gemacht hat, ist, dass er drei Viertel

00:49:06.362 --> 00:49:07.883
der Belegschaft gefeuert hat. So viele?

00:49:08.203 --> 00:49:09.903
Ich glaube die Hälfte oder drei Viertel, ich weiß es nicht.

00:49:10.302 --> 00:49:12.002
Also alle Leute, die vorbeigelaufen sind,

00:49:12.082 --> 00:49:13.082
nach seiner Nachricht abhaben.

00:49:13.082 --> 00:49:15.082
Es ist tatsächlich auch wurscht. Viele von den Sachen

00:49:15.082 --> 00:49:17.143
sind schwer zu verifizieren. Man weiß es

00:49:17.143 --> 00:49:18.723
nicht genau, aber man hört.

00:49:20.183 --> 00:49:21.442
Dann hat er

00:49:21.442 --> 00:49:22.982
angekündigt, das ist dieses blaue

00:49:22.982 --> 00:49:25.123
Checkmark. Es gibt ja für verifizierte

00:49:25.123 --> 00:49:27.362
Personen, gibt es so ein blaues Häkchen.

00:49:27.703 --> 00:49:29.302
Das wurde mal eingeführt, weil

00:49:29.302 --> 00:49:31.143
Identitätsdiebstahl

00:49:31.143 --> 00:49:33.002
sehr einfach war. Man hat sich halt

00:49:33.002 --> 00:49:34.643
einfach Elon Musk genannt.

00:49:34.643 --> 00:49:36.562
Mit dem Bildchen rein und dann immer

00:49:36.562 --> 00:49:37.942
seriöse Post verfasst vor der Zeit.

00:49:38.183 --> 00:49:40.822
Solange seriöse Post nicht verrückt geworden ist.

00:49:41.022 --> 00:49:42.022
Und für

00:49:42.022 --> 00:49:45.562
für Personen des öffentlichen Lebens

00:49:45.562 --> 00:49:47.203
wurde dann mal eben so eine Verification

00:49:47.203 --> 00:49:48.883
eingeführt, dass du eben sagen kannst,

00:49:49.002 --> 00:49:51.102
okay, du bist tatsächlich der wirkliche

00:49:51.102 --> 00:49:51.362
Donald.

00:49:53.723 --> 00:49:55.203
Und nur der hat so ein

00:49:55.203 --> 00:49:57.403
blaues Häkchen und das ist dann verifiziert.

00:49:57.522 --> 00:49:59.102
Oder du machst das mit Auslandsverifikation

00:49:59.102 --> 00:50:00.442
oder kriegst du Postident?

00:50:00.763 --> 00:50:02.502
Ich weiß nicht genau, wie die das gemacht haben.

00:50:02.502 --> 00:50:04.562
Das war wohl ein Team, das das gemacht hat,

00:50:04.802 --> 00:50:05.842
was kompliziert war.

00:50:05.842 --> 00:50:07.783
Es waren ja auch nicht so, also das war halt

00:50:07.783 --> 00:50:09.283
nur so, also haben Leute

00:50:09.283 --> 00:50:11.623
berühmtheitende Journalisten und so gekriegt, aber

00:50:11.623 --> 00:50:13.922
und das wurde halt manuell gemacht.

00:50:14.462 --> 00:50:16.422
Oh, das heißt also neue Fame, der blaue Haken.

00:50:16.542 --> 00:50:16.842
Ja, ja.

00:50:17.302 --> 00:50:20.022
Und eine der ersten Geschäftsideen, die

00:50:20.022 --> 00:50:22.703
der heilige E mitgebracht hat,

00:50:22.763 --> 00:50:24.723
war, dass das jetzt 20 Dollar im Monat kostet,

00:50:24.783 --> 00:50:25.822
wenn du so ein blaues Häkchen hast.

00:50:27.002 --> 00:50:28.683
Und dann hat Stephen King zurückgeschrieben,

00:50:28.783 --> 00:50:31.143
ihr solltet mich dafür bezahlen,

00:50:31.502 --> 00:50:32.822
dass ich so ein blaues Häkchen habe,

00:50:32.862 --> 00:50:34.663
nicht umgekehrt. Und dann hat Elon

00:50:34.663 --> 00:50:36.883
geantwortet, okay, vielleicht ist 20 Dollar

00:50:36.883 --> 00:50:38.362
zu viel, wie wäre es mit 8 Dollar?

00:50:39.462 --> 00:50:40.723
Und das hat ja schon mal für sehr viel

00:50:40.723 --> 00:50:44.862
Unterhaltung gesagt, weil die Leute kommentiert haben, also ich bin ja kein CEO von großen

00:50:44.862 --> 00:50:49.002
Firmen, aber ich dachte, wenn man 44 Milliarden Dollar für irgendwas ausgibt,

00:50:49.102 --> 00:50:50.822
überlegt man sich vorher ein Businessmodell.

00:50:53.322 --> 00:50:56.723
Jedenfalls kostet das jetzt 8 Dollar im Monat und es ist jetzt auch

00:50:56.723 --> 00:51:00.623
frei verfügbar, weil der möchte das ja so vielen Leuten wie möglich verkaufen.

00:51:00.623 --> 00:51:02.942
Du kannst dich bei Twitter anmelden,

00:51:03.743 --> 00:51:08.903
kannst dich verifizieren lassen für 8 Dollar und das hat natürlich sofort dazu geführt,

00:51:08.903 --> 00:51:12.002
verifizieren lassen.

00:51:12.582 --> 00:51:13.623
Nee, als Elon Musk.

00:51:15.522 --> 00:51:17.362
Ganz viele Leute haben sich als Elon Musk

00:51:17.362 --> 00:51:19.422
verifiziert und dann natürlich auch

00:51:19.422 --> 00:51:20.942
sehr viele schöne Dinge getwittert.

00:51:21.602 --> 00:51:23.183
Kann man auf den üblichen

00:51:23.183 --> 00:51:24.602
Internet finden. Also das war

00:51:24.602 --> 00:51:26.663
tatsächlich sehr lustig, muss ich sagen.

00:51:26.663 --> 00:51:27.703
Also war gut geunterhalten.

00:51:30.263 --> 00:51:30.663
Übrigens,

00:51:30.743 --> 00:51:32.862
du brauchst eine US-Adresse

00:51:32.862 --> 00:51:34.383
dafür. Also das musst du irgendwie

00:51:34.383 --> 00:51:35.962
VPN und so. Aber es geht.

00:51:36.163 --> 00:51:38.302
By the way, the next thing I do, Elon Musk post,

00:51:38.302 --> 00:51:39.022
I buy Python.

00:51:40.203 --> 00:51:42.442
Aber Elon Musk hat sich ja

00:51:42.442 --> 00:51:44.082
schon lange Zeit als Verfechter des

00:51:44.082 --> 00:51:46.143
Free Speech hingestellt, dass er jetzt

00:51:46.143 --> 00:51:47.362
hier wieder alles frei macht.

00:51:47.962 --> 00:51:50.082
Dann ging es aber sofort, als die Leute

00:51:50.082 --> 00:51:51.982
angefangen haben, sich als Elon Musk auszugeben,

00:51:52.062 --> 00:51:53.283
wurden die dann sofort suspendiert.

00:51:54.022 --> 00:51:55.743
Dann hat er gesagt,

00:51:56.442 --> 00:51:58.442
das ist wohl zu viel geworden.

00:51:58.743 --> 00:51:59.502
Ich weiß gar nicht, wieso.

00:51:59.862 --> 00:52:00.903
Für mich sehr lustig.

00:52:01.862 --> 00:52:03.663
Er hat sich da so ein bisschen reingestört.

00:52:04.082 --> 00:52:05.703
Dann hat er gesagt, das finde ich nicht okay.

00:52:07.102 --> 00:52:08.203
Da muss ich jetzt

00:52:08.203 --> 00:52:10.542
immer Parodie drüber geschrieben werden, sonst geht das nicht.

00:52:10.842 --> 00:52:12.322
Und wenn er es nicht macht,

00:52:12.602 --> 00:52:14.263
dann verbannt er die Leute irgendwie.

00:52:14.982 --> 00:52:15.802
Hat er dann auch gemacht.

00:52:15.842 --> 00:52:18.302
Aber heute war ja tatsächlich die nächste

00:52:18.302 --> 00:52:20.223
Welle. Die nächste Welle

00:52:20.223 --> 00:52:21.422
in diesem Drama, weil

00:52:21.422 --> 00:52:24.203
Personentättsdiebstahl ist ja verboten,

00:52:24.342 --> 00:52:26.342
aber Firmen haben ja keine Persönlichkeitsrechte.

00:52:26.502 --> 00:52:28.342
Und deshalb gab es heute ganz viele Leute,

00:52:28.482 --> 00:52:29.082
die sich als

00:52:29.082 --> 00:52:31.502
Firmen verifiziert haben

00:52:31.502 --> 00:52:34.322
und dann Tweets über diese

00:52:34.322 --> 00:52:35.883
mit diesen Firmen geschrieben haben.

00:52:35.883 --> 00:52:36.783
Zum Beispiel Tesla.

00:52:38.203 --> 00:52:40.082
und hat heute einen wundervollen Tweet

00:52:40.082 --> 00:52:40.663
geöffentlicht.

00:52:41.383 --> 00:52:43.822
A second Tesla has

00:52:43.822 --> 00:52:45.683
arrived at the World Trade Center.

00:52:45.922 --> 00:52:47.462
Also so ganz

00:52:47.462 --> 00:52:48.183
gute Sachen.

00:52:49.342 --> 00:52:51.042
Ein Eli Lilly hat

00:52:51.042 --> 00:52:53.862
einen Tweet geschrieben, der groß angekommen ist,

00:52:53.962 --> 00:52:55.502
dass Insulin ab jetzt kostenlos ist.

00:52:56.922 --> 00:52:57.862
Und sie haben

00:52:57.862 --> 00:52:59.243
sich dann sehr dafür entschuldigt,

00:52:59.422 --> 00:53:01.522
dass das zu Verwirrungen geführt hat

00:53:01.522 --> 00:53:03.403
und es kostet natürlich weiterhin

00:53:03.403 --> 00:53:04.783
700 Dollar pro Monat.

00:53:07.203 --> 00:53:07.643
Aber

00:53:07.643 --> 00:53:13.143
und das ist so der aktuelle Stand

00:53:13.143 --> 00:53:16.283
und ja, von diesen gefeuerten Leuten

00:53:16.283 --> 00:53:19.062
wurden wohl schon welche gefragt, ob sie wieder zurückkommen

00:53:19.062 --> 00:53:21.042
um sich um dieses Thema zu kümmern

00:53:21.042 --> 00:53:25.163
also es ist sehr beeindruckend

00:53:25.163 --> 00:53:26.002
wie schnell

00:53:26.002 --> 00:53:28.743
Double or Nothing

00:53:28.743 --> 00:53:33.203
keine Ahnung, also ich würde da nicht zurückgehen

00:53:33.203 --> 00:53:36.203
ganz ehrlich, aber wenn mich jemand in die Situation bringt

00:53:36.203 --> 00:53:36.802
Double or Nothing.

00:53:38.062 --> 00:53:40.302
Möge man gerne an mir ausprobieren.

00:53:41.703 --> 00:53:42.362
Es ist

00:53:42.362 --> 00:53:44.123
auf jeden Fall sehr beeindruckend,

00:53:44.763 --> 00:53:45.342
wie schnell

00:53:45.342 --> 00:53:47.922
auch so ein Image zerstört sein kann.

00:53:48.062 --> 00:53:49.922
Zwei Wochen, um halt das Image

00:53:49.922 --> 00:53:52.002
des Industriegottes

00:53:52.002 --> 00:53:52.683
zu zerstören.

00:53:53.763 --> 00:53:56.042
Anderer Kommentar war, wenn jemand CEO

00:53:56.042 --> 00:53:58.123
von zwei oder drei großen Firmen gleichzeitig sein kann,

00:53:58.203 --> 00:54:00.002
dann kann es ein besonders wichtiger Job sein.

00:54:00.723 --> 00:54:01.502
Ja, natürlich.

00:54:02.962 --> 00:54:03.442
Ja,

00:54:04.403 --> 00:54:05.082
es ist schon so.

00:54:06.203 --> 00:54:08.123
Es ist wirklich beeindruckend, wie öffentlich

00:54:08.123 --> 00:54:10.143
dieser ganze

00:54:10.143 --> 00:54:12.022
Autounfall passiert und wie

00:54:12.022 --> 00:54:14.223
beeindruckend das ist. Und man kann auch

00:54:14.223 --> 00:54:15.723
nicht so richtig wegschauen, weil

00:54:15.723 --> 00:54:17.362
ach, das ist so,

00:54:17.482 --> 00:54:20.422
überleben sie es oder überleben sie es nicht?

00:54:21.763 --> 00:54:21.862
Und

00:54:21.862 --> 00:54:23.842
wird es noch anfangen zu brennen und

00:54:23.842 --> 00:54:25.723
anfangen noch, wer...

00:54:25.723 --> 00:54:28.123
Also es ist schon sehr beeindruckend, oder?

00:54:28.283 --> 00:54:29.243
Oder interessiert das sonst irgendjemand?

00:54:29.243 --> 00:54:30.922
Es ist ein großes Spektakel, muss man sagen.

00:54:31.602 --> 00:54:33.643
Es ist ein Spektakel, ja, das ist es auf jeden Fall.

00:54:34.743 --> 00:54:35.962
Und ja, ich meine,

00:54:36.203 --> 00:54:37.683
Tja, ist alles nicht so einfach.

00:54:38.522 --> 00:54:39.903
Das moderne Boulevard.

00:54:41.223 --> 00:54:41.663
Ja, genau.

00:54:42.002 --> 00:54:43.163
Es hat man sich auch sowas zu...

00:54:43.163 --> 00:54:46.042
Der einfache Mann auf der Straße

00:54:46.042 --> 00:54:47.223
interessiert sich halt für sowas.

00:54:47.322 --> 00:54:49.243
Es ist klar, dass so eine kultivierte Verbindlichkeit

00:54:49.243 --> 00:54:52.002
wie du da nicht...

00:54:52.002 --> 00:54:53.883
Aber Jochen und ich,

00:54:54.022 --> 00:54:55.743
wir sind halt einfacher gestrickt und deshalb

00:54:55.743 --> 00:54:56.883
gucken wir dazu.

00:54:59.542 --> 00:55:01.602
Ja, also natürlich ist es auch ein Weg,

00:55:01.683 --> 00:55:02.763
um Aufmerksamkeit zu kriegen,

00:55:02.763 --> 00:55:03.542
aber ich weiß nicht,

00:55:03.903 --> 00:55:05.683
super geplant,

00:55:06.203 --> 00:55:07.143
und so.

00:55:07.342 --> 00:55:10.623
Ist es noch dreilevel, dreidimensionales

00:55:10.623 --> 00:55:12.403
Schach mehr, als ich irgendwie verstehen kann?

00:55:12.623 --> 00:55:14.283
Oder ist es gar nicht so schlau?

00:55:14.322 --> 00:55:16.223
Wenn Murdoch recht hatte, dann geht es

00:55:16.223 --> 00:55:18.062
nicht darum, was tatsächlich passiert ist,

00:55:18.123 --> 00:55:19.643
sondern nur darum, welche Emotionen wir hatten.

00:55:20.582 --> 00:55:22.163
Na doch, gibt schon. Aber es gibt nur

00:55:22.163 --> 00:55:24.143
Emotionen, die wir hatten, als wir das wussten. Und da wir alle die ganze Zeit

00:55:24.143 --> 00:55:26.143
uns kaputt gelacht haben, erinnern wir uns

00:55:26.143 --> 00:55:27.982
an diese Freude, wenn wir noch in zehn Jahren

00:55:27.982 --> 00:55:28.723
an Twitter denken.

00:55:30.143 --> 00:55:32.243
Und das ist Branding und Marketing.

00:55:32.243 --> 00:55:32.582
Das ist Freude.

00:55:34.183 --> 00:55:35.462
Du hast dich gut gefühlt.

00:55:35.462 --> 00:55:36.683
und das ist genau der Punkt.

00:55:36.842 --> 00:55:38.143
Das ist ein wunderbares Rally.

00:55:38.143 --> 00:55:40.123
Ich habe das Gefühl, als es ihnen schlecht gegangen ist.

00:55:40.362 --> 00:55:44.002
Das ist eine fundamentale Emotion von Menschen.

00:55:44.783 --> 00:55:45.223
Schadenfreude.

00:55:47.322 --> 00:55:47.743
Ja, aber

00:55:47.743 --> 00:55:49.183
es passieren ja tatsächlich so.

00:55:49.263 --> 00:55:51.743
Es gehen tatsächlich gerade sehr, sehr viele Leute weg.

00:55:52.422 --> 00:55:53.223
Zum Beispiel nach...

00:55:53.223 --> 00:55:55.203
Schadenfreude gibt es im Englischen, oder?

00:55:55.942 --> 00:55:57.082
Das ist ein Fremdwort im Englischen.

00:55:57.102 --> 00:55:58.783
Ja, das ist ein englisches Wort. Schadenfreude.

00:56:00.002 --> 00:56:01.703
Und damit meinen die immer Dörmen Schadenfreude.

00:56:02.822 --> 00:56:03.223
Ja gut,

00:56:03.223 --> 00:56:04.502
wir können das halt am besten.

00:56:05.462 --> 00:56:09.862
und Humor besonders wenig.

00:56:10.962 --> 00:56:12.883
Das ist halt das Einzige, was aus dem Keller

00:56:12.883 --> 00:56:14.183
ab und zu mal nach außen dringt,

00:56:14.302 --> 00:56:16.422
wenn man in dem Kontext...

00:56:16.422 --> 00:56:17.143
Schadenfreude.

00:56:18.243 --> 00:56:19.922
Wenn dir einer in den Keller gefallen ist.

00:56:23.203 --> 00:56:23.643
Ja.

00:56:26.042 --> 00:56:26.783
Aber genau,

00:56:26.903 --> 00:56:28.602
das ist der Autounfall.

00:56:28.763 --> 00:56:30.263
Der andere Teil ist halt lustig,

00:56:31.263 --> 00:56:32.203
dass jetzt Leute irgendwie

00:56:32.203 --> 00:56:34.862
nach Mastodon gehen, ins Philly-Birst und so.

00:56:35.462 --> 00:56:37.962
Hast du dich auch schon angemeldet, Jochen?

00:56:38.042 --> 00:56:40.723
Ja, aber ich bin nicht zufrieden mit meiner...

00:56:40.723 --> 00:56:41.903
Du hast nicht deine Adresse zu sagen.

00:56:42.623 --> 00:56:44.462
Doch, aber ich habe das irgendwie...

00:56:44.462 --> 00:56:46.922
Früher, als Twitter auch mal wieder

00:56:46.922 --> 00:56:49.102
so eine Episode hatte,

00:56:49.322 --> 00:56:50.243
wo es ihnen nicht so gut ging,

00:56:50.342 --> 00:56:52.322
habe ich das dann auch mal in Erwägung gezogen,

00:56:52.422 --> 00:56:53.663
vielleicht lieber das zu machen.

00:56:53.743 --> 00:56:55.562
Da habe ich dann irgendeinen Server genommen.

00:56:55.562 --> 00:56:57.022
Schon mal ausprobiert, das ist nicht fürchterlich.

00:56:57.982 --> 00:56:59.683
Und zwar irgendwie das Tröth-Café oder so,

00:56:59.723 --> 00:57:00.482
weil das halt offen war.

00:57:00.482 --> 00:57:01.623
Mit Tröth.

00:57:03.203 --> 00:57:04.643
Retro Tröth gibt es.

00:57:05.462 --> 00:57:11.883
und genau, das habe ich jetzt auch und das ist irgendwie nichts, ich weiß nicht, ob ich da bleiben soll, ich dachte, wenn man sich das selber husten kann,

00:57:12.223 --> 00:57:15.663
ach, dann will ich das vielleicht auch machen. Auf der anderen Seite, ich habe so viel zu tun

00:57:15.663 --> 00:57:19.522
und ich habe keine Zeit und will ich mir das auch ans Bein pinken,

00:57:19.522 --> 00:57:24.522
aber naja. Es gibt Instances.social,

00:57:24.763 --> 00:57:26.102
Link in den Shownotes,

00:57:27.962 --> 00:57:32.482
da kann man sich die Instanzen anschauen, was die so für Eigenschaften haben

00:57:32.482 --> 00:57:36.203
und auch, was die für Content erlauben und so weiter und so fort.

00:57:36.342 --> 00:57:38.462
Also da, so habe ich meine neue...

00:57:38.462 --> 00:57:39.942
Ja, da fängt es schon an, Content-Kontrolle.

00:57:40.602 --> 00:57:41.223
Ja, egal.

00:57:42.383 --> 00:57:44.783
Ja, natürlich, aber ich will halt keinen Spam und keine...

00:57:44.783 --> 00:57:47.623
Ja, aber ich will meine eigenen Sachen da einschenken.

00:57:47.623 --> 00:57:49.542
Ich will meine eigenen Sachen da einschenken.

00:57:49.562 --> 00:57:50.183
Mach deine eigene Instanz.

00:57:50.643 --> 00:57:51.942
Ja, aber das ist ja wieder Arbeit.

00:57:51.962 --> 00:57:54.243
Oder du filterst nach Instanzen, die das explizit erlauben.

00:57:54.243 --> 00:57:57.322
Dann gibt es halt keinen vernünftigen Client irgendwie richtig fürs Telefon.

00:57:58.922 --> 00:58:01.263
Ja, aber das ist bei Twitter ja auch nicht so.

00:58:02.482 --> 00:58:06.442
Also bei Twitter gab es welche, bis Twitter sie alle abgerührt hat.

00:58:07.203 --> 00:58:09.703
Habe ich gehört davon, aber so alt bin ich gar nicht.

00:58:10.502 --> 00:58:10.922
Ja, ja.

00:58:12.002 --> 00:58:20.042
Naja, also ich meine, das Problem an dem, die Spec ist wohl alle, also ich habe jetzt auch viel darüber gelesen, dass Leute das selber wussten und niemals haben sie das erst so super.

00:58:20.143 --> 00:58:25.183
Ich habe das einfach so Stunden, Tage später gehabt und dann so, boah, habt ihr mal die Spec angeguckt?

00:58:25.763 --> 00:58:26.143
Doch nicht.

00:58:26.442 --> 00:58:27.822
Habt ihr mal geguckt, was man dafür alles nutzt?

00:58:27.922 --> 00:58:29.422
Was man alles braucht, um das zu treiben?

00:58:29.422 --> 00:58:31.903
Meine Güte, wow, wer hat sich das denn ausgedacht?

00:58:31.962 --> 00:58:32.643
Das ist ja schrecklich.

00:58:33.183 --> 00:58:34.942
Und ja, das ist alles schon sehr schrecklich.

00:58:35.362 --> 00:58:39.502
Und naja, also es gibt, also eigentlich, ja, aber was soll man machen?

00:58:39.783 --> 00:58:43.942
Es ist halt das, was jetzt gerade irgendwie auf jeden Fall sehr viel Auftrieb hat

00:58:43.942 --> 00:58:45.042
und vielleicht kann man einfach mal mitmachen.

00:58:45.223 --> 00:58:48.102
Und im Prinzip würde ich da sagen, es ist voll gut, wenn es irgendwie was gibt,

00:58:48.163 --> 00:58:50.903
was man da vorhin schon wussten kann, was frei ist und so.

00:58:51.302 --> 00:58:52.283
Indie-Web-Prinzip jetzt.

00:58:52.723 --> 00:58:53.643
Indie-Web, genau.

00:58:55.042 --> 00:58:56.623
Ja, wäre gut.

00:58:56.643 --> 00:58:58.683
Ja, seine eigenen Daten selber, so ist das schon gar nicht so schlecht.

00:58:58.683 --> 00:59:28.663
und die Programmiersprache Python.

00:59:28.683 --> 00:59:29.542
Ja, schon.

00:59:31.163 --> 00:59:32.883
Wahrscheinlich in absehbarer Zeit kann man nicht mal mehr

00:59:32.883 --> 00:59:34.903
nachgucken, wie man jetzt gefolgt hat, um das

00:59:34.903 --> 00:59:36.522
wiederzutun, weil es ist einfach weg.

00:59:36.703 --> 00:59:38.582
Muss man jetzt exportieren.

00:59:38.743 --> 00:59:39.683
Genau, sonst geht das nicht mehr.

00:59:40.283 --> 00:59:42.643
Also, komisch.

00:59:43.522 --> 00:59:44.383
Ja, Free Speech?

00:59:46.342 --> 00:59:46.623
Tja.

00:59:47.643 --> 00:59:49.283
Alles außer in den allermeisten Ländern

00:59:49.283 --> 00:59:50.723
auf der Welt nicht. In Deutschland auch nicht.

00:59:51.082 --> 00:59:52.723
Kannst du auch nicht sagen. Ist das richtig?

00:59:53.002 --> 01:00:08.745
Selbst in den USA ist es halt sehr stark eingeschr Was hei sehr stark Es kommt drauf an auf welchem Standpunkt man steht Es ist ja auch eingeschr Was du denkst wissen wir ja jetzt

01:00:12.845 --> 01:00:16.745
Auch wenn du in den USA

01:00:16.745 --> 01:00:18.965
in einem Kino oder einem Theater sitzt,

01:00:19.025 --> 01:00:21.165
darf man auch nicht irgendwie aufstehen und Feuer rufen.

01:00:21.365 --> 01:00:22.045
Geht halt nicht.

01:00:22.905 --> 01:00:24.605
Du kannst dich ja nicht auf Free Speech berufen,

01:00:24.605 --> 01:00:27.025
wenn du das machst, sondern dann wirst du halt auch verknackt.

01:00:27.845 --> 01:00:28.325
Ja und

01:00:28.325 --> 01:00:30.605
Defamation gibt es auch und Slender

01:00:30.605 --> 01:00:31.505
gibt es auch und

01:00:31.505 --> 01:00:34.605
deshalb

01:00:34.605 --> 01:00:36.965
es gibt überall Einschränkungen.

01:00:37.525 --> 01:00:38.545
Was ich halt cleverer finde,

01:00:38.645 --> 01:00:39.925
für so Online-Leute,

01:00:40.265 --> 01:00:41.565
ist halt sowas wie

01:00:41.565 --> 01:00:44.505
Moderation, das wäre schon ein kuratierter

01:00:44.505 --> 01:00:46.485
Dinge. Das finde ich ein sehr powerful

01:00:46.485 --> 01:00:48.605
Werkzeug. Das ist halt immer unfair,

01:00:49.325 --> 01:00:50.405
aber es ist immer irgendwie

01:00:50.405 --> 01:00:50.925
richtiger.

01:00:51.985 --> 01:00:52.965
Das ist auch sowas,

01:00:53.045 --> 01:00:54.525
was man gehört hat jetzt, dass eben

01:00:54.525 --> 01:00:59.345
das Hauptprodukt von Social Networks eigentlich Content Moderation ist.

01:00:59.605 --> 01:01:05.005
Du verkaufst nicht den Benutzern irgendeine Funktionalität,

01:01:05.145 --> 01:01:08.845
sondern du verkaufst den Werbetreibenden Content Moderation.

01:01:08.945 --> 01:01:09.785
Community Management.

01:01:09.965 --> 01:01:11.705
Wenn die Content Moderation gut genug ist,

01:01:11.945 --> 01:01:17.185
sodass der Genüge getan ist.

01:01:17.905 --> 01:01:18.965
Auch da gibt es so einen Exkurs.

01:01:18.965 --> 01:01:23.925
Da hat wohl der heilige E einen Call gemacht mit den Werbetreibenden

01:01:23.925 --> 01:01:25.765
und dann haben sie

01:01:25.765 --> 01:01:26.985
eben halt da verschiedene Dinge erzählt.

01:01:27.465 --> 01:01:29.665
Angeblich haben mehrere große

01:01:29.665 --> 01:01:31.665
Blöcke während dieses Calls ihre

01:01:31.665 --> 01:01:32.685
Kampagnen ausgesetzt.

01:01:33.705 --> 01:01:35.805
Und einer hat halt auch öffentlich auf Twitter gesagt,

01:01:35.925 --> 01:01:37.825
hier, für uns ist Brand

01:01:37.825 --> 01:01:39.845
Safety das Wichtigste. Wir wollen nicht mit folgenden

01:01:39.845 --> 01:01:41.185
Dingen in Verbindung gebracht werden.

01:01:41.525 --> 01:01:45.145
Er hat ihn dann blockiert.

01:01:45.285 --> 01:01:46.025
Das war dann der nächste

01:01:46.025 --> 01:01:47.245
Tweet.

01:01:47.605 --> 01:01:49.825
Du bist auch für freie Sprache und warum

01:01:49.825 --> 01:01:50.885
hast du mich denn dann blockiert?

01:01:52.085 --> 01:01:52.285
Genau.

01:01:52.285 --> 01:01:54.805
und das

01:01:54.805 --> 01:01:57.585
ist schon sehr interessant, da mal so

01:01:57.585 --> 01:01:59.465
einen Einblick reinzukriegen, weil sich da

01:01:59.465 --> 01:02:01.425
jetzt die Lücken aufreißen und mal einmal

01:02:01.425 --> 01:02:03.565
hier in die Eingeweide gucken. Ja, und die Leute anfangen Klartext

01:02:03.565 --> 01:02:05.565
zu reden und sagen, was halt ihre Interessen sind und man

01:02:05.565 --> 01:02:07.605
sieht jetzt wirklich, wie das, also das ist halt das, das ist

01:02:07.605 --> 01:02:09.585
so wie so ein Teilchenbeschleuniger, ne, da nimmt man ja

01:02:09.585 --> 01:02:11.505
auch irgendwie so, wir nehmen die Teilchen

01:02:11.505 --> 01:02:13.565
viel Fahrt auf und dann haupt man die aufeinander und dann fliegt

01:02:13.565 --> 01:02:15.485
der ganze Scheiß auseinander und dann kann man gucken, was

01:02:15.485 --> 01:02:17.665
steckt da jetzt eigentlich so drin. Ja, was war da eigentlich drin?

01:02:17.785 --> 01:02:19.525
Und das geht jetzt, das sieht man

01:02:19.525 --> 01:02:21.505
jetzt sozusagen in sozial auch gerade und das

01:02:21.505 --> 01:02:24.705
und das ist total interessant, weil da stecken manchmal sehr unerwartete Sachen drin.

01:02:25.925 --> 01:02:26.885
Sehr, sehr spannend.

01:02:30.665 --> 01:02:34.785
Aber in other news, Amazon ist die erste Firma der Welt,

01:02:34.825 --> 01:02:36.905
die hat jetzt nicht mit Social Networks zu tun,

01:02:37.345 --> 01:02:41.925
die ist die erste Firma der Welt, die über eine Billion an Marktwert verloren hat.

01:02:44.825 --> 01:02:47.525
Und das kommt dann so im Hintergrund drüber,

01:02:47.785 --> 01:02:50.445
wo hier so das große Twitter-Spektakel hier im Vordergrund ist

01:02:50.445 --> 01:02:51.765
und im Hintergrund machen die halt

01:02:51.765 --> 01:02:54.165
One Trillion Dollars

01:02:54.165 --> 01:02:56.105
haben sie ihren Marktwert verloren und das ist

01:02:56.105 --> 01:02:58.225
schon, das sind so Zahlen, die sind

01:02:58.225 --> 01:02:59.425
sehr schwer zu greifen.

01:03:00.505 --> 01:03:01.965
Ja, tausend Milliarden.

01:03:03.465 --> 01:03:04.365
Ja, tausend Milliarden,

01:03:04.505 --> 01:03:05.605
aber was bedeutet tausend Milliarden?

01:03:06.205 --> 01:03:07.945
Also eine Million Millionen.

01:03:08.785 --> 01:03:10.445
Wenn du überlegst, dass

01:03:10.445 --> 01:03:11.685
ein Haus eine halbe Million,

01:03:12.125 --> 01:03:14.085
wenn du überlegst, dass ein Haus eine Million kostet,

01:03:14.085 --> 01:03:15.185
dann sind es drei Millionen Häuser.

01:03:15.565 --> 01:03:17.305
Da kannst du überlegen, dass eine ganze Großstadt,

01:03:17.665 --> 01:03:18.845
ich finde das eine gute Wahl,

01:03:18.845 --> 01:03:20.805
zu visualisieren. Der beste Vergleich, den ich gehört

01:03:20.805 --> 01:03:23.185
habe, ist, wenn du zum Bau der Pyramiden

01:03:23.185 --> 01:03:24.945
anfängst, jeden Tag 500.000

01:03:24.945 --> 01:03:26.805
Dollar auszugeben, dann hast du

01:03:26.805 --> 01:03:28.425
jetzt noch nicht eine Billion ausgegeben.

01:03:29.325 --> 01:03:30.825
Tja, ja. Also ich finde das

01:03:30.825 --> 01:03:32.545
mit der Großstadt gar nicht, wenn du dir ausrechnest, wie teuer sind denn

01:03:32.545 --> 01:03:34.165
die Immobilien so in der Großstadt oder sowas?

01:03:35.425 --> 01:03:36.925
Und dann nimmst du einfach so eine Großstadt,

01:03:37.305 --> 01:03:38.945
die ist da einfach komplett, kannst du

01:03:38.945 --> 01:03:40.885
irgendwo hinschicken. Aber da sind keine zwei Millionen Häuser

01:03:40.885 --> 01:03:42.385
drin, da kannst du dir Tokio kaufen davon.

01:03:43.225 --> 01:03:44.725
Ja, die haben ja unterschiedliche Großteile, das war jetzt

01:03:44.725 --> 01:03:47.065
natürlich eine Vielannahme, das ist ja alle gleichverteilt

01:03:47.065 --> 01:03:48.665
eine halbe Million kosten, aber es ist ja schon größere

01:03:48.665 --> 01:03:50.405
Gebäude und so deswegen. Ja, ja, aber dann,

01:03:50.645 --> 01:03:52.605
also in so einem Haus wohnt ja mehr als

01:03:52.605 --> 01:03:55.065
eine Person, also du musst ja dann schon eine

01:03:55.065 --> 01:03:56.825
vergleichsweise große Stadt,

01:03:56.905 --> 01:03:58.625
also so eine große Stadt gibt es in Deutschland nicht.

01:04:00.005 --> 01:04:00.325
Doch,

01:04:00.565 --> 01:04:02.345
ich würde sagen, das unterschätzt du. Ich würde sagen,

01:04:02.405 --> 01:04:04.645
so groß ist die nicht. Also ich glaube, da kann man

01:04:04.645 --> 01:04:06.845
festhalten, dass es nicht so eine große Stadt ist.

01:04:08.045 --> 01:04:08.425
Ja, nur noch

01:04:08.425 --> 01:04:10.625
Stuttgart oder Düsseldorf oder so was,

01:04:10.865 --> 01:04:12.825
vielleicht. Stuttgart hat 600.000

01:04:12.825 --> 01:04:14.905
Einwohner, da gibt es keine 2 Millionen Häuser in Stuttgart.

01:04:15.205 --> 01:04:16.545
Ja, aber der Wert,

01:04:16.665 --> 01:04:18.245
es geht um die Düsseldorf, hat auch 600.000.

01:04:18.245 --> 01:04:19.665
der Immobilienwert eine Million.

01:04:19.905 --> 01:04:21.385
Ich glaube auch, dass die Zahl,

01:04:21.505 --> 01:04:24.045
wenn die Zahlen so groß werden,

01:04:24.165 --> 01:04:26.005
dann ist das unklar, was die an Wert überhaupt

01:04:26.005 --> 01:04:27.645
beschreiben ist. Den Wert gibt es ja.

01:04:27.985 --> 01:04:29.705
Also Amazon als Unternehmen existiert ja,

01:04:29.725 --> 01:04:30.485
das hat ja irgendwie einen Wert.

01:04:31.745 --> 01:04:32.865
Es waren imaginäre Dollar.

01:04:33.405 --> 01:04:36.185
Das ist halt die Frage. Also da stehen ja auch Dollar dran,

01:04:36.545 --> 01:04:38.045
aber es ist

01:04:38.045 --> 01:04:39.485
trotzdem irgendwie sehr unklar, weil

01:04:39.485 --> 01:04:41.845
selbst kleine Veränderungen in der Zukunft ja riesige Auswirkungen

01:04:41.845 --> 01:04:43.485
haben können, gerade wenn der Marktwert so hoch ist.

01:04:44.105 --> 01:04:45.645
Das heißt, es ist halt irgendwie unklar,

01:04:45.805 --> 01:04:47.645
was das Geld da, auch wenn man das

01:04:47.645 --> 01:04:49.645
quantifizieren können, was das überhaupt an Wert bezeichnet.

01:04:49.885 --> 01:04:51.665
Weil, ja,

01:04:51.825 --> 01:04:53.725
also ich meine, bei anderen Großen

01:04:53.725 --> 01:04:55.745
ist das ja, bei Apple wäre das

01:04:55.745 --> 01:04:57.025
wahrscheinlich auch so, ne? Keine Ahnung.

01:04:58.105 --> 01:04:59.245
Ja, was ist das eigentlich?

01:04:59.545 --> 01:05:00.705
Die haben auch so einen Aktienwert.

01:05:01.065 --> 01:05:03.465
Die haben auch so einen Aktienwert, ja, was ist, wenn sie es irgendwie

01:05:03.465 --> 01:05:05.465
verkacken oder keine Ahnung, das jetzt

01:05:05.465 --> 01:05:06.025
nicht mehr funktioniert?

01:05:07.285 --> 01:05:08.865
Genau, ist sehr unklar, was das ist.

01:05:09.425 --> 01:05:11.345
Also diese Aktienwerte sind doch

01:05:11.345 --> 01:05:13.425
hypothetische Werte, oder? Die sind doch der Wert, wenn du

01:05:13.425 --> 01:05:15.185
zum jetzigen Zeitpunkt...

01:05:15.185 --> 01:05:16.825
Das sind keine hypothetischen Werte, das sind Buchwerte.

01:05:17.645 --> 01:05:17.885
Okay.

01:05:18.265 --> 01:05:21.825
Das ist, wenn du zum jetzigen Zeitpunkt alle Aktien verkaufen könntest,

01:05:21.945 --> 01:05:23.125
dann hättest du so viel Geld.

01:05:23.185 --> 01:05:23.505
Nein, nein.

01:05:23.865 --> 01:05:25.905
Du sagst hätte.

01:05:27.365 --> 01:05:28.345
Es gibt kein hätte.

01:05:28.925 --> 01:05:29.805
Der Wert ist null.

01:05:30.485 --> 01:05:31.505
Der Realwert ist null.

01:05:33.065 --> 01:05:34.985
Der reale Wert ist null.

01:05:35.505 --> 01:05:36.385
Genau, und das ist ein Buchwert.

01:05:36.885 --> 01:05:39.865
Du musst eine Transaktion machen, um was zu verkaufen.

01:05:39.945 --> 01:05:40.825
Dafür musst du einen Käufer finden.

01:05:41.465 --> 01:05:43.805
Du kannst gar nicht wahrscheinlich zu dem Preis alles verkaufen.

01:05:43.805 --> 01:05:46.885
Für 1000 Milliarden kannst du nicht Aktien verkaufen.

01:05:46.885 --> 01:05:47.665
zu kaufen. Zumindest nicht alle jetzt.

01:05:48.325 --> 01:05:49.185
Genau, das geht nicht.

01:05:50.385 --> 01:05:52.485
Eben, das sage ich ja. Deshalb sind es ja hypothetische

01:05:52.485 --> 01:05:54.425
Werte. Wenn du

01:05:54.425 --> 01:05:56.305
jetzt gerade alle Aktien

01:05:56.305 --> 01:05:58.065
verkaufen könntest, dann hättest du

01:05:58.065 --> 01:06:00.745
folgenden Wert. Das ist die Hoffnung auf zukünftige

01:06:00.745 --> 01:06:02.465
Umsätze, also auf zukünftige

01:06:02.465 --> 01:06:04.005
Produktivität der

01:06:04.005 --> 01:06:06.745
Marken, des Values, der Businesses,

01:06:06.805 --> 01:06:08.385
wo auch immer die ihre Kohle rausziehen wollen.

01:06:08.905 --> 01:06:09.785
Das ist mir jetzt zu kompliziert.

01:06:10.405 --> 01:06:12.585
Ja, das ist ganz zu kompliziert. Das ist viel Fantasie.

01:06:15.145 --> 01:06:16.465
Ja, genau.

01:06:16.885 --> 01:06:18.245
Ja.

01:06:18.825 --> 01:06:21.225
Jetzt müsste man eigentlich bei StableDiffusion mal eingeben,

01:06:21.345 --> 01:06:23.205
irgendwie so Twitter, Armageddon und so

01:06:23.205 --> 01:06:24.605
einen cleveren Satz, mal gucken.

01:06:25.545 --> 01:06:27.425
Da passieren bestimmt dann auch lustige

01:06:27.425 --> 01:06:29.705
Sachen. Wobei, ich meine, bei StableDiffusion

01:06:29.705 --> 01:06:31.185
und so, man muss halt schon irgendwie, man muss

01:06:31.185 --> 01:06:32.985
lange warten und so und

01:06:32.985 --> 01:06:35.085
kreativ sein beim Aufschreiben von Prompt und so.

01:06:35.085 --> 01:06:36.985
Was? Ja, nicht?

01:06:37.165 --> 01:06:38.885
Nein. Okay. Mach mal

01:06:38.885 --> 01:06:41.125
Match.Space auf. Hast du mal Dalle ausprobiert?

01:06:41.305 --> 01:06:42.645
Ach, Dalli. Dalli hab ich auch ausprobiert.

01:06:43.025 --> 01:06:44.425
Mach mal Match.Space auf.

01:06:46.885 --> 01:06:49.165
Mage, wie der Magier

01:06:49.165 --> 01:06:51.225
und dann .space

01:06:51.225 --> 01:06:55.425
Checking if the site connection is secure

01:06:55.425 --> 01:06:56.345
Oh oh

01:06:56.345 --> 01:07:01.085
Create anything

01:07:01.085 --> 01:07:04.325
Jochen hat gerade irgendeinen Satz

01:07:04.325 --> 01:07:06.585
müssen wir ein bisschen warten, ist okay

01:07:06.585 --> 01:07:07.585
Ja, aber

01:07:07.585 --> 01:07:09.665
Ja, ja, es ist

01:07:09.665 --> 01:07:12.265
kein CPS hinterher oder was

01:07:12.265 --> 01:07:15.185
also da ist keine dicke Grafikkarte, das könnte man ja hinterhängen

01:07:15.185 --> 01:07:16.505
Ja, aber gut

01:07:16.505 --> 01:07:21.745
und genau, diese Experience habe ich auf meinem Laptop auch und die ist halt, geht so.

01:07:21.845 --> 01:07:22.405
Ja, okay.

01:07:23.645 --> 01:07:23.825
Und?

01:07:24.065 --> 01:07:24.705
Was ist da?

01:07:24.805 --> 01:07:25.405
Was war eingegeben?

01:07:26.985 --> 01:07:31.485
Ja, also ein Tüter-Amageddon, das von oben herunter geht.

01:07:31.585 --> 01:07:36.245
Ja, es kommt so ein Vogel und der hat, also dieser Bird, so ein Gelber, der hat irgendein

01:07:36.245 --> 01:07:40.145
Viech in der Hand und versucht es zu fangen und das ist so ein sehr artificiell komisch,

01:07:40.265 --> 01:07:41.045
das sieht cool aus.

01:07:41.385 --> 01:07:41.485
Ja.

01:07:42.425 --> 01:07:43.505
Nee, also das...

01:07:43.505 --> 01:07:44.085
Also bei mir dauert es noch.

01:07:44.085 --> 01:07:47.105
Ja, also

01:07:47.105 --> 01:07:50.245
Ich habe gerade alle Rechenleistungen aufgenommen, deshalb kann ich jetzt

01:07:50.245 --> 01:07:51.985
Ah ja

01:07:51.985 --> 01:07:54.225
Elon Musk destroying Twitter with Gasoline

01:07:54.225 --> 01:07:54.785
Naja

01:07:54.785 --> 01:07:57.465
Siehst du

01:07:57.465 --> 01:07:59.865
Wenn man da gute Prompts schreiben kann, dann

01:07:59.865 --> 01:08:01.485
passieren auch lustige Sachen, aber

01:08:01.485 --> 01:08:02.705
ich weiß nicht

01:08:02.705 --> 01:08:05.765
Also den Prompt kann ich nicht empfehlen

01:08:05.765 --> 01:08:08.705
Ja

01:08:08.705 --> 01:08:11.665
Ja, aber gut, also auf jeden Fall da passieren

01:08:11.665 --> 01:08:13.625
lustige Sachen gerade und vielleicht

01:08:13.625 --> 01:08:15.705
gibt es ja. Es gibt auch diverse Dinge in Python, die man benutzen kann,

01:08:15.925 --> 01:08:17.365
um dieses Activity-Pub oder was

01:08:17.365 --> 01:08:19.385
wie das Protokoll heißt, da irgendwie zu sprechen.

01:08:20.145 --> 01:08:21.205
Naja, vielleicht

01:08:21.205 --> 01:08:23.145
wusste ich da ja doch nochmal was.

01:08:23.145 --> 01:08:23.745
Mal schauen.

01:08:25.225 --> 01:08:26.645
Implementierst du erstmal deine eigenen?

01:08:27.305 --> 01:08:29.085
Das habe ich schon hinterher.

01:08:29.085 --> 01:08:31.125
Du kannst doch dann eigentlich alle Nachrichten, die über dich gehen,

01:08:31.165 --> 01:08:31.825
mitlesen, oder nicht?

01:08:33.625 --> 01:08:35.385
Oder hast du das im Protokoll

01:08:35.385 --> 01:08:35.825
verboten?

01:08:37.225 --> 01:08:37.865
Ja, genau.

01:08:38.145 --> 01:08:40.585
Das kann dann sein, dass da eine RP gebannt wird, aber

01:08:40.585 --> 01:08:42.405
da gibt es ja Wege außenrum.

01:08:42.405 --> 01:08:44.865
Nee, aber das gibt es tatsächlich, da gibt es ja Vorschläge

01:08:44.865 --> 01:08:46.925
der Simon Willison zum Beispiel, der ja auch

01:08:46.925 --> 01:08:48.925
sehr groß ist in der Python-Welt

01:08:48.925 --> 01:08:50.885
hat gesagt, der ist jetzt auf Mastodon und

01:08:50.885 --> 01:08:53.045
ihm gefällt es total und

01:08:53.045 --> 01:08:54.905
er vermisst so ein bisschen

01:08:54.905 --> 01:08:56.885
seine Timeline, aber das kann er sich ja jetzt selber

01:08:56.885 --> 01:08:57.185
schreiben.

01:08:58.305 --> 01:08:59.985
Das höre ich von vielen Leuten,

01:09:00.065 --> 01:09:03.045
die sagen so, also auch Simon Willison

01:09:03.045 --> 01:09:05.005
hat zum Beispiel zweimal die gleichen Sachen, einmal auf Twitter

01:09:05.005 --> 01:09:06.265
und er hat auf Twitter irgendwie

01:09:06.265 --> 01:09:08.405
zehntausende Follower, keine Ahnung,

01:09:08.885 --> 01:09:10.745
auf Mastodon irgendwie ein Zehntel davon

01:09:10.745 --> 01:09:12.945
und hat dann zweimal das gleiche gepostet

01:09:12.945 --> 01:09:13.765
und hat gesagt, guck mal hier,

01:09:14.405 --> 01:09:16.765
Interaktionen auf Mastodon viel, viel mehr,

01:09:17.265 --> 01:09:19.045
viel interessantere Geschichten auf Twitter

01:09:19.045 --> 01:09:20.225
war eher so lahm.

01:09:20.685 --> 01:09:22.645
Also klar, ist natürlich jetzt auch irgendwie

01:09:22.645 --> 01:09:24.365
wahrscheinlich keine

01:09:24.365 --> 01:09:26.605
unabhängige...

01:09:26.605 --> 01:09:28.665
Wisst ihr, was der Eternal September ist?

01:09:29.305 --> 01:09:30.825
Genau. Und auf Mastodon sind die jetzt

01:09:30.825 --> 01:09:32.665
halt noch nicht. Das ist richtig. Also ich meine, ja,

01:09:32.865 --> 01:09:34.865
natürlich. Aber andere

01:09:34.865 --> 01:09:36.525
sagen das auch, sagen, momentan ist da echt eine

01:09:36.525 --> 01:09:37.665
gute Party, weil

01:09:37.665 --> 01:09:40.505
es sind eigentlich nur nette Leute und die

01:09:40.505 --> 01:09:42.505
die ganzen Pupa haben es noch nicht gefunden.

01:09:44.505 --> 01:09:45.125
Mal schauen,

01:09:45.305 --> 01:09:46.965
wenn es im nächsten September

01:09:46.965 --> 01:09:47.665
ist, vielleicht dann rum.

01:09:47.885 --> 01:09:49.165
Dann hast du es ja auch da, Jochen.

01:09:49.265 --> 01:09:51.125
Ja, wenn ich da jetzt auch hingehe, dann ist es wahrscheinlich vorbei.

01:09:52.545 --> 01:09:55.725
Aber es ist schon interessant.

01:09:56.525 --> 01:09:57.905
Auch interessant, Simon Wilson,

01:09:58.065 --> 01:10:00.265
habe ich jetzt gesehen, als ich in dem Kontext auch

01:10:00.265 --> 01:10:02.625
sich mit der

01:10:02.625 --> 01:10:03.605
Authentifizierung beschäftigt habe,

01:10:03.605 --> 01:10:05.765
da gibt es ein Paket von ihm namens

01:10:05.765 --> 01:10:07.865
Django Indie

01:10:07.865 --> 01:10:08.125
auf.

01:10:08.125 --> 01:10:10.845
und da fühlte ich mich auch so,

01:10:10.885 --> 01:10:12.205
das habe ich irgendwann mal 2016 auf

01:10:12.205 --> 01:10:14.965
einer von diesen Vorveranstaltungen

01:10:14.965 --> 01:10:16.585
von der Beyond Telerand

01:10:16.585 --> 01:10:18.965
saßen wir mal da bei ZipGate rum

01:10:18.965 --> 01:10:20.645
und so IndieWeb, voll gut,

01:10:20.925 --> 01:10:22.965
war so eine IndieWeb-Konferenz, habe ich das auch

01:10:22.965 --> 01:10:24.945
mal implementiert, Django IndieWeb ist ein

01:10:24.945 --> 01:10:26.705
Paket von mir, da habe ich auch schon mal IndieOut

01:10:26.705 --> 01:10:28.845
implementiert, jetzt hat der Heimwild uns auch noch mal

01:10:28.845 --> 01:10:30.545
implementiert, muss ich mal vergleichen,

01:10:30.585 --> 01:10:31.305
was er da gemacht hat.

01:10:32.565 --> 01:10:33.785
Offenbar muss das jeder mal machen, ja.

01:10:36.425 --> 01:10:37.165
Sechs Jahre später,

01:10:37.165 --> 01:10:38.405
Jochen, du bist ja in der Zeit voraus.

01:10:39.145 --> 01:10:40.525
Ja, weiß man nicht so genau.

01:10:40.965 --> 01:10:41.405
Ganz netter.

01:10:43.925 --> 01:10:45.165
Aufs falsche Pferd zum falschen

01:10:45.165 --> 01:10:46.405
Zeitpunkt gesetzt, wer weiß.

01:10:47.905 --> 01:10:48.045
Ja.

01:10:50.225 --> 01:10:51.165
Aber ja, das hat

01:10:51.165 --> 01:10:51.605
jetzt so ein bisschen...

01:10:51.605 --> 01:10:54.285
Das war gut. Das ist eigentlich eine gute Sache.

01:10:54.585 --> 01:10:56.245
Ich gucke gerade in die Liste.

01:10:57.285 --> 01:10:58.805
Waren noch interessante Dinge dabei.

01:11:00.245 --> 01:11:00.825
Ja, also

01:11:00.825 --> 01:11:02.585
vielleicht kann man noch ein bisschen was zu dem...

01:11:02.585 --> 01:11:04.525
Die ganzen Dinge, die ich jetzt hier noch habe, sind alles

01:11:04.525 --> 01:11:05.885
eher so kleinere Geschichten.

01:11:05.885 --> 01:11:08.265
Tommel-Lib, weiß ich nicht.

01:11:09.645 --> 01:11:10.265
Ja, da war ich

01:11:10.265 --> 01:11:11.945
total überrascht. Ja? Tommel-Lib.

01:11:12.105 --> 01:11:14.045
Warum? Welche ist es denn?

01:11:14.085 --> 01:11:15.605
Welche haben Sie denn reingenommen oder eine neue?

01:11:16.505 --> 01:11:18.245
Nee, ich glaube, Sie haben tatsächlich das, was

01:11:18.245 --> 01:11:19.905
Tommel-Lib, ich dachte, es gibt noch,

01:11:20.105 --> 01:11:22.345
ich weiß nicht, Sie haben das Ding irgendwie reingenommen.

01:11:22.365 --> 01:11:23.405
Ich glaube, mindestens drei. Ja?

01:11:24.025 --> 01:11:26.045
Mindestens drei, was ähnliches. Tommel?

01:11:26.785 --> 01:11:27.505
Einfach Tommel?

01:11:27.905 --> 01:11:28.265
Tommli?

01:11:30.365 --> 01:11:31.385
Tommel-Lib. Ah, okay.

01:11:31.985 --> 01:11:33.065
Ja, ich glaube, es ist Tommel-Lib.

01:11:34.145 --> 01:11:35.305
Ist in die Standard-Lib reingekommen.

01:11:35.305 --> 01:11:36.985
Aber es kann noch nicht schreiben

01:11:36.985 --> 01:11:39.105
Apropos, es gibt doch so eine Riesen

01:11:39.105 --> 01:11:40.965
Pep gerade zum

01:11:40.965 --> 01:11:42.485
Rausschmeißen von vielen Zeugs

01:11:42.485 --> 01:11:44.325
Ja, der ist von

01:11:44.325 --> 01:11:46.645
Na, wie heißt er noch

01:11:46.645 --> 01:11:49.085
Die sind in der Dokumentation jetzt schon

01:11:49.085 --> 01:11:50.105
separat aufgeführt

01:11:50.105 --> 01:11:51.945
Deprecated Packages oder sowas

01:11:51.945 --> 01:11:53.825
Removing Dead Batteries

01:11:53.825 --> 01:11:55.305
Ja, auch von

01:11:55.305 --> 01:11:57.805
Christian hat irgendwas gesagt

01:11:57.805 --> 01:11:58.765
Genau, Heimis

01:11:58.765 --> 01:12:00.485
Der hat auch diese

01:12:00.485 --> 01:12:01.985
PyScript

01:12:01.985 --> 01:12:04.225
nach WebAssembly

01:12:04.225 --> 01:12:05.925
kompilieren, Python gemacht hat.

01:12:06.365 --> 01:12:08.185
Ich war da kürzlich

01:12:08.185 --> 01:12:09.065
sehr überrascht, weil

01:12:09.065 --> 01:12:11.105
persönlicher Bezug,

01:12:12.045 --> 01:12:14.325
ich verwende Tommel, ich finde Tommel gut

01:12:14.325 --> 01:12:16.305
und ich

01:12:16.305 --> 01:12:18.205
habe Sachen mit Tommel geladen und die

01:12:18.205 --> 01:12:18.745
dann gepickelt.

01:12:20.465 --> 01:12:21.425
Fragt nicht warum.

01:12:24.185 --> 01:12:26.645
Und wenn man diese Standard-Tommel-Bibliothek,

01:12:26.725 --> 01:12:28.445
also nicht die jetzt in der Standard-Bibliothek

01:12:28.445 --> 01:12:30.005
ist, sondern die davor einfach, also wenn man

01:12:30.005 --> 01:12:31.325
pip install Tommel gemacht hat,

01:12:31.985 --> 01:12:33.985
dann kann man die Sachen, kann man

01:12:33.985 --> 01:12:35.525
bestimmte Dinge nicht entpickeln.

01:12:36.565 --> 01:12:37.405
Und zwar

01:12:37.405 --> 01:12:39.285
Timestamps mit Zeitzone.

01:12:40.065 --> 01:12:41.965
Da fehlt

01:12:41.965 --> 01:12:42.485
irgendwas.

01:12:44.505 --> 01:12:46.185
Mir macht es

01:12:46.185 --> 01:12:47.045
auch keinen Spaß,

01:12:47.625 --> 01:12:50.165
Timestamps mit Zeitzone zu haben, aber die gibt es nun mal.

01:12:52.985 --> 01:12:54.225
Tomly kann das nämlich.

01:12:54.905 --> 01:12:56.085
Und dann bin ich auf Tomly

01:12:56.085 --> 01:12:56.625
umgestiegen.

01:12:58.165 --> 01:12:59.905
Und jetzt müsste ich dann da

01:12:59.905 --> 01:13:01.765
tatsächlich mal ausprobieren, ob man das in Python

01:13:01.765 --> 01:13:04.045
3.11 einfach auch so machen kann und ob die korrekt picklen.

01:13:04.525 --> 01:13:05.985
Ich weiß, das ist eine lustige Kombination,

01:13:06.125 --> 01:13:08.005
Tommeln und Pickle, aber ich habe es halt

01:13:08.005 --> 01:13:09.605
gebraucht. Für einen Cash.

01:13:11.305 --> 01:13:12.165
Ich will nicht gerade Pickle.

01:13:14.505 --> 01:13:16.005
Wenn du Pickle lehrst, dann kann ich doch einfach

01:13:16.005 --> 01:13:17.085
alles ausführen, was ich will, oder?

01:13:18.745 --> 01:13:19.565
Ja, schon.

01:13:20.425 --> 01:13:22.065
Und sind die ganzen Machine Learning Modelle

01:13:22.065 --> 01:13:22.785
nicht alle Pickle?

01:13:23.205 --> 01:13:25.505
Also ja, man

01:13:25.505 --> 01:13:27.325
benutzt da häufig auch Pickle,

01:13:27.945 --> 01:13:29.425
aber...

01:13:29.425 --> 01:13:31.905
und PPL, irgendwas, ganz, ganz oft.

01:13:32.765 --> 01:13:33.605
Ja, viele machen das so.

01:13:33.985 --> 01:13:35.385
Das heißt, du kannst einfach so hochladen und sagen,

01:13:35.485 --> 01:13:37.105
guck mal hier, ich habe das alles für mein Maschinenmodell,

01:13:37.345 --> 01:13:39.305
bla bla bla, und alle Leute führen deine Pfeile aus.

01:13:40.285 --> 01:13:41.845
Ja, also ich meine, du kannst auch...

01:13:41.845 --> 01:13:43.725
Und da sind wir wieder bei den Guten und bei den Schlechten.

01:13:44.205 --> 01:13:45.925
Ja, aber ich meine, wenn du sagst,

01:13:45.965 --> 01:13:47.905
ich habe hier ein tolles Maschinen-Loading-Modell,

01:13:48.005 --> 01:13:49.645
installiere mal hier dieses bei Pip, dieses Paket,

01:13:49.745 --> 01:13:51.445
natürlich, wenn du bei Pip Sachen installierst,

01:13:51.565 --> 01:13:52.745
dann kannst du auch alles machen.

01:13:53.645 --> 01:13:55.905
Bei Pip musst du aber noch ausführen.

01:13:55.905 --> 01:13:57.285
Nö, wenn du es installierst...

01:13:57.285 --> 01:13:58.825
muss auch ausführen, muss auch laden

01:13:58.825 --> 01:14:00.885
beim Rebuilding kommt das schon

01:14:00.885 --> 01:14:02.485
wenn ich

01:14:02.485 --> 01:14:03.545
also ich kann

01:14:03.545 --> 01:14:07.445
wenn ich installiert werde als Paket kann ich alles machen

01:14:07.445 --> 01:14:07.765
ok

01:14:07.765 --> 01:14:12.445
ja ja

01:14:12.445 --> 01:14:14.465
RM-RF

01:14:14.465 --> 01:14:18.945
ja also

01:14:18.945 --> 01:14:20.805
genau

01:14:20.805 --> 01:14:23.725
genau

01:14:23.725 --> 01:14:24.545
was

01:14:24.545 --> 01:14:27.245
einen schnelleren Python,

01:14:27.825 --> 01:14:29.865
was da so ein paar Sachen sind, die passiert sind.

01:14:30.965 --> 01:14:31.805
Also Exceptions hatten

01:14:31.805 --> 01:14:33.585
vorher so ein bisschen Overhead irgendwie,

01:14:34.385 --> 01:14:35.825
dadurch, dass

01:14:35.825 --> 01:14:37.305
sie zum Beispiel, dass halt

01:14:37.305 --> 01:14:39.745
Speicher alloziert werden

01:14:39.745 --> 01:14:41.925
musste, den man braucht,

01:14:41.985 --> 01:14:42.425
wenn man jetzt

01:14:42.425 --> 01:14:45.645
Exception schmeißt. Das muss man halt

01:14:45.645 --> 01:14:46.045
vorher machen.

01:14:48.065 --> 01:14:49.405
Und das war vorher auf dem Heap,

01:14:49.545 --> 01:14:51.585
das heißt, man hat mehr oder weniger Malog aufgerufen,

01:14:51.585 --> 01:14:53.225
keine Ahnung, und das

01:14:53.225 --> 01:14:55.205
hat es halt langsam gemacht. Das heißt, du hast halt

01:14:55.205 --> 01:14:57.465
dann immer, wenn du irgendwie try-accept gesagt hast,

01:14:57.705 --> 01:14:59.065
hast du damit den Code, der da drin steht,

01:14:59.505 --> 01:15:00.205
ein bisschen langsamer gemacht.

01:15:01.305 --> 01:15:03.145
Und das ist jetzt weg, weil jetzt wird halt irgendwie

01:15:03.145 --> 01:15:05.225
ein statisches Ding irgendwie alloziert und das wird

01:15:05.225 --> 01:15:07.145
halt immer benutzt und dann, da kümmert sich jetzt

01:15:07.145 --> 01:15:08.905
Python selber drum, das heißt,

01:15:09.065 --> 01:15:10.945
der Overhead von try-accept ist nur noch,

01:15:11.305 --> 01:15:12.525
also es heißt irgendwie zero

01:15:12.525 --> 01:15:14.805
cost exceptions oder so,

01:15:14.905 --> 01:15:17.145
zero cost try-accept, aber das ist es

01:15:17.145 --> 01:15:19.105
nicht wirklich, es kostet irgendwie ein Prozent Overhead

01:15:19.105 --> 01:15:20.625
immer noch, aber es ist halt viel weniger als vorher.

01:15:20.625 --> 01:15:23.565
dann sind so Dinge passiert

01:15:23.565 --> 01:15:26.185
Funktionen aufrufen ist schneller geworden

01:15:26.185 --> 01:15:28.385
unter anderem

01:15:28.385 --> 01:15:30.125
die brauchen auch weniger Speicher

01:15:30.125 --> 01:15:34.125
auch weil da irgendwas mit dem

01:15:34.125 --> 01:15:36.225
mit den Frames irgendwie anders

01:15:36.225 --> 01:15:38.065
gemacht wird, ich weiß nicht mehr genau was sie gemacht haben

01:15:38.065 --> 01:15:39.905
und deswegen gehen auch

01:15:39.905 --> 01:15:42.265
Rekursionen jetzt ein bisschen tiefer, man muss das noch von Hand

01:15:42.265 --> 01:15:43.085
umstellen, aber

01:15:43.085 --> 01:15:44.865
ja

01:15:44.865 --> 01:15:46.965
dann

01:15:46.965 --> 01:15:48.805
genau

01:15:48.805 --> 01:15:52.205
Python-Objekte sind ein bisschen kleiner geworden.

01:15:52.565 --> 01:15:54.385
Also zu Python 2

01:15:54.385 --> 01:15:55.585
Zeiten waren es irgendwie so,

01:15:55.985 --> 01:15:58.185
wir hatten ein Objekt mit vier Attributen,

01:15:59.125 --> 01:15:59.345
wo man

01:15:59.345 --> 01:16:01.625
braucht irgendwie 350 Byte oder so.

01:16:02.665 --> 01:16:04.065
In Python 3 waren es dann

01:16:04.065 --> 01:16:04.765
nur noch so

01:16:04.765 --> 01:16:07.785
irgendwie 200 oder so was,

01:16:07.845 --> 01:16:09.245
sondern irgendwie waren es bis

01:16:09.245 --> 01:16:11.945
3.10 sind 120 Byte

01:16:11.945 --> 01:16:13.925
und jetzt sind es irgendwie 95

01:16:13.925 --> 01:16:15.125
oder so was, keine Ahnung.

01:16:15.625 --> 01:16:17.765
Aber es ist schon deutlich weniger geworden. Also Objekte

01:16:17.765 --> 01:16:19.265
brauchen auch deutlich weniger Platz als früher.

01:16:19.865 --> 01:16:21.805
Das kann man nicht gut mit C++, braucht nur 32.

01:16:22.365 --> 01:16:23.765
Aber ja.

01:16:24.645 --> 01:16:25.445
Ja, aber auch.

01:16:26.705 --> 01:16:27.185
Immerhin.

01:16:27.265 --> 01:16:28.805
Aber immerhin, es geht da schon

01:16:28.805 --> 01:16:31.205
in eine sehr erstaunliche Richtung.

01:16:32.225 --> 01:16:32.665
Ja, dann

01:16:32.665 --> 01:16:35.425
das Größte bei dem

01:16:35.425 --> 01:16:37.245
Python-Schneller-Feature ist halt,

01:16:37.665 --> 01:16:39.485
dass halt quasi

01:16:39.485 --> 01:16:41.845
der Bytecode

01:16:41.845 --> 01:16:43.125
halt umgeschrieben wird, wenn

01:16:43.125 --> 01:16:45.525
ein paar Mal irgendwas gemacht wurde und

01:16:45.525 --> 01:16:48.565
und man das jetzt durch irgendwas

01:16:48.565 --> 01:16:50.625
Einfacheres ersetzen kann, dann wird das halt ersetzt

01:16:50.625 --> 01:16:52.825
und dann wird halt die einfache Operation gemacht an der Stelle.

01:16:53.185 --> 01:16:54.385
Dem erinnert sich quasi, was er schon kennt

01:16:54.385 --> 01:16:56.445
und macht das dann einfach schnell durch, ohne dass er

01:16:56.445 --> 01:16:58.565
jedes Mal rumhüpfen muss, sondern kennt einfach direkt

01:16:58.565 --> 01:17:00.445
den... Ja, also da sind solche Dinge

01:17:00.445 --> 01:17:02.525
dran. Dicklookups zum Beispiel, wenn das halt

01:17:02.525 --> 01:17:04.265
häufiger passiert. Ganz wichtig,

01:17:04.565 --> 01:17:06.545
Globals, Locals, also früher hat man ja auch

01:17:06.545 --> 01:17:07.505
immer solche Sachen gemacht wie

01:17:07.505 --> 01:17:12.705
wenn man in Schleifen oder in heißen

01:17:12.705 --> 01:17:14.185
warmen Kot teilen,

01:17:14.185 --> 01:17:15.705
irgendwie, wenn man, da habe ich,

01:17:16.005 --> 01:17:18.305
mache ich heute noch irgendwie, manchmal mache ich es so instinktiv,

01:17:18.985 --> 01:17:20.665
dass ich dann halt eine lokale Variable

01:17:20.665 --> 01:17:22.465
verwende, damit halt nicht

01:17:22.465 --> 01:17:24.505
immer quasi, also entweder

01:17:24.505 --> 01:17:26.525
ein Attribut-Log abgemacht werden muss bei einer Klasse

01:17:26.525 --> 01:17:28.405
oder es in Globals oder so

01:17:28.405 --> 01:17:30.265
nachgeschlagen werden muss, sondern dass man es halt

01:17:30.265 --> 01:17:32.245
im Lokal, Local-Stack hat und dann sofort

01:17:32.245 --> 01:17:34.205
gefunden wird. Das ist jetzt alles

01:17:34.205 --> 01:17:36.305
egal, das ist alles jetzt immer gleich

01:17:36.305 --> 01:17:38.185
schnell, jedenfalls wenn es achtmal passiert ist danach,

01:17:38.265 --> 01:17:40.265
das ist dann immer gleich schnell und das

01:17:40.265 --> 01:17:41.685
ist halt auch eine ganz ordentliche Verbesserung

01:17:41.685 --> 01:17:43.485
und, ähm,

01:17:43.485 --> 01:17:46.305
Kannst du nochmal kurz sagen, was du meinst mit heißen Stellen?

01:17:46.865 --> 01:17:48.105
Ja, also du hast halt

01:17:48.105 --> 01:17:49.705
vierfach verschachtelte For-Loop,

01:17:50.065 --> 01:17:51.965
die Variable, du machst irgendwas plus irgendwas

01:17:51.965 --> 01:17:54.205
da drin oder so. Die Variable, mit der du das machst,

01:17:54.465 --> 01:17:55.005
die ist halt heiß.

01:17:55.725 --> 01:17:57.425
Die brennt die ganze Zeit. Ja, wenn du irgendwas self.

01:17:57.745 --> 01:17:59.385
irgendwas sagst, war das früher nicht so gut.

01:18:00.605 --> 01:18:02.405
Es ist so ein

01:18:02.405 --> 01:18:03.805
Paradigma, dass man sagt,

01:18:03.985 --> 01:18:05.965
der meiste Code, den du schreibst, der wird nicht

01:18:05.965 --> 01:18:08.165
oft ausgeführt und dafür gibt es

01:18:08.165 --> 01:18:10.025
ganz wenige Stellen, die dafür ganz

01:18:10.025 --> 01:18:11.005
oft ausgeführt werden.

01:18:11.005 --> 01:18:13.185
Und wenn du self. macht hast?

01:18:13.485 --> 01:18:27.265
die Stellen, die oft ausgeführt werden, das sind halt die heißen Stellen, ja, und wenn du da Operationen machst, die teuer sind, dann sind die halt unverhältnismäßig viel teurer für die Gesamtlaufzeit des Programms, als wenn du irgendwo in der Initialisierung was lang machst, weil die wird nur einmal ausgeführt.

01:18:27.265 --> 01:18:27.825
Ja, genau.

01:18:28.385 --> 01:18:37.725
Und wenn du halt in der Schleife, die eine Million Mal ausgeführt wird, eine Nanosekunde mehr verbrauchst, dann ist das halt direkt messbar.

01:18:38.625 --> 01:18:38.725
Ja.

01:18:38.725 --> 01:18:40.885
und deshalb

01:18:40.885 --> 01:18:43.105
versucht man eigentlich Optimierung.

01:18:43.185 --> 01:18:44.865
Das ist das, was man mit Profiling erreichen will.

01:18:45.025 --> 01:18:47.045
Wenn du anfängst zu optimieren, guckst du erst, wo du

01:18:47.045 --> 01:18:47.825
optimieren musst.

01:18:49.125 --> 01:18:50.825
Also es lohnt sich nicht,

01:18:50.925 --> 01:18:53.165
irgendwelche Routinen zu optimieren, die im Programmlauf

01:18:53.165 --> 01:18:55.005
nur zweimal ausgeführt werden, wenn du dafür irgendwo eine

01:18:55.005 --> 01:18:56.565
Schleife hast, die eine Milliarde Mal

01:18:56.565 --> 01:18:58.565
durchgewirbelt wird.

01:19:00.545 --> 01:19:00.925
Und deshalb

01:19:00.925 --> 01:19:03.225
hat der Jochen direkt Mikrooptimierungen

01:19:03.225 --> 01:19:05.165
gemacht mit Locker. Ja, ist auch vielleicht nicht so

01:19:05.165 --> 01:19:07.065
schlau, so sollte man auch nicht, aber es gab

01:19:07.065 --> 01:19:08.485
solche Stellen, wo das dann viel gebracht hat.

01:19:08.725 --> 01:19:15.105
Wenn du das weißt, dass das was bringt, dann kannst du doch mal erkennen, was du da gemacht hast.

01:19:15.725 --> 01:19:21.165
Ja, solche Dinge wie eben ein Attribut, das in einer Klasse dranhängt, halt einen lokalen Namen zu geben.

01:19:21.565 --> 01:19:27.465
Einfach zu sagen, lokal-name gleich self.irgendein-Attribut, was man dann halt ganz oft braucht.

01:19:27.465 --> 01:19:30.025
Und das tag ich dann erst rein und rechne es dann rum?

01:19:30.685 --> 01:19:31.665
Ja, genau.

01:19:31.785 --> 01:19:33.985
Weil dann ist es dann sonst nicht verändert und am Ende schreibst du es wieder weg.

01:19:34.845 --> 01:19:36.885
Ja, oder braucht man es dann auch nicht mehr.

01:19:36.885 --> 01:19:51.245
Ja, oder auch Methoden rausholen, dass du halt nicht self.compute machst, sondern dass du halt sagst compute gleich self.compute und dann kannst du hundertmal compute ausführen und musst nicht jedes Mal diesen Lookup machen. Und das ist jetzt besser?

01:19:52.025 --> 01:19:54.865
Ja, genau. Das muss man jetzt eigentlich nicht mehr machen. Das passiert jetzt automatisch sozusagen.

01:19:55.825 --> 01:19:57.805
Ah, beim achten Mal.

01:19:58.105 --> 01:20:02.305
Ja, irgendwie so. Ich glaube, das ist ein Implementationsdetail, das muss ich auch jedes Mal ändern.

01:20:03.105 --> 01:20:05.085
Aber irgendwie, ich glaube, total ist es auf acht.

01:20:05.085 --> 01:20:05.885
Da vertrauen wir drauf.

01:20:05.885 --> 01:20:08.805
Ist ja auch wurscht, also ich meine

01:20:08.805 --> 01:20:11.285
das macht ja nur einen Unterschied bei Dingen, die sowieso

01:20:11.285 --> 01:20:13.105
tausende Mal gemacht werden und

01:20:13.105 --> 01:20:15.285
da, ob das jetzt acht oder zwölf Mal ist,

01:20:15.325 --> 01:20:15.665
ist auch egal.

01:20:16.845 --> 01:20:18.445
Aber cool, das ist jetzt automatisch, das heißt man kann

01:20:18.445 --> 01:20:21.465
die Sachen, die man vorher nicht kannte, kann man jetzt einfach ignorieren?

01:20:23.085 --> 01:20:23.305
Genau,

01:20:23.465 --> 01:20:25.325
jetzt kann man es halt schön hinschreiben und es sollte

01:20:25.325 --> 01:20:25.585
trotzdem schnell sein.

01:20:25.585 --> 01:20:29.385
Ja, genau und

01:20:29.385 --> 01:20:31.265
manche Sachen gehen halt noch nicht, also was geht,

01:20:31.265 --> 01:20:31.985
was halt zum Beispiel

01:20:31.985 --> 01:20:35.345
durch schnellere Operationen ersetzt wird, ist halt so

01:20:35.345 --> 01:20:45.745
Floats, wenn man die addiert, multipliziert und so, keine Ahnung, bei int und float, also wenn es nur int sind, wenn es nur float sind, geht es, glaube ich, wenn es int und float sind, geht es halt nicht oder so.

01:20:46.625 --> 01:20:53.505
Kommt dann vielleicht irgendwann oder es hat sich herausgestellt, ist nicht so effektiv, wenn man das macht, keine Ahnung, aber eigentlich muss man das alles nicht wissen.

01:20:53.505 --> 01:20:55.425
Man kann einfach Code so schreiben, wie man

01:20:55.425 --> 01:20:57.165
das macht. Es gibt eine

01:20:57.165 --> 01:20:58.485
ganz interessante Geschichte

01:20:58.485 --> 01:21:00.465
Das Ding heißt

01:21:00.465 --> 01:21:02.085
Specialist

01:21:02.085 --> 01:21:05.665
Es gibt ja diese

01:21:05.665 --> 01:21:07.685
Dis-Funktion, mit der kann man sich den Bytecode angucken

01:21:07.685 --> 01:21:09.605
und wenn man

01:21:09.605 --> 01:21:11.345
dem noch einen Parameter übergibt,

01:21:11.605 --> 01:21:13.245
dann zeigt es einem auch an, welche Sachen

01:21:13.245 --> 01:21:15.525
rewrite worden sind

01:21:15.525 --> 01:21:17.025
und welche nicht

01:21:17.025 --> 01:21:19.485
Und das heißt, so kann man sich

01:21:19.485 --> 01:21:20.765
beim eigenen Code angucken

01:21:20.765 --> 01:21:21.985
und quasi beobachten

01:21:21.985 --> 01:21:23.285
Ja, genau.

01:21:24.525 --> 01:21:24.765
Cool.

01:21:25.305 --> 01:21:26.685
Das ist für Disassembly.

01:21:27.165 --> 01:21:27.405
Genau.

01:21:30.545 --> 01:21:30.985
Ansonsten,

01:21:31.485 --> 01:21:32.305
ja,

01:21:33.045 --> 01:21:34.005
also ich glaube,

01:21:34.625 --> 01:21:36.545
ich weiß nicht, habt ihr noch irgendwelche Dinge,

01:21:36.625 --> 01:21:38.025
die in Python 3.11 dazugekommen sind,

01:21:38.305 --> 01:21:42.085
die ich jetzt noch nicht drin hatte,

01:21:42.945 --> 01:21:43.985
die irgendwie interessant sind?

01:21:44.125 --> 01:21:45.445
Ganz wie Speed, Speed, Speed.

01:21:46.225 --> 01:21:46.425
Ja.

01:21:47.525 --> 01:21:48.485
Das Einzige, was zählt.

01:21:48.485 --> 01:21:49.625
Es wird ja jetzt auch immer mehr.

01:21:49.625 --> 01:21:51.505
also das ist ja eigentlich ein Plan, der

01:21:51.505 --> 01:21:53.805
fünf Jahre lang verfolgt

01:21:53.805 --> 01:21:54.125
wird.

01:21:55.185 --> 01:21:55.945
Ein Fünf-Jahres-Plan?

01:21:56.465 --> 01:21:56.705
Ja.

01:21:57.265 --> 01:21:59.965
Diese wichtigen Dinge, wo man genau weiß, was in fünf Jahren alles passieren wird?

01:22:00.085 --> 01:22:01.665
Ja, so ganz genau weiß man es natürlich nicht, aber

01:22:01.665 --> 01:22:03.585
es ist halt ein langfristiges Projekt,

01:22:03.765 --> 01:22:05.045
also tatsächlich geht über

01:22:05.045 --> 01:22:07.245
der Shannon-Plan,

01:22:07.385 --> 01:22:09.745
das soll über fünf Jahre

01:22:09.745 --> 01:22:11.605
Python ungefähr

01:22:11.605 --> 01:22:12.785
fünfmal so schnell werden wie vorher.

01:22:13.185 --> 01:22:13.705
Mag schön.

01:22:13.705 --> 01:22:14.165
Ja.

01:22:16.205 --> 01:22:17.925
Und ja, es sieht alles gut aus.

01:22:17.925 --> 01:22:47.905
und Jochen unterhalten sich über die Programmiersprache Python

01:22:47.925 --> 01:23:17.905
und Jochen unterhalten sich über die Programmiersprache Python

01:23:17.925 --> 01:23:20.785
Ich habe gehört, es ist schneller geworden.

01:23:22.585 --> 01:23:24.045
Wollen wir nochmal über die 3F?

01:23:25.265 --> 01:23:26.525
Was auch noch

01:23:26.525 --> 01:23:28.665
ein großes Release hat, hat jetzt nicht direkt was mit

01:23:28.665 --> 01:23:30.745
Python zu tun, aber in dem Umfeld natürlich

01:23:30.745 --> 01:23:32.705
auch mal interessant, Postgres 15 ist released.

01:23:33.065 --> 01:23:34.765
Also zumindest nachdem wir

01:23:34.765 --> 01:23:36.185
das letzte Mal irgendwie aufgenommen haben.

01:23:38.045 --> 01:23:38.245
Wie?

01:23:38.245 --> 01:23:40.085
Das kann das mehr? Die werden auch immer schneller.

01:23:40.105 --> 01:23:41.905
Ist auch schneller geworden, genau.

01:23:42.685 --> 01:23:44.345
Es kann jetzt das RIDAL-Headlock

01:23:44.345 --> 01:23:46.305
direkt komprimieren. Also ist irgendwie was reingekommen,

01:23:46.305 --> 01:23:47.805
ist halt, dass bestimmte Sachen so

01:23:47.805 --> 01:23:50.245
LZ4 und Z-Standard

01:23:50.245 --> 01:23:51.945
sind halt direkt in Postgres drin,

01:23:52.405 --> 01:23:54.105
sodass du da halt deine Backups

01:23:54.105 --> 01:23:56.425
direkt komprimiert rausschreiben

01:23:56.425 --> 01:23:58.285
und das

01:23:58.285 --> 01:24:00.325
Friday-Head-Log kann auch direkt komprimiert geschrieben werden.

01:24:00.645 --> 01:24:01.965
Das macht es halt auch ein bisschen schneller,

01:24:02.105 --> 01:24:03.285
einfach deswegen, weil du weniger schreiben musst.

01:24:04.325 --> 01:24:05.885
Ja, das ist dann

01:24:05.885 --> 01:24:07.365
Merge, ach das große Feature,

01:24:07.705 --> 01:24:08.365
Merge

01:24:08.365 --> 01:24:11.425
Statements,

01:24:11.685 --> 01:24:13.505
die im SQL-Standard drin sind,

01:24:13.505 --> 01:24:14.865
sind jetzt implementiert worden,

01:24:14.865 --> 01:24:16.785
Da kannst du halt diverse Geschichten

01:24:16.785 --> 01:24:18.805
Inside Update, sonst wie Sachen mixen

01:24:18.805 --> 01:24:20.865
und weiß ich nicht, ob das

01:24:20.865 --> 01:24:22.865
also kann man, wenn man rohes SQL schreibt,

01:24:22.945 --> 01:24:24.705
kann man das vielleicht benutzen, bis das irgendwo in den

01:24:24.705 --> 01:24:25.625
ORM sozusagen kommt.

01:24:27.245 --> 01:24:27.945
Keine Ahnung.

01:24:29.245 --> 01:24:30.305
Ja, ansonsten, ja,

01:24:31.005 --> 01:24:32.225
Indizes ein bisschen schneller geworden,

01:24:32.445 --> 01:24:34.845
Distinct kann jetzt parallel abgearbeitet werden.

01:24:36.505 --> 01:24:36.905
Ach ja,

01:24:37.245 --> 01:24:38.465
also eigentlich ist es ein bisschen schneller,

01:24:38.585 --> 01:24:39.845
ein bisschen hübscher geworden, ja.

01:24:41.625 --> 01:24:42.545
Ich habe einen Kunden,

01:24:42.545 --> 01:24:44.105
die haben noch Postgres 8.1.

01:24:44.865 --> 01:24:45.465
Ja.

01:24:46.725 --> 01:24:49.045
Und das ist ganz schön schwierig, weil da kriegt man keine

01:24:49.045 --> 01:24:51.225
Docker-Container dafür, da kriegt man keine

01:24:51.225 --> 01:24:53.545
Docker-Meter-Documer dafür.

01:24:53.685 --> 01:24:54.665
Ich habe einen Kunden, da schreibt

01:24:54.665 --> 01:24:56.285
eine andere Person, die schreibt mir Beckett in Dave.

01:24:57.425 --> 01:24:57.945
Warum

01:24:57.945 --> 01:25:01.365
machen die das?

01:25:01.725 --> 01:25:03.065
Sind dann Kunden so im Bereich

01:25:03.065 --> 01:25:05.205
irgendwie...

01:25:05.205 --> 01:25:05.785
Ja gut.

01:25:06.665 --> 01:25:07.405
Läuft halt noch.

01:25:08.805 --> 01:25:10.865
Sie betreiben keinen Museum

01:25:10.865 --> 01:25:12.165
veralten Code oder so?

01:25:12.165 --> 01:25:12.645
Nein.

01:25:12.645 --> 01:25:15.345
Nein, aber es ist

01:25:15.345 --> 01:25:16.985
eine öffentliche

01:25:16.985 --> 01:25:17.485
Kunde.

01:25:19.165 --> 01:25:20.925
Es geht schon in Richtung Museum

01:25:20.925 --> 01:25:21.885
für alte Maschinen.

01:25:22.865 --> 01:25:25.045
Aber das ist tatsächlich echt schwierig,

01:25:25.165 --> 01:25:26.065
weil zum Beispiel Django

01:25:26.065 --> 01:25:29.005
so alte Versionen von Postgres einfach nicht unterstützt.

01:25:29.325 --> 01:25:30.865
Da kannst du einfach, also

01:25:30.865 --> 01:25:33.085
kannst direkt, Migrate kannst du gar nicht

01:25:33.085 --> 01:25:33.545
machen.

01:25:35.545 --> 01:25:36.025
Und

01:25:36.025 --> 01:25:39.205
dann fängt es schon an

01:25:39.205 --> 01:25:41.325
so echt schwer zu werden, wenn du dann die Django-Version

01:25:41.325 --> 01:25:43.265
zurückdrehen muss in den

01:25:43.265 --> 01:25:44.565
Zweierbereich.

01:25:46.685 --> 01:25:48.225
Reicht noch 2?

01:25:49.925 --> 01:25:51.185
Ja, mit 2.2

01:25:51.185 --> 01:25:53.165
ging das, glaube ich. Also sie sagen nicht, dass es

01:25:53.165 --> 01:25:55.185
offizielle Kompatibilität gibt, aber

01:25:55.185 --> 01:25:56.685
es ging dann irgendwie.

01:25:57.845 --> 01:25:59.025
Ich musste irgendein Feature noch

01:25:59.025 --> 01:26:01.005
vermeiden und dann...

01:26:01.005 --> 01:26:05.125
Aber es ist ja schön, dass dann Postgres

01:26:05.125 --> 01:26:06.485
jetzt fast doppelt so weit ist,

01:26:06.805 --> 01:26:08.685
wie diese

01:26:08.685 --> 01:26:09.165
Version.

01:26:09.165 --> 01:26:11.185
die ganzen Legacy-Dachen benutzen.

01:26:12.065 --> 01:26:13.405
Das sind immer von den Leuten, die meinen,

01:26:13.445 --> 01:26:15.165
die müssen das unbedingt selbst migrieren, weil die die

01:26:15.165 --> 01:26:16.665
Sicherheitslücken besser finden als die Community.

01:26:17.805 --> 01:26:18.705
Ja, das ist die Fall 8.1.

01:26:19.905 --> 01:26:21.505
Muss jeder selber entscheiden.

01:26:22.605 --> 01:26:23.885
Ja, wo wir schon

01:26:23.885 --> 01:26:25.245
über Daten machen. In dem Fall habe ich tatsächlich

01:26:25.245 --> 01:26:27.125
einfach gemacht, was der Kunde wollte.

01:26:29.485 --> 01:26:31.685
Die hatten das Geld, um das zu bezahlen.

01:26:32.225 --> 01:26:34.005
Ja, ja, bei dem Thema waren wir heute schon mal.

01:26:35.005 --> 01:26:35.445
Ja, genau.

01:26:35.805 --> 01:26:37.145
Ja, ich fand gut, dass Leute alte

01:26:37.145 --> 01:26:39.905
und das ist halt irgendwie, ja, manche Leute stehen halt irgendwie drauf.

01:26:40.145 --> 01:26:40.225
Tja.

01:26:41.805 --> 01:26:42.425
Ich mache das nicht so.

01:26:44.725 --> 01:26:47.585
Aber beim Thema Datenbanken

01:26:47.585 --> 01:26:49.465
war es auch ganz interessant, da gab es jetzt ein,

01:26:49.685 --> 01:26:51.405
ich glaube, ich weiß nicht, ob das auf der

01:26:51.405 --> 01:26:53.505
DjangoCon US war oder ich weiß nicht,

01:26:53.565 --> 01:26:55.425
irgendwie haben sich Carlton Gibson

01:26:55.425 --> 01:26:57.365
und Simon Rillison unterhalten und

01:26:57.365 --> 01:26:58.765
Simon Rillison meinte so,

01:26:58.805 --> 01:27:01.685
warum steht in den DjangoDocs

01:27:01.685 --> 01:27:02.125
eigentlich drin,

01:27:03.385 --> 01:27:05.765
SQLite wird nicht für den Produktionsbetrieb

01:27:05.765 --> 01:27:06.745
empfohlen?

01:27:07.145 --> 01:27:10.005
und ja, der Grund ist halt,

01:27:10.445 --> 01:27:12.105
naja, wenn man SQLite verwendet und dann fangen

01:27:12.105 --> 01:27:13.845
plötzlich an, also es funktioniert im Entwicklungsmodus,

01:27:13.925 --> 01:27:16.085
funktioniert das ja alles super und dann, wenn man

01:27:16.085 --> 01:27:18.285
es produktiv verwendet, dann fangen Leute an, da Sachen reinzuschreiben,

01:27:18.425 --> 01:27:19.865
dann ist halt relativ schnell

01:27:19.865 --> 01:27:20.985
Ende Gelände, weil

01:27:20.985 --> 01:27:23.945
kann halt immer nur ein Thread reinschreiben und die locken

01:27:23.945 --> 01:27:25.885
halt und wenn man viel schreibt, dann lockt sich das

01:27:25.885 --> 01:27:26.565
alles gegenseitig.

01:27:27.105 --> 01:27:28.385
Concurrent Rights ist das Problem.

01:27:29.525 --> 01:27:31.305
Und dann ist man sehr schnell

01:27:31.305 --> 01:27:33.925
dann kriegt man Timeouts

01:27:33.925 --> 01:27:34.485
die ganze Zeit.

01:27:34.485 --> 01:27:36.585
Ja, ist total, so funktioniert nicht gut.

01:27:36.585 --> 01:27:38.685
Das kann man noch ein bisschen in den Griff

01:27:38.685 --> 01:27:40.865
kriegen, der hat einen 5 Sekunden Standard-Timeout.

01:27:42.045 --> 01:27:42.785
Kann man natürlich

01:27:42.785 --> 01:27:44.785
hochdrehen, dann wird es nur langsamer,

01:27:44.985 --> 01:27:46.665
aber es ist halt am Ende, ja.

01:27:46.925 --> 01:27:48.865
Genau. Und daraufhin

01:27:48.865 --> 01:27:49.545
okay,

01:27:50.265 --> 01:27:52.705
ganz viel mit SQLite, Data Setter und so

01:27:52.705 --> 01:27:54.725
Zeugs und hat da auch Ahnung von dem

01:27:54.725 --> 01:27:56.525
Ding und macht so, okay, ich probiere mal was.

01:27:56.925 --> 01:27:58.585
Und hat dann halt Benchmark

01:27:58.585 --> 01:28:00.465
dazu geschrieben und

01:28:00.465 --> 01:28:02.545
dann so Sachen ausprobiert, wie zum Beispiel einfach mal

01:28:02.545 --> 01:28:03.845
umstellen von

01:28:03.845 --> 01:28:06.825
dem normalen, ich weiß nicht, was der normale

01:28:06.825 --> 01:28:07.945
Mechanismus ist,

01:28:08.825 --> 01:28:10.905
auf Write-Ahead-Log, weil SQLite

01:28:10.905 --> 01:28:12.685
kann auch sowas mit Write-Ahead-Log.

01:28:13.805 --> 01:28:14.765
Da hat man zwar immer noch das

01:28:14.765 --> 01:28:16.385
Logging-Problem, aber das ist halt irgendwie,

01:28:18.205 --> 01:28:18.745
also es kann immer nur

01:28:18.745 --> 01:28:20.665
ein, zwei gleichzeitig schreiben, aber irgendwie

01:28:20.665 --> 01:28:22.165
wird das dann halt alles so ein bisschen in Zwischengefuhr

01:28:22.165 --> 01:28:24.765
und ist halt schneller fertig. Und stellt sich raus,

01:28:24.845 --> 01:28:26.525
ja, also an der Stelle ist dann halt irgendwie

01:28:26.525 --> 01:28:27.885
diese Timeouts gehen weg.

01:28:28.065 --> 01:28:29.565
Und es geht eigentlich.

01:28:29.765 --> 01:28:32.665
Ja, der hat da wirklich so hunderte Requests pro Sekunde

01:28:32.665 --> 01:28:36.305
oder so, oder auch, ich weiß nicht, wie viele tausend Sachen er da pro Sekunde schreiben konnte,

01:28:36.405 --> 01:28:39.085
viel, und es geht. Und es skaliert auch.

01:28:39.245 --> 01:28:42.505
Und er so, okay, was passiert denn jetzt, wenn ich mehrere Prozesse nebene, die draufschreiben?

01:28:43.885 --> 01:28:45.605
SQLite verwendet so ein File-Logging dafür,

01:28:46.445 --> 01:28:48.925
und er so, oh, das kriegt mir bestimmt in die Ohren.

01:28:49.145 --> 01:28:52.125
Nö, es ist fast linear skaliert, bis zu vier Prozessoren.

01:28:52.765 --> 01:28:54.445
Also, geht auch.

01:28:55.305 --> 01:28:57.425
Das heißt, du kannst eigentlich, also für die allermeisten,

01:28:57.605 --> 01:29:01.785
es wird kaum Leute geben, die, wenn man SQLite so konfiguriert,

01:29:02.665 --> 01:29:05.825
in einen Bereich kommen, wo sie Schreibprobleme kriegen.

01:29:06.125 --> 01:29:07.825
Das heißt, eigentlich kannst du das Ding

01:29:07.825 --> 01:29:09.525
halt auch produktiv deployen

01:29:09.525 --> 01:29:12.005
und Leuten das als Datenbank

01:29:12.005 --> 01:29:12.365
geben.

01:29:12.365 --> 01:29:12.905
Ich meine,

01:29:14.365 --> 01:29:16.105
man will vielleicht aus diversen anderen Gründen auch noch

01:29:16.105 --> 01:29:17.265
ein richtiges Postgres verhalten,

01:29:17.285 --> 01:29:20.305
aber für viele Sachen reicht es

01:29:20.305 --> 01:29:22.305
wahrscheinlich aus und dann brauchst du keinen Datenbank-Server,

01:29:22.465 --> 01:29:24.185
weil das ist halt schon

01:29:24.185 --> 01:29:25.125
eine sehr schmerzhafte Geschichte.

01:29:25.225 --> 01:29:27.485
Das ist schon ein Einrichtungsaufwand, der

01:29:27.485 --> 01:29:29.285
vermeidbar ist.

01:29:29.545 --> 01:29:31.065
Und wenn du das jetzt auf irgendeine kleine

01:29:31.065 --> 01:29:33.325
eine virtuelle Maschine mit

01:29:33.325 --> 01:29:34.905
Dateisystemen deployen kannst?

01:29:35.645 --> 01:29:37.385
Reicht für die meisten Leute wahrscheinlich aus.

01:29:38.345 --> 01:29:39.085
Und das ist natürlich schon nett.

01:29:39.305 --> 01:29:39.645
Das finde ich gut.

01:29:40.485 --> 01:29:42.345
Sollte man machen.

01:29:42.345 --> 01:29:42.505
Super.

01:29:45.365 --> 01:29:45.845
Genau.

01:29:47.005 --> 01:29:48.285
Hat SQLite nicht

01:29:48.285 --> 01:29:50.185
kürzlich so ein Sicherheitsthema gehabt?

01:29:50.325 --> 01:29:51.605
Ich erinnere mich, dass da irgendwas war.

01:29:52.045 --> 01:29:53.685
Das habe ich, glaube ich, überlesen. Weiß ich nicht.

01:29:54.705 --> 01:30:05.127
Ich glaube die hatten so ein Sicherheitsproblem bei sehr gro Writes Anscheinend gibt es da einen Overflow wenn du irgendwie

01:30:05.127 --> 01:30:06.967
Max Bytes

01:30:06.967 --> 01:30:09.067
minus 1 an Daten

01:30:09.067 --> 01:30:11.047
holst. Das ist irgendwie ein Terabyte oder sowas.

01:30:11.287 --> 01:30:12.787
Okay, natürlich. Also es ist nicht

01:30:12.787 --> 01:30:16.347
es ist kein

01:30:16.347 --> 01:30:18.607
realistisches, kein pragmatisches Problem,

01:30:19.648 --> 01:30:21.007
aber tatsächlich

01:30:21.007 --> 01:30:22.727
war das so ein bisschen News, weil

01:30:22.727 --> 01:30:24.467
SQLite eigentlich sehr, sehr gut

01:30:24.467 --> 01:30:26.547
vertestet ist und sehr, sehr sicher ist.

01:30:27.207 --> 01:30:28.287
Und das war eben so eine Sache,

01:30:28.607 --> 01:30:30.627
wo einer gesagt hat, haha, aber wenn ich

01:30:30.627 --> 01:30:32.487
einen Terabyte gleichzeitig in einer

01:30:32.487 --> 01:30:34.047
Transaktion drin habe und dann

01:30:34.047 --> 01:30:36.367
irgendwas mache, da wird halt auch irgendein

01:30:36.367 --> 01:30:38.387
Puffer alloziert, der dann ausläuft.

01:30:39.267 --> 01:30:40.607
Dann geht es aber nicht mehr.

01:30:41.287 --> 01:30:42.047
Ah, okay.

01:30:42.587 --> 01:30:43.607
Passiert den Besten.

01:30:43.607 --> 01:30:44.107
Ja.

01:30:46.287 --> 01:30:47.067
Ja, ja.

01:30:48.927 --> 01:30:49.607
Tja, ansonsten

01:30:50.547 --> 01:30:51.607
PyMC4

01:30:51.607 --> 01:30:53.447
MCSphere ist veröffentlicht.

01:30:55.188 --> 01:30:56.467
Heißt jetzt nur noch PyMC,

01:30:56.827 --> 01:30:59.527
so für probabilistische Programmierungsgeschichten

01:30:59.527 --> 01:31:01.107
Library, die man sich mal angucken kann.

01:31:01.827 --> 01:31:03.587
Manchmal ist es ganz nett, das zu haben.

01:31:04.107 --> 01:31:05.168
Wofür steht denn MC?

01:31:06.148 --> 01:31:06.668
Monte Carlo.

01:31:08.567 --> 01:31:09.427
Also MC, MC,

01:31:09.567 --> 01:31:11.447
Markov Chain, Monte Carlo.

01:31:12.387 --> 01:31:13.527
Ja, das MC steht für

01:31:13.527 --> 01:31:14.507
Monte Carlo.

01:31:16.127 --> 01:31:16.327
Okay.

01:31:18.107 --> 01:31:18.627
Ja.

01:31:18.627 --> 01:31:18.707
Ja,

01:31:18.707 --> 01:31:21.767
Ja, ich weiß nicht genau.

01:31:21.947 --> 01:31:23.787
Und der Angel Kapathi ist ja jetzt

01:31:23.787 --> 01:31:25.627
seinen Job los und hat angefangen

01:31:25.627 --> 01:31:27.567
ein Machine Learning Tutorial

01:31:27.567 --> 01:31:30.027
mit Python irgendwie auf YouTube

01:31:30.027 --> 01:31:31.927
zu veröffentlichen. Ach, ja, ja, ich habe gesehen, er macht jetzt

01:31:31.927 --> 01:31:33.287
mehr YouTube-Videos wieder, ja.

01:31:33.587 --> 01:31:35.987
Also so neue Networks und so, so ein bisschen

01:31:35.987 --> 01:31:37.447
Intro, wie das in Python geht und

01:31:37.447 --> 01:31:39.987
Language-Modell-Ding und sowas. Nett, ja, kann man sich

01:31:39.987 --> 01:31:40.787
auf jeden Fall auch angucken.

01:31:41.827 --> 01:31:43.967
Ja, der macht immer sehr schöne Sachen.

01:31:45.107 --> 01:31:45.668
Stimmt, warum

01:31:45.668 --> 01:31:47.567
der war bei Tesla, ne?

01:31:47.567 --> 01:31:48.567
Ja.

01:31:52.207 --> 01:31:53.707
Ist er wohl entlassen worden?

01:31:54.287 --> 01:31:55.807
Nee, ich glaube, der ist tatsächlich freiwillig.

01:31:56.148 --> 01:31:57.267
Ja, es gibt da einige Leute,

01:31:57.387 --> 01:31:59.107
der sich diese

01:31:59.107 --> 01:32:01.087
na, wie heißen die

01:32:01.087 --> 01:32:01.787
GAN-Modelle?

01:32:04.407 --> 01:32:05.047
General

01:32:05.047 --> 01:32:06.927
Adversarial Networks

01:32:06.927 --> 01:32:09.668
General Adversarial Networks

01:32:09.668 --> 01:32:10.887
meine Güte, ist schon

01:32:10.887 --> 01:32:11.787
spät.

01:32:13.447 --> 01:32:14.648
Wie heißt da ein

01:32:14.648 --> 01:32:18.668
Der war irgendwas auch

01:32:18.668 --> 01:32:20.927
chefmäßiges für Machine Learning

01:32:20.927 --> 01:32:22.547
bei Apple und der

01:32:22.547 --> 01:32:24.188
wollte eigentlich weiter

01:32:24.188 --> 01:32:26.967
Homeoffice

01:32:26.967 --> 01:32:28.747
machen und Apple hat gesagt, nee, wollen wir nicht.

01:32:28.927 --> 01:32:29.447
Und dann ist es auch gegangen.

01:32:32.347 --> 01:32:34.967
Da muss man halt wissen, was einem

01:32:34.967 --> 01:32:36.907
wichtig ist, ob die Leute da sind

01:32:36.907 --> 01:32:38.648
oder ob sie da sind.

01:32:38.648 --> 01:32:38.927
Ja.

01:32:39.947 --> 01:32:42.787
Also ich meine, das ist

01:32:42.787 --> 01:32:44.407
halt auch eine sehr teure Policy,

01:32:44.407 --> 01:33:14.387
und die Programmiersprache Python

01:33:14.407 --> 01:33:16.527
und mir zuhören, finde ich das eigentlich auch okay. Da können sie ja gar nicht so viel

01:33:16.527 --> 01:33:18.587
arbeiten, aber das ist für mich eigentlich auch gar nicht

01:33:18.587 --> 01:33:19.107
so schlecht, finde ich.

01:33:19.107 --> 01:33:20.087
Er kann sich reden würden.

01:33:23.027 --> 01:33:23.427
Aufmerksamkeit,

01:33:23.487 --> 01:33:24.188
Aufmerksamkeit.

01:33:26.127 --> 01:33:26.527
Ja,

01:33:27.287 --> 01:33:29.107
ansonsten...

01:33:31.188 --> 01:33:37.047
Genau, was hatten wir noch?

01:33:37.207 --> 01:33:38.547
Also es gab noch diverse...

01:33:38.547 --> 01:33:40.307
Gut, das ist jetzt für die meisten wahrscheinlich nicht so...

01:33:40.307 --> 01:33:42.827
Für mich war es ganz interessant,

01:33:42.827 --> 01:33:59.227
macOS und iOS-Updates, weil da gab es einige ganz interessante Geschichten. Also was mich ein bisschen genervt hat, es war diesmal ein sehr, sehr hakeliges Update für mich. Es gibt ein sehr schönes Feature, das ich tatsächlich sehr cool finde. Es gibt auf dem Mac, ich weiß nicht, wie macht ihr das eigentlich, wenn ihr Fotos teilen wollt mit anderen Leuten?

01:34:01.227 --> 01:34:02.407
Gar nicht, machen wir nicht.

01:34:02.407 --> 01:34:02.727
machen.

01:34:04.247 --> 01:34:05.927
Ist nicht so ein einfaches Thema, finde ich.

01:34:06.447 --> 01:34:07.987
Auch auf iOS oder

01:34:07.987 --> 01:34:10.367
auf Apple im Apple-Universum ist es auch

01:34:10.367 --> 01:34:12.467
nicht so leicht. Also denkt man,

01:34:12.547 --> 01:34:14.148
man kann so ein Shared-Album machen

01:34:14.148 --> 01:34:15.527
und dann geht das.

01:34:16.067 --> 01:34:17.967
Nee, geht nicht, weil dann werden die ganzen Sachen

01:34:17.967 --> 01:34:20.367
super klein gerechnet, winzig und dann...

01:34:20.367 --> 01:34:22.367
Dropbox? Dropbox könnte man

01:34:22.367 --> 01:34:23.947
machen, aber dann hast du halt das Problem, dass

01:34:23.947 --> 01:34:26.267
du musst die Dinge, wie willst du

01:34:26.267 --> 01:34:26.867
die angucken?

01:34:27.767 --> 01:34:30.007
Was legst du in diese Dropbox?

01:34:30.567 --> 01:34:31.507
Fotos? Ja,

01:34:31.507 --> 01:34:33.487
Aber wenn du jetzt, nehmen wir an, du hast

01:34:33.487 --> 01:34:36.007
ROS, OwnCloud, legst du die da rein?

01:34:36.127 --> 01:34:37.707
Von ROS kann da niemand angucken,

01:34:37.807 --> 01:34:39.967
da muss da schon irgendwie...

01:34:39.967 --> 01:34:41.107
Ja, aber...

01:34:41.107 --> 01:34:43.007
Ja, ist halt...

01:34:43.007 --> 01:34:44.887
Wir sind wieder bei so Problemen, die wenige Leute haben.

01:34:46.007 --> 01:34:47.067
Ja, also...

01:34:47.067 --> 01:34:49.607
Ja, der Jochen möchte halt seine 28k

01:34:49.607 --> 01:34:51.467
Resolution Fotos gerne

01:34:51.467 --> 01:34:52.827
schon in ordentlicher Qualität

01:34:52.827 --> 01:34:54.087
sharen können.

01:34:54.087 --> 01:34:54.567
Ja.

01:34:55.648 --> 01:34:58.087
Dann muss der das halt selber

01:34:58.087 --> 01:35:00.127
schreiben, muss halt ein Verzeichnis haben,

01:35:00.127 --> 01:35:02.047
wo die Dateien drin liegen und die dann irgendwie

01:35:02.047 --> 01:35:03.707
zugänglich machen und ich meine

01:35:03.707 --> 01:35:06.407
Image Gallery Software gibt es genügend

01:35:06.407 --> 01:35:08.807
aber ich habe eine

01:35:08.807 --> 01:35:10.207
Lösung dafür, also sozusagen

01:35:10.207 --> 01:35:11.287
für diese, aber

01:35:11.287 --> 01:35:14.007
was halt auch schön wäre ist, dass man das so

01:35:14.007 --> 01:35:16.087
dass man halt ganze Alben oder so, nicht unbedingt nur so

01:35:16.087 --> 01:35:17.807
eine Auswahl, das ist ja auch Arbeit das zu machen

01:35:17.807 --> 01:35:20.207
man möchte einfach Leuten sagen so

01:35:20.207 --> 01:35:22.387
hier, ihr könnt das einfach auch angucken

01:35:22.387 --> 01:35:24.168
das gab es bisher

01:35:24.168 --> 01:35:26.047
eigentlich nicht und das kann man auch nicht gut öffentlich

01:35:26.047 --> 01:35:27.047
über eine Webseite oder so machen

01:35:27.047 --> 01:35:30.668
und das ist jetzt drin und das funktioniert eigentlich auch ganz gut.

01:35:30.927 --> 01:35:31.827
Da funktioniert genau das.

01:35:32.127 --> 01:35:36.007
Es gab auch vorher schon eine Möglichkeit, man konnte so einen iCloud-Sharing-Link erzeugen

01:35:36.007 --> 01:35:38.907
und da hat man so eine Webansicht gekriegt und da waren auch die Originalgrößen-Dinger drin.

01:35:39.527 --> 01:35:42.047
Was die meisten Leute machen, ist wahrscheinlich, sie nehmen einfach den Kram

01:35:42.047 --> 01:35:46.007
und verschicken ihn vollkommen hemmungslos per WhatsApp oder so

01:35:46.007 --> 01:35:48.727
und WhatsApp rechnet den Kram dann irgendwie zu gut genug.

01:35:50.807 --> 01:35:55.087
Nehmen die Leute das und machen A3-Ausdrücke dafür,

01:35:55.087 --> 01:35:57.207
hängen sich an die Wand und sagen, also irgendwie

01:35:57.207 --> 01:35:58.267
sah das aus.

01:35:58.707 --> 01:36:00.867
Der Typ kann gar nicht fotografieren, das ist ja schrecklich.

01:36:01.807 --> 01:36:02.907
Werf deine Kamera an.

01:36:03.047 --> 01:36:04.827
Das fällt dir gar nicht auf, das Motiv gefällt dir nicht mehr,

01:36:04.867 --> 01:36:05.787
deswegen hängen sie dich an die Wand.

01:36:05.967 --> 01:36:07.627
Ja, es ist wahr, aber

01:36:07.627 --> 01:36:11.087
es tut manchmal auch ein bisschen weh,

01:36:11.107 --> 01:36:12.347
wenn man sieht, was Leute so machen.

01:36:13.727 --> 01:36:15.207
Mit deinem Auge, mit deinem

01:36:15.207 --> 01:36:16.007
ästhetischen Anspruch.

01:36:16.467 --> 01:36:18.387
Ja, genau.

01:36:18.587 --> 01:36:20.347
Das, was Leute tun, ist sehr schrecklich.

01:36:21.688 --> 01:36:23.087
Aber ich glaube, bei MacUpdate, wir reden schon so lange

01:36:23.087 --> 01:36:24.607
über MacUpdate, wo das hier das gefichste ist.

01:36:25.087 --> 01:36:27.407
für Fiffpress. Es gibt ja jetzt ein Feature, dass das halt

01:36:27.407 --> 01:36:29.287
fixt, aber das hatte ziemlich

01:36:29.287 --> 01:36:31.387
hakelige Geschichten. Bei mir jedenfalls war es alles sehr schrecklich.

01:36:31.467 --> 01:36:33.027
Hat die ganzen Counts und alle kaputt gegangen.

01:36:34.168 --> 01:36:34.387
Ich habe

01:36:34.387 --> 01:36:37.307
meine Uhr teilweise nur noch die

01:36:37.307 --> 01:36:38.607
Uhrzeit von gestern angezeigt.

01:36:38.947 --> 01:36:40.867
Es war sehr unrund.

01:36:41.767 --> 01:36:43.648
Aber dafür in voller Auflösung.

01:36:43.727 --> 01:36:45.168
Ja, ich weiß auch nicht.

01:36:47.807 --> 01:36:48.648
Aber Jochen,

01:36:48.767 --> 01:36:50.668
weißt du denn, dass es die Uhrzeit von gestern ist?

01:36:50.787 --> 01:36:52.627
Weil gestern hat ja die gleichen Uhrzeiten wie heute.

01:36:53.207 --> 01:36:54.967
Ja, ich weiß, wann ich ins Bett gegangen bin

01:36:54.967 --> 01:36:56.987
und eingeschlafen bin und dann, wenn ich morgens aufwache

01:36:56.987 --> 01:36:58.567
und dann ist er einfach stehen geblieben.

01:36:58.707 --> 01:36:59.707
Genau, und dann ist er stehen geblieben.

01:37:02.287 --> 01:37:02.987
Du meinst,

01:37:03.047 --> 01:37:04.747
er hat jetzt das 12 Uhr von gestern angezeigt.

01:37:04.767 --> 01:37:05.107
Nein, nein.

01:37:06.807 --> 01:37:07.507
Philosophische Frage.

01:37:08.927 --> 01:37:10.547
Ja, so, solche

01:37:10.547 --> 01:37:13.207
Probleme hat es mich dann...

01:37:13.207 --> 01:37:14.547
Ach ja.

01:37:16.207 --> 01:37:16.527
Genau.

01:37:17.727 --> 01:37:18.847
Ja, nee, das ist zumindest schon

01:37:18.847 --> 01:37:20.148
bei den unwichtigen Dingen angekommen, glaube ich.

01:37:20.188 --> 01:37:22.807
Ja, ich glaube, wir sind jetzt mit den News tatsächlich durch und wir machen mal das Thema,

01:37:22.807 --> 01:37:23.507
was wir heute machen wollen.

01:37:53.507 --> 01:37:56.087
Eine lineare Abfolge von Einträgen.

01:37:58.867 --> 01:38:00.047
So, das ist eine Liste.

01:38:01.947 --> 01:38:03.307
Und die Ordnung

01:38:03.307 --> 01:38:06.947
ist eine lineare Abfolge.

01:38:07.067 --> 01:38:09.447
Es gibt ein erstes Element und ein zweites Element

01:38:09.447 --> 01:38:11.107
und ein drittes Element und ein viertes Element.

01:38:12.247 --> 01:38:13.887
Und vielleicht gibt es auch ein fünftes Element.

01:38:14.467 --> 01:38:17.707
Und das hört sich noch an

01:38:17.707 --> 01:38:18.547
wie was Sinnvolles, oder?

01:38:18.987 --> 01:38:21.607
So zum Programmieren, dass man sich mehrere Dinge merken kann.

01:38:21.607 --> 01:38:22.707
Ist eine Liste ein Array?

01:38:22.707 --> 01:38:23.867
was ein String Analyst ist.

01:38:24.367 --> 01:38:25.927
Und genau, jetzt gibt es zwei

01:38:25.927 --> 01:38:28.667
Techniken, wie man sich sowas

01:38:28.667 --> 01:38:30.567
speichern kann. Das eine ist einfach

01:38:30.567 --> 01:38:31.267
alles hintereinander.

01:38:32.567 --> 01:38:33.947
Und das heißt dann normalerweise Array

01:38:33.947 --> 01:38:36.487
oder Vector oder

01:38:36.487 --> 01:38:38.027
Liste.

01:38:40.127 --> 01:38:40.747
Und das

01:38:40.747 --> 01:38:42.567
andere ist quasi

01:38:42.567 --> 01:38:44.087
immer mit Verweisen auf das Nächste.

01:38:44.667 --> 01:38:46.728
Ich habe ein Element in der Hand und das Nächste

01:38:46.728 --> 01:38:47.707
steht an dieser Stelle.

01:38:48.427 --> 01:38:50.367
Und das muss dann wieder einen Verweis auf das Nächste haben.

01:38:50.367 --> 01:38:51.847
Und diese Technik heißt Linked List.

01:38:52.707 --> 01:38:54.447
Das ist eine verknüpfte Liste.

01:38:56.667 --> 01:38:58.367
Und die haben

01:38:58.367 --> 01:39:00.387
sehr unterschiedliche Eigenschaften,

01:39:01.707 --> 01:39:02.427
obwohl sie sich

01:39:02.427 --> 01:39:04.447
von außen

01:39:04.447 --> 01:39:06.007
sehen die ja gleich aus. Von außen

01:39:06.007 --> 01:39:07.967
sage ich, ich gebe mir das dritte Element

01:39:07.967 --> 01:39:09.887
und dann kriegst du das dritte Element.

01:39:10.067 --> 01:39:11.787
Oder gib mir jedes Element nacheinander, so wie

01:39:11.787 --> 01:39:13.167
ein Python mit einer Vorschleife.

01:39:13.947 --> 01:39:16.167
Und das spielt keine Rolle, wie die darunter

01:39:16.167 --> 01:39:18.047
liegende Implementierung ist. Ob die

01:39:18.047 --> 01:39:20.188
im Speicher alle hintereinander gespeichert sind

01:39:20.188 --> 01:39:22.188
oder ob die alle irgendwo gespeichert

01:39:22.188 --> 01:39:23.427
und dann nur aufeinander verweisen.

01:39:24.688 --> 01:39:27.067
Aber so von den Laufzeiteigenschaften

01:39:27.067 --> 01:39:27.827
und von den

01:39:27.827 --> 01:39:30.327
möglichen Operationen

01:39:30.327 --> 01:39:32.547
oder von den Kosten der möglichen Operationen

01:39:32.547 --> 01:39:34.547
unterscheiden die sich ja schon sehr deutlich.

01:39:38.547 --> 01:39:38.827
Und

01:39:38.827 --> 01:39:42.567
das ist super interessant, weil es halt

01:39:42.567 --> 01:39:44.587
so das Interface

01:39:44.587 --> 01:39:45.927
so quasi das gleiche ist,

01:39:46.047 --> 01:39:48.427
aber halt so vom Verhalten extrem

01:39:48.427 --> 01:39:50.807
unterschiedlich ist.

01:39:52.188 --> 01:40:02.927
und das ist so ein bisschen da der Kernpunkt an dieser Debatte, warum wir da diesem Thema eine Podcast-Episode können,

01:40:02.927 --> 01:40:07.947
wollen, können, wollen, können, wollen.

01:40:11.047 --> 01:40:16.167
Und es gibt da auch Verfechter auf beiden Seiten, das ist auch ganz interessant, dass da halt Leute sagen,

01:40:16.267 --> 01:40:20.947
nein, es muss so sein und zwar für beide Möglichkeiten.

01:40:22.188 --> 01:40:24.607
und

01:40:24.607 --> 01:40:28.667
die sind auch unterschiedlich schwer zu implementieren

01:40:28.667 --> 01:40:29.907
und das ist auch ganz interessant.

01:40:30.267 --> 01:40:32.267
Deshalb kennen viele

01:40:32.267 --> 01:40:34.307
Informatikstudenten halt die Datenstruktur

01:40:34.307 --> 01:40:36.407
Linked List, weil die super einfach

01:40:36.407 --> 01:40:38.547
zu schreiben ist. Es ist super einfach

01:40:38.547 --> 01:40:40.427
eine Datenstruktur zu schreiben,

01:40:40.607 --> 01:40:42.467
die Linked List ist, weil du brauchst nur zwei Felder.

01:40:43.927 --> 01:40:44.707
Du brauchst

01:40:44.707 --> 01:40:45.267
ein Feld,

01:40:46.267 --> 01:40:48.287
das was ich speichern möchte und ein Feld,

01:40:48.667 --> 01:40:50.467
das was das nächste ist. Also ein Paar

01:40:50.467 --> 01:40:52.167
eigentlich. Oder das was das nächste ist.

01:40:52.188 --> 01:41:22.167
und Jochen unterhalten sich über die Programmiersprache Python

01:41:22.188 --> 01:41:28.887
und das eine ist das Element, was man speichern möchte und das andere ist ein Verweis auf die nächste Stelle, wo man was sich merken kann.

01:41:29.207 --> 01:41:30.947
Und das reicht schon aus, um eine Linked-List zu machen.

01:41:31.067 --> 01:41:36.007
Das reicht schon aus, um sich Sachen zu speichern und das ist ziemlich spannend.

01:41:36.728 --> 01:41:46.087
Und es ist sehr leicht, das zu schreiben und deshalb wird das eben oft als Beispiel für eine Datenstruktur benutzt in Informatikvorlesungen,

01:41:46.087 --> 01:41:52.167
in Einführungsvorlesungen, dass man sagt, jetzt schreibt ihr mal eine Linked-List und dann fügt mal 100.000 Elemente,

01:41:52.188 --> 01:41:53.648
und schaut mal, wie schnell ihr es machen könnt.

01:41:54.547 --> 01:41:56.527
Und macht mal Iterationen

01:41:56.527 --> 01:41:58.267
und macht mal so, dass man in der Mitte

01:41:58.267 --> 01:42:00.148
was einfügen kann und macht mal so, dass man am Ende

01:42:00.148 --> 01:42:02.547
was löschen kann und macht mal so, dass man XYZ

01:42:02.547 --> 01:42:02.987
machen kann.

01:42:04.107 --> 01:42:06.287
Und weil das so einfach ist

01:42:06.287 --> 01:42:08.487
und weil man es so einfach machen kann,

01:42:08.567 --> 01:42:10.787
gibt es da dann halt sehr viele schöne Optimierungstechniken.

01:42:10.887 --> 01:42:12.327
Zum Beispiel, wie der Dominik schon gesagt hat,

01:42:12.507 --> 01:42:13.927
Pointer in die andere Richtung speichern,

01:42:14.567 --> 01:42:16.527
dass man auch von hinten nach vorne durchiterieren kann.

01:42:17.967 --> 01:42:18.327
Oder

01:42:18.327 --> 01:42:20.927
keine Ahnung,

01:42:20.927 --> 01:42:23.007
Pointer, die halt in die Mitte zeigen oder

01:42:23.007 --> 01:42:25.027
die irgendwelche Segmente

01:42:25.027 --> 01:42:27.047
haben oder Sublisten

01:42:27.047 --> 01:42:28.847
haben oder sonst irgendwas, wo du halt viele

01:42:28.847 --> 01:42:30.067
schöne Dinge machen kannst damit.

01:42:30.847 --> 01:42:32.947
Oder auch Cycle Detection, das ist dann

01:42:32.947 --> 01:42:34.907
was, was da rausfällt, wenn du so eine Liste hast,

01:42:35.027 --> 01:42:36.567
wo du immer nur aufs nächste Element verweist,

01:42:37.127 --> 01:42:38.847
kann es ja sein, dass du ein Element hast, was

01:42:38.847 --> 01:42:40.767
irgendwo an eine andere Stelle in die Liste rein

01:42:40.767 --> 01:42:42.747
verweist und dann hast du so

01:42:42.747 --> 01:42:44.047
einen Kreis in deiner Liste drin.

01:42:44.607 --> 01:42:45.967
Und wie machst du Cycle Detection?

01:42:47.867 --> 01:42:48.067
Bitte?

01:42:48.247 --> 01:42:50.747
Eine Queue. Eine Queue kannst du auch machen,

01:42:50.747 --> 01:42:56.967
und wenn du quasi, da musst du dir nur das erste und das letzte Element merken, damit du dir was einfügen kannst am Ende und was abholen kannst vorne.

01:42:57.767 --> 01:43:01.648
Kann man sehr schön und sehr leicht viele Sachen draus bauen.

01:43:01.807 --> 01:43:03.667
Auch einen Tree kannst du dir sehr leicht draus bauen.

01:43:03.747 --> 01:43:07.728
Hast du halt nicht einen Pointer, wo das nächste Element ist, sondern hast du halt zwei Pointer.

01:43:08.447 --> 01:43:15.207
Eins zum rechten Child und eins zum linken Child und dann hast du mit wenig Arbeit einen Baum aus deiner Liste gemacht.

01:43:15.207 --> 01:43:17.067
und deshalb ist das so ein bisschen

01:43:17.067 --> 01:43:18.207
ein fundamentales

01:43:18.207 --> 01:43:21.507
Bauteil in den Datenstrukturen.

01:43:22.987 --> 01:43:23.407
Aber auf

01:43:23.407 --> 01:43:25.228
modernen Prozessoren sind LinkedLists halt

01:43:25.228 --> 01:43:26.648
brutal langsam, üblicherweise.

01:43:28.067 --> 01:43:28.648
Weil

01:43:28.648 --> 01:43:31.407
du bei jedem Element einen Cache-Mess hast,

01:43:31.707 --> 01:43:32.467
normalerweise.

01:43:34.827 --> 01:43:35.427
Und

01:43:35.427 --> 01:43:37.287
Cache-Mess sind das Schlechteste, was

01:43:37.287 --> 01:43:38.507
du machen kannst auf modernen Prozessoren.

01:43:38.507 --> 01:43:39.927
Was ist denn ein Cache-Mess?

01:43:41.307 --> 01:43:41.587
Ja,

01:43:41.587 --> 01:43:45.347
und man hat ja im Kopf

01:43:45.347 --> 01:43:50.667
Cash Miss ist, wenn du kein Geld bekommst,

01:43:51.287 --> 01:43:52.347
wenn du zu wenig Geld hast.

01:43:54.347 --> 01:43:58.167
Man hat ja im Kopf so das Bild, dass ein Computer aus zwei Bauteilen besteht.

01:43:58.347 --> 01:44:02.207
Das eine ist der Prozessor und das andere ist der Hauptspeicher und der Prozessor macht irgendwelche Dinge

01:44:02.207 --> 01:44:06.387
mit den Sachen, die im Hauptspeicher sind. Und das mag vor 40 Jahren

01:44:06.387 --> 01:44:10.087
so gewesen sein, aber das ist heutzutage leider nicht mehr so. Heutzutage gibt es

01:44:10.087 --> 01:44:12.387
viele verschiedene Ebenen von Speicher.

01:44:13.347 --> 01:44:14.267
Und je näher

01:44:14.267 --> 01:44:16.287
der Speicher am Prozessor ist, umso schneller

01:44:16.287 --> 01:44:18.247
ist der. Und umso kleiner ist

01:44:18.247 --> 01:44:20.228
der. Das heißt, ein Prozessor

01:44:20.228 --> 01:44:21.728
hat sogenannte Register,

01:44:22.427 --> 01:44:24.127
die sind direkt in den Prozessor eingebaut,

01:44:24.228 --> 01:44:26.188
aber davon gibt es halt nur, keine Ahnung, 16.

01:44:27.947 --> 01:44:28.327
Und

01:44:28.327 --> 01:44:30.327
die nächste Ebene

01:44:30.327 --> 01:44:31.887
drüber, die heißt L1 Cache,

01:44:32.107 --> 01:44:34.287
der Level 1 Cache, und davon gibt es dann halt,

01:44:34.407 --> 01:44:36.127
keine Ahnung, 16

01:44:36.127 --> 01:44:38.007
Kilobyte. Und dann gibt es den

01:44:38.007 --> 01:44:40.007
L2 Cache und das sind dann halt 128

01:44:40.007 --> 01:45:09.228
20 GB. Und dann gibt es den L3-Cache, das sind dann 4 MB. Und weil die alle sehr klein sind, gibt es danach halt den Hauptspeicher und der hat dann auf einmal, keine Ahnung, je nachdem wie viel man halt hat, 8 GB oder 16 GB oder auch 128 GB, das spielt keine Rolle. Und die Ebene dahinter, hinter dem Hauptspeicher, ist eigentlich die Festplatte oder beziehungsweise die SSD, die man jetzt drin hat, die dann halt in Terabyte gemessen wird. Die im Grunde genommen gar nicht so viel anders ist, als das, was im Hauptspeicher drin ist.

01:45:09.228 --> 01:45:10.947
nur halt langsamer.

01:45:12.927 --> 01:45:13.467
Und jede

01:45:13.467 --> 01:45:14.728
dieser Ebenen ist immer langsamer.

01:45:15.007 --> 01:45:16.947
Um auf ein Register zuzugreifen, das dauert

01:45:16.947 --> 01:45:19.067
einen Prozessorzyklus. Um auf den

01:45:19.067 --> 01:45:21.407
L1-Cache zuzugreifen, dauert, keine Ahnung,

01:45:21.507 --> 01:45:23.527
vier Prozessorzyklen. Auf den L2-Cache

01:45:23.527 --> 01:45:24.947
acht Prozessorzyklen.

01:45:25.067 --> 01:45:26.648
Das ist ungefähr beim Faktor 3 dazwischen.

01:45:27.587 --> 01:45:28.987
Also am Schluss wird es mehr.

01:45:29.667 --> 01:45:30.648
Bis auf den Hauptspeicher.

01:45:30.807 --> 01:45:32.107
Da ist eine große Lücke.

01:45:33.607 --> 01:45:34.787
Genau, da ist eine große Lücke.

01:45:35.188 --> 01:45:35.407
Das heißt,

01:45:35.407 --> 01:45:42.447
und es ist gefährlich, Sachen aus dem Hauptspeicher in den Prozessor reinzuholen,

01:45:42.527 --> 01:45:43.387
um dann Sachen damit zu machen.

01:45:43.967 --> 01:45:51.447
Und dieses ganze Schema funktioniert nur deshalb, weil Programme so etwas haben,

01:45:51.487 --> 01:45:52.467
das heißt Lokalität.

01:45:53.327 --> 01:45:57.767
Wenn ich eine Speicherzelle bearbeitet habe, dann ist die Wahrscheinlichkeit hoch,

01:45:57.847 --> 01:46:00.728
dass ich die benachbarten Speicherzellen als nächstes bearbeite.

01:46:00.728 --> 01:46:09.267
und deshalb funktioniert dieses Caching, weil das Caching eben darauf basiert, dass immer ganze Blöcke von Speicher in die Ebene darunter geholt werden.

01:46:10.127 --> 01:46:19.427
Das heißt, wenn ich jetzt im Hauptspeicher irgendeine Speicherseite habe, die hat 16 KB und ich lese da ein Byte draus, dann wird diese ganze Seite in den L3-Cache geholt.

01:46:19.427 --> 01:46:22.787
und das Byte, was ich hole, das wird halt

01:46:22.787 --> 01:46:27.087
mit so einer Cache-Line unterschiedlicher Größe in den L2-Cache geholt

01:46:27.087 --> 01:46:31.067
und daraus in den L1-Cache und daraus in die Register und in den Register wird das dann gemacht

01:46:31.067 --> 01:46:35.307
und dann geht das ganze Spiel wieder zurück. Das heißt, wenn ich auf benachbarten

01:46:35.307 --> 01:46:39.087
Speicherzellen operiere, dann muss ich das nur

01:46:39.087 --> 01:46:42.747
einmal diese Seite aus dem Hauptspeicher in den Prozessor reinholen

01:46:42.747 --> 01:46:45.947
und die anderen Zugriffe, die sind dann wesentlich schneller.

01:46:45.947 --> 01:47:07.547
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:07.547 --> 01:47:10.267
und deshalb

01:47:10.267 --> 01:47:11.987
ist die LinkedList

01:47:11.987 --> 01:47:13.807
heutzutage so ein kleines bisschen verpönt,

01:47:13.907 --> 01:47:14.527
habe ich das Gefühl.

01:47:15.427 --> 01:47:17.467
Der benutzt LinkedList, der hat keine Ahnung.

01:47:18.387 --> 01:47:19.987
Weil die halt Cache-Misses

01:47:19.987 --> 01:47:21.967
erzeugen, weil die halt im Speicher

01:47:21.967 --> 01:47:22.728
hin und her springen.

01:47:23.407 --> 01:47:25.607
Die andere Technik, die man machen kann, das heißt

01:47:25.607 --> 01:47:27.167
oft Array oder Vector,

01:47:28.228 --> 01:47:29.527
ist, dass du halt die Elemente alle

01:47:29.527 --> 01:47:31.867
hintereinander schreibst. Das heißt, das erste Element

01:47:31.867 --> 01:47:33.907
steht an Speicheradresse 1 und das zweite

01:47:33.907 --> 01:47:35.587
Element steht an Speicheradresse 2

01:47:35.587 --> 01:47:38.127
und das nächste Element steht ja in Speicherdresse 3

01:47:38.127 --> 01:47:39.827
und halt je nachdem, wie groß die Dinger sind,

01:47:40.047 --> 01:47:41.847
dass du die halt alle aneinander packst.

01:47:42.127 --> 01:47:43.787
Aber was steht denn dann, wenn du Speicherdressen drin,

01:47:43.867 --> 01:47:46.228
steht dann nur der Zeiger auf das richtige Objekt drin?

01:47:46.427 --> 01:47:48.287
Und unterschiedlich, ja, also genau.

01:47:49.047 --> 01:47:49.827
Je nachdem, was du halt hast.

01:47:49.907 --> 01:47:51.967
Sonst hast du ja eine Maximalgröße von Dingen, die da drinstehen können

01:47:51.967 --> 01:47:54.127
und dann verschwendest du uns Speicherplatz, wenn nicht alle gleich groß sind

01:47:54.127 --> 01:47:54.967
von den Dingen, die drinstehen.

01:47:55.127 --> 01:47:56.188
Ja, je nachdem, was du halt hast.

01:47:56.487 --> 01:47:59.887
Also wenn du eine Liste von Integern hast, dann sind die halt alle

01:47:59.887 --> 01:48:01.987
32 Bit groß und dann stehen die halt

01:48:01.987 --> 01:48:03.387
einfach zack, zack, zack nebeneinander.

01:48:03.467 --> 01:48:05.387
Wenn du einen String hast, dann sind die halt alle

01:48:05.587 --> 01:48:07.667
keine Ahnung, auch 32

01:48:07.667 --> 01:48:09.527
Bit groß, weil man es

01:48:09.527 --> 01:48:11.587
zwischen Unicode macht. Wenn du Floats hast,

01:48:11.648 --> 01:48:13.447
hast du halt 32 Bit oder 64 Bit

01:48:13.447 --> 01:48:15.587
oder 128 Bit Floats oder was auch immer du hast.

01:48:17.087 --> 01:48:18.047
Das ist

01:48:18.047 --> 01:48:19.527
sozusagen der Nachteil daran. Du musst

01:48:19.527 --> 01:48:21.648
halt die Größe wissen. Du musst wissen,

01:48:21.707 --> 01:48:23.507
was du da reintust. Du kannst auch,

01:48:24.188 --> 01:48:25.547
wenn du Objekte da reinspeicherst,

01:48:25.648 --> 01:48:27.467
dann landet es üblicherweise ja Pointer sein zu

01:48:27.467 --> 01:48:28.927
Objekten oder halt Verweise.

01:48:29.447 --> 01:48:30.927
In Python zum Beispiel, da

01:48:30.927 --> 01:48:33.267
braucht man gar nicht so richtig drüber sprechen,

01:48:33.267 --> 01:48:35.228
weil das immer alles nur Verweise sind

01:48:35.228 --> 01:48:35.947
auf andere Dinge.

01:48:38.307 --> 01:48:39.267
Aber, ja.

01:48:40.967 --> 01:48:41.707
Der Vorteil

01:48:41.707 --> 01:48:43.407
davon ist halt, wenn du,

01:48:43.507 --> 01:48:44.007
sagen wir mal,

01:48:44.747 --> 01:48:46.987
ein Array hast mit 128

01:48:46.987 --> 01:48:47.847
Integern drin,

01:48:49.167 --> 01:48:50.827
und da das erste Element liest,

01:48:51.047 --> 01:48:53.007
dann musst du das ja aus dem Hauptspeicher in den

01:48:53.007 --> 01:48:55.188
L3 holen, und dann hast du aber das gesamte Array

01:48:55.188 --> 01:48:56.347
schon direkt im L3 drin.

01:48:57.067 --> 01:48:59.207
Das heißt, die Zugriffe, die dann auf das zweite Element

01:48:59.207 --> 01:49:01.087
sind, die kosten vergleichsweise

01:49:01.087 --> 01:49:01.627
gar nichts.

01:49:03.467 --> 01:49:05.167
Und das ist

01:49:05.167 --> 01:49:09.027
natürlich sehr schön, wenn du Operationen machen kannst, wo die Speicherzugriffe

01:49:09.027 --> 01:49:13.167
einfach schon gecached sind, wo du schon die Sachen geholt hast. Und deshalb ist

01:49:13.167 --> 01:49:16.907
das heutzutage so ein bisschen die Technik, die man eher

01:49:16.907 --> 01:49:21.067
einsetzt, dass man halt sagt, wir machen Arrays, die

01:49:21.067 --> 01:49:25.247
zwar an dieser Stelle eben wesentlich schneller sind, aber dafür andere Nachteile haben.

01:49:25.867 --> 01:49:28.228
Zum Beispiel ist es bei Arrays schwieriger, Sachen einzufügen

01:49:28.228 --> 01:49:33.148
und rauszulöschen auch. Das heißt, dieses Q-Beispiel, was der Dominik

01:49:33.148 --> 01:49:35.107
sofort intuitiv gesagt hat. Ja, das ist ja easy,

01:49:35.267 --> 01:49:36.767
kannst du hinten einfügen und vorne rausnehmen.

01:49:37.327 --> 01:49:38.307
Das ist mit einem Array

01:49:38.307 --> 01:49:40.807
nicht so einfach umzusetzen.

01:49:42.107 --> 01:49:43.007
Und das hat sehr

01:49:43.007 --> 01:49:44.807
viele Edge Cases, ja, selbst,

01:49:45.067 --> 01:49:46.427
also wenn man sich das umsetzen möchte,

01:49:46.907 --> 01:49:48.827
kann man sich ja überlegen, ja, wenn ich vorne ein Element

01:49:48.827 --> 01:49:50.728
rausnehme, dann muss ich alle anderen da hinten

01:49:50.728 --> 01:49:52.947
eins nach vorne schieben. Das ist aber

01:49:52.947 --> 01:49:55.188
auch blöd, ja, weil dann musst du jedes Element anfassen

01:49:55.188 --> 01:49:56.867
bloß, weil du eins rausgeholt hast. Und das wird

01:49:56.867 --> 01:49:57.947
langsamer, wenn es mehr sind.

01:49:58.827 --> 01:50:00.747
Python-Listen kann man nicht so gut als

01:50:00.747 --> 01:50:02.347
quasi so, wenn man da

01:50:02.347 --> 01:50:05.087
dauernd Sachen hinten raus und vorne rein tut

01:50:05.087 --> 01:50:06.827
oder so, das geht mit Python-Listen nicht gut,

01:50:06.947 --> 01:50:08.327
genau, ganz genau. Das ist super schlecht.

01:50:09.027 --> 01:50:10.467
Ja, und deswegen sollte man dafür lieber

01:50:10.467 --> 01:50:12.807
aus einem Collection-Stack oder so verwenden,

01:50:12.947 --> 01:50:14.688
also Double-Ended-Queue, das geht deutlich besser.

01:50:14.787 --> 01:50:15.607
Oder Queue, ja.

01:50:17.228 --> 01:50:18.867
Oder da baut man sich einen zyklischen

01:50:18.867 --> 01:50:20.847
Puffer, hast du eine Liste mit 100 Elementen

01:50:20.847 --> 01:50:23.047
und hast einen Array, einen Index

01:50:23.047 --> 01:50:24.807
drin, der das erste und das letzte Element ist,

01:50:24.887 --> 01:50:26.787
aber das ist auch schlecht, ja, hast du auch

01:50:26.787 --> 01:50:27.827
ganz viele Edge-Cases.

01:50:29.087 --> 01:50:30.807
Was ist, wenn du mehr als 100 Elemente

01:50:30.807 --> 01:50:31.527
in deiner Queue hast.

01:50:31.627 --> 01:50:35.027
Was ist, wenn die ausläuft?

01:50:35.567 --> 01:50:36.607
Das musst du dann abfangen.

01:50:37.007 --> 01:50:38.567
Dass du dann lauter...

01:50:38.567 --> 01:50:39.728
Also hast du ganz viele Edge Cases.

01:50:40.387 --> 01:50:43.287
Arrays sind vom Aufbau her

01:50:43.287 --> 01:50:45.927
simpler, aber von der Verwendung her

01:50:45.927 --> 01:50:46.327
irgendwie

01:50:46.327 --> 01:50:49.167
fitziger, weil die halt so eine

01:50:49.167 --> 01:50:50.067
feste Struktur haben.

01:50:51.627 --> 01:50:52.507
Und das ist so ein bisschen

01:50:52.507 --> 01:50:53.867
die Sache.

01:50:54.487 --> 01:50:57.228
Das ist irgendwie so eine Geschwindigkeitsoptimierung.

01:50:58.947 --> 01:50:59.188
Die sind

01:50:59.188 --> 01:51:01.307
in mancherlei Hinsicht schneller

01:51:01.307 --> 01:51:03.287
und dann halt auch gleich richtig viel schneller.

01:51:04.987 --> 01:51:05.627
Aber dafür

01:51:05.627 --> 01:51:07.027
holst du dir ganz viele

01:51:07.027 --> 01:51:08.547
Implementierungsprobleme rein.

01:51:10.967 --> 01:51:13.007
Ich bin eigentlich ein Freund von LinkedLists, weil die

01:51:13.007 --> 01:51:15.327
so schön sind. Und SkipLists, ich meine, da braucht man

01:51:15.327 --> 01:51:17.487
nicht drüber sprechen. Das ist die coolste Sache der Welt.

01:51:18.767 --> 01:51:19.107
Ja, und

01:51:19.107 --> 01:51:19.267
ja.

01:51:20.648 --> 01:51:22.587
Kann man Elemente deaktivieren quasi.

01:51:23.688 --> 01:51:25.327
Nee, die verweisen nicht auf SQL,

01:51:25.327 --> 01:51:25.887
sondern...

01:51:25.887 --> 01:51:55.867
Ja, ich glaube.

01:51:55.887 --> 01:51:58.247
und man muss ein kleines bisschen

01:51:58.247 --> 01:51:59.947
Mehrarbeit machen, aber das ist so der

01:51:59.947 --> 01:52:01.667
Kern der Sache, dass du eben

01:52:01.667 --> 01:52:04.407
zufällige Skips

01:52:04.407 --> 01:52:06.247
machst und das ist das Skip in Skiplist,

01:52:06.827 --> 01:52:07.867
dass du halt sagst, okay,

01:52:08.387 --> 01:52:10.307
ich gehe von Index X auf Index X

01:52:10.307 --> 01:52:12.327
plus eine zufällige Zahl, die sich

01:52:12.327 --> 01:52:13.507
dann zwischendurch auch verändern kann,

01:52:13.627 --> 01:52:16.007
wenn du in der Mitte was einfügst oder

01:52:16.007 --> 01:52:17.907
was rauslöscht oder so

01:52:17.907 --> 01:52:20.207
und das ist vom

01:52:20.207 --> 01:52:21.607
Programmieren her was total simples,

01:52:23.067 --> 01:52:24.148
gibt dir aber eben die

01:52:24.148 --> 01:52:25.867
logarithmische Zugriffszeit.

01:52:25.887 --> 01:52:27.327
amortisiert

01:52:27.327 --> 01:52:30.047
statistisch logarithmische

01:52:30.047 --> 01:52:32.067
Zugriffszeiten. Und deshalb ist das was

01:52:32.067 --> 01:52:34.027
total cooles. Das ist sowas völlig Überraschendes.

01:52:34.627 --> 01:52:35.827
Als ich das zum ersten Mal gesehen habe,

01:52:36.267 --> 01:52:38.127
erst versteht man es nicht.

01:52:38.987 --> 01:52:40.267
Warum macht man sowas?

01:52:40.447 --> 01:52:42.527
Und dann kommt so ein Aha-Moment

01:52:42.527 --> 01:52:44.188
und

01:52:44.188 --> 01:52:46.007
dann versteht man es immer noch nicht, weil das

01:52:46.007 --> 01:52:48.027
viel zu simpel ist. Das ist sowas

01:52:48.027 --> 01:52:49.947
Simples und es gibt einem so Zugriffszeiten wie

01:52:49.947 --> 01:52:52.247
bei einem Baum, wo man vorher drei Monate

01:52:52.247 --> 01:52:54.087
mit so scheiß Balancing

01:52:54.087 --> 01:52:55.607
Red-Black-Trees verbracht hat.

01:52:55.887 --> 01:52:59.047
und hinterher sagen sie einem, alles was

01:52:59.047 --> 01:53:00.867
sie hätten machen müssen, wäre Randomizer

01:53:00.867 --> 01:53:01.627
irgendwie durchgehen.

01:53:04.087 --> 01:53:09.087
Und wenn du eine sortierte Liste hast und dann

01:53:09.087 --> 01:53:11.228
mehrere Skip-Ebenen hast, kannst du das sogar garantieren,

01:53:11.307 --> 01:53:12.728
dass du Logarithmeche zu Christzeiten hast.

01:53:14.427 --> 01:53:16.967
Tja, da gibt es schon coole Sachen.

01:53:19.327 --> 01:53:21.127
Also Moment, doch mal, was kannst du garantieren,

01:53:21.207 --> 01:53:23.207
wenn du mehrere...

01:53:23.207 --> 01:53:25.247
Ja, wenn du eine sortierte

01:53:25.247 --> 01:53:27.127
Liste hast. Ja. Dann kannst du

01:53:27.127 --> 01:53:28.728
so eine Skip-List

01:53:28.728 --> 01:53:30.427
haben, wo du

01:53:30.427 --> 01:53:32.927
auf der untersten Ebene zufällige Skips machst

01:53:32.927 --> 01:53:35.107
und eine Ebene drüber

01:53:35.107 --> 01:53:36.887
machst du zufällige Skips auf diesen

01:53:36.887 --> 01:53:39.107
zufälligen Skips und eine Ebene

01:53:39.107 --> 01:53:40.927
drüber machst du zufällige Skips auf den, bis du

01:53:40.927 --> 01:53:42.987
in der obersten Ebene quasi vom ersten

01:53:42.987 --> 01:53:44.307
bis zum letzten Element skippst.

01:53:45.367 --> 01:53:47.107
Und dann kannst du innerhalb dieser

01:53:47.107 --> 01:53:49.167
Skip-Ebenen, kannst du binäre

01:53:49.167 --> 01:53:49.728
Suche machen.

01:53:52.127 --> 01:53:53.127
In der Linked-List

01:53:53.127 --> 01:53:55.228
binäre Suche

01:53:55.247 --> 01:53:56.887
Das ist so ein bisschen wie so ein Reißverschluss.

01:53:58.567 --> 01:53:59.267
Genau, also

01:53:59.267 --> 01:54:01.148
du kannst entweder sagen, du hast das Element

01:54:01.148 --> 01:54:03.367
gefunden oder du gehst eine Ebene runter und suchst

01:54:03.367 --> 01:54:05.307
genauer. Und das gibt dir

01:54:05.307 --> 01:54:07.487
eben diese logarithmische Zugriffszeit,

01:54:07.648 --> 01:54:08.327
weil du eben

01:54:08.327 --> 01:54:10.787
in einem randomisierten binären Baum

01:54:10.787 --> 01:54:13.107
suchst. Ist das sowas wie ein Random Forest?

01:54:13.107 --> 01:54:13.867
Aber nicht verwalten.

01:54:13.867 --> 01:54:15.587
Da bin ich total auf dem falschen Holzweg.

01:54:17.167 --> 01:54:18.627
Es ist ja kein Baum.

01:54:20.627 --> 01:54:21.648
Es ist so eine

01:54:21.648 --> 01:54:22.987
randomisierte

01:54:22.987 --> 01:54:24.667
Granularität, die du da hast.

01:54:24.667 --> 01:54:25.207
Okay.

01:54:25.867 --> 01:54:27.887
Du hast verschiedene Ebenen, verschiedene Granularität.

01:54:29.007 --> 01:54:30.047
Und du hast

01:54:30.047 --> 01:54:32.467
Zugriffsteilten wie bei einem Baum, musst aber nicht den Baum

01:54:32.467 --> 01:54:34.587
verwalten und das ist super cool.

01:54:36.867 --> 01:54:37.027
Ja.

01:54:39.148 --> 01:54:39.587
Cool.

01:54:39.927 --> 01:54:42.367
Es ist tatsächlich wirklich sehr einfach, sich so eine Liste

01:54:42.367 --> 01:54:44.247
zu schreiben. So eine ganz einfache Linklist

01:54:44.247 --> 01:54:46.228
schreiben ist super easy

01:54:46.228 --> 01:54:47.987
und jeder sollte das mal ausprobieren.

01:54:50.127 --> 01:54:52.347
Und dann auch ein bisschen damit spielen und gucken, wie schnell

01:54:52.347 --> 01:54:54.307
das ist und wie schnell man es machen kann und was man alles

01:54:54.307 --> 01:54:56.387
damit machen kann und ob man eine Queue rauskriegt

01:54:56.387 --> 01:54:58.707
und ob man da sinnvollerweise eine Queue damit rauskriegt.

01:55:00.347 --> 01:55:02.207
Du meinst, da kann man es immer wieder eröffnen.

01:55:03.787 --> 01:55:05.447
Ja, Algorithmen und Datenstrukturen.

01:55:07.487 --> 01:55:09.648
Genau, das ist so ein bisschen der Grund,

01:55:09.807 --> 01:55:12.467
warum das in Informatikvorlesungen halt oft vorkommt,

01:55:13.047 --> 01:55:15.967
weil man da sehr einfach einen Einstieg hat

01:55:15.967 --> 01:55:17.487
und dann aber trotzdem weiter mitkommt.

01:55:19.207 --> 01:55:22.587
Und weil es halt so eine fundamentale Datenstruktur ist,

01:55:22.587 --> 01:55:28.087
muss man auch irgendwie, sollte man schon irgendwie wissen, wie das funktioniert. Das bringt einem ungeheuer viel.

01:55:29.627 --> 01:55:31.887
Ja, und weil man halt direkt auf die Probleme stößt, die halt

01:55:31.887 --> 01:55:35.547
ich glaube, das ist auch der, also hier habe ich mich vorher gefragt, also

01:55:35.547 --> 01:55:39.867
warum wird eigentlich, wenn man mal informatisch ist und auch diese coolen Sachen, wo man so Computerspiele

01:55:39.867 --> 01:55:43.228
macht und irgendwie Grafik und weiß ich nicht, so Zahlen und sich dahinter

01:55:43.228 --> 01:55:47.648
also wenn wir jetzt hier, wir beschäftigen uns vor allen Dingen damit, wie man so Listen

01:55:47.648 --> 01:55:51.688
sortiert und irgendwie Dinge in so Listen wieder sucht und

01:55:51.688 --> 01:55:52.427
findet und so.

01:55:53.228 --> 01:55:55.527
Das macht man ja zu suchen und sortieren die ganze Zeit.

01:55:55.887 --> 01:55:57.327
Der Grund ist halt schon, dass

01:55:57.327 --> 01:55:59.447
irgendjemand hat, vielleicht hat sogar

01:55:59.447 --> 01:56:01.927
Knut geguckt, also worum beschäftigen

01:56:01.927 --> 01:56:03.487
sich Rechner eigentlich so den ganzen Tag?

01:56:03.587 --> 01:56:05.787
Und da war es 70 Prozent waren suchen und sortieren von Dingen.

01:56:06.027 --> 01:56:07.027
War halt das, was Rechner so machen.

01:56:07.947 --> 01:56:10.067
Und ja, das ist heute immer noch so, glaube ich.

01:56:11.067 --> 01:56:12.127
Also Listen sortieren ist so.

01:56:12.228 --> 01:56:13.387
Ich glaube eher, dass das mehr wird.

01:56:13.587 --> 01:56:14.607
Es wird wahrscheinlich sogar mehr.

01:56:15.648 --> 01:56:17.627
Weil man doch mehr Fälle gefunden hat, wo man das

01:56:17.627 --> 01:56:18.627
darauf reduzieren kann.

01:56:18.627 --> 01:56:20.527
Ja, weil man mehr Daten hat.

01:56:20.527 --> 01:56:25.347
Oh, sortieren und suchen wären auch nochmal so tolle Folgen gewohnt

01:56:25.347 --> 01:56:31.107
Mit LinkedList kann man auch sehr schön Sortieralgorithmen

01:56:31.107 --> 01:56:32.728
umsetzen

01:56:32.728 --> 01:56:38.207
und auch das lohnt sich, dass man sich mal selber

01:56:38.207 --> 01:56:42.807
hinsetzt und einfach mal BubbleSort implementiert, das ist ja sehr einfach

01:56:42.807 --> 01:56:46.807
der Algorithmus und dann sieht man auch sofort, dass der

01:56:46.807 --> 01:56:48.827
nur eine Handvoll Operationen benötigt und dass

01:56:48.827 --> 01:56:50.787
der langsam ist und warum der langsam ist.

01:56:51.047 --> 01:56:52.887
Wenn man sich das dann nämlich rausvisualisiert,

01:56:52.987 --> 01:56:55.247
dann sieht man, was da passiert und das ist großartig.

01:56:56.027 --> 01:56:56.867
Oder ein Merge-Sort.

01:56:57.007 --> 01:56:58.847
Ein Merge-Sort ist auch vergleichsweise einfach

01:56:58.847 --> 01:57:00.947
und ist aber eben deutlich schneller

01:57:00.947 --> 01:57:02.247
als Bubble-Sort.

01:57:03.167 --> 01:57:05.228
Ich mag total gerne den LSD-Sort.

01:57:05.967 --> 01:57:06.947
Okay, was war das?

01:57:07.148 --> 01:57:09.047
Du hast nur 10 Buckets und da packst

01:57:09.047 --> 01:57:10.987
du die Sachen einfach dann rückwärts, also von der

01:57:10.987 --> 01:57:12.707
letzten Dezimalstelle immer rein

01:57:12.707 --> 01:57:15.107
und dann packst du einfach die Buckets zusammen und dann ist es fertig.

01:57:16.807 --> 01:57:17.067
Okay.

01:57:18.627 --> 01:57:19.427
Das ist auch sehr geil.

01:57:19.767 --> 01:57:22.507
Das heißt LSD-Sort, weil das geht nur, wenn man genügend Drogen genommen hat.

01:57:22.947 --> 01:57:24.427
Nein, das hat damals auch nicht geschehen.

01:57:25.587 --> 01:57:26.347
Leider natürlich.

01:57:26.807 --> 01:57:27.188
Aber es ist

01:57:27.188 --> 01:57:30.587
super, weil das kannst du auch mit Kindern machen.

01:57:30.887 --> 01:57:32.627
Du kannst einfach denen sagen, hey, pack das mal,

01:57:33.007 --> 01:57:34.947
also Sortierspiele, pack das mal

01:57:34.947 --> 01:57:35.847
nach der Reihenfolge da rein.

01:57:36.327 --> 01:57:37.867
Dann hast du eine sortierte Liste. Das ist sehr cool.

01:57:40.627 --> 01:57:40.747
Ja.

01:57:41.207 --> 01:57:42.327
Würde ich sagen, das ist einer der coolsten.

01:57:42.327 --> 01:57:44.507
Und das kann man sehr gut ausprobieren, wenn man sich selber gerade

01:57:44.507 --> 01:57:45.587
seine Linklist geschrieben hat.

01:57:45.587 --> 01:57:47.247
deshalb. Ich plädiere dafür, dass das

01:57:47.247 --> 01:57:47.747
jeder mal tut.

01:57:49.987 --> 01:57:51.407
Radix, kommt das noch?

01:57:51.607 --> 01:57:52.307
Radixort, ja.

01:57:53.487 --> 01:57:53.967
Radixort.

01:57:55.967 --> 01:57:57.487
Es gibt

01:57:57.487 --> 01:57:59.327
tatsächlich auch Verfechter heutzutage

01:57:59.327 --> 01:58:00.967
und man muss halt auch dazu sagen,

01:58:01.228 --> 01:58:03.447
je nach Anwendungszweck sind Arrays besser

01:58:03.447 --> 01:58:04.487
oder Linklists.

01:58:04.667 --> 01:58:05.387
Warum ist alles dies?

01:58:05.507 --> 01:58:08.127
Ach so, okay.

01:58:08.127 --> 01:58:08.507
Ja, gut.

01:58:12.627 --> 01:58:13.107
Sorry.

01:58:13.827 --> 01:58:14.527
Ja, auch.

01:58:15.587 --> 01:58:33.747
Es gibt es natürlich auch heute noch. Ich habe kürzlich einen Artikel gelesen von dem Menschen, der Redis entwickelt hat, der gesagt hat, wir benutzen es an ganz vielen Stellen, weil das ist halt das, was man braucht. Und auch wenn es so ein kleines bisschen verpönt ist, wenn man so ein bisschen belächelt wird, das ist halt das, was richtig ist.

01:58:33.747 --> 01:58:36.847
und

01:58:36.847 --> 01:58:39.367
er verweist dann auch auf Stellen im

01:58:39.367 --> 01:58:41.547
Linus-Kernel, wo auch Linked-Lists verwendet werden

01:58:41.547 --> 01:58:43.587
und sieht es als

01:58:43.587 --> 01:58:45.228
Indiz, dass es halt das Richtige ist.

01:58:46.087 --> 01:58:47.847
Weil das halt das Richtige ist.

01:58:48.047 --> 01:58:49.807
Weil es einen Use-Case erfüllt,

01:58:50.127 --> 01:58:51.847
der sinnvoll ist.

01:58:53.807 --> 01:58:54.007
Ja.

01:58:55.847 --> 01:58:56.327
Durchaus.

01:58:56.327 --> 01:58:56.688
Also ich meine,

01:58:58.648 --> 01:59:00.127
das ist auch noch so eine interessante Geschichte.

01:59:00.267 --> 01:59:02.547
Also auch eine Frage, Linked-List oder Array.

01:59:03.747 --> 01:59:07.007
wie indiziert man eigentlich, wo fängt man an, 0 oder 1?

01:59:08.427 --> 01:59:10.347
Und Python macht das richtig, fängt an 0 an.

01:59:11.487 --> 01:59:12.207
Das ist halt korrekt.

01:59:12.648 --> 01:59:14.127
Die einzig wahre Antwort.

01:59:14.427 --> 01:59:14.648
Genau.

01:59:15.847 --> 01:59:16.747
Warum macht man das nochmal?

01:59:16.867 --> 01:59:18.787
Ich hatte jemanden, der meinte, das ist total furchtbar.

01:59:18.867 --> 01:59:20.827
Die ganzen Entwickler machen alle immer falsch.

01:59:20.987 --> 01:59:22.148
Die fangen immer bei 0 an zu zählen.

01:59:22.247 --> 01:59:24.667
Ja, also weil du dann zum Beispiel so nette Sachen machen kannst,

01:59:24.747 --> 01:59:26.707
wie wenn du also eine Liste in zwei Teile teilen willst

01:59:26.707 --> 01:59:29.247
und willst sie an der Position 2 teilen,

01:59:29.247 --> 01:59:32.327
dann sagst du einfach Liste, eckige Klappe auf,

01:59:33.747 --> 01:59:39.847
Doppelpunkt 2, Klammer zu, oder Liste, Ecke, Klammer auf, 2, Doppelpunkt, Ecke, Klammer zu

01:59:39.847 --> 01:59:41.747
und hast dir dann genau an der Position 2 geteilt.

01:59:42.887 --> 01:59:46.167
Das ist zum Beispiel ein schöner Effekt davon.

01:59:47.307 --> 01:59:51.787
Da gibt es tatsächlich eine alte E-Mail von Guido von Rossum, wo er genau das gefragt wurde,

01:59:51.887 --> 01:59:55.007
warum er das so gemacht hat und genau diese Antwort kommt, was er sagt.

01:59:55.107 --> 01:59:59.607
Wenn du halt diesen Index wiederverwendest, dann sind die genau lückenlos zusammen.

01:59:59.607 --> 02:00:01.547
Da muss man schauen, ob ich diesen Link wieder finde.

02:00:01.787 --> 02:00:02.747
Das wäre schön, weil das

02:00:02.747 --> 02:00:04.587
mein nettes Argument ist.

02:00:04.587 --> 02:00:06.107
Das wäre schön, ja. Das ist auch sehr angenehm zu lesen.

02:00:06.207 --> 02:00:08.147
Und er sagt auch die anderen Optionen, die du machen kannst.

02:00:08.427 --> 02:00:10.807
Und die haben alle auch ihre...

02:00:10.807 --> 02:00:12.647
Da gibt es ein super Paper

02:00:12.647 --> 02:00:14.867
von Deikstra.

02:00:16.627 --> 02:00:17.467
Das ist im Original.

02:00:17.747 --> 02:00:18.667
Hat er das handschriftlich

02:00:18.667 --> 02:00:20.807
aufge... Er hat ja so... Er hat ja irgendwie eine Diskussion

02:00:20.807 --> 02:00:22.267
mitbekommen, wo Leute gesagt haben,

02:00:22.447 --> 02:00:24.187
die einen sagten, ah, mit 0 anfangen,

02:00:24.287 --> 02:00:26.447
die anderen mit 1. Und dann der, der

02:00:26.447 --> 02:00:28.467
1 gesagt hat, der sagt dann irgendwann, ah,

02:00:28.467 --> 02:00:36.607
hat ihnen vorgeworfen, ihr seid irgendwie pedantisch, dass ihr da unbedingt auf dieser Null besteht, das ist doch eigentlich ganz egal, wir können ja irgendwas anfangen zu zählen, das ist wohl wurscht.

02:00:36.827 --> 02:00:38.947
Das erste Element ist das erste Element, das ist das Nullte.

02:00:39.947 --> 02:00:47.367
Und dann meinte er so, ja, also ich hab mir das mal überlegt und dann hab ich das mal aufgeschrieben, wie das richtig geht und nee, der mit der Eins liegt falsch.

02:00:47.367 --> 02:00:52.967
Und zwar weil, das ist dann so auf Karopapier zwei Seiten, die er dann handschriftlich vollgeschrieben hat.

02:00:52.967 --> 02:00:54.987
als ich dann zum Beispiel eben, wie man

02:00:54.987 --> 02:00:57.247
sagen kann,

02:00:57.367 --> 02:00:58.867
wie man jetzt, ich glaube, da geht es um,

02:00:59.167 --> 02:01:00.427
er sagt 2, also

02:01:00.427 --> 02:01:02.847
die Folge hat 2,3

02:01:02.847 --> 02:01:05.027
Punkt, Punkt, Punkt, 12 oder so.

02:01:05.607 --> 02:01:06.827
Wie kann ich die jetzt logisch

02:01:06.827 --> 02:01:08.987
hinschreiben? Also überhaupt, ich weiß keine Ahnung,

02:01:09.067 --> 02:01:10.407
wie da drauf gekommen ist, das so zu machen, aber

02:01:10.407 --> 02:01:12.967
und dann hat er alle Möglichkeiten, wie man das hinschreiben

02:01:12.967 --> 02:01:15.027
kann, mit größer, kleiner und so, aufgeschrieben

02:01:15.027 --> 02:01:16.627
und hat gesagt, und ist die dann alle durchgegangen und meinte so,

02:01:16.947 --> 02:01:18.307
also, man könnte jetzt sagen, das wäre gut.

02:01:18.867 --> 02:01:20.687
Das hat folgende Vorteile, folgende Nachteile.

02:01:20.687 --> 02:01:21.867
Man könnte sagen, das macht man so.

02:01:21.867 --> 02:01:51.847
und Jochen unterhalten sich über die Programmiersprache Python

02:01:51.867 --> 02:01:54.967
und er sagt, ja stimmt, musst du mit 0 indizieren, das geht nicht anders.

02:01:55.627 --> 02:02:01.747
Und ja, am Schluss endet das, diese zwei Seiten, die er geschrieben hat,

02:02:01.767 --> 02:02:05.247
endet auch mit einem sehr schönen Zitat, wo er dann schreibt, ja, ich weiß gar nicht mehr,

02:02:05.347 --> 02:02:07.047
von wem das ist, er zitiert ja irgendjemand anders.

02:02:07.467 --> 02:02:10.907
Er meinte so, ja, also warum regen sich die Leute an so einer Stelle dann immer darüber auf

02:02:10.907 --> 02:02:12.667
und werfen dann vor, dass da Leute pedantisch sind?

02:02:12.987 --> 02:02:15.707
Das ist deswegen, weil so soziale Exklusionen muss man halt,

02:02:15.847 --> 02:02:18.227
wenn es um so religiöse Überzeugungen geht, immer dann besonders machen.

02:02:18.227 --> 02:02:20.147
nicht deswegen, weil man

02:02:20.147 --> 02:02:22.567
Angst davor hat, dass andere Leute

02:02:22.567 --> 02:02:24.387
vielleicht was Falsches denken könnten,

02:02:24.487 --> 02:02:26.167
sondern der eigentliche Grund ist

02:02:26.167 --> 02:02:28.347
die Möglichkeit, dass sie Recht haben könnten.

02:02:28.487 --> 02:02:29.967
Deswegen muss man da besonders draufhauen.

02:02:30.827 --> 02:02:32.427
Und das muss man ausschließen.

02:02:32.787 --> 02:02:33.547
Das muss man ausschließen.

02:02:34.387 --> 02:02:34.687
Ja, genau.

02:02:35.867 --> 02:02:38.447
Super. Also da kann man das mal nachlesen.

02:02:38.627 --> 02:02:40.027
Das müsste man auch unbedingt nicht schulden.

02:02:40.167 --> 02:02:41.227
Ja, genau.

02:02:42.527 --> 02:02:44.267
Was ich auch manchmal gerne mache,

02:02:44.467 --> 02:02:46.047
ist, man kann, wenn man jetzt

02:02:46.047 --> 02:02:47.947
in einer Liste so bestimmte Teile

02:02:47.947 --> 02:02:50.267
markieren will, da kann man natürlich irgendwie

02:02:50.267 --> 02:02:51.787
Liste, Ecke, Klammer auf,

02:02:52.027 --> 02:02:54.167
Anfang, Doppelpunkt, Ende hinschreiben.

02:02:54.887 --> 02:02:56.327
Man kann aber auch, es gibt irgendwie

02:02:56.327 --> 02:02:58.167
ein Bild in Slice, wo man sagen kann,

02:02:58.227 --> 02:02:59.447
Slice, irgendwie

02:02:59.447 --> 02:03:01.547
Anfang, Ende,

02:03:01.767 --> 02:03:04.167
und dann kann man den Namen geben. Und dann kann man

02:03:04.167 --> 02:03:06.247
das Ding direkt reintun. Das heißt, man kann sagen,

02:03:06.507 --> 02:03:08.067
irgendwie, das ist jetzt irgendwie die,

02:03:08.307 --> 02:03:09.947
weiß ich nicht, der Name oder sowas.

02:03:10.167 --> 02:03:12.387
Und dann gibt dann, sagt man, großgeschrieben Name,

02:03:12.487 --> 02:03:14.547
gleich Slice, 5,12,

02:03:14.947 --> 02:03:16.107
Klammer zu. Und dann kann man

02:03:16.107 --> 02:03:18.067
hinterher sagen, Liste, Ecke, Klammer, Aufnahme,

02:03:18.247 --> 02:03:20.107
Ecke, Klammer, Zu. Das ist manchmal

02:03:20.107 --> 02:03:20.547
ganz nett.

02:03:23.307 --> 02:03:23.667
Ja,

02:03:24.027 --> 02:03:25.927
genau, es gibt natürlich noch diverse Geschichten

02:03:25.927 --> 02:03:27.887
in Python, auch die eher so mit Arrays zu tun haben.

02:03:28.007 --> 02:03:29.567
Es gibt das Array-Array-Modul,

02:03:30.107 --> 02:03:30.987
also das Array-Modul

02:03:30.987 --> 02:03:33.987
in der Standardbibliothek, immer sehr schön. Da kann man

02:03:33.987 --> 02:03:35.727
dann tatsächlich solche Sachen, die alle den gleichen Typ haben,

02:03:35.807 --> 02:03:37.767
reinschreiben. Es gibt auch die Verallgemeinerung

02:03:37.767 --> 02:03:39.867
davon. Sind da schon was, was die

02:03:39.867 --> 02:03:41.347
Indizes dann direkt mit drin oder sowas?

02:03:42.587 --> 02:03:42.947
Indizes,

02:03:43.447 --> 02:03:45.067
dass man da irgendwie dann Dinge

02:03:45.067 --> 02:03:45.867
suchen kann.

02:03:46.567 --> 02:03:47.027
Ja, zum Beispiel.

02:03:47.587 --> 02:03:50.607
Das sind nur dann einfache Arrays.

02:03:50.767 --> 02:03:53.007
Für sowas hat es ja dann Pandas oder NumPy oder so.

02:03:53.307 --> 02:03:54.507
Okay, da muss ich ja direkt immer

02:03:54.507 --> 02:03:55.827
enumeraten oder so.

02:03:56.527 --> 02:03:58.867
Aber es gibt Memory Views. Memory Views

02:03:58.867 --> 02:04:00.867
sind dafür da, dass man halt so Daten, die halt

02:04:00.867 --> 02:04:02.767
irgendwie im Hauptspeicher zusammenliegen,

02:04:02.847 --> 02:04:04.947
irgendwie durch die Gegend

02:04:04.947 --> 02:04:06.487
schieben kann, ohne dass man jetzt exakt

02:04:06.487 --> 02:04:08.367
dran schreibt, was das jetzt ist, sondern

02:04:08.367 --> 02:04:10.367
man kann die Daten einfach in der Gegend rumschieben

02:04:10.367 --> 02:04:12.427
und dann ist es halt ein Memory View und dann kann man

02:04:12.427 --> 02:04:14.127
aus dem Memory View wieder irgendwas anderes machen.

02:04:14.127 --> 02:04:16.187
NumPy-Array oder halt

02:04:16.187 --> 02:04:18.127
ein Array oder sonst irgendwas,

02:04:18.307 --> 02:04:20.107
in dem man dann halt dazu sagt, so, du bist jetzt,

02:04:20.227 --> 02:04:21.807
du hast jetzt irgendwie folgende Struktur

02:04:21.807 --> 02:04:23.527
und dann kann man halt auch so,

02:04:24.067 --> 02:04:25.867
also kann halt das auch

02:04:25.867 --> 02:04:27.507
multidimensional werden oder so.

02:04:28.527 --> 02:04:30.147
Aber wichtig ist oft, dass man

02:04:30.147 --> 02:04:32.107
das Ding als gesamten Block im

02:04:32.107 --> 02:04:33.887
Hauptsprecher irgendwie verschieben, rumschieben kann.

02:04:34.647 --> 02:04:36.107
Und dafür sind Memory Views ganz gut.

02:04:36.807 --> 02:04:37.647
Das ist auch ganz nett.

02:04:38.467 --> 02:04:40.127
Das muss natürlich in den Hauptsprecher

02:04:40.127 --> 02:04:42.147
passen. Ja, wenn es

02:04:42.147 --> 02:04:43.967
nicht reinpasst, dann gut, dann muss man was

02:04:43.967 --> 02:04:44.207
aus.

02:04:45.927 --> 02:04:46.727
Naiv bist du so, ja.

02:04:47.527 --> 02:04:50.087
Genau, was auch nett ist, ist, wenn man

02:04:50.087 --> 02:04:51.667
die NumPy

02:04:51.667 --> 02:04:53.807
macht da auch noch

02:04:53.807 --> 02:04:55.887
viele magische Geschichten mit, man kann jetzt auch mehrere

02:04:55.887 --> 02:04:58.307
Sachen, man kann nicht, na, wenn du jetzt mehrdimensionale

02:04:58.307 --> 02:04:59.907
Arrays hast, das gibt's, sowas gibt's nicht in der

02:04:59.907 --> 02:05:01.927
Standardbibliothek, aber es

02:05:01.927 --> 02:05:04.107
gibt halt die Möglichkeit,

02:05:04.107 --> 02:05:06.127
das zu benutzen, also das sieht Python

02:05:06.127 --> 02:05:07.647
schon vor, auch wenn es jetzt

02:05:07.647 --> 02:05:10.127
keine Objekte in der Standardbibliothek implementiert,

02:05:10.187 --> 02:05:12.247
dieses Interface, aber dass du halt

02:05:12.247 --> 02:05:23.639
sagst Index Doppelpunkt irgendwas Komma und dann die n Dimension Das macht der Name halt kann man auch verwenden und

02:05:23.639 --> 02:05:26.299
ein Ding, das man häufig sieht, was

02:05:26.299 --> 02:05:28.139
komisch aussieht, man kann auch statt,

02:05:28.639 --> 02:05:29.859
also wenn man jetzt sowas schreiben würde wie

02:05:29.859 --> 02:05:32.319
x, Ecke, Klammer auf i,

02:05:32.479 --> 02:05:34.399
Komma und dann Doppelpunkt, Komma, Doppelpunkt, Komma,

02:05:34.419 --> 02:05:36.319
Doppelpunkt irgendwie, um halt

02:05:36.319 --> 02:05:38.799
nur eine bestimmte

02:05:38.799 --> 02:05:40.899
Dimension

02:05:40.899 --> 02:05:42.619
rauszuziehen und

02:05:42.619 --> 02:05:44.059
alle anderen Sachen

02:05:44.059 --> 02:05:46.959
beliebig zu lassen, dann kann man dafür auch

02:05:46.959 --> 02:05:48.099
Ellipsis verwenden und einfach

02:05:48.099 --> 02:05:50.859
Klammer auf I, Punkt, Punkt, Punkt schreiben.

02:05:51.379 --> 02:05:52.079
Das sieht man häufig.

02:05:52.739 --> 02:05:54.159
Das hat mich am Anfang gut erhört.

02:05:55.679 --> 02:05:56.779
Hä, was ist das denn?

02:05:57.379 --> 02:05:57.479
Ja.

02:05:58.419 --> 02:06:00.519
Da kann man sich auch noch ein bisschen was sparen.

02:06:01.239 --> 02:06:02.739
Ja. Was gibt es sonst

02:06:02.739 --> 02:06:05.079
noch Nennenswertes über Listen zu sagen?

02:06:05.079 --> 02:06:05.459
Hm.

02:06:06.779 --> 02:06:08.999
Du musst einfach noch ganz kurz über Ellipsis was sagen,

02:06:09.079 --> 02:06:10.239
weil vielleicht ist das immer noch nicht ganz so.

02:06:10.239 --> 02:06:13.939
Ja, das ist sowieso so ein interessantes Spezialding.

02:06:14.619 --> 02:06:15.839
Ich sehe das relativ häufig.

02:06:15.959 --> 02:06:18.179
Ich benutze das auch mal, wenn ich irgendwas fertig machen möchte.

02:06:18.659 --> 02:06:20.439
Einfach so als Platzhalter in meinem Kopf.

02:06:20.719 --> 02:06:22.339
Aber es ist nicht so ganz richtig verwendet.

02:06:22.659 --> 02:06:23.719
Man kann einfach drei Punkte machen.

02:06:24.659 --> 02:06:26.459
Genau, man kann es auch ausschreiben.

02:06:26.859 --> 02:06:28.499
Das funktioniert erstmal wie ein Pass, oder?

02:06:28.959 --> 02:06:30.939
Wenn du einfach nur drei Punkte schreibst, ist es wie ein Pass.

02:06:31.279 --> 02:06:34.159
Genau, aber es verhält sich in manchen anderen Kontexten halt manchmal so ein bisschen anders.

02:06:35.339 --> 02:06:38.539
Man kann es auch, also in Typ-Annotationen wird es häufig verwendet für,

02:06:38.539 --> 02:06:47.039
oder da steht halt irgendwas, keine Ahnung, oder halt eben in den Indexgeschichten.

02:06:49.199 --> 02:06:53.779
Man kann auch Ellipsis einfach tatsächlich ausschreiben und wenn man jetzt sagt Punkt, Punkt, Punkt ist Ellipsis,

02:06:53.979 --> 02:06:56.319
dann sagt Python halt true, das ist halt das gleiche Objekt.

02:06:57.819 --> 02:07:00.419
Ja, genau.

02:07:01.119 --> 02:07:04.999
Ja, aber es ist halt irgendwie komisch, es sieht anders aus als andere Sachen und man weiß oft nicht so genau, was es denn sein soll.

02:07:05.679 --> 02:07:06.079
Ja.

02:07:08.539 --> 02:07:38.519
Ja, ja, ja, ja.

02:07:38.539 --> 02:07:40.599
kann und wenn man halt

02:07:40.599 --> 02:07:42.459
aus der Data Science Welt kommt, dann ist man plötzlich in einer

02:07:42.459 --> 02:07:42.859
anderen Welt.

02:07:43.979 --> 02:07:45.599
Kriegen Leute plötzlich Probleme.

02:07:47.939 --> 02:07:48.859
Ja, ja, ja.

02:07:51.519 --> 02:07:51.959
Ja.

02:07:54.739 --> 02:07:56.539
Aber ansonsten...

02:07:57.399 --> 02:07:58.559
Ja, mir fällt

02:07:58.559 --> 02:07:59.759
jetzt auch ehrlich gesagt nicht mehr viel ein.

02:08:00.579 --> 02:08:01.919
Wenn ich mal noch eine gute Idee hatte.

02:08:03.999 --> 02:08:04.739
Listen, Listen.

02:08:05.279 --> 02:08:05.639
Noch was?

02:08:05.639 --> 02:08:05.879
Listen.

02:08:07.359 --> 02:08:08.379
Auf der Centraliste.

02:08:08.539 --> 02:08:09.339
nicht mehr genug drauf?

02:08:10.379 --> 02:08:11.199
Nö, mehr habe ich hier nicht.

02:08:12.659 --> 02:08:14.539
Ja, aber ich würde sagen, das ging doch jetzt

02:08:14.539 --> 02:08:16.679
einigermaßen flott.

02:08:17.259 --> 02:08:18.399
Das ging erstaunlich flott jetzt.

02:08:18.559 --> 02:08:18.699
Ja.

02:08:21.979 --> 02:08:22.719
Wir warten jetzt

02:08:22.719 --> 02:08:24.419
auf die Rückfragen und beantworten

02:08:24.419 --> 02:08:26.659
uns. Genau, wir beantworten uns, wo wir zu listen, alle Rückfragen

02:08:26.659 --> 02:08:28.459
zu listen. Ja, also ihr wisst ja immer,

02:08:28.539 --> 02:08:30.539
wie Feedback wie immer, hallo at pythonpodcast.de

02:08:30.539 --> 02:08:31.519
Ja.

02:08:32.059 --> 02:08:34.559
Dürftet gerne schreiben, wenn ihr irgendwie Feedback-Anregungen,

02:08:34.919 --> 02:08:35.339
Kritik,

02:08:36.419 --> 02:08:37.959
Beleidigungen zuwerfen wollt.

02:08:37.959 --> 02:08:38.919
hatten wir auch schon.

02:08:40.279 --> 02:08:41.139
Ihr Selten.

02:08:41.399 --> 02:08:43.759
Ganz viel tolle Post, vielen Dank dafür immer.

02:08:44.179 --> 02:08:45.399
Das mögen wir sehr gerne, aber

02:08:45.399 --> 02:08:46.419
manchmal auch nicht.

02:08:47.839 --> 02:08:49.859
Es gibt ein sehr schönes

02:08:49.859 --> 02:08:51.079
Buch von John Scalzi

02:08:51.079 --> 02:08:53.819
mit dem Titel Your Hate Mail Will Be

02:08:53.819 --> 02:08:55.819
Graded, wo er

02:08:55.819 --> 02:08:57.899
einfach Briefe, die er bekommen hat,

02:08:58.179 --> 02:08:59.639
veröffentlicht und kommentiert.

02:09:01.899 --> 02:09:03.699
Das ist auch eine sehr interessante Art, damit umzugehen.

02:09:04.839 --> 02:09:05.619
Wenn man das

02:09:05.619 --> 02:09:07.859
öffentlich sagt, dass man das tut, dann kriegt man auch weniger.

02:09:07.959 --> 02:09:10.259
Ich mache Profit aus den Sachen, die ihr mir schickt.

02:09:10.939 --> 02:09:12.339
Ich finde es fair.

02:09:13.719 --> 02:09:15.879
Wir haben noch unseren Pick der Woche, des Monats, der Episode.

02:09:16.319 --> 02:09:17.139
Okay, ja.

02:09:17.239 --> 02:09:17.839
Ja, ich habe einen.

02:09:17.999 --> 02:09:18.459
Ah, du hast einen.

02:09:18.899 --> 02:09:20.899
Ich habe mir extra einen ausgedacht.

02:09:21.059 --> 02:09:22.199
Das ist eine Python-Bibliothek.

02:09:22.599 --> 02:09:23.699
Open AI Whisper.

02:09:24.179 --> 02:09:25.119
Ah, okay.

02:09:25.279 --> 02:09:27.119
Vorsicht, nicht Pip-Install Whisper.

02:09:27.639 --> 02:09:31.099
Das ist etwas anderes, sondern man muss das aus dem GitHub-Repo installieren.

02:09:31.819 --> 02:09:35.779
Ist ein trainiertes Modell zur Spracherkennung.

02:09:35.779 --> 02:09:39.779
Das heißt, man gibt mal ein WAV-File oder ein MP3 oder sonst irgendwas und der

02:09:39.779 --> 02:09:43.459
gibt einem den Text, der da gesagt wurde, zurück.

02:09:43.899 --> 02:09:47.679
Und das funktioniert erstaunlich gut. Und das funktioniert auch erstaunlich einfach, weil

02:09:47.679 --> 02:09:51.679
man hat ja oft so ein bisschen, also ich habe oft so ein bisschen Berührungsangst,

02:09:51.739 --> 02:09:56.119
wenn dann irgendwo steht, ja, hier ist ein Modell veröffentlicht worden. Es ist tatsächlich einfach nur

02:09:56.119 --> 02:09:58.459
pip install von GitHub.

02:09:58.459 --> 02:10:00.499
In den Modellen gibt es sowieso so coole Sachen.

02:10:00.499 --> 02:10:02.659
und dann

02:10:02.659 --> 02:10:03.819
drei Zeilen Code und dann

02:10:03.819 --> 02:10:05.919
tatsächlich Spracherkennung.

02:10:06.639 --> 02:10:06.899
Und das

02:10:06.899 --> 02:10:10.339
hat, also ich habe es ausprobiert und es funktioniert

02:10:10.339 --> 02:10:11.939
auch nicht. Das funktioniert auch mit Deutsch

02:10:11.939 --> 02:10:14.019
irgendwie halbwegs? Ja,

02:10:14.139 --> 02:10:16.099
funktioniert auch mit Deutsch. Es gibt verschiedene Modelle,

02:10:16.719 --> 02:10:18.319
die für die verschiedenen Sprachen

02:10:18.319 --> 02:10:20.379
eingestellt sind und das hat tatsächlich

02:10:20.379 --> 02:10:21.759
mit Deutsch so gut funktioniert.

02:10:22.619 --> 02:10:23.499
Also ich habe Lorem Ipsum

02:10:23.499 --> 02:10:26.019
reingeschrieben, reingesagt und

02:10:26.019 --> 02:10:28.119
hat dann deutsche Wörter daraus

02:10:28.119 --> 02:10:29.779
ausgeführt.

02:10:30.499 --> 02:10:42.812
Ja Ja Also kennt ihr so ein paar Sachen Es gibt ja diese ganzen verschiedenen Tools Es gibt ja irgendwie so ein paar ich nenne es jetzt mal High Radio zum Beispiel oder so wo man einfach so eine App deployen kann

02:10:42.892 --> 02:10:44.132
die direkt mit so einem Web-Interface läuft,

02:10:44.252 --> 02:10:45.972
wo man dann so ein Modell hat,

02:10:46.032 --> 02:10:47.172
was man dann direkt benutzen kann,

02:10:47.312 --> 02:10:49.932
irgendwie mit so einem Easy-Web-Interface

02:10:49.932 --> 02:10:52.092
und sowas. Das ist halt total nett zum Demoen

02:10:52.092 --> 02:10:54.252
oder Pocken oder MVPen oder sowas.

02:10:55.632 --> 02:10:55.912
Ja.

02:10:56.052 --> 02:10:57.992
Vielleicht kommt ihr zum Streamlit, falls ihr das kennt.

02:10:59.192 --> 02:11:00.112
Das macht auch so

02:11:00.112 --> 02:11:02.332
Web Apps und für so Data Science

02:11:02.332 --> 02:11:04.312
Krams hast du dann direkt irgendwie

02:11:04.312 --> 02:11:05.912
Überblick

02:11:05.912 --> 02:11:08.052
über Analytics,

02:11:08.332 --> 02:11:10.332
Data Exploration und dann kannst du

02:11:10.332 --> 02:11:12.252
direkt das Modell speichern. Da kommen jetzt schon wieder meine

02:11:12.252 --> 02:11:14.312
Berührungsängste, die ich gerade gesagt habe, weil es so

02:11:14.312 --> 02:11:15.952
kompliziert ist, da den Einstieg zu finden.

02:11:16.952 --> 02:11:18.252
Ja, da müssen wir vielleicht mal eine eigene

02:11:18.252 --> 02:11:20.332
Folge zu machen. Das wäre nicht mein Pick, aber das hat

02:11:20.332 --> 02:11:22.192
mich gerade sehr daran erinnert, dass du eine so eine schöne, kleine,

02:11:22.392 --> 02:11:24.352
schnelle Benutzung von so einem

02:11:24.352 --> 02:11:26.112
Modell hast. Zum Beispiel Gradio nutzt jetzt

02:11:26.112 --> 02:11:27.232
komplett Hugging Face zu.

02:11:27.232 --> 02:11:29.212
hast du Zugriff über

02:11:29.212 --> 02:11:31.512
2-3 Python-Code auf 10.000 Modelle

02:11:31.512 --> 02:11:32.392
oder so vortrainierte

02:11:32.392 --> 02:11:34.732
und die du einfach direkt benutzt hast, das ist sehr geil

02:11:34.732 --> 02:11:36.572
Ja, ist auf jeden Fall

02:11:36.572 --> 02:11:39.792
viele Leute packen das

02:11:39.792 --> 02:11:41.352
auch auf ihre GitHub-Repos

02:11:41.352 --> 02:11:41.932
und so

02:11:41.932 --> 02:11:42.232
ja

02:11:42.232 --> 02:11:46.952
was auch ganz interessant ist

02:11:46.952 --> 02:11:49.132
jetzt habe ich das wieder ein bisschen vergessen

02:11:49.132 --> 02:11:50.172
leider

02:11:50.172 --> 02:11:52.692
ich habe mich mit diesem Audio

02:11:52.692 --> 02:11:54.832
ich habe mich ja schon ein bisschen damit beschäftigt

02:11:54.832 --> 02:11:57.772
mit dieser Automatic Speech Recognition

02:11:57.772 --> 02:11:58.292
und

02:11:58.292 --> 02:12:01.112
früher

02:12:01.112 --> 02:12:03.452
damals

02:12:03.452 --> 02:12:05.552
ganz früher, so

02:12:05.552 --> 02:12:06.672
2015, 16,

02:12:07.012 --> 02:12:09.332
als die Deep Speech

02:12:09.332 --> 02:12:10.492
So lange her, ey!

02:12:11.152 --> 02:12:13.072
Es gab so einen riesen Fortschritt,

02:12:13.372 --> 02:12:15.232
niemand hat das richtig hingekriegt,

02:12:15.232 --> 02:12:17.092
weil irgendwie hat das nicht funktioniert

02:12:17.092 --> 02:12:19.432
und die ersten

02:12:19.432 --> 02:12:20.872
Modelle, die so richtig gut funktioniert haben,

02:12:20.992 --> 02:12:22.412
auch Deep Learning angewendet auf

02:12:22.412 --> 02:12:27.672
Speech Recognition waren halt Deep Speech 1 und 2 für Englisch und Chinesisch.

02:12:28.752 --> 02:12:32.532
Und genau, dann gab es immer da so Verbesserungen und so, aber das Problem immer für Deutschland,

02:12:32.672 --> 02:12:36.732
dass es nie funktioniert, weil, beziehungsweise es gibt ein paar Firmen, die konnten das gut machen,

02:12:37.112 --> 02:12:42.392
Microsoft, Google, Apple, Amazon, weil sie halt die Trainingsleiten dafür haben.

02:12:42.572 --> 02:12:45.832
Die einen dadurch, dass sie halt Telefone verkaufen, wo die Leute reinquatschen,

02:12:46.292 --> 02:12:50.732
und die anderen dadurch, dass sie halt irgendwie den Leuten so Lautsprecher in die Wohnung stellen

02:12:50.732 --> 02:12:51.452
oder weiß ich nicht.

02:12:52.372 --> 02:12:54.852
Und ja, die konnten

02:12:54.852 --> 02:12:56.772
das halt machen, aber alle anderen eigentlich nicht,

02:12:56.832 --> 02:12:58.012
weil die Trainingsdaten gab es halt nicht.

02:12:58.952 --> 02:12:59.192
Und

02:12:59.192 --> 02:13:02.712
dann gibt es dieses tolle Common Voice Projekt

02:13:02.712 --> 02:13:03.932
von Mozilla, wo

02:13:03.932 --> 02:13:06.572
dann halt sozusagen

02:13:06.572 --> 02:13:08.572
so Datenspenden

02:13:08.572 --> 02:13:10.512
gesammelt wurden, dass man konnte man halt irgendwie

02:13:10.512 --> 02:13:12.552
ein paar Sätze sagen, die einem vorgegeben wurden

02:13:12.552 --> 02:13:15.052
und dann wurden das halt als

02:13:15.052 --> 02:13:16.152
Trainingsdaten verwendet für

02:13:16.152 --> 02:13:18.052
dieses Common Voice,

02:13:18.752 --> 02:13:20.632
für diesen Trainingsdaten-Korpus und die haben auch selber

02:13:20.632 --> 02:13:23.112
ein Modell trainiert, das halt basierte, glaube ich, auf Deep Speech

02:13:23.112 --> 02:13:25.492
und das dann halt

02:13:25.492 --> 02:13:26.992
auf so eine Word Error Rate gekommen ist,

02:13:27.012 --> 02:13:29.272
die halt relativ gut ist, um halt Leuten anbieten zu können,

02:13:29.592 --> 02:13:31.132
okay, ihr könnt die Spracherkennung auch direkt

02:13:31.132 --> 02:13:33.252
auf eurem Raspberry Pi oder so machen

02:13:33.252 --> 02:13:35.232
und müsst es nicht irgendwie an eine Google-API schicken,

02:13:35.352 --> 02:13:36.692
weil das ist eigentlich ja schon nicht so geil,

02:13:37.072 --> 02:13:39.052
weil die können einen dann ja quasi ausnehmen,

02:13:39.112 --> 02:13:40.592
wenn man irgendwie selber ein Produkt baut oder so,

02:13:40.932 --> 02:13:42.652
muss immer eine Google-API fragen, dann sagt Google irgendwann so,

02:13:42.792 --> 02:13:45.192
ja, nett, eine Gewinne macht ihr da, wir hätten auch mal

02:13:45.192 --> 02:13:45.752
gern was von ab.

02:13:46.392 --> 02:13:48.492
Ja, und noch schlimmer finde ich, die können einfach einen aufbieten.

02:13:48.492 --> 02:13:49.752
in denen was passiert. Genau.

02:13:50.352 --> 02:13:52.692
Und das ist ja

02:13:52.692 --> 02:13:54.172
auch irgendwie so Mozilla

02:13:54.172 --> 02:13:56.572
so ein bisschen der Zweck, dass man

02:13:56.572 --> 02:13:58.452
das so ein bisschen auch den Leuten ermöglicht,

02:13:58.512 --> 02:14:00.372
dass sie was tun können. Also eigentlich

02:14:00.372 --> 02:14:02.432
alles super gut, aber es gab halt nicht genug Trainingssachen

02:14:02.432 --> 02:14:04.412
für Deutsch, dass man das hätte irgendwie wirklich trainieren können.

02:14:04.992 --> 02:14:06.332
Aber inzwischen gibt es halt große

02:14:06.332 --> 02:14:07.512
Fortschritte und zwar

02:14:07.512 --> 02:14:10.092
das war ja auch schon bei diesen

02:14:10.092 --> 02:14:12.552
Natural Language Processing Modellen

02:14:12.552 --> 02:14:14.112
so, dass der Riesenschritt

02:14:14.112 --> 02:14:16.492
zu, oh mein Gott, man kann jetzt da Dinge

02:14:16.492 --> 02:14:18.752
machen, die früher waren, eigentlich

02:14:18.752 --> 02:14:20.592
eher diese Self-Supervised-Geschichten,

02:14:20.752 --> 02:14:21.992
dass man halt die

02:14:21.992 --> 02:14:24.412
Modelle dadurch trainiert hat, dass man denen Lückentexte

02:14:24.412 --> 02:14:25.952
gegeben hat und man gibt ihnen einfach irgendwelchen Text,

02:14:26.532 --> 02:14:28.352
trainiert das Modell dadurch, dass man

02:14:28.352 --> 02:14:28.672
es

02:14:28.672 --> 02:14:32.492
quasi voraussagen lässt, welches Wort

02:14:32.492 --> 02:14:34.412
in dieser Lücke

02:14:34.412 --> 02:14:36.312
gestanden hat und es dann halt belohnt oder

02:14:36.312 --> 02:14:38.112
bestraft, je nachdem, wie nah das da halt dran war.

02:14:39.092 --> 02:14:40.072
Und das heißt, man kann plötzlich

02:14:40.072 --> 02:14:42.472
und dann kann man dieses Modell verwenden für was ganz anderes.

02:14:43.152 --> 02:14:44.152
Ja, aber um

02:14:44.152 --> 02:14:46.692
dieses Problem Lückentext ausfüllen

02:14:46.692 --> 02:14:47.692
irgendwie hinzubekommen,

02:14:48.272 --> 02:14:50.372
muss das Modell halt quasi ganz viel

02:14:50.372 --> 02:14:52.232
über die Sprache lernen und auch über die Konzepte,

02:14:52.292 --> 02:14:54.452
die da drin sind. Und eigentlich muss es die fast verstehen können.

02:14:54.692 --> 02:14:55.912
Sonst kann es das halt nicht gut tun.

02:14:56.652 --> 02:14:58.132
Und wenn man das Modell halt dann

02:14:58.132 --> 02:15:00.392
mit genug Texten aus dem ganzen

02:15:00.392 --> 02:15:02.432
Internet halt prügelt, dann kann es das halt

02:15:02.432 --> 02:15:04.312
irgendwann. Und dann kann man das aber für andere Sachen

02:15:04.312 --> 02:15:06.312
verwenden, wie für das Problem, was man eigentlich

02:15:06.312 --> 02:15:07.852
lösen will, was vielleicht was ganz anderes ist.

02:15:08.452 --> 02:15:09.692
Funktioniert dann aber immer noch super.

02:15:10.432 --> 02:15:12.572
Und so ähnlich funktioniert das mit dem Audiokram

02:15:12.572 --> 02:15:13.592
auch. Und zwar

02:15:13.592 --> 02:15:14.032
oder

02:15:14.032 --> 02:15:15.612
ich weiß jetzt, die genauen Verfahren

02:15:15.612 --> 02:15:17.352
kenne ich jetzt alle nicht, ich habe es

02:15:17.352 --> 02:15:18.192
inzwischen wieder vergessen,

02:15:19.852 --> 02:15:21.372
da haben Leute das auf

02:15:21.372 --> 02:15:22.752
irgendwie, weiß ich nicht,

02:15:24.612 --> 02:15:25.152
tausenden

02:15:25.152 --> 02:15:27.052
und Millionen Stunden irgendwie,

02:15:27.532 --> 02:15:29.092
ich glaube ein paar hunderttausend Stunden

02:15:29.092 --> 02:15:31.012
YouTube-Videos trainiert,

02:15:32.032 --> 02:15:33.232
self-supervised und dann

02:15:33.232 --> 02:15:35.532
nur ein paar annotierte

02:15:35.532 --> 02:15:37.292
Trainingsbeispiele für irgendwie,

02:15:37.612 --> 02:15:39.312
also dieses Audio war übrigens jetzt

02:15:39.312 --> 02:15:40.992
folgender Satz.

02:15:40.992 --> 02:15:42.932
Und das hat dann auch schon super funktioniert.

02:15:42.932 --> 02:15:58.045
Das hei quasi die Dinger haben selbst supervised auf unfassbaren Mengen Audio gelernt was halt so Audio ist und wie das funktioniert wie Sprache so funktioniert Also in Form der Audio quasi Repr

02:15:58.945 --> 02:15:59.745
Und dann

02:15:59.745 --> 02:16:02.345
hat man dieses gelernte Modell benutzt,

02:16:02.465 --> 02:16:02.965
um halt

02:16:02.965 --> 02:16:05.185
in der Transkription dann nochmal

02:16:05.185 --> 02:16:07.785
daraus Text zu machen.

02:16:08.205 --> 02:16:09.805
Und das funktioniert total super. Also die

02:16:09.805 --> 02:16:12.125
Modelle sind alle inzwischen nochmal viel besser als Deep Speech

02:16:12.125 --> 02:16:13.805
und so. Und du brauchst nicht mehr diese gigantischen

02:16:13.805 --> 02:16:15.545
Trainingsdatenmengen. Das heißt,

02:16:16.025 --> 02:16:18.045
ja, eigentlich ist es quasi

02:16:18.045 --> 02:16:20.065
dieses Problem ist mehr oder weniger gelöst.

02:16:21.205 --> 02:16:22.485
Ist halt jetzt nur so eine Frage,

02:16:22.585 --> 02:16:24.405
wie kriegt man das gut irgendwie so

02:16:24.405 --> 02:16:26.445
umgesetzt, dass es halt gut funktioniert. Also es gibt ein Modell,

02:16:26.565 --> 02:16:27.565
das halt super gute

02:16:27.565 --> 02:16:30.325
Genauigkeit hat, aber das

02:16:30.325 --> 02:16:32.345
braucht halt irre lange. Also bei mir braucht das

02:16:32.345 --> 02:16:34.325
halt pro Faktor 30

02:16:34.325 --> 02:16:35.945
irgendwie von, also wenn du

02:16:35.945 --> 02:16:38.325
10 Sekunden Audio hast, braucht es halt Faktor 30, um

02:16:38.325 --> 02:16:40.485
halt Text rauszumachen. Das kann man praktisch

02:16:40.485 --> 02:16:42.045
nicht so gut verwenden, weil...

02:16:42.045 --> 02:16:43.045
Eigentlich muss ja echt Zeit sein.

02:16:43.245 --> 02:16:45.865
Und es braucht dann auch viel Hauptspeicher und so weiter.

02:16:47.065 --> 02:16:47.345
Genau.

02:16:47.345 --> 02:16:49.565
Genau, aber das wird ja alles auch noch besser, denke ich mal.

02:16:50.785 --> 02:16:52.285
Also bei diesem

02:16:52.285 --> 02:16:52.765
Whisper

02:16:52.765 --> 02:16:55.645
sind verschiedene Modelle dabei und ich habe

02:16:55.645 --> 02:16:57.245
jetzt nur das Tiny-Modell ausprobiert, das

02:16:57.245 --> 02:16:59.865
hat einen Faktor ungefähr von 0,2.

02:17:01.005 --> 02:17:01.525
Das heißt,

02:17:01.985 --> 02:17:03.745
in deine 30 Sekunden

02:17:03.745 --> 02:17:05.225
Audio hättest du dann eben in

02:17:05.225 --> 02:17:07.904
5 Sekunden, in 6 Sekunden

02:17:07.904 --> 02:17:11.445
durchtranskribiert.

02:17:12.384 --> 02:17:13.765
Und ich war von der Qualität

02:17:13.765 --> 02:17:15.785
sehr positiv überrascht. Für so ein kleines

02:17:15.785 --> 02:17:17.864
Modell. Sehr, sehr positiv

02:17:17.864 --> 02:17:19.825
verpasst, dass das so gut funktioniert. Also musst du auf jeden Fall

02:17:19.825 --> 02:17:20.545
mal ausprobieren, Jochen.

02:17:21.425 --> 02:17:23.624
Ja, für Podcasts ist das auch interessant, ja.

02:17:24.825 --> 02:17:25.005
Ja.

02:17:25.785 --> 02:17:27.925
Und wie gesagt, da gibt es halt mehrere Größen,

02:17:28.105 --> 02:17:29.825
je nachdem, wie viel du runterladen willst und wie viele

02:17:29.825 --> 02:17:31.445
Grafikkarten du zu verbrennen hast.

02:17:32.785 --> 02:17:33.065
Oh.

02:17:34.505 --> 02:17:35.885
Und kannst du anschauen.

02:17:36.065 --> 02:17:37.625
Die kleinen Modelle laufen auch alle auf

02:17:37.625 --> 02:17:39.585
CPU und das ist ziemlich cool.

02:17:42.585 --> 02:17:44.165
Jochen, dein Weg ist ja praktisch.

02:17:44.965 --> 02:17:45.145
Bitte?

02:17:45.145 --> 02:18:15.125
Da hast du auch einen Pick.

02:18:15.145 --> 02:18:17.285
der Standardlib kann man

02:18:17.285 --> 02:18:19.205
auf Files schmeißen

02:18:19.205 --> 02:18:21.405
und weiß

02:18:21.405 --> 02:18:23.465
dann so ein bisschen, was das denn für ein Dateiformat

02:18:23.465 --> 02:18:24.345
sein könnte oder so.

02:18:25.305 --> 02:18:26.105
Ach, die Magic

02:18:26.105 --> 02:18:28.984
Numbers.

02:18:29.505 --> 02:18:31.205
Mögliche Extensions raus oder so, genau.

02:18:31.845 --> 02:18:33.205
Distribution, Confidence und so.

02:18:34.345 --> 02:18:35.185
Ja, cool.

02:18:36.224 --> 02:18:37.285
Und das ist in der

02:18:37.285 --> 02:18:39.224
Standardlib? Ja, PyroMagic, ja.

02:18:39.825 --> 02:18:40.364
Das ist ja Hammer.

02:18:40.585 --> 02:18:42.765
Ich weiß nicht, ist das in der Standardlib?

02:18:42.765 --> 02:19:12.745
Ich weiß nicht, ich werde es nachgucken

02:19:12.765 --> 02:19:14.245
zweiten Pick, in Anführungszeichen.

02:19:15.545 --> 02:19:16.465
Weil das

02:19:16.465 --> 02:19:18.864
Post Pick, weil das

02:19:18.864 --> 02:19:21.005
zum Thema des heutigen Abends sehr gut passt.

02:19:21.045 --> 02:19:22.085
Oh, die Nannyverse.

02:19:23.445 --> 02:19:24.825
Nannyverse.se

02:19:24.825 --> 02:19:27.165
Das ist ein soziales

02:19:27.165 --> 02:19:28.925
Netzwerk, so ähnlich wie Facebook,

02:19:29.205 --> 02:19:30.745
aber es läuft immer nur lokal

02:19:30.745 --> 02:19:32.065
auf dem eigenen Telefon.

02:19:33.085 --> 02:19:34.785
Und Datenaustausch

02:19:34.785 --> 02:19:36.864
funktioniert nur über Bluetooth mit Geräten,

02:19:37.005 --> 02:19:37.885
die in der Nähe sind.

02:19:38.645 --> 02:19:41.025
Das heißt, die Posts, die man da schreibt,

02:19:41.025 --> 02:19:43.105
und die verbreiten sich dann eben langsam in der

02:19:43.105 --> 02:19:44.305
sozialen Hülle,

02:19:45.505 --> 02:19:49.705
die halt in der Nähe ist.

02:19:50.605 --> 02:19:52.984
Das finde ich ein sehr schönes Gegenmodell

02:19:52.984 --> 02:19:54.185
zu dem, was man sonst sagt.

02:19:57.105 --> 02:19:57.765
Nur P2P.

02:19:57.984 --> 02:20:01.165
Das für die Leute, die nicht miteinander reden,

02:20:01.245 --> 02:20:02.645
sondern nebeneinander auf ihren Handys rumhacken.

02:20:03.984 --> 02:20:04.425
Genau.

02:20:05.945 --> 02:20:07.445
Wenn man sich Bilder teilen möchte,

02:20:07.445 --> 02:20:08.165
dann ist das gut.

02:20:08.165 --> 02:20:12.105
Nein, aber das, also ich meine, wenn du

02:20:12.105 --> 02:20:16.025
jemanden kennst, der jemanden kennt, der jemanden kennt, der jemanden kennt, dann kannst du auch bei dem

02:20:16.025 --> 02:20:18.484
die Posts sehen, aber halt erst langsamer.

02:20:20.325 --> 02:20:23.525
Die verbreiten sich dann eben durch dieses Netzwerk durch.

02:20:25.165 --> 02:20:26.805
Aber verbreiten sich alles vor allem?

02:20:27.505 --> 02:20:29.665
Also geht das dann weiter? Wird das dann von den Nodes irgendwie?

02:20:29.745 --> 02:20:34.525
Nee, ich glaube, ich weiß nicht genau, wie die das gelöst haben, aber man kann irgendwie halt

02:20:34.525 --> 02:20:36.625
folgen und das muss ja dann

02:20:36.625 --> 02:20:38.625
irgendwie schließlich da ankommen. Also es wird irgendwie

02:20:38.625 --> 02:20:40.685
so ein, keine Ahnung, distributed

02:20:40.685 --> 02:20:42.605
Hashtable-Routing

02:20:42.605 --> 02:20:44.645
sein, was sich halt langsam,

02:20:44.705 --> 02:20:45.964
was da halt langsam hinkonvergiert.

02:20:48.065 --> 02:20:48.565
Interessant, oder?

02:20:49.745 --> 02:20:50.105
Okay.

02:20:50.484 --> 02:20:52.365
Aber ich glaube, das haben wir es heute tatsächlich dann doch geschafft.

02:20:52.785 --> 02:20:54.464
Vielen Dank, dass ihr bis hierhin durchgehalten habt

02:20:54.464 --> 02:20:56.505
und ich fand es war eine schöne Folge, hat mir viel

02:20:56.505 --> 02:20:58.585
Spaß gemacht. Vielen Dank, Johannes, dass du wieder dabei warst.

02:20:58.665 --> 02:21:00.085
Ja, sehr gerne.

02:21:00.085 --> 02:21:01.045
Mir hat es auch viel Spaß gemacht.

02:21:01.705 --> 02:21:04.165
Und ich freue mich schon auf die nächste Listen-Folge.

02:21:04.165 --> 02:21:06.265
Bleibt uns gewogen und hört uns zu.

02:21:06.805 --> 02:21:08.705
Ja, vielen Dank für eure Aufmerksamkeit.

02:21:09.285 --> 02:21:10.025
Haha, bis später.

02:21:10.445 --> 02:21:10.685
Tschüss.
