WEBVTT

00:00:00.520 --> 00:00:05.680
Ja, hallo liebe Hörerinnen und Hörer, willkommen beim Python-Podcast, diesmal in der Weihnachtsepisode.

00:00:05.680 --> 00:00:09.900
Ja, was machen wir hier eigentlich? Wir sind diesmal bei Dominik unterm Dach.

00:00:09.900 --> 00:00:12.720
Ja, ich bin der Dominik und dabei ist natürlich wieder Jochen. Hallo Jochen.

00:00:12.720 --> 00:00:23.840
Ja, hallo, ich bin Jochen, genau. Und ja, das ist irgendwie eine sehr schöne, das sieht ein bisschen aus wie eine Raumschiffzentrale, ehrlich gesagt.

00:00:23.840 --> 00:00:28.420
Das sind eine ganze Menge Monitore und Elektronikdinge. Ich bin da ein wenig neidisch, muss ich sagen.

00:00:28.960 --> 00:00:34.120
Ja, das hört sich super an. Also ich bin auch immer neidisch auf deinen schönen Wintergarten, aber probieren wir es mal hier aus.

00:00:34.120 --> 00:00:37.400
Mal gucken, wie der Ton ist und wie unsere Hörer den finden.

00:00:37.400 --> 00:00:40.180
Ja, das wird auch interessant. Das ist einfach jetzt ein anderes System, mit dem wir das aufnehmen.

00:00:40.180 --> 00:00:46.920
Und genau, wir nehmen wieder auf mit den beiden drahtlosen Mikrofonen.

00:00:46.920 --> 00:00:50.920
Letztes Mal hatte ich halt irgendwie so ein Beyerdynamics-Headset verwendet.

00:00:50.920 --> 00:00:58.240
Das war eigentlich ziemlich cool und das war auch vor allen Dingen schön, dass ich dann hören konnte, dass alles immer noch funktioniert und nicht irgendwie der Audio-Stream plötzlich weg ist.

00:00:58.960 --> 00:01:01.600
Ja, aber es ist auch so ein bisschen, es isoliert einen.

00:01:01.600 --> 00:01:05.280
Du meinst mit letztes Mal die Django-Folge, die noch gar nicht ausgestrahlt worden ist?

00:01:05.280 --> 00:01:09.080
Ja doch, also wenn wir die jetzt ausstrahlen, dann ist die schon ausgestrahlt.

00:01:09.080 --> 00:01:12.380
Ja? Also wir machen zuerst die Django-Folge und dann die Weihnachts-Folge?

00:01:12.380 --> 00:01:13.000
Denke ich schon, ja.

00:01:13.000 --> 00:01:16.520
Ja, das finde ich super, okay. Also sind wir sogar in der dritten Episode offiziell.

00:01:16.520 --> 00:01:22.460
Ja, genau. Wobei das natürlich auch wieder darauf ankommt, wann man anfängt zu zählen oder wie man anfängt zu zählen.

00:01:22.460 --> 00:01:23.180
Bei Null?

00:01:23.180 --> 00:01:25.720
Ja, eigentlich sollte man ja bei Null anfangen, genau.

00:01:25.720 --> 00:01:27.380
So, wir sind ja nicht bei Fortran hier.

00:01:27.380 --> 00:01:28.940
So, bei Eins anfangen.

00:01:28.960 --> 00:01:33.300
Bei Eins anfangen zu zählen ist ja im Grunde irgendwie falsch, so für mich als Computer-Affinim.

00:01:33.300 --> 00:01:36.980
Also es gibt Mathematiker, die auch bei Eins anfangen zu zählen, aber das ist alles Unsinn.

00:01:36.980 --> 00:01:38.740
Nee, dann muss man bei Null anfangen.

00:01:38.740 --> 00:01:44.220
Ja, aber natürlich ist jetzt die Frage, wenn wir jetzt bei Null anfangen zu zählen, haben wir ja trotzdem drei Episoden drin.

00:01:44.220 --> 00:01:47.140
Die Länge des Arrays wäre ja irgendwie...

00:01:47.140 --> 00:01:49.280
Es ist immer noch drei, aber wir wären erst bei Nummer zwei.

00:01:49.280 --> 00:01:50.600
Ja, okay.

00:01:50.600 --> 00:01:51.460
Aber ich glaube...

00:01:51.460 --> 00:01:52.220
Ja, darüber müssen wir uns nochmal drüber sprechen.

00:01:52.220 --> 00:01:56.980
Ja, ich glaube, man kann in der Datenbank...

00:01:56.980 --> 00:01:58.980
Es sind momentan tatsächlich die IDs der Datenbank.

00:01:58.980 --> 00:02:02.880
Man kann in der Datenbank, die fängt auch mit Eins an und nicht mit Null.

00:02:02.880 --> 00:02:05.820
Naja, ach, alles kaputt.

00:02:05.820 --> 00:02:10.200
Alle tolle Sachen werden dann nur mal kaputt gemacht.

00:02:10.200 --> 00:02:11.320
Ja, genau.

00:02:11.320 --> 00:02:14.320
Kaputt ist direkt das nächste Stichwort, weil was machen wir heute?

00:02:14.320 --> 00:02:18.200
Heute wollen wir tatsächlich ein bisschen darüber erzählen, was alles nicht so richtig funktioniert.

00:02:18.200 --> 00:02:21.600
Vor allen Dingen, was der Jochen immer so im Web macht und was dann da nicht klappt.

00:02:21.600 --> 00:02:25.980
So an Pandas mit Request-HTML, Paars mit seinem Respy.

00:02:26.980 --> 00:02:28.300
Passt und muss weg.

00:02:28.300 --> 00:02:30.260
Und mit dem Verstärker von Jochen.

00:02:30.260 --> 00:02:34.940
Ja, da wollten wir am Ende ein bisschen euch über eigene Podcasts erzählen.

00:02:34.940 --> 00:02:36.960
Was es so für interessante Dinge noch gibt.

00:02:36.960 --> 00:02:38.720
Ja, und diesmal so ein bisschen durcheinander.

00:02:38.720 --> 00:02:40.240
Ist ja die Weihnachtsfolge ein bisschen Chaos.

00:02:40.240 --> 00:02:45.460
Genau, wir haben nicht wirklich was vorbereitet, sondern wir erzählen jetzt einfach mal so, was so passiert.

00:02:45.460 --> 00:02:46.880
Was vielleicht auch ganz interessant sein kann.

00:02:46.880 --> 00:02:51.420
Und ich denke, vielleicht ist es sogar am besten einfach mal so, ja, wie geht es uns eigentlich so?

00:02:51.420 --> 00:02:55.640
Ja, wir erzählen Fragen, Anmerkungen, Kommentare, Lob, Hass, alles Mögliche.

00:02:55.640 --> 00:02:56.420
Schreibt an...

00:02:56.980 --> 00:03:02.720
Und die Links und zusätzlichen Infos findet ihr in den Shownotes.

00:03:02.720 --> 00:03:04.720
Ja, Entschuldigung, ich wollte dich jetzt nicht unterbrechen.

00:03:04.720 --> 00:03:05.480
Direkt los.

00:03:05.480 --> 00:03:06.240
Was machen wir heute?

00:03:06.240 --> 00:03:07.940
Wir haben uns nicht richtig vorbereitet.

00:03:07.940 --> 00:03:10.880
Ja, wir machen quasi querbeet, alles Mögliche.

00:03:10.880 --> 00:03:11.240
Genau.

00:03:11.240 --> 00:03:14.540
Und ja, aber genau, wie geht es uns?

00:03:14.540 --> 00:03:15.840
Wie geht es dir, Jochen?

00:03:15.840 --> 00:03:17.800
Ja, besser.

00:03:17.800 --> 00:03:26.800
Nachdem wir irgendwie letzten Monat bei einem Ausflug irgendwie in den Taunus...

00:03:26.980 --> 00:03:29.560
Wir haben ja einen Hund in die rechte Hand gebissen.

00:03:29.560 --> 00:03:34.820
Ich dachte immer so ein bisschen, bin ich eher so der Hundetyp statt Kapstentyp.

00:03:34.820 --> 00:03:37.540
Aber das muss wohl auf Gegenseitigkeit beruhen.

00:03:37.540 --> 00:03:41.100
Und wenn man von Hunden nicht so gemocht wird, dann...

00:03:41.100 --> 00:03:42.200
War ja erst wenigstens ein süßer Hund.

00:03:42.200 --> 00:03:43.720
Nee, nee.

00:03:43.720 --> 00:03:45.540
Sogar ein hässlicher Kleiner.

00:03:45.540 --> 00:03:47.560
Oder ein hässlicher Großartiger.

00:03:47.560 --> 00:03:48.380
Ja, ja.

00:03:48.380 --> 00:03:48.980
Schön.

00:03:48.980 --> 00:03:52.880
Und das ist natürlich auch ein bisschen blöd, wenn man die Hand gebissen wird.

00:03:52.880 --> 00:03:53.980
Das ist echt...

00:03:53.980 --> 00:03:54.940
Muss das sein?

00:03:54.940 --> 00:03:55.980
Und ähm...

00:03:56.980 --> 00:03:59.820
Aber da sind jetzt die Verwenderer ab und das sieht alles super aus.

00:03:59.820 --> 00:04:02.660
Ja, kann alles bewegen und deshalb...

00:04:02.660 --> 00:04:04.180
Wie hast du in der Zeit die Maus gesteuert? Mit dem Fuß?

00:04:04.180 --> 00:04:06.640
Nee, tatsächlich mit der gleichen Hand.

00:04:06.640 --> 00:04:08.140
Ich habe keine Maus, ich habe ein Trackpad.

00:04:08.140 --> 00:04:09.420
Ah, ein Trackpad.

00:04:09.420 --> 00:04:10.080
Ja.

00:04:10.080 --> 00:04:11.560
Das ist ja fast ganz oldschool.

00:04:11.560 --> 00:04:12.920
Also kein Trackball, ein Pad.

00:04:12.920 --> 00:04:14.240
Nein, ein Trackpad, genau.

00:04:14.240 --> 00:04:22.160
Und die Idee dabei ist sozusagen, dass ich möchte, dass meine Desktop-Arbeitsumgebung

00:04:22.160 --> 00:04:24.460
möglichst ähnlich ist wie meine Laptop-Arbeitsumgebung.

00:04:24.460 --> 00:04:26.840
Und auf dem Laptop hat man ja meistens auch ein Trackpad.

00:04:26.980 --> 00:04:29.360
Oder also in meinem Laptop habe ich ein Trackpad.

00:04:29.360 --> 00:04:30.960
Oder man nimmt sich eine Maus mit, ja.

00:04:30.960 --> 00:04:31.620
Ja.

00:04:31.620 --> 00:04:37.720
Und dann ist es halt sozusagen wenig Umstieg.

00:04:37.720 --> 00:04:44.500
Also das ist sozusagen die Idee, dass man da halt einen fließenden Übergang hat.

00:04:44.500 --> 00:04:45.820
Dass man seine Routinen mitnehmen kann.

00:04:45.820 --> 00:04:46.140
Genau.

00:04:46.140 --> 00:04:50.160
Und ich habe auch die gleiche Tastatur, sozusagen die gleiche Bluetooth-Tastatur am Desktop

00:04:50.160 --> 00:04:52.200
wie die Tastatur, die ich im Laptop habe.

00:04:52.200 --> 00:04:54.760
Und das hat eigentlich immer ganz gut funktioniert.

00:04:54.760 --> 00:04:55.960
Ich habe letztens umstellen müssen.

00:04:56.980 --> 00:05:00.220
Weil, ah, ja, jetzt sind wir schon mal wieder bei der Idee.

00:05:00.220 --> 00:05:02.720
Ja.

00:05:02.720 --> 00:05:07.140
Weil blöderweise irgendwie die Tastatur an meinem Laptop nicht mehr so richtig geht,

00:05:07.140 --> 00:05:08.680
was ein bekanntes Problem ist.

00:05:08.680 --> 00:05:12.120
Ich habe so ein 2016er Gurken-Macbook.

00:05:12.120 --> 00:05:15.820
Und da ist die Tastatur, die funktioniert halt dann irgendwann nicht mehr,

00:05:15.820 --> 00:05:20.180
wenn der Krümel sich zwischen den Tasten und der Mechanik da irgendwie verhaken.

00:05:20.180 --> 00:05:21.100
Oh, das ist natürlich nicht so cool.

00:05:21.100 --> 00:05:22.780
Also guck mal hier, also dann sowas.

00:05:22.780 --> 00:05:23.880
Ich kann jetzt Werbung machen.

00:05:23.880 --> 00:05:24.820
Ich mache mir Werbung.

00:05:24.820 --> 00:05:25.760
Ja, das geht.

00:05:25.760 --> 00:05:26.560
Jetzt machen wir Werbung.

00:05:26.660 --> 00:05:28.500
Ich habe eine Cherry-Tastatur mit so Caps.

00:05:28.500 --> 00:05:30.040
Die macht man einfach hier abmachen.

00:05:30.040 --> 00:05:30.500
Wow.

00:05:30.500 --> 00:05:31.600
Und dann kann man die saubern.

00:05:31.600 --> 00:05:34.600
Und das kann man ja mit einem Caps so machen.

00:05:34.600 --> 00:05:35.540
Das ist ganz cool.

00:05:35.540 --> 00:05:36.740
Das sieht auch super aus.

00:05:36.740 --> 00:05:37.700
Also die leuchtet auch.

00:05:37.700 --> 00:05:40.660
Und dann, genau, hat es verschiedenfarbige Tasten.

00:05:40.660 --> 00:05:41.800
Und es sieht sehr robust aus alles.

00:05:41.800 --> 00:05:42.500
Das ist echt gut.

00:05:42.500 --> 00:05:45.560
Ich habe ganz lange so eine alte IBM.

00:05:45.560 --> 00:05:54.540
In den Kreisen der Benutzer dieser Tastatur hieß das Ding auch Hackbrett.

00:05:54.540 --> 00:05:56.580
Weil es halt ein sehr...

00:05:56.580 --> 00:05:59.380
Kräftiges Geräusch macht bei der Benutzung.

00:05:59.380 --> 00:06:00.360
Ja, das ist tatsächlich auch hier so.

00:06:00.360 --> 00:06:02.300
Also die Cherry-Klicks, die sind tatsächlich relativ laut.

00:06:02.300 --> 00:06:05.420
Also meine Frau beschwert sich, glaube ich, wenn ich direkt in ihr...

00:06:05.420 --> 00:06:08.300
Genau, sowas habe ich ganz lange verwendet.

00:06:08.300 --> 00:06:09.520
Also das ist halt...

00:06:09.520 --> 00:06:10.800
Das hat eine Metallplatte unten drin.

00:06:10.800 --> 00:06:12.240
Damit kann man wirklich Leute...

00:06:12.240 --> 00:06:18.300
Also das kann man nicht nur als Waffe im virtuellen Umfeld verwenden,

00:06:18.300 --> 00:06:19.300
sondern halt auch ganz...

00:06:19.300 --> 00:06:21.820
So im Nahkampf bewährt sich das Ding auch.

00:06:21.820 --> 00:06:23.600
Und es ist halt nur so...

00:06:23.600 --> 00:06:24.600
Das kommt aus einer Zeit.

00:06:24.600 --> 00:06:26.560
Die wurden Anfang der 80er irgendwie hergestellt.

00:06:27.400 --> 00:06:29.360
Und da hat noch jemand von Hand...

00:06:29.360 --> 00:06:30.460
Ich hatte mal ein bisschen Schwierigkeiten.

00:06:30.460 --> 00:06:31.120
Ich konnte die nicht...

00:06:31.120 --> 00:06:33.080
Oder ich habe versucht, die nicht zu waschen zu sehr,

00:06:33.080 --> 00:06:35.580
weil die hatten hinten halt noch so einen Aufkleber drauf,

00:06:35.580 --> 00:06:37.060
wo jemand von Hand unterschrieben hat,

00:06:37.060 --> 00:06:38.880
dass die Qualitätskontrolle durch war und so.

00:06:38.880 --> 00:06:40.660
Also tolles Teil.

00:06:40.660 --> 00:06:42.300
Aber einmal...

00:06:42.300 --> 00:06:44.100
Warum nicht einfach eine Hacke?

00:06:44.100 --> 00:06:48.580
Mit Magneten irgendwie die Platte manipulieren.

00:06:48.580 --> 00:06:49.560
Ja, das wäre natürlich eine Idee.

00:06:49.560 --> 00:06:51.840
Aber das war dann doch irgendwann zu unpraktisch.

00:06:51.840 --> 00:06:53.080
Also die Dinger sind auch riesengroß.

00:06:53.080 --> 00:06:55.580
Und ja, also eigentlich mein Wunsch...

00:06:56.500 --> 00:06:59.840
Sozusagen eine möglichst ähnliche Umgebung auf dem Desktop zu haben

00:06:59.840 --> 00:07:01.140
wie auf dem Laptop hat dann dazu geführt,

00:07:01.140 --> 00:07:03.480
dass ich da einfach nicht mehr die gleichen Geschichten benutze.

00:07:03.480 --> 00:07:04.880
Aber bin ich jetzt auch von weg,

00:07:04.880 --> 00:07:07.180
weil irgendwie funktioniert nicht mehr richtig

00:07:07.180 --> 00:07:09.920
irgendwie meine Laptop-Tastatur.

00:07:09.920 --> 00:07:16.320
Und ja, blöderweise kann ich jetzt auch mein Laptop

00:07:16.320 --> 00:07:17.120
nicht einfach so wegheben.

00:07:17.120 --> 00:07:20.640
Also der Service hat ja gesagt,

00:07:20.640 --> 00:07:22.900
schicken Sie doch das Gerät bitte einfach mal ein.

00:07:22.900 --> 00:07:26.140
Dann kommen es in etwa sechs bis acht Wochen wieder repariert zurück.

00:07:26.320 --> 00:07:29.020
Also genau, ja, dummerweise ich, ja, ich benutze es jetzt aber

00:07:29.020 --> 00:07:32.280
so für Sachen, mit denen ich mich einfach mal so eine Zeit lang aussetzen kann.

00:07:32.280 --> 00:07:34.800
Es wäre schneller gegangen.

00:07:34.800 --> 00:07:35.580
Also keine zwei Ersatzgeräte.

00:07:35.580 --> 00:07:37.740
Ja, das war dann halt so meine Option.

00:07:37.740 --> 00:07:40.000
Da dachte ich dann so, okay, wenn das jetzt irgendwie setzt,

00:07:40.000 --> 00:07:43.020
aber selbst wenn das halt nur, es dauert nur sechs Arbeitstage oder sowas.

00:07:43.020 --> 00:07:45.840
Aber auch das ist schon so, dass ich mir dann sage,

00:07:45.840 --> 00:07:47.440
okay, da kann ich mir eigentlich auch ein Ersatzgerät kaufen,

00:07:47.440 --> 00:07:51.560
weil, ja, das ist...

00:07:51.560 --> 00:07:53.080
Und ich hatte auch vor allen Dingen eine Versicherung für den.

00:07:53.080 --> 00:07:56.140
Ich habe also Apple Care für den Rechner, weil ich dachte, genau,

00:07:56.240 --> 00:07:58.400
ich möchte eigentlich ja nicht, dass mir finanzieller Schaden dadurch entsteht,

00:07:58.400 --> 00:07:59.720
wenn das Ding mal irgendwie kaputt geht oder so.

00:07:59.720 --> 00:08:02.620
Habe dann feststellen müssen, es nützt alles nichts.

00:08:02.620 --> 00:08:04.700
Ja, die sechs Tage kriege ich nicht weg.

00:08:04.700 --> 00:08:05.740
Ich kriege auch kein Austauschgerät.

00:08:05.740 --> 00:08:08.700
Super, das heißt, nächstes Mal kein Apple Care mehr.

00:08:08.700 --> 00:08:12.400
Ja, also Leute, wir sind übrigens im Python-Podcast,

00:08:12.400 --> 00:08:13.320
in der Weihnachtsfolge.

00:08:13.320 --> 00:08:16.620
Wollte eigentlich noch einen Grillwein anbieten oder sowas.

00:08:16.620 --> 00:08:18.500
Ja, genau, wir sollten uns einfach...

00:08:18.500 --> 00:08:20.840
Das habe ich mir tatsächlich mal überlegt,

00:08:20.840 --> 00:08:22.380
ob wir das nicht mal machen könnten und

00:08:22.380 --> 00:08:25.340
vielleicht irgendwo in eine Bar setzen oder so.

00:08:25.340 --> 00:08:25.860
Ja.

00:08:26.160 --> 00:08:27.540
Und von da aus verkasten.

00:08:27.540 --> 00:08:28.520
Find ich gut.

00:08:28.520 --> 00:08:31.980
Weil, ja, man müsste halt blöder...

00:08:31.980 --> 00:08:33.880
Also ich denke, man müsste die Leute

00:08:33.880 --> 00:08:35.860
vorher fragen, weil Tonaufnahmen

00:08:35.860 --> 00:08:37.900
in der Bar ist ja vielleicht jetzt nicht so...

00:08:37.900 --> 00:08:39.320
Ja, ich glaube, man müsste einfach

00:08:39.320 --> 00:08:41.580
die Leute vorher alle anderen rausschmeißen, damit die ganzen

00:08:41.580 --> 00:08:42.620
Nebengeräusche nicht mehr da sind.

00:08:42.620 --> 00:08:45.900
Ja, das wäre auch schwierig, aber es gibt so ein paar, wo man eventuell

00:08:45.900 --> 00:08:47.840
nicht stört.

00:08:47.840 --> 00:08:49.560
Also wenn man sich zum Beispiel in der Scarebar kann man sich

00:08:49.560 --> 00:08:50.540
vorne draußen hinsetzen.

00:08:50.540 --> 00:08:53.360
Da würde man jetzt nicht so stören und

00:08:53.360 --> 00:08:54.720
auch keine anderen Gäste aufnehmen.

00:08:54.720 --> 00:08:56.140
Ist ja schon klar, dass es gerade geschneit hat.

00:08:56.140 --> 00:08:57.720
Also vorgestern.

00:08:57.720 --> 00:08:58.000
Ja.

00:08:58.000 --> 00:09:01.860
Wir machen ja noch ein paar Folgen.

00:09:01.860 --> 00:09:03.120
Wir werden noch draußen.

00:09:03.120 --> 00:09:06.040
Wir fallen noch draußen, fallen mir jede Menge tolle Orte ein.

00:09:06.040 --> 00:09:06.740
Ja.

00:09:06.740 --> 00:09:09.280
Ja, das müssen wir mal gucken.

00:09:09.280 --> 00:09:12.000
Das stelle ich mir eigentlich auch ganz interessant vor.

00:09:12.000 --> 00:09:13.220
Irgendwie

00:09:13.220 --> 00:09:15.720
gucken, wie sich so die Qualität

00:09:15.720 --> 00:09:18.080
irgendwie über die Zeit verändert, so mit zunehmend

00:09:18.080 --> 00:09:20.320
krummeln Pegeln.

00:09:20.320 --> 00:09:22.460
Ja, also sagen wir tatsächlich Bescheid.

00:09:22.460 --> 00:09:24.340
Wenn ihr irgendwelche Anregungen, Anmerkungen

00:09:24.340 --> 00:09:26.020
habt, wenn ihr zu euch kommen sollen oder sowas,

00:09:26.060 --> 00:09:27.160
dann schreibt uns eine E-Mail.

00:09:27.160 --> 00:09:28.540
Die E-Mail habe ich ja schon eben genannt.

00:09:28.540 --> 00:09:29.740
Findet ihr auch in den Shownotes.

00:09:29.740 --> 00:09:32.340
Ja, fangen wir doch an mit Python jetzt,

00:09:32.340 --> 00:09:33.040
lieber Jochen.

00:09:33.040 --> 00:09:35.000
Was funktioniert alles nicht?

00:09:35.000 --> 00:09:37.320
Und du hast gesagt, was machst du die ganze Zeit?

00:09:37.320 --> 00:09:40.100
Und mit Web irgendwelche Sachen und so.

00:09:40.100 --> 00:09:41.500
Mit Web mache ich momentan viel.

00:09:41.500 --> 00:09:43.860
Und tatsächlich ist es auch nicht so.

00:09:43.860 --> 00:09:45.340
Es ist halt nur so ein bisschen Python.

00:09:45.340 --> 00:09:47.140
Also das Backend ist alles Python.

00:09:47.140 --> 00:09:49.800
Aber

00:09:49.800 --> 00:09:51.860
ich mache

00:09:51.860 --> 00:09:53.460
momentan auch viel auf der kleinen Seite.

00:09:53.460 --> 00:09:56.040
Und da halt vor allen Dingen mit Java.

00:09:56.040 --> 00:09:56.240
JavaScript.

00:09:56.240 --> 00:09:59.960
Was eigentlich auch inzwischen ganz gut geht.

00:09:59.960 --> 00:10:01.520
Das ist so.

00:10:01.520 --> 00:10:03.840
Also ich habe immer mal wieder irgendwie bei

00:10:03.840 --> 00:10:05.800
JavaScript reingeschaut, ob das jetzt irgendwie inzwischen

00:10:05.800 --> 00:10:07.260
okay ist.

00:10:07.260 --> 00:10:08.960
Und fand eigentlich immer furchtbar.

00:10:08.960 --> 00:10:10.220
Aber so inzwischen

00:10:10.220 --> 00:10:14.100
ist das eigentlich gar nicht

00:10:14.100 --> 00:10:16.220
mehr so furchtbar schlimm. Also ich mache jetzt

00:10:16.220 --> 00:10:17.860
einen

00:10:17.860 --> 00:10:19.860
JavaScript Dialekt, der nennt sich TypeScript.

00:10:19.860 --> 00:10:21.120
Und mit so einer IDE,

00:10:21.120 --> 00:10:23.180
das ist zwar alles nicht so

00:10:23.180 --> 00:10:25.060
snappy, schnell,

00:10:26.040 --> 00:10:27.940
wie ich das eigentlich gerne hätte, aber

00:10:27.940 --> 00:10:30.240
es ist eigentlich gut genug, dass man damit so

00:10:30.240 --> 00:10:32.180
entwickeln kann, dass es tatsächlich

00:10:32.180 --> 00:10:34.460
Spaß macht und man diese ganzen Hässlichkeiten

00:10:34.460 --> 00:10:35.300
nicht so wirklich wahrnimmt.

00:10:35.300 --> 00:10:38.420
Welche IDE ist das?

00:10:38.420 --> 00:10:39.620
WebStorm.

00:10:39.620 --> 00:10:41.980
Das ist quasi auch IntelliJ-basiert.

00:10:41.980 --> 00:10:44.360
Aha, okay. Habe ich auch ja schon einige Male

00:10:44.360 --> 00:10:44.620
gehört.

00:10:44.620 --> 00:10:47.540
Das ist eigentlich tatsächlich ganz gut.

00:10:47.540 --> 00:10:50.720
ja,

00:10:50.720 --> 00:10:54.060
das macht eigentlich, man kann so richtig

00:10:54.060 --> 00:10:56.000
auf der kleinen Seite quasi so

00:10:56.000 --> 00:10:57.860
programmieren, wie man das halt auf der Server-Seite auch gewohnt ist.

00:10:57.860 --> 00:11:00.940
Mit allem drum und dran.

00:11:00.940 --> 00:11:03.600
Aber was, und

00:11:03.600 --> 00:11:05.840
vor allen Dingen, also inzwischen sind ja auch die Browser so gut

00:11:05.840 --> 00:11:07.280
geworden, also die können halt eine ganze Menge

00:11:07.280 --> 00:11:09.760
und kann ja tolle Sachen machen und es ist alles

00:11:09.760 --> 00:11:11.780
nicht mehr so super unterschiedlich, wie es früher mal war,

00:11:11.780 --> 00:11:13.740
wo man dann halt irgendwie für jeden Browser

00:11:13.740 --> 00:11:15.480
irgendwelche Ausnahmen machen musste.

00:11:15.480 --> 00:11:17.400
Es gibt keinen Browser mehr, für den man Ausnahmen machen muss?

00:11:17.400 --> 00:11:18.880
Ja, doch, leider schon.

00:11:18.880 --> 00:11:23.800
Alle Browser

00:11:23.800 --> 00:11:25.500
sind irgendwie benutzbar? Nein, es gibt

00:11:25.500 --> 00:11:27.260
einen Browser, der sich standhaft

00:11:27.260 --> 00:11:28.280
wehrt, irgendwie

00:11:28.280 --> 00:11:31.460
benutzt werden zu können und das ist heutzutage

00:11:31.460 --> 00:11:33.460
erstaunlicherweise

00:11:33.460 --> 00:11:35.160
Safari.

00:11:35.160 --> 00:11:36.880
Safari ist echt so...

00:11:36.880 --> 00:11:38.740
Schon wieder Apple. Apple ist das neue Microsoft, oder?

00:11:38.740 --> 00:11:41.180
Bisschen schon, ja. Also Safari

00:11:41.180 --> 00:11:43.480
ist irgendwie so ein bisschen der neue Internet-Explorer.

00:11:43.480 --> 00:11:45.100
Also ein Internet-Explorer gibt es ja jetzt

00:11:45.100 --> 00:11:45.860
irgendwie nicht mehr so richtig.

00:11:45.860 --> 00:11:48.600
Edge ist jetzt Chromium-Engine, oder?

00:11:48.600 --> 00:11:51.040
Edge war eigentlich gar nicht so schlecht.

00:11:51.040 --> 00:11:52.520
Edge hatte, glaube ich, eine eigene Engine.

00:11:52.520 --> 00:11:54.920
Ich weiß nicht, ob sie die vom IE übernommen haben, aber

00:11:54.920 --> 00:11:55.340
Edge war

00:11:55.340 --> 00:11:56.420
quasi so ein Neustart.

00:11:56.420 --> 00:11:59.380
Und soweit ich das gehört habe,

00:11:59.380 --> 00:12:00.760
war das eigentlich ganz gut, war brauchbar.

00:12:00.760 --> 00:12:03.440
Und so aus Nutzerperspektive

00:12:03.440 --> 00:12:05.140
finde ich, ist es ja eigentlich toll, wenn es da Konkurrenz gibt

00:12:05.140 --> 00:12:07.560
und unterschiedliche Rendering-Engines.

00:12:07.560 --> 00:12:09.220
Ich würde mir wünschen, dass

00:12:09.220 --> 00:12:11.200
sie alle die gleichen APIs implementieren

00:12:11.200 --> 00:12:12.700
und dass sie kompatibel untereinander sind.

00:12:12.700 --> 00:12:14.760
Aber wenn es unterschiedliche Implementationen

00:12:14.760 --> 00:12:17.080
gibt, dann ist das eigentlich eine sehr gute Sache.

00:12:17.080 --> 00:12:19.160
Und von da aus gesehen war das

00:12:19.160 --> 00:12:21.160
eigentlich immer toll, dass es mit Edge halt da noch

00:12:21.160 --> 00:12:23.020
eine dritte Geschichte neben halt

00:12:23.020 --> 00:12:24.520
ja,

00:12:25.180 --> 00:12:26.280
wie heißt die von

00:12:26.280 --> 00:12:28.600
von Chrome?

00:12:28.600 --> 00:12:29.920
Bing?

00:12:29.920 --> 00:12:32.540
Ist die Microsoft-Suchmaschine?

00:12:32.540 --> 00:12:34.500
Nee, genau, nicht Bing.

00:12:34.500 --> 00:12:36.800
Oh, wie heißt die?

00:12:36.800 --> 00:12:38.760
Blink.

00:12:38.760 --> 00:12:40.320
Blink heißt die, ja.

00:12:40.320 --> 00:12:43.160
Und das Ding von WebKit

00:12:43.160 --> 00:12:45.000
von Safari. Aber das ist eigentlich basiert

00:12:45.000 --> 00:12:46.320
auf dem gleichen Code. Das basiert auf

00:12:46.320 --> 00:12:48.860
K-HTML

00:12:48.860 --> 00:12:50.520
aus dem KDE-Projekt.

00:12:50.520 --> 00:12:53.020
Ganz früher. Da kommt das her und

00:12:53.020 --> 00:12:54.700
Oh, wieder was zu lernen.

00:12:55.020 --> 00:12:56.860
Ja, und dann hat Apple das

00:12:56.860 --> 00:12:58.820
quasi in WebKit eingebaut und dann

00:12:58.820 --> 00:13:00.760
war Chrome basierte ganz lange auf

00:13:00.760 --> 00:13:02.620
WebKit. Auch.

00:13:02.620 --> 00:13:05.000
Und dann haben sie WebKit irgendwie weggeforgt,

00:13:05.000 --> 00:13:06.600
weil ihnen die Entwicklung da nicht mehr schnell genug ging

00:13:06.600 --> 00:13:08.760
und haben da ihre eigene Engine draus geborgen.

00:13:08.760 --> 00:13:09.920
Die heißt jetzt Blink irgendwie.

00:13:09.920 --> 00:13:12.640
Glaube ich. Ja. Und

00:13:12.640 --> 00:13:15.080
insofern war

00:13:15.080 --> 00:13:16.660
WebKit und Chrome, das war immer

00:13:16.660 --> 00:13:18.900
ziemlich ähnlich. Und dann gab es

00:13:18.900 --> 00:13:20.920
halt noch Firefox. Hatte ja irgendwie

00:13:20.920 --> 00:13:22.560
eine eigene Engine noch.

00:13:22.560 --> 00:13:24.720
Und Opera hatte damals auch eine eigene Engine, oder war das?

00:13:24.860 --> 00:13:26.800
Äh, ja doch. Ganz am Anfang.

00:13:26.800 --> 00:13:28.900
Aber wir sind relativ schnell auf irgendwas anderes

00:13:28.900 --> 00:13:30.060
umgestiegen. Ich weiß aber nicht mehr was.

00:13:30.060 --> 00:13:32.560
Ja, aber Opera spielt leider nicht mehr so eine große Rolle.

00:13:32.560 --> 00:13:34.640
Ja, vor drei Jahren haben sie auch mal auf Chromium umgestellt.

00:13:34.640 --> 00:13:35.440
Ja, ja.

00:13:35.440 --> 00:13:38.640
Opera hat ein Feature, was andere Browser nicht haben.

00:13:38.640 --> 00:13:40.660
Und das führt dazu, dass Opera teilweise

00:13:40.660 --> 00:13:42.900
in so Ländern wie Indien

00:13:42.900 --> 00:13:44.640
oder teilweise auch Südostasien

00:13:44.640 --> 00:13:46.780
manchen, also von Indien weiß ich es relativ

00:13:46.780 --> 00:13:48.320
sicher, gibt es irgendwie noch

00:13:48.320 --> 00:13:50.700
20 Prozent des

00:13:50.700 --> 00:13:52.400
Traffics geht über Opera. Und man fragt sich,

00:13:52.400 --> 00:13:54.580
hä, warum das denn? Und der Grund ist,

00:13:54.700 --> 00:13:56.400
dass die so einen

00:13:56.400 --> 00:13:58.780
ähm, ja quasi

00:13:58.780 --> 00:14:00.480
grafischen Browser betreiben.

00:14:00.480 --> 00:14:01.800
Also man hat auf dem Handy halt

00:14:01.800 --> 00:14:04.360
sozusagen, sieht man nur ein Bild.

00:14:04.360 --> 00:14:06.400
Also es wird einem nur das gerenderte

00:14:06.400 --> 00:14:08.640
Bild geschickt, was man halt so runterkomprimieren

00:14:08.640 --> 00:14:10.560
kann, dass das halt nur ganz wenig Traffic verbraucht,

00:14:10.560 --> 00:14:12.540
weil die da halt so komische Tarife haben.

00:14:12.540 --> 00:14:14.560
Und der eigentliche

00:14:14.560 --> 00:14:16.600
Browser läuft irgendwo bei der Firma Opera selber.

00:14:16.600 --> 00:14:18.560
Okay, das heißt, man kriegt jedes Mal

00:14:18.560 --> 00:14:20.160
nur ein Bild und wenn man irgendwas browsen muss, dann...

00:14:20.160 --> 00:14:22.560
Ja, wenn man irgendwo draufklickt, dann wird halt zugeschickt, dass man da draufgeklickt hat.

00:14:22.560 --> 00:14:24.200
Und das ist halt eine ganz interessante Geschichte.

00:14:24.540 --> 00:14:26.080
Äh, das ist ziemlich seltsam,

00:14:26.080 --> 00:14:28.040
aber es scheint wohl dann halt auch mit ganz

00:14:28.040 --> 00:14:29.560
wenig Daten noch so halbwegs zu funktionieren.

00:14:29.560 --> 00:14:31.840
Deswegen gibt es da irgendwie noch so einen komischen

00:14:31.840 --> 00:14:34.160
Nischenmarkt für. Aber im Grunde

00:14:34.160 --> 00:14:36.000
spielt Opera keine wirkliche Rolle mehr.

00:14:36.000 --> 00:14:37.940
Und, ähm, ja, Firefox

00:14:37.940 --> 00:14:39.800
hat ja jetzt auch umgestellt, ähm,

00:14:39.800 --> 00:14:41.800
sozusagen auf Rust, äh,

00:14:41.800 --> 00:14:44.200
auf eine neue Sprache und auch eine neue Rendering Engine.

00:14:44.200 --> 00:14:45.960
Äh, die, das ist übrigens auch,

00:14:45.960 --> 00:14:47.900
wenn man das längere Zeit nicht, wenn man längere Zeit Firefox

00:14:47.900 --> 00:14:49.500
nicht ausprobiert hat, sollte man das vielleicht mal tun.

00:14:49.500 --> 00:14:51.720
So seit einem Jahr oder etwas mehr.

00:14:51.720 --> 00:14:52.640
Weiß nicht genau.

00:14:54.380 --> 00:14:56.980
Ähm, gibt's da, äh, basiert das jetzt auf einer, äh,

00:14:56.980 --> 00:14:58.560
Rust, äh, Engine.

00:14:58.560 --> 00:15:00.960
Äh, und die ist schnell,

00:15:00.960 --> 00:15:02.720
schick, toll. Das ist irgendwie echt super.

00:15:02.720 --> 00:15:05.160
Und auch sehr, also das Ding ist halt tatsächlich konkurrenzfähig.

00:15:05.160 --> 00:15:07.360
Und, ähm,

00:15:07.360 --> 00:15:09.120
ja, so im letzten Jahr hatte man dann

00:15:09.120 --> 00:15:11.420
quasi so drei unterschiedliche, äh,

00:15:11.420 --> 00:15:12.900
Rendering Engines.

00:15:12.900 --> 00:15:15.680
Sozusagen halt die von Firefox, die von, äh,

00:15:15.680 --> 00:15:17.260
Chrome und, und, und, und die von

00:15:17.260 --> 00:15:18.960
Microsoft. Und inzwischen

00:15:18.960 --> 00:15:21.660
gibt's jetzt dann halt nur noch, ähm,

00:15:21.660 --> 00:15:24.080
zwei. Ja, und das ist natürlich echt wenig.

00:15:24.220 --> 00:15:25.760
Zwei ist schon fast nur noch eine.

00:15:25.760 --> 00:15:28.000
Zumal der Marktanteil von, von Firefox

00:15:28.000 --> 00:15:29.660
ja auch irgendwie so ein bisschen im Sinkflug

00:15:29.660 --> 00:15:30.920
begriffen ist leider. Ja.

00:15:30.920 --> 00:15:33.760
Äh. Mit was brauchst du persönlich

00:15:33.760 --> 00:15:35.900
gerne? Ähm,

00:15:35.900 --> 00:15:38.140
tatsächlich benutze ich, äh,

00:15:38.140 --> 00:15:40.400
benutze ich Chrome, äh,

00:15:40.400 --> 00:15:41.900
Safari und Firefox.

00:15:41.900 --> 00:15:44.080
Ähm. Mit welchem

00:15:44.080 --> 00:15:45.920
Anteil so? Also für private Surfen, für die

00:15:45.920 --> 00:15:47.940
Arbeit? Private Surfen, meistens Safari.

00:15:47.940 --> 00:15:50.040
Weil da, Safari hat halt

00:15:50.040 --> 00:15:52.040
so dieses Feature der, der Leseliste, das, das ich

00:15:52.040 --> 00:15:54.060
ganz praktisch finde. Mhm. Weil das halt über alle die

00:15:54.060 --> 00:15:55.920
Devices hinweg synchronisiert. Das heißt, wenn man

00:15:55.920 --> 00:15:58.080
sich eh im Apple, äh,

00:15:58.080 --> 00:16:00.000
äh, Universum sozusagen

00:16:00.000 --> 00:16:01.880
mit seinen Geräten aufhält, äh, oder. Ich glaub,

00:16:01.880 --> 00:16:03.920
bei Firefox kann man das auch machen, das synchronisieren. Und auch

00:16:03.920 --> 00:16:05.960
bei Chrome. Ja, bei, bei

00:16:05.960 --> 00:16:07.940
Chrome ist so, Chrome ist so ein bisschen evil an der

00:16:07.940 --> 00:16:10.340
Stelle. Weil, ähm,

00:16:10.340 --> 00:16:12.020
man halt

00:16:12.020 --> 00:16:13.960
nicht so richtig gefragt wird, ob man da jetzt

00:16:13.960 --> 00:16:15.940
mitmachen möchte oder nicht. Wenn man da selber, also ich war,

00:16:15.940 --> 00:16:18.020
mich hat's erwischt, ja, also, äh,

00:16:18.020 --> 00:16:19.960
das hab ich letztens, hab ich das gehört? Keine Ahnung.

00:16:19.960 --> 00:16:21.980
Hat sich jemand darüber aufgeregt, dass Chrome da

00:16:21.980 --> 00:16:23.900
schon so, äh, böse,

00:16:23.900 --> 00:16:25.800
böse, böse GUI-Geschichten macht, um die Leute

00:16:25.800 --> 00:16:27.760
dazu zu verleiten, äh, irgendwie

00:16:27.760 --> 00:16:29.920
die Browser-History mit ihrem Profil, äh,

00:16:29.920 --> 00:16:31.320
sozusagen auf die Geräte zu übertragen.

00:16:31.320 --> 00:16:33.960
Was ich jetzt an sich noch nicht schlimm fände,

00:16:33.960 --> 00:16:35.680
wenn, wenn einfach nur das irgendwie

00:16:35.680 --> 00:16:37.700
übertragen würde, aber das wird halt auch bei Google

00:16:37.700 --> 00:16:39.520
gespeichert. Und Google kann das halt sehen, was da drinsteht.

00:16:39.520 --> 00:16:41.760
Und das ist natürlich, ich möchte eigentlich nicht wirklich

00:16:41.760 --> 00:16:43.640
meine Browser-History zu Google hochladen.

00:16:43.640 --> 00:16:45.880
Also das. Okay, ich glaub, man muss

00:16:45.880 --> 00:16:47.780
das halt einstellen in Privatsphäre-Einstellung, ob das, äh,

00:16:47.780 --> 00:16:49.780
überhaupt ist. Genau, aber da steht halt auch nirgendwo,

00:16:49.780 --> 00:16:51.480
du lädst hier deine, deine Browser-History

00:16:51.480 --> 00:16:53.780
zu Google hoch, sondern da steht, äh,

00:16:53.780 --> 00:16:55.200
da ist irgendwie sowas wie, das sind so,

00:16:55.200 --> 00:16:57.260
so Button-Tricks, ja, wo man dann

00:16:57.260 --> 00:16:59.520
irgendwie, wenn man, wenn man halt, äh,

00:16:59.520 --> 00:17:01.780
da ist irgendwie so ein Okay-Button, der sieht irgendwie harmlos aus

00:17:01.780 --> 00:17:03.340
und wenn man da drauf drückt, dann passiert das automatisch, ja.

00:17:03.340 --> 00:17:05.560
Und nirgendwo steht irgendwie, du lädst jetzt deine Browser-History

00:17:05.560 --> 00:17:07.580
zu Google hoch. Und das ist schon sehr, sehr,

00:17:07.580 --> 00:17:09.760
äh, äh,

00:17:09.760 --> 00:17:11.080
hinterforschtig. Das passt nicht der Church auf Google.

00:17:11.080 --> 00:17:13.440
Also ich finde, Google hat

00:17:13.440 --> 00:17:15.660
eigentlich bisher noch nichts Böses damit getan. Insofern

00:17:15.660 --> 00:17:17.680
hat das da auch mal so einen gewissen Vertrauensvorschuss,

00:17:17.680 --> 00:17:20.180
aber so GUI-Manipulationen,

00:17:20.180 --> 00:17:21.380
die einen dazu verleiten, auf irgendwas drauf zu

00:17:21.380 --> 00:17:23.460
klicken, auf das man eigentlich gar nicht draufklicken wollte, das ist schon

00:17:23.460 --> 00:17:25.420
sehr grenzwertig. Und damit hat Google

00:17:25.420 --> 00:17:27.520
jetzt ein, äh, also das war jetzt nur eine Geschichte.

00:17:27.520 --> 00:17:29.500
Wir haben, Chrome hat dann noch eine andere Geschichte,

00:17:29.500 --> 00:17:30.720
äh, wo man dann,

00:17:30.720 --> 00:17:33.520
wo sie das nochmal gemacht haben und,

00:17:33.520 --> 00:17:35.500
ähm, sagen wir mal so,

00:17:35.500 --> 00:17:37.400
also ich meine, ich weiß jetzt nicht, aber es gibt jetzt diverse

00:17:37.400 --> 00:17:39.540
Leute, äh, im Netz, die jetzt so sagen,

00:17:39.540 --> 00:17:41.440
so, jetzt ist halt Chrome und Google so

00:17:41.440 --> 00:17:43.500
endgültig an der Google-Seite angekommen.

00:17:43.500 --> 00:17:45.560
Äh, so weiter würde ich

00:17:45.560 --> 00:17:47.200
jetzt vielleicht nicht gehen, aber es ist schon so ein bisschen,

00:17:47.200 --> 00:17:49.300
also daher versuche ich auch möglichst Chrome

00:17:49.300 --> 00:17:51.180
nicht mehr, äh, zu verwenden,

00:17:51.280 --> 00:17:52.180
wenn ich irgendwie nicht muss.

00:17:52.180 --> 00:17:55.120
Es gibt Dinge, für die ich muss, also zum Beispiel zum Entwickeln,

00:17:55.120 --> 00:17:57.080
ähm, ist Chrome tatsächlich irgendwie

00:17:57.080 --> 00:17:59.240
ein praktischsten, es gibt da für,

00:17:59.240 --> 00:18:01.320
äh, React und so, wenn man das baut,

00:18:01.320 --> 00:18:03.420
äh, auch so Extensions,

00:18:03.420 --> 00:18:05.360
die einem dann helfen, das zu debuggen und so,

00:18:05.360 --> 00:18:07.380
und das ist so praktisch, dass ich das,

00:18:07.380 --> 00:18:09.380
dass ich zum Entwickeln tatsächlich Chrome verwende.

00:18:09.380 --> 00:18:10.920
Ähm, ansonsten...

00:18:10.920 --> 00:18:13.140
Also ich verwende Chrome tatsächlich auch privat.

00:18:13.140 --> 00:18:15.340
Selten mal in Firefox, also eigentlich nur,

00:18:15.340 --> 00:18:16.860
um mal, weiß nicht, was anderes zu machen,

00:18:16.860 --> 00:18:19.040
aber normalerweise eigentlich immer Chrome. Ich hab

00:18:19.040 --> 00:18:21.220
auch nicht so viele Bedenken mit den Daten,

00:18:21.220 --> 00:18:21.260
äh,

00:18:21.260 --> 00:18:23.580
also ich muss sagen, äh, ich bin doof und, äh,

00:18:23.580 --> 00:18:24.780
vertraue denen ein bisschen

00:18:24.780 --> 00:18:26.720
und die wissen eh alles über mich.

00:18:26.720 --> 00:18:28.960
Auch egal, wenn die noch mehr über mich wissen.

00:18:28.960 --> 00:18:31.200
Vielleicht kriege ich dann irgendwelche

00:18:31.200 --> 00:18:33.280
Bonusgeschenke, man weiß ja immer nicht genau, also ich hoffe ja immer,

00:18:33.280 --> 00:18:35.300
dass ich dann irgendwann mal so einen Sonderrabatt

00:18:35.300 --> 00:18:36.440
bekomme, wahrscheinlich, äh.

00:18:36.440 --> 00:18:38.960
Ja, ja, vielleicht, äh.

00:18:38.960 --> 00:18:39.480
Ja, bitte.

00:18:39.480 --> 00:18:43.100
Vielleicht wird alles gut. Irgendwann stehen

00:18:43.100 --> 00:18:44.740
irgendwelche Männer mit irgendwelchen Anzügen vor der Schule,

00:18:44.740 --> 00:18:46.080
dass man weiß, dass man das so genau...

00:18:46.080 --> 00:18:49.180
Ja, aber das ist in Amerika und nicht hier, also

00:18:49.180 --> 00:18:51.060
das ist ja schon mal gar nicht so schlecht.

00:18:51.260 --> 00:18:52.940
Hahaha. Also,

00:18:52.940 --> 00:18:54.860
ja, klar. Also, nee, ich benutze

00:18:54.860 --> 00:18:57.120
Chrome auch. Ich finde auch, das ist ein echt guter Browser

00:18:57.120 --> 00:18:59.080
und so, aber, ähm,

00:18:59.080 --> 00:19:01.300
ja, das war völlig wegen der Leseliste, vor allen Dingen,

00:19:01.300 --> 00:19:02.880
weil ich dann halt, äh, sozusagen

00:19:02.880 --> 00:19:05.100
halt auf allen... Hört mir ein, die haben nur gerade ihre

00:19:05.100 --> 00:19:07.060
Datenschutzeinstellungen gestellt in

00:19:07.060 --> 00:19:09.260
Europa, haben ihre Server geändert und ihre Rechtsform

00:19:09.260 --> 00:19:11.400
geändert. Die sitzen jetzt in Irland

00:19:11.400 --> 00:19:13.060
von der, weiß nicht, Google LLC auf

00:19:13.060 --> 00:19:14.660
irgendeine irische Limited oder sowas.

00:19:14.660 --> 00:19:17.520
Ähm, ich hab noch nicht da reingeguckt, vielleicht, äh,

00:19:17.520 --> 00:19:19.240
weil die jetzt DSGVO-konform sind,

00:19:19.240 --> 00:19:20.920
müsste man jetzt eigentlich auch aus den ganzen Sachen,

00:19:21.260 --> 00:19:23.260
gesondert, opt-outen können und die Frage ist, ob

00:19:23.260 --> 00:19:25.180
sowas wie die Browser-History einfach noch so übernommen wird, weil

00:19:25.180 --> 00:19:27.280
ansonsten... Das kann natürlich auch sein,

00:19:27.280 --> 00:19:29.240
dass das mit der DSGVO ja

00:19:29.240 --> 00:19:30.360
jetzt auch so...

00:19:30.360 --> 00:19:33.260
Obwohl, ähm, eigentlich hab ich

00:19:33.260 --> 00:19:34.980
nicht so wirklich Lust, das nachzuholen. Also, wenn euch das interessiert,

00:19:34.980 --> 00:19:37.100
dann selber mal gucken und informiert uns doch gerne

00:19:37.100 --> 00:19:38.840
bitte in einer E-Mail, was da rausgefunden wird.

00:19:38.840 --> 00:19:41.400
Ja. Also, ansonsten

00:19:41.400 --> 00:19:43.360
Firefox versuche ich immer mal wieder zu verwenden,

00:19:43.360 --> 00:19:45.060
ähm, wenn,

00:19:45.060 --> 00:19:46.800
für so Casual-Browsing-Geschichten,

00:19:46.800 --> 00:19:49.020
ähm, und, ähm,

00:19:49.020 --> 00:19:50.440
dafür ist das eigentlich, also, so,

00:19:50.440 --> 00:19:51.160
ja,

00:19:51.260 --> 00:19:53.160
ähm, ist das Ding, das Ding ist schnell

00:19:53.160 --> 00:19:55.140
und, ähm... Das hört sich toll an, wenn die Jochen

00:19:55.140 --> 00:19:57.200
sagt Casual-Browsing. Ja, wo ich halt jetzt

00:19:57.200 --> 00:19:58.340
nicht unbedingt, äh,

00:19:58.340 --> 00:20:01.340
sozusagen irgendwie ein Bookmarks-Grad

00:20:01.340 --> 00:20:02.420
mache oder so, ja, also,

00:20:02.420 --> 00:20:04.800
weil ich halt einfach so ein bisschen rum

00:20:04.800 --> 00:20:07.140
brause. Äh, und das Ding

00:20:07.140 --> 00:20:09.080
ist auch super, sollte man auf jeden Fall noch mal ausprobieren,

00:20:09.080 --> 00:20:10.920
wenn man das halt längere Zeit nicht gemacht hat. Das kann

00:20:10.920 --> 00:20:13.300
einem schon überraschende, äh,

00:20:13.300 --> 00:20:15.280
äh, es kann einem überraschend

00:20:15.280 --> 00:20:16.240
gut vorkommen dann.

00:20:16.240 --> 00:20:18.920
Ähm, muss man auch

00:20:18.920 --> 00:20:20.860
aber auch so ein bisschen aufpassen. Also, die haben alle so ihre

00:20:20.860 --> 00:20:22.760
Haken und Ösen, ne, so, äh,

00:20:22.760 --> 00:20:24.860
äh, Chrome ist so Privacy-mäßig

00:20:24.860 --> 00:20:26.360
ein bisschen schwierig, äh,

00:20:26.360 --> 00:20:28.520
Safari ist irgendwie technisch leider,

00:20:28.520 --> 00:20:30.160
da kommen wir nachher auch noch mal drauf,

00:20:30.160 --> 00:20:32.780
äh, zu sprechen, ist halt technisch so ein bisschen

00:20:32.780 --> 00:20:34.820
kaputt. Und Firefox

00:20:34.820 --> 00:20:36.540
hat halt jetzt auch so ein Ding eingebaut,

00:20:36.540 --> 00:20:37.940
so ein Privacy,

00:20:37.940 --> 00:20:40.640
jedenfalls nicht so super optimal. Also, die verwenden

00:20:40.640 --> 00:20:42.100
jetzt statt, ähm,

00:20:42.100 --> 00:20:44.120
normalen Nameservern,

00:20:44.120 --> 00:20:46.560
äh, gehen die, äh,

00:20:46.560 --> 00:20:48.280
DNS-Requests auch per HTTP

00:20:48.280 --> 00:20:49.780
irgendwie an eine von diesen,

00:20:50.540 --> 00:20:52.440
ich weiß gar nicht an wen, CloudFront

00:20:52.440 --> 00:20:54.480
oder weiß ich nicht, auf jeden Fall einer von

00:20:54.480 --> 00:20:56.460
diesen CDN-Betreibern,

00:20:56.460 --> 00:20:57.680
äh, was

00:20:57.680 --> 00:21:00.460
Vorteile hat. Also, dein Provider sieht halt nicht mehr,

00:21:00.460 --> 00:21:02.180
äh, wo du rumsorgst. Also, ich meine,

00:21:02.180 --> 00:21:04.260
verharrte TPS, äh, was ja die meisten

00:21:04.260 --> 00:21:05.940
Seiten mittlerweile dann halt tatsächlich sind,

00:21:05.940 --> 00:21:08.360
sieht natürlich, äh, irgendwie dein Provider auch

00:21:08.360 --> 00:21:10.220
nicht mehr die Inhalte, aber sieht halt immer noch,

00:21:10.220 --> 00:21:12.420
zu welcher, äh, zu welcher Domain quasi

00:21:12.420 --> 00:21:14.360
dein Request geht und, ähm,

00:21:14.360 --> 00:21:16.380
da, das reicht ja dann oft schon, äh,

00:21:16.380 --> 00:21:18.120
sozusagen als Information, äh, äh,

00:21:18.120 --> 00:21:20.420
sieht vor allen Dingen, äh, sieht vor allen Dingen,

00:21:20.420 --> 00:21:21.960
halt den, den Nameserver-Request, also

00:21:21.960 --> 00:21:23.940
den, den, äh,

00:21:23.940 --> 00:21:26.480
äh, Request zur Namensauflösung, wenn

00:21:26.480 --> 00:21:28.720
dein Nameserver

00:21:28.720 --> 00:21:30.400
beim Provider steht, was bei den meisten Leuten

00:21:30.400 --> 00:21:31.900
so ist, weil das ja der Default ist,

00:21:31.900 --> 00:21:33.500
kann man natürlich auch selber umstellen.

00:21:33.500 --> 00:21:35.860
Google zum Beispiel. Google, ja, äh,

00:21:35.860 --> 00:21:38.120
8.8.8.8. Google weiß dann alles.

00:21:38.120 --> 00:21:40.100
Google weiß dann noch mehr, ja,

00:21:40.100 --> 00:21:42.320
weil man so viel wie Provider und

00:21:42.320 --> 00:21:43.740
Suchmaschine kombiniert, ja.

00:21:43.740 --> 00:21:46.280
Google Home Assistant, alles integriert und dann mit dem

00:21:46.280 --> 00:21:48.240
Auto verknüpft und so. Toll, ich kann

00:21:48.240 --> 00:21:50.180
über die letzten Jahre mit dem Standort jeden Tag

00:21:50.300 --> 00:21:52.600
verfolgen, wo genau ich rumgelaufen bin, das ist ja vorrangig.

00:21:52.600 --> 00:21:54.400
Ja, ja, also ich will gar nicht

00:21:54.400 --> 00:21:55.900
beschreiben, dass das durchaus praktisch sein kann.

00:21:55.900 --> 00:21:58.260
Äh, genau, ich hab auch, äh, äh,

00:21:58.260 --> 00:22:00.300
bei mir jetzt, äh, in meiner

00:22:00.300 --> 00:22:02.520
Fritzbox, äh, irgendwie als Nameserver

00:22:02.520 --> 00:22:04.180
eben nicht mehr den vom Provider eingestellt, sondern

00:22:04.180 --> 00:22:08.660
äh, 1.1.1.1

00:22:08.660 --> 00:22:10.040
und 1.1.1.0.

00:22:10.040 --> 00:22:12.320
Äh, weiß ich nicht genau. Äh, vielleicht sollte man

00:22:12.320 --> 00:22:14.140
da auch unterschiedliche nehmen, vielleicht den einen

00:22:14.140 --> 00:22:16.140
von, von, äh, auch einen von diesen

00:22:16.140 --> 00:22:18.580
CDN-Dingern und dann vielleicht einen von, äh,

00:22:18.580 --> 00:22:20.180
von Google oder irgendwie, das ist halt

00:22:20.180 --> 00:22:22.400
halt nicht, dass man die Daten so ein bisschen aufteilt.

00:22:22.400 --> 00:22:23.880
Das ist ein CDN-Ding, das ist ein Content

00:22:23.880 --> 00:22:25.500
Delivery Network. Ja, genau, genau.

00:22:25.500 --> 00:22:27.640
Und, ähm. Was macht das?

00:22:27.640 --> 00:22:30.280
Äh, das sorgt, äh,

00:22:30.280 --> 00:22:31.460
dafür, dass

00:22:31.460 --> 00:22:34.380
wenn du jetzt statische

00:22:34.380 --> 00:22:36.160
Dateien, äh, irgendwie,

00:22:36.160 --> 00:22:38.140
äh, äh, sehen möchtest,

00:22:38.140 --> 00:22:40.240
wie jetzt zum Beispiel ein Video oder halt

00:22:40.240 --> 00:22:42.100
auch Bilder. Und warum ist denn ein Video

00:22:42.100 --> 00:22:44.280
statisch? Weil es sich nicht verändert, weil das das Video

00:22:44.280 --> 00:22:45.980
ist, das einmal aufgenommen worden ist. Genau.

00:22:45.980 --> 00:22:48.420
Und das als Datei auf dem Server liegt. Weil das halt eine Datei

00:22:48.420 --> 00:22:50.060
ist, die sich nicht mehr ändert. Und dynamisch

00:22:50.060 --> 00:22:52.180
ist es dann, wenn ich ein individuell

00:22:52.180 --> 00:22:53.960
angezeigte Web-Oberfläche habe, die

00:22:53.960 --> 00:22:56.240
mein Profil oder irgendwelche anderen Informationen beinhaltet.

00:22:56.240 --> 00:22:58.280
Genau. Also, ein Applikations-

00:22:58.280 --> 00:23:00.200
Server liefert halt irgendwas aus, was, äh,

00:23:00.200 --> 00:23:02.080
sozusagen auf dem

00:23:02.080 --> 00:23:04.320
Kontext der Session oder sonst irgendwie basiert.

00:23:04.320 --> 00:23:05.820
Also zum Beispiel auch so was. Und die sind übrigens auf den

00:23:05.820 --> 00:23:06.740
Python geschrieben, entschuldige mich.

00:23:06.740 --> 00:23:11.860
Ja, genau. Also,

00:23:11.860 --> 00:23:13.920
eben, natürlich. Also, ich denke, dass

00:23:13.920 --> 00:23:15.860
die Infrastruktur, mit der man, äh,

00:23:15.860 --> 00:23:17.980
irgendwie, äh, so CDNs hochzieht, halt auch

00:23:17.980 --> 00:23:19.940
wahrscheinlich häufig in Python geschrieben sein

00:23:19.940 --> 00:23:21.960
wird. Aber die Server, die das ausliefern,

00:23:21.960 --> 00:23:23.860
sind halt eher nicht Python, sondern das ist dann halt

00:23:23.860 --> 00:23:25.980
irgendwas Schnelles. Äh, also, so

00:23:25.980 --> 00:23:28.520
möglichst nah an der, äh,

00:23:28.520 --> 00:23:29.800
am, am, am Metall, weil

00:23:29.800 --> 00:23:31.840
das darauf kommt, da kommt's dann halt wirklich

00:23:31.840 --> 00:23:33.900
drauf an, auf, äh, die letzten Millisekunden und

00:23:33.900 --> 00:23:35.840
so, weil... Nah am Metall, hab ich auch

00:23:35.840 --> 00:23:37.920
zum ersten Mal gehört, ja. Ach so, ja, nah an, an,

00:23:37.920 --> 00:23:39.760
an, an, ja, an der CPU quasi, an den

00:23:39.760 --> 00:23:41.300
Leiterwaren halt, ne? Ah, okay, okay, ja.

00:23:41.300 --> 00:23:43.560
Bei Python hat man ja immer noch eine virtuelle Maschine dazwischen und so.

00:23:43.560 --> 00:23:45.780
Und, ähm,

00:23:45.780 --> 00:23:47.920
äh, genau.

00:23:47.920 --> 00:23:49.820
Also, die Dinge sind eigentlich dafür da, dass, wenn ich jetzt

00:23:49.820 --> 00:23:52.080
äh, sozusagen, eine Webseite

00:23:52.080 --> 00:23:54.200
habe, wo halt ganz viele, äh,

00:23:54.200 --> 00:23:55.940
äh, Dinge drinstehen, wie

00:23:55.940 --> 00:23:57.940
Tag-Image und dann Source

00:23:57.940 --> 00:23:59.740
und dann ist das halt eine Referenz auf

00:23:59.740 --> 00:24:01.820
eine, auf eine, auf ein Bild oder

00:24:01.820 --> 00:24:04.040
auf ein Video, halt je nach, je nach

00:24:04.040 --> 00:24:05.880
Tag, dann kommt

00:24:05.880 --> 00:24:07.640
das halt nicht von dem Applikations-Server, sondern gibt's halt

00:24:07.640 --> 00:24:09.860
spezialisierte Dinger, die das halt ausliefern. Und

00:24:09.860 --> 00:24:11.920
wenn ich jetzt auf der anderen Seite der Welt, äh, jemanden

00:24:11.920 --> 00:24:13.800
habe, der das angucken möchte, dann ist es halt irgendwie so

00:24:13.800 --> 00:24:15.680
ein bisschen sinnlos, dass einmal irgendwie

00:24:15.680 --> 00:24:17.760
durch, äh, durch drei unterschiedliche

00:24:17.760 --> 00:24:19.700
Untersieg-Kabel scratchen, irgendwie, wenn das ein Video

00:24:19.700 --> 00:24:21.280
ist und das ist halt irgendwie ein Gigabyte groß,

00:24:21.280 --> 00:24:23.280
ähm, sondern,

00:24:23.280 --> 00:24:25.560
und, nehmen wir an, auf der anderen Seite der Welt

00:24:25.560 --> 00:24:27.640
wollen das plötzlich, weil es irgendwie in, in,

00:24:27.640 --> 00:24:29.100
in der Hongkonger

00:24:29.100 --> 00:24:31.360
Club-Szene wird mein, äh, mein, mein

00:24:31.360 --> 00:24:33.500
Ukulelen-Video plötzlich zu, äh, geht, geht

00:24:33.500 --> 00:24:34.360
viral und, äh,

00:24:34.360 --> 00:24:37.500
Welche Plattform? Auf YouTube vielleicht?

00:24:37.500 --> 00:24:39.340
Nee, hab da nix.

00:24:39.340 --> 00:24:40.400
Äh.

00:24:40.400 --> 00:24:43.540
Ja, sehr schön, sehr schön. Genau, aber

00:24:43.540 --> 00:24:45.600
nehmen wir an, das wird jetzt, in Hongkong wird das jetzt superpopulär,

00:24:45.600 --> 00:24:47.620
ne, und dann, äh, wollen das irgendwie

00:24:47.620 --> 00:24:49.540
10.000 Leute angucken. Kennst du das eigentlich, Tim?

00:24:49.580 --> 00:24:50.560
Äh, nee.

00:24:50.560 --> 00:24:53.100
Wegen der Ukulele, Entschuldigung, keiner Exkurs.

00:24:53.100 --> 00:24:55.560
Ach, ist das diese britische, diese britische,

00:24:55.560 --> 00:24:56.640
das ist schon ein bisschen her, ne?

00:24:56.640 --> 00:24:59.140
Ist das ein bisschen Comedian-Musiker, ja, ja, ja, ja, doch, doch, doch,

00:24:59.140 --> 00:25:01.360
dann hab ich's schon mal, mir war grad nicht klar,

00:25:01.360 --> 00:25:03.600
ich konnte das nicht verknüpfen, aber ja, ja,

00:25:03.600 --> 00:25:05.220
doch, hab ich, glaub ich, auch schon mal gesehen, ja,

00:25:05.220 --> 00:25:07.380
aber noch nicht so wirklich, äh. Ja, ist großartig, ja.

00:25:07.380 --> 00:25:09.440
Ja, okay, muss ich mal reingucken. Ähm,

00:25:09.440 --> 00:25:11.200
genau, und wenn ich jetzt hier halt mein, mein,

00:25:11.200 --> 00:25:13.400
mein, äh, mein Webserver irgendwo

00:25:13.400 --> 00:25:15.300
nehme, meiner steht tatsächlich bei

00:25:15.300 --> 00:25:16.880
Hetzner in Nürnberg, ja,

00:25:16.960 --> 00:25:18.080
und jetzt halt die ganzen,

00:25:18.080 --> 00:25:20.860
die ganzen Bits da von Nürnberg nach Hongkong

00:25:20.860 --> 00:25:22.520
irgendwie durch alle möglichen, äh,

00:25:22.520 --> 00:25:24.760
Kabel sich kretschen müssen, ist ja eigentlich irgendwie

00:25:24.760 --> 00:25:26.940
Quatsch. Und dafür nur ein Content-Delivery-Network?

00:25:27.930 --> 00:25:29.870
der an einem Kontinent steht

00:25:29.870 --> 00:25:31.130
und da ist es ein großes Rechenfarm.

00:25:31.130 --> 00:25:33.390
Genau, und die haben halt in allen Punkten, wo es irgendwie

00:25:33.390 --> 00:25:35.930
eine Nachfrage gibt, halt entsprechend Rechenzentren stehen

00:25:35.930 --> 00:25:38.050
und dann gehen die Bits

00:25:38.050 --> 00:25:39.470
von dem Video halt nur einmal

00:25:39.470 --> 00:25:41.970
von Nürnberg bis zu dem lokalen

00:25:41.970 --> 00:25:43.970
Rechenzentrum in Hongkong und werden dann von da aus

00:25:43.970 --> 00:25:45.470
verteilt. Und das ist natürlich

00:25:45.470 --> 00:25:48.190
ein deutlich breiter Zentrum und irgendwie sinnvoll.

00:25:48.190 --> 00:25:49.670
Nur für dynamischen Content nicht?

00:25:49.670 --> 00:25:51.570
Ja, da geht es halt nicht,

00:25:51.570 --> 00:25:53.410
weil die können halt dynamisch,

00:25:53.410 --> 00:25:55.390
muss dann halt die Stelle, die halt

00:25:55.390 --> 00:25:57.450
den State-Helm ist halt gefragt werden.

00:25:57.930 --> 00:25:58.730
Gut, schön.

00:25:58.730 --> 00:26:00.490
Wer oder was ist das jetzt?

00:26:00.490 --> 00:26:02.110
Das ist auch so ein Hoster,

00:26:02.110 --> 00:26:04.570
ein relativ günstiger Hoster,

00:26:04.570 --> 00:26:07.310
wo man so Server irgendwie in einem Rack

00:26:07.310 --> 00:26:08.530
mieten kann und dann da,

00:26:08.530 --> 00:26:11.490
wo halt unter anderem halt auch zum Beispiel

00:26:11.490 --> 00:26:13.170
python-podcast.de

00:26:13.170 --> 00:26:13.990
läuft.

00:26:13.990 --> 00:26:16.470
Oh, so eine Seite gibt es, das ist ja toll.

00:26:16.470 --> 00:26:17.310
Ja, ja, ja.

00:26:17.310 --> 00:26:18.730
Und

00:26:18.730 --> 00:26:21.890
genau, also

00:26:21.890 --> 00:26:24.470
die haben halt die Infrastruktur, um

00:26:24.470 --> 00:26:26.650
jetzt Dateien quasi global

00:26:26.650 --> 00:26:27.870
irgendwie lokal auszubilden.

00:26:27.930 --> 00:26:30.470
Also ihre eigene

00:26:30.470 --> 00:26:31.990
Verteilungsinfrastruktur sozusagen.

00:26:31.990 --> 00:26:34.230
Und das ist halt naheliegend, auch DNS darüber zu machen,

00:26:34.230 --> 00:26:35.950
weil da hat man im Grunde das gleiche Problem.

00:26:35.950 --> 00:26:37.030
Und

00:26:37.030 --> 00:26:40.090
ja, deswegen sind die halt sehr schnell,

00:26:40.090 --> 00:26:41.990
wenn man jetzt zum Beispiel, ich weiß nicht,

00:26:41.990 --> 00:26:44.250
1.1.1.1

00:26:44.250 --> 00:26:45.970
oder so, dass ich jetzt bei mir,

00:26:45.970 --> 00:26:47.750
das Ding, was ich jetzt bei mir eingestellt habe, da habe ich

00:26:47.750 --> 00:26:50.270
sieben Millisekunden Latenz hin

00:26:50.270 --> 00:26:52.450
bei mir

00:26:52.450 --> 00:26:54.110
zu Hause, so publik ist

00:26:54.110 --> 00:26:55.930
DSL. Und das ist fast

00:26:55.930 --> 00:26:57.910
Wien lang. Und das ist aber trotzdem, also ich meine,

00:26:57.930 --> 00:26:59.990
sieben Millisekunden ist schon echt schnell.

00:26:59.990 --> 00:27:01.430
Und ich glaube, der

00:27:01.430 --> 00:27:03.930
DNS-Server

00:27:03.930 --> 00:27:05.930
von meinem Provider antwortet

00:27:05.930 --> 00:27:08.370
so mit 40 Millisekunden

00:27:08.370 --> 00:27:09.170
Latenz oder so.

00:27:09.170 --> 00:27:11.890
Also alles unter 20 schon fast lokal.

00:27:11.890 --> 00:27:13.430
Ja, und

00:27:13.430 --> 00:27:15.310
das sind dann halt, weil die

00:27:15.310 --> 00:27:17.650
Namen müssen ja erst aufgelöst werden, bevor überhaupt

00:27:17.650 --> 00:27:19.490
ein Request zum Applikationsserver gemacht werden kann.

00:27:19.490 --> 00:27:21.670
Bevor überhaupt irgendwas zurückkommt, hat man halt diese

00:27:21.670 --> 00:27:23.410
Latenzen immer drin. Und das

00:27:23.410 --> 00:27:25.750
addiert sich dann halt auf. Und wenn man jetzt

00:27:25.750 --> 00:27:27.850
da schon mal 30 Millisekunden Latenz

00:27:27.930 --> 00:27:29.790
fahren kann, bei jedem Request, der

00:27:29.790 --> 00:27:31.830
irgendwie gemacht wird, oder nicht bei jedem, manchmal wird es

00:27:31.830 --> 00:27:33.590
auch gecached, sind die Antworten, aber

00:27:33.590 --> 00:27:35.950
dann hat das durchaus merkbare

00:27:35.950 --> 00:27:37.870
Auswirkungen. Und deswegen habe ich das mal

00:27:37.870 --> 00:27:39.770
umgestellt. Geht es eigentlich viel schneller, wenn man direkt

00:27:39.770 --> 00:27:40.410
die IP eingibt?

00:27:40.410 --> 00:27:43.650
Das geht halt nicht unbedingt.

00:27:43.650 --> 00:27:45.110
Weil?

00:27:45.110 --> 00:27:47.030
Ja, der

00:27:47.030 --> 00:27:49.870
die Domain oft auch benutzt wird,

00:27:49.870 --> 00:27:52.110
um rauszubekommen,

00:27:52.110 --> 00:27:53.630
an welchen Applikationsserver das fehlen soll.

00:27:53.630 --> 00:27:55.390
Also nehmen wir zum Beispiel mal

00:27:55.390 --> 00:27:57.770
meine private Webseite, liegt auf dem

00:27:57.770 --> 00:27:59.630
gleichen Server

00:27:59.630 --> 00:28:01.470
wie pythonpodcast.de.

00:28:01.470 --> 00:28:03.550
Das heißt, wenn ich die

00:28:03.550 --> 00:28:05.650
IP habe, ich kann jetzt ein HTTP-Request

00:28:05.650 --> 00:28:07.250
zu dieser IP hinschicken,

00:28:07.250 --> 00:28:09.050
dann weiß das aber nicht so richtig,

00:28:09.050 --> 00:28:11.910
für wen ist mir das jetzt gedacht? Ist das für python-podcast.de

00:28:11.910 --> 00:28:12.850
gedacht, oder ist das für

00:28:12.850 --> 00:28:14.950
wer-ist-das-server.de gedacht?

00:28:14.950 --> 00:28:17.570
Und was hat das Request dann? 404?

00:28:17.570 --> 00:28:18.270
403?

00:28:18.270 --> 00:28:21.510
Wenn das nicht eindeutig ist, dann

00:28:21.510 --> 00:28:23.550
kommt dann halt ein 404 wahrscheinlich

00:28:23.550 --> 00:28:23.850
zurück.

00:28:23.850 --> 00:28:26.970
Dann funktioniert das nicht.

00:28:27.610 --> 00:28:28.830
Insofern muss halt

00:28:28.830 --> 00:28:31.150
die Domain im Host-Header mitgeschickt werden.

00:28:31.150 --> 00:28:35.550
Aber wenn man das

00:28:35.550 --> 00:28:37.430
mit dem Browser macht, dann passiert jetzt der erste

00:28:37.430 --> 00:28:39.270
Namens-Auflösungs-Request.

00:28:39.270 --> 00:28:41.190
Der könnte ja lokal routen, kann der das?

00:28:41.190 --> 00:28:43.490
Also irgendwelche Anfragen musst du dann

00:28:43.490 --> 00:28:45.370
versehen mit der IP und einem

00:28:45.370 --> 00:28:46.890
Namen?

00:28:46.890 --> 00:28:49.490
Ja, also man kann solche Requests natürlich auch

00:28:49.490 --> 00:28:51.470
zusammenbauen, aber meistens verwendet man ja Browser

00:28:51.470 --> 00:28:53.170
und dann passiert das halt alles automatisch.

00:28:53.170 --> 00:28:54.990
Und da braucht man die Domains dann halt schon.

00:28:54.990 --> 00:28:57.450
Weil in meinem statischen Web-Server

00:28:57.450 --> 00:28:59.330
der halt sozusagen der Reverse-Proxy

00:28:59.330 --> 00:29:01.090
von den Applikations-Servern ist, gibt es dann halt einfach

00:29:01.090 --> 00:29:03.390
eine Tabelle. Da steht halt so, alles was irgendwie mit

00:29:03.390 --> 00:29:05.490
Python-Podcast.de anfängt,

00:29:05.490 --> 00:29:07.430
geht halt an den

00:29:07.430 --> 00:29:09.370
lokalen Applikations-Server,

00:29:09.370 --> 00:29:10.430
der auf dem Port läuft.

00:29:10.430 --> 00:29:13.250
Und alles was halt auf die Domain geht,

00:29:13.250 --> 00:29:14.170
geht halt an den.

00:29:14.170 --> 00:29:17.310
Okay, also du machst halt tatsächlich relativ viel

00:29:17.310 --> 00:29:19.310
im Web. Das haben wir jetzt glaube ich auch

00:29:19.310 --> 00:29:21.290
gehört, auch mit den Browsern haben wir jetzt glaube ich schon ein kleines Thema

00:29:21.290 --> 00:29:23.490
ein bisschen gehabt, was wir vorher noch nicht angekündigt

00:29:23.490 --> 00:29:25.250
hatten. Aber hey, wir haben eigentlich ein bisschen was

00:29:25.250 --> 00:29:26.950
über die Browser erzählt. Ja, ja, so was.

00:29:27.290 --> 00:29:29.450
Ja, also wir wollen ja erzählen, was alles nicht so funktioniert.

00:29:29.450 --> 00:29:31.170
Also da hatten wir ja auch kurz den Safari erwähnt.

00:29:31.170 --> 00:29:33.410
Ja, du hast auch gesagt,

00:29:33.410 --> 00:29:34.970
was machst du so eigentlich die ganze Zeit?

00:29:34.970 --> 00:29:36.950
Du hast irgendwas erzählt, du hast ein bisschen mit Audio gemacht

00:29:36.950 --> 00:29:37.910
im Browser und so.

00:29:37.910 --> 00:29:40.010
Ja, letzte Woche.

00:29:40.010 --> 00:29:42.910
Eigentlich mache ich

00:29:42.910 --> 00:29:45.290
so Data Science

00:29:45.290 --> 00:29:46.650
Machine Learning-Geschichten,

00:29:46.650 --> 00:29:49.110
aber halt in letzter Zeit auch häufiger

00:29:49.110 --> 00:29:50.730
Frontend-Sachen im Web, weil

00:29:50.730 --> 00:29:53.330
man muss halt auch Dinge, wenn man

00:29:53.330 --> 00:29:55.010
Machine Learning machen will, zuerst

00:29:55.010 --> 00:29:56.770
muss man Daten sammeln und die annotieren und so.

00:29:57.130 --> 00:29:58.190
Und

00:29:58.190 --> 00:30:01.070
früher haben das

00:30:01.070 --> 00:30:02.170
irgendwie immer andere Leute gemacht,

00:30:02.170 --> 00:30:04.890
Annotationsfronten eins gebaut und so, aber das war nie

00:30:04.890 --> 00:30:06.890
so wirklich toll und

00:30:06.890 --> 00:30:07.330
inzwischen

00:30:07.330 --> 00:30:12.930
habe ich ein Projekt,

00:30:12.930 --> 00:30:14.870
wo ich es auch mit selber mache und eigentlich bin ich ganz glücklich

00:30:14.870 --> 00:30:16.870
drüber, weil jetzt kann ich das halt mal so bauen, wie

00:30:16.870 --> 00:30:18.930
ich das gerne hätte und das ist eigentlich

00:30:18.930 --> 00:30:20.970
ganz praktisch und nebenbei lerne ich

00:30:20.970 --> 00:30:22.630
halt auch mal diesen ganzen Web-Quatsch.

00:30:22.630 --> 00:30:24.290
Ja, Quatsch.

00:30:24.290 --> 00:30:26.690
Deswegen, das ist alles

00:30:26.690 --> 00:30:26.970
Quatsch.

00:30:26.970 --> 00:30:28.650
Quatsch und ja, gut geht alles nicht.

00:30:28.650 --> 00:30:31.070
Genau, aber so schlimm ist es auch nicht.

00:30:31.070 --> 00:30:32.990
Es ist schon eigentlich ganz gut.

00:30:32.990 --> 00:30:34.150
Es ist wirklich viel besser als früher

00:30:34.150 --> 00:30:36.810
und insofern würde ich sagen, ist es auch momentan ein ganz

00:30:36.810 --> 00:30:38.650
interessanter Zeitpunkt, um damit anzufangen, weil

00:30:38.650 --> 00:30:39.650
es geht halt schon eine ganze Menge.

00:30:39.650 --> 00:30:42.870
Aber immer ab und zu stößt man halt dann noch schon

00:30:42.870 --> 00:30:44.950
so auf so schmerzhafte Details

00:30:44.950 --> 00:30:46.550
wie zum Beispiel, letzte Woche habe ich

00:30:46.550 --> 00:30:48.730
Audio gemacht und

00:30:48.730 --> 00:30:52.690
da war, also Safari

00:30:52.690 --> 00:30:54.630
ist halt so ein bisschen der neue EE, weil der hängt halt

00:30:54.630 --> 00:30:56.470
in der Entwicklung hinterher und

00:30:56.810 --> 00:30:59.150
da gibt es dann so unterschiedliche APIs, die Browser implementieren

00:30:59.150 --> 00:31:00.750
können, zum Beispiel so die Media Capture API,

00:31:00.750 --> 00:31:03.010
wo man halt einfach vom

00:31:03.010 --> 00:31:04.770
Browser halt sowas bekommt, wie

00:31:04.770 --> 00:31:06.830
Video oder Bild

00:31:06.830 --> 00:31:08.830
Daten, also das kennt man

00:31:08.830 --> 00:31:10.410
vielleicht, wenn man, ja,

00:31:10.410 --> 00:31:12.830
also eigentlich kennt man das eher so, dass man

00:31:12.830 --> 00:31:14.990
auf dem Smartphone dann so einen Dialog

00:31:14.990 --> 00:31:16.770
bekommt, so möchtest du ein Foto oder Video

00:31:16.770 --> 00:31:18.110
aufnehmen oder halt

00:31:18.110 --> 00:31:22.830
quasi eins aus deiner Mediathek

00:31:22.830 --> 00:31:24.910
auswählen oder so. Ah, du meinst, wenn ich auf Time klicke,

00:31:24.910 --> 00:31:26.790
hat mich kurz abgehängt, wenn ich was mache,

00:31:26.790 --> 00:31:28.690
was ich machen möchte? Wenn du auf einer Webseite bist

00:31:28.690 --> 00:31:30.850
und du möchtest jetzt beispielsweise, du musst da halt

00:31:30.850 --> 00:31:32.450
irgendwie ein Profilbild hochladen oder so,

00:31:32.450 --> 00:31:34.810
dann gibt es meistens so einen Button oder sowas,

00:31:34.810 --> 00:31:36.810
wo man draufdrückt und dann wird man halt gefragt,

00:31:36.810 --> 00:31:38.250
irgendwie so Fotovideo aufnehmen

00:31:38.250 --> 00:31:40.930
oder irgendwie ein bestehendes Foto benutzen

00:31:40.930 --> 00:31:41.310
oder so.

00:31:41.310 --> 00:31:43.710
Genau, und

00:31:43.710 --> 00:31:46.750
das ist eigentlich so ein File

00:31:46.750 --> 00:31:48.730
Input, so ein Input-Element,

00:31:48.730 --> 00:31:50.570
was man halt da verwendet, also ein

00:31:50.570 --> 00:31:52.710
Input-Type-File und da gibt es auch einen Standard

00:31:52.710 --> 00:31:54.530
für, wie man da ranschreiben kann, okay, ich hätte

00:31:54.530 --> 00:31:56.750
gern jetzt aber nur ein Foto oder

00:31:56.750 --> 00:31:58.190
nur Audio

00:31:58.190 --> 00:32:00.650
und zwar in dem und dem Codec und so. Das geht

00:32:00.650 --> 00:32:02.010
eigentlich alles. Ja.

00:32:02.010 --> 00:32:04.930
Und die Browser können das auch.

00:32:04.930 --> 00:32:06.870
Oh, da geht's ab.

00:32:06.870 --> 00:32:10.010
Ich glaube, das ist die Waschmaschine.

00:32:10.010 --> 00:32:12.150
Ja, ich glaube,

00:32:12.150 --> 00:32:14.710
auch vorhin wird das hinterher alles rausfiltern.

00:32:14.710 --> 00:32:16.350
Na gut. Bin ja sehr zuversichtlich, mal gucken.

00:32:16.350 --> 00:32:18.090
Bei dem Schleudergang, du warst da hinten.

00:32:18.090 --> 00:32:20.650
Ja,

00:32:20.650 --> 00:32:21.350
genau.

00:32:21.350 --> 00:32:24.710
Also eigentlich wäre das ideal, wenn man

00:32:24.710 --> 00:32:26.450
einfach irgendwo ein Element hinmachen würde,

00:32:26.710 --> 00:32:28.790
Input-Element-Type-File

00:32:28.790 --> 00:32:30.470
und dann halt sagt man auch, was man da gerne hätte

00:32:30.470 --> 00:32:32.650
und dann wird der User halt gefragt, okay,

00:32:32.650 --> 00:32:34.710
dann nimm doch halt mal diese App

00:32:34.710 --> 00:32:36.390
zum Audio aufnehmen oder die

00:32:36.390 --> 00:32:38.790
Fotografie-App auf deinem Telefon

00:32:38.790 --> 00:32:40.410
und mach damit irgendwas, denn dann wird

00:32:40.410 --> 00:32:42.650
das, was man aufgenommen hat, in der lokalen Mediathek

00:32:42.650 --> 00:32:44.230
und quasi auch

00:32:44.230 --> 00:32:46.630
im Browser

00:32:46.630 --> 00:32:48.870
und im JavaScript, sodass man damit irgendwas machen kann.

00:32:48.870 --> 00:32:50.030
Das wäre voll gut.

00:32:50.030 --> 00:32:53.030
Das funktioniert auch in den neuesten Chromes, glaube ich,

00:32:53.030 --> 00:32:54.670
aber das funktioniert nicht

00:32:54.670 --> 00:32:56.510
mit dem Safari und das funktioniert auch nicht

00:32:56.510 --> 00:32:58.110
Also es wäre halt das, was man gerne hätte,

00:32:58.110 --> 00:33:00.310
aber das funktioniert halt mit dem Safari nicht und damit ist

00:33:00.310 --> 00:33:02.710
iOS komplett raus und damit kann man es eigentlich nicht mehr verwenden,

00:33:02.710 --> 00:33:03.790
weil geht halt nicht.

00:33:03.790 --> 00:33:04.450
Genau.

00:33:04.450 --> 00:33:08.510
Meinst du, die patchen das

00:33:08.510 --> 00:33:09.550
oder sind die da zu

00:33:09.550 --> 00:33:12.570
anders strategisch

00:33:12.570 --> 00:33:12.930
aufgestellt?

00:33:12.930 --> 00:33:16.450
Ich meine, das gibt es ja schon lange und so und andere haben

00:33:16.450 --> 00:33:18.370
das auch schon lange implementiert und da sie das

00:33:18.370 --> 00:33:20.470
schon seit quasi Jahren nicht gemacht haben, ist halt

00:33:20.470 --> 00:33:21.950
warum sollten sie es jetzt tun?

00:33:21.950 --> 00:33:23.850
Weiß ich auch nicht.

00:33:23.850 --> 00:33:26.150
Also es könnte sein, dass es auch kommt, man weiß es halt nicht.

00:33:26.510 --> 00:33:29.270
Aber ja, also das wäre am schönsten.

00:33:29.270 --> 00:33:32.170
Und dann, wenn das nicht geht, gut, es gibt halt

00:33:32.170 --> 00:33:35.670
die die Media Recorder API.

00:33:35.670 --> 00:33:38.530
Die ist auch ziemlich schick.

00:33:38.530 --> 00:33:41.350
Das ist halt ein bisschen mehr Aufwand.

00:33:41.350 --> 00:33:45.970
Da muss man halt von der JavaScript-Seite aus halt hat man dann so ein Media Recorder-Objekt

00:33:45.970 --> 00:33:49.750
irgendwie an ein Window dranhängen und das kann man benutzen, um halt irgendwie Audio

00:33:49.750 --> 00:33:51.450
aufzunehmen oder Video aufzunehmen oder so.

00:33:51.450 --> 00:33:56.310
Man kriegt halt nicht einfach eine Datei, was halt die Arbeit irgendwie enorm vereinfachen muss.

00:33:56.310 --> 00:34:05.490
Sondern man kriegt halt dann ja irgendwie so ein ja Blob, so ein Binary-Objekt, das man

00:34:05.490 --> 00:34:09.650
dann auch quasi irgendwie wieder an den Server schicken kann und so, aber so ein bisschen

00:34:09.650 --> 00:34:10.650
ätzender.

00:34:10.650 --> 00:34:14.490
Kannst leider nicht nachmachen mit dem Blob.

00:34:14.490 --> 00:34:20.430
Ja, und das ist eigentlich auch nicht, das ist eigentlich, das ist auch alles easy.

00:34:20.430 --> 00:34:22.990
Da dachte ich so, oh gut, dann könnte man ja das nehmen.

00:34:22.990 --> 00:34:26.110
Aber das können auch tatsächlich alle Browser, bis auf.

00:34:26.110 --> 00:34:30.410
Ja, das ist echt, echt schwierig.

00:34:30.410 --> 00:34:40.450
Wobei man sagen muss, auch die anderen, die Formate sind halt alle total unterschiedlich.

00:34:40.450 --> 00:34:53.710
Und das unterstützen das zwar, aber im Chrome kriegt man dann halt, ja, diese, die nehmen dieses WebM-Container-Format und schreiben da Opus-Codec rein.

00:34:53.710 --> 00:34:54.890
Opus was?

00:34:54.890 --> 00:34:56.670
Opus ist der Codec.

00:34:56.670 --> 00:35:05.450
Opus ist halt einer, ja, ist halt quasi gerade für Text oder Sprache, für Sprachaufnahmen ist das eigentlich ziemlich gut.

00:35:05.450 --> 00:35:09.990
Komprimiert schön runter.

00:35:10.450 --> 00:35:12.750
Und man kann das halt immer noch gut verstehen.

00:35:12.750 --> 00:35:20.650
Und ja, Firefox nimmt dann halt ein anderes Container, nimmt dann halt diesen, diesen Aquavis-Container.

00:35:20.650 --> 00:35:28.550
Und aber ich glaube, sie packen da, sie packen da auch, auch Opus rein als Codec.

00:35:28.550 --> 00:35:34.990
Ja, wobei jetzt natürlich Safari irgendwie würde jetzt wahrscheinlich nicht Opus nehmen.

00:35:34.990 --> 00:35:40.430
So, die nehmen ja keinen von, die unterstützen ja keinen freien Codec, sondern müsste das dann irgendwie MP4 sein oder so.

00:35:40.450 --> 00:35:40.630
So was.

00:35:40.630 --> 00:35:41.830
Hurra.

00:35:41.830 --> 00:35:46.950
Und das ist halt alles, was das halt auch wieder schwierig macht, weil dann muss man halt auf dem Server das alles nochmal ineinander umcodieren,

00:35:46.950 --> 00:35:52.890
weil man möchte ja auch den Browsern dann das Format schicken, was sie halt irgendwie problemlos wieder ausgeben können und so.

00:35:52.890 --> 00:36:01.410
Und ja, für den Firefox ist das dann, dem schickt man dann halt auch wieder ein Opus-Codec im Ogg-Container.

00:36:01.410 --> 00:36:04.350
Und das war super, danke.

00:36:04.350 --> 00:36:06.170
Ja, war was zu trinken.

00:36:06.170 --> 00:36:07.270
Dankeschön.

00:36:07.270 --> 00:36:10.170
Das ist einfach so nebenbei.

00:36:10.270 --> 00:36:11.490
Entschuldigung, wir haben euch ja auch nicht stehen lassen.

00:36:11.490 --> 00:36:15.190
Ja, Entschuldigung, du wolltest gerade in den Container.

00:36:15.190 --> 00:36:15.890
Genau, genau, genau.

00:36:15.890 --> 00:36:26.850
Und dem Chrome wird man halt irgendwie dann WebM und auch Opus schicken.

00:36:26.850 --> 00:36:28.190
Naja, wie auch immer.

00:36:28.190 --> 00:36:32.050
Also Safari kann halt diese blöde Media-Recorder-API nicht.

00:36:32.050 --> 00:36:40.190
Das lässt sich dann überbrücken, indem man halt ein Polyfill halt verwendet, was dann die Media-Catcher-API benutzt, um irgendwie diesen Media-Recorder zu emulieren.

00:36:40.270 --> 00:36:43.250
aber so richtig schön ist das alles nicht, weil dann kann man nur noch

00:36:43.250 --> 00:36:45.170
Waff. Ich habe mir gerade einen Fleck

00:36:45.170 --> 00:36:46.790
auf die Hose geschüttelt. Oh nein.

00:36:46.790 --> 00:36:48.610
Entschuldigung.

00:36:48.610 --> 00:36:52.730
Oh, vielen Dank. Ja, bitteschön.

00:36:52.730 --> 00:36:53.930
Prost.

00:36:53.930 --> 00:36:56.670
Das ist ein Spittbrunnen-Rotwein.

00:36:56.670 --> 00:37:01.310
Das ist so spät der Stunde.

00:37:01.310 --> 00:37:03.270
Ja, auch mal hier auf die Weihnachtsfolge.

00:37:03.270 --> 00:37:05.230
Ist ja sowieso alles ein bisschen chaotisch heute,

00:37:05.230 --> 00:37:06.570
deswegen. Ja.

00:37:06.570 --> 00:37:06.650
Oh.

00:37:10.270 --> 00:37:11.590
Das war lecker. Na gut.

00:37:11.590 --> 00:37:15.970
Wow.

00:37:15.970 --> 00:37:17.710
Mjam, mjam.

00:37:17.710 --> 00:37:20.050
Ja, also.

00:37:20.050 --> 00:37:21.090
Klasse.

00:37:21.090 --> 00:37:25.070
Wir waren gerade stehen geblieben.

00:37:25.070 --> 00:37:25.610
Ja, ja, ja.

00:37:25.610 --> 00:37:28.090
Also, genau.

00:37:28.090 --> 00:37:30.770
Und

00:37:30.770 --> 00:37:32.770
ja, also man kann das dann immer,

00:37:32.770 --> 00:37:34.370
das Problem ist, wenn man jetzt

00:37:34.370 --> 00:37:36.750
sozusagen diese API, die nicht implementiert ist,

00:37:36.750 --> 00:37:38.390
im Browser selber in JavaScript

00:37:38.390 --> 00:37:39.530
nachbaut,

00:37:39.950 --> 00:37:40.890
damit man das halt

00:37:40.890 --> 00:37:43.590
in Safari genauso machen kann wie in den anderen Browsern,

00:37:43.590 --> 00:37:46.510
dann hat man halt das Problem,

00:37:46.510 --> 00:37:48.530
dass man die rohe Aufnahme

00:37:48.530 --> 00:37:49.710
dann halt kriegt in diesem

00:37:49.710 --> 00:37:51.810
Binär-Blob,

00:37:51.810 --> 00:37:54.150
mit einem Daten-Blob, den man halt

00:37:54.150 --> 00:37:55.090
unkomprimiert,

00:37:55.090 --> 00:37:58.430
unkomprimiert als Waff-File.

00:37:58.430 --> 00:38:00.030
Jetzt kann man natürlich anfangen,

00:38:00.030 --> 00:38:01.830
in JavaScript das irgendwie nach

00:38:01.830 --> 00:38:03.910
P4 oder nach Opus zu kodieren.

00:38:03.910 --> 00:38:05.930
Das kann man irgendwie machen. Es gibt Leute, die das tun.

00:38:05.930 --> 00:38:07.370
Ich weiß nicht, ob das so eine gute Idee ist.

00:38:07.370 --> 00:38:08.770
Ähm,

00:38:09.370 --> 00:38:11.670
was ich dann mache, ist, ich schicke dann halt das Waff-File

00:38:11.670 --> 00:38:13.470
zum Server und der kodiert das dann halt um

00:38:13.470 --> 00:38:15.690
in die unterschiedlichen Formate und Container-Typen.

00:38:15.690 --> 00:38:17.890
Aber ist halt dann einfach

00:38:17.890 --> 00:38:19.470
mehr, braucht natürlich deutlich mehr Bandbreite,

00:38:19.470 --> 00:38:20.990
wenn man das halt unkomprimiert

00:38:20.990 --> 00:38:22.230
an den Server schickt.

00:38:22.230 --> 00:38:25.050
Safari, die gehen halt davon aus, sie haben alle genug Bandbreite.

00:38:25.050 --> 00:38:25.870
Ist ja auch Apple, ne?

00:38:25.870 --> 00:38:28.870
Naja, und so richtig

00:38:28.870 --> 00:38:31.310
dolle ist das irgendwie nicht.

00:38:31.310 --> 00:38:33.330
Ja, und dann, genau.

00:38:33.330 --> 00:38:35.330
Wenn man es dann beim Server hat, dann kann man das zwar

00:38:35.330 --> 00:38:37.450
in alle Formate umkodieren, ist aber auch

00:38:37.450 --> 00:38:38.930
manchmal, manchmal hat man dann so komische Effekte.

00:38:39.050 --> 00:38:41.410
Ich benutze da, ähm, na, FFM-Pack als Library.

00:38:41.410 --> 00:38:43.090
Die kann das irgendwie alles

00:38:43.090 --> 00:38:44.990
ineinander konvertieren. Und manchmal, bei manchen,

00:38:44.990 --> 00:38:47.390
wenn man von dem einen Format, also man nimmt irgendwas in Firefox auf,

00:38:47.390 --> 00:38:49.550
spielt es dann in Safari ab oder so.

00:38:49.550 --> 00:38:50.830
Ich weiß es nicht mehr genau, wie es war, ne?

00:38:50.830 --> 00:38:53.070
Sondern plötzlich ist dann irgendwie alles nur halb so schnell oder so.

00:38:53.070 --> 00:38:55.010
Und dann muss man dann in den Flex

00:38:55.010 --> 00:38:56.770
von FFM-Pack aufrufen, den man gemacht hat,

00:38:56.770 --> 00:38:58.210
irgendwie so lange drehen, bis es wieder stimmt.

00:38:58.210 --> 00:39:00.410
Und das ist halt alles ziemlich, also es ist nicht so,

00:39:00.410 --> 00:39:02.350
dass es alles so out of the box funktioniert,

00:39:02.350 --> 00:39:04.950
sondern man hat da teilweise sehr überraschende Ergebnisse noch.

00:39:04.950 --> 00:39:07.110
Und, ähm,

00:39:07.110 --> 00:39:08.470
was halt auch total doof ist,

00:39:08.470 --> 00:39:09.370
ist halt, äh,

00:39:09.370 --> 00:39:11.810
mit diesem Problem habe ich mich

00:39:11.810 --> 00:39:13.850
mehr als einen halben Tag rumgeschlagen,

00:39:13.850 --> 00:39:16.030
bis ich überhaupt rausgekriegt habe, was da das Problem ist.

00:39:16.030 --> 00:39:18.390
Ähm, das war auch wieder

00:39:18.390 --> 00:39:19.690
Safari. Safari!

00:39:19.690 --> 00:39:22.270
Das ist schon der dritte

00:39:22.270 --> 00:39:24.190
Pain von Safari, na, von einer Woche.

00:39:24.190 --> 00:39:26.270
Also wenn man das abspielt, dann denkt man sich,

00:39:26.270 --> 00:39:28.290
okay, ich kann mit Safari leider kein Audio aufnehmen.

00:39:28.290 --> 00:39:29.550
Okay, gut, naja, egal.

00:39:29.550 --> 00:39:32.270
Wie ist das für ein Teil?

00:39:32.270 --> 00:39:33.990
Sorry.

00:39:33.990 --> 00:39:35.710
Schießen, husten.

00:39:35.710 --> 00:39:37.830
Das ist ja irgendwie, als hättest du eben noch eine gewisse Zigarre geraucht.

00:39:37.890 --> 00:39:38.690
Aber, äh, na,

00:39:38.690 --> 00:39:40.170
mhm.

00:39:40.170 --> 00:39:42.250
Und das geht mal wieder weg hier.

00:39:42.250 --> 00:39:45.090
Ähm, naja, äh, genau.

00:39:45.090 --> 00:39:46.630
Aber abspielen sollte es das ja können.

00:39:46.630 --> 00:39:48.670
Man kann das ja auch irgendwie in Format kodieren,

00:39:48.670 --> 00:39:50.670
dass es halt Safari, äh,

00:39:50.670 --> 00:39:53.050
abspielen können müsste, wie zum Beispiel, äh,

00:39:53.050 --> 00:39:54.970
MP4, ja, äh,

00:39:54.970 --> 00:39:57.190
ist ja sozusagen das, äh,

00:39:57.190 --> 00:39:58.650
äh, Hausformat.

00:39:58.650 --> 00:40:01.430
Äh, und dann geht das aber irgendwie nicht.

00:40:01.430 --> 00:40:02.730
Dann fragt man sich, hä, warum geht denn das nicht?

00:40:02.730 --> 00:40:04.750
Und, ähm,

00:40:04.750 --> 00:40:06.830
das Einzige, was geht, ist irgendwie

00:40:06.830 --> 00:40:07.490
MP3.

00:40:07.890 --> 00:40:09.570
Äh, aber, äh,

00:40:09.570 --> 00:40:11.730
da geht das auch nur so, dass man das einmal

00:40:11.730 --> 00:40:13.050
abspielen kann und dann nicht mehr.

00:40:13.050 --> 00:40:14.590
Und dann steht in dem, in dem Audio

00:40:14.590 --> 00:40:17.650
Teil, äh, den man halt

00:40:17.650 --> 00:40:19.430
auf der Webseite sieht, steht da irgendwie so was Komisches wie

00:40:19.430 --> 00:40:20.250
Live-Übertragung.

00:40:20.250 --> 00:40:23.810
Und dann hab ich mich zuerst gefragt, so, was zur Hölle ist das denn?

00:40:23.810 --> 00:40:25.630
Und, ähm, ja,

00:40:25.630 --> 00:40:27.690
es ist, es ist halt so, dass, äh,

00:40:27.690 --> 00:40:29.790
ähm, Safari erwartet,

00:40:29.790 --> 00:40:31.630
wenn, wenn man jetzt Audio abspielen

00:40:31.630 --> 00:40:33.570
möchte, das heißt, man hat einen Audio-Tag,

00:40:33.570 --> 00:40:35.310
so ähnlich wie ein Image-Tag, bloß halt mit,

00:40:35.310 --> 00:40:37.350
mit, mit Audiodaten drin, dann kann man halt die

00:40:37.350 --> 00:40:39.230
unterschiedlichen Formate und Codecs halt auflisten,

00:40:39.230 --> 00:40:41.350
was man da so alles hat, und der Browser kann dann entscheiden,

00:40:41.350 --> 00:40:42.190
was er abspielen möchte.

00:40:42.190 --> 00:40:45.670
Und, ähm, bei allem außer MP3

00:40:45.670 --> 00:40:47.350
äh, schickt, ähm,

00:40:47.350 --> 00:40:49.510
Safari halt irgendwie so ein Byte-Range-Request

00:40:49.510 --> 00:40:49.990
an den Server.

00:40:49.990 --> 00:40:53.130
Das muss der Server dann können, er muss dann irgendwie mit einem

00:40:53.130 --> 00:40:55.050
206 antworten, statt einem 200er.

00:40:55.050 --> 00:40:58.710
Den benutzt Safari aber nicht.

00:40:58.710 --> 00:41:00.850
Er schickt den halt irgendwie dahin und

00:41:00.850 --> 00:41:03.310
schmeißt das Ergebnis weg, aber wenn

00:41:03.310 --> 00:41:05.230
irgendwie kein 206 zurückkommt, dann

00:41:05.230 --> 00:41:07.330
es geht einfach gar nichts, spielt ja gar nichts ab.

00:41:07.350 --> 00:41:08.930
Ja? Also,

00:41:08.930 --> 00:41:10.650
es funktioniert einfach nicht.

00:41:10.650 --> 00:41:13.290
So, äh, der Entwicklungs-Server, auf dem ich entwickle,

00:41:13.290 --> 00:41:15.470
der kann sowas halt nicht, der kann keine Byte-Range-Requests,

00:41:15.470 --> 00:41:17.090
der kann überhaupt keine statischen Dateien eigentlich so richtig,

00:41:17.090 --> 00:41:18.290
das ist ein Python-Entwicklungs-Server,

00:41:18.290 --> 00:41:21.630
das ist ja nicht gedacht. Also, ähm,

00:41:21.630 --> 00:41:23.590
antwortet der halt auf diesen Byte-Range-Request,

00:41:23.590 --> 00:41:25.170
glaub ich, ich weiß gar nicht, womit der dann antwortet,

00:41:25.170 --> 00:41:27.290
äh, aber irgendwie im normalen 200,

00:41:27.290 --> 00:41:29.170
glaub ich, und da sagt

00:41:29.170 --> 00:41:31.310
Safari so, nö, dann halt nicht. Aber es gibt auch keine

00:41:31.310 --> 00:41:33.110
Fehler, es gibt eine ganz komische

00:41:33.110 --> 00:41:34.410
Fehlermeldung in der Konsole,

00:41:34.410 --> 00:41:36.730
äh, ich hab das jetzt leider wieder vergessen,

00:41:36.730 --> 00:41:37.330
was, aber irgendwie,

00:41:37.350 --> 00:41:38.810
überhaupt nichts damit zu tun hat, was eigentlich passiert.

00:41:38.810 --> 00:41:42.990
Ja, und, ähm,

00:41:42.990 --> 00:41:45.310
also kann auch sein, dass das dann im Produktivbetrieb alles dann

00:41:45.310 --> 00:41:47.290
funktioniert, auch mit anderen Sachen, aber

00:41:47.290 --> 00:41:49.310
man kann dann halt auch schon nicht mehr so richtig testen,

00:41:49.310 --> 00:41:51.130
irgendwie. Und

00:41:51.130 --> 00:41:53.310
MP3 funktioniert deswegen, weil MP3

00:41:53.310 --> 00:41:55.530
halt ein Format ist ohne Container,

00:41:55.530 --> 00:41:57.450
äh, was halt auch diverse Nachteile

00:41:57.450 --> 00:41:59.110
hat, wie zum Beispiel, man kann halt nicht

00:41:59.110 --> 00:42:01.490
irgendwo hinspringen in der MP3-Datei,

00:42:01.490 --> 00:42:02.730
äh, es gibt kein,

00:42:02.730 --> 00:42:04.810
kein separate Zeit oder sowas,

00:42:04.810 --> 00:42:06.730
wo man sagen kann, äh, also man

00:42:06.730 --> 00:42:07.290
hat halt nicht,

00:42:07.350 --> 00:42:09.130
irgendwie ein Header-Teil, äh,

00:42:09.130 --> 00:42:11.010
in der Datei, wo drinsteht, also dieses, diese,

00:42:11.010 --> 00:42:13.150
dieses, dieser Sound-Schnitzel ist so und so lang,

00:42:13.150 --> 00:42:15.210
und, äh, wenn du halt zu

00:42:15.210 --> 00:42:17.070
der Zeit, äh, zu diesem Zeitpunkt willst,

00:42:17.070 --> 00:42:19.130
dann musst du dieses, diesen Byte irgendwie

00:42:19.130 --> 00:42:21.070
abspielen oder so. Deswegen ist das

00:42:21.070 --> 00:42:23.170
natürlich total sinnvoll, diese Byte-Range-Equests zu haben,

00:42:23.170 --> 00:42:25.010
weil dann kannst du halt in einem Player,

00:42:25.010 --> 00:42:27.050
äh, äh, sagen, okay, ich spring

00:42:27.050 --> 00:42:28.970
jetzt irgendwie zu dieser Kapitelmarke,

00:42:28.970 --> 00:42:30.710
oder ich spring halt irgendwo in die Mitte,

00:42:30.710 --> 00:42:32.950
und es muss nicht alles runtergeladen werden,

00:42:32.950 --> 00:42:35.230
sondern es wird nur das runtergeladen,

00:42:35.230 --> 00:42:37.330
was tatsächlich abgespielt wird. Also eigentlich schon sehr schick,

00:42:37.350 --> 00:42:39.150
und MP3 kann das halt nicht.

00:42:39.150 --> 00:42:41.430
MP3 musst du halt immer komplett

00:42:41.430 --> 00:42:43.310
abspielen, quasi, oder komplett runterladen, wenn du es

00:42:43.310 --> 00:42:45.550
abspielen willst. Das macht der Safari dann auch.

00:42:45.550 --> 00:42:47.330
Ja, also er sagt dann halt sozusagen, okay,

00:42:47.330 --> 00:42:49.490
Byte-Range-Equests gehen mit MP3 dann halt nicht,

00:42:49.490 --> 00:42:51.410
und, äh, das kann ich alles eh nicht machen.

00:42:51.410 --> 00:42:53.470
Ähm, daher mach ich

00:42:53.470 --> 00:42:55.270
da was anderes und tu so, als wäre das eine

00:42:55.270 --> 00:42:57.010
Live-Übertragung und spiel das dann halt irgendwie ab.

00:42:57.010 --> 00:42:58.630
Was dann aber dazu führt, dass

00:42:58.630 --> 00:43:01.450
der Browser lädt alles runter, aber man kann es halt nur ein einziges

00:43:01.450 --> 00:43:03.190
Mal abspielen, und dann werden halt

00:43:03.190 --> 00:43:05.330
irgendwie so die Audio-Controls dunkel,

00:43:05.330 --> 00:43:06.810
und das war's.

00:43:07.350 --> 00:43:09.350
Und das ist halt also, wie so,

00:43:09.350 --> 00:43:11.730
oh nein, äh, was, äh,

00:43:11.730 --> 00:43:12.170
äh.

00:43:12.170 --> 00:43:16.730
Ja, es gibt da, es gibt da einen sehr lustigen,

00:43:16.730 --> 00:43:17.810
äh, Apple verwendet

00:43:17.810 --> 00:43:19.790
für all diese Sachen so ein Radar, äh,

00:43:19.790 --> 00:43:21.450
heißt das Ding, so ein Bug-Tracker.

00:43:21.450 --> 00:43:23.130
Ich kenne auch Radare, aber das war was anderes.

00:43:23.130 --> 00:43:25.430
Zu diesem Problem, das hab ich dann irgendwie so nach ein bisschen suchen,

00:43:25.430 --> 00:43:27.630
seh, ich hatte, das Problem war rauszufinden,

00:43:27.630 --> 00:43:29.690
was ist, was soll, was passiert hier eigentlich?

00:43:29.690 --> 00:43:31.750
Äh, äh, als ich das rausgefunden

00:43:31.750 --> 00:43:33.750
hatte, war es dann relativ leicht,

00:43:33.750 --> 00:43:35.810
dann auch den entsprechenden, die entsprechenden

00:43:35.810 --> 00:43:37.270
Geschichten im Web zu finden. Kann man sich,

00:43:37.310 --> 00:43:39.490
mal raussuchen, wenn man so danach sucht, irgendwie Safari-Audio,

00:43:39.490 --> 00:43:41.450
äh, Byte-Range, äh, Radar,

00:43:41.450 --> 00:43:43.390
dann findet man da auch den, den

00:43:43.390 --> 00:43:45.290
entsprechenden Bug bei Apple, und da haben

00:43:45.290 --> 00:43:46.510
so Leute lustige Sachen reingeschrieben.

00:43:46.510 --> 00:43:48.530
Ähm. Safari

00:43:48.530 --> 00:43:51.430
Byte-Range Radar.

00:43:51.430 --> 00:43:52.970
Mhm. Ja.

00:43:52.970 --> 00:43:55.670
Und, ähm,

00:43:55.670 --> 00:43:57.250
ja.

00:43:57.250 --> 00:43:59.310
Naja, auf jeden Fall, das ist alles

00:43:59.310 --> 00:44:01.330
nicht so toll. Ich hoffe mal, dass es dann im Produktivbetrieb irgendwie

00:44:01.330 --> 00:44:03.010
alles geht. Ähm,

00:44:03.010 --> 00:44:05.430
und ich einfach MP4 abspielen kann im Safari,

00:44:05.430 --> 00:44:07.270
aber momentan spiele ich dann halt MP3 und

00:44:07.270 --> 00:44:09.290
lebe damit, dass man es nur einmal abspielen kann und dann nicht wieder.

00:44:09.290 --> 00:44:10.970
Okay, gut.

00:44:10.970 --> 00:44:13.250
Äh, ja. Ja, ja.

00:44:13.250 --> 00:44:15.270
Also, das ist alles noch nicht so, es ist nicht so,

00:44:15.270 --> 00:44:17.650
nicht so ein total smoothes, äh,

00:44:17.650 --> 00:44:19.350
smoothes Experience,

00:44:19.350 --> 00:44:20.330
sondern es ist mehr so,

00:44:20.330 --> 00:44:22.750
man fragt sich ab und zu so,

00:44:22.750 --> 00:44:24.550
oh, das darf doch nicht wahr sein.

00:44:24.550 --> 00:44:27.670
Ähm, ja, dann, dann, äh,

00:44:27.670 --> 00:44:29.290
auch schön, äh, wenn man Audio

00:44:29.290 --> 00:44:31.330
aufnehmen möchte, also bei Fotos und so geht das ja eigentlich

00:44:31.330 --> 00:44:32.970
alles auch im Testbetrieb ganz gut,

00:44:32.970 --> 00:44:34.510
Audio nicht so sehr.

00:44:34.510 --> 00:44:37.150
Da hat man dann zum Beispiel das Problem,

00:44:37.230 --> 00:44:38.810
wenn man jetzt, und das, äh, ich,

00:44:38.810 --> 00:44:41.310
da die, die Geschichten, äh, die ich da

00:44:41.310 --> 00:44:42.890
gerade brauche, sind halt vor allen Dingen für mobile,

00:44:42.890 --> 00:44:44.110
mobile Endgeräte gedacht.

00:44:44.110 --> 00:44:47.310
Ähm, ist ja auch eigentlich schön, da hat man dann die ganzen Sensoren

00:44:47.310 --> 00:44:49.090
dabei, da hat man Mikrofone dabei und so,

00:44:49.090 --> 00:44:51.210
das, das funktioniert ja auch alles, kann, sollte man eigentlich auch Audio

00:44:51.210 --> 00:44:51.790
aufnehmen können.

00:44:51.790 --> 00:44:55.350
So, wenn man, äh, Fotos

00:44:55.350 --> 00:44:57.470
macht und so, funktioniert das auch alles, kann man halt einen Test-Server

00:44:57.470 --> 00:44:59.190
im lokalen Netz haben, äh,

00:44:59.190 --> 00:45:01.730
auf dem das läuft, also ich hab da so meinen Python-Entwicklungs-Server

00:45:01.730 --> 00:45:03.430
und, ähm,

00:45:03.430 --> 00:45:05.450
dann kann ich da Fotos hochladen und so, gar kein Problem,

00:45:05.450 --> 00:45:07.190
aber wenn man jetzt sagt, okay, schalt mal das

00:45:07.190 --> 00:45:08.530
Mikrofon ein, mach eine Audioaufnahme,

00:45:08.530 --> 00:45:11.450
dann sagt einem der Browser halt so,

00:45:11.450 --> 00:45:12.850
mh, nee,

00:45:12.850 --> 00:45:14.870
das ist eine unsafe origin,

00:45:14.870 --> 00:45:16.990
weil das ist nicht HTTPS,

00:45:16.990 --> 00:45:18.790
mhm,

00:45:18.790 --> 00:45:21.070
und deswegen, nee,

00:45:21.070 --> 00:45:22.230
keine Audioaufnahme.

00:45:22.230 --> 00:45:24.850
Kann man das irgendwie vorher umwandeln oder sowas, dass das

00:45:24.850 --> 00:45:26.950
über einen sicheren Kanal schickt, oder?

00:45:26.950 --> 00:45:29.090
Ja, der Browser sagt einfach, das macht er nicht.

00:45:29.090 --> 00:45:30.390
Hm, also,

00:45:30.390 --> 00:45:32.570
wartet, jetzt fahr ich jetzt nur oder machen das diesmal alle nicht?

00:45:32.570 --> 00:45:34.110
Das machen tatsächlich alle nicht. Ach, damn.

00:45:34.110 --> 00:45:37.150
Ich meine, ja, okay, vielleicht ist Audio irgendwie super viel privat

00:45:37.150 --> 00:45:39.050
als Film oder

00:45:39.050 --> 00:45:40.790
Foto, ich weiß es nicht.

00:45:40.790 --> 00:45:43.170
Äh, ja, ich meine, ich kann mir schon vorstellen,

00:45:43.170 --> 00:45:45.210
woran es liegt, ja, ich meine, das Problem ist halt da tatsächlich, dass jemand

00:45:45.210 --> 00:45:47.090
möglicherweise irgendwie ein Telefon,

00:45:47.090 --> 00:45:49.310
äh, irgendwie ein Meeting auf den Meeting-Tisch

00:45:49.310 --> 00:45:51.230
schlägt oder so und dann irgendwie Sachen mitschneidet und man

00:45:51.230 --> 00:45:52.010
nicht möchte, dass es,

00:45:52.010 --> 00:45:55.290
ehrlich gesagt, ich weiß nicht, kann man ja auch so machen, man kann es ja einfach

00:45:55.290 --> 00:45:56.590
irgendwie aufnehmen und später irgendwo hinschicken.

00:45:56.590 --> 00:45:59.230
Keine Ahnung, auf jeden Fall,

00:45:59.230 --> 00:45:59.690
äh,

00:45:59.690 --> 00:46:02.750
das wird ja auch funktionieren. Ja, oder man hat dann eben

00:46:02.750 --> 00:46:04.830
einen HTTPS-fähigen

00:46:04.830 --> 00:46:07.130
Server, an dem man das schickt, dann geht das ja alles auch,

00:46:07.130 --> 00:46:09.350
aber wenn es halt

00:46:09.350 --> 00:46:10.890
nicht HTTPS-fähig ist,

00:46:10.890 --> 00:46:12.390
ein lokaler Entwicklungs-Server geht halt nicht.

00:46:12.390 --> 00:46:15.010
Und den kann ich ja auch nicht so leicht irgendwie HTTPS-fähig machen,

00:46:15.010 --> 00:46:16.170
das geht ja einfach nicht. Also,

00:46:16.170 --> 00:46:19.110
dem kann ich natürlich ein Zertifikat verpassen und ich kann halt

00:46:19.110 --> 00:46:20.770
irgendwie so ein

00:46:20.770 --> 00:46:23.250
Reverse-HTTPS-Proxy

00:46:23.250 --> 00:46:24.350
davor schalten, das geht ja alles.

00:46:24.350 --> 00:46:27.050
Ein Reverse-HTTP-Proxy,

00:46:27.050 --> 00:46:29.030
was macht der? Der halt sozusagen

00:46:29.030 --> 00:46:30.970
das HTTPS terminiert, also

00:46:30.970 --> 00:46:33.150
HTTPS mit dem Telefon spricht und dann die Requests

00:46:33.150 --> 00:46:35.050
weiterleitet an meinen Entwicklungs-Server, das ging ja.

00:46:35.050 --> 00:46:36.870
Okay, okay. Das Problem ist nur, ja,

00:46:37.110 --> 00:46:39.090
mit einem validen Zertifikat geht das alles nicht so richtig.

00:46:39.090 --> 00:46:43.050
ja, ohne valides Zertifikat ist

00:46:43.050 --> 00:46:45.270
natürlich auch wieder nichts. Also, es ist einfach

00:46:45.270 --> 00:46:47.170
doof. Oder wir müssen nochmal vielleicht

00:46:47.170 --> 00:46:48.910
kurz erklären, was valide und was invalidere Karten sind,

00:46:48.910 --> 00:46:51.110
aber vielleicht in Short, kriegen wir das irgendwie in the Box?

00:46:51.110 --> 00:46:52.610
Ja, also man,

00:46:52.610 --> 00:46:55.190
ja, dieser ganze Teil von HTTPS ist auch so ein bisschen

00:46:55.190 --> 00:46:56.490
kaputt, aber, also,

00:46:56.490 --> 00:46:59.530
wir sind ja heute bei der Chaos-Weihnachts-Folge,

00:46:59.530 --> 00:47:01.350
liebe Leute, im Python-Podcast,

00:47:01.350 --> 00:47:02.330
wollte ich nur einmal erklären.

00:47:02.330 --> 00:47:04.950
Es ist halt so, dass ich im Grunde ja der,

00:47:04.950 --> 00:47:07.090
also man braucht eigentlich

00:47:07.090 --> 00:47:08.850
drei Dinge damit, was sicher ist. Also, wenn ich jetzt zum Beispiel

00:47:08.850 --> 00:47:10.510
mal das Beispiel nehme, Online-Banking,

00:47:10.510 --> 00:47:12.970
und ich mache

00:47:12.970 --> 00:47:14.450
jetzt Online-Banking auf einer Webseite,

00:47:14.450 --> 00:47:16.970
dann müssen drei Sachen garantiert

00:47:16.970 --> 00:47:18.970
sein, damit das wirklich sich sozusagen sicher ist.

00:47:18.970 --> 00:47:20.850
Und das ist halt...

00:47:20.850 --> 00:47:22.450
Dein Computer ist nicht infiltriert,

00:47:22.450 --> 00:47:24.610
die Verbindung ist nicht infiltriert, und der

00:47:24.610 --> 00:47:26.890
C-Computer ist nicht infiltriert. Ja, aber

00:47:26.890 --> 00:47:28.590
es gibt noch mehr Dinge. Noch mehr, mehr Teil.

00:47:28.590 --> 00:47:30.830
Drei Dinge, aber ich würde das jetzt

00:47:30.830 --> 00:47:32.990
eher auf so eine abstrakte

00:47:32.990 --> 00:47:34.370
Ebene heben wollen.

00:47:34.370 --> 00:47:35.930
Und zwar,

00:47:37.070 --> 00:47:38.130
brauchst du halt irgendwie

00:47:38.130 --> 00:47:40.270
Authentifizierung.

00:47:40.270 --> 00:47:43.090
Ja, also...

00:47:43.090 --> 00:47:44.830
Ich bin der richtige Nutzer, der da auch rein darf.

00:47:44.830 --> 00:47:46.690
Ich bin der richtige Nutzer, der da rein darf. Das macht man halt per

00:47:46.690 --> 00:47:48.950
Username und Passwort möglicherweise, oder Banken

00:47:48.950 --> 00:47:50.990
nennen das irgendwie PIN, machen komische Beschränkungen,

00:47:50.990 --> 00:47:52.510
aber im Grunde

00:47:52.510 --> 00:47:54.750
zeigt man damit der Bank, dass man derjenige ist,

00:47:54.750 --> 00:47:56.130
für den man sich ausgibt.

00:47:56.130 --> 00:47:59.090
Zumindest, dass ich derjenige bin,

00:47:59.090 --> 00:48:00.990
der die Benutzer an dem Passwort

00:48:00.990 --> 00:48:02.410
kennt, von dem her, dass ich mich ausgebe.

00:48:02.410 --> 00:48:04.650
Dann umgekehrt muss das aber auch

00:48:04.650 --> 00:48:06.950
gelten. Also, auch die Bank muss sich mir gegenüber

00:48:06.950 --> 00:48:08.470
ausweisen, weil

00:48:08.470 --> 00:48:10.950
ich möchte ja natürlich schon wissen,

00:48:10.950 --> 00:48:12.850
dass ich sozusagen mit der richtigen,

00:48:12.850 --> 00:48:14.750
mit der Bank rede

00:48:14.750 --> 00:48:17.030
und nicht mit irgendjemandem, der zwischen mir und der Bank sitzt,

00:48:17.030 --> 00:48:18.650
dann meine Überweisung nimmt,

00:48:18.650 --> 00:48:20.570
da irgendwie die IBAN auf seine ändert

00:48:20.570 --> 00:48:22.870
und dann halt die Überweisung mit der richtigen Bank macht.

00:48:22.870 --> 00:48:24.590
Tata! Das wäre irgendwie schlecht.

00:48:24.590 --> 00:48:26.650
Das heißt, die Bank muss sich auch mir gegenüber

00:48:26.650 --> 00:48:28.670
ausweisen und das macht sie üblicherweise

00:48:28.670 --> 00:48:29.470
mit einem Zertifikat.

00:48:29.470 --> 00:48:32.190
Und das ist halt sozusagen,

00:48:32.190 --> 00:48:34.870
wenn dann

00:48:34.870 --> 00:48:36.270
im Browser ist dann,

00:48:36.830 --> 00:48:38.570
also wenn das nicht funktioniert hat, dann gibt es

00:48:38.570 --> 00:48:40.630
so einen Polizisten mit so einem Knüppel, der da auftaucht

00:48:40.630 --> 00:48:42.150
und dann irgendwie so eine Browserwarnung

00:48:42.150 --> 00:48:44.590
oder man sieht manchmal so ein geschlossenes

00:48:44.590 --> 00:48:46.790
Symbol oder irgendwas Grünes oder irgendwie, wenn das

00:48:46.790 --> 00:48:48.750
besonders viel Geld bezahlt

00:48:48.750 --> 00:48:49.230
hat für den

00:48:49.230 --> 00:48:51.510
Certification Authority.

00:48:51.510 --> 00:48:54.590
Aber im Grunde, also wenn es keine

00:48:54.590 --> 00:48:55.690
Warnung gibt, dann war das okay.

00:48:55.690 --> 00:48:58.750
Diese ganze Struktur, wie das geprüft wird,

00:48:58.750 --> 00:49:00.410
welche Zertifikate okay sind und welche nicht,

00:49:00.410 --> 00:49:01.090
das ist auch alles

00:49:01.090 --> 00:49:04.810
nicht so toll. Aber inzwischen

00:49:04.810 --> 00:49:06.710
das geht auch alles. Man muss dafür auch

00:49:06.710 --> 00:49:08.790
kein Geld mehr bezahlen. Deswegen ist das auch für private

00:49:08.790 --> 00:49:10.810
Anwender und so eigentlich ganz gut.

00:49:10.810 --> 00:49:12.430
Da gibt es mit Let's Encrypt eine freie

00:49:12.430 --> 00:49:13.790
Certification Authority,

00:49:13.790 --> 00:49:16.790
bei der man sich Zertifikate besorgen kann

00:49:16.790 --> 00:49:18.850
für, wenn man jetzt eine Webseite betreibt,

00:49:18.850 --> 00:49:19.950
halt öffentliche Webseiten.

00:49:19.950 --> 00:49:22.650
Und das passiert alles automatisch. Man kann zum Beispiel

00:49:22.650 --> 00:49:24.130
einen Web-Server nehmen namens Caddy

00:49:24.130 --> 00:49:26.490
und wenn der halt auch der...

00:49:26.490 --> 00:49:27.710
Ein Python-Server?

00:49:27.710 --> 00:49:31.030
Nee, der ist in Go geschrieben, aber...

00:49:31.030 --> 00:49:31.730
Ach, das müsste.

00:49:31.730 --> 00:49:33.930
Ja, der

00:49:33.930 --> 00:49:36.590
macht sozusagen so ein Challenge-Response-Verfahren,

00:49:36.590 --> 00:49:38.650
mit Let's Encrypt, mit dieser Certification Authority,

00:49:38.650 --> 00:49:40.550
holt sich dann die

00:49:40.550 --> 00:49:42.450
entsprechenden Zertifikate. Das funktioniert alles automatisch, man muss sich

00:49:42.450 --> 00:49:44.190
um nichts mehr kümmern und das klappt einfach so.

00:49:44.190 --> 00:49:46.510
Das ist ein sehr viel besserer Zustand

00:49:46.510 --> 00:49:48.670
als früher, wo man das alles von Hand machen musste und

00:49:48.670 --> 00:49:50.590
mit Passphrases

00:49:50.590 --> 00:49:52.430
rumhantieren und OpenSSL-Kommandos

00:49:52.430 --> 00:49:54.150
und keine Ahnung, war alles ziemlich furchtbar.

00:49:54.150 --> 00:49:56.490
Aber also, die Aufgabe von

00:49:56.490 --> 00:49:58.210
einem Zertifikat ist einfach nur, sozusagen

00:49:58.210 --> 00:50:00.230
sicherzustellen für den Benutzer

00:50:00.230 --> 00:50:02.350
im Browser, dass da angezeigt wird, dass er mit der

00:50:02.350 --> 00:50:04.330
richtigen Institution redet.

00:50:04.330 --> 00:50:06.330
Also, das ist halt authentisch.

00:50:06.470 --> 00:50:08.350
Authentifizierung. Zweite Geschichte

00:50:08.350 --> 00:50:09.230
ist halt

00:50:09.230 --> 00:50:12.330
Autorisierung. Man muss halt zusehen, dass

00:50:12.330 --> 00:50:14.290
man das, was man machen möchte, auch wirklich machen darf.

00:50:14.290 --> 00:50:16.150
Also, dass halt

00:50:16.150 --> 00:50:18.410
keine Ahnung, ich als Benutzer

00:50:18.410 --> 00:50:22.610
von meinem Bankkonto überweisen darf.

00:50:22.610 --> 00:50:24.710
Du hast die Rechte, das durchzuführen,

00:50:24.710 --> 00:50:26.190
was du möchtest. Genau, aber

00:50:26.190 --> 00:50:28.910
ich sollte jetzt nicht irgendwie

00:50:28.910 --> 00:50:32.070
keine Ahnung,

00:50:32.070 --> 00:50:34.110
von anderen Leuten sozusagen

00:50:34.110 --> 00:50:36.430
Konten irgendwas überweisen dürfen.

00:50:36.430 --> 00:50:38.650
Oder so. Und das wäre halt Autorisierung.

00:50:38.650 --> 00:50:40.290
Ich wäre zwar authentifiziert, in dem Sinne,

00:50:40.290 --> 00:50:42.030
dass die Bank wüsste, wer ich bin,

00:50:42.030 --> 00:50:44.270
aber sie muss halt auch überprüfen,

00:50:44.270 --> 00:50:45.930
bin ich jetzt autorisiert von irgendeinem anderen Konto?

00:50:45.930 --> 00:50:48.690
Hast du die Privilegien, das zu tun, was du tun darfst?

00:50:48.690 --> 00:50:50.290
Da gab es ein schönes Beispiel

00:50:50.290 --> 00:50:52.230
mal bei der

00:50:52.230 --> 00:50:54.550
CeBIT. Also, die CeBIT, oh, die gibt es ja auch nicht mehr.

00:50:55.870 --> 00:51:03.230
in den 90ern war die Hochzeit der CeBIT eine Computermesse

00:51:03.230 --> 00:51:04.970
es war eine Computermesse

00:51:04.970 --> 00:51:09.590
in Hannover gibt es ein schönes YouTube-Video

00:51:09.590 --> 00:51:13.490
von Nixdorf, glaube ich, selbst

00:51:13.490 --> 00:51:18.190
der zu Beginn der CeBIT gesagt hat

00:51:18.190 --> 00:51:21.150
ich verstehe das gar nicht, was soll denn das, warum hat man das

00:51:21.150 --> 00:51:25.810
die Hannover Messe und die CeBIT auseinandergelegt, das ist doch eigentlich das gleiche

00:51:25.810 --> 00:51:29.030
ich kapiere das alles nicht, und das ist auch interessant

00:51:29.030 --> 00:51:33.670
vielleicht so ein Nixdorf ist dann ja irgendwie, glaube ich, auch für der CeBIT tatsächlich an einem Herzinfarkt gestorben

00:51:33.670 --> 00:51:37.550
und jetzt sagen alle so, ja okay, stimmt, warum haben wir das

00:51:37.550 --> 00:51:41.550
eigentlich mal auseinandergelegt, jetzt legen wir es wieder zusammen, also ist das alles

00:51:41.550 --> 00:51:43.830
noch so gekommen, wie es hätte von Anfang an vielleicht sein sollen

00:51:43.830 --> 00:51:47.350
naja, ich glaube, die CeBIT hat einfach

00:51:47.350 --> 00:51:51.610
nicht mehr funktioniert

00:51:51.610 --> 00:51:55.750
da war es so, dass

00:51:55.750 --> 00:51:58.130
jedenfalls habe ich das irgendwie mal gehört, ich habe keine Ahnung, ob das stimmt

00:51:58.130 --> 00:52:02.450
das IBM hatte da einen Stand mit so großen Maschinen, so Mainframes

00:52:02.450 --> 00:52:06.170
Z-Series, und

00:52:06.170 --> 00:52:11.350
da haben sie halt sozusagen

00:52:11.350 --> 00:52:15.270
einen Teil vergessen, also sie haben halt die Autorisierung überprüft, also da kamen halt irgendwie dann so

00:52:15.270 --> 00:52:19.450
Tieflader, so Sattelschlepper an, und haben halt die ganze Hardware eingepackt

00:52:19.450 --> 00:52:23.410
das waren irgendwie Leute, also auf den LKWs stand IBM drauf, die Leute, die reinkamen

00:52:23.410 --> 00:52:24.550
das waren alles so IBM

00:52:24.550 --> 00:52:24.870
äh

00:52:24.870 --> 00:52:25.690
äh

00:52:25.690 --> 00:52:29.550
die IBM-Arbeitsuniform ausgestattete Leute

00:52:29.550 --> 00:52:31.670
die hatten irgendwie die richtigen Formulare dabei

00:52:31.670 --> 00:52:33.370
und so, das hat alles gepasst

00:52:33.370 --> 00:52:35.990
ähm, haben dann den Kram mitgenommen

00:52:35.990 --> 00:52:37.850
und ähm

00:52:37.850 --> 00:52:39.550
ja, dann war er halt weg, und dann

00:52:39.550 --> 00:52:42.210
irgendwann kamen nochmal die IBM-Abbau-Leute

00:52:42.210 --> 00:52:45.450
die sich dann gewundert haben, dass nichts mehr zum Abbauen war

00:52:45.450 --> 00:52:46.530
ja, ja

00:52:46.530 --> 00:52:48.990
ja, immer die richtigen Anträge, immer die richtige

00:52:48.990 --> 00:52:52.090
das Problem da ist halt so, Autorisierung war richtig

00:52:52.090 --> 00:52:53.690
also sie haben halt das schon überprüft

00:52:53.690 --> 00:52:55.630
also es waren schon die Leute, die den Job hätten gemacht

00:52:55.630 --> 00:52:56.350
was sie machen sollen

00:52:56.350 --> 00:52:58.090
sie haben halt nur nicht authentifiziert

00:52:58.090 --> 00:52:59.610
das ist der Köpenick-Hack

00:52:59.610 --> 00:53:00.370
ja

00:53:00.370 --> 00:53:02.510
ja, man ist autorisiert, aber nicht

00:53:02.510 --> 00:53:04.310
aber nicht authentifiziert

00:53:04.310 --> 00:53:05.710
aber man muss dann wirklich beides haben

00:53:05.710 --> 00:53:07.290
also wenn eins davon fehlt, ist es halt schlecht

00:53:07.290 --> 00:53:08.850
und dann gibt es noch ein drittes, was auch sein muss

00:53:08.850 --> 00:53:09.590
Integrität

00:53:09.590 --> 00:53:10.090
ja, egal

00:53:10.090 --> 00:53:11.010
äh, ja, genau

00:53:11.010 --> 00:53:11.970
äh, genau

00:53:11.970 --> 00:53:13.110
Integrität ist auch wichtig

00:53:13.110 --> 00:53:15.270
weil ansonsten kann jemand das manipulieren

00:53:15.270 --> 00:53:16.430
also, sozusagen

00:53:16.430 --> 00:53:17.910
in die Mitte setzen und winken, oder

00:53:17.910 --> 00:53:19.630
ja, also dafür hat man halt Verschlüsselungen

00:53:19.630 --> 00:53:21.490
und dafür hat man halt, äh, auch

00:53:21.490 --> 00:53:23.390
sind auch die Zertifikate zuständig, damit man

00:53:23.390 --> 00:53:25.570
sozusagen weiß, dass man auch tatsächlich mit den Leuten redet

00:53:25.570 --> 00:53:28.050
die das vorgeben, äh, zu sein

00:53:28.050 --> 00:53:29.990
sagen, wenn man Integrität nicht hat

00:53:29.990 --> 00:53:32.070
dann funktioniert das auch alles nicht

00:53:32.070 --> 00:53:34.290
ja, es ist ja, äh, also wenn man jetzt nicht in einem Raum sitzt

00:53:34.290 --> 00:53:35.370
und sich gegenseitig angucken kann

00:53:35.370 --> 00:53:37.050
ist Integrität natürlich ein schwieriges Thema

00:53:37.050 --> 00:53:38.750
weil, ich kann mir vorstellen, ähm

00:53:38.750 --> 00:53:40.250
jemand kann immer so tun, als wäre er irgendjemand

00:53:40.250 --> 00:53:42.230
und wenn er sich dann authentifizieren kann

00:53:42.230 --> 00:53:43.850
und, äh, autorisiert wirkt

00:53:43.850 --> 00:53:44.550
mhm

00:53:44.550 --> 00:53:47.170
dann, ähm, kriegt er die Befugnis

00:53:47.170 --> 00:53:48.610
und gilt auch irgendwie als Integer

00:53:48.610 --> 00:53:50.390
also, viele Leute machen vielleicht den Fehler

00:53:50.390 --> 00:53:52.270
dass sie Integrität abhängig machen

00:53:52.270 --> 00:53:53.910
von Authentifizierung und Autorisierung

00:53:53.910 --> 00:53:55.550
genau, das war, ähm, äh, das ist nochmal

00:53:55.550 --> 00:53:56.470
eine getrennte Geschichte

00:53:56.470 --> 00:53:59.150
und, ähm, ja, wenn man diese drei Sachen

00:53:59.150 --> 00:54:01.190
so ganz abstrakt irgendwie auf die Reihe kriegt

00:54:01.190 --> 00:54:02.730
dann ist es halt okay

00:54:02.730 --> 00:54:03.990
und, ähm, ja

00:54:03.990 --> 00:54:06.110
wenn nicht, dann halt irgendwie nicht

00:54:06.110 --> 00:54:08.790
und, ähm, dafür sind halt Zertifikate da

00:54:08.790 --> 00:54:10.050
und im lokalen Netz ist es aber blöd

00:54:10.050 --> 00:54:12.170
da geht halt das ganze letzten Kripp-Zeugs halt nicht

00:54:12.170 --> 00:54:15.030
weil man dieses, äh, Web-Challenge-Response-Ding nicht machen kann

00:54:15.030 --> 00:54:16.930
Müsste ich selber schreiben

00:54:16.930 --> 00:54:18.710
äh, ne, also man kann auch

00:54:18.710 --> 00:54:20.490
natürlich kann man sich selber ein Zertifikat erstellen

00:54:20.490 --> 00:54:22.890
aber das Problem ist halt, dass man dann nicht

00:54:22.890 --> 00:54:23.690
äh, sozusagen

00:54:25.530 --> 00:54:28.090
äh, also offizielle Zertifikate

00:54:28.090 --> 00:54:29.350
sozusagen, die im Browser akzeptiert sind

00:54:29.350 --> 00:54:30.170
halt mit einem

00:54:30.170 --> 00:54:32.650
Root-Zertifikat unterschrieben

00:54:32.650 --> 00:54:34.470
einer entsprechenden Certification Authority

00:54:34.470 --> 00:54:36.090
Was ist ein Root-Zertifikat?

00:54:36.090 --> 00:54:39.750
Ja, das ist halt das, was im Browser hinterlegt ist

00:54:39.750 --> 00:54:40.330
sozusagen

00:54:40.330 --> 00:54:42.430
womit der Browser überprüfen kann

00:54:42.430 --> 00:54:45.750
ob die Signatur, die eine Certification Authority

00:54:45.750 --> 00:54:48.170
ein Zertifikat, äh, äh, äh

00:54:48.170 --> 00:54:49.850
mit dem sie ein Zertifikat unterschrieben hat

00:54:49.850 --> 00:54:51.090
ob die stimmt, ob die von der richtigen

00:54:51.090 --> 00:54:52.730
Certification Authority kommt

00:54:52.730 --> 00:54:55.290
Also das, äh, das Root liegt dann wo auf dem Server?

00:54:55.530 --> 00:54:59.170
Das Root-Zertifikat, äh, ist im Browser

00:54:59.170 --> 00:55:00.770
Die sind im Browser vorinstalliert

00:55:00.770 --> 00:55:03.570
Das heißt, die müssen bei den Browsern tatsächlich vorhanden sein

00:55:03.570 --> 00:55:05.390
und jeder Browser bekommt sein eigenes Zertifikat?

00:55:05.390 --> 00:55:07.410
Ne, Browser haben eine Liste von, äh, von

00:55:07.410 --> 00:55:09.370
von Root-Zertifikaten, denen sie sozusagen vertrauen

00:55:09.370 --> 00:55:09.870
Ah

00:55:09.870 --> 00:55:12.830
Und das sind halt einmal sowas wie VeriSign

00:55:12.830 --> 00:55:16.010
und da gibt's so diverse, äh, Firmen, die das halt irgendwie machen

00:55:16.010 --> 00:55:18.010
äh, Telekom ist auch dabei

00:55:18.010 --> 00:55:19.650
aber halt eben auch viele Provider

00:55:19.650 --> 00:55:21.890
äh, teilweise ziemlich seltsame Organisationen

00:55:21.890 --> 00:55:24.170
äh, es gab da auch Leute, die versucht haben, das da reinzuschmuggeln

00:55:24.170 --> 00:55:25.510
teilweise erfolgreich

00:55:25.510 --> 00:55:27.510
äh, äh, ich glaub da, äh

00:55:27.510 --> 00:55:29.510
der, äh

00:55:29.510 --> 00:55:31.090
ähm

00:55:31.090 --> 00:55:33.310
einer, das war super, der, vor allen Dingen ist man halt

00:55:33.310 --> 00:55:35.310
ich glaub, ein Provider ist irgendwie pleite gegangen

00:55:35.310 --> 00:55:37.310
hatte halt so ein Root-Zertifikat in den Browsern drin

00:55:37.310 --> 00:55:40.310
was natürlich ne, so, und dann, äh, hat versucht jemand den, äh

00:55:40.310 --> 00:55:42.310
und dann haben irgendwelche anderen Institutionen diesen

00:55:42.310 --> 00:55:44.310
pleite gegangen, einen Provider aufgekauft

00:55:44.310 --> 00:55:45.510
und dann lustige Sachen damit gemacht

00:55:45.510 --> 00:55:47.510
einer hat versucht in diesen, in die Browser reinzukommen

00:55:47.510 --> 00:55:49.510
auch sehr lustig, das war, das war ne, ne Spaßaktion

00:55:49.510 --> 00:55:51.510
aber ich glaub, der hat sich, äh, genannt

00:55:51.510 --> 00:55:53.510
äh, äh, irgendwie Honest Ali

00:55:53.510 --> 00:55:55.490
oder irgendwas, Gebrauchswarenhändler

00:55:55.490 --> 00:55:57.490
und wollte halt auch sein Zertifikat in den Browsern haben

00:55:57.490 --> 00:55:59.490
und, äh, das war

00:55:59.490 --> 00:56:01.490
oder Honest Ahmed

00:56:01.490 --> 00:56:03.490
ich weiß nicht mehr genau, es war, also, super lustig

00:56:03.490 --> 00:56:05.490
ähm, ja, äh

00:56:05.490 --> 00:56:07.490
in den Browsern sind teilweise komische Root-Zertifikate

00:56:07.490 --> 00:56:09.490
drin

00:56:09.490 --> 00:56:11.490
ähm

00:56:11.490 --> 00:56:13.490
ähm, aber, äh, das, also

00:56:13.490 --> 00:56:15.490
ja, das Problem ist halt, wie kriegt man

00:56:15.490 --> 00:56:17.490
sagen wir, der Browser muss halt irgendwo

00:56:17.490 --> 00:56:19.490
seinen, äh, seinen Vertrauen

00:56:19.490 --> 00:56:21.490
bootstrappen, und normalerweise passiert das ja eben so, dass

00:56:21.490 --> 00:56:23.490
die Sachen schon dabei sind, also wenn man einen Browser installiert

00:56:23.490 --> 00:56:25.470
sind die Dinger halt auch schon drin, und das heißt

00:56:25.470 --> 00:56:27.470
wenn, äh, äh, ein Browser

00:56:27.470 --> 00:56:29.470
ein unterschriebenes Zertifikat sieht, dann weiß er halt

00:56:29.470 --> 00:56:31.470
kann er anhand der Liste der

00:56:31.470 --> 00:56:33.470
vertrauenswürdigen Root-Zertifikate überprüfen, ob

00:56:33.470 --> 00:56:35.470
das jetzt eine, äh, äh

00:56:35.470 --> 00:56:37.470
äh, Root-CR unterschrieben hat, die er kennt

00:56:37.470 --> 00:56:39.470
oder nicht. Also bootstrappen heißt alles selber einstellen?

00:56:39.470 --> 00:56:41.470
Kannst das auch alles selber

00:56:41.470 --> 00:56:43.470
einstellen, aber das sind so... Aber das heißt bootstrappen?

00:56:43.470 --> 00:56:45.470
äh, bootstrappen heißt

00:56:45.470 --> 00:56:47.470
dass man, man braucht halt irgendwie

00:56:47.470 --> 00:56:49.470
äh, sozusagen, man muss

00:56:49.470 --> 00:56:51.470
äh, äh, die Unterschrift, die man jetzt unter

00:56:51.470 --> 00:56:53.470
einem Zertifikat, äh, äh, sieht

00:56:53.470 --> 00:56:55.450
ja, zurückführen auf irgendwas, das man kennt

00:56:55.450 --> 00:56:57.450
äh, sozusagen, also...

00:56:57.450 --> 00:56:59.450
Wie ist das denn, wenn man ja

00:56:59.450 --> 00:57:01.450
unterschrieben hat, dass die dann komische Ausgründe jetzt irgendwie auch...

00:57:01.450 --> 00:57:03.450
Und, und klar, also man könnte jetzt natürlich

00:57:03.450 --> 00:57:05.450
ein Zertifikat haben, das unterschrieben

00:57:05.450 --> 00:57:07.450
ist von der einen, und dann nochmal eine ganze Kette von

00:57:07.450 --> 00:57:09.450
von Unterschriften, aber die Frage ist halt

00:57:09.450 --> 00:57:11.450
irgendwie muss man letztendlich

00:57:11.450 --> 00:57:13.450
äh, äh, äh

00:57:13.450 --> 00:57:15.450
ja, eine haben, der man schon vertraut

00:57:15.450 --> 00:57:17.450
und die Art, wie man halt

00:57:17.450 --> 00:57:19.450
zu dieser sicheren, zu diesem sicheren

00:57:19.450 --> 00:57:21.450
Vertrauen kommt, ist das halt schon einfach mit dem Browser mit ausgeliefert

00:57:21.450 --> 00:57:23.450
wird.

00:57:23.450 --> 00:57:25.430
Was natürlich, ja, das muss man halt dann auch

00:57:25.430 --> 00:57:27.430
sicher sein, dass man den richtigen Browser bekommen hat,

00:57:27.430 --> 00:57:29.430
aber...

00:57:29.430 --> 00:57:31.430
Und dafür kann man ja eine Hashsumme prüfen, bei dem Runterladen

00:57:31.430 --> 00:57:33.430
von der Seite. Ja, genau.

00:57:33.430 --> 00:57:35.430
Ähm, ja.

00:57:35.430 --> 00:57:37.430
Äh, genau.

00:57:37.430 --> 00:57:39.430
Ja, alles nicht so einfach, alles nicht so einfach wird, also, ähm, ich möchte

00:57:39.430 --> 00:57:41.430
jetzt aber an der Stelle gleich kurz diese ganze Browser-Sache

00:57:41.430 --> 00:57:43.430
so ein bisschen abkürzen, weil wir sind ja immer noch

00:57:43.430 --> 00:57:45.430
im Python-Podcast, und ich glaube, wir haben noch nicht so viel über Python

00:57:45.430 --> 00:57:47.430
heute geredet. Ja, das ist richtig. Ähm,

00:57:47.430 --> 00:57:49.430
ja, also, äh, Audi und Browser haben ja irgendwie, äh,

00:57:49.430 --> 00:57:51.430
versucht zu erklären, und ein bisschen, was für Probleme der

00:57:51.430 --> 00:57:53.430
Safari die ganze Zeit macht, und, äh, was da alles nicht so

00:57:53.430 --> 00:57:55.410
funktioniert. Ähm, es sind aber noch einige andere

00:57:55.430 --> 00:57:57.430
Sachen, die haben nicht funktioniert, die, ähm, auch mit Python zu tun hatten.

00:57:57.430 --> 00:57:59.430
Ja. Ähm, wobei,

00:57:59.430 --> 00:58:01.430
na, vielleicht zuerst mal, äh, noch eine Sache, die,

00:58:01.430 --> 00:58:03.430
die dann tatsächlich funktioniert hat, also der, der,

00:58:03.430 --> 00:58:05.430
der Server-Teil quasi in, das ist dann

00:58:05.430 --> 00:58:07.430
auch tatsächlich Python. Ja.

00:58:07.430 --> 00:58:09.430
Django, ähm, das hat eigentlich

00:58:09.430 --> 00:58:11.430
alles ziemlich, ziemlich gut funktioniert.

00:58:11.430 --> 00:58:13.430
Ihr habt die letzte Folge von nicht gehört. Mhm.

00:58:13.430 --> 00:58:15.430
Und, ähm, ja, da, was ich da mache,

00:58:15.430 --> 00:58:17.430
äh, ist, äh, ähm,

00:58:17.430 --> 00:58:19.430
äh, ein Protokoll

00:58:19.430 --> 00:58:21.430
nennt sich, äh, GraphQL, das ist

00:58:21.430 --> 00:58:23.430
eine Geschichte, die hat Facebook irgendwann mal veröffentlicht.

00:58:23.430 --> 00:58:25.430
Das ist tatsächlich ziemlich

00:58:25.430 --> 00:58:27.430
nett. Also, das ist halt sozusagen eine Alternative zu,

00:58:27.430 --> 00:58:29.430
vielleicht erkennt man das, äh, wie so

00:58:29.430 --> 00:58:31.430
REST-basierte, äh, äh,

00:58:31.430 --> 00:58:33.430
äh, APIs. Also,

00:58:33.430 --> 00:58:35.430
zum Reden über JSON

00:58:35.430 --> 00:58:37.430
Files, oder?

00:58:37.430 --> 00:58:39.430
Ähm, ja, also, quasi,

00:58:39.430 --> 00:58:41.430
wenn man nicht ne, ne Webseite haben möchte,

00:58:41.430 --> 00:58:43.430
die man dem User präsentiert, wo halt,

00:58:43.430 --> 00:58:45.430
äh, die gelandet werden soll von dem Browser,

00:58:45.430 --> 00:58:47.430
sondern, wenn man jetzt irgendwie welche,

00:58:47.430 --> 00:58:49.430
irgendwelche Daten haben möchte von einer API,

00:58:49.430 --> 00:58:51.430
also, äh, heutzutage hat man

00:58:51.430 --> 00:58:53.430
oft einfach ne, ne Web-Applikation,

00:58:53.430 --> 00:58:55.430
die, äh, im Browser

00:58:55.430 --> 00:58:57.430
läuft, äh, die einem angezeigt

00:58:57.430 --> 00:58:59.430
wird, und von, von,

00:58:59.430 --> 00:59:01.430
vom Server selber kommen eigentlich nur noch so

00:59:01.430 --> 00:59:03.430
JSON-Daten. Ähm,

00:59:03.430 --> 00:59:05.430
und, ähm,

00:59:05.430 --> 00:59:07.430
die Art, wie man die vom Server holt, ist halt, man,

00:59:07.430 --> 00:59:09.430
man, äh, spricht halt

00:59:09.430 --> 00:59:11.430
irgendeinem Protokoll mit dem Server, ähm,

00:59:11.430 --> 00:59:13.430
immer noch sehr beliebt,

00:59:13.430 --> 00:59:15.430
und, äh, ich, es ist halt, äh,

00:59:15.430 --> 00:59:17.430
äh, REST

00:59:17.430 --> 00:59:19.430
an der Stelle, ähm,

00:59:19.430 --> 00:59:21.430
das ist halt so, ähm,

00:59:21.430 --> 00:59:23.430
ja, wofür steht REST eigentlich?

00:59:23.430 --> 00:59:25.430
Das ist ein Rahmen, um

00:59:25.430 --> 00:59:27.430
JSON irgendwie zu verstehen, oder?

00:59:27.430 --> 00:59:29.430
Ne, das hat gar nicht, gar nicht unbedingt was mit JSON zu tun,

00:59:29.430 --> 00:59:31.430
das kann halt auch ein anderes Format sein, äh,

00:59:31.430 --> 00:59:33.430
das ist, ähm,

00:59:33.430 --> 00:59:35.430
äh,

00:59:35.430 --> 00:59:37.430
äh, Representational State

00:59:37.430 --> 00:59:39.430
Transfer natürlich. Ja. Ja, ja, klar.

00:59:39.430 --> 00:59:41.430
Ähm, also, man kann das auch,

00:59:41.430 --> 00:59:43.430
äh, man kann auch REST, äh, äh,

00:59:43.430 --> 00:59:45.430
äh, Protokoll, oder, ähm,

00:59:45.430 --> 00:59:47.430
eine REST-API haben, wo man dann XML zurückbekommt,

00:59:47.430 --> 00:59:49.430
oder halt irgendwas anderes,

00:59:49.430 --> 00:59:51.430
äh, äh, so, äh,

00:59:51.430 --> 00:59:53.430
irgendwie,

00:59:53.430 --> 00:59:55.430
hm, na, wie heißt das, so eine Art

00:59:55.430 --> 00:59:57.430
ähm, binäres JSON-Message-Pack,

00:59:57.430 --> 00:59:59.430
oder, äh, äh, äh,

00:59:59.430 --> 01:00:01.430
wie der JSON-Formate, äh,

01:00:01.430 --> 01:00:03.430
äh, JSON wird meistens verwendet, aber

01:00:03.430 --> 01:00:05.430
ist nicht unbedingt nötig, also,

01:00:05.430 --> 01:00:07.430
zum Beispiel bei, wenn man jetzt Django REST-Framework als, äh,

01:00:07.430 --> 01:00:09.430
äh, Modul

01:00:09.430 --> 01:00:11.430
oder Third-Party-Django-App verwendet,

01:00:11.430 --> 01:00:13.430
die, äh, den REST-API

01:00:13.430 --> 01:00:15.430
teilen macht, dann kann man

01:00:15.430 --> 01:00:17.430
hinten an die Request einfach Fragezeichen-Format

01:00:17.430 --> 01:00:19.430
gleich irgendwas dranhängen, wie zum Beispiel

01:00:19.430 --> 01:00:21.430
JSON oder XML, und dann kriegt man halt XML statt

01:00:21.430 --> 01:00:23.430
JSON zurück. Ähm,

01:00:23.430 --> 01:00:25.430
also das ist, äh,

01:00:25.430 --> 01:00:27.430
das ist eigentlich unabhängig von dem Format, das entscheidende

01:00:27.430 --> 01:00:29.430
bei REST ist eigentlich, dass man

01:00:29.430 --> 01:00:31.430
die HTTP-Werben benutzt,

01:00:31.430 --> 01:00:33.430
äh, um mit dem Server zu kommunizieren.

01:00:33.430 --> 01:00:35.430
Also, dass man, wenn man jetzt, äh,

01:00:35.430 --> 01:00:37.430
äh, Dinge haben möchte,

01:00:37.430 --> 01:00:39.430
also eine Liste von Sachen haben möchte,

01:00:39.430 --> 01:00:41.430
äh, und das auf dem Server

01:00:41.430 --> 01:00:43.430
an dem State des Servers nichts ändert, dann verwenden

01:00:43.430 --> 01:00:45.430
wir halt ein GET-Request. Wenn man

01:00:45.430 --> 01:00:47.430
Requests macht, die an dem State irgendwas verändern,

01:00:47.430 --> 01:00:49.430
dann muss man halt POST oder PUT

01:00:49.430 --> 01:00:51.430
oder PATCH-Requests verwenden,

01:00:51.430 --> 01:00:53.430
ähm, und

01:00:53.430 --> 01:00:55.430
wenn man irgendwas löschen möchte, dann sendet man halt

01:00:55.430 --> 01:00:57.430
einen DELETE-Request.

01:00:57.430 --> 01:00:59.430
Ja, die meisten Leute kennen ja wahrscheinlich nur GET und

01:00:59.430 --> 01:01:01.430
POST, ja, aber es gibt halt dann noch

01:01:01.430 --> 01:01:03.430
eine Menge andere Dinge. Und, ähm,

01:01:03.430 --> 01:01:05.430
ja, äh,

01:01:05.430 --> 01:01:07.430
äh,

01:01:07.430 --> 01:01:09.430
äh, die, diese Sachen benutzt man im Grunde,

01:01:09.430 --> 01:01:11.430
um, um halt mit dem, mit dem Server zu kommunizieren,

01:01:11.430 --> 01:01:13.430
und man benutzt halt auch die

01:01:13.430 --> 01:01:15.430
HTTP-Status-Codes, ja, das heißt,

01:01:15.430 --> 01:01:17.430
man, äh, wenn, wenn

01:01:17.430 --> 01:01:19.430
einer nicht authentifiziert ist, kriegt man 401 zurück,

01:01:19.430 --> 01:01:21.430
wenn man nicht autorisiert ist, kriegt man 403 zurück,

01:01:21.430 --> 01:01:23.430
äh, wenn man in den

01:01:23.430 --> 01:01:25.430
T-Kanal ist, kriegt man 407 zurück, äh,

01:01:25.430 --> 01:01:27.430
äh,

01:01:27.430 --> 01:01:29.430
das gibt, glaub ich, oder 409,

01:01:29.430 --> 01:01:31.430
15, ich weiß es nicht genau, es ist halt irgendwie

01:01:31.430 --> 01:01:33.430
eine Fehlermeldung, heißt es eigentlich T-POD. Es gibt manchmal

01:01:33.430 --> 01:01:35.430
so, ähm,

01:01:35.430 --> 01:01:37.430
ja, ja,

01:01:37.430 --> 01:01:39.430
402 fällt mir noch ein, ja.

01:01:39.430 --> 01:01:41.430
Ja, den kenn ich gar nicht, was, was macht 402?

01:01:41.430 --> 01:01:43.430
Payment Required. Ah, ja, genau.

01:01:43.430 --> 01:01:45.430
Also es gibt da diverse, äh,

01:01:45.430 --> 01:01:47.430
Wurde nie benutzt, aber, ähm, ich hab ein T-Shirt, hab ich mir jetzt draufgeschrieben.

01:01:47.430 --> 01:01:49.430
Das ist eine gute Idee.

01:01:49.430 --> 01:01:51.430
Ja, ähm,

01:01:51.430 --> 01:01:53.430
ja,

01:01:53.430 --> 01:01:55.430
und das ist im Grunde, äh, das ist im Grunde

01:01:55.430 --> 01:01:57.430
Rest, das ist auch eine sehr schöne Sache,

01:01:57.430 --> 01:01:59.430
äh, ein bisschen ein Nachteil bei Rest ist

01:01:59.430 --> 01:02:01.430
halt, dass, ähm,

01:02:01.430 --> 01:02:03.430
man manchmal so das Problem kriegt,

01:02:03.430 --> 01:02:05.430
wenn man jetzt so genestete

01:02:05.430 --> 01:02:07.430
Daten, also Datenstrukturen, die so ineinander

01:02:07.430 --> 01:02:09.430
verschachtelt sind, abfragen möchte, äh,

01:02:09.430 --> 01:02:11.430
dass, dass es dann manchmal

01:02:11.430 --> 01:02:13.430
etwas schwierig wird und man oft dann halt mehrere

01:02:13.430 --> 01:02:15.430
Requests braucht, ähm,

01:02:15.430 --> 01:02:17.430
und, also wenn man

01:02:17.430 --> 01:02:19.430
jetzt, weil, weil oft

01:02:19.430 --> 01:02:21.430
so diese Resta-APIs direkt auf Tabellen mappen,

01:02:21.430 --> 01:02:23.430
die halt irgendwie in der Datenbank sind,

01:02:23.430 --> 01:02:25.430
äh, das macht das Ganze manchmal so ein bisschen

01:02:25.430 --> 01:02:27.430
schwierig und dann kann es dazu führen, dass man halt sehr viele

01:02:27.430 --> 01:02:29.430
Requests rausschicken muss zum Beispiel.

01:02:29.430 --> 01:02:31.430
Da muss man sich immer die, die Deep Links dann besorgen

01:02:31.430 --> 01:02:33.430
für den neuen Request, damit dann die Tabelle vollständig wird,

01:02:33.430 --> 01:02:35.430
die man selber haben will.

01:02:35.430 --> 01:02:37.430
Ja, oder man hat halt in der Tabelle jetzt nur eine ID,

01:02:37.430 --> 01:02:39.430
eine Referenz auf eine andere Tabelle drinstehen sozusagen,

01:02:39.430 --> 01:02:41.430
man möchte aber eigentlich die gesamten Daten haben,

01:02:41.430 --> 01:02:43.430
und dann, dann muss man sich erst alle IDs

01:02:43.430 --> 01:02:45.430
holen, dann schickt man die IDs wieder zum Server und holt

01:02:45.430 --> 01:02:47.430
die neuen Objekte, was dann ein bisschen doof ist.

01:02:47.430 --> 01:02:49.430
Man kann das auch so machen, dass es halt, ähm,

01:02:49.430 --> 01:02:51.430
ähm, dass man direkt

01:02:51.430 --> 01:02:53.430
die Daten bekommt, die man haben möchte,

01:02:53.430 --> 01:02:55.430
aber dann muss man auf dem Server, äh, das halt auch

01:02:55.430 --> 01:02:57.430
so hinbauen, dass das so geht.

01:02:57.430 --> 01:02:59.430
Mhm. Und vor allen Dingen

01:02:59.430 --> 01:03:01.430
ist es halt unveränderlich, man kriegt halt immer

01:03:01.430 --> 01:03:03.430
das gleiche Ergebnis, unabhängig davon,

01:03:03.430 --> 01:03:05.430
ob man jetzt das braucht oder nicht. Man kann das jetzt,

01:03:05.430 --> 01:03:07.430
zum Beispiel, wenn man jetzt in den Server reinbaut, okay, du kriegst

01:03:07.430 --> 01:03:09.430
jetzt nicht nur irgendwie

01:03:09.430 --> 01:03:11.430
die Liste der IDs, sondern du kriegst halt direkt dann

01:03:11.430 --> 01:03:13.430
schon genestet da drin die

01:03:13.430 --> 01:03:15.430
Datenstruktur, die du eigentlich haben möchtest.

01:03:15.430 --> 01:03:17.430
Nehmen wir an, du hältst gerne eine Liste

01:03:17.430 --> 01:03:19.430
der, äh, der, der

01:03:19.430 --> 01:03:21.430
von, ähm, aller

01:03:21.430 --> 01:03:23.430
Alben, die du hast, und, ähm,

01:03:23.430 --> 01:03:25.430
jetzt hast du aber nicht nur die Track IDs da drin, sondern

01:03:25.430 --> 01:03:27.430
halt auch Interpret und, äh,

01:03:27.430 --> 01:03:29.430
Dauer oder sowas. Ja, der Vorteil, den

01:03:29.430 --> 01:03:31.430
das natürlich hat, wenn man die nicht direkt alle mitcheckt, ist,

01:03:31.430 --> 01:03:33.430
dass natürlich die Datenmenge, die man bekommt, nicht so riesengroß ist.

01:03:33.430 --> 01:03:35.430
Ja, aber jetzt, nehmen wir an, du hast einen kleinen, zwei

01:03:35.430 --> 01:03:37.430
Ansichten. Eine, äh,

01:03:37.430 --> 01:03:39.430
zeigt halt nur, welche Alben es gibt,

01:03:39.430 --> 01:03:41.430
und eine zeigt halt auch die Interpreten

01:03:41.430 --> 01:03:43.430
und die Dauer, jetzt nehmen wir an,

01:03:43.430 --> 01:03:45.430
an.

01:03:45.430 --> 01:03:47.430
Ja, jetzt kannst du, da hast du mehrere

01:03:47.430 --> 01:03:49.430
Möglichkeiten, das zu lösen. Du kannst jetzt zwei unterschiedliche

01:03:49.430 --> 01:03:51.430
API Endpoints, also Endpunkte,

01:03:51.430 --> 01:03:53.430
anfragen, so, wo du halt einmal das ohne die Tracks

01:03:53.430 --> 01:03:55.430
kriegst und einmal mit. Dann hast du aber das

01:03:55.430 --> 01:03:57.430
blöde, da hast du zwei Endpunkte, musst halt zweimal irgendwie

01:03:57.430 --> 01:03:59.430
den Endpunkt implementieren.

01:03:59.430 --> 01:04:01.430
Du kannst so machen, du schickst halt immer alle Daten,

01:04:01.430 --> 01:04:03.430
das heißt, Alben inklusive Tracks,

01:04:03.430 --> 01:04:05.430
aber dann schickst du einmal zu viel Daten,

01:04:05.430 --> 01:04:07.430
wenn du die Tracks gar nicht anzeigen möchtest.

01:04:07.430 --> 01:04:09.430
Oder, äh,

01:04:09.430 --> 01:04:11.430
du schickst halt nur die Liste

01:04:11.430 --> 01:04:13.430
der Alben mit den IDs für die Tracks,

01:04:13.430 --> 01:04:15.430
und dann musst du halt einen zweiten Request machen,

01:04:15.430 --> 01:04:17.430
um die, äh, Tracks zu bekommen,

01:04:17.430 --> 01:04:19.430
oder die Metadaten für die Tracks.

01:04:19.430 --> 01:04:21.430
Ähm,

01:04:21.430 --> 01:04:23.430
und dann hast du das Problem, dann überträgst du

01:04:23.430 --> 01:04:25.430
zwar nicht zu viel Daten, aber dann hast du halt

01:04:25.430 --> 01:04:27.430
Latenzen, die sich

01:04:27.430 --> 01:04:29.430
aufaddieren, weil du immer noch mal

01:04:29.430 --> 01:04:31.430
einen Roundtrip hast pro, äh,

01:04:31.430 --> 01:04:33.430
Voralbum. Ja, oder

01:04:33.430 --> 01:04:35.430
Du kannst auch vielleicht alle Gleiste nicht kriegen

01:04:35.430 --> 01:04:37.430
oder so, aber du hast auf jeden Fall noch mal einen, und es kann halt

01:04:37.430 --> 01:04:39.430
dann auch viel komplizierter werden, wenn du jetzt noch mehr

01:04:39.430 --> 01:04:41.430
verschaffelte Geschichten hast. Und GraphQL kann das.

01:04:41.430 --> 01:04:43.430
Und GraphQL löst dieses

01:04:43.430 --> 01:04:45.430
Problem. Ja, tatsächlich ziemlich

01:04:45.430 --> 01:04:47.430
elegant, und, ähm, da

01:04:47.430 --> 01:04:49.430
kann man halt sozusagen auf der kleinen Seite bestimmen,

01:04:49.430 --> 01:04:51.430
was man gerne hätte. Man schreibt halt, ja,

01:04:51.430 --> 01:04:53.430
und das ist halt der große Unterschied im Grunde,

01:04:53.430 --> 01:04:55.430
äh, bei normalen REST-Apps, äh,

01:04:55.430 --> 01:04:57.430
BI's, äh,

01:04:57.430 --> 01:04:59.430
kriegst du halt immer das Gleiche, ja. Du kannst halt

01:04:59.430 --> 01:05:01.430
in den Request nicht reinschreiben, was du gerne hättest,

01:05:01.430 --> 01:05:03.430
sondern du kriegst halt das, was der

01:05:03.430 --> 01:05:05.430
Server vorsieht, was du halt auf

01:05:05.430 --> 01:05:07.430
diesem Endpunkt halt bekommst an Daten.

01:05:07.430 --> 01:05:09.430
Und bei GraphQL kannst du in die Query

01:05:09.430 --> 01:05:11.430
reinschreiben, ich hätte gerne diese Spalten, und

01:05:11.430 --> 01:05:13.430
ich hätte gerne, das soll jetzt genestet sein, und dann

01:05:13.430 --> 01:05:15.430
noch diese Relation mitverfolgen,

01:05:15.430 --> 01:05:17.430
und dann da die Spalten aus der Tabelle und so.

01:05:17.430 --> 01:05:19.430
Macht natürlich die Query ein bisschen länger

01:05:19.430 --> 01:05:21.430
und komplexer. Macht die Query komplexer, und, ähm,

01:05:21.430 --> 01:05:23.430
ja, ist natürlich auch auf der

01:05:23.430 --> 01:05:25.430
Serverseite so ein bisschen schwieriger, weil man muss dann auch

01:05:25.430 --> 01:05:27.430
passen, dass man nicht sich da so

01:05:27.430 --> 01:05:29.430
durch die ganze Datenbank hangeln kann, wenn man da jetzt irgendwie

01:05:29.430 --> 01:05:31.430
die ganzen Relationen auflöst.

01:05:31.430 --> 01:05:33.430
Ähm, aber

01:05:33.430 --> 01:05:35.430
es ist halt tatsächlich auch oft sehr praktisch.

01:05:35.430 --> 01:05:37.430
Und, ähm,

01:05:37.430 --> 01:05:39.430
ja, was man halt auch, also das ist halt ein, äh,

01:05:39.430 --> 01:05:41.430
das Projekt hat, äh,

01:05:41.430 --> 01:05:43.430
das Protokoll hat Facebook irgendwann mal, glaube ich,

01:05:43.430 --> 01:05:45.430
intern entwickelt, und dann sind sie irgendwann, dann haben sie

01:05:45.430 --> 01:05:47.430
es zum öffentlichen Standard gemacht,

01:05:47.430 --> 01:05:49.430
äh, weil sie halt das Problem haben mit ihrer App,

01:05:49.430 --> 01:05:51.430
dass sie ganz viele Abfragen machen,

01:05:51.430 --> 01:05:53.430
und, ähm, dann halt

01:05:53.430 --> 01:05:55.430
die gleichen Daten an unterschiedlichen Stellen brauchen, aber

01:05:55.430 --> 01:05:57.430
dann hat man halt nicht genau die gleichen Daten, und

01:05:57.430 --> 01:05:59.430
das ist halt alles, irgendwann haben sie gesagt, so mit

01:05:59.430 --> 01:06:01.430
dem Rest kommen wir hier nicht weiter, und dann haben sie sich was Eigenes überlegt,

01:06:01.430 --> 01:06:03.430
was sozusagen ihre, äh,

01:06:03.430 --> 01:06:05.430
Probleme da adressiert,

01:06:05.430 --> 01:06:07.430
und, ähm, ja, GraphQL kann auch andere

01:06:07.430 --> 01:06:09.430
coole Sachen, da kann man halt solche Sachen machen wie,

01:06:09.430 --> 01:06:11.430
äh, man kann diverse

01:06:11.430 --> 01:06:13.430
Statements, äh, Queries zusammenfassen,

01:06:13.430 --> 01:06:15.430
ja, man nimmt halt,

01:06:15.430 --> 01:06:17.430
das heißt, man macht so zum Beispiel solche Sachen wie,

01:06:17.430 --> 01:06:19.430
alle 10 Millisekunden sendet man halt

01:06:19.430 --> 01:06:21.430
irgendwie eine Query raus,

01:06:21.430 --> 01:06:23.430
ja, das heißt, man sendet nicht jedes Mal, wenn eine Query gestellt wird,

01:06:23.430 --> 01:06:25.430
im Client, äh, irgendwie eine Anfrage raus, sondern

01:06:25.430 --> 01:06:27.430
man sammelt alle Queries, dann packt man die

01:06:27.430 --> 01:06:29.430
in eine große Query,

01:06:29.430 --> 01:06:31.430
und, äh, die man dann rausschickt,

01:06:31.430 --> 01:06:33.430
und kriegt dann die Antwort, und dann kann man halt dafür sorgen, dass, äh,

01:06:33.430 --> 01:06:35.430
zum Beispiel nur, äh,

01:06:35.430 --> 01:06:37.430
in bestimmten Intervallen irgendwie Sachen in den Server geschickt

01:06:37.430 --> 01:06:39.430
werden, ja, was halt dann die Anzahl der Requests auf den Server

01:06:39.430 --> 01:06:41.430
reduziert und so, also da sind einige

01:06:41.430 --> 01:06:43.430
sehr, sehr nette Optimierungen drin,

01:06:43.430 --> 01:06:45.430
und, ähm, für

01:06:45.430 --> 01:06:47.430
Django gibt es, äh, eine Bibliothek,

01:06:47.430 --> 01:06:49.430
die nennt sich Graphene,

01:06:49.430 --> 01:06:51.430
äh, die man da verwenden kann,

01:06:51.430 --> 01:06:53.430
und das ist, das ist tatsächlich ziemlich,

01:06:53.430 --> 01:06:55.430
ziemlich nett, ähm,

01:06:55.430 --> 01:06:57.430
äh, und dann hat man sozusagen

01:06:57.430 --> 01:06:59.430
GraphQL, äh,

01:06:59.430 --> 01:07:01.430
Protokoll-Unterstützung, äh, auf,

01:07:01.430 --> 01:07:03.430
auf Django-Seite, und, ähm,

01:07:03.430 --> 01:07:05.430
da gibt es noch ein sehr schönes Frontend,

01:07:05.430 --> 01:07:07.430
das man da auch verwenden kann, das nennt sich GraphiQL,

01:07:07.430 --> 01:07:09.430
GraphiQL, ja,

01:07:09.430 --> 01:07:11.430
ähm, das ist sozusagen so ein

01:07:11.430 --> 01:07:13.430
grafischer Browser für, und dann kann man dann halt, das macht

01:07:13.430 --> 01:07:15.430
auch, äh, so, ähm,

01:07:15.430 --> 01:07:17.430
äh,

01:07:17.430 --> 01:07:19.430
TabCompletion auf den Queries

01:07:19.430 --> 01:07:21.430
und so,

01:07:21.430 --> 01:07:23.430
äh, EQL, halt, äh,

01:07:23.430 --> 01:07:25.430
mit Q,

01:07:25.430 --> 01:07:27.430
äh, ja, naja, egal, genau,

01:07:27.430 --> 01:07:29.430
ähm, es ist halt dieses, dieses,

01:07:29.430 --> 01:07:31.430
dieses Frontend, ähm,

01:07:31.430 --> 01:07:33.430
und, ähm, genau,

01:07:33.430 --> 01:07:35.430
ich hab eigentlich so die letzten Jahre meistens

01:07:35.430 --> 01:07:37.430
REST gemacht, aber, ähm,

01:07:37.430 --> 01:07:39.430
äh, und GraphQL

01:07:39.430 --> 01:07:41.430
mach ich jetzt noch nicht so lange, aber ich,

01:07:41.430 --> 01:07:43.430
ich muss sagen, es ist doch sehr, sehr nett.

01:07:43.430 --> 01:07:45.430
Was teilweise so ein bisschen ätzend ist,

01:07:45.430 --> 01:07:47.430
ja, also es macht es halt alles komplizierter, wenn's mehr,

01:07:47.430 --> 01:07:49.430
es ist halt mächtiger oft, und das

01:07:49.430 --> 01:07:51.430
macht es halt auch kompliziert, was auch

01:07:51.430 --> 01:07:53.430
komisch ist für jemanden, der aus dem REST,

01:07:53.430 --> 01:07:55.430
äh, äh, aus der REST-Welt kommt,

01:07:55.430 --> 01:07:57.430
sozusagen, ist auch, dass HTTP-Werben

01:07:57.430 --> 01:07:59.430
keine große Rolle mehr spielen,

01:07:59.430 --> 01:08:01.430
das heißt, äh, man schickt immer Posts

01:08:01.430 --> 01:08:03.430
an den Server, und man bekommt

01:08:03.430 --> 01:08:05.430
eigentlich fast immer 200 zurück, und dann,

01:08:05.430 --> 01:08:07.430
das war am Anfang immer so beim Debuggen, wenn irgendwas

01:08:07.430 --> 01:08:09.430
nicht funktioniert hat, dann guck ich, guck ich so in den

01:08:09.430 --> 01:08:11.430
Network-Tab auf dem, im Browser,

01:08:11.430 --> 01:08:13.430
und dann halt so, kommt 200 vom, vom, vom

01:08:13.430 --> 01:08:15.430
Server zurück, und ich denk mir, da kommen ja auch 200 zurück,

01:08:15.430 --> 01:08:17.430
warum ist denn das ein Fehler? Dann so, ja,

01:08:17.430 --> 01:08:19.430
okay, muss man die Antwort

01:08:19.430 --> 01:08:21.430
erst aufmachen, dann steht da drin so, ja,

01:08:21.430 --> 01:08:23.430
also hier ist dann 200, und da,

01:08:23.430 --> 01:08:25.430
hier ist der Body deiner Response, und da steht da drin, ja,

01:08:25.430 --> 01:08:27.430
jetzt ist halt viel da passiert, ja, also, wenn man aufs REST

01:08:27.430 --> 01:08:29.430
kommt, dann rechnet man nicht damit, weil da ist halt ein Fehler,

01:08:29.430 --> 01:08:31.430
es ist halt schon was anderes, es ist halt nicht 200,

01:08:31.430 --> 01:08:33.430
ähm, ja,

01:08:33.430 --> 01:08:35.430
aber, wenn man sich dann dran

01:08:35.430 --> 01:08:37.430
mal so ein bisschen gewöhnt hat, dann, äh, ist das

01:08:37.430 --> 01:08:39.430
auch nicht mehr so schlimm,

01:08:39.430 --> 01:08:41.430
und da gibt's auch tolle, äh,

01:08:41.430 --> 01:08:43.430
Debug-Geschichten für den Browser,

01:08:43.430 --> 01:08:45.430
wo man das dann halt auch wieder ordentlich sehen kann,

01:08:45.430 --> 01:08:47.430
äh, da muss man sich allerdings dann

01:08:47.430 --> 01:08:49.430
als Browser-Extension, äh, installieren, also zum Beispiel

01:08:49.430 --> 01:08:51.430
für, ich verwende als Client Apollo,

01:08:51.430 --> 01:08:53.430
der Apollo-Client, und

01:08:53.430 --> 01:08:55.430
da gibt's dann so eine Extension für, für

01:08:55.430 --> 01:08:57.430
Chrom, ähm,

01:08:57.430 --> 01:08:59.430
der, es gibt einen Client,

01:08:59.430 --> 01:09:01.430
der, der, von, von, von Facebook selber,

01:09:01.430 --> 01:09:03.430
Relay-Client,

01:09:03.430 --> 01:09:05.430
der ist, äh,

01:09:05.430 --> 01:09:07.430
ja, den hab ich nicht ausprobiert, der ist relativ

01:09:07.430 --> 01:09:09.430
vollständig, soll sehr mächtig sein,

01:09:09.430 --> 01:09:11.430
aber, äh, es halt auch gilt

01:09:11.430 --> 01:09:13.430
auch als nicht so ganz einfach zu bedienen, und ich

01:09:13.430 --> 01:09:15.430
fand, ehrlich gesagt, Apollo schon ziemlich schwer zu bedienen.

01:09:15.430 --> 01:09:17.430
Also, wenn der Jochen es sagt, dann

01:09:17.430 --> 01:09:19.430
kriege ich den Finger auf den Tisch. Nein, nein, nein,

01:09:19.430 --> 01:09:21.430
das Ding ist eigentlich gar nicht schlecht, es kann wirklich coole Sachen, aber,

01:09:21.430 --> 01:09:23.430
das ist schon so,

01:09:23.430 --> 01:09:25.430
äh, so wirklich,

01:09:25.430 --> 01:09:27.430
also, es kann, kann auch daran liegen, dass ich halt mit

01:09:27.430 --> 01:09:29.430
JavaScript noch nicht so richtig super viel Erfahrung hab,

01:09:29.430 --> 01:09:31.430
aber die API davon fand ich schon

01:09:31.430 --> 01:09:33.430
teilweise, boah, so...

01:09:33.430 --> 01:09:35.430
Schandwürdig. Nö, das ist

01:09:35.430 --> 01:09:37.430
einfach, einfach schwierig, aber was halt auch damit

01:09:37.430 --> 01:09:39.430
zusammenhängt, dass es 'ne komplexe Geschichte ist.

01:09:39.430 --> 01:09:41.430
Also, es gecached halt auch ganz viel

01:09:41.430 --> 01:09:43.430
intern, und wenn man jetzt, äh,

01:09:43.430 --> 01:09:45.430
irgendwie, zum Beispiel, wenn der User irgendwie einen neuen,

01:09:45.430 --> 01:09:47.430
äh, neue Entität von

01:09:47.430 --> 01:09:49.430
irgendwas erzeugt, dann muss man ja dafür

01:09:49.430 --> 01:09:51.430
sorgen, dass der Cache geupdatet wird, jetzt kann man einfach

01:09:51.430 --> 01:09:53.430
dieses Query nochmal ausführen, aber dann hat man ja

01:09:53.430 --> 01:09:55.430
Latenz im, im Frontend, das will man auch nicht,

01:09:55.430 --> 01:09:57.430
und dann kann man, äh, quasi

01:09:57.430 --> 01:09:59.430
dem Cache sagen, also hier, äh,

01:09:59.430 --> 01:10:01.430
ich bin mal optimistisch,

01:10:01.430 --> 01:10:03.430
das ist das Ergebnis, was wahrscheinlich

01:10:03.430 --> 01:10:05.430
demnächst vom Server zurückkommt,

01:10:05.430 --> 01:10:07.430
zeigt das dem User doch schon mal an,

01:10:07.430 --> 01:10:09.430
und, äh, oder man kann den Cache direkt

01:10:09.430 --> 01:10:11.430
manipulieren, und dann

01:10:11.430 --> 01:10:13.430
wird das halt automatisch ersetzt, wenn dann die richtige

01:10:13.430 --> 01:10:15.430
Antwort vom Server kommt, und so, und so,

01:10:15.430 --> 01:10:17.430
und aber dann, wenn dann irgendwie 'ne Fehlermeldung passiert,

01:10:17.430 --> 01:10:19.430
dann muss die ja natürlich auch wieder hochbubbeln, und,

01:10:19.430 --> 01:10:21.430
also, pff, ja...

01:10:21.430 --> 01:10:23.430
Nee, ihr müsst nicht bubbeln.

01:10:23.430 --> 01:10:25.430
Ihr müsst halt dann auch dem User wieder angezeigt werden, irgendwie.

01:10:25.430 --> 01:10:27.430
Ja, ja, ja.

01:10:27.430 --> 01:10:29.430
Das ist alles so ein bisschen...

01:10:29.430 --> 01:10:31.430
Aber, aber, aber nee, es ist schon,

01:10:31.430 --> 01:10:33.430
ist schon nett, und, ähm, ich glaube, wenn ich jetzt irgendwie

01:10:33.430 --> 01:10:35.430
nochmal die Wahl hätte, wenn ich bei einem neuen Projekt

01:10:35.430 --> 01:10:37.430
ob ich da jetzt REST nehme, oder, oder, ähm,

01:10:37.430 --> 01:10:39.430
GraphQL, würde ich

01:10:39.430 --> 01:10:41.430
wahrscheinlich tatsächlich zu GraphQL trainieren.

01:10:41.430 --> 01:10:43.430
Weil das halt doch einige sehr nette

01:10:43.430 --> 01:10:45.430
Vorteile hat. Und, ähm,

01:10:45.430 --> 01:10:47.430
ja, also insofern,

01:10:47.430 --> 01:10:49.430
äh, das ist, das ist halt, äh,

01:10:49.430 --> 01:10:51.430
vielleicht ganz interessant

01:10:51.430 --> 01:10:53.430
zu wissen, dass man nicht unbedingt auf, auf Node,

01:10:53.430 --> 01:10:55.430
Node.js Server umsteigen muss, wenn man

01:10:55.430 --> 01:10:57.430
GraphQL machen will, sondern dass das mit Django und

01:10:57.430 --> 01:10:59.430
Graphene halt auch eigentlich ziemlich gut geht.

01:10:59.430 --> 01:11:01.430
Okay. Ja. Werden wir unbedingt

01:11:01.430 --> 01:11:03.430
in den Shownotes erwähnen? Ich würde sagen, jetzt haben wir ja

01:11:03.430 --> 01:11:05.430
so ein bisschen dieses Server-Thema weg, vielleicht kommen wir jetzt noch ein bisschen

01:11:05.430 --> 01:11:07.430
weiter, wieder in die Python-Welt zurück.

01:11:07.430 --> 01:11:09.430
Schlagen wir so einen kleinen Bogen, ähm,

01:11:09.430 --> 01:11:11.430
was alles nicht so funktioniert. Wir hatten am Anfang erwähnt:

01:11:11.430 --> 01:11:13.430
Pandas, Requests, REST-B mit

01:11:13.430 --> 01:11:15.430
Hass. Ja. Was ist am

01:11:15.430 --> 01:11:17.430
nächsten, ähm...

01:11:17.430 --> 01:11:19.430
Ähm, ja, die, die, die,

01:11:19.430 --> 01:11:21.430
die Pandas-Geschichte ist eigentlich auch ganz, ganz, äh,

01:11:21.430 --> 01:11:23.430
äh, interessant.

01:11:23.430 --> 01:11:25.430
Ist ja eine superpopuläre, äh,

01:11:25.430 --> 01:11:27.430
Bibliothek und, ähm... Die kenne nur ich.

01:11:27.430 --> 01:11:29.430
Ja. Ja. Äh,

01:11:29.430 --> 01:11:31.430
ne, ist, äh, ist halt quasi so ein bisschen

01:11:31.430 --> 01:11:33.430
Excel für, äh... Für Python.

01:11:33.430 --> 01:11:35.430
Für, für, für Python, so für Programmierer.

01:11:35.430 --> 01:11:37.430
Ähm,

01:11:37.430 --> 01:11:39.430
und, ähm, ja, ist auch alles,

01:11:39.430 --> 01:11:41.430
alles sehr nett und so, aber, äh,

01:11:41.430 --> 01:11:43.430
da hat, äh, man, man

01:11:43.430 --> 01:11:45.430
stößt halt irgendwann dann auch irgendwie an die Grenzen

01:11:45.430 --> 01:11:47.430
und, äh, hatte ich halt auch schon

01:11:47.430 --> 01:11:49.430
irgendwie Ärger mit. Ich hab

01:11:49.430 --> 01:11:51.430
irgendwie, das ist jetzt auch schon ein bisschen

01:11:51.430 --> 01:11:53.430
was her, aber, ähm,

01:11:53.430 --> 01:11:55.430
viel, äh, mit, mit,

01:11:55.430 --> 01:11:57.430
äh, mit Pandas gemacht und vor allen Dingen

01:11:57.430 --> 01:11:59.430
viel mit Pandas und Hadoop, äh, irgendwie

01:11:59.430 --> 01:12:01.430
Sachen, Datenstrukturen aus

01:12:01.430 --> 01:12:03.430
Hadoop irgendwie in Pandas, äh, verwenden

01:12:03.430 --> 01:12:05.430
wollen und, ähm,

01:12:05.430 --> 01:12:07.430
äh, ja, tatsächlich,

01:12:07.430 --> 01:12:09.430
ähm,

01:12:09.430 --> 01:12:11.430
waren da nicht alle Dinge nur, äh, die Schuld

01:12:11.430 --> 01:12:13.430
von Hadoop.

01:12:13.430 --> 01:12:15.430
Was man ja denken könnte, ja.

01:12:15.430 --> 01:12:17.430
Ja, ja, was auch, also, ich, also,

01:12:17.430 --> 01:12:19.430
Hadoop ist schon

01:12:19.430 --> 01:12:21.430
auch speziell und, ähm,

01:12:21.430 --> 01:12:23.430
da gibt's, gibt's viele Geschichten, die da nicht

01:12:23.430 --> 01:12:25.430
so gut funktionieren, aber, aber eben bei Pandas

01:12:25.430 --> 01:12:27.430
gibt's auch Probleme, äh, und

01:12:27.430 --> 01:12:29.430
da auch, ähm, das ist auch schon

01:12:29.430 --> 01:12:31.430
ganz alt, da hat, äh, der, der

01:12:31.430 --> 01:12:33.430
Gründer dieses, des Pandas-Projektes,

01:12:33.430 --> 01:12:35.430
äh, Wes McKinney, hat irgendwann mal, äh,

01:12:35.430 --> 01:12:37.430
einen Vortrag, glaub ich, gehalten, wo er, äh,

01:12:37.430 --> 01:12:39.430
geschrieben hat: "Ten, ten things

01:12:39.430 --> 01:12:41.430
I hate about Pandas" und das hat

01:12:41.430 --> 01:12:43.430
er jetzt nochmal aktualisiert, ähm,

01:12:43.430 --> 01:12:45.430
ähm,

01:12:45.430 --> 01:12:47.430
das ist jetzt aber auch schon über ein Jahr her, in einem

01:12:47.430 --> 01:12:49.430
Blogartikel, wo er, äh,

01:12:49.430 --> 01:12:51.430
äh, den er, den er, den er,

01:12:51.430 --> 01:12:53.430
den er, glaub ich, betitelt hat mit, äh, "Ten things

01:12:53.430 --> 01:12:55.430
I hate about Pandas", äh, und, und

01:12:55.430 --> 01:12:57.430
äh, das ist so, äh, so, äh,

01:12:57.430 --> 01:12:59.430
ähm, was halt so ein bisschen diesem ganzen Kram

01:12:59.430 --> 01:13:01.430
abhilfen, schaffen soll,

01:13:01.430 --> 01:13:03.430
und, ähm,

01:13:03.430 --> 01:13:05.430
ja, also, Pandas kann so diverse

01:13:05.430 --> 01:13:07.430
grundlegende Geschichten nicht, also wie zum Beispiel

01:13:07.430 --> 01:13:09.430
so ein Problem ist halt, äh, oder

01:13:09.430 --> 01:13:11.430
sagen wir mal so, das ist sogar eher ein Problem

01:13:11.430 --> 01:13:13.430
von NumPy, was unten drunter liegt,

01:13:13.430 --> 01:13:15.430
so Null-Werte

01:13:15.430 --> 01:13:17.430
gehen halt nur wirklich schön mit

01:13:17.430 --> 01:13:19.430
Float.

01:13:19.430 --> 01:13:21.430
So, wenn's Integer-Spalten hat

01:13:21.430 --> 01:13:23.430
und hat dann Null-Werte drin...

01:13:23.430 --> 01:13:25.430
Aber NumPy kann auch NUN. Oder NUN, also fehlende

01:13:25.430 --> 01:13:27.430
Werte irgendwie, also

01:13:27.430 --> 01:13:29.430
nicht definierte

01:13:29.430 --> 01:13:31.430
Werte, sozusagen, dann hat man da ein Problem,

01:13:31.430 --> 01:13:33.430
wenn man das nicht, äh, äh,

01:13:33.430 --> 01:13:35.430
quasi, das gibt's halt nicht.

01:13:35.430 --> 01:13:39.430
Und das ist ja so ein bisschen schlecht, weil es gibt die ja schon.

01:13:39.430 --> 01:13:41.430
Kann man sich

01:13:41.430 --> 01:13:43.430
überlegen, wie man das irgendwie kondiert? Schreibt man da

01:13:43.430 --> 01:13:45.430
vielleicht -1 rein oder so?

01:13:45.430 --> 01:13:47.430
Aber wenn -1 irgendwas bedeutet, dann ist das

01:13:47.430 --> 01:13:49.430
halt doof, unter Umständen. Oder

01:13:49.430 --> 01:13:51.430
man kann sich eine beliebige andere Zahl ausdenken,

01:13:51.430 --> 01:13:53.430
ja, die man dann da reinschreibt, aber man

01:13:53.430 --> 01:13:55.430
kann halt eben nicht Namen reinschreiben. Das geht halt nicht.

01:13:55.430 --> 01:13:57.430
Aber

01:13:57.430 --> 01:13:59.430
gibt's da nicht dieses, äh, NUN, also dieses, ähm,

01:13:59.430 --> 01:14:01.430
ich meinte dieses NumPy-NUN?

01:14:01.430 --> 01:14:03.430
Ja, das geht nur bei Float.

01:14:03.430 --> 01:14:05.430
Das geht nur bei Float? Ja. Okay.

01:14:05.430 --> 01:14:07.430
Und, ja, das ist halt so ein bisschen

01:14:07.430 --> 01:14:09.430
doof.

01:14:09.430 --> 01:14:11.430
Ähm,

01:14:11.430 --> 01:14:13.430
ja, dann, äh...

01:14:13.430 --> 01:14:15.430
Das geht nur bei Float? Ja.

01:14:15.430 --> 01:14:19.430
Muss ja mal kurz in das NumPy-Kapitel

01:14:19.430 --> 01:14:21.430
reinschauen. Ich will grad nämlich so ein, äh,

01:14:21.430 --> 01:14:23.430
so ein NumPy-Buch liegen.

01:14:23.430 --> 01:14:25.430
Ja, aber bitte erzähl weiter, warum das doof ist.

01:14:25.430 --> 01:14:27.430
Ja, also, vor allen Dingen, wenn man jetzt

01:14:27.430 --> 01:14:29.430
zum Beispiel in Hadoop, äh, irgendwie

01:14:29.430 --> 01:14:31.430
Daten hat, ähm,

01:14:31.430 --> 01:14:33.430
die

01:14:33.430 --> 01:14:35.430
das können, und wo man halt, äh, irgendwie

01:14:35.430 --> 01:14:37.430
so, ähm,

01:14:37.430 --> 01:14:39.430
äh, Datenformate hat, die das halt unterstützen,

01:14:39.430 --> 01:14:41.430
dann hat man halt fehlende, äh, fehlende

01:14:41.430 --> 01:14:43.430
Werte irgendwie, und möchte das jetzt in

01:14:43.430 --> 01:14:45.430
Dataframe pumpen, dann kriegt

01:14:45.430 --> 01:14:47.430
man halt Probleme, wenn das halt nicht funktioniert.

01:14:47.430 --> 01:14:49.430
Und dann, ähm,

01:14:49.430 --> 01:14:51.430
das ist halt auch alles so ein bisschen, bisschen

01:14:51.430 --> 01:14:53.430
schwierig. Ähm, man kann zwar,

01:14:53.430 --> 01:14:55.430
und dann, also, es gibt halt dieses, äh,

01:14:55.430 --> 01:14:57.430
Apache Error-Projekt, das ist halt vielleicht auch ganz interessant,

01:14:57.430 --> 01:14:59.430
ähm,

01:14:59.430 --> 01:15:01.430
ähm,

01:15:01.430 --> 01:15:03.430
wo es darum geht, quasi diese,

01:15:03.430 --> 01:15:05.430
ein einheitliches, äh,

01:15:05.430 --> 01:15:07.430
einen einheitlichen Datencontainer zu haben, den man halt

01:15:07.430 --> 01:15:09.430
dann von unterschiedlichen Sprachen aus benutzen kann, also auch

01:15:09.430 --> 01:15:11.430
von R oder, äh, von, von

01:15:11.430 --> 01:15:13.430
C++, äh, oder halt eben auch von Java

01:15:13.430 --> 01:15:15.430
aus, ähm,

01:15:15.430 --> 01:15:17.430
und das geht halt mit

01:15:17.430 --> 01:15:19.430
NumPy so nicht, und, ähm,

01:15:19.430 --> 01:15:21.430
ja, also, insofern hat man da,

01:15:21.430 --> 01:15:23.430
wenn man heutzutage Pandas verwendet, noch

01:15:23.430 --> 01:15:25.430
eine ganze Menge Probleme, aber... Apache Error.

01:15:25.430 --> 01:15:27.430
Mhm.

01:15:27.430 --> 01:15:29.430
Arrow ist halt sozusagen das Projekt, das das

01:15:29.430 --> 01:15:31.430
diese Geschichten, äh,

01:15:31.430 --> 01:15:33.430
mittelfristig mal so alle

01:15:33.430 --> 01:15:35.430
irgendwie in den Griff kriegen soll,

01:15:35.430 --> 01:15:37.430
und damit könnten dann so wirklich coole Sachen

01:15:37.430 --> 01:15:39.430
gehen, wie du hast halt die Daten, äh,

01:15:39.430 --> 01:15:41.430
tatsächlich nur einmal, also das ist auch so was

01:15:41.430 --> 01:15:43.430
zum Beispiel, was in Pandas eigentlich nicht geht,

01:15:43.430 --> 01:15:45.430
du kannst halt nicht so, ähm,

01:15:45.430 --> 01:15:47.430
Daten

01:15:47.430 --> 01:15:49.430
"memory mapped" in einem DataFrame haben,

01:15:49.430 --> 01:15:51.430
also, nehmen wir an, du hast halt Daten, die sind

01:15:51.430 --> 01:15:53.430
zu groß für deinen Hauptspeicher. Mhm.

01:15:53.430 --> 01:15:55.430
Ähm, ähm,

01:15:55.430 --> 01:15:57.430
jetzt, äh, möchtest du dir möglicherweise

01:15:57.430 --> 01:15:59.430
teilweise immer nur so in den Hauptspeicher mappen,

01:15:59.430 --> 01:16:01.430
dann darauf irgendwas machen,

01:16:01.430 --> 01:16:03.430
und dann irgendwas anderes in den Hauptspeicher mappen.

01:16:03.430 --> 01:16:05.430
Aber du kannst halt nicht ein komplettes

01:16:05.430 --> 01:16:07.430
Pfeil, weil es einfach zu groß ist, oder so in den Hauptspeicher lesen.

01:16:07.430 --> 01:16:09.430
Wie, ist denn mein Hauptspeicher jetzt nicht groß genug?

01:16:09.430 --> 01:16:11.430
Wie geht das denn heutzutage? Ja, ja, doch, gibt es tatsächlich,

01:16:11.430 --> 01:16:13.430
also, ja, oder ist es halt

01:16:13.430 --> 01:16:15.430
so, ist es, ja, äh,

01:16:15.430 --> 01:16:17.430
ja, oder vielleicht will man

01:16:17.430 --> 01:16:19.430
das, äh, es gibt auch andere Gründe,

01:16:19.430 --> 01:16:21.430
weswegen man das jetzt nicht unbedingt in den Hauptspeicher

01:16:21.430 --> 01:16:23.810
laden möchte.

01:16:23.810 --> 01:16:26.230
trinken noch einen Schluck

01:16:26.230 --> 01:16:26.770
oh ja

01:16:26.770 --> 01:16:29.390
aber

01:16:29.390 --> 01:16:32.150
so kann man sich das vielleicht ganz gut vorstellen

01:16:32.150 --> 01:16:33.850
dass das halt ein Problem ist

01:16:33.850 --> 01:16:35.830
und das kann man mit Pandas auch nicht machen

01:16:35.830 --> 01:16:37.170
und

01:16:37.170 --> 01:16:40.350
also in Zukunft was so richtig

01:16:40.350 --> 01:16:40.910
schön wäre

01:16:40.910 --> 01:16:43.390
ist halt

01:16:43.390 --> 01:16:44.230
du hast

01:16:44.230 --> 01:16:48.450
jetzt nehmen wir an die Daten die in so einem

01:16:48.450 --> 01:16:49.030
Hadoop

01:16:49.030 --> 01:16:51.890
Pocket File irgendwie

01:16:51.890 --> 01:16:53.450
liegen

01:16:53.450 --> 01:16:54.310
sozusagen

01:16:54.310 --> 01:16:58.070
in einem Container drin

01:16:58.070 --> 01:17:00.210
den du halt von allen Sprachen aus ansprechen kannst

01:17:00.210 --> 01:17:01.910
und kannst dann halt irgendwie mit A

01:17:01.910 --> 01:17:03.650
deine Analysen drüber fahren

01:17:03.650 --> 01:17:05.030
und halt mit

01:17:05.030 --> 01:17:07.170
Python und Pandas

01:17:07.170 --> 01:17:07.970
beziehungsweise halt

01:17:07.970 --> 01:17:11.510
irgendwelchen Machine Learning Bibliotheken

01:17:11.510 --> 01:17:13.510
kannst das aber auch

01:17:13.510 --> 01:17:14.730
irgendwie von Java aus

01:17:14.730 --> 01:17:16.690
ansprechen oder so

01:17:16.690 --> 01:17:19.030
und du musst dieses Ding nur einmal im Hauptsprecher halten

01:17:19.030 --> 01:17:20.810
und nicht für jede Sprache neu

01:17:20.810 --> 01:17:22.710
weil das ist halt das was man momentan macht

01:17:22.710 --> 01:17:23.090
man liest es

01:17:23.090 --> 01:17:25.750
halt dann in Pandas irgendwie in den DataFrame ein

01:17:25.750 --> 01:17:27.090
transformiert dann auch irgendwelche Geschichten

01:17:27.090 --> 01:17:28.570
weil halt irgendwie solche Dinge wie

01:17:28.570 --> 01:17:30.250
NAN

01:17:30.250 --> 01:17:32.250
für Integer gibt es halt nicht

01:17:32.250 --> 01:17:34.330
und dann machst du das halt in jeder Sprache nochmal

01:17:34.330 --> 01:17:36.630
das heißt du hast den Speicheraufwand

01:17:36.630 --> 01:17:37.930
für jede Sprache die du dann benutzt

01:17:37.930 --> 01:17:39.070
weil du das in den Hauptspeicher laden musst

01:17:39.070 --> 01:17:42.010
und die Repräsentationen sind dann auch noch leicht unterschiedlich

01:17:42.010 --> 01:17:44.970
weil halt bestimmte Sachen nicht gehen

01:17:44.970 --> 01:17:46.810
und dann kommen halt bei Analysen

01:17:46.810 --> 01:17:47.790
irgendwie unterschiedliche Sachen raus

01:17:47.790 --> 01:17:49.230
und das ist alles schrecklich

01:17:49.230 --> 01:17:51.450
und dann sagen Leute sowas wie ja abhalten kann das halt nicht

01:17:51.450 --> 01:17:52.190
oder keine Ahnung

01:17:53.090 --> 01:17:56.670
AR ist halt irgendwie doof

01:17:56.670 --> 01:17:58.490
oder Java hat es wieder verbockt

01:17:58.490 --> 01:17:59.430
aber eigentlich

01:17:59.430 --> 01:18:02.210
genau wenn man jetzt eine gemeinsame Infrastruktur

01:18:02.210 --> 01:18:04.110
darunter hätte die sich darum kümmert

01:18:04.110 --> 01:18:06.230
dann wäre das alles deutlich einfacher

01:18:06.230 --> 01:18:08.410
und das soll

01:18:08.410 --> 01:18:09.490
Apache Arrow mal werden

01:18:09.490 --> 01:18:10.410
das ist jetzt schon eine ganze Zeit

01:18:10.410 --> 01:18:14.150
ich habe das halt im Zuge meiner

01:18:14.150 --> 01:18:14.510
Hadoop

01:18:14.510 --> 01:18:17.890
Geschichten halt auch mal kennengelernt

01:18:17.890 --> 01:18:19.690
weil ich hatte halt das Problem also mein Hauptproblem war

01:18:19.690 --> 01:18:21.930
dass ich Daten nicht schnell aus dem Cluster rausgekriegt habe

01:18:21.930 --> 01:18:23.070
und das ist halt so

01:18:23.090 --> 01:18:27.970
und da mit Apache Arrow konnte ich halt diese HDFS-Files

01:18:27.970 --> 01:18:29.030
halt direkt lesen

01:18:29.030 --> 01:18:29.750
und das war

01:18:29.750 --> 01:18:31.110
na gut

01:18:31.110 --> 01:18:33.290
da musste man auch noch Bibliotheken verwenden

01:18:33.290 --> 01:18:34.090
die das dann halt konnten

01:18:34.090 --> 01:18:36.310
aber ich kriegte das halt irgendwie

01:18:36.310 --> 01:18:38.870
in eine Arrow-Datenstruktur

01:18:38.870 --> 01:18:40.510
und daraus dann wieder in DataFrame

01:18:40.510 --> 01:18:41.290
und dann ging es halt weg

01:18:41.290 --> 01:18:45.210
aber da wird aktiv dran entwickelt

01:18:45.210 --> 01:18:46.890
ich weiß es gab das auch mittlerweile

01:18:46.890 --> 01:18:48.990
so Westmark-Königs Hauptprojekt denke ich mal

01:18:48.990 --> 01:18:52.910
und das wird eine super interessante Geschichte

01:18:52.910 --> 01:18:53.070
in der Zeit

01:18:53.090 --> 01:18:53.470
in der Zukunft

01:18:53.470 --> 01:18:56.830
ja und das soll halt sozusagen

01:18:56.830 --> 01:18:57.930
einige der Hauptschmerzen

01:18:57.930 --> 01:18:59.450
die man mit Pandas so heutzutage hat

01:18:59.450 --> 01:19:02.090
irgendwie in den Griff kriegen

01:19:02.090 --> 01:19:02.330
ja

01:19:02.330 --> 01:19:04.930
das ist vielleicht ganz interessant

01:19:04.930 --> 01:19:06.550
sich das mal anzugucken

01:19:06.550 --> 01:19:10.690
okay Apache Arrow als Lösung für Pandas-Probleme

01:19:10.690 --> 01:19:12.150
ja gehen wir vielleicht zum nächsten Punkt

01:19:12.150 --> 01:19:13.090
Web-Parsing

01:19:13.090 --> 01:19:15.590
ja genau so Web-Parsing

01:19:15.590 --> 01:19:16.850
also vielleicht da sollen wir auch mal

01:19:16.850 --> 01:19:19.430
eine komplette Episode zu machen

01:19:19.430 --> 01:19:19.730
oder so

01:19:19.730 --> 01:19:21.730
aber ist ja so ein Problem

01:19:22.550 --> 01:19:23.350
was man immer wieder hat

01:19:23.350 --> 01:19:24.710
dass man irgendwelche Seiten

01:19:24.710 --> 01:19:25.770
Scrapen möchte oder so

01:19:25.770 --> 01:19:26.190
und

01:19:26.190 --> 01:19:29.250
wie machst du das so generell?

01:19:29.250 --> 01:19:31.190
nimmst du eine wundervolle Suppe oder?

01:19:31.190 --> 01:19:33.030
Beautiful Soup

01:19:33.030 --> 01:19:34.490
ja

01:19:34.490 --> 01:19:37.670
also das kommt auch immer nochmal vor

01:19:37.670 --> 01:19:38.910
dass man das für irgendwas verwendet

01:19:38.910 --> 01:19:41.750
aber ne meistens benutze ich jetzt tatsächlich

01:19:41.750 --> 01:19:44.250
eine Bibliothek namens Requests HTML

01:19:44.250 --> 01:19:47.090
ist von dem gleichen Autor

01:19:47.090 --> 01:19:48.710
wie auch Requests

01:19:48.710 --> 01:19:51.630
also die Standard-Bibliothek

01:19:51.630 --> 01:19:52.310
ne ist nicht

01:19:52.310 --> 01:19:52.810
ist nicht Standard

01:19:52.810 --> 01:19:54.630
also nein, Requests ist die Standard

01:19:54.630 --> 01:19:56.250
ja ja genau

01:19:56.250 --> 01:19:57.550
Kenneth Wright

01:19:57.550 --> 01:19:59.810
und

01:19:59.810 --> 01:20:01.970
das

01:20:01.970 --> 01:20:05.330
das Ding macht halt

01:20:05.330 --> 01:20:08.190
über Requests selbst hinausgehend

01:20:08.190 --> 01:20:08.670
ein paar Sachen

01:20:08.670 --> 01:20:10.810
die ganz interessant sind

01:20:10.810 --> 01:20:11.870
und die man vor allen Dingen halt dann braucht

01:20:11.870 --> 01:20:13.950
wenn man irgendwie so Seiten scrapt

01:20:13.950 --> 01:20:16.210
jetzt habe ich das einfach schon ein bisschen leerer gemacht

01:20:16.210 --> 01:20:17.130
ja das war super

01:20:17.130 --> 01:20:19.870
die Flasche war so dunkel

01:20:19.870 --> 01:20:21.190
zum Wohl

01:20:21.190 --> 01:20:22.070
mhm

01:20:22.310 --> 01:20:23.090
ja dann Prost

01:20:23.090 --> 01:20:23.730
Prost, vielen Dank

01:20:23.730 --> 01:20:24.290
mhm

01:20:24.290 --> 01:20:27.490
ach, toll

01:20:27.490 --> 01:20:28.930
ja

01:20:28.930 --> 01:20:31.870
und zwar hat man halt mal so Probleme wie

01:20:31.870 --> 01:20:35.010
naja man möchte jetzt irgendwelche Dinge aus dieser Seite

01:20:35.010 --> 01:20:35.890
die man irgendwie geladen hat

01:20:35.890 --> 01:20:37.010
rausselektieren

01:20:37.010 --> 01:20:40.390
man möchte irgendwie

01:20:40.390 --> 01:20:43.690
naja manchmal sind die Seiten dann so ein bisschen unterschiedlich

01:20:43.690 --> 01:20:44.490
oder dann geht das nicht so gut

01:20:44.490 --> 01:20:46.170
mit Beautiful Soup kann man da ein bisschen was bauen

01:20:46.170 --> 01:20:47.830
das Problem ist halt

01:20:47.830 --> 01:20:50.330
dass sobald das nicht mehr so

01:20:50.330 --> 01:20:52.150
äh sie sind nicht komplett gleichgültig

01:20:52.150 --> 01:20:52.150
äh sie sind nicht komplett gleichgültig

01:20:52.150 --> 01:20:52.150
äh sie sind nicht komplett gleichgültig

01:20:52.150 --> 01:20:52.290
äh sie sind nicht komplett gleichgültig

01:20:52.290 --> 01:20:54.170
dann wird das mit Beautiful Soup auch schon

01:20:54.170 --> 01:20:55.230
irgendwie so ein bisschen schwierig

01:20:55.230 --> 01:20:56.670
ähm

01:20:56.670 --> 01:20:58.110
und ähm

01:20:58.110 --> 01:21:00.050
dann muss man lieber das eigene Skript schreiben

01:21:00.050 --> 01:21:00.770
für jede einzelne Seite

01:21:00.770 --> 01:21:01.710
kann man natürlich machen

01:21:01.710 --> 01:21:02.310
für jede einzelne Seite

01:21:02.310 --> 01:21:02.610
oder für

01:21:02.610 --> 01:21:04.710
machen wir einfach Faltunterscheidungen oder so

01:21:04.710 --> 01:21:06.250
ähm

01:21:06.250 --> 01:21:07.810
es gibt eine saukoole Geschichte

01:21:07.810 --> 01:21:08.910
ähm

01:21:08.910 --> 01:21:10.290
das ist tatsächlich auch ein

01:21:10.290 --> 01:21:10.650
Bibio

01:21:10.650 --> 01:21:11.130
äh

01:21:11.130 --> 01:21:12.670
ein ähm

01:21:12.670 --> 01:21:13.310
Pipe-Modul

01:21:13.310 --> 01:21:14.410
das wirklich cool ist

01:21:14.410 --> 01:21:15.050
nennt sich Path

01:21:15.050 --> 01:21:16.290
und ähm

01:21:16.290 --> 01:21:19.770
das kann man auch noch für andere Sachen verwenden

01:21:19.770 --> 01:21:21.710
aber in diesem Web-Scraping-Umfeld

01:21:21.710 --> 01:21:22.270
kann man es auch so

01:21:22.270 --> 01:21:23.550
für ne Geschichte verwenden

01:21:23.550 --> 01:21:25.970
das hatte ich früher als Idee auch schon immer mal

01:21:25.970 --> 01:21:27.290
äh

01:21:27.290 --> 01:21:27.630
so

01:21:27.630 --> 01:21:28.690
wenn man sich vorstellt

01:21:28.690 --> 01:21:29.830
wie ne Webseite generiert wird

01:21:29.830 --> 01:21:30.590
dann hat man ja

01:21:30.590 --> 01:21:31.550
irgendwie so ein

01:21:31.550 --> 01:21:32.570
ein Template

01:21:32.570 --> 01:21:35.650
und ähm

01:21:35.650 --> 01:21:37.070
äh

01:21:37.070 --> 01:21:37.330
dann

01:21:37.330 --> 01:21:38.510
ne Datenbank

01:21:38.510 --> 01:21:40.090
und dann wird dieses Template ausgefüllt

01:21:40.090 --> 01:21:41.590
meistens mit Werten aus der Datenbank irgendwie

01:21:41.590 --> 01:21:42.110
mhm

01:21:42.110 --> 01:21:43.990
und

01:21:43.990 --> 01:21:45.390
selbst wenn man jetzt Seiten hat

01:21:45.390 --> 01:21:46.610
die so ein bisschen unterschiedlich sind

01:21:46.610 --> 01:21:48.170
dann ist das doch meistens irgendwie

01:21:48.170 --> 01:21:49.210
dasselbe Template

01:21:49.210 --> 01:21:50.050
irgendwie

01:21:50.050 --> 01:21:50.990
mhm

01:21:50.990 --> 01:21:52.250
und ähm

01:21:52.250 --> 01:21:54.790
ja jetzt war

01:21:54.790 --> 01:21:55.910
dachte ich früher immer schon so

01:21:55.910 --> 01:21:57.410
dann hab ich dann auch gemerkt

01:21:57.410 --> 01:21:58.450
das haben Leute schon implementiert

01:21:58.450 --> 01:21:59.050
Leute haben sich überlegt

01:21:59.050 --> 01:22:00.270
okay wenn ich jetzt mehrere Seiten habe

01:22:00.270 --> 01:22:00.950
dann kann ich doch vielleicht

01:22:00.950 --> 01:22:02.830
kann ich das Template daraus extrahieren

01:22:02.830 --> 01:22:03.690
kann ich es sozusagen

01:22:03.690 --> 01:22:04.830
im umgekehrten Prozess machen

01:22:04.830 --> 01:22:06.430
und wenn ich das Template habe

01:22:06.430 --> 01:22:07.430
dann ich möchte einfach nur

01:22:07.430 --> 01:22:08.430
alle Werte haben

01:22:08.430 --> 01:22:08.830
sozusagen

01:22:08.830 --> 01:22:09.670
die aus der Datenbank kommen

01:22:09.670 --> 01:22:11.030
wenn ich die Datenbank wieder zurückbekomme

01:22:11.030 --> 01:22:13.250
und ähm

01:22:13.250 --> 01:22:14.130
äh

01:22:14.130 --> 01:22:15.490
da gab es einige

01:22:15.490 --> 01:22:16.130
da gab es auch auf dem

01:22:16.130 --> 01:22:17.570
ursprünglichen Auto von

01:22:17.570 --> 01:22:18.650
von Jango

01:22:18.650 --> 01:22:20.510
irgendwie eine Bibliothek zu

01:22:20.510 --> 01:22:22.230
die aber schon lange nicht mehr gibt

01:22:22.230 --> 01:22:22.930
oder gepflegt wird

01:22:22.930 --> 01:22:23.830
ähm

01:22:23.830 --> 01:22:24.990
äh

01:22:24.990 --> 01:22:26.390
die sozusagen automatisch rausfinden soll

01:22:26.390 --> 01:22:27.170
was das Template ist und so

01:22:27.170 --> 01:22:28.270
ähm

01:22:28.270 --> 01:22:30.530
und äh

01:22:30.530 --> 01:22:31.730
diese Path-Bibliothek

01:22:31.730 --> 01:22:32.350
ist aber jetzt eigentlich

01:22:32.350 --> 01:22:33.170
das ist auch cool

01:22:33.170 --> 01:22:34.550
da schreibt man im Grunde

01:22:34.550 --> 01:22:36.050
sozusagen sein Template irgendwie rein

01:22:36.050 --> 01:22:36.650
ähm

01:22:36.650 --> 01:22:38.350
man kann auch damit relativ leicht rausfinden

01:22:38.350 --> 01:22:39.730
wie das Template dann eigentlich aussieht

01:22:39.730 --> 01:22:42.710
und dann gibt einem das sozusagen

01:22:42.710 --> 01:22:43.750
die Werte

01:22:43.750 --> 01:22:45.310
wieder zurück

01:22:45.310 --> 01:22:45.990
sozusagen

01:22:45.990 --> 01:22:48.630
und äh

01:22:48.630 --> 01:22:49.930
das äh

01:22:49.930 --> 01:22:50.750
muss man sich mal

01:22:50.750 --> 01:22:51.670
also kann man sich mal angucken

01:22:51.670 --> 01:22:52.210
wie das genau funktioniert

01:22:52.210 --> 01:22:52.890
ähm

01:22:52.890 --> 01:22:53.770
das äh

01:22:53.770 --> 01:22:55.550
in dem Request.html-Paket ist

01:22:55.550 --> 01:22:56.250
äh

01:22:56.250 --> 01:22:57.430
gibt es dann so ein

01:22:57.430 --> 01:22:58.210
ein Search-Kommando

01:22:58.210 --> 01:22:59.810
wo man das dann halt verwenden kann

01:22:59.810 --> 01:23:01.430
ähm

01:23:01.430 --> 01:23:02.450
und ähm

01:23:02.450 --> 01:23:03.390
das löst dieses

01:23:03.390 --> 01:23:05.210
dieses Problem zum großen Teil

01:23:05.210 --> 01:23:06.570
ähm

01:23:06.570 --> 01:23:08.890
Sachen aus einer Seite raus zu parsen

01:23:08.890 --> 01:23:09.730
irgendwie

01:23:09.730 --> 01:23:11.070
ähm

01:23:11.070 --> 01:23:12.130
ja

01:23:12.130 --> 01:23:14.150
und ähm

01:23:14.150 --> 01:23:15.050
dann kann es halt

01:23:15.050 --> 01:23:15.530
äh

01:23:15.530 --> 01:23:15.930
kann das

01:23:15.930 --> 01:23:17.190
das ist ein Teil

01:23:17.190 --> 01:23:18.770
man möchte halt irgendwie

01:23:18.770 --> 01:23:20.210
äh

01:23:20.210 --> 01:23:21.050
sozusagen da irgendwelche Werte

01:23:21.050 --> 01:23:22.010
aus einer Seite rauslesen

01:23:22.010 --> 01:23:22.190
ähm

01:23:22.210 --> 01:23:23.690
und eine andere Geschichte

01:23:23.690 --> 01:23:24.650
die man halt auch immer wieder hat

01:23:24.650 --> 01:23:24.950
ist

01:23:24.950 --> 01:23:26.670
wenn jetzt da Javascript drinsteht

01:23:26.670 --> 01:23:27.370
dann möchte man eigentlich

01:23:27.370 --> 01:23:28.430
eine gerenderte Version

01:23:28.430 --> 01:23:29.130
der Seite sehen

01:23:29.130 --> 01:23:30.190
man möchte halt nicht

01:23:30.190 --> 01:23:31.170
das HTML sehen

01:23:31.170 --> 01:23:32.330
weil oft hat man

01:23:32.330 --> 01:23:33.690
dann kriegt man dann halt nur so

01:23:33.690 --> 01:23:36.610
Grundgerüst an HTML

01:23:36.610 --> 01:23:37.970
irgendwie einen Haufen Javascript

01:23:37.970 --> 01:23:39.210
und JSON-Daten

01:23:39.210 --> 01:23:40.710
und dann weiß man aber nicht

01:23:40.710 --> 01:23:41.790
was man damit irgendwie machen soll

01:23:41.790 --> 01:23:43.090
äh

01:23:43.090 --> 01:23:44.210
weil man eigentlich die Daten

01:23:44.210 --> 01:23:44.830
haben möchte

01:23:44.830 --> 01:23:45.510
die dann hinterher

01:23:45.510 --> 01:23:46.430
wenn der Browser das rendert

01:23:46.430 --> 01:23:47.470
in der Tabelle angezeigt werden

01:23:47.470 --> 01:23:47.770
oder so

01:23:47.770 --> 01:23:49.010
weil die Tabelle ist dann irgendwo mehr

01:23:49.010 --> 01:23:50.870
ähm

01:23:50.870 --> 01:23:51.930
und dafür

01:23:51.930 --> 01:23:52.190
äh

01:23:52.210 --> 01:23:52.730
äh

01:23:52.730 --> 01:23:54.290
gibt's bei RequestHTML

01:23:54.290 --> 01:23:54.930
auch so eine

01:23:54.930 --> 01:23:55.230
äh

01:23:55.230 --> 01:23:56.130
relativ schöne

01:23:56.130 --> 01:23:56.770
schöne Geschichte

01:23:56.770 --> 01:23:57.110
nämlich

01:23:57.110 --> 01:23:58.950
also das ist noch so ein bisschen

01:23:58.950 --> 01:23:59.550
hacklich manchmal

01:23:59.550 --> 01:24:00.010
aber

01:24:00.010 --> 01:24:00.810
äh

01:24:00.810 --> 01:24:02.050
da ist so ein Headless-Browser mit drin

01:24:02.050 --> 01:24:02.530
also

01:24:02.530 --> 01:24:03.710
gab's auch früher alles schon

01:24:03.710 --> 01:24:04.530
es gibt äh

01:24:04.530 --> 01:24:04.990
irgendwie

01:24:04.990 --> 01:24:07.590
ähm

01:24:07.590 --> 01:24:08.450
na wie heißt das Ding

01:24:08.450 --> 01:24:09.030
äh

01:24:09.030 --> 01:24:10.310
diese Java Selenium

01:24:10.310 --> 01:24:11.310
äh

01:24:11.310 --> 01:24:12.310
als Interface

01:24:12.310 --> 01:24:12.850
es gibt

01:24:12.850 --> 01:24:14.890
PhantomJS

01:24:14.890 --> 01:24:16.110
es gibt ja diverse Geschichten

01:24:16.110 --> 01:24:16.950
die man benutzen kann

01:24:16.950 --> 01:24:18.050
die halt alle so eine

01:24:18.050 --> 01:24:19.330
leicht andere API haben

01:24:19.330 --> 01:24:19.690
und so

01:24:19.690 --> 01:24:20.850
das ist immer ein bisschen schwierig

01:24:20.850 --> 01:24:22.070
äh

01:24:22.070 --> 01:24:23.490
Chromium hat eine ganz schöne API

01:24:23.490 --> 01:24:24.470
die man benutzen kann

01:24:24.470 --> 01:24:26.790
aber es ist alles irgendwie

01:24:26.790 --> 01:24:27.930
äh

01:24:27.930 --> 01:24:28.130
na

01:24:28.130 --> 01:24:28.710
nicht so dolle

01:24:28.710 --> 01:24:29.450
es gibt für JavaScript

01:24:29.450 --> 01:24:30.210
gab's eine Bibliothek

01:24:30.210 --> 01:24:30.590
äh

01:24:30.590 --> 01:24:31.910
Bibliothek namens Puppeteer

01:24:31.910 --> 01:24:33.790
äh

01:24:33.790 --> 01:24:35.670
und dafür gibt's eine Python-Adaption

01:24:35.670 --> 01:24:36.670
namens Puppeteer

01:24:36.670 --> 01:24:37.910
und das ist eingebaut

01:24:37.910 --> 01:24:39.090
in RequestHTML

01:24:39.090 --> 01:24:39.730
und das ist halt alles

01:24:39.730 --> 01:24:40.790
relativ schön verbastelt

01:24:40.790 --> 01:24:42.650
so dass man davon nichts mitkriegt

01:24:42.650 --> 01:24:43.890
also was das Ding dann tatsächlich tut

01:24:43.890 --> 01:24:44.450
man sagt so

01:24:44.450 --> 01:24:44.930
führ doch mal

01:24:44.930 --> 01:24:46.530
JavaScript auf dieser Seite aus

01:24:46.530 --> 01:24:47.170
und rendere mir das

01:24:47.170 --> 01:24:47.670
und dann kann man

01:24:47.670 --> 01:24:48.990
man kann halt über eine API sagen

01:24:48.990 --> 01:24:50.990
gib mir einfach ein Bild

01:24:50.990 --> 01:24:51.530
dieser Seite

01:24:51.530 --> 01:24:51.910
oder

01:24:51.910 --> 01:24:52.450
man kann sagen

01:24:52.450 --> 01:24:53.610
gib mir irgendwie

01:24:53.610 --> 01:24:54.830
den gerenderten DOM dieser Seite

01:24:54.830 --> 01:24:55.270
oder gib

01:24:55.270 --> 01:24:56.110
hier ist ein Stück

01:24:56.110 --> 01:24:56.930
schnipsel JavaScript

01:24:56.930 --> 01:24:58.390
führ das mal im Kontext

01:24:58.390 --> 01:24:59.190
dieser Seite auf

01:24:59.190 --> 01:24:59.830
äh

01:24:59.830 --> 01:25:00.250
aus

01:25:00.250 --> 01:25:01.830
und ähm

01:25:01.830 --> 01:25:03.830
dann was RequestHTML macht

01:25:03.830 --> 01:25:03.990
ist

01:25:03.990 --> 01:25:05.150
es lädt halt ein Chromium runter

01:25:05.150 --> 01:25:06.090
und äh

01:25:06.090 --> 01:25:07.430
es bastelt das alles so zusammen

01:25:07.430 --> 01:25:08.330
dass es irgendwie funktioniert

01:25:08.330 --> 01:25:09.970
und äh

01:25:09.970 --> 01:25:11.090
es rendert halt dann die Seite

01:25:11.090 --> 01:25:12.110
und gibt dann das Ergebnis zurück

01:25:12.110 --> 01:25:12.870
und das Ganze sogar

01:25:12.870 --> 01:25:14.270
mit einer asynchronen

01:25:14.270 --> 01:25:14.590
äh

01:25:14.590 --> 01:25:14.930
API

01:25:14.930 --> 01:25:15.970
so dass man das halt alles

01:25:15.970 --> 01:25:16.270
so in

01:25:16.270 --> 01:25:17.630
äh

01:25:17.630 --> 01:25:19.270
S-I-O-Umfeld verwenden kann

01:25:19.270 --> 01:25:20.530
und man

01:25:20.530 --> 01:25:21.750
man hat mit diesem ganzen Stress

01:25:21.750 --> 01:25:23.090
den man normalerweise dann so hat

01:25:23.090 --> 01:25:24.150
hat man nicht mehr viel zu tun

01:25:24.150 --> 01:25:25.070
was sehr nett ist

01:25:25.070 --> 01:25:26.270
ähm

01:25:26.270 --> 01:25:28.310
und das funktioniert tatsächlich sehr gut

01:25:28.310 --> 01:25:29.450
also früher hab ich

01:25:29.450 --> 01:25:30.690
ich hab damit so oft

01:25:30.690 --> 01:25:31.550
mit irgendwelchen Kram

01:25:31.550 --> 01:25:31.970
äh

01:25:31.970 --> 01:25:33.070
rumgeschlagen

01:25:33.070 --> 01:25:34.530
äh

01:25:34.530 --> 01:25:34.850
ich hab

01:25:34.850 --> 01:25:35.910
teilweise muss man dann

01:25:35.910 --> 01:25:37.430
Webkit kompilieren

01:25:37.430 --> 01:25:38.370
und dann

01:25:38.370 --> 01:25:40.010
äh

01:25:40.010 --> 01:25:41.270
gab's da diverse Geschichten

01:25:41.270 --> 01:25:42.090
es gab noch Splash

01:25:42.090 --> 01:25:42.850
früher mal

01:25:42.850 --> 01:25:44.150
es gibt eine ganze

01:25:44.150 --> 01:25:45.490
äh

01:25:45.490 --> 01:25:46.230
ein ganzes

01:25:46.230 --> 01:25:47.090
diese

01:25:47.090 --> 01:25:48.490
die Leute die auch Scrapey bauen

01:25:48.490 --> 01:25:50.090
da gibt's eine Firma dahinter

01:25:50.090 --> 01:25:51.590
die haben da diverse Service

01:25:51.590 --> 01:25:52.450
die sie anbieten

01:25:52.450 --> 01:25:54.710
ähm

01:25:54.710 --> 01:25:55.530
da gibt's noch

01:25:55.530 --> 01:25:56.970
da kann man auch irgendwie

01:25:56.970 --> 01:25:59.270
Scraper irgendwie erstellen

01:25:59.270 --> 01:26:00.690
ich glaub ein Tool heißt Porter

01:26:00.690 --> 01:26:02.170
wo man dann auch sagen kann

01:26:02.170 --> 01:26:03.210
was auf einer Seite wo ist

01:26:03.210 --> 01:26:03.570
und so

01:26:03.570 --> 01:26:05.550
und ähm

01:26:05.550 --> 01:26:06.550
die haben auch so ein Proxy

01:26:06.550 --> 01:26:07.110
namens Splash

01:26:07.110 --> 01:26:07.950
wo man dann halt quasi

01:26:07.950 --> 01:26:08.730
über so ein Proxy

01:26:08.730 --> 01:26:10.010
einen Headless Browser hat

01:26:10.010 --> 01:26:10.450
mit dem man dann

01:26:10.450 --> 01:26:11.470
irgendwas Dinge machen kann

01:26:11.470 --> 01:26:12.570
da kann man dann auch irgendwie

01:26:12.570 --> 01:26:13.350
JavaScript in der Seite

01:26:13.350 --> 01:26:13.870
injizieren

01:26:13.870 --> 01:26:14.430
oder irgendwelche Sachen

01:26:14.430 --> 01:26:14.950
rausparsen

01:26:14.950 --> 01:26:16.230
aber das war alles

01:26:16.230 --> 01:26:16.810
immer ziemlich

01:26:16.810 --> 01:26:17.670
ziemlich ätzend

01:26:17.670 --> 01:26:18.850
kannst du nochmal ganz kurz erklären

01:26:18.850 --> 01:26:20.210
was Scrapey denn genau macht

01:26:20.210 --> 01:26:20.690
zum Vergleich

01:26:20.690 --> 01:26:21.430
ja Scrapey

01:26:21.430 --> 01:26:21.930
Scrapey ist

01:26:21.930 --> 01:26:22.430
äh

01:26:22.430 --> 01:26:23.030
auch

01:26:23.030 --> 01:26:24.470
es ist im Grunde so eine

01:26:24.470 --> 01:26:25.090
naja

01:26:25.090 --> 01:26:25.870
Komplettlösung

01:26:25.870 --> 01:26:26.430
mehr oder weniger

01:26:26.430 --> 01:26:26.870
also da

01:26:26.870 --> 01:26:28.250
kommt's dann auch noch mehr

01:26:28.250 --> 01:26:28.690
auf den

01:26:28.690 --> 01:26:29.750
auf den Crawling-Teil

01:26:29.750 --> 01:26:30.430
im Sinne von

01:26:30.430 --> 01:26:31.650
äh

01:26:31.650 --> 01:26:32.830
ich hab hier ganz viele URLs

01:26:32.830 --> 01:26:33.730
die ich abfragen möchte

01:26:33.730 --> 01:26:35.170
und dann muss man daraus

01:26:35.170 --> 01:26:35.530
irgendwie

01:26:35.530 --> 01:26:37.430
muss man die halt durchgehen

01:26:37.430 --> 01:26:38.050
muss halt irgendwie

01:26:38.050 --> 01:26:39.470
mehrere Prozesse haben

01:26:39.470 --> 01:26:40.150
die halt da

01:26:40.150 --> 01:26:41.570
äh

01:26:41.570 --> 01:26:42.290
irgendwie die

01:26:42.290 --> 01:26:43.410
die Seiten holen

01:26:43.410 --> 01:26:43.610
und so

01:26:43.610 --> 01:26:44.290
dafür ist das halt

01:26:44.290 --> 01:26:44.870
eher gedacht

01:26:44.870 --> 01:26:45.410
äh

01:26:45.410 --> 01:26:45.690
halt

01:26:45.690 --> 01:26:46.590
dass man quasi

01:26:46.590 --> 01:26:47.870
wirklich eine komplette

01:26:47.870 --> 01:26:49.190
Seite halt

01:26:49.190 --> 01:26:49.910
irgendwie mal so

01:26:49.910 --> 01:26:50.450
da drüber läuft

01:26:50.450 --> 01:26:50.990
über alle Seiten

01:26:50.990 --> 01:26:51.470
Unterseiten

01:26:51.470 --> 01:26:51.930
die es da so gibt

01:26:51.930 --> 01:26:54.670
ähm

01:26:54.670 --> 01:26:55.990
ja

01:26:55.990 --> 01:26:56.470
äh

01:26:56.470 --> 01:26:57.430
da ist aber nicht so viel

01:26:57.430 --> 01:26:57.930
also wenn

01:26:57.930 --> 01:26:58.430
wenn's darum geht

01:26:58.430 --> 01:26:59.070
da Informationen

01:26:59.070 --> 01:26:59.970
aus einer Seite zu holen

01:26:59.970 --> 01:27:00.670
das muss man dann alles

01:27:00.670 --> 01:27:01.450
mehr oder weniger

01:27:01.450 --> 01:27:02.170
selber schreiben

01:27:02.170 --> 01:27:02.730
und dann

01:27:02.730 --> 01:27:03.050
äh

01:27:03.050 --> 01:27:03.430
das kann man dann

01:27:03.430 --> 01:27:04.430
per Beautiful-Zug tun

01:27:04.430 --> 01:27:05.730
oder LXML irgendwie

01:27:05.730 --> 01:27:07.170
also das ist auch sowas

01:27:07.170 --> 01:27:08.230
bei Request-HTML

01:27:08.230 --> 01:27:08.770
das ÖÖ

01:27:08.770 --> 01:27:09.270
der der

01:27:09.270 --> 01:27:10.230
Standardweg

01:27:10.230 --> 01:27:11.090
wie man da Elemente

01:27:11.090 --> 01:27:11.870
selektiert oder so

01:27:11.870 --> 01:27:12.770
ist über äh

01:27:12.770 --> 01:27:13.610
CSS-Selektoren

01:27:13.610 --> 01:27:14.610
das ist auch sehr angenehm

01:27:14.610 --> 01:27:15.190
weil das macht man ja

01:27:15.190 --> 01:27:16.170
im Browser normalerweise auch so

01:27:16.170 --> 01:27:16.810
mhm

01:27:16.810 --> 01:27:18.550
auch im JavaScript-Bereich

01:27:18.550 --> 01:27:19.670
mhm

01:27:19.670 --> 01:27:20.550
ja

01:27:20.550 --> 01:27:21.410
äh

01:27:21.410 --> 01:27:22.650
und ähm

01:27:22.650 --> 01:27:23.390
Scrapey

01:27:23.390 --> 01:27:23.790
äh

01:27:23.790 --> 01:27:24.630
gibt eine ganze Menge

01:27:24.630 --> 01:27:25.630
Infrastruktur

01:27:25.630 --> 01:27:26.270
äh

01:27:26.270 --> 01:27:27.170
wenn man jetzt so einen

01:27:27.170 --> 01:27:28.090
Scraper bauen möchte

01:27:28.090 --> 01:27:29.050
äh

01:27:29.050 --> 01:27:29.810
aber

01:27:29.810 --> 01:27:31.150
vom Inhalt her

01:27:31.150 --> 01:27:32.250
hilft einem das gar nicht so viel

01:27:32.250 --> 01:27:33.370
wenn man jetzt eine konkrete Seite hat

01:27:33.370 --> 01:27:34.710
oder irgendwie Sachen rausziehen möchte

01:27:34.710 --> 01:27:34.990
dann

01:27:34.990 --> 01:27:37.370
hilft einem Scrapey da nicht

01:27:37.370 --> 01:27:37.790
ja

01:27:37.790 --> 01:27:38.890
wenn man jetzt rausgefunden hat

01:27:38.890 --> 01:27:39.430
wie man das tut

01:27:39.430 --> 01:27:40.570
und möchte das jetzt skalieren

01:27:40.570 --> 01:27:41.350
auf äh

01:27:41.350 --> 01:27:41.870
keine Ahnung

01:27:41.870 --> 01:27:42.570
100.000 Seiten

01:27:42.570 --> 01:27:43.890
und möchte das mit 5 Prozessen

01:27:43.890 --> 01:27:45.050
auf irgendeinem Server irgendwie

01:27:45.050 --> 01:27:46.430
dann ist Scrapey auch wieder

01:27:46.430 --> 01:27:47.290
eine sinnvolle Geschichte

01:27:47.290 --> 01:27:48.870
ja

01:27:48.870 --> 01:27:49.630
äh

01:27:49.630 --> 01:27:50.510
und es gibt halt

01:27:50.510 --> 01:27:50.530
äh

01:27:50.530 --> 01:27:50.970
irgendwie eine Firma

01:27:50.970 --> 01:27:52.210
die ganz eine Menge Services

01:27:52.210 --> 01:27:53.770
um diesen Kram herum baut

01:27:53.770 --> 01:27:55.090
ähm

01:27:55.090 --> 01:27:55.510
ja

01:27:55.510 --> 01:27:56.490
hab ich jetzt auch wieder vergessen

01:27:56.490 --> 01:27:56.710
aber

01:27:56.710 --> 01:27:57.390
sagen wir mal so

01:27:57.390 --> 01:27:58.150
also es gibt

01:27:58.150 --> 01:27:58.650
wir haben

01:27:58.650 --> 01:27:59.910
ich hab schon für diverse

01:27:59.910 --> 01:28:01.090
Firmen Sachen gemacht

01:28:01.090 --> 01:28:02.250
oder auch schon für Firmen gearbeitet

01:28:02.250 --> 01:28:02.970
die halt auch damit

01:28:02.970 --> 01:28:03.830
immer wieder Probleme hatten

01:28:03.830 --> 01:28:05.530
äh

01:28:05.530 --> 01:28:05.850
äh

01:28:05.850 --> 01:28:06.710
Scraping ist halt so ein Ding

01:28:06.710 --> 01:28:07.670
was immer wieder auftaucht

01:28:07.670 --> 01:28:08.250
was man immer mal

01:28:08.250 --> 01:28:09.530
immer mal wieder machen muss

01:28:09.530 --> 01:28:11.130
und ähm

01:28:11.130 --> 01:28:12.470
Requests.html

01:28:12.470 --> 01:28:13.370
ist tatsächlich so die

01:28:13.370 --> 01:28:14.910
angenehmste

01:28:14.910 --> 01:28:15.550
äh

01:28:15.550 --> 01:28:16.910
Lösung

01:28:16.910 --> 01:28:17.730
für dieses Problem

01:28:17.730 --> 01:28:18.290
das mir

01:28:18.290 --> 01:28:19.810
die mir bisher über den Weg gelaufen ist

01:28:19.810 --> 01:28:20.510
deswegen wollte ich das mal

01:28:20.510 --> 01:28:20.750
erwähnen

01:28:20.750 --> 01:28:21.230
dass es das gibt

01:28:21.230 --> 01:28:22.130
und dass es halt nett ist

01:28:22.130 --> 01:28:23.210
und genau

01:28:23.210 --> 01:28:23.690
wenn man halt

01:28:23.690 --> 01:28:24.930
das Problem hat

01:28:24.930 --> 01:28:26.870
das Template zu extrahieren

01:28:26.870 --> 01:28:27.470
aus äh

01:28:27.470 --> 01:28:28.090
aus solchen Seiten

01:28:28.090 --> 01:28:28.990
und da Sachen rauszuparsen

01:28:28.990 --> 01:28:29.690
dann ist es halt

01:28:29.690 --> 01:28:30.790
sollte man sich die Pars

01:28:30.790 --> 01:28:31.730
und Zeugfunktionen

01:28:31.730 --> 01:28:32.330
und Requests.html

01:28:32.330 --> 01:28:32.890
einmal angucken

01:28:32.890 --> 01:28:33.770
weil das ist echt sehr nett

01:28:33.770 --> 01:28:35.030
ja

01:28:35.030 --> 01:28:35.530
okay

01:28:35.530 --> 01:28:36.510
äh

01:28:36.510 --> 01:28:37.270
genau das war's

01:28:37.270 --> 01:28:38.550
das war's im Grunde schon

01:28:38.550 --> 01:28:39.730
ja dann würde ich sagen

01:28:39.730 --> 01:28:41.070
kam ja Request hatte mit Pars

01:28:41.070 --> 01:28:41.690
ja

01:28:41.690 --> 01:28:42.250
kurz

01:28:42.250 --> 01:28:42.870
ähm

01:28:42.870 --> 01:28:43.970
nächstes Thema war

01:28:43.970 --> 01:28:45.130
der Hass mit dem Resvy

01:28:45.130 --> 01:28:45.670
äh

01:28:45.670 --> 01:28:46.370
was ist da passiert

01:28:46.370 --> 01:28:47.890
ist was kaputt gegangen

01:28:47.890 --> 01:28:48.530
ja ja

01:28:48.530 --> 01:28:49.690
Chaos vor Weihnachten

01:28:49.690 --> 01:28:49.970
ich meine

01:28:49.970 --> 01:28:50.490
äh

01:28:50.490 --> 01:28:51.810
ja

01:28:51.810 --> 01:28:52.870
genau

01:28:52.870 --> 01:28:53.750
das ist irgendwie schade

01:28:53.750 --> 01:28:54.030
ich hätte

01:28:54.030 --> 01:28:54.270
oh

01:28:54.270 --> 01:28:56.230
das Grundproblem war irgendwie

01:28:56.230 --> 01:28:57.290
das ähm

01:28:57.290 --> 01:28:58.170
das hab ich auch schon seit

01:28:58.170 --> 01:29:00.030
seit über einem Jahr

01:29:00.030 --> 01:29:00.430
äh

01:29:00.430 --> 01:29:01.130
hab ich das Problem

01:29:01.130 --> 01:29:02.310
dass ab und zu

01:29:02.310 --> 01:29:02.970
das Factoring

01:29:02.970 --> 01:29:03.410
auf meinem

01:29:03.410 --> 01:29:04.830
DSL-Anschluss ausfällt

01:29:04.830 --> 01:29:06.130
aha

01:29:06.130 --> 01:29:08.570
das liegt dann im DSL-Anbieter

01:29:08.570 --> 01:29:09.110
äh

01:29:09.110 --> 01:29:09.750
ich weiß ehrlich gesagt

01:29:09.750 --> 01:29:10.630
nicht so genau woran das liegt

01:29:10.630 --> 01:29:11.670
aber

01:29:11.670 --> 01:29:13.090
ähm

01:29:13.090 --> 01:29:13.830
äh

01:29:13.830 --> 01:29:14.690
ja ich seh halt

01:29:14.690 --> 01:29:15.210
dass es passiert

01:29:15.210 --> 01:29:16.590
ich hab so eine

01:29:16.590 --> 01:29:17.210
Fritzbox

01:29:17.210 --> 01:29:18.050
da kann man dann sehen

01:29:18.050 --> 01:29:19.870
ähm

01:29:19.870 --> 01:29:20.470
ähm

01:29:20.470 --> 01:29:21.290
quasi da

01:29:21.290 --> 01:29:22.090
da steht dann irgendwie

01:29:22.090 --> 01:29:22.430
äh

01:29:22.430 --> 01:29:24.230
G-Vector ist irgendwie aus

01:29:24.230 --> 01:29:24.650
oder so

01:29:24.650 --> 01:29:24.870
ne

01:29:24.870 --> 01:29:25.570
da kann man irgendwie nachgucken

01:29:25.570 --> 01:29:26.010
was das bedeutet

01:29:26.010 --> 01:29:26.330
und dann so

01:29:26.330 --> 01:29:26.890
ja das Factoring

01:29:26.890 --> 01:29:27.130
ist irgendwie aus

01:29:27.130 --> 01:29:28.390
was für so unwissenden Hörer

01:29:28.390 --> 01:29:29.150
was ist Factoring

01:29:29.150 --> 01:29:29.930
ach Gott

01:29:29.930 --> 01:29:30.310
Factoring

01:29:30.310 --> 01:29:30.950
das ist so ein

01:29:30.950 --> 01:29:31.570
so ein Kuppel

01:29:31.570 --> 01:29:31.850
äh

01:29:31.850 --> 01:29:32.690
also wir haben ja

01:29:32.690 --> 01:29:33.670
in Deutschland diese

01:29:33.670 --> 01:29:34.730
äh

01:29:34.730 --> 01:29:36.370
unvergleichliche

01:29:36.370 --> 01:29:37.430
klingelnde Drahtkupfer

01:29:37.430 --> 01:29:37.890
äh

01:29:37.890 --> 01:29:38.230
irgendwie

01:29:38.230 --> 01:29:40.330
Telefoninfrastruktur

01:29:40.330 --> 01:29:41.230
äh

01:29:41.230 --> 01:29:42.270
vielleicht nicht mehr so

01:29:42.270 --> 01:29:43.050
ganz zeitgemäß ist

01:29:43.050 --> 01:29:43.670
aber äh

01:29:43.670 --> 01:29:44.190
liebevoll

01:29:44.190 --> 01:29:44.530
äh

01:29:44.530 --> 01:29:45.610
auch ins 21. Jahrhundert

01:29:45.610 --> 01:29:45.910
äh

01:29:45.910 --> 01:29:46.790
irgendwie gerettet wurde

01:29:46.790 --> 01:29:48.690
weil äh

01:29:48.690 --> 01:29:49.030
ja

01:29:49.030 --> 01:29:50.450
äh

01:29:50.450 --> 01:29:52.410
das ist natürlich

01:29:52.410 --> 01:29:53.010
für die Telekom

01:29:53.010 --> 01:29:53.850
irgendwie angenehmer ist

01:29:53.850 --> 01:29:54.990
äh

01:29:54.990 --> 01:29:55.190
äh

01:29:55.190 --> 01:29:55.730
Gewinn zu machen

01:29:55.730 --> 01:29:56.410
mit äh

01:29:56.410 --> 01:29:57.950
Dingen die der Bund mal investiert hat

01:29:57.950 --> 01:29:59.450
mit Geld das der Bund mal investiert hat

01:29:59.450 --> 01:30:00.130
und dann mit der Entlastung

01:30:00.130 --> 01:30:00.790
weiter Geld zu verdienen

01:30:00.790 --> 01:30:02.790
und wenn

01:30:02.790 --> 01:30:03.510
wenn man selber was

01:30:03.510 --> 01:30:04.570
ja nicht so

01:30:04.570 --> 01:30:04.970
naja

01:30:04.970 --> 01:30:05.570
auf jeden Fall

01:30:05.570 --> 01:30:05.990
ähm

01:30:05.990 --> 01:30:06.810
das Problem ist

01:30:06.810 --> 01:30:07.470
ähm

01:30:07.470 --> 01:30:08.830
dass bei Kupfer

01:30:08.830 --> 01:30:09.390
ist halt irgendwie

01:30:09.390 --> 01:30:10.510
relativ schnell Schluss

01:30:10.510 --> 01:30:11.870
so mit das aktuelle DSL

01:30:11.870 --> 01:30:13.990
DSL Technik

01:30:13.990 --> 01:30:14.670
zieht da schon so

01:30:14.670 --> 01:30:15.730
alles was an

01:30:15.730 --> 01:30:17.070
was man so an Tricks

01:30:17.070 --> 01:30:17.550
machen kann

01:30:17.550 --> 01:30:18.190
um da mehr Daten

01:30:18.190 --> 01:30:18.790
drüber zu kriegen

01:30:18.790 --> 01:30:20.230
wird halt gemacht

01:30:20.230 --> 01:30:20.430
äh

01:30:20.430 --> 01:30:21.810
also alles Kabel

01:30:21.810 --> 01:30:22.530
was man da in die Erde

01:30:22.530 --> 01:30:22.950
verlegt hat

01:30:22.950 --> 01:30:23.730
ist quasi voll

01:30:23.730 --> 01:30:24.870
ja also da

01:30:24.870 --> 01:30:25.890
da geht einfach nicht mehr drüber

01:30:25.890 --> 01:30:26.590
da ist man halt einfach

01:30:26.590 --> 01:30:28.090
an den physikalischen Grenzen

01:30:28.090 --> 01:30:29.010
was man da machen kann

01:30:29.010 --> 01:30:31.190
und ähm

01:30:31.190 --> 01:30:32.210
naja da

01:30:32.210 --> 01:30:33.330
das einzige

01:30:33.330 --> 01:30:34.190
was dann halt noch blieb

01:30:34.190 --> 01:30:35.050
ist sozusagen

01:30:35.050 --> 01:30:35.410
sich

01:30:35.410 --> 01:30:36.830
äh

01:30:36.830 --> 01:30:37.230
äh

01:30:37.230 --> 01:30:38.990
Frequenzen irgendwie

01:30:38.990 --> 01:30:39.910
mit anderen zu teilen

01:30:39.910 --> 01:30:40.410
so ein bisschen

01:30:40.410 --> 01:30:42.010
so lange die nicht benutzt werden

01:30:42.010 --> 01:30:42.910
benutzt man die halt dann mit

01:30:42.910 --> 01:30:45.590
was dann aber dazu führt

01:30:45.590 --> 01:30:46.070
dass man

01:30:46.070 --> 01:30:46.670
auf der

01:30:46.670 --> 01:30:48.930
äh

01:30:48.930 --> 01:30:49.890
äh

01:30:49.890 --> 01:30:50.410
auf der Seite

01:30:50.410 --> 01:30:50.690
wo man

01:30:50.690 --> 01:30:51.630
wo man einen Anschluss hat

01:30:51.630 --> 01:30:53.210
das muss halt

01:30:53.210 --> 01:30:54.210
alles aus einer Hand kommen

01:30:54.210 --> 01:30:54.690
ja wenn jetzt

01:30:54.690 --> 01:30:55.130
äh

01:30:55.130 --> 01:30:55.550
sozusagen

01:30:55.550 --> 01:30:56.730
äh

01:30:56.730 --> 01:30:58.290
man zwei unterschiedliche Provider hat

01:30:58.290 --> 01:31:00.010
ja an einem

01:31:00.010 --> 01:31:00.770
also man hat immer

01:31:00.770 --> 01:31:02.750
das Telefonkabel geht so

01:31:02.750 --> 01:31:03.030
von der

01:31:03.030 --> 01:31:03.890
dieser TAE-Dose

01:31:03.890 --> 01:31:04.610
die man an der Wand hat

01:31:04.610 --> 01:31:06.830
geht halt zu irgendeinem

01:31:06.830 --> 01:31:07.330
Gerät

01:31:07.330 --> 01:31:08.350
von dem Provider

01:31:08.350 --> 01:31:08.870
äh

01:31:08.870 --> 01:31:09.390
sozusagen

01:31:09.390 --> 01:31:09.790
in einem

01:31:09.790 --> 01:31:10.750
in so einem

01:31:10.750 --> 01:31:11.550
zum HVT

01:31:11.550 --> 01:31:12.230
oder zum

01:31:12.230 --> 01:31:13.010
zum Hausanschluss

01:31:13.010 --> 01:31:14.010
und dann zum HVT

01:31:14.010 --> 01:31:14.470
ja

01:31:14.470 --> 01:31:15.850
ich weiß gar nicht

01:31:15.850 --> 01:31:16.210
wie man das nennt

01:31:16.210 --> 01:31:16.770
das ist halt irgendwie

01:31:16.770 --> 01:31:17.330
so ein grauer Kasten

01:31:17.330 --> 01:31:17.830
auf der Straße

01:31:17.830 --> 01:31:18.430
so wenn die

01:31:18.430 --> 01:31:19.330
wenn die brummen

01:31:19.330 --> 01:31:20.130
und da Lüfter drin sind

01:31:20.130 --> 01:31:20.390
dann ist das

01:31:20.390 --> 01:31:20.650
dann ist das gut

01:31:20.650 --> 01:31:21.350
dann ist das wahrscheinlich

01:31:21.350 --> 01:31:22.450
irgendwie so schnelleres DSL

01:31:22.450 --> 01:31:23.370
als wenn man das nicht brummt

01:31:23.370 --> 01:31:25.510
da ist irgendwie so eine Art

01:31:25.510 --> 01:31:26.590
Switch oder weißer Teufel

01:31:26.590 --> 01:31:26.890
irgendwie

01:31:26.890 --> 01:31:27.690
irgendwo sowas drin

01:31:27.690 --> 01:31:28.610
wo halt

01:31:28.610 --> 01:31:30.270
das Telefon-Dings

01:31:30.270 --> 01:31:30.750
da ankommt

01:31:30.750 --> 01:31:32.310
und ähm

01:31:32.310 --> 01:31:33.270
wenn man jetzt

01:31:33.270 --> 01:31:34.090
Vectoring macht

01:31:34.090 --> 01:31:35.210
dann bedeutet das halt

01:31:35.210 --> 01:31:35.510
sozusagen

01:31:35.510 --> 01:31:35.830
wenn

01:31:35.830 --> 01:31:37.730
auf der anderen Leitung

01:31:37.730 --> 01:31:38.470
sozusagen niemand

01:31:38.470 --> 01:31:39.390
niemand gerade

01:31:39.390 --> 01:31:40.330
irgendwie Daten überträgt

01:31:40.330 --> 01:31:41.330
dann

01:31:41.330 --> 01:31:43.510
gehe ich in einen Modus

01:31:43.510 --> 01:31:44.150
den ich eigentlich

01:31:44.150 --> 01:31:44.770
normalerweise nicht

01:31:44.770 --> 01:31:45.530
nicht nehmen darf

01:31:45.530 --> 01:31:45.950
weil das

01:31:45.950 --> 01:31:47.450
weil ich ansonsten

01:31:47.450 --> 01:31:48.290
quasi dem

01:31:48.290 --> 01:31:49.590
in die Daten reinfunke

01:31:49.590 --> 01:31:50.250
sozusagen

01:31:50.250 --> 01:31:50.370
also

01:31:50.370 --> 01:31:51.230
wenn beide das machen würden

01:31:51.230 --> 01:31:51.850
würde das schief gehen

01:31:51.850 --> 01:31:52.670
das heißt

01:31:52.670 --> 01:31:53.670
man muss sich irgendwie absprechen

01:31:53.670 --> 01:31:54.270
ist halt sagen

01:31:54.270 --> 01:31:54.430
ok

01:31:54.430 --> 01:31:55.330
solange niemand anders

01:31:55.330 --> 01:31:55.990
irgendwie Daten sendet

01:31:55.990 --> 01:31:56.670
kann ich das halt machen

01:31:56.670 --> 01:31:57.650
dann wird es halt schneller

01:31:57.650 --> 01:31:59.570
und

01:31:59.570 --> 01:32:00.930
ja

01:32:00.930 --> 01:32:01.830
so kriege ich dann halt

01:32:01.830 --> 01:32:03.190
über diese Kupferleitung

01:32:03.190 --> 01:32:03.870
dann doch noch wieder mal

01:32:03.870 --> 01:32:04.470
ein bisschen mehr rüber

01:32:04.470 --> 01:32:06.330
das Problem ist halt

01:32:06.330 --> 01:32:07.310
dann aber

01:32:07.310 --> 01:32:08.250
dass quasi

01:32:08.250 --> 01:32:09.030
ich nicht mehr

01:32:09.030 --> 01:32:09.550
sozusagen

01:32:09.550 --> 01:32:10.770
ein Endgerät

01:32:10.770 --> 01:32:12.350
von unterschiedlichen

01:32:12.350 --> 01:32:13.910
ähm

01:32:13.910 --> 01:32:14.970
Providern haben kann

01:32:14.970 --> 01:32:15.210
sondern

01:32:15.210 --> 01:32:16.670
da das ja koordiniert werden muss

01:32:16.670 --> 01:32:17.130
also ich gleich

01:32:17.130 --> 01:32:18.410
sozusagen das nur machen kann

01:32:18.410 --> 01:32:19.350
wenn ich alle

01:32:19.350 --> 01:32:20.350
äh

01:32:20.350 --> 01:32:21.690
alle Leitungen unter einer Kontrolle habe

01:32:21.690 --> 01:32:22.750
bedeutet das

01:32:22.750 --> 01:32:22.950
ich

01:32:22.950 --> 01:32:24.070
muss halt

01:32:24.070 --> 01:32:25.230
die Hardware muss aus einer Hand kommen

01:32:25.230 --> 01:32:26.130
und es muss eine Stelle geben

01:32:26.130 --> 01:32:26.690
die das kontrolliert

01:32:26.690 --> 01:32:28.410
das ist üblicherweise die Telekom

01:32:28.410 --> 01:32:29.990
und

01:32:29.990 --> 01:32:30.550
das heißt

01:32:30.550 --> 01:32:31.050
also ich finde

01:32:31.050 --> 01:32:32.310
ich habe halt meinen Vertrag bei O2

01:32:32.310 --> 01:32:32.810
aber

01:32:32.810 --> 01:32:34.290
äh

01:32:34.290 --> 01:32:35.070
sozusagen mein Anschluss

01:32:35.070 --> 01:32:35.850
läuft über die

01:32:35.850 --> 01:32:36.910
Telekom Hardware

01:32:36.910 --> 01:32:37.650
weil

01:32:37.650 --> 01:32:39.050
sich das ja mit allen anderen Anschlüssen

01:32:39.050 --> 01:32:39.850
irgendwie koordinieren muss

01:32:39.850 --> 01:32:40.090
jetzt

01:32:40.090 --> 01:32:40.530
so

01:32:40.530 --> 01:32:42.510
ja

01:32:42.510 --> 01:32:44.090
alles ein bisschen furchtbar

01:32:44.090 --> 01:32:44.830
ich meine

01:32:44.830 --> 01:32:45.510
es schlägt mich auch nicht weiter

01:32:45.510 --> 01:32:46.630
es funktioniert halt irgendwie

01:32:46.630 --> 01:32:47.550
es ist auch tatsächlich schneller

01:32:47.550 --> 01:32:48.410
also insofern ist alles gut

01:32:48.410 --> 01:32:48.850
aber

01:32:48.850 --> 01:32:49.690
äh

01:32:49.690 --> 01:32:50.330
bei mir war es halt so

01:32:50.330 --> 01:32:51.050
das fällt halt so

01:32:51.050 --> 01:32:52.390
fiel halt so alle paar Wochen aus

01:32:52.390 --> 01:32:53.210
war dann halt weg

01:32:53.210 --> 01:32:54.710
und fiel dann halt nicht zurück auf

01:32:54.710 --> 01:32:55.830
VDSL

01:32:55.830 --> 01:32:57.010
was so 50 MBit Down

01:32:57.010 --> 01:32:57.870
10 MBit Up ist

01:32:57.870 --> 01:32:58.870
sondern auf

01:32:58.870 --> 01:33:00.310
16 MBit

01:33:00.310 --> 01:33:01.090
äh

01:33:01.090 --> 01:33:02.330
oder 14 MBit Down

01:33:02.330 --> 01:33:03.950
und 768 MBit Up

01:33:03.950 --> 01:33:04.250
oder so

01:33:04.250 --> 01:33:05.070
auf 2002

01:33:05.070 --> 01:33:05.730
oder so

01:33:05.730 --> 01:33:06.670
ja was

01:33:06.670 --> 01:33:08.170
was für mich jetzt echt blöd ist

01:33:08.170 --> 01:33:08.910
weil äh

01:33:08.910 --> 01:33:09.130
ich

01:33:09.130 --> 01:33:10.370
das brauche ja

01:33:10.370 --> 01:33:11.290
ich brauche ja

01:33:11.290 --> 01:33:12.450
ich brauche ja die Bits

01:33:12.450 --> 01:33:13.590
ich brauche ja die Wandbreite

01:33:13.590 --> 01:33:14.950
Precious

01:33:14.950 --> 01:33:15.590
Wandbreite

01:33:15.590 --> 01:33:16.610
brauche ich doch eigentlich

01:33:16.610 --> 01:33:17.490
äh

01:33:17.490 --> 01:33:18.550
ich mache da ja auch Backups drüber

01:33:18.550 --> 01:33:19.030
und so

01:33:19.030 --> 01:33:19.250
ja

01:33:19.250 --> 01:33:19.650
Lita

01:33:19.650 --> 01:33:19.950
Lita

01:33:19.950 --> 01:33:20.150
ja

01:33:20.150 --> 01:33:20.310
ja

01:33:20.310 --> 01:33:21.070
ne ne

01:33:21.070 --> 01:33:21.690
das ist alles

01:33:21.690 --> 01:33:22.030
das ist alles

01:33:22.030 --> 01:33:24.010
seriöse

01:33:24.010 --> 01:33:26.070
Datenverarbeitung

01:33:26.070 --> 01:33:27.410
ähm

01:33:27.410 --> 01:33:28.830
und ähm

01:33:28.830 --> 01:33:29.830
ja

01:33:29.830 --> 01:33:31.350
das ist für mich total nervig

01:33:31.350 --> 01:33:32.390
und dann rufe ich dann halt immer an

01:33:32.390 --> 01:33:32.710
und dann

01:33:32.710 --> 01:33:33.290
wenn die sagen

01:33:33.290 --> 01:33:34.650
ok sie haben ein Ticket aufgemacht

01:33:34.650 --> 01:33:35.610
bei der Telekom

01:33:35.610 --> 01:33:36.330
dann geht da irgendwie

01:33:36.330 --> 01:33:37.630
so ein Diagnoserequest raus

01:33:37.630 --> 01:33:39.270
äh

01:33:39.270 --> 01:33:39.770
der halt

01:33:39.770 --> 01:33:41.410
meinen Port irgendwie da resetet

01:33:41.410 --> 01:33:42.890
und dann geht es wieder

01:33:42.890 --> 01:33:44.790
kannst du nicht automatisieren

01:33:44.790 --> 01:33:45.230
diesen Port

01:33:45.230 --> 01:33:45.410
genau

01:33:45.410 --> 01:33:46.050
das habe ich mir auch schon überlegt

01:33:46.050 --> 01:33:47.650
ob man das nicht irgendwie automatisieren kann

01:33:47.650 --> 01:33:47.890
oder so

01:33:47.890 --> 01:33:48.450
das ist

01:33:48.450 --> 01:33:49.270
manchmal ist es voll gut

01:33:49.270 --> 01:33:49.990
dann rufe ich da an

01:33:49.990 --> 01:33:50.290
und 5 Minuten später

01:33:50.290 --> 01:33:51.110
geht wieder alles

01:33:51.110 --> 01:33:52.810
und manchmal machen sie irgendwie

01:33:52.810 --> 01:33:53.530
dieses Ticket nicht

01:33:53.530 --> 01:33:54.610
oder sagen nur

01:33:54.610 --> 01:33:55.010
dass sie es tun

01:33:55.010 --> 01:33:55.530
tun es aber nicht

01:33:55.530 --> 01:33:56.090
oder weiß ich nicht

01:33:56.090 --> 01:33:57.990
und dann kann es auch mal sein

01:33:57.990 --> 01:33:58.490
dass ich eine Woche

01:33:58.490 --> 01:33:59.370
schlechtes Internet habe

01:33:59.370 --> 01:34:00.030
und das ist halt echt

01:34:00.030 --> 01:34:01.670
und ähm

01:34:01.670 --> 01:34:02.130
ja

01:34:02.130 --> 01:34:02.590
äh

01:34:02.590 --> 01:34:03.230
aber das ist halt

01:34:03.230 --> 01:34:04.150
durch so viele Iterationen

01:34:04.150 --> 01:34:04.810
gelaufen mittlerweile

01:34:04.810 --> 01:34:05.850
dass äh

01:34:05.850 --> 01:34:06.450
ich hatte da auch schon

01:34:06.450 --> 01:34:07.290
irgendwie 2 Stunden lang

01:34:07.290 --> 01:34:08.090
Gespräch mit irgendwie

01:34:08.090 --> 01:34:08.610
einem Techniker

01:34:08.610 --> 01:34:10.470
die konnten das dann auch ausmessen

01:34:10.470 --> 01:34:10.990
irgendwie meine

01:34:10.990 --> 01:34:12.370
meine lokalen Leitungen

01:34:12.370 --> 01:34:13.430
wie das denn mit denen aussieht

01:34:13.430 --> 01:34:15.750
haben rausgefunden

01:34:15.750 --> 01:34:16.130
irgendwo

01:34:16.130 --> 01:34:17.130
dass ich eine Reflexion

01:34:17.130 --> 01:34:18.010
in irgendeinem Kabel

01:34:18.010 --> 01:34:18.750
bei mir habe

01:34:18.750 --> 01:34:20.270
dann habe ich das Kabel ausgetauscht

01:34:20.270 --> 01:34:21.050
SattTV

01:34:21.050 --> 01:34:21.630
SattTV

01:34:21.630 --> 01:34:22.070
ich sag es dir

01:34:22.070 --> 01:34:22.670
irgendjemand

01:34:22.670 --> 01:34:23.550
der rennt da über dir

01:34:23.550 --> 01:34:24.510
der guckt SattTV gerne

01:34:24.510 --> 01:34:26.350
und die strahlen in dein Vectoring

01:34:26.350 --> 01:34:26.650
oder so

01:34:26.650 --> 01:34:28.190
ich weiß es nicht

01:34:28.190 --> 01:34:28.570
auf jeden Fall

01:34:28.570 --> 01:34:29.410
das fand ich schon beeindruckend

01:34:29.410 --> 01:34:29.770
da hat sich jemand

01:34:29.770 --> 01:34:30.490
auch wirklich Zeit genommen

01:34:30.490 --> 01:34:30.810
das hat

01:34:30.810 --> 01:34:33.070
das hat leider das Problem

01:34:33.070 --> 01:34:33.530
nicht gelöst

01:34:33.530 --> 01:34:34.830
das Vectoring ist noch später

01:34:34.830 --> 01:34:35.670
wieder ausgefallen

01:34:35.670 --> 01:34:37.890
und inzwischen ist es so weit

01:34:37.890 --> 01:34:38.430
dass es war auch

01:34:38.430 --> 01:34:39.310
ein Telekom Techniker da

01:34:39.310 --> 01:34:40.770
und das war auch alle sehr nett

01:34:40.770 --> 01:34:41.950
und der war dann auch im Keller

01:34:41.950 --> 01:34:43.030
hat sich das alles mal angeguckt

01:34:43.030 --> 01:34:43.470
und dann

01:34:43.470 --> 01:34:44.630
bei uns in der Wohnung auch

01:34:44.630 --> 01:34:44.890
und so

01:34:44.890 --> 01:34:47.070
und ähm

01:34:47.070 --> 01:34:47.570
ja

01:34:47.570 --> 01:34:48.090
der hat dann

01:34:48.090 --> 01:34:48.950
meinte dann so

01:34:48.950 --> 01:34:49.830
ja ich weiß nicht

01:34:49.830 --> 01:34:50.250
es geht irgendwie

01:34:50.250 --> 01:34:50.850
nicht so richtig gut

01:34:50.850 --> 01:34:51.590
oder manchmal passiert halt

01:34:51.590 --> 01:34:52.830
geht es halt schief

01:34:52.830 --> 01:34:54.230
weißt du wie die bei

01:34:54.230 --> 01:34:54.850
kurzer Exkurs

01:34:54.850 --> 01:34:55.330
wie die bei mir

01:34:55.330 --> 01:34:56.310
den Upload gefixt haben

01:34:56.310 --> 01:34:58.370
die haben in der Tiefverrage

01:34:58.370 --> 01:34:58.930
an dem Kabel

01:34:58.930 --> 01:34:59.630
einen Limiter entdeckt

01:34:59.630 --> 01:35:00.590
den sie wieder ausbauen mussten

01:35:00.590 --> 01:35:01.490
oh Gott

01:35:01.490 --> 01:35:03.090
nein toll

01:35:03.090 --> 01:35:03.590
also wir konnten ja

01:35:03.590 --> 01:35:04.590
stundenlang Geschichte erzählen

01:35:04.590 --> 01:35:05.430
über Kabel und Netze

01:35:05.430 --> 01:35:05.850
und ja

01:35:05.850 --> 01:35:06.630
ja

01:35:06.630 --> 01:35:07.930
das wäre vielleicht auch mal

01:35:07.930 --> 01:35:08.330
genau

01:35:08.330 --> 01:35:09.290
ja warum eigentlich nicht

01:35:09.290 --> 01:35:11.490
und ähm

01:35:11.490 --> 01:35:12.130
naja

01:35:12.130 --> 01:35:13.010
jedenfalls hieß es dann

01:35:13.010 --> 01:35:13.310
so okay

01:35:13.310 --> 01:35:13.630
wir haben

01:35:13.630 --> 01:35:14.670
wir haben sie einfach mal

01:35:14.670 --> 01:35:15.250
so auf ein anderes

01:35:15.250 --> 01:35:18.170
Kabelpaar umgeswitcht

01:35:18.170 --> 01:35:18.490
mal gucken

01:35:18.490 --> 01:35:18.910
wenn es

01:35:18.910 --> 01:35:19.910
wenn es dann geht

01:35:19.910 --> 01:35:20.230
dann ist ja

01:35:20.230 --> 01:35:20.390
dann ist es auch gut

01:35:20.390 --> 01:35:21.110
so

01:35:21.110 --> 01:35:22.870
aber im Verlauf

01:35:22.870 --> 01:35:23.590
dieser ganzen Prozedur

01:35:23.590 --> 01:35:23.950
musste ich halt

01:35:23.950 --> 01:35:24.490
alle meine Geräte

01:35:24.490 --> 01:35:25.190
irgendwie ausstecken

01:35:25.190 --> 01:35:26.350
und alles neu starten

01:35:26.350 --> 01:35:27.130
und irgendwie

01:35:27.130 --> 01:35:27.630
diverse Dinge

01:35:27.630 --> 01:35:29.050
ja und ähm

01:35:29.050 --> 01:35:30.030
wir sind jetzt übrigens

01:35:30.030 --> 01:35:31.270
vom Raspberry Pi

01:35:31.270 --> 01:35:32.250
auf Vectoring gekommen

01:35:32.250 --> 01:35:32.610
ach so Mist

01:35:32.610 --> 01:35:33.230
ja richtig

01:35:33.230 --> 01:35:33.750
wir waren ja eigentlich

01:35:33.750 --> 01:35:34.550
bei dem Raspberry Pi

01:35:34.550 --> 01:35:35.310
ja aber das ist

01:35:35.310 --> 01:35:38.950
das Problem dabei ist halt

01:35:38.950 --> 01:35:40.210
dass sich bei dieser Aktion

01:35:40.210 --> 01:35:41.310
halt der Raspberry Pi

01:35:41.310 --> 01:35:41.890
gemutet hat

01:35:41.890 --> 01:35:43.070
und

01:35:43.070 --> 01:35:44.710
ja ich hinterher

01:35:44.710 --> 01:35:45.310
festgestellt habe

01:35:45.310 --> 01:35:45.750
nachdem das Ding

01:35:45.750 --> 01:35:46.470
wieder hochgefahren ist

01:35:46.470 --> 01:35:47.750
dass ich mich nicht

01:35:47.750 --> 01:35:48.670
mehr drauf einloggen konnte

01:35:48.670 --> 01:35:50.130
ja da war dann

01:35:50.130 --> 01:35:50.210
ja

01:35:50.210 --> 01:35:51.110
mein Passwort vergisst

01:35:51.110 --> 01:35:51.650
dann ist natürlich

01:35:51.650 --> 01:35:53.390
ja das kann ich alles

01:35:53.390 --> 01:35:54.710
aber ich kann halt nicht mehr

01:35:54.710 --> 01:35:55.910
SH Demon ist da irgendwie

01:35:55.910 --> 01:35:56.570
nicht hochgefahren

01:35:56.570 --> 01:35:57.550
ich kann das Ding noch anpingen

01:35:57.550 --> 01:35:58.590
aber ich komme nicht mehr drauf

01:35:58.590 --> 01:35:59.910
blöd

01:35:59.910 --> 01:36:01.130
und dann habe ich halt

01:36:01.130 --> 01:36:01.670
irgendwie gemerkt

01:36:01.670 --> 01:36:01.970
so

01:36:01.970 --> 01:36:02.830
verdammt

01:36:02.830 --> 01:36:03.890
ich habe auch keinen Monitor mehr

01:36:03.890 --> 01:36:04.890
den ich da anschließen kann

01:36:04.890 --> 01:36:06.210
weil die habe ich inzwischen

01:36:06.210 --> 01:36:07.370
alle verschenkt

01:36:07.370 --> 01:36:07.650
oder

01:36:07.650 --> 01:36:09.550
irgendwie

01:36:09.550 --> 01:36:10.830
verschrottet

01:36:10.830 --> 01:36:11.450
bring ihn mal mit

01:36:11.450 --> 01:36:12.210
dann können wir hier anschließen

01:36:12.210 --> 01:36:12.630
naja

01:36:12.630 --> 01:36:14.210
das können wir mal probieren

01:36:14.210 --> 01:36:16.110
und jetzt weiß ich nicht so richtig

01:36:16.110 --> 01:36:16.670
wie ich das Ding

01:36:16.670 --> 01:36:17.410
wieder ans Laufen kriege

01:36:17.410 --> 01:36:18.790
und ja

01:36:18.790 --> 01:36:19.350
ich habe da noch

01:36:19.350 --> 01:36:19.610
diverse

01:36:19.610 --> 01:36:19.990
ein

01:36:19.990 --> 01:36:20.190
ein

01:36:20.190 --> 01:36:21.350
mein Freifunkruder

01:36:21.350 --> 01:36:22.030
hat es auch erwischt

01:36:22.030 --> 01:36:22.970
das ist auch irgendwie

01:36:22.970 --> 01:36:24.110
seit dieser Aktion

01:36:24.110 --> 01:36:24.830
läuft der irgendwie

01:36:24.830 --> 01:36:25.350
nicht mehr richtig

01:36:25.350 --> 01:36:26.730
überhaupt

01:36:26.730 --> 01:36:27.550
also in diesem Schrank

01:36:27.550 --> 01:36:28.650
in dem man ganze Elektronik

01:36:28.650 --> 01:36:29.730
Bastelkram

01:36:29.730 --> 01:36:30.290
sich befindet

01:36:30.290 --> 01:36:30.830
das ist irgendwie

01:36:30.830 --> 01:36:32.050
das ist da oben drin

01:36:32.050 --> 01:36:32.910
das Weihnachtschaos

01:36:32.910 --> 01:36:33.410
das ist ausgebrochen

01:36:33.410 --> 01:36:33.590
oh

01:36:33.590 --> 01:36:34.430
ein Jahr

01:36:34.430 --> 01:36:34.670
ja

01:36:34.670 --> 01:36:36.570
also das ist halt echt blöd

01:36:36.570 --> 01:36:37.230
weil jetzt habe ich keine

01:36:37.230 --> 01:36:38.330
Temperaturdaten mehr

01:36:38.330 --> 01:36:39.030
ich habe irgendwie

01:36:39.030 --> 01:36:40.570
meine Heimautomatisierung

01:36:40.570 --> 01:36:41.570
funktioniert nur noch so

01:36:41.570 --> 01:36:43.110
rudimentär

01:36:43.110 --> 01:36:43.990
quasi

01:36:43.990 --> 01:36:44.630
weil das lief ja alles

01:36:44.630 --> 01:36:45.250
über Home Assistant

01:36:45.250 --> 01:36:47.330
aber du kannst ja schon noch

01:36:47.330 --> 01:36:47.930
die also

01:36:47.930 --> 01:36:49.150
ich kann schon Lichter

01:36:49.150 --> 01:36:49.610
einstellen

01:36:49.610 --> 01:36:49.970
Wasser, Licht

01:36:49.970 --> 01:36:50.470
Suche

01:36:50.470 --> 01:36:51.170
funktioniert noch

01:36:51.170 --> 01:36:51.570
ja

01:36:51.570 --> 01:36:52.190
okay

01:36:52.190 --> 01:36:53.390
ja aber ich muss dafür

01:36:53.390 --> 01:36:55.110
diese Philips

01:36:55.110 --> 01:36:56.710
EU App benutzen

01:36:56.710 --> 01:36:57.090
oh

01:36:57.090 --> 01:36:57.970
wie so ein Tier

01:36:57.970 --> 01:37:00.730
du kommst auch noch

01:37:00.730 --> 01:37:01.370
in deine Wohnung rein

01:37:01.370 --> 01:37:01.650
zum Beispiel

01:37:01.650 --> 01:37:02.810
das geht alles

01:37:02.810 --> 01:37:03.830
ja

01:37:03.830 --> 01:37:04.970
man weiß ja immer nicht genau

01:37:04.970 --> 01:37:05.630
also wo das dann

01:37:05.630 --> 01:37:06.330
immer gesteuert wird

01:37:06.330 --> 01:37:06.790
wenn das dann so

01:37:06.790 --> 01:37:07.830
ein Gerät zentral

01:37:07.830 --> 01:37:08.750
ja

01:37:08.750 --> 01:37:10.210
ja

01:37:10.210 --> 01:37:11.030
der Raumautomatisierung

01:37:11.030 --> 01:37:11.590
mit Raspberry Pi

01:37:11.590 --> 01:37:12.230
ist ausgefallen

01:37:12.230 --> 01:37:12.930
weil tatsächlich

01:37:12.930 --> 01:37:13.590
dein Vectoring

01:37:13.590 --> 01:37:14.190
nicht funktionierte

01:37:14.190 --> 01:37:14.630
und deswegen

01:37:14.630 --> 01:37:15.310
die Geräte neu gestartet

01:37:15.310 --> 01:37:15.490
wurden

01:37:15.490 --> 01:37:16.610
und du nicht mehr

01:37:16.610 --> 01:37:17.110
PSS-Hacken

01:37:17.110 --> 01:37:17.410
denken kannst

01:37:17.410 --> 01:37:18.570
weil du kein Monitoring

01:37:18.570 --> 01:37:18.770
mehr hast

01:37:18.770 --> 01:37:19.110
und so

01:37:19.110 --> 01:37:19.750
nicht mehr auf

01:37:19.750 --> 01:37:20.850
das System zugreifst

01:37:20.850 --> 01:37:21.030
ja

01:37:21.030 --> 01:37:21.630
okay

01:37:21.630 --> 01:37:21.990
ja

01:37:21.990 --> 01:37:23.290
schlimm ne

01:37:23.290 --> 01:37:23.830
ja

01:37:23.830 --> 01:37:24.610
katastrophal

01:37:24.610 --> 01:37:24.990
ja

01:37:24.990 --> 01:37:26.250
also ein kleines

01:37:26.250 --> 01:37:26.950
Externs-Display

01:37:26.950 --> 01:37:27.510
ja

01:37:27.510 --> 01:37:28.130
mal mitbringen

01:37:28.130 --> 01:37:28.370
oder so

01:37:28.370 --> 01:37:28.630
ja

01:37:28.630 --> 01:37:29.510
also ich kriege

01:37:29.510 --> 01:37:29.950
dieses Problem

01:37:29.950 --> 01:37:30.410
wahrscheinlich schon

01:37:30.410 --> 01:37:30.870
irgendwie in den Griff

01:37:30.870 --> 01:37:31.530
ich muss halt bloß

01:37:31.530 --> 01:37:32.370
also halt irgendwie so

01:37:32.370 --> 01:37:33.110
wie viel Zeit

01:37:33.110 --> 01:37:33.410
der Joffen

01:37:33.410 --> 01:37:33.750
für seine

01:37:33.750 --> 01:37:34.330
Home-Automatisierung

01:37:34.330 --> 01:37:34.530
hat

01:37:34.530 --> 01:37:35.090
wenn er seit einem Jahr

01:37:35.090 --> 01:37:35.470
sich nicht mehr

01:37:35.470 --> 01:37:36.090
darum gekümmert hat

01:37:36.090 --> 01:37:37.150
dass der Wespi bootet

01:37:37.150 --> 01:37:37.410
ja

01:37:37.410 --> 01:37:37.850
der funktioniert

01:37:37.850 --> 01:37:38.250
ja

01:37:38.250 --> 01:37:39.710
ja

01:37:39.710 --> 01:37:40.330
ja

01:37:40.330 --> 01:37:40.790
und dann ist auch

01:37:40.790 --> 01:37:41.730
nochmal der Verstärker

01:37:41.730 --> 01:37:42.030
ist irgendwie

01:37:42.030 --> 01:37:42.850
das ist auch so

01:37:42.850 --> 01:37:43.310
in der Ecke

01:37:43.310 --> 01:37:44.090
der ist super laut

01:37:44.090 --> 01:37:44.470
der ist

01:37:44.470 --> 01:37:46.010
der lüftet immer so rum

01:37:46.010 --> 01:37:46.870
und zwar nicht ein bisschen

01:37:46.870 --> 01:37:47.670
sondern der ist so richtig

01:37:47.670 --> 01:37:48.130
fies laut

01:37:48.130 --> 01:37:48.570
da muss ich auch

01:37:48.570 --> 01:37:49.110
mir noch irgendwas

01:37:49.110 --> 01:37:49.690
einfallen lassen

01:37:49.690 --> 01:37:51.450
vielleicht kann ich das

01:37:51.450 --> 01:37:51.850
ja auch

01:37:51.850 --> 01:37:53.750
mit dieser ganzen

01:37:53.750 --> 01:37:56.410
Home-Automatisierungsgeschichte

01:37:56.410 --> 01:37:56.990
so ein bisschen

01:37:56.990 --> 01:37:58.550
mehr

01:37:58.550 --> 01:38:00.950
äh

01:38:00.950 --> 01:38:01.230
äh

01:38:01.230 --> 01:38:01.550
besser

01:38:01.550 --> 01:38:03.330
ich weiß noch nicht genau

01:38:03.330 --> 01:38:04.390
wie man das

01:38:04.390 --> 01:38:06.010
also da gibt es halt

01:38:06.010 --> 01:38:06.230
dann halt

01:38:06.230 --> 01:38:07.610
einige Optionen

01:38:07.610 --> 01:38:08.030
die man irgendwie

01:38:08.030 --> 01:38:08.370
nehmen könnte

01:38:08.370 --> 01:38:09.110
ich könnte zum Beispiel

01:38:09.110 --> 01:38:11.090
ähm

01:38:11.090 --> 01:38:13.730
mehrere Raspberry Pis

01:38:13.730 --> 01:38:14.110
nehmen

01:38:14.110 --> 01:38:15.030
und da irgendwie

01:38:15.030 --> 01:38:15.950
Boxen dranhängen

01:38:15.950 --> 01:38:17.030
weil ich hätte ja zum Beispiel

01:38:17.030 --> 01:38:17.810
auch sowas gerne wie

01:38:17.810 --> 01:38:18.750
dass die Musik

01:38:18.750 --> 01:38:19.790
in unterschiedlichen Räumen

01:38:19.790 --> 01:38:21.530
irgendwie

01:38:21.530 --> 01:38:23.190
die gleiche Musik

01:38:23.190 --> 01:38:24.390
abgespielt werden könnte

01:38:24.390 --> 01:38:24.850
zum Beispiel

01:38:24.850 --> 01:38:25.310
ja

01:38:25.310 --> 01:38:25.570
also ich

01:38:25.570 --> 01:38:26.610
theoretisch

01:38:26.610 --> 01:38:27.550
jetzt auch könnte

01:38:27.550 --> 01:38:28.090
aber einmal

01:38:28.090 --> 01:38:29.090
brummt der Verstärker so

01:38:29.090 --> 01:38:29.870
dass ich ihn nicht mehr benutze

01:38:29.870 --> 01:38:31.270
und dann müsste ich halt

01:38:31.270 --> 01:38:32.390
Kabel durch die ganze Wohnung ziehen

01:38:32.390 --> 01:38:33.210
was ich eigentlich auch nicht will

01:38:33.210 --> 01:38:33.850
ja

01:38:33.850 --> 01:38:35.410
und ich glaube

01:38:35.410 --> 01:38:36.590
das kann man mit Raspberry Pis

01:38:36.590 --> 01:38:37.290
auch hinkriegen

01:38:37.290 --> 01:38:38.150
oder man nimmt halt irgendwie

01:38:38.150 --> 01:38:38.870
eine kommerzielle Lösung

01:38:38.870 --> 01:38:39.370
man könnte auch

01:38:39.370 --> 01:38:40.650
diese Apple HomePods

01:38:40.650 --> 01:38:41.310
oder so verwenden

01:38:41.310 --> 01:38:41.690
aber

01:38:41.690 --> 01:38:43.530
mhm

01:38:43.530 --> 01:38:44.710
das ist schon ein bisschen teuer

01:38:44.710 --> 01:38:45.510
dass man das irgendwie

01:38:45.510 --> 01:38:45.890
in jeden Fall

01:38:45.890 --> 01:38:46.730
umstellen könnte

01:38:46.730 --> 01:38:47.870
du hast glaube ich

01:38:47.870 --> 01:38:48.810
das Protokoll umgestellt

01:38:48.810 --> 01:38:49.470
also nicht per Bluetooth

01:38:49.470 --> 01:38:50.310
sondern per

01:38:50.310 --> 01:38:51.350
Funk

01:38:51.350 --> 01:38:51.910
ja

01:38:51.910 --> 01:38:53.610
und zwar hast du die alten

01:38:53.610 --> 01:38:54.870
terrestrischen Frequenzen genommen

01:38:54.870 --> 01:38:56.110
die man jetzt abgeschaltet hat

01:38:56.110 --> 01:38:56.890
wenn ich mich recht erinnere

01:38:56.890 --> 01:38:58.310
das ist für die

01:38:58.310 --> 01:38:59.470
Temperatursensoren

01:38:59.470 --> 01:38:59.710
ja

01:38:59.710 --> 01:39:00.210
ja ja

01:39:00.210 --> 01:39:00.590
mhm

01:39:00.590 --> 01:39:01.790
aber so für Audio

01:39:01.790 --> 01:39:02.470
würde ich halt wahrscheinlich

01:39:02.470 --> 01:39:03.430
ganz normales WLAN nehmen

01:39:03.430 --> 01:39:03.770
nur

01:39:03.770 --> 01:39:05.090
ja

01:39:05.090 --> 01:39:06.850
müsste man auch mal

01:39:06.850 --> 01:39:07.110
also

01:39:07.110 --> 01:39:08.670
könnte man wahrscheinlich auch

01:39:08.670 --> 01:39:09.470
irgendwie so ein Python Projekt

01:39:09.470 --> 01:39:09.930
draus machen

01:39:09.930 --> 01:39:10.650
also ich meine

01:39:10.650 --> 01:39:11.370
jetzt gibt es Boxen

01:39:11.370 --> 01:39:11.990
die das können

01:39:11.990 --> 01:39:12.730
WLAN vernünftig

01:39:12.730 --> 01:39:14.050
ähm

01:39:14.050 --> 01:39:14.370
ne

01:39:14.370 --> 01:39:15.830
nicht so richtig

01:39:15.830 --> 01:39:16.330
also außer

01:39:16.330 --> 01:39:17.530
außer diese Fertiggeschichten

01:39:17.530 --> 01:39:18.110
von von Apple

01:39:18.110 --> 01:39:20.070
oder äh

01:39:20.070 --> 01:39:20.310
äh

01:39:20.310 --> 01:39:20.610
Sonos

01:39:20.610 --> 01:39:21.390
es gibt halt noch so eine

01:39:21.390 --> 01:39:23.010
Spezialprojektörlösung von Sonos

01:39:23.010 --> 01:39:23.430
äh

01:39:23.430 --> 01:39:24.250
waren die nicht mal pleite?

01:39:24.250 --> 01:39:25.150
Sonos?

01:39:25.150 --> 01:39:25.430
nö

01:39:25.430 --> 01:39:26.450
ich glaube den gibt es ganz gut

01:39:26.450 --> 01:39:28.090
dann habe ich mich verguckt

01:39:28.090 --> 01:39:29.230
aber ähm

01:39:29.230 --> 01:39:29.510
ja

01:39:29.510 --> 01:39:31.150
also man hat da auch so einen blöden

01:39:31.150 --> 01:39:32.550
Login-Effekt bei Sonos

01:39:32.550 --> 01:39:33.710
und ähm

01:39:33.710 --> 01:39:34.410
ein ein Log

01:39:34.410 --> 01:39:34.870
Login?

01:39:34.870 --> 01:39:35.270
Login?

01:39:35.270 --> 01:39:35.610
ach

01:39:35.610 --> 01:39:37.110
also du bist wieder auf das System gebunden

01:39:37.110 --> 01:39:37.950
ja genau

01:39:37.950 --> 01:39:42.710
nö die gibt

01:39:42.710 --> 01:39:43.350
die gibt es noch

01:39:43.350 --> 01:39:44.530
die gibt es noch

01:39:44.530 --> 01:39:45.770
mhm

01:39:45.770 --> 01:39:49.110
oh

01:39:49.110 --> 01:39:50.230
na

01:39:50.230 --> 01:39:50.470
Mann

01:39:50.470 --> 01:39:51.250
das ist der 10.9.

01:39:51.250 --> 01:39:51.650
ok

01:39:51.650 --> 01:39:54.190
na ja

01:39:54.190 --> 01:39:54.230
na ja

01:39:54.230 --> 01:39:56.490
na ja

01:39:56.490 --> 01:39:56.710
gut

01:39:56.710 --> 01:39:58.030
ein bisschen eingebrochen

01:39:58.030 --> 01:40:00.090
ja

01:40:00.090 --> 01:40:02.190
aber im Grunde

01:40:02.190 --> 01:40:02.970
könnte man da auch mal

01:40:02.970 --> 01:40:03.550
so ein bisschen was

01:40:03.550 --> 01:40:04.970
weil man kann ja

01:40:04.970 --> 01:40:05.830
von dem Raspberry Pi

01:40:05.830 --> 01:40:06.530
auch irgendwie

01:40:06.530 --> 01:40:08.050
den könnte man sozusagen

01:40:08.050 --> 01:40:09.410
als Endpunkt

01:40:09.410 --> 01:40:09.990
für WLAN

01:40:09.990 --> 01:40:10.930
irgendwie verwenden

01:40:10.930 --> 01:40:11.510
und dann halt

01:40:11.510 --> 01:40:12.250
das Audio

01:40:12.250 --> 01:40:13.630
über einen ganz normalen Verstärker

01:40:13.630 --> 01:40:14.150
und dann eine Box

01:40:14.150 --> 01:40:15.110
oder halt eine Aktivbox

01:40:15.110 --> 01:40:15.470
irgendwie

01:40:15.470 --> 01:40:15.710
ne

01:40:15.710 --> 01:40:15.970
ja

01:40:15.970 --> 01:40:16.210
ja

01:40:16.210 --> 01:40:16.690
wiedergeben

01:40:16.690 --> 01:40:18.370
ja

01:40:18.370 --> 01:40:19.770
das wäre halt noch so eine Idee

01:40:19.770 --> 01:40:20.190
ich muss da

01:40:20.190 --> 01:40:21.070
ich muss da mal irgendwas machen

01:40:21.070 --> 01:40:22.250
ich muss auf diesen Verstärker loswerden

01:40:22.250 --> 01:40:22.490
ich weiß nicht

01:40:22.490 --> 01:40:22.650
ja

01:40:22.650 --> 01:40:23.190
wir müssen mal

01:40:23.190 --> 01:40:24.310
so ein Display für dich organisieren

01:40:24.310 --> 01:40:24.850
dann irgendwie mal

01:40:24.850 --> 01:40:25.570
einen Monitor hinschleppen

01:40:25.570 --> 01:40:26.390
und dann kriegen wir das alles

01:40:26.390 --> 01:40:27.010
schon wieder zu laufen

01:40:27.010 --> 01:40:27.710
ja

01:40:27.710 --> 01:40:29.210
ja

01:40:29.210 --> 01:40:29.670
ja

01:40:29.670 --> 01:40:32.130
heute haben wir gar nicht so viel

01:40:32.130 --> 01:40:33.410
über Python geredet tatsächlich

01:40:33.410 --> 01:40:35.110
so ein kleines bisschen Exkurs mäßig

01:40:35.110 --> 01:40:36.010
was machen wir zum Pandas machen

01:40:36.010 --> 01:40:36.810
sehr viel über Web

01:40:36.810 --> 01:40:37.450
sehr viel Chaos

01:40:37.450 --> 01:40:38.730
ich hoffe ihr seht uns das heute nach

01:40:38.730 --> 01:40:40.090
obwohl wir der Python Podcast sind

01:40:40.090 --> 01:40:40.630
ja

01:40:40.630 --> 01:40:41.950
wenn ihr keine Lust habt

01:40:41.950 --> 01:40:42.670
dann hört einfach nicht zu

01:40:42.670 --> 01:40:43.950
ja ich glaube das ist ja zu spät

01:40:43.950 --> 01:40:45.090
wir sind ja schon am Ende der Sendung

01:40:45.090 --> 01:40:45.490
zu spät

01:40:45.710 --> 01:40:46.270
also dem

01:40:46.270 --> 01:40:46.930
ja

01:40:46.930 --> 01:40:48.030
ich hoffe es ist doch was ihr

01:40:48.030 --> 01:40:48.950
davon gehalten habt

01:40:48.950 --> 01:40:49.970
ob ihr mehr von solchen Folgen

01:40:49.970 --> 01:40:50.510
auch haben möchtet

01:40:50.510 --> 01:40:51.290
also ob ihr viel mehr

01:40:51.290 --> 01:40:52.850
über Python milchen möchtet

01:40:52.850 --> 01:40:53.530
wie immer an

01:40:53.530 --> 01:40:54.570
hello.pythonpodcast.de

01:40:54.570 --> 01:40:57.170
ich hoffe ihr hattet Spaß

01:40:57.170 --> 01:40:58.010
auch mit Pandas

01:40:58.010 --> 01:40:58.870
mit Request.html

01:40:58.870 --> 01:40:59.370
mit dem

01:40:59.370 --> 01:41:01.190
kleinen Einflug über den Recipe

01:41:01.190 --> 01:41:02.470
und mit ganz viel Browser

01:41:02.470 --> 01:41:03.630
und Rust

01:41:03.630 --> 01:41:04.710
und ja

01:41:04.710 --> 01:41:06.610
Safari Byte Range Radar

01:41:06.610 --> 01:41:07.010
und

01:41:07.010 --> 01:41:09.210
was man alles so machen kann

01:41:09.210 --> 01:41:11.150
wie mein Mainface Cloud

01:41:11.150 --> 01:41:11.750
auch von der Cebit

01:41:11.750 --> 01:41:12.550
ja

01:41:12.550 --> 01:41:13.130
ja

01:41:13.130 --> 01:41:14.550
ja

01:41:14.550 --> 01:41:15.390
GrafQL mit Django

01:41:15.390 --> 01:41:15.690
haben wir noch

01:41:15.690 --> 01:41:16.690
glaube ich erwähnt heute

01:41:16.690 --> 01:41:17.450
ja

01:41:17.450 --> 01:41:18.430
wir würden uns freuen

01:41:18.430 --> 01:41:19.230
wenn ihr das nächste Mal

01:41:19.230 --> 01:41:20.230
auf jeden Fall wieder zuhört

01:41:20.230 --> 01:41:21.190
genau

01:41:21.190 --> 01:41:22.270
und dann denke ich

01:41:22.270 --> 01:41:22.930
melden wir uns wieder

01:41:22.930 --> 01:41:24.390
im nächsten Jahr

01:41:24.390 --> 01:41:24.750
und

01:41:24.750 --> 01:41:26.590
mit der nächsten Folge

01:41:26.590 --> 01:41:27.470
in die Weihnachtspause

01:41:27.470 --> 01:41:28.550
wobei jetzt ja eigentlich

01:41:28.550 --> 01:41:29.610
zum Hören gar nicht Pause ist

01:41:29.610 --> 01:41:30.410
sondern nur

01:41:30.410 --> 01:41:32.530
ja vielleicht sollte es ja auch

01:41:32.530 --> 01:41:33.830
erst zwischen den Jahren

01:41:33.830 --> 01:41:34.110
oder

01:41:34.110 --> 01:41:35.070
schon

01:41:35.070 --> 01:41:35.890
dafür ist die Folge

01:41:35.890 --> 01:41:36.470
eigentlich auch gedacht

01:41:36.470 --> 01:41:37.770
na genau

01:41:37.770 --> 01:41:38.770
was zu hören hat auch

01:41:38.770 --> 01:41:40.190
ja

01:41:40.190 --> 01:41:41.290
ja

01:41:41.290 --> 01:41:42.230
uns hat es wieder Spaß gemacht

01:41:42.230 --> 01:41:42.850
euch auch

01:41:42.850 --> 01:41:43.810
und dann

01:41:43.810 --> 01:41:44.550
bis zum nächsten Mal

01:41:44.550 --> 01:41:45.670
bis zum nächsten Mal

01:41:45.670 --> 01:41:46.550
kommt gut rein

01:41:46.550 --> 01:41:47.310
kommt gut raus

01:41:47.310 --> 01:41:48.330
kommt gut wo auch immer hin

01:41:48.330 --> 01:41:48.670
ihr wollt

01:41:48.670 --> 01:41:49.990
tschüss

01:41:49.990 --> 01:41:50.570
tschüss
