Transcript: PP03 - Weihnachtsfolge

· Back to episode

Full episode transcript. Timestamps refer to the audio playback.

Dominik

Ja, hallo liebe Hörerinnen und Hörer, willkommen beim Python-Podcast, diesmal in der Weihnachtsepisode.

Dominik

Ja, was machen wir hier eigentlich? Wir sind diesmal bei Dominik unterm Dach.

Dominik

Ja, ich bin der Dominik und dabei ist natürlich wieder Jochen. Hallo Jochen.

Jochen

Ja, hallo, ich bin Jochen, genau. Und ja, das ist irgendwie eine sehr schöne...

Jochen

Das sieht ein bisschen aus wie eine Raumschiffzentrale, ehrlich gesagt.

Jochen

Eine ganze Menge Monitore und Elektronikdinge. Ich bin da ein wenig neidisch, muss ich sagen.

Jochen

Oh, das hört sich super an.

Dominik

Also ich bin auch immer neidisch auf deinen schönen Wintergarten.

Dominik

Aber probieren wir es mal hier aus.

Dominik

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

Dominik

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 Beyerdynamics-Headset verwendet.

Jochen

Das war eigentlich ziemlich cool und das war auch vor allen Dingen schön,

Jochen

dass ich dann hören konnte, dass alles immer noch funktioniert

Jochen

und nicht irgendwie der Audio-Stream plötzlich weg ist.

Jochen

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

Dominik

Du meinst mit letztes Mal die Django-Folge,

Dominik

die noch gar nicht ausgestrahlt worden ist?

Jochen

Ja doch, also wenn wir die jetzt ausstrahlen,

Jochen

dann ist die schon ausgestrahlt.

Dominik

Ja? Also wir machen zuerst die Django-Folge

Dominik

und dann die Weihnachtsfolge.

Dominik

Denke ich schon, ja.

Dominik

Ja, das finde ich super, okay.

Dominik

Also sind wir sogar in der dritten Episode offiziell.

Dominik

Ja, genau.

Dominik

Wobei es natürlich auch wieder darauf ankommt,

Jochen

wann man anfängt zu zählen oder wie man anfängt zu zählen.

Jochen

Bei Null?

Jochen

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

Jochen

So, wir sind ja nicht bei Fortran hier.

Jochen

so bei 1 anfangen zu zählen, ist ja im Grunde

Jochen

irgendwie falsch, so für mich

Jochen

als irgendwie computeraffin.

Jochen

Also es gibt Mathematiker, die auch bei 1 anfangen zu zählen,

Jochen

aber das ist alles Unsinn.

Dominik

Ja, aber natürlich

Dominik

ist jetzt die Frage, wenn wir jetzt bei 0

Dominik

anfangen zu zählen, haben wir ja trotzdem 3

Dominik

Episoden drin, denn die Länge des

Dominik

Arrays wäre ja irgendwie... Ist immer noch 3,

Dominik

aber wir wären erst bei Nummer 2.

Dominik

Ja, okay. Aber ich glaube...

Dominik

Da müssen wir uns nochmal drüber streiten.

Dominik

Ich glaube, man kann

Jochen

in der Datenbank, das sind momentan

Jochen

die tatsächlich, die ID ist der Datenbank, man kann in der

Jochen

ID, in der Datenbank, die fängt

Jochen

auch mit 1 an und nicht mit 0.

Jochen

Naja, ach, alles kaputt.

Jochen

Alle

Jochen

tolle Sachen werden dann nur mal kaputt

Jochen

gemacht. Ja, also genau,

Dominik

kaputt ist direkt das nächste Stichwort, weil was machen wir

Dominik

heute? Heute wollen wir tatsächlich

Dominik

ein bisschen darüber erzählen, was alles nicht so richtig

Dominik

funktioniert. Vor allem, was der Jochen immer

Dominik

so im Web macht und was dann da nicht klappt.

Dominik

So an Pandas mit Request HTML,

Dominik

Pars mit seinem Respy,

Dominik

der hat nämlich Hass und

Dominik

muss weg. Und mit dem Verstärker

Dominik

von Jochen. Ja, da wollten wir

Dominik

am Ende ein bisschen euch über

Dominik

eigene Podcasts erzählen, was es

Dominik

so für interessante Dinge noch gibt.

Dominik

Ja, und diesmal so ein bisschen durcheinander. Ist ja die Weihnachtsfolge

Dominik

ein bisschen Chaos. Genau, wir haben nicht wirklich

Jochen

was vorbereitet, sondern wir erzählen jetzt

Jochen

einfach mal so, was so passiert.

Jochen

Was vielleicht auch ganz interessant sein kann.

Jochen

Und ich denke, vielleicht ist es sogar am besten einfach mal so,

Jochen

ja, wie geht es uns eigentlich?

Dominik

Ja, erst mal für immer, wenn wir Fragen, Anmerkungen,

Dominik

Kommentare, Lob, Hass, alles mögliche

Dominik

haben, schreibt an

Dominik

hallo.python-podcast.de

Dominik

Und die Links und zusätzlichen Infos

Dominik

findet ihr in den Shownotes.

Dominik

Ja, Entschuldigung, ich wollte dich jetzt nicht unterbrechen.

Dominik

Direkt los. Was machen wir heute?

Dominik

Wir haben uns nicht richtig vorbereitet.

Jochen

Ja, wir machen immer so querbeet, alles mögliche.

Jochen

Genau. Und ja, aber

Jochen

genau, wie geht's uns?

Jochen

Wie geht's dir, Jochen?

Jochen

Ja, besser.

Jochen

Nachdem wir

Jochen

irgendwie letzten Monat

Jochen

bei einem

Jochen

Ausflug irgendwie in den Taunus

Jochen

einen Hund in die rechte Hand

Jochen

gebissen.

Jochen

Ich dachte immer so ein bisschen, bin ich eher so

Jochen

der Hundetyp statt Katzentyp, aber

Jochen

das muss wohl auf Gegenseitigkeit

Jochen

beruhen und wenn man

Jochen

von Hunden nicht so gemocht wird, dann

Jochen

war er erst wenigstens ein süßer Hund.

Jochen

Nee, nee.

Jochen

Sogar ein hässlicher Kleiner.

Jochen

Oder ein hässlicher Großer.

Jochen

Und das

Jochen

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

Jochen

Echt, muss das sein?

Jochen

aber da sind jetzt die Verminderer ab

Jochen

und das sieht alles super aus

Jochen

kann alles bewegen

Dominik

Wie hast du in der Zeit die Maus gesteuert? Mit dem Fuß?

Dominik

Ne, tatsächlich mit der gleichen Hand

Jochen

Ich habe keine Maus, ich habe ein Trackpad

Jochen

Ah, ein Trackpad

Dominik

Das ist ja fast ganz oldschool, also kein Trackball

Dominik

ein Pad

Jochen

Die Idee dabei ist

Jochen

sozusagen, dass ich

Jochen

möchte, dass meine

Jochen

Desktop-Arbeitsumgebung

Jochen

möglichst ähnlich ist wie meine Laptop-Arbeitsumgebung

Jochen

und da hat man ja, auf dem Laptop hat man ja meistens auch

Jochen

ein Trackpad oder also in meinem Laptop

Jochen

habe ich ein Trackpad. Oder man nimmt sich eine Maus

Jochen

mit, ja.

Jochen

Und dann ist es

Jochen

ist es halt sozusagen

Jochen

wenig Umstieg, also man

Jochen

das ist sozusagen die Idee,

Jochen

dass man da halt

Jochen

einen fließenden Übergang hat.

Jochen

Dass man seine Routinen mitnehmen kann. Genau.

Jochen

Ich habe auch die gleiche Tastatur, sozusagen die gleiche

Jochen

Bluetooth-Tastatur am Desktop,

Jochen

wie die Tastatur, die ich im Laptop habe.

Jochen

Und das war eigentlich immer, das hat eigentlich immer ganz gut

Jochen

funktioniert. Ich habe letztens umstellen müssen,

Jochen

weil, ah,

Jochen

jetzt sind wir schon mal wieder bei dem,

Jochen

wie die funktionieren.

Jochen

Ja.

Jochen

Weil blöderweise irgendwie die Tastatur

Jochen

an meinem Laptop nicht mehr so richtig geht, was

Jochen

ein bekanntes Problem ist. Ich habe so ein

Jochen

2016er Gurken-MacBook

Jochen

und da ist die

Jochen

Tastatur, die funktioniert halt dann irgendwann nicht mehr,

Jochen

wenn der Krümel sich zwischen

Jochen

den Tasten und der Mechanik da irgendwie

Dominik

verhaken. Oh, das ist natürlich nicht so cool. Also guck mal

Dominik

hier, also dann sowas, ich kann jetzt ein Werbung

Dominik

machen wir Werbung.

Dominik

Ich habe eine Cherry-Tastatur

Dominik

mit so Klicks, die kann man einfach hier

Dominik

abmachen und dann kann man die saubern.

Dominik

Und das kann man mit einem

Dominik

Caps so machen. Das ist ganz cool.

Jochen

Das sieht auch super aus. Also die leuchtet auch

Jochen

und dann, genau, hat

Jochen

verschiedenfarbige Tasten und es sieht sehr robust aus.

Jochen

Das ist echt gut. Ich habe ganz lange

Jochen

so eine alte IBM

Jochen

in

Jochen

den Kreisen

Jochen

der Benutzer dieser Tastatur.

Jochen

ist das Ding auch Hackbrett.

Jochen

Weil es halt ein sehr kräftiges

Jochen

Geräusch macht bei der Benutzung.

Dominik

Das ist tatsächlich auch hier so. Also die Cherry-Klicks, die sind

Dominik

tatsächlich relativ laut. Also meine Frau beschwert sich, glaube ich,

Dominik

wenn ich direkt neben ihr...

Jochen

Genau, sowas habe ich

Jochen

ganz lange verwendet. Also das ist halt,

Jochen

das hat eine Metallplatte unten drin, damit kann man wirklich

Jochen

Leute...

Jochen

kann man

Jochen

nicht nur als Waffe im virtuellen

Jochen

Umfeld verwenden, sondern halt auch ganz

Jochen

so im Nahkampf bewährt sich das Ding

Jochen

auch. Und es ist halt nur so

Jochen

Also das kommt aus einer Zeit, die wurden Anfang der 80er irgendwie hergestellt und da hat noch jemand von Hand, also ich hatte mal ein bisschen Schwierigkeiten, ich konnte die nicht oder ich habe versucht, die nicht zu waschen zu sehr, weil die hatte hinten halt noch so einen Aufkleber drauf, wo jemand von Hand unterschrieben hat, dass die Qualitätskontrolle durch war und so.

Jochen

Okay, also tolles Teil, aber einmal.

Jochen

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ß und

Jochen

ja, also eigentlich mein Wunsch

Jochen

sozusagen eine möglichst

Jochen

ähnliche Umgebung auf dem Desktop zu haben

Jochen

wie auf dem Laptop hat dann dazu geführt, dass ich da einfach

Jochen

die gleichen Geschichten benutze, aber

Jochen

bin ich jetzt auch von weg, weil

Jochen

irgendwie funktioniert nicht mehr richtig

Jochen

irgendwie meine Laptop-Tastatur

Jochen

und ja,

Jochen

blöderweise

Jochen

kann ich

Jochen

jetzt auch meinen Laptop nicht einfach so weggeben.

Jochen

Also

Jochen

Also der Service hat dir gesagt,

Dominik

schicken Sie doch das Gerät bitte einfach mal ein.

Dominik

Dann kommen es in etwa sechs bis acht Wochen

Dominik

wieder repariert zurück.

Jochen

Dummerweise, ich benutze es jetzt

Jochen

aber so für Sachen, mit denen ich mich einfach mal

Jochen

eine Zeit lang aussetzen kann.

Jochen

Es wäre schneller gegangen.

Jochen

Also keine zwei Ersatzgeräte.

Jochen

Ja, das war dann halt so meine Option.

Jochen

Da dachte ich dann so, okay,

Jochen

selbst wenn das halt nur sechs Arbeitstage

Jochen

oder sowas, aber auch das

Jochen

ist schon so, dass ich mir dann sage, okay, da kann ich mir eigentlich

Jochen

auch ein Ersatzgerät kaufen, weil

Jochen

ja, das ist

Jochen

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

Jochen

ich habe also AppleCare für den Rechner

Jochen

weil ich dachte, genau, ich möchte eigentlich ja nicht

Jochen

dass mir finanzieller Schaden dadurch entsteht, wenn das Ding mal

Jochen

irgendwie kaputt geht oder so

Jochen

hab dann feststellen müssen, nützt alles nichts

Jochen

ja, die sechs Tage kriege ich nicht weg

Jochen

ich kriege auch kein Austauschgerät

Jochen

super, das heißt, nächstes Mal kein AppleCare mehr

Jochen

ja, also Leute

Dominik

wir sind übrigens im Peißen-Podcast, in der Weihnachtsfolge

Dominik

wo wir

Dominik

heute eigentlich noch einen Grühwein anbieten oder sowas

Dominik

Ja, genau.

Jochen

Das habe ich mir tatsächlich mal überlegt,

Jochen

ob wir das nicht mal machen könnten und

Jochen

vielleicht irgendwo in eine Bar setzen

Jochen

oder so.

Jochen

Und von da aus verkasten.

Jochen

Weil

Jochen

man müsste halt blöder...

Jochen

Ich denke, man müsste die Leute vorher fragen,

Jochen

weil Tonaufnahmen in der Bar ist ja vielleicht

Jochen

jetzt nicht so.

Dominik

Ich glaube, man müsste einfach die Leute vorher

Dominik

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,

Jochen

wo man eventuell

Jochen

nicht stört. Also wenn man sich zum Beispiel

Jochen

in der Skla-Bar, kann man sich vorne draußen hinsetzen.

Jochen

Da würde man jetzt nicht so stören

Jochen

und auch keine anderen Gäste aufnehmen.

Dominik

Ist ja schon klar, dass es gerade geschneit hat, also

Dominik

vorgestern. Ja.

Dominik

Gerade wegen dem Draußen-Hinsetzen.

Dominik

Wir machen ja noch ein paar Folgen.

Dominik

Wir fallen noch draußen

Dominik

und fallen mir jede Menge tolle Orte ein.

Dominik

Ja.

Jochen

Ja, müssen wir mal gucken. Das stelle ich mir

Jochen

eigentlich auch ganz interessant vor.

Jochen

Irgendwie gucken, wie sich

Jochen

so die Qualität irgendwie über die

Jochen

Zeit verändert, somit zunehmend

Jochen

krummeln Pegel.

Dominik

Ja, also sagen wir tatsächlich Bescheid,

Dominik

wenn ihr irgendwelche Anregungen, Anmerkungen habt,

Dominik

wenn die jetzt zu euch kommen sollen oder sowas,

Dominik

schreibt uns eine E-Mail, 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,

Dominik

lieber Jochen. Ja. Was funktioniert

Dominik

alles nicht? Und du hast gesagt, was machst

Dominik

du die ganze Zeit und mit Web

Dominik

irgendwelche Sachen und so.

Dominik

Mit Web-Kram mache ich momentan viel

Jochen

und tatsächlich ist es auch nicht so,

Jochen

es ist halt nur so ein bisschen Python. Also das

Jochen

Backend ist alles Python.

Jochen

Aber

Jochen

ich mache

Jochen

momentan auch viel auf der Client-Seite

Jochen

und da halt vor allen Dingen mit

Jochen

JavaScript, was eigentlich

Jochen

auch inzwischen ganz gut geht.

Jochen

Das ist so, also

Jochen

ich habe immer mal wieder irgendwie bei

Jochen

JavaScript reingeschaut, ob das jetzt irgendwie inzwischen

Jochen

okay ist und fand

Jochen

eigentlich immer furchtbar. Aber so

Jochen

inzwischen

Jochen

ist das eigentlich

Jochen

gar nicht mehr so furchtbar schlimm. Also ich mache jetzt

Jochen

einen

Jochen

JavaScript-Dialekt, der nennt sich TypeScript

Jochen

und mit so einer IDE,

Jochen

das ist zwar alles nicht so

Jochen

snappy, schnell,

Jochen

wie ich das eigentlich gern hätte,

Jochen

aber es ist eigentlich gut genug, dass man

Jochen

damit so entwickeln kann, dass

Jochen

es tatsächlich Spaß macht und man diese

Jochen

ganzen Hässlichkeiten nicht so wirklich wahrnimmt.

Jochen

Welche

Jochen

IDE ist das? WebStorm

Jochen

verwende ich das. Das ist quasi auch IntelliJ-basiert.

Jochen

Aha, okay, habe ich auch

Jochen

ja schon einige Male gehört, ja.

Jochen

Das ist eigentlich tatsächlich ganz gut.

Jochen

Und

Jochen

ja,

Jochen

das macht eigentlich,

Jochen

man kann so richtig auf

Jochen

Teilenseite quasi so programmieren, wie man das halt auf

Jochen

Serverseite auch gewohnt ist,

Jochen

mit allem drum und dran.

Jochen

Aber was,

Jochen

und vor allen Dingen, also inzwischen sind ja auch

Jochen

die Browser so gut geworden, also die können halt eine ganze

Jochen

Menge, man kann ja tolle Sachen machen

Jochen

und es ist alles nicht mehr so super unterschiedlich,

Jochen

wie es früher mal war, wo man dann halt irgendwie für jeden

Jochen

Browser irgendwelche Ausnahmen machen

Dominik

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

Jochen

muss? Ja, doch, leider schon.

Jochen

Ah, sehr gut.

Jochen

Es gibt, ja,

Jochen

alle Browser sind irgendwie benutzbar. Nein,

Jochen

es gibt einen Browser, der sich standhaft

Jochen

wehrt, irgendwie

Jochen

benutzt werden zu können. Und das ist heutzutage

Jochen

erstaunlicherweise

Jochen

Safari.

Jochen

Safari ist echt so.

Dominik

Schon wieder Apple. Apple ist das neue Microsoft, oder?

Dominik

Ein bisschen schon, ja. Also

Jochen

Safari ist irgendwie so ein bisschen der neue

Jochen

Internet Explorer. Also den Internet Explorer

Jochen

gibt es ja jetzt irgendwie nicht mehr so richtig.

Dominik

Edge ist jetzt Chromium-Engine?

Dominik

Edge war eigentlich gar nicht

Jochen

so schlecht. Edge hatte, glaube ich, eine eigene Engine.

Jochen

Ich weiß nicht, ob sie die vom IE übernommen haben,

Jochen

aber Edge war quasi so ein Neustart.

Jochen

Und

Jochen

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

Jochen

Und so aus

Jochen

Nutzerperspektive finde ich, ist es ja eigentlich toll, wenn es

Jochen

da Konkurrenz gibt und unterschiedliche

Jochen

Rendering-Engines. Also ich würde

Jochen

mir wünschen, dass sie alle die gleichen

Jochen

APIs implementieren und dass sie kompatibel

Jochen

untereinander sind. Aber wenn es unterschiedliche

Jochen

Implementationen gibt, dann ist das eigentlich

Jochen

eine sehr gute Sache. Und von da

Jochen

aus gesehen war das eigentlich immer toll, dass es

Jochen

mit Edge halt da noch eine dritte

Jochen

Geschichte neben halt

Jochen

ja, wie heißt die

Jochen

von

Jochen

Chrome? Bing?

Jochen

Ist die Microsoft

Jochen

Zugmaschine? Nee, genau,

Jochen

nicht Bing.

Jochen

Wie heißt die?

Jochen

Blink. Blink heißt die.

Jochen

und das Ding von WebKit von Safari.

Jochen

Aber das ist eigentlich basiert auf dem gleichen Code.

Jochen

Das basiert auf KHDML aus dem KDE-Projekt ganz früher.

Jochen

Da kommt das her und dann hat Apple das quasi in WebKit eingebaut

Jochen

und dann war Chrome basierte ganz lange auf WebKit auch

Jochen

und dann haben sie WebKit irgendwie weggeforkt,

Jochen

weil ihnen die Entwicklung da nicht mehr schnell genug ging

Jochen

und haben da ihre eigene Engine draus gebaut

Jochen

und die heißt jetzt Blink irgendwie.

Jochen

glaube ich, ja.

Jochen

Und

Jochen

insofern war WebKit und

Jochen

Chrome, das war immer ziemlich ähnlich.

Jochen

Und dann gab es halt noch Firefox,

Jochen

hatte ja irgendwie eine eigene

Jochen

Engine noch. Und Opera hatte damals auch eine eigene

Jochen

Engine, oder war das wieder was Neues? Ja, doch.

Jochen

Ganz am Anfang, aber die sind relativ schnell

Jochen

auf irgendwas anderes umgestiegen. Ich weiß aber nicht mehr was.

Jochen

Ja, aber Opera spielt leider nicht mehr

Dominik

so eine große Rolle. Ja, ich glaube, vor drei Jahren sind sie auch

Dominik

auf Chromium umgestellt oder so. Ja, ja.

Jochen

Opera hat ein Feature, was andere

Jochen

Browser nicht haben. Und das führt dazu, dass

Jochen

Opera teilweise in so Ländern wie Indien

Jochen

oder teilweise auch

Jochen

Südostasien, manchen, also von Indien

Jochen

weiß ich es relativ sicher, gibt es

Jochen

irgendwie noch, 20%

Jochen

des Traffics geht über Opera

Jochen

und man fragt sich, hä, warum das denn?

Jochen

Und der Grund ist, dass die so einen

Jochen

ja quasi grafischen

Jochen

Browser betreiben, also man hat auf dem Handy halt

Jochen

sozusagen sieht man nur

Jochen

ein Bild, also es wird einem nur

Jochen

das gerenderte Bild geschickt, was man halt

Jochen

so runter komprimieren kann, dass das halt nur ganz wenig

Jochen

Traffic verbraucht, weil die da halt so komische

Jochen

Tarife haben. Und

Jochen

der eigentliche Browser läuft irgendwo bei der Firma

Jochen

Opera selber. Okay, das heißt,

Dominik

man kriegt jedes Mal nur ein Bild und wenn man irgendwas browsen muss,

Jochen

dann... Ja, wenn man irgendwo draufklickt, dann wird halt zurückgeschickt,

Jochen

dass man da draufgeklickt hat. Und das ist halt eine ganz interessante

Jochen

Geschichte. Das ist ziemlich seltsam,

Jochen

aber es scheint wohl dann halt auch mit

Jochen

ganz wenig Daten noch so halbwegs zu funktionieren.

Jochen

Deswegen gibt es da irgendwie noch so einen komischen

Jochen

Nischenmarkt für. Aber

Jochen

im Grunde spielt Opera keine wirkliche Rolle

Jochen

mehr. Und ja, Firefox

Jochen

hat ja jetzt auch umgestellt,

Jochen

auf Rust, auf eine neue Sprache

Jochen

und auch eine neue Render-Engine.

Jochen

Das ist übrigens auch, wenn man

Jochen

längere Zeit Firefox nicht ausprobiert hat,

Jochen

sollte man das vielleicht mal tun.

Jochen

Seit einem Jahr oder etwas mehr,

Jochen

weiß nicht genau,

Jochen

basiert das jetzt

Jochen

auf einer Rust-Engine

Jochen

und die ist

Jochen

schnell, schick, toll. Das ist irgendwie

Jochen

echt super und das Ding ist halt

Jochen

tatsächlich konkurrenzfähig.

Jochen

Und ja, so im letzten

Jochen

Jahr hatte man dann quasi so drei unterschiedliche

Jochen

Vendoring-Engines.

Jochen

Sozusagen halt die von Firefox, die von

Jochen

Chrome und

Jochen

die von Microsoft. Und

Jochen

inzwischen gibt es jetzt dann halt nur noch

Jochen

zwei.

Jochen

Und das ist natürlich echt wenig. Zwei ist

Jochen

schon fast nur noch eine. Zumal

Jochen

der Marktanteil von Firefox ja auch irgendwie

Jochen

so ein bisschen im Sinkflug begriffen ist, leider.

Jochen

Ja.

Dominik

Mit was brauchst du persönlich gerne?

Dominik

Tatsächlich

Jochen

Ich benutze Chrome, Safari und Firefox.

Jochen

Mit welchem Anteil?

Dominik

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

Jochen

Private Surfen, meistens Safari.

Jochen

Weil Safari hat halt so dieses Feature der Leseliste,

Jochen

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

Jochen

sozusagen mit seinen Geräten aufhält.

Jochen

Ich glaube, bei Firefox kann man das auch machen,

Jochen

das synchronisieren und auch bei Chrome.

Jochen

Ja, bei Chrome ist es so ein bisschen evil an der Stelle,

Jochen

weil man halt nicht so richtig gefragt wird,

Jochen

ob man da jetzt mitmachen möchte oder nicht.

Jochen

Also mich hat es erwischt.

Jochen

Das habe ich letztens gehört, keine Ahnung,

Jochen

hat sich jemand darüber aufgeregt,

Jochen

dass Chrome da schon so böse, böse GUI-Geschichten macht,

Jochen

um die Leute dazu zu verleiten,

Jochen

irgendwie die Browser-History mit ihrem Profil

Jochen

sozusagen auf die Geräte zu übertragen.

Jochen

Was ich jetzt an sich noch nicht schlimm fände,

Jochen

wenn einfach nur das irgendwie übertragen

Jochen

würde, aber das wird halt auch bei Google gespeichert

Jochen

und Google kann das halt sehen, was da drin steht und das ist natürlich

Jochen

ich möchte eigentlich nicht wirklich meine

Jochen

Browser-History zu Google hochladen, also das

Dominik

Okay, ich glaube, man muss das halt

Dominik

einstellen in der Privatsphäre-Einstellung, ob das

Jochen

genau, aber da steht halt auch nirgendwo

Jochen

du lädst hier deine Browser-History zu

Jochen

Google hoch, sondern da steht

Jochen

da ist irgendwie sowas wie, das sind so

Jochen

Button-Tricks, ja, wo man dann irgendwie

Jochen

wenn man halt, da ist irgendwie

Jochen

so ein OK-Button, der sieht irgendwie harmlos aus

Jochen

und wenn man da drauf drückt, dann passiert das automatisch, ja

Jochen

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

Jochen

Und das ist schon sehr, sehr hinterfotzig.

Jochen

Da braucht es nicht den Search auf Google.

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.

Jochen

Aber so GUI-Manipulationen, die einen dazu verleiten, auf irgendwas raufzuklicken,

Jochen

auf das man eigentlich gar nicht draufklicken wollte, das ist schon sehr grenzwertig.

Jochen

Und damit hat Google jetzt, also das war jetzt nur eine Geschichte.

Jochen

Chrome hat dann noch eine andere Geschichte, wo sie das nochmal gemacht haben.

Jochen

sagen wir mal so, also ich meine, ich weiß jetzt nicht,

Jochen

aber es gibt halt diverse Leute

Jochen

im Netz, die jetzt sagen, jetzt ist es halt

Jochen

Chrome und Google ist so endgültig

Jochen

auf der dunklen Seite angekommen.

Jochen

So weit würde ich jetzt vielleicht nicht gehen, aber

Jochen

es ist schon so ein bisschen, also daher versuche ich

Jochen

auch möglichst Chrome nicht mehr

Jochen

zu verwenden, wenn ich irgendwie nicht muss.

Jochen

Es gibt Dinge, für die ich muss, also zum Beispiel

Jochen

zum Entwickeln ist Chrome tatsächlich

Jochen

irgendwie am praktischsten. Es gibt da

Jochen

für React und so,

Jochen

wenn man das baut, auch so

Jochen

Extensions, die einem dann helfen, das zu debuggen

Jochen

und so. Und das ist so praktisch,

Jochen

dass ich zum Entwickeln tatsächlich

Jochen

Chrome verwende.

Dominik

Ich verwende Chrome tatsächlich auch privat.

Dominik

Selten mal in Firefox, also

Dominik

eigentlich nur, um mal, weiß nicht, was anderes zu machen.

Dominik

Aber normalerweise eigentlich immer Chrome.

Dominik

Ich habe auch nicht so viele Bedenken

Dominik

mit dem Datenschutz. Also ich muss sagen, ich bin doof

Dominik

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

Dominik

irgendwelche Bonusgeschenke, man weiß ja immer nicht genau.

Dominik

Also ich hoffe ja immer noch, dass ich dann irgendwann mal

Dominik

so einen Sonderrabatt bekomme.

Dominik

Ja, vielleicht.

Dominik

Vielleicht wird alles gut.

Dominik

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

Dominik

Man weiß es aber nicht so genau.

Dominik

Wir sind ja in Amerika und nicht hier.

Dominik

Also das ist ja schon mal gar nicht so schlecht.

Dominik

Also, ja, klar.

Jochen

Ich benutze Chrome auch. Ich finde auch,

Jochen

das ist ein echt guter Browser und so, aber

Jochen

Safari wegen der

Jochen

Leseliste vor allen Dingen, weil ich dann halt

Jochen

sozusagen halt auf allen...

Dominik

Die haben nur gerade ihre Datenschutzeinstellungen gestellt

Dominik

in Europa, haben ihre Server geändert

Dominik

und ihre Rechtsform geändert.

Dominik

Die sitzen jetzt in Irland von der, weiß nicht,

Dominik

Google LLC auf irgendeine irische Limited

Dominik

oder sowas. Ich habe noch nicht

Dominik

da reingeguckt, vielleicht, weil die jetzt

Dominik

DSGVO-konform sind, müsste man jetzt eigentlich auch

Dominik

aus den ganzen Sachen gesondert opt-outen

Dominik

können und die Frage ist, ob sowas wie die Browser History

Dominik

einfach noch so übernommen wird, weil ansonsten...

Jochen

Das kann natürlich auch sein, dass das mit der

Jochen

DSGVO ja jetzt auch so ein bisschen

Jochen

erledigt hat. Sollen wir gleich nochmal nachgucken, obwohl

Dominik

eigentlich habe ich nicht so wirklich Lust, das nachzugucken.

Dominik

Also wenn euch das interessiert, könnt ihr das selber mal gucken

Dominik

und informiert uns doch gerne bitte in einer E-Mail, was

Dominik

ihr da rausgefunden habt. Ja, also

Jochen

ansonsten, Firefox versuche

Jochen

ich immer mal wieder zu verwenden,

Jochen

wenn, für so Casual-Browsing

Jochen

Geschichten

Jochen

und dafür ist das eigentlich, also

Jochen

so, ja, ist das

Jochen

Ding, das Ding ist schnell und

Dominik

Das hört sich toll an, wenn der Jochen sagt Casual-Browsing.

Dominik

Ja, wo ich halt jetzt nicht unbedingt

Jochen

sozusagen

Jochen

irgendwie ein Bookmarks-Grad mache oder so.

Jochen

Oder halt einfach

Jochen

so ein bisschen rumbrause.

Jochen

Und das Ding ist auch super. Sollte man

Jochen

auf jeden Fall nochmal ausprobieren, wenn man das längere Zeit nicht

Jochen

gemacht hat. Das kann einem schon überraschend

Jochen

gut vorkommen.

Jochen

Muss man aber auch so ein bisschen aufpassen.

Jochen

Die haben alle so ihre Haken und Ösen.

Jochen

Chrome ist

Jochen

privacy-mäßig ein bisschen schwierig.

Jochen

Safari ist irgendwie technisch leider,

Jochen

da kommen wir auch nochmal drauf

Jochen

zu sprechen, ist halt technisch so ein bisschen

Jochen

kaputt. Und Firefox

Jochen

hat halt jetzt auch so ein Ding eingebaut,

Jochen

so ein Privacy,

Jochen

jedenfalls nicht so super optimal. Also die verwenden

Jochen

jetzt statt

Jochen

normalen Nameservern

Jochen

gehen die

Jochen

DNS-Requests auch per HTTP

Jochen

irgendwie an eine von diesen,

Jochen

ich weiß gar nicht an wen, CloudFront

Jochen

oder weiß ich nicht, auf jeden Fall an einen von

Jochen

diesen CDN-Betreibern.

Jochen

was Vorteile hat.

Jochen

Also dein Provider sieht halt nicht mehr, wo du

Jochen

rumsurfst. Ich meine, bei HTTPS,

Jochen

was ja die meisten Seiten mittlerweile

Jochen

dann halt tatsächlich sind, sieht natürlich

Jochen

irgendwie dein Provider auch nicht mehr die Inhalte,

Jochen

aber sieht halt immer noch, zu welcher

Jochen

Domain quasi dein

Jochen

Request geht und

Jochen

das reicht ja dann oft schon, sozusagen als

Jochen

Information. Er sieht vor allen Dingen

Jochen

den

Jochen

Nameserver-Request, also

Jochen

den

Jochen

Request zur Namensauflösung, wenn

Jochen

Name-Server beim Provider steht,

Jochen

was bei den meisten Leuten so ist, weil das

Jochen

Default ist, kann man natürlich auch selber umstellen.

Jochen

Google zum Beispiel.

Jochen

Google, ja, 8.8.8.

Jochen

Google weiß dann alles.

Jochen

Google weiß dann noch mehr.

Jochen

Provider und Suchmaschine kombiniert.

Jochen

Google Home Assistant, alles

Dominik

integriert und dann mit dem Auto verknüpft.

Dominik

Toll, ich kann über die letzten Jahre

Dominik

mit dem Standort jeden Tag nachverfolgen, wo genau

Dominik

ich rumgelaufen bin. Das ist hervorragend.

Jochen

Ja, ich will gar nicht beschreiten, dass das

Jochen

durchaus praktisch sein kann. Genau, ich

Jochen

habe auch bei mir jetzt

Jochen

in meiner Fritzbox

Jochen

irgendwie als Nameserver eben nicht mehr

Jochen

den von Provider eingestellt, sondern

Jochen

1.1.1.1

Jochen

und

Jochen

1.1.1.0, weiß ich nicht genau.

Jochen

Vielleicht sollte man da auch unterschiedliche

Jochen

nehmen, vielleicht den einen von

Jochen

auch einem von diesen CDN-Dingern

Jochen

und dann vielleicht einen von Google

Jochen

oder irgendwie, das ist halt nicht, dass man

Jochen

die Daten so ein bisschen aufteilt. Also ein CDN-Ding

Jochen

Das ist ein Content-Delivery-Network.

Jochen

Genau, genau.

Jochen

Was macht das?

Jochen

Das sorgt dafür, dass, wenn du jetzt statische Dateien sehen möchtest,

Jochen

wie jetzt zum Beispiel ein Video oder halt auch Bilder.

Jochen

Und warum ist denn ein Video statisch?

Jochen

Weil es sich nicht verändert?

Dominik

Weil das Video ist das einmal aufgenommen worden ist und das als Datei auf dem Server liegt?

Jochen

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

Dominik

Und dynamisch ist es dann, wenn ich eine individuell angezeigte Web-Oberfläche habe, die mein Profil oder irgendwelche anderen Informationen beinhaltet.

Jochen

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

Dominik

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

Jochen

Ja, genau, also eben, natürlich, also ich denke, dass die Infrastruktur, mit der man irgendwie so CDNs hochzieht,

Jochen

auch wahrscheinlich häufig in Python geschrieben sein wird. Aber die Server, die das ausliefern,

Jochen

sind halt ja nicht Python, sondern das ist dann halt irgendwas schnelles. Also so möglichst nah

Jochen

an der, am Metall, weil das darauf kommt, da kommt es dann halt wirklich drauf an,

Jochen

auf die letzten Millisekunden und so. Nah am Metall habe ich auch gerade zum ersten Mal

Jochen

gehört. Achso, ja nah an der CPU quasi, an den Leiterbahnen halt. Bei Python hat man ja immer

Jochen

noch eine viertel Maschine dazwischen und so.

Jochen

Und

Jochen

genau, also

Jochen

die Dinger sind eigentlich dafür da, dass wenn ich jetzt

Jochen

sozusagen eine Webseite

Jochen

habe, wo halt ganz viele

Jochen

Dinge drinstehen, wie

Jochen

ein Tag-Image und dann ein Source

Jochen

und dann ist das halt eine Referenz auf

Jochen

ein Bild oder

Jochen

auf ein Video, halt je nach Tag,

Jochen

dann kommt das halt

Jochen

nicht von dem Applikations-Server, sondern gibt es halt spezialisierte

Jochen

Dinger, die das halt ausliefern. Und wenn ich

Jochen

jetzt auf der anderen Seite der Welt jemanden habe,

Jochen

das angucken möchte, dann ist es halt irgendwie so ein bisschen

Jochen

sinnlos, dass einmal irgendwie durch

Jochen

drei unterschiedliche Unterseekabels

Jochen

quetschen, wenn das ein Video ist und

Jochen

das ist halt irgendwie ein Gigabyte groß.

Jochen

Sondern, und

Jochen

nehmen wir an, auf der anderen Seite der Welt wollen das

Jochen

plötzlich, weil es irgendwie in der

Jochen

Hongkonger Clubszene

Jochen

wird mein Ukulelen-Video

Jochen

plötzlich zu, geht viral.

Jochen

Du hast ein Ukulelen-Video?

Jochen

Welcher Plattform? Auf YouTube vielleicht?

Jochen

Nee, hab da nix.

Jochen

Ja, sehr schön.

Jochen

Genau, aber in Hongkong wird das jetzt super populär.

Jochen

Und dann wollen das irgendwie 10.000 Leute angucken.

Jochen

Kennst du Tiny Tim?

Jochen

Nee.

Dominik

Muss ich dir später mal vorstellen, wegen der Ukulele.

Dominik

Entschuldigung, keiner Ex-Bus.

Dominik

Ach, ist das diese britische?

Dominik

Das ist schon ein bisschen her, ne?

Dominik

Ist das ein bisschen Comedian, Musiker?

Jochen

Ja, ja, ja, doch, doch, dann habe ich es schon mal.

Jochen

Mir war gerade nicht klar.

Jochen

Ich konnte das nicht verknüpfen.

Jochen

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

Jochen

Aber noch nicht so wirklich.

Jochen

Ja, ist großartig, ja.

Jochen

Ja, okay, muss ich mal reingucken.

Jochen

Genau, und wenn ich jetzt hier halt

Jochen

meinen Webserver irgendwo

Jochen

nehme, meiner steht tatsächlich bei Hetzner

Jochen

in Nürnberg, ja, und jetzt halt

Jochen

die ganzen Bits da

Jochen

von Nürnberg nach Hongkong irgendwie durch

Jochen

alle möglichen Kabel sich quetschen

Jochen

müssen, ist ja eigentlich irgendwie Quatsch.

Jochen

Und dafür gibt es ein Content Delivery Network, was auf

Dominik

der, weiß nicht, an einem Kontinent steht

Dominik

und da ist ein großes Rechenfarm. Genau, die haben halt

Jochen

in allen Punkten, wo es irgendwie

Jochen

Nachfrage gibt, halt entsprechend Rechenzentren stehen

Jochen

und dann geht halt das, gehen die

Jochen

Bits von dem Video halt nur einmal

Jochen

von Nürnberg bis zu dem lokalen

Jochen

Rechenzentrum in Hongkong und werden dann von da

Jochen

aus verteilt, ja. Und das ist natürlich

Jochen

deutlich effizienter und irgendwie

Jochen

sinnvoll. Nur für dynamischen Content nicht?

Jochen

Ja, da geht's halt nicht,

Jochen

weil die können halt dynamisch,

Jochen

muss dann halt die Stelle, die halt

Jochen

den State-Helm ist halt gefragt.

Jochen

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

Jochen

Oh, so eine Seite gibt es, das ist ja toll.

Jochen

Ja, genau. Also die haben halt die Infrastruktur, um jetzt Dateien quasi global, irgendwie lokal auszuliefern und nicht, also ihre eigene Verteilungsinfrastruktur sozusagen. Und das ist halt naheliegend auch DNS darüber zu machen, weil da hat man im Grunde das gleiche Problem.

Jochen

ja, deswegen sind die halt sehr schnell,

Jochen

wenn man, jetzt zum Beispiel, ich weiß nicht,

Jochen

1.1.1

Jochen

oder so, dass ich jetzt bei mir,

Jochen

das Ding, was ich jetzt bei mir eingestellt habe, da habe ich

Jochen

7 Millisekunden Latenz hin

Jochen

bei mir

Jochen

zu Hause, so ein publiques

Jochen

DSL. Und das ist...

Jochen

Und das ist aber trotzdem, also ich meine,

Jochen

7 Millisekunden ist schon echt schnell

Jochen

und ich glaube, der

Jochen

DNS-Server

Jochen

von meinem Provider antwortet so mit

Jochen

40 Millisekunden Latenz oder so.

Dominik

Ja, ich wollte gerade sagen, also alles unter 20 schon fast

Dominik

lokal irgendwie.

Jochen

Ja, aber das sind dann halt, weil

Jochen

die Namen müssen ja erst aufgelöst werden,

Jochen

bevor überhaupt ein Request zum Applikationsverfahren

Jochen

gemacht werden kann. Bevor überhaupt irgendwas zurückkommt,

Jochen

hat man halt diese Latenzen immer drin.

Jochen

Und das addiert sich dann halt auf.

Jochen

Und wenn man jetzt da schon mal

Jochen

30 Millisekunden Latenz sparen kann,

Jochen

bei jedem Request, der irgendwie gemacht wird,

Jochen

oder nicht bei jedem, manchmal wird es auch gecached,

Jochen

wenn die Antworten nicht sind, aber

Jochen

dann hat das durchaus merkbare

Jochen

Auswirkungen und deswegen habe ich das mal

Dominik

umgestellt. Geht es eigentlich viel schneller, wenn man direkt die

Dominik

IP eingibt?

Jochen

Das geht halt nicht unbedingt.

Jochen

Ah, das geht nicht.

Jochen

Ja,

Jochen

die Domain oft auch benutzt wird,

Jochen

um rauszubekommen,

Jochen

an welchen Applikationsserver das gehen soll.

Jochen

Also nehmen wir zum Beispiel mal

Jochen

meine private Webseite liegt auf

Jochen

dem gleichen Server

Jochen

wie pythonpodcast.de

Jochen

das heißt, wenn ich die IP habe

Jochen

ich kann jetzt ein HTTP-Request zu dieser IP

Jochen

hinschicken, aber dann weiß das

Jochen

aber nicht so richtig, für wen ist denn das jetzt gedacht

Jochen

ist das für python-podcast.de gedacht

Jochen

oder ist das für

Jochen

was sagt das Request dann

Dominik

404, 403

Jochen

ja, wenn das

Jochen

nicht eindeutig ist, dann

Jochen

kommt dann halt ein 404 wahrscheinlich zurück

Jochen

und ja, dann

Jochen

funktioniert das nicht, aber insofern muss halt

Jochen

die Domain im Host

Jochen

halt dann mitgeschickt werden und

Jochen

ja,

Jochen

aber wenn man das jetzt mit dem Browser macht,

Jochen

dann passiert halt zuerst ein Namens

Jochen

Auflösungsrequest und dann... Oder der könnte ja

Dominik

lokal routen, kann der das? Also irgendwelche Anfragen

Dominik

dann, also musst du dann versehen mit

Dominik

der IP und einem

Dominik

Namen? Ja, ja, also man

Jochen

kann solche Requests natürlich auch zusammenbauen,

Jochen

aber meistens verwendet man ja Browser und dann passiert

Jochen

das halt alles automatisch und da braucht man

Jochen

die Domains dann halt schon, weil

Jochen

in meinem statischen Web-Server, der halt

Jochen

sozusagen der Reverse-Proxy von den Applikations-Servern

Jochen

ist, gibt es dann halt einfach eine Tabelle, sondern es steht halt

Jochen

so, alles, was irgendwie mit

Jochen

Python-Podcast.de anfängt, geht halt

Jochen

an den lokalen

Jochen

Applikationsserver, der auf dem Port

Jochen

läuft. Und alles, was halt

Jochen

auf die Domänen geht, geht halt an

Jochen

denen und so. Okay, also

Dominik

du machst halt tatsächlich relativ viel im Web, das haben wir

Dominik

jetzt, glaube ich, auch gehört, auch mit den Browsern

Dominik

haben wir jetzt, glaube ich, schon ein kleines Thema, ein bisschen

Dominik

gehabt, was wir vorher noch nicht angekündigt hatten, aber

Dominik

hey, wir haben eigentlich ein bisschen was über die Browser erzählt.

Dominik

Ja, ja, sowas.

Dominik

Wir wurden erzählt, was alles nicht so funktioniert, also da

Dominik

hatten wir ja auch kurz den Safari erwähnt.

Dominik

Ja, du hast auch gesagt, was machst du

Dominik

so eigentlich die ganze Zeit und was hast du irgendwas erzählt?

Dominik

Du hast ein Video mit Audio gemacht im Browser und so.

Dominik

Ja, letzte

Dominik

Woche. Ja. Eigentlich

Dominik

mache ich

Jochen

so Data Science, Machine Learning

Jochen

Geschichten, aber halt in letzter

Jochen

Zeit auch häufiger Frontend

Jochen

Sachen im Web, weil man muss halt

Jochen

auch Dinge, wenn man

Jochen

Machine Learning machen will, zuerst muss man Daten

Jochen

sammeln und die annotieren und so.

Jochen

Und

Jochen

früher haben das irgendwie immer andere

Jochen

Leute gemacht, Annotationsfront 1 gebaut

Jochen

und so, aber das war nie so wirklich

Jochen

toll und inzwischen

Jochen

ja,

Jochen

arbeite ich da gerade an einem Projekt, wo ich das halt auch

Jochen

mit selber mache und eigentlich bin ich ganz glücklich drüber, weil

Jochen

jetzt kann ich das halt mal so bauen, wie ich das gerne

Jochen

hätte und das ist eigentlich ganz praktisch

Jochen

und nebenbei lerne ich halt auch mal diesen ganzen

Jochen

Web-Quatsch

Jochen

Ja, hab ich gehört.

Jochen

Deswegen, Leute, das ist alles Quatsch und

Jochen

Ja, gut geht alles nicht.

Jochen

Genau, aber so schlimm ist es auch nicht.

Jochen

Es ist schon eigentlich ganz gut.

Jochen

Es ist wirklich viel besser als früher.

Jochen

Und insofern würde ich sagen,

Jochen

ist es auch momentan ein ganz interessanter Zeitpunkt,

Jochen

um damit anzufangen,

Jochen

weil es geht halt schon eine ganze Menge.

Jochen

Aber immer ab und zu stößt man halt dann noch schon

Jochen

auf so schmerzhafte Details,

Jochen

wie zum Beispiel,

Jochen

letzte Woche habe ich Audio gemacht,

Jochen

und da war,

Jochen

also Safari ist halt so ein bisschen der neue IE,

Jochen

weil er hängt halt in der Entwicklung hinterher.

Jochen

Und da gibt es dann so unterschiedliche

Jochen

APIs, die Browser implementieren können. Zum Beispiel

Jochen

die MediaCatcher-API, wo

Jochen

man halt einfach vom Browser

Jochen

halt sowas bekommt wie Video

Jochen

oder Bilddaten.

Jochen

Also das kennt man vielleicht, wenn man

Jochen

ja, also eigentlich kennt man das

Jochen

eher so, dass man auf dem Smartphone

Jochen

dann so einen Dialog bekommt. So, möchtest

Jochen

du ein Foto oder Video aufnehmen oder halt

Jochen

quasi eins

Jochen

aus deiner Mediathek auswählen oder so?

Dominik

Du meinst, wenn ich auf Time klicke? Ich hatte mich kurz abgehängt.

Dominik

wenn ich was machen möchte?

Jochen

Wenn du auf einer Webseite bist und du möchtest jetzt

Jochen

beispielsweise, du musst da halt irgendwie ein Profilbild hochladen

Jochen

oder so. Dann gibt es meistens

Jochen

einen Button oder sowas, wo man drauf drückt.

Jochen

Und dann wird man halt gefragt, irgendwie so Fotovideo

Jochen

aufnehmen oder irgendwie

Jochen

ein bestehendes Foto benutzen oder so.

Jochen

Genau. Und

Jochen

das ist eigentlich

Jochen

so ein File-Input,

Jochen

so ein Input-Element, was man halt da verwendet.

Jochen

Also ein Input-Type-File.

Jochen

Und da gibt es auch einen Standard für, wie man da ranschreiben kann.

Jochen

Okay, ich hätte gern jetzt aber

Jochen

nur ein Foto oder nur

Jochen

Audio, und zwar in dem und dem

Jochen

Codec und so. Das geht eigentlich alles.

Jochen

Ja. Und die

Jochen

Browser können das auch.

Jochen

Oh, da geht's ab.

Jochen

Ich glaube, das ist die

Jochen

Waschmaschine. Waschmaschine.

Jochen

Ich glaube, Aufonik wird das

Jochen

hinterher alles rausfiltern. Na gut.

Jochen

Ich bin da sehr zuversichtlich. Mal gucken.

Jochen

Bei dem Schleudergang.

Jochen

Ja, genau.

Jochen

Und

Jochen

eigentlich wäre das ideal, wenn man einfach

Jochen

irgendwo ein Element hinmachen würde,

Jochen

Input-Element-Type-File

Jochen

und dann halt sagt man auch, was man da gerne hätte

Jochen

und dann wird der User halt gefragt, okay,

Jochen

dann nimm doch halt mal diese App

Jochen

zum Audio aufnehmen oder

Jochen

die Fotografie-App auf deinem Telefon

Jochen

mach damit irgendwas, dann landet das,

Jochen

was man aufgenommen hat, in der lokalen Mediathek

Jochen

und quasi auch

Jochen

im Browser

Jochen

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,

Jochen

aber das funktioniert nicht,

Jochen

mit dem Safari und das funktioniert auch nicht.

Jochen

Also es wäre halt das, was man dann hätte,

Jochen

aber das funktioniert halt mit dem Safari nicht und damit ist iOS

Jochen

komplett raus und damit kann man es eigentlich nicht mehr verwenden,

Jochen

weil geht halt nicht.

Jochen

Genau.

Jochen

Meinst du, die patchen das oder

Jochen

sind die da zu

Dominik

anders strategisch aufgestellt?

Jochen

Ja, das hätten sie, ich meine,

Jochen

das gibt es ja schon lange und so und andere haben das auch schon

Jochen

lange implementiert und da sie das schon seit

Jochen

quasi Jahren nicht gemacht haben, ist halt,

Jochen

warum sollten sie es jetzt tun?

Jochen

Weiß ich auch nicht. Also es könnte

Jochen

sein, dass es auch kommt, man weiß es halt nicht.

Jochen

Aber ja, also das

Jochen

wäre am schönsten. Und dann,

Jochen

wenn das nicht geht, gut, es gibt halt die

Jochen

Media

Jochen

Recorder API.

Jochen

Die ist auch ziemlich schick.

Jochen

Das ist halt ein bisschen

Jochen

mehr Aufwand, da muss man halt von JavaScript-Seite

Jochen

aus halt, hat man dann so ein

Jochen

Media Recorder-Objekt irgendwie

Jochen

an ein Window dranhängen. Das kann man benutzen,

Jochen

um halt irgendwie Audio aufzunehmen oder Video aufzunehmen

Jochen

oder so. Man kriegt halt

Jochen

nicht einfach eine Datei, was halt

Jochen

die Arbeit irgendwie enorm vereinfachen würde,

Jochen

sondern man kriegt halt dann

Jochen

irgendwie so ein

Jochen

Blob,

Jochen

so ein Binary-Objekt,

Jochen

was man dann auch quasi irgendwie wieder an den

Jochen

Server schicken kann und so, aber so ein bisschen

Jochen

ätzender. Ich muss gerade versuchen,

Dominik

ich kann es leider nicht nachmachen mit dem Blob.

Dominik

Ja.

Dominik

Und

Jochen

das ist eigentlich auch

Jochen

alles easy.

Jochen

Ach, so gut, dann könnte man ja das nehmen.

Jochen

Und das können auch tatsächlich alle

Jochen

Browser, bis auf Safari.

Jochen

Der implementiert das wieder nicht.

Jochen

Also Safari ist gerade so ein bisschen

Jochen

Pain, habe ich gehört.

Jochen

Ja, das ist echt schwierig.

Jochen

Wobei man sagen muss,

Jochen

auch die anderen, die Formate sind halt

Jochen

alle total unterschiedlich. Also die unterstützen

Jochen

das zwar, aber

Jochen

in Chrome kriegt man

Jochen

dann halt

Jochen

ja, die nehmen dieses

Jochen

WebM-Container-Format

Jochen

und schreiben da Opus-Codec rein.

Jochen

Opus was? Opus ist der

Jochen

Codec. Opus ist halt einer,

Jochen

ja, ist halt quasi gerade für

Jochen

Text oder Sprache,

Jochen

für

Jochen

Sprachaufnahmen ist das eigentlich ziemlich gut,

Jochen

komprimiert schön

Jochen

runter

Jochen

und man kann

Jochen

das halt immer noch gut verstehen.

Jochen

Und

Jochen

ja, Firefox nimmt dann halt

Jochen

einen anderen Container, nimmt dann halt diesen

Jochen

Ock-Worbis-Container

Jochen

Aber ich glaube, sie packen da

Jochen

sie packen da auch

Jochen

Opus rein als Codec.

Jochen

Ja, wobei

Jochen

jetzt natürlich Safari irgendwie

Jochen

würde jetzt wahrscheinlich nicht Opus

Jochen

nehmen, die unterstützen

Jochen

ja keinen freien Codec, sondern

Jochen

müsste das dann irgendwie MP4 sein oder sowas.

Jochen

Hurra!

Jochen

Und was das halt auch wieder schwierig macht,

Jochen

weil da muss man halt auf dem Server das alles nochmal ineinander

Jochen

umcodieren, weil man möchte ja auch den Browsern dann das

Jochen

Format schicken, was sie halt irgendwie

Jochen

problemlos wieder ausgeben können und so.

Jochen

Und ja,

Jochen

für den Firefox ist das dann, dem schickt man

Jochen

dann halt auch wieder ein Opus

Jochen

Codec im

Jochen

Ock-Container.

Jochen

Das war super, danke.

Jochen

Was zu trinken.

Jochen

Das ist einfach so nebenbei. Entschuldigung, wir haben euch

Jochen

stehen lassen.

Jochen

Ja, Entschuldigung, wo war es gerade mit den Containern?

Jochen

Genau, genau, genau. Und

Jochen

dem

Jochen

krumm wird man halt

Jochen

irgendwie dann WebM und

Jochen

auch Opus schicken.

Jochen

Naja, wie auch immer. Also

Jochen

Safari kann halt diese blöde

Jochen

Media-Rekorder-AP nicht.

Jochen

Das lässt sich dann überbrücken, indem man halt

Jochen

ein Polyfill halt verwendet, was dann

Jochen

die Media-Catcher-AP benutzt, um irgendwie

Jochen

diesen Media-Rekorder zu emulieren.

Jochen

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

Jochen

nur noch... Was? Ich hab mir gerade einen Fleck

Jochen

auf die Hose geschüttet. Oh nein!

Jochen

Entschuldigung.

Jochen

Oh, vielen Dank.

Jochen

Ja, bitteschön.

Jochen

Prost.

Jochen

Was ist denn das?

Dominik

Das ist ein Spätbrunner Brotfein.

Dominik

Zur später Stunde nochmal hier auf die Weihnachtsfolge.

Dominik

Ist ja sowieso alles ein bisschen chaotisch heute, deswegen.

Dominik

Ja.

Jochen

Das war lecker.

Jochen

Na gut.

Jochen

Wow.

Jochen

Ja, also

Jochen

klasse.

Jochen

Wir waren gerade stehen geblieben.

Jochen

Ja, ja, ja, bei Safari.

Jochen

Also, genau.

Jochen

Und

Jochen

ja, also man kann das dann immer,

Jochen

das Problem ist, wenn man jetzt

Jochen

sozusagen diese API, die nicht implementiert ist,

Jochen

im Browser selber in JavaScript

Jochen

nachbaut, damit man das

Jochen

halt in Safari genauso machen kann

Jochen

wie in den anderen Browsern,

Jochen

dann hat man halt das Problem,

Jochen

dass man die rohe Aufnahme

Jochen

dann halt kriegt in diesem

Jochen

Binär-Blob,

Jochen

Daten-Blob, den man halt

Jochen

unkomprimiert als

Jochen

WAV-File.

Jochen

Jetzt kann man natürlich anfangen, in

Jochen

JavaScript das irgendwie nach

Jochen

MP4 oder nach Opus zu kodieren. Das kann man

Jochen

irgendwie machen. Es gibt Leute, die das tun. Ich weiß nicht,

Jochen

ob das so eine gute Idee ist.

Jochen

Was ich dann mache,

Jochen

ist, ich schicke dann halt das WAV-File zum Server

Jochen

und der kodiert das dann halt um in die

Jochen

unterschiedlichen Formate und Container-Typen.

Jochen

Aber es ist halt dann einfach mehr, man braucht dann

Jochen

deutlich mehr Bandbreite, wenn man das halt unkomprimiert

Jochen

an den Server schickt.

Dominik

Safari, die gehen halt davon aus, die haben alle genug

Dominik

Bandbreite, ist ja auch Apple, ne?

Dominik

Naja, und so richtig

Dominik

so richtig dolle ist das

Jochen

irgendwie nicht. Ja, und dann

Jochen

genau, wenn man es dann beim Server hat

Jochen

und dann kann man das zwar in alle Formate

Jochen

umkodieren, ist aber auch manchmal, manchmal hat man dann so komische

Jochen

Effekte, ich benutze da eine FFM-Pack

Jochen

als Library, die kann das

Jochen

irgendwie alles ineinander konvertieren und manchmal

Jochen

bei manchen, wenn man von dem einen Format, also man nimmt irgendwas

Jochen

in Firefox auf, spielt es dann

Jochen

Safari ab oder so. Ich weiß es nicht mehr genau, wie es war,

Jochen

sondern plötzlich ist dann irgendwie alles nur halb so schnell

Jochen

oder so. Und dann muss man dann

Jochen

den Flex von FF Eggpack aufrufen, den man

Jochen

gemacht hat, irgendwie so lange drehen, bis das wieder stimmt.

Jochen

Und das ist halt alles ziemlich... Also es ist nicht so,

Jochen

dass es alles so out of the box funktioniert,

Jochen

sondern man hat da teilweise sehr überraschende Ergebnisse

Jochen

noch. Und

Jochen

was halt auch total doof ist,

Jochen

ist halt, habe ich mich dann halt

Jochen

mit diesem Problem habe ich mich mehr

Jochen

als einen halben Tag rumgeschlagen, bis ich überhaupt

Jochen

rausgekriegt habe, was da das Problem ist.

Jochen

Ähm, das war auch wieder Safari.

Jochen

Safari!

Jochen

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

Jochen

Also wenn man das abspielt, dann denkt man sich,

Jochen

okay, ich kann mit dem Safari leider kein Audio aufnehmen.

Jochen

Okay, gut, naja, egal.

Jochen

Wie ist so ein Teil?

Jochen

Sorry, ich hab irgendwie so einen fiesen Husten.

Jochen

Ich weiß nicht, als hättest du eben noch eine gewisse Zigarre geraucht.

Jochen

Ja.

Jochen

Und das geht mal wieder weg hier.

Jochen

Naja, genau, aber abspielen sollte es das ja können.

Jochen

Man kann das ja auch irgendwie in Format kodieren,

Jochen

dass es halt Safari abspielen können müsste,

Jochen

wie zum Beispiel MP4, ja, ist ja sozusagen das Hausformat.

Jochen

Und dann geht das aber irgendwie nicht.

Jochen

Man fragt sich, hä, warum geht denn das nicht?

Jochen

Und das Einzige, was geht, ist irgendwie MP3.

Jochen

Aber da geht das auch nur so,

Jochen

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,

Jochen

steht da irgendwie sowas komisches wie Live-Übertragung.

Jochen

Da 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,

Jochen

das heißt, man hat einen Audio-Tag, so ähnlich wie ein Image-Tag,

Jochen

bloß halt mit Audiodaten drin,

Jochen

dann kann man halt die unterschiedlichen Formate und Codecs halt auflisten,

Jochen

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 Byte-Range-Request an den Server.

Jochen

Das muss der Server dann können.

Jochen

Er muss dann irgendwie mit einem 206 antworten statt 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

der Entwicklungs-Server, auf dem ich entwickle, der kann

Jochen

sowas halt nicht. Der kann keine Wide-Range-Requests,

Jochen

der kann überhaupt keine statischen Dateien eigentlich so richtig.

Jochen

Das ist ein Python-Entwicklungs-Server,

Jochen

dafür ist der nicht gedacht. Also

Jochen

antwortet der halt auf diesen Wide-Range-Request,

Jochen

glaube ich, ich weiß gar nicht, womit der dann antwortet,

Jochen

aber irgendwie im normalen 200, glaube ich.

Jochen

Und da sagt Fari so,

Jochen

nö, dann halt nicht. Aber es gibt auch keine Fehler,

Jochen

es gibt eine ganz komische Fehlermeldung

Jochen

in der Konsole.

Jochen

Ich habe das jetzt leider wieder vergessen, was aber irgendwie überhaupt nichts

Jochen

damit zu tun hat, was eigentlich passiert.

Jochen

Quad denied.

Jochen

Ja, und es 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.

Jochen

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 ein Header-Teil in der Datei, wo drinsteht,

Jochen

also dieser Zaun-Schnipsel ist so und so lang

Jochen

und wenn du zu diesem Zeitpunkt willst,

Jochen

dann musst du diesen Byte irgendwie abspielen oder so.

Jochen

Deswegen ist das natürlich total sinnvoll,

Jochen

diese Byte-Range-Requests zu haben,

Jochen

weil dann kannst du halt in einem Player sagen,

Jochen

okay, ich springe jetzt irgendwie zu dieser Kapitelmarke

Jochen

oder ich springe halt irgendwo in die Mitte

Jochen

und es muss nicht alles runtergeladen werden,

Jochen

sondern es wird nur das runtergeladen,

Jochen

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

Jochen

quasi oder komplett runterladen, wenn du es abspielen willst.

Jochen

Das macht der Safari dann auch.

Jochen

Also er sagt dann halt sozusagen, okay,

Jochen

ByteRange-Requests gehen mit MP3 dann halt nicht

Jochen

und das kann ich alles eh nicht machen.

Jochen

Daher mache ich da was anderes

Jochen

und tue so, als wäre das eine Live-Übertragung

Jochen

und spiele das dann halt irgendwie ab.

Jochen

Was dann aber dazu führt, dass der Browser

Jochen

lädt alles runter, aber man kann es halt nur ein einziges Mal

Jochen

abspielen und dann werden halt irgendwie so die

Jochen

Audio-Controls dunkel und das war's.

Jochen

Das ist halt also

Jochen

mir so, oh nein,

Jochen

was?

Dominik

Safari, wenn Dicke das hört, it's a pain in the ass.

Dominik

Ja, es gibt da einen sehr lustigen,

Jochen

Apple verwendet für all diese Sachen so ein

Jochen

Radar, heißt das Ding,

Jochen

Bug Tracker.

Jochen

Zu diesen Problemen, das habe ich dann irgendwie

Jochen

so nach ein bisschen suchen, ich hatte, das

Jochen

Problem war rauszufinden, was ist, was

Jochen

passiert hier eigentlich?

Jochen

Als ich das rausgefunden hatte,

Jochen

war es dann relativ leicht, dann auch den entsprechenden

Jochen

die entsprechenden Geschichten im Web

Jochen

zu finden, kann man sich immer raussuchen, wenn man so danach sucht,

Jochen

Safari-Audio-Bite-Range-Radar.

Jochen

Dann findet man da auch

Jochen

den entsprechenden Bug bei Apple.

Jochen

Und da haben so Leute lustige Sachen reingeschrieben.

Jochen

Safari

Jochen

Bite-Range-Radar.

Jochen

Ja.

Jochen

Und

Jochen

ja.

Jochen

Naja, auf jeden Fall, das ist alles

Jochen

nicht so toll. Ich hoffe mal, dass es dann im Produktivbetrieb

Jochen

irgendwie alles geht.

Jochen

Und ich einfach MP4 abspielen kann im Safari.

Jochen

Aber momentan spiele ich dann halt MP3

Jochen

und lebt damit, dass man es nur einmal abspielen kann

Jochen

und dann nicht wieder.

Jochen

Also das ist alles noch nicht so,

Jochen

es ist nicht so ein total

Jochen

smoothes

Jochen

Experience, sondern das ist mehr so,

Jochen

man fragt sich ab und zu so,

Jochen

das darf doch nicht wahr sein.

Jochen

Ja, dann

Jochen

auch schön,

Jochen

wenn man Audio aufnehmen möchte, also bei Fotos

Jochen

und so geht das ja eigentlich alles auch im Testbetrieb

Jochen

ganz gut, Audio nicht so sehr.

Jochen

Da hat man dann zum Beispiel

Jochen

das Problem, wenn man jetzt

Jochen

und da die

Jochen

Geschichten, die ich da gerade brauche, sind halt

Jochen

vor allen Dingen für mobile Endgeräte

Jochen

gedacht. Ist ja auch

Jochen

eigentlich schön, da hat man dann die ganzen Sensoren dabei,

Jochen

da hat man Mikrofone dabei und so. Das funktioniert

Jochen

ja auch alles. Sollte man eigentlich auch Audio aufnehmen können.

Jochen

So, wenn man

Jochen

Fotos macht und so,

Jochen

funktioniert das auch alles. Kann man halt einen Testserver im lokalen

Jochen

Netz haben, auf dem das läuft.

Jochen

Also ich habe da so meinen Python-Entwicklungsserver

Jochen

und dann

Jochen

kann ich da Fotos hochladen und so, gar kein Problem.

Jochen

Aber wenn man jetzt sagt, okay, schalt mal das Mikrofon ein

Jochen

und mach eine Audioaufnahme,

Jochen

dann sagt einem der Browser halt so,

Jochen

nee, das ist eine

Jochen

unsafe Origin,

Jochen

weil das ist nicht HTTPS.

Jochen

Und deswegen

Jochen

nee, keine Audioaufnahme.

Jochen

Kann man das irgendwie vorher

Dominik

umwandeln oder sowas, dass der es über

Dominik

einen sicheren Kanal schickt?

Jochen

Ja, der Browser sagt einfach, das macht er nicht.

Jochen

Also der Safari jetzt nur

Jochen

und dann machen das diesmal alle. Das machen tatsächlich alle nicht.

Jochen

Ich meine, ja, okay,

Jochen

Vielleicht ist Audio irgendwie super viel privater als

Jochen

Film oder

Jochen

Foto. Ich weiß es nicht.

Jochen

Ich kann mir schon vorstellen, woran es liegt.

Jochen

Ich meine, das Problem ist halt tatsächlich, dass jemand

Jochen

möglicherweise irgendwie ein Telefon

Jochen

auf den Meeting-Tisch legt

Jochen

oder so und dann irgendwie Sachen mitschneidet und man

Jochen

nicht möchte, dass es...

Jochen

Ehrlich gesagt, ich weiß nicht. Kann man ja auch so machen. Man kann es ja einfach

Jochen

irgendwie aufnehmen und später irgendwo hinschicken.

Jochen

Keine Ahnung. Auf jeden Fall.

Dominik

Ja, dann mach einen Livestream irgendwo hin. Das wird ja auch funktionieren.

Jochen

Ja, oder man hat dann eben einen HTTPS

Jochen

irgendwie fähigen

Jochen

Server, an den man das schickt, dann geht das ja alles auch.

Jochen

Aber wenn es

Jochen

halt nicht HTTPS-fähig ist,

Jochen

ein lokaler Entwicklungsserver geht halt nicht.

Jochen

Und den kann ich ja auch nicht so leicht HTTPS-fähig machen.

Jochen

Das geht ja einfach nicht.

Jochen

Dem kann ich natürlich ein Zertifikat verpassen und ich kann

Jochen

halt irgendwie so ein

Jochen

Reverse-HTTPS-Proxy

Jochen

davor schalten. Das geht ja alles.

Dominik

Ein Reverse-HTTP-Proxy,

Dominik

was macht der? Der halt sozusagen

Jochen

das HTTPS terminiert, also

Jochen

HTTPS mit dem Telefon spricht und dann die Requests

Jochen

weiterleitet an meinen Entwicklungsserver. Das ging ja.

Jochen

Das Problem ist nur, mit einem

Jochen

validen Zertifikat geht das alles nicht so richtig.

Jochen

ja, ohne valides Zertifikat ist

Jochen

natürlich auch wieder nichts. Also es ist einfach

Jochen

doof. Wir müssen nochmal vielleicht

Dominik

kurz erklären, was valide und was invalidere Karten sind.

Dominik

Aber vielleicht in Short, kriegen wir es irgendwie in the Box?

Dominik

Ja, also man

Jochen

ja, dieser ganze Teil von Hattipass ist auch so ein bisschen

Jochen

kaputt, aber also

Dominik

Wir sind ja heute bei der Chaos-Weihnachts-Folge,

Dominik

liebe Leute. Im Python-Podcast

Dominik

wollte ich nur einmal kurz reden.

Jochen

Es ist halt so, dass ich im Grunde

Jochen

ja der, also

Jochen

man braucht eigentlich drei Dinge damit, was sicher ist.

Jochen

Also wenn ich jetzt zum Beispiel mal das Beispiel nehme, Online-Banking

Jochen

und

Jochen

ich mache jetzt Online-Banking auf einer Webseite,

Jochen

dann müssen drei Sachen

Jochen

garantiert sein, damit das wirklich sich

Jochen

sozusagen sicher ist. Und das ist

Dominik

halt... Dein Computer ist nicht infiltriert,

Dominik

die Verbindung ist nicht infiltriert

Dominik

und der C-Computer ist nicht infiltriert.

Jochen

Ja, aber es gibt noch mehr Dinge. Noch mehr.

Jochen

Mehr als drei. Drei Dinge,

Jochen

aber ich würde das jetzt eher auf so eine abstrakte

Jochen

es auf der abstrakten Ebene

Jochen

heben wollen.

Jochen

Und zwar brauchst du

Jochen

halt irgendwie

Jochen

Authentifizierung.

Jochen

Ich bin der

Jochen

richtige Nutzer, der da auch rein darf.

Jochen

Ich bin der richtige Nutzer, der da rein darf. Das macht man halt per Username und Passwort

Jochen

üblicherweise. Oder Banken nennen das irgendwie PIN.

Jochen

Machen komische Beschränkungen, aber

Jochen

im Grunde zeigt man damit

Jochen

der Bank, dass man derjenige ist,

Jochen

für den man sich ausgibt.

Jochen

Zumindest, dass ich derjenige bin,

Dominik

der die Benutzer an dem Passwort kennt,

Dominik

von demjenigen, als den ich mich ausgebe.

Jochen

Ja, dann umgekehrt muss das aber auch gelten.

Jochen

Also auch die Bank muss sich mir gegenüber ausweisen,

Jochen

weil ich möchte ja natürlich schon wissen,

Jochen

dass ich sozusagen mit der Bank rede

Jochen

und nicht mit irgendjemandem, der zwischen mir und der Bank sitzt,

Jochen

dann meine Überweisung nimmt, da irgendwie die IBAN auf seine ändert

Jochen

und dann halt die Überweisung mit der richtigen Bank macht.

Jochen

Tata!

Jochen

Das wäre irgendwie schlecht.

Jochen

Das heißt, die Bank muss sich auch mir gegenüber ausweisen

Jochen

und das macht sie üblicherweise mit einem Zertifikat.

Jochen

Und das ist halt sozusagen, wenn das nicht funktioniert hat,

Jochen

dann gibt es so einen Polizisten mit so einem Knüppel, der da auftaucht

Jochen

und dann irgendwie so eine Browserwarnung.

Jochen

Oder man sieht manchmal so ein geschlossenes Symbol oder irgendwas Grünes,

Jochen

wenn das besonders viel Geld bezahlt hat für die Certification Authority.

Jochen

Aber im Grunde, 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,

Jochen

Das ist auch alles nicht so toll.

Jochen

Aber inzwischen, das geht auch alles.

Jochen

Man muss dafür auch kein Geld mehr bezahlen.

Jochen

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,

Jochen

bei der man sich Zertifikate besorgen kann,

Jochen

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

Und wenn der halt auf der...

Jochen

Ein Python-Server?

Jochen

Nee, der ist in Go geschrieben, aber...

Jochen

Ja, der macht sozusagen so ein Challenge-Response-Verfahren

Jochen

mit Let's Encrypt, mit dieser Certification Authority,

Jochen

holt sich dann die entsprechenden Zertifikate.

Jochen

Das funktioniert alles automatisch, man muss sich um nichts mehr kümmern

Jochen

und das klappt einfach so.

Jochen

Das ist ein sehr viel besserer Zustand als früher,

Jochen

wo man das alles von Hand machen musste

Jochen

und mit Passphrases rumhantieren und OpenSSL-Kommandos

Jochen

und keine Ahnung, war alles ziemlich furchtbar.

Jochen

Aber die Aufgabe von einem Zertifikat ist einfach nur,

Jochen

sozusagen sicherzustellen für den Benutzer im Browser,

Jochen

dass da 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,

Jochen

auch wirklich machen darf.

Jochen

Also dass halt, keine Ahnung, ich als Benutzer

Jochen

von meinem Bankkonto Dinge überweisen darf.

Dominik

Du hast die Rechte, das durchzuführen, was du möchtest.

Jochen

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

Jochen

Und das wäre halt Autorisierung.

Jochen

Ich wäre 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 irgendeinem anderen Konto was zu tun?

Dominik

Hast du die Privilegien, das zu tun, was du tun darfst?

Jochen

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

Jochen

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

Jochen

Ja, natürlich.

Jochen

das auch irgendwie zugelassen.

Jochen

In den 90ern war

Jochen

die Hochzeit der CeBIT

Jochen

und da...

Jochen

Es war eine Computermesse.

Jochen

In Hannover, genau,

Jochen

gibt es ein schönes YouTube-Video

Jochen

von Nixdorf,

Jochen

glaube ich, selbst,

Jochen

der irgendwie zu Beginn der CeBIT

Jochen

gesagt hat, ich verstehe das gar nicht.

Jochen

Was soll denn das? Warum hat man das

Jochen

die Hannover Messe und die CeBIT auseinander

Jochen

gelegt? Das ist doch eigentlich das Gleiche.

Jochen

ich kapiere das alles nicht

Jochen

und das ist auch interessant

Jochen

vielleicht so ein Nixdorf ist dann ja irgendwie glaube ich

Jochen

auf der Zebe tatsächlich an einem Herzinfarkt gestorben

Jochen

und jetzt sagen

Jochen

alle so, ja okay stimmt, warum haben wir das eigentlich mal

Jochen

auseinandergelegt, jetzt legen wir es wieder zusammen

Jochen

also ist das alles noch so

Jochen

gekommen, wie es hätte von Anfang an vielleicht sein sollen

Jochen

naja

Jochen

nee, ich glaube die Zebe hat es einfach

Jochen

das

Jochen

hat halt nicht mehr funktioniert

Jochen

und genau

Jochen

da war es so, dass

Jochen

jedenfalls habe ich das irgendwie mal gehört, ich habe keine Ahnung,

Jochen

ob das stimmt, das IBM

Jochen

hatte da einen Stand mit so großen Maschinen,

Jochen

so Mainframes,

Jochen

Z-Series

Jochen

und

Jochen

da

Jochen

haben sie halt sozusagen einen Teil

Jochen

vergessen, also sie haben halt die Autorisierung überprüft,

Jochen

also da kamen halt irgendwie dann so Tieflader,

Jochen

so Sattelschlepper an und

Jochen

haben halt die ganze Hardware eingepackt,

Jochen

das waren irgendwie Leute, die mit dem, also auf den

Jochen

LKWs stand IBM drauf, die Leute, die reinkamen,

Jochen

das waren alles so IBM

Jochen

Arbeitsuniform

Jochen

ausgestattete Leute, die hatten

Jochen

irgendwie die richtigen Formulare dabei und so,

Jochen

das hat alles gepasst,

Jochen

haben dann den Kram mitgenommen

Jochen

und

Jochen

dann war er halt weg und dann irgendwann kam noch mal

Jochen

die WM-Abbau-Leute,

Jochen

die sich dann gewundert haben,

Jochen

dass nichts mehr zum Abbauen war.

Dominik

Ja, immer die richtigen Anträge,

Dominik

immer die richtige Uniform.

Jochen

Das Problem da ist halt so, Autorisierung war richtig,

Jochen

also sie haben halt das schon überflutet, also es waren schon

Jochen

das waren die Leute, die den Job hätten machen sollen.

Jochen

Das ist ja nur nicht authentifiziert.

Jochen

Das ist der Köpenick-Hack.

Dominik

Man ist autorisiert, aber nicht

Jochen

authentifiziert.

Jochen

Aber man muss wirklich beides haben. Also wenn eins davon

Jochen

fehlt, ist es halt schlecht. Und dann gibt es noch ein drittes,

Jochen

was auch sein muss, Integrität.

Jochen

Integrität ist

Jochen

auch wichtig, weil ansonsten kann jemand

Jochen

das manipulieren.

Jochen

Kann in die Mitte setzen und winken.

Jochen

Dafür hat man halt Verschlüsselungen und dafür hat man halt

Jochen

auch, sind auch die Zertifikate

Jochen

zuständig, damit man sozusagen weiß,

Jochen

dass man auch tatsächlich mit den Leuten redet, die das

Jochen

vorgeben zu sein.

Jochen

Wenn man Integrität nicht hat,

Jochen

dann funktioniert das auch alles nicht.

Dominik

Also wenn man jetzt nicht in einem Raum sitzt

Dominik

und sich gegenseitig angucken kann, ist Integrität natürlich

Dominik

ein schwieriges Thema, weil ich kann mir vorstellen,

Dominik

jemand kann immer so tun, als wäre er irgendjemand

Dominik

und wenn er sich dann authentifizieren kann

Dominik

und autorisiert wirkt,

Dominik

dann kriegt

Dominik

er die Befugnis und gilt auch irgendwie

Dominik

als Integer. Also viele Leute machen vielleicht

Dominik

den Fehler, dass sie Integrität abhängig

Dominik

machen von Authentifizierung und Autorisierung.

Jochen

Das ist nochmal eine getrennte Geschichte.

Jochen

Und ja, wenn man diese

Jochen

drei Sachen so ganz abstrakt irgendwie

Jochen

auf die Reihe kriegt, dann ist es halt okay.

Jochen

Und ja,

Jochen

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

Jochen

ganze letzten Kripp-Zeugs halt nicht,

Jochen

weil man dieses Web-Challenge-Response-Ring nicht

Jochen

machen kann. Müsstest du die selber

Jochen

schreiben?

Jochen

Natürlich kann man sich selber ein Zertifikat erstellen,

Jochen

aber das Problem ist halt, dass man dann

Jochen

nicht sozusagen

Jochen

offizielle Zertifikate, die im Browser akzeptiert

Jochen

sind, mit einem Root-Zertifikat unterschrieben, einer

Jochen

entsprechenden Certification Authority. Was ist ein Root-Zertifikat?

Jochen

Das ist halt das, was im Browser hinterlegt ist,

Jochen

womit der Browser überprüfen kann, ob die Signatur, die eine

Jochen

Certification Authority, mit dem sie ein Zertifikat

Jochen

unterschrieben hat, ob die stimmt, ob die von der richtigen Certification Authority kommt.

Dominik

Also das Root liegt dann wo auf dem Server?

Jochen

Das Root-Zertifikat ist im Browser.

Jochen

Die sind im Browser vorinstalliert.

Dominik

Das heißt, die müssen bei den Browsern tatsächlich vorhanden sein

Dominik

und jeder Browser bekommt sein eigenes Zertifikat?

Jochen

Nee, Browser haben eine Liste von Root-Zertifikaten,

Jochen

denen sie sozusagen vertrauen.

Jochen

Und das sind halt einmal sowas wie VeriSign

Jochen

und da gibt es diverse Firmen, die das halt irgendwie machen.

Jochen

Telekom ist auch dabei, aber halt eben auch viele Provider,

Jochen

teilweise ziemlich seltsame Organisationen.

Jochen

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

Jochen

Ich glaube, das war super.

Jochen

Vor allen Dingen ist ein Provider irgendwie pleite gegangen,

Jochen

hatte halt so ein Root-Zertifikat in den Browsern drin.

Jochen

Und dann haben irgendwelche anderen Institutionen diesen Plattier gegangen,

Jochen

einen Provider aufgekauft und dann lustige Sachen damit gemacht.

Jochen

Einer hat versucht, in die Browser reinzukommen, auch sehr lustig.

Jochen

Das war eine Spaßaktion, aber ich glaube, der hat sich genannt,

Jochen

irgendwie Honest Ali,

Jochen

war ein Gebrauchtwagenhändler und wollte halt auch

Jochen

sein Zertifikat in den Browsern haben.

Jochen

Oder Honest Ahmed, ich weiß nicht mehr genau.

Jochen

Es war super lustig.

Jochen

Ja, in den Browsern

Jochen

sind teilweise komische Root-Zertifikate drin.

Jochen

Aber

Jochen

das Problem

Jochen

ist halt, wie kriegt man,

Jochen

der Browser muss halt irgendwo

Jochen

sein Vertrauen bootstrappen.

Jochen

Und normalerweise passiert das eben so, dass

Jochen

die Sachen schon dabei sind. Also wenn man einen Browser installiert,

Jochen

sind die Dinger halt auch schon drin. Das heißt,

Jochen

wenn ein Browser

Jochen

ein unterschriebenes Zertifikat sieht, dann weiß er

Jochen

halt, kann er anhand der Liste der

Jochen

vertrauenswürdigen Root-Zertifikate überprüfen,

Jochen

ob das jetzt eine

Jochen

Root-CR unterschrieben hat, die er

Dominik

kennt oder nicht. Also Bootstrap heißt alles selber

Jochen

einstellen. Kannst du das auch alles selber

Jochen

einstellen, aber das sind so... Aber das heißt Bootstrap.

Jochen

Bootstrap heißt,

Jochen

dass man, man braucht halt irgendwie

Jochen

sozusagen, man muss

Jochen

die Unterschrift, die man jetzt

Jochen

unter einem Zertifikat sieht,

Jochen

ja, zurückführen auf irgendwas, was man kennt.

Jochen

Sozusagen, also...

Jochen

Ist das ja auch die, mit der

Dominik

Unterschriebenheit passiert, der komische Ausgrund ist irgendwie auch.

Jochen

Und klar, also man könnte jetzt natürlich

Jochen

ein Zertifikat haben, das

Jochen

unterschrieben ist von der einen und dann nochmal eine ganze Kette

Jochen

von Unterschriften, aber die Frage

Jochen

ist halt, irgendwie muss man

Jochen

letztendlich

Jochen

ja, eine haben, der man schon

Jochen

vertraut und die Art, wie man

Jochen

halt zu diesem sicheren

Jochen

Vertrauen kommt, ist das halt schon einfach mit dem Browser

Jochen

mit ausgeliefert wird.

Jochen

Was natürlich, ja, das muss man halt

Jochen

dann auch sicher sein, dass man den richtigen Browser bekommen hat.

Jochen

Aber...

Dominik

Dafür kann man ja eine Hash-Summe prüfen bei dem Runterladen

Dominik

von der Seite. Ja, genau.

Dominik

Ähm, ja.

Dominik

Äh, genau.

Dominik

Ja, alles nicht so einfach.

Dominik

Ich möchte jetzt aber an der Stelle gleich kurz diese ganze

Dominik

Browser-Sache so ein bisschen abkürzen, weil wir sind ja

Dominik

immer noch im Python-Podcast und ich glaube, wir haben noch nicht so viel

Dominik

über Python heute geredet. Ja, das ist richtig.

Dominik

Ja, also Audi und Browser haben wir

Dominik

irgendwie versucht zu erklären und ein bisschen, was wir

Dominik

Probleme der Safari die ganze Zeit macht und was da

Dominik

alles nicht so funktioniert. Es sind aber noch

Dominik

einige andere Sachen, die haben nicht funktioniert, die auch mit Python

Dominik

zu tun hatten. Ja.

Jochen

Wobei, naja, vielleicht zuerst mal noch

Jochen

eine Sache, die dann tatsächlich funktioniert hat. Also

Jochen

der Server-Teil quasi,

Jochen

das ist dann auch tatsächlich Python. Ja.

Jochen

Django,

Jochen

das hat eigentlich alles ziemlich gut funktioniert.

Jochen

Ihr habt die letzte Folge von nicht gehört.

Jochen

Und ja, was

Jochen

ich da mache, ist

Jochen

ein

Jochen

Protokoll nennt sich GraphQL.

Jochen

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

Jochen

Das ist tatsächlich

Jochen

ziemlich nett. Also das ist halt sozusagen eine Alternative

Jochen

zu, vielleicht kennt man das,

Jochen

wie so REST-basierte

Jochen

APIs.

Dominik

Also zum Reden über JSON

Dominik

Files, oder?

Dominik

Ja, also

Jochen

quasi, wenn man nicht eine Webseite

Jochen

haben möchte, die man dem User präsentiert,

Jochen

wo halt die gerendert werden soll

Jochen

von dem Browser, sondern wenn man jetzt

Jochen

irgendwelche Daten haben möchte

Jochen

von einer API. Also heutzutage hat man oft einfach eine

Jochen

Web-Applikation, die im Browser läuft,

Jochen

die einem angezeigt wird und vom Server selber kommen

Jochen

eigentlich nur noch so JSON-Daten.

Jochen

Und die Art, wie man die vom Server holt, ist halt, man

Jochen

spricht halt irgendein Protokoll mit dem Server.

Jochen

Immer noch sehr beliebt und

Jochen

REST an der Stelle.

Jochen

Das ist halt so,

Jochen

ja, wofür steht REST eigentlich?

Jochen

Ist ein Rahmen, um

Jochen

JSON irgendwie zu verstehen?

Jochen

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

Jochen

Das kann halt auch ein anderes Format sein.

Jochen

Das ist

Jochen

Representational State Transfer

Jochen

natürlich.

Jochen

Ja, ja, klar.

Jochen

Also man kann auch REST

Jochen

Protokoll

Jochen

oder eine REST-API haben, wo man

Jochen

dann XML zurückbekommt oder halt

Jochen

irgendwas anderes.

Jochen

Oder so irgendwie

Jochen

wie heißt das?

Jochen

So eine Art binäres

Jochen

JSON-Message-Pack oder

Jochen

wie der JSON-Formate.

Jochen

JSON wird meistens

Jochen

verwendet, aber ist nicht unbedingt nötig.

Jochen

Also zum Beispiel, wenn man jetzt

Jochen

Django REST-Framework als

Jochen

Modul oder

Jochen

Third-Party-Django-App verwendet,

Jochen

die den REST-API-Teil macht,

Jochen

dann kann man hinten an die

Jochen

Requests einfach Fragezeichen, Format gleich,

Jochen

irgendwas dranhängen, wie zum Beispiel JSON oder XML

Jochen

und dann kriegt man halt XML statt JSON zurück.

Jochen

Also das ist eigentlich

Jochen

unabhängig von dem Format. Das Entscheidende bei REST

Jochen

ist eigentlich, dass man die HTTP-Werben

Jochen

benutzt, um mit dem

Jochen

Server zu kommunizieren. Also dass man,

Jochen

wenn man jetzt

Jochen

Dinge haben möchte,

Jochen

also eine Liste von Sachen haben möchte

Jochen

und das auf dem Server an dem

Jochen

State des Servers nichts ändert, dann verwenden wir halt

Jochen

ein Get-Request. Wenn man

Jochen

Requests macht, die an dem State irgendwas verändern,

Jochen

dann muss man halt Post oder Put

Jochen

oder Patch-Requests verwenden.

Jochen

Und wenn man

Jochen

irgendwas löschen möchte, dann sendet man halt ein

Jochen

Delete-Request. Ja, die meisten Leute

Jochen

kennen ja wahrscheinlich nur Get und Post.

Jochen

Ja, aber es gibt halt dann noch eine Menge

Jochen

andere Dinge. Und

Jochen

ja,

Jochen

diese Sachen benutzt man im Grunde,

Jochen

um halt mit dem Server zu kommunizieren

Jochen

und man benutzt halt auch die HTTP-Status-Codes.

Jochen

Das heißt, wenn einer nicht authentifiziert ist,

Jochen

kriegt man 401 zurück.

Jochen

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, 15, ich weiß es nicht genau.

Jochen

Das ist halt irgendwie eine Fehlermeldung,

Jochen

heißt eine T-Port.

Jochen

Es gibt manchmal so...

Jochen

Ich kenne nur andere Schöne, nicht nur das Jahr.

Jochen

402 kennt mir noch einen, ja.

Jochen

Ja, den kenne ich gar nicht.

Jochen

Was macht 402?

Jochen

Payment Required.

Jochen

Ah, ja, genau.

Jochen

Also es gibt da diverse...

Dominik

Wurde nie benutzt, aber ich habe ein T-Shirt,

Dominik

da habe ich mir das draufgeschrieben.

Dominik

Das ist eine gute Idee.

Jochen

Ja, und das ist im Grunde Rest.

Jochen

Das ist auch eine sehr schöne Sache.

Jochen

Ein bisschen ein Nachteil bei Rest ist halt,

Jochen

dass man manchmal so das Problem kriegt,

Jochen

wenn man jetzt so genestete Daten,

Jochen

also Datenstrukturen, die so ineinander verschachtelt sind,

Jochen

abfragen möchte.

Jochen

dass es dann manchmal

Jochen

etwas schwierig wird und man oft dann halt mehrere

Jochen

Requests braucht.

Jochen

Und also wenn man

Jochen

jetzt, weil oft

Jochen

so diese Resta-APs direkt auf Tabellen

Jochen

mappen, die halt irgendwie in der Datenbank sind,

Jochen

das macht das Ganze manchmal so ein bisschen

Jochen

schwierig und dann kann es dazu führen, dass man halt sehr viele

Jochen

Requests rausschicken muss zum Beispiel.

Dominik

Da muss man sich immer die Deep Links dann besorgen für den

Dominik

neuen Request, damit dann die Tabelle vollständig wird,

Dominik

die man selber haben will. Ja, oder man hat halt

Jochen

in der Tabelle jetzt nur eine ID, eine

Jochen

Referenz auf eine andere Tabelle drinstehen sozusagen.

Jochen

Man möchte aber eigentlich die gesamten Daten

Jochen

haben, dann muss man sich erst

Jochen

alle IDs holen, dann schickt man die IDs wieder zum Server

Jochen

und holt die neuen Objekte, was halt ein bisschen doof ist.

Jochen

Man kann das auch so machen,

Jochen

dass es halt,

Jochen

dass man direkt die Daten bekommt, die man haben möchte,

Jochen

aber dann muss man auf dem Server

Jochen

das halt auch so hinbauen,

Jochen

dass das so geht.

Jochen

Und vor allen Dingen ist es halt unveränderlich.

Jochen

Man kriegt halt immer das gleiche Ergebnis,

Jochen

unabhängig davon, ob man jetzt das braucht oder nicht.

Jochen

Man kann das jetzt zum Beispiel, wenn man jetzt in den Server

Jochen

reinbaut, okay, du kriegst jetzt nicht nur

Jochen

irgendwie die Liste der IDs,

Jochen

sondern du kriegst halt direkt dann schon

Jochen

genestet da drin die Datenstruktur, die du eigentlich

Jochen

haben möchtest. Also nehmen wir an, du hättest gerne

Jochen

eine Liste der

Jochen

der, der von

Jochen

aller Alben, die du hast

Jochen

und jetzt hast du aber nicht nur

Jochen

die Track-IDs da drin, sondern halt auch

Jochen

Interpret und Dauer oder sowas.

Dominik

Ja, der Vorteil, den das natürlich hat, wenn man die

Dominik

nicht direkt alle mitschickt, ist, dass natürlich die Datenmenge,

Dominik

die man bekommt, nicht so riesengroß ist. Ja, aber jetzt nehmen wir an,

Dominik

du hast einen kleinen zwei

Jochen

Ansichten. Eine

Jochen

zeigt halt nur, welche Alben es gibt

Jochen

und eine zeigt halt auch die Interpreten

Jochen

und die Dauer, jetzt nehmen wir an,

Jochen

an.

Jochen

Jetzt kannst du, da hast du mehrere

Jochen

Möglichkeiten, das zu lösen. Du kannst jetzt zwei unterschiedliche

Jochen

API-Endpoints, also Endpunkte, anfragen,

Jochen

wo du halt einmal das ohne die Tracks kriegst

Jochen

und einmal mit. Dann hast du aber das Blöde,

Jochen

da hast du zwei Endpunkte. Du musst halt zweimal irgendwie

Jochen

den Endpunkt implementieren.

Jochen

Du kannst es so machen, du schickst halt immer alle Daten,

Jochen

das heißt Alben inklusive Tracks,

Jochen

aber dann schickst du einmal zu viel Daten.

Jochen

wenn du die Tracks gar nicht anzeigen möchtest.

Jochen

Oder

Jochen

du schickst halt nur die Liste

Jochen

der Alben mit den IDs für die Tracks

Jochen

und dann musst du halt einen zweiten Request machen,

Jochen

um die Tracks zu bekommen

Jochen

oder die Metadaten für die Tracks.

Jochen

Und

Jochen

dann hast du das Problem, dann überträgst du

Jochen

zwar nicht zu viel Daten, aber dann hast du halt

Jochen

Latenzen, die sich

Jochen

aufaddieren, weil du immer noch mal

Jochen

einen Roundtrip hast pro

Jochen

Album.

Jochen

interpretiert, ja. Du kannst auch vielleicht alle

Jochen

Geister, die kriegen oder so, aber du hast auf jeden Fall nochmal einen.

Jochen

Und es kann halt dann auch viel komplizierter werden, wenn du jetzt noch

Jochen

mehr verschachtelte Geschichten hast. Und GraphQL kann

Jochen

das. Und GraphQL löst

Jochen

dieses Problem. Ja, tatsächlich

Jochen

ziemlich elegant. Und

Jochen

da kann man halt sozusagen auf der kleinen

Jochen

Seite bestimmen, was man gerne hätte. Man schreibt halt,

Jochen

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

Jochen

Bei normalen Rest

Jochen

APIs

Jochen

kriegst du halt immer das Gleiche.

Jochen

Du kannst halt in den Request nicht reinschreiben, was du gerne

Jochen

hättest, sondern du kriegst halt

Jochen

das, was der Server vorsieht, was du

Jochen

auf diesem Endpunkt halt bekommst an Daten

Jochen

und bei GraphQL kannst du in die

Jochen

Query reinschreiben, ich hätte gerne diese Spalten

Jochen

und ich hätte gerne, das soll jetzt genestet sein

Jochen

und dann noch diese Relation mitverfolgen

Jochen

und dann da die Spalten aus der

Jochen

Tabelle und so. Macht natürlich die Query

Jochen

ein bisschen länger und komplexer. Macht die Query komplexer

Jochen

und ja, ist natürlich

Jochen

auch auf der Serverseite so ein bisschen schwieriger,

Jochen

weil man muss so aufpassen, dass man nicht

Jochen

sich da so durch die ganze Datenbank hangeln kann,

Jochen

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,

Jochen

das Protokoll hat Facebook irgendwann mal, glaube ich, intern entwickelt.

Jochen

Und dann sind sie irgendwann, dann haben sie das zum öffentlichen Standard gemacht,

Jochen

weil sie halt das Problem haben mit ihrer App, dass sie ganz viele Abfragen machen

Jochen

und dann halt die gleichen Daten an unterschiedlichen Stellen brauchen,

Jochen

aber dann halt nicht genau die gleichen Daten.

Jochen

Und das ist halt alles, irgendwann haben sie gemerkt, so mit dem Rest kommen die hier nicht weiter.

Jochen

und haben sich ja 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

Das heißt, man macht zum Beispiel solche Sachen wie, alle 10 Millisekunden sendet man halt irgendwie eine Querie raus.

Jochen

Das heißt, man sendet nicht jedes Mal, wenn eine Querie gestellt wird, im Client irgendwie eine Anfrage raus,

Jochen

sondern man sammelt alle Queries, dann packt man die in eine große Querie

Jochen

und die man dann rausschickt

Jochen

und kriegt dann die Antwort und dann kann man halt dafür sorgen, dass

Jochen

zum Beispiel nur

Jochen

in bestimmten Intervallen irgendwie Sachen in den Server

Jochen

geschickt werden, was halt dann die Anzahl der Requests

Jochen

auf dem Server reduziert und so. Also da sind

Jochen

einige sehr nette Optimierungen drin

Jochen

und

Jochen

für Django gibt es

Jochen

eine Bibliothek, die nennt sich Graphene,

Jochen

die man da verwenden

Jochen

kann und das ist tatsächlich

Jochen

ziemlich nett

Jochen

und dann hat man

Jochen

sozusagen GraphQL

Jochen

Protokoll-Unterstützung

Jochen

auf Django-Seite und

Jochen

da gibt es noch ein sehr schönes Frontend,

Jochen

das man da auch verwenden kann, das nennt sich

Jochen

Graphical.

Jochen

Das ist sozusagen

Jochen

so ein grafischer Browser für, dann kann man dann halt,

Jochen

das macht er auch so

Jochen

TabCompletion auf den

Jochen

Queries und so

Jochen

EQL

Jochen

mit Q

Jochen

naja, egal, genau.

Jochen

es ist halt dieses Frontend.

Jochen

Und genau, ich habe eigentlich

Jochen

so die letzten Jahre meistens Rest gemacht,

Jochen

aber

Jochen

und GraphQL mache ich jetzt noch nicht

Jochen

so lange, aber ich muss sagen, es ist

Jochen

doch sehr, sehr nett. Was teilweise

Jochen

so ein bisschen ätzend ist, ja, es macht

Jochen

es halt alles komplizierter, es ist halt mächtiger

Jochen

oft und das macht es halt auch

Jochen

kompliziert, was auch komisch ist,

Jochen

für jemanden, der aus dem Rest,

Jochen

aus der Restwelt kommt, sozusagen,

Jochen

ist auch, dass HTTP-Werben keine große Rolle mehr spielen.

Jochen

Das heißt, man schickt immer Posts an den Server

Jochen

und man bekommt eigentlich fast immer 200 zurück.

Jochen

Und das war am Anfang immer so beim Debuggen.

Jochen

Wenn irgendwas nicht funktioniert hat,

Jochen

dann gucke ich so in den Network-Tab im Browser

Jochen

und dann halt so, kommt 200 vom Server zurück.

Jochen

Und ich denke mir, da kommt noch ein 200 zurück.

Jochen

Warum ist denn das ein Fehler?

Jochen

Dann so, ja, okay, man muss die Antwort erst aufmachen.

Jochen

Dann steht da drin so, ja, also hier ist dein 200

Jochen

und hier ist der Body deiner Response.

Jochen

da steht halt drin, ja, jetzt ist ein Fehler passiert.

Jochen

Wenn man aufs Rest kommt, dann rechnet man nicht damit,

Jochen

weil da ist halt ein Fehler.

Jochen

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

Jochen

Ja, aber

Jochen

wenn man sich dann dran mal so ein bisschen gewöhnt hat,

Jochen

dann ist das auch nicht mehr so schlimm.

Jochen

Und da gibt es auch

Jochen

tolle Debug-Geschichten

Jochen

für den Browser, wo man das dann halt auch wieder

Jochen

ordentlich sehen kann.

Jochen

Da muss man sich allerdings dann als Browser-Extension

Jochen

installieren. Also zum Beispiel für, ich verwende

Jochen

als Client Apollo, der Apollo-Client.

Jochen

Und da gibt es dann so eine

Jochen

Extension für Chrome.

Jochen

Es gibt

Jochen

einen Client von

Jochen

Facebook selber, Relay-Client.

Jochen

Der ist

Jochen

ja, den habe ich nicht ausprobiert.

Jochen

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

Jochen

sein, aber

Jochen

es gilt auch als nicht so ganz

Jochen

einfach zu bedienen. Und ich fand ehrlich gesagt Apollo

Jochen

schon ziemlich schwer zu bedienen.

Dominik

Wenn der Jochen das sagt, dann lege ich mir den Finger auf.

Jochen

Nein, nein, das Ding ist eigentlich gar nicht

Jochen

schlecht. Es kann wirklich coole Sachen, aber

Jochen

das ist schon so

Jochen

wirklich, also es kann auch daran

Jochen

liegen, dass ich halt mit JavaScript noch nicht so richtig

Jochen

super viel Erfahrung habe, aber die

Jochen

API davon fand ich schon teilweise

Jochen

boah, so. Schon wirk.

Jochen

Nö, das ist einfach schwierig,

Jochen

aber was halt auch damit zusammenhängt, dass es eine komplexe

Jochen

Geschichte ist. Also es

Jochen

cached halt auch ganz viel intern und

Jochen

wenn man jetzt irgendwie zum Beispiel, wenn der User

Jochen

irgendwie eine neue

Jochen

Entität von irgendwas erzeugt,

Jochen

dann muss man ja dafür sorgen, dass der Cache geupdatet wird,

Jochen

jetzt kann man einfach dieses Query nochmal ausführen

Jochen

Und dann hat man ja Latenz im Frontend,

Jochen

das will man auch nicht. Und dann kann man

Jochen

quasi dem Cache sagen,

Jochen

also hier, ich bin mal

Jochen

optimistisch, das ist das Ergebnis,

Jochen

was wahrscheinlich demnächst vom Server zurückkommt.

Jochen

Ich zeige das dem User doch schon mal an.

Jochen

Oder man kann

Jochen

den Cache direkt manipulieren

Jochen

und dann wird das halt automatisch ersetzt,

Jochen

wenn dann die richtige Antwort vom Server kommt

Jochen

und so. Aber wenn dann irgendwie

Jochen

eine Fehlermeldung passiert, dann muss die ja natürlich auch wieder hochbabbeln.

Jochen

Also,

Jochen

ja. Nee, ihr müsst die babbeln.

Jochen

dem muss ja dann auch

Jochen

der User wieder angezeigt werden.

Jochen

Das ist alles so ein bisschen...

Jochen

Aber nee, es ist schon

Jochen

nett. Und ich glaube, wenn ich jetzt

Jochen

nochmal die Wahl hätte, wenn ich bei einem neuen

Jochen

Projekt, ob ich da jetzt Rest nehme oder

Jochen

GraphQL, würde

Jochen

ich wahrscheinlich tatsächlich zu GraphQL trainieren.

Jochen

Weil das halt doch einige

Jochen

sehr nette Vorteile hat.

Jochen

Und ja, also

Jochen

insofern, das ist

Jochen

halt vielleicht ganz

Jochen

interessant zu wissen, dass man nicht unbedingt auf

Jochen

Node.js-Server umsteigen muss,

Jochen

wenn man GraphQL machen will, sondern dass das mit Django

Jochen

und Graphene halt auch eigentlich ziemlich gut geht.

Jochen

Okay. Ja.

Jochen

Werden wir unbedingt in den Show-Notes erwähnen.

Dominik

Ich würde sagen, jetzt haben wir ja so ein bisschen das Server-Thema weg.

Dominik

Vielleicht kommen wir jetzt noch ein bisschen weiter, wieder in die Python-Welt

Dominik

zurück, schlagen uns auf einen Bogen,

Dominik

was alles nicht so funktioniert. Wir hatten am Anfang

Dominik

erwähnt, Pandas-Requests,

Dominik

Respy mit Hass.

Dominik

Was ist am nächsten?

Dominik

Ja,

Jochen

die Pandas-Geschichte ist eigentlich auch ganz

Jochen

Das ist ganz interessant.

Jochen

Das ist ja eine superpopuläre

Jochen

Bibliothek.

Jochen

Die kenne nur ich.

Jochen

Es ist halt quasi

Jochen

so ein bisschen Excel für

Jochen

Python, für Programmierer.

Jochen

Und ja, ist auch alles

Jochen

sehr nett und so, aber

Jochen

man stößt

Jochen

halt irgendwann auch irgendwie an die Grenzen

Jochen

und da hatte ich halt auch schon

Jochen

irgendwie Ärger mit.

Jochen

ich habe irgendwie, das ist jetzt

Jochen

auch schon ein bisschen was her, aber

Jochen

viel

Jochen

mit Pandas gemacht

Jochen

und vor allen Dingen viel mit Pandas und Hadoop

Jochen

irgendwie Sachen,

Jochen

Datenstrukturen aus Hadoop irgendwie in Pandas

Jochen

verwenden wollen und

Jochen

ja,

Jochen

tatsächlich

Jochen

waren da nicht alle Dinge nur

Jochen

die Schuld von Hadoop.

Jochen

Was man ja denken könnte, ja.

Jochen

Ja, was auch, also

Jochen

Hadoop ist schon

Jochen

auch speziell und

Jochen

da gibt es viele Geschichten, die da nicht so gut

Jochen

funktionieren, aber eben bei Pandas gibt es

Jochen

auch Probleme und

Jochen

das ist auch schon ganz

Jochen

alt, der

Jochen

Gründer des Pandas-Projektes

Jochen

Wes McKinney hat irgendwann mal

Jochen

einen Vortrag, glaube ich, gehalten

Jochen

10 Things I Hate

Jochen

About Pandas und das hat er

Jochen

jetzt nochmal aktualisiert

Jochen

das ist jetzt aber auch schon über ein Jahr her,

Jochen

in einem Blogartikel,

Jochen

den er, glaube ich,

Jochen

betitelt hat mit 10 Things I Hate About Pandas

Jochen

und das Apache Arrow

Jochen

Projekt,

Jochen

was halt so ein bisschen diesem ganzen Kram Abhilfen

Jochen

schaffen soll.

Jochen

ja, also Pandas kann so diverse

Jochen

grundlegende Geschichten nicht. Also wie zum Beispiel

Jochen

so ein Problem ist halt, oder

Jochen

sagen wir mal so, das ist sogar eher ein Problem

Jochen

von NumPy, was unten drunter liegt.

Jochen

So Null-Werte

Jochen

gehen halt nur wirklich schön mit

Jochen

Float.

Jochen

Wenn man jetzt Integer-Spalten hat

Jochen

und hat dann Null-Werte drin.

Jochen

Aber NumPy kann auch Nullen.

Jochen

Also fehlende Werte irgendwie.

Jochen

Also nicht definierte

Jochen

Werte sozusagen. Dann hat man

Jochen

ein Problem, wenn man das nicht

Jochen

quasi... Das gibt's halt

Jochen

nicht.

Jochen

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

Jochen

Kann man sich überlegen, wie man das irgendwie

Jochen

kondiert. Schreibt man da vielleicht minus 1 rein

Jochen

oder so. Aber wenn minus 1

Jochen

irgendwas bedeutet, dann ist das halt doof unter Umständen.

Jochen

Oder man kann sich eine beliebige

Jochen

andere Zahl ausdenken, die man dann da reinschreibt.

Jochen

Aber man kann halt eben nicht none

Jochen

reinschreiben. Das geht halt nicht.

Jochen

Aber gibt es da nicht dieses

Dominik

none, also dieses, ich meine dieses

Dominik

numpy none? Ja, das geht nur bei float.

Dominik

Das geht nur bei float? Ja.

Dominik

Okay. Und ja,

Jochen

das ist halt so ein bisschen doof.

Jochen

Ja, dann...

Jochen

Das geht nur bei Float?

Jochen

Ja.

Jochen

Ich muss einfach kurz in das Nampai-Kapitel reinschauen.

Dominik

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

Dominik

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

Jochen

Ja, also vor allen Dingen, wenn man jetzt zum Beispiel in Hadoop irgendwie Daten hat,

Jochen

die das können und wo man halt irgendwie Datenformate hat, die das halt unterstützen,

Jochen

und dann hat man halt fehlende

Jochen

Werte irgendwie und möchte das jetzt

Jochen

in den Dataframe pumpen, dann

Jochen

kriegt man halt Probleme, wenn das halt nicht funktioniert.

Jochen

Und dann

Jochen

ist das halt auch alles so ein bisschen

Jochen

schwierig.

Jochen

Es gibt halt dieses

Jochen

Apache Arrow-Projekt, das ist halt vielleicht auch ganz interessant,

Jochen

wo es darum geht, quasi diese

Jochen

ein einheitlichen

Jochen

Datencontainer zu haben,

Jochen

den man halt dann von unterschiedlichen Sprachen aus benutzen kann,

Jochen

also auch von R oder von C++ 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,

Jochen

noch eine ganze Menge Probleme.

Jochen

Apache Arrow.

Jochen

Arrow ist halt sozusagen das Projekt,

Jochen

das diese Geschichten mittelfristig mal so alle irgendwie in den Griff kriegen soll.

Jochen

Und damit könnten dann so wirklich coole Sachen gehen,

Jochen

du hast halt die Daten

Jochen

tatsächlich nur einmal, also das ist auch sowas

Jochen

zum Beispiel, was in Pandas eigentlich nicht geht.

Jochen

Du kannst halt nicht so

Jochen

Daten

Jochen

memory mapped in einem DataFrame haben.

Jochen

Also nehmen wir an, du hast halt Daten, die sind

Jochen

zu groß für deinen Hauptspeicher.

Jochen

Jetzt

Jochen

möchtest du dir möglicherweise

Jochen

teilweise immer nur so in den Hauptspeicher mappen,

Jochen

dann darauf irgendwas machen

Jochen

und dann irgendwas anderes in den Hauptspeicher mappen.

Jochen

Aber du kannst halt nicht ein komplettes

Jochen

Pfeil, weil es einfach zu groß ist oder so in den Hauptspeicher lesen

Jochen

Wenn mein Hauptreich jetzt nicht groß genug ist,

Jochen

dann geht das denn heute.

Jochen

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

Jochen

Oder es ist halt so,

Jochen

es gibt auch andere Gründe,

Jochen

weswegen man das jetzt nicht unbedingt

Jochen

in den Hauptspeicher laden möchte.

Jochen

Ja.

Jochen

Trink noch einen Schluck.

Jochen

Oh ja.

Jochen

Aber so kann man sich das

Jochen

vielleicht ganz gut vorstellen, dass das halt

Jochen

ein Problem ist. Und das kann man mit

Jochen

Pandas auch nicht machen.

Jochen

Und also

Jochen

in Zukunft, was so richtig schön wäre,

Jochen

ist halt,

Jochen

du hast

Jochen

jetzt nehmen wir an die Daten,

Jochen

die in so einem Hadoop

Jochen

Pocket-File

Jochen

irgendwie liegen.

Jochen

sozusagen

Jochen

in einem Container

Jochen

drin, den du halt von allen Sprachen aus

Jochen

ansprechen kannst. Dann kannst du halt irgendwie mit

Jochen

A deine Analysen drüber fahren

Jochen

und halt mit

Jochen

Python und Pandas,

Jochen

beziehungsweise halt irgendwelchen

Jochen

Machine Learning Bibliotheken

Jochen

kannst du es aber auch

Jochen

irgendwie von Java aus

Jochen

ansprechen oder so. Und du musst

Jochen

dieses Ding nur einmal im Hauptsprecher halten und nicht

Jochen

für jede Sprache neu.

Jochen

Weil das ist halt das, was man momentan macht. Man liest es halt dann

Jochen

Pandas irgendwie in den DataFrame ein,

Jochen

transformiert dann auch irgendwelche Geschichten, weil

Jochen

halt solche Dinge wie

Jochen

None für

Jochen

Integer gibt es halt nicht. Und dann machst du

Jochen

das halt in jeder Sprache nochmal. Das heißt, du

Jochen

hast den Speicheraufwand für jede Sprache,

Jochen

die du dann benutzt, weil du das in den Hauptspeicher laden musst.

Jochen

Und die Repräsentationen sind dann auch noch

Jochen

leicht unterschiedlich,

Jochen

weil halt bestimmte Sachen nicht gehen.

Jochen

Und dann kommen halt bei Analysen irgendwie unterschiedliche

Jochen

Sachen raus und das ist alles schrecklich.

Jochen

Und dann sagen Leute sowas wie, ja, halten kann das halt nicht

Jochen

oder keine Ahnung.

Jochen

R ist halt irgendwie doof

Jochen

oder Java hat es wieder verlockt.

Jochen

Aber eigentlich, genau,

Jochen

wenn man jetzt eine gemeinsame Infrastruktur

Jochen

darunter hätte, die sich darum kümmert,

Jochen

dann wäre das alles deutlich einfacher.

Jochen

Und das soll

Jochen

Apache Arrow mal werden.

Jochen

Das ist jetzt schon eine ganze Zeit,

Jochen

ich habe das halt im Zuge meiner

Jochen

Hadoop-Geschichten

Jochen

halt auch mal kennengelernt,

Jochen

weil ich hatte halt das Problem, also mein Hauptproblem war,

Jochen

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.

Jochen

Und das war, ich weiß nicht, na gut, da musste man auch noch Bibliotheken verwenden, die das dann halt konnten.

Jochen

Aber ich kriegte das halt irgendwie in eine Arrow-Datenstruktur und daraus dann wieder in DataFrame.

Jochen

Und dann ging es halbwegs.

Jochen

Aber da wird aktiv dran entwickelt.

Jochen

Ich glaube, das ist auch mittlerweile so Wes McKinney's Hauptprojekt, denke ich mal.

Jochen

Und das wird

Jochen

eine super interessante Geschichte in der Zukunft.

Jochen

Ja, und das soll

Jochen

halt sozusagen einige der Hauptschmerzen,

Jochen

die man mit Pandas so heutzutage hat,

Jochen

irgendwie in den Griff kriegen.

Jochen

Ja, das

Jochen

ist vielleicht ganz interessant,

Jochen

sich das mal anzugucken.

Dominik

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

Dominik

Ja, gehen wir vielleicht zum nächsten

Dominik

Punkt.

Jochen

Ja, genau, so Web-Parsing.

Jochen

Also vielleicht, da sollen wir auch mal irgendwann eine komplette

Jochen

Episode zu machen oder so.

Jochen

aber es ist ja so ein Problem, was man immer wieder hat,

Jochen

dass man irgendwelche Seiten scrappen möchte oder so.

Jochen

Wie machst du das so generell?

Jochen

Nimmst du eine wundervolle Suppe?

Jochen

Beautiful Soup.

Jochen

Ja, das kommt auch immer noch mal vor,

Jochen

dass man das für irgendwas verwendet.

Jochen

Aber nee, meistens benutze ich jetzt tatsächlich

Jochen

eine Bibliothek namens Requests.html.

Jochen

Das ist von dem gleichen Autor wie auch Requests.

Jochen

Also die Standard-Bibliothek.

Jochen

Nee, ist nicht Standard.

Jochen

Also nein, Request ist die Standard.

Jochen

Ja, genau.

Jochen

Kenneth Wrights.

Jochen

Und

Jochen

das

Jochen

Ding macht halt

Jochen

über Requests

Jochen

selbst hinausgehend ein paar Sachen,

Jochen

die ganz interessant sind und die man vor allen Dingen

Jochen

halt dann braucht, wenn man irgendwie so

Jochen

Seiten scrapt.

Dominik

Jetzt habe ich das einfach schon ein bisschen leerer gemacht.

Dominik

Ja, das war super.

Dominik

gesehen. Die Flasche war so dunkel. Zum Wohl. Prost. Toll. Ja, und zwar hat man halt mal so

Jochen

Probleme wie, naja, man möchte jetzt irgendwelche Dinge aus dieser Seite, die man irgendwie geladen

Jochen

hat, rausselektieren. Man möchte irgendwie, naja, manchmal sind die Seiten dann so ein bisschen

Jochen

unterschiedlich oder dann geht das nicht so gut. Mit Beautiful Soup kann man da ein bisschen was

Jochen

bauen. Das Problem ist halt,

Jochen

dass sobald das nicht mehr

Jochen

so die Seiten nicht

Jochen

komplett gleich sind, dann wird das mit Beautiful Soup

Jochen

auch schon irgendwie so ein bisschen schwierig.

Jochen

dann muss man jeweils ein eigenes Skript

Jochen

schreiben für jede einzelne Seite. Ja, kann man natürlich machen

Jochen

für jede einzelne Seite oder für, machen wir einfach

Jochen

Faltunterscheidungen oder so.

Jochen

Es gibt eine saukoole Geschichte,

Jochen

das ist

Jochen

tatsächlich auch ein

Jochen

Packmodul, das

Jochen

wirklich cool ist, nennt sich Path.

Jochen

Und das kann man auch noch für andere Sachen verwenden,

Jochen

aber in diesem Web-Scraping-Umfeld kann man es für eine Geschichte verwenden.

Jochen

Das hatte ich früher als Idee auch schon immer mal.

Jochen

Also wenn man sich vorstellt, wie eine Webseite generiert wird,

Jochen

dann hat man ja irgendwie so ein Template und dann eine Datenbank.

Jochen

Und dann wird dieses Template ausgefüllt, meistens mit Werten aus der Datenbank.

Jochen

Und selbst wenn man jetzt

Jochen

Seiten hat, die so ein bisschen unterschiedlich sind,

Jochen

dann ist das doch meistens irgendwie dasselbe

Jochen

Template.

Jochen

Und

Jochen

ja, jetzt

Jochen

dachte ich früher immer schon so,

Jochen

und dann habe ich dann auch gemerkt, das haben Leute

Jochen

schon implementiert, Leute haben sich überlegt, okay, wenn ich jetzt mehrere

Jochen

Seiten habe, dann kann ich doch vielleicht, kann ich das

Jochen

Template daraus extrahieren, kann ich es sozusagen

Jochen

im umgekehrten Prozess machen.

Jochen

Wenn ich das Template habe, dann möchte ich einfach nur alle

Jochen

Werte haben, sozusagen, die aus der Datenbank kommen,

Jochen

wenn ich die Datenbank wieder zurückbekomme.

Jochen

Und

Jochen

da gab es

Jochen

einige, da gab es auch auf dem ursprünglichen

Jochen

Auto von Django

Jochen

irgendwie eine Bibliothek zu,

Jochen

die aber schon lange nicht mehr gepflegt wird,

Jochen

die sozusagen

Jochen

automatisch rausfinden soll, was das Template ist

Jochen

und so.

Jochen

Und diese

Jochen

Path-Bibliothek ist aber jetzt eigentlich, das ist

Jochen

sau cool, da schreibt man im Grunde

Jochen

sozusagen sein Template irgendwie rein.

Jochen

Man kann auch damit relativ leicht rausfinden, wie

Jochen

das Template denn 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 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 rauszuparsen, irgendwie.

Jochen

Ja, und dann kann es halt, das ist ein Teil, man möchte halt irgendwie sozusagen da irgendwelche Werte aus einer Seite rauslesen 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 kriegt man dann halt nur so Grundgerüst an HTML, irgendwie einen Haufen JavaScript und JSON-Daten und dann weiß man aber nicht, was man damit irgendwie machen soll, weil man eigentlich die Daten haben möchte, die dann hinterher, wenn der Browser das rennt, in der Tabelle angezeigt werden oder so, weil die Tabelle ist dann nirgendwo mehr.

Jochen

Und dafür gibt es bei Requests.html auch so eine relativ schöne Geschichte,

Jochen

nämlich, also das ist noch so ein bisschen hakelig manchmal,

Jochen

aber da ist so ein Headless-Browser mit drin.

Jochen

Also gab es auch früher alles schon.

Jochen

Es gibt irgendwie, na, wie heißt das Ding?

Jochen

Diese Java Selenium als Interface.

Jochen

Es gibt PhantomJS.

Jochen

Es gibt ja diverse Geschichten, die man benutzen kann,

Jochen

die halt alle so eine leicht andere API haben und so.

Jochen

Das ist immer ein bisschen schwierig.

Jochen

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

Jochen

Für JavaScript gab es eine Bibliothek namens Puppeteer und dafür gibt es eine Python Adaption namens Pipeeteer

Jochen

und das ist eingebaut in Request-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 rendere mir das

Jochen

das und man kann halt über eine API sagen,

Jochen

gib mir einfach ein Bild

Jochen

dieser Seite oder man kann sagen, gib mir

Jochen

irgendwie den gerenderten DOM dieser Seite

Jochen

oder gib, hier ist ein Stück Schnipsel-JavaScript,

Jochen

führe das mal im Kontext dieser Seite

Jochen

aus

Jochen

und dann, was

Jochen

Requests.html macht, ist, es lädt halt ein Chromium

Jochen

runter und es bastelt

Jochen

das alles so zusammen, dass es irgendwie funktioniert

Jochen

und es rendert halt dann

Jochen

die Seite und gibt einem das Ergebnis zurück und das Ganze

Jochen

sogar mit einer asynchronen

Jochen

API, sodass man das halt alles so

Jochen

ein SNGIO-Umfeld

Jochen

verwenden kann.

Jochen

Und man hat mit diesem ganzen Stress, den man

Jochen

normalerweise dann so hat, hat man nicht mehr viel zu tun,

Jochen

was sehr nett ist.

Jochen

Und das funktioniert tatsächlich sehr gut.

Jochen

Also früher habe ich, ich habe mich damit

Jochen

so oft mit irgendwelchen Kramen

Jochen

rumgeschlagen.

Jochen

Teilweise muss man dann

Jochen

ein Webkit kompilieren und

Jochen

dann

Jochen

gab es da diverse Geschichten. Es gab noch Splash

Jochen

früher mal. Es gibt eine ganze

Jochen

die Leute, die auch Scrapey bauen.

Jochen

Da gibt es eine Firma dahinter, die haben da diverse Services, die sie anbieten.

Jochen

Da kann man auch irgendwie

Jochen

Scraper irgendwie erstellen. Ich glaube, ein Tool heißt Porter,

Jochen

wo man dann auch sagen kann, was auf einer Seite wo ist und so.

Jochen

Die haben auch so einen Proxy namens Splash, wo man dann halt quasi über so einen Proxy

Jochen

einen Headless-Browser hat, mit dem man dann irgendwas machen kann. Da kann man dann auch irgendwie

Jochen

JavaScript in der Seite injizieren oder irgendwelche Sachen

Jochen

rausparsen. Aber das war alles immer

Jochen

ziemlich ätzend. Kannst du noch mal ganz kurz

Dominik

erklären, was Scrappy denn genau macht im Vergleich?

Dominik

Ja, Scrappy ist

Jochen

im Grunde so eine

Jochen

Komplettlösung mehr oder weniger.

Jochen

Da kommt es dann auch noch mehr auf

Jochen

den Crawling-Teil im Sinne von

Jochen

ich habe hier ganz viele

Jochen

URLs, die ich abfragen möchte und dann

Jochen

muss man daraus irgendwie

Jochen

durchgehen, muss halt irgendwie

Jochen

mehrere Prozesse haben, die halt da

Jochen

irgendwie

Jochen

die die Seiten holen und so, dafür ist das halt

Jochen

eher gedacht, halt, dass man

Jochen

quasi wirklich eine komplette

Jochen

Seite halt irgendwie mal so da drüber

Jochen

läuft, über alle Unterseiten, die es da so gibt.

Jochen

Ja,

Jochen

da ist aber nicht so viel, also wenn es

Jochen

darum geht, da Informationen aus einer Seite zu holen, das muss

Jochen

man dann alles mehr oder weniger selber schreiben

Jochen

und dann, das kann man dann per Beautiful Soup

Jochen

tun oder LXML irgendwie,

Jochen

also das ist auch sowas bei RequestHTML,

Jochen

das ist der Standardweg,

Jochen

wie man da Elemente selektiert oder so,

Jochen

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

Jochen

Scrapey gibt

Jochen

eine ganze Menge Infrastruktur,

Jochen

wenn man jetzt so einen Scraper bauen möchte.

Jochen

Aber

Jochen

vom Inhalt her hilft einem das gar nicht so viel.

Jochen

Wenn man jetzt eine konkrete Seite hat und da irgendwelche Sachen

Jochen

rausziehen möchte, dann

Jochen

hilft einem Scrapey da nicht.

Jochen

Wenn man jetzt rausgefunden hat, wie man das tut,

Jochen

Möchte das jetzt skalieren auf, keine Ahnung,

Jochen

100.000 Seiten und möchte das mit 5 Prozessen

Jochen

auf irgendeinem Server irgendwie, dann

Jochen

ist Scrappy auch wieder eine sinnvolle Geschichte.

Jochen

Ja, und

Jochen

es gibt halt irgendwie eine Firma, die ganz eine Menge

Jochen

Services um diesen Kram herum baut.

Jochen

Ja, habe ich jetzt

Jochen

auch wieder vergessen, aber sagen wir mal so.

Jochen

Ich habe schon für diverse

Jochen

Firmen Sachen gemacht oder auch schon für Firmen

Jochen

gearbeitet, die halt auch damit immer wieder Probleme hatten.

Jochen

Scrapping

Jochen

ist halt so ein Ding, was immer wieder auftaucht, was man

Jochen

immer mal wieder machen muss.

Jochen

Und request.html ist tatsächlich so die angenehmste Lösung für dieses Problem,

Jochen

das mir bisher über den Weg gelaufen ist.

Jochen

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

Jochen

Und genau, wenn man halt das Problem hat, das Template zu extrahieren,

Jochen

aus solchen Seiten Sachen rauszuparsen,

Jochen

dann sollte man sich diese Parse- und Search-Funktion in request.html mal angucken,

Jochen

weil das ist echt sehr nett.

Jochen

Ja, genau, das war es im Grunde schon.

Jochen

Ja, dann würde ich sagen,

Jochen

kam mir ein Request mit Pass.

Jochen

Nächstes Thema war

Jochen

der Hass mit dem Raspberry.

Jochen

Was ist da passiert? Ist was kaputt gegangen?

Jochen

Chaos vor Weihnachten.

Jochen

Ja, genau, das ist irgendwie schade.

Jochen

Das Grundproblem war

Jochen

irgendwie, das habe ich auch schon

Jochen

seit über einem Jahr

Jochen

habe ich das Problem, dass

Jochen

ab und zu das Vectoring auf meinem

Jochen

DSL-Anschluss ausfällt.

Dominik

Aha, das liegt an dem DSL-Anbieter?

Jochen

Ich weiß ehrlich gesagt nicht so genau, woran das liegt, aber ich sehe halt, dass es passiert. Ich habe so eine Fritzbox, da kann man dann sehen, quasi da steht dann irgendwie, G-Vektor ist irgendwie aus oder so, da kann man irgendwie nachgucken, was das bedeutet und dann so, ja, das Vectoring ist aus.

Dominik

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

Jochen

Ach Gott, Vectoring, das ist so ein Kuppel.

Jochen

Wir haben ja in Deutschland

Jochen

diese

Jochen

unvergleichliche Klingeldrahtkupfer

Jochen

irgendwie

Jochen

Telefoninfrastruktur.

Jochen

Vielleicht nicht mehr so ganz zeitgemäß ist,

Jochen

aber liebevoll auch ins 21.

Jochen

Jahrhundert irgendwie gerettet wurde.

Jochen

Weil, ja,

Jochen

dass es natürlich für die Telekom

Jochen

irgendwie angenehmer ist,

Jochen

Gewinn zu machen mit Dingen,

Jochen

die der Bund mal investiert hat, mit Geld, das der Bund mal

Jochen

investiert hat und dann mit der Endversorgung weiter Geld zu verdienen.

Dominik

Eine Kupferleitung und nicht irgendwelche neuen Glasfaser.

Jochen

Wenn man da selber was investiert, wäre das nicht so.

Jochen

Naja, auf jeden Fall, das Problem ist,

Jochen

dass bei Kupfer

Jochen

ist halt irgendwie relativ schnell Schluss,

Jochen

so mit das aktuelle DSL.

Jochen

DSL-Technik zieht da schon so alles,

Jochen

was man so an

Jochen

Tricks machen kann, um da mehr Daten drüber zu kriegen,

Jochen

wird halt gemacht.

Dominik

Also alles Kabel, was man da in die Erde verlegt hat,

Dominik

ist quasi voll.

Jochen

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

Jochen

Dass man einfach an den physikalischen Grenzen, was man da machen kann.

Jochen

Und naja, das Einzige, was dann halt noch blieb, ist sozusagen sich Frequenzen irgendwie mit anderen zu teilen, so ein bisschen.

Jochen

Solange die nicht benutzt werden, benutzt man die halt dann mit.

Jochen

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

Jochen

Wenn jetzt sozusagen

Jochen

man zwei unterschiedliche Provider hat,

Jochen

ja, also man hat

Jochen

immer, das Telefonkabel

Jochen

geht so von dieser TAE-Dose, die man an der Wand

Jochen

hat, geht halt zu irgendeinem

Jochen

Gerät von dem Provider

Jochen

sozusagen in so einem...

Dominik

Zum HVT oder zum

Dominik

Hausanschluss und dann zum HVT.

Dominik

Ich weiß gar nicht, wie man das nennt.

Jochen

Das ist halt irgendwie so ein grauer Kasten auf der Straße.

Jochen

Wenn die brummen und da Lüfter drin sind,

Jochen

dann ist das gut. Dann ist das wahrscheinlich irgendwie so schnelleres DSL,

Jochen

als wenn das nicht brummt.

Jochen

Da ist irgendwie so eine Art Switch oder weißer Teufel

Jochen

irgendwie sowas drin, wo halt

Jochen

das Telefon-Dings da ankommt.

Jochen

Und

Jochen

wenn man jetzt Vectoring macht, dann

Jochen

bedeutet das halt sozusagen, wenn

Jochen

auf der anderen Leitung sozusagen niemand

Jochen

gerade irgendwie Daten überträgt,

Jochen

dann

Jochen

gehe ich in einen Modus, den ich eigentlich normalerweise

Jochen

nicht nehmen darf, weil ich

Jochen

ansonsten quasi dem

Jochen

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.

Jochen

ist halt sagen, okay, solange niemand anders irgendwie Daten sendet,

Jochen

kann ich das halt machen, dann wird es halt schneller.

Jochen

Und ja, so kriege ich dann halt über diese Kupferleitung

Jochen

dann doch noch wieder mal ein bisschen mehr rüber.

Jochen

Das Problem ist halt dann aber,

Jochen

dass quasi ich nicht mehr sozusagen ein Endgerät

Jochen

von unterschiedlichen Providern haben kann,

Jochen

sondern da das ja koordiniert werden muss,

Jochen

dass ich das sozusagen nur machen kann,

Jochen

wenn ich alle Leitungen unter einer Kontrolle habe,

Jochen

Bedeutet, die Hardware muss aus einer Hand kommen

Jochen

und es muss eine Stelle geben, die das kontrolliert.

Jochen

Das ist üblicherweise die Telekom.

Jochen

Und das heißt, ich habe meinen Vertrag bei O2,

Jochen

aber mein Anschluss läuft über die Telekom-Hardware,

Jochen

weil sich das ja mit allen anderen Anschlüssen

Jochen

irgendwie koordinieren muss jetzt.

Jochen

Ja, alles ein bisschen furchtbar.

Jochen

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

Jochen

Es funktioniert halt irgendwie.

Jochen

Es ist auch tatsächlich schneller.

Jochen

Insofern ist alles gut.

Jochen

Aber bei mir war es halt so,

Jochen

das fiel halt so alle paar Wochen aus

Jochen

und war dann halt weg und fiel dann halt nicht

Jochen

zurück auf VDSL, was so

Jochen

50 MBit down, 10 MBit up ist,

Jochen

sondern auf 16 MBit

Jochen

oder 14 MBit down

Jochen

und 768 KBit up.

Jochen

Also auf 2002 oder so.

Jochen

Ja, was für mich jetzt echt blöd ist,

Jochen

weil ich das ja, das brauche

Jochen

ja, ich brauche ja die

Jochen

Bits, ich brauche ja die Bandbreite.

Jochen

Precious Bandbreite brauche ich doch

Jochen

eigentlich. Ich mache da ja auch Backups

Jochen

drüber und so. Ja, Liter, Liter, ja.

Jochen

Nee, nee, das ist alles

Jochen

seriöse

Jochen

Datenverarbeitung.

Jochen

Und

Jochen

ja,

Jochen

das ist für mich total nervig. Und dann rufe ich

Jochen

dann halt immer an und wenn die sagen, okay,

Jochen

sie haben ein Ticket aufgemacht bei der Telekom,

Jochen

dann geht da irgendwie so ein Diagnoserequest raus,

Jochen

der halt

Jochen

meinen Port irgendwie da resetet.

Jochen

Und dann geht's wieder.

Jochen

Kannst du nicht automatisieren, diesen Port?

Jochen

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

Jochen

Manchmal ist es voll gut, dann rufe ich

Jochen

da an und fünf Minuten später geht wieder alles.

Jochen

Und manchmal machen sie irgendwie dieses Ticket nicht

Jochen

oder sagen nur, dass sie es tun, tun es aber nicht

Jochen

oder weiß ich nicht. Und dann kann es

Jochen

auch mal sein, dass ich eine Woche schlechtes Internet habe.

Jochen

Und das ist halt echt kacke.

Jochen

Aber das ist halt durch so viele

Jochen

Iterationen gelaufen mittlerweile, dass

Jochen

ich hatte da auch schon irgendwie zwei Stunden lang Gespräch

Jochen

mit irgendwie einem Techniker, die konnten

Jochen

das dann auch ausmessen, irgendwie meine lokalen

Jochen

Leitungen, wie das denn mit denen aussieht.

Jochen

Haben rausgefunden

Jochen

irgendwo, dass ich eine Reflektion in irgendeinem

Jochen

Kabel bei mir habe. Dann habe ich das Kabel

Jochen

ausgetauscht. Satt-TV, Satt-TV,

Dominik

ich sag's dir, irgendjemand, der rennt da über dir,

Dominik

der guckt Satt-TV gerne und die

Dominik

strahlen in dein Vectoring oder so.

Jochen

Ich weiß es nicht, auf jeden Fall, das fand ich schon beeindruckend,

Jochen

da hat sich jemand auch wirklich Zeit genommen,

Jochen

das hat leider das Problem nicht gelöst,

Jochen

das Vectoring ist noch später wieder ausgefallen.

Jochen

Und inzwischen

Jochen

ist es soweit, es war auch ein Telekom-Techniker da

Jochen

und das war auch alle sehr nett und der war

Jochen

dann auch im Keller, hat sich das alles mal angeguckt

Jochen

und dann bei uns in der Wohnung auch und so

Jochen

und

Jochen

ja, der meinte dann so,

Jochen

ja, ich weiß nicht, es geht irgendwie nicht so richtig gut

Jochen

oder manchmal passiert halt, geht's halt schief.

Jochen

Weißt du, wie die bei kurzer Exkurs,

Jochen

wie die bei mir den Upload gefixt haben?

Dominik

Die haben in der Tiefgarage an dem Kabel

Dominik

einen Limiter entdeckt, den sie wieder ausbauen mussten.

Dominik

Oh Gott.

Dominik

Nein, toll, da können die eine stundenlange Geschichte erzählen

Dominik

über Kabel und Netze und ja.

Jochen

Ja, das wäre vielleicht auch mal, genau.

Jochen

Ja, warum eigentlich nicht?

Jochen

Und, naja, jedenfalls

Jochen

hieß es dann, okay, wir haben sie einfach mal

Jochen

so auf ein anderes

Jochen

Kabelpaar umgeswitcht. Mal gucken,

Jochen

Und wenn es dann geht, dann ist ja gut.

Jochen

Aber im Verlauf dieser ganzen Prozedur

Jochen

musste ich halt alle meine Geräte irgendwie ausstecken

Jochen

und alles neu starten und irgendwie diverse Dinge.

Dominik

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

Dominik

Ach so, Mist. Ja, richtig.

Jochen

Ja, aber das Problem dabei ist halt,

Jochen

dass sich bei dieser Aktion halt der Raspberry Pi rebooted hat.

Jochen

Und ich hinterher festgestellt habe,

Jochen

nachdem das Ding wieder hochgefahren ist,

Jochen

dass ich mich nicht mehr drauf einloggen konnte.

Dominik

Ja, mein Passwort war ja gestern.

Jochen

Nein, nein, ja, das kann ich

Jochen

alles, aber ich kann halt nicht mehr,

Jochen

der SH-Demon ist da irgendwie nicht hochgefahren,

Jochen

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

Jochen

Blöd. Und dann habe ich halt

Jochen

irgendwie gemerkt, so, verdammt,

Jochen

ich habe auch keinen Monitor mehr, den ich da anschließen kann.

Jochen

Weil die habe ich inzwischen alle

Jochen

verschenkt oder

Jochen

irgendwie verschrottet.

Jochen

Bring den mal mit, dann können wir dich nicht mehr anschließen.

Jochen

Naja, das können wir mal probieren.

Jochen

Und jetzt weiß ich nicht so richtig, wie ich das Ding wieder

Jochen

ins Laufen kriege.

Jochen

Ich habe da noch diverse...

Jochen

Mein Freifunkruder hat es auch erwischt.

Jochen

Seit dieser Aktion läuft der

Jochen

irgendwie nicht mehr richtig.

Jochen

Überhaupt. Also in diesem Schrank, in dem man ganze

Jochen

Elektronik-Bastelkram sich befindet,

Jochen

ist der Wurm drin.

Jochen

Das Weihnachtschaos ist ausgebrochen.

Jochen

Das ist halt echt blöd.

Jochen

Jetzt habe ich keine Temperaturdaten mehr.

Jochen

Meine Heimatomatisierung

Jochen

funktioniert nur noch so rudimentär.

Jochen

Das lief ja alles über Home Assistant.

Dominik

Aber du kannst jetzt schon noch die...

Dominik

Ich kann schon Lichter ein- und auswählen.

Dominik

Wasser, Licht, Suche, funktioniert noch?

Dominik

Ja.

Dominik

Okay.

Jochen

Ja, aber ich muss dafür diese Philips U-App benutzen.

Jochen

Oh.

Jochen

Wie so ein Tier.

Dominik

Du kommst auch noch in deine Wohnung rein zum Beispiel.

Dominik

Ja, das geht alles, ja.

Dominik

Ja, aber man weiß ja immer nicht genau,

Dominik

also wo das dann immer gesteuert wird,

Dominik

wenn das dann so einem Gerät zentral...

Dominik

Ja.

Dominik

Ja, Raumautomatisierung mit Raspberry Pi ist ausgefallen,

Dominik

weil tatsächlich dein Vectoring nicht funktionierte

Dominik

und deswegen die Geräte neu gestartet wurden

Dominik

und du nicht mehr PSS haken kannst, weil

Dominik

du kein Monitor mehr hast und so nicht mehr auf das

Dominik

System zugreifst. Ja. Okay, ja.

Dominik

Ja. Schlimm, ne? Ja,

Dominik

katastrophal. Ja.

Dominik

Also ein kleines Externs-Display, ja, mal

Jochen

mitbringen oder so. Ja, also ich kriege dieses

Jochen

Problem wahrscheinlich schon irgendwie in den Griff. Ich muss halt bloß...

Dominik

Also halt irgendwie so... Wie viel Zeit der Jochen für seine

Dominik

Home-Automatisierung hat, wenn er seit einem Jahr sich nicht mehr darum

Dominik

gekümmert hat, dass der Wespi bootet. Ja.

Dominik

Das hat ja funktioniert. Ja.

Jochen

Ja, und dann ist auch nochmal der

Jochen

Verstärker, das ist auch so in der Ecke,

Jochen

der ist super laut, der lüftet

Jochen

immer so rum und zwar nicht ein bisschen, sondern der ist

Jochen

so richtig fies laut, da muss ich mir auch noch irgendwas einfallen

Jochen

lassen. Vielleicht kann ich das

Jochen

ja auch

Jochen

mit dieser ganzen

Jochen

Automatisierungsgeschichte so ein bisschen

Jochen

mehr

Jochen

besser

Jochen

Ich weiß noch nicht genau,

Jochen

wie man das

Jochen

Da gibt es ja dann halt einige Optionen,

Jochen

die man irgendwie nehmen könnte. Ich könnte zum Beispiel

Jochen

mehrere Raspberry-Piles

Jochen

nehmen und da irgendwie Boxen dran hängen.

Jochen

Weil ich hätte ja zum Beispiel auch sowas gerne,

Jochen

wie, dass die Musik in unterschiedlichen Räumen

Jochen

irgendwie

Jochen

die gleiche Musik

Jochen

abgespielt werden könnte zum Beispiel.

Jochen

Theoretisch jetzt auch könnte,

Jochen

aber einmal brummt der Verstärker so, dass ich ihn nicht mehr benutze.

Jochen

Und dann müsste ich halt Kabel

Jochen

durch die ganze Wohnung ziehen, was ich eigentlich auch nicht will.

Jochen

Und ich glaube, das kann man

Jochen

mit Raspberry-Piles auch hinkriegen.

Jochen

Oder man nimmt halt irgendwie eine kommerzielle Lösung,

Jochen

man könnte auch diese Apple HomePods oder so

Jochen

verwenden, aber

Jochen

das ist schon ein bisschen teuer,

Jochen

dass man das irgendwie in jeden Raum stellen kann.

Dominik

Du hast, glaube ich, das Protokoll umgestellt,

Dominik

also nicht per Bluetooth, sondern per

Dominik

Funk. Und zwar

Dominik

hast du die alten terrestrischen Frequenzen genommen,

Dominik

die man jetzt abgeschaltet hat.

Dominik

Das war das für die

Dominik

Temperatursensoren, ja.

Jochen

Aber so für Audio würde ich halt wahrscheinlich ganz normal

Jochen

das WLAN nehmen, nur

Jochen

ja,

Jochen

das könnte man

Jochen

wahrscheinlich auch irgendwie so ein Python-Projekt draus machen.

Dominik

Also die Frage ist, gibt es Boxen, die das können,

Dominik

WLAN vernünftig?

Dominik

Nee, nicht so richtig.

Jochen

Außer diese Fertiggeschichten von Apple

Jochen

oder

Jochen

es gibt halt noch so eine Spezial-Propietär-Lösung

Dominik

von Sonos. Waren die nicht mal pleite?

Jochen

Sonos? Nö, ich glaube, denen geht es ganz gut.

Jochen

Dann habe ich mich verguckt.

Jochen

Aber ja, also

Jochen

man hat da auch so einen blöden Login-Effekt

Jochen

bei Sonos.

Jochen

Ein Login?

Dominik

Ach, du bist wieder auf das System gebunden.

Dominik

Ja, genau.

Dominik

Nö, die gibt's noch.

Dominik

Die gibt's noch.

Dominik

Oh.

Dominik

Na?

Dominik

Das 14.09., okay.

Dominik

Naja.

Dominik

Naja, gut.

Dominik

Ein bisschen eingebrochen.

Dominik

Ja.

Jochen

Aber im Grunde könnte man da auch mal

Jochen

so ein bisschen was, weil man kann ja

Jochen

von dem Raspberry Pi auch irgendwie den könnte man sozusagen als Endpunkt

Jochen

für WLAN verwenden und dann halt das Audio über ganz normalen Verstärker

Jochen

und dann eine Box oder halt eine Aktivbox wiedergeben. Ja, das wäre halt noch

Jochen

so eine Idee. Ich muss da, ich muss noch mal irgendwas machen. Ich muss auch

Dominik

diesen Verstärker loswerden. Ja, wir müssen mal so ein Display für dich

Dominik

organisieren, dann irgendwie mal Monitor hinschleppen und das kriegen wir jetzt

Dominik

alles schon wieder zum Laufen. Ja, ja, ja. Heute haben wir gar nicht so viel

Dominik

über Python geredet tatsächlich, so ein kleines bisschen

Dominik

Exkurs mäßig, was man mit Pandas macht.

Dominik

Sehr viel über Web, sehr viel Chaos. Ich hoffe, ihr seht uns

Dominik

das heute nach, obwohl wir der Python-Podcast sind.

Dominik

Wenn ihr keine Lust habt, dann hört

Dominik

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

Dominik

Wir sind ja schon am Ende der Sendung.

Dominik

Ja, schreibt uns doch, was ihr

Dominik

davon gehalten habt, ob ihr mehr von solchen Folgen

Dominik

auch haben möchtet, also ob ihr viel mehr über Python

Dominik

milchen möchtet, wie immer an

Dominik

Python-Podcast.de.

Dominik

Ich hoffe, ihr hattet Spaß auch mit Pandas,

Dominik

mit Request.html, mit dem

Dominik

kleinen Einflug über den Recipe und mit ganz viel

Dominik

Browser und Rust und

Dominik

Safari ByteRange

Dominik

Radar und was

Dominik

man alles so machen kann.

Dominik

Wie man Manface Cloud auch von der CeBIT.

Dominik

Ja.

Dominik

Ja, GrafQL mit Django haben wir noch, glaube ich,

Dominik

erwähnt heute. Ja.

Dominik

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

Dominik

Genau. Und dann, denke ich,

Jochen

melden wir uns wieder im nächsten

Jochen

Jahr und mit der nächsten

Jochen

Folge. In die Weihnachtspause, wobei

Jochen

jetzt ja eigentlich zum Hören gar nicht Pause ist, sondern

Jochen

nur vom... Ja, vielleicht

Dominik

Der ist ja auch erst zwischen den Jahren.

Dominik

Dafür ist die Folge eigentlich auch gedacht.

Dominik

Na, genau.

Dominik

Was zu hören hat auch.

Dominik

Ja, uns hat es wieder Spaß gemacht.

Dominik

Ich hoffe, euch auch.

Dominik

Und dann bis zum nächsten Mal.

Dominik

Bis zum nächsten Mal.

Dominik

Kommt gut rein, kommt gut raus, kommt gut wo auch immer hin,

Dominik

ihr wollt.

Dominik

Tschüss.

Dominik

Tschüss.