WEBVTT

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

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

00:00:09.840 --> 00:00:11.680
und ein bisschen auf das nächste Jahr schauen.

00:00:12.440 --> 00:00:13.420
Schön, dass ihr wieder eingeschaltet habt.

00:00:13.860 --> 00:00:15.760
Ich bin natürlich wieder mit Jochen dabei.

00:00:16.540 --> 00:00:17.160
Ja, Dominik auch.

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

00:00:18.060 --> 00:00:19.300
Und der Johannes ist heute wieder da.

00:00:19.700 --> 00:00:20.100
Hey, Johannes.

00:00:20.440 --> 00:00:20.740
Ja, hallo.

00:00:21.320 --> 00:00:21.560
Hallo.

00:00:21.900 --> 00:00:23.220
Ich bin ja quasi schon Dauergast hier.

00:00:23.600 --> 00:00:24.620
Ja, kann man so sagen.

00:00:24.620 --> 00:00:25.920
Also schon jenseits von Gast.

00:00:26.940 --> 00:00:27.000
Ja.

00:00:27.000 --> 00:00:29.140
und

00:00:29.140 --> 00:00:30.600
ja,

00:00:31.020 --> 00:00:32.700
aber vielleicht wollen wir das einfach

00:00:32.700 --> 00:00:34.620
wie sonst auch halt immer mit so ein bisschen

00:00:34.620 --> 00:00:37.380
News, wobei wir könnten das diesmal auch so ein bisschen ausdehnen

00:00:37.380 --> 00:00:39.360
auf, was ist

00:00:39.360 --> 00:00:41.100
eigentlich 2020 so passiert oder was kommt mit

00:00:41.100 --> 00:00:42.600
2021 noch und Strukturen

00:00:42.600 --> 00:00:45.340
Trends oder weiß ich nicht. Ein bisschen Struktur,

00:00:45.480 --> 00:00:46.840
ja, ich fange einfach mal so ein bisschen mit News an.

00:00:46.920 --> 00:00:48.320
Ja, ich wollte es ja sagen, dann kommen wir als erstes die News.

00:00:48.320 --> 00:00:50.420
Ja, und

00:00:50.420 --> 00:00:52.500
zwar ganz nett, freut mich natürlich besonders,

00:00:52.620 --> 00:00:53.740
es gibt jetzt Python

00:00:53.740 --> 00:00:55.420
391

00:00:55.420 --> 00:01:03.940
und 387 ist auch released worden, aber für mich nicht so interessant, weil Apple M1 Mac und da ist das jetzt schon so ein Binary,

00:01:03.940 --> 00:01:09.160
das halt nativ auf dem M1 läuft für Python 391, also das ist schon sehr, sehr cool.

00:01:11.380 --> 00:01:18.060
Ja, und es sind halt ein Haufen Bugfixes oder so, kann man sich auf der Changelog-Seite halt selber mal angucken.

00:01:18.060 --> 00:01:21.840
Zweites Ding auch zum M1

00:01:21.840 --> 00:01:24.300
Docker

00:01:24.300 --> 00:01:26.020
tatsächlich, das war ja auch letztes Mal schon so ein bisschen

00:01:26.020 --> 00:01:27.980
die Frage, ob das gehen wird. Ja, es gibt jetzt schon

00:01:27.980 --> 00:01:29.880
eine experimentelle Version und das wird dann wohl

00:01:29.880 --> 00:01:32.000
irgendwann kommen. Also ich habe es nicht installiert,

00:01:32.060 --> 00:01:33.640
weil ich probiere jetzt gerade so irgendwie

00:01:33.640 --> 00:01:35.800
wie sähe denn mein Leben aus ohne

00:01:35.800 --> 00:01:37.780
Docker-Experiment. Mal schauen,

00:01:38.580 --> 00:01:39.680
ob das gut geht

00:01:39.680 --> 00:01:41.000
oder ich dann doch irgendwie

00:01:41.000 --> 00:01:43.020
wieder zurückgekrochen komme.

00:01:43.980 --> 00:01:46.040
Aber ja, mal schauen.

00:01:46.140 --> 00:01:47.820
War das mit Docker 3 eine Kombination?

00:01:48.060 --> 00:01:50.020
oder? Das weiß ich

00:01:50.020 --> 00:01:52.180
nicht. Es gibt eine experimentale

00:01:52.180 --> 00:01:54.020
Release für M1.

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

00:01:56.120 --> 00:01:58.280
jetzt als extra Kommando ohne Docker-Compose.

00:01:58.320 --> 00:01:59.020
Ah, okay.

00:02:00.020 --> 00:02:01.780
Haben sie das reingezogen. Das ist ja schön.

00:02:05.540 --> 00:02:08.140
Ja, und ansonsten

00:02:08.140 --> 00:02:09.740
war noch, also großes Thema, das war auch

00:02:09.740 --> 00:02:11.860
im Django-Newsletter, das ist ja mal

00:02:11.860 --> 00:02:13.060
irgendwie Breaking News.

00:02:13.060 --> 00:02:16.420
ist

00:02:16.420 --> 00:02:19.260
David Hanema

00:02:19.260 --> 00:02:21.200
Hanson, der von Ribbon Wells

00:02:21.200 --> 00:02:22.460
hat

00:02:22.460 --> 00:02:27.240
etwas angekündigt und zwar

00:02:27.240 --> 00:02:29.280
hat er einige Geschichten released

00:02:29.280 --> 00:02:30.840
oder

00:02:30.840 --> 00:02:32.480
vielmehr die Firma dahinter, Basecamp,

00:02:33.340 --> 00:02:34.820
unter dem

00:02:34.820 --> 00:02:36.560
Oberbegriff Hotwire

00:02:36.560 --> 00:02:39.120
und... Ein Hotwire, ein heißes

00:02:39.120 --> 00:02:40.700
Kabel, was ist das? Ja,

00:02:40.960 --> 00:02:42.700
das ist ganz interessant. Heiße Draht.

00:02:43.060 --> 00:02:45.100
hat mich sofort so ein bisschen an...

00:02:45.100 --> 00:02:47.160
Also zuerst dachte ich, ist es jetzt irgendwie so ein Witz oder so?

00:02:47.220 --> 00:02:49.220
Da hieß es halt so, naja, also bessere

00:02:49.220 --> 00:02:50.940
interaktive Geschichten, weil wir

00:02:50.940 --> 00:02:53.060
machen jetzt alles neu und anders und diese ganzen

00:02:53.060 --> 00:02:54.760
JavaScript-Zeugs braucht man nicht mehr.

00:02:55.140 --> 00:02:56.820
Wir machen nämlich jetzt HTML

00:02:56.820 --> 00:02:58.260
direkt über das Kabel.

00:02:59.280 --> 00:03:01.020
Ja gut, das hat man ja schlimmer gemacht.

00:03:02.940 --> 00:03:04.420
Was ist denn da jetzt neu und toll?

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

00:03:06.320 --> 00:03:07.960
Das gab es doch schon irgendwann mal.

00:03:08.640 --> 00:03:10.340
Und das Neue und Tolle ist, dass das halt

00:03:10.340 --> 00:03:12.540
nur so HTML-Schnipsel sind.

00:03:13.060 --> 00:03:15.180
und die kommen halt auch über Websockets.

00:03:16.680 --> 00:03:16.960
Und

00:03:16.960 --> 00:03:19.000
ja, es gibt halt so ein bisschen

00:03:19.000 --> 00:03:20.400
JavaScript-Glue auf der

00:03:20.400 --> 00:03:22.980
kleinen Seite, wo man halt

00:03:22.980 --> 00:03:25.100
sozusagen, also ein Teil heißt

00:03:25.100 --> 00:03:27.300
Turbo von diesem Hotwire-Ding

00:03:27.300 --> 00:03:29.100
und das ist quasi das, was halt

00:03:29.100 --> 00:03:31.040
dieses Handling macht von

00:03:31.040 --> 00:03:33.200
Frames, die halt selbstständig

00:03:33.200 --> 00:03:35.040
sich updaten können, sodass du halt

00:03:35.040 --> 00:03:36.940
nicht einen kompletten Page-Reload machen musst, wenn

00:03:36.940 --> 00:03:38.340
sich irgendwas auf deiner Seite ändert.

00:03:39.760 --> 00:03:40.880
Und die können aber,

00:03:40.880 --> 00:03:42.700
du kannst aber auch Dinge außerhalb von diesen Frames damit

00:03:42.700 --> 00:03:44.780
updaten und so und das geht halt auch per Websocket.

00:03:45.740 --> 00:03:46.780
Und dann hast du halt noch

00:03:46.780 --> 00:03:48.540
irgendwie Stimulus, heißt das

00:03:48.540 --> 00:03:50.460
irgendwie so ein JavaScript-Framework, wo du so relativ

00:03:50.460 --> 00:03:52.660
simple Kontrolle hast, die dann irgendwas machen können,

00:03:53.420 --> 00:03:54.560
wenn sie halt

00:03:54.560 --> 00:03:56.220
irgendwie Daten kriegen, nur über

00:03:56.220 --> 00:03:59.140
die Leitung

00:03:59.140 --> 00:04:00.640
und dann halt irgendwie selber so ein bisschen

00:04:00.640 --> 00:04:02.700
HTML rendern, aber das ist

00:04:02.700 --> 00:04:04.620
eigentlich eher so die Ausnahme, so eigentlich willst du

00:04:04.620 --> 00:04:06.240
sozusagen, dass es auf dem Server gerendert wird und du

00:04:06.240 --> 00:04:08.480
ersetzt halt nur Dinge

00:04:08.480 --> 00:04:10.280
im DOM und zwar ganze Bereiche.

00:04:11.320 --> 00:04:12.300
Und das ganze

00:04:12.300 --> 00:04:14.080
State Handling und das ganze

00:04:14.080 --> 00:04:16.520
Gerändere, das passiert halt weiterhin auf dem Server,

00:04:16.620 --> 00:04:18.480
wie man das halt gewohnt ist. Und das ist natürlich schon eine nette

00:04:18.480 --> 00:04:19.740
Idee, dass du halt sozusagen einfach dein

00:04:19.740 --> 00:04:21.660
stinknormales Ruby on Rails

00:04:21.660 --> 00:04:24.540
Templating-Zeugs nimmst

00:04:24.540 --> 00:04:26.440
und du renderst halt HTML-Schnipsel damit raus

00:04:26.440 --> 00:04:27.740
und die gehen dann halt nicht

00:04:27.740 --> 00:04:30.300
quasi als kompletter Request an den Client, sondern

00:04:30.300 --> 00:04:32.140
nur als so ein Schnipsel

00:04:32.140 --> 00:04:34.400
über WebSocket und werden

00:04:34.400 --> 00:04:36.100
dann halt einfach nur ersetzt auf den Client

00:04:36.100 --> 00:04:38.300
und dann kannst du quasi deine gesamte

00:04:38.300 --> 00:04:40.420
Applikation weiterhin wie so einen normalen

00:04:40.420 --> 00:04:41.780
Ruby on Rails Moduliten schreiben

00:04:41.780 --> 00:04:43.300
und aber trotzdem

00:04:43.300 --> 00:04:44.740
hast du halt nicht diese

00:04:44.740 --> 00:04:47.540
Unterbrechungen, die du normalerweise hättest, wenn du einen Patch-Reload

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

00:04:50.840 --> 00:04:51.460
Und dann gibt es noch

00:04:51.460 --> 00:04:53.620
ein Ding, das nennt sich irgendwie Strada und da weiß ich auch nicht so genau.

00:04:53.720 --> 00:04:55.040
Das wird erst noch released, das ist noch nicht fertig.

00:04:56.060 --> 00:04:56.760
Ja, aber

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

00:04:59.120 --> 00:05:01.360
auch LiveView in LXC,

00:05:01.460 --> 00:05:02.620
also mit Erlang und Phoenix macht,

00:05:03.020 --> 00:05:05.340
irgendwie in Ruby on Rails

00:05:05.340 --> 00:05:06.500
und ja.

00:05:07.560 --> 00:05:09.520
Und jetzt haben natürlich auch schon irgendwelche Leute

00:05:09.520 --> 00:05:11.400
sich überlegt, ob sie das nicht für Django adaptieren

00:05:11.400 --> 00:05:13.220
können und so. Da gibt es eine Diskussion dazu

00:05:13.220 --> 00:05:15.280
und es gibt auch schon eine GitHub-Organisation

00:05:15.280 --> 00:05:16.840
und, aber

00:05:16.840 --> 00:05:19.220
interessant bin ich daran, dass halt jetzt alle Leute so

00:05:19.220 --> 00:05:21.080
oder das ist irgendwie ein Thema jetzt gerade,

00:05:21.240 --> 00:05:22.180
so dieses Async,

00:05:22.740 --> 00:05:24.780
ja,

00:05:25.940 --> 00:05:27.140
na, dieses

00:05:27.140 --> 00:05:29.260
Websocket-Zeugs und dann diese

00:05:29.260 --> 00:05:31.260
Monolithen bewegen sich jetzt auch in die Richtung,

00:05:31.580 --> 00:05:33.120
ich meine, das war immer schon ein Thema, aber jetzt gerade

00:05:33.120 --> 00:05:34.620
habe ich das Gefühl, das kriegt so richtig Moment.

00:05:35.280 --> 00:05:37.140
Warum genau jetzt, weiß ich auch nicht so genau, aber

00:05:37.140 --> 00:05:38.540
irgendwie jetzt gerade ist es irgendwie,

00:05:39.640 --> 00:05:39.780
ja.

00:05:39.780 --> 00:05:42.060
Es hört sich aber alles nicht ungeheuer

00:05:42.060 --> 00:05:43.460
neu oder ungeheuer

00:05:43.460 --> 00:05:45.080
ja sagen wir mal

00:05:45.080 --> 00:05:48.140
unbekannt an, also so Sachen

00:05:48.140 --> 00:05:49.920
dass du irgendwelche Links mit JavaScript

00:05:49.920 --> 00:05:52.200
automatisch versiehst, das gab es

00:05:52.200 --> 00:05:54.080
ja schon auch mal in TurboGears oder in

00:05:54.080 --> 00:05:55.480
was weiß ich wie das alles hieß

00:05:55.480 --> 00:05:58.320
Ja, finde ich auch, also insgesamt ist es nicht neu

00:05:58.320 --> 00:06:00.080
aber sozusagen der

00:06:00.080 --> 00:06:02.140
Ansatz zu sagen, das machen wir jetzt statt

00:06:02.140 --> 00:06:03.100
irgendwie

00:06:03.100 --> 00:06:06.220
APIs und JavaScript Frontend

00:06:06.220 --> 00:06:07.660
das ist schon so ein bisschen neu

00:06:07.660 --> 00:06:09.560
weil dieses Feld hat...

00:06:09.560 --> 00:06:11.880
Ja, sicherlich wird auch die Integration besser sein

00:06:11.880 --> 00:06:13.560
als...

00:06:13.560 --> 00:06:14.720
Wir machen einfach mal so.

00:06:15.560 --> 00:06:17.060
Aber was muss man jetzt davor setzen?

00:06:17.260 --> 00:06:19.600
In das Frontend macht man dieses Turbo rein

00:06:19.600 --> 00:06:21.640
und das lädt dann einfach aus der

00:06:21.640 --> 00:06:24.360
Template-Hin-Engine irgendwelche

00:06:24.360 --> 00:06:25.640
Teile raus, die dann

00:06:25.640 --> 00:06:27.780
zwar über Sockets kommen, nicht über einzelne Requests.

00:06:30.160 --> 00:06:31.500
Ja, also das kann auch

00:06:31.500 --> 00:06:32.280
über normale...

00:06:32.280 --> 00:06:34.520
über diese

00:06:34.520 --> 00:06:37.480
XHTTP-Requests kommen, aber

00:06:37.480 --> 00:06:40.320
du kannst es halt auch über WebSocket machen

00:06:40.320 --> 00:06:42.520
aber

00:06:42.520 --> 00:06:44.420
eigentlich der Witz ist, dass du

00:06:44.420 --> 00:06:45.860
nichts mehr in JavaScript wirklich

00:06:45.860 --> 00:06:47.800
oder nichts Wesentliches mehr in JavaScript machst

00:06:47.800 --> 00:06:50.340
du erzeugst nicht, also der wesentliche Unterschied ist

00:06:50.340 --> 00:06:52.160
du erzeugst in JavaScript kein HTML

00:06:52.160 --> 00:06:54.140
also das was halt all diese großen

00:06:54.140 --> 00:06:56.060
JavaScript Frameworks machen

00:06:56.060 --> 00:06:58.360
ist ja irgendwie auch eine eigene Templating Engine

00:06:58.360 --> 00:07:00.360
haben oder irgendwie

00:07:00.360 --> 00:07:02.520
zumindest irgendwas was so ein bisschen

00:07:02.520 --> 00:07:04.480
danach aussieht und dann baust

00:07:04.480 --> 00:07:05.740
du da dein HTML halt zusammen

00:07:05.740 --> 00:07:11.280
und machst im Grunde das gleiche, was du im Backend machst, nochmal im Frontend.

00:07:12.340 --> 00:07:15.760
Und die Idee ist sozusagen, das machst du nicht mehr, sondern du machst das nur noch im Backend

00:07:15.760 --> 00:07:17.800
und das Frontend ist automatisch.

00:07:17.880 --> 00:07:19.100
Du musst eigentlich nichts mehr im Frontend machen.

00:07:19.760 --> 00:07:22.720
Du kannst zwar noch so ein bisschen was tun, aber normalerweise musst du nicht mehr viel machen.

00:07:22.720 --> 00:07:27.000
Und du entwickelst es einfach so ganz normal, quasi wie ein Ruby on Rails oder Django App

00:07:27.000 --> 00:07:31.100
und lieferst halt den JavaScript-Teil mit aus.

00:07:31.100 --> 00:07:39.420
ja, da gibt es auch ein ganz nettes Video zu auf hotwire.dev und da gibt es ja diesen E-Mail-Service,

00:07:39.620 --> 00:07:44.920
den auch Basecamp gestartet hat, hey.com und das ist halt genau damit gebaut und ja.

00:07:45.440 --> 00:07:48.500
Okay, na gut, muss man sich mal anschauen.

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

00:07:50.180 --> 00:07:55.800
Es gab vor Jahren mal eine geniale Bibliothek, eine geniale JavaScript-Bibliothek,

00:07:55.800 --> 00:07:57.400
die Page Reloads schneller gemacht hat.

00:07:58.480 --> 00:07:59.940
Die hat einfach

00:07:59.940 --> 00:08:01.740
Seiten

00:08:01.740 --> 00:08:03.740
vorgeladen, wenn man mit der Maus drüber gefahren ist,

00:08:03.820 --> 00:08:05.820
weil tatsächlich

00:08:05.820 --> 00:08:07.320
ist es so, dass Menschen sehr langsam klicken

00:08:07.320 --> 00:08:09.580
und wenn sie mit ihrer Maus irgendwo hinfahren, dauert das so

00:08:09.580 --> 00:08:11.140
200 bis 500 Millisekunden,

00:08:11.960 --> 00:08:13.540
bis du dann drauf klickst.

00:08:14.240 --> 00:08:16.040
Er hat einfach

00:08:16.040 --> 00:08:17.700
geguckt, wann die Maus über einem Link

00:08:17.700 --> 00:08:19.260
stehen bleibt und hat den schon mal geladen

00:08:19.260 --> 00:08:21.560
und damit

00:08:21.560 --> 00:08:23.400
kriegt man 200 bis 500 Millisekunden

00:08:23.400 --> 00:08:24.460
Latenz weg, was

00:08:24.460 --> 00:08:27.560
was ich finde nicht eine sehr schöne Technik ist

00:08:27.560 --> 00:08:28.480
das ist schon mal eine super Idee

00:08:28.480 --> 00:08:31.080
sehr psychologisch

00:08:31.080 --> 00:08:33.560
für alle Leute die so notorisch

00:08:33.560 --> 00:08:35.600
nervös mit dem Mauszeiger rumwillen

00:08:35.600 --> 00:08:37.360
über alle Links, gibt das dann Lags

00:08:37.360 --> 00:08:39.400
auf der Seite, weil die ganze Zeit irgendwelche Requests passieren

00:08:39.400 --> 00:08:39.580
oder?

00:08:40.480 --> 00:08:42.940
für die ist es nicht gut geeignet, aber

00:08:42.940 --> 00:08:44.720
einen Tod muss man sterben

00:08:44.720 --> 00:08:46.780
ok, verstehe

00:08:46.780 --> 00:08:48.840
ja

00:08:48.840 --> 00:08:53.200
ja, ich habe keine News

00:08:53.200 --> 00:08:55.400
also ich habe in den letzten vier Wochen nicht viel

00:08:55.400 --> 00:08:57.900
war zu sehr im Weihnachtsstress

00:08:57.900 --> 00:08:58.920
ja ja

00:08:58.920 --> 00:09:01.380
es ist einfach nichts Neues passiert

00:09:01.380 --> 00:09:04.100
ja ja

00:09:04.100 --> 00:09:05.340
das stimmt auch

00:09:05.340 --> 00:09:07.180
ich habe jetzt

00:09:07.180 --> 00:09:09.320
ein bisschen Zeit

00:09:09.320 --> 00:09:11.520
das habe ich dann auch gleich mal genutzt um irgendwie

00:09:11.520 --> 00:09:13.180
meinem

00:09:13.180 --> 00:09:15.640
Gear Acquisition Syndrom zu frönen

00:09:15.640 --> 00:09:18.140
ja

00:09:18.140 --> 00:09:20.400
da ist Weihnachten auch eine gefährliche Zeit

00:09:20.400 --> 00:09:21.680
stimmt

00:09:21.680 --> 00:09:24.220
der perfekte Sturm

00:09:24.220 --> 00:09:25.040
sozusagen.

00:09:25.440 --> 00:09:29.680
Ja, aber auch im Hinblick auf

00:09:29.680 --> 00:09:31.940
ja genau, das wollten wir, das ist vielleicht

00:09:31.940 --> 00:09:33.960
eine Überleitung zur Richtung, was kommt

00:09:33.960 --> 00:09:35.680
eigentlich 2021 und die

00:09:35.680 --> 00:09:37.600
meine Vorhersage wäre

00:09:37.600 --> 00:09:39.320
Pakete, ganz viele Pakete.

00:09:39.320 --> 00:09:40.160
Es kommen viele Pakete.

00:09:43.260 --> 00:09:43.820
Aber

00:09:43.820 --> 00:09:46.020
ja, nicht so

00:09:46.020 --> 00:09:47.780
viele Pakete mit Audio

00:09:47.780 --> 00:09:49.240
und Video Hardware

00:09:49.240 --> 00:09:50.840
zum irgendwie, weil

00:09:50.840 --> 00:09:53.340
die sind alle schon angekommen und

00:09:53.340 --> 00:09:54.560
da kommt nichts mehr.

00:09:55.380 --> 00:09:57.460
Und zwar zum Beispiel, weil halt in Japan

00:09:57.460 --> 00:09:59.340
ist halt eine Fabrik von

00:09:59.340 --> 00:10:01.320
AKG ist irgendwie abgebrannt.

00:10:02.660 --> 00:10:03.220
Ja.

00:10:05.500 --> 00:10:06.620
Globale Auswirkungen.

00:10:06.960 --> 00:10:08.140
Ja, das ist so ein bisschen schlecht.

00:10:08.680 --> 00:10:10.520
Es gibt ja zum Beispiel bei den

00:10:10.520 --> 00:10:11.920
also diese

00:10:11.920 --> 00:10:15.140
analog, also

00:10:15.140 --> 00:10:17.260
DRC, also digital

00:10:17.260 --> 00:10:19.700
zu Audio und umgekehrt

00:10:19.700 --> 00:10:20.200
Converter.

00:10:21.620 --> 00:10:23.200
Da gibt es halt nicht so viele von,

00:10:23.440 --> 00:10:25.040
die das in guter Qualität machen.

00:10:25.900 --> 00:10:27.640
Und tatsächlich stellen halt die Leute

00:10:27.640 --> 00:10:28.960
gerade so fest, eigentlich gibt es nur einen.

00:10:29.440 --> 00:10:31.360
Und dummerweise dieser eine, der hat dann zwar

00:10:31.360 --> 00:10:32.780
sein Zeugs unter ganz vielen

00:10:32.780 --> 00:10:35.540
Labels

00:10:35.540 --> 00:10:37.020
vertrieben und

00:10:37.020 --> 00:10:39.600
es sah so aus, als könnte man das Zeug überall kaufen.

00:10:39.920 --> 00:10:41.800
Aber tatsächlich war es nur eine Firma, nämlich AKG.

00:10:42.160 --> 00:10:43.540
Und tatsächlich war es auch nur eine Fabrik,

00:10:43.540 --> 00:10:44.920
in der die hergestellt wurden, nämlich die.

00:10:45.080 --> 00:10:45.880
Und die ist gerade abgebrannt.

00:10:47.260 --> 00:10:49.060
Das ist jetzt schlecht.

00:10:49.580 --> 00:10:50.660
Und niemand anders kann das so richtig.

00:10:51.080 --> 00:10:53.380
Und jetzt geht halt alles, was so High-End-Audio

00:10:53.380 --> 00:10:55.400
angeht, da werden jetzt so die Lagerer

00:10:55.400 --> 00:10:56.740
leer und die Preise steigen.

00:10:57.280 --> 00:10:59.000
Und ja, wenn man da nichts hat,

00:10:59.160 --> 00:11:01.400
wird es in 2021 ein bisschen schwierig, das zu kaufen.

00:11:02.280 --> 00:11:03.180
Unter anderem auch deshalb,

00:11:03.300 --> 00:11:05.120
weil halt die Nachfrage weiterhin

00:11:05.120 --> 00:11:06.960
hoch bleiben wird, denke ich mal.

00:11:07.040 --> 00:11:09.200
Weil Homeoffice wird wohl weitergehen, nehme ich mal an.

00:11:10.400 --> 00:11:11.280
Das sieht

00:11:11.280 --> 00:11:12.280
erst mal so aus.

00:11:13.700 --> 00:11:14.900
Ja, also die

00:11:14.900 --> 00:11:17.200
bisherige Prophezeiung

00:11:17.200 --> 00:11:18.620
war da so bis Sommer.

00:11:19.240 --> 00:11:20.420
Also jedenfalls jetzt hier bei uns

00:11:20.420 --> 00:11:23.300
so in Mitteleuropa.

00:11:23.560 --> 00:11:25.040
Ja, kommt drauf an,

00:11:25.280 --> 00:11:26.500
welche man will.

00:11:28.580 --> 00:11:28.840
Ja,

00:11:29.180 --> 00:11:31.220
Normalität, also es kommt drauf an, was man

00:11:31.220 --> 00:11:33.000
sich da anhört. Aber jetzt sind ja auch schon

00:11:33.000 --> 00:11:35.020
tatsächlich, die Zeit

00:11:35.020 --> 00:11:37.220
gibt da aktuelle Zahlen an, 21.566

00:11:38.320 --> 00:11:39.220
Impfdosen

00:11:39.740 --> 00:11:40.420
in Deutschland

00:11:40.420 --> 00:11:43.220
verabreicht worden. Das ist doch schon mal

00:11:43.220 --> 00:11:44.960
nicht schlecht. Dann ist ja nicht mehr weit.

00:11:46.320 --> 00:11:46.820
Ja, ja.

00:11:46.820 --> 00:11:50.560
Wir sind schon fast da. Wie brauchen wir? 40 Millionen durch 20.000?

00:11:50.580 --> 00:11:54.380
Ja, auch das ist unklar.

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

00:11:58.640 --> 00:11:59.800
Und doppelt natürlich.

00:12:03.880 --> 00:12:06.840
Und vor allen Dingen gibt es ja jetzt nochmal so eine neue,

00:12:07.480 --> 00:12:12.800
etwas abgewandelte Virusvariante, die ein bisschen infektiöser ist und das ändert die Zahlen halt auch nochmal.

00:12:12.800 --> 00:12:14.660
weil das Problem ist, du musst jetzt mehr Leute

00:12:14.660 --> 00:12:16.740
du brauchst einen größeren Anteil

00:12:16.740 --> 00:12:18.980
in der Bevölkerung, der immun ist

00:12:18.980 --> 00:12:20.780
damit das noch funktioniert

00:12:20.780 --> 00:12:22.640
weil das hat halt direkte Auswirkungen, wenn das Ding

00:12:22.640 --> 00:12:23.960
infektiöser ist, dann brauchst du halt

00:12:23.960 --> 00:12:27.020
der Prozentsatz der Leute, die irgendwie immun sein müssen

00:12:27.020 --> 00:12:28.660
entweder dadurch, dass sie das schon hatten oder

00:12:28.660 --> 00:12:30.680
geöffnet werden, halt höher, was bedeutet

00:12:30.680 --> 00:12:32.580
ja, es wird länger dauern wahrscheinlich

00:12:32.580 --> 00:12:34.700
du musst mehr herstellen, dann musst du es verteilen

00:12:34.700 --> 00:12:36.280
alles schlecht, also die

00:12:36.280 --> 00:12:38.620
pessimistischere Richtung geht eher

00:12:38.620 --> 00:12:40.520
zu sagen, so, das wird auch noch bis

00:12:40.520 --> 00:12:42.640
Winter 2021 leider dauern wohl

00:12:42.640 --> 00:12:44.240
also

00:12:44.240 --> 00:12:46.040
alles nicht so richtig schön

00:12:46.040 --> 00:12:47.900
und sowieso die Zahlen sehen alles

00:12:47.900 --> 00:12:49.920
fies aus

00:12:49.920 --> 00:12:51.980
es kann eigentlich nur

00:12:51.980 --> 00:12:54.800
egal in welche Richtung es geht, es sind alle doof

00:12:54.800 --> 00:12:56.260
die Richtungen, es gibt keine guten mehr

00:12:56.260 --> 00:12:58.560
jetzt über Weihnachten sind die Sachen alle gesunken

00:12:58.560 --> 00:12:59.720
komisch

00:12:59.720 --> 00:13:01.380
warten wir mal die Nachmeldungen ab

00:13:01.380 --> 00:13:02.640
warten wir mal die Nachmeldungen

00:13:02.640 --> 00:13:06.840
ja gut

00:13:06.840 --> 00:13:08.600
ich meine das wird uns noch

00:13:08.600 --> 00:13:10.120
das nächste Jahr beschäftigen

00:13:10.120 --> 00:13:11.740
habt ihr da irgendwas

00:13:11.740 --> 00:13:13.620
Habt ihr eigentlich sowas gemacht?

00:13:14.280 --> 00:13:16.120
Was ich tatsächlich, ich hatte das, das war mehr so

00:13:16.120 --> 00:13:18.080
ein, mehr so ein, oh, weiß ich auch gar nicht,

00:13:18.120 --> 00:13:20.200
ob ich das erzählt habe, naja, also

00:13:20.200 --> 00:13:22.460
es war mehr so

00:13:22.460 --> 00:13:24.220
ein Versuch, genau,

00:13:24.360 --> 00:13:25.220
ich dachte so, naja Gott,

00:13:26.260 --> 00:13:28.140
diese ganzen E-Commerce-Geschichten, da will ich auch

00:13:28.140 --> 00:13:29.860
mit dabei sein, jetzt so im Jahr 2021,

00:13:30.160 --> 00:13:31.680
weil ich habe also mal in der Partikel gefragt,

00:13:31.780 --> 00:13:33.880
diese Schnelltests, das klingt ja alles ganz toll und so,

00:13:34.500 --> 00:13:35.860
und hier ist es halt so, nä, nä, nä,

00:13:36.440 --> 00:13:38.320
und da dachte ich, na gut, dann gucke ich doch mal,

00:13:38.320 --> 00:13:40.200
gibt es nicht Webseiten, auf denen man das kaufen kann, und tatsächlich

00:13:40.200 --> 00:13:40.580
gab es.

00:13:42.100 --> 00:13:43.320
Ich habe dann halt auch bestellt.

00:13:43.580 --> 00:13:44.360
Wie viel beteiligt hat der Hand?

00:13:45.800 --> 00:13:47.780
Man musste ihn in großen Packungen kaufen. Ich habe irgendwie so

00:13:47.780 --> 00:13:49.160
25 Stück bestellt. Das hat so

00:13:49.160 --> 00:13:51.480
200 Euro gekostet oder so.

00:13:52.980 --> 00:13:53.980
Ja, das geht ja tatsächlich

00:13:53.980 --> 00:13:55.880
noch preislich. Ja, also pro Test

00:13:55.880 --> 00:13:56.820
waren das so um die 10 Euro.

00:13:58.340 --> 00:13:59.980
Und dann hieß es

00:13:59.980 --> 00:14:01.980
aber direkt so ein paar Tage

00:14:01.980 --> 00:14:02.420
später,

00:14:02.740 --> 00:14:05.740
ein bisschen schlecht mit dem Liefern.

00:14:08.120 --> 00:14:09.780
Habe ich mir auch schon gedacht, dass das eventuell

00:14:09.780 --> 00:14:34.700
und das ist ja gut, sonst wäre das ja vielleicht gar nicht angekommen.

00:14:35.020 --> 00:14:35.340
Wunderbar.

00:14:35.340 --> 00:14:38.460
Ja

00:14:38.460 --> 00:14:41.180
Und hast du den Webshop aufgemacht und den Preis verfünffacht?

00:14:41.860 --> 00:14:42.580
Nee, nee, nee

00:14:42.580 --> 00:14:45.240
Sie sind auch schon, also ein guter Teil

00:14:45.240 --> 00:14:45.960
davon ist jetzt auch schon

00:14:45.960 --> 00:14:48.560
verbraucht

00:14:48.560 --> 00:14:55.240
Ja, ich habe tatsächlich Angebote gesehen

00:14:55.240 --> 00:14:57.280
da haben sie 50 Euro pro Test verlängert

00:14:57.280 --> 00:14:59.360
also da können schon durchaus Margen drin sein

00:14:59.360 --> 00:14:59.640
Jochen

00:14:59.640 --> 00:15:00.860
Ja gut

00:15:00.860 --> 00:15:05.160
Geld für zwei

00:15:05.160 --> 00:15:05.960
neue Lieferungen.

00:15:08.800 --> 00:15:11.020
Lass mal überlegen, wie kann man denn da ein Pyramidensystem

00:15:11.020 --> 00:15:13.180
draus machen? Eine kurze Lektion

00:15:13.180 --> 00:15:14.560
in ex-politische Faktum.

00:15:15.600 --> 00:15:15.800
Ja.

00:15:16.640 --> 00:15:18.820
Das war ja mal ein Vorschlag, den ich hatte,

00:15:18.920 --> 00:15:21.060
dass man Leute, die gegen die Maskenpflicht verstoßen,

00:15:21.140 --> 00:15:22.640
dass man denen zuerst eine Strafe

00:15:22.640 --> 00:15:24.760
gibt, die sehr niedrig ist, 5 Euro.

00:15:25.620 --> 00:15:27.080
Und beim zweiten Verstoß

00:15:27.080 --> 00:15:28.460
dann aber 10 Euro.

00:15:28.960 --> 00:15:30.740
Beim dritten Verstoß 20 Euro.

00:15:31.660 --> 00:15:32.840
Und das wäre dann

00:15:32.840 --> 00:15:34.620
gleichzeitig abschreckend und

00:15:34.620 --> 00:15:36.700
eine kurze Einführung in exponentielles

00:15:36.700 --> 00:15:37.160
Wachstum.

00:15:39.120 --> 00:15:40.060
Was vielleicht

00:15:40.060 --> 00:15:41.180
witzig wäre.

00:15:42.500 --> 00:15:43.160
Ich glaube,

00:15:43.840 --> 00:15:46.380
die Wahrscheinlichkeit der Kontrolle mehrfach

00:15:46.380 --> 00:15:47.600
ist wahrscheinlich gering.

00:15:49.100 --> 00:15:50.640
Ja gut, das ist

00:15:50.640 --> 00:15:51.600
auch ein lösbares Problem.

00:15:52.740 --> 00:15:54.760
Gerade in Deutschland ist das ja ein lösbares

00:15:54.760 --> 00:15:55.120
Problem.

00:15:58.820 --> 00:16:00.620
Ob ihr das jetzt als Win oder

00:16:00.620 --> 00:16:02.660
als Fail einsortiert, das überlasse ich jetzt

00:16:02.660 --> 00:16:03.320
mal euch.

00:16:03.320 --> 00:16:07.180
Ja, insgesamt tendiert die ganze Situation so ein bisschen Richtung Fail, muss ich sagen

00:16:07.180 --> 00:16:09.620
Ach, findest du?

00:16:09.820 --> 00:16:11.340
Ja, schon

00:16:11.340 --> 00:16:15.760
Also das Schlimmste, was ich jetzt hatte, dass ich jetzt nicht so in die Sauna gehen konnte, wie ich wollte

00:16:15.760 --> 00:16:18.740
und das Fitnessstudio hat zu und Babyschwimmen ist ausgefallen

00:16:18.740 --> 00:16:20.660
Also das sind alles First-Rail-Problems

00:16:20.660 --> 00:16:23.560
Also es geht da erst schaunlich gut, toi toi toi

00:16:23.560 --> 00:16:27.760
Es ist schon sehr schlimm, Dominik, dass du deinen Job verloren hast

00:16:27.760 --> 00:16:31.980
und kurz vor dem finanziellen ausstehst und auch deine Wohnung bald verlierst

00:16:31.980 --> 00:16:32.340
und

00:16:32.340 --> 00:16:35.740
Ja, ne, also das

00:16:35.740 --> 00:16:38.840
tatsächlich

00:16:38.840 --> 00:16:40.900
Man muss ja wirklich sagen, wir leben alle

00:16:40.900 --> 00:16:42.260
in so einer Blase.

00:16:43.460 --> 00:16:45.260
Ja, also ich meine, in unserer Branche

00:16:45.260 --> 00:16:47.620
ist es halt wirklich sehr einfach Homeoffice zu machen.

00:16:47.780 --> 00:16:48.440
Das ist für andere

00:16:48.440 --> 00:16:51.800
Betriebe, alle die in der Gastronomie

00:16:51.800 --> 00:16:53.440
arbeiten, für die ist es schwieriger.

00:16:54.000 --> 00:16:55.460
Ja, ganze Veranstaltungsbehandlung,

00:16:55.660 --> 00:16:57.900
Arschkrate, Einzelhandel

00:16:57.900 --> 00:16:58.380
und so weiter.

00:16:59.880 --> 00:17:00.640
Mein Cousin

00:17:00.640 --> 00:17:03.780
hat ein Konzertbüro, eine Konzertagentur.

00:17:04.540 --> 00:17:05.660
Die hatten zwischendurch überlegt,

00:17:05.800 --> 00:17:07.740
ob sie Konzerte in Flugzeugen

00:17:07.740 --> 00:17:09.480
machen sollen, weil das war nämlich erlaubt.

00:17:09.940 --> 00:17:11.220
Hätten sie immerhin für 300 Leute

00:17:11.220 --> 00:17:13.600
Flugzeugkonzerte machen können, haben es aber

00:17:13.600 --> 00:17:15.640
nicht gemacht. Geld oder Leben

00:17:15.640 --> 00:17:17.420
heißt das. Aber klar, dem ist das ganze Jahr einfach

00:17:17.420 --> 00:17:19.700
ausgefallen. Geld oder Leben.

00:17:20.440 --> 00:17:21.420
Kennt ihr dieses

00:17:21.420 --> 00:17:23.460
Ticketsystem

00:17:23.460 --> 00:17:24.960
PreTix?

00:17:25.660 --> 00:17:27.280
Auch Django-System? Natürlich.

00:17:27.700 --> 00:17:29.460
Die unterstützen noch jedes Jahr

00:17:29.460 --> 00:17:31.260
die DjangoCon, also bitte Jochen.

00:17:32.060 --> 00:17:33.520
Genau, die

00:17:33.520 --> 00:17:35.160
hatten jetzt auch so ein Problem,

00:17:35.520 --> 00:17:37.300
damit das halt irgendwie, naja gut, die ganzen

00:17:37.300 --> 00:17:38.820
Veranstaltungen, die normalerweise dann

00:17:38.820 --> 00:17:41.700
Pre-Ticks benutzt haben, um die Tickets zu verkaufen,

00:17:42.120 --> 00:17:43.340
dieses Jahr so ein bisschen

00:17:43.340 --> 00:17:45.700
sparsamer irgendwie unterwegs waren.

00:17:46.760 --> 00:17:47.620
Und dann

00:17:47.620 --> 00:17:49.480
dachten sie schon so, oje, oje, was machen wir denn jetzt?

00:17:50.020 --> 00:17:50.460
Und dann

00:17:50.460 --> 00:17:53.500
sind da aber andere in die Bresche

00:17:53.500 --> 00:17:55.460
gesprungen sozusagen und sie hatten dann halt

00:17:55.460 --> 00:17:57.660
dieses Jahr mehr zu tun, als sie normalerweise

00:17:57.660 --> 00:17:59.420
zu tun hatten und zwar mit

00:17:59.420 --> 00:18:01.660
mit zum Beispiel Schwimmbädern.

00:18:02.600 --> 00:18:04.040
Weil normalerweise

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

00:18:06.600 --> 00:18:08.080
Genau, die verkaufen ja ihren Kram

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

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

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

00:18:14.240 --> 00:18:15.060
Und tja, tada!

00:18:16.840 --> 00:18:18.220
Ja, Reservierungssysteme,

00:18:18.360 --> 00:18:19.960
auch das ist ein guter Markt in dieser

00:18:19.960 --> 00:18:21.460
Zeit. Ja, ja. Absolut.

00:18:23.720 --> 00:18:24.660
Also, ja.

00:18:25.620 --> 00:18:27.740
Auch alle Lieferdienste und so, das ist

00:18:27.740 --> 00:18:28.740
sicherlich dieses Jahr

00:18:28.740 --> 00:18:32.220
gut gelaufen, aber

00:18:32.220 --> 00:18:34.260
ja gut, es gibt immer Gewinner und Verlierer

00:18:34.260 --> 00:18:34.520
und

00:18:34.520 --> 00:18:57.740


00:19:04.520 --> 00:19:05.700
so ein bisschen experimentieren.

00:19:06.100 --> 00:19:08.600
Ja, ich kann dir da, ich als Betreiber des

00:19:08.600 --> 00:19:10.620
rasend

00:19:10.620 --> 00:19:12.680
erfolgreichen Spielmanns-Keks-Kanals

00:19:12.680 --> 00:19:13.780
natürlich gerne

00:19:13.780 --> 00:19:15.600
viele Hinweise geben.

00:19:17.540 --> 00:19:18.480
Wir haben auch noch

00:19:18.480 --> 00:19:20.300
ein Video in der Pipeline. Wir hatten nur bisher

00:19:20.300 --> 00:19:22.480
keinen Bock, das zu machen, weil einfach zu viel

00:19:22.480 --> 00:19:23.320
anderes Zeugs los war.

00:19:24.140 --> 00:19:24.940
Jetzt wieder Kekse.

00:19:25.160 --> 00:19:26.420
Mehr Kekse. Noch mehr Kekse.

00:19:26.720 --> 00:19:29.100
Ja, wir überlegen uns, wie man den

00:19:29.100 --> 00:19:31.320
Impfstoff wohl als Keks umsetzen kann.

00:19:31.400 --> 00:19:33.060
Wir hatten ja schon das Virus als

00:19:33.060 --> 00:19:34.120
Corona-Ausstecher.

00:19:34.520 --> 00:19:36.240
Dann hatten wir Antikörper

00:19:36.240 --> 00:19:38.460
in Keksform und jetzt

00:19:38.460 --> 00:19:40.060
überlegen wir uns vielleicht noch eine Impfung.

00:19:40.080 --> 00:19:42.300
Wie sieht der denn überhaupt aus? Wird der per Schluckimpfung

00:19:42.300 --> 00:19:44.240
verabreicht oder wird der gespritzt?

00:19:44.260 --> 00:19:45.880
Ne, die werden gespritzt.

00:19:45.960 --> 00:19:48.480
Wir hätten dann natürlich eine Schluckimpfung, selbstverständlich.

00:19:49.440 --> 00:19:50.380
In Keksform.

00:19:50.740 --> 00:19:52.320
Aber der Impfstoff selber ist

00:19:52.320 --> 00:19:54.340
die sind alle... Also es gibt verschiedene

00:19:54.340 --> 00:19:56.300
Impfstoffe. Die meisten sind in

00:19:56.300 --> 00:19:58.420
Spritzen. Es gibt tatsächlich eine,

00:19:58.740 --> 00:20:00.160
die in die Nase eingespritzt wird.

00:20:00.220 --> 00:20:01.220
Das ist die angenehmste.

00:20:02.040 --> 00:20:03.360
Die ist allerdings noch nicht

00:20:03.360 --> 00:20:04.400
durch Phase 3 durch.

00:20:04.520 --> 00:20:06.240
mit Nasellspray.

00:20:06.460 --> 00:20:07.400
Habt ihr das gelesen?

00:20:08.700 --> 00:20:10.400
Das fand ich super cool. Da gab es jetzt

00:20:10.400 --> 00:20:12.500
einen Artikel, auch von

00:20:12.500 --> 00:20:14.540
einem, der normalerweise sich eher mit Computerkram

00:20:14.540 --> 00:20:15.860
beschäftigt, vor DNS oder so.

00:20:16.480 --> 00:20:17.680
Oh ja, den habe ich gelesen.

00:20:17.680 --> 00:20:18.280
Den hast du gelesen?

00:20:18.520 --> 00:20:20.860
Ja, der war saukool.

00:20:20.960 --> 00:20:23.320
Der hatte den Impfstoff von BioNTech,

00:20:23.420 --> 00:20:25.640
Pfizer, den hat er halt sozusagen

00:20:25.640 --> 00:20:30.080
aus so einer Computerperspektive

00:20:30.080 --> 00:20:31.080
irgendwie mal

00:20:31.080 --> 00:20:31.980
darüber gesprochen,

00:20:32.100 --> 00:20:32.960
was das Ding so alles macht.

00:20:33.280 --> 00:20:34.500
Und das fand ich sauinteressant.

00:20:34.520 --> 00:20:34.520


00:20:34.520 --> 00:20:36.540
weil da waren echt einige tolle Tricks

00:20:36.540 --> 00:20:37.740
dabei, von denen ich gar nicht wusste, dass man

00:20:37.740 --> 00:20:40.640
Man muss dazu sagen, dass der ja veröffentlicht

00:20:40.640 --> 00:20:42.600
ist, der ist ja als Patent eingereicht

00:20:42.600 --> 00:20:44.000
und da muss er ja veröffentlicht sein

00:20:44.000 --> 00:20:46.440
das heißt der gesamte Quellcode

00:20:46.440 --> 00:20:48.300
um es mal so zu sagen, also das was dann tatsächlich

00:20:48.300 --> 00:20:49.280
als mRNA

00:20:49.280 --> 00:20:52.440
hergestellt wird, steht da einfach drin

00:20:52.440 --> 00:20:53.980
das ist eine Buchstabenfolge, das sind irgendwie

00:20:53.980 --> 00:20:56.680
Jochen, korrigier mich, 2270

00:20:56.680 --> 00:20:58.540
Zeichen oder sowas, also vergleichsweise klein

00:20:58.540 --> 00:21:00.280
Ja, ich weiß nicht mehr genau

00:21:00.280 --> 00:21:02.280
es ist irgendwie so halb so groß wie das Virus selber

00:21:02.280 --> 00:21:03.600
oder die, ja

00:21:03.600 --> 00:21:06.380
Genau und

00:21:06.380 --> 00:21:08.860
ja, da sind einige schöne Hacks drin

00:21:08.860 --> 00:21:10.780
auch einige schöne Sachen, die man so

00:21:10.780 --> 00:21:13.160
ja, als Computermensch

00:21:13.160 --> 00:21:15.080
durchaus versteht, warum manche Sachen so sind

00:21:15.080 --> 00:21:17.060
und warum manche Sachen nicht so sind, sehr sehr sehr schön

00:21:17.060 --> 00:21:19.080
gemacht und es ist auch

00:21:19.080 --> 00:21:20.780
erstaunlich wenig, also es ist auch einfach

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

00:21:23.140 --> 00:21:25.200
von diesen, ja ja

00:21:25.200 --> 00:21:27.280
der größte Teil von den Daten

00:21:27.280 --> 00:21:29.260
ist halt 1 zu 1 aus dem Virus kopiert

00:21:29.260 --> 00:21:29.720
quasi

00:21:29.720 --> 00:21:32.900
ja nicht 1 zu 1 Jochen, man hat

00:21:32.900 --> 00:21:34.780
gelesen. Ein paar Änderungen

00:21:34.780 --> 00:21:36.140
gemacht, ja. Aber also

00:21:36.140 --> 00:21:38.240
tatsächlich, was das Ding tut,

00:21:38.760 --> 00:21:40.620
ist also einmal RNA ist halt

00:21:40.620 --> 00:21:42.380
sozusagen

00:21:42.380 --> 00:21:44.900
in Computeranalogie übertragen

00:21:44.900 --> 00:21:46.580
halt sowas wie Hauptspeicher oder so. Es ist halt

00:21:46.580 --> 00:21:48.560
relativ flüchtig. Also es

00:21:48.560 --> 00:21:50.420
überlebt so an der Luft nicht lange

00:21:50.420 --> 00:21:52.500
und auch wenn man das irgendwo in

00:21:52.500 --> 00:21:53.920
Organismen... Da muss es ja auch gekühlt werden.

00:21:54.200 --> 00:21:56.580
Deswegen diese Kühlkette und so, das ist alles ein bisschen doof.

00:21:57.040 --> 00:21:58.500
Wenn man es in Organismen reinspritzt,

00:21:58.620 --> 00:21:59.920
dann normalerweise das Immunsystem

00:21:59.920 --> 00:22:02.420
wird da so leicht misstrauisch, wenn da irgendwie

00:22:02.420 --> 00:22:04.140
so RNA-Energien.

00:22:04.180 --> 00:22:06.600
Ja, auch Zellen nehmen den ja eigentlich normalerweise

00:22:06.600 --> 00:22:08.340
gar nicht an, die nehmen ja gar keine RNA-Affen aus.

00:22:08.680 --> 00:22:10.480
Ja, und

00:22:10.480 --> 00:22:12.480
aber da gibt es dann halt schon mal so ein,

00:22:12.820 --> 00:22:14.520
genau, aber es ist halt quasi der rohe

00:22:14.520 --> 00:22:16.160
Code, der halt dann irgendwie von den

00:22:16.160 --> 00:22:18.280
Ribosomen der Zelle halt irgendwie sozusagen

00:22:18.280 --> 00:22:20.380
in Anführungszeichen ausgeführt wird und

00:22:20.380 --> 00:22:21.140
der dann halt

00:22:21.140 --> 00:22:23.920
Proteine,

00:22:24.220 --> 00:22:26.360
der wird dann abgelesen und dann werden Proteine

00:22:26.360 --> 00:22:27.960
halt synthetisiert, so quasi von der,

00:22:28.740 --> 00:22:30.120
ja, und das, was

00:22:30.120 --> 00:22:31.660
dieses Ding macht, ist, dass

00:22:31.660 --> 00:22:31.660


00:22:31.660 --> 00:22:33.420
Spike-Protein von dem

00:22:33.420 --> 00:22:36.520
Virus zu erzeugen.

00:22:37.400 --> 00:22:37.900
Und zwar

00:22:37.900 --> 00:22:39.080
so ziemlich genau das Ding.

00:22:39.460 --> 00:22:41.500
Bis auf auch wieder ein paar kleine Details.

00:22:41.820 --> 00:22:43.400
Ja, damit es stabil wird.

00:22:43.540 --> 00:22:45.500
Genau, weil normalerweise rollt sich das Ding zusammen,

00:22:45.600 --> 00:22:47.480
faltet sich zusammen und dann ist es halt egal.

00:22:47.720 --> 00:22:48.720
Also das Virus

00:22:48.720 --> 00:22:51.340
entblößt dieses Spike-Protein auch erst

00:22:51.340 --> 00:22:53.040
so kurz vor der Infektion. Normalerweise

00:22:53.040 --> 00:22:54.900
kriegt das Immunsystem den Kram halt nie zu sehen.

00:22:55.580 --> 00:22:57.020
Und wenn man das Virus platt macht,

00:22:57.180 --> 00:22:59.060
also wie man das normalerweise mit Impfstoffen, also die

00:22:59.060 --> 00:23:00.900
simpelste Art, man schüttet irgendwie formal

00:23:00.900 --> 00:23:02.920
Dehyd drüber oder man macht das irgendwie

00:23:02.920 --> 00:23:05.060
heiß, dann ist das halt kein Virus mehr, sondern nur noch

00:23:05.060 --> 00:23:07.340
so Teile von einem Virus.

00:23:08.880 --> 00:23:09.240
Viruskröme.

00:23:10.220 --> 00:23:10.580
Und

00:23:10.580 --> 00:23:12.840
ja, das reicht ja manchmal auch schon,

00:23:12.900 --> 00:23:14.540
damit das Immunsystem dann so merkt, okay,

00:23:15.440 --> 00:23:17.020
das erkenne

00:23:17.020 --> 00:23:18.960
ich hier wieder, aber bei dem Virus

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

00:23:20.940 --> 00:23:22.900
das entscheidende Protein halt dann

00:23:22.900 --> 00:23:24.600
nicht mehr so in der Form da ist, wie es

00:23:24.600 --> 00:23:26.980
kaputt geht. Und dieses

00:23:26.980 --> 00:23:28.980
dieser Impfstoff

00:23:28.980 --> 00:23:34.260
erzeugt halt dieses Protein und zwar halt so, dass es sich nicht zusammenfaltet, sondern in der gleichen Form bleibt.

00:23:35.160 --> 00:23:38.700
Und dass das Immunsystem das Ding dann halt auch wieder erkennen kann.

00:23:38.780 --> 00:23:44.460
Das ist natürlich total super, weil, naja, also das sieht halt aus wie eine echte Infektion für das Immunsystem.

00:23:44.640 --> 00:23:47.460
Da kommt irgendwie so Zeug, so eine Spritze, also kommt halt irgendwie so Zeugs rein.

00:23:47.760 --> 00:23:50.960
Dann fangen Zellen plötzlich an, etwas zu produzieren, was sie normalerweise nicht produzieren.

00:23:51.440 --> 00:23:52.960
Und das ist alles höchst alarmierend.

00:23:52.960 --> 00:23:57.280
Und ja, das sieht alles sehr gefährlich aus, ist aber halt ungefährlich eigentlich,

00:23:57.280 --> 00:24:27.260
und Jochen unterhalten sich über die Programmiersprache Python

00:24:27.280 --> 00:24:28.520
und das war ja auch bei diesem Virus hier so, ja,

00:24:29.040 --> 00:24:30.900
dass die nach zwei Tagen diese Sequenzen,

00:24:31.000 --> 00:24:32.420
die sie da jetzt alle getestet hatten,

00:24:33.160 --> 00:24:34.920
hatten. Die haben diese

00:24:34.920 --> 00:24:36.700
Virussequenz gekriegt aus China,

00:24:36.900 --> 00:24:38.860
das war auch eine beeindruckende Geschichte.

00:24:40.060 --> 00:24:41.080
War eine Handvoll Männchen nur, oder?

00:24:41.100 --> 00:24:43.460
Das waren unter zehn, die da in dem Labor saßen und das gemacht haben, oder?

00:24:44.220 --> 00:24:45.020
Ja, genau, das waren

00:24:45.020 --> 00:24:46.840
also im Wesentlichen halt die Leute von Biontech

00:24:46.840 --> 00:24:49.000
und die haben das übers Wochenende gemacht und dann hatten sie

00:24:49.000 --> 00:24:50.840
diese Sequenzen und der Rest der Zeit ist jetzt mit

00:24:50.840 --> 00:24:52.400
Testen und Herstellen verbraucht worden.

00:24:53.140 --> 00:24:54.960
Und das ist schon beeindruckend,

00:24:54.960 --> 00:24:56.760
weil wenn diese Technik so funktioniert, dann

00:24:56.760 --> 00:24:56.760


00:24:56.780 --> 00:24:58.760
hat man so eine ganze Klasse von

00:24:58.760 --> 00:25:02.700
Impfstoffen, die man

00:25:02.700 --> 00:25:04.820
quasi on demand herstellen kann und das ist

00:25:04.820 --> 00:25:05.080
schon

00:25:05.080 --> 00:25:08.520
eine große Sache, wenn

00:25:08.520 --> 00:25:10.660
ein neueres Virus auftritt und du kannst

00:25:10.660 --> 00:25:11.920
einfach direkt anfangen,

00:25:12.080 --> 00:25:15.180
den Impfstoff herzustellen.

00:25:15.180 --> 00:25:16.820
Da wird

00:25:16.820 --> 00:25:17.820
sich die Sache ganz schön ändern.

00:25:18.080 --> 00:25:20.680
Was ich auch toll fand, das wusste ich auch nicht,

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

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

00:25:24.700 --> 00:25:26.700
tatsächlich so eine Art 3D-Drucker

00:25:26.700 --> 00:25:26.700


00:25:27.700 --> 00:25:28.900
für RNA.

00:25:29.080 --> 00:25:30.060
Kannst du einfach kaufen.

00:25:30.580 --> 00:25:32.600
Dann nimmst du diese Folge, die du

00:25:32.600 --> 00:25:34.700
aus dem Internet aus einer

00:25:35.660 --> 00:25:36.380
zwielichtigen Quelle

00:25:36.380 --> 00:25:38.660
kopiert, suchst es rein

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

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

00:25:41.640 --> 00:25:43.440
30-Mikrogramm-Dosis.

00:25:44.860 --> 00:25:46.720
Gut, ist jetzt auch nicht so einfach zu handeln,

00:25:46.880 --> 00:25:48.660
aber dann kann man damit

00:25:48.660 --> 00:25:50.720
lustige Sachen machen und das in Muskel spritzen

00:25:50.720 --> 00:25:52.460
und dann programmiert das

00:25:52.460 --> 00:25:54.700
Zellen. Das ist schon

00:25:54.900 --> 00:25:55.300
faszinierend.

00:25:55.300 --> 00:25:58.000
und bestimmt können wir irgendwann alle ewig

00:25:58.000 --> 00:25:58.360
leben.

00:25:59.580 --> 00:26:01.720
Das gibt es übrigens auch als

00:26:01.720 --> 00:26:03.740
Service. Man kann auch solche Sequenzen

00:26:03.740 --> 00:26:05.700
einfach machen und die dann irgendwo hinschicken.

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

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

00:26:10.300 --> 00:26:11.720
Da müsst ihr vielleicht mal eine Episode

00:26:11.720 --> 00:26:13.860
mit Simon machen. Der kann euch

00:26:13.860 --> 00:26:15.400
da Geschichten erzählen.

00:26:16.540 --> 00:26:18.120
Die euch sehr beeindrucken

00:26:18.120 --> 00:26:19.620
werden. Es gibt so Gen-Bibliotheken,

00:26:19.700 --> 00:26:21.400
da kann man einfach Samples bestellen.

00:26:22.500 --> 00:26:23.760
Die meisten dieser

00:26:53.760 --> 00:26:56.860
durch ein Tau.

00:26:56.860 --> 00:26:57.820
Durch ein Tau, ja, ja.

00:26:59.440 --> 00:26:59.820
Und

00:26:59.820 --> 00:27:03.060
normalerweise eben, das Immunsystem

00:27:03.060 --> 00:27:04.840
wird halt, weil normalerweise funktioniert das mit der

00:27:04.840 --> 00:27:06.880
RNA nicht so gut, wenn man die einfach so nehmen

00:27:06.880 --> 00:27:08.700
würde und irgendwo reinspritzt, weil das Immunsystem

00:27:08.700 --> 00:27:10.780
das verdächtig findet

00:27:10.780 --> 00:27:11.880
und die sofort kaputt macht und so.

00:27:12.720 --> 00:27:14.900
Aber wenn man das U durch ein Tau ersetzt,

00:27:16.080 --> 00:27:16.940
ist diese

00:27:16.940 --> 00:27:18.600
RNA dem Immunsystem einfach

00:27:18.600 --> 00:27:20.980
vollkommen egal. Das reagiert da gar nicht mehr drauf.

00:27:22.540 --> 00:27:22.560
Und

00:27:22.560 --> 00:27:24.500
und das ist ja offenbar

00:27:24.500 --> 00:27:26.040
keine RNA. Ja, ist ja offenbar

00:27:26.040 --> 00:27:27.980
irgendwas anderes. Ist ja irgendwie

00:27:27.980 --> 00:27:30.000
nicht wichtig. Lustigerweise

00:27:30.000 --> 00:27:32.340
in der Zelle

00:27:32.340 --> 00:27:34.340
und in den Reversum macht es halt genau das gleiche

00:27:34.340 --> 00:27:35.980
wie das U. Das heißt,

00:27:36.740 --> 00:27:38.480
es funktioniert halt genauso. Also eigentlich

00:27:38.480 --> 00:27:40.240
sollte es dem Umsozim vielleicht nicht egal sein.

00:27:42.100 --> 00:27:44.420
Da sind sehr viele sehr schöne Hacks drin.

00:27:44.600 --> 00:27:46.040
Ja, und auf der anderen Seite muss man

00:27:46.040 --> 00:27:48.320
sich auch keine Sorgen machen, dass

00:27:48.320 --> 00:27:50.260
jetzt irgendwie ein Virus diesen Trick kopiert und

00:27:50.260 --> 00:27:52.400
dann damit irgendwie unter Umständen

00:27:52.400 --> 00:27:53.940
sehr, sehr böse werden kann, weil man

00:27:53.940 --> 00:27:56.400
dieses Ding kriegt man halt

00:27:56.400 --> 00:27:58.200
nicht in einem biologischen Prozess

00:27:58.200 --> 00:28:00.000
zivilisiert, sondern das geht nur

00:28:00.000 --> 00:28:02.100
mit Technik und so. Das heißt,

00:28:02.900 --> 00:28:03.400
ja, es kann,

00:28:03.860 --> 00:28:05.900
diesen Trick kann das Virus

00:28:05.900 --> 00:28:08.220
sich dem Impfstoff nicht abgucken. Also es ist schon

00:28:08.220 --> 00:28:10.000
toll, ja.

00:28:10.320 --> 00:28:11.960
Hat viel Spaß gemacht, das zu lesen.

00:28:12.260 --> 00:28:14.200
Ja, also würdest du das jetzt als Win zählen oder

00:28:14.200 --> 00:28:16.260
als Fail? Stimmt, das Ding ist eigentlich tatsächlich

00:28:16.260 --> 00:28:18.340
ein großer Win, ja. Das würde ich

00:28:18.340 --> 00:28:18.780
auch sagen.

00:28:20.740 --> 00:28:22.260
Wie gesagt, das wird in Zukunft eine

00:28:52.260 --> 00:28:56.800
in den USA eben 600.000 Leute schon geimpft, mindestens jetzt, wahrscheinlich schon mehr.

00:28:57.580 --> 00:29:01.320
Und tatsächlich gab es irgendwie praktisch nichts an Nebenwirkungen.

00:29:01.780 --> 00:29:06.740
Dann gab es, ich weiß nicht, wann war das, vor ein paar Tagen über Twitter, oh mein Gott.

00:29:07.120 --> 00:29:10.940
Ich frage mich immer, das hört man dann auch so von Leuten, impfen, ja oder nein,

00:29:11.080 --> 00:29:12.300
oder gibt es irgendwie Allergien?

00:29:13.320 --> 00:29:15.720
Ich frage mich immer, wo denn solche Informationen herkommen.

00:29:15.800 --> 00:29:17.300
Wenn die dann Autisten...

00:29:17.300 --> 00:29:19.440
und

00:29:19.440 --> 00:29:21.660
jetzt auf Twitter

00:29:21.660 --> 00:29:23.420
habe ich dann tatsächlich mal eine von den Quellen

00:29:23.420 --> 00:29:25.080
für so einen Quatsch irgendwie

00:29:25.080 --> 00:29:26.880
gesehen, das war halt diese

00:29:26.880 --> 00:29:29.460
Hahnemann-Gesellschaft, also die Homöopathie-Leute

00:29:29.460 --> 00:29:31.300
hatten auf ihrer Webseite eine ganze Reihe von

00:29:31.300 --> 00:29:32.920
irgendwie echt

00:29:32.920 --> 00:29:34.980
Hahnemüchen-Behauptungen

00:29:34.980 --> 00:29:36.740
unter anderem eben auch, dass das

00:29:36.740 --> 00:29:39.520
Impfstoffallergien auslösen würde, was totaler Quatsch ist

00:29:39.520 --> 00:29:41.000
also und dann

00:29:41.000 --> 00:29:42.800
hatte irgendjemand die wohl dann auch

00:29:42.800 --> 00:29:44.960
zur Rede gestellt und meinte so

00:29:44.960 --> 00:29:46.960
ey, das ist ja schon ganz schön gefährlich, was ihr hier schreibt

00:29:54.982 --> 00:30:03.243
und ja, haben dann nochmal Leute reingeguckt, ja, das war aber die Kontrollgruppe, die hatten das, die hatten gar nicht den Impfstoff gekriegt, also das ist echt.

00:30:03.442 --> 00:30:08.602
Ja, aber, also ich meine, das ist ja noch schlimmer, wenn dieser Impfstoff bei den Leuten Allergien auslöst, die den gar nicht kriegen.

00:30:08.743 --> 00:30:10.763
Also Jochen, das ist ja jetzt mal ganz ehrlich, das ist ja noch gefährlicher.

00:30:10.982 --> 00:30:11.102
Magie.

00:30:11.543 --> 00:30:12.562
Genau, gerade zum Beispiel.

00:30:13.003 --> 00:30:13.362
Magie.

00:30:13.562 --> 00:30:15.543
Es ist schwer dagegen zu argumentieren, das stimmt schon.

00:30:15.543 --> 00:30:18.503
Ja, das ist so ein bisschen wie diese

00:30:18.503 --> 00:30:21.143
Leute, denen man dann

00:30:21.143 --> 00:30:23.023
sagen muss, ja, dass jetzt überall die

00:30:23.023 --> 00:30:25.043
Überwachungskameras sind, mit denen Bill Gates die Welt

00:30:25.043 --> 00:30:26.263
übernehmen möchte und der einzige

00:30:26.263 --> 00:30:28.962
Art, wie man da drumherum kommt, ist,

00:30:29.082 --> 00:30:30.743
indem er seinen Mund und seine Nase bedeckt

00:30:30.743 --> 00:30:31.202
und

00:30:31.202 --> 00:30:34.543
die Sorte ist das halt

00:30:34.543 --> 00:30:37.003
Wenn die Kontrollgruppe die Allergien kriegt,

00:30:37.062 --> 00:30:38.883
dann müsste man eigentlich möglichst schnell den

00:30:38.883 --> 00:30:40.802
Impfstoff nehmen, damit man diese Allergien nicht bekommt

00:30:40.802 --> 00:30:42.743
Ja, aber ich

00:30:42.743 --> 00:30:45.023
verstehe den Ansatz, aber mich ärgert

00:30:45.023 --> 00:30:46.982
so ein bisschen das Problem, ich habe das Gefühl, dass es

00:30:46.982 --> 00:30:48.942
langfristig, dass man das nur verlieren kann, weil

00:30:48.942 --> 00:30:50.842
das Problem ist, wenn man etwas tut, was

00:30:50.842 --> 00:30:52.722
funktioniert und also

00:30:52.722 --> 00:30:54.903
sagen wir mal so, wenn man das halt quasi

00:30:54.903 --> 00:30:56.462
nur so verpacken muss, dass es halt

00:30:56.462 --> 00:30:58.202
dann akzeptiert wird

00:30:58.202 --> 00:31:00.442
und es nicht darauf ankommt, jetzt

00:31:00.442 --> 00:31:02.763
ob die Begründung dafür richtig oder falsch ist oder überhaupt

00:31:02.763 --> 00:31:04.682
irgendwas richtig oder falsch ist oder alles irgendwie nur

00:31:04.682 --> 00:31:06.842
in einer, keine Ahnung, in ihrer Scheinwelt

00:31:06.842 --> 00:31:08.923
leben, dann hat man das Problem, dass

00:31:08.923 --> 00:31:10.923
die Leute, die halt sich nur um die Verpackung

00:31:10.923 --> 00:31:12.822
Sorgen machen müssen, weil sie halt einfach gar keinen

00:31:12.822 --> 00:31:14.923
Inhalt haben, haben halt einen Vorteil und zwar

00:31:14.923 --> 00:31:16.942
einen strukturellen Vorteil.

00:31:17.702 --> 00:31:19.243
Und man selber muss ja auch noch dafür sorgen,

00:31:19.342 --> 00:31:21.042
dass es funktioniert. Das heißt, man kann eigentlich nur

00:31:21.042 --> 00:31:22.222
verlieren. Das ist nicht gut.

00:31:22.923 --> 00:31:24.942
Ja, auch nicht. Ich sehe da eine

00:31:24.942 --> 00:31:26.982
große Desillusionierung auf dich zu kommen.

00:31:27.143 --> 00:31:29.023
Ich möchte dir jetzt nicht sofort um die Ohren hauen,

00:31:29.023 --> 00:31:30.802
aber ich befürchte,

00:31:31.383 --> 00:31:33.003
wir müssen da mal

00:31:33.003 --> 00:31:34.842
eine schlimmere Episode

00:31:34.842 --> 00:31:35.503
drüber machen.

00:31:36.562 --> 00:31:40.942
Ja, okay.

00:31:41.102 --> 00:31:42.942
Aber das ist ja alles schon

00:31:42.942 --> 00:31:44.643
eine sehr schöne Überleitung. Lass uns doch mal über Sachen,

00:31:44.643 --> 00:31:46.403
Themen sprechen, die wir so

00:31:46.403 --> 00:31:48.682
wieder erfahren sind.

00:31:49.643 --> 00:31:50.942
Ich möchte endlich über mich sprechen.

00:31:50.962 --> 00:31:51.562
Nein, nicht.

00:31:51.562 --> 00:31:52.482
Wie kannst du dich in der Jugend

00:31:52.482 --> 00:31:53.003
identifizieren?

00:31:56.743 --> 00:31:57.503
Ja, dann

00:31:57.503 --> 00:31:59.362
genau. Was haben wir denn so an

00:31:59.362 --> 00:32:01.682
Dingen, die gut oder schlecht gelaufen sind?

00:32:02.462 --> 00:32:03.423
Ich habe eine

00:32:03.423 --> 00:32:05.263
schöne Anekdote von ganz, ganz, ganz früher.

00:32:05.423 --> 00:32:07.342
Ich habe früher ganz viel mit

00:32:07.342 --> 00:32:08.962
Oracle-Datenbanken gearbeitet. Habt ihr schon mal

00:32:08.962 --> 00:32:11.362
die Freude gehabt, mit

00:32:11.362 --> 00:32:13.263
Oracle-Datenbanken arbeiten zu dürfen?

00:32:13.702 --> 00:32:14.462
Ja. Nö.

00:32:14.643 --> 00:32:17.182
Ja, ich schätze mal Jochen

00:32:17.182 --> 00:32:19.163
der Grund war bei dir der gleiche

00:32:19.163 --> 00:32:19.682
wie bei mir

00:32:19.682 --> 00:32:21.743
Wir haben das halt

00:32:21.743 --> 00:32:24.962
Naja, das war also tatsächlich

00:32:24.962 --> 00:32:27.123
web.de lief

00:32:27.123 --> 00:32:28.423
zum großen Teil, also

00:32:28.423 --> 00:32:30.042
sehr früh, also viel mehr lief halt

00:32:30.042 --> 00:32:32.842
auf Oracle quasi, weiß nicht ob das noch immer noch so ist

00:32:32.842 --> 00:32:34.182
aber vor langer Zeit war das so

00:32:34.182 --> 00:32:36.962
Das war bei den 90ern noch, da gab es mal so Oracle-Kampf

00:32:36.962 --> 00:32:38.423
Na, in den Nullern auch noch

00:32:38.423 --> 00:32:41.042
Ja, bei mir war das auch in den Nullern

00:32:41.042 --> 00:32:45.883
Ja, bei uns war

00:32:45.883 --> 00:32:48.062
im Wesentlichen die Begründung, dass der Hersteller

00:32:48.062 --> 00:32:49.962
das Produkt, das wir vertrieben haben

00:32:49.962 --> 00:32:52.163
das vorgegeben hat, weil andere Datenbanken

00:32:52.163 --> 00:32:53.042
sind nicht schnell genug

00:32:53.042 --> 00:32:56.222
Was damals schon eine sehr interessante

00:32:56.222 --> 00:32:57.903
Auffassung

00:32:57.903 --> 00:32:58.523
Behauptung war

00:32:58.523 --> 00:33:01.702
Wir haben es auch nicht näher untersucht

00:33:01.702 --> 00:33:02.743
Vielleicht war da Magie im Spiel

00:33:02.743 --> 00:33:06.023
Ich schätze, dass da so

00:33:06.023 --> 00:33:08.322
grüne Papierscheinchen

00:33:08.322 --> 00:33:09.222
Magie im Spiel

00:33:09.222 --> 00:33:10.783
gewesen sein mag

00:33:10.783 --> 00:33:11.842
Diese Magie schon wieder.

00:33:12.663 --> 00:33:15.023
Ja, kennt ihr den Softwarehersteller

00:33:15.023 --> 00:33:16.302
CA?

00:33:17.702 --> 00:33:19.243
Die sind früher mal Computer Associates.

00:33:21.542 --> 00:33:23.383
In der Enterprise-Welt

00:33:23.383 --> 00:33:24.322
ungeheuer groß.

00:33:24.842 --> 00:33:26.342
Sind inzwischen auch gekauft von

00:33:26.342 --> 00:33:28.663
irgendjemandem. Ich weiß gar nicht von wem.

00:33:29.582 --> 00:33:30.503
Als wir damals,

00:33:31.163 --> 00:33:32.743
wir waren da eben Partner von denen,

00:33:33.442 --> 00:33:35.042
da haben die 15 Milliarden Dollar Umsatz

00:33:35.042 --> 00:33:36.862
im Jahr gemacht. Aber außerhalb der

00:33:36.862 --> 00:33:39.082
Enterprise-Industrie kannte

00:33:39.082 --> 00:33:40.542
die und kennt die auch quasi niemand.

00:33:40.783 --> 00:33:42.942
So, der freundliche

00:33:42.942 --> 00:33:44.903
unbekannte Riese. Jedenfalls mussten wir

00:33:44.903 --> 00:33:46.562
da Oracle-Datenbanken verwenden und

00:33:46.562 --> 00:33:48.883
es gibt ja dieses schöne

00:33:48.883 --> 00:33:50.243
Statement delete from für

00:33:50.243 --> 00:33:52.862
SQL-Datenbanken. Habt ihr sicherlich auch schon

00:33:52.862 --> 00:33:54.403
mal verwendet. Delete star from

00:33:54.403 --> 00:33:55.302
du sagst.

00:33:56.482 --> 00:33:58.623
Nee, delete from heißt der Befehl einfach nur, weil

00:33:58.623 --> 00:34:00.663
du da erst dann angibst

00:34:00.663 --> 00:34:02.903
mit einer where-Klausel, was alles gelöscht werden

00:34:02.903 --> 00:34:04.923
soll. Also delete

00:34:04.923 --> 00:34:06.903
from, dann gibst du an, die Tabelle aus der gelöscht werden

00:34:06.903 --> 00:34:08.943
soll und dann mit einer where-Bedingung, welche Zeilen gelöscht

00:34:08.943 --> 00:34:10.762
werden sollen. Und

00:34:10.762 --> 00:34:18.042
und das hat das Potenzial, sehr viele Zeilen zu löschen, weil wenn du dieses Where vergisst oder wenn du dazwischen einen Kommentar machst,

00:34:18.943 --> 00:34:22.542
dann hast du ein DeleteFrom-Tabelle und dann wird diese gesamte Tabelle gelöscht.

00:34:24.482 --> 00:34:28.903
Und das haben manche von uns Entwicklern auf die harte Tour rausgefunden, dass das so ist.

00:34:29.022 --> 00:34:29.562
Manche von uns.

00:34:29.562 --> 00:34:36.643
Weil wir halt tatsächlich einfach mal, ich will jetzt keine Namen nennen, ich will jetzt auch niemanden hier persönlich an den Pranger stellen.

00:34:38.022 --> 00:34:38.423
DeleteFrom.

00:34:38.703 --> 00:34:39.562
Wie wäre das mit der Barriere?

00:34:39.562 --> 00:34:40.363
Nur DeleteFrom.

00:34:40.762 --> 00:34:41.522
Tabellenname

00:34:41.522 --> 00:34:44.863
dann löscht es einfach alle Zeilen

00:34:44.863 --> 00:34:45.663
aus einer Tabelle aus.

00:34:47.663 --> 00:34:48.883
Und das ist ja sehr

00:34:48.883 --> 00:34:50.102
ungünstig, wenn das mal passiert.

00:34:51.323 --> 00:34:51.743
Je nachdem.

00:34:53.802 --> 00:34:54.782
Manchmal möchte man das auch.

00:34:54.843 --> 00:34:56.623
Manchmal möchte man alle Zeilen einer Tabelle löschen.

00:34:56.823 --> 00:34:58.923
Insbesondere dann, wenn man gerade mit der Testdatenbank

00:34:58.923 --> 00:34:59.663
verbunden ist

00:34:59.663 --> 00:35:02.862
und die mal resetten möchte

00:35:02.862 --> 00:35:04.102
und einfach mal alles löschen möchte.

00:35:05.883 --> 00:35:06.982
Da ist jetzt schon der erste

00:35:06.982 --> 00:35:08.883
Fail. Das passiert nämlich manchmal, dass man

00:35:08.883 --> 00:35:11.383
nicht mit der Testdatenbank verbunden ist,

00:35:12.223 --> 00:35:13.602
sondern mit der Produktivdatenbank.

00:35:15.143 --> 00:35:17.502
Aber zum Glück, und das ist was sehr Interessantes,

00:35:17.963 --> 00:35:22.002
wir haben dann gemerkt, dass dieser Befehl sehr, sehr langsam ist.

00:35:23.123 --> 00:35:25.183
So ein DeleteFrom macht ja eigentlich nicht viel,

00:35:25.562 --> 00:35:26.982
das löscht halt die Tabelle.

00:35:27.102 --> 00:35:29.123
Und das müsste eigentlich so im Handumdrehen gehen.

00:35:30.782 --> 00:35:32.183
Aber dieser Befehl ist sehr langsam,

00:35:32.683 --> 00:35:35.143
weil der löscht die Tabellenzeilen nicht einfach nur,

00:35:35.143 --> 00:35:37.243
sondern der verschiebt die ins Undo-Log.

00:35:38.883 --> 00:35:44.502
und tatsächlich hat Oracle, anders als andere Datenbanksysteme, einen Papierkorb und dieser Papierkorb ist das Undo-Log.

00:35:45.042 --> 00:35:49.082
Das heißt, wenn du ein Delete-From gemacht hast, kannst du die Zeilen wieder retten,

00:35:50.002 --> 00:35:52.522
wenn du rechtzeitig zu deinem Systemadministrator gehst und sagst,

00:35:52.623 --> 00:35:57.383
ich hoffe, ihr habt das Undo-Log noch nicht gelöscht oder geleert oder überschrieben und dann kriegst du die Zahlen wieder.

00:36:00.022 --> 00:36:03.883
Jetzt ist es so, wenn das passiert, dann ist das sehr langsam.

00:36:03.883 --> 00:36:07.923
Gerade wenn man eine Tabelle löscht, wo eine Milliarde Zeilen drin sind, dann ist das halt sehr langsam.

00:36:08.883 --> 00:36:10.342
und weil das zu langsam ist,

00:36:11.223 --> 00:36:13.002
gibt es bei Oracle einen speziellen Befehl,

00:36:13.082 --> 00:36:14.383
der heißt truncate table.

00:36:16.143 --> 00:36:17.042
Der macht das,

00:36:17.262 --> 00:36:18.762
was normalerweise ein Delete From

00:36:18.762 --> 00:36:20.643
ohne Bedingung macht.

00:36:21.082 --> 00:36:22.443
Der löscht alle Zeilen aus der Tabelle

00:36:22.443 --> 00:36:24.542
und zwar schnell, ohne die

00:36:24.542 --> 00:36:25.102
ins Undo Log

00:36:25.102 --> 00:36:28.342
zu tun. Und ihr könnt

00:36:28.342 --> 00:36:30.743
euch denken, wozu das geführt hat

00:36:30.743 --> 00:36:31.903
und zwar Delete From.

00:36:31.903 --> 00:36:33.923
Jeder Entwickler in der Abteilung

00:36:33.923 --> 00:36:35.943
war dieses Delete From zu langsam.

00:36:36.743 --> 00:36:37.923
Wir sind einfach alle

00:36:37.923 --> 00:36:38.982
auf Truncate Table

00:36:38.982 --> 00:36:41.963
übergegangen, was dann

00:36:41.963 --> 00:36:43.822
so den ganzen Sinn dieses Undo-Logs

00:36:43.822 --> 00:36:45.923
ein kleines bisschen kaputt gemacht hat, als der Erste halt

00:36:45.923 --> 00:36:48.322
tatsächlich in der Produktionsdatenbank

00:36:48.322 --> 00:36:50.143
ein Truncate Table gemacht hat.

00:36:50.522 --> 00:36:51.943
Nicht nur ein Delete-From, sondern

00:36:51.943 --> 00:36:54.102
ein Truncate Table und einfach mal

00:36:54.102 --> 00:36:56.243
eine von den Projektdaten

00:36:56.243 --> 00:36:57.562
Tabellen gewischt hat.

00:36:57.943 --> 00:36:59.862
Das war ein

00:36:59.862 --> 00:37:00.842
nicht so cooler Tag.

00:37:02.963 --> 00:37:03.923
Ja, ich würde sagen,

00:37:04.282 --> 00:37:05.203
dann haben wir den Stecker gezogen.

00:37:06.423 --> 00:37:07.623
Ja, das war auch die Firma,

00:37:07.623 --> 00:37:09.243
wo sie, damals hatten wir noch Subversion

00:37:09.243 --> 00:37:13.542
wo das Subversion auf einem Raid lag und eine von den

00:37:13.542 --> 00:37:15.502
Festplatten kaputt gegangen ist und dann der

00:37:15.502 --> 00:37:17.502
Hersteller gekommen ist und die falsche Festplatte

00:37:17.502 --> 00:37:18.342
ausgetauscht hat

00:37:18.342 --> 00:37:23.042
Die eine hat auch die Dreckpaste recht entsorgt

00:37:23.042 --> 00:37:25.423
Also wir hatten

00:37:25.423 --> 00:37:26.943
auf jeden Fall ungefähr eine Woche an

00:37:26.943 --> 00:37:29.322
Sachen verloren, die einfach dann nicht mehr da waren

00:37:29.322 --> 00:37:31.322
Und Subversion ist ja auch nicht einfach so, dass du wieder

00:37:31.322 --> 00:37:32.602
pushen kannst, ist ja nicht wie

00:37:32.602 --> 00:37:35.262
heutzutage, wo jeder eine Kopie hat, sondern Subversion ist

00:37:35.262 --> 00:37:37.262
dann halt einfach erstmal komplett kaputt

00:37:37.262 --> 00:37:42.102
Ja, ich erinnere mich da auch.

00:37:42.403 --> 00:37:44.862
Schön professionelle Zeiten damals.

00:37:46.163 --> 00:37:47.782
Da hat wohl einer keine Backups gehabt.

00:37:49.623 --> 00:37:50.562
Ja, wir hatten ja ein RAID.

00:37:53.602 --> 00:37:53.982
Ja, ja.

00:37:54.062 --> 00:37:54.443
Brauchst du ja nicht.

00:37:54.943 --> 00:37:56.262
Habe ich gar nicht vor so langer Zeit gemacht.

00:37:56.383 --> 00:37:57.203
Ich glaube, das ist ein paar Wochen her.

00:37:57.582 --> 00:38:01.123
Reset Schema in einem Projekt in der Deploy-Chain.

00:38:02.562 --> 00:38:04.782
Und dann vergessen, das dann wieder aufzuspielen.

00:38:05.042 --> 00:38:06.982
Du hast es gleich direkt automatisiert gemacht.

00:38:07.262 --> 00:38:09.062
Das ist doch, würde ich sagen,

00:38:09.102 --> 00:38:10.923
sehr modern. Du hast nicht nur die Datenbank gelöscht,

00:38:11.022 --> 00:38:12.943
sondern du hast sie gleich automatisiert

00:38:12.943 --> 00:38:14.643
und mit Tests gelöscht.

00:38:14.643 --> 00:38:14.903
Ja.

00:38:16.183 --> 00:38:17.663
Die hätte man wahrscheinlich noch wieder herstellen können.

00:38:19.482 --> 00:38:20.723
War nicht so schlimm,

00:38:20.982 --> 00:38:22.602
eigentlich, weil das Projekt liegt noch nicht so lange.

00:38:24.082 --> 00:38:24.703
Ja, so

00:38:24.703 --> 00:38:26.002
einen ähnlichen Fall habe ich mal,

00:38:26.203 --> 00:38:28.362
habe ich auch mal produziert,

00:38:28.903 --> 00:38:30.123
allerdings, was war eher so ein,

00:38:30.462 --> 00:38:32.102
Datenbanken kann man natürlich löschen,

00:38:32.302 --> 00:38:34.643
das ist eine Möglichkeit, sie unverfügbar

00:38:34.643 --> 00:38:36.542
zu machen. Eine andere elegante

00:38:36.542 --> 00:38:38.002
Möglichkeit, Datenbanken

00:38:38.002 --> 00:38:42.562
von der Verfügbarkeit zu entfernen,

00:38:42.683 --> 00:38:44.102
ist halt, sie einfach auszuschalten.

00:38:44.462 --> 00:38:46.143
Und normalerweise merkt man das halt auch immer sofort,

00:38:46.423 --> 00:38:47.703
wenn eine Datenbank weg ist.

00:38:48.383 --> 00:38:49.362
Manchen Datenbanken,

00:38:50.362 --> 00:38:52.362
da ist das Caching so advanced, dass man das

00:38:52.362 --> 00:38:54.322
nicht sofort merkt. Zum Beispiel bei

00:38:54.322 --> 00:38:54.643
DNS.

00:38:56.462 --> 00:38:58.462
Oh, DNS ist auch generell ein sehr schönes

00:38:58.462 --> 00:39:00.203
Thema. Und genau,

00:39:00.342 --> 00:39:02.423
wenn man so den Primary DNS-Server

00:39:02.423 --> 00:39:04.223
ausschaltet, einfach weil man das irgendwie

00:39:04.223 --> 00:39:06.462
sich verguckt hat und das falsche

00:39:06.462 --> 00:39:08.542
kann auch schon mal sein, dass

00:39:08.542 --> 00:39:11.002
man das halt nicht sofort merkt, weil

00:39:11.002 --> 00:39:13.163
naja, das meiste ist ja gecached, das funktioniert einfach

00:39:13.163 --> 00:39:15.062
alles weiter. Manche kriegen halt so

00:39:15.062 --> 00:39:17.123
seltsame Failermeldungen, aber manchmal, naja, das ist halt

00:39:17.123 --> 00:39:19.183
so, Computer, manchmal funktionieren Dinge nicht so

00:39:19.183 --> 00:39:21.002
richtig. Ja, das überprüft

00:39:21.002 --> 00:39:22.763
deine Netzwerkverbindung. Und dann

00:39:22.763 --> 00:39:24.842
wird es halt nur irgendwann dann

00:39:24.842 --> 00:39:27.062
komisch, wenn dann halt der Traffic immer weiter runter geht

00:39:27.062 --> 00:39:29.143
und man weiß nicht so recht, warum. Und dann denkt man sich so

00:39:29.143 --> 00:39:31.223
hmm, was ist denn heute

00:39:31.223 --> 00:39:32.982
für ein Datum? Ist da irgendwie

00:39:32.982 --> 00:39:34.522
Weihnachten gerade oder

00:39:34.522 --> 00:39:36.302
Fußball-Weltmeisterschaft

00:39:36.302 --> 00:39:37.743
oder wenn es das nicht ist,

00:39:38.723 --> 00:39:40.502
okay, das sieht jetzt aber schon

00:39:40.502 --> 00:39:42.703
komisch aus. Aber das Problem

00:39:42.703 --> 00:39:44.562
ist, wenn man es dann bemerkt, ist es halt schon zu spät.

00:39:45.082 --> 00:39:46.522
Weil dann haben nämlich auch alle...

00:39:46.522 --> 00:39:47.862
Ja, und dann hast du auch die Cache-Zeiten

00:39:47.862 --> 00:39:49.943
beim Hochfahren auch wieder.

00:39:50.163 --> 00:39:52.383
Aber da hast du auch keine halben Sachen gemacht, wenn du direkt den Primary

00:39:52.383 --> 00:39:52.822
DN ist.

00:39:53.223 --> 00:39:56.443
Ja, das war so bitter,

00:39:56.542 --> 00:39:58.403
dass dann auch tatsächlich jemand hingegangen ist.

00:39:59.123 --> 00:40:00.082
Also da musste

00:40:00.082 --> 00:40:02.342
tatsächlich jemand von Hand

00:40:02.342 --> 00:40:04.462
im DE so ein Pfeil was fixen.

00:40:04.522 --> 00:40:06.842
so mit einem

00:40:06.842 --> 00:40:08.623
VI auf einem, weiß ich nicht,

00:40:08.703 --> 00:40:09.802
mehrere hundert Megabyte großen Ding.

00:40:09.822 --> 00:40:11.042
Du bist schon länger im Business als wir.

00:40:14.703 --> 00:40:16.643
Ich weiß nicht, wie oft sowas

00:40:16.643 --> 00:40:18.163
nötig ist, aber...

00:40:18.163 --> 00:40:20.443
Wie lange hat das gedauert, bis das wieder verfügbar war?

00:40:21.102 --> 00:40:22.443
Ja, so ein paar Stunden hat das schon

00:40:22.443 --> 00:40:24.663
irgendwie Probleme gemacht. Bis es aufgefallen ist?

00:40:25.002 --> 00:40:26.263
Es hat ein paar Stunden gedauert,

00:40:26.342 --> 00:40:28.623
ich weiß nicht, ob es ein paar Stunden waren, ich weiß nicht genau, wie lange es gedauert hat,

00:40:28.703 --> 00:40:30.862
aber es war eine Zeit lang, bis es aufgefallen ist

00:40:30.862 --> 00:40:32.842
und dann hat es nochmal ein paar Stunden gedauert, bis es wieder gefixt war

00:40:32.842 --> 00:40:35.522
und ja. Deswegen konnte ich damals keine E-Mails mehr empfangen.

00:40:37.643 --> 00:40:39.322
Deswegen ist damals meine Oma

00:40:39.322 --> 00:40:41.322
gestorben, die dringend

00:40:41.322 --> 00:40:43.362
auf die E-Mail-Bestätigung von ihrem Arzt

00:40:43.362 --> 00:40:43.982
gewartet hat.

00:40:45.042 --> 00:40:47.542
Ja, ich glaube so, damals war das alles noch so.

00:40:48.923 --> 00:40:50.962
War noch nicht so, ja.

00:40:52.542 --> 00:40:53.123
Weiß nicht.

00:40:53.383 --> 00:40:55.263
Ja, das ist, meine Frau ist ja

00:40:55.263 --> 00:40:56.022
Ärztin und

00:40:56.022 --> 00:40:59.223
bei der geht es um Menschenleben, aber das ist ja nicht so schlimm,

00:40:59.223 --> 00:41:00.362
weil bei uns geht es ja um Geld.

00:41:00.362 --> 00:41:02.923
Geld oder Leben

00:41:02.923 --> 00:41:03.522
Geld oder Leben

00:41:03.522 --> 00:41:05.203
Ja

00:41:05.203 --> 00:41:08.623
Ja, das ist doch schön, aber es ist schön, dass

00:41:08.623 --> 00:41:11.223
jeder von uns auch so eine Geschichte hat, wo er einfach mal

00:41:11.223 --> 00:41:13.082
Produktivdaten

00:41:13.082 --> 00:41:14.562
entfernt oder gelöscht oder

00:41:14.562 --> 00:41:16.822
Ja, ich glaube, das passiert auch allen

00:41:16.822 --> 00:41:19.123
irgendwann früher oder später mal, das ist halt

00:41:19.123 --> 00:41:20.703
ja

00:41:20.703 --> 00:41:22.302
Die Feuertaufe

00:41:22.302 --> 00:41:24.383
Oder auch schön Backups machen

00:41:24.383 --> 00:41:26.842
auf dem gleichen Server wie die Datenbank

00:41:26.842 --> 00:41:28.022
und dann ist der Server weg

00:41:28.022 --> 00:41:32.263
oder die Platte davon im Arsch und dann, ja, Backups leider dann auch weg.

00:41:33.923 --> 00:41:36.243
Ja, Backups müssen wir immer offside machen.

00:41:37.842 --> 00:41:39.362
Hätte man auch eigentlich vorher drauf kommen können.

00:41:39.362 --> 00:41:40.302
Da gibt es auch das Zwiebelmodell.

00:41:41.763 --> 00:41:43.062
Du musst Schichten von Backups haben.

00:41:43.163 --> 00:41:47.923
Die erste Schicht ist die ganz nahe und die zweite Schicht ist im gleichen Gebäude

00:41:47.923 --> 00:41:51.923
und die dritte Schicht ist im gleichen Land und die vierte Schicht ist auf dem gleichen Planeten.

00:41:53.763 --> 00:41:56.562
Und dann Schicht 5 Backups haben wir leider noch nicht so viele.

00:41:56.562 --> 00:41:59.423
Ja, könnte man aber eigentlich so ein bisschen rausschießen

00:41:59.423 --> 00:42:01.243
Wir haben ja genug Planeten, die verfügbar wären

00:42:01.243 --> 00:42:03.183
Also das ist ja ein kleiner Exkurs

00:42:03.183 --> 00:42:03.183
Die Die Die Die Die Die Die Die Die Die Die Die Die Die Die Die Die Die Die Die Die Die Die Die Die Die Die Die Die Die Die Die Die Die Die Die Die Die Die Die Die Die Die Die Die Die Die Die Die Die Die Die Die Die Die Die Die Die Die Die Die

00:42:26.562 --> 00:42:30.802
von Elon Musk.

00:42:30.903 --> 00:42:32.623
Welche reiche Raketenfirma?

00:42:32.943 --> 00:42:34.042
Ja, Elon Musk war das.

00:42:36.542 --> 00:42:37.582
Und Virgin Galactic,

00:42:37.743 --> 00:42:38.943
der dritte reiche Mann,

00:42:39.342 --> 00:42:41.183
der dritte verrückte Milliardär,

00:42:41.183 --> 00:42:42.743
hat doch auch eine Raketenfirma.

00:42:42.743 --> 00:42:44.042
Hat ja auch Raketenfirma inzwischen.

00:42:44.403 --> 00:42:45.462
Ich dachte, der war noch was mit Flugzeug.

00:42:45.763 --> 00:42:46.542
Und er ist noch irgendwer,

00:42:46.743 --> 00:42:47.602
der Westfair Branson,

00:42:49.022 --> 00:42:51.102
ist da hochgeflogen.

00:42:52.183 --> 00:42:55.282
Das Ding heißt irgendwie nicht Spaceship One,

00:42:55.403 --> 00:42:56.042
sondern Starship.

00:42:56.562 --> 00:42:57.943
Naja, wie auch immer

00:42:57.943 --> 00:43:00.862
Der Ramespace in dem Bereich

00:43:00.862 --> 00:43:01.743
wird jetzt auch schon knapp

00:43:01.743 --> 00:43:05.062
Ja, nee, aber

00:43:05.062 --> 00:43:06.862
das Ding ist wirklich riesig, also das ist halt nicht

00:43:06.862 --> 00:43:08.962
das, also das ist halt irgendwie auch eine

00:43:08.962 --> 00:43:10.903
neue Technik, das ist einmal ein neues Material, das ist irgendwie

00:43:10.903 --> 00:43:12.502
Edelstahl statt Aluminium oder so

00:43:12.502 --> 00:43:15.042
und eine neue Technik, das soll wieder

00:43:15.042 --> 00:43:17.042
verwendbar sein und das segelt sozusagen irgendwie wieder runter

00:43:17.042 --> 00:43:18.763
und das ist größer als die Saturn V, also

00:43:18.763 --> 00:43:20.123
es ist wirklich riesig

00:43:20.123 --> 00:43:21.862
Also das ist halt sozusagen der...

00:43:21.862 --> 00:43:24.123
Ja, sowas habe ich bei Kerbel Space Program auch schon mal gebaut

00:43:24.123 --> 00:43:27.502
Da gibt es halt diesen tollen Talk

00:43:27.502 --> 00:43:29.223
Hat auch einwandfrei funktioniert

00:43:29.223 --> 00:43:31.943
Da gibt es halt ein paar tolle Talks, wie man Raumschiffe

00:43:31.943 --> 00:43:33.862
baut und wie man Raumschiffe fliegt

00:43:33.862 --> 00:43:35.683
Die gab es haben wir zwischendurch

00:43:35.683 --> 00:43:37.383
In Kerbel oder in echt?

00:43:37.903 --> 00:43:38.643
Ja, in echt, in echt

00:43:38.643 --> 00:43:42.123
Ja, es gibt ja auch ganz viele

00:43:42.123 --> 00:43:43.623
so Amateurfirmen, die das

00:43:43.623 --> 00:43:46.362
versuchen

00:43:46.362 --> 00:43:47.062
und dann machen

00:43:47.062 --> 00:43:50.002
Kopenhagen Aerospace ist eine Amateurfirma

00:43:50.002 --> 00:43:52.423
die, das ist nicht mal eine Firma

00:43:52.423 --> 00:43:53.962
das ist ein Verein, der halt

00:43:53.962 --> 00:43:56.322
Raketen baut und ins Weltall schicken möchte.

00:43:56.903 --> 00:43:57.943
Ja, der Urs hat das gesagt,

00:43:58.342 --> 00:43:59.362
wie man das macht. Das ist sehr interessant.

00:44:00.723 --> 00:44:02.302
Und weil wir gerade bei Planeten waren,

00:44:02.482 --> 00:44:03.482
das gibt ja irgendwie,

00:44:03.862 --> 00:44:06.163
wo man dann hinfliegen kann. Es gibt ja so viele wie, oder mehr

00:44:06.163 --> 00:44:07.522
als Sandkörner wahrscheinlich auf der Erde.

00:44:07.743 --> 00:44:10.203
Und das ist natürlich schon gut, wenn die nicht so weit weg wären.

00:44:10.443 --> 00:44:12.263
Und da muss man sich halt irgendwie überlegen, wie man da

00:44:12.263 --> 00:44:14.282
die Zeit überbrücken kann. Also wir haben ja

00:44:14.282 --> 00:44:16.263
Computer dabei, vielleicht kann man da so ein bisschen seine Langeweile

00:44:16.263 --> 00:44:18.302
vertreiben und Tetris spielen oder so.

00:44:21.183 --> 00:44:22.143
Ja, finde ich gut.

00:44:22.143 --> 00:44:25.522
Ja, ja, das ist ja vielleicht so die Frage, wie man seine Zeit

00:44:25.522 --> 00:44:28.443
Kann ja endlich mal seine Steam-Bibliothek abarbeiten

00:44:28.443 --> 00:44:29.802
Ja, ja

00:44:29.802 --> 00:44:32.502
Noch so ein Wenn übrigens oder ein Fail

00:44:32.502 --> 00:44:33.923
Ich weiß nicht, Cyberpunk, Johannes

00:44:33.923 --> 00:44:36.302
Ja, ach

00:44:36.302 --> 00:44:40.522
Das ist ja

00:44:40.522 --> 00:44:42.723
Die Nachrichten sind unterhaltsamer als das Spiel, oder?

00:44:43.943 --> 00:44:44.203
Ja

00:44:44.203 --> 00:44:45.183
So schlimm

00:44:45.183 --> 00:44:46.802
Ist doch großartig

00:44:46.802 --> 00:44:50.582
Nein, also das Spiel ist sicherlich sehr gut, wenn es läuft

00:44:50.582 --> 00:45:20.562
und Jochen unterhalten sich über die Programmiersprache Python

00:45:20.582 --> 00:45:22.062
mit Groß-O-Notation.

00:45:23.502 --> 00:45:24.163
Und

00:45:24.163 --> 00:45:26.663
Groß-O-Notation heißt,

00:45:27.002 --> 00:45:28.282
dass es asymptotisch

00:45:28.282 --> 00:45:30.203
sich so verhält, wie die da

00:45:30.203 --> 00:45:32.542
gezeigte Funktion. Also zum Beispiel

00:45:32.542 --> 00:45:33.322
O von n²

00:45:33.322 --> 00:45:36.582
kann ganz große

00:45:36.582 --> 00:45:38.423
konstante Faktoren haben, aber wenn man

00:45:38.423 --> 00:45:40.542
das n genügend groß wählt,

00:45:41.362 --> 00:45:41.763
dann

00:45:41.763 --> 00:45:44.102
ist es auf jeden Fall

00:45:44.102 --> 00:45:45.243
so wie n².

00:45:47.443 --> 00:45:48.042
Und

00:45:48.743 --> 00:45:49.502
es gibt

00:45:49.502 --> 00:45:51.782
eine Klasse von Algorithmen, die heißt galaktische Algorithmen,

00:45:51.842 --> 00:45:54.243
die haben sehr gute O-Notationen.

00:45:54.383 --> 00:45:55.143
Also sie sind dann O von

00:45:55.143 --> 00:45:57.743
N log N oder O von N hoch 1,

00:45:57.923 --> 00:45:59.623
noch was. Also besser als alles andere.

00:46:00.282 --> 00:46:01.782
Aber wenn man die konstanten Faktoren

00:46:01.782 --> 00:46:02.562
ausrechnet, dann

00:46:02.562 --> 00:46:06.082
ist dieses

00:46:06.082 --> 00:46:07.743
N halt 10 hoch 40

00:46:07.743 --> 00:46:08.302
oder sowas.

00:46:08.943 --> 00:46:10.143
Das ist ein bisschen schlecht.

00:46:11.522 --> 00:46:13.383
Die Problemgröße ist halt,

00:46:13.602 --> 00:46:15.782
die konstanten Faktoren sind halt so dominant,

00:46:16.643 --> 00:46:18.062
dass es erst dann

00:46:18.062 --> 00:46:20.143
Sinn macht, diesen Algorithmus einzusetzen,

00:46:20.203 --> 00:46:22.062
wenn man einen Computer hat, der so groß ist wie eine Galaxis.

00:46:22.203 --> 00:46:24.383
Deshalb heißen die galaktische Algorithmen

00:46:24.383 --> 00:46:27.082
prinzipiell

00:46:27.082 --> 00:46:28.263
die besten Lösungen

00:46:28.263 --> 00:46:30.302
für verschiedene Probleme, aber in der

00:46:30.302 --> 00:46:32.243
Praxis nicht ungeheuer gut.

00:46:33.982 --> 00:46:34.282
Es gibt

00:46:34.282 --> 00:46:36.163
auch manche von denen, die haben dann so Konstanten

00:46:36.163 --> 00:46:38.002
drin, wo du halt quasi eine

00:46:38.002 --> 00:46:40.123
Lookup-Table vorher ausrechnen musst und der ist

00:46:40.123 --> 00:46:41.982
halt auch schon 10 hoch 40 Byte groß oder

00:46:41.982 --> 00:46:43.062
irgendwie sowas ganz albernes.

00:46:43.302 --> 00:46:45.582
Das erinnert mich sehr an Series

00:46:45.582 --> 00:46:48.082
auf Interstellar Trade,

00:46:48.982 --> 00:46:49.842
wo es halt um die

00:46:49.842 --> 00:46:51.822
säkulare Verbesserung der Terms nach Trade geht

00:46:51.822 --> 00:46:53.802
und zwischen zwei verschiedenen Zivilisationen,

00:46:53.883 --> 00:46:55.562
die relativ lange brauchen, ein bisschen miteinander

00:46:55.562 --> 00:46:56.462
Handel treiben können.

00:46:57.623 --> 00:46:59.263
Das kommt so in gewisser Weise, das ist halt

00:46:59.263 --> 00:47:01.462
faktischer Unsinn, aber theoretisch

00:47:01.462 --> 00:47:02.703
ein super tolles Modell.

00:47:04.442 --> 00:47:05.403
Ja, theoretisch optimal,

00:47:05.663 --> 00:47:06.862
aber in der Praxis leider nicht.

00:47:06.862 --> 00:47:09.383
Auch ein galaktischer Algorithmus nicht anzuwenden.

00:47:10.062 --> 00:47:11.383
Das war ein Paper von Klugmann,

00:47:11.763 --> 00:47:13.562
falls ihr das wisst, müssen wir auch mal verlinken in die Shownotes.

00:47:13.763 --> 00:47:15.442
Ja, tust du auch mal in die Shownotes, ich lese das dann

00:47:15.442 --> 00:47:17.322
und das finde ich gut.

00:47:17.623 --> 00:47:19.482
Ich mag das gerne, so Paper lesen.

00:47:20.002 --> 00:47:21.462
Auch dieses Virus-Paper habe ich auch

00:47:21.462 --> 00:47:23.383
mit sehr viel Freude gelesen. Das war auch sehr schön.

00:47:25.143 --> 00:47:25.763
Ja, warum war das

00:47:25.763 --> 00:47:27.223
eine Überleitung? Weil ich habe jetzt hier,

00:47:27.322 --> 00:47:28.822
ihr könnt es jetzt hier sehen im Video,

00:47:29.322 --> 00:47:30.582
die Hörer zu Hause

00:47:30.582 --> 00:47:33.082
können es nicht sehen, weil es ist ja ein Podcast.

00:47:33.822 --> 00:47:35.502
Dieses Buch hier, das ist ein schwarzes

00:47:35.502 --> 00:47:36.802
Buch mit

00:47:36.802 --> 00:47:39.703
Ringeinband.

00:47:40.942 --> 00:47:41.403
Das ist

00:47:41.403 --> 00:47:42.302
mein Algorithmenbuch.

00:47:43.623 --> 00:47:45.283
Und ich habe dieses Algorithmenbuch

00:47:45.283 --> 00:47:46.663
vor Jahren mal angefangen.

00:47:47.283 --> 00:47:49.143
Die Idee dahinter ist, dass immer wenn ich einen

00:47:49.143 --> 00:47:50.562
guten Algorithmus finde,

00:47:51.163 --> 00:47:52.582
der nicht so bekannt ist,

00:47:53.342 --> 00:47:54.703
dass ich mir den aufschreibe

00:47:54.703 --> 00:47:57.223
und wenn ich vor irgendeinem Problem stehe, was schwer

00:47:57.223 --> 00:47:59.243
zu lösen ist, dann muss ich nur in mein

00:47:59.243 --> 00:48:00.362
Algorithmenbuch reinschauen

00:48:00.362 --> 00:48:03.283
und finde da bestimmt irgendwas drin, was da hilft.

00:48:03.562 --> 00:48:05.302
Jetzt mach mal auf und zeig mal, wie viele Seiten da schon

00:48:05.302 --> 00:48:07.143
beschrieben sind. Ich mach jetzt

00:48:07.143 --> 00:48:08.163
erstmal den Staub weg.

00:48:10.462 --> 00:48:11.322
Das lag nämlich

00:48:11.322 --> 00:48:12.082
schon eine ganze Weile

00:48:12.082 --> 00:48:15.102
drin und ich mach das jetzt mal auf und es sind

00:48:15.102 --> 00:48:25.623
tatsächlich 1, 2, 3, 4, 5, 6, 7, ja 7,5 Seiten beschrieben. Das hier ist die 8. Seite, die beschrieben ist.

00:48:26.102 --> 00:48:32.582
Da steht nur eine Überschrift drauf. Ja, ich würde das auf jeden Fall als Win zählen.

00:48:33.102 --> 00:48:36.022
Aber nicht die Seite mit den Rezepten, mit den Kochrezeptern dazu zählen.

00:48:36.042 --> 00:48:40.163
Klar, gewonnen. Ja, Kochrezepte habe ich ein eigenes Buch für, selbstverständlich.

00:48:40.763 --> 00:48:42.062
Könnte ich auch als besondere Rezeption.

00:48:42.062 --> 00:48:47.743
Aber tatsächlich in der Praxis hat man oft dickere Rezeptbücher als Algorithmenbücher.

00:48:48.442 --> 00:48:49.663
Ja, das ist mir auch schon aufgefallen.

00:48:50.022 --> 00:48:50.542
Ja, leider.

00:48:51.822 --> 00:48:56.203
Ich weiß auch nicht, es hilft auch nicht, man kann sich natürlich auch irgendwie so ein Algorithmenbuch nehmen

00:48:56.203 --> 00:49:01.462
und dann einfach versuchen, mal die ganzen Dinger durchzulesen, zu lernen und dann halt anzuwenden,

00:49:01.582 --> 00:49:02.542
wenn man irgendwie so Probleme hat.

00:49:02.582 --> 00:49:04.102
Aber irgendwie funktioniert das nicht richtig.

00:49:05.623 --> 00:49:11.322
Also was mir tatsächlich oft passiert, oder was heißt so oft, so oft hat man ja zum Glück nicht wirklich schwere Probleme,

00:49:11.322 --> 00:49:13.683
oder auf dem Level

00:49:13.683 --> 00:49:15.683
nicht so schwer, aber was mir ganz oft

00:49:15.683 --> 00:49:17.342
passiert ist, dass ich irgendein Problem

00:49:17.342 --> 00:49:19.243
nicht in den Griff kriege und

00:49:19.243 --> 00:49:21.783
naja, da mir die Algorithmenbücher zu langweilig

00:49:21.783 --> 00:49:23.542
sind, die habe ich alle nicht gelesen, weiß ich halt auch nicht,

00:49:23.602 --> 00:49:25.062
welchen Algorithmus man eigentlich nehmen sollte,

00:49:25.922 --> 00:49:27.502
sondern ich fange dann an, darüber selber

00:49:27.502 --> 00:49:29.623
nachzudenken, das ist halt auch nicht

00:49:29.623 --> 00:49:31.783
so optimal und sehr langsame

00:49:31.783 --> 00:49:32.203
Algorithmen...

00:49:32.203 --> 00:49:35.942
Oder sag mal so,

00:49:36.302 --> 00:49:37.522
es ist irgendwie

00:49:37.522 --> 00:49:38.962
also ich teilweise

00:49:38.962 --> 00:49:42.342
denke ich sie dann halt wieder,

00:49:42.482 --> 00:49:43.883
nach langem drüber nachdenken.

00:49:44.482 --> 00:49:44.822
Oder

00:49:44.822 --> 00:49:48.462
mir fällt halt irgendwo

00:49:48.462 --> 00:49:50.582
ein Algorithmus auf, der genau das Problem

00:49:50.582 --> 00:49:52.783
löst, aber halt so in dem Kontext

00:49:52.783 --> 00:49:54.623
des drüber nachdenkens irgendwie.

00:49:54.802 --> 00:49:56.582
Weil ich mir denke so, okay, das was da Leute

00:49:56.582 --> 00:49:58.422
machen, das klingt so ähnlich und dann irgendwann taucht

00:49:58.422 --> 00:49:59.962
dann der Name von dem Algorithmus auf und dann

00:49:59.962 --> 00:50:02.143
also es ist irgendwie ganz eigenartig.

00:50:02.302 --> 00:50:04.082
Ich verstehe es nicht so genau und das ist schon ein paar Mal passiert.

00:50:05.362 --> 00:50:06.663
Ja, dafür hatte ich eigentlich

00:50:06.663 --> 00:50:08.442
dieses Buch hier, aber

00:50:08.442 --> 00:50:15.442
Du musst mal einen davon vorstellen, Johannes, der einen vielleicht so einen Namen hat oder hast du einen selber, den du selber taufst?

00:50:16.883 --> 00:50:28.163
Ja, nee, selber getauft nicht. Also ich versuche Sachen hier zu merken, die ich interessant finde, die Spannfilter. Eine Sache, die man mal sagen kann, sind zum Beispiel Bloomfilters. Wisst ihr, was ein Bloomfilter ist?

00:50:28.462 --> 00:50:28.743
Nein.

00:50:28.962 --> 00:50:29.663
Ja, voll geil.

00:50:29.663 --> 00:50:32.522
Das ist eine sehr spezifische

00:50:32.522 --> 00:50:34.283
probabilistische Datenstruktur, die

00:50:34.283 --> 00:50:36.482
wenn man sie braucht, absolut

00:50:36.482 --> 00:50:37.582
genial ist und absolut

00:50:37.582 --> 00:50:40.522
undenkbar, dass es überhaupt funktionieren kann

00:50:40.522 --> 00:50:42.623
aber wenn man sie

00:50:42.623 --> 00:50:43.862
nicht braucht, ist es total nutzlos

00:50:43.862 --> 00:50:46.183
Das ist im Wesentlichen

00:50:46.183 --> 00:50:48.362
eine Set-Implementation

00:50:48.362 --> 00:50:50.683
also eine Menge und ich kann

00:50:50.683 --> 00:50:52.542
in diese Menge Dinge

00:50:52.542 --> 00:50:54.482
eintragen, also

00:50:54.482 --> 00:50:56.263
Elemente eintragen und ich kann fragen

00:50:56.263 --> 00:50:58.283
ist dieses Element in der Menge vorhanden

00:50:58.283 --> 00:51:00.342
und wenn die Antwort

00:51:00.342 --> 00:51:01.903
Nein ist, dann ist die sicher.

00:51:02.822 --> 00:51:04.062
Das heißt, wenn mein

00:51:04.062 --> 00:51:05.102
Bloom-Filter sagt,

00:51:05.842 --> 00:51:07.942
das Element 7 ist nicht vorhanden,

00:51:08.102 --> 00:51:10.283
dann bin ich mir sicher, dass das Element nicht vorhanden ist.

00:51:11.183 --> 00:51:12.223
Wenn der Bloom-Filter

00:51:12.223 --> 00:51:13.462
aber sagt, ja,

00:51:14.183 --> 00:51:16.183
das Element ist vorhanden, dann ist der nur mit einer gewissen

00:51:16.183 --> 00:51:17.183
Wahrscheinlichkeit vorhanden.

00:51:18.502 --> 00:51:20.123
Und der Gag

00:51:20.123 --> 00:51:22.342
daran ist, dass man sehr wenige

00:51:22.342 --> 00:51:23.743
Bits braucht, um

00:51:23.743 --> 00:51:25.982
diese Einträge zu speichern.

00:51:26.123 --> 00:51:27.562
Also je nachdem, wie man das

00:51:27.562 --> 00:51:32.542
eingestellt hat, kann die Speichermenge weniger als ein Bit pro Eintrag sein.

00:51:32.643 --> 00:51:36.403
Deutlich weniger als ein Bit pro gespeichertem Element. Und das ist was

00:51:36.403 --> 00:51:39.042
total Verrücktes, weil das kann ja gar nicht gehen.

00:51:41.643 --> 00:51:44.422
Warum ist das nützlich? Das ist zum Beispiel dann nützlich, wenn man

00:51:44.422 --> 00:51:46.703
so eine verteilte Situation hat, dass du sagst, okay,

00:51:48.942 --> 00:51:52.442
ich suche in meinen zehn Datenbank-Servern

00:51:52.442 --> 00:51:56.783
nach dem Eintrag für diesen Schlüssel, den ich jetzt gerade brauche.

00:51:57.562 --> 00:51:59.263
und ich frage einfach mal meinen

00:51:59.263 --> 00:51:59.982
Bloom-Filter,

00:52:00.962 --> 00:52:03.223
auf welchem Datenbank-Server dieser Eintrag

00:52:03.223 --> 00:52:03.723
vorhanden ist.

00:52:05.342 --> 00:52:06.403
Welcher Range?

00:52:08.062 --> 00:52:08.883
Das kommt darauf an,

00:52:09.203 --> 00:52:11.223
das liegt an der Menge der

00:52:11.223 --> 00:52:12.962
Einträge, die du speicherst und wie groß dieser

00:52:12.962 --> 00:52:14.942
Bloom-Filter ist, den du gemacht hast.

00:52:15.042 --> 00:52:15.883
Musst du vorher wählen.

00:52:15.883 --> 00:52:17.163
Das ist 1 durch N.

00:52:18.623 --> 00:52:19.643
Aber alle...

00:52:19.643 --> 00:52:21.723
Nee, es ist eine kompliziertere Formel.

00:52:24.663 --> 00:52:25.743
Das wäre dann

00:52:25.743 --> 00:52:27.342
ein Detail, das steht gar nicht in meinem Buch drin.

00:52:27.562 --> 00:52:39.143
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 Flumpilter aber sagt, ja, der ist drin, dann ist er vielleicht da drin.

00:52:40.002 --> 00:52:54.482
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.482 --> 00:52:55.783
Das ist eine Regenbogentabelle.

00:52:55.783 --> 00:52:58.203
Genau, dass du so eine Art

00:52:58.203 --> 00:52:59.903
Regenbogentabelle machst, dass du

00:52:59.903 --> 00:53:02.102
einen Regenbogen-Bloomfilter machst, dass du sagst, du nimmst

00:53:02.102 --> 00:53:04.562
dir die 250.000

00:53:04.562 --> 00:53:06.442
Passwörter,

00:53:06.502 --> 00:53:07.862
die am weitesten verbreitet sind

00:53:07.862 --> 00:53:10.002
und speicherst davon die

00:53:10.002 --> 00:53:11.743
SHA-1-Hashes

00:53:11.743 --> 00:53:14.302
und einen Bloomfilter dafür

00:53:14.302 --> 00:53:16.062
mit einer Wahrscheinlichkeit von

00:53:16.062 --> 00:53:18.183
ich glaube 99%, ich hatte es mal ausgerechnet,

00:53:18.283 --> 00:53:19.223
sind etwa 100 KB.

00:53:20.842 --> 00:53:22.223
Das ist also durchaus was,

00:53:22.283 --> 00:53:23.982
was du per JavaScript übertragen könntest,

00:53:23.982 --> 00:53:26.263
wo du direkt auf den Client überprüfen

00:53:26.263 --> 00:53:27.922
könntest, ob das Passwort, was er gerade

00:53:27.922 --> 00:53:29.903
eingegeben hat, zu den 250.000

00:53:29.903 --> 00:53:31.982
schlechtesten Passwörtern, die es

00:53:31.982 --> 00:53:33.422
gibt, gehören könnte.

00:53:33.582 --> 00:53:35.842
Du kannst ja sagen, dein Passwort ist aber doof.

00:53:36.883 --> 00:53:37.982
Genau. Und wenn du

00:53:37.982 --> 00:53:40.002
das sagst, dann weißt du, dass es vielleicht

00:53:40.002 --> 00:53:41.283
so ist, vielleicht aber auch nicht.

00:53:41.683 --> 00:53:43.903
Wenn der aber Nein sagt, dann weißt du, dass es auf jeden Fall

00:53:43.903 --> 00:53:45.822
keins dieser Passwörter ist, die du gespeichert hast.

00:53:46.263 --> 00:53:47.783
Also so eine

00:53:47.783 --> 00:53:49.842
Abfrage, wo du ein sicheres Nein

00:53:49.842 --> 00:53:51.883
brauchst, dafür sind die sehr gut

00:53:51.883 --> 00:53:53.903
und dafür sind

00:53:53.903 --> 00:53:56.123
die sind ja eine super Sache, weil sie halt

00:53:56.123 --> 00:53:57.962
ungeheuer wenig Speicherplatz brauchen.

00:53:58.322 --> 00:53:59.883
Viel, viel, viel weniger, als man sich das

00:53:59.883 --> 00:54:02.143
als man sich das je vorstellen

00:54:02.143 --> 00:54:02.462
könnte.

00:54:04.062 --> 00:54:06.183
Jetzt ist es halt leider so, so eine Art Problem

00:54:06.183 --> 00:54:08.123
braucht man halt nicht so häufig. Deshalb habe ich nur sieben

00:54:08.123 --> 00:54:10.123
solcher Einträge drin. Einer davon

00:54:10.123 --> 00:54:12.062
Blumenfilter, den schreibt ihr jetzt

00:54:12.062 --> 00:54:13.822
alle in euer Algorithmenbuch direkt rein.

00:54:18.022 --> 00:54:19.942
Wie schreibt man den denn? Den Blumenfilter mit

00:54:19.942 --> 00:54:22.243
UH, mit OO? So wie Orlando.

00:54:22.783 --> 00:54:23.002
Okay.

00:54:23.903 --> 00:54:28.482
und BLOM-Filter.

00:54:28.903 --> 00:54:30.442
Weil der nämlich blüht.

00:54:30.502 --> 00:54:31.842
Also der blüht auf, wenn du

00:54:31.842 --> 00:54:33.102
die Abfragen machst.

00:54:34.082 --> 00:54:35.962
Wenig Daten, die dir viele

00:54:35.962 --> 00:54:36.683
Antworten geben.

00:54:38.903 --> 00:54:40.243
Ja, super spannende Technik

00:54:40.243 --> 00:54:42.143
habe ich noch nie irgendwo verwendet. Auch da hat

00:54:42.143 --> 00:54:43.442
es sich dann zerschlagen, weil wir doch

00:54:43.442 --> 00:54:46.062
einfach eine ganz andere Sache gemacht haben mit

00:54:46.062 --> 00:54:47.422
unseren Passwörtern. Aber gut.

00:54:49.562 --> 00:54:50.602
Das war fast das.

00:54:50.723 --> 00:54:52.123
Ein passgebrauchter

00:54:52.123 --> 00:54:53.123
ist ja schon mal etwas.

00:54:53.903 --> 00:55:11.723
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.562 --> 00:55:14.203
Sukkulenten.

00:55:15.683 --> 00:55:17.143
Ja, und noch exotischer.

00:55:17.302 --> 00:55:18.082
Noch exotischer, na gut.

00:55:19.082 --> 00:55:19.883
Viel exotischer.

00:55:19.883 --> 00:55:21.183
Ja

00:55:21.183 --> 00:55:23.403
Ja, wenn ich es so überlege, also ich meine

00:55:23.403 --> 00:55:25.502
das hatte ich ja vielleicht schon mal erwähnt, also ich hatte das schon mal

00:55:25.502 --> 00:55:27.522
mit topologischer Sortierung, genau, da wusste ich auch nicht

00:55:27.522 --> 00:55:29.442
was das ist, bis ich es dann auch nochmal

00:55:29.442 --> 00:55:32.123
entdecken musste

00:55:32.123 --> 00:55:35.223
Bis du es selber erfunden hast

00:55:35.223 --> 00:55:37.802
Ja, naja, das ist halt irgendwie nicht das gleiche

00:55:37.802 --> 00:55:39.403
wenn man das als erster macht oder halt irgendwie

00:55:39.403 --> 00:55:40.822
dann, wenn man es eigentlich schon mal wissen sollte

00:55:40.822 --> 00:55:43.163
also, aber ja

00:55:43.163 --> 00:55:45.802
eine andere Geschichte, die mir mal

00:55:45.802 --> 00:55:48.163
Kryptomnese, wisst ihr was Kryptomnese ist?

00:55:48.962 --> 00:55:49.143
Ne?

00:55:49.883 --> 00:55:52.362
Das ist, wenn man selber was erfindet, was es aber schon gibt.

00:55:53.082 --> 00:55:53.442
Ja.

00:55:54.582 --> 00:55:56.562
Weil man sich dann doch irgendwie halt doch dran erinnert,

00:55:56.623 --> 00:55:57.383
so unterbewusst.

00:55:57.582 --> 00:55:59.342
Das kann auch gut sein, dass das so ist.

00:55:59.542 --> 00:56:01.143
Oder man war eigentlich einfach so genial,

00:56:01.263 --> 00:56:02.663
es hatte einfach jemand anders von, diese Idee,

00:56:02.802 --> 00:56:05.223
aber völlig unabhängig.

00:56:05.302 --> 00:56:08.602
Das ist eine Annahme, die wäre mir sehr sympathisch.

00:56:08.683 --> 00:56:09.922
Das Problem dabei ist, dass halt

00:56:09.922 --> 00:56:11.942
so lange dabei nie irgendwas ausfällt.

00:56:13.522 --> 00:56:15.002
Was tatsächlich neu ist,

00:56:15.942 --> 00:56:17.243
spricht das so ein bisschen gegen die Hypothese,

00:56:17.243 --> 00:56:19.102
aber tatsächlich, Werner Feynman hat das ja auch

00:56:19.102 --> 00:56:20.822
irgendwie, ich weiß nicht,

00:56:20.962 --> 00:56:22.802
in welchem Buch er das geschrieben hat, aber

00:56:22.802 --> 00:56:24.903
er schrieb da ja auch so irgendwie, naja,

00:56:25.022 --> 00:56:26.763
er hat halt einfach immer irgendwie alle

00:56:26.763 --> 00:56:28.922
Sachen, alle Probleme, die irgendwie

00:56:28.922 --> 00:56:30.123
in den Büchern, die er so gelesen hat,

00:56:30.223 --> 00:56:32.362
drin standen, irgendwie versucht zu lösen

00:56:32.362 --> 00:56:34.862
und hat das halt einfach immer weiter

00:56:34.862 --> 00:56:35.942
gemacht und irgendwann

00:56:35.942 --> 00:56:38.342
hat er halt dann gemerkt,

00:56:39.123 --> 00:56:40.982
sozusagen, oh, das war ein bisschen knifflig

00:56:40.982 --> 00:56:42.822
oder so, hat sich dann aber auch gelöst und dann

00:56:42.822 --> 00:56:44.783
hat er irgendwie weiter gelesen und dann schließt er so, ja, das sind

00:56:44.783 --> 00:56:46.683
ungelöste Probleme, da gab es da noch keiner irgendwas.

00:56:47.022 --> 00:56:48.602
So, oh, jetzt nicht mehr.

00:56:49.102 --> 00:56:51.243
aber ja

00:56:51.243 --> 00:56:54.123
das ist doch die Feinmann Problemlösungsmethode

00:56:54.123 --> 00:56:54.582
kennt ihr die?

00:56:55.623 --> 00:56:57.942
die hat drei Schritte, der erste Schritt Problem hinschreiben

00:56:57.942 --> 00:56:59.482
zweiter Schritt

00:56:59.482 --> 00:57:01.123
nachdenken

00:57:01.123 --> 00:57:02.862
dritter Schritt Lösung hinschreiben

00:57:02.862 --> 00:57:05.942
da gibt es dann auch die

00:57:05.942 --> 00:57:08.203
die angewandte

00:57:08.203 --> 00:57:10.022
Feinmannsche Problemlösungsmethode

00:57:10.022 --> 00:57:12.203
die heißt auch manchmal die studentische Problemlösungsmethode

00:57:12.203 --> 00:57:13.802
hat auch drei Schritte, erster Schritt ist

00:57:13.802 --> 00:57:15.442
Problem hinschreiben, zweiter Schritt ist

00:57:15.442 --> 00:57:18.022
ganz ganz arg drüber nachdenken

00:57:18.022 --> 00:57:19.002
dritter Schritt ist heulen

00:57:19.102 --> 00:57:25.223
Das passiert auch häufiger als man sich das wünscht

00:57:25.223 --> 00:57:27.403
Ja, ich erzähle mich da eher zu dir

00:57:27.403 --> 00:57:31.562
Ja, aber tatsächlich, wenn ich so überlege

00:57:31.562 --> 00:57:33.522
was habe ich denn noch so an Dingen mal gebraucht

00:57:33.522 --> 00:57:35.342
wo es sich nicht von Anfang an wusste

00:57:35.342 --> 00:57:37.883
zum Beispiel auch nett, genau, wir haben versucht

00:57:37.883 --> 00:57:40.322
das klingt eigentlich total banal

00:57:40.322 --> 00:57:41.562
es war es aber irgendwie nicht

00:57:41.562 --> 00:57:43.442
ich weiß gar nicht mehr genau warum das eigentlich nicht so banal war

00:57:43.442 --> 00:57:46.002
aber wenn man jetzt so den Status von so einem Onlineshop hat

00:57:46.002 --> 00:57:46.502
wenn man jetzt

00:57:46.502 --> 00:57:49.522
dann kann er ja irgendwie

00:57:49.522 --> 00:57:51.002
zwar

00:57:51.002 --> 00:57:53.342
entweder online sein oder offline

00:57:53.342 --> 00:57:55.462
wenn man jetzt so einen Meta-Shop hat

00:57:55.462 --> 00:57:55.922
quasi

00:57:55.922 --> 00:57:59.342
nach draußen hin

00:57:59.342 --> 00:58:01.302
also entweder man kann da irgendwie Dinge kaufen oder

00:58:01.302 --> 00:58:02.962
draufklicken oder so oder halt eben nicht

00:58:02.962 --> 00:58:05.562
aber

00:58:05.562 --> 00:58:07.562
der Grund dafür kann halt

00:58:07.562 --> 00:58:09.403
aus ganz vielen

00:58:09.403 --> 00:58:10.623
unterschiedlichen Dingen bestehen

00:58:10.623 --> 00:58:12.623
also

00:58:12.623 --> 00:58:15.442
wie zum Beispiel

00:58:15.442 --> 00:58:17.522
Naja, ein Shop kann

00:58:17.522 --> 00:58:19.442
deswegen offline sein,

00:58:19.522 --> 00:58:21.403
weil er ist über irgendein Budget

00:58:21.403 --> 00:58:23.602
gelaufen und möchte halt nicht mehr Geld ausgeben,

00:58:23.703 --> 00:58:24.683
deswegen kriegt er keine Klicks mehr.

00:58:25.102 --> 00:58:27.522
Oder er ist irgendwie, keine Ahnung,

00:58:27.643 --> 00:58:29.422
man ist mit jemandem in einer Rechtsstreitigkeit verwickelt

00:58:29.422 --> 00:58:30.683
und ist vor Gericht.

00:58:31.962 --> 00:58:32.362
Oder,

00:58:33.263 --> 00:58:34.442
weiß ich nicht,

00:58:35.223 --> 00:58:37.462
die Daten sind

00:58:37.462 --> 00:58:38.822
kaputt. Also sagen wir so, das Problem ist,

00:58:39.062 --> 00:58:41.302
im Verlauf der Zeit entdeckt man halt auch immer mehr Möglichkeiten,

00:58:41.302 --> 00:58:43.022
warum man jetzt gerade nicht will, dass er online ist.

00:58:43.442 --> 00:58:45.322
Aber im Endeffekt muss er entweder online sein oder nicht.

00:58:45.442 --> 00:58:46.203
und

00:58:46.203 --> 00:58:49.383
aber es gibt halt dann so Zustände, aus denen will man nicht

00:58:49.383 --> 00:58:51.283
wieder zurück und manche Zustände, da will man aber wieder

00:58:51.283 --> 00:58:53.383
zurück, also wenn der Monat dann anfängt, dann wechselt man

00:58:53.383 --> 00:58:55.462
wieder in den Zustand, wenn das Budget der Grund war

00:58:55.462 --> 00:58:57.462
ah ok, ist jetzt wieder online, aber

00:58:57.462 --> 00:58:59.522
wenn dann irgendwie, keine Ahnung, eben

00:58:59.522 --> 00:59:01.502
vor Gericht, dann will man nicht wieder in den online Zustand

00:59:01.502 --> 00:59:03.442
zurück wechseln, sonst hat man ein zweites Gerichtsverfahren

00:59:03.442 --> 00:59:04.783
das ist ja auch doof und

00:59:04.783 --> 00:59:07.342
das wird komplizierter, als man

00:59:07.342 --> 00:59:09.383
sich das so vorstellt und wir

00:59:09.383 --> 00:59:10.462
hatten dann halt irgendwie

00:59:10.462 --> 00:59:13.283
wir hatten das halt zuerst in Code alles

00:59:13.283 --> 00:59:15.942
und es hat nicht gut funktioniert.

00:59:16.062 --> 00:59:18.082
Diesen Code zu pflegen war blöd, weil immer wieder sind so

00:59:18.082 --> 00:59:20.082
Dinge passiert dann, nachdem dieser Code geändert wurde,

00:59:20.962 --> 00:59:22.082
die

00:59:22.082 --> 00:59:23.602
man vorher nicht abgesehen hatte.

00:59:23.683 --> 00:59:26.183
Gerade dann immer so, weil dann passieren Dinge dann am Monatswechsel

00:59:26.183 --> 00:59:28.203
oder bei irgendeiner Rechnungsstellung oder so,

00:59:29.163 --> 00:59:30.082
die man vielleicht dann nicht so,

00:59:30.203 --> 00:59:32.123
also auch Dinge, die halt einfach blöd zu testen sind

00:59:32.123 --> 00:59:34.062
und dann hat man immer so,

00:59:34.143 --> 00:59:35.942
okay, vor einem halben Monat hat jemand was geändert,

00:59:36.163 --> 00:59:38.002
okay, und dann ist es bei der Rechnungsstellung ganz auf

00:59:38.002 --> 00:59:39.442
furchtbare Art schiefgelaufen.

00:59:41.123 --> 00:59:41.482
Und

00:59:41.482 --> 00:59:54.362
und da haben sie gesagt, okay, wir können das eigentlich nicht so, dieser Code, der wurde auch immer komplizierter, dass das geht so nicht, das überblickt auch keiner mehr, lass uns das doch irgendwie formalisieren und irgendwie da so einen endlichen Automaten oder so draus bauen.

00:59:54.522 --> 01:00:24.945
Und das ist uns aber nie gelungen oder nicht so richtig und dann als nicht Automaten konnten wir uns irgendwie hinschreiben aber als deterministischen nicht Das kann auch nicht sein dass das so schwierig ist und Jochen unterhalten sich die Programmiersprache Python

01:00:24.965 --> 01:00:28.665
der große, das ist doch das darunterliegende Problem für

01:00:28.665 --> 01:00:32.505
P gleich NP. Wenn du diese

01:00:32.505 --> 01:00:35.105
Abbildung gibst, also jeden nicht deterministischen

01:00:35.105 --> 01:00:40.445
endlichen Automaten kannst du als deterministischen endlichen Automaten mit 2 hoch N

01:00:40.445 --> 01:00:41.705
Zuständen machen.

01:00:44.825 --> 01:00:48.825
Die Konsequenz davon ist, ist die Frage P gleich

01:00:48.825 --> 01:00:53.105
NP oder nicht. Ja, so weit sind wir dann nicht gekommen.

01:00:53.105 --> 01:00:55.885
da war dann halt die 8 Stunden frei und dann mussten wir dann leider nach Hause gehen.

01:00:56.005 --> 01:00:57.485
Du musst jetzt trotzdem nochmal einen ganz ganz kleinen

01:00:57.485 --> 01:00:59.765
Einführungstext dazu verfassen, was denn

01:00:59.765 --> 01:01:01.845
p mal np ist, für unsere Hörer, die da nicht ganz so

01:01:01.845 --> 01:01:02.805
tief in der...

01:01:02.805 --> 01:01:05.985
Ja, wir hatten ja vorhin schon

01:01:05.985 --> 01:01:08.025
die kurz angerissenen

01:01:08.025 --> 01:01:09.485
Algorithmenlaufzeiten mit

01:01:09.485 --> 01:01:10.645
Groß-O-Notationen.

01:01:11.125 --> 01:01:13.505
Wie schnell ein Algorithmus

01:01:13.505 --> 01:01:15.465
sich entwickelt, wenn man ihn mehrmals macht, oder?

01:01:16.665 --> 01:01:17.565
Ne, genau, wie schnell

01:01:17.565 --> 01:01:19.605
sich ein Algorithmus, wie schnell

01:01:19.605 --> 01:01:21.605
die Laufzeit sich entwickelt, wenn sich

01:01:21.605 --> 01:01:22.765
die Problemgröße verändert.

01:01:23.105 --> 01:01:29.585
Wenn ich zum Beispiel irgendwelche Berechnungen mache, dann ist die Problemgröße üblicherweise die Größe der Zahl.

01:01:30.145 --> 01:01:35.685
Also wenn ich jetzt zum Beispiel den größten Primfaktor finden möchte von einer Zahl,

01:01:35.805 --> 01:01:39.245
dann kann ich das für die Zahl 10 noch sehr schnell machen.

01:01:40.085 --> 01:01:43.785
Für die Zahl 100 wird es dann schon etwas langsamer und für die Zahl 1000 wird es dann noch langsamer

01:01:43.785 --> 01:01:46.445
und für die Zahl 10 hoch 20 wird es dann halt noch deutlich langsamer.

01:01:46.445 --> 01:01:55.925
und die Frage ist, wie viel langsamer wird es denn, wenn die Zahl größer wird.

01:01:56.905 --> 01:02:02.085
Und weil das von Mathematikern erfunden worden ist, sind alle endlichen Zahlen hier direkt egal,

01:02:03.345 --> 01:02:07.845
sondern es geht nur um, wie verhält sich das denn, wenn wir in Richtung unendlich gehen.

01:02:08.205 --> 01:02:11.965
Das ist genau das Problem bei den galaktischen Algorithmen.

01:02:11.965 --> 01:02:13.925
den Mathematikern sind die absolut

01:02:13.925 --> 01:02:16.125
recht. Dass man die nicht in der Praxis

01:02:16.125 --> 01:02:17.965
einsetzen kann, ist uns

01:02:17.965 --> 01:02:19.285
Mathematikern einfach egal.

01:02:20.085 --> 01:02:21.565
Weil da geht es nur um die Korrektheit.

01:02:22.505 --> 01:02:24.045
Also im Wesentlichen ist es die Frage,

01:02:24.565 --> 01:02:26.085
wenn ich die Problemgröße

01:02:26.085 --> 01:02:27.145
verdoppele,

01:02:27.945 --> 01:02:29.385
wie verändert sich dann meine Laufzeit?

01:02:29.985 --> 01:02:31.825
Wenn ich jetzt zum Beispiel einen Algorithmus habe,

01:02:31.885 --> 01:02:32.965
der O von N ist,

01:02:34.345 --> 01:02:35.785
dann heißt es linear. Das heißt, wenn ich

01:02:35.785 --> 01:02:38.185
mein Problem verdoppele,

01:02:38.285 --> 01:02:40.025
dann verdoppelt sich auch die Zeit,

01:02:40.025 --> 01:02:41.445
die ich brauche, um das Ergebnis zu brechen.

01:02:41.965 --> 01:02:46.345
Das ist gut, das ist leicht planbar, das ist absehbar.

01:02:46.605 --> 01:02:50.265
Ich weiß, ich habe jetzt einen Computer, der kann Probleme lösen mit 1000 Stellen

01:02:50.265 --> 01:02:55.685
und nächstes Jahr habe ich einen, der ist doppelt so schnell, kann ich ein Problem lösen, das 2000 Stellen hat.

01:02:55.725 --> 01:02:57.245
Das ist leicht zu planen.

01:02:58.245 --> 01:02:59.785
Und schon ein bisschen schlechter ist O von n².

01:03:01.445 --> 01:03:07.925
Das heißt, wenn ich die Problemgröße verdoppele, dann vervierfacht sich die Laufzeit des Problems.

01:03:07.925 --> 01:03:13.325
und das ist schon mal schlechter, weil dann heißt es halt, dass ich mit einem doppelt so schnellen Computer

01:03:13.325 --> 01:03:15.185
nicht doppelt so große Probleme lösen kann.

01:03:15.305 --> 01:03:16.665
Also dann brauche ich einen viermal so schnellen Computer.

01:03:16.665 --> 01:03:17.605
Brute Force von Schielgarten.

01:03:18.785 --> 01:03:22.005
Genau und entsprechend gibt es dann natürlich auch n hoch 3 und n hoch 4 und n hoch 5

01:03:22.005 --> 01:03:26.365
und diese ganzen Dinge heißen alle Polynome, die sind alle Polynomiell,

01:03:27.305 --> 01:03:31.205
weil die im Wesentlichen handhabbar sind, die wachsen nicht ungeheuer schnell.

01:03:31.725 --> 01:03:37.045
Ein Polynom mit n hoch 100 wächst auch ungeheuer schnell, aber ist okay.

01:03:37.045 --> 01:03:40.445
Das ist sozusagen das, was man als Mathematiker akzeptiert.

01:03:40.565 --> 01:03:41.745
Polynomielles Wachstum.

01:03:42.905 --> 01:03:51.305
Jetzt gibt es so eine Grenze, so einen Schnitt, wo es Funktionen gibt, die wachsen schneller als jedes Polynom.

01:03:51.405 --> 01:03:53.945
Und das sind die exponentiellen Funktionen, also 2 hoch n.

01:03:53.945 --> 01:03:57.865
Das heißt, wenn ich

01:03:57.865 --> 01:04:00.465
mein Problem verdoppele

01:04:00.465 --> 01:04:02.925
dann

01:04:02.925 --> 01:04:08.185
wächst die Laufzeit mehr als

01:04:08.185 --> 01:04:11.205
jedes Polynom wachsen kann. Also größer als

01:04:11.205 --> 01:04:14.025
n hoch 100, größer als n hoch 1000, sondern 2 hoch n

01:04:14.025 --> 01:04:16.865
und das hängt eben davon ab, wie groß n ist

01:04:16.865 --> 01:04:20.365
wie schnell dieses Wachstum ist, weil das Wachstum nämlich auch immer schneller wird

01:04:20.365 --> 01:04:23.265
Das ist eben eine der

01:04:23.265 --> 01:04:31.305
Kern-Eigenschaften der Exponentialfunktion, dass das Wachstum genauso schnell ansteigt wie die Funktion selbst.

01:04:33.165 --> 01:04:36.685
Das in zwei Minuten in einem Podcast zu erzählen ist schwierig.

01:04:36.825 --> 01:04:37.785
Das funktioniert aber gut.

01:04:38.025 --> 01:04:38.785
Das müsst ihr jetzt einfach mal hinnehmen.

01:04:38.865 --> 01:04:39.265
Ja, ja.

01:04:39.905 --> 01:04:41.165
Ihr müsst es jetzt einfach mal hinnehmen.

01:04:41.505 --> 01:04:43.045
Das ist schlechter als jedes Polynom.

01:04:43.525 --> 01:04:50.145
Und jetzt ist es so, man hat Algorithmen gefunden für Probleme, die sich in polynomierter Laufzeit lösen lassen.

01:04:50.145 --> 01:04:51.065
zum Beispiel

01:04:51.065 --> 01:04:56.045
Primfaktorberechnung.

01:04:59.245 --> 01:05:01.125
Wobei das schon so eine Sache ist,

01:05:01.365 --> 01:05:02.805
die hart umstritten ist,

01:05:02.905 --> 01:05:04.225
ob das jetzt deterministisch oder

01:05:04.225 --> 01:05:05.725
ob man das erlauben möchte oder nicht.

01:05:06.385 --> 01:05:08.045
Es gibt viele Algorithmen, die sind

01:05:08.045 --> 01:05:10.245
in polynomialer Laufzeit machbar.

01:05:10.345 --> 01:05:11.265
Sachen, die man berechnen kann.

01:05:11.905 --> 01:05:14.165
Pfadberechnung, Volltextsuche prinzipiell.

01:05:15.285 --> 01:05:16.085
Solche Sachen

01:05:16.085 --> 01:05:17.845
sind alle in polynomialer Laufzeit

01:05:17.845 --> 01:05:19.805
berechnbar. Es gibt aber auch eine Sorte

01:05:19.805 --> 01:05:21.985
Probleme, für die hat man keinen

01:05:21.985 --> 01:05:24.045
polynomialen Algorithmus

01:05:24.045 --> 01:05:25.925
gefunden, sondern eben nur solche, die in

01:05:25.925 --> 01:05:28.165
exponentieller Laufzeit funktionieren,

01:05:28.425 --> 01:05:29.785
wo man im Wesentlichen alle

01:05:29.785 --> 01:05:31.225
Kombinationen ausprobieren muss.

01:05:32.585 --> 01:05:34.005
Ein solches Problem ist,

01:05:34.645 --> 01:05:35.845
das ist sehr

01:05:35.845 --> 01:05:37.905
anschaulich, finde ich, das ist das

01:05:37.905 --> 01:05:40.405
Tetris-Problem oder auch das Knapsack-

01:05:40.405 --> 01:05:41.885
Problem, wo ich eine

01:05:41.885 --> 01:05:43.925
Menge an Zahlen gegeben habe,

01:05:43.965 --> 01:05:46.005
eine Menge an Größen und

01:05:46.005 --> 01:05:48.025
ich habe eine Zielgröße gegeben

01:05:48.025 --> 01:05:55.365
und die Frage ist, kann ich aus den mir gegebenen Bausteinen eine Summe bilden, die genau das Ziel erreicht.

01:05:59.485 --> 01:06:05.065
Und die einzige Möglichkeit, die es da gibt, im Wesentlichen, ist, einfach alle Kombinationen auszuprobieren.

01:06:06.325 --> 01:06:12.825
Und das sind halt nun mal zwei hoch n Kombinationen, weil ich kann eben in der Summe jede Zahl entweder aufführen oder nicht aufführen.

01:06:12.825 --> 01:06:14.405
das heißt ich habe

01:06:14.405 --> 01:06:16.265
n Bits

01:06:16.265 --> 01:06:17.065
die ich

01:06:17.065 --> 01:06:18.785
die ich setzen kann

01:06:18.785 --> 01:06:22.205
ich muss die Menge aller Teilmengen sozusagen ausprobieren

01:06:22.205 --> 01:06:24.165
genau die Menge aller Teilmengen

01:06:24.165 --> 01:06:25.865
also die Menge aller möglichen Summen

01:06:25.865 --> 01:06:28.245
die ich bilden kann mit den Zahlen die mir gegeben sind

01:06:28.245 --> 01:06:30.125
das entspricht genau der Menge aller Teilmengen

01:06:30.125 --> 01:06:32.185
und das entspricht genau der Menge aller möglichen Zahlen

01:06:32.185 --> 01:06:33.925
die ich mit n Bits bilden kann

01:06:33.925 --> 01:06:34.965
und das sind genau zwei hoch n

01:06:34.965 --> 01:06:36.865
und das ist der beste Algorithmus den es gibt

01:06:36.865 --> 01:06:40.165
es gibt da so probabilistische Sachen

01:06:40.165 --> 01:06:42.165
und es gibt Techniken wo das eben auf

01:06:42.165 --> 01:06:44.165
n hoch 1,36

01:06:44.165 --> 01:06:45.565
2 hoch

01:06:45.565 --> 01:06:48.605
also 1,36 hoch n runterziehen kannst

01:06:48.605 --> 01:06:50.885
und es ist nicht mehr 2 hoch n und das ist beeindruckend

01:06:50.885 --> 01:06:52.605
ja und das ist unglaublich

01:06:52.605 --> 01:06:53.805
aber es ist immer noch exponentiell

01:06:53.805 --> 01:06:56.845
jetzt ist die Frage, gibt es

01:06:56.845 --> 01:06:58.765
für diese Probleme

01:06:58.765 --> 01:07:00.305
auch polynomielle

01:07:00.305 --> 01:07:02.565
Algorithmen, gibt es auch für

01:07:02.565 --> 01:07:03.905
diese Probleme Algorithmen

01:07:03.905 --> 01:07:05.945
die in polynomieller Laufzeit

01:07:05.945 --> 01:07:08.485
das Ergebnis liefern und die Antwort darauf

01:07:08.485 --> 01:07:09.845
ist unklar, die ist unbekannt

01:07:09.845 --> 01:07:14.605
und das ist genau die Frage, ist P gleich NP?

01:07:15.585 --> 01:07:18.925
Jetzt ist es so, da kommt noch dazu, diese Probleme, die man gefunden hat,

01:07:18.925 --> 01:07:22.705
die nennt man NP, nicht deterministisch-polynomial.

01:07:25.765 --> 01:07:28.385
Das sind alle solche, die in exponentieller Laufzeit laufen.

01:07:28.805 --> 01:07:30.645
Und lustigerweise sind die alle irgendwie äquivalent.

01:07:30.785 --> 01:07:35.305
Also man kann die alle so ineinander umformen, dass alle das gleiche sind.

01:07:35.365 --> 01:07:38.825
Das heißt, wenn ich einen Algorithmus für eins von diesen Problemen finde,

01:07:38.825 --> 01:07:40.965
der in polynomieller Laufzeit läuft

01:07:40.965 --> 01:07:43.445
dann habe ich automatisch auch für alle anderen

01:07:43.445 --> 01:07:45.565
einen Algorithmus gefunden

01:07:45.565 --> 01:07:47.685
der auch in polynomieller Laufzeit läuft

01:07:47.685 --> 01:07:49.265
und

01:07:49.265 --> 01:07:50.545
das ist das Verrückte daran

01:07:50.545 --> 01:07:53.225
diese ganze Klasse

01:07:53.225 --> 01:07:55.065
an Problemen sind alle irgendwie

01:07:55.065 --> 01:07:56.585
mehr oder weniger äquivalent

01:07:56.585 --> 01:07:59.205
aber man weiß

01:07:59.205 --> 01:08:01.085
nicht einen einzigen in polynomieller

01:08:01.085 --> 01:08:02.825
Laufzeit zu lösen und das ist die Frage

01:08:02.825 --> 01:08:04.985
gibt es einen solchen Algorithmus, gibt es so einen

01:08:04.985 --> 01:08:07.125
polynomiellen Algorithmus für irgendeins

01:08:07.125 --> 01:08:08.725
dieser Probleme oder gibt es diesen

01:08:08.725 --> 01:08:10.345
Algorithmus nicht. Das heißt,

01:08:11.085 --> 01:08:12.985
gibt es die zwei unterschiedlichen Mengen?

01:08:13.065 --> 01:08:14.985
Es gibt Probleme, die polynomiell lösbar sind

01:08:14.985 --> 01:08:17.005
und Probleme, die nicht polynomiell lösbar sind?

01:08:17.385 --> 01:08:19.045
Oder sind das alles die gleichen?

01:08:19.305 --> 01:08:21.145
Gibt es nur solche, die polynomiell

01:08:21.145 --> 01:08:23.105
lösbar sind? Und das ist die ungeklärte Frage.

01:08:23.245 --> 01:08:24.045
Ist P gleich MP?

01:08:24.645 --> 01:08:26.925
Wenn man dieses Problem löst, kriegt man direkt

01:08:26.925 --> 01:08:28.865
eine Million Dollar überwiesen, weil da gibt es

01:08:28.865 --> 01:08:29.725
einen Clay Price.

01:08:30.805 --> 01:08:32.925
Dafür ein Mathematikpreis,

01:08:34.305 --> 01:08:35.285
der da ausgeschrieben ist.

01:08:35.745 --> 01:08:36.765
Das ist mit einer Million Dollar

01:08:36.765 --> 01:08:37.345
dotiert.

01:08:37.345 --> 01:08:44.105
und ich glaube auch eine Fields-Medaille und eine Turing-Medaille und alle anderen Medaillen, die es so gibt in dem Feld, wären relativ schnell sicher.

01:08:44.105 --> 01:08:49.285
Also ich meine, wenn es irgendwie sowas gäbe wie das wichtigste Problem in der Informatik,

01:08:49.345 --> 01:08:52.665
dann wäre das auf jeden Fall ein Kandidat dafür, also das wichtigste ungelöste Problem.

01:08:53.365 --> 01:08:58.545
Ja, also diese Komplexitätstheorie ist halt schon so.

01:08:58.685 --> 01:09:05.625
Also ich glaube, der Grund, warum das jetzt NP heißt, ist nicht deterministisch-polynomial,

01:09:05.625 --> 01:09:06.985
weil du kannst halt

01:09:06.985 --> 01:09:09.185
mit einer nicht-deterministischen

01:09:09.185 --> 01:09:11.285
Turing-Maschine in

01:09:11.285 --> 01:09:13.385
Polynomialzeit überprüfen, also

01:09:13.385 --> 01:09:15.465
kannst du das halt bestimmen. Und du kannst

01:09:15.465 --> 01:09:17.365
halt mit einer deterministischen Turing-Maschine

01:09:17.365 --> 01:09:19.565
in Polynomialzeit überprüfen, ob die Lösung

01:09:19.565 --> 01:09:20.445
richtig war oder nicht.

01:09:21.345 --> 01:09:22.565
Sozusagen, das ist halt irgendwie

01:09:22.565 --> 01:09:25.465
die Namensgeschichte. Aber es gibt auch noch

01:09:25.465 --> 01:09:27.125
bösere, also es gibt jetzt

01:09:27.125 --> 01:09:29.185
vor den Komplexitätsklassen, es gibt halt

01:09:29.185 --> 01:09:31.485
NPH, das ist NP-vollständig und dann gibt es auch noch

01:09:31.485 --> 01:09:33.385
genau, X-Time drumrum

01:09:33.385 --> 01:09:35.385
und PSPACE und weißer. Ja, da gibt es noch ganz viele

01:09:35.385 --> 01:09:37.465
und diese ganzen Space-Klassen gibt es ja auch alle noch.

01:09:37.565 --> 01:09:38.805
PSPACE und NPACE.

01:09:40.145 --> 01:09:41.545
Da gibt es eine ganz

01:09:41.545 --> 01:09:43.225
große Hierarchie davon. Aber das sind die einzigen,

01:09:43.405 --> 01:09:45.065
die so richtig bekannt sind.

01:09:45.445 --> 01:09:47.225
Ja, und

01:09:47.225 --> 01:09:48.225
es ist halt eben so,

01:09:48.905 --> 01:09:51.625
jede nicht-deterministisch-polynomierte

01:09:51.625 --> 01:09:53.305
Turing-Maschine kannst du trivialerweise

01:09:53.305 --> 01:09:54.925
in eine deterministische

01:09:54.925 --> 01:09:57.425
Turing-Maschine überführen, die halt aber

01:09:57.425 --> 01:09:58.965
zwei hochend Zustände hat.

01:09:59.945 --> 01:10:01.225
Die dann entsprechend

01:10:01.225 --> 01:10:02.925
länger braucht.

01:10:02.925 --> 01:10:05.725
Das heißt, die hat keine polynomiale Laufzeit mehr

01:10:05.725 --> 01:10:08.325
und das ist die Krux an der Sache

01:10:08.325 --> 01:10:10.705
Und jetzt vielleicht noch ganz

01:10:10.705 --> 01:10:13.285
ich weiß nicht, das ist bestimmt wieder nur ein Satz

01:10:13.285 --> 01:10:15.045
der Unterschied zwischen der nicht-deterministischen

01:10:15.045 --> 01:10:16.545
und der deterministischen Turing-Maschine

01:10:16.545 --> 01:10:20.385
Oh, Jochen, das darfst du mal erklären

01:10:20.385 --> 01:10:21.585
Das ist schwer zu erklären

01:10:21.585 --> 01:10:25.245
Naja, sagen wir mal so, das eine ist halt etwas, was wir bauen können

01:10:25.245 --> 01:10:26.805
das andere irgendwie nicht so richtig

01:10:26.805 --> 01:10:27.905
Also sozusagen

01:10:27.905 --> 01:10:29.345
Nein, es ist so

01:10:29.345 --> 01:10:33.045
Ich versuche es mal zu erklären

01:10:33.045 --> 01:10:34.885
Eine Turing-Maschine

01:10:34.885 --> 01:10:37.285
ist ja so ein Automat

01:10:37.285 --> 01:10:38.965
der hat eine gewisse Anzahl Zustände

01:10:38.965 --> 01:10:40.765
und in jedem Zustand macht der bestimmte Dinge

01:10:40.765 --> 01:10:43.485
und in der deterministischen

01:10:43.485 --> 01:10:45.365
Turing-Maschine nimmst du

01:10:45.365 --> 01:10:47.065
immer einen Übergang, du gehst immer von

01:10:47.065 --> 01:10:49.325
einem Zustand in einen anderen Zustand

01:10:49.325 --> 01:10:53.285
weil das ist was wir

01:10:53.285 --> 01:10:54.405
bauen können, wie der Jochen gesagt hat

01:10:54.405 --> 01:10:56.845
wenn der Zustand jetzt A ist und dann

01:10:56.845 --> 01:10:59.305
sind die Bedingungen gegeben, dann gehe ich als nächstes

01:10:59.305 --> 01:11:01.605
in den Zustand B. So. Easy.

01:11:02.945 --> 01:11:03.385
In der

01:11:03.385 --> 01:11:05.285
nicht-deterministischen Turing-Maschine

01:11:05.285 --> 01:11:07.445
legst du dich nicht fest.

01:11:07.685 --> 01:11:09.365
Du sagst, wir gehen jetzt von dem Zustand A

01:11:09.365 --> 01:11:11.545
in alle möglichen anderen Zustände

01:11:11.545 --> 01:11:13.305
und erst wenn wir zu einem Ergebnis kommen,

01:11:13.405 --> 01:11:15.325
sage ich dir, in welchen Zustand ich wirklich gegangen bin.

01:11:17.425 --> 01:11:18.125
Das heißt,

01:11:19.385 --> 01:11:21.145
da erklärt sich auch schon so ein bisschen,

01:11:21.305 --> 01:11:23.005
warum es einfach ist, das

01:11:23.005 --> 01:11:24.785
in der exponentiellen Laufzeit zu machen,

01:11:25.325 --> 01:11:27.165
weil du halt quasi in einem Zeitschritt

01:11:27.165 --> 01:11:29.185
in alle anderen möglichen Zustände

01:11:29.185 --> 01:11:30.885
übergehst, in die du übergehen kannst.

01:11:33.965 --> 01:11:35.465
Und das ist halt nicht zu bauen.

01:11:35.625 --> 01:11:37.465
Das kannst du nicht bauen. Du sagst sozusagen

01:11:37.465 --> 01:11:39.305
erst am Ende, welchen Weg du durch

01:11:39.305 --> 01:11:40.505
die Zustände genommen hast.

01:11:43.085 --> 01:11:43.505
Wobei,

01:11:43.625 --> 01:11:45.405
also ich meine, was ja so ein bisschen

01:11:45.405 --> 01:11:47.225
in die Richtung geht, wäre dann ja, also

01:11:47.225 --> 01:11:49.245
ist nicht das Gleiche, also Quantencomputer sind keine

01:11:49.245 --> 01:11:51.325
Licht-Tetaminist-Tutoring-Maschine, aber

01:11:51.325 --> 01:11:53.405
so ein bisschen, was geht dann in die Richtung?

01:11:54.085 --> 01:11:55.145
Und jetzt bewege ich mich natürlich

01:11:55.145 --> 01:11:57.005
außerhalb von dem, was mich normalerweise

01:11:57.005 --> 01:12:01.125
beschäftige, aber es gibt halt eine Klasse von Problemen, die halt durch

01:12:01.125 --> 01:12:04.785
den Quantencomputer halt in polynomial Zeit lösbar sind,

01:12:05.065 --> 01:12:08.105
werden, die das halt normalerweise nicht sind. Dazu gehört sowas wie

01:12:08.105 --> 01:12:13.165
Graphenisometrie, Primzahlfaktorisierung,

01:12:13.265 --> 01:12:16.845
das ist ein wichtiges, also das ist halt blöd, wenn das Quantencomputer

01:12:16.845 --> 01:12:19.445
tatsächlich leben sollte. Das macht RSA kaputt.

01:12:19.985 --> 01:12:23.145
Und für DSA gibt es glaube ich auch so einen.

01:12:23.145 --> 01:12:46.445
Ja, also das Shores-Algorithmus heißt das Ding irgendwie, das macht auf dem Quantencomputer das Ding halt in Polynominalzeit nieder und das ist auch schon implementiert worden, also wenn es einen mit genügend Qubits gibt, dann haben wir ein Problem. Es sei denn, wir haben auf Post-Quantum-Kyphografie gesetzt oder sowas, aber keiner macht, weil das kann doch gar nicht passieren. Naja, mal sehen.

01:12:46.445 --> 01:13:03.745
Ja, ist aber tatsächlich vor ein paar Monaten, Schrägstrich Jahren, hat die NIST auf einmal sehr und auch die NSA auf einmal sehr plötzlich ihre Empfehlung geändert, ohne zu begründen warum. Also es gibt schon so Hinweise, dass man dringend auf Postquanten-Algorithmen wechseln sollte.

01:13:03.745 --> 01:13:06.985
Okay, ja, jedenfalls die Komplexität.

01:13:07.065 --> 01:13:10.245
In 50 bis 100 Jahren wissen wir das dann auch, ob die mehr wussten als wir.

01:13:10.245 --> 01:13:12.305
Ja, also diese

01:13:12.305 --> 01:13:14.505
Komplexitätsklasse wird glaube ich dann MPI genannt,

01:13:14.625 --> 01:13:16.405
so NP Intermediate oder so und da sind halt

01:13:16.405 --> 01:13:17.845
so ein paar Dinger drin, leider, ja,

01:13:17.965 --> 01:13:18.845
auch so ein paar wichtige.

01:13:20.925 --> 01:13:22.585
Aber tatsächlich ist es immer noch,

01:13:22.725 --> 01:13:24.385
also, ach genau, und diese Klasse gibt es überhaupt

01:13:24.385 --> 01:13:26.485
nur dann, wenn P ungleich NP gilt.

01:13:26.605 --> 01:13:28.585
Wenn P gleich NP gilt, ist das natürlich sowieso Quatsch.

01:13:29.185 --> 01:13:30.045
Aber, ja, da ist es vorbei.

01:13:30.585 --> 01:13:32.285
Aber ich meine so wirklich, ehrlich gesagt,

01:13:32.405 --> 01:13:34.485
so realistisch kann man das nicht so richtig annehmen, weil

01:13:34.485 --> 01:13:36.585
also, das hätte auch schon

01:13:36.585 --> 01:13:38.105
jemand rausgekriegt, wenn das wirklich wäre.

01:13:38.105 --> 01:13:40.125
also, ja. Ja, aber guck mal, wenn das

01:13:40.125 --> 01:13:42.245
so eine krasse galaktische Sache ist,

01:13:42.305 --> 01:13:44.045
wo du halt so Konstanten brauchst, die 10 hoch

01:13:44.045 --> 01:13:46.005
40 groß sind und ein

01:13:46.005 --> 01:13:47.965
Lookup-Table, der 10 hoch 100

01:13:47.965 --> 01:13:50.305
Einträge hat, dann

01:13:50.305 --> 01:13:52.325
finden wir diesen Algorithmus

01:13:52.325 --> 01:13:53.965
nicht, weil da sind unsere Gehirne einfach nicht

01:13:53.965 --> 01:13:54.725
groß genug dafür.

01:13:56.105 --> 01:13:58.485
Ja, kann schon sein. Da wäre dann

01:13:58.485 --> 01:13:59.645
ein Beweis halt besser und

01:13:59.645 --> 01:14:01.785
Mathematiker, muss ich sagen, ein Beweis ist immer besser.

01:14:03.725 --> 01:14:03.905
Ja,

01:14:04.125 --> 01:14:04.465
naja.

01:14:06.645 --> 01:14:08.045
Es ist ja nicht nur so, ja, es ist ja

01:14:08.045 --> 01:14:09.865
nicht nur, man kriegt ja die Million Dollar nicht, wenn man

01:14:09.865 --> 01:14:12.125
diesen Algorithmus findet, man kriegt ja die Million Dollar

01:14:12.125 --> 01:14:14.085
auch, wenn du beweist, dass es diesen Algorithmus

01:14:14.085 --> 01:14:15.825
nicht gibt, also wenn du P ungleich NP

01:14:15.825 --> 01:14:16.445
beweisen kannst.

01:14:19.225 --> 01:14:20.005
Nur ist bisher

01:14:20.005 --> 01:14:20.885
auch niemandem gelungen.

01:14:21.525 --> 01:14:23.425
Also es ist auch nicht so, dass es nicht

01:14:23.425 --> 01:14:25.685
versucht worden wäre, es haben schon diverse Leute

01:14:25.685 --> 01:14:27.285
sich an dem Ding die Zähne ausgedrückt.

01:14:29.025 --> 01:14:30.045
Ab und zu gucke ich da mal rein

01:14:30.045 --> 01:14:31.405
und denke so, oh interessanter Blogartikel

01:14:31.405 --> 01:14:33.645
und dann denke ich mir noch so den ersten, zweiten Absatz

01:14:33.645 --> 01:14:35.545
ganz interessant, dann denke ich mir so, oh

01:14:35.545 --> 01:14:37.785
das wird aber jetzt von einer Totenlösung schon ein bisschen wild

01:14:37.785 --> 01:14:39.285
und dann irgendwann denke ich mir so,

01:14:39.365 --> 01:14:43.565
dann fangen die Leute an, davon zu reden,

01:14:43.685 --> 01:14:45.365
so, ah ja gut, okay, mit normaler Mathematik

01:14:45.365 --> 01:14:47.225
kommen wir jetzt hier, jetzt müssen wir eine neue Mathematik,

01:14:47.305 --> 01:14:48.425
irgendwie brauchen wir um dabei,

01:14:48.745 --> 01:14:50.045
okay, später lesen,

01:14:50.385 --> 01:14:53.045
Keine Schlafflektüre ordnen.

01:14:55.625 --> 01:14:57.485
Ja, als ich

01:14:57.485 --> 01:14:59.105
ich hatte eine Mathematikstudie

01:14:59.105 --> 01:15:00.945
und ich hatte da auch einmal eine sehr,

01:15:01.065 --> 01:15:03.305
oh, das ist jetzt auch wieder eine Überleitung zu Win und Fail,

01:15:04.045 --> 01:15:05.125
ich hatte eine sehr lange

01:15:05.125 --> 01:15:07.125
Unterhaltung mit jemandem, dem es

01:15:07.125 --> 01:15:37.105
und Jochen unterhalten sich über die Programmiersprache Python

01:15:37.125 --> 01:15:38.005
als notwendig.

01:15:39.965 --> 01:15:40.345
Hatte

01:15:40.345 --> 01:15:41.725
logarithmische Komplexität?

01:15:44.045 --> 01:15:45.045
Es gibt auch

01:15:45.045 --> 01:15:47.125
Probleme mit logarithmischer Komplexität,

01:15:47.345 --> 01:15:47.705
aber es

01:15:47.705 --> 01:15:50.625
gibt auch Probleme mit konstanter

01:15:50.625 --> 01:15:52.945
Komplexität. Auch das ist sehr überraschend für viele Leute,

01:15:53.705 --> 01:15:55.365
dass zum Beispiel

01:15:55.365 --> 01:15:56.765
Dictionaries

01:15:56.765 --> 01:15:59.085
O von 1 sind bei den wichtigen Operationen.

01:15:59.805 --> 01:16:00.345
Auch das

01:16:00.345 --> 01:16:03.025
überrascht Leute manchmal,

01:16:03.025 --> 01:16:04.945
wenn man das denen beibringt,

01:16:05.145 --> 01:16:05.805
dass man sagt, okay,

01:16:05.805 --> 01:16:35.785
und das ist ja schon was Überraschendes, dass das Einfügen eines Wertes in den Dictionary mit einem Schlüssel dauert im Wesentlichen genauso lange wie das Einfügen eines Wertes in den Dictionary mit einem Schlüssel.

01:16:35.805 --> 01:16:37.205
fügen in den Dictionary mit

01:16:37.205 --> 01:16:39.665
eine Milliarde Schlüssel

01:16:39.665 --> 01:16:40.745
oder 10 Milliarden Schlüssel.

01:16:41.665 --> 01:16:43.325
Ist schon eine überraschende Sache,

01:16:43.905 --> 01:16:45.665
dass es

01:16:45.665 --> 01:16:47.205
sowas gibt und dass es sowas

01:16:47.205 --> 01:16:49.325
trivial für uns zugänglich gibt.

01:16:51.205 --> 01:16:52.965
Aber du wolltest auch die Historie hinaus,

01:16:53.345 --> 01:16:54.945
in der du mit jemandem

01:16:54.945 --> 01:16:57.505
die Nichtbeweisbarkeit...

01:16:57.505 --> 01:16:59.205
Ja, das ist im Wesentlichen die Story,

01:16:59.845 --> 01:17:01.605
dass halt jemand

01:17:01.605 --> 01:17:03.425
versucht hat, mich davon zu überzeugen, dass es die

01:17:03.425 --> 01:17:05.085
universelle Mathematik gibt.

01:17:05.085 --> 01:17:09.005
und er hat dann auch irgendwann angefangen von seinen Erfahrungen in Indien zu sprechen,

01:17:10.025 --> 01:17:13.185
wo er Einblick in das Universum bekommen hatte,

01:17:14.485 --> 01:17:18.865
was mich natürlich in unserem 70er Jahre Betonbau

01:17:18.865 --> 01:17:23.045
im Tübinger Institut für Mathematik relativ wenig beeindruckt hat.

01:17:24.965 --> 01:17:26.185
Ja, es gibt so Leute, die glauben, dass...

01:17:26.185 --> 01:17:27.865
Wir beweisen, das war irgendwie, keine Ahnung,

01:17:28.005 --> 01:17:30.825
irgendwie Ramanujan 2 oder so und du hast ihn weggeschickt.

01:17:31.005 --> 01:17:31.425
Meine Güte.

01:17:31.705 --> 01:17:34.425
Ja, das war neue Mathematik und ich habe sie halt...

01:17:35.085 --> 01:17:37.445
verschmäht. Man muss ja auch

01:17:37.445 --> 01:17:38.985
dazu sagen, Vermaas-Theorem

01:17:38.985 --> 01:17:41.565
war ja 400 Jahre lang

01:17:41.565 --> 01:17:43.425
ungelöst und das ist wesentlich leichter

01:17:43.425 --> 01:17:45.205
zu beschreiben als P gleich NP.

01:17:46.365 --> 01:17:47.565
Vielleicht ist da einfach

01:17:47.565 --> 01:17:49.225
noch nicht genügend Zeit reingeflossen. Vielleicht

01:17:49.225 --> 01:17:51.285
ist die Mathematik, die wir jetzt haben, einfach

01:17:51.285 --> 01:17:52.445
wirklich nicht ausreichend,

01:17:53.265 --> 01:17:55.585
um diesen Nicht-Existenzbeweis

01:17:55.585 --> 01:17:57.405
zu führen. Und irgendwann kommt so was

01:17:57.405 --> 01:17:59.405
ganz Verrücktes um die Ecke wie Andrew Wiles,

01:18:00.525 --> 01:18:01.685
der ja

01:18:01.685 --> 01:18:03.405
Sachen bewiesen hat, die überhaupt gar nichts damit

01:18:03.405 --> 01:18:04.045
zu tun haben.

01:18:05.085 --> 01:18:12.405
Das war jetzt ein bisschen zu weit weg für den Podcast, du musst jetzt wieder herauskommen

01:18:12.405 --> 01:18:16.705
Ja, Andrew Wiles ist derjenige, der den Satz von Fermat bewiesen hat

01:18:16.705 --> 01:18:19.605
das Theorem von Fermat

01:18:19.605 --> 01:18:25.145
aber er hat es nicht auf direktem Wege bewiesen, sondern er hat ein ganz anderes Theorem

01:18:25.145 --> 01:18:29.145
aus einem ganz anderen Bereich der Mathematik bewiesen, wo man allerdings vorher schon

01:18:29.145 --> 01:18:31.605
wusste, dass es äquivalent ist zum Theorem von Fermat

01:18:31.605 --> 01:18:36.525
oder dass es das Theorem von Fermat als Teilergebnis enthält, um es mal so zu sagen.

01:18:36.705 --> 01:18:43.865
Der erste Eintrag auf Google sagt dazu, dass er durch seinen Beweis der Taniyama-Shimura-Vermutung berühmt wurde.

01:18:43.885 --> 01:18:44.245
Genau richtig.

01:18:44.325 --> 01:18:45.465
Ach so, ja, genau, okay.

01:18:45.465 --> 01:18:51.705
Ja, und die enthält eben Fermats letztes Theorem als Teilmenge, mehr oder weniger.

01:18:52.625 --> 01:18:55.525
Also er hat mehr bewiesen als Fermats letztes Theorem, aber dafür ist er bekannt.

01:18:55.645 --> 01:18:57.985
Dafür gibt es auch einen Film über ihn.

01:18:57.985 --> 01:18:59.525
und

01:18:59.525 --> 01:19:04.505
wird uns allen lange im Gedächtnis

01:19:04.505 --> 01:19:06.485
bleiben dafür. Und so

01:19:06.485 --> 01:19:08.405
genauso wird es halt auch sein bei p gleich np,

01:19:08.585 --> 01:19:10.325
dass sich die Mathematik irgendwo hinmeandert

01:19:10.325 --> 01:19:11.545
und irgendwann sagt einer halt,

01:19:12.285 --> 01:19:13.125
oh, Moment mal,

01:19:13.825 --> 01:19:16.465
wenn ich da richtig rum

01:19:16.465 --> 01:19:17.445
drauf schaue, dann

01:19:17.445 --> 01:19:20.305
sieht man, dass es einen solchen Algorithmus

01:19:20.305 --> 01:19:21.665
nicht geben kann und zack,

01:19:22.465 --> 01:19:23.965
in 300 Jahren halt.

01:19:25.225 --> 01:19:25.425
Tja.

01:19:25.425 --> 01:19:28.925
Da sind wir vielleicht nicht mehr im Leben

01:19:28.925 --> 01:19:29.685
Tja

01:19:29.685 --> 01:19:32.145
Je nachdem wann wir geimpft werden

01:19:32.145 --> 01:19:33.885
War das nicht ein schöner Bogen?

01:19:35.945 --> 01:19:36.665
Ja, ja, ja

01:19:36.665 --> 01:19:40.685
Ja, aber

01:19:40.685 --> 01:19:42.425
Ja, jetzt haben wir ganz viel über Fails gesprochen

01:19:42.425 --> 01:19:45.125
Gibt es denn auch irgendwas, wo ihr so richtig

01:19:45.125 --> 01:19:46.925
sagen würdet, das hat funktioniert bei euch

01:19:46.925 --> 01:19:48.885
in Projekten, weil das ist ja was, was schöner ist

01:19:48.885 --> 01:19:49.985
und was leider nicht so häufig

01:19:49.985 --> 01:19:52.485
Also oft

01:19:52.485 --> 01:19:54.905
Das hatte ich mir auch schon

01:19:54.905 --> 01:19:56.485
aufgeschrieben. Also Dicts,

01:19:56.685 --> 01:19:59.125
diese Art Datenstruktur

01:19:59.125 --> 01:20:00.905
ist etwas, was man einfach ständig braucht.

01:20:01.345 --> 01:20:02.105
Und das ist total super.

01:20:02.685 --> 01:20:04.865
Also wer nur Dicts hat, nur Listen

01:20:04.865 --> 01:20:06.925
und nur Skalare, da kommt man damit schon sehr,

01:20:07.105 --> 01:20:09.005
sehr weit. Also wenn man das richtig

01:20:09.005 --> 01:20:11.085
verstanden hat

01:20:11.085 --> 01:20:12.565
und richtig verwendet,

01:20:12.645 --> 01:20:13.925
dann ist man da schon

01:20:13.925 --> 01:20:16.905
auf einem echt guten Weg, weil

01:20:16.905 --> 01:20:18.685
das meiste kriegst du damit halt schon klein.

01:20:21.045 --> 01:20:23.085
Und das summiert auch ganz viele so Techniken,

01:20:23.085 --> 01:20:25.525
die man sich im Informatikstudium

01:20:25.525 --> 01:20:27.265
ganz schwer erarbeiten muss mit Bäumen

01:20:27.265 --> 01:20:28.805
und mit Balancieren und mit

01:20:28.805 --> 01:20:31.265
Binärsuche und so Zeugs, das geht da alles

01:20:31.265 --> 01:20:33.365
weg, weil das einfach jetzt schon ist, schon drin, so, fertig

01:20:33.365 --> 01:20:33.985
Ja

01:20:33.985 --> 01:20:37.325
Ja, und das ist halt total nett, also das würde ich

01:20:37.325 --> 01:20:38.845
sagen, ist ein großer Win, das ist halt bei

01:20:38.845 --> 01:20:41.005
ich meine, bei diversen

01:20:41.005 --> 01:20:42.905
unterschiedlichen Programmiersprachen ist das halt sozusagen

01:20:42.905 --> 01:20:45.085
das Basiskonzept, das eingebaut zu haben und dann damit

01:20:45.085 --> 01:20:47.265
schnell zum Ziel zu kommen, ne, das ist

01:20:47.265 --> 01:20:49.325
bei PHP so, das ist bei Perl

01:20:49.325 --> 01:20:51.325
so, Ruby und Rails eben

01:20:51.325 --> 01:20:53.065
Python, ich bin dann halt bei Python

01:20:53.065 --> 01:20:54.265
hängen geblieben. Ich würde sagen,

01:20:54.805 --> 01:20:56.785
Ruby on Rails ist auch eine gültige

01:20:56.785 --> 01:20:58.785
Programmiersprachenlösung,

01:20:58.865 --> 01:20:59.525
wann hängen bleiben kann.

01:21:00.685 --> 01:21:03.105
Vielleicht auch Perl 6,

01:21:03.185 --> 01:21:04.465
das habe ich mir dann nicht mehr angeguckt, keine Ahnung.

01:21:05.945 --> 01:21:07.085
Gibt es das schon? Ist das schon raus?

01:21:07.185 --> 01:21:08.105
Das ist schon raus, tatsächlich.

01:21:08.105 --> 01:21:08.485
Ja, ja.

01:21:09.225 --> 01:21:09.965
Das ist verrückt.

01:21:13.445 --> 01:21:14.105
Aber genau,

01:21:14.965 --> 01:21:15.165
also

01:21:15.165 --> 01:21:16.905
ja,

01:21:17.425 --> 01:21:19.785
das ist toll, dass es den allen gemeinsam

01:21:19.785 --> 01:21:20.945
und das funktioniert wirklich gut.

01:21:20.945 --> 01:21:23.665
Hast du auch konkrete Kriegsgeschichten, Jochen?

01:21:23.765 --> 01:21:25.705
Also ich meine, wir haben alle konkrete Geschichten, wie wir schon mal

01:21:25.705 --> 01:21:27.645
eine Datenbank gelöscht haben und wie wir schon mal

01:21:27.645 --> 01:21:29.685
Ein Win, ja, so

01:21:29.685 --> 01:21:31.125
ein Win. So ein konkreten Win.

01:21:31.125 --> 01:21:33.205
Ja, doch, vielleicht auch

01:21:33.205 --> 01:21:34.905
Python tatsächlich

01:21:34.905 --> 01:21:37.485
ein wenig beachtetes

01:21:37.485 --> 01:21:39.445
Modul

01:21:39.445 --> 01:21:41.025
aus einem total uninteressanten

01:21:41.025 --> 01:21:42.905
Spiralarm der Standardbibliothek,

01:21:43.745 --> 01:21:45.245
über das ich mal gestolpert bin,

01:21:45.385 --> 01:21:47.165
hat unerwartete

01:21:47.165 --> 01:21:48.925
Vorteile gehabt. Und zwar

01:21:48.925 --> 01:21:51.725
das Array-Modul. Ich weiß nicht, ob euch das was sagt.

01:21:53.365 --> 01:21:54.605
Da habe ich tatsächlich heute

01:21:54.605 --> 01:21:57.845
darüber nachgedacht, ob das überhaupt was ist, was man je braucht.

01:21:58.485 --> 01:22:00.805
Ja, denkt man eigentlich, so braucht man nicht unbedingt,

01:22:00.965 --> 01:22:04.025
aber tatsächlich, ich habe es mal verwendet

01:22:04.025 --> 01:22:06.545
und das war ein ziemlicher, oder ich fand, das war ein Win.

01:22:09.025 --> 01:22:10.045
Und zwar hatte ich

01:22:10.045 --> 01:22:12.265
das Problem, ich mache ja schon lange

01:22:12.265 --> 01:22:15.525
Text-Klassifikationsgeschichten und so Machine Learning mit Texten.

01:22:16.485 --> 01:22:18.725
Ganz am Anfang gab es da noch keine Bibliotheken, da haben wir das

01:22:18.725 --> 01:22:20.805
alles selber gemacht und irgendwie unsere

01:22:20.805 --> 01:22:22.225
Brühe, ja,

01:22:22.605 --> 01:22:24.005
ohne Spur,

01:22:24.725 --> 01:22:26.785
bergauf durch den Schnee, genau.

01:22:27.865 --> 01:22:28.605
Aber inzwischen gibt es ja

01:22:28.605 --> 01:22:30.485
Cyclet Learn und

01:22:30.485 --> 01:22:32.865
das habe ich

01:22:32.865 --> 01:22:34.125
auch verwendet, das habe ich vor allen Dingen so

01:22:34.125 --> 01:22:35.585
Kegel-Competitions verwendet,

01:22:36.725 --> 01:22:38.885
also so Machine Learning-Wettbewerbs-Dinger

01:22:38.885 --> 01:22:40.145
und

01:22:40.145 --> 01:22:42.585
aber ich hatte halt nicht so viel

01:22:42.585 --> 01:22:44.805
Hauptspeicher und das Ding

01:22:44.805 --> 01:22:46.725
ist relativ verschwenderisch mit dem Hauptspeicher

01:22:46.725 --> 01:22:48.045
umgegangen, weil

01:22:48.045 --> 01:23:11.965
weil da wurde halt, also du zerlegst halt Texte in, ja, also 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, das angibt wie wichtig dieses Wort im Text ist und dafür musst du die ganzen Worte zählen und so

01:23:11.965 --> 01:23:14.325
und Scikit-Learn hat

01:23:14.325 --> 01:23:15.065
diese

01:23:15.065 --> 01:23:18.265
Zellgeschichten, also der heißt das Ding halt

01:23:18.265 --> 01:23:20.525
CountVectorizer oder Vectorizer allgemein

01:23:20.525 --> 01:23:22.125
für diesen Text irgendwie

01:23:22.125 --> 01:23:24.705
in so ein Vector verwandeln,

01:23:25.225 --> 01:23:26.185
hat

01:23:26.185 --> 01:23:28.445
da erst Listen draus gemacht und dann

01:23:28.445 --> 01:23:30.425
halt auch die ganzen Counts und so in Listen

01:23:30.425 --> 01:23:30.765
gehalten.

01:23:32.685 --> 01:23:33.925
Und Listen sind halt nicht so richtig...

01:23:33.925 --> 01:23:35.405
Was ja prinzipiell nicht so blöd ist.

01:23:35.625 --> 01:23:38.185
Prinzipiell nicht so blöd, funktioniert das auch alles praktisch, du musst ja halt nicht

01:23:38.185 --> 01:23:40.065
vorher überlegen, okay, wie lang ist denn jetzt mein Text, sondern

01:23:40.065 --> 01:23:42.265
einfach, weil du fügst halt

01:23:42.265 --> 01:23:43.285
einfach Listen ein, das geht.

01:23:44.325 --> 01:23:45.585
Der Nachteil dabei ist halt

01:23:45.585 --> 01:23:48.265
auch eine einfache Zahl, wie so ein Count

01:23:48.265 --> 01:23:50.065
braucht halt irgendwie irgendwas um die,

01:23:50.225 --> 01:23:50.765
also ich weiß nicht,

01:23:51.965 --> 01:23:54.345
irgendwas 20 Byte, etwas über 20 Byte

01:23:54.345 --> 01:23:55.805
in...

01:23:55.805 --> 01:23:57.425
Integer sind groß.

01:23:58.085 --> 01:23:59.025
Und das ist halt...

01:23:59.025 --> 01:24:02.025
Wir haben nochmal ein bisschen Overhead, also

01:24:02.025 --> 01:24:04.145
es ist deutlich

01:24:04.145 --> 01:24:06.065
mehr, als du brauchen würdest, wenn du jetzt einfach nur den

01:24:06.065 --> 01:24:07.805
nackten Zahlenwert als

01:24:07.805 --> 01:24:09.025
Byte

01:24:09.025 --> 01:24:11.585
4-Byte-Integer

01:24:11.585 --> 01:24:13.605
oder so, so 32-Bit

01:24:13.605 --> 01:24:14.865
oder 64-Bit, wie auch immer.

01:24:16.225 --> 01:24:17.285
Ja, und

01:24:17.285 --> 01:24:19.925
bei mir ist der Hauptspeicher

01:24:19.925 --> 01:24:20.485
halt tatsächlich bei

01:24:20.485 --> 01:24:23.405
so einer Competition halt ausgegangen.

01:24:23.605 --> 01:24:25.745
Ich dachte mir so, ah, okay, kriege ich das irgendwie gedrückt?

01:24:28.465 --> 01:24:28.905
Und

01:24:28.905 --> 01:24:31.545
da bin ich dann halt über dieses Array-Modul gestolpert

01:24:31.545 --> 01:24:32.665
und

01:24:32.665 --> 01:24:35.685
ja, das hat tatsächlich funktioniert.

01:24:36.125 --> 01:24:37.325
Und zwar kann man ja einfach

01:24:37.325 --> 01:24:38.925
statt einer Liste so ein Array nehmen

01:24:39.025 --> 01:24:46.325
und dann braucht es tatsächlich nur noch so viel Speicher, wie halt das Integer, was man da speichert,

01:24:47.425 --> 01:24:48.365
halt an Platz braucht.

01:24:49.165 --> 01:24:51.385
Und das ließ sich relativ problemlos austauschen

01:24:51.385 --> 01:24:56.005
und das hat halt irgendwie so den Speicherbedarf gedrittelt ungefähr.

01:24:57.065 --> 01:25:00.825
Und genau, ich habe damals halt dann, dass das geht,

01:25:00.905 --> 01:25:03.965
habe ich irgendwann halt in dieser, glaube ich,

01:25:03.965 --> 01:25:06.165
Predict Close Open Questions

01:25:06.165 --> 01:25:07.805
in Stack Overflow

01:25:07.805 --> 01:25:10.065
habe ich das irgendwie gesehen und dann habe ich irgendwann mal

01:25:10.065 --> 01:25:12.165
ein Pull-Request rausgemacht, das war dann

01:25:12.165 --> 01:25:14.385
aber ein bisschen später, irgendwann 2015

01:25:14.385 --> 01:25:16.165
oder so. Das ist auch tatsächlich durchgegangen

01:25:16.165 --> 01:25:16.805
und seitdem

01:25:16.805 --> 01:25:19.725
braucht halt

01:25:19.725 --> 01:25:22.225
TF-EDF-Vectorizer und so nur noch ein Drittel Hauptspeicher

01:25:22.225 --> 01:25:24.285
und man kann ja damit größere...

01:25:24.285 --> 01:25:26.205
Und das ist auch

01:25:26.205 --> 01:25:28.465
vor allen Dingen deswegen einfach so durchgegangen,

01:25:29.105 --> 01:25:30.225
weil man eben nichts

01:25:30.225 --> 01:25:32.185
installieren musste oder nichts Kompliziertes machen

01:25:32.185 --> 01:25:33.825
musste, sondern man konnte einfach das

01:25:33.825 --> 01:25:35.005
stinknormale Array

01:25:35.005 --> 01:25:37.565
Modul aus der Standardbibliothek nehmen.

01:25:38.065 --> 01:25:40.205
Einfach ein anderer Konstruktor, den du aufgerufen hast.

01:25:41.385 --> 01:25:42.365
Ja, also der Code

01:25:42.365 --> 01:25:44.105
hat sich dann auch nochmal ein paar Schritte geändert, aber

01:25:44.105 --> 01:25:45.545
ja.

01:25:45.885 --> 01:25:47.585
Ja, aber das ist natürlich echt cool.

01:25:47.745 --> 01:25:50.305
Auch was echt für die Welt

01:25:50.305 --> 01:25:51.165
getan sozusagen.

01:25:52.805 --> 01:25:54.165
Ja, gut. Ich weiß nicht, ob das

01:25:54.165 --> 01:25:55.405
für einen kleinen Teil der Welt, aber

01:25:55.405 --> 01:25:57.305
ja, es ist ein witziges, aber

01:25:57.305 --> 01:25:59.345
kann man durchaus als Wien.

01:26:00.705 --> 01:26:01.245
Das ist echt cool.

01:26:01.245 --> 01:26:18.845
Um das noch kurz nachzuführen, das Array-Modul ist einfach sozusagen gepackte Listen, also quasi C-Structures oder C-Arrays als Python-Bibliothek und sorgen halt dafür, dass man nicht genau diese Listen-Operationen hat, aber dafür hat man halt auch nicht den Listen-Auwert.

01:26:19.645 --> 01:26:22.085
Ja, es muss halt alles vom gleichen Typ sein, was da drin ist.

01:26:23.405 --> 01:26:24.865
Die Größe muss bekannt sein.

01:26:24.865 --> 01:26:54.865
Ja, genau, das heißt, man muss sich selber darum kümmern, dass man das irgendwie, also die vergrößern sich irgendwie selber, wobei man muss aufpassen, dass die verdoppelt, glaube ich, den Platz irgendwie dann halt, wenn man das einfach so naiv macht, man kann das aber auch selber einstellen und ich glaube, was da unten drunter liegt, also das, was die Leute dann immer, sie nennen das irgendwie dann Type Memory View oder so, ist halt einfach sozusagen ein Stück Hauptspeicher mit einem Typ dran Ja, das ist witzig Ich habe tatsächlich auch eine Geschichte, die ist aber sozusagen das Gegenteil von deiner Geschichte

01:26:54.865 --> 01:26:56.825
und ich glaube, ganz super passt zu dieser Frage

01:26:56.825 --> 01:26:58.905
mit den Listen, die Frage mit den Dicts,

01:26:59.545 --> 01:27:00.705
weil wir hatten ja kurz darüber gesprochen,

01:27:00.805 --> 01:27:02.545
dass Dicts so schnell gehen und

01:27:02.545 --> 01:27:04.585
wenn Listen jetzt so cool sind über Array,

01:27:04.945 --> 01:27:06.185
wie gehen denn Dicts so schnell?

01:27:06.305 --> 01:27:08.725
Vielleicht da nochmal kurz, also das ist ja irgendwie implementiert,

01:27:08.825 --> 01:27:10.785
aber wie funktioniert denn das?

01:27:10.905 --> 01:27:12.625
Es gibt ja ein Table

01:27:12.625 --> 01:27:14.565
über dieses Dict und da guckt man einfach drin

01:27:14.565 --> 01:27:15.885
oder wie macht man das?

01:27:17.585 --> 01:27:18.945
Ja, da gibt es verschiedene Techniken,

01:27:19.205 --> 01:27:20.945
aber im Wesentlichen ist so ein Dictionary

01:27:20.945 --> 01:27:22.545
ja ein sogenannter

01:27:22.545 --> 01:27:23.365
Hashtable.

01:27:23.365 --> 01:27:29.705
und das ist auch, das gibt es eigentlich in den allermeisten Programmiersprachen, die heißen immer ein kleines bisschen anders.

01:27:29.825 --> 01:27:31.365
In Java zum Beispiel heißen sie HashMap.

01:27:34.325 --> 01:27:40.965
Der Trick ist sozusagen, dass man eine Liste, also man sieht das Dictionary,

01:27:41.545 --> 01:27:46.705
ein Dictionary ist ja eine Zuordnung von einem Key-Wert zu einem Value-Wert.

01:27:48.125 --> 01:27:52.225
Also unter einem bestimmten Key habe ich irgendeinen Value eingespeichert.

01:27:52.225 --> 01:27:54.485
So das klassische Modell ist das Telefonbuch

01:27:54.485 --> 01:27:56.685
Zum Key Dominic ist deine Telefonnummer

01:27:56.685 --> 01:27:58.585
eingespeichert und zum Key Jochen

01:27:58.585 --> 01:28:00.785
ist Jochens Telefonnummer eingespeichert

01:28:00.785 --> 01:28:00.785
und und und und und und und und und und und und und und und und und und und und und und und und und und und und und und und und und

01:28:22.225 --> 01:28:24.065
sein oder kann irgendwas sein. Das spielt

01:28:24.065 --> 01:28:24.705
erstmal keine Rolle.

01:28:26.125 --> 01:28:28.305
Jetzt ist ja schon mal, diese Datenstruktur an sich

01:28:28.305 --> 01:28:29.825
ist ja schon mal schwierig zu visualisieren.

01:28:29.985 --> 01:28:31.525
Wie würde man sowas speichern?

01:28:32.165 --> 01:28:34.525
Die einfachste Liste sowas zu speichern

01:28:34.525 --> 01:28:36.225
ist, dass man sich sozusagen

01:28:36.225 --> 01:28:38.405
diese Paare speichert. Einfach als Abfolge

01:28:38.405 --> 01:28:38.845
von Paaren.

01:28:39.885 --> 01:28:42.065
Das erste, was ich mir gemerkt habe,

01:28:42.205 --> 01:28:44.265
Dominik ist deine Telefonnummer, also schreibe ich mir

01:28:44.265 --> 01:28:45.965
auf in meine Liste oben

01:28:45.965 --> 01:28:48.465
Dominik, Telefonnummer von Dominik.

01:28:48.545 --> 01:28:48.805
Eins.

01:28:49.665 --> 01:28:51.785
Und dann kommt der Jochen und dann schreibe ich mir Jochens

01:28:51.785 --> 01:28:56.425
Namen in meine Liste und schreibt mir halt in meine Liste rein, Jochen, 17.

01:28:57.045 --> 01:29:00.465
Telefonnummer von Jochen ist 17. Mist, da habe ich jetzt deine Telefonnummer

01:29:00.465 --> 01:29:04.525
verraten. Und dann merke ich mir meine Telefonnummer

01:29:04.525 --> 01:29:07.925
auch noch, das heißt, ich schreibe mir in meine Liste, in meine Abfolge von Werten einfach rein,

01:29:07.985 --> 01:29:10.325
Johannes, 42. Das ist meine Telefonnummer.

01:29:12.705 --> 01:29:16.065
Und das ist gut, weil das bedeutet, wenn ich eine neue Telefonnummer eintragen möchte,

01:29:16.185 --> 01:29:20.125
dann ist das ganz einfach. Ich muss nur mir dieses Paar merken und es als Ende meiner Liste schreiben.

01:29:20.125 --> 01:29:20.725
und das ist leicht.

01:29:22.525 --> 01:29:24.585
Das Herausfinden eines Eintrags

01:29:24.585 --> 01:29:26.205
ist da aber langsam, weil ich muss von oben

01:29:26.205 --> 01:29:28.265
nach unten durchgehen. Wenn ich jetzt nach dem Eintrag

01:29:28.265 --> 01:29:30.225
für Johannes suche, muss ich mir den ersten Eintrag

01:29:30.225 --> 01:29:32.205
anschauen und sehen, ist das die

01:29:32.205 --> 01:29:34.085
Telefonnummer, ist das der Name, den ich suche?

01:29:34.145 --> 01:29:35.665
Da steht Dominik, also es ist nicht der Name.

01:29:36.845 --> 01:29:38.145
Dann schaue ich mir den zweiten

01:29:38.145 --> 01:29:40.245
Eintrag an und sage, ist das

01:29:40.245 --> 01:29:42.305
der Eintrag, den ich suche? Und da steht Jochen

01:29:42.305 --> 01:29:44.325
und es ist also nicht der Eintrag,

01:29:44.465 --> 01:29:46.405
den ich suche. Und erst der dritte Eintrag, den ich suche

01:29:46.405 --> 01:29:48.145
ist der Eintrag, wo Johannes

01:29:48.145 --> 01:29:49.865
mit meiner Telefonnummer dabei steht. Das heißt,

01:29:50.125 --> 01:30:02.447
In diesem Fall wenn ich das so implementieren w diese Datenstruktur dann w die Insertion also das Einf eines Eintrags O von 1 weil es immer gleich lang dauert ein hinten hinschreiben Aber das Heraussuchen w O von N und das ist schlecht weil m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m

01:30:24.947 --> 01:30:29.587
Genau, und jetzt kommt die Magie dazu, die magische Zutat sind Hashes.

01:30:31.527 --> 01:30:47.807
Und zwar, also man kennt Hashes ja üblicherweise aus so einem Bereich, dass man sagt, das ist eine Checksumme oder eine Prüfsumme oder eine Signatur von irgendwas, wo man so einen SHA-1-Hash dann macht und dann kommt eben raus, die Datei hat die Prüfsumme A17, A12, A21, A16, also irgendwas.

01:30:47.807 --> 01:31:17.787
und Jochen unterhalten sich über die Programmiersprache Python

01:31:17.807 --> 01:31:47.787
und Jochen unterhalten sich über die Programmiersprache Python

01:31:47.807 --> 01:31:51.927
als Hash eine Zahl von 0 bis 16 raus, also eine Zahl in meinem Adressbereich.

01:31:53.168 --> 01:31:57.107
Jetzt gucke ich in meine bislang leere Liste und sage, da steht noch nichts.

01:31:57.267 --> 01:32:03.227
Okay, perfekt. Also schreibe ich da den Dominik rein, also den Wert von Dominik.

01:32:04.688 --> 01:32:09.807
Das heißt, in meiner Liste steht jetzt ganz viel nichts und an einer Stelle steht deine Telefonnummer.

01:32:13.168 --> 01:32:15.307
Jetzt kommt der zweite Wert, der zweite Wert für Jochen.

01:32:15.307 --> 01:32:19.087
Ich nehme wieder meinen Hash von Jochen und da steht jetzt halt 10.

01:32:19.168 --> 01:32:23.287
Da kommt jetzt 10 raus. Das heißt, in meine Liste schreibe ich jetzt an der Stelle 10 die Telefonnummer von Jochen rein.

01:32:23.627 --> 01:32:25.287
Bei Dominik sagen wir, kommt 12 raus.

01:32:26.407 --> 01:32:28.727
Schreibe ich Johannes. Ich nehme den Hash von Johannes.

01:32:29.188 --> 01:32:34.347
Da kommt 2 raus. Also schreibe ich in meine Liste an der Stelle 2 die Telefonnummer von Johannes rein.

01:32:36.007 --> 01:32:39.747
Wie man sieht, ist das Einfügen in diese Datenstruktur immer noch O von 1,

01:32:39.747 --> 01:32:43.168
weil es spielt keine Rolle, wie viele Einträge da drin sind.

01:32:43.168 --> 01:32:45.407
das dauert immer gleich lang, ich muss diesen Hash ausrechnen

01:32:45.407 --> 01:32:47.607
und dann an die Stelle, die mir der Hash gegeben hat

01:32:47.607 --> 01:32:50.407
die Zahl reinschreiben

01:32:50.407 --> 01:32:53.567
mindere Details

01:32:53.567 --> 01:32:55.347
wie zum Beispiel, dass die Liste

01:32:55.347 --> 01:32:56.967
voll wird oder dass der Hashtag voll wird

01:32:56.967 --> 01:32:58.967
oder dass es Kollisionen gibt, die ignorieren wir jetzt

01:32:58.967 --> 01:33:01.307
das sind Implementierungsdetails, die bleiben dem geneigten

01:33:01.307 --> 01:33:03.267
Leser als üblich. Du musst ja einmal kurz den Space verdoppeln

01:33:03.267 --> 01:33:04.087
den man braucht oder sowas

01:33:04.087 --> 01:33:07.087
Genau, musst du entweder den Space verdoppeln oder musst du eine Liste

01:33:07.087 --> 01:33:08.727
von Werten anlegen oder musst du

01:33:08.727 --> 01:33:10.987
irgendeine Kollisionsstrategie überlegen

01:33:10.987 --> 01:33:13.507
und auch eine Größenstrategie

01:33:13.507 --> 01:33:14.168
musst du dir auch überlegen.

01:33:15.367 --> 01:33:16.627
Einfügen ist immer noch O von 1.

01:33:17.487 --> 01:33:19.307
Heraussuchen ist jetzt auch

01:33:19.307 --> 01:33:21.247
eine andere Operation. Ich sage,

01:33:21.347 --> 01:33:22.987
ich möchte die Telefonnummer von Jochen wissen.

01:33:23.127 --> 01:33:25.387
Ich nehme jetzt also den Hash von dem Namen Jochen

01:33:25.387 --> 01:33:26.587
und kriege raus,

01:33:27.107 --> 01:33:29.267
die Telefonnummer von Jochen steht in meiner Liste an Stelle

01:33:29.267 --> 01:33:29.627
10.

01:33:31.447 --> 01:33:33.087
Das Hashen dieses Wertes, also die

01:33:33.087 --> 01:33:35.188
Adresse sozusagen berechnen, wo ich

01:33:35.188 --> 01:33:37.327
die Telefonnummer gespeichert

01:33:37.327 --> 01:33:39.207
habe, das ist immer gleich, das dauert immer gleich lang.

01:33:39.207 --> 01:33:43.407
und jetzt in diese Liste an der Stelle 10 reingucken, dauert auch immer gleich lang.

01:33:44.427 --> 01:33:49.727
Und da steht genau die Telefonnummer von Jochen drin, das heißt, auch das Heraussuchen dauert jetzt O von 1.

01:33:51.027 --> 01:33:59.247
Und die Magie ist eigentlich, dass man nicht den Schlüssel als Wert da drin hält,

01:33:59.648 --> 01:34:04.567
sondern man greift über eine Indirektion zu und diese Indirektion ist ein Hash

01:34:04.567 --> 01:34:09.267
und diese Hash vermischt die Sachen auf eine einheitliche Art und Weise,

01:34:09.427 --> 01:34:13.127
sodass man eine einheitliche Füllung erreicht und das garantiert uns dann eben diese

01:34:13.127 --> 01:34:16.867
sogenannte amortisierte Laufzeit von ORF1 im Schnitt

01:34:16.867 --> 01:34:21.507
über lange Zeit dauert jeder Zugriff auf den Dickschneider gleich lang.

01:34:24.327 --> 01:34:25.927
Ja, das ist das Einzige, was man halt da tatsächlich machen muss,

01:34:26.027 --> 01:34:29.727
wenn man ganz, ganz viele Einträge hat, mehr Speicher für dieses Dick alloziieren oder so.

01:34:29.727 --> 01:34:31.307
Genau, also

01:34:31.307 --> 01:34:34.367
es gibt oft so Situationen, wo es

01:34:34.367 --> 01:34:36.587
ein Trade-off gibt zwischen Rechenzeit und Speicherplatz

01:34:36.587 --> 01:34:38.307
und auch hier ist es so, wir haben halt ein

01:34:38.307 --> 01:34:40.668
kleines bisschen Overhead, was Speicherplatz

01:34:40.668 --> 01:34:41.987
angeht, weil wir immer ein bisschen

01:34:41.987 --> 01:34:44.227
leere Zellen haben müssen, wobei

01:34:44.227 --> 01:34:46.267
auch das in den neuen Python-Versionen nicht mehr stimmt

01:34:46.267 --> 01:34:48.487
da haben sie eine bessere Implementierung, die keinen

01:34:48.487 --> 01:34:50.267
großen Overhead haben

01:34:50.267 --> 01:34:52.447
drin

01:34:52.447 --> 01:34:54.267
was sehr

01:34:54.267 --> 01:34:55.587
was noch beeindruckender ist

01:34:55.587 --> 01:34:58.447
was wir uns auch gerne mal genauer anschauen

01:34:58.447 --> 01:35:00.607
können, wenn du das mal vorbereitest, Jochen.

01:35:01.387 --> 01:35:01.787
Ja,

01:35:02.787 --> 01:35:04.247
sich das mal unter Detail anzugucken,

01:35:04.607 --> 01:35:06.247
wäre nicht so uninteressant.

01:35:06.307 --> 01:35:07.707
Ich hatte jetzt noch im Hinterkopf, dass irgendwie

01:35:07.707 --> 01:35:10.407
die Dict-Implementation in Python, dass das irgendwie so

01:35:10.407 --> 01:35:10.407
Tri-------------

01:35:28.447 --> 01:35:30.847
weil du noch ein paar

01:35:30.847 --> 01:35:32.787
Nanosekunden rausholen kannst und weil das

01:35:32.787 --> 01:35:34.747
eindeutig zur Hotsection gehört von Python

01:35:34.747 --> 01:35:35.987
weil das der Code ist, der

01:35:35.987 --> 01:35:38.367
Python laufen lässt

01:35:38.367 --> 01:35:40.987
Dictionaries sind im Wesentlichen

01:35:40.987 --> 01:35:42.967
der Kleber, der Python

01:35:42.967 --> 01:35:43.668
zu Python macht

01:35:43.668 --> 01:35:46.547
auch intern, jedes Mal wenn ich

01:35:46.547 --> 01:35:49.027
ein Objekt verwende, in anderen Programmiersprachen

01:35:49.027 --> 01:35:50.587
werden die dann irgendwie kompiliert oder zu

01:35:50.587 --> 01:35:52.527
Structs gemacht oder zu sonst irgendwas gemacht

01:35:52.527 --> 01:35:54.827
in Python ist es halt ein Dictionary mit den Namen

01:35:54.827 --> 01:35:55.227
von dem

01:35:55.227 --> 01:35:58.107
von dieser Instanz und fertig

01:35:58.107 --> 01:36:01.927
und auch die lokalen Variablen, die liegen alle in dem Dictionary.

01:36:02.347 --> 01:36:05.067
Da gibt es keine Speichermap und da gibt es keine Festzugewiesen,

01:36:05.188 --> 01:36:07.707
da gibt es kein Stack und nichts, sondern ein Stack gibt es auch noch,

01:36:07.827 --> 01:36:10.967
aber die lokalen Variablen in einem Frame liegen immer in einem Dictionary drin.

01:36:13.287 --> 01:36:17.967
Deshalb ist die tatsächliche Implementierung hier sehr detailliert und sehr ausgefeilt,

01:36:18.487 --> 01:36:21.807
weil es sich eben lohnt, hier jede Nanosekunde rauszuholen.

01:36:23.307 --> 01:36:27.407
Aber die Magie, die drinsteckt, oder der Kerngedanke ist eigentlich,

01:36:27.407 --> 01:36:32.827
Man hasht die Schlüssel und greift dann auf diese mehr oder weniger zufällig gewählte Adresse zu.

01:36:34.287 --> 01:36:43.047
Ja, also die Python-Dict-Implementation ist halt auch so eine der schnellsten Hash-Implementationen, die es überhaupt gibt.

01:36:44.247 --> 01:36:45.688
Eben weil sie halt auch so wichtig ist.

01:36:46.487 --> 01:36:52.927
Und das ist auch manchmal dann überraschend, wenn man in anderen Sprachen unterwegs ist oder mit Leuten sich unterhält.

01:36:52.927 --> 01:37:22.927
jeden anderen. Also ich hatte das auch schon mal, ich wollte das mal irgendwie, ich habe mit einem Python-Dict angefangen bei irgendeiner Geschichte, ich weiß jetzt gar nicht mehr genau, was es war. Ich wollte irgendwelche Dinge unik machen, irgendwie riesige Sachen und das war irgendwie zu langsam und dann dachte ich so, okay, das muss ich wohl dann doch mal irgendwie in C oder C++ oder so neu machen und habe das dann in C++ versucht und habe dann auch angefangen, weil ich dachte, ich mache es jetzt erstmal so wie in Python und dann gucke ich mal, wo ich optimieren kann und habe dann halt irgendwie

01:37:22.927 --> 01:37:24.567
halt HashMap

01:37:24.567 --> 01:37:26.307
außer sozusagen, naja,

01:37:26.407 --> 01:37:28.467
C++ gibt es nicht, gab es, oder vielleicht gibt es heute,

01:37:28.587 --> 01:37:30.307
aber gab es damals nicht so richtig eine Standard Library?

01:37:30.507 --> 01:37:31.947
Boost heißt die. Boost gab es, genau.

01:37:32.407 --> 01:37:34.367
Und hab das halt so probiert, hab das gemanagt,

01:37:34.527 --> 01:37:36.148
hab irgendwas falsch gemacht,

01:37:36.347 --> 01:37:38.668
irgendwie kann ja nicht sein. War deutlich langsamer

01:37:38.668 --> 01:37:40.387
als die beiden Varianten.

01:37:41.267 --> 01:37:42.207
Und hab dann also auf

01:37:42.207 --> 01:37:43.867
Stack Overflow so naiv nachgefragt,

01:37:44.047 --> 01:37:46.487
irgendwas mache ich hier falsch, was ist denn da los?

01:37:46.947 --> 01:37:48.507
Und dann waren die Antworten

01:37:48.507 --> 01:37:50.227
drauf aber eher nicht so

01:37:50.227 --> 01:37:51.887
ermutigend weiterzumachen in die Richtung,

01:37:51.887 --> 01:37:53.907
sondern da hieß es so, ja, achso, ja,

01:37:53.967 --> 01:37:56.087
ein Boost, ja, unsere Hashmap-Implementation,

01:37:56.427 --> 01:37:58.007
ja, das ist eigentlich noch gar keine richtige Hash,

01:37:58.168 --> 01:37:59.607
das ist nicht so richtig Hash, das ist eher so

01:37:59.607 --> 01:38:01.607
ein, eher so, wir holen

01:38:01.607 --> 01:38:03.707
so eine binäre Suche daraus und dann

01:38:03.707 --> 01:38:05.688
das, klar, deswegen dauert es dann natürlich schon ein bisschen länger.

01:38:06.087 --> 01:38:07.887
So, okay, äh, Moment,

01:38:08.007 --> 01:38:09.807
aber das ist doch eine Dateninstruktion, die man dauernd verwendet,

01:38:09.867 --> 01:38:11.907
ja, wie, was? Und, äh,

01:38:11.947 --> 01:38:13.547
ja, das geht auch schneller, da musst du nur,

01:38:14.067 --> 01:38:15.867
ja, da musst du nur dann irgendwie, keine Ahnung,

01:38:15.947 --> 01:38:17.487
hier von, äh, von, ähm,

01:38:17.648 --> 01:38:19.587
SGI gibt es da irgendwie Header,

01:38:19.587 --> 01:38:21.427
die du irgendwie reinnehmen kannst und dann musst du nur sagen,

01:38:21.427 --> 01:38:22.927
und dann geht es schneller.

01:38:25.007 --> 01:38:25.867
Vielleicht auch nicht.

01:38:26.148 --> 01:38:27.627
Mal gucken, vielleicht kann man das auch irgendwie anders machen.

01:38:28.487 --> 01:38:29.027
Python nennen.

01:38:30.947 --> 01:38:31.827
Aber das ist

01:38:31.827 --> 01:38:32.487
ja,

01:38:35.047 --> 01:38:35.767
da ist Python

01:38:35.767 --> 01:38:36.307
wirklich stark.

01:38:38.307 --> 01:38:43.728
Ja, aber es ist halt

01:38:43.728 --> 01:38:45.767
auch einfach wichtig. Es gibt so

01:38:45.767 --> 01:38:47.847
Späße, wo man jede Programmiersprache

01:38:47.847 --> 01:38:49.667
beschreibt als eine

01:38:49.667 --> 01:38:50.407
Kerneigenschaft.

01:38:51.427 --> 01:38:53.648
eine Liste, die ich mal gesehen habe, war eben

01:38:53.648 --> 01:38:55.867
jede Programmiersprache beschrieben als

01:38:55.867 --> 01:38:57.188
What if everything was an

01:38:57.188 --> 01:38:59.728
und da war zum Beispiel C

01:38:59.728 --> 01:39:01.527
What if everything is a pointer und

01:39:01.527 --> 01:39:03.967
Java ist What if everything is a

01:39:03.967 --> 01:39:04.307
pattern

01:39:04.307 --> 01:39:06.728
und

01:39:06.728 --> 01:39:09.648
Python war halt What if everything is a dictionary

01:39:09.648 --> 01:39:11.207
und das ist schon so.

01:39:11.527 --> 01:39:13.807
Es ist einfach alles ein Dictionary und

01:39:13.807 --> 01:39:15.707
wenn man irgendein Problem mit Dictionaries lösen kann, dann

01:39:15.707 --> 01:39:17.507
ist das sehr gut.

01:39:19.587 --> 01:39:20.407
Um aber nochmal

01:39:20.407 --> 01:39:22.407
und der

01:39:50.407 --> 01:40:20.387
und Jochen unterhalten sich über die Programmiersprache Python

01:40:20.407 --> 01:40:22.327
noch nicht durch war, dann hat sich halt der Preis verändert

01:40:22.327 --> 01:40:23.728
oder das Material oder was weiß ich.

01:40:24.027 --> 01:40:26.467
Wir durften einfach nichts anzeigen, was älter ist als 5 Minuten.

01:40:27.427 --> 01:40:27.688
Und

01:40:27.688 --> 01:40:30.247
wir hatten aber das Problem,

01:40:30.367 --> 01:40:32.247
dass unsere Seite super langsam war, weil wir für jede

01:40:32.247 --> 01:40:34.327
Produktseite, für jede unserer Seiten mussten wir

01:40:34.327 --> 01:40:36.787
ungefähr 20 Produkte laden.

01:40:37.007 --> 01:40:38.267
Das heißt, wir mussten 20

01:40:38.267 --> 01:40:40.507
20

01:40:40.507 --> 01:40:42.367
API-Aufrufe machen und das war damals,

01:40:42.547 --> 01:40:44.207
als es noch kein Async gab. Das heißt,

01:40:44.267 --> 01:40:46.367
wir mussten die mehr oder weniger seriell

01:40:46.367 --> 01:40:48.467
machen und wir hatten halt

01:40:48.467 --> 01:40:50.007
furchtbar schlechte Zeiten.

01:40:50.007 --> 01:40:52.228
also die API die wir benutzt haben war super schnell

01:40:52.228 --> 01:40:54.007
die hat nur so

01:40:54.007 --> 01:40:56.207
20 Millisekunden gebraucht pro Aufruf

01:40:56.207 --> 01:40:57.987
aber wenn du 20 von den Aufrufen machst

01:40:57.987 --> 01:41:00.188
dann hast du halt direkt 400 Millisekunden verbrannt

01:41:00.188 --> 01:41:00.747
für nix

01:41:00.747 --> 01:41:03.407
hast ja noch nix selber gemacht

01:41:03.407 --> 01:41:05.427
und

01:41:05.427 --> 01:41:07.167
wir

01:41:07.167 --> 01:41:09.787
haben versucht die Sachen in den Cache zu legen

01:41:09.787 --> 01:41:11.807
und das hat auch nicht so richtig funktioniert und irgendwann

01:41:11.807 --> 01:41:12.707
ist uns aufgefallen

01:41:12.707 --> 01:41:16.067
dass wir ja tatsächlich genügend Hauptspeicher haben

01:41:16.067 --> 01:41:17.867
wir haben genügend Hauptspeicher

01:41:17.867 --> 01:41:22.467
um alle Produkte zu speichern, die wir je anzeigen.

01:41:25.267 --> 01:41:26.427
Also haben wir das einfach gemacht.

01:41:26.547 --> 01:41:30.228
Wir haben einfach alle Produktdaten abgerufen und die in den Cache gelegt

01:41:30.228 --> 01:41:34.467
und weil die nicht länger als 5 Minuten da sein dürften,

01:41:34.787 --> 01:41:36.228
hatten die eine Expiry von 5 Minuten

01:41:36.228 --> 01:41:38.427
und wir haben einfach Background-Jobs laufen lassen,

01:41:38.688 --> 01:41:40.807
die alle 5 Minuten jedes Produkt refreshed haben.

01:41:42.648 --> 01:41:43.887
Das heißt, wir hatten einfach,

01:41:45.047 --> 01:41:47.607
vorher hatten wir eben diese ganzen Aufrufe

01:41:47.607 --> 01:41:49.747
an die API, die wir ersetzt

01:41:49.747 --> 01:41:51.307
haben durch Unmengen an

01:41:51.307 --> 01:41:52.487
unnötigen Aufrufen,

01:41:53.648 --> 01:41:55.487
die aber dann eben im Ernstfall dafür

01:41:55.487 --> 01:41:57.587
gesorgt haben, dass die Daten, die wir tatsächlich gebraucht haben,

01:41:57.688 --> 01:41:59.087
alle schon warm waren,

01:41:59.827 --> 01:42:01.427
weil wir, weil halt

01:42:01.427 --> 01:42:03.427
einer von den Entwicklern, und es war tatsächlich in dem Fall

01:42:03.427 --> 01:42:04.007
nicht ich,

01:42:06.367 --> 01:42:07.387
es ist also keine

01:42:07.387 --> 01:42:09.327
Win-Geschichte für mich, es ist nur eine Win-Geschichte

01:42:09.327 --> 01:42:11.067
für unser Projekt und für den anderen Entwickler,

01:42:11.667 --> 01:42:13.367
weil der halt gesagt hat, okay, wir

01:42:13.367 --> 01:42:15.167
können ja mal ausrechnen, wie viel Speicher wir verbrauchen,

01:42:15.228 --> 01:42:17.367
wir probieren einfach mal aus, alle Produkte zu laden, die wir

01:42:17.367 --> 01:42:21.207
und die haben in den Cache gepasst, in unseren Memcached.

01:42:22.627 --> 01:42:25.887
Und dann ist natürlich schön schnell, weil dann so ein Memcached-Aufruf,

01:42:25.947 --> 01:42:28.688
der ist ja, der dauert nicht so lang.

01:42:30.047 --> 01:42:34.447
Das heißt, wir konnten da tatsächlich unsere Response-Zeit um ein Vielfaches verbessern,

01:42:34.567 --> 01:42:39.847
einfach dadurch, dass wir die ganze Zeit den Cache refresht haben.

01:42:40.167 --> 01:42:43.427
Egal, ob wir Traffic hatten oder nicht, es war einfach dieser Cronjob,

01:42:43.487 --> 01:42:45.367
der das gemacht hat, lief einfach die ganze Zeit.

01:42:45.367 --> 01:42:48.047
Alle 5 Minuten hat er alle Produkte einmal durchgepingt

01:42:48.047 --> 01:42:50.188
Ja

01:42:50.188 --> 01:42:52.327
Ja, das erinnert mich

01:42:52.327 --> 01:42:53.167
Das ist auch etwas

01:42:53.167 --> 01:42:55.927
Man unterschätzt oft, wie viele Hauptspeicher

01:42:55.927 --> 01:42:57.487
man tatsächlich zur Verfügung hat

01:42:57.487 --> 01:42:59.327
und was man da mit all den tollen Dingen alles so tun kann

01:42:59.327 --> 01:43:01.947
Dass man oft einfach Sachen brutal

01:43:01.947 --> 01:43:03.927
erschlagen kann mit irgendwie Hauptspeicher

01:43:03.927 --> 01:43:04.167
oder

01:43:04.167 --> 01:43:07.728
Genau, das hat ja auch so ähnliche

01:43:07.728 --> 01:43:09.267
Geschichten zum Beispiel

01:43:09.267 --> 01:43:11.167
Also was mich schon mehrfach gebissen hat

01:43:11.167 --> 01:43:14.207
Das ist eher so ein Thema für generell

01:43:14.207 --> 01:43:16.367
das ist eher so ein bisschen auf der Fail-Seite, man muss

01:43:16.367 --> 01:43:18.567
aufpassen, so Filesysteme, vor allen Dingen

01:43:18.567 --> 01:43:20.087
wenn man Filesysteme benutzt

01:43:20.087 --> 01:43:21.987
und da rein

01:43:21.987 --> 01:43:24.447
daraus liest und schreibt gleichzeitig und zwar von vielen

01:43:24.447 --> 01:43:26.247
Rechnern aus und dann so

01:43:26.247 --> 01:43:27.247
verteilte Filesysteme

01:43:27.247 --> 01:43:30.267
du hast halt

01:43:30.267 --> 01:43:32.427
eigentlich nur ein Filesystem

01:43:32.427 --> 01:43:34.447
auf dem Server und viele lesen und schreiben davon

01:43:34.447 --> 01:43:36.467
also vielleicht so zu Hause

01:43:36.467 --> 01:43:38.107
oder in einem kleinen Büro, gute Idee

01:43:38.107 --> 01:43:38.987
irgendwie schön

01:43:38.987 --> 01:43:42.407
Internet-mäßig

01:43:42.407 --> 01:43:44.587
oft nicht so eine richtig geile Idee, weil

01:43:44.587 --> 01:43:45.688
funktioniert nicht gut.

01:43:46.507 --> 01:43:48.847
Und das

01:43:48.847 --> 01:43:50.447
da hatten wir auch mal echt

01:43:50.447 --> 01:43:52.447
böse Probleme mit

01:43:52.447 --> 01:43:54.188
naja, also

01:43:54.188 --> 01:43:56.807
Webseite mit ganz vielen unterschiedlichen

01:43:56.807 --> 01:43:58.627
Bildgrößen für Produkte,

01:43:58.728 --> 01:44:00.507
aber halt auch relativ viele, also so

01:44:00.507 --> 01:44:02.407
zig Millionen und

01:44:02.407 --> 01:44:04.287
ja, das

01:44:04.287 --> 01:44:06.648
muss man dann schon irgendwie auf der Platte liegen haben, weil es ist einfach

01:44:06.648 --> 01:44:07.887
zu viel Zeug und

01:44:07.887 --> 01:44:10.267
jetzt muss man das alles umrechnen und

01:44:10.267 --> 01:44:11.947
jetzt hat man das Problem, dass

01:44:11.947 --> 01:44:16.607
man zum Beispiel irgendwie neue Bilder anzeigen muss, weil es gab irgendwie eine

01:44:16.607 --> 01:44:20.347
Abmahnung, weil irgendwie jemand

01:44:20.347 --> 01:44:20.347
in einem Webshop einfach die die die die die die die die die die die die die die die die die die die die die die die die die die die die die die die die die die die die die die die die die die die die die die die die die die

01:44:41.947 --> 01:44:43.707
und es dauert dann irgendwie so zwei Wochen von

01:44:43.707 --> 01:44:45.947
irgendwie, es kommt ein neues Bild rein

01:44:45.947 --> 01:44:47.427
und es ist in den richtigen Größen...

01:44:47.427 --> 01:44:49.648
Man hat ja keine Priorisierung gehabt für Jochen.

01:44:49.947 --> 01:44:51.307
Ja, das hätte man dann natürlich machen können.

01:44:52.167 --> 01:44:53.507
Man hat sich dann natürlich so Dinge überlegt,

01:44:53.587 --> 01:44:55.367
kann man das nicht irgendwie priorisieren oder kann man nicht

01:44:55.367 --> 01:44:57.307
irgendwie sagen, okay,

01:44:59.007 --> 01:44:59.807
man macht da

01:44:59.807 --> 01:45:01.648
irgendwie andere komplizierte Geschichten,

01:45:01.887 --> 01:45:03.667
man macht die Berechnung woanders, so kopiert es dann hinterher

01:45:03.667 --> 01:45:05.467
Blattschmerz jemand darüber oder...

01:45:05.467 --> 01:45:07.667
Also es wurde in viele Richtungen überlegt,

01:45:08.347 --> 01:45:09.688
auch sogar

01:45:09.688 --> 01:45:11.747
in solche Richtungen wie, was für

01:45:11.747 --> 01:45:13.587
Blockgrößen bei der Übertragung

01:45:13.587 --> 01:45:15.467
per NFS sind denn jetzt die

01:45:15.467 --> 01:45:17.287
optimalen und nimmt man jetzt

01:45:17.287 --> 01:45:19.447
UDP oder TCP und diese

01:45:19.447 --> 01:45:21.327
ganzen Geschichten und da haben Leute

01:45:21.327 --> 01:45:23.247
irgendwie lange dran rum überlegt, wie man das

01:45:23.247 --> 01:45:25.307
alles optimieren kann und Sachen ausprobiert

01:45:25.307 --> 01:45:27.427
und getestet. Das hat lange gedauert und es war

01:45:27.427 --> 01:45:29.127
ein ständiger Schmerz.

01:45:29.228 --> 01:45:31.207
Bis dann auch irgendjemand,

01:45:31.367 --> 01:45:31.907
auch nicht ich,

01:45:33.427 --> 01:45:35.267
tatsächlich sehr guter Entwickler

01:45:35.267 --> 01:45:37.688
auf die Idee kam,

01:45:37.967 --> 01:45:41.267
wie viele, also ja, okay,

01:45:41.267 --> 01:46:11.247
und Jochen unterhalten sich über die Programmiersprache Python

01:46:11.267 --> 01:46:13.287
umzudrehen und dann zu sagen, okay, wir brauchen das

01:46:13.287 --> 01:46:15.087
nicht irgendwie fertig irgendwo liegen zu haben,

01:46:15.367 --> 01:46:17.107
sondern wir übergeben die Größe, die wir gerne hätten,

01:46:17.167 --> 01:46:19.207
einfach nur als Parameter in der URL für das Bild mit

01:46:19.207 --> 01:46:20.547
und cachen dann.

01:46:21.387 --> 01:46:23.207
Das war dann halt so, das hat gar nicht lange gedauert,

01:46:23.247 --> 01:46:24.827
das umzustellen und das System hinterher war

01:46:24.827 --> 01:46:26.947
sackschnell und man konnte alles quasi

01:46:26.947 --> 01:46:28.887
on demand ändern,

01:46:29.347 --> 01:46:31.047
Blacklisten, Whitelisten, alles kein Problem.

01:46:31.247 --> 01:46:33.127
Und es war so. Und danach war dieses Problem

01:46:33.127 --> 01:46:35.107
gelöst und vorher hatten da wirklich viele Leute

01:46:35.107 --> 01:46:37.087
lange dran rumgetüftelt,

01:46:37.207 --> 01:46:38.907
dass irgendwie den eigentlich

01:46:38.907 --> 01:46:40.728
den blöden Ansatz halt sozusagen

01:46:40.728 --> 01:46:42.827
irgendwie zum Laufen zu bringen, der aber einfach

01:46:42.827 --> 01:46:44.567
nur falsch war und deswegen hat es halt nicht funktioniert.

01:46:46.827 --> 01:46:48.867
Und dann hat man am Ende mehr Features

01:46:48.867 --> 01:46:50.747
und eine einfache Implementierung und

01:46:50.747 --> 01:46:51.947
es ist schneller.

01:46:52.887 --> 01:46:54.148
Ja, also

01:46:54.148 --> 01:46:56.387
ich habe so das Gefühl,

01:46:56.507 --> 01:46:58.707
bei diesem zweiten Schritt, bei dieser Feynman-Lösung,

01:46:58.887 --> 01:47:00.367
dieser zweite Schritt, da

01:47:00.367 --> 01:47:02.747
ist enormes Potenzial.

01:47:04.527 --> 01:47:06.587
Ja, aber das ist doch, als Entwickler

01:47:06.587 --> 01:47:08.607
macht man sich das doch oft, oder? Also Stunden des

01:47:08.607 --> 01:47:10.607
Machens ersparen Minuten des Nachdenkens.

01:47:10.728 --> 01:47:40.707
und Jochen unterhalten sich über die Programmiersprache Python

01:47:40.728 --> 01:47:43.447
gebraucht hast, dann hast du nur noch eine.

01:47:45.167 --> 01:47:48.907
Und ich bin dann halt irgendwann mal hier zu einem Supermarkt gegangen

01:47:48.907 --> 01:47:52.527
und habe einfach 10 solcher Fläschchen gekauft. Das hat einen

01:47:52.527 --> 01:47:56.847
überschaubaren Geldbetrag gekostet. Die kosten glaube ich 2 Euro Stück oder so.

01:47:56.987 --> 01:47:59.688
Oder 2,50 Euro. Es ist wirklich egal.

01:48:01.207 --> 01:48:04.787
Und dann kannst du halt in einer Nacht 5 Fläschchen verbrauchen oder 6

01:48:04.787 --> 01:48:08.847
oder 7 oder 8 und am nächsten Tag stellst du sie in die Spülmaschine und bist fertig.

01:48:08.847 --> 01:48:11.007
einfach mal so Größenordnungen

01:48:11.007 --> 01:48:11.648
überdenken.

01:48:13.648 --> 01:48:15.167
Das ist eine

01:48:15.167 --> 01:48:15.967
sehr mächtige Sache.

01:48:16.207 --> 01:48:16.787
Viel hilft.

01:48:17.887 --> 01:48:20.947
Ja, es ist wirklich so. Viel hilft halt manchmal einfach

01:48:20.947 --> 01:48:22.987
viel und kostet aber

01:48:22.987 --> 01:48:23.587
gar nicht so viel.

01:48:26.087 --> 01:48:26.487
Und

01:48:26.487 --> 01:48:28.987
man

01:48:28.987 --> 01:48:31.027
hantiert oft mit solchen Limits rum, die völlig

01:48:31.027 --> 01:48:33.007
zufällig gewählt

01:48:33.007 --> 01:48:34.827
sind, aber an denen man dann so im Kopf rumhängt,

01:48:35.747 --> 01:48:38.747
die man eigentlich einfach mal überdenken

01:48:38.747 --> 01:48:40.688
müsste, also die man einfach mal genauer anschauen

01:48:40.688 --> 01:48:42.648
müsste, ob das wirklich

01:48:42.648 --> 01:48:44.547
sinnvolle Limits sind und ob man vielleicht irgendwas

01:48:44.547 --> 01:48:46.327
verändern kann, sodass man nicht an diesem Limit hängt.

01:48:46.728 --> 01:48:48.648
Und die simpelste Möglichkeit ist halt vertikale

01:48:48.648 --> 01:48:50.688
Skalierung, mehr Hardware kaufen.

01:48:50.847 --> 01:48:51.667
Weniger schlafen.

01:48:52.887 --> 01:48:54.387
Im Falle der Fläschchen hat das,

01:48:54.547 --> 01:48:56.447
ja, und das hat dann auch direkt zu mehr

01:48:56.447 --> 01:48:58.327
Schlafen geführt. Wenn du weniger

01:48:58.327 --> 01:49:00.648
Verwaltungsaufwand hast, ist...

01:49:01.807 --> 01:49:02.567
Ja, das sind Sachen,

01:49:02.728 --> 01:49:03.987
bei so endlichen Ressourcen.

01:49:05.927 --> 01:49:06.907
Ja, aber

01:49:06.907 --> 01:49:08.547
diese Zahl, die man

01:49:08.547 --> 01:49:10.307
irgendwann mal, auf die man sich irgendwann mal festgelegt hat,

01:49:10.347 --> 01:49:12.247
die ist ja nicht in Stein gemeißelt und die ist weder bei

01:49:12.247 --> 01:49:13.927
Hauptspeichern in Stein gemeißelt, noch bei

01:49:13.927 --> 01:49:16.807
der Anzahl der Utensilien, die man so hat.

01:49:16.927 --> 01:49:18.627
Naja, glücklicherweise kann man auf die meisten Maschinen

01:49:18.627 --> 01:49:20.148
noch ein bisschen mehr Speicher oder sowas werfen,

01:49:20.307 --> 01:49:22.107
oder halt mehr Fläschchen einfach so

01:49:22.107 --> 01:49:23.927
in einem Supermarkt kaufen.

01:49:24.927 --> 01:49:26.347
Die Probleme kommen ja tatsächlich

01:49:26.347 --> 01:49:28.067
erst immer dann wirklich

01:49:28.067 --> 01:49:30.467
zum Tragen, wenn es halt diese Restriktionen gibt,

01:49:30.627 --> 01:49:31.228
dass du halt dann

01:49:31.228 --> 01:49:34.247
Konkurrenz hast für

01:49:34.247 --> 01:49:35.967
irgendwelche

01:49:35.967 --> 01:49:38.427
Prozesse oder sowas, dann wird es erst

01:49:38.427 --> 01:49:38.907
Ja klar.

01:49:40.427 --> 01:49:42.228
Wenn du an die Grenzen kommst. Aber bis du dahin kommst,

01:49:42.287 --> 01:49:44.387
gibt es oft Lösungen, die überraschend simpel

01:49:44.387 --> 01:49:45.787
sind und doch nicht so schlecht.

01:49:46.247 --> 01:49:48.247
Und ich meine Hauptspeicher, es gibt halt Maschinen, die

01:49:48.247 --> 01:49:49.807
6 Terabyte Hauptspeicher haben können.

01:49:51.688 --> 01:49:52.447
Also ich habe

01:49:52.447 --> 01:49:53.987
seltsame Probleme gehabt.

01:49:54.707 --> 01:49:56.067
Das ist natürlich schon, also 6 Terabyte

01:49:56.067 --> 01:49:56.767
Hauptspeicher, wow.

01:49:59.267 --> 01:50:00.447
Ja, kostet schon 100.000

01:50:00.447 --> 01:50:02.247
Dollar oder 200.000. Aber bei

01:50:02.247 --> 01:50:04.287
der Problemgröße, also ein Cluster mit 100

01:50:04.287 --> 01:50:05.927
Nodes kostet mehr als 10.000 Dollar.

01:50:08.427 --> 01:50:38.407
Ja, ja.

01:50:38.427 --> 01:50:40.367
voll. Und wenn einer kaputt geht, dann schmeiße ich ihn weg

01:50:40.367 --> 01:50:42.287
und dann habe ich immer noch 49,5

01:50:42.287 --> 01:50:43.207
paar identische Socken.

01:50:44.667 --> 01:50:45.607
Ja, ja, sehr gut.

01:50:46.807 --> 01:50:48.447
Das ist eine triviale Sache, aber es ist

01:50:48.447 --> 01:50:50.207
einfach einmal über so eine Größenordnung

01:50:50.207 --> 01:50:52.527
nachgedacht und bemerkt, dass die Grenze,

01:50:52.587 --> 01:50:54.447
die man sich selber gesetzt hat, völlig arbiträr ist.

01:50:54.587 --> 01:50:56.648
Nicht gleich kann klotzen, bigger is better

01:50:56.648 --> 01:50:57.527
und so weiter.

01:50:58.007 --> 01:50:59.567
Genau. Und wenn man

01:50:59.567 --> 01:51:01.987
irgendein Problem hat, was man in Hauptspeicher kriegt,

01:51:02.267 --> 01:51:04.527
warum nicht? Oder wenn man es so trimmen kann,

01:51:04.607 --> 01:51:05.947
dass man es in Hauptspeicher kriegt, noch besser.

01:51:09.307 --> 01:51:10.967
Also das ist ein Win, sagst du, okay.

01:51:12.527 --> 01:51:12.887
Eindeutig.

01:51:14.207 --> 01:51:15.228
Und es gibt viele

01:51:15.228 --> 01:51:17.407
Gelegenheiten für solche Wins, deshalb, das ist super.

01:51:17.867 --> 01:51:18.667
Und die fühlen sich gut an,

01:51:18.787 --> 01:51:20.627
so ein Win ist eine total tolle Sache.

01:51:22.827 --> 01:51:23.587
Ja, wenn's nicht gut.

01:51:24.447 --> 01:51:25.367
Ja, wobei es

01:51:25.367 --> 01:51:27.107
Ich muss allerdings dazu sagen, als ich

01:51:27.107 --> 01:51:29.228
die 10 Flächen gekauft hab, hab ich

01:51:29.228 --> 01:51:31.307
leider die falschen gekauft, also ich musste dann nochmal hin

01:51:31.307 --> 01:51:33.648
und die alle zurückgeben und neue

01:51:33.648 --> 01:51:35.567
kaufen, also es ist gemischt.

01:51:35.567 --> 01:51:37.567
Ja, gemischt. Win und Fail

01:51:37.567 --> 01:51:38.507
zusammengemischt.

01:51:40.207 --> 01:51:40.688
Tja.

01:51:42.767 --> 01:51:44.367
Und das ist doch ein schönes Resümee

01:51:44.367 --> 01:51:45.728
für das Jahr 2020.

01:51:45.867 --> 01:51:47.728
Das ist doch ein schöner Jahresrückblick.

01:51:47.847 --> 01:51:49.807
Win und Fail zusammengemischt in gleich

01:51:49.807 --> 01:51:51.047
großen Proportionen.

01:51:51.807 --> 01:51:52.107
Ja.

01:51:56.067 --> 01:51:57.427
Dieses Jahr war

01:51:57.427 --> 01:51:59.527
eine Spur zu viel Fail, ehrlich gesagt.

01:51:59.648 --> 01:52:01.367
Für meinen Geschmack, so in der

01:52:01.367 --> 01:52:02.007
Gesamtsituation.

01:52:03.087 --> 01:52:05.247
Aber es sieht ja leider so aus, als ob

01:52:05.247 --> 01:52:07.087
das uns noch ein Jahr beschäftigt.

01:52:07.087 --> 01:52:19.307
Ja, aber ich fand ja gut, also was ich toll finde an der ganzen Geschichte ist, dass jetzt alle das mit dem Internet mal so richtig und das mit dem Paketen und so, das geht jetzt alles und das ist, ab dann denke ich jetzt, ab jetzt ist es halt jetzt normal.

01:52:19.307 --> 01:52:21.967
Also es gab auch wahrscheinlich ein paar coole Sachen auch irgendwie, also ich weiß nicht.

01:52:22.188 --> 01:52:22.247
Ja?

01:52:22.367 --> 01:52:22.947
Ja, ja.

01:52:23.567 --> 01:52:26.527
Also so ein paar Sachen sind vielleicht gar nicht so schlecht, dass das jetzt mal so durch ist.

01:52:27.067 --> 01:52:29.547
Ja, so das mit dem Homeoffice irgendwie, das ist ja so normales zum Beispiel.

01:52:29.547 --> 01:52:35.067
Das ist so eine Sache, die eigentlich schon selbstverständlicher hätte sein können, irgendwie länger.

01:52:35.667 --> 01:52:37.287
Und wie man sich ja auch immer so dachte.

01:52:37.507 --> 01:52:40.728
Ja, wobei Jochen und ich, wir leben das ja schon seit Jahren.

01:52:41.307 --> 01:52:42.047
Ja, ich auch übrigens.

01:52:42.567 --> 01:52:43.767
Herzlich willkommen in unserer Welt.

01:52:46.527 --> 01:52:47.487
Das meine ich ja, genau.

01:52:47.847 --> 01:52:51.087
Und da merkt man mal, was für Vorteile das hat oder auch für Herausforderungen

01:52:51.087 --> 01:52:53.907
und dass es nicht mehr darum geht, dass man nur nichts machen will oder so.

01:52:54.847 --> 01:52:59.267
Ja, und es gibt noch so ein paar andere gute Sachen.

01:52:59.267 --> 01:53:01.148
also so ein paar Menschen sind nicht wieder

01:53:01.148 --> 01:53:03.107
gewählt worden oder so, das gab es ja auch und

01:53:03.107 --> 01:53:05.267
noch ist er

01:53:05.267 --> 01:53:05.607
nicht weg.

01:53:08.967 --> 01:53:10.967
Ich habe eben tatsächlich im März noch mit

01:53:10.967 --> 01:53:12.787
einer Firma gesprochen, die hatten immer

01:53:12.787 --> 01:53:15.067
Inhouse-Entwicklung und die

01:53:15.067 --> 01:53:17.087
haben dann aber umgestellt auf Homeoffice

01:53:17.087 --> 01:53:19.127
hatten 3000 Entwickler, die dann plötzlich

01:53:19.127 --> 01:53:20.927
im Homeoffice waren und

01:53:20.927 --> 01:53:23.007
weil das alles sicherheitskritisch war, war das alles

01:53:23.007 --> 01:53:24.067
mit Remote Desktop und so.

01:53:25.467 --> 01:53:27.107
Die hatten aber nur Remote

01:53:27.107 --> 01:53:29.007
Desktop Kapazitäten für 1000

01:53:29.007 --> 01:53:29.007


01:53:30.707 --> 01:53:31.107
Anwender

01:53:31.107 --> 01:53:33.267
Also die hatten einfach nur 1000 Desktops, die sie

01:53:33.267 --> 01:53:34.827
Remote zur Verfügung stellen konnten

01:53:34.827 --> 01:53:37.207
und haben dann relativ schnell gemerkt, dass da

01:53:37.207 --> 01:53:38.367
irgendwas nicht geht

01:53:38.367 --> 01:53:39.747
Tja

01:53:39.747 --> 01:53:42.667
Und mussten dann so ein kleines bisschen nachziehen

01:53:42.667 --> 01:53:45.107
Also auch der

01:53:45.107 --> 01:53:47.148
Übergang war da nicht immer ganz flüssig

01:53:47.148 --> 01:53:49.267
Nö, also das hat man auch, aber ich, ehrlich gesagt

01:53:49.267 --> 01:53:50.987
mich hat das überrascht, wie wenig

01:53:50.987 --> 01:53:52.807
das dann, also klar, also

01:53:52.807 --> 01:53:55.047
gab da natürlich Probleme und so, also

01:53:55.047 --> 01:53:56.807
das hat dann auch, also ab und zu ging dann halt auch mal

01:53:56.807 --> 01:54:00.787
irgendwas wirklich nicht oder so, aber ich hätte jetzt erwartet, also wenn man mir gesagt hätte,

01:54:00.987 --> 01:54:07.347
also in einem Umfeld, wo Remote nicht üblich war, machen das jetzt alle irgendwie 100% die ganze Zeit

01:54:07.347 --> 01:54:08.967
und es muss halt einfach alles darüber funktionieren.

01:54:09.047 --> 01:54:10.987
Ich hätte gedacht so, oh mein Gott, das gibt eine Katastrophe.

01:54:11.927 --> 01:54:12.648
Das dauert Jahre.

01:54:12.827 --> 01:54:14.707
Das dauert Jahre und das ist alles ganz schrecklich.

01:54:14.807 --> 01:54:21.688
Und wenn man das als Projekt geplant hätte, dann hätte jemand gesagt, okay, da müssen wir Jahre.

01:54:22.527 --> 01:54:25.927
Tatsächlich hat es aber nicht Jahre gedauert, sondern weil es wirklich nötig war,

01:54:25.927 --> 01:54:27.987
ging es dann halt irgendwie doch und das ging auch relativ

01:54:27.987 --> 01:54:29.767
schnell und es hat zwar auch böse gefällt

01:54:29.767 --> 01:54:31.907
aber zum Beispiel die Schulen oder sowas

01:54:31.907 --> 01:54:33.827
ist ja auch ein Riesenproblem, aber das wird halt einfach

01:54:33.827 --> 01:54:35.267
jetzt auch rapide, schneller, besser.

01:54:35.688 --> 01:54:37.667
Und das brauchen wir ja wahrscheinlich, wenn wir irgendwie sowas wie

01:54:37.667 --> 01:54:39.807
Zukunft irgendwann mal besser machen wollen, auch

01:54:39.807 --> 01:54:40.188
irgendwie.

01:54:41.007 --> 01:54:43.847
Das sind so ein paar Dinge, die halt dann

01:54:43.847 --> 01:54:45.847
doch schneller funktionieren oder dass so ein Impfstoff

01:54:45.847 --> 01:54:47.867
so schnell entwickelt werden kann und so und wie viele Leute da auf einmal

01:54:47.867 --> 01:54:49.228
doch kollaborativ arbeiten können.

01:54:49.827 --> 01:54:51.827
Alles nicht so schlecht. Und dass man entdeckt hat, dass China

01:54:51.827 --> 01:54:53.907
nicht wirklich vertrauenswürdig ist, also gar nicht so schlechte

01:54:53.907 --> 01:54:55.707
Dinge. Ja, sowas.

01:54:55.927 --> 01:55:03.247
Ich habe vor kurzem den Traffic von einem niederländischen ISP gesehen.

01:55:03.327 --> 01:55:04.607
Die hatten so eine Zusammenfassung. War auf Twitter.

01:55:05.447 --> 01:55:09.307
Und die haben Traffic-Spitzen zu jeder vollen Stunde zu den Bürozeiten,

01:55:09.587 --> 01:55:12.148
weil da die Videomeetings anfangen.

01:55:14.207 --> 01:55:17.827
Und die dauern halt unterschiedlich lang und jede Stunde ist ein Peak

01:55:17.827 --> 01:55:20.067
und das fällt dann bis zur nächsten Stunde wieder so ab.

01:55:20.427 --> 01:55:20.867
Sehr schön.

01:55:21.107 --> 01:55:22.847
Oder zur nächsten vollen Stunde.

01:55:22.847 --> 01:55:24.728
und in der Mittagspause

01:55:24.728 --> 01:55:26.648
sieht man eben, dass dieser Peak nicht da ist, weil um

01:55:26.648 --> 01:55:28.347
12 eben keine Meetings anfangen und

01:55:28.347 --> 01:55:30.148
es ist sehr, sehr schön.

01:55:31.807 --> 01:55:32.947
Ja, ja, ja.

01:55:34.188 --> 01:55:35.027
Ja, auch noch so eine Sache,

01:55:35.127 --> 01:55:36.607
dass die alle darauf aufmerksam sind,

01:55:36.667 --> 01:55:38.507
dass man die Kapazitäten da ernsthaft ausbauen muss,

01:55:38.607 --> 01:55:40.607
vielleicht auch und so. Also endgültig,

01:55:40.648 --> 01:55:42.947
das wusste man ja eigentlich schon, aber so diese Notwendigkeit.

01:55:43.847 --> 01:55:44.267
Ja, es gab

01:55:44.267 --> 01:55:46.167
ein paar schöne Sachen auch dieses Jahr.

01:55:47.527 --> 01:55:48.307
Hoffentlich auch bei euch.

01:55:48.747 --> 01:55:50.407
Ja, ja.

01:55:50.487 --> 01:55:51.967
Selbstverständlich. Corona-Kekse, ich meine.

01:55:52.847 --> 01:56:01.007
Ja, hat man das eigentlich gesehen? Ich habe die ja auch dann verlinkt, ob man das...

01:56:01.007 --> 01:56:01.167
Ja, natürlich.

01:56:03.247 --> 01:56:17.148
Also da ist so wenig Traffic drauf, dass man nicht sieht, dass es individuelle Ereignisse gibt, aber vielleicht, wir können uns das jetzt an alle Hörer als Vorsatz nehmen, dass ihr mal einen Traffic-Spike in meine...

01:56:17.148 --> 01:56:19.307
Du meinst, es ist noch jemand dabei, jetzt um diese Zeit?

01:56:19.307 --> 01:56:21.567
bringt. Ja, selbstverständlich.

01:56:21.707 --> 01:56:23.407
Wir haben noch nicht mal die zwei Stunden überschritten.

01:56:23.807 --> 01:56:24.387
Ja, okay.

01:56:25.587 --> 01:56:26.827
Ja, was ich jetzt, ich habe jetzt,

01:56:27.127 --> 01:56:29.167
ich habe

01:56:29.167 --> 01:56:30.987
in letzter Zeit, ich habe ein bisschen Zeit

01:56:30.987 --> 01:56:32.607
dann irgendwie auch auf Statistiken geguckt

01:56:32.607 --> 01:56:34.847
und was ich schon überraschend fand, jetzt auch gerade

01:56:34.847 --> 01:56:36.927
zu Weihnachten, da hat man natürlich einen Einbruch, aber es gibt

01:56:36.927 --> 01:56:38.787
immer noch irgendwie pro Tag, weiß ich nicht,

01:56:39.767 --> 01:56:40.967
allein auf Spotify 25

01:56:40.967 --> 01:56:42.967
Leute, die sich das zu Weihnachten angehört haben, wo ich

01:56:42.967 --> 01:56:44.987
das so, habt ihr eigentlich

01:56:44.987 --> 01:56:46.307
ehrlich gesagt, also ich meine,

01:56:46.667 --> 01:56:47.827
naja, also.

01:56:47.827 --> 01:56:48.907
zu tun.

01:56:48.907 --> 01:56:50.007
Was hast du denn Weihnachten gemacht?

01:56:51.148 --> 01:56:52.767
Ja, aber...

01:56:52.767 --> 01:56:54.747
Also ich habe alle Episoden vom

01:56:54.747 --> 01:56:56.467
Python-Podcast nachgehört gleichzeitig.

01:56:57.847 --> 01:56:58.287
Selbstverständlich.

01:56:58.487 --> 01:56:59.787
Hatte ich ja nicht mal Zeit dafür.

01:57:00.807 --> 01:57:02.688
Ich weiß noch, woher die 25-Klicks herkommen.

01:57:05.787 --> 01:57:06.787
26 waren es ja,

01:57:06.807 --> 01:57:08.087
weil es waren ja 26 Episoden.

01:57:08.247 --> 01:57:09.487
Die eine Episode hast du schon gehört.

01:57:10.527 --> 01:57:11.987
Ja, die erste, die Einführung.

01:57:14.607 --> 01:57:17.007
Nee, aber das ist doch immer, es gibt doch immer...

01:57:17.007 --> 01:57:46.987
und Jochen unterhalten sich über die Programmiersprache Python

01:57:47.007 --> 01:57:48.007
war zu Hause Weihnachten.

01:57:48.387 --> 01:57:50.827
Ja, genau.

01:57:51.527 --> 01:57:52.867
Aber das ist doch nicht unentspannt.

01:57:54.188 --> 01:57:55.087
Zum Teil sogar

01:57:55.087 --> 01:57:57.007
viel entspannter. Also ich fand es viel entspannter.

01:57:59.007 --> 01:58:01.047
Wir hatten längst nicht so viel hin und her gefahren

01:58:01.047 --> 01:58:03.087
und längst nicht so viel hin und her transportieren.

01:58:05.507 --> 01:58:07.027
Gut, klar, die Kinder sind die ganze Zeit

01:58:07.027 --> 01:58:08.307
da und unbeschäftigt, aber

01:58:08.307 --> 01:58:10.927
mit genügend großen Lego-Packungen

01:58:10.927 --> 01:58:12.047
kriegt man auch nicht das Problem.

01:58:14.887 --> 01:58:15.847
Ja, wir haben leider

01:58:15.847 --> 01:58:18.747
die klassischen Fehler gemacht und haben nicht bemerkt,

01:58:18.807 --> 01:58:20.527
nicht vorher geguckt, dass diese

01:58:20.527 --> 01:58:22.827
Lego-Packungen, die wir gekauft hatten, Batterien brauchen.

01:58:23.547 --> 01:58:24.267
Oh. Ah.

01:58:25.447 --> 01:58:26.207
Ja, und

01:58:26.207 --> 01:58:28.648
es ist halt blöd, wenn die Lokomotive nicht

01:58:28.648 --> 01:58:30.447
fährt, weil keine Batterien da sind. Und wenn Prime

01:58:30.447 --> 01:58:32.267
nicht liefert, same day delivery an Weihnachten,

01:58:32.387 --> 01:58:34.547
dann ist das schämend halt. Ja, also das ist ja

01:58:34.547 --> 01:58:36.267
gar nicht. Und da habe ich dann eigentlich gedacht,

01:58:36.367 --> 01:58:38.267
eigentlich müsste man, das ist auch so eine Sache,

01:58:38.367 --> 01:58:40.127
müsste man eigentlich am ersten Weihnachtsfeiertag

01:58:40.127 --> 01:58:42.467
einfach mit so einem Korb voll Batterien rumgehen

01:58:42.467 --> 01:58:44.607
und die von Haustür zu Haustür verkaufen,

01:58:44.607 --> 01:58:46.767
weil ich bin ja sicherlich nicht der Einzige,

01:58:47.007 --> 01:58:49.027
der Tränen neben Geschenken

01:58:49.027 --> 01:58:49.607
vergessen hat.

01:58:51.607 --> 01:58:53.007
Eine gute Idee, aber das Problem

01:58:53.007 --> 01:58:54.667
ist irgendwie die Marge.

01:58:54.787 --> 01:58:55.367
Das ist die Büschen.

01:58:55.648 --> 01:58:57.707
Ich will es auch nicht machen.

01:58:58.067 --> 01:59:00.688
Du verkaufst eine Batterie für 5 Euro

01:59:00.688 --> 01:59:02.747
Stück und Weihnachten zahlen die Leute.

01:59:02.827 --> 01:59:04.427
Oder wenn die Drohne weiterfliegen muss, dann muss

01:59:04.427 --> 01:59:06.148
die Drohne sich nur selber noch eine Batterie

01:59:06.148 --> 01:59:06.927
reinstecken.

01:59:08.267 --> 01:59:10.287
Die hat sehr große Reichweite,

01:59:10.467 --> 01:59:12.207
diese Drohne, theoretisch gesehen.

01:59:14.607 --> 01:59:44.587
und Jochen unterhalten sich über die Programmiersprache Python

01:59:44.607 --> 01:59:59.877
und

01:59:59.877 --> 02:00:04.277
Das wird schon...

02:00:04.277 --> 02:00:06.117
Tja, wollen wir noch irgendwelche Dinge

02:00:06.117 --> 02:00:07.097
picken oder sowas?

02:00:07.837 --> 02:00:08.317
Standardlib?

02:00:09.317 --> 02:00:11.677
Oder irgendein Modul aus dem Standardlib besprechen?

02:00:12.337 --> 02:00:13.697
Oh, ich weiß eins, ich weiß eins.

02:00:13.877 --> 02:00:14.897
Array.Array.

02:00:14.937 --> 02:00:16.237
Ich wollte auch dann Array sagen.

02:00:16.737 --> 02:00:18.297
Du bist gemein, ich habe mir meine Picke gekauft.

02:00:18.357 --> 02:00:19.277
Das passiert mir jedes Mal.

02:00:20.837 --> 02:00:22.297
Ja, stimmt.

02:00:22.457 --> 02:00:23.817
Das ist ein sehr schönes Modul.

02:00:25.877 --> 02:00:27.197
Wir picken das jetzt einfach an.

02:00:27.197 --> 02:00:29.717
Warte mal, ich muss auch mal Standardlib aufmachen.

02:00:29.717 --> 02:00:30.557
vielleicht in Jahrhunderts.

02:00:32.237 --> 02:00:33.717
Ja, also im Grunde kriegt man

02:00:33.717 --> 02:00:35.417
da natürlich genau das gleiche, was man jetzt auch mit einem

02:00:35.417 --> 02:00:37.557
NumPy-Array oder so kriegen würde, aber

02:00:37.557 --> 02:00:39.777
halt in Situationen, wo man NumPy nicht

02:00:39.777 --> 02:00:41.697
importieren will

02:00:41.697 --> 02:00:43.717
oder nicht voraussetzen will, ist das

02:00:43.717 --> 02:00:45.557
halt mehr, wenn man die ganzen anderen

02:00:45.557 --> 02:00:48.017
NumPy-Arrays so können nicht braucht, gute Alternative.

02:00:49.457 --> 02:00:51.457
Ja, und auch schon zehn Jahre vorher, oder?

02:00:51.697 --> 02:00:53.537
Also dieses Array.Array gibt es ja schon immer.

02:00:53.697 --> 02:00:55.037
NumPy gibt es ja noch nicht schon immer.

02:00:55.477 --> 02:00:56.297
Ja, aber

02:00:56.297 --> 02:00:59.577
ich weiß nicht genau, wann das dazugekommen ist.

02:00:59.717 --> 02:01:03.337
Ja, ob das

02:01:03.337 --> 02:01:04.797
Vorname war, weiß ich nicht.

02:01:05.077 --> 02:01:07.877
Aber es ist schon alles relativ ewig.

02:01:09.517 --> 02:01:11.597
Ich möchte was anderes hervorheben, was

02:01:11.597 --> 02:01:13.857
so ähnlich ist, was auch in diese Kerbe

02:01:13.857 --> 02:01:15.597
schlägt und das ist das Struct-Modul.

02:01:16.077 --> 02:01:16.817
Habt ihr das schon mal gesehen?

02:01:19.237 --> 02:01:21.617
Das ist quasi ein Modul, was es einem

02:01:21.617 --> 02:01:22.277
erlaubt,

02:01:23.077 --> 02:01:24.697
C-Type-Structures

02:01:24.697 --> 02:01:26.737
zu zerlegen.

02:01:27.657 --> 02:01:28.217
Also man

02:01:28.217 --> 02:01:30.577
Man gibt da einen sogenannten Format-String an.

02:01:31.137 --> 02:01:35.857
Es ist ein bisschen ein Gefitzel, diesen Format-String zu bauen oder den zu wissen.

02:01:37.697 --> 02:01:45.397
Aber dieser Format-String erlaubt es einem dann sozusagen Structs, so wie sie in C vorkommen, zu lesen und zu schreiben.

02:01:46.277 --> 02:01:49.117
Und die sind natürlich auf Bit-Ebene gepackt.

02:01:49.117 --> 02:01:50.437
also wenn man da eben

02:01:50.437 --> 02:01:53.377
die Werte mit den

02:01:53.377 --> 02:01:54.517
entsprechenden Bitlängen hat

02:01:54.517 --> 02:01:57.357
die sind sehr dicht

02:01:57.357 --> 02:01:58.997
und sehr eng gepackt

02:01:58.997 --> 02:02:01.617
und man braucht das manchmal wenn man Formate liest

02:02:01.617 --> 02:02:02.637
die eben eng gepackt sind

02:02:02.637 --> 02:02:05.117
also Bitmap zum Beispiel ist so ein

02:02:05.117 --> 02:02:07.577
Format das ist relativ simpel zu parsen

02:02:07.577 --> 02:02:09.197
in C weil es im Wesentlichen

02:02:09.197 --> 02:02:10.217
wenn man die Structs kennt

02:02:10.217 --> 02:02:12.957
kann man das im Wesentlichen einfach reinladen

02:02:12.957 --> 02:02:15.337
und das ist in Python ein bisschen

02:02:15.337 --> 02:02:17.577
schwieriger zu verarbeiten aber mit dem Structmodul

02:02:17.577 --> 02:02:18.237
auch nicht

02:02:18.237 --> 02:02:22.357
weil man da eben nur die entsprechenden Formate wissen muss und die entsprechenden Formate

02:02:22.357 --> 02:02:26.737
eintragen muss und das Struct-Modul zerlegt einen, die dann in Python-Werte

02:02:26.737 --> 02:02:30.617
und umgekehrt auch, wenn man die schreiben möchte, schreibt sie auch in Python-Werte.

02:02:31.297 --> 02:02:34.577
Ist super gut, wenn man Daten eng gepackt haben möchte oder

02:02:34.577 --> 02:02:38.977
bereits vorliegen hat, um solche Sachen, die eben in C sehr leicht

02:02:38.977 --> 02:02:41.877
sind, auseinanderzupacken und in

02:02:41.877 --> 02:02:44.777
Python-Werte umzuwandeln.

02:02:44.777 --> 02:02:57.129
braucht man nicht super h aber wenn man es braucht ist es voll gut also ich habe es tats auch nie so wirklich super h aber wir haben es auch einmal an einer Stelle gebraucht was man

02:02:57.129 --> 02:02:59.249
zum Beispiel machen kann, ist man baut

02:02:59.249 --> 02:03:01.609
halt sozusagen die Datenstrukturen

02:03:01.609 --> 02:03:03.529
die man in einer anderen Bibliothek dann verwenden möchte

02:03:03.529 --> 02:03:05.409
also man hat zum Beispiel irgendeine C-Bibliothek, die irgendwas

02:03:05.409 --> 02:03:06.789
macht, also in unserem Fall war das halt

02:03:06.789 --> 02:03:09.670
das war halt so eine Bibliothek

02:03:09.670 --> 02:03:11.609
zum Lösen von so Support Vector Maschinen

02:03:11.609 --> 02:03:13.109
Geschichten, lineare Support Vector Maschinen

02:03:13.109 --> 02:03:15.370
und normalerweise

02:03:15.370 --> 02:03:17.609
gibst du den Trainingsdaten und so halt

02:03:17.609 --> 02:03:19.610
in Form von, und halt auch

02:03:19.610 --> 02:03:21.610
die Sachen, die du nachher klassifizieren willst, in Form von

02:03:21.610 --> 02:03:23.189
so Textfiles, wo das dann mit

02:03:23.189 --> 02:03:24.969
Doppelpunkt getrennt ist und Kommas und so.

02:03:25.569 --> 02:03:27.689
Aber das ist halt alles Mist, weil Textfiles

02:03:27.689 --> 02:03:29.469
zu parsen, das ist halt, alles dauert alles lange

02:03:29.469 --> 02:03:31.069
und das geht alles nicht toll.

02:03:31.689 --> 02:03:33.329
Aber dann kannst du halt das aber in dem

02:03:33.329 --> 02:03:35.450
Format, das war zum Glück sehr

02:03:35.450 --> 02:03:37.429
simpel, wie die Bibliothek halt die Daten halt

02:03:37.429 --> 02:03:39.489
selber dann, also das Zielformat, in das sie

02:03:39.489 --> 02:03:41.429
die Sachen geparsed hat, kannst du halt in Python

02:03:41.429 --> 02:03:43.189
hingehen und das einfach so in den Hauptspeicher schreiben.

02:03:43.189 --> 02:03:49.890
das in Chat-Memory-Signal packen und dann halt einfach von der Library aus einfach so verwenden.

02:03:50.289 --> 02:03:54.629
Dann hast du gerade gepasst, bitteschön, mach damit mal irgendwas.

02:03:55.149 --> 02:03:56.370
Und das hat einfach super funktioniert.

02:03:57.509 --> 02:04:05.289
Ja, auch für so Netzwerksachen ist es super nützlich, weil man eben oft diese Sachen, die man über das Netzwerk kriegt,

02:04:05.289 --> 02:04:08.209
halt oft so gepackt sind, wie sie halt in C gepackt werden.

02:04:08.610 --> 02:04:12.890
Und da die einzelnen Felder rausholen, ist mit Struct super nice und super simpel.

02:04:13.189 --> 02:04:15.189
und

02:04:43.189 --> 02:04:54.489
Ja, also einfach Python Bycode anschauen. Das ist generell eine sehr interessante Sache. Die Episode möchte ich gerne hören. Kann ich zu wenig, um dazu beizutragen.

02:04:54.489 --> 02:04:59.229
Das ist halt immer das Problem. Bei vielen Dingen bräuchte man eigentlich jemanden, der sich so richtig damit auskennt.

02:05:00.049 --> 02:05:03.409
Also ich jedenfalls nicht.

02:05:05.270 --> 02:05:08.809
Und wir sind auch offensichtlich alle zu faul, um uns herzubereiten.

02:05:08.809 --> 02:05:10.049
zu machen.

02:05:10.349 --> 02:05:12.309
Das kann man ja mal ab und zu machen, aber die ganze Zeit,

02:05:12.409 --> 02:05:13.729
oh Gott, Arbeit.

02:05:15.609 --> 02:05:16.509
Ja, da ist es wieder,

02:05:16.590 --> 02:05:18.849
das mit dem zwei Stunden des Arbeitens

02:05:18.849 --> 02:05:20.509
erspart uns zwei Minuten des Nachdenkens.

02:05:21.489 --> 02:05:23.189
Ja, aber das muss so genau sein.

02:05:23.210 --> 02:05:24.689
Ja, aber da ist ja jetzt, der Dominik

02:05:24.689 --> 02:05:26.809
ist ja jetzt eingearbeitet, der kann uns ja dann sagen, wie das

02:05:26.809 --> 02:05:28.789
funktioniert. Oh ja, natürlich, der absolute Profi, wie immer

02:05:28.789 --> 02:05:29.789
in allen Themen.

02:05:31.249 --> 02:05:32.650
Das Call Me, ruft sich an,

02:05:32.749 --> 02:05:33.809
hört mir zu

02:05:33.809 --> 02:05:34.889
und

02:05:34.889 --> 02:05:47.182
morgens mittags abends nachts und man immer wieder einschalten will Hey ich wollte auch noch was picken Du darfst was picken Ja Das hast du eben Aber was habe ich denn gepickt Du hast Array gepickt Ja genau Ach so okay Dann ist gut Nein du musst jetzt was picken

02:05:47.462 --> 02:05:48.422
Ah, na gut.

02:05:49.942 --> 02:05:51.622
Weil ich wollte nämlich eigentlich noch...

02:05:51.622 --> 02:05:58.302
Ich mache gerade momentan so ein bisschen Fast API nebenher und das, was mir da auch

02:05:58.302 --> 02:06:02.902
tatsächlich sehr nützlich untergekommen ist, ist halt Pydentic.

02:06:03.802 --> 02:06:05.262
Das ist ziemlich klasse.

02:06:05.262 --> 02:06:08.082
Pydentic, das hört sich nicht was für dich an.

02:06:08.662 --> 02:06:09.142
Bibliothek,

02:06:09.562 --> 02:06:11.782
das hört sich an wie was für Zahlenernstich.

02:06:12.422 --> 02:06:12.622
Ja,

02:06:13.782 --> 02:06:15.802
es gibt eine ganze Reihe von

02:06:15.802 --> 02:06:16.822
diesen Geschichten.

02:06:16.822 --> 02:06:17.622
Ah, Pydentic.

02:06:19.462 --> 02:06:20.182
Das ist,

02:06:20.362 --> 02:06:22.562
also es kann auch ein bisschen, also es ist halt

02:06:22.562 --> 02:06:24.722
auf diesen API-Fall sehr zugeschnitten,

02:06:25.242 --> 02:06:26.622
wo es halt in FastAPI

02:06:26.622 --> 02:06:27.482
halt irgendwie da so

02:06:27.482 --> 02:06:30.622
wichtige Funktionen

02:06:30.622 --> 02:06:32.222
übernimmt, aber es gibt in Python jetzt

02:06:32.222 --> 02:06:34.462
seit einiger Zeit schon so irgendwie so ein Trend

02:06:34.462 --> 02:06:35.762
irgendwie

02:06:35.762 --> 02:06:38.722
die Erstellung von Klassen

02:06:38.722 --> 02:06:40.922
einfacher zu machen

02:06:40.922 --> 02:06:42.722
und wie so Objekte

02:06:42.722 --> 02:06:44.582
zu serialisieren, deserialisieren,

02:06:44.642 --> 02:06:46.302
das auch alles so ein bisschen simpler

02:06:46.302 --> 02:06:47.502
hinzukriegen.

02:06:48.842 --> 02:06:50.682
Weil es gibt halt so bestimmte Sachen, die braucht man halt

02:06:50.682 --> 02:06:52.202
ständig und bestimmte

02:06:52.202 --> 02:06:54.522
Methoden wären halt auch nett,

02:06:54.562 --> 02:06:56.642
wenn die einfach so da wären. Aber das alles selber

02:06:56.642 --> 02:06:58.122
hinzuschreiben ist halt ein Haufen Arbeit.

02:06:59.282 --> 02:07:00.622
Also ich sage jetzt mal so,

02:07:00.622 --> 02:07:02.502
die anderen Geschichten, die in die Richtung gehen, ist so

02:07:02.502 --> 02:07:06.542
und Atteres, das müssen wir uns auch nochmal mit Leuten teilen, die sich damit auskennen.

02:07:07.582 --> 02:07:08.522
Und Data Classes.

02:07:08.682 --> 02:07:09.682
Und Data Classes, genau.

02:07:09.902 --> 02:07:18.722
Das ist halt in die gleiche, also das ist auch in der Standardbibliothek, das ist inspiriert von Atteres, soweit ich das weiß.

02:07:20.982 --> 02:07:26.342
Und ja, aber was man da halt auch machen kann, ist, du kannst halt ein Dict nehmen und sagen,

02:07:26.342 --> 02:07:31.762
okay, mach daraus jetzt ein Objekt von einer bestimmten Klasse.

02:07:31.762 --> 02:07:49.722
und Python-Tick macht das Ganze nochmal so, da hast du nur .dict und du hast halt auch einen ORM-Mode, wo du Sachen direkt aus dem Datenbank-Result direkt in Objekte packen kannst.

02:07:51.322 --> 02:07:59.562
Und das Ding macht dann halt Überprüfungen, ob das jetzt korrekt, ob die ganzen Typen korrekt sind oder so, halt von selber.

02:07:59.562 --> 02:08:25.242
Du hast halt so, ist es quasi so ein bisschen ähnlich wie bei Django-Modellen, du schreibst halt hin, welche Attribute gibt es denn und welchen Typ haben die und aber das kannst du halt auch kompliziert machen, kannst nicht nur Typefins verwenden, sondern halt auch noch Validatoren dafür schreiben und keine Ahnung, kannst ja dann relativ sicher sein, dass wenn die Daten halt von der Klasse gefressen werden, dann waren die im richtigen Format und ansonsten gibt es eine vernünftige Fehlermeldung und man muss sich da um nichts kümmern, außer das halt zu definieren, was man gerne hätte.

02:08:25.242 --> 02:08:37.695
und alles andere macht halt die Magie da drin und das ist nat schon sehr sch Und ja ich glaube es ist ein ganz interessanter Trend Ich wei auch nicht so genau warum das jetzt irgendwie so aber da passieren auch

02:08:37.695 --> 02:08:39.094
so mehrere Dinge gleichzeitig.

02:08:40.815 --> 02:08:41.675
Ich weiß nicht, habt ihr

02:08:41.675 --> 02:08:42.055
den,

02:08:43.575 --> 02:08:45.275
Marc hatte so einen Vortrag gehalten,

02:08:45.395 --> 02:08:46.075
ich weiß nicht genau,

02:08:47.075 --> 02:08:49.635
hier von der Python

02:08:49.635 --> 02:08:50.755
Düsseldorf

02:08:50.755 --> 02:08:53.015
zur Zukunft von Python.

02:08:53.015 --> 02:08:54.094
Nee, hab ich nicht geguckt.

02:08:55.075 --> 02:08:56.335
Da war das generell...

02:08:56.335 --> 02:08:56.895
Verlink den mal.

02:08:57.695 --> 02:08:58.795
Würde ich gerne auch noch sehen.

02:08:59.035 --> 02:09:00.895
Der war tatsächlich ganz interessant.

02:09:01.955 --> 02:09:04.075
Ein Thema vielleicht für die Zukunft

02:09:04.075 --> 02:09:05.635
von Python, ganz interessant, könnte

02:09:05.635 --> 02:09:08.075
dieser ganze Enterprise-Bereich sein.

02:09:10.315 --> 02:09:11.495
Weil, also der ist

02:09:11.495 --> 02:09:12.575
total...

02:09:12.575 --> 02:09:15.955
Auf der Pydentic-Webseite steht schon,

02:09:16.115 --> 02:09:17.654
dass Microsoft das benutzt, um das

02:09:17.654 --> 02:09:20.295
in Windows und Office einzubauen.

02:09:20.535 --> 02:09:22.815
Also das ist schon mal

02:09:22.815 --> 02:09:23.415
die richtige Richtung.

02:09:23.415 --> 02:09:23.995
Genau.

02:09:23.995 --> 02:09:28.015
und also dieser ganze Enterprise-Bereich ist ja momentan total von Java dominiert,

02:09:28.255 --> 02:09:32.255
aber tatsächlich für viele Dinge braucht man

02:09:32.255 --> 02:09:35.815
gar nicht so diese, man muss halt nicht irgendwie alles erst mal mit der

02:09:35.815 --> 02:09:39.375
Pattern, mit dem Gang of Four Buch, genau.

02:09:39.675 --> 02:09:43.915
Ja, es ist erstaunlich und

02:09:43.915 --> 02:09:48.095
vielleicht auch ein bisschen traurig für Leute, die jetzt viel Zeit damit verbracht haben, das alles auswendig

02:09:48.095 --> 02:09:52.035
zu lernen, aber vielleicht braucht man sie auch nicht die ganze Zeit dauernd, aber was man vielleicht schon

02:09:52.035 --> 02:09:53.235
braucht, ist halt eine Art,

02:09:53.895 --> 02:09:55.055
solche Sachen

02:09:55.055 --> 02:09:57.255
hinschreiben zu können. Auch so Objekte,

02:09:57.735 --> 02:09:59.435
also so Klassen, die dann halt irgendwie so

02:09:59.435 --> 02:10:01.595
Business-Geschichten machen. Und dafür,

02:10:01.795 --> 02:10:03.735
wenn du jetzt aber ganz viele Klassen hast

02:10:03.735 --> 02:10:05.515
und Sachen hinschreibst, dann ist das halt ziemlich

02:10:05.515 --> 02:10:07.615
nervtötend und öde.

02:10:08.654 --> 02:10:09.654
Und wenn man davon zu sehr

02:10:09.654 --> 02:10:11.575
angeödet ist, dann kann man halt irgendwie solche Sachen verwenden,

02:10:11.675 --> 02:10:13.695
die einen dann halt einen Großteil davon wegautomatisieren.

02:10:13.755 --> 02:10:15.335
Und deswegen ist das halt auch so ein interessanter Bereich.

02:10:16.595 --> 02:10:17.575
Microsoft macht da ja auch

02:10:17.575 --> 02:10:19.415
sowieso Dinge in die Richtung. Die haben ja auch jetzt

02:10:19.415 --> 02:10:20.315
ganz viele Python-Entwickler

02:10:20.315 --> 02:10:23.215
angestellt und

02:10:23.215 --> 02:10:25.255
es könnte sein, dass das halt

02:10:25.255 --> 02:10:27.635
tatsächlich auch so ein bisschen in die Richtung geht,

02:10:27.795 --> 02:10:29.195
weil das ja auch etwas ist, was

02:10:29.195 --> 02:10:31.654
Microsoft eigentlich ganz gut auskennt. Also ich bin

02:10:31.654 --> 02:10:33.654
gespannt, es könnte sein, dass das alles so ein bisschen in die Richtung

02:10:33.654 --> 02:10:35.675
geht und ich finde es auch sehr interessant, was da gerade

02:10:35.675 --> 02:10:37.495
so passiert und es macht halt das Bauen von

02:10:37.495 --> 02:10:39.555
APIs deutlich einfacher, wenn man das halt quasi

02:10:39.555 --> 02:10:41.515
delegieren kann, den harten Teil davon

02:10:41.515 --> 02:10:42.274
an sowas.

02:10:43.274 --> 02:10:45.595
Ein ORM on the fly quasi. Ja, spannend.

02:10:47.315 --> 02:10:47.515
Cool.

02:10:48.455 --> 02:10:48.675
Ja,

02:10:48.675 --> 02:10:53.795
Dann sind wir diesmal für heute am Ende dieses Jahres.

02:10:54.955 --> 02:10:55.835
Auch mittlerweile.

02:10:56.215 --> 02:10:58.274
Und ja, also hört uns immer, wo ihr uns auch immer hört.

02:10:58.395 --> 02:10:59.095
Und so wird uns gewogen.

02:10:59.455 --> 02:11:04.615
Und habt Spaß und müsst zum Einschlafen und zum Aufstehen und zum Autofahren.

02:11:05.115 --> 02:11:05.735
Wo auch immer ihr hinwollt.

02:11:05.774 --> 02:11:06.755
Im Homeoffice natürlich.

02:11:07.815 --> 02:11:09.075
Ja, Jochen, gehen wir noch ein bisschen cybern.

02:11:09.675 --> 02:11:09.875
Ja.

02:11:10.575 --> 02:11:10.935
Alles klar.

02:11:12.855 --> 02:11:14.575
Ja, vielen Dank Johannes, dass du wieder da warst.

02:11:15.395 --> 02:11:16.935
Ja, schön, dass ich dabei sein durfte.

02:11:16.935 --> 02:11:17.855
Ja, wir hören uns.

02:11:17.855 --> 02:11:19.395
und bis zum nächsten Mal.

02:11:19.475 --> 02:11:21.095
Bis zum nächsten Mal. Alles klar. Ciao.

02:11:21.235 --> 02:11:21.415
Tschüss.
