WEBVTT

00:00:00.560 --> 00:00:04.360
Ja, hallo, liebe Hörerinnen und Hörer, willkommen beim Python-Podcast, Episode 27.

00:00:05.280 --> 00:00:09.860
Wir wollen heute ein bisschen über unsere besten Wins und vielleicht auch Fails sprechen

00:00:09.860 --> 00:00:11.720
und ein bisschen auf das nächste Jahr schauen.

00:00:12.480 --> 00:00:13.460
Schön, dass ihr wieder eingeschaltet habt.

00:00:13.880 --> 00:00:15.780
Ich bin natürlich wieder mit Jochen dabei.

00:00:16.600 --> 00:00:17.180
Ja, Dominik auch.

00:00:17.180 --> 00:00:17.900
Ich bin der Dominik, genau.

00:00:18.100 --> 00:00:19.340
Und der Johannes ist heute wieder da.

00:00:19.740 --> 00:00:20.140
Hey, Johannes.

00:00:20.480 --> 00:00:20.780
Ja, hallo.

00:00:21.360 --> 00:00:21.600
Hallo.

00:00:21.940 --> 00:00:23.260
Ich bin ja quasi schon Dauergast hier.

00:00:23.640 --> 00:00:24.660
Ja, kann man so sagen.

00:00:24.680 --> 00:00:25.960
Also schon jenseits von Gast.

00:00:26.520 --> 00:00:41.860
Ja, und ja, aber vielleicht wollen wir das einfach wie sonst auch halt immer mit so ein bisschen News, wobei wir könnten das diesmal auch so ein bisschen ausdehnen auf, was ist eigentlich 2020 so passiert oder was kommt in 2021 noch.

00:00:41.980 --> 00:00:42.600
Moment, Strukturen.

00:00:43.460 --> 00:00:44.300
Trends oder weiß ich nicht.

00:00:44.880 --> 00:00:46.860
Bisschen Struktur, ja, ich fange einfach mal so ein bisschen mit News an.

00:00:46.940 --> 00:00:48.360
Ja, ich wollte gerade sagen, dann kommen wir als erstes die News.

00:00:48.360 --> 00:00:48.780
das passieren.

00:00:50.020 --> 00:00:52.200
Und zwar ganz nett, freut mich natürlich

00:00:52.200 --> 00:00:53.800
besonders. Es gibt jetzt Python

00:00:53.800 --> 00:00:55.460
3.9.1

00:00:55.460 --> 00:00:58.100
und 3.8.7 ist auch released worden, aber

00:00:58.100 --> 00:00:59.960
für mich nicht so interessant, weil Apple

00:00:59.960 --> 00:01:01.480
M1 Mac und

00:01:01.480 --> 00:01:03.960
da ist das jetzt schon so ein Binary,

00:01:04.160 --> 00:01:06.380
das halt nativ auf dem M1 läuft

00:01:06.380 --> 00:01:08.140
für Python 3.9.1, also das ist

00:01:08.140 --> 00:01:09.200
schon sehr, sehr cool.

00:01:11.420 --> 00:01:12.220
Ja, und

00:01:12.220 --> 00:01:14.120
es sind halt

00:01:14.120 --> 00:01:15.820
ein Haufen Bugfixes oder so, kann man sich auf

00:01:15.820 --> 00:01:18.080
der Changelog-Seite halt selber mal angucken.

00:01:18.360 --> 00:01:27.420
Und zweites Ding auch zum M1, Docker tatsächlich, das war ja auch letztes Mal schon so ein bisschen die Frage, ob es das geben wird.

00:01:27.480 --> 00:01:30.420
Ja, es gibt jetzt schon eine experimentelle Version und das wird dann wohl irgendwann kommen.

00:01:30.980 --> 00:01:37.080
Also ich habe es nicht installiert, weil ich probiere jetzt gerade so irgendwie, wie sähe denn mein Leben aus ohne Docker-Experiment.

00:01:37.080 --> 00:01:43.060
Mal schauen, ob das gut geht oder ich dann doch irgendwie wieder zurückgekrochen komme.

00:01:44.000 --> 00:01:46.080
Aber ja, mal schauen.

00:01:46.180 --> 00:01:48.240
war das mit Docker 3 eine Kombination, oder?

00:01:48.860 --> 00:01:50.160
Äh, das weiß ich nicht.

00:01:50.240 --> 00:01:52.200
Das war, es gibt eine experimentale

00:01:52.200 --> 00:01:54.280
Release für M1, aber.

00:01:54.500 --> 00:01:56.140
Die hat nämlich auch sowas wie Compose eingeführt

00:01:56.140 --> 00:01:58.320
jetzt als extra Kommando ohne Docker Compose.

00:01:58.340 --> 00:01:59.060
Ah, okay.

00:01:59.060 --> 00:02:01.300
Ja, haben sie das reingezogen.

00:02:01.380 --> 00:02:01.840
Das ist ja schön.

00:02:03.120 --> 00:02:03.200
Ja.

00:02:05.560 --> 00:02:07.020
Ja, ähm,

00:02:07.120 --> 00:02:08.900
und ansonsten war noch, also

00:02:08.900 --> 00:02:10.840
großes Thema, das war auch im Django Newsletter,

00:02:11.080 --> 00:02:13.100
das ist ja immer irgendwie Breaking News

00:02:13.100 --> 00:02:14.900
wenn, äh,

00:02:16.040 --> 00:02:26.960
ist David Hanemeyer-Hanson, der von Ribbon and Rails hat etwas angekündigt.

00:02:27.040 --> 00:02:29.360
Und zwar hat er einige Geschichten released.

00:02:30.820 --> 00:02:36.600
Oder vielmehr die Firma dahinter, Basecamp, unter dem Oberbegriff Hotwire.

00:02:37.880 --> 00:02:40.020
Ein Hotwire, ein heißes Kabel, was ist das?

00:02:40.500 --> 00:02:41.900
Ja, das ist ganz interessant.

00:02:42.040 --> 00:02:42.720
Ein heißes Draht.

00:02:42.720 --> 00:03:04.440
Das hat mich sofort so ein bisschen an, also zuerst dachte ich, ist es jetzt irgendwie so ein Witz oder so, da hieß es halt so, naja, also bessere interaktive Geschichten, weil wir machen jetzt alles neu und anders und dieses ganze JavaScript-Zeugs braucht man nicht mehr. Wir machen nämlich jetzt HTML direkt über das Kabel. Ja gut, das hat man ja schon immer gemacht. Was ist denn da jetzt neu und toll?

00:03:04.440 --> 00:03:05.480
Das hatten wir doch schon mal, oder?

00:03:05.640 --> 00:03:08.000
Ja, das gab es doch schon irgendwann mal.

00:03:08.700 --> 00:03:10.380
Und das Neue und Tolle ist, dass das halt

00:03:10.380 --> 00:03:12.580
nur so HTML-Schnipsel sind.

00:03:13.460 --> 00:03:14.560
Und die kommen halt auch

00:03:14.560 --> 00:03:15.200
über Websockets.

00:03:16.700 --> 00:03:18.480
Und ja, es gibt da halt

00:03:18.480 --> 00:03:20.440
so ein bisschen JavaScript-Glue auf der

00:03:20.440 --> 00:03:21.520
kleinen Seite,

00:03:22.620 --> 00:03:24.300
wo man halt sozusagen, also

00:03:24.300 --> 00:03:25.540
ein Teil heißt Turbo

00:03:25.540 --> 00:03:28.500
von diesem Hotwire-Ding. Und das ist quasi

00:03:28.500 --> 00:03:30.600
das, was halt dieses Handling

00:03:30.600 --> 00:03:32.340
macht von, du hast halt Frames,

00:03:32.540 --> 00:03:34.040
die halt selbstständig sich updaten können.

00:03:34.440 --> 00:03:36.280
sodass du halt nicht einen kompletten Page Reload

00:03:36.280 --> 00:03:38.020
machen musst, wenn sich irgendwas auf deiner Seite

00:03:38.020 --> 00:03:40.140
ändert und

00:03:40.140 --> 00:03:42.040
die können aber, du kannst aber auch Dinge außerhalb

00:03:42.040 --> 00:03:43.980
von diesen Frames damit updaten und so und das

00:03:43.980 --> 00:03:45.980
geht halt auch per Websocket und

00:03:45.980 --> 00:03:47.300
dann hast du halt noch irgendwie

00:03:47.300 --> 00:03:49.820
Stimulus heißt das irgendwie, so ein JavaScript-Framework,

00:03:49.880 --> 00:03:51.700
wo du so relativ simple Kontrolle hast, die dann

00:03:51.700 --> 00:03:52.700
irgendwas machen können,

00:03:53.460 --> 00:03:55.640
wenn sie halt irgendwie Daten kriegen, nur

00:03:55.640 --> 00:03:56.240
über

00:03:56.240 --> 00:03:59.840
die Leitung und dann halt

00:03:59.840 --> 00:04:00.660
irgendwie selber so ein bisschen

00:04:00.660 --> 00:04:03.680
HTML rendern, aber das ist eigentlich eher so die Ausnahme,

00:04:03.820 --> 00:04:05.980
eigentlich willst du sozusagen, dass es auf dem Server gerendert wird

00:04:05.980 --> 00:04:07.640
und du ersetzt halt nur

00:04:07.640 --> 00:04:09.920
Dinge im DOM, und zwar ganze

00:04:09.920 --> 00:04:11.560
Bereiche. Und

00:04:11.560 --> 00:04:13.720
das ganze State-Handling und das

00:04:13.720 --> 00:04:15.680
ganze Gerendere, das passiert halt

00:04:15.680 --> 00:04:17.440
weiterhin auf dem Server, wie man das halt gewohnt ist.

00:04:17.760 --> 00:04:19.780
Und das ist natürlich schon eine nette Idee, dass du halt sozusagen einfach dein

00:04:19.780 --> 00:04:21.680
stinknormales Ruby on Rails

00:04:21.680 --> 00:04:23.400
Templating

00:04:23.400 --> 00:04:26.020
Zeugs nimmst und du renderst halt HTML-Schnipsel

00:04:26.020 --> 00:04:27.800
damit raus. Und die gehen dann halt nicht

00:04:27.800 --> 00:04:29.680
quasi als kompletter Request

00:04:29.680 --> 00:04:31.040
an den Client, sondern nur als

00:04:31.040 --> 00:04:33.560
so ein Schnipsel über WebSocket

00:04:33.560 --> 00:04:35.520
und werden dann halt einfach nur ersetzt

00:04:35.520 --> 00:04:37.600
auf den Client. Und dann kannst du

00:04:37.600 --> 00:04:39.160
quasi deine gesamte Applikation weiterhin

00:04:39.160 --> 00:04:41.400
wie so einen normalen Ruby on Rails Moduliten

00:04:41.400 --> 00:04:43.360
schreiben, aber trotzdem

00:04:43.360 --> 00:04:44.720
hast du halt nicht diese

00:04:44.720 --> 00:04:47.560
Unterbrechungen, die du normalerweise hättest, wenn du einen Petri-Load

00:04:47.560 --> 00:04:49.480
machen musstest, nur weil du irgendwo auf ein Ding geklickt hast.

00:04:50.860 --> 00:04:51.500
Und dann gibt es noch

00:04:51.500 --> 00:04:53.500
ein Ding, das nennt sich irgendwie Strada und da weiß ich auch nicht so

00:04:53.500 --> 00:04:55.100
genau, das wird erst noch released, das ist noch nicht fertig.

00:04:56.120 --> 00:04:56.800
Ja, aber

00:04:56.800 --> 00:04:59.120
im Wesentlichen ist es das, was

00:04:59.120 --> 00:05:01.440
auch LiveView in Elixir

00:05:01.440 --> 00:05:02.660
also mit Erlang und Phoenix macht,

00:05:03.060 --> 00:05:05.380
irgendwie in Ruby on Rails

00:05:05.380 --> 00:05:06.540
und ja

00:05:06.540 --> 00:05:09.000
und jetzt haben natürlich auch schon

00:05:09.000 --> 00:05:10.940
irgendwelche Leute sich überlegt, ob sie das nicht für Django

00:05:10.940 --> 00:05:12.980
adaptieren können und so, da gibt es eine Diskussion

00:05:12.980 --> 00:05:15.320
dazu und es gibt auch schon eine GitHub-Organisation

00:05:15.320 --> 00:05:16.880
und aber

00:05:16.880 --> 00:05:19.040
interessant bin ich daran, dass halt jetzt alle Leute

00:05:19.040 --> 00:05:21.120
so, oder das ist irgendwie ein Thema jetzt gerade

00:05:21.120 --> 00:05:22.220
so dieses Async

00:05:22.220 --> 00:05:24.800
ja

00:05:24.800 --> 00:05:27.180
na, dieses

00:05:27.180 --> 00:05:28.920
Websocket-Zeugs und dann

00:05:28.920 --> 00:05:30.940
diese Monolithen bewegen sich jetzt auch

00:05:30.940 --> 00:05:32.940
in die Richtung, das war immer schon ein Thema, aber jetzt

00:05:32.940 --> 00:05:34.660
gerade habe ich das Gefühl, das kriegt so richtig Moment.

00:05:35.320 --> 00:05:36.940
Warum genau jetzt, weiß ich auch nicht so genau,

00:05:37.080 --> 00:05:38.560
aber irgendwie jetzt gerade ist es irgendwie,

00:05:39.680 --> 00:05:40.880
ja. Es hört sich

00:05:40.880 --> 00:05:42.740
aber alles nicht ungeheuer neu oder

00:05:42.740 --> 00:05:45.120
ungeheuer, ja, sagen wir mal

00:05:45.120 --> 00:05:47.320
unbekannt

00:05:47.320 --> 00:05:49.100
an, also so Sachen, dass da irgendwelche

00:05:49.100 --> 00:05:49.900
Links mit JavaScript

00:05:49.900 --> 00:05:52.760
automatisch versiehst, das gab es ja schon auch mal

00:05:52.760 --> 00:05:54.860
in TurboGears oder in, was weiß ich,

00:05:54.920 --> 00:05:56.000
wie das alles hieß. Ja,

00:05:56.600 --> 00:05:58.360
finde ich auch, also insgesamt ist es nicht neu,

00:05:58.860 --> 00:06:00.820
aber sozusagen der Ansatz zu

00:06:00.820 --> 00:06:02.140
sagen, das machen wir jetzt statt,

00:06:02.440 --> 00:06:04.520
irgendwie, APIs

00:06:04.520 --> 00:06:06.500
und JavaScript-Frontend, das

00:06:06.500 --> 00:06:07.680
ist schon so ein bisschen neu.

00:06:08.580 --> 00:06:10.520
Weil dieses Feld hat... Ja, sicherlich wird auch

00:06:10.520 --> 00:06:12.620
die Integration besser sein, als

00:06:12.620 --> 00:06:14.580
wir machen einfach mal

00:06:14.580 --> 00:06:16.400
so. Aber was muss man

00:06:16.400 --> 00:06:18.440
erst davor setzen? Also in das Frontend macht man

00:06:18.440 --> 00:06:20.420
dieses Turbo rein und das

00:06:20.420 --> 00:06:22.700
lädt dann einfach aus der Template-Hin-Engine

00:06:22.700 --> 00:06:24.400
irgendwelche

00:06:24.400 --> 00:06:26.240
Teile raus, die dann irgendwo zwar

00:06:26.240 --> 00:06:27.820
über Sockets kommen, nicht über einzelne Requests.

00:06:30.220 --> 00:06:30.660
Ja,

00:06:30.860 --> 00:06:32.120
also das kann auch über normale,

00:06:32.300 --> 00:06:37.220
das kann aber über diese XHTTP-Requests kommen,

00:06:37.340 --> 00:06:40.300
aber du kannst es halt auch über WebSocket machen.

00:06:42.380 --> 00:06:44.100
Aber eigentlich der Witz ist,

00:06:44.220 --> 00:06:45.880
dass du nichts mehr in JavaScript wirklich,

00:06:46.080 --> 00:06:47.820
oder nichts Wesentliches mehr in JavaScript machst.

00:06:48.280 --> 00:06:50.380
Du erzeugst nicht, also der wesentliche Unterschied ist,

00:06:50.660 --> 00:06:52.180
du erzeugst in JavaScript kein HTML.

00:06:52.620 --> 00:06:56.080
Also das, was halt all diese großen JavaScript-Frameworks machen,

00:06:56.080 --> 00:06:58.840
ist ja irgendwie auch eine eigene Templating-Engine haben

00:06:58.840 --> 00:07:00.400
oder irgendwie

00:07:00.400 --> 00:07:03.160
zumindest irgendwas, was so ein bisschen danach aussieht

00:07:03.160 --> 00:07:05.240
und dann baust du da dein HTML

00:07:05.240 --> 00:07:07.060
halt zusammen und

00:07:07.060 --> 00:07:09.220
machst im Grunde das gleiche, was du

00:07:09.220 --> 00:07:11.300
im Backend machst, nochmal im Frontend.

00:07:12.380 --> 00:07:13.340
Und die Idee

00:07:13.340 --> 00:07:15.100
ist sozusagen, das machst du nicht mehr, sondern du machst das

00:07:15.100 --> 00:07:17.240
nur noch im Backend und das Frontend ist

00:07:17.240 --> 00:07:19.140
automatisch. Du musst eigentlich nichts mehr im Frontend machen.

00:07:19.800 --> 00:07:21.100
Du kannst zwar noch so ein bisschen was tun,

00:07:21.360 --> 00:07:22.740
aber normalerweise musst du nicht mehr viel machen.

00:07:23.080 --> 00:07:25.260
Und du entwickelst einfach so ganz normal quasi

00:07:25.260 --> 00:07:27.020
wie ein Ruby on Rails oder Django App

00:07:27.020 --> 00:07:27.480
und

00:07:27.480 --> 00:07:31.140
lieferst halt den JavaScript-Teil mit aus.

00:07:31.900 --> 00:07:31.920
Ja.

00:07:32.660 --> 00:07:34.360
Da gibt es auch ein ganz nettes Video zu

00:07:34.360 --> 00:07:36.660
auf hotwire.dev und

00:07:36.660 --> 00:07:38.540
da gibt es ja diesen

00:07:38.540 --> 00:07:40.780
E-Mail-Service, den auch Basecamp gestartet hat,

00:07:40.840 --> 00:07:42.940
hey.com und das ist halt

00:07:42.940 --> 00:07:44.920
genau damit gebaut und ja.

00:07:45.360 --> 00:07:45.620
Okay.

00:07:47.000 --> 00:07:48.520
Na gut, muss man sich mal anschauen.

00:07:48.760 --> 00:07:48.920
Ja.

00:07:50.220 --> 00:07:53.020
Es gab vor Jahren mal eine

00:07:53.020 --> 00:07:54.900
geniale Bibliothek, eine geniale

00:07:54.900 --> 00:07:56.860
JavaScript-Bibliothek, die Page-Reloads schneller

00:07:56.860 --> 00:07:57.460
gemacht hat.

00:07:58.800 --> 00:07:59.960
Die hat einfach

00:07:59.960 --> 00:08:02.900
Seiten vorgeladen, wenn man mit

00:08:02.900 --> 00:08:04.100
der Maus drüber gefahren ist, weil

00:08:04.100 --> 00:08:07.020
tatsächlich ist es so, dass Menschen sehr langsam

00:08:07.020 --> 00:08:09.100
klicken und wenn sie mit ihrer Maus irgendwo hinfahren,

00:08:09.200 --> 00:08:11.180
dauert das so 200 bis 500 Millisekunden,

00:08:12.000 --> 00:08:13.020
bis du dann drauf klickst.

00:08:13.700 --> 00:08:13.880
Ah.

00:08:14.240 --> 00:08:17.180
Der hat einfach geguckt, wann die Maus

00:08:17.180 --> 00:08:18.920
über einem Link stehen bleibt und hat den schon mal

00:08:18.920 --> 00:08:20.860
geladen und

00:08:20.860 --> 00:08:22.860
damit kriegt man 200 bis 500

00:08:22.860 --> 00:08:24.500
Millisekunden Latenz weg, was

00:08:24.500 --> 00:08:26.300
was ich finde,

00:08:26.380 --> 00:08:27.600
eine sehr schöne Technik ist.

00:08:27.660 --> 00:08:28.800
Das ist schon mal eine super Idee, ja.

00:08:29.800 --> 00:08:31.000
Sehr psychologisch.

00:08:31.400 --> 00:08:34.040
Also für alle Leute, die so notorisch, nervös

00:08:34.040 --> 00:08:36.280
mit dem Mauszeiger rumwillen über alle Links,

00:08:36.680 --> 00:08:38.080
gibt das dann Lags auf der Seite, ja,

00:08:38.100 --> 00:08:39.620
weil die ganze Zeit irgendwelche Requests passieren, oder?

00:08:40.480 --> 00:08:42.100
Ja, für die ist es

00:08:42.100 --> 00:08:44.140
nicht gut geeignet, aber einen Tod

00:08:44.140 --> 00:08:44.720
muss man sterben.

00:08:44.720 --> 00:08:45.880
Okay, okay, verstehe.

00:08:48.340 --> 00:08:48.860
Ja.

00:08:51.920 --> 00:08:52.720
Ja, ich habe

00:08:52.720 --> 00:08:54.620
keine News. Also ich habe in den letzten

00:08:54.620 --> 00:08:55.420
vier Wochen nicht viel.

00:08:56.480 --> 00:08:57.880
War zu sehr im Weihnachtsstress.

00:08:58.580 --> 00:08:59.320
Ja, ja, Weihnachtsstress.

00:08:59.740 --> 00:09:01.340
Es ist einfach nichts Neues passiert.

00:09:03.560 --> 00:09:04.060
Ja, ja.

00:09:04.340 --> 00:09:05.380
Das stimmt auch.

00:09:05.480 --> 00:09:07.740
Ich habe jetzt so ein bisschen

00:09:07.740 --> 00:09:10.500
Zeit, das habe ich dann auch gleich mal

00:09:10.500 --> 00:09:11.540
genutzt, um irgendwie

00:09:11.540 --> 00:09:14.320
meinem Gear Acquisition

00:09:14.320 --> 00:09:15.640
Syndrom zu frönen.

00:09:17.720 --> 00:09:18.160
Ja.

00:09:18.160 --> 00:09:20.100
Da ist Weihnachten auch eine gefährliche

00:09:20.100 --> 00:09:21.760
Zeit. Das stimmt.

00:09:22.060 --> 00:09:23.900
ist der perfekte

00:09:23.900 --> 00:09:25.040
Sturm sozusagen.

00:09:25.500 --> 00:09:29.700
Ja, aber auch im Hinblick auf

00:09:29.700 --> 00:09:31.480
ja genau, das wollten wir

00:09:31.480 --> 00:09:33.300
vielleicht eine Überleitung zu Richtung, was

00:09:33.300 --> 00:09:35.720
kommt eigentlich 2021 und die

00:09:35.720 --> 00:09:37.620
ich, meine Vorhersage wäre

00:09:37.620 --> 00:09:39.360
Pakete, ganz viele Pakete.

00:09:39.380 --> 00:09:40.200
Es kommen viele Pakete.

00:09:43.300 --> 00:09:43.860
Aber

00:09:43.860 --> 00:09:45.020
ja,

00:09:45.400 --> 00:09:46.920
nicht so viele Pakete mit

00:09:46.920 --> 00:09:49.260
Audio und Video Hardware

00:09:49.260 --> 00:09:50.880
zum irgendwie, weil

00:09:50.880 --> 00:09:52.760
die sind alle schon angekommen

00:09:52.760 --> 00:09:54.620
und da kommt nichts mehr

00:09:54.620 --> 00:09:56.960
und zwar zum Beispiel, weil halt

00:09:56.960 --> 00:09:59.040
in Japan ist halt eine Fabrik

00:09:59.040 --> 00:10:00.820
von AKG ist irgendwie

00:10:00.820 --> 00:10:01.380
abgebrannt

00:10:01.380 --> 00:10:03.280
ja

00:10:03.280 --> 00:10:06.680
das hat globale Auswirkungen

00:10:06.680 --> 00:10:08.180
ja, das ist so ein bisschen schlecht

00:10:08.180 --> 00:10:10.580
es gibt ja zum Beispiel bei den

00:10:10.580 --> 00:10:11.980
also diese

00:10:11.980 --> 00:10:14.580
analog

00:10:14.580 --> 00:10:16.340
also DAC

00:10:16.340 --> 00:10:17.280
also digital

00:10:17.280 --> 00:10:20.260
zu Audio und umgekehrt Konverter

00:10:20.260 --> 00:10:22.940
da gibt es halt nicht so viele

00:10:22.940 --> 00:10:24.820
von, also die das in guter Qualität

00:10:24.820 --> 00:10:26.980
machen und tatsächlich stellen

00:10:26.980 --> 00:10:28.980
halt die Leute gerade so fest, eigentlich gibt es nur einen

00:10:28.980 --> 00:10:30.900
und dummerweise dieser eine, der hat

00:10:30.900 --> 00:10:32.780
dann zwar sein Zeugs unter ganz vielen

00:10:32.780 --> 00:10:34.980
Labels

00:10:35.580 --> 00:10:37.040
und so vertrieben und

00:10:37.040 --> 00:10:38.880
es sah so aus, als könnte man das

00:10:38.880 --> 00:10:40.860
Zeug überall kaufen, aber tatsächlich war es nur

00:10:40.860 --> 00:10:42.940
eine Firma, nämlich AKG und tatsächlich war es

00:10:42.940 --> 00:10:44.960
auch nur eine Fabrik, in der die hergestellt wurden, nämlich die

00:10:44.960 --> 00:10:46.680
und die ist gerade abgebrannt und

00:10:46.680 --> 00:10:49.100
das ist jetzt schlecht

00:10:49.100 --> 00:10:50.700
und niemand anders kann das so richtig

00:10:50.700 --> 00:10:52.760
und jetzt geht halt alles, was so

00:10:52.760 --> 00:10:54.800
High-End-Audio angeht, da werden jetzt

00:10:54.800 --> 00:10:56.760
so die Lagerer leer und die Preise steigen

00:10:56.760 --> 00:10:58.760
und ja, wenn man da nichts

00:10:58.760 --> 00:11:00.620
hat, das wird in 2021 ein bisschen

00:11:00.620 --> 00:11:02.760
schwierig, das zu kaufen. Unter anderem

00:11:02.760 --> 00:11:04.760
auch deshalb, weil halt, ja, die Nachfrage

00:11:04.760 --> 00:11:06.760
weiterhin hoch bleiben wird, denke ich

00:11:06.760 --> 00:11:08.600
mal, weil Homeoffice wird wohl weitergehen,

00:11:08.740 --> 00:11:09.240
nehme ich mal an.

00:11:10.400 --> 00:11:12.300
Bis wann? Es sieht erstmal so aus.

00:11:13.760 --> 00:11:14.560
Ja, also

00:11:14.560 --> 00:11:16.620
die bisherige

00:11:16.620 --> 00:11:18.680
Prophezeiung war da so bis im Sommer

00:11:18.680 --> 00:11:20.500
also jedenfalls jetzt hier bei uns

00:11:20.500 --> 00:11:22.360
so

00:11:22.360 --> 00:11:23.860
Mitteleuropa. Ja,

00:11:24.420 --> 00:11:25.580
kommt drauf an, welche

00:11:25.580 --> 00:11:26.560
Manöver.

00:11:28.560 --> 00:11:30.440
Ja, Normalität, also

00:11:30.440 --> 00:11:32.160
es kommt drauf an, was man sich da anhört. Aber jetzt

00:11:32.160 --> 00:11:33.580
sind ja auch schon tatsächlich

00:11:33.580 --> 00:11:36.420
die Zeit, gibt da aktuelle Zahlen an

00:11:36.420 --> 00:11:38.340
21.566

00:11:38.340 --> 00:11:40.440
Impfdosen in Deutschland

00:11:40.440 --> 00:11:42.580
verabreicht worden.

00:11:42.580 --> 00:11:43.680
Das ist doch schon mal nicht schlecht.

00:11:43.840 --> 00:11:45.000
Dann ist ja nicht mehr weit.

00:11:46.360 --> 00:11:48.100
Ja, wir sind schon fast da.

00:11:48.160 --> 00:11:50.620
Wie viel brauchen wir? 40 Millionen durch 20.000?

00:11:50.620 --> 00:11:54.400
Ja, auch das ist unklar.

00:11:54.980 --> 00:11:58.040
Irgendwo zwischen 35 und 60 Millionen wird es wohl liegen.

00:11:58.680 --> 00:11:59.840
Und doppelt natürlich.

00:11:59.840 --> 00:12:10.020
Ja, und vor allen Dingen gibt es ja jetzt nochmal so eine neue, etwas abgewandelte Virusvariante,

00:12:10.180 --> 00:12:12.860
die ein bisschen infektiöser ist und das ändert die Zahlen halt auch nochmal.

00:12:13.160 --> 00:12:20.760
Weil das Problem ist, du brauchst einen größeren Anteil in der Bevölkerung, der immun ist, damit das noch funktioniert.

00:12:20.980 --> 00:12:22.240
Weil das hat halt direkte Auswirkungen.

00:12:22.240 --> 00:12:29.920
Wenn das Ding infektiöser ist, dann ist der Prozentsatz der Leute, die immun sein müssen, entweder dadurch, dass sie das schon hatten oder geimpft werden, höher.

00:12:30.240 --> 00:12:32.660
Was bedeutet, es wird länger dauern wahrscheinlich.

00:12:32.920 --> 00:12:35.320
Du musst mehr herstellen, dann musst du es verteilen, alles schlecht.

00:12:35.820 --> 00:12:42.680
Also die pessimistischere Richtung geht eher zu sagen, das wird auch noch bis Winter 2021 leider dauern wohl.

00:12:43.160 --> 00:12:45.680
also alles nicht so richtig

00:12:45.680 --> 00:12:47.540
schön und sowieso die Zahlen

00:12:47.540 --> 00:12:49.680
sehen alles fies

00:12:49.680 --> 00:12:51.620
aus. Also es kann

00:12:51.620 --> 00:12:53.600
eigentlich nur, also egal in welche Richtung es geht,

00:12:53.700 --> 00:12:55.260
die sind eigentlich alle doof, die Richtungen.

00:12:55.440 --> 00:12:57.540
Es gibt keine guten mehr. Jetzt über Weihnachten sind

00:12:57.540 --> 00:12:59.720
die Sachen alle gesunken. Ja, komisch.

00:13:00.060 --> 00:13:01.380
Warten wir mal die Nachmeldungen ab.

00:13:01.620 --> 00:13:02.660
Warten wir mal die Nachmeldungen.

00:13:05.460 --> 00:13:07.580
Ja. Ja, gut. Ich meine, das

00:13:07.580 --> 00:13:09.500
wird uns noch das nächste

00:13:09.500 --> 00:13:11.440
Jahr beschäftigen. Habt ihr da

00:13:11.440 --> 00:13:13.440
irgendwas, habt ihr eigentlich sowas

00:13:13.440 --> 00:13:15.380
gemacht? Also, was ich tatsächlich, ich hatte

00:13:15.380 --> 00:13:17.420
das, das war mehr so ein, mehr so ein,

00:13:17.480 --> 00:13:18.620
oh, weiß ich auch gar nicht, ob ich das erzählt habe,

00:13:18.920 --> 00:13:20.220
naja, also,

00:13:21.620 --> 00:13:23.580
es war mehr so ein Versuch,

00:13:24.060 --> 00:13:25.280
genau, ich dachte so, naja, Gott,

00:13:26.300 --> 00:13:27.680
diese ganzen E-Commerce-Geschichten,

00:13:27.780 --> 00:13:29.160
da will ich auch mit dabei sein, jetzt so

00:13:29.160 --> 00:13:31.460
im Jahr 2021, weil ich habe so mal in der Partikel

00:13:31.460 --> 00:13:33.260
gefragt, ob man nicht irgendwie diese Schnelltests, das klingt ja

00:13:33.260 --> 00:13:34.960
alles ganz toll und so, und hier ist es dann so,

00:13:35.060 --> 00:13:37.120
ne, ne, ne, und da dachte ich, na gut,

00:13:37.120 --> 00:13:39.020
dann gucke ich doch mal, gibt es nicht Webseiten,

00:13:39.100 --> 00:13:40.580
auf denen man das kaufen kann, und tatsächlich gab es,

00:13:41.440 --> 00:13:43.360
Und ich habe dann halt auch bestellt.

00:13:43.640 --> 00:13:44.360
Wie viel WT ihr hatten?

00:13:45.820 --> 00:13:47.300
Ja, man muss sie in großen Packungen kaufen.

00:13:47.420 --> 00:13:48.660
Ich habe irgendwie so 25 Stück bestellt.

00:13:48.740 --> 00:13:51.520
Das hat so irgendwas um die 200 Euro gekostet oder so.

00:13:53.020 --> 00:13:54.580
Ja, das geht ja tatsächlich noch preislich.

00:13:55.000 --> 00:13:56.840
Ja, also pro Test waren das so um die 10 Euro.

00:13:59.000 --> 00:14:02.460
Und dann hieß es aber direkt irgendwie so ein paar Tage später,

00:14:02.760 --> 00:14:05.780
äh, momentan ein bisschen schlecht mit dem Liefern.

00:14:08.160 --> 00:14:09.180
Habe ich mir auch schon gedacht,

00:14:09.280 --> 00:14:10.860
dass das eventuell auch noch andere Leute

00:14:10.860 --> 00:14:11.940
auf die Idee gekommen sein könnten.

00:14:12.940 --> 00:14:15.900
Und ja, aber es kam dann tatsächlich

00:14:15.900 --> 00:14:17.340
sogar noch vor Weihnachten irgendwie an

00:14:17.340 --> 00:14:20.660
und hat alles funktioniert.

00:14:21.480 --> 00:14:24.880
Ja, also irgendwie DHL meinte so,

00:14:24.960 --> 00:14:26.420
ja, super, herzlichen Glückwunsch,

00:14:26.500 --> 00:14:27.140
kommt doch noch an.

00:14:27.320 --> 00:14:28.740
Irgendwie, wir sind sehr froh,

00:14:28.880 --> 00:14:30.160
dass wir das sagen können,

00:14:30.260 --> 00:14:31.700
aber wir beliefern medizinische Einrichtungen

00:14:31.700 --> 00:14:32.300
auch mit Priorität.

00:14:32.620 --> 00:14:33.480
Da ist so, ja, das ist sehr gut.

00:14:33.480 --> 00:14:34.740
Sonst wäre das ja vielleicht gar nicht angekommen.

00:14:35.120 --> 00:14:35.380
Wunderbar.

00:14:38.160 --> 00:14:40.240
Ja. Und hast du einen Webshop aufgemacht

00:14:40.240 --> 00:14:41.200
und den Preis verfünffacht?

00:14:41.860 --> 00:14:42.540
Nee, nee, nee.

00:14:43.000 --> 00:14:46.020
Ein guter Teil davon ist jetzt auch schon

00:14:46.020 --> 00:14:48.620
verbraucht.

00:14:48.640 --> 00:14:48.840
Aufgegessen.

00:14:52.100 --> 00:14:53.940
Ja, ich habe

00:14:53.940 --> 00:14:56.000
tatsächlich Angebote gesehen, da haben sie

00:14:56.000 --> 00:14:57.980
50 Euro pro Test verlangt. Also da können

00:14:57.980 --> 00:14:59.620
schon durchaus Margen drin sein, Jochen.

00:15:00.360 --> 00:15:00.860
Ja, gut.

00:15:01.860 --> 00:15:03.260
Zehn kannst du ja verkaufen.

00:15:04.200 --> 00:15:05.960
Geld für zwei neue Lieferungen.

00:15:08.160 --> 00:15:11.980
Hm, lass mal überlegen, wie kann man denn da ein Pyramidensystem draus machen?

00:15:12.060 --> 00:15:14.580
Eine kurze Lektion in exponentielles Wachstum.

00:15:15.360 --> 00:15:15.840
Ja.

00:15:16.680 --> 00:15:24.800
Das war ja mal ein Vorschlag, den ich hatte, dass man Leute, die gegen die Maskenpflicht verstoßen, dass man denen zuerst eine Strafe gibt, die sehr niedrig ist, 5 Euro.

00:15:25.620 --> 00:15:28.500
Und beim zweiten Verstoß dann aber 10 Euro.

00:15:29.000 --> 00:15:30.780
Und beim dritten Verstoß 20 Euro.

00:15:31.640 --> 00:15:37.180
Und das wäre dann gleichzeitig abschreckend und eine kurze Einführung in exponentielles Wachstum.

00:15:38.160 --> 00:15:47.640
Ja, ich glaube, die Wahrscheinlichkeit der Kontrolle mehrfach ist wahrscheinlich gering.

00:15:48.980 --> 00:15:55.180
Ja gut, das ist ja auch ein lösbares Problem. Also das ist ja, also bitte, gerade in Deutschland ist das ja ein lösbares Problem.

00:15:58.320 --> 00:16:03.340
Ob ihr das jetzt als Win oder als Fail einsortiert, das überlasse ich jetzt bei euch.

00:16:04.200 --> 00:16:05.740
Ja, insgesamt tendiert die ganze Situation

00:16:05.740 --> 00:16:07.200
so ein bisschen Richtung Fail, muss ich sagen.

00:16:08.900 --> 00:16:09.640
Ach, findest du?

00:16:09.860 --> 00:16:10.000
Ja.

00:16:12.460 --> 00:16:13.920
Also das Schlimmste, was ich jetzt hatte,

00:16:14.020 --> 00:16:15.800
dass ich jetzt nicht so in die Sauna gehen konnte, wie ich wollte

00:16:15.800 --> 00:16:17.140
und das Fitnessstudio hat zu und

00:16:17.140 --> 00:16:19.760
Babyschwimmen ist ausgefallen. Also das sind alles

00:16:19.760 --> 00:16:20.660
First-Welt-Problems.

00:16:21.500 --> 00:16:25.340
Es ist schon sehr schlimm,

00:16:26.240 --> 00:16:27.800
Dominik, dass du deinen Job verloren hast

00:16:27.800 --> 00:16:29.800
und kurz vor dem Finanziellen ausstehst

00:16:29.800 --> 00:16:32.000
und auch deine Wohnung bald verlierst

00:16:32.000 --> 00:16:32.360
und

00:16:32.360 --> 00:16:35.780
Ja, nee, also das

00:16:35.780 --> 00:16:38.880
tatsächlich

00:16:38.880 --> 00:16:40.960
Da muss man wirklich sagen, wir leben alle

00:16:40.960 --> 00:16:42.300
in so einer Blase.

00:16:43.500 --> 00:16:45.800
Ja, also ich meine, in unserer Branche ist es

00:16:45.800 --> 00:16:47.660
halt wirklich sehr einfach, Homeoffice zu machen.

00:16:47.820 --> 00:16:48.460
Das ist für andere

00:16:48.460 --> 00:16:51.840
Betriebe, alle, die in der Gastronomie

00:16:51.840 --> 00:16:53.480
arbeiten, für die ist es schwieriger.

00:16:54.040 --> 00:16:55.500
Ja, ganze Veranstaltungsbehandlung,

00:16:55.680 --> 00:16:57.940
Arschkrate, Einzelhandel

00:16:57.940 --> 00:16:58.420
und so weiter.

00:16:59.900 --> 00:17:00.660
Mein Cousin

00:17:00.660 --> 00:17:02.820
hat ein Konzertbüro,

00:17:03.000 --> 00:17:04.840
eine Konzertagentur. Die hatten

00:17:04.840 --> 00:17:06.700
zwischendurch überlegt, ob sie Konzerte in

00:17:06.700 --> 00:17:08.900
Flugzeugen machen sollen, weil das war nämlich

00:17:08.900 --> 00:17:10.980
erlaubt. Hätten sie immerhin für 300

00:17:10.980 --> 00:17:12.900
Leute Flugzeugkonzerte

00:17:12.900 --> 00:17:14.160
machen können, haben es aber nicht gemacht.

00:17:14.880 --> 00:17:16.720
Geld oder Leben heißt das. Aber klar, dem ist das

00:17:16.720 --> 00:17:18.600
ganze Jahr einfach ausgefallen.

00:17:19.080 --> 00:17:19.740
Geld oder Leben.

00:17:20.460 --> 00:17:21.460
Kennt ihr dieses

00:17:21.460 --> 00:17:23.500
Ticketsystem,

00:17:23.740 --> 00:17:26.780
Pretix, auch Django-System?

00:17:26.840 --> 00:17:28.600
Natürlich. Die unterstützen

00:17:28.600 --> 00:17:30.400
noch jedes Jahr die DjangoCon.

00:17:30.660 --> 00:17:32.380
bitte, Jochen. Genau.

00:17:33.160 --> 00:17:34.720
Die hatten jetzt auch so ein

00:17:34.720 --> 00:17:36.660
Problem damit, dass halt irgendwie,

00:17:36.760 --> 00:17:38.860
naja, gute ganzen Veranstaltungen, die normalerweise dann

00:17:38.860 --> 00:17:40.820
Pre-Tix benutzt haben,

00:17:40.860 --> 00:17:41.720
um die Tickets zu verkaufen,

00:17:42.140 --> 00:17:44.600
dieses Jahr so ein bisschen sparsamer

00:17:44.600 --> 00:17:45.740
irgendwie unterwegs waren.

00:17:46.800 --> 00:17:48.340
Und dann dachten sie schon so,

00:17:48.380 --> 00:17:50.500
oje, oje, was machen wir denn jetzt? Und dann

00:17:50.500 --> 00:17:52.420
sind da aber andere

00:17:52.420 --> 00:17:54.300
in die Bresche gesprungen,

00:17:54.420 --> 00:17:56.540
sozusagen, und sie hatten dann halt dieses Jahr mehr zu tun,

00:17:56.640 --> 00:17:58.240
als sie normalerweise zu tun hatten.

00:17:58.240 --> 00:17:59.440
Und zwar mit

00:17:59.440 --> 00:18:01.720
mit zum Beispiel Schwimmbädern.

00:18:02.640 --> 00:18:04.080
Weil normalerweise

00:18:04.080 --> 00:18:06.060
verkaufen die Schwimmbäder... Jeder braucht jetzt ein Ticketsystem.

00:18:06.660 --> 00:18:08.120
Genau, die verkaufen ja ihren Kram

00:18:08.120 --> 00:18:10.100
normalerweise direkt an der Kasse, aber das geht ja jetzt nicht mehr.

00:18:10.440 --> 00:18:12.120
Das heißt, die müssen die Sachen online

00:18:12.120 --> 00:18:13.940
verkaufen und dann brauchst du ein Ticketsystem dafür.

00:18:14.280 --> 00:18:15.080
Und tja, tada!

00:18:16.880 --> 00:18:18.260
Ja, Reservierungssysteme,

00:18:18.340 --> 00:18:20.220
auch das ist ein guter Markt in diesem Jahr.

00:18:20.720 --> 00:18:21.500
Ja, ja. Absolut.

00:18:24.100 --> 00:18:24.540
Also...

00:18:24.540 --> 00:18:26.120
Ja, auch alle

00:18:26.120 --> 00:18:28.180
Lieferdienste und so, das ist sicherlich

00:18:28.180 --> 00:18:28.800
dieses Jahr

00:18:28.800 --> 00:18:32.260
gut gelaufen, aber

00:18:32.260 --> 00:18:34.280
ja gut, es gibt immer Gewinner und Verlierer

00:18:34.280 --> 00:18:34.560
und

00:18:34.560 --> 00:18:38.340
ich überlege auch, ob ich

00:18:38.340 --> 00:18:40.320
jetzt so ein bisschen Richtung Video mal ein bisschen

00:18:40.320 --> 00:18:42.220
mehr machen soll, ich weiß nicht, ich habe jetzt schon mal so ein bisschen

00:18:42.220 --> 00:18:44.040
Hardware geordert, ich hoffe mal,

00:18:44.580 --> 00:18:46.300
dass ich nicht noch mehr Hardware ordern muss, weil

00:18:46.300 --> 00:18:48.200
sonst habe ich ein Problem, aber

00:18:48.200 --> 00:18:50.480
das ist ja

00:18:50.480 --> 00:18:52.280
auch sowas, also genau, da habe ich

00:18:52.280 --> 00:18:54.340
auch noch mal ein anderes Mikrofon, so ein

00:18:54.340 --> 00:18:56.340
dynamisches, weil das nimmt so ein bisschen

00:18:56.340 --> 00:18:58.140
die Umgebungsgeräusche weg, aber das kann man dann

00:18:58.140 --> 00:19:00.100
dafür dann halt weiter weghalten und dann

00:19:00.100 --> 00:19:02.360
sieht man, so mit dem Headset und Video ist halt doof,

00:19:02.480 --> 00:19:04.180
das geht auch nicht so gut. Ja, mal gucken,

00:19:04.280 --> 00:19:05.740
muss da mal so ein bisschen experimentieren.

00:19:06.140 --> 00:19:08.220
Ja, ich kann dir da, ich als Betreiber

00:19:08.220 --> 00:19:08.620
des

00:19:08.620 --> 00:19:12.060
rasend erfolgreichen Spielmanns

00:19:12.060 --> 00:19:13.820
Kekskanals, kann dir da natürlich gerne

00:19:13.820 --> 00:19:15.620
viele Hinweise geben.

00:19:17.640 --> 00:19:18.220
Wir haben

00:19:18.220 --> 00:19:20.100
auch noch ein Video in der Pipeline, wir hatten nur

00:19:20.100 --> 00:19:21.900
bisher keinen Bock, das zu machen, weil

00:19:21.900 --> 00:19:23.380
einfach zu viel anderes Zeugs los war.

00:19:24.180 --> 00:19:26.040
Jetzt wieder Kekse, mehr Kekse, noch

00:19:26.040 --> 00:19:28.200
mehr Kekse? Ja, wir

00:19:28.200 --> 00:19:29.580
überlegen uns, wie man den Impfstoff

00:19:29.580 --> 00:19:31.940
wohl als Keks umsetzen kann. Wir hatten ja schon

00:19:31.940 --> 00:19:34.160
das Virus als Corona-Ausstecher.

00:19:34.780 --> 00:19:36.260
Dann hatten wir Antikörper

00:19:36.260 --> 00:19:38.040
in Keksform

00:19:38.040 --> 00:19:40.100
und jetzt überlegen wir uns, ob wir vielleicht noch eine Impfung

00:19:40.100 --> 00:19:41.380
machen. Wie sieht der denn überhaupt aus? Wird der

00:19:41.380 --> 00:19:43.020
per Schluckimpfung verabreicht oder

00:19:43.020 --> 00:19:45.900
wird der gespritzt? Nee, die werden gespritzt.

00:19:46.000 --> 00:19:47.760
Also wir hätten dann natürlich eine Schluckimpfung,

00:19:47.840 --> 00:19:48.500
selbstverständlich,

00:19:49.440 --> 00:19:51.800
in Keksform, aber der Impfstoff

00:19:51.800 --> 00:19:53.820
selber ist, die sind alle, also

00:19:53.820 --> 00:19:55.640
es gibt verschiedene Impfstoffe. Die meisten sind

00:19:55.640 --> 00:19:58.000
in Spritzen. Es gibt tatsächlich

00:19:58.000 --> 00:20:00.060
eine, die in die Nase eingespritzt

00:20:00.060 --> 00:20:01.260
wird. Das ist die angenehmste.

00:20:02.400 --> 00:20:04.120
Die ist allerdings noch nicht durch Phase 3

00:20:04.120 --> 00:20:04.440
durch.

00:20:04.960 --> 00:20:07.440
Habt ihr das gelesen?

00:20:08.120 --> 00:20:09.960
Ich finde, das fand ich super cool.

00:20:10.040 --> 00:20:11.060
Da gab es jetzt einen Artikel

00:20:11.060 --> 00:20:13.540
auch von einem, der normalerweise

00:20:13.540 --> 00:20:15.880
sich eher mit Computerkram beschäftigt, VDNS oder so.

00:20:16.520 --> 00:20:17.720
Oh ja, den habe ich gelesen.

00:20:17.780 --> 00:20:19.400
Den hast du gelesen? Ich weiß, was du meinst, Jochen.

00:20:19.560 --> 00:20:21.120
Ja, der war sau cool. Der hatte

00:20:21.120 --> 00:20:23.340
den Impfstoff von BioNTech

00:20:23.340 --> 00:20:25.180
Pfizer, den hat

00:20:25.180 --> 00:20:26.880
er halt sozusagen aus so einem

00:20:26.880 --> 00:20:27.320
Computer,

00:20:27.920 --> 00:20:31.120
so einer Computerperspektive irgendwie mal

00:20:31.120 --> 00:20:33.000
darüber gesprochen, was das Ding so alles macht

00:20:33.000 --> 00:20:35.200
und das fand ich sau interessant, weil da waren

00:20:35.200 --> 00:20:37.080
echt einige tolle Tricks dabei, von denen

00:20:37.080 --> 00:20:38.940
ich gar nicht wusste. Man muss dazu sagen,

00:20:39.120 --> 00:20:40.900
man muss dazu sagen, dass der ja veröffentlicht ist.

00:20:41.000 --> 00:20:42.960
Der ist ja als Patent eingereicht und da

00:20:42.960 --> 00:20:45.040
muss er ja veröffentlicht sein. Das heißt,

00:20:45.100 --> 00:20:47.020
der gesamte Quellcode, um es mal so

00:20:47.020 --> 00:20:48.820
zu sagen, also das, was dann tatsächlich als

00:20:48.820 --> 00:20:51.060
mRNA hergestellt

00:20:51.060 --> 00:20:52.720
wird, steht da einfach drin. Das ist eine

00:20:52.720 --> 00:20:53.980
Buchstabenfolge. Es sind irgendwie,

00:20:54.660 --> 00:20:56.720
Jochen, korrigiere mich, 2270

00:20:56.720 --> 00:20:58.560
Zeichen oder sowas. Also vergleichsweise klein.

00:20:58.940 --> 00:21:00.300
Ja, ich weiß nicht mehr genau.

00:21:00.400 --> 00:21:02.300
Es ist irgendwie so halb so groß wie das Virus selber.

00:21:02.860 --> 00:21:03.620
Oder die, ja.

00:21:05.640 --> 00:21:06.420
Genau. Und

00:21:06.420 --> 00:21:08.720
ja, da sind einige schöne Hacks

00:21:08.720 --> 00:21:10.820
drin. Auch einige schöne Sachen, die man so

00:21:10.820 --> 00:21:12.800
ja, als

00:21:12.800 --> 00:21:14.780
Computermensch durchaus versteht, warum manche Sachen

00:21:14.780 --> 00:21:16.720
so sind und warum manche Sachen nicht so sind. Sehr, sehr,

00:21:16.780 --> 00:21:18.780
sehr schön gemacht. Ja. Und es

00:21:18.780 --> 00:21:20.780
ist auch erstaunlich wenig. Also es ist auch einfach

00:21:20.780 --> 00:21:23.180
ja, der größte Teil

00:21:23.180 --> 00:21:25.240
von diesen, ja ja

00:21:25.240 --> 00:21:27.320
der größte Teil von den Daten

00:21:27.320 --> 00:21:29.280
ist halt 1 zu 1 aus dem Virus kopiert

00:21:29.280 --> 00:21:29.780
quasi

00:21:29.780 --> 00:21:33.400
ja nicht 1 zu 1, das hast du nicht genau genug gelesen

00:21:33.400 --> 00:21:35.160
man hat ein paar Änderungen gemacht

00:21:35.160 --> 00:21:36.200
ja, aber also

00:21:36.200 --> 00:21:38.900
tatsächlich was das Ding tut, ist

00:21:38.900 --> 00:21:40.660
also einmal RNA ist halt

00:21:40.660 --> 00:21:42.460
also ist halt sozusagen

00:21:42.460 --> 00:21:44.940
in Computer-Analogie übertragen

00:21:44.940 --> 00:21:46.900
halt sowas wie Hauptspeicher oder so, es ist halt relativ

00:21:46.900 --> 00:21:49.000
flüchtig, also es überlebt

00:21:49.000 --> 00:21:51.040
so an der Luft nicht lange und

00:21:51.040 --> 00:21:52.940
auch wenn man das irgendwo in Organismen

00:21:52.940 --> 00:21:54.860
muss es ja auch gekühlt werden. Deswegen diese

00:21:54.860 --> 00:21:56.620
Kühlkette und so, das ist alles ein bisschen doof.

00:21:57.080 --> 00:21:58.800
Wenn man es in Organismen reinspritzt, dann

00:21:58.800 --> 00:22:00.920
normalerweise das Immunsystem wird

00:22:00.920 --> 00:22:02.720
da so leicht misstrauisch, wenn da irgendwie so

00:22:02.720 --> 00:22:04.940
RNA-Energie gibt. Ja, auch Zellen

00:22:04.940 --> 00:22:07.060
nehmen den ja eigentlich normalerweise gar nicht an.

00:22:07.120 --> 00:22:08.720
Die nehmen ja gar keine RNA-Affenhausen.

00:22:08.720 --> 00:22:10.520
Ja, und

00:22:10.520 --> 00:22:13.000
aber da gibt es dann halt schon mal so ein, genau,

00:22:13.160 --> 00:22:14.840
aber es ist halt quasi der rohe Code,

00:22:14.840 --> 00:22:16.800
der halt dann irgendwie von den Ribosomen

00:22:16.800 --> 00:22:18.980
der Zelle halt irgendwie sozusagen in Anführungszeichen

00:22:18.980 --> 00:22:19.740
ausgeführt wird.

00:22:20.420 --> 00:22:22.960
Und der dann halt

00:22:22.960 --> 00:22:23.940
Proteine,

00:22:24.260 --> 00:22:26.400
der wird dann abgelesen und dann werden Proteine

00:22:26.400 --> 00:22:27.340
halt synthetisiert.

00:22:28.400 --> 00:22:30.740
Ja, und das, was dieses Ding

00:22:30.740 --> 00:22:32.860
macht, ist, das Spike-Protein

00:22:32.860 --> 00:22:33.500
von dem

00:22:33.500 --> 00:22:37.100
Virus zu erzeugen.

00:22:37.420 --> 00:22:38.720
Und zwar so ziemlich genau

00:22:38.720 --> 00:22:40.580
das Ding. Bis auf auch wieder

00:22:40.580 --> 00:22:41.560
ein paar kleine Details.

00:22:42.280 --> 00:22:44.700
Damit es stabil wird. Genau, weil normalerweise

00:22:44.700 --> 00:22:46.580
rollt sich das Ding zusammen, faltet sich zusammen und

00:22:46.580 --> 00:22:48.760
dann ist es halt egal. Also das Virus

00:22:48.760 --> 00:22:51.160
blüht dieses Spike-Protein auch erst

00:22:51.160 --> 00:22:53.080
so kurz vor der Infektion. Normalerweise

00:22:53.080 --> 00:22:54.940
kriegt das Immunsystem den Kram halt nie zu sehen.

00:22:55.640 --> 00:22:57.060
Und wenn man das Virus platt macht,

00:22:57.220 --> 00:22:59.100
also wie man das normalerweise mit Impfstoffen, also die

00:22:59.100 --> 00:23:00.940
simpelste Art, man schüttet irgendwie formal

00:23:00.940 --> 00:23:03.220
die Hüte drüber oder man macht das irgendwie heiß,

00:23:03.600 --> 00:23:05.340
dann ist das halt kein Virus mehr, sondern nur noch so

00:23:05.340 --> 00:23:07.160
Teile von einem Virus.

00:23:08.540 --> 00:23:09.300
Virus-Krümel.

00:23:10.300 --> 00:23:10.660
Und

00:23:10.660 --> 00:23:13.180
ja, das reicht ja manchmal auch schon, damit das

00:23:13.180 --> 00:23:14.580
Immunsystem dann so merkt, okay,

00:23:15.500 --> 00:23:17.280
das erkenne ich hier

00:23:17.280 --> 00:23:18.980
wieder, aber bei dem Virus

00:23:18.980 --> 00:23:20.960
ist das blöderweise nicht so richtig toll, weil

00:23:20.960 --> 00:23:23.180
das entscheidende Protein halt dann nicht

00:23:23.180 --> 00:23:24.640
mehr so in der Form da ist, wie es

00:23:24.640 --> 00:23:27.020
kaputt geht. Genau. Und dieses

00:23:27.020 --> 00:23:29.020
dieser Impfstoff

00:23:29.020 --> 00:23:31.220
erzeugt halt dieses Protein und zwar

00:23:31.220 --> 00:23:33.120
halt so, dass es sich nicht zusammenfaltet,

00:23:33.260 --> 00:23:34.300
sondern in der gleichen Form bleibt.

00:23:35.180 --> 00:23:37.140
Und dass das

00:23:37.140 --> 00:23:39.080
Immunsystem das Ding dann halt auch wieder erkennen kann. Das ist natürlich

00:23:39.080 --> 00:23:39.920
total super, weil

00:23:39.920 --> 00:23:43.180
naja, also das sieht halt aus wie eine

00:23:43.180 --> 00:23:44.940
echte Infektion für das Immunsystem. Da kommt

00:23:44.940 --> 00:23:46.840
irgendwie so Zeug, so eine Spritze, also kommt halt

00:23:46.840 --> 00:23:48.900
irgendwie so Zeugs rein, dann fangen Zellen plötzlich an

00:23:48.900 --> 00:23:51.000
etwas zu produzieren, was sie normalerweise nicht produzieren

00:23:51.000 --> 00:23:53.000
und das ist alles höchst alarmierend

00:23:53.000 --> 00:23:54.460
und ja,

00:23:54.700 --> 00:23:57.040
das sieht alles sehr gefährlich aus, ist aber halt ungefährlich

00:23:57.040 --> 00:23:58.780
eigentlich, weil sobald die RNA verbraucht ist,

00:23:59.240 --> 00:24:00.940
die in so der Impflosis drin steckt, dann ist es halt weg.

00:24:01.060 --> 00:24:02.060
Das kann sich nicht fortpflanzen,

00:24:02.900 --> 00:24:04.760
das ist ein einmaliges Event, das ist eine

00:24:04.760 --> 00:24:06.980
der wichtigen Sachen, das heißt, man wird nicht krank davon, sondern

00:24:06.980 --> 00:24:08.940
es wird halt

00:24:08.940 --> 00:24:09.780
einmal umgesetzt.

00:24:11.240 --> 00:24:12.740
Für mich das Beeindruckende

00:24:12.740 --> 00:24:14.140
an der ganzen Geschichte ist eigentlich,

00:24:14.800 --> 00:24:16.520
dass das eine Technik ist,

00:24:16.600 --> 00:24:17.920
die nicht nur für dieses Virus funktioniert,

00:24:18.040 --> 00:24:19.280
sondern die funktioniert prinzipiell

00:24:19.280 --> 00:24:21.160
für eine ganz große Menge an Viren.

00:24:21.600 --> 00:24:24.600
Das heißt, sobald man so ein Virus einmal sequenziert hat,

00:24:24.740 --> 00:24:27.020
kann man prinzipiell sehr schnell damit anfangen.

00:24:27.080 --> 00:24:28.400
Und das war ja auch bei diesem Virus hier so,

00:24:28.940 --> 00:24:30.940
dass die nach zwei Tagen diese Sequenzen,

00:24:30.940 --> 00:24:33.720
die sie da jetzt alle getestet hatten, hatten.

00:24:34.380 --> 00:24:36.740
Die haben diese Virussequenz gekriegt aus China.

00:24:36.760 --> 00:24:37.160
Und war ein kleines Labor.

00:24:37.300 --> 00:24:38.880
Das war auch eine sehr beeindruckende Geschichte.

00:24:40.080 --> 00:24:41.120
War eine Handvoll Männchen nur, oder?

00:24:41.140 --> 00:24:42.780
Das waren unter zehn, die da in dem Labor saßen

00:24:42.780 --> 00:24:43.480
und das gemacht haben, oder?

00:24:44.140 --> 00:24:52.440
Ja genau, das waren also im Wesentlichen halt die Leute von Biontech und die haben das übers Wochenende gemacht und dann hatten sie diese Sequenzen und der Rest der Zeit ist jetzt mit Testen und Herstellen verbraucht worden.

00:24:53.200 --> 00:25:13.880
Und das ist schon beeindruckend, weil wenn diese Technik so funktioniert, dann hat man so eine ganze Klasse von Impfstoffen, die man quasi on demand herstellen kann und das ist schon eine große Sache, wenn ein neueres Virus auftritt und du kannst einfach direkt anfangen, den Impfstoff herzustellen.

00:25:14.140 --> 00:25:16.580
Ja, das ist schon...

00:25:16.580 --> 00:25:17.840
Da wird sich die Sache ganz schön ändern.

00:25:18.220 --> 00:25:20.720
Was ich auch toll fand, das wusste ich auch nicht,

00:25:20.840 --> 00:25:22.020
das war auch für mich völlig neu,

00:25:22.740 --> 00:25:24.700
das hast du mir erstmal in diesem Artikel gelesen, dass du halt

00:25:24.700 --> 00:25:26.720
tatsächlich so eine Art, wie so 3D-Drucker

00:25:26.720 --> 00:25:28.180
oder Drucker für

00:25:28.180 --> 00:25:30.100
RNA kannst du halt einfach kaufen,

00:25:30.600 --> 00:25:32.760
dann nimmst du diese Folge, die du halt

00:25:32.760 --> 00:25:34.480
irgendwie aus dem Internet, aus einer

00:25:34.480 --> 00:25:36.400
aus so einer zwielichtigen Quelle

00:25:36.400 --> 00:25:38.720
irgendwie kopiert, tust das da rein

00:25:38.720 --> 00:25:40.620
und dann drucktest du das Ding halt in RNA einfach

00:25:40.620 --> 00:25:41.660
aus, so in so einer

00:25:41.660 --> 00:25:44.420
30-Mikrogramm-Dosis und

00:25:44.420 --> 00:25:46.360
gut, ist jetzt auch nicht so einfach

00:25:46.360 --> 00:25:47.980
zu handeln, aber dann kann man

00:25:47.980 --> 00:25:50.400
damit halt lustige Sachen machen und das in Muskel

00:25:50.400 --> 00:25:52.340
spritzen und dann programmiert

00:25:52.340 --> 00:25:54.280
das halt irgendwie Zellen. Das ist irgendwie schon

00:25:54.280 --> 00:25:56.340
faszinierend. Da kann man coole Sachen machen.

00:25:56.640 --> 00:25:58.400
Bestimmt können wir irgendwann alle ewig leben.

00:25:59.460 --> 00:26:00.680
Das gibt's

00:26:00.680 --> 00:26:02.420
übrigens auch als As-a-Service.

00:26:02.580 --> 00:26:04.200
Man kann auch solche Sequenzen einfach

00:26:04.200 --> 00:26:05.740
machen und die dann irgendwo hinschicken.

00:26:05.980 --> 00:26:07.020
Live longer as a Service.

00:26:07.740 --> 00:26:09.260
Wir haben auch nicht mehr in Atmung.

00:26:10.380 --> 00:26:11.740
Da müsst ihr vielleicht mal eine Episode

00:26:11.740 --> 00:26:13.900
mit Simon machen, der kann euch

00:26:13.900 --> 00:26:15.440
da Geschichten erzählen,

00:26:16.540 --> 00:26:18.160
die euch sehr beeindrucken

00:26:18.160 --> 00:26:20.020
werden. Es gibt so Gen-Bibliotheken, da kann man

00:26:20.020 --> 00:26:21.440
einfach Samples bestellen.

00:26:22.440 --> 00:26:24.060
Die sind dann, die meisten dieser Samples

00:26:24.060 --> 00:26:25.860
sind auch stabil, das heißt, man kriegt ein Blatt Papier,

00:26:26.040 --> 00:26:27.400
wo einfach ein Kreis drauf ist,

00:26:28.120 --> 00:26:30.060
wo die diese Flüssigkeit drauf getropft haben, die trocknet

00:26:30.060 --> 00:26:32.100
dann, aber die Gen-Materialien,

00:26:32.120 --> 00:26:33.580
die du da bestellt hast, sind ja stabil.

00:26:35.340 --> 00:26:36.120
Kriegst du per Post.

00:26:36.560 --> 00:26:37.980
Versandkosten sind 90 Cent.

00:26:38.620 --> 00:26:40.080
Ja, war so cool.

00:26:40.140 --> 00:26:41.440
Ein weiterer Trick,

00:26:41.720 --> 00:26:43.280
den ich gerade noch erinnert habe,

00:26:43.360 --> 00:26:45.580
normalerweise ist ja immer alles aufgebaut,

00:26:45.680 --> 00:26:46.720
auch in der RNA aus diesem

00:26:46.720 --> 00:26:50.300
A, G, T, U oder so.

00:26:51.300 --> 00:26:52.320
Und das U

00:26:52.320 --> 00:26:54.160
haben sie ausgetauscht gegen was anderes.

00:26:54.600 --> 00:26:55.500
Ich weiß jetzt gar nicht, wie man das ausspricht.

00:26:55.600 --> 00:26:56.420
Irgend so ein griechischer Buchstabe.

00:26:56.440 --> 00:26:57.420
Durch ein Tau.

00:26:59.420 --> 00:27:02.180
Und normalerweise

00:27:02.180 --> 00:27:03.480
eben, das Immunsystem wird halt,

00:27:03.480 --> 00:27:05.560
weil normalerweise funktioniert das mit der RNA nicht so gut,

00:27:05.880 --> 00:27:07.160
wenn man die einfach so nehmen würde

00:27:07.160 --> 00:27:08.720
und irgendwo reinspritzt, weil das Immunsystem

00:27:08.720 --> 00:27:11.260
das verdächtig findet und die sofort

00:27:11.260 --> 00:27:13.380
kaputt macht und so. Aber wenn man

00:27:13.380 --> 00:27:14.920
das U durch ein Tau ersetzt,

00:27:16.140 --> 00:27:17.360
ist diese RNA

00:27:17.360 --> 00:27:19.320
dem Immunsystem einfach vollkommen

00:27:19.320 --> 00:27:21.040
egal. Das reagiert da gar nicht mehr drauf.

00:27:22.600 --> 00:27:23.200
Und das

00:27:23.200 --> 00:27:25.060
ist ja offenbar keine RNA.

00:27:25.400 --> 00:27:26.680
Ja, ist ja offenbar irgendwas anderes.

00:27:27.040 --> 00:27:28.980
Ist ja nicht wichtig.

00:27:29.600 --> 00:27:30.040
Lustigerweise

00:27:30.040 --> 00:27:33.360
in der Zelle und in den Reversum

00:27:33.360 --> 00:27:34.900
macht es halt genau das gleiche wie das U.

00:27:35.560 --> 00:27:37.280
Das heißt, es funktioniert

00:27:37.280 --> 00:27:38.920
halt genauso. Also eigentlich sollte es dem

00:27:38.920 --> 00:27:40.280
Immunsystem vielleicht nicht egal sein.

00:27:42.080 --> 00:27:43.460
Es sind sehr viele

00:27:43.460 --> 00:27:44.440
sehr schöne Hacks drin.

00:27:44.660 --> 00:27:47.120
Und auf der anderen Seite muss man sich auch keine

00:27:47.120 --> 00:27:49.220
Sorgen machen, dass jetzt irgendwie ein Virus

00:27:49.220 --> 00:27:50.880
diesen Trick kopiert und dann damit

00:27:50.880 --> 00:27:53.260
irgendwie unter Umständen sehr, sehr böse werden kann,

00:27:53.640 --> 00:27:55.080
weil man dieses

00:27:55.080 --> 00:27:56.680
Ding kriegt man halt nicht

00:27:56.680 --> 00:27:59.080
in einem biologischen Prozess synthetisiert, sondern

00:27:59.080 --> 00:28:01.120
das geht nur mit Technik

00:28:01.120 --> 00:28:02.140
und so. Das heißt,

00:28:02.960 --> 00:28:04.840
diesen Trick

00:28:04.840 --> 00:28:07.020
kann das Virus sich dem Impfstoff

00:28:07.020 --> 00:28:08.260
nicht abgucken. Also es ist schon

00:28:08.260 --> 00:28:11.000
toll, ja. Also hat viel Spaß

00:28:11.000 --> 00:28:12.940
gemacht, das zu lesen. Ja, also würdest du

00:28:12.940 --> 00:28:14.680
das jetzt als Win zählen oder als Fail?

00:28:14.840 --> 00:28:17.100
Stimmt, das Ding ist eigentlich tatsächlich ein großer Win, ja.

00:28:17.700 --> 00:28:18.820
Das würde ich auch sagen.

00:28:20.780 --> 00:28:22.800
Wie gesagt, das wird in Zukunft eine ganze Klasse

00:28:22.800 --> 00:28:25.200
von Impfstoffen ermöglichen,

00:28:25.260 --> 00:28:27.220
die sehr schnell durch sind.

00:28:27.320 --> 00:28:28.900
Wenn diese Technik einmal etabliert ist, wenn man

00:28:28.900 --> 00:28:30.840
fünf oder zehn solche Impfstoffe gemacht hat, dann einfach

00:28:30.840 --> 00:28:32.800
gar keine Nebenwirkungen passieren, weil die halt nicht

00:28:32.800 --> 00:28:33.360
passieren können.

00:28:34.280 --> 00:28:36.840
Dann gibt es da eine generelle Freigabe, dann musst

00:28:36.840 --> 00:28:38.700
und dann mit einer Sequenz kommen und sagen, ich möchte gerne

00:28:38.700 --> 00:28:40.540
gegen dieses Virus geimpft werden,

00:28:41.400 --> 00:28:42.820
muss zwei Stunden

00:28:42.820 --> 00:28:43.800
warten und bis dann geimpft.

00:28:44.760 --> 00:28:46.860
Ja, das ist auch, also ich meine,

00:28:47.220 --> 00:28:48.520
da gibt es ja jetzt auch Studien, also

00:28:48.520 --> 00:28:50.820
man hat schon Erfahrungswerte, also es gab auch

00:28:50.820 --> 00:28:51.500
große Studien, aber

00:28:51.500 --> 00:28:54.860
in den USA eben 600.000 Leute schon

00:28:54.860 --> 00:28:56.840
geimpft, mindestens jetzt, wahrscheinlich schon mehr

00:28:56.840 --> 00:28:58.960
und tatsächlich gab es irgendwie

00:28:58.960 --> 00:29:00.720
praktisch nichts an

00:29:00.720 --> 00:29:02.300
Nebenwirkungen. Dann gab es,

00:29:03.120 --> 00:29:04.840
was war das

00:29:04.840 --> 00:29:06.780
irgendwie vor ein paar Tagen über Twitter, oh mein Gott,

00:29:06.840 --> 00:29:08.620
Ich frage mich immer, das hört man dann auch

00:29:08.620 --> 00:29:10.560
so von Leuten, so impfen, ja oder

00:29:10.560 --> 00:29:12.340
nein, oder gibt es irgendwie Allergien?

00:29:13.360 --> 00:29:14.640
Ich frage mich immer, wo dann solche

00:29:14.640 --> 00:29:16.760
Informationen herkommen. Wenn die dann Autisten

00:29:16.760 --> 00:29:17.460
Ja

00:29:17.460 --> 00:29:20.520
und jetzt

00:29:20.520 --> 00:29:22.640
auf Twitter habe ich dann tatsächlich mal

00:29:22.640 --> 00:29:24.760
eine von den Quellen für so einen Quatsch

00:29:24.760 --> 00:29:26.320
irgendwie gesehen, das war halt die

00:29:26.320 --> 00:29:28.460
diese Hahnemann-Gesellschaft, also die

00:29:28.460 --> 00:29:30.380
Homöopathie-Leute, hatten auf ihrer Webseite

00:29:30.380 --> 00:29:31.760
eine ganze Reihe von irgendwie

00:29:31.760 --> 00:29:34.540
echt hahnemüchenen

00:29:34.540 --> 00:29:36.420
Behauptungen, unter anderem eben auch,

00:29:36.520 --> 00:29:38.440
dass der Impfstoff Allergien auslösen würde,

00:29:38.520 --> 00:29:39.540
was totaler Quatsch ist.

00:29:40.320 --> 00:29:42.400
Und dann hatte irgendjemand die wohl

00:29:42.400 --> 00:29:44.520
dann auch zur Rede gestellt

00:29:44.520 --> 00:29:46.500
und meinte so, ey, das ist ja schon ganz schön gefährlich,

00:29:46.560 --> 00:29:48.420
was ihr hier schreibt, das ist zur Hölle, was macht

00:29:48.420 --> 00:29:50.340
ihr eigentlich? Und ich so, nein, das haben wir doch

00:29:50.340 --> 00:29:52.140
aus der Studie selber. Da,

00:29:53.000 --> 00:29:54.220
guck doch, da hat es eine Allergie

00:29:54.220 --> 00:29:55.900
ausgelöst. Ja,

00:29:56.280 --> 00:29:57.960
haben dann nochmal Leute reingeguckt, ja,

00:29:58.220 --> 00:29:59.980
das war aber die Kontrollgruppe, die hatten

00:29:59.980 --> 00:30:02.140
das, die haben gar nicht den Impfstoff

00:30:02.140 --> 00:30:04.100
gekriegt. Also das ist echt. Ja, aber,

00:30:04.440 --> 00:30:06.160
also ich meine, das ist ja noch schlimmer, wenn dieser Impfstoff

00:30:06.160 --> 00:30:08.000
bei den Leuten Allergien auslöst, die

00:30:08.000 --> 00:30:09.920
den gar nicht kriegen. Also Jochen, das ist ja jetzt mal ganz ehrlich.

00:30:10.060 --> 00:30:11.180
Ja, Magie.

00:30:11.580 --> 00:30:14.200
Ja, es ist

00:30:14.200 --> 00:30:15.600
schwer dagegen zu argumentieren, das stimmt schon.

00:30:17.140 --> 00:30:18.040
Ja, das ist so ein bisschen

00:30:18.040 --> 00:30:19.540
wie diese Leute,

00:30:20.180 --> 00:30:21.840
denen man dann sagen muss, ja,

00:30:22.140 --> 00:30:24.040
dass jetzt überall die Überwachungskameras sind,

00:30:24.140 --> 00:30:26.000
mit denen Bill Gates die Welt übernehmen möchte und der

00:30:26.000 --> 00:30:28.040
einzige, die einzige Art,

00:30:28.100 --> 00:30:29.880
wie man da drumherum kommt, ist, indem man seinen Mund

00:30:29.880 --> 00:30:31.280
und seine Nase bedeckt und

00:30:31.280 --> 00:30:34.080
die Sorte

00:30:34.080 --> 00:30:35.440
ist es halt. Ja, aber

00:30:35.440 --> 00:30:40.840
Wenn die Kontrollgruppe die Allergien kriegt, dann müsste man eigentlich möglichst schnell den Impfstoff nehmen, damit man diese Allergien nicht bekommt.

00:30:41.500 --> 00:30:48.700
Ja, aber ich verstehe den Ansatz, aber mich ärgert so ein bisschen das Problem, ich habe das Gefühl, dass es langfristig, dass man das nur verlieren kann.

00:30:48.700 --> 00:31:00.180
Weil das Problem ist, wenn man etwas tut, was funktioniert und also sagen wir mal so, wenn man das halt quasi nur so verpacken muss, dass es halt dann akzeptiert wird und es nicht darauf ankommt,

00:31:00.440 --> 00:31:02.460
ob die Begründung dafür richtig oder falsch ist

00:31:02.460 --> 00:31:04.180
oder überhaupt irgendwas richtig oder falsch ist oder alles

00:31:04.180 --> 00:31:06.300
irgendwie nur in einer, keine Ahnung,

00:31:06.360 --> 00:31:08.440
in ihrer Scheinwelt leben, dann hat man das Problem,

00:31:08.840 --> 00:31:10.420
dass die Leute, die halt sich nur

00:31:10.420 --> 00:31:12.380
um die Verpackung Sorgen machen müssen, weil sie halt

00:31:12.380 --> 00:31:14.720
einfach gar keinen Inhalt haben, haben halt einen Vorteil

00:31:14.720 --> 00:31:16.420
und zwar einen strukturellen

00:31:16.420 --> 00:31:18.480
Vorteil. Und man selber

00:31:18.480 --> 00:31:20.260
muss ja auch noch dafür sorgen, dass es funktioniert. Das heißt,

00:31:20.300 --> 00:31:22.280
man kann eigentlich nur verlieren. Das ist nicht gut.

00:31:22.980 --> 00:31:24.380
Ja, auch nicht. Ich sehe da

00:31:24.380 --> 00:31:26.280
eine große Desillusionierung

00:31:26.280 --> 00:31:28.380
auf dich zukommen. Ich möchte dir jetzt nicht sofort

00:31:28.380 --> 00:31:29.320
um die Ohren hauen, aber

00:31:29.320 --> 00:31:30.860
ich befürchte,

00:31:31.420 --> 00:31:33.540
wir müssen da mal eine

00:31:33.540 --> 00:31:35.540
schlimmere Episode drüber machen.

00:31:36.580 --> 00:31:36.880
Ja.

00:31:40.320 --> 00:31:41.300
Ja, okay, aber

00:31:41.300 --> 00:31:43.760
das ist ja alles schon eine sehr schöne Überleitung.

00:31:43.880 --> 00:31:45.800
Lass uns doch mal über Sachen, Themen sprechen, die

00:31:45.800 --> 00:31:46.420
wir so

00:31:46.420 --> 00:31:48.700
wiederfahren sind.

00:31:49.400 --> 00:31:51.000
Ich möchte endlich über mich sprechen.

00:31:51.000 --> 00:31:52.560
Naja, während du dich in der Jugend

00:31:52.560 --> 00:31:53.180
konzentriert hast.

00:31:56.800 --> 00:31:58.880
Ja, dann genau. Was haben wir denn

00:31:58.880 --> 00:32:00.980
so an Dingen, die gut oder

00:32:00.980 --> 00:32:01.740
schlecht gelaufen sind.

00:32:02.520 --> 00:32:04.960
Ich habe eine schöne Anekdote von ganz, ganz,

00:32:04.960 --> 00:32:06.400
ganz früher. Ich habe früher

00:32:06.400 --> 00:32:08.540
ganz viel mit Oracle-Datenbanken gearbeitet.

00:32:08.680 --> 00:32:10.980
Habt ihr schon mal die Freude

00:32:10.980 --> 00:32:12.980
gehabt, mit Oracle-Datenbanken arbeiten zu

00:32:12.980 --> 00:32:14.520
dürfen? Ja. Nö.

00:32:15.680 --> 00:32:17.080
Ja. Ich schätze mal,

00:32:17.120 --> 00:32:18.800
Jochen, der Grund war bei dir

00:32:18.800 --> 00:32:19.700
der gleiche wie bei mir.

00:32:20.900 --> 00:32:21.500
Wir haben das halt.

00:32:23.400 --> 00:32:25.000
Naja, das war, also tatsächlich

00:32:25.000 --> 00:32:27.140
web.de lief

00:32:27.140 --> 00:32:28.440
zum großen Teil, also

00:32:28.440 --> 00:32:30.080
also der Team-Mail lief halt

00:32:30.080 --> 00:32:32.400
auf Oracle quasi. Weiß nicht, ob das

00:32:32.400 --> 00:32:34.200
immer noch so ist, aber vor langer Zeit war das so.

00:32:34.580 --> 00:32:36.400
Das war in den 90ern noch, da gab es mal so

00:32:36.400 --> 00:32:38.420
Oracle-Krams. Ja, in den Nullern auch noch.

00:32:39.540 --> 00:32:40.540
Ja, bei mir war das auch

00:32:40.540 --> 00:32:41.060
in den Nullern.

00:32:44.120 --> 00:32:44.440
Ja.

00:32:44.680 --> 00:32:46.800
Ja, bei uns war im Wesentlichen

00:32:46.800 --> 00:32:48.680
die Begründung, dass der Hersteller das Produkt

00:32:48.680 --> 00:32:50.880
ist, das wir vertrieben haben, halt das vorgegeben

00:32:50.880 --> 00:32:52.820
hat, weil andere Datenbanken sind nicht schnell

00:32:52.820 --> 00:32:53.100
genug.

00:32:54.580 --> 00:32:56.280
Was damals schon eine sehr interessante

00:32:56.280 --> 00:32:58.540
Auffassung, Behauptung war.

00:32:59.380 --> 00:32:59.540
Ja.

00:33:00.460 --> 00:33:01.760
Wir haben es auch nicht näher untersucht.

00:33:01.780 --> 00:33:02.780
Vielleicht war da Magie im Spiel.

00:33:04.900 --> 00:33:06.560
Ich schätze, dass da so grüne

00:33:06.560 --> 00:33:08.780
Papierscheinchen-Magie

00:33:08.780 --> 00:33:10.820
im Spiel gewesen sein mag.

00:33:10.880 --> 00:33:11.860
Diese Magie schon wieder.

00:33:12.680 --> 00:33:15.060
Ja. Kennt ihr den Softwarehersteller

00:33:15.060 --> 00:33:16.340
CA?

00:33:17.640 --> 00:33:18.440
Die hießen früher mal

00:33:18.440 --> 00:33:19.280
Computer Associates.

00:33:20.880 --> 00:33:23.420
in der Enterprise-Welt

00:33:23.420 --> 00:33:25.540
ungeheuer groß, sind inzwischen

00:33:25.540 --> 00:33:26.380
auch gekauft von

00:33:26.380 --> 00:33:28.720
irgendjemandem. Ich weiß gar nicht von wem.

00:33:29.640 --> 00:33:30.520
Als wir damals,

00:33:31.200 --> 00:33:32.780
wir waren da eben Partner von denen,

00:33:33.500 --> 00:33:35.360
da haben die 15 Milliarden Dollar Umsatz im Jahr

00:33:35.360 --> 00:33:36.920
gemacht, aber außerhalb der

00:33:36.920 --> 00:33:39.280
Enterprise-Industrie kannte die

00:33:39.280 --> 00:33:40.620
und kennt die auch quasi niemand.

00:33:41.740 --> 00:33:43.400
So der freundliche, unbekannte

00:33:43.400 --> 00:33:45.340
Riese. Jedenfalls mussten wir da Oracle

00:33:45.340 --> 00:33:46.620
Datenbank verwenden und

00:33:46.620 --> 00:33:49.340
es gibt ja dieses schöne Statement

00:33:49.340 --> 00:33:51.520
DeleteFrom für SQL-Datenbanken.

00:33:51.780 --> 00:33:53.480
Habt ihr sicherlich auch schon mal verwendet.

00:33:54.000 --> 00:33:55.340
DeleteStaffFrom, du sagst.

00:33:56.420 --> 00:33:57.340
Nee, DeleteFrom

00:33:57.340 --> 00:33:59.380
heißt der Befehl einfach nur, weil du

00:33:59.380 --> 00:34:01.360
da erst dann angibst mit einer

00:34:01.360 --> 00:34:03.160
Where-Klausel, was alles gelöscht werden soll.

00:34:04.480 --> 00:34:05.420
Also DeleteFrom, dann

00:34:05.420 --> 00:34:07.400
gibst du an die Tabelle, aus der gelöscht werden soll und dann

00:34:07.400 --> 00:34:09.420
mit einer Where-Bedingung, welche Zeilen gelöscht werden sollen.

00:34:10.520 --> 00:34:10.840
Und

00:34:10.840 --> 00:34:13.240
das hat das Potenzial, sehr

00:34:13.240 --> 00:34:15.280
viele Zeilen zu löschen,

00:34:15.340 --> 00:34:17.320
weil wenn du dieses Where vergisst oder wenn du dazwischen

00:34:17.320 --> 00:34:19.160
einen Kommentar machst, dann

00:34:19.160 --> 00:34:21.200
hast du ein Delete-From-Tabelle

00:34:21.200 --> 00:34:22.580
und dann wird diese gesamte Tabelle gelöscht.

00:34:24.640 --> 00:34:25.220
Und das haben

00:34:25.220 --> 00:34:27.000
manche von uns Entwicklern auf die

00:34:27.000 --> 00:34:28.960
harte Tour rausgefunden, dass das so ist.

00:34:29.080 --> 00:34:30.580
Manche von uns. Weil wir halt tatsächlich

00:34:30.580 --> 00:34:32.420
einfach mal, ich will jetzt

00:34:32.420 --> 00:34:35.160
keinen Namen nennen, ich will jetzt auch niemanden

00:34:35.160 --> 00:34:36.680
hier persönlich an den Pranger stellen.

00:34:37.760 --> 00:34:38.500
Delete-From.

00:34:38.800 --> 00:34:41.560
Wenn man nur Delete-From-Tabellenname

00:34:41.560 --> 00:34:42.740
ergibt,

00:34:43.680 --> 00:34:44.900
dann löscht das einfach alle Zeilen

00:34:44.900 --> 00:34:45.700
aus einer Tabelle raus.

00:34:47.660 --> 00:34:48.920
Und das ist ja sehr

00:34:48.920 --> 00:34:50.140
ungünstig, wenn das mal passiert.

00:34:51.380 --> 00:34:53.080
Je nachdem. Manchmal möchte man das aber auch.

00:34:53.220 --> 00:34:54.840
Ja. Genau, manchmal möchte man das auch.

00:34:54.920 --> 00:34:56.680
Manchmal möchte man alle Zeilen einer Tabelle löschen.

00:34:56.900 --> 00:34:58.960
Insbesondere dann, wenn man gerade mit der Testdatenbank

00:34:58.960 --> 00:34:59.700
verbunden ist

00:34:59.700 --> 00:35:02.900
und die mal resetten möchte

00:35:02.900 --> 00:35:04.160
und einfach mal alles löschen möchte.

00:35:05.940 --> 00:35:07.040
Da ist jetzt schon der erste

00:35:07.040 --> 00:35:08.920
Fail. Das passiert nämlich manchmal, dass man

00:35:08.920 --> 00:35:10.800
versinnlich nicht mit der Testdatenbank

00:35:10.800 --> 00:35:12.800
verbunden ist, sondern mit der

00:35:12.800 --> 00:35:13.640
Produktivdatenbank.

00:35:15.220 --> 00:35:16.920
Aber zum Glück, und das ist was sehr

00:35:16.920 --> 00:35:17.540
Interessantes,

00:35:18.840 --> 00:35:37.280
Und wir haben dann gemerkt, dass dieser Befehl sehr, sehr langsam ist. So ein DeleteFrom macht ja eigentlich nicht viel, das löscht halt die Tabelle und das müsste ja eigentlich so im Handumdrehen gehen. Aber dieser Befehl ist sehr langsam, weil der löscht die Tabellenzeilen nicht einfach nur, sondern der verschiebt die ins UndoLog.

00:35:39.240 --> 00:35:57.420
Tatsächlich hat Oracle, anders als andere Datenbanksysteme, einen Papierkorb und dieser Papierkorb ist das Undo-Log. Das heißt, wenn du ein Delete-From gemacht hast, kannst du die Zeilen wieder retten, wenn du rechtzeitig zu deinem Systemadministrator gehst und sagst, ich hoffe, ihr habt das Undo-Log noch nicht gelöscht oder geleert oder überschrieben und dann kriegst du die Zeilen wieder.

00:36:00.060 --> 00:36:03.920
Jetzt ist es so, wenn das passiert, dann ist das sehr langsam.

00:36:04.100 --> 00:36:06.900
Gerade wenn man eine Tabelle löscht, wo eine Milliarde Zeilen drin sind,

00:36:06.980 --> 00:36:07.940
dann ist das halt sehr langsam.

00:36:08.620 --> 00:36:13.040
Und weil das zu langsam ist, gibt es bei Oracle einen speziellen Befehl,

00:36:13.120 --> 00:36:14.420
der heißt Truncate Table.

00:36:16.220 --> 00:36:20.680
Der macht das, was normalerweise ein Delete From ohne Bedingung macht.

00:36:21.120 --> 00:36:23.480
Der löscht alle Zeilen aus einer Tabelle und zwar schnell,

00:36:24.260 --> 00:36:27.320
ohne die ins Undo Log zu tun.

00:36:27.840 --> 00:36:29.160
Und ihr könnt euch denken,

00:36:29.240 --> 00:36:29.760
wohin das geführt,

00:36:29.960 --> 00:36:30.780
wozu das geführt hat.

00:36:31.280 --> 00:36:31.940
Und zwar DeleteFrom.

00:36:32.140 --> 00:36:33.980
Jeder Entwickler in der Abteilung

00:36:33.980 --> 00:36:35.940
war dieses DeleteFrom zu langsam.

00:36:36.800 --> 00:36:39.040
Wir sind einfach alle auf TruncateTable

00:36:39.040 --> 00:36:40.740
übergegangen.

00:36:41.480 --> 00:36:43.060
Was dann so diesen ganzen Sinn,

00:36:43.140 --> 00:36:45.160
dieses Undulog so ein kleines bisschen kaputt gemacht hat,

00:36:45.240 --> 00:36:46.800
als der Erste halt tatsächlich

00:36:46.800 --> 00:36:48.400
in der Produktionsdatenbank

00:36:48.400 --> 00:36:50.200
ein TruncateTable gemacht hat.

00:36:50.580 --> 00:36:51.480
Nicht nur ein DeleteFrom,

00:36:51.760 --> 00:36:52.940
sondern ein TruncateTable.

00:36:53.380 --> 00:36:55.060
Und einfach mal eine von den

00:36:55.060 --> 00:36:57.600
Projektdatentabellen gelöscht hat.

00:36:57.820 --> 00:36:59.020
Schwupps, schwupps. Das war

00:36:59.020 --> 00:37:00.880
ein nicht so cooler Tag.

00:37:03.140 --> 00:37:03.980
Ja, ich würde sagen,

00:37:04.320 --> 00:37:05.260
ich bin den Stecker gezogen.

00:37:06.580 --> 00:37:07.680
Ja, das war auch die Firma,

00:37:07.940 --> 00:37:09.280
wo sie, damals hatten wir noch Subversion,

00:37:09.960 --> 00:37:11.840
wo das

00:37:11.840 --> 00:37:13.600
Subversion auf einem Raid lag und eine von den

00:37:13.600 --> 00:37:15.560
Festplatten kaputt gegangen ist und dann der

00:37:15.560 --> 00:37:17.560
Hersteller gekommen ist und die falsche Festplatte

00:37:17.560 --> 00:37:18.340
ausgetauscht hat.

00:37:21.120 --> 00:37:21.740
Die eine hat

00:37:21.740 --> 00:37:23.080
er hoffentlich direkt fachgerecht entsorgt.

00:37:24.520 --> 00:37:25.480
Also wir hatten

00:37:25.480 --> 00:37:27.640
auf jeden Fall ungefähr eine Woche an Sachen

00:37:27.640 --> 00:37:29.340
verloren, die einfach dann nicht mehr da waren.

00:37:29.740 --> 00:37:31.880
Und Subversion ist ja auch nicht einfach so, dass du wieder pushen kannst.

00:37:32.020 --> 00:37:33.740
Ist ja nicht wie heutzutage, wo

00:37:33.740 --> 00:37:35.620
jeder eine Kopie hat, sondern Subversion ist dann halt

00:37:35.620 --> 00:37:36.960
einfach erstmal komplett kaputt.

00:37:37.400 --> 00:37:41.920
Ja, ich erinnere mich

00:37:41.920 --> 00:37:43.440
da auch. Schöne, professionelle

00:37:43.440 --> 00:37:44.860
Zeiten damals.

00:37:46.180 --> 00:37:47.820
Da hat wohl einer keine Backups gehabt.

00:37:49.640 --> 00:37:49.860
Ja,

00:37:49.860 --> 00:37:50.600
wir hatten ja einen Raid.

00:37:53.460 --> 00:37:54.040
Ja, ja.

00:37:54.120 --> 00:37:55.880
Brauchst du ja nicht. Habe ich gar nicht vor so langer

00:37:55.880 --> 00:37:57.240
Zeit gemacht. Ich glaube, das ist ein paar Wochen her.

00:37:57.640 --> 00:37:58.260
Reset Schema

00:37:58.260 --> 00:38:01.180
in einem Projekt, in einer Deploy-Chain

00:38:01.180 --> 00:38:03.640
und dann vergessen,

00:38:03.780 --> 00:38:04.820
das Backup dann wieder aufzuspielen.

00:38:05.360 --> 00:38:07.000
Du hast es gleich direkt automatisiert gemacht.

00:38:07.480 --> 00:38:09.640
Das ist doch, würde ich sagen, sehr modern.

00:38:09.760 --> 00:38:11.800
Du hast nicht nur die Daten mal gelöscht, sondern du hast sie gleich

00:38:11.800 --> 00:38:13.960
automatisiert und mit Tests gelöscht.

00:38:14.800 --> 00:38:14.980
Ja.

00:38:16.420 --> 00:38:17.700
Die hätte man wahrscheinlich noch wieder herstellen können.

00:38:17.700 --> 00:38:18.280
Wiederholbar gelöscht.

00:38:19.900 --> 00:38:21.440
War nicht so schlimm eigentlich, weil

00:38:21.440 --> 00:38:22.660
das Projekt liegt noch nicht so lange.

00:38:24.160 --> 00:38:25.580
Ja, so einen ähnlichen Fall

00:38:25.580 --> 00:38:27.040
habe ich mal, ich meine, man kann halt,

00:38:27.220 --> 00:38:28.400
Habe ich auch mal produziert.

00:38:29.180 --> 00:38:30.520
Allerdings, was war ja so ein...

00:38:30.520 --> 00:38:32.160
Ich meine, Datenbanken kann man natürlich löschen.

00:38:32.340 --> 00:38:35.100
Das ist eine Möglichkeit, irgendwie sie unverfügbar zu machen.

00:38:35.660 --> 00:38:37.060
Eine andere elegante Möglichkeit,

00:38:37.520 --> 00:38:38.060
Datenbanken

00:38:38.060 --> 00:38:42.600
von der Verfügbarkeit zu entfernen,

00:38:42.600 --> 00:38:44.160
ist halt, sie einfach auszuschalten.

00:38:44.520 --> 00:38:46.180
Und normalerweise merkt man das halt auch immer sofort,

00:38:46.460 --> 00:38:47.760
wenn eine Datenbank weg ist.

00:38:48.440 --> 00:38:49.420
Manchen Datenbanken,

00:38:50.420 --> 00:38:52.540
da ist das Caching so advanced, dass man das nicht

00:38:52.540 --> 00:38:54.700
sofort merkt. Zum Beispiel bei DNS.

00:38:56.360 --> 00:38:58.740
Oh, den ist es auch generell. Ein sehr schönes Thema.

00:38:59.460 --> 00:39:00.580
Und genau, wenn man

00:39:00.580 --> 00:39:02.980
so den Primary DNS-Server ausschaltet,

00:39:03.120 --> 00:39:04.860
einfach, weil man das irgendwie sich verguckt hat

00:39:04.860 --> 00:39:06.520
und im Reck des Falschen

00:39:06.520 --> 00:39:08.600
kann auch schon mal sein, dass

00:39:08.600 --> 00:39:10.740
man das halt nicht sofort merkt,

00:39:10.840 --> 00:39:12.620
weil, naja, das meiste ist ja gecached,

00:39:12.700 --> 00:39:13.680
das funktioniert einfach alles weiter.

00:39:14.260 --> 00:39:16.500
Manche kriegen halt so seltsame Failermeldungen, aber manchmal

00:39:16.500 --> 00:39:18.820
das ist halt so, Computer, manchmal funktionieren

00:39:18.820 --> 00:39:19.480
Dinge nicht so richtig.

00:39:20.660 --> 00:39:21.960
Überprüfe deine Netzwerkverbindung.

00:39:22.340 --> 00:39:24.580
Und dann wird es halt nur irgendwann

00:39:24.580 --> 00:39:26.520
dann komisch, wenn dann halt der Traffic immer

00:39:26.520 --> 00:39:28.360
weiter runter geht und man weiß nicht so recht, warum.

00:39:28.520 --> 00:39:29.200
Und dann denkt man sich so,

00:39:29.300 --> 00:39:32.240
was ist denn heute für ein Datum?

00:39:32.580 --> 00:39:34.100
Ist da irgendwie Weihnachten gerade?

00:39:34.360 --> 00:39:36.340
Oder Fußball-Weltmeisterschaft?

00:39:36.740 --> 00:39:37.800
Oder wenn es das nicht ist,

00:39:38.780 --> 00:39:40.560
okay, das sieht jetzt aber schon

00:39:40.560 --> 00:39:42.520
komisch aus. Aber das

00:39:42.520 --> 00:39:44.600
Problem ist, wenn man es dann bemerkt, ist es halt schon zu spät.

00:39:45.140 --> 00:39:46.580
Weil dann haben nämlich auch alle...

00:39:46.580 --> 00:39:47.900
Ja, und dann hast du auch die Cash-Zeiten

00:39:47.900 --> 00:39:50.000
beim Hochfahren auch wieder.

00:39:50.220 --> 00:39:52.120
Aber da hast du auch keine halben Sachen gemacht, wenn du direkt in

00:39:52.120 --> 00:39:52.880
Primary-DN ist.

00:39:54.460 --> 00:40:09.860
Ja, das war so bitter, dass dann auch tatsächlich jemand hingegangen ist, also da musste irgendwie tatsächlich jemand irgendwie von Hand im DE so ein Pfeil was fixen, so mit einem VI auf einem, weiß ich nicht, mehrere hundert Megabyte großen Ding.

00:40:09.880 --> 00:40:11.080
Du bist schon länger im Business als wir.

00:40:11.920 --> 00:40:18.200
Ja, ich weiß nicht, wie oft sowas nötig ist, aber …

00:40:18.200 --> 00:40:20.500
Wie lange hat das gedauert, bis das wieder verfügbar war?

00:40:21.140 --> 00:40:23.560
Ja, so ein paar Stunden hat das schon irgendwie Probleme gemacht.

00:40:23.560 --> 00:40:24.720
Bis es aufgefallen ist?

00:40:25.060 --> 00:40:26.320
Es hat ein paar Stunden gedauert.

00:40:26.380 --> 00:40:27.500
Ich weiß nicht, ob es ein paar Stunden waren.

00:40:27.640 --> 00:40:28.660
Ich weiß nicht genau, wie lange es gedauert hat.

00:40:28.760 --> 00:40:30.900
Es war eine Zeit lang, bis es aufgefallen ist.

00:40:31.000 --> 00:40:32.100
Und dann hat es nochmal ein paar Stunden gedauert,

00:40:32.160 --> 00:40:32.900
bis es wieder gefixt war.

00:40:33.920 --> 00:40:35.580
Deswegen konnte ich damals keine E-Mails mehr empfangen.

00:40:37.860 --> 00:40:39.940
Deswegen ist damals meine Oma gestorben,

00:40:40.260 --> 00:40:42.700
die dringend auf die E-Mail-Bestätigung

00:40:42.700 --> 00:40:44.020
von ihrem Arzt gewartet hat.

00:40:45.100 --> 00:40:47.560
Ja, ich glaube, damals war das alles noch so.

00:40:48.820 --> 00:40:49.780
War es noch nicht so kritisch?

00:40:49.800 --> 00:40:51.020
War noch nicht so, ja.

00:40:52.620 --> 00:40:53.180
Weiß nicht.

00:40:53.440 --> 00:40:55.320
Ja, das ist, meine Frau ist ja

00:40:55.320 --> 00:40:57.520
Ärztin und bei der

00:40:57.520 --> 00:40:59.260
geht es um Menschenleben, aber das ist ja nicht so schlimm,

00:40:59.380 --> 00:41:00.380
weil bei uns geht es ja um Geld.

00:41:02.260 --> 00:41:03.580
Geld oder Leben, Geld oder Leben.

00:41:05.080 --> 00:41:05.280
Ja.

00:41:05.640 --> 00:41:05.920
Ja.

00:41:07.200 --> 00:41:09.580
Ja, das ist doch schön, aber es ist schön, dass jeder von uns

00:41:09.580 --> 00:41:11.260
auch so eine Geschichte hat, wo er einfach mal

00:41:11.260 --> 00:41:13.140
Produktivdaten

00:41:13.140 --> 00:41:14.640
entfernt oder gelöscht oder

00:41:14.640 --> 00:41:17.360
verfügbar. Ja, ich glaube, das passiert auch allen irgendwann

00:41:17.360 --> 00:41:19.160
früher oder später mal. Das ist halt,

00:41:19.760 --> 00:41:21.160
ja. Das ist die

00:41:21.160 --> 00:41:23.160
Feuertaufe. Oder auch,

00:41:23.220 --> 00:41:25.640
Backups machen auf dem gleichen Server

00:41:25.640 --> 00:41:27.680
wie die Datenbank und dann ist der

00:41:27.680 --> 00:41:29.700
Server weg oder die Platte

00:41:29.700 --> 00:41:31.600
davon im Arsch und dann ja, Backups leider

00:41:31.600 --> 00:41:32.300
dann auch weg.

00:41:33.980 --> 00:41:35.720
Ja, Backups muss man immer

00:41:35.720 --> 00:41:36.300
Off-Site machen.

00:41:37.880 --> 00:41:39.660
Hätte man auch eigentlich vorher drauf kommen können.

00:41:39.680 --> 00:41:40.360
Da gibt es auch das Zwiebelmodell.

00:41:41.820 --> 00:41:43.720
Du musst Schichten von Backups haben. Die erste Schicht

00:41:43.720 --> 00:41:45.700
ist die ganz nahe und die

00:41:45.700 --> 00:41:47.480
zweite Schicht ist im gleichen

00:41:47.480 --> 00:41:49.680
Gebäude und die dritte Schicht ist im gleichen Land

00:41:49.680 --> 00:41:51.980
und die vierte Schicht ist auf dem gleichen Planeten.

00:41:52.180 --> 00:41:55.520
Und dann Schicht 5 Backups

00:41:55.520 --> 00:41:56.600
haben wir leider noch nicht so viele.

00:41:57.840 --> 00:41:59.460
Ja, könnte man aber eigentlich so ein bisschen rausschießen.

00:41:59.620 --> 00:42:01.260
Wir haben ja genug Planeten, die verfügbar wären.

00:42:02.100 --> 00:42:03.220
Also das ist jetzt ein kleiner Exkurs,

00:42:03.320 --> 00:42:04.060
aber wir hatten ja gerade so.

00:42:04.440 --> 00:42:07.420
Die Datenrate ist gut, aber die Latenz

00:42:07.420 --> 00:42:07.940
ist sehr langsam.

00:42:08.660 --> 00:42:11.340
Wie hieß das Ding? Habt ihr das verfolgt?

00:42:11.660 --> 00:42:13.160
Spaceship One oder so? Keine Ahnung.

00:42:13.220 --> 00:42:15.320
Haben sie jetzt diesen High-Altitude-Test gemacht?

00:42:16.620 --> 00:42:17.300
Also wir sind diesem

00:42:17.300 --> 00:42:19.140
anderen Planeten-Ding schon

00:42:19.140 --> 00:42:20.460
hochgeschickt. Bitte?

00:42:21.740 --> 00:42:23.640
Haben die sogar schon Leute damit ...

00:42:23.640 --> 00:42:26.420
Ja, ja, nee, aber das ist diese ...

00:42:26.420 --> 00:42:29.680
Ich verfolge das immer nur so am Rande.

00:42:29.700 --> 00:42:30.840
Ist das von Jeff Bezos oder von Elon Musk?

00:42:30.960 --> 00:42:32.980
Welche reiche Raketenfirma ...

00:42:32.980 --> 00:42:34.080
Ja, ja, Elon Musk war das.

00:42:36.380 --> 00:42:39.000
Und Virgin Galactic, der dritte reiche Mann,

00:42:39.420 --> 00:42:42.660
der dritte verrückte Milliardär, hat doch auch eine Raketenfirma.

00:42:42.660 --> 00:42:44.060
Hat der auch Raketenfirma inzwischen?

00:42:44.420 --> 00:42:45.520
Ich dachte, der macht noch was mit dem Flugzeug.

00:42:45.840 --> 00:42:46.920
Und er ist noch irgendwer, der ...

00:42:46.920 --> 00:42:47.640
Wer ist der? Branson?

00:42:48.860 --> 00:42:50.220
Ja, Richard Branson.

00:42:50.300 --> 00:42:52.240
Ist ja hochgeflogen, ne? Man wollte unbedingt...

00:42:52.240 --> 00:42:54.360
Ach nein, das Ding heißt irgendwie nicht

00:42:54.360 --> 00:42:56.520
Spaceship One, sondern Starship... Ach Gott.

00:42:56.940 --> 00:42:59.000
Naja, wie auch immer...

00:42:59.000 --> 00:42:59.820
Genau, aber...

00:42:59.820 --> 00:43:01.760
Der Namespace in dem Bereich wird jetzt auch schon knapp.

00:43:04.340 --> 00:43:06.120
Ja, nee, aber das Ding ist wirklich riesig.

00:43:06.300 --> 00:43:07.820
Also das ist halt nicht das...

00:43:07.820 --> 00:43:09.480
Also das ist halt irgendwie auch eine neue Technik.

00:43:09.600 --> 00:43:11.420
Das ist einmal ein neues Material, das ist irgendwie Edelstahl

00:43:11.420 --> 00:43:12.540
statt Aluminium oder so.

00:43:13.580 --> 00:43:15.540
Und eine neue Technik, das soll wiederverwendbar sein

00:43:15.540 --> 00:43:17.100
und das segelt sozusagen irgendwie wieder runter.

00:43:17.200 --> 00:43:20.120
Und es ist größer als die Saturn V, also es ist wirklich riesig.

00:43:20.200 --> 00:43:21.920
Also das ist halt sozusagen der...

00:43:21.920 --> 00:43:24.160
Ja, sowas habe ich bei Kerbel Space Program auch schon mal gebaut.

00:43:26.440 --> 00:43:27.560
Da gibt es noch diesen tollen Talk.

00:43:27.580 --> 00:43:29.220
Hat auch einwandfrei funktioniert.

00:43:30.340 --> 00:43:32.280
Da gibt es noch ein paar tolle Talks, wie man Raumschiffe baut

00:43:32.280 --> 00:43:33.460
und wie man Raumschiffe fliegt.

00:43:34.620 --> 00:43:35.700
Die gab es auch mal zwischendurch.

00:43:35.900 --> 00:43:37.420
In Kerbel oder in echt?

00:43:37.880 --> 00:43:39.040
Ja, in echt, in echt, in echt.

00:43:39.960 --> 00:43:40.660
In echt, okay.

00:43:41.220 --> 00:43:43.260
Ja, es gibt ja auch ganz viele so Amateurfirmen,

00:43:43.440 --> 00:43:47.120
die das versuchen und da machen.

00:43:47.660 --> 00:43:56.400
Copenhagen Aerospace ist eine Amateurfirma, die, das ist nicht mal eine Firma, das ist ein Verein, der halt Raketen baut und ins Weltall schicken möchte.

00:43:56.980 --> 00:44:00.440
Der US hat das, wie man das macht, das ist sehr interessant, also wenn der euch das interessiert.

00:44:01.080 --> 00:44:04.960
Und weil wir gerade bei Planeten waren, das gibt ja irgendwie, wo man dann hinfliegen kann.

00:44:05.000 --> 00:44:10.260
Es gibt ja so viele wie, oder mehr als Sandkörner wahrscheinlich auf der Erde und das ist natürlich schon gut, wenn die nicht so weit weg wären.

00:44:10.260 --> 00:44:13.600
Und da muss man sich halt irgendwie überlegen, wie man da die Zeit überbrücken kann.

00:44:13.820 --> 00:44:15.800
wir haben ja Computer dabei, vielleicht kann man da so ein bisschen

00:44:15.800 --> 00:44:18.000
seine Langeweile vertreiben und Tetris spielen

00:44:18.000 --> 00:44:18.360
oder so.

00:44:21.200 --> 00:44:22.200
Ja, finde ich gut.

00:44:22.940 --> 00:44:23.320
Ja, ja.

00:44:23.600 --> 00:44:25.580
Das ist ja vielleicht so die Frage, wie man seine Zeit

00:44:25.580 --> 00:44:28.000
kann er endlich mal seine Steam-Bibliothek

00:44:28.000 --> 00:44:28.460
abarbeiten.

00:44:30.900 --> 00:44:32.020
Noch so ein Wenn übrigens

00:44:32.020 --> 00:44:34.040
oder ein Fail. Ich weiß nicht, Cyberpunk oder Johannes.

00:44:35.600 --> 00:44:36.260
Ja, ach.

00:44:39.000 --> 00:44:42.040
Das ist ja, die Nachrichten sind unterhaltsamer

00:44:42.040 --> 00:44:42.760
als das Spiel, oder?

00:44:43.820 --> 00:44:45.220
Ja, so schlimm.

00:44:46.020 --> 00:44:46.840
Ist doch großartig.

00:44:47.660 --> 00:44:49.760
Nein, also das Spiel ist sicherlich

00:44:49.760 --> 00:44:51.540
sehr gut, wenn es läuft, aber man hört ja

00:44:51.540 --> 00:44:53.340
nur von Leuten, bei denen es nicht funktioniert.

00:44:53.700 --> 00:44:55.740
Tja, kann man nichts machen,

00:44:55.920 --> 00:44:57.120
wenn man das auf einer alten Hand nicht spürt.

00:44:57.140 --> 00:44:59.080
Ein Gentleman genießt und schweigt.

00:44:59.300 --> 00:44:59.580
Na gut.

00:45:01.180 --> 00:45:02.960
Wisst ihr, wo wir gerade dabei sind?

00:45:03.060 --> 00:45:04.960
Das ist eine volle gute Überleitung, die mir gerade so einfällt.

00:45:05.300 --> 00:45:06.980
Wisst ihr, was ein galaktischer Algorithmus ist?

00:45:07.640 --> 00:45:07.900
Aha.

00:45:11.020 --> 00:45:11.420
Das,

00:45:11.580 --> 00:45:12.860
was total witzig ist,

00:45:12.880 --> 00:45:17.160
es gibt ja für alle möglichen Sachen Algorithmen,

00:45:17.160 --> 00:45:19.480
die in ihrer Laufzeit gemessen werden.

00:45:19.600 --> 00:45:22.100
Und Laufzeitmessung ist ja immer mit Groß-O-Notation.

00:45:23.620 --> 00:45:26.700
Und Groß-O-Notation heißt,

00:45:27.040 --> 00:45:29.280
dass es asymptotisch sich so verhält,

00:45:29.400 --> 00:45:32.060
wie die da gezeigte Funktion.

00:45:32.200 --> 00:45:33.560
Also zum Beispiel O von n Quadrat

00:45:33.560 --> 00:45:37.780
kann ganz große konstante Faktoren haben.

00:45:37.960 --> 00:45:40.600
Aber wenn man das n genügend groß wählt,

00:45:41.420 --> 00:45:45.420
dann ist es auf jeden Fall so wie n Quadrat.

00:45:47.700 --> 00:45:50.740
Und es gibt eine Klasse von Algorithmen,

00:45:50.820 --> 00:45:51.820
die heißt galaktische Algorithmen,

00:45:51.880 --> 00:45:54.300
die haben sehr gute O-Notationen.

00:45:54.300 --> 00:45:56.540
Also sie sind dann O von n log n

00:45:56.540 --> 00:45:58.400
oder O von n hoch 1, noch was.

00:45:58.560 --> 00:45:59.680
Also besser als alles andere.

00:46:00.300 --> 00:46:02.280
Aber wenn man die konstanten Faktoren ausrechnet,

00:46:02.460 --> 00:46:08.320
dann ist dieses n halt 10 hoch 40 oder sowas.

00:46:09.000 --> 00:46:10.160
Das ist ein bisschen schlecht.

00:46:10.180 --> 00:46:32.300
Die Problemgröße ist, ja genau, die Problemgröße ist halt, die konstanten Faktoren sind halt so dominant, dass es erst dann Sinn macht, diesen Algorithmus einzusetzen, wenn man einen Computer hat, der so groß ist wie eine Galaxis. Deshalb heißen die galaktische Algorithmen, sind prinzipiell die besten Lösungen für verschiedene Probleme, aber in der Praxis nicht ungeheuer gut.

00:46:33.800 --> 00:46:43.100
Es gibt auch manche von denen, die haben dann so Konstanten drin, wo du halt quasi eine Look-Up-Table vorher ausrechnen musst und der ist halt auch schon 10 hoch 40 Byte groß oder irgendwie sowas ganz albernes.

00:46:43.100 --> 00:47:02.740
Das erinnert mich sehr an Series auf Interstellar Trade, wo es halt um die säkulare Verbesserung der Terms of Trade geht und zwischen zwei verschiedenen Zivilisationen, die relativ lange brauchen, ein bisschen miteinander Handel treiben können. Das kommt so in gewisser Weise, das ist halt faktischer Unsinn, aber theoretisch ein super tolles Modell.

00:47:03.800 --> 00:47:05.820
ja, theoretisch optimal, aber

00:47:05.820 --> 00:47:07.920
in der Praxis leider nicht. Ja, auch ein galaktischer

00:47:07.920 --> 00:47:09.440
Algorithmus. Nicht anzuwenden.

00:47:09.960 --> 00:47:11.420
Das war übrigens ein Paper von Krugman,

00:47:11.820 --> 00:47:13.600
falls ihr das, müssen wir auch mal verlinken in die Shownotes.

00:47:13.800 --> 00:47:15.760
Ja, tust du auch mal in die Shownotes, ich lese das dann und

00:47:15.760 --> 00:47:17.380
das finde ich gut.

00:47:17.680 --> 00:47:19.800
Ich mag das gerne, so Paper lesen.

00:47:20.060 --> 00:47:21.640
Auch dieses Virus-Paper habe ich auch mit

00:47:21.640 --> 00:47:23.420
sehr viel Freude gelesen, das war auch sehr schön.

00:47:25.080 --> 00:47:25.820
Ja, warum war das

00:47:25.820 --> 00:47:27.560
eine Überleitung? Weil ich habe jetzt hier, ihr

00:47:27.560 --> 00:47:29.500
könnt es jetzt hier sehen im Video, die

00:47:29.500 --> 00:47:31.820
Hörer zu Hause können es nicht

00:47:31.820 --> 00:47:33.120
sehen, weil es ist ja ein Podcast.

00:47:33.800 --> 00:47:39.760
Dieses Buch hier, das ist ein schwarzes Buch mit Ringeinband.

00:47:40.920 --> 00:47:42.360
Das ist mein Algorithmenbuch.

00:47:43.620 --> 00:47:46.700
Und ich habe dieses Algorithmenbuch vor Jahren mal angefangen.

00:47:47.320 --> 00:47:50.600
Und die Idee dahinter ist, dass immer wenn ich einen guten Algorithmus finde,

00:47:51.200 --> 00:47:54.760
der nicht so bekannt ist, dass ich mir den aufschreibe.

00:47:55.500 --> 00:47:57.960
Und wenn ich vor irgendeinem Problem stehe, was schwer zu lösen ist,

00:47:57.960 --> 00:48:00.420
dann muss ich nur in mein Algorithmenbuch reinschauen

00:48:00.420 --> 00:48:03.320
und finde da bestimmt irgendwas drin, was da hilft.

00:48:03.580 --> 00:48:05.360
Jetzt mach mal auf und zeig mal, wie viele Seiten da schon

00:48:05.360 --> 00:48:07.520
beschrieben sind. Ich mach jetzt erst mal

00:48:07.520 --> 00:48:08.200
den Staub weg.

00:48:10.580 --> 00:48:11.500
Das lag nämlich schon

00:48:11.500 --> 00:48:12.140
eine ganze Weile

00:48:12.140 --> 00:48:15.560
drin und ich mach's jetzt mal auf und es sind tatsächlich

00:48:15.560 --> 00:48:17.080
eins, zwei, drei, vier,

00:48:17.780 --> 00:48:19.720
fünf, sechs, sieben,

00:48:21.320 --> 00:48:23.500
ja, siebeneinhalb Seiten beschrieben. Das hier ist

00:48:23.500 --> 00:48:25.660
die achte Seite, die beschrieben ist.

00:48:26.160 --> 00:48:27.320
Da steht nur eine Überschrift drauf.

00:48:29.460 --> 00:48:31.700
Ja, ich würde das auf jeden Fall

00:48:31.700 --> 00:48:33.480
als Win zählen. Aber nicht

00:48:33.480 --> 00:48:35.300
die Zeit mit den Rezepten, mit den Kochrezeptern

00:48:35.300 --> 00:48:36.840
dazu zählen. Klar, gewonnen.

00:48:37.820 --> 00:48:39.460
Ja, Kochrezepte habe ich ein eigenes Buch für,

00:48:39.600 --> 00:48:41.460
selbstverständlich. Könnte ich ja auch als

00:48:41.460 --> 00:48:43.700
Sondereignung. Aber tatsächlich, in der Praxis

00:48:43.700 --> 00:48:45.780
hat man oft irgendwie dickere

00:48:45.780 --> 00:48:47.780
Kochrezeptbücher als Algorithmenbücher.

00:48:48.520 --> 00:48:49.700
Ja, das ist mir auch schon aufgefallen.

00:48:49.920 --> 00:48:50.600
Ja, leider.

00:48:52.000 --> 00:48:53.700
Ich weiß auch nicht, es hilft auch nicht,

00:48:53.800 --> 00:48:55.400
wenn man sich jetzt, man kann sich natürlich auch irgendwie so ein

00:48:55.400 --> 00:48:57.320
Algorithmenbuch nehmen und dann einfach versuchen, mal

00:48:57.320 --> 00:48:59.300
die ganzen Dinger durchzulesen,

00:48:59.720 --> 00:49:01.520
zu lernen und dann halt anzuwenden,

00:49:01.520 --> 00:49:03.560
wenn man irgendwie so Probleme hat. Aber irgendwie funktioniert

00:49:03.560 --> 00:49:04.980
das nicht richtig. Also

00:49:04.980 --> 00:49:07.540
was mir tatsächlich oft

00:49:07.540 --> 00:49:09.220
passiert, oder was heißt so oft,

00:49:09.400 --> 00:49:11.380
so oft hat man ja zum Glück nicht wirklich schwere Probleme,

00:49:11.820 --> 00:49:13.520
aber, oder auf dem

00:49:13.520 --> 00:49:15.520
Level nicht so schwer, aber was mir ganz

00:49:15.520 --> 00:49:17.400
oft passiert ist, dass ich habe irgendein Problem,

00:49:17.500 --> 00:49:19.320
das ich nicht in den Griff kriege. Und

00:49:19.320 --> 00:49:21.320
naja, da mir die Algorithmenbücher

00:49:21.320 --> 00:49:23.420
zu langweilig sind, die habe ich alle nicht gelesen, weiß ich halt

00:49:23.420 --> 00:49:25.080
auch nicht, welchen Algorithmen man eigentlich nehmen sollte.

00:49:26.080 --> 00:49:27.100
Sondern ich fange dann an,

00:49:27.160 --> 00:49:28.160
selber nachzudenken.

00:49:28.940 --> 00:49:30.060
Das ist halt auch nicht so optimal.

00:49:31.020 --> 00:49:32.060
sehr langsame Algorithmen.

00:49:32.060 --> 00:49:33.860
Oder findest dann diese ganzen Algorithmen wieder.

00:49:34.280 --> 00:49:36.000
Ja, oder sag mal so,

00:49:36.360 --> 00:49:38.420
es ist irgendwie, also ich,

00:49:38.580 --> 00:49:39.000
teilweise

00:49:39.000 --> 00:49:42.380
denke ich sie dann halt wieder,

00:49:42.520 --> 00:49:43.920
irgendwie nach langem drüber nachdenken,

00:49:44.520 --> 00:49:44.840
oder

00:49:44.840 --> 00:49:48.480
mir fällt halt irgendwo

00:49:48.480 --> 00:49:50.620
ein Algorithmus auf, der genau das Problem

00:49:50.620 --> 00:49:52.840
löst, aber halt so in dem Kontext

00:49:52.840 --> 00:49:54.660
des drüber nachdenkens irgendwie,

00:49:54.840 --> 00:49:56.620
weil ich mir denke so, okay, das, was da Leute

00:49:56.620 --> 00:49:58.480
machen, das klingt so ähnlich und dann irgendwann taucht

00:49:58.480 --> 00:50:00.020
dann der Name von dem Algorithmus auf und dann,

00:50:00.680 --> 00:50:02.180
Also es ist irgendwie ganz eigenartig.

00:50:02.340 --> 00:50:03.180
Ich verstehe es nicht so genau.

00:50:03.260 --> 00:50:04.100
Und das ist schon ein paar Mal passiert.

00:50:05.440 --> 00:50:07.980
Ja, dafür hatte ich eigentlich dieses Buch hier.

00:50:09.260 --> 00:50:10.860
Du musst mir einen davon vorstellen, Johannes,

00:50:11.440 --> 00:50:13.420
der vielleicht sogar einen Namen hat.

00:50:13.540 --> 00:50:15.520
Oder hast du einen selber, den du selber taufst?

00:50:16.980 --> 00:50:18.360
Ja, nee, selber getauft nicht.

00:50:18.520 --> 00:50:20.500
Also ich versuche Sachen hier zu merken,

00:50:20.500 --> 00:50:22.740
die ich interessant finde, die Spannfilter.

00:50:22.820 --> 00:50:25.420
Eine Sache, die man mal sagen kann, sind zum Beispiel Blumenfilters.

00:50:26.720 --> 00:50:28.220
Wisst ihr, was ein Blumenfilter ist?

00:50:28.540 --> 00:50:28.800
Nein.

00:50:29.000 --> 00:50:29.720
Ja, voll geil.

00:50:30.460 --> 00:50:33.980
Das ist eine sehr spezifische, probabilistische Datenstruktur,

00:50:34.200 --> 00:50:37.080
die, wenn man sie braucht, absolut genial ist

00:50:37.080 --> 00:50:40.540
und absolut undenkbar, dass das überhaupt funktionieren kann.

00:50:41.940 --> 00:50:43.900
Aber wenn man sie nicht braucht, ist sie total nutzlos.

00:50:44.800 --> 00:50:49.240
Das ist im Wesentlichen eine Set-Implementation, also eine Menge.

00:50:49.900 --> 00:50:55.460
Und ich kann in diese Menge Dinge eintragen, also Elemente eintragen

00:50:55.460 --> 00:50:58.300
und ich kann fragen, ist dieses Element in der Menge vorhanden?

00:50:59.460 --> 00:51:01.960
Und wenn die Antwort Nein ist, dann ist die sicher.

00:51:02.880 --> 00:51:05.140
Das heißt, wenn mein Bloom-Filter sagt,

00:51:05.880 --> 00:51:07.980
das Element 7 ist nicht vorhanden,

00:51:08.160 --> 00:51:10.320
dann bin ich mir sicher, dass das Element nicht vorhanden ist.

00:51:11.220 --> 00:51:15.140
Wenn der Bloom-Filter aber sagt, ja, das Element ist vorhanden,

00:51:15.200 --> 00:51:17.220
dann ist der nur mit einer gewissen Wahrscheinlichkeit vorhanden.

00:51:18.560 --> 00:51:23.240
Und der Gag daran ist, dass man sehr wenige Bits braucht,

00:51:23.240 --> 00:51:26.040
um diese Einträge zu speichern.

00:51:26.200 --> 00:51:29.500
Also je nachdem, wie man das eingestellt hat,

00:51:30.060 --> 00:51:32.600
kann die Speichermenge weniger als ein Bit pro Eintrag sein.

00:51:32.700 --> 00:51:35.480
Deutlich weniger als ein Bit pro gespeichertem Element.

00:51:35.660 --> 00:51:37.220
Und das ist was total Verrücktes,

00:51:37.300 --> 00:51:39.080
weil das kann ja gar nicht gehen.

00:51:41.720 --> 00:51:42.780
Warum ist das nützlich?

00:51:43.020 --> 00:51:44.200
Das ist zum Beispiel dann nützlich,

00:51:44.280 --> 00:51:45.700
wenn man so eine verteilte Situation hat,

00:51:45.700 --> 00:51:46.740
dass du sagst, okay,

00:51:48.980 --> 00:51:52.500
ich suche in meinen zehn Datenbank-Servern

00:51:52.500 --> 00:51:55.480
nach dem Eintrag für diesen Schlüssel,

00:51:55.540 --> 00:51:56.820
den ich jetzt gerade brauche

00:51:56.820 --> 00:51:59.080
und ich frage einfach mal

00:51:59.080 --> 00:52:00.040
meinen Bloom-Filter,

00:52:01.000 --> 00:52:03.280
auf welchem Datenbank-Server dieser Eintrag

00:52:03.280 --> 00:52:05.100
vorhanden ist. Und der sagt dann mit Wahrscheinlichkeit

00:52:05.100 --> 00:52:06.460
in welcher Range?

00:52:08.060 --> 00:52:08.940
Das kommt darauf an,

00:52:09.240 --> 00:52:11.060
das liegt an der Menge

00:52:11.060 --> 00:52:13.020
der Einträge, die du speicherst und wie groß dieser

00:52:13.020 --> 00:52:15.000
Bloom-Filter ist, den du gemacht hast.

00:52:15.080 --> 00:52:16.840
Musst du vorher wählen, musst du relativ schnell überlegen.

00:52:16.840 --> 00:52:17.200
1 durch N.

00:52:18.680 --> 00:52:20.880
Aber alle, nee, es ist eine

00:52:20.880 --> 00:52:21.760
kompliziertere Formel.

00:52:24.720 --> 00:52:39.180
Das wäre dann ein Detail, das steht gar nicht in meinem Buch drin. Das Wichtige ist, wenn dir ein Filter sagt, nein, der ist nicht drin, dann brauchst du diesen Datenbank-Server gar nicht fragen, weil da bist du sicher. Wenn der Bloom-Filter aber sagt, ja, der ist drin, dann ist er vielleicht da drin.

00:52:39.500 --> 00:52:54.520
Ein anderes Beispiel, wofür ich es kürzlich überlegt habe anzuwenden, ist ein Passwort-Hersch. Es gibt ja eine Liste von unsicheren Passwörtern, also von Passwörtern, die bekannt sind. Im Wesentlichen Passwort-Wortlisten.

00:52:54.520 --> 00:52:55.840
Das ist eine Regenbogentabelle.

00:52:56.960 --> 00:52:59.380
Genau, dass du so eine Art Regenbogentabelle machst,

00:52:59.600 --> 00:53:01.300
dass du einen Regenbogen-Bloomfilter machst,

00:53:01.400 --> 00:53:06.500
dass du sagst, du nimmst dir die 250.000 Passwörter,

00:53:06.560 --> 00:53:07.920
die am weitesten verbreitet sind

00:53:07.920 --> 00:53:11.800
und speicherst davon die SHA-1-Hashes

00:53:11.800 --> 00:53:14.360
und einen Bloomfilter dafür

00:53:14.360 --> 00:53:17.420
mit einer Wahrscheinlichkeit von, ich glaube, 99%.

00:53:17.420 --> 00:53:19.420
Ich hatte es mal ausgerechnet, es sind etwa 100 Kilobyte.

00:53:21.200 --> 00:53:22.260
Das ist also durchaus was,

00:53:22.260 --> 00:53:24.020
was du per JavaScript übertragen könntest,

00:53:24.100 --> 00:53:26.300
wo du direkt auf den Client überprüfen

00:53:26.300 --> 00:53:27.980
könntest, ob das Passwort, was er gerade

00:53:27.980 --> 00:53:29.960
eingegeben hat, zu den 250.000

00:53:29.960 --> 00:53:32.040
schlechtesten Passwörtern, die es

00:53:32.040 --> 00:53:33.460
gibt, gehören könnte.

00:53:33.620 --> 00:53:35.860
Du kannst ja sagen, dein Passwort ist aber doof.

00:53:36.940 --> 00:53:38.040
Genau. Und wenn du

00:53:38.040 --> 00:53:40.060
das sagst, dann weißt du, dass es vielleicht

00:53:40.060 --> 00:53:41.320
so ist, vielleicht aber auch nicht.

00:53:41.720 --> 00:53:43.940
Wenn der aber Nein sagt, dann weißt du, dass es auf jeden Fall

00:53:43.940 --> 00:53:45.860
keins dieser Passwörter ist, die du gespeichert hast.

00:53:46.320 --> 00:53:47.840
Also so eine

00:53:47.840 --> 00:53:49.900
Abfrage, wo du ein sicheres Nein

00:53:49.900 --> 00:53:51.940
brauchst, dafür sind die sehr gut

00:53:51.940 --> 00:53:53.960
und dafür sind

00:53:53.960 --> 00:53:56.160
die eine super Sache, weil sie halt

00:53:56.160 --> 00:53:58.000
ungeheuer wenig Speicherplatz brauchen.

00:53:58.380 --> 00:53:59.940
Viel, viel, viel weniger, als man sich das

00:53:59.940 --> 00:54:02.200
als man sich das je vorstellen

00:54:02.200 --> 00:54:02.520
könnte.

00:54:03.880 --> 00:54:06.240
Jetzt ist es halt leider so, so eine Art Problem

00:54:06.240 --> 00:54:08.180
braucht man halt nicht so häufig. Deshalb habe ich nur sieben

00:54:08.180 --> 00:54:10.180
solcher Einträge drin. Einer davon

00:54:10.180 --> 00:54:12.100
Blumenfilter, den schreibt ihr jetzt

00:54:12.100 --> 00:54:13.900
euch alle in euer Algorithmenbuch direkt rein.

00:54:18.120 --> 00:54:20.000
Wie schreibt man den denn? Den Blumenfilter mit

00:54:20.000 --> 00:54:22.280
UH, mit OO? So wie Orlando.

00:54:22.820 --> 00:54:23.060
Okay.

00:54:23.960 --> 00:54:25.280
B-L-O-O-M

00:54:25.280 --> 00:54:28.060
B-L-O-O-M

00:54:28.060 --> 00:54:30.060
Filter, weil der nämlich

00:54:30.060 --> 00:54:31.900
blüht, also der blüht auf, wenn du

00:54:31.900 --> 00:54:33.160
die Abfragen machst.

00:54:34.180 --> 00:54:36.020
Wenig Daten, die dir viele

00:54:36.020 --> 00:54:36.720
Antworten geben.

00:54:39.000 --> 00:54:40.300
Ja, super spannende Technik

00:54:40.300 --> 00:54:42.000
habe ich noch nie irgendwo verwendet, auch da

00:54:42.000 --> 00:54:43.500
hat es sich dann zerschlagen, weil wir doch

00:54:43.500 --> 00:54:45.980
einfach eine ganz andere Sache gemacht haben

00:54:45.980 --> 00:54:47.460
mit unseren Passwörtern. Aber gut.

00:54:49.880 --> 00:54:51.160
War fast, also ein Algorithmus,

00:54:51.160 --> 00:54:53.160
wenn man fast gebraucht hätte, ist ja schon mal etwas.

00:54:53.960 --> 00:55:11.740
Ja, insofern, Win oder Fail, auch hier, ich werde mal, vielleicht werde ich es mir öfter wieder zu, vielleicht fallen mir mehr spannende Sachen auf, die man da reinschreiben könnte, exotische Sachen. Vielleicht mache ich auch einfach nächstes Mal dieses Buch nochmal auf und wir sprechen über furchtbar exotische Sachen.

00:55:13.740 --> 00:55:14.260
Sukkulenten.

00:55:15.700 --> 00:55:17.200
Ja, und noch exotischer.

00:55:17.360 --> 00:55:18.140
Noch exotischer, na gut.

00:55:19.120 --> 00:55:19.920
Viel exotischer.

00:55:20.800 --> 00:55:32.140
Ja, wenn ich es so überlege, also ich meine, das hatte ich auch vielleicht schon mal erwähnt, also ich hatte das schon mal mit topologischer Sortierung, genau, da wusste ich auch nicht, was das ist, bis ich es dann auch nochmal entdecken musste.

00:55:34.000 --> 00:55:35.260
Bis du es selber erfunden hast?

00:55:35.460 --> 00:55:45.860
Ja, naja, das ist halt irgendwie nicht das Gleiche, wenn man das als erster macht oder halt irgendwie dann, wenn man es eigentlich schon mal wissen sollte. Also, aber ja, eine andere Geschichte, die mir mal…

00:55:45.860 --> 00:55:48.120
Kryptomnese, wisst ihr, was Kryptomnese ist?

00:55:48.840 --> 00:55:49.200
Ne?

00:55:50.040 --> 00:55:52.420
Das ist, wenn man selber was erfindet, was es aber schon gibt.

00:55:53.120 --> 00:55:53.500
Ja.

00:55:54.620 --> 00:55:57.440
Weil man sich dann doch irgendwie halt doch dran erinnert, so unterbewusst.

00:55:57.660 --> 00:55:59.540
Das kann auch gut sein, dass das so ist, ja.

00:55:59.580 --> 00:56:05.280
Oder man war eigentlich einfach so genial und es hatte einfach jemand anders schon diese Idee, aber völlig unabhängig.

00:56:05.280 --> 00:56:08.660
Das ist eine Annahme, die wäre mir sehr sympathisch.

00:56:08.720 --> 00:56:10.880
Das Problem dabei ist, dass halt Verlagen dabei nie etwas ausfällt.

00:56:10.880 --> 00:56:12.000
Ja, die trifft bei mir natürlich zu.

00:56:13.340 --> 00:56:17.320
Was tatsächlich neu ist, spricht das so ein bisschen gegen die Hypothese.

00:56:17.460 --> 00:56:19.500
tatsächlich, ich meine, der Feynman hat das ja auch irgendwie

00:56:19.500 --> 00:56:20.880
ich weiß nicht,

00:56:21.000 --> 00:56:22.860
in welchem Buch er das geschrieben hat, aber

00:56:22.860 --> 00:56:24.960
er hat halt auch so irgendwie, naja,

00:56:25.060 --> 00:56:26.820
er hat halt einfach immer irgendwie alle

00:56:26.820 --> 00:56:29.420
Sachen, alle Probleme, die irgendwie in den Büchern,

00:56:29.520 --> 00:56:31.400
die er so gelesen hat, drin standen,

00:56:31.460 --> 00:56:32.420
irgendwie versucht zu lösen

00:56:32.420 --> 00:56:35.240
und hat das halt einfach immer weiter gemacht

00:56:35.240 --> 00:56:36.020
und irgendwann

00:56:36.020 --> 00:56:38.400
hat er halt dann gemerkt,

00:56:39.180 --> 00:56:41.340
sozusagen, oh, das war ein bisschen knifflig oder so,

00:56:41.340 --> 00:56:42.880
hat sich dann aber auch gelöst und dann

00:56:42.880 --> 00:56:45.200
hat er irgendwie weiter gelesen und dann schließt er so, ja, das sind ungelöste

00:56:45.200 --> 00:56:46.740
Probleme, da gab es da noch keiner irgendwas.

00:56:47.080 --> 00:56:48.660
So, oh, jetzt nicht mehr.

00:56:50.540 --> 00:56:51.300
Aber ja.

00:56:51.360 --> 00:56:54.180
Ja, das ist doch die Feinmann-Problemlösungsmethode.

00:56:54.260 --> 00:56:54.560
Kennt ihr die?

00:56:55.660 --> 00:56:56.560
Die hat drei Schritte.

00:56:56.700 --> 00:56:57.980
Erster Schritt Problem hinschreiben.

00:56:58.940 --> 00:57:01.140
Zweiter Schritt nachdenken.

00:57:01.700 --> 00:57:02.860
Dritter Schritt Lösung hinschreiben.

00:57:03.900 --> 00:57:04.100
Ja.

00:57:04.100 --> 00:57:10.080
Und da gibt es dann auch die angewandte Feinmannsche Problemlösungsmethode.

00:57:10.160 --> 00:57:12.260
Die heißt auch manchmal die studentische Problemlösungsmethode.

00:57:12.320 --> 00:57:12.880
Hat auch drei Schritte.

00:57:13.380 --> 00:57:14.700
Erster Schritt ist Problem hinschreiben.

00:57:14.820 --> 00:57:16.820
zweiter Schritt ist ganz, ganz

00:57:16.820 --> 00:57:18.660
arg drüber nachdenken, dritter Schritt ist

00:57:18.660 --> 00:57:19.060
heulen.

00:57:22.080 --> 00:57:24.580
Das passiert auch häufiger als man sich das

00:57:24.580 --> 00:57:26.280
wünscht. Ja, ich zähle mir da,

00:57:26.280 --> 00:57:27.420
zähle mich da eher zu dir.

00:57:30.220 --> 00:57:32.500
Ja, aber tatsächlich, wenn ich so überlege, was habe ich denn noch

00:57:32.500 --> 00:57:34.480
so an Dingen mal gebraucht, was so irgendwie, wo ich

00:57:34.480 --> 00:57:36.580
nicht von Anfang an wusste, zum Beispiel auch

00:57:36.580 --> 00:57:37.920
nett, genau, wir haben versucht,

00:57:38.360 --> 00:57:40.380
das klingt eigentlich total banal,

00:57:40.380 --> 00:57:42.360
es war es aber irgendwie nicht, ich weiß gar nicht mehr genau,

00:57:42.540 --> 00:57:44.420
warum das eigentlich nicht so banal war, aber wenn man

00:57:44.420 --> 00:57:46.040
jetzt so den Status von so einem Online-Shop hat,

00:57:46.300 --> 00:57:48.380
dann kann

00:57:48.380 --> 00:57:49.560
er ja irgendwie

00:57:49.560 --> 00:57:52.280
zwar entweder

00:57:52.280 --> 00:57:54.020
online sein oder offline, wenn man jetzt

00:57:54.020 --> 00:57:55.980
so einen Meta-Shop hat quasi,

00:57:58.060 --> 00:58:00.320
nach draußen hin. Also entweder man kann da

00:58:00.320 --> 00:58:02.280
irgendwie Dinge kaufen oder draufklicken oder so

00:58:02.280 --> 00:58:03.000
oder halt eben nicht.

00:58:05.180 --> 00:58:06.240
Aber der Grund

00:58:06.240 --> 00:58:07.620
dafür kann halt

00:58:07.620 --> 00:58:10.200
aus ganz vielen unterschiedlichen Dingen

00:58:10.200 --> 00:58:10.660
bestehen.

00:58:12.560 --> 00:58:12.640
Also

00:58:12.640 --> 00:58:24.740
Also, wie zum Beispiel, naja, ein Shop kann deswegen offline sein, weil er ist halt über irgendein Budget gelaufen und möchte halt nicht mehr Geld ausgeben, deswegen kriegt er keine Klicks mehr.

00:58:25.160 --> 00:58:30.180
Oder er ist irgendwie, keine Ahnung, man ist mit jemandem in einer Rechtsstreitigkeit verwickelt und ist vor Gericht.

00:58:31.980 --> 00:58:37.940
Oder, weiß ich nicht, die Daten sind irgendwie kaputt.

00:58:37.940 --> 00:59:04.020
Also sagen wir mal so, das Problem ist, im Verlauf der Zeit entdeckt man halt auch immer mehr Möglichkeiten, warum man jetzt gerade nicht will, dass er online ist. Aber im Endeffekt muss er entweder online sein oder nicht. Aber es gibt halt dann so Zustände, aus denen will man nicht wieder zurück. Und manche Zustände, da will man aber wieder zurück. Also wenn der Monat dann anfängt, dann wechselt man wieder in den Zustand, wenn das Budget der Grund war, ah, okay, ist jetzt wieder online. Aber wenn dann irgendwie, keine Ahnung, eben vor Gericht, dann will man nicht wieder in den Online-Zustand zurückwechseln, sonst hat man ein zweites Gerichtsverfahren, das ist ja auch doof.

00:59:05.080 --> 00:59:23.640
Und das wird komplizierter, als man sich das so vorstellt. Und wir hatten das halt zuerst in Code alles und das hat nicht gut funktioniert. Diesen Code zu pflegen war blöd, weil immer wieder sind so Dinge passiert dann, nachdem dieser Code geändert wurde, die man vorher nicht abgesehen hatte.

00:59:23.640 --> 00:59:25.420
gerade dann immer so, weil dann passieren Dinge dann

00:59:25.420 --> 00:59:27.800
am Monatswechsel oder bei irgendeiner Rechnungsstellung

00:59:27.800 --> 00:59:29.640
oder so, die man vielleicht

00:59:29.640 --> 00:59:31.500
dann nicht so, also auch Dinge, die halt einfach blöd

00:59:31.500 --> 00:59:33.560
zu testen sind. Und dann hat

00:59:33.560 --> 00:59:35.600
man immer so, okay, vor einem halben Monat hat jemand

00:59:35.600 --> 00:59:37.540
was geändert, okay, und dann ist es bei der Rechnungsstellung

00:59:37.540 --> 00:59:39.480
ganz auf furchtbare Art schiefgelaufen.

00:59:41.200 --> 00:59:41.520
Und

00:59:41.520 --> 00:59:43.540
da habe ich gesagt, okay, wir können das

00:59:43.540 --> 00:59:45.480
eigentlich nicht so, dieser Code, der wurde

00:59:45.480 --> 00:59:47.660
auch immer komplizierter, dass das geht so nicht.

00:59:48.280 --> 00:59:49.420
Das überblickt auch keiner mehr.

00:59:49.900 --> 00:59:51.280
Lass uns das doch irgendwie formalisieren

00:59:51.280 --> 00:59:53.680
und irgendwie da so einen endlichen Automaten

00:59:53.680 --> 00:59:55.440
oder so draus bauen. Das ist uns aber nie gelungen

00:59:55.440 --> 00:59:56.380
oder nicht so richtig.

00:59:57.680 --> 00:59:59.360
Als nicht-deterministischen Automaten

00:59:59.360 --> 01:00:01.040
konnten wir uns irgendwie hinschreiben, aber als

01:00:01.040 --> 01:00:02.000
deterministischen nicht.

01:00:03.140 --> 01:00:04.880
Es kann auch nicht sein, dass das so schwierig ist.

01:00:05.720 --> 01:00:07.760
Ja, und dann tatsächlich irgendwie...

01:00:07.760 --> 01:00:08.840
Aber du kannst auch jeden

01:00:08.840 --> 01:00:10.780
nicht-deterministischen Automaten als einen

01:00:10.780 --> 01:00:13.280
deterministischen Automaten mit zwei hohen Zuständen modellieren.

01:00:13.280 --> 01:00:15.800
Ja, du weißt es einfach so direkt.

01:00:16.260 --> 01:00:17.720
Und zwar ist das nicht so sofort klar,

01:00:17.920 --> 01:00:19.480
aber ja, auf die Lösung sind wir dann auch gekommen.

01:00:19.780 --> 01:00:21.160
Du brauchst dann halt einfach einen Potenzmengen-Automaten

01:00:21.160 --> 01:00:22.860
und dann geht es. Genau. Ja, genau.

01:00:23.500 --> 01:00:24.800
Ja, aber das ist doch der große,

01:00:25.080 --> 01:00:27.060
der große, das ist doch das

01:00:27.060 --> 01:00:28.700
darunterliegende Problem für

01:00:28.700 --> 01:00:29.700
P gleich NP.

01:00:30.780 --> 01:00:32.560
Wenn du diese

01:00:32.560 --> 01:00:35.180
Abbildung gibst, also jeden nicht deterministischen

01:00:35.180 --> 01:00:37.020
endlichen

01:00:37.020 --> 01:00:38.840
Automaten kannst du als deterministischen

01:00:38.840 --> 01:00:40.520
endlichen Automaten mit 2 hoch N

01:00:40.520 --> 01:00:41.760
Zuständen machen.

01:00:43.680 --> 01:00:44.980
Und ja,

01:00:44.980 --> 01:00:46.860
dass die Konsequenz

01:00:46.860 --> 01:00:48.900
davon ist, ist die Frage P gleich

01:00:48.900 --> 01:00:50.880
NP oder nicht. Ja, so weit

01:00:50.880 --> 01:00:52.540
sind wir dann, das zu lösen, soweit sind wir dann

01:00:52.540 --> 01:00:54.280
nicht gekommen. Da waren dann halt die acht Stunden

01:00:54.280 --> 01:00:55.940
frei und dann mussten wir dann leider nach Hause gehen.

01:00:56.080 --> 01:00:57.540
Du musst jetzt trotzdem nochmal einen ganz, ganz kleinen

01:00:57.540 --> 01:01:00.360
Einführungstext dazu verfassen, was denn P mal NP

01:01:00.360 --> 01:01:02.400
ist, für unsere Hörer, die da nicht ganz so tief in der

01:01:02.400 --> 01:01:03.640
...

01:01:03.640 --> 01:01:06.040
Ja, wir hatten ja vorhin schon

01:01:06.040 --> 01:01:08.120
die kurz angerissenen

01:01:08.120 --> 01:01:10.720
Algorithmenlaufzeiten mit Groß-O-Notationen

01:01:10.720 --> 01:01:12.160
wissen. Ja, also wie

01:01:12.160 --> 01:01:14.380
schnell ein Algorithmus sich entwickelt,

01:01:14.440 --> 01:01:15.540
wenn man ihn mehrmals macht, oder?

01:01:16.740 --> 01:01:18.100
Nee, genau, wie schnell sich

01:01:18.100 --> 01:01:19.880
ein Algorithmus, wie schnell die

01:01:19.880 --> 01:01:22.520
die Laufzeit sich entwickelt, wenn sich die Problemgröße

01:01:22.520 --> 01:01:23.880
verändert. Also wenn ich zum Beispiel

01:01:23.880 --> 01:01:26.520
irgendwelche

01:01:26.520 --> 01:01:28.100
Berechnungen mache, dann ist die Problemgröße

01:01:28.100 --> 01:01:29.640
üblicherweise die Größe der Zahl.

01:01:30.200 --> 01:01:31.800
Also wenn ich jetzt zum Beispiel den

01:01:31.800 --> 01:01:34.480
größten Primfaktor

01:01:34.480 --> 01:01:36.040
finden möchte von einer Zahl, dann

01:01:36.040 --> 01:01:38.200
kann ich das für die Zahl 10

01:01:38.200 --> 01:01:39.320
noch sehr schnell machen.

01:01:40.140 --> 01:01:42.180
Für die Zahl 100 wird es dann schon etwas langsamer

01:01:42.180 --> 01:01:44.200
und für die Zahl 1000 wird es dann noch langsamer und für die

01:01:44.200 --> 01:01:46.160
Zahl 10 hoch 20 wird es dann halt noch deutlich

01:01:46.160 --> 01:01:46.520
langsamer.

01:01:49.340 --> 01:01:56.000
Und die Frage ist, wie viel langsamer wird es denn, wenn die Zahl größer wird?

01:01:56.880 --> 01:02:02.160
Und weil das von Mathematikern erfunden worden ist, sind alle endlichen Zahlen hier direkt egal.

01:02:03.040 --> 01:02:07.920
Sondern es geht nur um, wie verhält sich das denn, wenn wir in Richtung unendlich gehen.

01:02:08.580 --> 01:02:12.040
Das ist genau das Problem bei den galaktischen Algorithmen.

01:02:12.140 --> 01:02:14.300
Den Mathematikern sind die absolut recht.

01:02:15.140 --> 01:02:16.560
Dass man die nicht in der Praxis einsetzen

01:02:16.560 --> 01:02:18.640
kann, ist uns Mathematikern

01:02:18.640 --> 01:02:20.360
einfach egal, weil

01:02:20.360 --> 01:02:21.640
da geht es nur um die Korrektheit.

01:02:22.600 --> 01:02:24.120
Also im Wesentlichen ist es die Frage,

01:02:24.620 --> 01:02:26.160
wenn ich die Problemgröße

01:02:26.160 --> 01:02:28.500
verdoppele, wie verändert

01:02:28.500 --> 01:02:29.460
sich dann meine Laufzeit?

01:02:30.060 --> 01:02:32.320
Wenn ich jetzt zum Beispiel einen Algorithmus habe, der O

01:02:32.320 --> 01:02:33.020
von N ist,

01:02:34.420 --> 01:02:36.060
dann heißt es linear. Das heißt, wenn ich meine

01:02:36.060 --> 01:02:38.240
Probleme verdoppele,

01:02:38.340 --> 01:02:40.360
dann verdoppelt sich auch die Zeit, die ich

01:02:40.360 --> 01:02:41.480
brauche, um das Ergebnis zu brechen.

01:02:41.840 --> 01:02:43.900
Das ist gut. Das ist

01:02:43.900 --> 01:02:46.380
leicht planbar. Das ist absehbar.

01:02:46.660 --> 01:02:48.120
Ich weiß, ich habe jetzt einen Computer, der

01:02:48.120 --> 01:02:50.040
kann Probleme lösen mit tausend

01:02:50.040 --> 01:02:52.080
Stellen und nächstes Jahr habe ich einen, der ist

01:02:52.080 --> 01:02:53.940
doppelt so schnell, kann ich ein Problem lösen,

01:02:54.360 --> 01:02:56.000
das 2000 Stellen hat. Das ist

01:02:56.000 --> 01:02:57.300
leicht zu planen.

01:02:58.320 --> 01:02:59.860
Und schon ein bisschen schlechter ist O von n².

01:03:01.540 --> 01:03:02.100
Das heißt,

01:03:02.160 --> 01:03:04.020
wenn ich die Problemgröße verdoppele,

01:03:04.020 --> 01:03:05.240
dann vervierfacht sich

01:03:05.240 --> 01:03:08.020
die Laufzeit des Problems.

01:03:09.380 --> 01:03:09.860
Und das ist

01:03:09.860 --> 01:03:11.920
schon mal schlechter, weil dann heißt es halt,

01:03:12.000 --> 01:03:13.400
dass ich mit einem doppelt so schnellen Computer

01:03:13.400 --> 01:03:15.240
nicht doppelt so große Probleme lösen kann.

01:03:15.360 --> 01:03:16.720
Also dann brauche ich einen viermal so schnellen Computer.

01:03:16.740 --> 01:03:17.660
Brute Force von Spielgaben.

01:03:18.840 --> 01:03:19.080
Genau.

01:03:19.200 --> 01:03:20.980
Und entsprechend gibt es dann natürlich auch N hoch 3

01:03:20.980 --> 01:03:22.080
und N hoch 4 und N hoch 5.

01:03:22.220 --> 01:03:24.880
Und diese ganzen Dinge heißen alle Polynome.

01:03:25.320 --> 01:03:26.460
Die sind alle polynomiell.

01:03:27.380 --> 01:03:29.420
Weil die im Wesentlichen handhabbar sind.

01:03:29.580 --> 01:03:31.260
Die wachsen nicht ungeheuer schnell.

01:03:31.800 --> 01:03:34.840
Ein Polynom mit N hoch 100 wächst auch ungeheuer schnell.

01:03:34.840 --> 01:03:37.120
Aber ist okay.

01:03:37.680 --> 01:03:40.520
Das ist sozusagen das, was man als Mathematiker akzeptiert.

01:03:40.760 --> 01:03:41.840
Polynomielles Wachstum.

01:03:42.000 --> 01:03:51.360
Jetzt gibt es so eine Grenze oder so einen Schnitt, wo es Funktionen gibt, die wachsen schneller als jedes Polynom.

01:03:51.500 --> 01:03:54.000
Und das sind die exponentiellen Funktionen, also 2 hoch n.

01:03:56.540 --> 01:04:09.520
Das heißt, wenn ich mein Problem verdoppele, dann wächst die Laufzeit mehr, als jedes Polynom wachsen kann.

01:04:09.520 --> 01:04:31.360
Also größer als N hoch 100, größer als N hoch 1000, sondern 2 hoch N und das hängt eben davon ab, wie groß N ist, wie schnell dieses Wachstum ist, weil das Wachstum nämlich auch immer schneller wird. Das ist eben eine der Kerneigenschaften der Exponentialfunktion, dass das Wachstum genauso schnell ansteigt wie die Funktion selbst.

01:04:33.300 --> 01:04:36.760
Das in zwei Minuten in einem Podcast zu erzählen ist schwierig.

01:04:36.920 --> 01:04:37.880
Das funktioniert aber gut.

01:04:38.140 --> 01:04:38.840
Ihr müsst es jetzt einfach mal hinnehmen.

01:04:38.940 --> 01:04:39.340
Ja, ja.

01:04:39.960 --> 01:04:41.220
Ihr müsst es jetzt einfach mal hinnehmen.

01:04:41.600 --> 01:04:43.100
Das ist schlechter als jedes Polynom.

01:04:43.580 --> 01:04:47.960
Und jetzt ist es so, man hat Algorithmen gefunden für Probleme,

01:04:48.120 --> 01:04:50.220
die sich in polynomierter Laufzeit lösen lassen.

01:04:50.220 --> 01:04:56.120
Zum Beispiel Primfaktorberechnung.

01:04:59.340 --> 01:05:02.860
Wobei das schon so eine Sache ist, die hart umstritten ist,

01:05:02.980 --> 01:05:05.800
ob das jetzt deterministisch oder ob man das erlauben möchte oder nicht.

01:05:06.440 --> 01:05:10.320
Es gibt viele Algorithmen, die sind in polynomialer Laufzeit machbar.

01:05:10.420 --> 01:05:11.340
Sachen, die man berechnen kann.

01:05:12.060 --> 01:05:14.220
Pfadberechnungen, Volltextsuche prinzipiell.

01:05:15.420 --> 01:05:18.420
Solche Sachen sind alle in polynomialer Laufzeit berechenbar.

01:05:18.420 --> 01:05:20.480
Es gibt aber auch eine Sorte Probleme,

01:05:21.180 --> 01:05:24.420
für die hat man keinen polynomialen Algorithmus gefunden,

01:05:24.540 --> 01:05:28.220
sondern eben nur solche, die in exponentieller Laufzeit funktionieren,

01:05:28.480 --> 01:05:31.280
wo man im Wesentlichen alle Kombinationen ausprobieren muss.

01:05:32.620 --> 01:05:41.760
Ein solches Problem ist, das ist sehr anschaulich, finde ich, das ist das Tetris-Problem oder auch das Knapsack-Problem, wo ich ein,

01:05:41.760 --> 01:05:46.860
eine menge an zahlen gegeben habe eine menge an größen und ich habe eine

01:05:46.860 --> 01:05:52.160
zielgröße gegeben und die frage ist kann ich aus denen mir gegebenen bausteinen

01:05:52.160 --> 01:06:01.380
eine summe bilden die genau das ziel erreicht und die einzige möglichkeit die

01:06:01.380 --> 01:06:06.860
es da gibt im wesentlichen ist einfach alle kombinationen auszuprobieren und

01:06:06.860 --> 01:06:10.500
das sind halt nun mal zwei hochenden kombinationen weil ich kann eben in der

01:06:10.500 --> 01:06:12.420
Summe jede Zahl entweder aufführen oder nicht

01:06:12.420 --> 01:06:14.480
aufführen. Das heißt, ich habe

01:06:14.480 --> 01:06:16.320
n Bits,

01:06:16.680 --> 01:06:17.120
die ich

01:06:17.120 --> 01:06:20.520
setzen kann. Ich muss die Menge aller

01:06:20.520 --> 01:06:22.260
Teilmengen sozusagen ausprobieren.

01:06:22.980 --> 01:06:24.400
Genau, die Menge aller Teilmengen, also

01:06:24.400 --> 01:06:26.600
die Menge aller möglichen Summen, die ich bilden

01:06:26.600 --> 01:06:28.300
kann mit den Zahlen, die mir gegeben sind.

01:06:28.420 --> 01:06:30.440
Das entspricht genau der Menge aller Teilmengen und das

01:06:30.440 --> 01:06:32.400
entspricht genau der Menge aller möglichen Zahlen, die

01:06:32.400 --> 01:06:34.540
ich mit n Bits bilden kann und das sind genau

01:06:34.540 --> 01:06:36.620
zwei hoch n. Und das ist der beste Algorithmus,

01:06:36.620 --> 01:06:37.740
den es gibt. Also es gibt da so

01:06:37.740 --> 01:06:40.240
probabilistische Sachen.

01:06:40.500 --> 01:06:48.660
Und es gibt Techniken, wo du es eben auf n hoch 1,36 hoch n runterziehen kannst.

01:06:48.780 --> 01:06:50.960
Und es ist nicht mehr 2 hoch n und das ist beeindruckend.

01:06:51.180 --> 01:06:53.820
Und das ist unglaublich, aber es ist immer noch exponentiell.

01:06:54.920 --> 01:07:01.820
Jetzt ist die Frage, gibt es für diese Probleme auch polynomielle Algorithmen?

01:07:01.820 --> 01:07:07.520
Gibt es auch für diese Probleme Algorithmen, die in polynomieller Laufzeit das Ergebnis liefern?

01:07:07.740 --> 01:07:09.900
Und die Antwort darauf ist unklar, die ist unbekannt.

01:07:10.500 --> 01:07:14.640
Und das ist genau die Frage, ja, ist p gleich np?

01:07:15.480 --> 01:07:22.680
Jetzt ist es so, da kommt noch dazu, diese Probleme, die man gefunden hat, die nennt man np, ja, nicht deterministisch-polynomial.

01:07:25.900 --> 01:07:28.440
Das sind alle solche, die in exponentieller Laufzeit laufen.

01:07:28.840 --> 01:07:30.720
Und lustigerweise sind die alle irgendwie äquivalent.

01:07:30.840 --> 01:07:35.360
Also man kann die alle so ineinander umformen, dass alle das gleiche sind.

01:07:35.420 --> 01:07:37.000
Das heißt, wenn ich einen Algorithmus

01:07:37.000 --> 01:07:38.900
für eins von diesen Problemen finde,

01:07:39.660 --> 01:07:41.020
der in polynomieller Laufzeit läuft,

01:07:41.440 --> 01:07:43.500
dann habe ich automatisch auch für alle anderen

01:07:43.500 --> 01:07:45.640
einen Algorithmus gefunden,

01:07:46.180 --> 01:07:47.720
der auch in polynomieller Laufzeit läuft.

01:07:49.100 --> 01:07:50.600
Und das ist das Verrückte daran.

01:07:51.180 --> 01:07:54.040
Diese ganze Klasse an Problemen

01:07:54.040 --> 01:07:56.640
sind alle irgendwie mehr oder weniger äquivalent.

01:07:58.300 --> 01:07:59.540
Aber man weiß nicht,

01:07:59.540 --> 01:08:02.200
einen einzigen in polynomieller Laufzeit zu lösen.

01:08:02.300 --> 01:08:02.880
Und das ist die Frage.

01:08:03.060 --> 01:08:04.420
Gibt es einen solchen Algorithmus?

01:08:04.520 --> 01:08:10.080
Gibt es so einen polynomiellen Algorithmus für irgendeins dieser Probleme oder gibt es diesen Algorithmus nicht?

01:08:10.160 --> 01:08:13.060
Das heißt, gibt es die zwei unterschiedlichen Mengen?

01:08:13.140 --> 01:08:17.080
Es gibt Probleme, die polynomiell lösbar sind und Probleme, die nicht polynomiell lösbar sind.

01:08:17.460 --> 01:08:19.100
Oder sind das alles die gleichen?

01:08:19.400 --> 01:08:21.640
Sind es nur solche, gibt es nur solche, die polynomiell lösbar sind?

01:08:21.760 --> 01:08:24.160
Und das ist die ungeklärte Frage, ist p gleich mp?

01:08:24.500 --> 01:08:31.340
Wenn man dieses Problem löst, kriegt man direkt eine Million Dollar überwiesen, weil da gibt es einen Clay Price dafür,

01:08:31.460 --> 01:08:33.440
Mathematik, ja, so ein

01:08:33.440 --> 01:08:35.360
Mathematikpreis, der da ausgeschrieben ist,

01:08:35.840 --> 01:08:37.400
ist mit einer Million Dollar dotiert

01:08:37.400 --> 01:08:39.540
und ich glaube auch

01:08:39.540 --> 01:08:41.480
eine Fields-Medaille und eine Turing-Medaille und alle

01:08:41.480 --> 01:08:43.180
anderen Medaillen, die es so gibt in dem Feld, wären

01:08:43.180 --> 01:08:45.240
relativ schnell sicher. Also ich meine, wenn es

01:08:45.240 --> 01:08:47.600
irgendwie sowas

01:08:47.600 --> 01:08:49.340
gäbe wie das wichtigste Problem in der Informatik,

01:08:49.400 --> 01:08:51.200
dann wäre das auf jeden Fall ein Kandidat dafür oder

01:08:51.200 --> 01:08:52.720
das wichtigste ungelöste Problem.

01:08:53.420 --> 01:08:54.680
Ja, also das kann

01:08:54.680 --> 01:08:57.140
ja, ja, ja, also diese

01:08:57.140 --> 01:08:59.180
Komplexitätstheorie ist halt schon so, also ich meine, es gibt

01:08:59.180 --> 01:09:01.380
dann noch, also ich glaube, also der Grundform,

01:09:01.440 --> 01:09:03.080
was jetzt NP heißt, also

01:09:03.080 --> 01:09:05.300
ist nicht deterministisch

01:09:05.300 --> 01:09:07.060
polynomial, weil du kannst halt

01:09:07.060 --> 01:09:09.240
mit einer nicht deterministischen

01:09:09.240 --> 01:09:10.320
Turing-Maschine

01:09:10.320 --> 01:09:12.960
in Polynomialzeit überprüfen,

01:09:13.180 --> 01:09:14.540
also kannst du das halt bestimmen.

01:09:15.180 --> 01:09:17.420
Und du kannst halt mit einer deterministischen Turing-Maschine

01:09:17.420 --> 01:09:19.080
in Polynomialzeit überprüfen,

01:09:19.160 --> 01:09:20.500
ob die Lösung richtig war oder nicht.

01:09:21.360 --> 01:09:22.620
Sozusagen, das ist halt irgendwie

01:09:22.620 --> 01:09:25.280
die Namensgeschichte. Aber es gibt

01:09:25.280 --> 01:09:27.180
auch noch bösere, also es gibt jetzt

01:09:27.180 --> 01:09:29.260
von den Komplexitätsklassen, es gibt halt

01:09:29.260 --> 01:09:31.200
NPH, dann gibt es NP-vollständig und dann

01:09:31.200 --> 01:09:33.060
gibt es auch noch, genau, X-Time

01:09:33.060 --> 01:09:34.600
drumherum und P-Space und weißer Teil.

01:09:34.600 --> 01:09:37.020
Ja, da gibt es noch ganz viele und diese ganzen Space-Klassen gibt es ja

01:09:37.020 --> 01:09:38.840
auch alle noch, P-Space und N-Pace.

01:09:40.300 --> 01:09:40.880
Da gibt es

01:09:40.880 --> 01:09:42.960
eine ganz große Hierarchie davon, aber das sind die

01:09:42.960 --> 01:09:45.120
einzigen, die so richtig bekannt sind.

01:09:45.400 --> 01:09:46.260
Ja, und

01:09:46.260 --> 01:09:48.300
es ist halt eben so,

01:09:48.980 --> 01:09:51.100
jeder nicht deterministisch

01:09:51.100 --> 01:09:53.360
polynomielle Turing-Maschine kannst du trivialerweise

01:09:53.360 --> 01:09:55.000
in eine deterministische

01:09:55.000 --> 01:09:57.220
Turing-Maschine überführen, die halt

01:09:57.220 --> 01:09:59.040
aber zwei Hoch-N-Zustände hat.

01:09:59.740 --> 01:10:01.260
die dann entsprechend

01:10:01.260 --> 01:10:03.000
länger braucht.

01:10:03.920 --> 01:10:05.780
Das heißt, die hat keine polynomiale Laufzeit mehr.

01:10:06.320 --> 01:10:07.980
Und das ist die Krux

01:10:07.980 --> 01:10:08.380
an der Sache.

01:10:09.500 --> 01:10:11.520
Und jetzt vielleicht noch ganz, ich weiß nicht,

01:10:11.640 --> 01:10:13.100
das ist bestimmt wieder nur ein Satz,

01:10:13.440 --> 01:10:15.120
der Unterschied zwischen der nicht-deterministischen

01:10:15.120 --> 01:10:16.600
und der deterministischen Turing-Maschine.

01:10:19.320 --> 01:10:19.800
Oh, Jochen,

01:10:19.880 --> 01:10:21.620
das darfst du mal erklären. Das ist schwer zu erklären.

01:10:22.940 --> 01:10:23.640
Naja, sagen wir mal so,

01:10:23.680 --> 01:10:25.300
das eine ist halt etwas, was wir bauen können,

01:10:25.300 --> 01:10:26.740
das andere irgendwie nicht so richtig.

01:10:27.440 --> 01:10:27.980
Also sozusagen,

01:10:28.740 --> 01:10:33.100
Nein, es ist so, ich versuche es mal zu erklären.

01:10:34.200 --> 01:10:40.820
Eine Turing-Maschine ist ja so ein Automat, der hat eine gewisse Anzahl Zustände und in jedem Zustand macht er bestimmte Dinge.

01:10:41.720 --> 01:10:46.420
Und in einer deterministischen Turing-Maschine nimmst du immer einen Übergang.

01:10:46.520 --> 01:10:49.380
Du gehst immer von einem Zustand in einen anderen Zustand.

01:10:51.900 --> 01:10:54.460
Weil das ist, was wir bauen können, wie der Jochen gesagt hat.

01:10:54.760 --> 01:10:58.520
Wenn der Zustand jetzt A ist und dann sind die Bedingungen gegeben,

01:10:58.640 --> 01:11:00.340
dann gehe ich als nächstes in den Zustand B.

01:11:00.800 --> 01:11:01.660
So, easy.

01:11:02.960 --> 01:11:07.520
In einer nicht deterministischen Turing-Maschine legst du dich nicht fest.

01:11:07.740 --> 01:11:11.600
Du sagst, wir gehen jetzt von dem Zustand A in alle möglichen anderen Zustände

01:11:11.600 --> 01:11:13.360
und erst wenn wir zu einem Ergebnis kommen,

01:11:13.460 --> 01:11:15.380
sage ich dir, in welchen Zustand ich wirklich gegangen bin.

01:11:17.540 --> 01:11:21.220
Das heißt, da erklärt sich auch schon so ein bisschen,

01:11:21.380 --> 01:11:23.060
warum es einfach ist, das

01:11:23.060 --> 01:11:24.860
in einer exponentiellen Laufzeit zu machen,

01:11:25.440 --> 01:11:27.240
weil du halt quasi in einem Zeitschritt

01:11:27.240 --> 01:11:29.240
in alle anderen möglichen Zustände

01:11:29.240 --> 01:11:30.960
übergehst, in die du übergehen kannst.

01:11:34.000 --> 01:11:35.120
Und das ist halt

01:11:35.120 --> 01:11:37.080
nicht zu bauen, das kannst du nicht bauen. Du sagst

01:11:37.080 --> 01:11:39.020
sozusagen erst am Ende, welchen Weg

01:11:39.020 --> 01:11:40.580
du durch die Zustände genommen hast.

01:11:42.700 --> 01:11:42.820
Ja,

01:11:43.280 --> 01:11:45.040
wobei, also ich meine, was ja

01:11:45.040 --> 01:11:47.020
so ein bisschen in die Richtung geht, wäre dann ja,

01:11:47.160 --> 01:11:49.000
also ist nicht das Gleiche, also Quantencomputer

01:11:49.000 --> 01:11:50.340
sind keine nicht deterministe Turing-Maschine,

01:11:51.080 --> 01:11:53.060
Aber so ein bisschen, was geht dann

01:11:53.060 --> 01:11:55.240
in die Richtung? Und jetzt bewege ich mich natürlich

01:11:55.240 --> 01:11:57.080
weit außerhalb von dem, wo ich mich normalerweise

01:11:57.080 --> 01:11:59.020
beschäftige, aber es gibt halt eine Klasse

01:11:59.020 --> 01:12:00.940
von Problemen, die halt

01:12:00.940 --> 01:12:02.260
durch den Quantencomputer halt

01:12:02.260 --> 01:12:04.820
in polynomial Zeit lösbar sind,

01:12:05.140 --> 01:12:07.000
werden, die das halt normalerweise nicht sind.

01:12:07.340 --> 01:12:08.160
Dazu gehört sowas wie

01:12:08.160 --> 01:12:10.920
Graphenisometrie,

01:12:12.040 --> 01:12:13.220
Primzahlfaktorisierung,

01:12:13.320 --> 01:12:15.080
das ist ein wichtiges, also das ist halt

01:12:15.080 --> 01:12:16.920
blöd, wenn das Quantencomputer

01:12:16.920 --> 01:12:18.780
tatsächlich geben sollte. Das macht

01:12:18.780 --> 01:12:20.040
RSA kaputt und

01:12:20.040 --> 01:12:22.680
damit... Und für DSA gibt es, glaube ich,

01:12:22.680 --> 01:12:24.300
auch so einen. Ja, also

01:12:24.300 --> 01:12:26.740
das Shores-Algorithmus heißt das Ding

01:12:26.740 --> 01:12:28.760
irgendwie, das macht auf dem Quantencomputer das Ding halt

01:12:28.760 --> 01:12:30.800
in Polynominalzeit nieder

01:12:30.800 --> 01:12:31.600
und das

01:12:31.600 --> 01:12:34.740
ja, das ist auch

01:12:34.740 --> 01:12:36.700
schon implementiert worden, also wenn es einen

01:12:36.700 --> 01:12:38.460
mit genügend Qubits gibt, dann haben wir ein Problem.

01:12:40.020 --> 01:12:40.680
Es sei denn, wir haben

01:12:40.680 --> 01:12:42.720
auf Post-Quantum-Kyptografie gesetzt

01:12:42.720 --> 01:12:43.880
oder so, was aber keiner macht, weil

01:12:43.880 --> 01:12:46.520
das kann aber gar nicht passieren. Naja, mal sehen.

01:12:46.560 --> 01:12:48.840
Ja, ist aber tatsächlich vor ein paar

01:12:48.840 --> 01:12:50.780
Monaten, Schrägstrich Jahren, hat

01:12:50.780 --> 01:12:52.520
die NIST auf einmal sehr und

01:12:52.520 --> 01:12:54.820
auch die NSA auf einmal

01:12:54.820 --> 01:12:56.880
sehr plötzlich ihre Empfehlungen

01:12:56.880 --> 01:12:58.440
geändert, ohne zu begründen, warum.

01:12:59.180 --> 01:13:00.820
Also es gibt schon so Hinweise, dass

01:13:00.820 --> 01:13:02.340
man dringend auf Postquanten

01:13:02.340 --> 01:13:03.840
Algorithmen wechseln sollte.

01:13:05.140 --> 01:13:06.220
Ja, jedenfalls die

01:13:06.220 --> 01:13:08.800
50 bis 100 Jahren, wissen wir das

01:13:08.800 --> 01:13:10.300
dann auch, ob die mehr wussten als wir.

01:13:11.400 --> 01:13:13.260
Also diese Komplexitätsklasse

01:13:13.260 --> 01:13:14.560
wird glaube ich dann MPI genannt,

01:13:14.680 --> 01:13:16.780
so MP Intermediate oder so und da sind halt so ein paar

01:13:16.780 --> 01:13:18.680
Dinger drin. Leider, ja, es waren halt auch so ein paar

01:13:18.680 --> 01:13:20.180
wichtige. Ja.

01:13:21.100 --> 01:13:22.660
Aber tatsächlich ist es immer noch,

01:13:22.760 --> 01:13:24.800
also, ach genau, und diese Klasse gibt es überhaupt nur dann,

01:13:24.940 --> 01:13:26.540
wenn P ungleich ein P gilt.

01:13:26.660 --> 01:13:28.640
Wenn P gleich ein P gilt, ist das natürlich sowieso Quatsch.

01:13:29.280 --> 01:13:30.100
Aber, ja, dann ist es vorbei.

01:13:30.700 --> 01:13:33.020
Aber ich meine so wirklich, ehrlich gesagt, so realistisch

01:13:33.020 --> 01:13:34.540
kann man das nicht so richtig annehmen, weil

01:13:34.540 --> 01:13:36.800
also, das hätte auch schon jemand

01:13:36.800 --> 01:13:38.540
rausgekriegt, wenn das wirklich wäre, ne? Also,

01:13:39.180 --> 01:13:40.840
ja. Ja, aber guck mal, wenn das so eine

01:13:40.840 --> 01:13:42.740
krasse galaktische Sache ist, wo du halt

01:13:42.740 --> 01:13:44.440
so Konstanten brauchst, die 10 hoch 40

01:13:44.440 --> 01:13:46.600
groß sind und ein Lookup-Table,

01:13:46.860 --> 01:13:48.420
der 10 hoch 100 Einträge

01:13:48.420 --> 01:13:50.360
hat, dann

01:13:50.360 --> 01:13:52.400
finden wir diesen Algorithmus

01:13:52.400 --> 01:13:54.480
nicht, weil da sind unsere Gehirne einfach nicht groß genug

01:13:54.480 --> 01:13:54.780
dafür.

01:13:56.200 --> 01:13:57.140
Ja, kann schon sein.

01:13:57.220 --> 01:13:59.480
Da wäre dann ein Beweis halt besser.

01:13:59.720 --> 01:14:01.880
Und als Mathematiker muss ich sagen, ein Beweis ist immer besser.

01:14:03.800 --> 01:14:03.960
Ja.

01:14:06.680 --> 01:14:07.640
Es ist ja nicht nur so,

01:14:07.760 --> 01:14:09.940
man kriegt ja die Million Dollar nicht, wenn man

01:14:09.940 --> 01:14:12.480
diesen Algorithmus findet. Man kriegt ja die Million Dollar auch,

01:14:12.480 --> 01:14:14.500
wenn du beweist, dass es diesen Algorithmus nicht gibt.

01:14:14.620 --> 01:14:16.540
Also wenn du P ungleich NP beweisen kannst.

01:14:19.300 --> 01:14:20.960
Nur ist bisher auch niemandem gelungen.

01:14:21.600 --> 01:14:22.740
Nee, also es ist auch

01:14:22.740 --> 01:14:24.280
nicht so, dass es nicht versucht worden wäre.

01:14:24.420 --> 01:14:26.640
Es haben schon diverse Leute sich an dem Ding

01:14:26.640 --> 01:14:27.360
die Zähne ausgelegt.

01:14:29.080 --> 01:14:30.500
Ab und zu gucke ich da mal rein und denke so,

01:14:30.560 --> 01:14:32.620
oh, interessanter Blogartikel. Und dann denke ich mir

01:14:32.620 --> 01:14:34.360
noch so den ersten, zweiten Absatz, ah, ganz interessant.

01:14:34.680 --> 01:14:36.500
Dann denke ich mir so, oh, das wird aber jetzt von einer

01:14:36.500 --> 01:14:38.620
Notation schon ein bisschen wild. Und dann irgendwann

01:14:38.620 --> 01:14:40.380
denke ich mir so... Und dann klickst du mal auf

01:14:40.380 --> 01:14:41.120
Später lesen.

01:14:41.940 --> 01:14:44.220
Dann fangen die Leute an, davon zu reden, so, ah ja, gut,

01:14:44.380 --> 01:14:46.260
okay, mit normaler Mathematik haben wir jetzt hier, jetzt müssen wir

01:14:46.260 --> 01:14:48.200
eine neue Mathematik irgendwie brauchen wir, um

01:14:48.200 --> 01:14:50.100
dabei, okay, später lesen.

01:14:50.740 --> 01:14:51.060
Das ist okay.

01:14:51.740 --> 01:14:53.100
Keine Schlafflektüre ordnen.

01:14:55.700 --> 01:14:57.540
Ja, als ich

01:14:57.540 --> 01:15:00.280
habe ja Mathematik studiert und ich hatte da auch einmal

01:15:00.280 --> 01:15:02.180
eine sehr, oh, das ist jetzt auch wieder eine

01:15:02.180 --> 01:15:03.380
Überleitung zu Win und Fail.

01:15:04.200 --> 01:15:06.380
Ich hatte eine sehr lange Unterhaltung mit jemandem,

01:15:06.380 --> 01:15:07.520
dem es nicht

01:15:07.520 --> 01:15:10.180
einleuchtend war, dass es nicht

01:15:10.180 --> 01:15:11.860
Existenzbeweise gibt und dass

01:15:11.860 --> 01:15:14.200
er mich unbedingt davon überzeugen wollte,

01:15:14.460 --> 01:15:16.280
dass es die universelle

01:15:16.280 --> 01:15:18.420
Mathematik gibt und dass es eine Lösung für jedes Problem

01:15:18.420 --> 01:15:19.080
gibt und

01:15:19.080 --> 01:15:22.100
dass ich das doch als Wissenschaftler auch untersuchen

01:15:22.100 --> 01:15:22.820
müsste und

01:15:22.820 --> 01:15:25.980
mein Bürogenosse, der

01:15:25.980 --> 01:15:27.960
derweil echte Arbeit gemacht hat

01:15:27.960 --> 01:15:29.800
und nicht nur mit Verrückten sich unterhalten hat,

01:15:31.240 --> 01:15:32.220
hat immer mehr gekichert

01:15:32.220 --> 01:15:34.200
im Hintergrund und

01:15:34.200 --> 01:15:36.360
diese Diskussion hat sich etwas länger hingezogen

01:15:36.360 --> 01:15:38.020
als notwendig.

01:15:39.780 --> 01:15:42.200
Aber hat er dann logarithmische Komplexität oder nicht?

01:15:44.220 --> 01:15:59.640
Es gibt auch, es gibt Probleme mit logarithmischer Komplexität, aber das, es gibt auch Probleme mit konstanter Komplexität, auch das ist sehr überraschend für viele Leute, dass zum Beispiel Dictionaries O von 1 sind bei den wichtigen Operationen.

01:15:59.640 --> 01:16:11.580
Auch das überrascht Leute manchmal, wenn man das denen beibringt, dass man sagt, okay, das Einfügen in ein Dictionary dauert immer konstant lang, egal wie groß das Dictionary ist.

01:16:11.580 --> 01:16:23.440
Und auch das Raussuchen eines Keys dauert immer gleich lang, egal wie groß das Dictionary ist, bis auf ein paar Unwägbarkeiten selbstverständlich und auch bis auf die Endlichkeit unserer endlichen Computer.

01:16:24.800 --> 01:16:27.160
Aber im Wesentlichen dauert das immer gleich lange.

01:16:27.260 --> 01:16:28.620
Und das ist ja schon was Überraschendes,

01:16:28.760 --> 01:16:31.340
dass das Einfügen eines Wertes in den Dictionary

01:16:31.340 --> 01:16:35.460
mit einem Schlüssel dauert im Wesentlichen genauso lange

01:16:35.460 --> 01:16:37.000
wie das Einfügen in den Dictionary

01:16:37.000 --> 01:16:40.820
mit einem Milliardenschlüssel oder zehn Milliardenschlüssel.

01:16:41.740 --> 01:16:43.380
Ist schon eine überraschende Sache,

01:16:43.980 --> 01:16:46.240
dass es sowas gibt

01:16:46.240 --> 01:16:49.380
und dass es sowas trivial für uns zugänglich gibt.

01:16:51.320 --> 01:16:53.020
Aber du wolltest auf die Historik hinaus,

01:16:53.400 --> 01:16:57.580
in der du mit jemandem über die Nichtbeweisbarkeit ...

01:16:57.580 --> 01:16:59.260
Ja, das ist im Wesentlichen die Story,

01:16:59.920 --> 01:17:03.020
dass halt jemand versucht hat, mich davon zu überzeugen,

01:17:03.060 --> 01:17:05.140
dass es die universelle Mathematik gibt.

01:17:05.740 --> 01:17:06.960
Er hat dann auch irgendwann angefangen,

01:17:06.960 --> 01:17:09.040
von seinen Erfahrungen in Indien zu sprechen,

01:17:10.120 --> 01:17:13.240
wo er Einblick in das Universum bekommen hatte,

01:17:14.540 --> 01:17:18.920
was mich natürlich in unserem 70er-Jahre-Betonbau

01:17:18.920 --> 01:17:23.100
im Tübinger Institut für Mathematik relativ wenig beeindruckt hat.

01:17:23.400 --> 01:17:26.300
ja, es gibt so Leute, die glauben,

01:17:26.300 --> 01:17:27.920
das war irgendwie, keine Ahnung,

01:17:28.080 --> 01:17:30.320
Ramanujan 2 oder so und du hast

01:17:30.320 --> 01:17:31.500
ihn weggeschickt. Meine Güte.

01:17:32.060 --> 01:17:34.340
Ja, das war neue Mathematik und ich habe sie halt

01:17:34.340 --> 01:17:36.200
verschmäht.

01:17:36.720 --> 01:17:37.920
Man muss ja auch dazu sagen,

01:17:38.200 --> 01:17:39.040
Vermaas-Theorem

01:17:39.040 --> 01:17:42.160
war ja 400 Jahre lang ungelöst

01:17:42.160 --> 01:17:44.040
und das ist wesentlich leichter zu beschreiben

01:17:44.040 --> 01:17:45.260
als P gleich NP.

01:17:46.480 --> 01:17:48.300
Vielleicht ist da einfach noch nicht genügend

01:17:48.300 --> 01:17:50.420
Zeit reingeflossen. Vielleicht ist die Mathematik,

01:17:50.500 --> 01:17:52.500
die wir jetzt haben, einfach wirklich nicht ausreichend.

01:17:53.300 --> 01:17:55.660
um diesen Nicht-Existenzbeweis

01:17:55.660 --> 01:17:57.480
zu führen. Und irgendwann kommt so was

01:17:57.480 --> 01:17:59.460
ganz Verrücktes um die Ecke, wie Andrew Wiles,

01:17:59.580 --> 01:18:01.740
der ja

01:18:01.740 --> 01:18:03.480
Sachen bewiesen hat, die überhaupt gar nichts damit

01:18:03.480 --> 01:18:04.140
zu tun haben.

01:18:07.060 --> 01:18:09.440
Der Insider war ein bisschen zu weit

01:18:09.440 --> 01:18:11.420
weg für den Podcast, der musste jetzt wieder

01:18:11.420 --> 01:18:12.380
herauskommen.

01:18:13.500 --> 01:18:15.480
Ja, Andrew Wiles ist derjenige, der den

01:18:15.480 --> 01:18:16.780
Satz von Fermat bewiesen hat.

01:18:17.260 --> 01:18:18.600
Das Theorem von Fermat.

01:18:21.240 --> 01:18:36.580
Aber er hat es nicht auf direktem Wege bewiesen, sondern er hat ein ganz anderes Theorem aus einem ganz anderen Bereich der Mathematik bewiesen, wo man allerdings vorher schon wusste, dass es äquivalent ist zum Theorem von Fermat oder dass es das Theorem von Fermat als Teilergebnis enthält, um es mal so zu sagen.

01:18:36.780 --> 01:18:43.940
Der erste Eintrag auf Google sagt dazu, dass er durch seinen Beweis der Taniyama-Shimura-Vermutung berühmt wurde.

01:18:43.960 --> 01:18:44.320
Genau richtig.

01:18:44.400 --> 01:18:45.540
Ach so, ja, genau, okay.

01:18:45.540 --> 01:19:05.320
Ja, und die enthält eben Vermaas letztes Theorem als Teilmenge, mehr oder weniger. Also er hat mehr bewiesen als Vermaas letztes Theorem, aber dafür ist er bekannt. Dafür gibt es auch einen Film über ihn und wird uns allen lange im Gedächtnis bleiben dafür.

01:19:05.680 --> 01:19:24.040
Und genauso wird es halt auch sein bei p gleich np, dass sich die Mathematik irgendwo hinmeandert und irgendwann sagt einer halt, oh, Moment mal, wenn ich da richtig rum drauf schaue, dann sieht man, dass es einen solchen Algorithmus nicht geben kann und zack, in 300 Jahren halt.

01:19:25.040 --> 01:19:25.480
Tja.

01:19:27.480 --> 01:19:28.960
Da sind wir vielleicht nicht mehr am Leben.

01:19:29.440 --> 01:19:29.740
Tja.

01:19:30.940 --> 01:19:33.940
Je nachdem, wann wir geimpft werden. War das nicht ein schöner Bogen?

01:19:35.680 --> 01:19:50.040
Ja, jetzt haben wir ganz viel über Fails gesprochen, gibt es denn auch irgendwas, wo ihr so richtig sagen würdet, das hat funktioniert bei euch in Projekten, weil das ist ja was, was schöner ist und was leider nicht so häufig.

01:19:51.840 --> 01:19:55.380
Also oft, das hatte ich mir auch schon aufgeschrieben,

01:19:55.380 --> 01:19:59.580
also Dicts, so Hashes, diese Art Datenstruktur ist etwas,

01:19:59.660 --> 01:20:00.960
was man einfach ständig braucht.

01:20:01.420 --> 01:20:02.160
Und das ist total super.

01:20:02.740 --> 01:20:05.980
Also wenn man nur Dicts hat, nur Listen und nur Skalare,

01:20:06.040 --> 01:20:07.420
da kommt man damit schon sehr, sehr weit.

01:20:07.740 --> 01:20:11.140
Also wenn man das richtig, also wenn man das wirklich verstanden hat

01:20:11.140 --> 01:20:13.980
und richtig verwendet, dann ist man da schon,

01:20:14.160 --> 01:20:16.660
also dann ist man schon auf einem echt guten Weg,

01:20:16.740 --> 01:20:18.740
weil das meiste kriegst du damit halt schon klein.

01:20:21.120 --> 01:20:23.160
Und das summiert auch ganz viele so Techniken,

01:20:23.280 --> 01:20:26.820
die man sich im Informatikstudium ganz schwer erarbeiten muss

01:20:26.820 --> 01:20:30.540
mit Bäumen und mit Balancieren und mit Binärsuche und so Zeugs.

01:20:30.660 --> 01:20:33.360
Das geht da alles weg, weil das einfach jetzt schon drin ist, fertig.

01:20:33.920 --> 01:20:36.900
Ja, und das ist halt total nett.

01:20:37.020 --> 01:20:38.220
Also das würde ich sagen, ist ein großer Win.

01:20:39.000 --> 01:20:42.260
Ich meine, bei diversen unterschiedlichen Programmiersprachen

01:20:42.260 --> 01:20:44.600
ist das halt sozusagen das Basiskonzept, das eingebaut zu haben

01:20:44.600 --> 01:20:46.920
und dann damit schnell zum Ziel zu kommen.

01:20:47.100 --> 01:20:48.920
Das ist bei PHP so, das ist bei

01:20:48.920 --> 01:20:51.100
Perl so, Ruby und Rails

01:20:51.100 --> 01:20:53.120
eben Python. Ich bin dann halt bei Python

01:20:53.120 --> 01:20:54.320
hängen geblieben. Ich würde sagen,

01:20:54.860 --> 01:20:56.840
Ruby und Rails ist auch eine gültige

01:20:56.840 --> 01:20:59.600
Programmiersprachenlösung, wo man hängenbleiben kann.

01:20:59.620 --> 01:21:00.100
Das ist auch ein Win.

01:21:02.180 --> 01:21:03.160
Vielleicht auch Perl 6,

01:21:03.260 --> 01:21:04.540
das habe ich mir dann nicht mehr angeguckt, keine Ahnung.

01:21:05.980 --> 01:21:07.160
Gibt es das schon? Ist das schon raus?

01:21:07.260 --> 01:21:08.380
Das ist schon raus, tatsächlich, ja.

01:21:09.200 --> 01:21:10.020
Das ist ja verrückt.

01:21:13.520 --> 01:21:14.760
Aber genau,

01:21:15.040 --> 01:21:16.980
also, ja,

01:21:17.100 --> 01:21:19.540
das ist toll, dass es den allen

01:21:19.540 --> 01:21:21.000
gemeinsam und das funktioniert wirklich gut.

01:21:22.100 --> 01:21:23.540
Hast du auch konkrete Kriegsgeschichten,

01:21:23.660 --> 01:21:25.480
Jörn? Also ich meine, wir haben alle konkrete Geschichten, wie wir

01:21:25.480 --> 01:21:27.360
schon mal eine Datenbank gelöscht haben und wir

01:21:27.360 --> 01:21:29.420
schon mal... Ein Win, ja,

01:21:29.620 --> 01:21:31.180
so Wins. So ein konkreter Win?

01:21:31.480 --> 01:21:33.260
Ja, doch, vielleicht auch

01:21:33.260 --> 01:21:34.960
Python tatsächlich.

01:21:36.040 --> 01:21:37.560
Ein wenig beachtetes

01:21:37.560 --> 01:21:39.520
Modul

01:21:39.520 --> 01:21:41.700
aus einem total uninteressanten Spiralarm

01:21:41.700 --> 01:21:42.940
der Standardbibliothek,

01:21:43.840 --> 01:21:45.320
über das ich mal gestolpert bin,

01:21:45.460 --> 01:21:47.640
hat irgendwie unerwartete Vorteile

01:21:47.640 --> 01:21:48.980
gehabt. Und zwar

01:21:48.980 --> 01:21:51.420
das Array-Modul. Ich weiß nicht, ob euch das

01:21:51.420 --> 01:21:51.780
was sagt.

01:21:53.480 --> 01:21:55.300
Da habe ich tatsächlich heute drüber

01:21:55.300 --> 01:21:57.420
nachgedacht, ob das überhaupt was ist, was man

01:21:57.420 --> 01:21:58.700
je braucht. Ja,

01:21:59.400 --> 01:22:01.200
denkt man eigentlich, so braucht man nicht unbedingt. Aber

01:22:01.200 --> 01:22:02.460
tatsächlich, ich habe es mal

01:22:02.460 --> 01:22:05.240
verwendet und das war ein ziemlicher,

01:22:05.440 --> 01:22:06.580
oder ich fand, das war ein Win.

01:22:09.080 --> 01:22:09.700
Und zwar

01:22:09.700 --> 01:22:11.120
hatte ich das Problem, irgendwie,

01:22:11.200 --> 01:22:13.280
ich mache ja schon lange auch so Text-

01:22:13.280 --> 01:22:15.040
Klassifikationsgeschichten und so Maschinen-Learning

01:22:15.040 --> 01:22:17.280
mit Texten. Ganz am Anfang

01:22:17.280 --> 01:22:19.140
gab es da noch keine Bibliotheken, da haben wir das alles selber

01:22:19.140 --> 01:22:20.800
gemacht und irgendwie unsere

01:22:20.800 --> 01:22:23.060
früher, ja, irgendwie

01:22:23.060 --> 01:22:25.300
ohne Spur, bergauf

01:22:25.300 --> 01:22:26.820
durch den Schnee, genau.

01:22:27.920 --> 01:22:28.840
Aber inzwischen gibt es da ja

01:22:28.840 --> 01:22:30.540
Cycled Learn und

01:22:30.540 --> 01:22:33.040
das habe ich auch

01:22:33.040 --> 01:22:35.200
verwendet, das habe ich vor allen Dingen so Kegel-Competitions

01:22:35.200 --> 01:22:37.040
verwendet, also das

01:22:37.040 --> 01:22:38.960
so Maschinen-Learning-Wettbewerbs-Dinger

01:22:38.960 --> 01:22:40.220
und

01:22:40.220 --> 01:22:43.120
aber ich hatte halt nicht so viel Hauptspeicher.

01:22:43.280 --> 01:23:06.040
Und das Ding ist relativ verschwenderisch mit dem Hauptspeicher umgegangen, weil du zerlegst halt Texte. Was du eigentlich haben möchtest, sind Vektoren, die so einen Text beschreiben. Und zwar, wo du halt pro Wort eine Dimension hast und dann in der Dimension hast du halt ein Gewicht für dieses Wort stehen.

01:23:06.040 --> 01:23:07.920
das angibt, wie wichtig dieses Wort

01:23:07.920 --> 01:23:09.960
im Text ist und

01:23:09.960 --> 01:23:12.020
dafür musst du die ganzen Worte zählen und so

01:23:12.020 --> 01:23:14.160
und Scikit-Learn

01:23:14.160 --> 01:23:14.960
hat diese

01:23:14.960 --> 01:23:17.980
Zählgeschichten, also da heißt

01:23:17.980 --> 01:23:20.080
das Ding halt Count Vectorizer oder Vectorizer

01:23:20.080 --> 01:23:21.880
allgemein für diesen Text

01:23:21.880 --> 01:23:23.520
irgendwie in so einen

01:23:23.520 --> 01:23:24.760
Vektor verwandeln,

01:23:25.300 --> 01:23:27.900
hat da erst Listen draus gemacht

01:23:27.900 --> 01:23:29.960
und dann halt auch die ganzen Counts

01:23:29.960 --> 01:23:30.840
und so in Listen gehalten

01:23:30.840 --> 01:23:33.900
und Listen sind halt nicht so richtig

01:23:33.900 --> 01:23:35.480
Was ja prinzipiell nicht so blöd ist.

01:23:35.580 --> 01:23:37.680
prinzipiell nicht so blöd. Funktioniert das auch alles praktisch.

01:23:37.740 --> 01:23:39.620
Du musst ja halt nicht vorher überlegen, okay, wie lang ist denn jetzt

01:23:39.620 --> 01:23:40.720
mein Text? Sondern du kannst halt einfach,

01:23:41.360 --> 01:23:43.360
weil du fügst halt einfach in Listen ein, das geht.

01:23:44.400 --> 01:23:45.640
Der Nachteil dabei ist halt

01:23:45.640 --> 01:23:47.720
auch eine einfache Zahl

01:23:47.720 --> 01:23:49.400
wie so ein Count braucht halt irgendwie

01:23:49.400 --> 01:23:50.840
irgendwas um die, also ich weiß nicht,

01:23:52.020 --> 01:23:53.080
irgendwas 20 Byte,

01:23:53.560 --> 01:23:54.760
etwas über 20 Byte.

01:23:55.900 --> 01:23:57.480
Integer sind groß.

01:23:58.160 --> 01:23:59.020
Und das ist halt...

01:23:59.020 --> 01:24:00.660
Listen haben auch nochmal Overhead.

01:24:00.900 --> 01:24:02.140
Die haben nochmal ein bisschen Overhead, also

01:24:02.140 --> 01:24:05.300
es ist deutlich mehr, als du brauchen würdest,

01:24:05.380 --> 01:24:07.440
wenn du jetzt einfach nur den nackten Zahlenwert

01:24:07.440 --> 01:24:12.800
als 4-Byte-Integer oder so halt hättest.

01:24:12.980 --> 01:24:14.940
So 32-Bit oder 64-Bit, wie auch immer.

01:24:16.300 --> 01:24:20.000
Ja, und bei mir ist der Hauptspeicher

01:24:20.000 --> 01:24:23.480
tatsächlich bei so einer Competition ausgegangen.

01:24:23.680 --> 01:24:24.080
Und ich dachte mir so,

01:24:24.120 --> 01:24:25.820
ah, okay, kriege ich das irgendwie gedrückt?

01:24:28.580 --> 01:24:30.380
Und da bin ich dann halt

01:24:30.380 --> 01:24:31.620
über dieses Array-Modul gestolpert.

01:24:32.640 --> 01:24:35.760
Und ja, das hat tatsächlich funktioniert.

01:24:36.200 --> 01:24:39.000
Und zwar kann man ja einfach statt einer Liste so ein Array nehmen

01:24:39.000 --> 01:24:43.160
und dann braucht es tatsächlich nur noch so viel Speicher,

01:24:43.160 --> 01:24:46.400
wie halt das Integer, was man da speichert,

01:24:47.460 --> 01:24:48.440
halt einen Platz braucht.

01:24:49.220 --> 01:24:51.460
Und das ließ sich relativ problemlos austauschen

01:24:51.460 --> 01:24:56.080
und das hat halt irgendwie so den Speicherbedarf gedrittelt ungefähr.

01:24:57.580 --> 01:24:58.660
Und genau, ich habe damals halt,

01:24:58.960 --> 01:25:00.880
ich habe das, dass das geht,

01:25:00.960 --> 01:25:02.200
habe ich irgendwann halt in dieser

01:25:02.200 --> 01:25:04.040
Competition, in dieser, glaube ich,

01:25:04.580 --> 01:25:06.800
Predict Close Open Questions in

01:25:06.800 --> 01:25:08.760
Stack Overflow Competition, habe ich das

01:25:08.760 --> 01:25:10.140
irgendwie gesehen und dann habe ich irgendwann mal

01:25:10.140 --> 01:25:12.440
so ein Pull-Request rausgemacht, das war dann aber

01:25:12.440 --> 01:25:14.880
ein bisschen später, irgendwann 2015 oder so.

01:25:15.320 --> 01:25:17.020
Das ist auch tatsächlich durchgegangen und seitdem

01:25:17.020 --> 01:25:18.780
sind,

01:25:19.040 --> 01:25:20.960
braucht halt TF-EDF-Vectorizer

01:25:20.960 --> 01:25:22.300
und so, braucht halt nur noch ein Drittel Hauptspeicher.

01:25:22.620 --> 01:25:24.480
Und man kann halt damit größere, ja.

01:25:25.340 --> 01:25:26.840
Und das ist auch, das ist halt

01:25:26.840 --> 01:25:28.540
vor allen Dingen deswegen einfach so durchgegangen,

01:25:28.960 --> 01:25:30.720
weil man eben nichts installieren

01:25:30.720 --> 01:25:32.480
musste oder nichts Kompliziertes machen musste,

01:25:32.620 --> 01:25:34.680
sondern man konnte einfach das stinknormale

01:25:34.680 --> 01:25:36.680
Array-Modul

01:25:36.680 --> 01:25:37.620
aus der Standardbibliothek nehmen.

01:25:38.120 --> 01:25:40.280
Das ist einfach ein anderer Konstruktor, den du da aufgerufen hast.

01:25:41.440 --> 01:25:42.620
Ja, also der Code hat

01:25:42.620 --> 01:25:44.160
sich dann auch nochmal ein paar Schritte geändert, aber

01:25:44.160 --> 01:25:45.600
ja.

01:25:45.920 --> 01:25:47.660
Ja, aber das ist natürlich echt cool.

01:25:47.860 --> 01:25:50.680
Auch was echt für die Welt getan

01:25:50.680 --> 01:25:51.240
sozusagen.

01:25:52.860 --> 01:25:54.280
Ja gut, ich weiß nicht, ob das...

01:25:54.280 --> 01:25:55.560
Für den kleinen Teil der Welt, aber...

01:25:55.560 --> 01:25:57.480
Ja, es ist ein witziges, aber...

01:25:57.480 --> 01:25:59.420
Das kann man durchaus als Win.

01:26:00.780 --> 01:26:01.320
Das ist echt cool.

01:26:01.740 --> 01:26:03.180
Um das noch kurz nachzuführen,

01:26:03.720 --> 01:26:05.700
das Array-Modul ist einfach sozusagen

01:26:05.700 --> 01:26:07.900
gepackte Listen, also quasi

01:26:07.900 --> 01:26:08.880
C-Structures

01:26:08.880 --> 01:26:11.600
oder C-Arrays als

01:26:11.600 --> 01:26:13.820
Python-Bibliothek und sorgen

01:26:13.820 --> 01:26:15.760
halt dafür, dass man nicht genau diese Listen-

01:26:15.760 --> 01:26:17.860
Operationen hat, aber dafür hat man

01:26:17.860 --> 01:26:18.920
halt auch nicht den Listen-Overhead.

01:26:19.720 --> 01:26:21.000
Ja, es muss halt alles vom gleichen

01:26:21.000 --> 01:26:22.140
Typ sein, was da drin ist.

01:26:23.020 --> 01:26:24.940
Und die Größe muss bekannt sein.

01:26:25.300 --> 01:26:26.900
Ja, genau. Das heißt, man muss sich selber drum kümmern,

01:26:26.980 --> 01:26:28.840
dass man das irgendwie, also die vergrößern

01:26:28.840 --> 01:26:30.540
sich irgendwie selber, wobei man da muss aufpassen,

01:26:30.840 --> 01:26:32.640
dass die verdoppelt, glaube ich, den Platz

01:26:32.640 --> 01:26:34.540
irgendwie dann halt, wenn man das einfach so naiv macht.

01:26:34.980 --> 01:26:36.780
Man kann das aber auch selber einstellen und ich glaube,

01:26:36.840 --> 01:26:38.820
was da unten drunter liegt, also das,

01:26:38.900 --> 01:26:40.380
was die Leute dann immer, sie nennen das irgendwie dann

01:26:40.380 --> 01:26:42.860
Type Memory View oder so, ist halt

01:26:42.860 --> 01:26:44.500
einfach sozusagen ein Stück

01:26:44.500 --> 01:26:46.040
Hauptspeicher mit einem Typ dran.

01:26:47.120 --> 01:26:49.160
Ja. Ja, das ist witzig.

01:26:49.660 --> 01:26:50.860
Ich habe tatsächlich auch eine Geschichte,

01:26:51.000 --> 01:26:52.780
die ist aber sozusagen das Gegenteil von

01:26:52.780 --> 01:26:54.720
deiner Geschichte. Da musst du aber ganz kurz warten, weil

01:26:54.720 --> 01:26:56.880
da, glaube ich, ganz super passt zu dieser Frage,

01:26:56.980 --> 01:26:58.900
mit den Listen, die Frage mit den Dicks,

01:26:59.560 --> 01:27:00.780
weil wir hatten ja kurz darüber gesprochen,

01:27:00.880 --> 01:27:02.620
dass Dicks so schnell gehen und

01:27:02.620 --> 01:27:04.660
wenn Listen jetzt so cool sind über Array,

01:27:05.000 --> 01:27:06.560
wie gehen denn Dicks so schnell? Vielleicht

01:27:06.560 --> 01:27:08.800
da nochmal kurz, also das wird ja irgendwie implementiert,

01:27:08.900 --> 01:27:10.860
aber wie funktioniert denn das?

01:27:10.960 --> 01:27:12.700
Es gibt da ein Table

01:27:12.700 --> 01:27:14.620
über dieses Dickt und da guckt man einfach drin

01:27:14.620 --> 01:27:15.960
oder wie macht man das?

01:27:17.640 --> 01:27:18.560
Ja, da gibt es verschiedene

01:27:18.560 --> 01:27:20.620
Techniken, aber im Wesentlichen ist so ein

01:27:20.620 --> 01:27:22.620
Dictionary ja ein sogenannter

01:27:22.620 --> 01:27:23.420
Hashtable.

01:27:24.760 --> 01:27:26.500
Das gibt es eigentlich

01:27:26.500 --> 01:27:28.620
in den allermeisten Programmiersprachen, die heißen

01:27:28.620 --> 01:27:30.580
immer ein kleines bisschen anders. In Java zum Beispiel

01:27:30.580 --> 01:27:31.420
heißen sie HashMap.

01:27:34.480 --> 01:27:36.700
Der Trick ist sozusagen,

01:27:37.200 --> 01:27:38.740
dass man eine Liste,

01:27:39.020 --> 01:27:40.540
also man sieht,

01:27:40.660 --> 01:27:42.620
das Dictionary ist ja

01:27:42.620 --> 01:27:44.540
eine Zuordnung von einem

01:27:44.540 --> 01:27:46.760
Key-Wert zu einem Value-Wert.

01:27:48.200 --> 01:27:50.240
Also unter einem bestimmten Key

01:27:50.240 --> 01:27:52.320
habe ich irgendeinen Value eingespeichert.

01:27:52.700 --> 01:27:54.560
So das klassische Modell ist das Telefonbuch.

01:27:54.780 --> 01:27:56.740
Zum Key Dominic ist deine Telefonnummer

01:27:56.740 --> 01:27:58.660
eingespeichert und zum Key Jochen

01:27:58.660 --> 01:28:00.840
ist Jochens Telefonnummer eingespeichert

01:28:00.840 --> 01:28:02.560
und zum Key Johannes ist meine Telefonnummer

01:28:02.560 --> 01:28:03.140
eingespeichert.

01:28:05.120 --> 01:28:06.740
Das ist so das klassische Dictionary,

01:28:06.740 --> 01:28:07.620
ein Wörterbuch.

01:28:08.340 --> 01:28:10.700
Zu einem Wort auf Deutsch

01:28:10.700 --> 01:28:12.680
ist dazu gespeichert das Wort auf

01:28:12.680 --> 01:28:12.960
Englisch.

01:28:15.140 --> 01:28:15.660
Jeden

01:28:15.660 --> 01:28:18.620
Key-Eintrag kannst du halt nur

01:28:18.620 --> 01:28:20.460
einmal geben und das Value kann dann

01:28:20.460 --> 01:28:22.520
irgendwas sein. Das kann eine Liste von Wörtern sein

01:28:22.520 --> 01:28:24.620
oder kann irgendwas sein. Das spielt erstmal keine

01:28:24.620 --> 01:28:24.780
Rolle.

01:28:26.200 --> 01:28:28.380
Jetzt ist ja schon mal, diese Datenstruktur an sich

01:28:28.380 --> 01:28:29.900
ist ja schon mal schwierig zu visualisieren.

01:28:30.040 --> 01:28:31.600
Wie würde man sowas speichern?

01:28:32.240 --> 01:28:34.580
Die einfachste Liste, sowas zu speichern

01:28:34.580 --> 01:28:36.300
ist, dass man sich sozusagen

01:28:36.300 --> 01:28:38.460
diese Paare speichert, einfach als Abfolge

01:28:38.460 --> 01:28:38.920
von Paaren.

01:28:39.940 --> 01:28:42.120
Das erste, was ich mir gemerkt habe,

01:28:42.420 --> 01:28:44.340
Dominik ist deine Telefonnummer, also schreibe ich mir

01:28:44.340 --> 01:28:46.040
auf in meine Liste oben

01:28:46.040 --> 01:28:48.520
Dominik, Telefonnummer von Dominik

01:28:48.520 --> 01:28:50.300
1. Und dann

01:28:50.300 --> 01:28:51.860
kommt der Jochen und dann schreibe ich mir Jochens

01:28:51.860 --> 01:28:54.320
Namen in meine Liste und schreibe

01:28:54.320 --> 01:28:55.720
mir halt in meine Liste rein, Jochen,

01:28:55.980 --> 01:28:58.180
17. Telefonnummer von Jochen ist 17.

01:28:59.180 --> 01:29:00.520
Mist, habe ich jetzt deine Telefonnummer

01:29:00.520 --> 01:29:00.860
verraten?

01:29:02.720 --> 01:29:04.580
Und dann merke ich mir meine Telefonnummer

01:29:04.580 --> 01:29:06.300
auch noch. Das heißt, ich schreibe mir in meine Liste,

01:29:06.400 --> 01:29:07.980
in meine Abfolge von Werten einfach rein,

01:29:08.060 --> 01:29:10.400
Johannes, 42. Das ist meine Telefonnummer.

01:29:12.780 --> 01:29:14.280
Und das ist gut, weil das bedeutet,

01:29:14.360 --> 01:29:16.140
wenn ich eine neue Telefonnummer eintragen möchte,

01:29:16.240 --> 01:29:18.300
dann ist das ganz einfach. Ich muss nur mir dieses

01:29:18.300 --> 01:29:20.180
Paar merken und das als Ende meiner Liste schreiben.

01:29:20.180 --> 01:29:20.800
Und das ist leicht.

01:29:22.580 --> 01:29:27.120
Das Herausfinden eines Eintrags ist da aber langsam, weil ich muss von oben nach unten durchgehen.

01:29:27.400 --> 01:29:31.260
Wenn ich jetzt nach dem Eintrag für Johannes suche, muss ich mir den ersten Eintrag anschauen und sehen,

01:29:31.840 --> 01:29:34.140
ist das die Telefonnummer, ist das der Name, den ich suche?

01:29:34.200 --> 01:29:35.720
Da steht Dominik, also es ist nicht der Name.

01:29:36.920 --> 01:29:41.680
Dann schaue ich mir den zweiten Eintrag an und sage, ist das der Eintrag, den ich suche?

01:29:41.740 --> 01:29:44.760
Und da steht Jochen und es ist also nicht der Eintrag, den ich suche.

01:29:44.760 --> 01:29:49.560
Der dritte Eintrag, den ich suche, ist der Eintrag, wo Johannes mit meiner Telefonnummer dabei steht.

01:29:49.660 --> 01:30:01.520
Das heißt, in diesem Fall, wenn ich das so implementieren würde, diese Datenstruktur, dann wäre die Insertion, also das Einfügen eines Eintrags O von 1, weil es immer gleich lang dauert, einen hinten hinschreiben.

01:30:02.220 --> 01:30:11.520
Aber das Heraussuchen wäre O von N und das ist schlecht, weil üblicherweise möchte man mindestens genauso oft raussuchen, wie man reinschreibt.

01:30:12.100 --> 01:30:14.680
Normalerweise sucht man viel mehr raus, als man reinschreibt.

01:30:16.880 --> 01:30:18.660
Das heißt, wir wollen, dass auch das

01:30:18.660 --> 01:30:20.200
heraussuchen O von 1 ist oder

01:30:20.200 --> 01:30:21.740
zumindest schneller ist.

01:30:22.460 --> 01:30:24.000
Und jetzt wird was gehasht.

01:30:25.160 --> 01:30:26.140
Genau, und jetzt

01:30:26.140 --> 01:30:28.560
kommt die Magie dazu, die magische

01:30:28.560 --> 01:30:29.640
Zutat sind Hashes.

01:30:31.540 --> 01:30:32.520
Und zwar,

01:30:32.940 --> 01:30:34.540
also man kennt Hashes ja üblicherweise

01:30:34.540 --> 01:30:36.660
aus so einem Bereich, dass man sagt, das ist eine Checksumme

01:30:36.660 --> 01:30:38.400
oder eine Prüfsumme oder eine

01:30:38.400 --> 01:30:40.700
Signatur von irgendwas, ja, wo man

01:30:40.700 --> 01:30:42.660
so einen Char 1 Hash dann macht und dann kommt

01:30:42.660 --> 01:30:44.820
eben raus, die Datei hat die Prüfsumme

01:30:44.820 --> 01:30:46.660
A 17 12 21

01:30:46.660 --> 01:30:48.100
1916, also irgendwas, ja.

01:30:50.360 --> 01:30:53.160
Das ist nicht die Art Hash, die man hier verwendet,

01:30:53.220 --> 01:30:54.940
sondern die Art Hash, die man hier verwendet,

01:30:54.980 --> 01:30:56.360
ist eine ganz andere Art von Hash,

01:30:56.720 --> 01:30:58.500
die nicht so eine ganz lange Prüfsumme gibt,

01:30:58.500 --> 01:31:00.840
sondern die gibt einen Index heraus.

01:31:02.580 --> 01:31:04.720
Das ist eine spezielle Sorte Hash,

01:31:04.820 --> 01:31:05.640
die man da verwenden muss,

01:31:06.060 --> 01:31:08.560
der schnell sein muss und kleine Ergebnisse hat

01:31:08.560 --> 01:31:10.600
und in konstanter Laufzeit und so weiter.

01:31:10.720 --> 01:31:13.960
Also ganz viele Sachen, die man da reintut.

01:31:14.020 --> 01:31:15.000
Ich weiß auch gar nicht genau,

01:31:15.080 --> 01:31:16.080
was da für ein Hash verwendet wird.

01:31:16.580 --> 01:31:24.680
So, das heißt, dieses Dictionary, was wir vorher als Liste von Schlüsselwertpaaren hatten, wird jetzt zu einer Liste, die erstmal leer ist.

01:31:25.360 --> 01:31:31.960
Ich sage mir, okay, ich gehe davon aus, dass ich im Laufe meines Lebens 16 Einträge in mein Telefonbuch speichern möchte.

01:31:33.200 --> 01:31:37.180
Jetzt kommt der erste Eintrag und der erste Eintrag heißt Dominik,1.

01:31:38.600 --> 01:31:42.780
Das heißt, der Schlüssel heißt Dominik und der Wert dazu heißt 1.

01:31:43.660 --> 01:31:51.960
Jetzt nehme ich den Schlüssel und hashe diesen Schlüssel und kriege jetzt als Hash eine Zahl von 0 bis 16 raus, also eine Zahl in meinem Adressbereich.

01:31:53.220 --> 01:31:57.160
Jetzt gucke ich in meine bislang leere Liste und sage, da steht noch nichts.

01:31:57.160 --> 01:32:03.260
Okay, perfekt. Also schreibe ich da den Dominik rein, also den Wert von Dominik.

01:32:04.720 --> 01:32:09.840
Das heißt, in meiner Liste steht jetzt ganz viel nichts und an einer Stelle steht deine Telefonnummer.

01:32:13.200 --> 01:32:25.320
Jetzt kommt der zweite Wert. Der zweite Wert für Jochen. Ich nehme wieder meinen Hash von Jochen und da steht jetzt halt 10. Da kommt jetzt 10 raus. Das heißt, in meine Liste schreibe ich jetzt an der Stelle 10 die Telefonnummer von Jochen rein. Bei Dominik sagen wir, kommt 12 raus.

01:32:26.460 --> 01:32:34.400
Dann schreibe ich Johannes. Ich nehme den Hash von Johannes. Da kommt 2 raus. Also schreibe ich in meine Liste an der Stelle 2 die Telefonnummer von Johannes rein.

01:32:36.060 --> 01:33:01.940
Wie man sieht, ist das Einfügen in diese Datenstruktur immer noch O von 1, weil es spielt keine Rolle, wie viele Einträge da drin sind. Das dauert immer gleich lang. Ich muss diesen Hash ausrechnen und dann an die Stelle, die mir der Hash gegeben hat, die Zahl reinschreiben. Mindere Details, wie zum Beispiel, dass die Liste voll wird oder dass der Hashtag voll wird oder dass es Kollisionen gibt, die ignorieren wir jetzt. Das sind Implementierungsdetails. Die bleiben dem geneigten Leser als üblich.

01:33:01.940 --> 01:33:03.320
Und du musst ja einmal kurz den Space verdoppeln,

01:33:03.380 --> 01:33:04.140
den man braucht oder sowas.

01:33:05.080 --> 01:33:06.380
Genau, musst du entweder den Space verdoppeln

01:33:06.380 --> 01:33:08.000
oder musst du eine Liste von Werten anlegen

01:33:08.000 --> 01:33:11.020
oder musst du irgendeine Kollisionsstrategie überlegen.

01:33:11.620 --> 01:33:14.240
Und auch eine Größenstrategie musst du dir auch überlegen.

01:33:14.820 --> 01:33:16.680
Okay, einfügen ist immer noch O von 1.

01:33:17.540 --> 01:33:20.080
Heraussuchen ist jetzt auch eine andere Operation.

01:33:20.640 --> 01:33:23.040
Ich sage, ich möchte die Telefonnummer von Jochen wissen.

01:33:23.180 --> 01:33:25.440
Ich nehme jetzt also den Hash von dem Namen Jochen

01:33:25.440 --> 01:33:28.020
und kriege raus, die Telefonnummer von Jochen

01:33:28.020 --> 01:33:29.660
steht in meiner Liste anstelle 10.

01:33:31.240 --> 01:33:49.760
Das Herrschen dieses Wertes, also die Adresse sozusagen berechnen, wo ich die Telefonnummer gespeichert habe, das ist immer gleich, das dauert immer gleich lang. Und jetzt in diese Liste an der Stelle 10 reingucken, dauert auch immer gleich lang. Und da steht genau die Telefonnummer vom Jochen drin, das heißt, auch das Heraussuchen dauert jetzt O von 1.

01:33:50.660 --> 01:34:10.860
Und die Magie ist eigentlich, dass man nicht den Schlüssel als Wert da drin hält, sondern man greift über eine Indirektion zu und diese Indirektion ist ein Hash und dieser Hash vermischt die Sachen auf eine einheitliche Art und Weise, sodass man eine einheitliche Füllung erreicht.

01:34:10.860 --> 01:34:21.560
Und das garantiert uns dann eben diese, ja, sogenannte amortisierte Laufzeit von ORF1 im Schnitt über lange Zeit, dauert jeder Zugriff auf den Dickschneider gleich lang.

01:34:24.160 --> 01:34:29.780
Ja, das Einzige, was man halt da tatsächlich machen muss, ist, wenn man ganz, ganz viele Einträge hat, mehr Speicher für dieses Dick alloziieren oder so.

01:34:30.720 --> 01:34:46.300
Genau, also es gibt oft so Situationen, wo es einen Trade-off gibt zwischen Rechenzeit und Speicherplatz und auch hier ist es so, wir haben halt ein kleines bisschen Overhead, was Speicherplatz angeht, weil wir immer ein bisschen leere Zellen haben müssen, wobei auch das in den neuen Python-Versionen nicht mehr stimmt.

01:34:46.300 --> 01:35:00.660
Da haben sie eine bessere Implementierung, die keinen großen Overhead haben drin, was noch beeindruckender ist, was wir uns auch gerne mal genauer anschauen können, wenn du das mal vorbereitest, Jochen.

01:35:01.400 --> 01:35:15.640
Ja, sich das mal unter Detail anzugucken, wäre nicht so uninteressant. Ich hatte jetzt noch im Hinterkopf, dass irgendwie die Dict-Implementation in Python, dass das irgendwie so try-basiert ist oder so, aber es kann sein, dass das auch wirtschaftlich veraltet ist.

01:35:15.640 --> 01:35:17.660
Zwischenschritte. Die machen noch so,

01:35:18.020 --> 01:35:19.620
das ist, glaube ich, auch veraltet, diese neue

01:35:19.620 --> 01:35:21.880
Implementierung ist, glaube ich, pur Array-basiert,

01:35:21.940 --> 01:35:23.740
soweit ich das weiß, aber ich weiß es nicht genau.

01:35:25.380 --> 01:35:25.940
Das sind

01:35:25.940 --> 01:35:27.780
auch so Implementierungsdetails, weil es

01:35:27.780 --> 01:35:28.540
halt schneller ist.

01:35:29.800 --> 01:35:31.600
Weil du noch ein paar Nanosekunden

01:35:31.600 --> 01:35:33.600
rausholen kannst und weil das eindeutig zur

01:35:33.600 --> 01:35:35.780
Hot-Section gehört von Python, weil das der Code ist,

01:35:35.780 --> 01:35:37.300
der Python

01:35:37.300 --> 01:35:39.600
laufen lässt. Dictionaries

01:35:39.600 --> 01:35:41.080
sind im Wesentlichen

01:35:41.080 --> 01:35:43.680
der Kleber, der Python zu Python macht.

01:35:44.740 --> 01:35:45.440
Auch intern,

01:35:45.520 --> 01:35:47.440
jedes Mal, wenn ich ein Objekt verwende,

01:35:48.020 --> 01:35:49.720
in anderen Programmiersprachen werden die dann irgendwie

01:35:49.720 --> 01:35:51.820
kompiliert oder zu Structs gemacht oder zu sonst

01:35:51.820 --> 01:35:53.860
irgendwas gemacht. In Python ist das halt

01:35:53.860 --> 01:35:55.260
ein Dictionary mit den Namen von dem,

01:35:56.140 --> 01:35:57.760
von dieser Instanz

01:35:57.760 --> 01:35:59.480
und fertig. Und

01:35:59.480 --> 01:36:01.960
auch die lokalen Variablen, die liegen alle in dem Dictionary.

01:36:02.380 --> 01:36:03.720
Da gibt es keine Speichermap

01:36:03.720 --> 01:36:05.620
und da gibt es keine festzugewiesene, da gibt es kein

01:36:05.620 --> 01:36:07.760
Stack und nix, sondern, ein Stack gibt es auch noch,

01:36:07.880 --> 01:36:09.800
aber die lokalen Variablen in einem Frame liegen

01:36:09.800 --> 01:36:11.020
immer in einem Dictionary drin.

01:36:13.340 --> 01:36:13.740
Deshalb

01:36:13.740 --> 01:36:15.740
ist die tatsächliche Implementierung

01:36:15.740 --> 01:36:18.020
hier sehr detailliert und sehr ausgefeilt,

01:36:18.340 --> 01:36:19.640
weil es sich eben lohnt,

01:36:19.760 --> 01:36:21.860
hier jede Nanosekunde rauszuholen.

01:36:23.320 --> 01:36:23.880
Aber

01:36:23.880 --> 01:36:25.500
die Magie, die drinsteckt,

01:36:25.680 --> 01:36:27.440
oder der Kerngedanke ist eigentlich,

01:36:27.560 --> 01:36:29.600
man hasht die Schlüssel und

01:36:29.600 --> 01:36:31.440
greift dann auf diese mehr oder weniger

01:36:31.440 --> 01:36:32.840
zufällig gewählte Adresse zu.

01:36:34.540 --> 01:36:35.520
Ja, also das ist

01:36:35.520 --> 01:36:38.140
die Python-Dict-Implementation

01:36:38.140 --> 01:36:39.720
ist halt auch so eine der schnellsten

01:36:39.720 --> 01:36:42.320
Hash-Implementationen,

01:36:42.320 --> 01:36:43.080
die es überhaupt gibt.

01:36:43.740 --> 01:36:45.720
ja, eben weil sie halt auch so wichtig ist.

01:36:46.340 --> 01:36:47.260
Und das ist

01:36:47.260 --> 01:36:50.180
auch manchmal dann überraschend, so für, wenn man

01:36:50.180 --> 01:36:51.760
in anderen Sprachen unterwegs ist oder

01:36:51.760 --> 01:36:54.120
mit Leuten sich unterhält, die in anderen, so ich hatte das

01:36:54.120 --> 01:36:55.540
auch schon mal, ich wollte das mal irgendwie,

01:36:56.680 --> 01:36:58.120
ich habe mit einem Python-Dict angefangen

01:36:58.120 --> 01:37:00.140
bei irgendeiner Geschichte, ich weiß jetzt gar nicht mehr genau, was

01:37:00.140 --> 01:37:01.980
es war, ich wollte irgendwelche Dinge unique machen, irgendwie

01:37:01.980 --> 01:37:03.940
riesige Sachen und

01:37:03.940 --> 01:37:05.840
das war irgendwie zu langsam und dann

01:37:05.840 --> 01:37:08.180
dachte ich so, okay, das muss ich wohl

01:37:08.180 --> 01:37:10.200
dann doch mal irgendwie in C oder C++ oder so

01:37:10.200 --> 01:37:12.020
neu machen und habe das dann in

01:37:12.020 --> 01:37:13.500
C++ versucht

01:37:13.500 --> 01:37:16.080
und habe dann auch angefangen,

01:37:16.120 --> 01:37:18.060
weil ich dachte, ich mache es jetzt erstmal so wie in Python

01:37:18.060 --> 01:37:19.820
und dann gucke ich mal,

01:37:19.940 --> 01:37:21.980
wo ich optimieren kann. Und habe dann

01:37:21.980 --> 01:37:22.720
halt irgendwie

01:37:22.720 --> 01:37:26.040
HashMap, außer sozusagen

01:37:26.040 --> 01:37:27.600
naja, C++ gibt es nicht, gab es oder

01:37:27.600 --> 01:37:29.720
vielleicht gibt es heute, aber gab es damals nicht so richtig

01:37:29.720 --> 01:37:32.020
eine Standard-Typerie. Boost heißt die. Boost gab es, genau.

01:37:32.460 --> 01:37:33.960
Und habe das halt so probiert,

01:37:34.040 --> 01:37:35.900
habe das gemanagt, habe irgendwas falsch

01:37:35.900 --> 01:37:37.420
gemacht. Irgendwie kann ja nicht sein.

01:37:37.860 --> 01:37:39.640
War deutlich langsamer als die beiden

01:37:39.640 --> 01:37:41.900
Varianten. Und habe dann

01:37:41.900 --> 01:37:43.920
also auf Stack Overflow so naiv nachgefragt,

01:37:44.080 --> 01:37:46.000
so, irgendwas mache ich hier falsch,

01:37:46.080 --> 01:37:47.760
was ist denn da los? Und dann waren

01:37:47.760 --> 01:37:49.640
die Antworten drauf aber eher nicht so

01:37:49.640 --> 01:37:51.900
ermutigend weiterzumachen in die Richtung,

01:37:52.160 --> 01:37:53.960
sondern dann hieß es so, ja, ach so, ja,

01:37:54.020 --> 01:37:56.120
ein Boost, ja, unsere Hashmap-Implementation,

01:37:56.480 --> 01:37:58.040
ja, das ist eigentlich noch gar keine richtige Hash,

01:37:58.200 --> 01:37:59.640
das ist nicht so richtig Hash, das ist eher so

01:37:59.640 --> 01:38:01.840
ein, eher so, wir holen die Dinger

01:38:01.840 --> 01:38:03.760
so per binäre Suche daraus und dann,

01:38:04.040 --> 01:38:05.740
das ist klar, deswegen dauert es dann natürlich schon ein bisschen länger.

01:38:06.140 --> 01:38:07.920
So, okay, Moment,

01:38:08.040 --> 01:38:09.860
aber das ist doch eine Datenstruktur, die man dauernd verwendet,

01:38:09.860 --> 01:38:10.720
ja, wie, was?

01:38:11.440 --> 01:38:13.120
Und ja, das geht auch schneller.

01:38:13.320 --> 01:38:14.980
Da musst du nur, ja, da musst du nur

01:38:14.980 --> 01:38:16.520
dann irgendwie, keine Ahnung, hier von

01:38:16.520 --> 01:38:19.100
SGI gibt's da

01:38:19.100 --> 01:38:20.880
irgendwie Header, die du irgendwie reinnehmen kannst,

01:38:20.960 --> 01:38:22.980
und dann musst du nur sagen, dass du das als Hash-Funktion, und dann geht's schneller.

01:38:23.440 --> 01:38:25.060
Das ist so, ähm,

01:38:25.240 --> 01:38:26.940
na, vielleicht auch nicht. Mal gucken, vielleicht kann man das

01:38:26.940 --> 01:38:27.660
auch irgendwie anders machen.

01:38:28.580 --> 01:38:29.400
Python nimmt man also.

01:38:31.140 --> 01:38:32.640
Aber das ist, äh, ja,

01:38:32.640 --> 01:38:36.360
da ist Python wirklich stark

01:38:36.360 --> 01:38:37.060
also das ist

01:38:37.060 --> 01:38:38.780
ja

01:38:38.780 --> 01:38:44.460
ja aber es ist halt auch einfach wichtig

01:38:44.460 --> 01:38:46.340
es gibt so Späße

01:38:46.340 --> 01:38:48.280
wo man jede Programmiersprache beschreibt

01:38:48.280 --> 01:38:50.480
als eine Kerneigenschaft

01:38:50.480 --> 01:38:52.540
eine so eine Liste

01:38:52.540 --> 01:38:53.700
die ich mal gesehen habe war eben

01:38:53.700 --> 01:38:55.900
jede Programmiersprache beschrieben als

01:38:55.900 --> 01:38:57.240
what if everything was an

01:38:57.240 --> 01:38:59.760
und da war zum Beispiel c

01:38:59.760 --> 01:39:01.120
what if everything is a pointer

01:39:01.120 --> 01:39:03.040
und Java ist

01:39:03.040 --> 01:39:04.340
what if everything is a pattern

01:39:04.340 --> 01:39:06.760
und

01:39:06.760 --> 01:39:09.140
Python war halt what if everything

01:39:09.140 --> 01:39:11.240
is a dictionary und das ist schon so.

01:39:11.580 --> 01:39:13.140
Es ist schon so. Es ist einfach alles

01:39:13.140 --> 01:39:15.040
ein Dictionary und wenn man irgendein Problem mit Dictionaries

01:39:15.040 --> 01:39:16.940
lösen kann, dann ist das

01:39:16.940 --> 01:39:17.560
sehr gut.

01:39:19.640 --> 01:39:20.460
Um aber nochmal

01:39:20.460 --> 01:39:22.960
zurückzukommen, auch das Dictionary

01:39:22.960 --> 01:39:24.440
ist eine schöne Überleitung zu meinem Win,

01:39:24.760 --> 01:39:25.380
den ich mal hatte,

01:39:26.520 --> 01:39:28.760
in einem Projekt, war tatsächlich

01:39:28.760 --> 01:39:30.520
das erste richtig große

01:39:30.520 --> 01:39:32.620
kommerzielle Projekt, wo ich mitgewirkt

01:39:32.620 --> 01:39:34.580
habe, wo ich alleine

01:39:34.580 --> 01:39:35.900
mitgewirkt habe, um es mal so zu sagen,

01:39:36.980 --> 01:39:38.480
war auch

01:39:38.480 --> 01:39:40.520
Webshop und wir mussten da

01:39:40.520 --> 01:39:42.340
die Produkte aus einer API holen und wir hatten

01:39:42.340 --> 01:39:43.440
sehr genaue Vorgaben.

01:39:44.940 --> 01:39:46.400
Es waren Modeprodukte.

01:39:47.900 --> 01:39:48.420
Wir hatten

01:39:48.420 --> 01:39:50.760
sehr genaue Vorgaben, wie lange wir sozusagen

01:39:50.760 --> 01:39:52.640
die Daten, die wir haben,

01:39:52.860 --> 01:39:54.400
cachen dürfen, wie alt unsere Daten

01:39:54.400 --> 01:39:56.460
sein dürfen, weil da gibt es ja Probleme mit

01:39:56.460 --> 01:39:57.620
Verfügbarkeit und

01:39:57.620 --> 01:40:00.700
Preisen, die sich dann auch ändern. Also wir mussten

01:40:00.700 --> 01:40:02.640
einfach einhalten, dass wir

01:40:02.640 --> 01:40:04.840
maximal fünf Minuten alte Daten

01:40:04.840 --> 01:40:05.540
anzeigen dürften,

01:40:06.780 --> 01:40:08.320
was Preise und Verfügbarkeit angeht.

01:40:08.700 --> 01:40:10.640
Und Produkteigenschaften auch, weil die dann oft

01:40:10.640 --> 01:40:12.160
dann halt im Betrieb

01:40:12.160 --> 01:40:14.580
eine Charge ersetzt haben durch eine andere.

01:40:14.760 --> 01:40:15.580
Also wenn halt die

01:40:15.580 --> 01:40:18.860
Hose von dem einen Hersteller durch war

01:40:18.860 --> 01:40:20.800
und die Hose vom anderen Hersteller noch nicht

01:40:20.800 --> 01:40:22.380
durch war, dann hat sich halt der Preis verändert,

01:40:22.380 --> 01:40:23.800
weil das Material raus war sicher.

01:40:24.300 --> 01:40:26.540
Wir durften einfach nichts anzeigen, was älter ist als fünf Minuten.

01:40:27.460 --> 01:40:31.640
Und wir hatten aber das Problem, dass unsere Seite super langsam war,

01:40:31.720 --> 01:40:33.860
weil wir für jede Produktseite, für jede unserer Seiten,

01:40:33.860 --> 01:40:35.860
mussten wir ungefähr 20 Produkte laden.

01:40:37.100 --> 01:40:41.680
Das heißt, wir mussten 20 API-Aufrufe machen.

01:40:41.860 --> 01:40:43.920
Und das war damals, als es noch kein Async gab.

01:40:44.020 --> 01:40:46.680
Das heißt, wir mussten die mehr oder weniger seriell machen.

01:40:47.600 --> 01:40:50.060
Und wir hatten halt furchtbar schlechte Zeiten.

01:40:50.340 --> 01:40:52.260
Also die API, die wir benutzt haben, war super schnell.

01:40:53.340 --> 01:40:56.260
Die hat nur so 20 Millisekunden gebraucht pro Aufruf.

01:40:56.360 --> 01:40:58.040
Aber wenn du 20 von den Aufrufen machst,

01:40:58.180 --> 01:41:00.240
dann hast du halt direkt 400 Millisekunden verbrannt

01:41:00.240 --> 01:41:00.760
für nix.

01:41:02.140 --> 01:41:03.420
Hast ja noch nix selber gemacht.

01:41:05.140 --> 01:41:05.480
Und

01:41:05.480 --> 01:41:08.260
wir haben

01:41:08.260 --> 01:41:10.160
versucht, die Sachen in den Cache zu legen und das

01:41:10.160 --> 01:41:12.200
hat auch nicht so richtig funktioniert. Und irgendwann ist uns

01:41:12.200 --> 01:41:14.140
aufgefallen, dass

01:41:14.140 --> 01:41:16.100
wir ja tatsächlich genügend Hauptspeicher haben.

01:41:16.780 --> 01:41:17.920
Wir haben genügend Hauptspeicher,

01:41:18.500 --> 01:41:20.060
um alle Produkte zu

01:41:20.060 --> 01:41:22.040
speichern, die wir je

01:41:22.040 --> 01:41:22.520
anzeigen.

01:41:25.360 --> 01:41:26.080
Also haben wir das

01:41:26.080 --> 01:41:27.620
einfach gemacht. Wir haben einfach alle

01:41:27.620 --> 01:41:30.260
Produktdaten abgerufen und die in den Cache gelegt

01:41:30.260 --> 01:41:31.400
und weil die nicht

01:41:31.400 --> 01:41:34.140
länger als fünf Minuten da sein

01:41:34.140 --> 01:41:36.260
dürften, hatten die eine Expiry von fünf Minuten

01:41:36.260 --> 01:41:38.220
und wir haben einfach Background-Jobs laufen

01:41:38.220 --> 01:41:40.240
lassen, die alle fünf Minuten jedes Produkt

01:41:40.240 --> 01:41:40.840
refreshed haben.

01:41:42.700 --> 01:41:43.920
Das heißt, wir hatten einfach

01:41:43.920 --> 01:41:46.200
vorher hatten wir

01:41:46.200 --> 01:41:48.040
eben diese ganzen Aufrufe an die

01:41:48.040 --> 01:41:50.040
API, die wir ersetzt haben

01:41:50.040 --> 01:41:51.940
durch Unmengen an unnötigen

01:41:51.940 --> 01:41:54.020
Aufrufen, die

01:41:54.020 --> 01:41:56.060
aber dann eben im Ernstfall dafür gesorgt haben,

01:41:56.080 --> 01:41:57.900
dass die Daten, die wir tatsächlich gebraucht haben, alle

01:41:57.900 --> 01:42:00.080
schon warm waren, weil

01:42:00.080 --> 01:42:01.980
wir, weil halt einer von den

01:42:01.980 --> 01:42:04.060
Entwicklern und es war tatsächlich in dem Fall nicht ich.

01:42:06.460 --> 01:42:08.080
Es ist also keine Win-Geschichte

01:42:08.080 --> 01:42:10.080
für mich, es ist nur eine Win-Geschichte für unser Projekt

01:42:10.080 --> 01:42:11.120
und für den anderen Entwickler.

01:42:11.980 --> 01:42:13.840
Weil der halt gesagt hat, okay, wir können ja mal

01:42:13.840 --> 01:42:15.960
ausrechnen, wie viel Speicher wir verbrauchen. Wir probieren einfach mal

01:42:15.960 --> 01:42:17.880
aus, alle Produkte zu laden, die wir je haben.

01:42:18.760 --> 01:42:19.960
Und die haben in den Cache

01:42:19.960 --> 01:42:21.240
gepasst, in unseren Memcached.

01:42:22.820 --> 01:42:23.920
Und dann ist es natürlich

01:42:23.920 --> 01:42:25.920
schön schnell, weil dann so ein Memcached-Aufruf,

01:42:26.000 --> 01:42:26.820
der ist ja,

01:42:27.960 --> 01:42:28.740
der dauert nicht so lang.

01:42:30.080 --> 01:42:31.680
Das heißt, wir konnten da tatsächlich

01:42:31.680 --> 01:42:34.060
unsere Response-Zeit um ein Vielfaches

01:42:34.060 --> 01:42:35.680
verbessern, einfach dadurch, dass wir

01:42:35.680 --> 01:42:37.960
die ganze Zeit

01:42:37.960 --> 01:42:39.880
den Cache-Refresh haben.

01:42:40.200 --> 01:42:41.560
Egal, ob wir Traffic hatten oder nicht,

01:42:41.740 --> 01:42:43.740
es war einfach, dieser Cronjob, der das

01:42:43.740 --> 01:42:45.420
gemacht hat, lief einfach die ganze Zeit.

01:42:45.700 --> 01:42:47.480
Alle fünf Minuten hat er alle Produkte einmal

01:42:47.480 --> 01:42:48.080
durchgepingt.

01:42:50.060 --> 01:42:51.240
Ja, das

01:42:51.240 --> 01:42:53.200
erinnert mich, das ist auch etwas,

01:42:53.580 --> 01:42:55.640
man unterschätzt oft, wie viel

01:42:55.640 --> 01:42:57.540
Hauptspeicher man tatsächlich zur Verfügung hat

01:42:57.540 --> 01:42:59.340
und was man da mit all den tollen Dingen alles so tun kann.

01:42:59.960 --> 01:43:01.380
Und dass man oft einfach Sachen

01:43:01.380 --> 01:43:03.460
brutal erschlagen kann mit irgendwie

01:43:03.460 --> 01:43:04.240
Hauptspeicher oder

01:43:04.240 --> 01:43:07.480
genau, das habe ich auch so

01:43:07.480 --> 01:43:09.300
ähnliche Geschichten zum Beispiel,

01:43:09.800 --> 01:43:11.200
also was mich schon mehrfach gebissen hat,

01:43:11.280 --> 01:43:13.420
das ist eher so ein Thema

01:43:13.420 --> 01:43:15.460
für generell, das ist eher so ein bisschen

01:43:15.460 --> 01:43:17.080
auf der Fail-Seite, man muss aufpassen, so

01:43:17.080 --> 01:43:19.600
Pfeilsysteme, vor allen Dingen, wenn man Pfeilsysteme

01:43:19.600 --> 01:43:21.140
benutzt irgendwie und da

01:43:21.140 --> 01:43:23.200
rein daraus liest und schreibt,

01:43:23.300 --> 01:43:25.320
gleichzeitig und zwar von vielen Rechnern

01:43:25.320 --> 01:43:27.300
aus und dann so verteilte Dateisysteme

01:43:27.300 --> 01:43:27.620
ein bisschen, also

01:43:27.620 --> 01:43:30.320
du hast halt

01:43:30.320 --> 01:43:32.920
eigentlich nur ein Dateisystem auf dem Server

01:43:32.920 --> 01:43:34.460
und viele lesen und schreiben davon.

01:43:35.540 --> 01:43:37.240
Also vielleicht so zu Hause oder in einem kleinen

01:43:37.240 --> 01:43:39.020
Büro, gute Idee, irgendwie schön.

01:43:39.920 --> 01:43:40.100
So

01:43:40.100 --> 01:43:42.440
Internet-mäßig

01:43:42.440 --> 01:43:44.640
oft nicht so eine richtig geile Idee, weil

01:43:44.640 --> 01:43:45.720
funktioniert nicht gut.

01:43:46.560 --> 01:43:49.260
Und das da

01:43:49.260 --> 01:43:50.500
hatten wir auch mal echt

01:43:50.500 --> 01:43:52.460
böse Probleme mit

01:43:52.460 --> 01:43:54.240
naja, also

01:43:54.240 --> 01:43:56.840
Webseite mit ganz vielen unterschiedlichen

01:43:56.840 --> 01:43:58.860
Bildgrößen für Produkte, aber

01:43:58.860 --> 01:44:00.560
halt auch relativ viele, also so

01:44:00.560 --> 01:44:02.460
zig Millionen und

01:44:02.460 --> 01:44:05.120
ja, das muss man

01:44:05.120 --> 01:44:07.100
dann schon irgendwie auf der Platte liegen haben, weil es ist einfach zu viel

01:44:07.100 --> 01:44:09.000
Zeug und naja, jetzt muss man

01:44:09.000 --> 01:44:11.000
das alles umrechnen und jetzt

01:44:11.000 --> 01:44:12.020
hat man das Problem, dass

01:44:12.020 --> 01:44:14.880
man zum Beispiel irgendwie neue Bilder anzeigen

01:44:14.880 --> 01:44:16.660
muss, weil es gab irgendwie eine

01:44:16.660 --> 01:44:19.120
Abmahnung, weil

01:44:19.120 --> 01:44:21.020
irgendwie jemand in einem

01:44:21.020 --> 01:44:23.120
Webshop einfach irgendwie Bilder

01:44:23.120 --> 01:44:24.920
von der Herstellerseite geklaut hat oder so,

01:44:25.520 --> 01:44:27.240
die er nicht verwenden durfte und dann wird er

01:44:27.240 --> 01:44:28.780
vom Hersteller abgemahnt und dann

01:44:28.780 --> 01:44:30.780
muss das ganz schnell wieder verschwinden

01:44:30.780 --> 01:44:32.820
und dann kann man das auch verschwinden lassen,

01:44:33.620 --> 01:44:35.340
aber, also das Verschwinden lassen geht

01:44:35.340 --> 01:44:37.160
noch, aber dann die neuen Bilder stattdessen anzeigen geht

01:44:37.160 --> 01:44:38.940
nicht so richtig, weil die müssen ja neu gerechnet werden und die

01:44:38.940 --> 01:44:41.220
Queue von Neuberechnungsjobs ist jetzt so zwei Wochen

01:44:41.220 --> 01:44:42.980
lang, also es dauert dann irgendwie so zwei Wochen

01:44:42.980 --> 01:44:45.220
von irgendwie, es kommt

01:44:45.220 --> 01:44:47.200
ein neues Bild rein und es ist in den

01:44:47.200 --> 01:44:49.140
richtigen Größen... Aber habt ihr keine Priorisierung gehabt

01:44:49.140 --> 01:44:51.360
für Jochen? Ja, das hätte man dann natürlich machen können,

01:44:51.440 --> 01:44:53.560
Also man hat sich dann natürlich so Dinge überlegt,

01:44:53.620 --> 01:44:54.740
ja, kann man das nicht irgendwie priorisieren

01:44:54.740 --> 01:44:56.740
oder kann man nicht irgendwie sagen,

01:44:57.060 --> 01:45:01.700
okay, man macht da irgendwie andere komplizierte Geschichten,

01:45:01.920 --> 01:45:02.880
man macht die Berechnung woanders

01:45:02.880 --> 01:45:04.520
und kopiert es dann hinterher batchmäßig immer darüber.

01:45:05.240 --> 01:45:07.700
Also es wurde in viele Richtungen überlegt,

01:45:08.420 --> 01:45:10.520
auch sogar in solche Richtungen wie,

01:45:11.300 --> 01:45:14.580
was für Blockgrößen bei der Übertragung per NFS

01:45:14.580 --> 01:45:16.460
sind denn jetzt die optimalen

01:45:16.460 --> 01:45:18.420
und nimmt man jetzt UDP oder TCP

01:45:18.420 --> 01:45:20.140
und diese ganzen Geschichten.

01:45:20.460 --> 01:45:22.740
da haben Leute irgendwie lange dran rumüberlegt,

01:45:22.840 --> 01:45:24.480
wie man das alles optimieren kann und

01:45:24.480 --> 01:45:26.640
Sachen ausprobiert und getestet. Das hat lange

01:45:26.640 --> 01:45:29.080
gedauert und es war ein ständiger Schmerz.

01:45:29.280 --> 01:45:30.680
Bis dann auch

01:45:30.680 --> 01:45:31.960
irgendjemand, auch nicht ich,

01:45:33.480 --> 01:45:34.800
tatsächlich sehr guter

01:45:34.800 --> 01:45:35.320
Entwickler,

01:45:35.980 --> 01:45:37.720
auf die Idee kam,

01:45:38.040 --> 01:45:40.660
wie viele, also

01:45:40.660 --> 01:45:42.600
ja, okay, das sind viele Bilder und so, aber

01:45:42.600 --> 01:45:44.520
wie viele von den Bildern zeigen

01:45:44.520 --> 01:45:45.900
wir eigentlich so an?

01:45:46.740 --> 01:45:48.660
Wenn ich jetzt durch die Logs, durch die Serverlogs

01:45:48.660 --> 01:45:51.680
wie viel von dem Kram wird denn tatsächlich da draußen angezeigt.

01:45:52.480 --> 01:45:54.080
Und das waren dann gar nicht mehr so viele.

01:45:54.180 --> 01:45:55.280
Das waren dann nicht mehr zig Millionen,

01:45:55.440 --> 01:45:57.280
sondern das war dann halt nur noch ein kleiner Teil davon.

01:45:57.920 --> 01:45:58.740
Und dann war halt die Überlegung,

01:45:58.860 --> 01:46:03.000
okay, kann man das vielleicht nicht auch alles einfach on demand machen

01:46:03.000 --> 01:46:08.000
und dann halt den heißen Teil der Bilder einfach im Hauptspeicher cachen?

01:46:08.880 --> 01:46:09.700
Und das ging dann.

01:46:09.880 --> 01:46:12.500
Und dann dieses System umzudrehen und dann zu sagen,

01:46:12.580 --> 01:46:15.140
okay, wir brauchen das nicht irgendwie fertig irgendwo liegen zu haben,

01:46:15.440 --> 01:46:17.160
sondern wir übergeben die Größe, die wir gerne hätten,

01:46:17.160 --> 01:46:19.260
einfach nur als Parameter in der URL für das Bild mit

01:46:19.260 --> 01:46:20.600
und cachen dann.

01:46:21.440 --> 01:46:23.260
Das war dann halt so, das hat gar nicht lange gedauert,

01:46:23.300 --> 01:46:24.900
das umzustellen und das System hinterher war

01:46:24.900 --> 01:46:27.000
sackschnell und man konnte alles quasi

01:46:27.000 --> 01:46:28.940
on-demand ändern,

01:46:29.400 --> 01:46:31.120
Blacklisten, White-Listen, alles kein Problem

01:46:31.120 --> 01:46:33.160
und es war so. Und danach war dieses Problem

01:46:33.160 --> 01:46:35.160
gelöst und vorher hatten da wirklich viele Leute

01:46:35.160 --> 01:46:37.140
lange dran rumgetüftelt,

01:46:37.280 --> 01:46:38.960
dass irgendwie den eigentlich

01:46:38.960 --> 01:46:40.780
den blöden Ansatz halt sozusagen

01:46:40.780 --> 01:46:42.880
irgendwie zum Laufen zu bringen, der aber einfach

01:46:42.880 --> 01:46:44.640
nur falsch war und deswegen hat es halt nicht funktioniert.

01:46:44.900 --> 01:46:46.420
Und das, ja.

01:46:47.160 --> 01:46:48.900
Und dann hat man am Ende mehr Features

01:46:48.900 --> 01:46:50.780
und eine einfache Implementierung und

01:46:50.780 --> 01:46:51.980
es ist schneller.

01:46:52.940 --> 01:46:54.180
Ja, also

01:46:54.180 --> 01:46:56.780
ich habe so das Gefühl, so an diesem

01:46:56.780 --> 01:46:58.740
zweiten Schritt bei der Feynman-Lösung,

01:46:58.940 --> 01:47:00.420
dieser zweite Schritt, da

01:47:00.420 --> 01:47:02.800
ist enormes Potenzial.

01:47:03.020 --> 01:47:03.600
Das ist irgendwie so.

01:47:04.820 --> 01:47:06.640
Ja, aber das ist doch, als Entwickler

01:47:06.640 --> 01:47:08.660
macht man sich das doch oft, oder? Also Stunden des

01:47:08.660 --> 01:47:10.640
Machens ersparen Minuten des Nachdenkens.

01:47:10.760 --> 01:47:12.200
Das ist schon oft so.

01:47:12.600 --> 01:47:13.440
Ja, natürlich.

01:47:15.200 --> 01:47:16.640
Tja, wenn man aber, weißt du, wo man

01:47:16.640 --> 01:47:43.500
Ja, aber manchmal ist es auch wirklich so, dieses Größenordnungen überdenken, das ist für mich auch manchmal so eine Live-Lessung. Wir hatten bei unserem ersten Kind, haben wir zwei Fläschchen gehabt, mit denen wir dann jede Nacht die Milch gemacht haben und das heißt halt, dass du ständig daran dabei bist, diese Fläschchen zu spülen, weil wenn du eine aufgebraucht hast, dann hast du nur noch eine.

01:47:45.220 --> 01:47:59.740
Und ich bin dann halt irgendwann mal hier zu einem Supermarkt gegangen und habe einfach zehn solcher Fläschchen gekauft. Das hat einen überschaubaren Geldbetrag gekostet. Die kosten, glaube ich, zwei Euro Stück oder so. Also es war, oder 2,50, ja. Es ist wirklich egal.

01:48:00.960 --> 01:48:16.020
Und dann kannst du halt in einer Nacht fünf Fläschchen verbrauchen oder sechs oder sieben oder acht und am nächsten Tag stellst du sie in die Spülmaschine und bist fertig. Einfach mal so Größenordnungen überdenken. Das ist eine sehr mächtige Sache.

01:48:16.020 --> 01:48:39.000
Und viel hilft viel. Ja, es ist wirklich so. Viel hilft halt manchmal einfach viel und kostet aber gar nicht so viel. Und man hantiert oft mit solchen Limits rum, die völlig zufällig gewählt sind, aber an denen man dann so im Kopf rumhängt, die man eigentlich einfach mal überdenken müsste.

01:48:39.000 --> 01:48:50.760
Also die man einfach mal genauer anschauen müsste, ob das wirklich sinnvolle Limits sind und ob man vielleicht irgendwas verändern kann, sodass man nicht an diesem Limit hängt. Und die simpelste Möglichkeit ist halt vertikale Skalierung, mehr Hardware kaufen.

01:48:50.900 --> 01:48:51.720
Weniger schlafen.

01:48:51.840 --> 01:48:59.800
Im Falle der Fläschchen. Im Falle der Fläschchen hat das, ja, und das hat dann auch direkt zu mehr Schlafen geführt. Wenn du weniger Verwaltungsaufwand hast.

01:49:01.800 --> 01:49:04.040
Ja, das sind Sachen, bei so endlichen Ressourcen.

01:49:04.040 --> 01:49:16.860
Ja, aber diese Zahl, auf die man sich irgendwann mal festgelegt hat, die ist ja nicht in Stein gemeißelt. Und die ist weder bei Hauptspeichern in Stein gemeißelt, noch bei der Anzahl der Utensilien, die man so hat.

01:49:16.860 --> 01:49:39.240
Naja, glücklicherweise kann man auf die meisten Maschinen noch ein bisschen mehr Speicher oder sowas werfen oder halt mehr Fläschchen einfach so in einem Supermarkt kaufen. Das ist ja immer, die Probleme kommen ja tatsächlich erst immer dann wirklich zum Tragen, wenn es halt diese Restriktionen gibt, dass du halt dann dir Konkurrenz hast für irgendwelche Prozesse oder sowas, dann wird es erst nervig.

01:49:40.220 --> 01:49:42.280
Wenn du an die Grenzen kommst. Aber bis du da hinkommst,

01:49:42.340 --> 01:49:44.160
gibt es oft Lösungen, die überraschend

01:49:44.160 --> 01:49:45.840
simpel sind und doch nicht so schlecht.

01:49:46.300 --> 01:49:48.120
Und ich meine Hauptspeicher, es gibt halt Maschinen,

01:49:48.260 --> 01:49:49.860
die 6 Terabyte Hauptspeicher haben können.

01:49:51.760 --> 01:49:52.340
Also ich

01:49:52.340 --> 01:49:54.020
habe seltsame Probleme gehabt.

01:49:54.760 --> 01:49:56.120
Das ist natürlich schon, also 6 Terabyte

01:49:56.120 --> 01:49:56.820
Hauptspeicher, wow.

01:49:59.300 --> 01:49:59.920
Ja, kostet schon

01:49:59.920 --> 01:50:01.800
100.000 Dollar oder 200.000, aber

01:50:01.800 --> 01:50:04.060
bei der Problemgröße, also ein Cluster mit

01:50:04.060 --> 01:50:05.980
100 Nodes kostet mehr als 10.000 Dollar.

01:50:10.220 --> 01:50:17.240
ja deshalb manchmal lohnt sich das über solche größenordnungen einfach mal

01:50:17.240 --> 01:50:22.040
nachzudenken und ja das das will ich auf jeden fall als win bezeichnen ist ein

01:50:22.040 --> 01:50:25.380
ganz klarer win ja sowas zu überdenken und so eine hürde zu überkommen

01:50:25.380 --> 01:50:29.380
ich habe mir irgendwann einfach mal 50 paar identische socken gekauft und

01:50:29.380 --> 01:50:34.420
seither keine socken mehr gefaltet weil es meist immer lauter identische socken

01:50:34.420 --> 01:50:38.500
da drin und wenn die leer wenn wenn die wäsche ist dann ist die schublade wieder

01:50:38.500 --> 01:50:40.420
voll. Und wenn einer kaputt geht, dann schmeiße ich ihn weg

01:50:40.420 --> 01:50:42.540
und dann habe ich immer noch 49,5 Paar

01:50:42.540 --> 01:50:43.240
identische Socken.

01:50:44.720 --> 01:50:45.640
Ja, ja, sehr gut.

01:50:46.860 --> 01:50:48.500
Das ist eine triviale Sache, aber es ist

01:50:48.500 --> 01:50:50.260
einfach einmal über so eine Größenordnung

01:50:50.260 --> 01:50:52.580
nachgedacht und bemerkt, dass die Grenze,

01:50:52.640 --> 01:50:54.500
die man sich selber gesetzt hat, völlig arbitriär ist.

01:50:54.640 --> 01:50:56.740
Nicht kleckern, klotzen, bigger is better

01:50:56.740 --> 01:50:58.420
und so weiter. Genau.

01:50:59.080 --> 01:51:00.600
Und wenn man irgendwas, irgendein

01:51:00.600 --> 01:51:02.040
Problem hat, was man in Hauptspeicher kriegt,

01:51:02.320 --> 01:51:04.560
warum nicht? Oder wenn man es so trimmen kann,

01:51:04.640 --> 01:51:06.000
dass man es in Hauptspeicher kriegt, noch besser.

01:51:09.360 --> 01:51:11.020
Also das ist ein Win, sagst du, okay.

01:51:12.540 --> 01:51:12.940
Eindeutig.

01:51:14.220 --> 01:51:15.280
Und es gibt viele

01:51:15.280 --> 01:51:17.460
Gelegenheiten für solche Wins, deshalb, das ist super.

01:51:17.920 --> 01:51:18.720
Und die fühlen sich gut an,

01:51:18.880 --> 01:51:20.680
so ein Win ist eine total tolle Sache.

01:51:22.860 --> 01:51:23.640
Ja, wenn's nicht gut.

01:51:24.500 --> 01:51:25.260
Ja, wobei

01:51:25.260 --> 01:51:27.160
ich muss allerdings dazu sagen, als ich

01:51:27.160 --> 01:51:29.080
die zehn Flächen gekauft habe,

01:51:29.100 --> 01:51:31.220
habe ich leider die falschen gekauft, also ich musste dann noch mal

01:51:31.220 --> 01:51:32.400
hin und die alle zurückgeben und

01:51:32.400 --> 01:51:35.020
neue kaufen, also es ist

01:51:35.020 --> 01:51:37.280
gemischt, ja, win und

01:51:37.280 --> 01:51:38.560
Fail zusammengemischt.

01:51:40.180 --> 01:51:40.740
Tja.

01:51:42.740 --> 01:51:45.020
Und das ist doch ein schönes Resümee für das Jahr

01:51:45.020 --> 01:51:47.760
2020. Das ist doch ein schöner Jahresrückblick.

01:51:47.880 --> 01:51:49.380
Win und Fail zusammengemischt

01:51:49.380 --> 01:51:51.080
in gleich großen Proportionen.

01:51:51.860 --> 01:51:52.160
Ja.

01:51:55.160 --> 01:51:57.320
Ja, dieses Jahr

01:51:57.320 --> 01:51:59.020
war eine Spur zu viel Fail,

01:51:59.100 --> 01:52:00.460
ehrlich gesagt, für meinen Geschmack

01:52:00.460 --> 01:52:02.140
in der Gesamtsituation.

01:52:03.160 --> 01:52:04.020
Aber ja,

01:52:04.160 --> 01:52:06.260
es sieht ja leider so aus, als ob das uns

01:52:06.260 --> 01:52:07.140
noch ein Jahr beschäftigt.

01:52:08.240 --> 01:52:10.320
Ja, aber ich fand ja gut, also was ich toll

01:52:10.320 --> 01:52:12.300
finde an der ganzen Geschichte ist, dass jetzt alle

01:52:12.300 --> 01:52:14.060
das mit dem Internet mal so richtig und das mit dem

01:52:14.060 --> 01:52:16.060
Paketen und so, das geht jetzt alles und

01:52:16.060 --> 01:52:18.400
ab dann denke ich jetzt,

01:52:18.600 --> 01:52:19.360
ab jetzt ist es halt normal.

01:52:19.380 --> 01:52:22.020
Also es gab auch wahrscheinlich coole Sachen auch irgendwie, also ich weiß nicht.

01:52:22.260 --> 01:52:22.980
Ja? Ja, ja.

01:52:23.940 --> 01:52:26.260
So ein paar Sachen sind vielleicht gar nicht so schlecht, dass das jetzt nicht mehr so

01:52:26.260 --> 01:52:28.240
durch ist. Ja, so das mit dem Homeoffice irgendwie,

01:52:28.360 --> 01:52:29.600
das ist ja so normales zum Beispiel.

01:52:29.820 --> 01:52:32.340
Das ist so eine Sache, die eigentlich

01:52:32.340 --> 01:52:34.360
schon selbstverständlicher hätte sein können

01:52:34.360 --> 01:52:36.700
irgendwie länger. Und wie man sich ja auch

01:52:36.700 --> 01:52:37.960
immer so dachte. Ja, wobei

01:52:37.960 --> 01:52:40.760
Jochen und ich, wir leben das ja schon seit Jahren.

01:52:41.340 --> 01:52:42.060
Ja, ich auch, übrigens.

01:52:42.620 --> 01:52:43.820
Herzlich willkommen in unserer Welt.

01:52:46.600 --> 01:52:47.540
Das meine ich ja, genau.

01:52:47.920 --> 01:52:49.940
Und da merkt man mal, was für Vorteile das hat.

01:52:50.060 --> 01:52:52.080
Oder auch für Herausforderungen. Und dass es nicht mehr darum geht,

01:52:52.140 --> 01:52:53.940
dass man nur nichts machen will oder so.

01:52:55.120 --> 01:52:55.300
Ja.

01:52:56.400 --> 01:52:57.700
Ja, und es gibt noch

01:52:57.700 --> 01:52:59.860
ein paar andere gute Sachen. Also so ein paar

01:52:59.860 --> 01:53:01.800
Menschen sind nicht wieder gewählt worden

01:53:01.800 --> 01:53:02.840
oder so. Das gab es ja auch.

01:53:04.360 --> 01:53:05.640
Noch, noch ist er nicht weg.

01:53:06.280 --> 01:53:06.560
Ja.

01:53:08.980 --> 01:53:12.240
Ich habe tatsächlich im März noch mit einer Firma gesprochen,

01:53:12.360 --> 01:53:13.740
die hatten immer Inhouse-Entwicklung

01:53:13.740 --> 01:53:17.140
und die haben dann aber umgestellt auf Homeoffice,

01:53:17.460 --> 01:53:20.080
hatten 3000 Entwickler, die dann plötzlich im Homeoffice waren

01:53:20.080 --> 01:53:22.620
und weil das alles sicherheitskritisch war,

01:53:22.660 --> 01:53:24.100
war das alles mit Remote Desktop und so.

01:53:25.520 --> 01:53:28.200
Die hatten aber nur Remote Desktop-Kapazitäten

01:53:28.200 --> 01:53:30.520
für 1000 Anwender.

01:53:31.240 --> 01:53:33.020
Also die hatten einfach nur 1000 Desktops,

01:53:33.020 --> 01:53:34.880
diese Remote zur Verfügung stellen konnten

01:53:34.880 --> 01:53:37.040
und haben dann relativ schnell gemerkt, dass

01:53:37.040 --> 01:53:38.400
da irgendwas nicht geht.

01:53:39.460 --> 01:53:39.760
Tja.

01:53:40.660 --> 01:53:42.700
Und mussten dann so ein kleines bisschen nachziehen.

01:53:44.320 --> 01:53:44.960
Also auch

01:53:44.960 --> 01:53:47.060
der Übergang war da nicht immer ganz flüssig.

01:53:47.480 --> 01:53:48.740
Nö, also das hat man auch, aber ich,

01:53:48.900 --> 01:53:51.040
ehrlich gesagt, mich hat das überrascht, wie wenig

01:53:51.040 --> 01:53:52.840
das dann, also klar, also

01:53:52.840 --> 01:53:54.860
ich hab da natürlich Probleme und so,

01:53:55.000 --> 01:53:56.860
also das hat dann auch, also ab und zu ging dann halt auch mal

01:53:56.860 --> 01:53:59.080
irgendwas wirklich nicht oder so,

01:53:59.080 --> 01:54:00.820
aber ich hätte jetzt erwartet, also wenn man mir gesagt hätte,

01:54:01.040 --> 01:54:02.940
also in einem Umfeld, wo

01:54:02.940 --> 01:54:05.140
Remote nicht üblich war, machen das

01:54:05.140 --> 01:54:07.080
jetzt alle irgendwie 100% die ganze

01:54:07.080 --> 01:54:09.040
Zeit und es muss halt einfach alles darüber funktionieren.

01:54:09.100 --> 01:54:11.020
Ich dachte so, oh mein Gott, das gibt eine Katastrophe.

01:54:11.980 --> 01:54:12.680
Das dauert Jahre.

01:54:12.860 --> 01:54:14.760
Das dauert Jahre und das ist alles ganz schrecklich.

01:54:14.860 --> 01:54:16.560
Wenn man das als Projekt geplant hätte,

01:54:17.440 --> 01:54:17.980
dann hätte

01:54:17.980 --> 01:54:20.520
jemand gesagt, okay,

01:54:20.820 --> 01:54:22.940
da müssen wir Jahre. Tatsächlich

01:54:22.940 --> 01:54:24.180
hat es aber nicht Jahre gedauert, sondern

01:54:24.180 --> 01:54:27.040
weil es wirklich nötig war, ging es dann halt irgendwie

01:54:27.040 --> 01:54:28.880
doch und es ging auch relativ schnell und es hat

01:54:28.880 --> 01:54:30.520
zwar auch böse gefällt ab und zu, aber

01:54:30.520 --> 01:54:54.240
Ja, zum Beispiel die Schulen oder sowas. Das ist ja auch ein Riesenproblem, aber das wird halt einfach jetzt rapide, schneller, besser. Und das brauchen wir ja wahrscheinlich, wenn wir irgendwie sowas wie Zukunft irgendwann mal besser machen wollen, auch irgendwie. Das sind so ein paar Dinge, die halt dann doch schneller funktionieren. Oder dass so ein Impfstoff so schnell entwickelt werden kann und so. Und wie viele Leute da auf einmal doch kollaborativ arbeiten können. Alles nicht so schlecht. Und dass man entdeckt hat, dass China nicht wirklich vertrauenswürdig ist. Also gar nicht so schlechte Dinge.

01:54:54.560 --> 01:55:12.200
Ja, sowas. Ich habe vor kurzem den Traffic von einem niederländischen ISP gesehen. Die hatten so eine Zusammenfassung, war auf Twitter. Und die haben Traffic-Spitzen zu jeder vollen Stunde zu den Bürozeiten, weil da die Videomeetings anfangen.

01:55:14.300 --> 01:55:15.680
Und die dauern halt unterschiedlich

01:55:15.680 --> 01:55:17.520
lang und das ist quasi, jede Stunde ist ein

01:55:17.520 --> 01:55:19.520
so ein Peak und das fällt dann bis zur nächsten Stunde

01:55:19.520 --> 01:55:20.940
wieder so ab. Sehr schön.

01:55:21.220 --> 01:55:23.840
Oder zur nächsten Vornstunde. Und in der

01:55:23.840 --> 01:55:25.540
Mittagspause sieht man eben, dass dieser

01:55:25.540 --> 01:55:27.440
Peak nicht da ist, weil um zwölf eben keine

01:55:27.440 --> 01:55:29.400
Meetings anfangen und es ist

01:55:29.400 --> 01:55:30.200
sehr, sehr schön.

01:55:31.860 --> 01:55:33.020
Ja, ja, ja.

01:55:34.240 --> 01:55:35.400
Ja, auch noch so eine Sache. Ja, dass

01:55:35.400 --> 01:55:37.560
die alle darauf aufmerksam sind, dass man die Kapazitäten

01:55:37.560 --> 01:55:39.480
da ernsthaft ausbauen muss vielleicht auch und so.

01:55:39.940 --> 01:55:41.480
Also endgültig, das wusste man ja eigentlich schon

01:55:41.480 --> 01:55:43.000
und so. Aber ne, so diese Notwendigkeit.

01:55:43.740 --> 01:55:45.000
Ja, es gab, also ein paar

01:55:45.000 --> 01:55:46.220
schöne Sachen gab es ja auch dieses Jahr.

01:55:47.580 --> 01:55:48.360
Hoffentlich auch bei euch.

01:55:50.520 --> 01:55:50.880
Selbstverständlich.

01:55:51.060 --> 01:55:52.020
Corona-Kekse, ich meine.

01:55:53.520 --> 01:55:55.140
Ja, hat man auch, ich habe die ja

01:55:55.140 --> 01:55:56.680
letztens, hat man das eigentlich gesehen? Ich habe

01:55:56.680 --> 01:55:59.080
die ja auch dann verlinkt,

01:55:59.540 --> 01:56:01.020
ob man das, gab es einen?

01:56:01.040 --> 01:56:01.240
Ja, natürlich.

01:56:03.240 --> 01:56:05.240
Also, da ist so wenig Traffic

01:56:05.240 --> 01:56:07.080
drauf, dass man nicht sieht, was, dass es

01:56:07.080 --> 01:56:09.000
individuelle Ereignisse gibt, aber vielleicht,

01:56:09.420 --> 01:56:10.500
wir können uns das jetzt als,

01:56:10.620 --> 01:56:12.980
an alle Hörer, als

01:56:12.980 --> 01:56:15.680
Vorsatz nehmen, dass ihr mal

01:56:15.680 --> 01:56:17.180
einen Traffic-Spike in meine...

01:56:17.180 --> 01:56:19.360
Du meinst, ist das noch jemand dabei jetzt um diese Zeit?

01:56:20.500 --> 01:56:21.620
Ja, selbstverständlich.

01:56:21.760 --> 01:56:23.460
Wir haben noch nicht mal die zwei Stunden überschritten.

01:56:23.860 --> 01:56:24.440
Ja, okay.

01:56:25.640 --> 01:56:26.860
Ja, was ich jetzt, ich habe jetzt

01:56:26.860 --> 01:56:29.880
mal in letzter Zeit,

01:56:29.880 --> 01:56:31.660
ich habe ein bisschen Zeit dann irgendwie

01:56:31.660 --> 01:56:33.780
auf Statistiken geguckt und was ich

01:56:33.780 --> 01:56:35.560
schon überraschend fand, jetzt auch gerade zu Weihnachten

01:56:35.560 --> 01:56:37.640
hat man natürlich einen Einbruch, aber es gibt immer noch irgendwie

01:56:37.640 --> 01:56:38.840
pro Tag, weiß ich nicht,

01:56:39.820 --> 01:56:41.720
allein auf Spotify 25 Leute, die sich das

01:56:41.720 --> 01:56:43.420
zu Weihnachten angehört haben, wo ich dachte so,

01:56:44.100 --> 01:56:45.680
ähm, habt ihr eigentlich ehrlich gesagt,

01:56:45.800 --> 01:56:47.880
also, ich meine, naja, also

01:56:47.880 --> 01:56:50.000
Was hast du denn Weihnachten gemacht?

01:56:51.260 --> 01:56:52.020
Ja, aber,

01:56:52.260 --> 01:56:53.840
äh, naja. Also ich habe

01:56:53.840 --> 01:56:55.760
alle Episoden vom Piran Podcast nach

01:56:55.760 --> 01:56:56.500
gehört gleichzeitig.

01:56:57.960 --> 01:56:59.840
Selbstverständlich. Hätte ich ja nicht mal Zeit dafür.

01:57:00.680 --> 01:57:01.200
Ah, ja, ja, ja.

01:57:01.220 --> 01:57:02.720
Jetzt weißt du, woher die 25-Klicks-Eckung.

01:57:05.880 --> 01:57:07.580
26 waren es ja, weil es waren ja 26

01:57:07.580 --> 01:57:09.540
Episoden. Ja, die eine Episode hast du schon gehört.

01:57:10.580 --> 01:57:12.040
Ja, die erste, die Einführung.

01:57:14.840 --> 01:57:16.800
Nee, aber das ist doch immer, es gibt doch immer,

01:57:17.040 --> 01:57:18.160
also ich meine, ja,

01:57:19.320 --> 01:57:20.920
an Weihnachten hat man Zeit, die Sachen zu machen,

01:57:21.020 --> 01:57:21.720
die man sonst nicht macht.

01:57:22.760 --> 01:57:24.420
Ja, ja, na ja, diesmal

01:57:24.420 --> 01:57:25.320
war ein bisschen,

01:57:26.600 --> 01:57:28.820
es war auch so ein bisschen unentspannt, ehrlich gesagt, so,

01:57:29.440 --> 01:57:30.820
ja. Ja, fandest du?

01:57:31.000 --> 01:57:32.540
Nee, aber es war super. Also ich habe schon am Tag vorher

01:57:32.540 --> 01:57:34.060
acht Stunden Suppe gekocht und Soße.

01:57:35.560 --> 01:57:36.640
Also so prinzipiell,

01:57:36.640 --> 01:57:38.540
nee, war alles total super, aber es war

01:57:38.540 --> 01:57:40.420
einfach eine völlig andere Situation als normalerweise,

01:57:40.540 --> 01:57:41.840
weil irgendwie Teile

01:57:41.840 --> 01:57:43.880
der Familie so irgendwie

01:57:43.880 --> 01:57:46.380
gar nicht. Ja gut, also es war

01:57:46.380 --> 01:57:48.040
zu Hause Weihnachten.

01:57:48.420 --> 01:57:48.560
Ja.

01:57:50.480 --> 01:57:52.260
Genau. Aber das ist doch nicht

01:57:52.260 --> 01:57:52.920
unentspannt.

01:57:54.200 --> 01:57:56.420
Zum Teil sogar viel entspannter. Also ich fand's

01:57:56.420 --> 01:57:57.060
viel entspannter.

01:57:59.060 --> 01:58:00.240
Wir hatten längst nicht so viel

01:58:00.240 --> 01:58:02.460
hin und her gefahren und längst nicht so viel hin und her

01:58:02.460 --> 01:58:03.120
transportieren.

01:58:04.600 --> 01:58:06.460
Ja. Gut, klar, die Kinder

01:58:06.460 --> 01:58:08.360
sind die ganze Zeit da und unbeschäftigt, aber

01:58:08.360 --> 01:58:10.980
mit genügend großen Lego-Packungen

01:58:10.980 --> 01:58:12.540
kriegt man ein großes Problem in den Griff.

01:58:15.200 --> 01:58:15.900
Ja, wir haben leider

01:58:15.900 --> 01:58:18.800
die klassischen Fehler gemacht und haben nicht bemerkt,

01:58:18.860 --> 01:58:20.580
nicht vorher geguckt, dass diese

01:58:20.580 --> 01:58:22.880
Lego-Packungen, die wir gekauft hatten, Batterien brauchen.

01:58:23.600 --> 01:58:24.360
Oh. Ah.

01:58:25.480 --> 01:58:26.260
Ja, und

01:58:26.260 --> 01:58:28.920
es ist halt blöd, wenn die Lokomotive nicht fährt,

01:58:29.000 --> 01:58:30.660
weil keine Batterien da sind. Und wenn Prime nicht

01:58:30.660 --> 01:58:32.320
liefert, same day delivery an Weihnachten,

01:58:32.320 --> 01:58:34.180
dann ist das uns verschämt halt. Ja, also das

01:58:34.180 --> 01:58:36.320
ist ja gar nicht. Und da habe ich dann eigentlich gedacht,

01:58:36.400 --> 01:58:38.320
eigentlich müsste man, das ist auch so eine Sache,

01:58:38.360 --> 01:58:40.160
Da müsste man eigentlich am ersten Weihnachtsfeiertag

01:58:40.160 --> 01:58:42.520
einfach mit so einem Korb voll Batterien rumgehen

01:58:42.520 --> 01:58:44.660
und die von Haustür zu Haustür verkaufen.

01:58:44.740 --> 01:58:46.820
Weil ich bin da sicherlich nicht der Einzige,

01:58:47.000 --> 01:58:49.620
der die Batterien in den Geschenken vergessen hat.

01:58:51.460 --> 01:58:54.720
Eine gute Idee, aber das Problem ist irgendwie die Marge.

01:58:54.960 --> 01:58:55.320
Distribution.

01:58:55.560 --> 01:58:56.820
Sind die Leute wirklich bereits so viel da drin?

01:58:56.820 --> 01:58:57.760
Ja, ich will es auch nicht machen.

01:58:58.120 --> 01:58:59.100
Du brauchst jetzt eine fliegende Drohne.

01:58:59.320 --> 01:59:01.080
Ach komm, da verkaufst du eine Batterie für 5 Euro das Stück.

01:59:01.640 --> 01:59:02.840
An Weihnachten zahlen die Leute das.

01:59:02.840 --> 01:59:04.260
Oder wenn die Drohne weiterfliegen muss,

01:59:04.300 --> 01:59:05.600
dann muss man einfach die Drohne sich nur selber

01:59:05.600 --> 01:59:06.960
noch in eine Batterie zusätzlich reinstecken.

01:59:07.320 --> 01:59:07.760
Ja, genau.

01:59:08.220 --> 01:59:09.900
Drohne, ja. Die hat sehr große

01:59:09.900 --> 01:59:11.900
Reichweite, diese Drohne, theoretisch

01:59:11.900 --> 01:59:12.280
gesehen.

01:59:16.400 --> 01:59:16.800
Ja.

01:59:17.600 --> 01:59:18.680
Auch im Wind übrigens.

01:59:20.040 --> 01:59:21.320
Ja, ruhige Weihnachten war

01:59:21.320 --> 01:59:23.600
für einige Leute vielleicht mehr Wind,

01:59:23.660 --> 01:59:24.500
für einige Leute weniger Wind.

01:59:25.540 --> 01:59:27.560
Ja, ich hoffe, dass ihr auch bei Hause da alle

01:59:27.560 --> 01:59:29.680
gemeinsam noch irgendwas

01:59:29.680 --> 01:59:31.380
davon hattet und es euch gut geht.

01:59:31.500 --> 01:59:32.120
Das war wichtig, ne?

01:59:33.900 --> 01:59:35.880
Jetzt kommt ja bald noch ruhige Silvester.

01:59:35.880 --> 01:59:37.860
Das erste Mal richtig ruhiges Silvester.

01:59:38.160 --> 01:59:40.200
glaubst du dran? Da bin ich

01:59:40.200 --> 01:59:41.540
auch gespannt, ob das, wie das

01:59:41.540 --> 01:59:43.760
Also, ja gut, ich meine

01:59:43.760 --> 01:59:46.060
Wir knallen vorher, nachher wird weniger im Verkauf

01:59:46.060 --> 01:59:47.560
und sonst

01:59:47.560 --> 01:59:50.000
Ja, das wird halt genau um

01:59:50.000 --> 01:59:52.160
die zwei Minuten vor und nach

01:59:52.160 --> 01:59:53.880
Mitternacht wird es wahrscheinlich nicht so laut sein wie sonst

01:59:53.880 --> 01:59:56.160
Ja, eben

01:59:56.160 --> 01:59:58.040
das meine ich ja. Das Feuerwerk ist nicht

01:59:58.040 --> 01:59:58.800
im Verkauf und

01:59:58.800 --> 02:00:02.840
das wird schon

02:00:02.840 --> 02:00:05.900
Tja, wollen wir noch

02:00:05.900 --> 02:00:07.480
irgendwelche Dinge picken oder sowas?

02:00:07.640 --> 02:00:08.680
das könnten wir ja auch. Standardlib?

02:00:09.660 --> 02:00:11.420
Oder irgendein Modul aus dem Standardlib

02:00:11.420 --> 02:00:13.380
besprechen, aber ich will. Oh, ich weiß

02:00:13.380 --> 02:00:15.260
eins, ich weiß eins. Array.Array.

02:00:15.320 --> 02:00:16.620
Ich wollte auch gerade Array sagen.

02:00:17.120 --> 02:00:19.660
Du bist gemein, ich habe mir meinen Pick geklaut. Das passiert mir jedes Mal.

02:00:21.200 --> 02:00:21.440
Ja,

02:00:21.740 --> 02:00:23.040
stimmt, das ist

02:00:23.040 --> 02:00:24.200
ein sehr schönes Modul.

02:00:26.300 --> 02:00:27.400
Wir picken das jetzt einfach

02:00:27.400 --> 02:00:29.220
an. Warte mal, ich muss auch mal

02:00:29.220 --> 02:00:30.860
Standardlib aufmachen, vielleicht finde ich auch was.

02:00:32.680 --> 02:00:33.460
Ja, also

02:00:33.460 --> 02:00:35.300
im Grunde kriegt man da natürlich genau das gleiche, was man

02:00:35.300 --> 02:00:37.500
jetzt auch mit einem NumPy-Array oder so kriegen würde,

02:00:37.640 --> 02:00:42.080
Aber halt in Situationen, wo man NumPy nicht importieren will

02:00:42.080 --> 02:00:44.540
oder nicht voraussetzen will, ist das halt mehr.

02:00:44.880 --> 02:00:47.320
Wenn man die ganzen anderen NumPy-Arrays so können nicht braucht,

02:00:47.580 --> 02:00:48.400
gute Alternative.

02:00:49.840 --> 02:00:51.840
Ja, und auch schon zehn Jahre vorher, oder?

02:00:52.080 --> 02:00:53.900
Also dieses Array.Array gibt es ja schon immer.

02:00:54.080 --> 02:00:55.400
NumPy gibt es ja noch nicht schon immer.

02:00:55.660 --> 02:01:00.000
Ja, aber ich weiß nicht genau, wann das dazugekommen ist.

02:01:02.600 --> 02:01:05.160
Ja, ob das vor NumPy war, weiß ich nicht.

02:01:05.160 --> 02:01:08.240
Aber es ist schon alles relativ ewig.

02:01:09.880 --> 02:01:11.740
Ich möchte was anderes hervorheben,

02:01:11.860 --> 02:01:12.740
was so ähnlich ist,

02:01:12.780 --> 02:01:14.580
was auch in diese Kerbe schlägt.

02:01:14.700 --> 02:01:15.980
Und das ist das Struct-Modul.

02:01:16.420 --> 02:01:17.180
Habt ihr das schon mal gesehen?

02:01:19.600 --> 02:01:21.340
Das ist quasi ein Modul,

02:01:21.460 --> 02:01:22.160
was es einem erlaubt,

02:01:23.440 --> 02:01:27.120
C-Type Structures zuzulegen.

02:01:28.040 --> 02:01:30.940
Also man gibt da einen sogenannten Format-String an.

02:01:31.500 --> 02:01:32.760
Es ist ein bisschen ein Gefitzel,

02:01:32.840 --> 02:01:34.040
diesen Format-String zu bauen.

02:01:35.160 --> 02:02:03.000
oder den zu wissen, aber dieser Format String erlaubt es einem dann sozusagen Structs, so wie sie in C vorkommen, zu lesen und zu schreiben und die sind natürlich auf Bit-Ebene gepackt, also wenn man da eben die Werte mit den entsprechenden Bitlängen hat, die sind sehr dicht und sehr eng gepackt und man braucht das manchmal, wenn man Formate liest, die eben eng gepackt sind.

02:02:03.000 --> 02:02:30.980
Also Bitmap zum Beispiel ist so ein Format, das ist relativ simpel zu parsen in C, weil es im Wesentlichen, wenn man die Structs kennt, kann man das im Wesentlichen einfach reinladen und das ist in Python ein bisschen schwieriger zu verarbeiten, aber mit dem Struct-Modul auch nicht, weil man da eben nur die entsprechenden Formate wissen muss und die entsprechenden Formate eintragen muss und das Struct-Modul zerlegt einen die dann in Python-Werte und umgekehrt auch, wenn man die schreiben möchte, schreibt sie auch in Python-Werte.

02:02:31.400 --> 02:02:45.160
Ist super gut, wenn man Daten eng gepackt haben möchte oder bereits vorliegen hat, um solche Sachen, die eben in C sehr leicht sind, auseinanderzupacken und in Python-Werte umzuwandeln.

02:02:46.620 --> 02:02:50.080
Braucht man nicht super häufig, aber wenn man es braucht, ist es echt lebenswerter.

02:02:50.260 --> 02:02:56.020
Also ich habe es tatsächlich auch nie so wirklich super häufig, aber wir haben es auch einmal an einer Stelle gebraucht.

02:02:57.220 --> 02:02:59.040
Was man nämlich zum Beispiel machen kann, ist, man

02:02:59.040 --> 02:03:00.560
baut halt sozusagen

02:03:00.560 --> 02:03:03.120
die Datenstrukturen, die man in einer anderen Bibliothek

02:03:03.120 --> 02:03:04.940
dann verwenden möchte. Also man hat zum Beispiel irgendeine

02:03:04.940 --> 02:03:07.140
C-Bibliothek, die irgendwas macht. In unserem Fall war das halt

02:03:07.140 --> 02:03:09.180
Lipidinear. Das war halt so eine

02:03:09.180 --> 02:03:10.900
Bibliothek zum Lösen von

02:03:10.900 --> 02:03:13.460
Support-Vector-Maschinen, Geschichten, lineare Support-Vector-Maschinen.

02:03:14.680 --> 02:03:14.960
Und

02:03:14.960 --> 02:03:16.480
normalerweise gibst du den

02:03:16.480 --> 02:03:18.760
Trainingsdaten und so halt in Form von

02:03:18.760 --> 02:03:21.240
und halt auch die Sachen, die du nachher klassifizieren willst,

02:03:21.560 --> 02:03:23.240
in Form von so Text-Files, wo das

02:03:23.240 --> 02:03:25.120
dann mit Doppelpunkt getrennt ist und Kommas

02:03:25.120 --> 02:03:26.920
und so, weiß ich nicht. Aber das ist halt alles

02:03:26.920 --> 02:03:29.040
Mist, weil Text-Files zu parsen, das ist halt

02:03:29.040 --> 02:03:31.060
alles, dauert alles lange und das geht alles

02:03:31.060 --> 02:03:32.940
nicht toll. Aber dann kannst du halt das

02:03:32.940 --> 02:03:35.000
aber in dem Format, in dem, das war

02:03:35.000 --> 02:03:36.960
zum Glück sehr simpel, wie die Bibliothek

02:03:36.960 --> 02:03:38.940
halt die Daten halt selber dann, also

02:03:38.940 --> 02:03:40.780
das Zielformat, in das sie die Sachen geparsed hat,

02:03:41.200 --> 02:03:43.200
kannst du halt in Python hingehen und das einfach so in den Hauptspeicher

02:03:43.200 --> 02:03:44.980
schreiben, das

02:03:44.980 --> 02:03:47.040
in Chat-Memory-Signal packen und dann halt einfach

02:03:47.040 --> 02:03:48.980
von der Library aus

02:03:48.980 --> 02:03:51.000
einfach so verwenden. Sagst du ja so,

02:03:51.080 --> 02:03:52.940
du hast hier, die hast du gerade

02:03:52.940 --> 02:03:54.980
geparsed, bitteschön, mach damit mal irgendwas.

02:03:55.120 --> 02:03:56.720
Und das hat einfach super funktioniert.

02:03:57.600 --> 02:04:00.740
Ja, auch für so Netzwerksachen

02:04:00.740 --> 02:04:02.740
ist es super nützlich, weil

02:04:02.740 --> 02:04:04.720
mir eben oft diese Netzwerksachen,

02:04:04.720 --> 02:04:06.720
die man über das Netzwerk kriegt, halt oft so gepackt

02:04:06.720 --> 02:04:08.560
sind, wie sie halt in C gepackt werden.

02:04:08.980 --> 02:04:10.600
Und da die einzelnen

02:04:10.600 --> 02:04:12.580
Felder rausholen, ist mit Struct super nice

02:04:12.580 --> 02:04:13.260
und super simpel.

02:04:16.220 --> 02:04:16.620
Struct?

02:04:17.540 --> 02:04:18.560
Also ich picke dis.

02:04:20.560 --> 02:04:22.040
Oh, dis, dis.

02:04:22.180 --> 02:04:24.820
Jetzt musst du mal erklären, wie du das schon mal verwendet hast.

02:04:24.980 --> 02:04:26.780
Ja, also ich habe gestern CTF gespielt und damit

02:04:26.780 --> 02:04:28.340
kann man ja irgendwie das, was da an

02:04:28.340 --> 02:04:29.440
Funktionshaufen passiert,

02:04:30.700 --> 02:04:32.800
disassemblen und auseinandernehmen und gucken, was da so

02:04:32.800 --> 02:04:34.880
tatsächlich an anderen Hin- und Hersprüngen passiert.

02:04:36.660 --> 02:04:37.020
Ja.

02:04:38.080 --> 02:04:39.060
Viel mehr werde ich gar nicht verraten.

02:04:39.140 --> 02:04:40.580
Dafür müssen wir bestimmt noch mal so eine Folge machen

02:04:40.580 --> 02:04:42.260
über Assembling und Disassembling und

02:04:42.260 --> 02:04:44.620
Ja, also

02:04:44.620 --> 02:04:46.720
einfach Python Bytecode anschauen.

02:04:46.800 --> 02:04:48.460
Das ist generell eine sehr interessante Sache.

02:04:50.340 --> 02:04:50.960
Bin ich auch.

02:04:51.080 --> 02:04:52.440
Also die Episode möchte ich gerne hören.

02:04:53.120 --> 02:04:54.840
Kann ich zu wenig, um dazu beizutragen,

02:04:54.840 --> 02:04:56.600
Das ist halt immer das Problem.

02:04:56.740 --> 02:04:58.900
Bei vielen Dingen bräuchte man eigentlich jemanden, der sich so richtig

02:04:58.900 --> 02:05:00.400
damit auskennt und das ist halt

02:05:00.400 --> 02:05:01.500
Wir haben alle keine Ahnung.

02:05:02.020 --> 02:05:04.020
Also ich jedenfalls nicht, aber

02:05:04.020 --> 02:05:06.920
Ja. Und wir sind auch offensichtlich

02:05:06.920 --> 02:05:08.720
alle zu faul, um uns vorher

02:05:08.720 --> 02:05:10.420
bereiten zu können.

02:05:10.700 --> 02:05:12.660
Ja, das kann man ja mal ab und zu machen, aber die ganze Zeit

02:05:12.660 --> 02:05:14.120
Oh Gott, Arbeit.

02:05:15.960 --> 02:05:16.860
Ja, da ist es wieder.

02:05:16.960 --> 02:05:18.680
Das mit dem zwei Stunden des

02:05:18.680 --> 02:05:20.880
Arbeitens erspart uns zwei Minuten des Nachdenkens.

02:05:21.820 --> 02:05:22.820
Ja, aber

02:05:22.820 --> 02:05:25.060
Ja, aber da ist ja jetzt, der Dominik

02:05:25.060 --> 02:05:27.160
ist ja jetzt eingearbeitet, der kann uns ja dann sagen, wie das

02:05:27.160 --> 02:05:29.140
funktioniert. Oh ja, natürlich, der absolute Profi, wie immer

02:05:29.140 --> 02:05:30.140
in allen Themen.

02:05:31.600 --> 02:05:33.020
Just call me, ruft mich an,

02:05:33.140 --> 02:05:34.160
hört mir zu,

02:05:34.640 --> 02:05:37.280
uns morgens, mittags,

02:05:37.400 --> 02:05:39.400
abends, nachts, wann immer wieder einschalten wollen.

02:05:39.420 --> 02:05:41.000
Ey, ich wollte auch noch was picken. Du darfst was picken?

02:05:41.180 --> 02:05:43.160
Ja. Das hast du eben. Aber was habe ich denn

02:05:43.160 --> 02:05:44.660
gepickt? Ich dachte, du hast Array gepickt. Ja, genau.

02:05:45.080 --> 02:05:47.060
Ach so, okay, nee, dann ist gut. Nein, du musst

02:05:47.060 --> 02:05:48.800
jetzt was picken. Ah, na gut.

02:05:50.340 --> 02:05:51.300
Weil ich wollte

02:05:51.300 --> 02:05:53.140
nämlich eigentlich noch, ich mache gerade momentan so ein bisschen

02:05:53.140 --> 02:05:53.920
Fast API

02:05:53.920 --> 02:05:56.940
nebenher und

02:05:56.940 --> 02:05:59.100
das, was mir da auch tatsächlich

02:05:59.100 --> 02:05:59.800
sehr nützlich

02:05:59.800 --> 02:06:02.580
untergekommen ist, ist halt

02:06:02.580 --> 02:06:05.040
Pydentic. Das ist ziemlich

02:06:05.040 --> 02:06:06.980
klasse. Pydentic?

02:06:07.160 --> 02:06:08.460
Ja. Das hört sich nicht was für dich an.

02:06:09.060 --> 02:06:09.500
Bibliothek.

02:06:10.400 --> 02:06:12.080
Das hört sich an wie was für Zahnärzte.

02:06:12.780 --> 02:06:13.000
Ja.

02:06:14.160 --> 02:06:16.820
Es gibt eine ganze Reihe von diesen

02:06:16.820 --> 02:06:17.980
Geschichten. Ah, Pydentic.

02:06:19.920 --> 02:06:20.600
Das ist

02:06:20.600 --> 02:06:22.940
also es kann auch ein bisschen, also es ist halt

02:06:22.940 --> 02:06:25.100
auf diesen API-Fall sehr zugeschnitten,

02:06:25.640 --> 02:06:27.000
wo es halt in FastAPI

02:06:27.000 --> 02:06:27.880
halt irgendwie da so

02:06:27.880 --> 02:06:31.000
wichtige Funktionen

02:06:31.000 --> 02:06:32.620
übernimmt, aber es gibt in Python jetzt

02:06:32.620 --> 02:06:34.840
seit einiger Zeit schon so irgendwie so ein Trend

02:06:34.840 --> 02:06:36.160
irgendwie,

02:06:36.980 --> 02:06:39.060
naja, die Erstellung von Klassen

02:06:39.060 --> 02:06:41.080
einfacher zu

02:06:41.080 --> 02:06:43.080
machen und irgendwie so Objekte

02:06:43.080 --> 02:06:44.960
zu serialisieren, deserialisieren,

02:06:45.020 --> 02:06:46.680
das auch alles so ein bisschen simpler

02:06:46.680 --> 02:06:48.800
hinzukriegen und

02:06:48.800 --> 02:06:50.580
weil es gibt halt so bestimmte Sachen,

02:06:50.600 --> 02:06:52.600
die braucht man halt ständig und bestimmte

02:06:52.600 --> 02:06:54.620
Dunder-Methoden wären halt

02:06:54.620 --> 02:06:56.500
auch nett, wenn die einfach so da wären, aber

02:06:56.500 --> 02:06:58.520
das alles selber hinzuschreiben ist halt ein Haufen Arbeit

02:06:58.520 --> 02:07:00.560
und also ich sage

02:07:00.560 --> 02:07:02.440
jetzt mal so, die anderen Geschichten, die in die Richtung

02:07:02.440 --> 02:07:03.760
gehen, ist so Atres,

02:07:04.020 --> 02:07:06.540
da müssen wir uns auch nochmal mit Leuten unterhalten, die sich damit

02:07:06.540 --> 02:07:06.920
auskennen.

02:07:07.980 --> 02:07:10.520
Und Dataclasses, genau, das ist halt

02:07:10.520 --> 02:07:12.320
ja, ist halt

02:07:12.320 --> 02:07:14.220
in die gleiche, also das ist

02:07:14.220 --> 02:07:16.520
auch in der Standardbibliothek, das ist inspiriert

02:07:16.520 --> 02:07:18.500
von Atres, soweit ich das

02:07:18.500 --> 02:07:19.120
weiß,

02:07:20.600 --> 02:07:21.660
und

02:07:21.660 --> 02:07:24.700
ja, aber was man da halt auch

02:07:24.700 --> 02:07:26.720
machen kann, ist, du kannst halt ein Dict nehmen und sagen,

02:07:27.020 --> 02:07:28.800
okay, mach daraus

02:07:28.800 --> 02:07:30.960
jetzt ein Objekt

02:07:30.960 --> 02:07:32.700
von einer bestimmten Klasse, du kannst

02:07:32.700 --> 02:07:34.680
aber auch sagen, erst Dict

02:07:34.680 --> 02:07:36.480
irgendwie, dein Objekt von einer Klasse,

02:07:36.580 --> 02:07:38.420
und dann hast du ein Dict und so, und Pydentic

02:07:38.420 --> 02:07:40.300
macht das Ganze nochmal so, da hast du nur Punkt Dict

02:07:40.300 --> 02:07:40.680
und

02:07:40.680 --> 02:07:44.380
du hast halt auch einen ORM-Mode, wo du Sachen

02:07:44.380 --> 02:07:46.520
also direkt aus dem

02:07:46.520 --> 02:07:48.220
Datenbank-Result

02:07:48.220 --> 02:07:50.100
halt direkt in Objekte packen kannst,

02:07:50.600 --> 02:07:53.120
und das Ding macht dann halt

02:07:53.120 --> 02:07:55.220
Überprüfungen, ob das jetzt also

02:07:55.220 --> 02:07:57.700
korrekt,

02:07:57.840 --> 02:07:59.340
ob die ganzen Typen korrekt sind oder so,

02:07:59.420 --> 02:08:01.280
halt von selber. Du hast halt so, es ist quasi so

02:08:01.280 --> 02:08:03.120
ein bisschen ähnlich wie bei Django-Modellen, du schreibst halt hin,

02:08:03.480 --> 02:08:05.160
welche Attribute gibt es denn und welchen Typ

02:08:05.160 --> 02:08:07.180
haben die und, aber das kannst du halt auch kompliziert

02:08:07.180 --> 02:08:08.340
machen, kannst nicht nur

02:08:08.340 --> 02:08:10.780
Typefins verwenden, sondern halt auch noch

02:08:10.780 --> 02:08:12.820
Validatoren dafür schreiben und keine Ahnung,

02:08:13.260 --> 02:08:15.100
kannst ja dann relativ sicher sein, dass wenn die Daten

02:08:15.100 --> 02:08:16.980
halt von der Klasse

02:08:16.980 --> 02:08:19.080
gefressen werden, dann waren die

02:08:19.080 --> 02:08:21.240
im richtigen Format und ansonsten gibt es eine vernünftige

02:08:21.240 --> 02:08:23.180
Fehlermeldung und man muss sich da um nichts kümmern,

02:08:23.380 --> 02:08:25.180
außer das halt zu definieren, was man

02:08:25.180 --> 02:08:27.080
gerne hätte. Und alles andere

02:08:27.080 --> 02:08:29.140
macht halt die Magie da drin

02:08:29.140 --> 02:08:30.440
und das ist natürlich schon sehr schön.

02:08:31.460 --> 02:08:33.200
Und ja, ich glaube, es ist

02:08:33.200 --> 02:08:35.080
ein ganz interessanter Trend. Ich weiß auch nicht so genau,

02:08:35.260 --> 02:08:36.820
warum das jetzt irgendwie so,

02:08:37.120 --> 02:08:39.140
aber da passieren auch so mehrere Dinge

02:08:39.140 --> 02:08:39.680
gleichzeitig.

02:08:41.460 --> 02:08:42.600
Ich weiß nicht, habt ihr den,

02:08:44.180 --> 02:08:45.160
Marc hatte so

02:08:45.160 --> 02:08:46.660
einen Vortrag gehalten, ich weiß nicht genau,

02:08:47.660 --> 02:08:48.040
halt von,

02:08:48.500 --> 02:08:51.340
hier von der Python-Usergruppe Düsseldorf

02:08:51.340 --> 02:08:53.600
zur Zukunft von Python.

02:08:53.720 --> 02:08:54.660
Nee, hab ich nicht geguckt.

02:08:55.740 --> 02:08:56.960
Da war das generell...

02:08:56.960 --> 02:08:57.480
Verlink den mal.

02:08:57.700 --> 02:08:58.340
Verlink den mal.

02:08:58.600 --> 02:08:59.380
Würde ich gerne auch noch sehen.

02:08:59.620 --> 02:09:01.480
Ja, der war tatsächlich ganz interessant.

02:09:01.800 --> 02:09:05.160
Ein Thema vielleicht für die Zukunft von Python,

02:09:05.220 --> 02:09:05.760
ganz interessant,

02:09:05.760 --> 02:09:08.680
könnte dieser ganze Enterprise-Bereich sein.

02:09:10.860 --> 02:09:13.440
Weil, also der ist momentan halt total...

02:09:13.440 --> 02:09:16.540
Ja, auf der Pidentic-Webseite steht schon,

02:09:16.700 --> 02:09:18.260
dass Microsoft das benutzt, um das

02:09:18.260 --> 02:09:20.880
in Windows und Office einzubauen.

02:09:21.140 --> 02:09:23.180
Also das ist

02:09:23.180 --> 02:09:24.000
schon mal die richtige Richtung.

02:09:24.420 --> 02:09:26.960
Genau. Und also dieser ganze Enterprise-Bereich

02:09:26.960 --> 02:09:28.620
ist ja momentan total von Java dominiert,

02:09:28.860 --> 02:09:29.180
aber

02:09:29.180 --> 02:09:32.840
tatsächlich für viele Dinge braucht man

02:09:32.840 --> 02:09:34.540
gar nicht so diese, man muss halt nicht

02:09:34.540 --> 02:09:36.340
irgendwie alles erstmal mit so einem

02:09:36.340 --> 02:09:38.560
sehr Pattern, mit dem Gang-of-Four-Buch

02:09:38.560 --> 02:09:40.740
So was?

02:09:40.860 --> 02:09:42.860
Ja, es ist

02:09:42.860 --> 02:09:44.500
überraschend. Es ist erstaunlich und

02:09:44.500 --> 02:09:46.500
vielleicht auch ein bisschen traurig für Leute, die jetzt viel Zeit

02:09:46.500 --> 02:09:48.680
damit verbracht haben, das alles auswendig

02:09:48.680 --> 02:09:50.520
zu lernen. Aber vielleicht braucht man sie auch nicht

02:09:50.520 --> 02:09:52.620
die ganze Zeit dauernd. Aber was man vielleicht schon

02:09:52.620 --> 02:09:53.820
braucht, ist halt eine Art,

02:09:55.120 --> 02:09:55.660
solche Sachen

02:09:55.660 --> 02:09:57.860
hinschreiben zu können. Auch so Objekte

02:09:57.860 --> 02:10:00.520
oder Klassen, die dann halt irgendwie so Business-

02:10:00.520 --> 02:10:02.200
Geschichten machen. Und dafür,

02:10:02.400 --> 02:10:04.340
wenn du jetzt aber ganz viele Klassen hast

02:10:04.340 --> 02:10:06.100
und Sachen hinschreibst, dann ist das halt ziemlich

02:10:06.100 --> 02:10:08.180
nervtötend und öde.

02:10:09.260 --> 02:10:10.600
Und wenn man davon zu sehr angeödet

02:10:10.600 --> 02:10:12.320
ist, dann kann man halt irgendwie solche Sachen verwenden, die

02:10:12.320 --> 02:10:14.280
einen dann halt einen Großteil davon wegautomatisieren.

02:10:14.360 --> 02:10:15.960
Und deswegen ist das halt auch so ein interessanter Bereich,

02:10:16.500 --> 02:10:18.500
Microsoft macht da ja auch sowieso

02:10:18.500 --> 02:10:20.380
Dinge in die Richtung. Die haben ja auch jetzt ganz viele

02:10:20.380 --> 02:10:20.900
Python-Entwickler

02:10:20.900 --> 02:10:23.800
angestellt und

02:10:23.800 --> 02:10:25.860
es könnte sein, dass das halt

02:10:25.860 --> 02:10:28.220
tatsächlich auch so ein bisschen in die Richtung geht,

02:10:28.380 --> 02:10:29.760
weil das ja auch etwas ist, was

02:10:29.760 --> 02:10:32.520
Microsoft eigentlich ganz gut auskennt. Also ich bin gespannt.

02:10:32.660 --> 02:10:34.460
Es könnte sein, dass das alles so ein bisschen in die Richtung geht

02:10:34.460 --> 02:10:36.400
und ich finde es auch sehr interessant, was da gerade so

02:10:36.400 --> 02:10:38.360
passiert. Und es macht halt das Bauen von APIs

02:10:38.360 --> 02:10:40.140
deutlich einfacher, wenn man das halt quasi

02:10:40.140 --> 02:10:42.100
delegieren kann, den harten Teil davon

02:10:42.100 --> 02:10:42.880
an sowas.

02:10:43.840 --> 02:10:46.180
Ein ORM on the fly quasi. Ja, spannend.

02:10:46.500 --> 02:11:07.340
Ja, dann sind wir diesmal für heute am Ende, am Ende dieses Jahres auch mittlerweile und ja, also hört uns immer, wo ihr uns auch immer hört und so, bleibt uns gewogen und habt Spaß und Lust zum Einschlafen und zum Aufstehen und zum Autofahren, wo auch immer ihr hinwollt, im Homeoffice natürlich.

02:11:08.420 --> 02:11:09.660
Ja, Jochen, gehen wir noch ein bisschen cybern.

02:11:10.260 --> 02:11:10.460
Ja.

02:11:11.160 --> 02:11:11.540
Alles klar.

02:11:13.500 --> 02:11:15.180
Vielen Dank, Johannes, dass du wieder da warst.

02:11:16.000 --> 02:11:17.540
Ja, schön, dass ich dabei sein durfte.

02:11:17.740 --> 02:11:18.440
Ja, wir hören uns.

02:11:19.040 --> 02:11:19.960
Bis zum nächsten Mal.

02:11:20.060 --> 02:11:20.560
Bis zum nächsten Mal.

02:11:20.800 --> 02:11:21.320
Alles klar.

02:11:21.480 --> 02:11:21.700
Ciao.

02:11:21.820 --> 02:11:22.300
Ciao, tschüss.
