Transkript: PP03 - Weihnachtsfolge

· Zurück zur Episode

Vollständiges Transkript der Episode. Zeitstempel beziehen sich auf die Audiowiedergabe.

Dominik

Ja, hallo liebe Hörerinnen und Hörer, willkommen beim Python Podcast.

Dominik

Diesmal in der Weihnachtsepisode.

Dominik

Ja, was machen wir hier eigentlich?

Dominik

Wir sind diesmal über Dominik unterm Dach.

Ja.

Dominik

Ich bin der Dominik und dabei ist natürlich wieder Jochen.

Dominik

Hallo Jochen.

Jochen

Ja, hallo, ich bin Jochen, genau.

Jochen

Und ja, das ist irgendwie ein sehr schöner.

Jochen

Das sieht ein bisschen aus wie eine Raumschiff-Zentrale, ehrlich gesagt.

Jochen

Das ist eine ganze Menge Monitore und Elektronikdinge.

Jochen

Ich bin ein wenig neidisch, muss ich sagen.

Dominik

Oh, das hört sich super an.

Dominik

Also ich bin auch immer neidisch auf deinen schönen Wintergarten, aber das probieren wir erstmal hier aus.

Dominik

Mal gucken, wie der Ton ist und wie unsere Hörer den finden.

Ja, das wird auch interessant.

Jochen

Das ist einfach jetzt ein anderes System, mit dem wir das aufnehmen.

Jochen

Und genau, wir nehmen wieder auf mit den beiden drahtlosen Mikrofonen.

Jochen

Letztes Mal hatte ich halt irgendwie so ein Biodynamics-Headset verwendet.

Jochen

Das war eigentlich ziemlich cool und es war auch vor allen Dingen schön, dass ich dann hören konnte, dass alles immer noch funktioniert und nicht irgendwie der Audiostream plötzlich weg ist.

Jochen

Aber es ist auch so ein bisschen, es isoliert einen.

Dominik

Du meinst mit letztes Mal die Django-Folge, die noch gar nicht ausgestrahlt worden ist.

Dominik

Wahrscheinlich ist es nicht.

Ja doch,

Jochen

also wenn wir die jetzt ausstrahlen, dann ist die schon ausgestrahlt.

Dominik

Ja?

Dominik

Also wir machen zuerst die Dango-Folge und dann die Weihnachtsfolge.

Dominik

Denke ich schon, ja.

Dominik

Ja, das finde ich super.

Dominik

Okay.

Dominik

Also da sind wir sogar in der dritten Episode offiziell.

Ja, genau.

Jochen

Wobei das natürlich auch wieder darauf ankommt, wann man anfängt zu zählen oder wie man anfängt zu zählen.

Bei Null?

Jochen

Ja, eigentlich sollte man ja bei 0 anfangen, genau.

Jochen

So, wir sind ja nicht bei Fortran hier.

Jochen

So, bei 1 anfangen zu zählen, ist ja im Grunde irgendwie falsch, so für mich als irgendwie Computeraffinen.

Jochen

Also es gibt Mathematiker, die auch bei 1 anfangen zu zählen, aber das ist alles Unsinn.

Nee, dann muss man

Dominik

bei 0 anfangen.

Dominik

Natürlich ist jetzt die Frage, wenn wir jetzt bei Null anfangen zu zählen, haben wir ja trotzdem drei Episoden drin.

Dominik

Denn die Länge des Arrays wäre ja irgendwie.

Jochen

Es ist immer noch drei, aber wir werden erstmal in Nummer zwei.

Dominik

Ja, okay.

Dominik

Aber ich glaube, darüber müssen wir uns nochmal drüber.

Jochen

Ja, ich glaube, man kann mit einer in der Datenbank, das sind momentan tatsächlich die IDs der Datenbank, man kann in der ID, in der Datenbank, die fängt auch mit 1 an, nicht mit 0.

Naja.

Jochen

Ach, alles kaputt.

Jochen

Alle tolle Sachen werden dann nur mal kaputt gemacht.

Dominik

Ja, also genau.

Dominik

Kaputt ist direkt das nächste Stichwort, weil was machen wir heute?

Dominik

Heute wollen wir tatsächlich ein bisschen darüber erzählen, was alles nicht so richtig funktioniert.

Dominik

Vor allen Dingen, was der Jochen immer so im Web macht und was dann da nicht klappt.

Dominik

So an Pandas mit Request HTML, Paars mit seinem RaspPi, der hat nämlich Hass und muss weg.

Dominik

Und mit dem Verstärker von Jochen.

Dominik

Ja, da wollten wir am Ende ein bisschen euch über eigene Podcasts erzählen, was es so für interessante Dinge noch gibt.

Dominik

Ja, und diesmal so ein bisschen durcheinander.

Dominik

Ist ja die Weihnachtsfolge ein bisschen karakter.

Jochen

Genau, wir haben nicht wirklich was vorbereitet, sondern wir erzählen jetzt einfach mal so, was so passiert, was vielleicht auch ganz interessant sein kann.

Jochen

Und ich denke, vielleicht ist es sogar am besten einfach mal so, ja, wie geht es uns eigentlich so?

Dominik

Ja, erstmal für immer, als ihr Fragen, Anmerkungen, Kommentare, Lob hast, alles mögliche habt, schreibt an hallo.python-podcast.de.

Dominik

Und die Links und zusätzlichen Infos findet ihr in den Shownotes.

Dominik

Ja, Entschuldigung, ich wollte dich jetzt nicht unterbrechen.

Dominik

Direkt los.

Dominik

Was machen wir heute?

Dominik

Wir haben uns nicht richtig vorbereitet.

Dominik

Ja.

Jochen

Wir machen immer so querbet, alles mögliche.

Jochen

Genau.

Jochen

Und ja, aber genau, wie, wie, wie, wie.

Wie geht's uns?

Wie geht's dir auch?

Jochen

Ja, besser.

Jochen

Nachdem wir irgendwie letzten Monat bei einem Ausflug irgendwie in den Taunus einen Hund in die rechte Hand gebissen.

Jochen

Ich dachte mal, so ein bisschen bin ich eher so der Hundetyp statt Katzentyp, aber das muss wohl auf Gegenseitigkeit beruhen.

Jochen

Und wenn man von Hunden nicht so gemacht wird, dann.

Dominik

War erst wenigstens ein süßer Hund.

Jochen

Nee, nee.

Dominik

Oder herzlicher großer.

Ja, ja.

Jochen

Und das ist natürlich auch ein bisschen blöd, wenn man die Hand gebissen wird.

Jochen

Das ist einfach echt muss das sein.

Jochen

Aber da sind jetzt die Verbände ab und das sieht alles super aus.

Dominik

Wie hast du denn jetzt halt die Maus gescheut mit dem Fuß?

Jochen

Nee, tatsächlich mit der gleichen Hand.

Jochen

Ich habe keine Maus, ich habe ein Trackpad.

Dominik

Ah, ein Trackpad.

Dominik

Das ist ja fast ganz oldschool, also kein Trackball, ein Pad.

Jochen

Nein, ein Trackpad, genau.

Jochen

Und die Idee dabei ist sozusagen, dass ich möchte, dass meine Desktop-Arbeitsumgebung möglichst ähnlich ist wie meine Laptop-Arbeitsumgebung.

Jochen

Und da hat man ja auf dem Laptop hat man ja meistens auch ein Trackpad.

Jochen

Oder also in meinem Laptop habe ich ein Trackpad.

Dominik

Oder man nennt man sich eine Maus mit, ja.

Jochen

Und dann ist es halt sozusagen wenig Umstieg.

Jochen

Also das ist sozusagen die Idee, dass man da halt einen fließenden Übergang hat.

Jochen

Genau, und ich habe auch die gleiche Tastatur, sozusagen die gleiche Bluetooth-Tastatur am Desktop wie die Tastatur, die ich im Laptop habe.

Jochen

Und das hat eigentlich immer ganz gut funktioniert.

Jochen

Ich habe letztens umstellen müssen, weil blöderweise irgendwie die Tastatur an meinem Laptop nicht mehr so richtig geht.

Jochen

Was ein bekanntes Problem ist.

Jochen

Ich habe so ein 2016er Gurken-MacBook.

Jochen

Und da ist die Tastatur, die funktionieren halt dann irgendwann nicht mehr, wenn der Krümel sich zwischen den Tasten und dem Mechanik da irgendwie verhaken.

Dominik

Oh, das ist natürlich nicht so cool.

Dominik

Also, guck mal hier, also dann sowas.

Dominik

Ich kann jetzt eine Werbung machen.

Jochen

Ja, das sieht.

Dominik

Ich habe eine Cherry-Tastatur mit so Keks, die macht man einfach hier abmachen.

Wow.

Dominik

Und dann kann man die saubern und das kann man ja mit einem Caps so machen.

Das ist

Jochen

ganz cool.

Jochen

Das sieht auch super aus.

Jochen

Also die leuchtet auch und dann hat verschiedenfarbige Tasten und es sieht sehr robust aus alles.

Das ist echt gut.

Jochen

Ich habe ganz lange so eine alte IWM in den Kreisen der Benutzer dieser Tastatur, hieß das Ding auch Hackbrett.

Jochen

Weil es halt ein sehr kräftiges Geräusch macht bei der Benutzung.

Dominik

Das ist tatsächlich auch hier so.

Dominik

Also die Cherry-Klicks, die sind tatsächlich relativ laut.

Dominik

Also meine Frau beschwert sich, glaube ich, wenn ich direkt die in ihrer.

Jochen

Genau, sowas habe ich ganz lange verwendet.

Jochen

Also das ist halt, das hat ein Metallplatte unten drin, damit kann man wirklich Leute.

Jochen

Also das kann man nicht nur als Waffe im virtuellen Umfeld verwenden, sondern halt auch ganz so im Nahkampf bewährt sich das Ding auch.

Jochen

Und es ist halt nur so, das kommt aus einer Zeit, so die wurden Anfang der 80er irgendwie hergestellt.

Jochen

Und da hat noch jemand von Hand.

Jochen

Also ich hatte immer ein bisschen Schwierigkeiten, ich konnte die nicht, oder ich habe versucht, die nicht zu waschen zu sehr, weil die hat da hinten halt noch so einen Aufkleber drauf, wo jemand von Hand unterschrieben hat, dass die Qualitätskontrolle durch war und so.

Jochen

Okay.

Jochen

Also tolles Teil.

Jochen

Aber einmal.

Dominik

Warum nicht einfach eine Hacke?

Jochen

Mit Magneten irgendwie die Platte manipulieren, ja, das wäre natürlich eine Idee.

Jochen

Aber das war dann doch irgendwann zu unpraktisch.

Jochen

Also die Dinger sind auch riesengroß.

Jochen

Und ja, also eigentlich mein Wunsch, sozusagen eine möglichst ähnliche Umgebung auf dem Desktop zu haben wie auf dem Laptop.

Jochen

Hat dann dazu geführt, dass ich da einfach nicht mehr die gleichen Geschichten benutze, aber bin ich jetzt auch von weg, weil irgendwie funktioniert nicht mehr richtig irgendwie meine Laptop-Tastatur.

Jochen

Und ja, blöderweise kann ich jetzt auf meinen Laptop nicht einfach so weggeben.

Dominik

Also der Service hat dir gesagt, oh, schicken Sie doch das Gerät bitte einfach mal ein.

Dominik

Kommt es in etwa sechs bis acht Wochen wieder repariert zurück.

Jochen

Genau, ja.

Jochen

Dummerweise, ja, ich benutze es jetzt aber so für Sachen, mit denen ich mich einfach mal so eine Zeit lang aussetzen kann.

Dominik

Hast du keine zwei Ersatzgeräte?

Jochen

Ja, das war dann halt so meine Option.

Jochen

Da dachte ich dann so, okay, wenn das jetzt irgendwie, selbst wenn das halt nur ist, es dauert nur sechs Arbeitstage oder sowas, aber auch das ist schon so, dass ich mir dann sage, okay, da kann ich mir eigentlich auch ein Ersatzgerät kaufen, weil ja, das ist.

Jochen

Und ich hatte auch vor allen Dingen eine Versicherung für den.

Jochen

Ich habe also Apple Care für den Rechner, weil ich dachte, genau, ich möchte eigentlich ja nicht, dass mir finanzieller Schaden dadurch entsteht, wenn das Ding mal irgendwie kaputt geht oder so.

Jochen

Hab dann feststellen müssen, nützt alles nix.

Jochen

Ja, die sechs Tage kriege ich nicht weg, ich krieg auch kein Austauschgerät.

Jochen

Super, das heißt nächstes Mal keine Apple-Care mehr.

Dominik

Ja, also Leute, wir sind übrigens im Python-Podcast, in der Weihnachtsfäude.

Dominik

Leute eigentlich noch ein Grünwein anbieten oder sowas.

Jochen

Ja, genau.

Wir sollten uns einfach.

Jochen

Das habe ich übrigens, das habe ich mir tatsächlich mal überlegt, ob wir das nicht mehr machen könnten und vielleicht irgendwo in eine Bar setzen oder so.

Jochen

Ja.

Jochen

Und von da aus vollcasten.

Ziemlich gut.

Jochen

Weil, ja, man müsste halt blöderweise, also ich denke, man müsste die Leute vorher fragen, weil Tonaufnahmen in der Wahrheit ist ja vielleicht jetzt nicht so.

Dominik

Ja, ich glaube, man müsste einfach Leute vorher alle anderen rausschmeißen, damit die ganzen Nebengeräusche nicht mehr da sind.

Jochen

Ja, das wäre auch schwierig, aber es gibt so ein paar, wo man eventuell nicht stört.

Jochen

Also wenn man sich zum Beispiel in der Scare Bar, kann man sich vorne draußen hinsetzen.

Jochen

Da würde man jetzt nicht so stören und auch keine anderen Gäste aufnehmen.

Dominik

Die ist schon klar, dass es gerade geschneit hat, also vorgestern.

Jochen

Ja.

Dominik

Also draußen hinsetzen, also wir machen ja noch ein paar Folgen.

Also wir werden noch draußen.

Dominik

Wir fallen noch draußen, fallen mir jede Menge tolle Orte ein.

Ja.

Jochen

Ja, aber müssen wir mal gucken.

Jochen

Also das stelle ich mir eigentlich auch ganz interessant vor.

Jochen

Irgendwie gucken, wie sich so die Qualität irgendwie über die Zeit verändert, so mit zunehmend.

Dominik

Ja, also dann tatsächlich Bescheid, wenn ihr irgendwelche Anregungen, Anmerkungen habt, wenn ihr zu euch kommen sollen oder sowas, schreibt uns deine E-Mail.

Dominik

Die E-Mail habe ich ja schon eben genannt.

Dominik

Findet ihr auch in den Shownotes.

Dominik

Ja, fangen wir doch an mit Python jetzt, lieber Jochen.

Dominik

Was funktioniert alles nicht?

Dominik

Und du hast gesagt, was machst du die ganze Zeit?

Dominik

Und mit Web irgendwelchen Sachen und so.

Jochen

Das mache ich momentan viel.

Jochen

Und tatsächlich ist es auch nicht so, es ist halt nur so ein bisschen Python.

Jochen

Also das Backend ist alles Python.

Immerhin.

Jochen

Aber ich mache momentan auch viel auf der Client-Seite.

Jochen

Und da halt vor allen Dingen mit JavaScript.

Jochen

Was eigentlich auch inzwischen ganz gut geht.

Jochen

Das ist so, also ich habe immer mal wieder irgendwie bei JavaScript reingeschaut, ob das jetzt irgendwie inzwischen okay ist und verteidig immer furchtbar.

Jochen

Aber so inzwischen ist das eigentlich gar nicht mehr so furchtbar schlimm.

Jochen

Also ich mache jetzt einen JavaScript-Dialekt, der nennt sich TypeScript und mit so einer IDE, das ist zwar alles nicht so snappy, schnell, wie ich das eigentlich gern hätte, aber es ist eigentlich gut genug, dass man damit so entwickeln kann, dass es tatsächlich Spaß macht und man diese ganzen Hässlichkeiten nicht so wirklich wahrnimmt.

Dominik

Welche IDE ist das?

Jochen

Webstorm, verwende ich das.

Jochen

Das ist quasi auch IntelliJ basiert, so ähnlich schaden.

Dominik

Habe ich auch ja schon einige Male gehört, ja.

Jochen

Das ist eigentlich tatsächlich ganz gut.

Jochen

Und ja, das macht eigentlich, man kann so richtig auf keinen Seite quasi so programmieren, wie man das halt auf Serverseite auch gewohnt ist.

Jochen

Mit allem drum und dran.

Jochen

Aber was, ähm, und vor allen Dingen, also inzwischen sind ja auch die Browser so gut geworden, also die können halt eine ganze Menge, man kann ja tolle Sachen machen und es ist alles nicht mehr so super unterschiedlich, wie es früher mal war, wo man dann halt irgendwie für jeden Browser irgendwelche Ausnahmen machen musste.

Dominik

Es gibt keinen Browser mehr, für den man Ausnahmen machen muss.

Jochen

Ja, doch, leider schon.

Jochen

Es gibt, es gibt, ja, also alle Browser sind irgendwie benutzbar.

Jochen

Nein, es gibt einen Browser, der sich standhaft wert, irgendwie benutzt werden zu können.

Jochen

Und das ist heutzutage erstaunlicherweise Safari.

Safari ist echt so.

Dominik

Das ist schon wieder.

Dominik

Apple ist das neue Microsoft, oder?

Jochen

Ein bisschen schon, ja.

Jochen

Also Safari ist irgendwie so ein bisschen der neue Internet Explorer.

Jochen

Also den Internet Explorer gibt es ja jetzt irgendwie nicht mehr so richtig.

Dominik

Edge ist jetzt Chromium Engine oder wie wir.

Jochen

Oh, Edge war eigentlich gar nicht so schlecht.

Jochen

Edge hatte, glaube ich, eine eigene Engine.

Jochen

Ich weiß nicht, ob sie die vom IE übernommen haben, aber Edge war quasi so ein Neustart.

Jochen

Und soweit ich das gehört habe, war das eigentlich ganz gut, war brauchbar.

Jochen

Und so als aus Nutzerperspektive finde ich, es ist ja eigentlich toll, wenn es da Konkurrenz gibt und unterschiedliche Rendering-Engines.

Jochen

Also ich würde mir wünschen, dass sie sich alle, sie alle die gleichen APIs implementieren und dass sie halt kompatibel untereinander sind.

Jochen

Aber wenn es unterschiedliche Implementationen gibt, dann ist das eigentlich eine sehr gute Sache.

Jochen

Und von da aus gesehen war das eigentlich immer toll, dass es mit Edge halt da noch eine dritte Geschichte neben halt, ja, wie heißt die von Chrome Bing?

Dominik

Bing ist die Microsoft-Suchmaschine?

Jochen

Ne, nicht, ja, genau, nicht, nicht Bing.

Jochen

Blink.

Jochen

Blink heißt die, ja.

Jochen

Und das Ding von WebKit von Safari.

Jochen

Aber das ist eigentlich basiert auf dem gleichen Code.

Jochen

Das ist basiert auf KHTML aus dem KDE-Projekt.

Jochen

Ganz früher.

Jochen

Da kommt das her und dann war.

Jochen

Oh, wieder

Dominik

was zu lernen, KDE-Koder.

Jochen

Dann hat Apple das quasi in WebKit eingebaut und dann war Chrome basierte ganz lange auf WebKit.

Jochen

Auch und dann haben sie WebKit irgendwie weggeforgt, weil ihnen die Entwicklung da nicht mehr schnell genug ging und haben da ihre eigene Engine draus gebaut und die heißt jetzt Blink irgendwie.

Glaub ich.

Jochen

Und insofern war WebKit und Chrome, das war immer ziemlich ähnlich.

Jochen

Und dann gab es halt noch Firefox, hat ja irgendwie eine eigene Engine noch.

Dominik

Und Opera hatte damals auch eine eigene Engine oder war das Operation?

Jochen

Ja, doch, ganz am Anfang, aber die sind relativ schnell auf irgendwas anderes umgestiegen.

Jochen

Ich weiß aber nicht mehr was.

Jochen

Ja, aber Opera spielt leider nicht mehr so eine große Rolle in der Stadt.

Dominik

Vor drei Jahren sind sie auch mal auf Chromium umgestellt oder so.

Ja, ja.

Jochen

Opera hat ein Feature, was andere Browser nicht haben.

Jochen

Und das führt dazu, dass Opera teilweise in so Ländern wie Indien oder teilweise auch Südostasien manchen, also von Indien weiß ich es relativ sicher, gibt es irgendwie noch, haben 20, 20% des Traffics geht über Opera.

Jochen

Und man sagt, hä, warum das denn?

Jochen

Und der Grund ist, dass die so einen quasi grafischen Browser betreiben.

Jochen

Also man hat auf dem Handy halt sozusagen, sieht man nur ein Bild.

Jochen

Also es wird einem nur das gerenderte Bild geschickt, was man halt so runterkomprimieren kann, dass das halt nur ganz wenig Traffic verbraucht, weil die da halt so komische Tarife haben.

Jochen

Und der eigentliche Browser läuft irgendwo bei der Firma Opera selber.

Dominik

Okay, das heißt, man kriegt jedes Mal nur ein Bild und wenn man irgendwas browsen muss, dann.

Jochen

Ja, wenn man irgendwo draufklickt, dann wird halt zurückgeschickt, was man da draufgeklickt hat.

Jochen

Und das ist halt eine ganz interessante Geschichte.

Jochen

Das ist ziemlich seltsam, aber es scheint wohl dann halt auch mit ganz wenig Daten noch so halbwegs zu funktionieren.

Jochen

Deswegen gibt es da irgendwie noch so einen komischen Nischenmarkt für.

Jochen

Aber im Grunde spielt Opera keine wirkliche Rolle mehr.

Jochen

Und ja, Firefox hat ja jetzt auch umgestellt, sozusagen auf Rust, auf eine neue Sprache und auch eine neue Render-Engine.

Jochen

Das ist übrigens auch, wenn man das längere Zeit nicht, wenn man längere Zeit Firefox nicht ausprobiert hat, sollte man das vielleicht mal tun.

Jochen

So seit einem Jahr oder etwas mehr, weiß nicht genau.

Jochen

Gibt es da, basiert das jetzt auf einer Rust-Engine.

Jochen

Und die ist schnell, schick, toll, das ist irgendwie echt super und auch sehr, also das Ding ist halt tatsächlich konkurrenzfähig.

Jochen

Und ja, so im letzten Jahr hatte man dann quasi so drei unterschiedliche Rendering-Engines.

Jochen

Sozusagen halt die von Firefox, die von Chrome und die von Microsoft.

Jochen

Und inzwischen gibt es jetzt dann halt nur noch zwei.

Jochen

Und das ist natürlich echt wenig.

Jochen

Zwei ist schon fast nur noch eine, zumal der Marktanteil von Firefox ja auch irgendwie so ein bisschen im Sinkflug begriffen ist, leider.

Dominik

Mit was browst du persönlich gerne?

Jochen

Tatsächlich benutze ich Chrome Safari und Firefox.

Dominik

Mit welchem Anteil so?

Dominik

Also für privates Surfen, für die Arbeit?

Jochen

Privates Surfen meistens Safari, weil da Safari hat halt so dieses Feature der Leseliste, das ich ganz praktisch finde.

Jochen

Weil das halt über alle Devices hinweg synchronisiert.

Jochen

Das heißt, wenn man sich eh im Apple-Universum sozusagen mit seinen Geräten aufhält oder.

Dominik

Ich glaube, bei Firefox kann man das auch machen, das synchronisieren und auch bei Chrome.

Jochen

Ja, bei Chrome ist so Chrome ist so ein bisschen evil an der Stelle, weil man halt nicht so richtig gefragt wird, ob man da jetzt mitmachen möchte oder nicht.

Jochen

Also das habe ich letztens, habe ich das gehört?

Jochen

Keine Ahnung, hat sich jemand darüber aufgeregt, dass Chrome da schon so böse GUI-Geschichten macht, um die Leute dazu zu verleiten, irgendwie die Browser-History mit ihrem Profil sozusagen auf die Geräte zu übertragen.

Jochen

Was ich jetzt an sich noch nicht schlimm fände, wenn einfach nur das irgendwie übertragen würde, aber das wird halt auch bei Google gespeichert und Google kann das halt sehen, was da drin steht.

Jochen

Und das ist natürlich, ich möchte eigentlich nicht wirklich meine Browser-History zu Google hochladen.

Dominik

Okay, ich glaube, man muss das halt einstellen in der Privatsphere-Einstellung, ob das MRO das ist.

Jochen

Genau, aber da steht halt auch nur irgendwo, du lädst hier deine Browser-History zu Google hoch, sondern da steht, da ist irgendwie sowas wie, das sind so Button-Tricks, ja, wo man dann irgendwie, wenn man halt, da ist irgendwie so ein OK-Button, der sieht irgendwie harmlos aus und wenn man da drauf drückt, dann passiert das automatisch, ja.

Jochen

Und irgendwo steht irgendwie, du lädst jetzt deine Browser-History zu Google hoch.

Jochen

Und das ist schon sehr, sehr hinterfragt.

Jochen

Also ich finde, Google hat eigentlich bisher noch nichts Böses damit getan.

Jochen

Insofern hat es da auch mal so einen gewissen Vertrauensvorschuss, aber so GUI-Manipulationen, die einen dazu verleiten, auf irgendwas drauf zu klicken, auf das man eigentlich gar nicht draufklicken wollte, das ist schon sehr ganz fertig.

Jochen

Und damit hat Google jetzt, also das war jetzt nur eine Geschichte, wir haben Chrome hat dann noch eine andere Geschichte, wo man dann, wo sie das nochmal gemacht haben.

Jochen

Und sagen wir mal so, also ich meine, ich weiß jetzt nicht, aber es gibt halt diverse Leute im Netz, die jetzt so sagen, so, jetzt ist es halt Chrome und Google ist so endgültig an der dunklen Seite angekommen.

Jochen

So weiter würde ich jetzt vielleicht nicht gehen, aber es ist schon so ein bisschen, also daher versuche ich auch möglichst Chrome nicht mehr zu verwenden, wenn ich irgendwie nicht muss.

Jochen

Es gibt Dinge, für die ich muss, also zum Beispiel zum Entwickeln ist Chrome tatsächlich irgendwie am praktischsten.

Jochen

Es gibt da für React und so, wenn man das baut, auch so Extensions, die einem dann helfen, das zu debuggen und so.

Jochen

Und das ist so praktisch, dass ich das, was ich zum Entwickeln tatsächlich Chrome verwende.

Dominik

Also ich verwende Chrome tatsächlich auch privat.

Dominik

Selbst mal in Firefox, also eigentlich nur, um mal anderes zu machen.

Dominik

Aber normalerweise eigentlich mal Chrome.

Dominik

Ich habe auch nicht so viele Bedenken mit den Datenschutz.

Dominik

Also ich muss sagen, ich bin doof und vertraue denen ein bisschen.

Dominik

Und die wissen eh alles über mich.

Dominik

Auch egal, wenn die noch mehr über mich wissen.

Dominik

Vielleicht kriege ich dann irgendwelche Bonusgeschenke, man weiß ja immer nicht genau.

Dominik

Also ich hoffe ja immer, dass ich dann irgendwann mal so einen Sonderrabatt bekomme wahrscheinlich.

Ja, vielleicht.

Jochen

Vielleicht wird alles gut.

Dominik

Irgendwann stehen irgendwelche Männer mit irgendwelchen Anzügen von euch gesagt.

Man weiß es nicht

Jochen

so genau.

Dominik

Man sind sie in Amerika und nicht hier, also das ist ja schon mal gar nicht so schlecht.

Jochen

Also, ja klar, also ne, ich benutze Chrome auch.

Jochen

Ich finde auch, das ist ein echt guter Browser und so, aber ja, das erfahre ich wegen der Leseliste, vor allen Dingen, weil ich dann halt sozusagen halt auf allen sich was.

Dominik

Die haben nur gerade ihre Datenschutzeinstellungen umgestellt in Europa, haben ihre Server geändert und ihre Rechtsformen geändert.

Dominik

Die sitzen jetzt in Irland von der, weiß ich nicht, Google LLC auf irgendeine irische Limited oder sowas.

Dominik

Ich habe noch nicht da reingeguckt, vielleicht, weil die jetzt DSGVO-konform sind, müsste man jetzt eigentlich auch aus den ganzen Sachen gesondert opt-outen können.

Dominik

Und die Frage ist, ob sowas wie die Browser History einfach noch so übernommen wird, weil ansonsten.

Jochen

Das kann natürlich auch sein, dass das mit der DSGVO ja jetzt auch so ein bisschen identisch ist.

Dominik

Obwohl eigentlich habe ich nicht so wirklich Lust, das nachzugucken.

Dominik

Also wenn ich das interessieren könnte, dann selber mal gucken.

Dominik

Und informiert uns doch gerne bitte in einer E-Mail, was ihr da herausgefunden habt.

Jochen

Ja.

Jochen

Also ansonsten Firefox versuche ich immer mal wieder zu verwendig ist.

Jochen

Für so Casual Browsing-Geschichten.

Jochen

Und dafür ist das eigentlich, also so, ja, ist das Ding schnell und

Dominik

tatsächlich toll an, wenn ich auch in der Casual Browsing.

Jochen

Ja, wo ich halt jetzt nicht unbedingt sozusagen irgendwie Bookmarks gerade mache oder so.

Jochen

Halt einfach so ein bisschen rumbrause.

Jochen

Und das Ding ist auch super, sollte man auf jeden Fall nochmal ausprobieren, wenn man das halt längere Zeit nicht gemacht hat.

Jochen

Das kann dann schon überraschende überraschend gut vorkommen dann.

Jochen

Muss man auch so ein bisschen aufpassen.

Jochen

Also die haben alle so ihre Haken und Ösen.

Jochen

Chrome ist so Privacy-mäßig ein bisschen schwierig.

Jochen

Safari ist irgendwie technisch leider, da kommen wir auch nochmal drauf zu sprechen, ist halt technisch so ein bisschen kaputt.

Jochen

Und Firefox hat halt jetzt auch so ein Ding eingebaut, wo man sagt, so Privacy jedenfalls nicht so super optimal.

Jochen

Also die verwenden jetzt statt normalen Name-Servern, gehen die DNS-Requests auch per HTTP irgendwie an eine von diesen, ich weiß gar nicht an wen, CloudFront oder weiß ich nicht, auf jeden Fall an einen von diesen CDN-Betreibern, was Vorteile hat, also dein Provider sieht halt nicht mehr, wo du rumsurfst.

Jochen

Also ich meine, bei HTTPS, was ja die meisten Seiten mittlerweile dann halt tatsächlich sind, sieht natürlich irgendwie dein Provider auch nicht mehr die Inhalte, aber sieht halt immer noch, zu welcher, zu welcher Domain quasi dein Request geht und das reicht ja dann oft schon, sozusagen als Information.

Jochen

Er sieht vor allen Dingen halt den Name-Server-Request, also den Request zur Namensauflösung, wenn dein Name-Server beim Provider steht, was bei den meisten Leuten so ist, weil das der Default ist.

Jochen

Kann man natürlich auch selber umstellen.

Google zum Beispiel.

Jochen

Google, ja, 8.8.8.8.

Dominik

Google weiß dann alles.

Jochen

Google weiß dann noch mehr.

Jochen

Provider und Suchmaschine kombiniert.

Dominik

Google Home Assistant alles integriert und dann mit dem Auto verknüpft und so.

Dominik

Toll.

Dominik

Ich kann über die letzten Jahre im Standort jeden Tag nachverfolgen, wo genau ich rumgelaufen bin.

Dominik

Das ist hervorragend.

Jochen

Ja, ich will gar nicht beschreiben, dass das durchaus praktisch sein kann.

Jochen

Genau, ich habe auch bei mir jetzt in meiner Fritzbox irgendwie als Name-Server eben nicht mehr den vom Provider eingestellt, sondern 1.1.1.1 und 1.1.1.0, weiß ich nicht genau.

Jochen

Vielleicht sollte man da auch unterschiedliche nehmen, vielleicht den einen von einem von diesen CDN-Dingern und dann vielleicht einen von Google oder irgendwie, dass es halt nicht, dass man die Daten so ein bisschen aufteilt.

Dominik

Das ist ein CDN-Ding, das ist ein Content-Delivery-Network.

Jochen

Genau, genau.

Was macht das?

Jochen

Das sorgt dafür, dass wenn du jetzt statische Dateien irgendwie sehen möchtest, wie jetzt zum Beispiel ein Video oder halt auch Bilder.

Dominik

Und warum ist denn ein Video statisch?

Dominik

Weil der sich nicht verändert, weil das Video das einmal aufgenommen worden ist, was als Datei auf dem Server liegt.

Jochen

Weil das dann halt eine Datei ist, die sich nicht mehr ändert.

Dominik

Und dynamisch ist es dann, wenn ich eine individuell angezeigte Weboberfläche habe, die in meinem Profil oder irgendwelche anderen Informationen beinhaltet.

Jochen

Genau, also ein Applikationsserver liefert halt irgendwas aus, was sozusagen auf dem Kontext der Session oder sonst irgendwie basiert.

Dominik

Und die sind übrigens auf den Python geschrieben, Entschuldigung.

Jochen

Ja, genau.

Jochen

Also eben, natürlich.

Jochen

Also ich denke, dass die Infrastruktur, mit der man irgendwie so CDMs hochzieht, halt auch wahrscheinlich häufig in Python geschrieben sein wird.

Jochen

Aber die Server, die das ausliefern, sind halt eher nicht Python, sondern das ist dann halt irgendwas Schnelles.

Jochen

Also so möglichst nah am Metall, weil da kommt es dann halt wirklich drauf an, auf die letzten Millisekunden und so.

Dominik

Nah am Metall, habe ich auch gerade zum

Jochen

ersten Mal gehört.

Jochen

Achso, ja, nah an der CPU quasi, an den Leiterwaren, an die ich da viel.

Jochen

Bei Python hat man immer noch eine virtuelle Maschine dazwischen und so.

Jochen

Und genau, also die Dinger sind eigentlich dafür da, dass wenn ich jetzt sozusagen eine Webseite habe, wo halt ganz viele Dinge drin stehen, wie ein Tag-Image und dann ein Source und dann ist das halt eine Referenz auf ein Bild oder auf ein Video, halt je nach Tag, dann kommt das halt nicht von dem Applikationsserver, sondern gibt es halt spezialisierte Dinger, die das halt ausliefern.

Jochen

Und wenn ich jetzt auf der anderen Seite der Welt jemanden habe, der das angucken möchte, dann ist es halt irgendwie so ein bisschen sinnlos, dass einmal irgendwie durch drei unterschiedliche Unterseekabels quetschen, irgendwie, wenn das ein Video ist und das ist halt irgendwie ein Gigabyte groß.

Jochen

Sondern, und nehmen wir an, auf der anderen Seite der Welt wollen das plötzlich, weil es irgendwie in der Hongkonger Club-Szene wird mein Okulelen-Video plötzlich zu, äh, geht viral und.

Dominik

Welcher Plattform auf YouTube vielleicht?

Jochen

Nee, habt ihr nichts.

Dominik

Ja, sehr schön, sehr schön.

Jochen

Genau, aber nehmen wir an, dass das jetzt in Hongkong wird das jetzt super populär, ne?

Jochen

Und dann wollen das irgendwie 10.000 Leute angucken.

Kennst du

Dominik

Tiny Tim?

Jochen

Äh, nee.

Dominik

Wegen der Ukulele, natürlich und keine Expos.

Jochen

Ach, ist das diese britische, dieser britische, das ist schon ein bisschen her, ne?

Dominik

Ist das ein bisschen Komedienmusiker?

Jochen

Ja, doch, doch, dann habe ich es schon mal, mir war gerade nicht klar, ich konnte das nicht verknüpfen.

Jochen

Aber ja, ja, doch, hab ich, glaube ich, auch schon mal gesehen.

Aber noch nicht so wirklich.

Ja, ist großartig.

Jochen

Ja, okay, muss ich mal reingucken.

Jochen

Genau.

Jochen

Und wenn ich jetzt hier halt mein Webserver irgendwo, meiner steht tatsächlich bei Hetzner in Nürnberg, ja.

Jochen

Wenn jetzt halt die ganzen Bits da von Nürnberg nach Hongkong irgendwie durch alle möglichen Kabel sich quetschen müssen, ist ja eigentlich irgendwie Quatsch.

Dominik

Da findet ein Content Delivery Network, der an einem Kontinent steht und da ist ein großes Rechenfahren.

Jochen

Genau, die haben halt in allen Punkten, wo es irgendwie eine Nachfrage gibt, halt entsprechend Rechenzentren stehen.

Jochen

Und dann geht halt das, gehen die Bits von dem Video halt nur einmal von Nürnberg bis zu dem lokalen Rechenzentrum in Hongkong und werden dann von da aus verteilt.

Jochen

Und das ist natürlich deutlich effizienter und irgendwie sinnvoll.

Dominik

Nur für dynamischen Content nicht.

Jochen

Ja, da geht's halt nicht, weil die können halt dynamisch, muss dann halt die Stelle, die halt State-Helm, was halt gesagt wird.

Schön.

Dominik

Wer oder was ist Pets, ne?

Jochen

Ach, das ist auch so ein Hoster, wo man, das ist ein relativ günstiger Hoster, wo man so Server irgendwie in einem Rack mieten kann und dann da, wo halt unter anderem halt auch zum Beispiel python-podcast.de läuft.

Dominik

Oh, so eine Seite gibt es, das ist ja toll, da muss ich mal rein.

Jochen

Und genau, also diese, die haben halt die Infrastruktur, um jetzt Dateien quasi global irgendwie lokal auszuliefern und nicht, also ihre eigene Verteilungsinfrastruktur sozusagen.

Jochen

Und das ist halt naheliegend, auch DNS darüber zu machen, weil da hat man halt im Grunde das gleiche Problem.

Jochen

Und ja, deswegen sind die halt sehr schnell, wenn man jetzt zum Beispiel, ich weiß nicht, 1.1.1 oder so, dass ich jetzt bei mir, das Ding, was ich jetzt bei mir eingestellt habe, da habe ich 7 Millisekunden Latenz hin bei mir zu Hause, das ist so publiches DSL.

Dominik

Fast Wien LAN.

Jochen

Und das ist aber trotzdem, also ich meine, 7 Millisekunden ist schon echt schnell.

Jochen

Und ich glaube, der DNS-Server von meinem Provider antwortet so mit 40 Millisekunden Latenz oder so.

Dominik

Ich würde sagen, also alles unter 20 schon fast lokal irgendwie, ja.

Jochen

Ja, und das sind dann halt, weil die Namen müssen ja erst aufgelöst werden, bevor überhaupt ein Request zum Applikationsserver gemacht werden kann.

Jochen

Bevor überhaupt irgendwas zurückkommt, hat man halt diese Latenzen immer drin.

Jochen

Und das addiert sich dann halt auf und wenn man jetzt da schon mal 30 Millisekunden Latenz sparen kann, bei jedem Request, der irgendwie gemacht wird, ist oder nicht bei jedem, manchmal wird es auch gecached, wenn die Antworten, aber dann hat das durchaus merkbare Auswirkungen und deswegen habe ich das mal umgestellt.

Dominik

Geht es eigentlich viel schneller, wenn man direkt die IP eingibt?

Jochen

Ne, das geht halt nicht unbedingt.

Jochen

Ja, der die Domain oft auch benutzt wird, um rauszubekommen, an welchen Applikationsserver das gehen soll.

Jochen

Also nehmen wir zum Beispiel mal, meine private Webseite liegt auf dem gleichen Server wie Python-Podcast.de.

Jochen

Das heißt, wenn ich die IP habe, ich kann jetzt einen HTTP-Request zu dieser IP hinschicken, aber dann weiß der Server nicht so richtig, für wen ist denn das jetzt gedacht?

Jochen

Ist das für Python-Podcast.de gedacht oder ist das für werswerfer.de gedacht?

Dominik

Und was sagt das Request dann?

Dominik

404, 403.

Jochen

Wenn das nicht eindeutig ist, dann kommt dann halt ein 4.04 wahrscheinlich zurück.

Jochen

Und ja, dann funktioniert das nicht.

Jochen

Insofern muss halt die Domain im Host-Header mitgeschickt werden.

Jochen

Und ja, aber wenn man das jetzt mit dem Browser macht, dann muss es halt, dann passiert halt zuerst ein Namenauflösungsrequest und dann.

Dominik

Oder der könnte ja lokal routen, kann der das?

Dominik

Also irgendwelche Anfragen dann, also musst du dann versehen, mit der IP und einem, keine Ahnung, Namen.

Jochen

Ja, ja, also man kann mit Domains natürlich auch zusammenbauen, aber meistens verwendet man ja einen Browser und dann passiert das halt alles automatisch.

Jochen

Und da braucht man die Domains dann halt schon.

Jochen

Weil in meinem statischen Web-Server, der halt sozusagen der Reverse-Proxy von den Applikationsservern ist, gibt es dann halt einfach eine Tabelle.

Jochen

Dann steht halt so, alles, was irgendwie mit Python-podcast.de anfängt, geht halt an den lokalen Applikationsserver, der auf dem Port läuft.

Jochen

Und alles, was halt auf die Domain geht, geht halt an denen.

Dominik

Okay.

Dominik

Also du machst halt tatsächlich relativ viel im Web.

Dominik

Das haben wir jetzt, glaube ich, auch gehört, auch mit den Browsern.

Dominik

Haben wir jetzt, glaube ich, schon ein kleines Thema ein bisschen gehabt, was wir vorher noch nicht angekündigt hatten, aber hey, wir haben eigentlich ein bisschen was über die Browser erzählt.

Jochen

Ja, ja, sowas.

Dominik

Ich habe schon erzählt, was alles nicht so funktioniert.

Dominik

Also da hatten wir einmal kurz den Safari erwähnt.

Dominik

Ja, du hast auch gesagt, was machst du so eigentlich die ganze Zeit und hast irgendwas erzählt?

Dominik

Du hast viel mit Audio gemacht im Browser und so.

Jochen

Ja, ja, letzte Woche.

Jochen

Ja, eigentlich mache ich so Data Science, Machine Learning-Geschichten, aber halt in letzter Zeit auch häufiger Frontend-Sachen im Web, weil man muss halt auch Dinge, wenn man Machine Learning machen will, zuerst muss man Daten sammeln und die annotieren und so.

Jochen

Und früher haben das irgendwie immer andere Leute gemacht, Annotations-Front-ends gebaut und so.

Jochen

Aber das war nie so wirklich toll.

Jochen

Und inzwischen, ja, ich dachte gerade an einem Projekt, wo ich das halt auch mit selber mache.

Jochen

Und eigentlich bin ich ganz glücklich drüber, weil jetzt kann ich das halt mal so bauen, wie ich das gerne hätte.

Jochen

Und das ist eigentlich ganz praktisch.

Jochen

Und nebenbei lerne ich halt auch mal diesen ganzen Webquatsch.

Dominik

Deswegen ist es alles Quatsch und ja, gut wie alles nicht.

Jochen

Genau, aber so schlimm ist es auch nicht.

Jochen

Also es ist schon eigentlich ganz gut.

Jochen

Es ist wirklich viel besser als früher.

Jochen

Und insofern würde ich sagen, es ist auch momentan ein ganz interessanter Zeitpunkt, um damit anzufangen, weil es geht halt schon eine ganze Menge.

Jochen

Aber immer ab und zu stürzt man halt dann noch schon so auf so schmerzhafte Details wie zum Beispiel, letzte Woche habe ich Audio gemacht.

Jochen

Und da war, also Safari ist halt so ein bisschen der neue IE, weil er hängt halt in der Entwicklung hinterher.

Jochen

Und da gibt es dann so unterschiedliche API, die Browser implementieren können.

Jochen

Zum Beispiel zum Media Capture API, wo man halt einfach vom Browser halt sowas bekommt wie Video oder Bilddaten.

Jochen

Also das halt kennt man vielleicht, wie man, ja, also eigentlich kennt man das eher so, dass man auf dem Smartphone dann so einen Dialog bekommt, so möchtest du ein Foto oder Video aufnehmen oder halt quasi eins aus einer Mediathek auswählen oder so.

Dominik

Also du meinst, wenn ich auf Time klicke, hast du mich kurz abgehängt, wenn ich was machen möchte?

Jochen

Wenn du auf einer Webseite bist und möchtest jetzt beispielsweise musst du da halt irgendwie ein Profilbild hochladen oder so.

Jochen

Dann gibt es meistens so einen Button oder so, was wo man drauf drückt und dann wird man halt gefragt, irgendwie so Foto-Video aufnehmen oder irgendwie ein bestehendes Foto benutzen oder so.

Jochen

Genau, und das ist eigentlich so ein File-Input, also so ein Input-Element, was man halt da verwendet.

Jochen

Also ein Input-Tat-File.

Jochen

Und da gibt es auch eine Standardtür, wie man da ranschreiben kann, okay, ich hätte gern jetzt aber nur ein Foto oder nur Audio und zwar in dem und dem Codec und so.

Jochen

Das geht eigentlich alles.

Jochen

Und die Browser können das auch.

Dominik

Oh, da geht's ab.

Dominik

Ich glaube, das ist die Waschmaschine.

Waschmaschine.

Jochen

Ja, ich glaube, Auphonic wird das hinterher alles rausfiltern.

Jochen

Na gut, ich bin da sehr zuversichtlich, mal gucken.

Dominik

Bei dem Schleudergang nur an.

Jochen

Ja, genau.

Jochen

Und also eigentlich wäre das ideal, wenn man einfach irgendwo ein Element hin machen würde, Input-Element-Type-File und dann halt sagt man noch, was man da gerne hätte.

Jochen

Und dann wird der User halt gefragt, okay, dann nimm doch halt mal diese App zum Audio aufnehmen oder die Fotografie-App auf deinem Telefon mach damit irgendwas.

Jochen

Dann landet das, was man aufgenommen hat in der lokalen Mediathek und quasi auch im Browser und im JavaScript, sodass man damit irgendwas machen kann.

Jochen

Das wäre voll gut.

Jochen

Das funktioniert auch in den neuesten Chromes, glaube ich, aber das funktioniert nicht mit Safari und das funktioniert auch nicht.

Jochen

Also das wäre halt das, was man hätte, aber das funktioniert halt mit dem Safari nicht.

Jochen

Und damit ist iOS komplett raus und damit kann man es eigentlich nicht mehr verwenden, weil geht halt nicht.

Dominik

Meinst du, die patchen das oder sind die dazu anders strategisch aufgestellt?

Jochen

Ja, das hätten sie, ich meine, das gibt es ja schon lange und so und andere haben das auch schon lange implementiert und da sie das schon seit quasi Jahren nicht gemacht haben, ist es halt, warum sollten sie es jetzt tun?

Jochen

Das weiß ich auch nicht.

Jochen

Also es könnte sein, dass es auch kommt, man weiß es halt nicht.

Jochen

Aber ja.

Jochen

Also das wäre am schönsten.

Jochen

Und dann, wenn das nicht geht, gut, es gibt halt die Media-Recorder-API, die ist auch ziemlich schick.

Jochen

Das ist halt ein bisschen mehr Aufwand, da muss man halt von JavaScript-Seite aus halt, hat man dann so ein Media-Rekorder-Objekt irgendwie an Window dranhängen.

Jochen

Und das kann man benutzen, um halt irgendwie Audio aufzunehmen oder Video aufzunehmen oder so.

Jochen

Man kriegt halt nicht einfach eine Datei, was halt die Arbeit irgendwie enorm vereinfachen würde, sondern man kriegt halt dann irgendwie so ein Blob, so ein Binary-Objekt, was man dann auch quasi irgendwie wieder an den Server schicken kann und so, aber so ein bisschen ätzender.

Dominik

Das kannst du versuchen, kannst du halt nicht nachmachen mit dem Blopp.

Jochen

Ja.

Jochen

Und das ist eigentlich auch eine, das ist ein easy.

Jochen

Da dachte ich, so gut, dann könnte man ja das nehmen.

Jochen

Und das können auch tatsächlich alle Browser, bis auf Safari.

Jochen

Der implementiert das wieder nicht.

Dominik

Okay, also Safari ist gerade so ein bisschen Pain, habe ich gehört.

Jochen

Ja, das ist echt schwierig.

Jochen

Wobei man sagen muss, auch die anderen, die Formate sind halt alle total unterschiedlich.

Jochen

Also die unterstützen das zwar, aber im Chrome kriegt man dann halt die nehmen dieses WebM-Container-Format und schreiben da Opus-Codec rein.

Opus was?

Jochen

Opus ist der Codec.

Jochen

Opus ist halt einer, ja, ist halt quasi gerade für Text oder Sprache, für Sprachaufnahmen ist das eigentlich ziemlich gut.

Jochen

Komprimiert schön runter.

Jochen

Und man kann das halt immer noch gut verstehen.

Jochen

Und ja, Firefox nimmt dann halt einen anderen Container, nimmt dann halt diesen diesen Ocvorbis-Container.

Jochen

Aber ich glaube, sie packen da, sie packen da auch Opus rein als Codec.

Jochen

Ja.

Jochen

Wobei jetzt natürlich Safari irgendwie würde jetzt wahrscheinlich nicht Opus nehmen.

Jochen

So, die nehmen ja keinen von, die unterstützen ja keinen freien Codec, sondern dann müsste das dann irgendwie MP4 sein oder sowas.

Hurra!

Jochen

Und das ist halt alles, was das halt auch wieder schwierig macht, weil da muss man halt auf dem Server das alles nochmal ineinander umcodieren, weil man möchte ja auch den Browsern dann das Format schicken, was sie halt irgendwie problemlos wieder ausgeben können und so.

Jochen

Und ja, für ein Firefox ist das dann, dem schickt man dann halt auch wieder ein Opus-Codec im Og-Container.

Jochen

Und ähm.

Dominik

Das war super, danke.

Was zu trinken.

Dankeschön.

Dominik

Das ist einfach so nebenbei, Entschuldigung, wir haben euch gerade nicht stehen lassen.

Dominik

Ja, Entschuldigung, du wolltest dann die Container.

Jochen

Genau, genau, genau.

Jochen

Und dem Chrome wird man halt irgendwie dann WebM und auch Opus schicken.

Jochen

Naja, wie auch immer.

Jochen

Also Safari kann halt diese blöde Media Rekorder API nicht.

Jochen

Das lässt sich dann überbrücken, indem man halt ein Pullifill halt verwendet, was dann die Media Catcher-API benutzt, um irgendwie diesen Media-Rekorder zu emulieren.

Jochen

Aber so richtig schön ist das alles nicht, weil dann kann man nur noch

Dominik

Waffen Ich habe mir gerade einen Fleck auf die Hose geschüttet.

Jochen

Oh nein.

Entschuldigung.

Oh, vielen Dank.

Ja, bitteschön.

Dominik

Es ist ein Spätbohnen Rotwein.

Dominik

Ja, auf die Weihnachtsfolge.

Dominik

Das ist ja sowieso alles ein bisschen chaotisch heute, deswegen.

Jochen

Ja.

Jochen

Das war lecker.

Wow.

Ja, also klasse.

Dominik

Wir waren gerade stehen geblieben, ja.

Jochen

Also, genau.

Jochen

Und ja, also man kann das dann immer.

Jochen

Das Problem ist, wenn man jetzt sozusagen diese API, die nicht implementiert ist im Browser selber, in JavaScript nachbaut, damit man das halt in Safari genauso machen kann wie in den anderen Browsern.

Jochen

Dann hat man halt das Problem, dass man die Ruheaufnahme dann halt kriegt in diesem Binärblob mit Datenblob, den man dann halt in JavaScript.

Jochen

Unkomprimiert als WAF-File.

Jochen

Jetzt kann man natürlich anfangen, in JavaScript das irgendwie nach MP4 oder nach Opus zu kodieren.

Jochen

Das kann man irgendwie machen.

Jochen

Es gibt Leute, die das tun, ich weiß nicht, ob das so eine gute Idee ist.

Jochen

Was ich dann mache, ist, ich schicke dann halt das WAF-File zum Server und der kodiert das dann halt um in die unterschiedlichen Formate und Containertypen.

Jochen

Aber es halt dann einfach mehr, man braucht natürlich deutlich mehr Bandbreite, wenn man das halt unkomprimiert an den Server schickt.

Dominik

Safari, wir gehen halt davon aus, wir haben alle genug Bandbreite, ist ja auch Apple, ne?

Jochen

Naja, und so richtig, so richtig dolle ist das, ist das irgendwie nicht.

Jochen

Ja, und dann, genau, wenn man es dann beim Servat, dann kann man das zwar in alle Formate umkodieren, ist aber auch manchmal, manchmal hat man dann so komische Effekte.

Jochen

Ich benutze da FFM-Pack als Library.

Jochen

Die kann das irgendwie alles ineinander konvertieren.

Jochen

Und manchmal, bei manchem, wenn man von dem einen Format, also man nimmt irgendwas in Firefox auf, spielt es dann im Safari ab oder so, ich weiß es nicht mehr genau, wie es war, sondern plötzlich dann irgendwie alles nur halb so schnell oder so.

Jochen

Und da muss man dann in den Flex von FFM-Pack-Aufruf, den man gemacht hat, irgendwie so lange drehen, bis es wieder stimmt.

Jochen

Und das ist halt alles ziemlich, also es ist nicht so, dass es alles so out of the box funktioniert, sondern man hat da teilweise sehr überraschende Ergebnisse noch.

Jochen

Und was halt auch total doof ist, ist halt, habe ich mich dann halt, mit diesem Problem habe ich mich mehr als einen halben Tag rumgeschlagen, bis ich überhaupt rausgekriegt habe, was da das Problem ist.

Jochen

Das war auch wieder Safari, Safari!

Dominik

Das ist schon der dritte Pain von Safari innerhalb von einer Woche.

Jochen

Also wenn man das abspielt, dann denkt man sich, okay, ich kann mit dem Safari leider kein Audio aufnehmen.

Jochen

Okay, gut, naja, egal.

Sorry.

Dominik

Als hättest du eben noch eine größere Zigarre geraucht.

Jochen

Und das geht mal wieder weg hier.

Jochen

Naja, genau.

Jochen

Aber abspielen sollte es das ja können.

Jochen

Man kann das ja auch irgendwie in ein Format kodieren, das halt Safari abspielen können müsste, wie zum Beispiel MP4, ja, ist ja sozusagen das Hausformat.

Jochen

Und dann geht das aber irgendwie nicht.

Jochen

Dann fragen man sich so, hä, warum geht denn das nicht?

Jochen

Und das Einzige, was geht, ist irgendwie MP3.

Jochen

Aber da geht das auch nur so, dass man das einmal abspielen kann und dann nicht mehr.

Jochen

Und dann steht in dem Audio-Teil, den man halt auf der Webseite sieht, steht da irgendwie sowas komisches wie Live-Übertragung.

Jochen

Und dann habe ich mich zuerst gefragt, so, was zur Hölle ist das denn?

Jochen

Und ja, es ist halt so, dass Safari erwartet, wenn man jetzt Audio abspielen möchte, das heißt, man hat einen Audio-Tag, so ähnlich wie ein Image-Tag, bloß halt mit Audiodaten drin, dann kann man halt die unterschiedlichen Formate und Codex halt auflisten, was man da so alles hat.

Jochen

Und der Browser kann dann entscheiden, was er abspielen möchte.

Jochen

Und bei allem außer MP3 schickt Safari halt irgendwie so ein Byterange-Request an den Server.

Jochen

Das muss der Server dann können, er muss dann irgendwie mit einem 206 antworten, schatt einem 200er.

Jochen

Den benutzt Safari aber nicht.

Jochen

Er schickt den halt irgendwie dahin und schmeißt das Ergebnis weg.

Jochen

Aber wenn irgendwie kein 206 zurückkommt, dann geht einfach gar nichts, spielt ja gar nichts ab.

Jochen

Also es funktioniert einfach nicht.

Jochen

So, der Entwicklungsserver, auf dem ich entwickle, der kann sowas halt nicht.

Jochen

Der kann keine White-Range-Requests, der kann überhaupt keine statischen Dateien eigentlich so richtig.

Jochen

Das ist ein Python-Entwicklungsserver.

Jochen

Da wirst du ja nicht gedacht.

Jochen

Also antwortet er halt auf diesen White-Range-Request, glaube ich, ich weiß gar nicht, womit er dann antwortet, aber irgendwie im normalen 200, glaube ich.

Jochen

Und da frage ich so, nö, dann halt nicht.

Aber es gibt auch keine Fehler.

Jochen

Es gibt eine ganz komische Fehlermeldung in der Konsole.

Jochen

Ich habe das jetzt leider wieder vergessen, was aber irgendwie überhaupt nichts damit zu tun hat, was eigentlich passiert.

Quad denied.

Jochen

Ja, und also kann auch sein, dass das dann im Produktivbetrieb alles dann funktioniert, auch mit anderen Sachen.

Jochen

Aber man kann dann halt auch schon nicht mehr so richtig testen irgendwie.

Jochen

Und MP3 funktioniert deswegen, weil MP3 halt ein Format ist ohne Container, was halt auch diverse Nachteile hat, wie zum Beispiel, man kann halt nicht irgendwo hinspringen in der MP3-Datei.

Jochen

Es gibt keine separate Zeit oder sowas, wo man sagen kann, also man hat halt nicht irgendwie einen Header-Teil in der Datei, wo drin steht, also dieser Soundschnipsel ist so und so lang und wenn du halt zu der Zeit, zu diesem Zeitpunkt willst, dann musst du diesen Byte irgendwie abspielen oder so.

Jochen

Deswegen ist das natürlich total sinnvoll, diese Byte-Range-Requests zu haben, weil dann kannst du halt in einem Player sagen, okay, ich spring jetzt irgendwie zu dieser Kapitelmarke oder ich spring halt irgendwo in die Mitte und es muss nicht alles runtergeladen werden, sondern es wird nur das runtergeladen, was tatsächlich abgespielt wird.

Jochen

Also eigentlich schon sehr schick.

Jochen

Und MP3 kann das halt nicht.

Jochen

MP3 musst du halt immer komplett abspielen, quasi, oder komplett runterladen, wenn du es abspielen willst.

Jochen

Das macht der Safari dann auch.

Jochen

Also er sagt dann halt sozusagen, okay, Byte Range-Requests gehen mit MP3 dann halt nicht und das kann ich alles ähnlich machen.

Jochen

Daher mache ich da was anderes und tue so, als wäre das eine Live-Übertragung und spiel das dann halt irgendwie ab.

Jochen

Was dann aber dazu führt, dass der Browser lädt alles runter, aber man kann es halt nur ein einziges Mal abspielen.

Jochen

Dann werden halt irgendwie so die Audio-Controls dunkel und das war's.

Jochen

Das ist halt also, oh nein, was.

Jochen

Ja, es gibt da einen sehr lustigen.

Jochen

Apple verwendet für all diese Sachen so ein Radar, heißt das Ding, so ein Bugtrecker.

Dominik

Kind of Radare, aber das war was auch.

Jochen

Zu diesem Problem, das habe ich dann irgendwie so nach ein bisschen suchen.

Jochen

Das Hauptproblem war rauszufinden, was passiert hier eigentlich?

Jochen

Als ich das rausgefunden hatte, war es dann relativ leicht, dann auch die entsprechenden Geschichten im Web zu finden.

Kann man sich immer raussuchen.

Jochen

Man danach sucht irgendwie Safari-Audio ByteRange Radar, dann findet man da auch den entsprechenden Bug bei Apple und da haben solche lustige Sachen reingeschrieben.

Dominik

Safari Byte Range Radar.

Ja.

Jochen

Und ja.

Jochen

Naja, auf jeden Fall ist es alles nicht so toll.

Jochen

Ich hoffe mal, dass es dann im Produktivbetrieb irgendwie alles geht.

Jochen

Und ich einfach MP4 abspielen kann im Safari, aber momentan spiele ich dann halt MP3 und lebt damit, dass man es nur einmal abspielen kann und dann nicht mich da.

Jochen

Das ist so ein bisschen.

Ja.

Jochen

Also das ist alles noch nicht so, es ist nicht so, nicht so ein total smoothes Smooth-Experience, sondern es ist mehr so, man fragt sich ab und zu so, das darf doch nicht wahr sein.

Jochen

Ja, dann auch schön, wenn man Audio aufnehmen möchte.

Jochen

Also bei Fotos und so geht das ja eigentlich alles auch im Testbetrieb ganz gut.

Jochen

Audio nicht so sehr.

Jochen

Da hat man dann zum Beispiel das Problem, wenn man jetzt, und das, äh, da die Geschichten, die ich da gerade brauche, sind halt vor allen Dingen für mobile Endgeräte gedacht.

Jochen

Ist ja auch eigentlich schön, da hat man die ganzen Sensoren dabei, da hat man ein Mikrofon dabei und so, das funktioniert ja auch alles, sollte man eigentlich auch Audio aufnehmen können.

Jochen

So, wenn man Fotos macht und so, funktioniert das auch alles.

Jochen

Kann man halt einen Test-Server im lokalen Netz haben, auf dem das läuft.

Jochen

Also ich habe da so meinen Python-Entwicklungsserver und dann kann ich da Fotos hochladen und so, gar kein Problem.

Jochen

Aber wenn man jetzt sagt, okay, schalt mal das Mikrofon ein, mach eine Audioaufnahme, dann sagt er in der Browser halt so: Nee, das ist eine Unsafe Origin, weil das ist nicht HTTPS.

Jochen

Und deswegen, nee, keine Audioaufnahme.

Dominik

Kann man das so wie vorher umwandeln oder sowas, dass das über einen sicheren Kanal schickt?

Jochen

Ja, du brauchst es auch einfach, macht er nicht.

Dominik

Hatte der Safari jetzt nur oder machen das diesmal alle?

Das machen tatsächlich alle nicht.

Jochen

Ich meine, ja, okay, vielleicht ist Audio irgendwie super viel privater als Film oder Foto.

Jochen

Ich weiß es nicht.

Jochen

Ich meine, ich kann mir schon vorstellen, woran es liegt.

Jochen

Ich meine, das Problem ist halt tatsächlich, dass jemand möglicherweise irgendwie ein Telefon, irgendwie ein Meeting auf den Meeting-Tisch legt oder so und dann irgendwie Sachen mitschneidet und man nicht möchte, dass es.

Jochen

Ehrlich gesagt, ich weiß nicht.

Jochen

Kann man ja auch so machen.

Jochen

Man kann es ja einfach irgendwie aufnehmen und später irgendwann schicken.

Jochen

Keine Ahnung.

Jochen

Auf jeden Fall.

Dominik

Der macht einen Livestream irgendwo hin, das wird ja auch funktionieren.

Jochen

Ja, oder man hat dann eben einen HTTPS irgendwie fähigen Server, an dem man das schickt, dann geht das ja alles auch.

Jochen

Aber wenn es halt nicht HTTPS-fähig ist, ein lokaler Entwicklungsserver geht halt nicht.

Jochen

Und den kann ich ja auch nicht so leicht irgendwie HTTPS-fähig machen, das geht ja einfach nicht.

Jochen

Also den kann ich natürlich ein Zertifikat verpassen und ich kann halt irgendwie so einen Reverse-HTTPS-Proxy davor schalten, das geht ja alles.

Dominik

Nein, einen Reverse-HTPS-Proxy, was macht der?

Jochen

Wer halt sozusagen das HTTPS terminiert, also HTTPS mit dem Telefon spricht und dann die Requests weiterleitet an meinen Entwicklungsserver.

Jochen

Das ging ja.

Okay, okay.

Jochen

Das Problem ist nur, mit einem validen Zertifikat geht das alles nicht so richtig.

Jochen

Und ja, ohne valides Zertifikat ist natürlich auch wieder nichts.

Jochen

Also es ist einfach doof.

Dominik

Aber wir müssen nochmal vielleicht kurz erklären, was validen und was invalidere Karte sind, aber vielleicht in Short kriegen wir das irgendwie in The Box oder?

Jochen

Ja, also man, ähm ja, dieser ganze Teil von hat, wäre es auch so ein bisschen kaputt, aber also.

Dominik

Wir sind ja heute bei der Chaos-Weihnachtsfolge, liebe Leute.

Dominik

Im Python-Podcast wollte ich nur einmal kurz erwähnen.

Jochen

Es ist halt so, dass ich im Grunde ja der, der also man braucht eigentlich drei Dinge damit, was sicher ist.

Jochen

Also wenn ich jetzt zum Beispiel mal das Beispiel nehme Online-Banking und ich mache jetzt Online-Banking auf einer Webseite, dann müssen drei Sachen garantiert sein, damit das wirklich sich sozusagen sicher ist.

Dominik

Dein Computer ist nicht infiltriert, die Verbindung ist nicht infiltriert und der Zielcomputer ist nicht infiltriert.

Jochen

Ja, aber naja, es gibt noch mehr Dinge.

Dominik

Noch mehr, mehr als drei.

Jochen

Drei Dinger, aber ich würde das jetzt eher auf so einer abstrakten Ebene heben wollen.

Jochen

Und zwar brauchst du halt irgendwie Authentifizierung.

Jochen

Ja, also.

Dominik

Ich bin der richtige Nutzer, der da auch rein darf.

Jochen

Ich bin der richtige Nutzer, der da reinladen darf.

Jochen

Das macht man halt per Username und Passwort üblicherweise.

Jochen

Oder Banken nennen das irgendwie Pinnen und machen komische Beschränkungen, aber im Grunde zeigt man da mit der Bank, dass man derjenige ist, für den man sich ausgibt.

Dominik

Zumindest, dass ich derjenige bin, der die, ja, dass die Benutzer ein Passwort kennt von demjenigen, als den ich mich ausgebe.

Ja.

Jochen

Dann umgekehrt muss das aber auch gelten, ja.

Jochen

Also auch die Bank muss sich mir gegenüber ausweisen, weil ich möchte natürlich schon wissen, dass ich sozusagen mit der richtigen, äh, mit der Bank rede und nicht mit irgendjemandem, der zwischen mir und der Bank sitzt, dann meine Überweisung nimmt, da irgendwie die IBAN auf seine ändert und dann halt die Überweisung mit der richtigen Bank macht.

Jochen

Das wäre irgendwie schlecht.

Jochen

Das heißt, die Bank muss sich auch mir gegenüber ausweisen und das macht sie üblicherweise mit einem Zertifikat.

Jochen

Und das ist halt sozusagen, wenn dann im Browser ist dann, also wenn das nicht funktioniert hat, dann gibt es so einen Polizisten mit so einem Knüppel, der da auftaucht und dann irgendwie so eine Browserwarnung.

Jochen

Oder man sieht manchmal so ein geschlossenes Symbol oder irgendwas Grünes, wenn das besonders viel Geld bezahlt hat für den Certification Authority.

Jochen

Aber im Grunde, also wenn es keine Warnung gibt, dann war das okay.

Jochen

Diese ganze Struktur, wie das geprüft wird, welche Zertifikate okay sind und welche nicht, das ist auch alles nicht so toll.

Jochen

Aber inzwischen, das geht auch alles.

Jochen

Man muss dafür auch kein Geld mehr bezahlen, deswegen ist es auch für private Anwender und so eigentlich ganz gut.

Jochen

Da gibt es mit Let's Encrypt eine freie Certification Authority, bei der man sich Zertifikate besorgen kann für, wenn man jetzt eine Webseite betreibt, halt öffentliche Webseiten.

Jochen

Und das passiert alles automatisch.

Jochen

Man kann zum Beispiel einen Webserver nehmen namens Caddy.

Jochen

Ja, und wenn der halt auf der, der, der.

Dominik

Ein Python-Server?

Jochen

Nee, der ist ein Go geschrieben, aber.

Jochen

Ja, der macht sozusagen so ein Challenge-Response-Verfahren mit Let's Encrypt, mit dieser Certification Authority, holt sich dann die entsprechenden Zertifikate und es funktioniert alles automatisch, man muss sich um nichts mehr kümmern und das klappt einfach so.

Jochen

Das ist ein sehr viel besserer Zustand als früher, wo man das alles von Hand machen musste und mit Passphrases rumhantieren und OpenSSL-Kommandos und keine Ahnung, war alles ziemlich furchtbar.

Jochen

Aber die Aufgabe von einem Zertifikat ist einfach nur sozusagen sicherzustellen für den Benutzer im Browser, dass er angezeigt wird, dass er mit der richtigen Institution redet.

Jochen

Also, das ist halt Authentifizierung.

Jochen

Zweite Geschichte ist halt Autorisierung.

Jochen

Man muss halt zusehen, dass man das, was man machen möchte, auch wirklich machen darf.

Jochen

Also dass halt, keine Ahnung, ich als Benutzer von meinem Bankkonto Dinge überweisen darf, du hast

Dominik

dir das durchzuführen, was du möchtest.

Jochen

Genau, aber ich sollte jetzt nicht irgendwie, keine Ahnung, von anderen Leuten sozusagen konnten irgendwas überweisen dürfen oder so.

Jochen

Und das wäre halt Autorisierung.

Jochen

Ich wäre jetzt zwar authentifiziert, in dem Sinne, dass die Bank wüsste, wer ich bin, aber sie muss halt auch überprüfen, bin ich jetzt autorisiert, von einem irgendeinem anderen Konto was zu machen.

Dominik

Hast du die Privilegien, das zu tun, was du

Jochen

tun darfst?

Jochen

Da gab es ein schönes Beispiel mal bei der CBIT.

Jochen

Also CBIT, oh, die gibt es ja auch nicht mehr.

Jochen

Hat es jetzt auch irgendwie zugelaufen?

Jochen

In den 90ern war CBIT, äh, die Hochzeit der CBIT und da.

Dominik

Das war eine Computermesse.

Dominik

Es war eine Computermesse.

Jochen

In Hannover, genau, also gibt es ein schönes YouTube-Video irgendwie von Nixdorf, glaube ich, selbst, der irgendwie zu Beginn der Zebit gesagt hat, ich verstehe das gar nicht.

Was soll denn das?

Jochen

Warum hat man das irgendwie die Hannover-Messe und die Zebit auseinander gelegt?

Jochen

Das ist doch eigentlich das Gleiche, ich kapiere das alles nicht.

Jochen

Und das ist auch interessant, vielleicht so ein Nixdorf ist dann ja irgendwie, glaube ich, auch auf der Zebit tatsächlich an den Herzantrag geschorben.

Jochen

Und jetzt sagen alle so, ja, okay, stimmt, warum haben wir das eigentlich mal auseinandergelegt?

Jochen

Jetzt legen wir es wieder zusammen.

Jochen

Also ist das alles noch so gekommen, wie es hätte von Anfang an vielleicht sein sollen.

Jochen

Naja, nee, ich glaube, Zebedesign einfach, die hat das nicht mehr funktioniert.

Jochen

Genau.

Jochen

Da war es so, dass, jedenfalls habe ich das irgendwie mal gehört, ich habe keine Ahnung, ob das stimmt.

Jochen

Das IBM hatte da einen Stand mit so großen Maschinen, so Mainframes, Z-Series und da haben sie halt sozusagen einen Teil vergessen.

Jochen

Also sie haben halt die Autorisierung überprüft.

Jochen

Also da kamen halt irgendwie dann so Tieflader, so Sattelschlepper an und haben halt die ganze Hardware eingepackt.

Jochen

Das waren irgendwie Leute, die mit dem, also auf den LKW stand IBM drauf, die Leute, die reinkamen, das waren alles so IBM IBM-Arbeitsuniform ausgestattete Leute, die hatten irgendwie die richtigen Formulare dabei und so, das war halt, das hat halt alles gepasst.

Jochen

Haben dann den Kram mitgenommen und ja, dann war er halt weg und dann irgendwann kamen nochmal die IBM-Abbau-Leute, die sich dann gewundert haben, dass nichts mehr zum Abbauen war.

Dominik

Ja, einmal den richtigen Anstrich, einmal die richtige.

Jochen

Das Problem da ist halt so, Autorisierung war richtig.

Jochen

Also sie haben halt das schon überprüft.

Jochen

Also es waren schon die Leute, die den Job hätten machen sollen.

Jochen

Sie haben halt nur nicht authentifiziert.

Dominik

Das ist der Köpenikheck.

Dominik

Die haben das autorisiert, aber nicht authentiisiert.

Jochen

Aber nicht authentifiziert.

Jochen

Aber man muss wirklich beides haben.

Jochen

Also wenn es eins davon fehlt, ist halt schlecht.

Jochen

Und dann gibt es noch ein drittes, was auch sein muss, Integrität.

Na egal.

Jochen

Ja, genau.

Jochen

Integrität ist auch wichtig, weil ansonsten kann jemand das manipulieren.

Jochen

Also sozusagen

Dominik

setzen und winken oder.

Jochen

Ja, also dafür hat man halt Verschlüsselungen und dafür hat man halt sind auch die Zertifikate zuständig, damit man sozusagen weiß, dass man auch tatsächlich mit den Leuten redet, die das vorgeben zu sein.

Jochen

Sagen, wenn man Integrität nicht hat, dann funktioniert das auch alles nicht.

Dominik

Ja, es ist ja, also wenn man jetzt nicht in einem Raum sitzt und sich gegenseitig angucken kann, ist Integrität natürlich ein schwieriges Thema, weil ich kann mir vorstellen, man kann immer so tun, als wäre er irgendjemand.

Und wenn er sich dann authentifizieren kann und autorisiert wirkt, dann kriegt ihr die Befugnis und gilt auch irgendwie als Integer.

Dominik

Also viele Leute machen vielleicht den Fehler, dass sie Integrität abhängig machen von Authentifizierung und Autorisierung.

Jochen

Genau, das sollte dann nochmal eine getante Geschichte.

Jochen

Und ja, wenn man diese drei Sachen so ganz abstrakt irgendwie auf die Reihe kriegt, dann ist es halt okay.

Jochen

Und ja, wenn nicht, dann halt irgendwie nicht.

Jochen

Und dafür sind halt Zertifikate da.

Jochen

Und im lokalen Netz ist es aber blöd, da geht halt das ganze letzten Crypt-Zeugs halt nicht, weil man dieses Web-Challenge-Response-Ding nicht machen kann.

Dominik

Müsste sie selber schreiben.

Jochen

Äh, also man kann auch, natürlich kann man sich selber ein Zertifikat erstellen, aber das Problem ist halt, dass man dann nicht sozusagen als offizielle Zertifikate sozusagen, die im Browser akzeptiert sind, halt mit einem Route-Zertifikat unterschrieben, einer entsprechenden Certification Authority.

Dominik

Was ist ein Root-Zertifikat?

Jochen

Ja, das ist halt das, was im Browser hinterlegt ist, sozusagen, womit der Browser überprüfen kann, ob die Signatur, die eine Certification Authority, einem Zertifikat, mit dem sie einen Zertifikat unterschrieben hat, ob die stimmt, ob die von der richtigen Certification Authority kommt.

Dominik

Also das Root liegt dann wo?

Dominik

Auf dem Server?

Jochen

Das Root-Zertifikat ist im Browser.

Jochen

Die sind im Browsern vorinstalliert.

Dominik

Also das heißt, die müssen bei den Browsern tatsächlich vorhanden sein und jeder Browser bekommt sein eigenes Zertifikat?

Jochen

Nee, Browser haben eine Liste von Root-Zertifikaten, denen sie sozusagen vertrauen.

Aha.

Jochen

Und das sind halt einmal sowas wie VerySign und da gibt es diverse Firmen, die das halt irgendwie machen.

Jochen

Telekom ist auch dabei, aber halt eben auch viele Provider, teilweise ziemlich seltsame Organisationen.

Jochen

Es gab da auch Leute, die versucht haben, es da reinzuschmuggeln, teilweise erfolgreich.

Jochen

Ich glaube, da der, das war super.

Jochen

Vor allen Dingen ist man halt, ich glaube, ein Provider ist irgendwie pleite gegangen, hat halt so ein Ruhzertifikat in den Browsern drin, was natürlich eine.

Jochen

So, und dann hat versucht jemanden oder haben irgendwelche anderen Institutionen diesen Platte gegangen, dann einen Provider aufgekauft und dann lustige Sachen gemacht.

Jochen

Einer hat versucht, in diesen Browser reinzukommen, auch sehr lustig, das war eine Spaßaktion, aber ich glaube, der hat sich genannt irgendwie Honest Ali und war Gebrauchtwarnhändler und wollte halt auch sein Zertifikat in den Browsern haben.

Jochen

Oder Honest Achmed, ich weiß nicht mehr genau.

Jochen

Es war also super lustig.

Jochen

Ja, in den Browsern sind teilweise komische Root-Zertifikate drin.

Jochen

Aber das, also ja, das Problem ist halt, wie kriegt man sozusagen, der Browser muss halt irgendwo sein Vertrauen Bootstrappen und normalerweise passiert das ja eben so, dass die Sachen schon dabei sind.

Jochen

Also wenn man einen Browser installiert, dann sind die Dinger halt schon drin.

Jochen

Und das heißt, wenn ein Browser ein unterschriebenes Zertifikat sieht, dann weiß er halt, kann er anhand der Liste der vertrauenswürdigen Root-Zertifikate überprüfen, ob das jetzt eine Root CR unterschrieben hat, die er kennt oder nicht.

Dominik

Also Bootstrappen heißt alles selber einstellen.

Jochen

Du kannst das auch alles selber einstellen, aber das sind so.

Dominik

Das ist aber das heißt Bootstrappen.

Jochen

Bootstrappen heißt, dass man, man braucht halt irgendwie sozusagen, man muss die Unterschrift, die man jetzt unter einem Zertifikat sieht, ja zurückführen auf irgendwas, was man kennt.

Sozusagen.

Dominik

Ist das ja auch die, mit der unterschrieben hat, passiert ja ein komischer Ausgrund, der ist irgendwie auch.

Jochen

Und klar, also man könnte jetzt natürlich ein Zertifikat haben, das unterschrieben ist von der einen und dann nochmal eine ganze Kette von Unterschriften, aber die Frage ist halt, irgendwie muss man letztendlich ja einen haben, der man schon vertraut.

Jochen

Und die Art, wie man halt zu diesem sicheren Vertrauen kommt, ist, dass halt schon einfach mit dem Browser mit ausgeliefert wird.

Jochen

Was natürlich, ja, jetzt muss man halt dann auch sicher sein, dass man den richtigen Browser bekommen hat.

Dominik

Dafür kann man ja eine Hash-Summe prüfen bei dem Runterladen von der Seite.

Jochen

Genau.

Ja.

Dominik

Ja, alles nicht so einfach, alles nicht so einfach wird.

Dominik

Also ich möchte jetzt aber an der Stelle gleich kurz diese ganze Browser-Sache so ein bisschen abkürzen, weil wir sind ja immer noch im Python-Podcast und ich glaube, wir haben noch nicht so viel über Python heute geredet.

Ja, das ist richtig.

Dominik

Ja, also Audi im Browser haben wir irgendwie versucht zu erklären und ein bisschen, was für Probleme der Safari die ganze Zeit macht und was da alles nicht so funktioniert.

Dominik

Es sind aber noch einige andere Sachen, haben nicht funktioniert, die auch mit Python zu tun hatten.

Jochen

Ja.

Jochen

Wobei, na, vielleicht zuerst mal noch eine Sache, die dann tatsächlich funktioniert hat.

Jochen

Also der Serverteil quasi in, das ist dann auch tatsächlich Python.

Jochen

Ja.

Jochen

Django, das hat eigentlich alles ziemlich gut funktioniert.

Dominik

Ihr habt die letzte Folge von dich gehört.

Jochen

Und ja, was ich da mache, ist ein Protokoll nennt sich GraphQL.

Jochen

Das ist eine Geschichte, die hat Facebook irgendwann veröffentlicht.

Jochen

Das ist tatsächlich ziemlich nett.

Jochen

Also das ist halt sozusagen eine Alternative zu, vielleicht kennt man das wie so REST-basierte APIs.

Dominik

Also zum Reden über JSON-Files oder?

Jochen

Ja, also quasi wenn man nicht eine Webseite haben möchte, die man dem User präsentiert, wo halt die gerendert werden soll von dem Browser, sondern wenn man jetzt irgendwie irgendwelche Daten haben möchte von einer API.

Jochen

Also heutzutage hat man oft einfach eine Web-Applikation, die im Browser läuft, die einem angezeigt wird.

Jochen

Und vom Server selber kommen eigentlich nur noch so JSON-Daten.

Jochen

Und die Art, wie man die vom Server holt, ist halt, man spricht halt irgendein Protokoll mit dem Server.

Jochen

Immer noch sehr beliebt und es ist halt REST an der Stelle.

Jochen

Das ist halt so, ja, wofür steht REST eigentlich?

Dominik

Das ist ein Rahmen, um JSON irgendwie zu verstehen oder zu verstanden.

Jochen

Nö, das hat gar nicht unbedingt was mit JSON zu tun.

Jochen

Das kann halt auch ein anderes Format sein.

Jochen

Das ist Representational State Transfer natürlich.

Jochen

Also man kann das auch, man kann auch REST-Protokoll oder ein REST-API haben, wo man dann XML zurückbekommt oder halt irgendwas anderes.

Jochen

Oder so irgendwie, wie heißt das, so eine Art binäres JSON-Message Pack oder es gibt auch Binär-JSON-Formate.

Jochen

JSON wird meistens verwendet, aber ist nicht unbedingt nötig.

Jochen

Also zum Beispiel, wenn man jetzt Django REST Framework als Modul oder Third-Party-Django-App verwendet, die den REST-API teilmacht, dann kann man hinten an die Requests einfach Fragezeichen-Format gleich irgendwas dranhängen, wie zum Beispiel JSON oder XML und dann kriegt man halt XML statt JSON zurück.

Jochen

Also das ist eigentlich unabhängig von dem Format.

Jochen

Das Entscheidende bei REST ist eigentlich, dass man die HTTP-Verben benutzt, um mit dem Server zu kommunizieren.

Jochen

Also dass man, wenn man jetzt Dinge haben möchte, also eine Liste von Sachen haben möchte, und das auf dem Server, an dem State des Servers nichts ändert, dann verwendet man halt ein GET-Request.

Jochen

Wenn man Requests macht, die an dem State irgendwas verändern, dann muss man halt Post oder Put oder Patch-Requests verwenden.

Jochen

Und wenn man irgendwas löschen möchte, dann sendet man halt einen Delete-Request.

Jochen

Die meisten Leute kennen ja wahrscheinlich nur Get und Flex-Tost, aber es gibt halt dann noch eine Menge andere Dinge.

Jochen

Und ja, diese Sachen benutzt man im Grunde, um halt mit dem Server zu kommunizieren und man benutzt halt auch die HTTP-Status-Codes.

Jochen

Das heißt, man, wenn einer nicht authentifiziert ist, kriegt man 401 zurück, wenn man nicht autorisiert ist, kriegt man 403 zurück.

Jochen

Wenn man eine T-Kanne ist, kriegt man 407 zurück.

Jochen

Das gibt, glaube ich, oder 409 und 15, ich weiß es nicht genau, das ist halt irgendwie eine Fehlermeldung, heißt eine T-Pot.

Jochen

Es gibt manchmal so.

Dominik

Ja, ja, ja.

Dominik

402 kennen wir noch einen, ja.

Jochen

Ja, den kenne ich gar nicht.

Jochen

Was macht 402?

Dominik

Payment required.

Jochen

Ah, ja, genau.

Jochen

Also es gibt da diverse.

Dominik

Wurden nie benutzt, aber ich habe ein T-Shirt, habe ich mir jetzt drauf geschrieben.

Jochen

Das ist eine gute Idee.

Jochen

Ja, und das ist im Grunde, äh.

Jochen

Das ist auch eine sehr schöne Sache.

Jochen

Ein bisschen Nachteil bei Rest ist halt, dass man manchmal so das Problem kriegt, wenn man jetzt so genäte Daten, also Datenstrukturen, die so ineinander verschachtelt sind, abfragen möchte, dass es dann manchmal etwas schwierig wird und wenn man oft dann halt mehrere Requests braucht.

Jochen

Und also wenn man jetzt, weil oft so diese Reste-APIs direkt auf Tabellen mappen, die halt irgendwie in der Datenbank sind.

Jochen

Und das macht das Ganze manchmal so ein bisschen schwierig.

Jochen

Und dann kann es dazu führen, dass man halt sehr viele Requests rausschicken muss zum Beispiel.

Dominik

Dann muss man sich immer die Deep Links dann besorgen für den neuen Requests, damit dann die Tabelle vollständig wird, die man selber haben will.

Jochen

Ja, oder man hat halt in der Tabelle jetzt nur eine ID, eine Referenz auf eine andere Tabelle drin stehen, sozusagen.

Jochen

Man möchte aber eigentlich die gesamten Daten haben und dann muss man sich erst alle IDs holen, dann schickt man die IDs wieder zum Server und holt die neuen Objekte, was halt ein bisschen doof ist.

Jochen

Man kann das auch so machen, dass es halt, dass man direkt die Daten bekommt, die man haben möchte.

Jochen

Aber dann muss man auf dem Server das halt auch so hinbauen, dass das so geht.

Jochen

Und vor allen Dingen ist es halt unveränderlich.

Jochen

Man kriegt halt immer das gleiche Ergebnis, unabhängig davon, ob man jetzt das braucht oder nicht.

Jochen

Man kann das jetzt zum Beispiel, wenn man jetzt in den Server reinbaut, okay, du kriegst jetzt nicht nur irgendwie die Liste der IDs, sondern du kriegst halt direkt dann schon genästet da drin die Datenstruktur, die du eigentlich haben möchtest.

Jochen

Das nehmen wir an, du hältst gerne eine Liste der aller Alben, die du hast.

Jochen

Und jetzt hältst du aber nicht nur die Track-IDs da drin, sondern halt auch Interpret und Dauer oder sowas.

Dominik

Der Vorteil, der das natürlich hat, wenn man die nicht direkt alle mitschickt, ist das natürlich die Datenmenge, die man bekommt, nicht so riesengroß ist.

Jochen

Ja, aber jetzt nehmen wir an, du hast einen kleinen zwei Ansichten.

Jochen

Eine zeigt halt nur, welche Alben es gibt, und eine zeigt halt auch die Interpreten und die Dauer, jetzt nehmen wir an, an.

Jochen

Jetzt kannst du, da hast du mehrere Möglichkeiten, das zu lösen.

Jochen

Du kannst jetzt zwei unterschiedliche AP-Endpoints, also Endpunkte anfragen, wo du halt einmal das ohne die Tracks kriegst und einmal mit.

Jochen

Dann hast du aber das Blöde, da hast du zwei Endpunkte.

Jochen

Du musst halt zweimal irgendwie den Endpunkt implementieren.

Jochen

Du kannst es so machen, du schickst halt immer alle Daten, das heißt Alben inklusive Tracks, aber dann schickst du einmal zu viel Daten, wenn du die Tracks gar nicht anzeigen möchtest.

Jochen

Oder du schickst halt nur die Liste der Alben mit den IDs für die Tracks und dann musst du halt einen zweiten Request machen, um die Tracks zu bekommen, oder die Metadaten für die Tracks.

Jochen

Und dann hast du das Problem, dann überträgst du zwar nicht zu viel Daten, aber dann hast du halt Latenzen, die sich aufaddieren, weil du immer nochmal einen Roundtrip hast pro Album.

Pro Interpret, ja.

Jochen

Du kannst auch vielleicht alle Gleichzeitig, die kriegen oder so, aber du hast auf jeden Fall nochmal einen, und das kann halt dann auch viel komplizierter werden, wenn du jetzt noch mehr verschachtelte Geschichten hast.

Dominik

Und GraphQL kann das.

Jochen

Und GraphQL löst dieses Problem.

Jochen

Ja, tatsächlich ziemlich elegant.

Jochen

Und da kann man halt sozusagen auf der kleinen Seite bestimmen, was man gerne hätte.

Jochen

Man schreibt halt, ja, das ist halt der große Unterschied im Grunde.

Jochen

Bei normalen Rest-APIs kriegst du halt immer das gleiche.

Jochen

Du kannst halt in den Request nicht reinschreiben, was du gerne hättest, sondern du kriegst halt das, was der Server vorsieht, was du halt auf diesem Endpunkt halt bekommst an Daten.

Jochen

Und bei GraphQL kannst du in die Quer reinschreiben, ich hätte gern diese Spalten und ich hätte gern, das soll jetzt genähtet sein und dann noch diese Relation mitverfolgen und dann da die Spalten aus der Tabelle und so.

Dominik

Macht natürlich die Query ein bisschen länger und komplexer.

Jochen

Macht die Query komplexer und ja, ist natürlich auch auf der Serverseite so ein bisschen schwieriger, weil man muss aufpassen, dass man nicht sich da so durch die ganze Datenbank hangeln kann, wenn man da jetzt irgendwie die ganzen Relationen auflöst.

Jochen

Aber es ist halt tatsächlich auch oft sehr praktisch.

Jochen

Und ja, was man halt auch, also das ist halt ein, das Projekt hat, also das Protokoll hat Facebook irgendwann mal, glaube ich, intern entwickelt und dann sind sie irgendwann, dann haben sie das zum öffentlichen Standard gemacht, weil sie halt das Problem haben mit ihrer App, dass sie ganz viele Abfragen machen und dann halt die gleichen Daten an unterschiedlichen Stellen brauchen, aber dann halt nicht genau die gleichen Daten.

Jochen

Und das ist halt alles, irgendwann haben sie gemerkt, so mit der Press kommt hier nicht weiter und dann haben sich was Eigenes überlegt, was sozusagen ihre Probleme da adressiert.

Jochen

Und ja, GraphQL kann auch andere coole Sachen.

Jochen

Da kann man halt solche Sachen machen wie man kann diverse Statements, Queries zusammenfassen.

Jochen

Man nimmt halt, das heißt, man macht zum Beispiel solche Sachen wie alle 10 Millisekunden sendet man halt irgendwie eine Query raus.

Jochen

Das heißt, man sendet nicht jedes Mal, wenn eine Query gestellt wird im Client, irgendwie eine Anfrage raus, sondern man sammelt alle Querys.

Jochen

Dann packt man die in eine große Query, und die man dann rausschickt und kriegt dann die Antwort und dann kann man halt dafür sorgen, dass zum Beispiel nur in bestimmten Intervallen irgendwie Sachen an den Server geschickt werden, was halt dann die Anzahl der Requests auf dem Server reduziert und so.

Jochen

Also da sind einige sehr, sehr nette Optimierungen drin.

Jochen

Und für Django gibt es eine Bibliothek, die nennt sich Graphene, die man da verwenden kann.

Jochen

Und das ist tatsächlich ziemlich nett.

Jochen

Und dann hat man sozusagen GraphQL-Protokollunterstützung auf Django-Seite.

Jochen

Und da gibt es noch ein sehr schönes Frontend, das man da auch verwenden kann.

Jochen

Das nennt sich Graphical.

Graphical.

Jochen

Das ist sozusagen so ein grafischer Browser für.

Jochen

Und dann kann man dann halt, es macht auch so Tab Completion auf den Queries und so.

Jochen

IQL heißt mit Q.

Jochen

Ja, naja, egal.

Jochen

Genau.

Jochen

Es ist halt dieses Frontend.

Jochen

Und genau, ich habe eigentlich so die letzten Jahre meistens Rest gemacht, aber und GraphQL mache ich jetzt noch nicht so lange, aber ich muss sagen, es ist doch sehr, sehr nett.

Jochen

Was teilweise so ein bisschen ätzend ist, ja, es macht es halt alles komplizierter, wenn es mehr kann, ist es halt mächtiger oft.

Jochen

Und das macht es halt auch kompliziert, was auch komisch ist für jemanden, der aus dem Rest, aus der Restwelt kommt, sozusagen, ist auch, dass HTTP-Werben keine große Rolle mehr spielen.

Jochen

Das heißt, man schickt immer Posts an den Server und man bekommt eigentlich fast immer 200 zurück.

Jochen

Und dann war das war am Anfang immer so beim Debuggen, wenn irgendwas nicht funktioniert hat, und dann gucke ich so ins Network-Tab auf im Browser, sehe dann halt so, kommt ein 200 vom Server zurück, denke mir, da kommt noch ein 200 zurück.

Jochen

Warum ist denn das ein Fehler?

Jochen

Dann so, ja, okay, dann muss man die Antwort erst aufmachen, dann steht da drin so, ja, also hier ist dann 200 und hier ist der Body, deiner Response und da steht halt drin, ja, jetzt ist ein Fehler passiert, ja.

Jochen

Wenn man aufs Rest kommt, dann rechnet man nicht damit, weil da ist es halt nicht.

Jochen

Das ist halt schon was anderes, ist halt nicht 200.

Jochen

Ja, aber wenn man sich dann daran mal so ein bisschen gewöhnt hat, dann ist das auch nicht mehr so schlimm.

Jochen

Und da gibt es auch tolle Debug-Geschichten für einen Browser, wo man das dann halt auch wieder ordentlich sehen kann.

Jochen

Da muss man sich allerdings dann als Browser-Extension installieren.

Jochen

Also zum Beispiel für, ich verwende als Client Apollo, der Apollo-Client.

Jochen

Und da gibt es so eine Extension für Chrome.

Jochen

Es gibt einen Client von Facebook selber, Relay-Client.

Jochen

Der ist, ja, den habe ich nicht ausprobiert.

Jochen

Der ist relativ vollständig, soll sehr mächtig sein.

Jochen

Aber es halt auch, gilt auch als nicht so ganz einfach zu bedienen.

Jochen

Und ich fand ehrlich gesagt Apollo schon ziemlich schwer zu bedienen.

Dominik

Wenn Jochen es sagt, dann finger.

Jochen

Nein, nein, nein, nein, nein, das Ding ist eigentlich gar nicht schlecht, das kann wirklich coole Sachen, aber das ist schon so wirklich, also es kann auch daran liegen, dass ich halt mit JavaScript noch nicht so richtig super viel Erfahrung habe.

Jochen

Aber die API davon fand ich schon teilweise so.

Schon wirk.

Jochen

Nö, das ist einfach schwierig, aber was halt auch damit zusammenhängt, dass es eine komplexe Geschichte ist.

Jochen

Das cacht halt auch ganz viel intern.

Jochen

Und wenn man jetzt irgendwie, zum Beispiel, wenn der User irgendwie eine neue Entität von irgendwas erzeugt, dann muss man ja dafür sorgen, dass der Cache geupdatet wird.

Jochen

Jetzt kann man einfach die Query nochmal ausführen.

Jochen

Aber dann hat man ja Latenz im Frontend, das will man auch nicht.

Jochen

Und dann kann man quasi dem Cache sagen, also hier, ich bin mal optimistisch, das ist das Ergebnis, was wahrscheinlich demnächst vom Server zurückkommt.

Jochen

Zeigt das dem User doch schon mal an.

Jochen

Oder man kann den Cache direkt manipulieren.

Jochen

Und dann wird das halt automatisch ersetzt, wenn dann die richtige Antwort vom Server kommt und so.

Jochen

Und aber dann, wenn dann irgendwie eine Fehlermeldung passiert, dann muss die ja natürlich auch wieder hochbabbeln.

Jochen

Also ja.

Ihr muss sie babbeln.

Jochen

Die muss ja dann auf dem User wieder angezeigt werden irgendwie.

Dominik

Stimmt, ja, ja.

Jochen

Das ist alles so ein bisschen.

Jochen

Aber nee, es ist schon nett.

Jochen

Und ich glaube, wenn ich jetzt irgendwie nochmal die Wahl hätte, wenn ich bei irgendeinem neuen Projekt, ob ich da jetzt Rest nehme oder GraphQL, würde ich wahrscheinlich tatsächlich zu GraphQL tendieren.

Jochen

Weil es halt doch einige sehr nette Vorteile hat.

Jochen

Und ja, also insofern, das ist halt vielleicht ganz interessant zu wissen, dass man nicht unbedingt auf NodeJazz-Server umsteigen muss, wenn man GraphQL machen will, sondern dass es mit Django und Graphene halt auch eigentlich ziemlich gut geht.

Okay.

Dominik

Werden wir unbedingt in den Showness erwähnen?

Dominik

Ich würde sagen, jetzt haben wir so ein bisschen dieses Server-Thema weg, vielleicht kommen wir jetzt noch ein bisschen weiter wieder in die Python-Welt zurück.

Dominik

Schlagen wir so einen kleinen Bogen, was alles nicht so funktioniert.

Dominik

Wir hatten am Anfang erwähnt, Pandas-Requests, Resp mit Hass.

Dominik

Was möchte ich am nächsten?

Jochen

Ja, die Pandas-Geschichte ist eigentlich auch ganz interessant.

Jochen

Ist ja eine super populäre Bibliothek und

Dominik

kennen wir ich.

Jochen

Nee, das ist halt quasi so ein bisschen ein Excel für Python.

Jochen

So für Programmierer.

Jochen

Und ja, ist auch alles sehr nett und so, aber da hat man stößt halt irgendwann dann auch irgendwie an die Grenzen und da hatte ich halt auch schon irgendwie Ärger mit.

Jochen

Ich habe irgendwie, das natürlich ist jetzt auch schon ein bisschen was her, aber viel mit Pandas gemacht und vor allen Dingen viel mit Pandas und Hadoop irgendwie Sachen, Datenstrukturen aus Hadoop irgendwie in Pandas verwenden wollen.

Jochen

Und ja, tatsächlich waren da nicht alle Dinge nur die Schuld von Hadoop.

Jochen

Ja, ja, was auch, also ich, also Hadoop ist schon auch speziell und da gibt es viele Geschichten, die da nicht so gut funktionieren.

Jochen

Aber eben bei Pandas gibt es auch Probleme.

Jochen

Und auch, das ist auch schon ganz alt.

Jochen

Der Gründer dieses des Pandas-Projektes, Wes McKinney, hat irgendwann mal einen Vortrag, glaube ich, gehalten, geschrieben hat, 10 Things I Hate About Pandas.

Jochen

Und das hat er jetzt nochmal aktualisiert.

Jochen

Das jetzt aber auch schon über ein Jahr her in einem Blogartikel, den er, glaube ich, betitelt hat mit Ten Things I Hate About Pandas und das Apache Arrow-Projekt.

Jochen

Was halt so ein bisschen diesen ganzen Kram abhilfen schaffen soll.

Jochen

Und ja, also Pandas kann so diverse grundlegende Geschichten nicht.

Jochen

Also wie zum Beispiel, so ein Problem ist halt, oder sagen wir mal so, das ist sogar eher ein Problem von NumPy, was unten drunter liegt.

Jochen

So Null-Werte gehen halt nur wirklich schwinden mit Float.

Jochen

So, wenn jetzt Integer-Spalten hat und hat dann Null-Werte drin.

Dominik

Aber Nummer kann auch nun

Jochen

also fehlende Werte irgendwie.

Jochen

Also nicht definierte Werte, sozusagen, dann hat man da ein Problem, wenn man das nicht quasi, das gibt es halt nicht.

Jochen

Und das ist ja so ein bisschen schlecht, weil es gibt die ja schon.

Jochen

Kann man sich überlegen, wenn man das irgendwie kodiert und dann schreibt man dann vielleicht minus 1 rein oder so.

Jochen

Aber wenn minus 1 irgendwas bedeutet, dann ist es halt doof unter Umständen.

Jochen

Oder wenn man kann sich eine beliebige andere Zahl ausdenken, die man dann da reinschreibt.

Jochen

Aber man kann halt eben nicht None reinschreiben.

Jochen

Das geht halt nicht.

Dominik

Aber du gibst ja nicht dieses None, also dieses NumPy-None.

Jochen

Ja, das geht nur bei Float.

Dominik

Das geht nur bei Float.

Ja.

Jochen

Und ja, das ist halt so ein bisschen doof.

Jochen

Ja, dann.

Es geht nur bei Float?

Ja.

Dominik

Ich will gerade nämlich so ein Numpe-Buch liegen.

Dominik

Ja, aber bitte erzähl weiter, warum das doof ist, ja.

Jochen

Ja, also vor allen Dingen, wenn man jetzt zum Beispiel in Hadoop irgendwie Daten hat, die das können und wo man halt irgendwie Datenformate hat, die das halt unterstützen, dann hat man halt fehlende Werte irgendwie und möchte das jetzt in den Data Frame pumpen, dann kriegt man halt Probleme, wenn das halt nicht funktioniert.

Jochen

Und dann ist das halt auch alles so ein bisschen schwierig.

Jochen

Man kann zwar, und dann, also es gibt halt dieses Apache Arrow-Projekt, das ist halt vielleicht auch ganz interessant, wo es darum geht, quasi diese einheitlichen Datencontainer zu haben, den man halt dann von unterschiedlichen Sprachen aus benutzen kann, also auch von R oder von C<unk> oder halt eben auch von Java aus.

Jochen

Und das geht halt mit NumPy so nicht.

Jochen

Und ja, also insofern hat man da, wenn man heutzutage Pandas verwendet, noch eine ganze Menge Probleme.

Patchy Arrow.

Jochen

Arrow ist halt sozusagen das Projekt, das diese Geschichten mittelfristig mal so alle irgendwie in den Griff kriegen soll.

Jochen

Und damit könnten dann so wirklich coole Sachen gehen, wie du hast halt die Daten tatsächlich nur einmal, also das ist auch sowas zum Beispiel, was in den Pandas eigentlich nicht geht.

Jochen

Du kannst halt nicht so Daten gememory-mapped in einem Data Frame haben.

Jochen

Also nehmen wir an, du hast halt Daten, die sind zu groß für deinen Hauptspeichern.

Jochen

Jetzt möchtest du dir möglicherweise teilweise immer nur so in den Hauptspeicher mappen, dann darauf irgendwas machen.

Jochen

Und dann irgendwas anderes in den Hauptspeicher mappen.

Jochen

Aber du kannst halt nicht ein komplettes Pfeil, weil es einfach zu groß ist oder so, den Hauptspeicher lesen.

Dominik

Mein Hauptspeicher ist nicht groß genug, dann geht das denn heute drin.

Jochen

Ja, ja doch, gibt es das tatsächlich.

Jochen

Also, ja.

Jochen

Oder ist es halt so, es ist, ja.

Jochen

Ja, oder vielleicht will man das.

Jochen

Es gibt auch andere Gründe, weswegen man das jetzt nicht unbedingt in den Hauptspeicher laden möchte.

Trinken noch einen Schluck.

Oh ja.

Jochen

Aber so kann man sich das vielleicht ganz gut vorstellen, dass das halt ein Problem ist.

Jochen

Und das kann man mit Pandas auch nicht machen.

Jochen

Und also in Zukunft, was so richtig schön wäre, ist halt, du hast, jetzt nehmen wir an die Daten, die in so einem Hadoop-Parket-File irgendwie liegen, sozusagen in einem Container drin, den du halt von allen Sprachen aus ansprechen kannst.

Jochen

Du kannst halt halt irgendwie mit A da irgendwie deine Analysen drüber fahren und halt mit irgendwie Python und Pandas bzw.

Jochen

halt irgendwelchen Machine Learning-Bibliotheken.

Jochen

Du kannst es aber auch irgendwie von Java aus ansprechen oder so.

Jochen

Und du musst dieses Ding nur einmal im Hauptsprecher halten und nicht für jede Sprache neu.

Jochen

Weil das ist halt das, was man momentan macht.

Jochen

Man liest es halt dann in Pandas irgendwie in den DataFrame ein, transformiert dann auch irgendwelche Geschichten, weil halt irgendwie solche Dinge wie None für Integer gibt es halt nicht.

Jochen

Ja, und dann machst du das halt in jeder Sprache nochmal.

Jochen

Das heißt, du hast den Speicheraufwand für jede Sprache, die du dann benutzt, weil du das in den Hauptspeicher laden musst.

Jochen

Und die Repräsentationen sind dann auch noch leicht unterschiedlich.

Jochen

Weil halt bestimmte Sachen nicht gehen.

Jochen

Und dann kommen halt bei Analysen irgendwie unterschiedliche Sachen raus und das ist alles schrecklich.

Jochen

Und dann sagen Leute sowas wie ja, Python kann das halt nicht oder keine Ahnung.

Jochen

R ist halt irgendwie doof oder Java hat es wieder verbockt.

Jochen

Weil eigentlich, genau, wenn man jetzt eine gemeinsame Infrastruktur drunter hätte, die sich darum kümmert, dann wäre das alles deutlich einfacher.

Jochen

Und das soll Apache Arrow mal werden.

Jochen

Das ist jetzt schon eine ganze Zeit, ich habe das halt im Zuge meiner Hadoop-Geschichten da halt auch mal kennengelernt, weil ich hatte halt das Problem, also mein Hauptproblem war, dass ich Daten nicht schnell aus dem Cluster rausgekriegt habe.

Jochen

Und da mit Apache Arrow konnte ich halt diese HDFS-Files halt direkt lesen und das war, beziehungsweise na gut, da musste man halt auch noch Bibliotheken verwenden, die das dann halt konnten, aber ich kriegte das halt irgendwie in der Arrow-Datenstruktur und daraus dann wieder in den Data Frame und dann ging es halbwegs.

Jochen

Aber da wird aktiv dran entwickelt.

Jochen

Ich weiß, es gab das auch mittlerweile so, was man kenne, das Hauptprojekt, denke ich mal.

Jochen

Und das wird eine super interessante Geschichte in der Zukunft.

Jochen

Ja, und das soll halt sozusagen einige der Hauptschmerzen, die man mit Pandas so heutzutage hat, irgendwie in den Griff kriegen.

Jochen

Ja.

Jochen

Das ist vielleicht ganz interessant, da sich das mal anzugucken.

Dominik

Okay, Apache Arrow als Lösung für Pandas-Probleme.

Dominik

Ja, gehen wir gleich zum nächsten Punkt.

Jochen

Genau, so, so Webparsing.

Jochen

Also vielleicht, da sollen wir auch mal irgendwann eine komplette Episode zu machen oder so, aber ist ja so ein Problem, was man immer wieder hat, dass man irgendwelche Seiten scrapen möchte oder so.

Dominik

Wie machst du das so generell?

Dominik

Nimmst du eine wundervolle Suppe oder?

Jochen

Beautiful Soup.

Jochen

Ja, also das kommt auch immer nochmal hervor, dass man das für irgendwas verwendet.

Jochen

Aber nee, meistens benutze ich jetzt tatsächlich eine Bibliothek namens Requests.html.

Jochen

Ist von dem gleichen Autor wie auch Requests.

Dominik

Also die Standardbibliothek von T.

Jochen

Ne, ist nicht Standard.

Dominik

Also nein, Requests ist die Standard.

Jochen

Ja, ja, genau.

Jochen

Kennis Rights ist das irgendwie.

Jochen

Und das Ding macht halt über Requests selbst hinausgehend ein paar Sachen, die ganz interessant sind und die man vor allen Dingen halt dann braucht, wenn man irgendwie so Seiten scrapt.

Dominik

Jetzt habe ich das einfach schon ein bisschen leerer gemacht.

Ja, das war super.

Dominik

War nicht gesehen, ich war so wenig drin.

Dominik

Die Flasche war so dunkel, genau.

Dominik

Zum Wohl.

Jochen

Ja, dann.

Jochen

Toll.

Ja.

Jochen

Und zwar hat man halt mal so Probleme wie, naja, man möchte jetzt irgendwelche Dinge aus dieser Seite, die man irgendwie geladen hat, rausselektieren.

Jochen

Man möchte irgendwie, naja, manchmal sind die Seiten dann so ein bisschen unterschiedlich und dann geht das nicht so gut.

Jochen

Mit Beautiful Soup kann man da ein bisschen was bauen.

Jochen

Das Problem ist halt, dass sobald das nicht mehr so, die Seiten nicht komplett gleich sind, dann wird das mit Beautiful Soup auch schon irgendwie so ein bisschen schwierig.

Jochen

Und dann.

Dominik

Hier muss man jeweils eigenes Skript schreiben für jede einzelne Seiten.

Jochen

Kann man natürlich machen, für jede einzelne Seite oder für einfach Fallunterscheidungen oder so.

Jochen

Es gibt eine saukuole Geschichte, das ist tatsächlich auch ein Pikemodul, das wirklich cool ist, nennt sich Path.

Jochen

Und das kann man auch noch für andere Sachen verwenden, aber in diesem Webscrap-Umfeld kann man es für eine Geschichte verwenden.

Jochen

Das hatte ich früher als Idee auch schon immer mal, also wenn man sich vorstellt, wie eine Webseite generiert wird, dann hat man ja irgendwie so ein Template und dann eine Datenbank und dann wird dieses Template ausgefüllt, meistens mit Werten aus der Datenbank irgendwie.

Jochen

Und selbst wenn man jetzt Seiten hat, die so ein bisschen unterschiedlich sind, dann ist das doch meistens irgendwie dasselbe Template irgendwie.

Jochen

Und ja, jetzt dachte ich früher immer schon so, dann habe ich dann auch gemerkt, das haben Leute schon implementiert, Leute haben sich überlegt, okay, wenn ich jetzt mehrere Seiten habe, dann kann ich doch vielleicht das Template daraus extrahieren.

Jochen

Dann kann ich sozusagen einen umgekehrten Prozess machen.

Jochen

Wenn ich das Template habe, dann möchte ich einfach nur alle Werte haben, sozusagen, die aus der Daten bekommen, damit ich die Datenbank wieder zurückbekomme.

Jochen

Und da gab es einige, da gab es auch auf dem ursprünglichen Auto von Django irgendwie eine Bibliothek zu, die aber schon lange nicht mehr gepflegt wird, die sozusagen automatisch rausfinden soll, was das Template ist und so.

Jochen

Und diese Path-Bibliothek ist aber jetzt eigentlich, das ist auch cool.

Jochen

Da schreibt man im Grunde sozusagen sein Template irgendwie rein.

Jochen

Man kann auch damit relativ leicht rausfinden, wie das Template dann eigentlich aussieht.

Jochen

Und dann gibt einem das sozusagen die Werte wieder zurück, sozusagen.

Jochen

Und das muss man sich mal, also kann man sich mal angucken, wie das genau funktioniert.

Jochen

In dem Request.html-Paket ist, gibt es dann so ein Search-Kommando, wo man das dann halt verwenden kann.

Jochen

Und das löst dieses Problem zum großen Teil, Sachen aus einer Seite raus zu parsen.

Ja.

Jochen

Und dann kann es halt, kann das, das ist ein Teil, man möchte halt irgendwie sozusagen da irgendwelche Werte aus einer Seite rauslesen.

Jochen

Und eine andere Geschichte, die man halt auch immer wieder hat, ist, wenn jetzt da JavaScript drin steht, dann möchte man eigentlich eine gerenderte Version der Seite sehen.

Jochen

Man möchte halt nicht das HTML sehen, weil oft man kriegt man dann halt nur so Grundgerüst an einer HTML, irgendwie einen Haufen JavaScript und JSON-Daten und dann weiß man aber nicht, was man damit irgendwie machen soll.

Jochen

Weil man eigentlich die Daten haben möchte, die dann hinterher, wenn der Browser das rendert, in der Tabelle angezeigt werden oder so, weil die Tabelle ist dann irgendwo mehr.

Jochen

Und dafür gibt es bei Requests.html auch so eine relativ schöne Geschichte, nämlich, also das ist noch so ein bisschen hakelig manchmal, aber da ist so ein Headless Browser mit drin.

Jochen

Also gab es auch früher alles schon, es gibt irgendwie, na, wie heißt das Ding?

Jochen

Diese Java Selenium als Interface, es gibt Phantom.js, es gibt ja diverse Geschichten, die man benutzen kann, die halt alle so eine leicht andere API haben und so, das ist immer ein bisschen schwierig.

Jochen

Chromium hat eine ganz schöne API, die man benutzen kann, aber es ist alles irgendwie nicht so dolle.

Jochen

Für JavaScript gibt es eine Bibliothek namens Puppeteer.

Jochen

Und davor gibt es eine Python-Adaption namens Pipeteer und das ist eingebaut in Requests, HTML und das ist halt alles relativ schön verbastelt, sodass man davon nichts mitkriegt.

Jochen

Also was das Ding dann tatsächlich tut, man sagt, so führ doch mal JavaScript auf dieser Seite aus und rendert mir das und dann kann man halt über eine API sagen, gib mir einfach ein Bild dieser Seite.

Jochen

Oder man kann sagen, gib mir irgendwie den gerenderten DOM dieser Seite oder gib hier ist ein Stück Schnipsel JavaScript, führe das mal im Kontext dieser Seite aus.

Jochen

Und dann, was Requests.html macht, ist dann lädt halt ein Chromium runter und es bastelt das alles so zusammen, dass es irgendwie funktioniert.

Jochen

Und es rendert halt dann die Seite und gibt dann das Ergebnis zurück und das Ganze sogar mit einer asynchronen API, sodass man das halt alles so im AsyncIO-Umfeld verwenden kann.

Jochen

Und man hat mit diesem ganzen Stress, den man normalerweise dann so hat, hat man nicht mehr viel zu tun, was sehr nett ist.

Jochen

Und das funktioniert tatsächlich sehr gut.

Jochen

Also früher habe ich mich damit so oft unter mich ein Kram rumgeschlagen.

Jochen

Teilweise muss man dann ein Webkit kompilieren und dann gab es da diverse Geschichten, es gab noch Splash früher mal.

Jochen

Es gibt eine ganze, ja, ein ganzes, diese, die Leute, die auch Scrapie bauen, da gibt es eine Firma dahinter, die haben da diverse Services, die sie anbieten.

Jochen

Da gibt es noch, da kann da kann man auch irgendwie Scraper irgendwie erstellen.

Jochen

Ich glaube, ein Tool heißt Porter, wo man dann auch sagen kann, was auf einer Seite wo ist und so.

Jochen

Und die haben auch so ein Proxy namens Splash, wo man dann halt quasi über so ein Proxy einen Hapless-Browser hat, mit dem man da irgendwas Dinge machen kann.

Jochen

Da kann man auch irgendwie JavaScript in der Seite injizieren oder irgendwelche Sachen rauspassen.

Jochen

Aber das war alles immer ziemlich ätzend.

Dominik

Kannst du nochmal ganz kurz erkennen, dass du Scrapie denn genau machst im Vergleich?

Jochen

Ja, Scrapie ist auch im Grunde so eine Komplettlösung, mehr oder weniger.

Jochen

Also da kommt es dann auch noch mehr auf den Crawling-Teil im Sinne von, ich habe hier ganz viele URLs, die ich abfragen möchte und dann muss man daraus irgendwie, muss man die halt durchgehen, muss halt irgendwie mehrere Prozesse haben, die halt da irgendwie die Seiten holen und so.

Jochen

Dafür ist das halt eher gedacht, halt, dass man quasi wirklich eine komplette Seite halt irgendwie mal so darüber läuft, über alle Unterseiten, die es ja so gibt.

Jochen

Ja, da ist aber nicht so viel, also wenn es darum geht, da Informationen aus einer Seite zu holen, das muss man dann alles mehr oder weniger selber schreiben.

Jochen

Und dann, das kann man dann per Beautiful Zub tun oder Alex ML irgendwie, also das ist auch sowas bei Request-Satmil, der Standardweg, wie man da Elemente selektiert oder so, ist über CSS-Selektoren.

Jochen

Das ist auch sehr angenehm, weil das macht man ja im Browser normalerweise auch so.

Jochen

Auch im JavaScript-Bereich.

Jochen

Ja, und Scrapey gibt eine ganze Menge Infrastruktur, wenn man jetzt so einen Scraper bauen möchte, aber vom Inhalt her hilft einem das gar nicht so viel.

Jochen

Wenn man jetzt eine konkrete Seite hat und da irgendwelche Sachen rausziehen möchte, dann hilft einem Scrapy da nicht.

Jochen

Wenn man jetzt rausgefunden hat, wie man das tut und möchte das jetzt skalieren auf, keine Ahnung, 100.000 Seiten und möchte das mit fünf Prozessen auf irgendeiner Server irgendwie, dann ist Scrapey auch wieder eine sinnvolle Geschichte.

Jochen

Ja.

Jochen

Und es gibt halt irgendwie eine Firma, die ganz eine Menge Services um diesen Kram herum baut.

Jochen

Ja, habe ich jetzt auch wieder vergessen, aber sagen wir mal so, also es gibt, wir haben, ich habe schon für diverse Firmen Sachen gemacht oder auch schon für Firmen gearbeitet, die halt auch damit immer wieder Probleme hatten.

Jochen

Scraping ist halt so ein Ding, was immer wieder auftaucht, was man immer mal wieder machen muss.

Jochen

Und Requests.html ist tatsächlich so die angenehmste Lösung für dieses Problem, die mir bisher über den Weg gelaufen ist.

Jochen

Deswegen wollte ich das mal erwähnen, dass das gibt und dass es halt nett ist.

Jochen

Und genau wenn man halt das Problem hat, das Template zu extrahieren aus solchen Seiten und da Sachen rauszuparsen, dann ist es halt, sollte man sich die Pars und Search-Funktionen mit Requests hat mir einmal angucken, weil das ist echt sehr nett.

Jochen

Ja.

Jochen

Okay.

Genau, das war's.

Jochen

Das war's im Grunde schon.

Dominik

Ja, dann würde ich sagen, kann man ja Request hat mit Pars.

Ja.

Dominik

Kurz.

Dominik

Nächstes Thema war der Hass mit dem Raspi.

Dominik

Was ist da passiert?

Dominik

Ist was kaputt gegangen.

Ja, ja, mein Raspi.

Dominik

Chaos vor Weihnachten immer dafür.

Jochen

Ja, genau, das ist irgendwie schade.

Jochen

Ich hätte, oh, das Grundproblem war irgendwie, dass, das habe ich auch schon seit seit über einem Jahr, habe ich das Problem, dass ab und zu das Factoring auf meinem DSL-Anschluss ausfällt.

Dominik

Aha, das liegt an dem DSL-Anbieter.

Jochen

Ich weiß ehrlich gesagt nicht so genau, woran das liegt.

Jochen

Aber ja, ich sehe halt, dass es passiert.

Jochen

Ich habe so eine Fritzbox, da kann man dann sehen.

Jochen

Quasi, da steht dann irgendwie, G-Vector ist irgendwie aus oder so.

Jochen

Da kann man irgendwie nachgucken, was das bedeutet und dann so, oh ja, das Vectoring ist auch.

Dominik

Das Gott für unsere unwissenden Hörer, was ist Vectoring?

Jochen

Ach Gott, Vectoring, das ist so ein Kuppel.

Jochen

Also wir haben ja in Deutschland diese unvergleichliche Klingel-Drahtkupfer irgendwie Telefoninfrastruktur.

Jochen

Vielleicht nicht mehr so ganz zeitgemäß ist, aber liebevoll auch ins 21.

Jochen

Jahrhundert irgendwie gerettet wurde.

Jochen

Weil, ja, was natürlich für die Telekom irgendwie angenehmer ist, Gewinn zu machen mit Dingen, die der Bund mal investiert hat, mit Geld, das der Bund mal investiert hat und damit der Infrastruktur weiter Geld zu retten.

Dominik

Und nicht irgendwelchen neuen Glasfall an.

Jochen

Wenn man selber was nicht so.

Jochen

Naja, auf jeden Fall, das Problem ist, dass bei Kupfer ist halt irgendwie relativ schnell Schluss, so mit das aktuelle DSL.

Jochen

DSL-Technik zieht da schon so alles, was an, was man so an Tricks machen kann, um da mehr Daten drüber zu kriegen, wird halt gemacht.

Dominik

Also alles Kabel, was man da in die Erde verlegt hat, ist quasi voll.

Jochen

Ja, also da geht er einfach nicht mehr drüber.

Jochen

Da ist man halt einfach an den physikalischen Grenzen, was man da machen kann.

Jochen

Und naja, da das Einzige, was dann halt noch blieb, ist sozusagen sich Frequenzen irgendwie mit anderen zu teilen, so ein bisschen, solange die nicht benutzt werden, benutzt man die halt dann mit.

Jochen

Was dann aber dazu führt, dass man auf der auf der Seite, wo man, wo man einen Anschluss hat, das muss halt alles aus einer Hand kommen.

Jochen

Wenn jetzt sozusagen man zwei unterschiedliche Provider hat, ja, an einem, also man hat immer, das Telefonkabel geht so von der TAE-Dose, die man an der Wand hat, geht halt zu irgendeinem Gerät von dem Provider sozusagen in einem.

Dominik

Zum HVT oder zum erst zum Hausanschluss und dann zum HVT-Hauptverteilern, ja.

Ich weiß gar nicht, wie man das nennt.

Jochen

Das ist halt irgendwie so ein grauer Kasten auf der Straße, so wenn die, wenn die Brummen und da Lüfter drin sind, dann ist das gut.

Jochen

Dann ist das wahrscheinlich irgendwie so schnelleres DSL, als wenn das nicht brubst.

Jochen

Da ist irgendwie so eine Art Switch oder weißer Teufel irgendwie irgendwie sowas drin, wo halt der Telefon-Dings da ankommt.

Jochen

Und wenn man jetzt Vectoring macht, dann bedeutet das halt sozusagen, wenn auf der anderen Leitung sozusagen niemand gerade irgendwie Daten überträgt, dann gehe ich in einen Modus, den ich eigentlich normalerweise nicht nehmen darf, weil ich ansonsten quasi dem in die Daten reinfunke.

Jochen

Also wenn beide das machen würden, würde das schief gehen.

Jochen

Das heißt, man muss sich irgendwie absprechen, es muss sagen, okay, solange niemand anders irgendwie Daten sendet, kann ich das halt machen, dann wird es halt schneller.

Jochen

Und ja, so kriege ich dann halt über diese Kupferleitung dann doch noch wieder mal ein bisschen mehr rüber.

Jochen

Das Problem ist halt dann aber, dass quasi ich nicht mehr sozusagen ein Endgerät von unterschiedlichen Providern haben kann, sondern da das ja koordiniert werden muss, dass ich sozusagen das nur machen kann, wenn ich alle Leitungen unter einer Kontrolle habe, bedeutet das, die Hardware muss aus einer Hand kommen und es muss eine Stelle geben, die das kontrolliert.

Jochen

Das ist üblicherweise die Telekom.

Jochen

Und das heißt, also ich finde, ich habe halt meinen Vertrag bei U2, aber mein Anschluss läuft über die Telekom-Hardware, weil sich das ja mit allen anderen Anschlüssen irgendwie koordinieren muss.

Jochen

Ja, alles ein bisschen furchtbar.

Jochen

Ich meine, es stört mich auch nicht weiter.

Jochen

Es funktioniert halt irgendwie, es ist auch tatsächlich schneller, also insofern ist alles gut.

Jochen

Aber bei mir war es halt so, das fällt halt so, fiel halt so alle paar Wochen aus und war dann halt weg und fiel dann halt nicht zurück auf VDSL, was so 50 Mbit down, 10 Mbit up ist, sondern auf 16 Mbit oder 14 Mbit down und 768 Kilobit up oder so.

Dominik

So auf 2002 oder so.

Jochen

Ja, was für mich jetzt echt blöd ist, weil ich ja das brauche ja die Mits, ich brauche ja die Wandbreite.

Jochen

Precious Bandbreite brauche ich doch eigentlich.

Jochen

Ich mach da ja auch Backups drüber und so.

Literal, ja.

Jochen

Nee, nee, das ist alles seriöse Datenverarbeitung.

Jochen

Und ja, das ist für mich total nervig.

Jochen

Und dann rufe ich da halt immer an und dann, wenn die sagen, okay, sie haben ein Ticket aufgemacht bei der Telekom, dann geht da irgendwie so ein Diagnoserequest raus, der halt meinen Port irgendwie da resetet.

Jochen

Und dann geht's wieder.

Dominik

Kannst du nicht automatisiert, diesen Port.

Jochen

Genau, das habe ich auch schon überlegt, ob man das nicht irgendwie automatisieren kann oder so.

Jochen

Manchmal ist es voll gut, dann rufe ich da an und fünf Minuten später geht wieder alles.

Jochen

Und manchmal machen sie irgendwie dieses Ticket nicht oder sagen nur, dass sie es tun, tun es aber nicht, oder weiß ich nicht.

Jochen

Und dann kann es auch mal sein, dass ich eine Woche schlechtes Internet habe.

Jochen

Und das ist halt echt Küke.

Jochen

Und ja, aber das ist halt durch so viele Iterationen gelaufen mittlerweile.

Jochen

Ich hatte da auch schon irgendwie zwei Stunden lang ein Gespräch mit irgendwie einem Techniker, die konnten das dann auch ausmessen, irgendwie meine lokalen Leitungen, wie das dann mit denen aussieht.

Jochen

Haben herausgefunden, irgendwo, dass ich eine Reflexion, irgendein Kabel bei mir habe, dann habe ich das Kabel ausgetauscht.

Dominik

Satt TV, Satt TV, ich sag's dir, der irgendjemand, der rennt nah über dir, der guckt SackTV gerne und die strahlen in dein Vectoring oder so.

Jochen

Ich weiß es nicht.

Jochen

Auf jeden Fall, das war fand ich schon beeindruckend, da hat sich jemand auch wirklich Zeit genommen, das hat mir leider das Problem nicht gelöst.

Jochen

Das Vectoring ist doch später wieder ausgefallen.

Jochen

Und inzwischen ist soweit, es war auch ein Telekom-Techniker da.

Jochen

Und das war auch alles sehr nett und der war dann noch im Keller, hat sich das erstmal angeguckt und dann bei uns in der Wohnung auch und so.

Jochen

Und ja, der hat dann meinte dann so, hm, ja, ich weiß nicht, es geht irgendwie nicht so richtig gut oder manchmal passiert halt, geht es halt schief.

Dominik

Weil wir die bei kurzer Exkurs, wie die bei den Upload gefixt haben.

Dominik

Die haben in der Tiefgarage an dem Kabel einen Limiter entdeckt, den sie wieder ausbauen mussten.

Oh Gott.

Dominik

Nein, toll, da könnt ihr stundenlang Geschichte erzählen über Kabel und Netze und ja.

Jochen

Ja, vielleicht auch mal, genau, ja, warum eigentlich nicht?

Jochen

Und naja, jedenfalls hieß es dann so, okay, wir haben sie einfach mal so auf ein anderes Kabelpaar umgeswitcht.

Jochen

Mal gucken, wenn es dann geht, dann ist ja gut.

Jochen

Aber im Verlauf dieser ganzen Prozedur muss ich halt alle meine Geräte irgendwie ausstecken und alles neu starten und irgendwie diverse Dinge, ja, und

Dominik

wir sind jetzt übrigens vom Raspberry Pi auf Vectoring gekommen.

Jochen

Achso ist, ja, richtig, wir waren ja nur Raspberry.

Jochen

Ja, aber das ist das Problem dabei ist halt, dass ich bei dieser Aktion halt der Raspberry Pi gemootet hat.

Jochen

Und ich hätte halt festgestellt habe, nachdem das Ding wieder hochgefahren ist, dass ich mich nicht mehr drauf einloggen konnte.

Dominik

Yeah, mein Passwort war ja gestern.

Jochen

Yeah, das kann ich alles, aber ich kann halt nicht mehr SH-Demon ist da irgendwie nicht hochgefahren.

Jochen

Ich kann das Ding noch anpingen, aber ich komme nicht mehr drauf.

Jochen

Blöd.

Jochen

Und dann habe ich halt irgendwie gemerkt, so, verdammt, ich habe auch keinen Monitor mehr, den ich da anschließen kann.

Jochen

Weil die habe ich inzwischen alle verschenkt oder irgendwie verschrottet.

Dominik

Bring dir mal mit, da können wir mich nicht anschließen.

Jochen

Naja, das können wir mal probieren.

Jochen

Und jetzt weiß ich nicht so richtig, wie ich das Ding wieder ins Laufen kriege.

Jochen

Und ja, ich habe da noch diverse, mein Freitrunkrouter hat es auch erwischt, denn das ist auch irgendwie, seit dieser Aktion hat, der läuft der irgendwie nicht mehr richtig überhaupt.

Jochen

Also in diesem Schrank, in dem mein ganzer Elektronik-Bastelkraben sich befindet, dass irgendwie, das ist selber oben drin.

Ein Weihnachtschaos, das ist ausgebrochen.

Dominik

Oh, also ein Jahr, ja.

Jochen

Also und was das ist halt echt blöd, weil jetzt habe ich keine Temperaturdaten mehr.

Jochen

Ich habe irgendwie meine Heimautomatisierung funktioniert nur noch so rudimentär quasi, weil das lief ja alles über Home Assistant.

Dominik

Aber du kannst jetzt schon noch die, also richtig.

Ich kann schon Lichter an die Dusche funktioniert noch.

Ja.

Okay.

Jochen

Ja, aber ich muss ja für diese Philips EU-App benutzen.

Jochen

Oh.

Jochen

Wie so ein Tier.

Dominik

Du kommst auch noch in deine Wohnung rein zum Beispiel.

Das geht alles, ja.

Dominik

Ja, man weiß ja immer nicht genau, also wo das dann immer gesteuert wird, wenn das dann so einem Gerät zentral.

Jochen

Ja.

Dominik

Ja, der Raum-Authematisierung mit Raspberry Pi ist ausgefallen, weil tatsächlich dein Vectoring nicht funktionierte und deswegen ein Geräte neu gestanden wurde und du nicht mehr per SSH konden kannst, weil du keinen Monitor mehr hast und so nicht mehr auf das System zugreifst.

Dominik

Ja.

Okay, ja.

Stimmt, ne?

Dominik

Ja, katastrophal.

Dominik

Also ein kleines Exzellenz-Display, ja, mal mitbringen oder so.

Jochen

Also ich kriege dieses Problem wahrscheinlich schon irgendwie in den Griff.

Jochen

Ich muss halt plus.

Jochen

Also halt irgendwie.

Dominik

Wie viel Zeit der Jochen für seine Home-Automatisierung hat, wenn seit einem Jahr sich nicht mehr darum gekümmert hat, dass der Respi bootet.

Der funktioniert.

Jochen

Ja, ja, und dann ist auch nochmal der Verstärker ist irgendwie, das ist auch so der Erklärung, der ist super laut, der lüftet immer so rum und zwar nicht ein bisschen, sondern der ist so richtig fieslaut, da muss ich auch noch irgendwas einfallen lassen.

Jochen

Vielleicht kann ich das ja auch mit dieser ganzen Home-Automatisierungsgeschichte so ein bisschen mehr besser.

Jochen

Ich weiß noch nicht genau, wie man das.

Jochen

Also da gibt es ja dann halt einige Optionen, die man irgendwie nehmen könnte.

Jochen

Ich könnte zum Beispiel mehrere Raspberry Pis nehmen und da irgendwie Boxen dranhängen.

Jochen

Weil ich hätte ja zum Beispiel auch sowas gerne wie, dass die Musik in unterschiedlichen Räumen irgendwie die gleiche Musik abgespielt werden könnte, zum Beispiel.

Jochen

Was ich theoretisch jetzt auch könnte, aber einmal pumpt der Verstärker so, dass ich ihn nicht mehr benutze.

Jochen

Und dann müsste ich halt Kabel durch die ganze Wohnung ziehen, was ich eigentlich auch nicht will.

Ja.

Jochen

Und ich glaube, das kann man mit Raspberry Pis auch hinkriegen.

Jochen

Oder man nimmt halt irgendwie eine kommerzielle Lösung.

Jochen

Ich könnte auch diese Apple Homepots oder so verwenden, aber das ist schon ein bisschen teuer, dass man das irgendwie in die Hinraum stellt.

Dominik

Du hast, glaube ich, das Protokoll umgestellt, also nicht per Bluetooth, sondern per Funk.

Ja.

Dominik

Und zwar hast du die alten terrestrischen Frequenzen genommen, die man jetzt abgeschaltet hat, wenn ich mich

Jochen

recht hätte.

Jochen

Das war das, das für die Temperatursensoren, ja.

Ja, ja.

Jochen

Aber so für Audio würde ich halt wahrscheinlich ganz normales WLAN nehmen.

Jochen

Nur ja, muss man auch mal, also könnte man wahrscheinlich auch irgendwie so ein Python-Projekt draus machen.

Dominik

Also die Frage ist, gibt es Boxen, die das können, WLAN vernünftig?

Jochen

Nee, nicht so richtig.

Jochen

Also außer diese Fertiggeschichten von Apple oder Sonos, es gibt halt noch so eine spezialproprietäre Lösung von Sonos.

Dominik

Waren die nicht mal pleite?

Sonos?

Jochen

Nö, ich glaube, denen gibt es ganz gut.

Dominik

Dann habe ich mich verguckt.

Jochen

Aber ja, also man hatte also auch so einen blöden Login-Effekt bei Sonos und

Login, Login?

Dominik

Ach, du bist wieder auf das System gebunden.

Jochen

Ja, genau.

Jochen

Nö, die gibt's noch.

Die gibt's noch.

Jochen

Oh.

14.9.

Jochen

Okay.

Dominik

Naja, gut, ein bisschen eingebrochen.

Jochen

Ja.

Jochen

Aber im Grunde könnte man da auch mal so ein bisschen was automatisch, weil man kann ja von dem Raspberry Pi auch irgendwie, den könnte man sozusagen als Endpunkt für WLAN irgendwie verwenden und dann halt das Audiosignal über einen ganz normalen Verstärker und dann eine Box oder halt eine Aktivbox irgendwie wiedergeben.

Jochen

Ja, das wäre halt noch so eine Idee.

Ich muss da mal irgendwas machen.

Jochen

Ich muss auch diesen Verstärker loswerden, ich weiß nicht.

Dominik

Ja, wir müssen mal so ein Display für dich organisieren, dann irgendwie mal einen Monitor hinschleppen und deswegen kriegen wir das alles schon wieder zum Laufen.

Dominik

Ja.

Dominik

Heute haben wir ja gar nicht so viel über Python geredet tatsächlich.

Dominik

So ein kleines bisschen exkursmäßig, was machen kann das machen.

Dominik

Sehr viel über Web, sehr viel Chaos.

Dominik

Ich hoffe, ihr seht uns das heute nach, obwohl wir der Python-Podcast sind.

Dominik

Wenn ihr keine Lust habt, dann hört einfach nicht zu.

Dominik

Ja, ich glaube, das ist ja zu spät.

Dominik

Wir sind schon am Ende der Sendung.

Dominik

Ja, schreibt uns doch, was ihr davon gehalten habt, ob ihr mehr von solchen Folgen auch haben möchtet.

Dominik

So, ob ihr viel mehr über Python mischen möchtet.

Dominik

Wie immer anhalle Python-Podcast.de Ich hoffe, ihr hättet Spaß, auch mit Pandas, mit Request.html, mit dem kleinen Einschwung über den Respi und mit ganz viel Browser und Rust und Safari-Bytranchradar und was man alles so machen kann.

Dominik

Wie mein Mainface Cloud, auch von der C-Bit.

Jochen

Ja.

Dominik

Ja, GrafQL mit Django haben wir noch, glaube ich, erwähnt heute.

Ja.

Dominik

Ich würde uns freuen, wenn ihr das nächste Mal auf jeden Fall wieder zuhört.

Jochen

Genau, und dann denke ich, melden wir uns wieder im nächsten Jahr.

Mit der nächsten Folge.

Jochen

In die Weihnachtspause, wobei jetzt ja eigentlich zum Hören gar nicht Pause ist, sondern nur vom

Dominik

Jahr vielleicht hört er es ja auch erst zwischen den Jahren oder schon.

Jochen

Dafür ist die Folge eigentlich auch gedacht, dass man dann was zu hören hat auch.

Ja.

Dominik

Ja, für uns hat es viel Spaß gemacht.

Dominik

Ich hoffe euch auch.

Jochen

Und dann bis zum nächsten Mal.

Dominik

Bis zum nächsten Mal.

Dominik

Kommt gut rein, kommt gut raus, kommt gut, wo auch immerhin ihr wollt.

Dominik

Ja.

Tschüss.

Tschüss.