Transcript: Javascript Frontends

· Back to episode

Full episode transcript. Timestamps refer to the audio playback.

Dominik

Ja, herzlich willkommen, liebe Hörer und Hörer. Willkommen beim Python-Podcast in der 20. Episode heute.

Dominik

Wir sind wieder im Homeoffice, wie man es so macht, dieser Tage, remote dabei.

Dominik

Ich hoffe, ihr könnt uns gut verstehen. Letzte Folge war etwas audioschwankungen.

Dominik

Dabei war sie inhaltlich sehr toll. Wir haben uns vergessen, den Podcast zu erwähnen.

Jochen

Das war auch echt blöd.

Jochen

Genau, der Podcast von Thomas heißt Pi Data Deep Dive.

Jochen

Und ja, sehr empfehlenswert.

Jochen

Ja, genau.

Jochen

Ein sehr cooles Ding.

Jochen

Ja, was machen wir heute?

Jochen

Jochen ist natürlich wieder da.

Dominik

Ich bin in meiner raubischen Zentrale, Jochen Wintergarten.

Dominik

Ja, willkommen Dominik.

Jochen

Es ist so eine etwas ungewohnte Situation.

Jochen

Wir sind irgendwie beide remote.

Jochen

Und wir haben hier auch noch so ein Video dabei laufen.

Jochen

aber das ist irgendwie so ein bisschen

Jochen

eigenartig. Ja, es ist nicht so richtig zum Anfassen.

Dominik

Normalerweise sitzt man beim Podcast ja immer

Dominik

bei sich gegenseitig auf der Couch und ich kenne das auch,

Dominik

wenn ich Podcasts höre, dass man immer bei den

Dominik

Menschen, die das machen, irgendwie mit dabei ist

Dominik

und das ist gerade so ein bisschen

Dominik

schwierig, aber naja.

Dominik

Heute machen wir Frontend mit Python

Dominik

und oder wie man das verbindet mit

Dominik

Python. Ja.

Jochen

So zumindest der Plan. Also als Thema uns

Jochen

überlegt, ja, weil es halt gerade auch

Jochen

sich anbietet, weil da

Jochen

irgendwie wir beide halt so ein bisschen

Jochen

irgendwie mehr mit zu tun haben im Moment.

Jochen

Struggle.

Jochen

Ja, genau. Aber

Jochen

vielleicht, ich habe auch noch so, ich weiß nicht,

Jochen

du hast ganz viele

Jochen

Fragen da in diese Themenliste reingeschrieben

Jochen

und ich hatte mir die auch mal, ich habe dann auch

Jochen

selber noch Sachen reingeschrieben,

Jochen

und zwar

Jochen

zum Beispiel könnte man noch so ein bisschen

Jochen

metamäßig über Podcasts und

Jochen

Audio-Hardware und so reden, weil da hat sich ja auch was getan.

Jochen

Oh ja.

Jochen

Alle Leute beschäftigen sich

Jochen

jetzt so ein bisschen mit

Jochen

oh, man macht ganz viel

Jochen

mehr mit Video und Homeoffice

Jochen

und so und komisch, wäre ja eigentlich

Jochen

ganz nett, wenn man mal Internet hätte und man hat es aber irgendwie

Jochen

keins und so.

Jochen

Stimmt.

Jochen

Da ist es auch ein bisschen schwierig

Jochen

jetzt so Audio-Hardware zu kriegen, weil

Jochen

das ist alles irgendwie ausverkauft.

Dominik

Ja, ich wollte auch sagen, wir wollten das tatsächlich schon, ja.

Dominik

Ja, sag mal, wie ihr das Bescheid fandet

Dominik

jetzt hier mit dem Remote, mit dem Setup, wie sich

Dominik

das anhört im Vergleich zu sonst.

Dominik

Übrigens,

Dominik

die Liste, die du da geschrieben hast, Jochen,

Dominik

es gibt so ein paar Menschen, die mir

Dominik

dann eine Einkaufsliste schreiben, was ich alles so mitbringen soll

Dominik

und die schreiben das auch völlig durcheinander. Also ich

Dominik

organisiere das so, dass ich den Supermarkt

Dominik

durchlaufe von Anfang bis zum Ende. Da muss ich

Dominik

nicht die Liste immer durchrollen.

Jochen

Ja, ja, ja. Es gibt auch offenbar unterschiedliche

Jochen

Strategien und

Jochen

ich wage nicht zu beurteilen,

Jochen

ob jetzt die eine sinnvoller ist als die andere,

Jochen

aber es sind alle valide.

Jochen

Genau, aber das ist das Problem.

Jochen

Wir machen das sowieso immer, wir reden

Dominik

immer durcheinander und kommen dann wieder zurück zum

Dominik

Das ist eigentlich ein Thema von daher.

Dominik

Ich kriege das schon irgendwie alles hin, genau.

Jochen

Also zum Beispiel, was ich an neuer Audio-Hardware habe,

Jochen

ist, was ich schon immer mal ausprobieren wollte

Jochen

und jetzt habe ich halt irgendwie das dann auch mal besorgt,

Jochen

ist ein neues Headset.

Jochen

Normalerweise verwenden wir immer diese DT297 von Beyerdynamic

Jochen

und die funktionieren auch super.

Jochen

Also habe ich eigentlich nichts daran auszusetzen.

Jochen

Nur das Problem ist, also ich bin so Brillenträger

Jochen

und habe große Ohren. Eine etwas

Jochen

ungünstige Kombination.

Jochen

Die drücken mir so ein bisschen

Jochen

auf die Ohren.

Dominik

Und bei dir sieht man auch die Haare gar nicht.

Dominik

Die sind auch länger geworden. Wir alle in diesen Zeiten

Dominik

jetzt alle, nicht beim Friseur, alle

Dominik

so Matte und Bart.

Jochen

Wie heißt der bei Harry Potter?

Jochen

Ich werde immer so ein bisschen

Jochen

nach und nach Hagrid ähnlicher.

Jochen

Vorher hatte ich nur die Statur, jetzt habe ich auch

Jochen

die anderen Attribute.

Dominik

Ja, tatsächlich. Ich würde auch sagen,

Dominik

dass das der Charakter in Harry Potter, den du am nächsten

Dominik

bekommst von der Optik, ja, ja.

Dominik

Ja, und

Jochen

genau, ich brauche halt

Jochen

große, große Kopfhörermuscheln

Jochen

und das bei dem

Jochen

DT797 ist auch

Jochen

ein Bayerdynamic Headset und da ist das halt irgendwie so

Jochen

ein bisschen größer, dass es geschlossen ist.

Dominik

Ich halte hier gerade welche rein, aber der hat jetzt leider kein

Jochen

Mikrofon. Ah, okay, ja, das sieht auch

Jochen

sehr gut aus. Das ist mein Studio-Kopfhörer. Das kann man jetzt natürlich im Podcast

Jochen

nicht sehen, aber genau, ja,

Jochen

das sind auch so Studio-Abhörer. Also das ist auch

Jochen

die Headset-Variante von einem, von dem

Jochen

die TD-790 Pro oder so, das ist auch

Jochen

eigentlich ein Studio-Kopfhörer.

Jochen

Und da ist halt noch

Jochen

so ein Mikrofon dran gebastelt und ein Kabel dran.

Jochen

Und ehrlich gesagt

Jochen

gefällt mir das. Und das Problem,

Jochen

was ich auch habe, ist halt dadurch, dass das halt

Jochen

nicht so richtig auf die Ohren passt und dann

Jochen

liegt das halt auch auf der Brille so ein bisschen

Jochen

auf und dann quetscht mir das die Brille so ein bisschen.

Jochen

Und das ist jetzt tatsächlich mit dem hier

Jochen

deutlich besser. Also ich bin mal gespannt.

Jochen

Das Mikrofon sollte das gleiche sein,

Jochen

also da sollte es keinen großen Unterschied geben.

Dominik

Ja, okay, aber immerhin bei dich Komfort ist ja auch wichtig.

Dominik

Genau.

Dominik

Wenn man jetzt so lange sitzt und die ganz lang folgen,

Dominik

immer auf und weil wir viel zu erzählen haben,

Dominik

dann sollte das auch beim Tragekomfort entsprechend, ja.

Jochen

Ja, und dann hatten wir noch ein, genau.

Jochen

Du hast gebastelt.

Jochen

Du meinst diese mit dem HMC66, diese Bastelgeschichte, oder?

Jochen

Ja, du hast irgendwas gebastelt.

Dominik

Du hast was zusammengesteckt und hast dann so eine Klinke

Dominik

an so einen XLR-Kopfhörer dran gemacht

Dominik

und hast das Ganze in ein Handy reingesteckt.

Jochen

Ah, genau, das ist total cool.

Jochen

Das ist, denkt man

Jochen

sich eigentlich, diese ganzen Geschichten, das sollten doch

Jochen

inzwischen gelöste Probleme sein,

Jochen

irgendwie Headsets

Jochen

für Computergeschichten, das gibt es doch alles schon lange

Jochen

und, aber ist irgendwie gar nicht so. Also wenn man das

Jochen

so haben möchte, dass es ordentlich

Jochen

klingt, dann ist das immer noch eine ziemliche

Jochen

Bastelei, beziehungsweise muss man halt viele Dinge einfach

Jochen

wissen und selbst wenn man sich damit so ein bisschen

Jochen

beschäftigt, reicht das nicht.

Jochen

Es kann auch sein, dass ich jetzt totalen Unsinn alles erzähle,

Jochen

weil so ein totaler Experte

Jochen

für diesen ganzen Audiokram bin ich natürlich auch überhaupt gar nicht,

Jochen

aber so nach und nach

Jochen

bekommt man dann halt Dinge mit

Jochen

und eine sehr

Jochen

interessante Geschichte, die ich halt letztens

Jochen

gesehen habe, war, dass

Jochen

es gibt ein Headset,

Jochen

das auch sehr gut klingt.

Jochen

Das ist das

Jochen

HMC-66X

Jochen

Superlux.

Jochen

Weiß nicht, was das für eine Firma ist, keine Ahnung.

Jochen

Das ist auch super billig

Jochen

und klingt trotzdem super.

Jochen

Also eigentlich alles ganz toll. Ist natürlich nicht so gut

Jochen

verarbeitet wie die Beyerdynamic-Dinger,

Jochen

aber eigentlich

Jochen

sehr empfehlenswert und verwenden auch ganz viele Leute

Jochen

und das hat so ein Problem.

Jochen

Also was einem immer dazu gesagt wird, wenn Leute

Jochen

das benutzen,

Jochen

sagen sie so, ja, das ist total toll

Jochen

und eigentlich ideal,

Jochen

aber man muss so ein bisschen, es hat so ein paar

Jochen

Probleme, wie zum Beispiel normalerweise,

Jochen

also

Jochen

müsste man eigentlich mal ausholen,

Jochen

wo ist eigentlich der Unterschied zwischen

Jochen

dynamischen und Kondensatormikrofonen.

Jochen

Also

Jochen

nur mal so, um die Klammer aufzumachen,

Jochen

Wir machen die gleich wieder zu.

Dominik

Ich wollte da von der echten Folge hören.

Jochen

Also die meisten

Jochen

kleinen Mikrofone sind tatsächlich

Jochen

Kondensatormikrofone, weil man die deutlich kleiner

Jochen

bauen kann. Und der

Jochen

Unterschied ist eigentlich in der Bauart sozusagen,

Jochen

dynamische Mikrofone sind so ein bisschen wie ein umgekehrter

Jochen

Lautsprecher. Die funktionieren auch

Jochen

ohne,

Jochen

dass man da irgendwie,

Jochen

ohne dass die irgendwie selber aktiv sein müssen.

Jochen

Das heißt, man kriegt ein Signal

Jochen

raus, ohne dass das

Jochen

irgendwie selber irgendwas macht.

Jochen

Und das ist ganz praktisch und sie haben halt so als Charakteristik, sie sind unempfindlicher gegenüber Störgeräuschen und reagieren einfach so ein bisschen gutmütiger oft, kriegen nicht so feine Unterschiede hin und lösen nicht so fein auf wie jetzt ein Kondensatormikrofon.

Jochen

Automikrofone sind so ein bisschen anders, die sind nicht passiv, sondern da muss Strom dran sein, sonst funktionieren die gar nicht und da kommt dann halt aktiv ein Signal raus, das die dann halt erzeugen und das Problem dabei ist, dass wenn das, also man kann sie sehr klein bauen, das ist eigentlich schön, aber wenn sie sehr klein sind, dann je kleiner die sind, desto mehr muss man das Signal verstärken.

Jochen

dann natürlich auch wieder Rauschen

Jochen

reinbringt und so. Also es gibt auch

Jochen

sehr gute, sehr kleine Kondensatormikrofone, aber die werden

Jochen

dann halt sehr teuer, sehr schnell.

Jochen

Was man normalerweise

Jochen

macht, wenn man guten Klang haben möchte, ist halt, man nimmt

Jochen

dann halt Großmembran-Kondensatormikrofone,

Jochen

die halt dann schon mehr

Jochen

Signal, wo man halt weniger

Jochen

verstärken muss sozusagen.

Jochen

Das ist so das, was man in

Jochen

Studios verwendet für

Jochen

Sprachaufnahmen.

Jochen

Und

Jochen

so ein Ding habe ich ja auch umliegen, könnte man

Jochen

auch verwenden, aber man hat das normalerweise

Jochen

an so einem Arm und dann in so einer Spinne

Jochen

hängen und das ist

Jochen

so ein bisschen unhandlich, weil man

Jochen

irgendwie immer den gleichen Abstand einhalten

Dominik

muss dazu und so. Wenn du das nicht machst, dann

Dominik

steht das irgendwie vor dem Bildschirm und

Dominik

versperrt den ganzen Sichtvektor.

Dominik

Genau, also das ist alles so ein bisschen

Dominik

hmm.

Jochen

Daher mag ich das mit den Headsets eigentlich

Jochen

lieber,

Jochen

aber die klingen halt dann vielleicht nicht ganz

Jochen

so gut, aber auch schon ziemlich

Dominik

klasse. Und jetzt kommt der Hack und wir sind übrigens beim

Dominik

Python-Podcast, lieber Jochen.

Dominik

Ach ja.

Dominik

Naja, also

Jochen

der Witz ist eigentlich,

Jochen

also deswegen, warum ich das eigentlich erzähle, ist,

Jochen

man braucht, also die brauchen halt Strom,

Jochen

sonst funktionieren die nicht. Und

Jochen

Standard für Stromversorgung,

Jochen

man nennt das dann irgendwie Phantomspeisung,

Jochen

bei Kondensatormikrofonen ist halt irgendwie

Jochen

48,

Jochen

24, 48 Volt normalerweise,

Jochen

sage ich mal so. Es gibt aber auch

Jochen

24 Volt und es gibt sogar

Jochen

12 Volt. Und

Jochen

dieses HMC-66X,

Jochen

das klingt bei 48 Volt und 24 Volt,

Jochen

also funktioniert es zwar, aber es klingt schrecklich.

Jochen

Deshalb

Jochen

da muss man immer aufpassen. Da gibt es so ein paar Reviews

Jochen

unter denen, wenn man das

Jochen

irgendwo in einem

Jochen

Online-Shop sieht oder so.

Jochen

Oft ist dann so ein oder zwei dabei, die sagen so,

Jochen

es wird immer so gelobt, es klingt ganz

Jochen

scheußlich, ich verstehe das gar nicht.

Jochen

Wie kommen Leute auf die Idee, dass das gut ist?

Jochen

das klingt doch ganz, ganz, klingt doch

Jochen

total elend und

Jochen

ich fürchte, der Grund dafür ist meistens, dass die

Jochen

Leute das dann halt irgendwie an einem Audiointerface

Jochen

betreiben, das halt dann die falsche Phantomspannung hat

Jochen

sozusagen und dann geht es halt nicht richtig.

Jochen

Womit das gut funktioniert, ist

Jochen

halt 12 Volt Phantomspannung

Jochen

und was man halt

Jochen

tun kann, ist entweder man lötet sich da so einen Widerstand

Jochen

rein, das ist halt so eine beliebte Lösung.

Jochen

Jetzt wird es interessant.

Jochen

Aber für mich auch schon zu,

Jochen

das ist zu weit, das ist, nee,

Jochen

mach ich halt nicht.

Jochen

Ich bin dann in den einfachen Weg gegangen

Jochen

und habe dann so eine, man kann da

Jochen

irgendwie so eine Box zwischen

Jochen

das Mikrofoneingang

Jochen

von dem Audiointerface und

Jochen

das Headset schalten.

Jochen

Ja, das kostet auch nochmal 20 Euro oder so,

Jochen

keine Ahnung. Und dann halt auf 12 Volt

Jochen

Phantomspannung das runterriegeln.

Jochen

Oder da kann man das dann auch, in dieser Box

Jochen

kann man das irgendwie einstellen.

Jochen

Und ja, das habe ich dann halt benutzt und dachte mir

Jochen

so eigentlich, naja, selbst plus dieses

Jochen

Ding und plus den ganzen Kabelaufwand

Jochen

ist es immer noch für den Preis eigentlich

Jochen

ziemlich unschlagbar.

Jochen

was ich aber, und ich dachte immer,

Jochen

Wie teuer ist denn das?

Jochen

Das kostet 39 Euro oder so.

Jochen

Also ist echt nicht teuer.

Jochen

Und ich dachte

Jochen

immer, diese Kondensatormikrofone,

Jochen

die brauchen halt immer

Jochen

einen XLR-Anschluss,

Jochen

also dieses dreipolige

Jochen

Ding da, und

Jochen

ja, das ist halt, du brauchst halt

Jochen

immer ein eigenes

Jochen

Audio-Interface eigentlich.

Dominik

normalerweise hat man an seinem Computer nicht

Dominik

sofort oder als Standard

Dominik

ZLR-Anschluss.

Dominik

Genau.

Dominik

Und dann hast du dir was gebaut, was richtig toll ist.

Dominik

Nee, das hab ich auch gesehen.

Jochen

Das hab ich in diesem Sendegate-Forum gesehen.

Jochen

Ich hab da nix gebaut. Ich hab's auch wieder nur gekauft.

Jochen

Man kann das bauen auch selber, wenn man das mag.

Jochen

Aber ich hab's nicht gebaut. Ich hab's auch wieder nur gekauft.

Jochen

Die Idee kauft dir die Welt, wenn die dir gefällt.

Jochen

Ja, es ist...

Jochen

Also, wenn mir das jetzt Spaß machen würde,

Jochen

das selber zu löten oder so, aber das...

Jochen

Es macht keinen Spaß und ich kann's auch nicht.

Dominik

Jedenfalls hast du das Ding auf eine Klinke

Dominik

adaptiert und jetzt kannst du

Dominik

das tolle Headset sogar in dein Telefon stecken

Dominik

und kannst mit dem coolen Headset

Dominik

Podcasts aufnehmen über das Telefon.

Jochen

Genau, ich dachte immer, irgendwie

Jochen

an der Klinke gehen nur dynamische

Jochen

Mikrofone. Auch die meisten Mikrofone,

Jochen

die man über Klinke anschließt, sind dynamisch

Jochen

und die klingen halt nicht so gut.

Jochen

Und das

Jochen

stimmt aber gar nicht. Zum Beispiel ist es halt so,

Jochen

dass die meisten wirklich kleinen Mikrofone, also auch

Jochen

diese Dinge, die man sich so ans Hand steckt oder so,

Jochen

wir haben ja auch mal, am Anfang haben wir damit

Jochen

angefangen mit diesen Rode

Jochen

ich weiß nicht, wie man das ausspricht, Lavalier

Jochen

Lavalier, keine Ahnung, Mikrofon

Jochen

das sind auch üblicherweise Kondensatormikrofone

Jochen

und die kriegen ihre

Jochen

Phantomspeisung halt über die Klinke und da kommen halt

Jochen

so anderthalb Volt raus ungefähr

Jochen

und diese anderthalb Volt reichen halt für dieses

Jochen

HMC-Headset auch

Jochen

das funktioniert

Jochen

das heißt, man braucht eigentlich nur eine Klinke auf

Jochen

XLR-Adapter und dann halt nochmal

Jochen

ein Ding, was halt auch irgendwie dann

Jochen

das zusammenführt

Jochen

weil man halt ja nochmal die Trenden

Dominik

Kopfhörer. Wir stellen euch da eine

Dominik

ausführliche und detaillierte Liste

Dominik

in die Shownotes. Aber der Witz

Jochen

ist halt, also was ich jetzt habe, ist halt, man

Jochen

steckt dieses Headset halt in diesen Adapter,

Jochen

aus dem Adapter kommt Klinke, dann

Jochen

steckt man irgendwie die Klinke,

Jochen

die Klinke

Jochen

steckt man dann halt in eine Klinke

Jochen

auf Lightning-Adapter

Jochen

und dann steckt man diesen Adapter in

Jochen

halt ein Telefon zum Beispiel.

Jochen

Yay!

Jochen

Und es funktioniert tatsächlich.

Jochen

Und ich war letztens da mit

Jochen

im Park unterwegs. Das sieht so ein bisschen komisch

Jochen

aus.

Dominik

Also ich wollte dich noch fragen, du hast gestern ja

Dominik

aufgenommen, hast einen kleinen Talk gehalten über Poetry

Dominik

beim Pi DDF.

Dominik

Da warst du im Park wirklich?

Dominik

Weil ich habe kurz reingeguckt bei YouTube.

Dominik

Oder hast du deinen Hintergrund geblendet?

Jochen

Nee, da habe ich den Hintergrund verändert.

Jochen

Weil es gerade so ein bisschen chaotisch ist.

Dominik

Mit was machst du das? Mit OBS Studio?

Dominik

Was ist das denn? Das kenne ich gar nicht.

Dominik

Das ist so eine Software, da kann man das ganz cool mitmachen.

Jochen

Nö, das war der Zoom-Client

Jochen

und der macht das dann halt, da kann man das irgendwie einstellen.

Jochen

Ach na dann, okay.

Jochen

Ja, aber ich war tatsächlich mit dem

Jochen

Headset schon dann halt im Park und hab

Jochen

mit Leuten telefoniert und

Jochen

das Erste, was sie sagten, war so, oh, du klingst aber gut.

Jochen

Oh, ja, na dann.

Jochen

Hat sich das vielleicht gelohnt.

Jochen

Und das ist natürlich irgendwie,

Jochen

ich hätte gar nicht gedacht, dass sowas so ist.

Dominik

Also ich telefoniere auch immer im Park mit meiner Freisprechknopf,

Dominik

der auf dem Display ist, da steht dann

Dominik

Ton, Laut, Spreifwert.

Jochen

Ja, aber das funktioniert nicht so richtig gut.

Jochen

Vor allen Dingen, wenn es windig ist, ist es halt blöd.

Jochen

ich gehe dann ja auch manchmal in der Gegend rum

Jochen

und dann zum Beispiel, wo Leute sich

Jochen

regelmäßig beschweren,

Jochen

ist, wenn ich über die Rheinbrücke gehe, weil da ist es

Jochen

windig und es fahren Autos vorbei

Jochen

und da verstehen meistens

Jochen

Leute dann nichts mehr und sagen so, oh, das klingt aber schlecht

Jochen

und naja, muss man gucken, vielleicht das nächste Mal

Jochen

probiere ich das mit dem Headset, vielleicht geht das besser.

Jochen

Ja, okay, Challenge accepted.

Dominik

Challenge accepted. Und warum gehst du

Dominik

über die Rheinbrücke? Ja, weiß nicht,

Dominik

ich gehe da spazieren. Achso.

Dominik

Ja, meistens. Um telefonieren.

Jochen

Ja, ja, ja. Also meistens ist es halt so, wir sind halt im Hofgarten und dann kommt irgendwann die Ansage, ja, Steine ins Wasser werfen, dann müssen wir halt noch zum Rhein.

Jochen

Und dann gehen wir über die Rheinbrücke und dann unten zum Rhein und dann werfen wir Steine ins Wasser.

Jochen

Achso.

Jochen

Jo.

Jochen

Ah, wegen Steinen. Okay, jetzt verstehe ich.

Dominik

Da siehst du mal, werft der einen Stein für mich mit.

Jochen

Ja, genau. Also dieses Headset ist wirklich cool und was halt mit anderen wahrscheinlich gar nicht gehen würde, dass man das halt einfach so an ein Telefon anschließt oder so, das kann man damit machen und möglicherweise gibt es damit halt eine Möglichkeit, wenn man das jetzt noch irgendwie schaffen würde, irgendwie an Studio Link oder an Ultraschall beziehungsweise Reaper das anzudocken, dann könnte man Leuten einfach sagen, hier, nehmt diese Hardware, steckt das an eurer Telefon, setzt euch irgendwo hin, wo es eine Sichtverbindung zwischen eurem WLAN-Accesspoint und

Jochen

eurem Telefon gibt und

Jochen

benutzt dieses Headset und dann hat man da

Jochen

eine ziemlich gute Audio-Verbindung.

Jochen

Und das wäre ja eigentlich schon...

Jochen

Achso, und ja, was auch praktisch ist,

Jochen

wenn man das Zoom H6,

Jochen

das ist auch so ein Audio-Interface, wo man

Jochen

vier Headsets dranstecken kann,

Jochen

wenn man das verwendet, das kann auch

Jochen

12 Volt direkt Phantomspeisung.

Jochen

Also an dem Ding klingen die

Jochen

HMC-66X auch direkt gut.

Jochen

Was natürlich auch sehr praktisch ist.

Jochen

Das war mein erster Plan,

Jochen

das Ding einfach zu kaufen. Und dann habe ich festgestellt,

Jochen

geht nicht, weil alle Leute Audio-Interfaces

Jochen

kaufen, gerade wegen Corona.

Jochen

Ich glaube, wir brauchen jetzt

Dominik

einen Webshop für so Audio-Podcast-Hardware.

Dominik

Denn der haben wir

Dominik

gerade großzügig beworben.

Dominik

Vielleicht brauchen wir da irgendwie

Dominik

Affiliate-Things oder so.

Jochen

Ja, Moment, Moment, ich bin noch nicht mit der...

Dominik

Nein, okay. Wir machen aber gleich

Dominik

eine Chapter-Mark, ja? Also Leute, ihr wisst ja,

Dominik

ihr könnt die Chapter-Marks und die Sachen, die euch nicht so

Dominik

freuig sind, einfach überspringen und dann direkt aufs Frontend

Dominik

klicken. Wolltest du mal so als Hinweis...

Jochen

Ja, es gibt nämlich dann noch so ein bisschen mehr, wir sind ja jetzt auch mit, das hatten wir letztes Mal auch gemacht, oder benutzen wir ja immer, wenn wir Remote-Geschichten machen, Studiolink, und das knackste und knickste und so immer mal so ein bisschen und natürlich gibt es dann da so gewisse Lösungen, dass man das dann halt lokal so Double-Ender-mäßig irgendwie auch nochmal aufnimmt und die Spur hinterher irgendwie mitverwendet, aber das ist alles schwierig und dann gerät das von der Zeit her irgendwie so aus Synchronisation, alles nicht so schick.

Jochen

dann haben, meistens

Jochen

entschließt man sich dann, dann lebt man halt mit den Knacks an

Jochen

und, aber das klingt

Jochen

schon relativ furchtbar und jetzt haben wir halt hier

Jochen

eine Beta-Version von Studio Link

Jochen

und die knackst

Jochen

praktisch gar nicht, jedenfalls

Jochen

Ja, wir werden es hören. Wir werden es dann hören, aber

Jochen

jedenfalls nicht, dass ich das jetzt irgendwie

Jochen

bisher

Jochen

bemerkt hätte, also für mich

Jochen

klingt das momentan alles sauber

Jochen

und mal schauen, weil das ist

Jochen

natürlich das Problem, also eigentlich ist es natürlich auch doof, dass wir hier

Jochen

WLAN haben, müsste eigentlich ein Kabel liegen, aber

Jochen

das ist halt alles irgendwie so.

Jochen

Nee, du hast kein Kabel?

Jochen

Ich habe ein Kabel.

Jochen

Was ich vielleicht temporär machen könnte, ich kann einfach ein Kabel

Jochen

dann halt immer hier durch die Tür legen, aber das Problem

Jochen

ist ja, der Wintergarten, der ist einfach

Jochen

sozusagen getrennt, das ist eine

Jochen

Außenmauer dazwischen und ich weiß nicht, wie ich

Jochen

dieses Kabel durch die Außenmauer kriege, das geht halt einfach

Jochen

irgendwie nicht. Bohrmaschine.

Jochen

Ja, gut.

Jochen

Ja, wo wir wieder beim Löten wären und so, das ist

Dominik

nicht so mein... Also ich habe hier tatsächlich

Dominik

in die Etage ein LAN-Kabel

Dominik

gelegt.

Jochen

Ja, es gibt bestimmt irgendeine Lösung

Jochen

und wahrscheinlich sollte ich da auch mal

Jochen

was tun, weil WLAN ist auch echt

Jochen

tatsächlich nicht so geil, muss ich sagen.

Dominik

So richtig mit in der Wand und Dose und so.

Dominik

Ja, das ist schon viel cooler.

Dominik

Das war nicht Bohrmaschine, das war so

Dominik

ein Pressstemmhammer.

Dominik

Da musste man so die Wand aufruppeln

Dominik

und dann in das Kabel rein und dann verspachteln und so.

Dominik

Klingt alles sehr schrecklich.

Dominik

Was zum Anfassen.

Jochen

Ja, okay, lass mal überlegen, ist da noch irgendwas mit …

Dominik

Da steht noch Zencast da drin auf der …

Jochen

Ach so, ja, das wäre halt auch noch eine andere Möglichkeit gewesen, wie man das jetzt macht, ohne Studiolink, aber weiß ich gar nicht, also das ist halt, also interessant finde ich es deswegen, weil es einen ganz anderen Ansatz verfolgt, ja, während wir …

Jochen

Was ist das?

Jochen

Das ist sowas ähnliches wie Ultraschall sozusagen, also die Software, mit der wir das Ganze aufnehmen.

Jochen

Das ist, ach so.

Jochen

Nicht, dass es halt

Jochen

eine Applikation ist, die nativ läuft, sondern

Jochen

das läuft alles im Browser.

Jochen

Und

Jochen

alle Leute

Jochen

connecten sich halt zu einem Server sozusagen und dann

Dominik

Weil das ja so gut klappt mit dem

Dominik

Browser und Audio und Video, wie man ja

Dominik

jetzt an GT und so Dinge... Ja, es gibt da so ein paar komische

Jochen

Geschichten, also das zum Beispiel, das hat mich dann gewundert,

Jochen

als ich das dann mal ausprobiert habe, dass irgendwie alles

Jochen

geht dann da auf 44,1

Jochen

Kilohertz und das ist ja sehr unüblich.

Jochen

Also normalerweise hast du ja immer Audio-Hardware,

Jochen

Das ist immer alles auf 48 Kilohertz.

Jochen

Und das ist natürlich dann seltsam.

Jochen

Dann muss man das irgendwie umsamplen.

Jochen

Und ich weiß nicht.

Jochen

Aber Leute verwenden das und finden das gut.

Jochen

Und ich habe es jetzt tatsächlich noch nicht für einen Podcast.

Jochen

Ich habe es jetzt mal ausprobiert.

Jochen

Ich fand es auch super.

Jochen

Und ich finde die Idee halt total toll.

Jochen

Eigentlich wäre es natürlich schon saukool,

Jochen

wenn man das alles im Browser machen könnte

Jochen

und nicht noch extra Software installieren müsste

Jochen

und das halt automatisch überall funktioniert.

Jochen

Aber gerade sowas wie, ich habe hier ja auch

Jochen

so ein Mischpult, das geht alles nicht.

Jochen

Sondern es ist halt so, alle verbinden sich halt mit

Jochen

ihrem Ding halt irgendwo hin und dann

Jochen

werden dann auch

Jochen

mehrere Spuren aufgenommen, aber

Jochen

du hast halt nicht die Möglichkeit, das nochmal

Jochen

durch ein eigenes Mischpult zu schleifen oder so

Jochen

und dann da so zu regeln.

Jochen

Tragisch, tragisch, tragisch.

Jochen

Ja, natürlich, wer braucht das auch?

Jochen

Ja, ja, ich verstehe schon.

Jochen

Nehmen wir mal an,

Jochen

zum Beispiel eine Geschichte, für die man das schon braucht,

Jochen

ist halt, wenn man jetzt einen Livestream hätte.

Jochen

Ja, und dann hat man

Jochen

so Dinge drin wie

Jochen

Audiokompression oder so, die man dann halt

Jochen

möglicherweise hoch und runter

Jochen

regeln will und vielleicht

Jochen

noch irgendwie so eine, weiß ich nicht,

Jochen

eben so ein Soundboard und

Jochen

weiß der Teufel. Und das ist dann alles

Jochen

ziemlich, das geht dann alles nicht mehr so richtig.

Jochen

Naja. Ja, naja gut.

Jochen

Okay, also ich weiß es nicht.

Dominik

In dem Fall das, dann überlegen wir uns das nochmal.

Dominik

Was hältst du eigentlich davon, wenn wir diese Metadiskussion,

Dominik

diese Ausrufung dann an das Ende der Folgen

Dominik

stellen oder schneiden, damit

Dominik

unsere Hörer, die sich auf das Frontend und Python

Dominik

freuen, nicht, wie lange?

Dominik

20 Minuten?

Dominik

20 Minuten schon.

Dominik

Ich habe nicht genau

Dominik

gestoppt. Nein, also ich

Dominik

mag das und ich finde das super, aber es ist halt

Dominik

off-topic und schreibt uns doch mal

Dominik

an hallo-at-python-podcast.de

Dominik

was ihr davon

Dominik

haltet, ob ihr gerne vorher so

Dominik

Sachen hört oder einfach sagt, nee, dann lieber vorher

Dominik

das Python-Thema und am Ende dann mache ich einfach aus

Dominik

oder ich höre das sehr gerne und bitte

Dominik

weiter, die ganzen Meta-Sachen.

Dominik

Ja, gut.

Jochen

Sollte man vielleicht einen Schluss packen. Okay, alles klar.

Jochen

Jochen, welche von den

Dominik

Videokonferenz-Tools

Dominik

nimmst du eigentlich am liebsten? Also wenn wir jetzt schon bei dem Thema sind.

Dominik

Das ist ja gerade ganz aktuell.

Jochen

Weiß ich nicht. Also Zoom hat mir jetzt

Jochen

tatsächlich von der Anwendung, also man hört immer ganz schreckliche

Jochen

Geschichten davon.

Jochen

Sicherheitsrisiken und

Jochen

Private und

Jochen

Ja, also genau. Also was Security

Jochen

hier angeht und diese Geschichten ist Zoom

Jochen

natürlich hat da eine ziemlich

Jochen

vernichtende Bilanz

Jochen

so bisher.

Jochen

Wenn man das bedient, ist es

Jochen

aber tatsächlich relativ nett, so fast

Jochen

am nettesten. Also ich habe Zoom

Dominik

mal auf dem Windows-Rechner angemacht und das hat mir

Dominik

direkt Dinge in die Registry reingeschrieben

Dominik

und Rechte geklaut, die

Dominik

ich niemals erlaubt hatte, dass es hätte

Dominik

haben sollen. Und es hat auch

Dominik

vor allen Dingen nach Beenden der Applikation nicht

Dominik

alles so entfernt, wie man sich das

Dominik

vorstellt. Das fand ich ehrlich gesagt ein bisschen frech.

Dominik

Also was ich sehr cool finde und auch fand, ist

Dominik

BigBlueButton.

Jochen

Das habe ich tatsächlich selber noch nicht ausprobiert.

Dominik

Das finde ich tatsächlich bisher am

Dominik

schönsten. Das hat auch so verschiedene Räume. Das werden wir jetzt

Dominik

ein Python-Camp,

Dominik

das am Morgen stattfindet,

Dominik

übermorgen,

Dominik

wahrscheinlich benutzen.

Dominik

Das ist sehr cool. Das ist auch Open-Source.

Dominik

Ja, also falls ihr uns noch

Dominik

hört, ich weiß nicht, wann wir die Folge wieder veröffentlicht bekommen,

Dominik

ein Python-Camp ist übermorgen.

Jochen

Das ist genau, das ist übermorgen.

Jochen

Könnte knapp werden. Wir haben ja jetzt so ein bisschen

Jochen

Erfahrung schon, der PIDDF

Jochen

Sprint war ja auch

Jochen

virtuell. Das hat eigentlich ganz gut geklappt.

Jochen

Da haben wir Jetsi verwendet.

Jochen

Das war jetzt auch nicht so

Jochen

schlecht.

Dominik

Ja, Jetsi ist gut, wenn es bis zu 10, 15,

Dominik

20 Leuten ist, das ist ganz gut. Also sehr gut sogar.

Dominik

Ja, also

Jochen

Zoom haben wir jetzt bei dem letzten

Jochen

PIDDF-Treffen benutzt.

Jochen

Das fand ich ehrlich gesagt sogar ein bisschen

Jochen

angenehmer.

Jochen

Aber so viel nimmt sich das

Jochen

alles nicht. Und dann ansonsten, was ich halt

Jochen

häufig benutze, ist halt

Jochen

Teams. Eher so, weil es halt

Jochen

muss.

Jochen

Das benutzt man eigentlich

Jochen

fast nie, weil man es nicht ausgesucht hat.

Jochen

Sondern das ist halt irgendwie dann so

Jochen

die...

Jochen

Ich dachte, das wäre bei Zoom so.

Jochen

Ja, ich glaube,

Jochen

die Idee dabei, das jetzt bei PyTDF

Jochen

zu verwenden, war auch, dass

Jochen

Marc André

Jochen

wollte halt ausprobieren, was für unterschiedliche

Jochen

Dinge, wie unterschiedlich funktionieren.

Jochen

Auch im Hinblick auf die Europiten, die er da

Dominik

Ja, EuroPython wird Zoom nehmen.

Dominik

Ja?

Dominik

Das ist schon fest, ja.

Dominik

Ach so, das ist schon fest, okay.

Dominik

Die haben sich auf Zoom geeinigt, ja.

Dominik

Ja, naja.

Dominik

Also GSC hat es nicht geschafft wegen dem Bug in Firefox,

Dominik

das tatsächlich ja noch nicht behoben ist

Dominik

und weil es vor allen Dingen sich nicht so gut skalieren lässt.

Dominik

BigBlue-Platten ist rausgeflogen,

Dominik

weil das ja mehrere Server bräuchte dann

Dominik

oder viele, die vom Einrichtungsaufwand her ein bisschen höher sind.

Dominik

Ja, da blieb ja nicht mehr so viel übrig.

Dominik

Ja, keine Ahnung.

Jochen

Also für mich ist diese Frage einfach auch noch nicht geklärt.

Jochen

Das ist halt ...

Dominik

Der Chat von EuroPython geht übrigens über Discord.

Dominik

Ach, okay.

Dominik

Weil er gesperrt werden soll, weil der geflutet worden war

Dominik

zwischendurch mal von ein paar bösen Buben.

Dominik

So was, so was.

Jochen

Naja, also wie gesagt, Teams funktioniert auch so halbwegs okay,

Jochen

aber ist ansonsten irgendwie nicht so meine favorisierte Software

Jochen

für diesen Kram.

Jochen

Was ich höre, was super sein soll,

Jochen

ist Meet.

Jochen

Also die Google

Jochen

Geschichte. Habe ich aber selber auch noch nicht

Jochen

probiert. Hangouts kenne ich. Habe ich früher immer gemacht.

Jochen

Ist dasselbe.

Jochen

Hangouts haben sie umgestellt auf Meet.

Jochen

Hangouts haben sie geschlossen.

Dominik

Es geht jetzt nur noch über Meet und ist eigentlich ganz gut.

Dominik

Ich nutze auch öfter mal Whereby.

Dominik

Ja, Whereby finde ich auch gut.

Dominik

Das ist auch tatsächlich von der Qualität her in Ordnung.

Dominik

Aber das ist halt, ab vier Leuten musst du

Dominik

Premium Account bezahlen.

Jochen

Ja, und ansonsten

Jochen

nicht mehr. Gut, es gibt noch Skype und sowas, aber das ist alles,

Jochen

das verwendet eigentlich auch fast niemand mehr.

Dominik

Da nimmt das noch jemand Skype, ist tot, oder?

Dominik

Ja. Aber man kann glaube ich sogar Videokonferenzen

Dominik

in Slack machen, habe ich letztens gehört.

Jochen

Eine Sache, die ich super finde,

Jochen

tatsächlich, das benutze ich privat eigentlich.

Jochen

Ich habe noch nicht erlebt, dass das jemand irgendwie

Jochen

in so einem

Jochen

Berufskontext verwendet hat, aber privat.

Jochen

WhatsApp-Videocall.

Jochen

Naja, gut.

Jochen

Also, okay,

Jochen

das sind halt...

Jochen

Das habe ich tatsächlich, glaube ich,

Jochen

noch nie gesehen. Aber

Jochen

FaceTime, Apple.

Jochen

Und das funktioniert auch sehr, sehr gut.

Jochen

Also gerade in Situationen, wo man halt

Jochen

mit mehreren Leuten dann halt um so

Jochen

ein Gerät rumsitzt, ist das eigentlich ziemlich klasse.

Jochen

Weil das dann halt auch so, es hat auch so

Jochen

nette Effekte, dass dann die Leute, die reden,

Jochen

werden dann halt größer und

Jochen

angezeigt und solche

Jochen

Sachen. Und das ist halt

Jochen

der Client auf den

Jochen

iOS-Geräten ist halt super.

Jochen

Es gibt ja auch keine anderen.

Dominik

Wir wissen ja mittlerweile, dass du

Dominik

diese Firma mit dem Apfel da ganz gerne magst.

Jochen

Ja, tatsächlich, also das funktioniert einfach ziemlich gut. Kann man aber auch eben höchstens dann verwenden, wenn Leute eben zumindest irgendein IOS-Gerät da haben oder irgendwie Apple-Hardware, ja, also insofern.

Dominik

Ja, also das passiert übrigens, liebe Hörerinnen und Hörer, wenn zwei Backender sich über Frontend unterhalten in einer Folge.

Jochen

Dann reden wir über Videokonferenzsysteme.

Dominik

Ich wollte tatsächlich sagen, das Modul aus der Standardbibliothek,

Dominik

was wir noch vorstellen wollten, das wird Unitest Smog

Dominik

sein, machen wir tatsächlich diesmal am Ende

Dominik

und fangen jetzt tatsächlich

Dominik

an, ein bisschen über das Thema Frontend zu reden, oder?

Dominik

Ja.

Dominik

Alles klar, können wir gerne machen.

Dominik

Ja, News?

Dominik

Na komm, News.

Dominik

Warte mal, machen wir noch die News.

Dominik

News aus Python jetzt.

Dominik

Also jetzt geht's los, Leute, ihr dürft jetzt einschalten.

Jochen

Ja, äh, was hatten wir denn da

Jochen

so, äh, also

Dominik

Du hast auch geschrieben, Language Creators Conversation

Dominik

Mhm, das war irgendwie

Dominik

ein Panel. Achso, das war das Panel

Dominik

mit Guido und, äh,

Dominik

dem Typen von Rust und, äh,

Dominik

Nee, nicht Rust, äh,

Jochen

ja, Larry Wall von Pearl,

Jochen

dann James Gosling von

Jochen

Java und, ähm,

Jochen

äh, André Heilsberg,

Jochen

äh, der hat

Jochen

Turbo Pascal in den 80ern mal entwickelt,

Jochen

äh, auf Delphi und sowas.

Jochen

Ja, der ist

Jochen

so, oh ja, da müsste ja jetzt jemand mit so einem

Jochen

Krückstock und so ein uralter Greis,

Jochen

der ist ja auch noch gar nicht so alt.

Jochen

Und der hat jetzt auch irgendwie,

Jochen

war da eine der treibenden,

Jochen

oder vielleicht die treibende

Jochen

Kraft hinter TypeScript, also

Jochen

ganz interessant.

Jochen

Ja, und

Jochen

ich weiß gar nicht, in welchem Rahmen diese

Jochen

Veranstaltung da

Jochen

gelaufen ist. Ich hab's

Jochen

halt eh dann als Podcast quasi

Jochen

gehört. Die Audioqualität ist leider ziemlich

Jochen

schrecklich. Also ich benutze dann immer an meinem Podcast-Player

Jochen

so ein Sideload-Ding. Das heißt,

Jochen

ich sage

Jochen

in meinem Browser

Jochen

auf dem Telefon Sideload

Jochen

an meinen Podcast-Player und dann leert es das

Jochen

Video runter, schmeißt das Video weg und

Jochen

das Audio geht dann halt als Podcast-Episode in

Jochen

meinen Player rein. Das heißt, ich habe das Video

Jochen

nicht gesehen, aber das Audio gehört.

Jochen

Und das ist natürlich ein bisschen,

Jochen

ja, das ist oft, auch bei vielen Talks

Jochen

ist das Audio oft relativ schlecht.

Jochen

Entweder muss ich dann die Lautstärke sehr hoch drehen

Jochen

und man versteht halt manche Sachen.

Jochen

Ja, also

Dominik

Wir wissen ja, du bist ein bisschen picky, was das angeht.

Jochen

Ja, gut, kann sein, aber das ist halt auch

Jochen

das ist der Fluch, wenn man sich damit beschäftigt,

Jochen

dass man das dann plötzlich hört, wenn es nicht gut ist.

Jochen

Naja, aber das ist wirklich schrecklich, das war teilweise

Jochen

kaum zu verstehen, weil so viele fiese

Jochen

Nebengeräusche dabei waren.

Jochen

Aber inhaltlich sehr interessant, also

Jochen

ich meine, das ist natürlich auch

Jochen

total toll, dass man da mal irgendwie

Jochen

halt so zumindest vier der

Jochen

wichtigsten

Jochen

ja, Entwickler

Jochen

von Programmiersprachen, die halt das, was wir hier so

Jochen

tun, also einen großen Teil von dem, was Leute so

Jochen

machen, halt wesentlich geprägt haben,

Jochen

halt dann die ein oder zwei Mal alle zusammensitzen und

Jochen

dann halt darüber reden, wie sie das so sehen,

Jochen

was so diverse Dinge angeht und das

Jochen

war schon sehr interessant.

Jochen

Und ja,

Jochen

kann ich nur empfehlen, sich das mal anzuhören.

Jochen

Es

Jochen

ist toll, ja.

Jochen

Denkt man.

Dominik

Habe ich noch nicht geschafft, tatsächlich reinzuhören.

Jochen

Ja, also ich weiß nicht,

Jochen

ob es da irgendwas gibt, was man da,

Jochen

naja, muss man sich einfach mal anhören.

Jochen

Also das fand ich, also als

Jochen

Geschichte, die jetzt gerade passiert ist, die man sich mal

Jochen

angucken kann, irgendwie sehr nett.

Jochen

Ansonsten, weiß ich nicht,

Jochen

was gab es noch alles für News-Geschichten?

Dominik

Django 1.1 ist End of

Jochen

End of Life, ja, das ist auch

Jochen

dass das

Jochen

irgendwann passieren wird, ist klar, aber

Jochen

jetzt ist tatsächlich die letzte Python 2

Jochen

unterstützende Django-Version

Jochen

weg. Das heißt, Python 2 ist

Jochen

wirklich auch bei Django so

Jochen

endgültig raus.

Jochen

Das heißt, ja, also wenn man da noch

Jochen

irgendwie auf so einer Longtime

Jochen

Support-Version gesessen hat,

Jochen

dann ist jetzt auch mal Zeit, da irgendwie was dran zu machen.

Jochen

Eine andere

Jochen

Geschichte war noch, dass ich verwende meistens

Jochen

PyTest statt dem Unit-Test-Modul

Jochen

für, also Unit-Test-Mock

Jochen

für Mocks, aber für

Jochen

die normalen Tests, also

Jochen

eher PyTest

Jochen

weil ich das angenehmer

Jochen

finde, also weil bei Unit-Test gibt es so ein paar

Jochen

also bei einem Unit, wenn man

Jochen

Test-Case-Klasse zum Beispiel aus dem Unit-Test-Modul

Jochen

verwendet, so ein paar Dinge, die ich so ein bisschen

Jochen

komisch finde, wie halt diese

Jochen

Camel-Case-Notation, das kommt halt alles auch so ein bisschen

Jochen

ich glaube, das ist halt auch irgendwie sehr inspiriert

Jochen

von JUnit und

Jochen

das ist halt

Jochen

so ein bisschen komisch, das hinzuschreiben

Jochen

ich meine, man gewöhnt sich zwar auch dran, aber

Jochen

es ist irgendwie

Jochen

und PyTest hat halt eine sehr

Jochen

schicke Art, wie man Fixtures halt

Jochen

definieren kann. Das heißt, wie man sozusagen

Jochen

die temporäre Testdaten,

Jochen

die man sich dafür generiert, um halt einen Test ausführen

Jochen

zu können, wie man die halt

Jochen

so baut, dass sie für die Fixtures

Dominik

passen und nicht für die reale Welt.

Jochen

Ja, genau. Und die kann man auch schön

Jochen

verschachteln und aufeinander abhängen lassen und so.

Jochen

Und das funktioniert eigentlich ganz,

Jochen

ist halt nett. Und dass man halt irgendwie

Jochen

direkt Asteroid verwendet und nicht irgendwie

Jochen

Methoden, die man

Jochen

dann aufspielt.

Jochen

Ja, weil man halt bei diesen

Jochen

Methoden sieht man nie so direkt, was passiert. Bei dem Assert

Jochen

ist halt klar, dass da nicht noch irgendwie versteckt

Jochen

was schief gehen kann, weil da ist nichts mehr.

Jochen

Und das ist halt, und

Jochen

ja, also insofern PyTest

Jochen

mag ich durchaus

Jochen

lieber, aber

Jochen

das Projekt hat irgendwie so auch

Jochen

ein bisschen eine unruhige Fahrbasis.

Jochen

Es gab da irgendwie

Jochen

vier Maintainer und jetzt sind drei davon weg.

Jochen

Oh.

Jochen

Ja. Das ist viel.

Jochen

Ja. Das sind 75%.

Jochen

Das sieht nicht so gut aus, ja.

Jochen

und keine Ahnung.

Jochen

Wird das geforkt?

Dominik

Ja, keine Ahnung. Vielleicht gibt es dann nicht so etwas anderes.

Dominik

Vielleicht, aber

Jochen

für mich ist es halt blöd, weil

Jochen

jetzt, oder ich meine für alle,

Jochen

es ist insgesamt halt blöd, weil jetzt muss man sich

Jochen

natürlich überlegen, okay, hm, was macht man denn jetzt?

Jochen

Naja, ich hoffe mal,

Jochen

dass sich das alles irgendwie

Jochen

zum Guten wendet, aber

Jochen

das ist natürlich so ein Problem generell,

Jochen

bei Open Source-Geschichten.

Jochen

Wie

Jochen

stellt man das eigentlich sicher, dass so ein Projekt

Jochen

nicht irgendwie plötzlich kaputt

Jochen

geht an irgendwas, ne? Oder

Jochen

Ja, dann meine ich

Dominik

einige Sachen so ein bisschen nervig. Ich habe ja

Dominik

PyEnv auch sehr lieb gewonnen, eigentlich.

Dominik

Auch von dir hast du ja den

Dominik

schönen Tipp gegeben und das habe ich dann auch auf Windows

Dominik

zum Laufen gebracht, tatsächlich. Das ist

Dominik

aber sehr schrottig in Visual Basic implementiert.

Dominik

Diese Windows-Variante und

Dominik

war nicht so super maintained.

Dominik

Ich habe es jetzt aber hinbekommen, indem ich mir

Dominik

einzelne, unbeantwortete Pull-Requests

Dominik

gezogen habe, die Funktionalität so wiederherzustellen,

Dominik

dass man damit einigermaßen arbeiten kann.

Dominik

Aber ja, sowas ist halt ein bisschen ein Gefrickel.

Dominik

Ja, aber ich würde sagen,

Dominik

News hast du noch was?

Dominik

Also außer, dass jetzt alles online ist,

Dominik

was wir schon wissen.

Jochen

Ja, ansonsten, ich habe hier noch einen Punkt

Jochen

mir aufgeschrieben, weil das halt auch

Jochen

vielleicht für andere interessant ist.

Jochen

Es gab ein paar Artikel zu

Jochen

Django-Architektur.

Jochen

Ich weiß nicht, ob wir dieses Fass aufmachen

Jochen

wollen. Lassen wir es auch einfach zu.

Jochen

Du meinst für heute?

Jochen

Ja, weil wir jetzt eh schon

Dominik

FAD-Models und sowas. Genau, genau, genau.

Jochen

Das wäre sozusagen Service Layer und dieser ganze

Jochen

Kram.

Dominik

Ja, wir wollten unbedingt dringend drüber reden.

Dominik

Also was war eigentlich,

Dominik

wann ist eigentlich das Django-Meetup Cologne?

Dominik

Bitte, ey.

Jochen

Das war schon, das war jetzt glaube ich am Dienstag.

Jochen

Oh, dann habe ich es verpasst.

Jochen

Ja. Du auch?

Jochen

Ich auch, aber ich konnte Dienstag halt nicht.

Jochen

Ja, ich auch nicht.

Jochen

Ja.

Jochen

Tja, so ist das.

Jochen

Ich würde sagen, das verschieben wir mal auf irgendeine Django

Jochen

Jango-Folge?

Jochen

Wir reden jetzt übrigens über Django

Jochen

Backend und JavaScript

Jochen

Frontend. Ja.

Jochen

Ja. Genau.

Jochen

Wir sind beim Thema angekommen, Leute.

Dominik

Unglaublich. Super, dass ihr noch da seid.

Jochen

Manchmal dauert das halt so ein bisschen, da muss man sich auch

Jochen

die Zeit nehmen, da auch mal irgendwie

Dominik

Möchtest du jetzt unseren Hörern

Dominik

vorschreiben, wie sie unseren Podcast

Dominik

hören sollen?

Jochen

Nein, da gibt es ja dann die Kapitelmarken

Jochen

und da kann man sich das dann ja so

Dominik

Also Leute, Kapitelmarken gehen so, ihr klickt

Dominik

so lange auf weiter, bis ihr das hören wollt

Dominik

was ihr hören wollt oder auf zurück, um es

Dominik

immer nochmal zu hören, was euch besonders interessiert

Dominik

habt. Ihr könnt sogar bei bestimmten Podcasts

Dominik

auf Dauerschleife setzen

Dominik

und zum Einschlafen

Dominik

benutzen. Genau

Jochen

So, ja, also

Jochen

das, wie

Jochen

kamen wir eigentlich auf diese Frontend-Geschichte?

Jochen

Wie sind wir eigentlich auf den Hund gekommen, sozusagen?

Jochen

Was ist,

Jochen

oder was ist dein...

Dominik

Ja, also wir entwickeln ja relativ viel

Dominik

Web-Zeugs und

Dominik

auch Dango natürlich, oder

Dominik

Flask, aber hauptsächlich Dango.

Dominik

Und

Dominik

das muss man ja, wenn man nicht die Dango-eigene

Dominik

Template-Engine benutzen möchte, was man natürlich machen kann

Dominik

für so grundsätzliche HTML-Dinge

Dominik

mit CSS und ein bisschen Bootstrap vielleicht,

Dominik

funktioniert das ja wunderbar.

Dominik

Aber wenn man so ein bisschen größeres Projekt machen will, dann ist es halt häufig so, dass man Django mit einem Frontend benutzen möchte, einem Framework. Da ist dann Vue drin oder React oder Angular und Django wird oft noch ohne Kopf, also Headless benutzt und dann per APIs angesprochen.

Dominik

Und da gibt es immer so ein paar Fallstricke, wie man das implementiert und was da überhaupt alles dazu gehört und worüber redet man da überhaupt, was heißt denn der ganze Quatsch und diese ganze JavaScript-Welt ist ja gerade für Python-Entwickler erstmal so ein bisschen ein Buch mit sieben Siegeln.

Dominik

Also ja, es gibt ja einige Backends, die sagen, oh Frontend, aber wenn man da so ein bisschen drin ist, merkt man so, oh, das ist gar nicht so einfach, wie man früher vielleicht dachte, sondern das ist tatsächlich ein ganz schöner Stack.

Dominik

Und da muss man auch ganz schön was können.

Dominik

Das ist ganz schön was wert, wenn man ein guter Frontendler ist.

Dominik

Und wenn man irgendwann mal diese Full-Stack-Richtung möchte,

Dominik

dann muss man das mit Sicherheit auch mal

Dominik

zumindest so gesehen haben,

Dominik

dass man weiß, was man da tun könnte.

Dominik

Und vor allen Dingen

Dominik

muss man das Frontend ja

Dominik

auch irgendwann mit seinem Backend wieder zusammenschnüren können.

Dominik

Das heißt, man muss zumindest ja

Dominik

dann die Schuhe zubinden und das irgendwie auf den Server packen,

Dominik

dass das dann auch beim Kunden

Dominik

oder bei einem selber auf dem Server irgendwie rennt

Dominik

und nicht wieder auseinanderfällt.

Dominik

Und wie man das alles macht, das wäre doch eigentlich mal ganz interessant,

Dominik

so ein bisschen zu besprechen.

Jochen

Ja, genau.

Jochen

Bei mir ist es so,

Jochen

vor allen Dingen, dass ich schon immer mal View angucken wollte

Jochen

und jetzt kam dann irgendwie so ein Ding vorbei.

Jochen

Ich habe mich dann in diversen View-Meetup-Gruppen angemeldet,

Jochen

aber da ist dann irgendwie nichts passiert.

Dominik

Die Anmeldung ist immer das Wichtigste. Ich habe auch so mit auf Gruppe.

Dominik

Da melden sich mir ganz viele Leute an, die kommen aber nie.

Dominik

Ja.

Dominik

50 Leute ist für bezahlte Leute

Dominik

die Grenze, die man erreichen darf

Dominik

an Anmeldungen,

Dominik

bevor es noch teurer wird.

Dominik

Und ja, ich habe halt wirklich 50 Leute

Dominik

in der Gruppe drin, das füllt sich immer wieder auf. Also wir machen

Dominik

Computerspiele und so.

Dominik

Und es sind drei Leute immer da. Drei.

Jochen

Ja, genau. Also das

Jochen

passierte nicht, sondern dann gab es irgendwann so den

Jochen

irgendwie diese Gruppe ist nicht mehr

Jochen

mein Talent, möchtest du das nicht übernehmen, dann habe ich dann einfach

Jochen

irgendwie, ohne darüber nachzudenken,

Jochen

einfach auf ja, warum nicht, geklickt.

Jochen

Und jetzt muss ich mal überlegen, was ich damit mache, aber ich wollte ja

Jochen

sowieso Vue lernen, also das wäre auch noch so eine Idee,

Jochen

dass man das eventuell, das wäre einfach eine virtuelle

Jochen

Vue-Django,

Jochen

weiß ich nicht, oder Gruppe draus machen,

Jochen

wo man halt vielleicht mal so ein bisschen

Jochen

interaktiver versuchen könnte,

Jochen

rauszukriegen, wie man das Ganze so benutzt.

Jochen

Und

Jochen

ja, muss man mal überlegen, aber das wäre halt

Jochen

auf jeden Fall eine Möglichkeit.

Jochen

Aber Vue ist sowieso

Jochen

also aus diversen Gründen das, was

Jochen

ich mir jetzt mal demnächst näher angucken

Dominik

möchte. Also ich finde das so, diese Komponenten

Dominik

finde ich sehr intuitiv, schön.

Jochen

Das hast du aber auch bei allen, das hast du

Jochen

eigentlich inzwischen, also das ist

Jochen

keine... Also ich muss gestehen,

Dominik

ich habe mir Angular nur so ein bisschen angeguckt und

Dominik

React habe ich noch gar nicht gesehen, aber

Dominik

ich finde das mit Vue, die Komponenten hervorragend.

Dominik

Vielleicht erzählen wir

Dominik

erstmal so die, was das überhaupt ist, was das überhaupt macht,

Dominik

was das denn so ein Frontend-Framework oder?

Dominik

Ja, ja genau.

Dominik

Also gerade für uns Price-Entwickler ist das erstmal so ein bisschen

Dominik

Overhead, ne? Man installiert sich dann

Dominik

über NPM oder

Dominik

wie auch immer, also Node.js, was man da macht,

Dominik

dann dieses Paket von Vue und startet

Dominik

dann mit Ucreate ein Projekt

Dominik

und es werden erstmal 20.000

Dominik

Pakete aus dem

Dominik

Repositorium gezogen und als Modul

Dominik

irgendwo hingepackt.

Jochen

Ja, das ist halt, das ist so ein bisschen JavaScript, ne?

Jochen

Das gibt's halt keiner Standard-Bibliothek

Jochen

und dann muss halt

Jochen

irgendwie alles an Abhängigkeiten

Jochen

bis ganz runter geholt werden, was man

Jochen

irgendwie brauchen könnte.

Jochen

Das ist schon, ui.

Jochen

Naja, so ist

Jochen

es halt. Ich kann jetzt auch

Jochen

nichts mehr dran machen. Aber

Jochen

also die Unterschiede, ich glaube,

Jochen

also die drei großen,

Jochen

so eben Vue, React, Angular,

Jochen

oder ich würde eher sagen, React ist das größte

Jochen

Ding zur Zeit wahrscheinlich.

Jochen

Angular und dann Vue oder wie auch

Jochen

mal, ist ja auch egal, die kann man alle benutzen,

Jochen

die sind alle gut und

Jochen

so wahnsinnig groß sind

Jochen

die Unterschiede ja jetzt gar nicht.

Jochen

Es ist nur so, dass für mich

Jochen

ist Vue deswegen interessanter,

Jochen

weil halt es nicht irgendwie

Jochen

sozusagen das

Jochen

Spiel, dass das Projekt irgendwie

Jochen

von einer Firma ist, sondern es ist halt

Jochen

sozusagen unter den dreien das einzige

Jochen

Open-Source-Projekt in dem Sinne.

Jochen

Weil ich meine, klar, natürlich ist auch Angular

Jochen

und React ist irgendwie Open-Source in dem Sinne, dass es halt

Jochen

sehr gut verfügbar ist, aber wenn ich jetzt

Jochen

da irgendwas dran ändern möchte

Jochen

oder möchte, dass sich das mehr in eine Richtung

Jochen

entwickelt, die nützlicher für mich ist und nicht so sehr

Jochen

für Facebook, dann kriege ich meine Pull-Requester

Jochen

ja doch nicht durch, weil die bei Facebook

Jochen

da drauf sitzt oder bei

Jochen

Angular sitzt halt Google drauf und die entwickeln das halt.

Jochen

Das heißt,

Jochen

ja, das ist halt

Jochen

vor allen Dingen an die Bedürfnisse von denen angepasst

Jochen

und

Jochen

da sehe ich bei Vue zumindest die Chance,

Jochen

dass das halt so ist,

Jochen

weil ich glaube nämlich tatsächlich, dass

Jochen

die Anforderungen von Firmen wie

Jochen

Facebook oder Google halt unter Umständen

Jochen

ein bisschen anders sein könnten, als

Jochen

das, was halt so man braucht,

Jochen

wenn man jetzt halt

Jochen

nur so ein bisschen, was kleineren Rahmen

Jochen

irgendwie Dinge hochzieht.

Jochen

Und...

Jochen

Der kann klotzen, Jochen.

Jochen

Ja, genau, warum nicht das nächste, genau,

Jochen

einfach Google-Konkurrenz machen.

Jochen

Ja, also es ist,

Jochen

daher denke ich, ist Vue so

Jochen

für unabhängige Leute

Jochen

irgendwie schon die interessantere

Jochen

das interessantere Projekt, aber

Jochen

keine Ahnung, kann auch vollkommen falsch sein, wer weiß.

Jochen

Jedenfalls,

Jochen

wenn man sich,

Jochen

wenn es halt eh mehr oder weniger egal ist, dann kann man

Jochen

ja vielleicht das mal verwenden.

Jochen

Und React und Angular

Jochen

habe ich auch schon so ein bisschen mit Dinge gemacht

Jochen

und React hat mir tatsächlich ziemlich gut

Jochen

gefallen, Angular nicht so

Jochen

richtig, ehrlich gesagt. Und warum?

Jochen

Und was ist das überhaupt und was macht man da?

Dominik

Vielleicht erklärst du nochmal so einen ganz Anfänger,

Dominik

was das denn überhaupt ist

Dominik

und wie man das so macht?

Jochen

Also, ja, was, der Witz daran ist eigentlich,

Jochen

also, das ist die Frage, wo man ansetzt.

Jochen

Man könnte natürlich sagen, na ja,

Jochen

zum nächsten Mal gibt es halt nur so Standard-Web

Jochen

mit irgendwie HTML, CSS und JavaScript

Jochen

eigentlich mehr oder weniger nur so als,

Jochen

unterstützt halt irgendwie bestimmte visuelle Geschichten oder so.

Jochen

Und dann irgendwann kam halt, da hat der Internet Explorer

Jochen

halt diese XHTTP-Request-Geschichte

Jochen

mit eingeführt

Jochen

und damit wurde es dann halt interessant. Das Ganze

Jochen

lief dann so in Richtung, das lief

Jochen

dann halt unter dem Stichwort Web 2.0,

Jochen

weil jetzt halt Webseiten

Jochen

ohne eine komplette

Jochen

Seite neu rendern zu

Jochen

müssen, halt Dinge auf der Seite ändern

Jochen

konnten und dann hat man da

Jochen

irgendwie so ein bisschen dann, die Browser-APIs waren

Jochen

alle unterschiedlich. Dann gab es halt eine Bibliothek,

Jochen

die halt dann irgendwie die unterschiedlichen Browser-APIs

Jochen

halt unter

Jochen

einer gemeinsamen

Jochen

API halt

Jochen

angesteuert hat

Jochen

und das war dann jQuery, das war sozusagen die Standard-API,

Jochen

die man dann verwendet hat und

Jochen

könnte man dann fragen, okay, jQuery,

Jochen

super, dann ist aber alles

Jochen

perfekt, alles tutti, warum verwendet

Jochen

man das nicht heute immer noch?

Jochen

Und da ist die Antwort im Grunde, naja,

Jochen

also das wurde halt immer

Jochen

komplexer und irgendwann kriegst

Jochen

du halt, wenn die Applikationen, also ich würde

Jochen

sagen, tatsächlich für kleinere Geschichten kann man das auch immer noch so machen.

Jochen

Eigentlich ist es gar kein

Jochen

Problem.

Jochen

Also eine Geschichte,

Jochen

die halt dann irgendwann schwierig

Jochen

wird, ist halt,

Jochen

dass wenn man jetzt ganz

Jochen

viel

Jochen

State halten muss, also wenn man jetzt eine

Jochen

Seite hat, auf der viele komplexe Sachen passieren,

Jochen

dann ist halt die Frage, wie merkt

Jochen

man sich jetzt eigentlich, was man alles tun muss,

Jochen

wenn jetzt jemand per Drag-and-Drop irgendwas irgendwo hinzieht

Jochen

oder so. Wo gehen überall

Jochen

die Counter rauf und runter?

Jochen

Wenn irgendein Event passiert, geht

Jochen

dann noch eine Notifikation an?

Jochen

dieses, das wird

Jochen

dann halt, wenn die Applikation sehr komplex

Jochen

wird oder die Webseite sehr komplex

Jochen

wird, dann wird das halt irgendwann sehr, sehr unübersichtlich,

Jochen

wenn man das halt mit jQuery macht.

Jochen

Also State

Dominik

nochmal für unsere Ganzanfänger ist

Dominik

der Zustand, den ein Benutzer irgendwie erreicht hat,

Dominik

den er irgendwann wieder sehen will.

Dominik

Nee, eher

Jochen

State ist halt sozusagen der Zustand

Jochen

der Seite. Also

Jochen

den musst du ja selber handeln.

Jochen

Also wenn du nur HTTP machst

Jochen

quasi, dann ist der immer am Server.

Jochen

Da ist es einfach.

Dominik

Weil Request-Response. Genau.

Jochen

Aber wenn du jetzt sozusagen

Jochen

nicht nur das machst, sondern du machst halt

Jochen

auch noch irgendwie

Jochen

XHTTP-Requests, das heißt du schickst irgendwas zum Server,

Jochen

merkst du halt so, musst du halt dann irgendwie merken, ich hab das

Jochen

jetzt schon da gespeichert oder musst du halt merken,

Jochen

ich hab's halt noch nicht gespeichert. Also das ist schon

Jochen

beim Server, das noch nicht, aber trotzdem

Jochen

hast du ja vielleicht schon irgendeine Aktion gemacht.

Jochen

So

Jochen

diesen State. Fehler, Server-Verbindung

Jochen

abgebrochen. Ja, diesen State

Jochen

musst du jetzt irgendwie verwalten.

Jochen

Und den verwaltest du dann halt nicht mehr

Jochen

nur auf dem Summer, sondern halt auch auf dem

Jochen

Client. Und das geht dann halt

Jochen

irgendwann nicht mehr so richtig gut mit

Jochen

jQuery, weil das ist ja auch dann,

Jochen

du hast das ganze Zeug ja irgendwie dann in so

Jochen

JavaScript-Files, du hast nicht so richtig Module

Jochen

oder so.

Jochen

Geht alles nicht so. Also

Jochen

du kannst natürlich schon unterschiedliche Files haben,

Jochen

aber es ist halt irgendwie

Jochen

mit jQuery wird das halt irgendwie nichts

Jochen

ab einem gewissen Komplexitätslevel.

Jochen

Und im Grunde diese ganzen Frameworks

Jochen

sind halt alle

Jochen

dafür gebaut,

Jochen

um mit diesem Problem

Jochen

umzugehen, sage ich mal jetzt, als jemand,

Jochen

der eigentlich, ehrlich gesagt, gar keine Ahnung von diesem ganzen

Jochen

Kram hat, aber so aus meiner Perspektive

Jochen

von außen

Jochen

ist es so grob, dass

Dominik

die... Du hast jetzt absichtlich ein bisschen geflüstert.

Dominik

Ja, es ist

Jochen

schon so,

Jochen

eigentlich, ehrlich gesagt, es ist so ein bisschen außerhalb von dem, was

Jochen

ich normalerweise mache, daher

Jochen

keine Ahnung, vielleicht rede ich

Jochen

auch großen Unsinn gerade.

Jochen

Aber...

Dominik

Überprüf das, schlag das nach

Dominik

und schreib es uns in die Kommentare.

Dominik

Genau.

Dominik

Während jetzt man

Dominik

in jQuery zum Beispiel

Jochen

den DOM, also sozusagen die

Jochen

Baumrepräsentation der Webseite im Browser

Jochen

direkt manipuliert, dann macht man das halt

Jochen

in React View,

Jochen

wie auch immer, üblicherweise nicht direkt,

Jochen

sondern

Jochen

in einer

Jochen

Shadow DOM oder keine Ahnung.

Jochen

Der SchattendOM.

Jochen

Ja, das macht man, da gibt es immer Leute, die sagen,

Jochen

so viel schneller, also, ja, direkte

Jochen

DOM-Manipulation ist halt viel schneller als irgendwie

Jochen

so virtuellen DOM irgendwie,

Jochen

aber was einem das halt erlaubt

Jochen

ist, dass man das halt

Jochen

trennen kann, also den

Jochen

State in dem

Jochen

Gerinnerten von dem, was man halt, wo man die

Jochen

Manipulationen macht, und das ist natürlich

Jochen

unter Umständen sehr wertvoll, also

Jochen

ich würde sagen, das halt...

Dominik

Kannst du mir noch ein Beispiel dafür nennen, was passiert jetzt,

Dominik

wenn man jetzt einen Schatten-DOM,

Dominik

also das Dokument-Operation-Modell, also irgendwie

Dominik

das, was da hinter steckt,

Dominik

hinter der ganzen gebauten

Jochen

Konfiguration. Die Idee ist so ein bisschen, dass du halt die

Jochen

Manipulationen da in deinem Schatten-Dings da machst

Jochen

und dann nur guckst, du diffst das halt nur noch

Jochen

dann sozusagen gegen das, was du, und dann machst du halt

Jochen

erzeugst du

Jochen

den, oder machst die

Jochen

eigentlichen Dommen-Manipulationen

Jochen

halt dann

Jochen

aus dem Diff zwischen

Jochen

dem, was du eigentlich

Jochen

in

Jochen

seinen virtuellen Dommen zu dem

Jochen

realen sozusagen, aber du

Jochen

manipulierst den realen nicht

Jochen

tatsächlich. Also du könntest ja auch

Jochen

sozusagen, du kannst ja auch deine ganzen Daten im echten

Jochen

DOM halten, könntest du ja. Du kannst ja das in Attribute

Jochen

von irgendwelchen Elementen reinschreiben oder so.

Jochen

Aber das ist halt

Jochen

nicht so schön.

Jochen

Weil

Jochen

Da brauche ich lieber einen Schatten-DOM.

Jochen

Ja, also keine Ahnung.

Jochen

Also es ist

Jochen

naja, ich bin da auch nicht der Beste,

Jochen

um das zu erklären, glaube ich.

Jochen

Jedenfalls

Jochen

heutzutage kann man für das, was man früher mit

Jochen

Jackquery gemacht hat, auch einfach irgendwie React oder Vue

Jochen

oder so verwenden. Das geht natürlich alles.

Jochen

Aber

Jochen

man kann damit natürlich auch noch

Jochen

mehr machen. Das ist zum Beispiel eine Geschichte, die

Jochen

halt in letzter Zeit

Jochen

sehr populär geworden ist, wobei ich auch mal sagen würde,

Jochen

man muss ein bisschen vorsichtig sein, dass man da

Jochen

nicht zu sehr

Jochen

in diese Hype-Falle tappt, weil

Jochen

das hat halt auch, also die Trade-Offs sind nicht so

Jochen

ohne. Also das sind halt so

Jochen

Single-Page-Apps,

Jochen

dass du sozusagen

Jochen

alle

Dominik

Komponenten direkt mit

Jochen

ausgeliefert hast und nicht

Jochen

mehr, also praktisch gar keine

Jochen

Requests mehr machst, die halt da zu einem

Jochen

Reload der Seite führen.

Jochen

Sondern immer nur noch über die API,

Dominik

also deswegen Django Headless und REST,

Dominik

Single-Page-Application und

Dominik

asynchrone Fragen

Dominik

an den Server über das JavaScript.

Jochen

Früher hatte man da immer noch

Jochen

so ein gewisses Problem, dass man

Jochen

das dann halt unter einer URL hatte

Jochen

und dass die Zurück- und

Jochen

Vor-Buttons irgendwie nicht richtig funktioniert

Jochen

haben, aber es gibt da, ich weiß jetzt gar nicht,

Jochen

wie die heißt, die API, es gibt eine Browser-History,

Jochen

sonst was API

Jochen

und die ist mittlerweile auch stabil in allen

Jochen

Browsern drin und das heißt, man kann auch

Jochen

ordentliche URLs

Jochen

haben, ordentliches URL-Routing

Jochen

und Back- und

Jochen

nach vorne Buttons und so,

Jochen

das funktioniert alles und wenn man links klickt, dann

Jochen

das klappt alles inzwischen super, man muss dann nicht

Jochen

mit irgendwelchen komischen

Jochen

Hashtag

Jochen

irgendwie Anchor-Tag

Jochen

Dingern irgendwie rumspielen,

Jochen

wobei das glaube ich Vue auch in der

Jochen

Default-Konfiguration noch so macht, das muss man dann halt

Jochen

irgendwie dann umstellen.

Jochen

Also

Jochen

das sieht dann aus wie eine Webseite

Jochen

und fühlt sich so an wie eine ganz normale

Jochen

Webseite, aber in Wirklichkeit ist es so,

Jochen

das wird nie wirklich neu geladen, sondern

Jochen

die wird immer nur umgebaut, basierend

Jochen

auf dem, was die

Jochen

JavaScript... Also die ganze

Dominik

Arbeit macht der Klient direkt vor Ort.

Jochen

Genau, da wird das halt auch sozusagen

Jochen

gerendert, ja. Was halt viel

Jochen

schneller ist, weil so ein kompletter Page Reload,

Jochen

wenn das halt kompliziert ist, also wenn ich

Jochen

allein, es reicht eigentlich schon, wenn das irgendwie

Jochen

Bootstrap mit allem möglichen Kram drin ist,

Jochen

dann ist das so fett, dass

Jochen

halt, wenn man

Jochen

bei einer

Jochen

Server gerenderten Seite halt irgendwo

Jochen

auf den Link klickt und das dann neu rendert,

Jochen

dann merkt man das eigentlich

Jochen

immer, weil auch wenn der

Jochen

Request selber schnell ist, so oft ist es so,

Jochen

dass tatsächlich

Jochen

irgendwie alles,

Jochen

auch inklusive Assets, halt innerhalb von

Jochen

200 Millisekunden zurückgekommen ist, dann denkt man sich

Jochen

so, ja, das ist so schnell,

Jochen

dass man es eigentlich fast nicht merken sollte

Jochen

und trotzdem bemerkt man es und der Grund, warum man es

Jochen

trotzdem bemerkt, ist halt, dass

Jochen

das Rendern vom DOM

Jochen

ist halt nicht so schnell.

Jochen

Das dauert halt und selbst wenn

Jochen

da nichts mehr im Netzwerk passiert, ist es

Jochen

so, dass allein, dass der Browser das

Jochen

alles neu aufbauen muss.

Jochen

Das dauert halt und

Jochen

das merkt man und das ist halt nicht so flüssig

Jochen

wie eine native App, die jetzt halt

Jochen

irgendwie auf dem Rechner läuft und die nicht

Jochen

komplett neu gerendert

Jochen

werden muss. Und wenn man das jetzt in JavaScript

Jochen

sozusagen hat, die Applikation,

Jochen

und dann sich sozusagen für

Jochen

eine neue Seite

Jochen

immer nur neue Daten geholt werden von einer

Jochen

API und man kann dann ja auch so, also wenn man zum Beispiel

Jochen

eine Liste hat, wo man irgendwie so durchpaginiert

Jochen

oder so, dann kann man sich ja auch für die

Jochen

nächsten drei, vier Seiten die Daten schon mal geholt haben

Jochen

und dann drückt man auf den Knopf und dann wird halt nur

Jochen

der, wird

Jochen

halt nicht das komplette

Jochen

Template außenrum alles

Jochen

nochmal neu gerendert, sondern dann wird halt nur der Inhalt

Jochen

der Tabelle, die man halt da sieht, irgendwie vielleicht ausgetauscht.

Jochen

Und das ist dann halt sehr schnell

Jochen

und das geht dann halt, das sind halt so wenige,

Jochen

ich weiß nicht wie viele Millisekunden,

Jochen

aber so unterhalb der Wahrnehmungsschmelze.

Jochen

Man drückt da drauf und es ist sofort,

Jochen

es hat sich sofort geändert.

Jochen

Und das

Jochen

ist natürlich sehr nett. Das ist halt etwas, was man mit

Jochen

auf einer Server

Jochen

Seite gerinnerten

Jochen

Webseiten nicht hinkriegen kann

Jochen

eigentlich.

Jochen

Es fühlt sich halt viel mehr an wie eine native App.

Jochen

Und das ist natürlich schon schön und gerade für kompliziertere

Jochen

Geschichten ist das

Jochen

natürlich

Jochen

schon sehr nett.

Jochen

Also die sich halt mehr so wie

Jochen

klassische Applikationen auf dem Desktop anfühlen

Jochen

sollen. Und ja,

Jochen

das ist natürlich alles schön. Warum macht man

Jochen

nicht alles so. Man kann die

Jochen

Dinge halt auch dann irgendwie quasi direkt auf

Jochen

Mobilgeräte und so deployen.

Jochen

Und

Jochen

so ein bisschen, also diese Progressive

Jochen

Web-App-Geschichte, die sehen dann halt auch so ein bisschen aus

Jochen

wie normale Apps, wie so native Apps

Jochen

auf Telefonen und so. Warum macht

Jochen

man nicht alles so? Das hat halt auch diverse

Jochen

böse Nachteile. Ein böser

Jochen

Nachteil ist halt

Jochen

Google-Suchergebnissen,

Jochen

Single-Page-App, das funktioniert halt einfach nicht so gut.

Jochen

Was auch nicht so schön ist,

Jochen

ist halt, dass der erste Request unter Umständen sehr, sehr

Jochen

langsam ist, weil da halt irgendwie tatsächlich

Jochen

vielleicht megabyteweise JavaScript und

Jochen

anderer Kram irgendwie geladen werden muss.

Jochen

Und

Jochen

ja. Das hört sich

Dominik

so mittelgut an für Menschen. Genau, das ist halt

Jochen

also, ja, wahrscheinlich

Jochen

es kommt halt darauf an, was man

Jochen

für ein Problem hat. Für manche Probleme ist

Jochen

halt irgendwie eine klassische

Jochen

serverseitig gerenderte Geschichte das

Jochen

allerbeste. Für manche andere Sachen ist

Jochen

halt irgendwie eine Single-Page-App besser.

Jochen

Aber, dass das überhaupt

Jochen

so geht und dass man das machen kann, ist eine

Jochen

relativ neue geschichte und das ja das ist auch etwas was man halt mit dieser

Jochen

diesen Frameworks

Jochen

halt gut machen kann.

Jochen

Was man jetzt mit jQuery nicht machen

Jochen

könnte.

Jochen

Wobei, ja, doch,

Jochen

vielleicht geht es da sogar, ich weiß es nicht

Jochen

genau, aber es macht halt, ich weiß nicht, ob es irgendjemand macht.

Jochen

Könnte man vielleicht sogar auch,

Jochen

aber es, naja, vielleicht

Jochen

keine so gute Idee.

Jochen

Ja, die, genau,

Jochen

Unterschiede,

Jochen

also so

Jochen

React

Jochen

es gab ja früher nochmal sehr

Jochen

große Unterschiede, also tatsächlich

Jochen

die

Jochen

ersten

Jochen

JavaScript-Frameworks, die halt dieses

Jochen

Problem insgesamt angenommen

Jochen

haben, die waren sehr unterschiedliche

Jochen

Ansätze, da gab es halt irgendwie

Jochen

Angular 1 halt, das war eins der ersten

Jochen

also war vorher React auch

Jochen

da, dann gab es irgendwie Ember und so

Jochen

und

Jochen

dann aber

Jochen

React hatte irgendwie alles so ein bisschen geändert

Jochen

Das war halt so das Erste, was einen sehr neuen Ansatz hatte, so diese, wie soll man das beschreiben, eigentlich eher einen funktionalen Ansatz,

Jochen

dass man halt sozusagen die Visualisierung der Seite erzeugt,

Jochen

indem man ein State hat und da einfach dann Funktionen drauf ausführt,

Jochen

die das dann halt hinrendern.

Jochen

Und dass man halt nicht sozusagen irgendwelche Templates hat,

Jochen

HTML, man kennt das ja von Django

Jochen

vielleicht oder sonst wie von

Jochen

einer serverseitig gerenderten Geschichte,

Jochen

wo man

Jochen

wo halt

Jochen

dann irgendwie

Jochen

Sachen ersetzt werden.

Jochen

Man hat halt irgendwie HTML oder so mit

Jochen

Platzhaltern für, da kommen jetzt dynamische Sachen rein,

Jochen

sondern in

Jochen

React ist es eher

Jochen

umgekehrt. Du hast halt

Jochen

zwar etwas, das so ein bisschen aussieht nach

Jochen

HTML

Jochen

und ein Template, aber das ist es

Jochen

gar nicht in Wirklichkeit, sondern in Wirklichkeit ist es

Jochen

einfach nur eine Funktion.

Jochen

Und diese Funktion

Jochen

rendert

Jochen

halt, rendert sich selbst raus

Jochen

zu HTML oder zu irgendwas,

Jochen

was halt irgendwie im DOM angezeigt werden kann.

Jochen

Und

Jochen

dieser Ansatz hat sich dann durchgesetzt.

Jochen

Das machen jetzt inzwischen alle anderen auch so.

Jochen

Und

Jochen

ja,

Jochen

tatsächlich, also ich fand React

Jochen

jetzt, ist jetzt auch schon wieder ein bisschen her.

Jochen

inzwischen, ich habe nie

Jochen

mit Hooks irgendwie was gemacht.

Jochen

Also

Jochen

man muss eigentlich viel zu viel erklären.

Jochen

Also React hat mir eigentlich ganz gut

Jochen

gefallen. Es ist eigentlich

Jochen

gar nicht groß, es ist auch eher so

Jochen

eine kleine Geschichte,

Jochen

aber es gibt natürlich ein riesiges

Jochen

Ökosystem drumherum.

Jochen

Und

Jochen

ja, Angular fand ich

Jochen

ehrlich gesagt, es ist deutlich fetter

Jochen

und

Jochen

mit gewissen Sachen bin ich nie so richtig, also man

Jochen

muss relativ viel Boilerplate außen rum

Jochen

schreiben und es passieren komische Sachen

Jochen

manchmal, aber ich meine, kann man auch

Jochen

verwenden. Also Angular, letztendlich nimmt sich das

Jochen

alles nicht viel, es ist halt auch so ähnlich

Jochen

und jetzt

Jochen

Vue ist, glaube ich, auch so ähnlich. Das ist auch

Jochen

kein großer Unterschied.

Jochen

Außer jetzt diese

Jochen

diese URL-Routing-Geschichte, die bei Vue

Jochen

noch so ein bisschen komisch ist, aber

Jochen

naja.

Jochen

Tja.

Jochen

Ansonsten weiß ich nicht, was

Jochen

ist das,

Jochen

was wäre denn noch so interessant?

Jochen

Einzelne

Jochen

Frameworks jetzt. Ja, ich,

Jochen

ehrlich gesagt, keine Ahnung. Ja, wenn du keine

Dominik

News-Story hast, wo wir genau wissen,

Dominik

hey, in dem Case ist jetzt Angular total super

Dominik

und da lieber React und

Dominik

da lieber Vue, sondern die sind alle austauschbar.

Dominik

Das heißt, wir können mit Python tatsächlich jedes

Dominik

dieser Frontends nehmen. Die Frage ist aber, wie man

Dominik

das implementiert, weil wenn du jetzt versuchst,

Dominik

in der Django-App einfach so

Dominik

ein JavaScript-Framework einzubauen,

Dominik

dann wirst du vor einige Probleme kommen,

Dominik

weil du halt diese dynamische

Dominik

Entwicklung gar nicht richtig machen kannst.

Dominik

Oder die Features der

Dominik

ganzen Frameworks gar nicht.

Jochen

Du musst halt irgendwie mit dem Backend kommunizieren.

Jochen

Also dieses Problem hast du natürlich weiterhin, dass du

Jochen

irgendwie

Jochen

ja, irgendwo die Daten

Jochen

dann tatsächlich in der Datenbank halten willst

Jochen

und du musst halt irgendwie, ja, die da reinkriegen

Jochen

und die da auch wieder rauskriegen und so.

Jochen

Und gut, vom Server kommt jetzt dann nicht mehr HTML,

Jochen

sondern da kommt dann halt eher irgendwie JSON

Jochen

oder, ja, so eigentlich immer JSON,

Jochen

aber es gibt halt auch unterschiedliche APs.

Jochen

Die beiden Hauptgeschmacksrichtungen, die es da gibt,

Jochen

sind halt, ja, REST oder eben GraphQL.

Jochen

Etwas neuere Geschichte.

Jochen

Nimmt sich aber letztlich

Jochen

auch gar nicht so wahnsinnig viel.

Jochen

Ich habe angefangen

Jochen

mit REST und dann

Jochen

das lange gemacht und dann

Jochen

GraphQL fand ich dann ganz gut und

Jochen

bin jetzt inzwischen wieder bei REST.

Jochen

Es gibt Leute, die machen dann auch

Jochen

irgendwie sagen, naja gut, also

Jochen

GraphQL zum Lesen ganz gut, zum Schreiben

Jochen

vielleicht nicht so und schreiben dann über REST

Jochen

und lesen über GraphQL.

Jochen

Naja, also aber

Jochen

letztlich ist es ja auch

Jochen

ist es ja auch egal, auf jeden Fall

Jochen

der Trend geht so ein bisschen...

Jochen

Ja, aber man braucht halt dann eine API dann, ne?

Dominik

Dann bleibt bei Python nur noch das Bereitstellen der API übrig

Dominik

und das ganze Frontend-Trainering

Dominik

fällt weg. Ist das auch bei Async-Django

Dominik

so?

Dominik

Async-Django

Dominik

ist jetzt eine andere

Jochen

Geschichte, oder wie...

Dominik

Ja, warum ist das eine andere Geschichte? Dann habe ich

Dominik

wieder Unsinn erzählt.

Jochen

Async heißt ja eigentlich nur, dass du

Jochen

dass du

Jochen

nicht

Jochen

also

Jochen

das Protokoll zwischen

Jochen

Applikationsserver und

Jochen

dem Web-Server außenrum ist

Jochen

jetzt halt ein anderes und es geht

Jochen

nicht nur Request-Response,

Jochen

sondern du kannst halt auch

Jochen

in beide Richtungen,

Jochen

du kannst halt auch vom Server Sachen an kleinen schicken, das ist halt

Jochen

schon mal ein großer Unterschied.

Jochen

Und es ist halt auch

Jochen

so, dass

Jochen

dass du

Jochen

fürs

Jochen

IEO-Multiplexen das nicht nur über

Jochen

Threads und Prozesse machen kannst, sondern du kannst es halt auch

Jochen

über einen Event-Loop

Jochen

machen.

Jochen

Also wie Node.js auch.

Jochen

Das ist halt so der große,

Jochen

aber das ist,

Jochen

das wirkt sich jetzt auf

Jochen

AP oder nicht AP, das wirkt sich alles

Jochen

darauf gar nicht aus.

Jochen

Das geht beides.

Dominik

Ja, okay, das heißt trotzdem, ich mache dann halt

Dominik

meine API und

Dominik

ob die async ist oder nicht, macht

Dominik

ja gar keinen großen Unterschied mehr, weil

Jochen

Naja doch, also

Jochen

es gibt

Jochen

natürlich schon einen gewissen

Jochen

Unterschied, was halt mit

Jochen

Django sonst nicht

Jochen

so richtig gehen würde, ist halt, dass du

Jochen

vom Server Benachrichtigungen

Jochen

bekommen kannst. Das geht halt nicht so richtig.

Jochen

Also ich meine, du kannst natürlich emulieren, du kannst

Jochen

halt irgendwie alle 100

Jochen

Millisekunden nachfragen, gibt es jetzt irgendwas Neues oder

Jochen

so, dann kannst du es halt wahrscheinlich so ein bisschen

Jochen

Aber du kannst halt nicht

Jochen

eine stehende, also wenn jetzt zum Beispiel ein Chat,

Jochen

wenn du sowas wie Slack

Jochen

nachimplementieren wolltest,

Jochen

das geht nicht so richtig gut mit Django

Jochen

ohne Async, weil

Jochen

wie soll das gehen? Also

Jochen

wenn jetzt jemand was schreibt

Jochen

und die Webseite

Jochen

will dir das anzeigen, wie macht sie das?

Jochen

Ja, die Webseite fragt die ganze Zeit nach,

Dominik

was ist in dem Channel, was ist in dem Channel, was ist in dem Channel?

Dominik

Aber das ist natürlich, generiert

Jochen

einen riesen Haufen Requests, die für alle völlig unnötig

Jochen

sind.

Jochen

Und. Aber es funktioniert. Ja, aber das ist ja, also das ist ja, das ist ja super hässlich. Also das ist, kann man natürlich, aber ich meine, stell dir vor, dein Rechner steht zu Hause.

Dominik

Dass die verstoffte Datenautobahn, die verstoffte Leitung auf der Datenautobahn sind da schon.

Jochen

Das ist gar nicht so das Problem, das ist halt eher so, du machst die ganze Zeit Requests, also wenn du nicht zu Hause bist und dein Rechner läuft und der macht alle 100 Millisekunden so ein Request, dann macht der halt, keine Ahnung, 10 pro Sekunde und das heißt am Tag 86.400 mal 10, also fast eine Million Requests und die sind alle leer.

Dominik

Ja, ich sag ja, Stau auf der Datenautobahn.

Jochen

Ich glaube, das ist noch fast das

Jochen

geringste Problem, dass da Daten übertragen werden, aber der Server

Jochen

muss ja dann jedes Mal irgendwie die Datenbank fragen

Jochen

und keine Ahnung.

Jochen

Ja, also genau, es ist so ein bisschen

Jochen

während, wenn halt...

Dominik

Die Computerstunden und Strom dabei verbraucht wird.

Dominik

Ja, ist halt alles so ein bisschen und das ist halt

Jochen

wenn es jetzt anders gehen würde

Jochen

mit Asyn geht das

Jochen

halt dann, dass

Jochen

der Server dir halt sagt

Jochen

so hier ist jetzt, zeig mal diese Nachricht an,

Jochen

die hat dir jemand geschickt, dann passiert halt gar kein

Jochen

Request und wird überhaupt nichts

Jochen

hin und her geschickt, bis zu dem Zeitpunkt, wo das

Jochen

halt passiert.

Jochen

Und das ist natürlich schon deutlich effizienter.

Jochen

Und eben eskaliert

Jochen

halt nicht. Mit 10 Leuten

Jochen

ist es egal, wenn du in einem Channel bist, aber wenn du

Jochen

sowas wie Slack betreibst mit hunderttausenden Leuten

Jochen

oder Millionen, dann

Jochen

bringen dich natürlich diese ganzen Requests

Jochen

irgendwann um.

Jochen

Da brauchst du irgendwas, was

Jochen

dir ermöglicht, vom

Jochen

Server aus auch dem Client irgendwas zu sagen.

Jochen

Also das ist diese Async-Geschichte.

Jochen

aber das hat mit,

Jochen

ob jetzt APIs oder nicht APIs oder so,

Jochen

das ist alles,

Jochen

und eine API kann natürlich auch Async sein,

Jochen

du kannst natürlich dich,

Jochen

ja, also,

Jochen

aber das geht,

Jochen

eine API oder nicht API,

Jochen

das geht beides.

Dominik

Mit was redet man denn mit der Django-API?

Dominik

Macht man dann ein Axios,

Dominik

irgendwie so ein JavaScript-Framework,

Dominik

oder nimmt man da einfach normale ...

Dominik

Die unterschiedlichsten Clients,

Jochen

also für GraphQL gibt es halt Relay

Jochen

oder Apollo.

Jochen

Für REST gibt es

Jochen

dieses Axios oder

Jochen

weiß ich nicht, es gibt ja unterschiedliche Geschichten, die man

Jochen

verwenden kann.

Jochen

Man könnte

Dominik

ganz normale AJAX-Requests machen, oder?

Dominik

Ja, klar. Also das ist

Dominik

genau.

Dominik

Ist es ja auch.

Jochen

Du kannst auch einfach, du könntest, du müsstest

Jochen

nicht REST machen. Du kannst eben, genau, du kannst natürlich

Jochen

in Django könntest du einfach in Jason

Jochen

einfach

Jochen

an einem XHTTP-Request

Jochen

oder Ajax View

Jochen

machst du halt einfach, gibst du eine JSON-Response

Jochen

zurück, fertig, geht auch.

Jochen

Aber natürlich bietet es sich schon an,

Jochen

das irgendwie halt so halbwegs standardisiert zu

Jochen

machen, weil das natürlich auch diverse

Jochen

Vorteile bringt und man halt auch

Jochen

Sachen

Jochen

so machen sollte, wie man die üblicherweise

Jochen

so tut.

Dominik

Das musst du jetzt zweimal begründen. Und zwar einmal

Dominik

erstmal, warum man überhaupt Sachen so machen

Dominik

sollte, wie man die üblicherweise so tut. Man kann es ja einfach

Dominik

so machen, wenn man Lust drauf hat.

Jochen

Ja, aber das ist auch etwas, was ich halt immer wieder sehe.

Jochen

die meisten Leute denken immer, wenn sie, oder

Jochen

denken, oder sagen wir mal so,

Jochen

etwas, was ich oft sehe,

Jochen

dass Leute sich überlegen, wie sie

Jochen

denn jetzt irgendwie

Jochen

Kommunikation zwischen irgendwie

Jochen

einer Webseite oder einem Client und

Jochen

irgendwie ihrem

Jochen

Backend machen

Jochen

und überlegen sich da irgendwas

Jochen

und denken, das ist total kompliziert und das ist

Jochen

total, sie haben irgendwie so ein Hightech-Problem,

Jochen

was sie irgendwie lösen müssen und überlegen

Jochen

sich dann da irgendwie selber ganz viele Sachen.

Jochen

Und das ist

Jochen

also ich habe noch, also

Jochen

lass mal überlegen, ob ich das jemals gesehen habe, dass das

Jochen

tatsächlich der Fall war. Ich glaube nicht.

Jochen

Ich glaube, das war tatsächlich dann nie so.

Jochen

Sondern es ist immer so, dass

Jochen

eigentlich ist das alles immer

Jochen

das Gleiche. Das ist alles irgendwie,

Jochen

du hast immer,

Jochen

es ist immer crud.

Jochen

Es ist immer so, also

Jochen

Create, Retrieve, Update und Delete.

Jochen

Genau. Und du hast

Jochen

immer Listen von Dingen und immer

Jochen

Create auf der Liste und immer dann eine

Jochen

Detailansicht, auf die du dann weitergeleitet wirst

Jochen

oder halt wieder auf die Liste zurück.

Jochen

Und das ist halt alles immer gleich.

Jochen

Und ob das jetzt dann, und das

Jochen

kennt man ja auch von Applikationen so, ob das jetzt Facebook

Jochen

ist, ob das Twitter ist, die funktionieren

Jochen

alle ganz genauso. Oder ob das

Jochen

dein Mail-Client ist, der funktioniert auch so.

Jochen

Oder es ist eigentlich

Jochen

immer,

Jochen

es geht immer so in die Richtung.

Jochen

Und die Leute,

Jochen

oder mir ist es ja

Jochen

am Anfang auch so gegangen, also wenn man das nicht ein paar Mal

Jochen

gesehen hat, dann fällt einem das halt nicht auf, dass das immer so

Jochen

ist, sondern dann denkt man sich so, ich muss das

Jochen

halt irgendwie alles selber erfinden, aber das muss

Jochen

man eigentlich nicht und das ist auch keine gute Idee, weil

Jochen

tatsächlich dieses Crud-Ding, also dafür

Jochen

gibt es halt dann Abstraktionen,

Jochen

die sich bewährt

Jochen

haben und das funktioniert dann gut, wenn man das genau so

Jochen

macht und wenn man das halt anders macht, dann

Jochen

hat man halt Schmerzen.

Jochen

Und ja, das ist...

Jochen

Au!

Jochen

Ja.

Dominik

Fußschießen oder Stolpern fallen, reintreten,

Dominik

große Fehler durch die Ohren

Dominik

sammeln oder...

Jochen

Ja, ja, ja, aber ja, was genau, also was halt auch noch interessant ist, wenn man jetzt eine API abfragt, ist halt so, die macht man dann eigentlich das Statement, man hat jetzt, also was die bösen Trade-Offs angeht, nicht nur, dass das halt irgendwie fett ist, also wenn man so eine Single-Page-App baut, ist es halt deutlich fetter, der erste Request ist deutlich größer,

Jochen

es ist halt

Jochen

brittle, ich weiß gar nicht, wie man das am besten

Jochen

übersetzt, es ist halt so

Jochen

es ist viel instabiler, als wenn man jetzt einfach nur

Jochen

ein schnödes HTML und CSS verwenden würde

Jochen

weil halt dieses ganze JavaScript funktionieren

Jochen

muss, es ist halt, wenn du auf

Jochen

einem Telefon bist, das schlechte

Jochen

CPU hat, ist nicht so gut, wenn das auch in einer schlechten

Jochen

Leitung ist, nicht so gut

Jochen

also

Jochen

diverse üble Nachteile

Jochen

ein weiterer übler Nachteil ist

Jochen

dass du jetzt State-Handling halt nicht

Jochen

nur auf einer Seite hast. Also wenn das

Jochen

serverseitig gerendert wird, hast du das halt nur auf dem Server.

Jochen

Und da hast du halt dein,

Jochen

weiß ich nicht, Framework,

Jochen

dass das halt

Jochen

dafür gebaut ist, mit diesem Problem umzugehen.

Jochen

Weiß ich nicht, eben auch so, wenn man das

Jochen

so, also die alles

Jochen

All-in-One-Lösung wäre dann halt

Jochen

sowas wie Ruby on Rails oder halt eben

Jochen

Django.

Jochen

Aber dieses Problem hast du dann halt nur da

Jochen

und sonst eigentlich nicht mehr.

Jochen

Und wenn du bei so einer

Jochen

Single-Page-App, hast du dieses Problem an der Stelle

Jochen

dann halt auch nochmal. Das heißt, du hast halt zweimal

Jochen

das Problem, dass du irgendwie mit Logik

Jochen

umgehen können musst.

Dominik

Zweimal mit Logik umgehen heißt doppelter

Dominik

Anteil an Fehlern.

Jochen

Und auch doppelte Menge an Code.

Jochen

Doppelte Menge an Code, bei dem irgendwas schief gehen kann.

Jochen

Und exponentiell wachst du, das heißt

Jochen

eine vielfache Menge an Bugs.

Jochen

Exponentiell weiß ich nicht, aber

Jochen

auf jeden Fall. Je nachdem, wer das entwickelt, Jochen.

Jochen

Ja.

Jochen

Ich gucke jetzt niemanden,

Jochen

an?

Jochen

Ich habe ja Gott sei Dank kein Spiel.

Jochen

Nee, aber das ist natürlich ein Problem und das ist halt

Jochen

viel aufwendiger und das ist alles viel schwieriger.

Jochen

Und

Jochen

die Menge an

Jochen

unterschiedlichen, komischen

Jochen

Technologien und so, der Stack wird halt immer größer

Jochen

und das macht es halt auch alles viel schwerer.

Jochen

Also das ist schon deutlich

Jochen

komplizierter als so eine einfache Webseite.

Jochen

Und ja, das ist halt

Jochen

aber auf der anderen Seite kann man damit auch

Jochen

coole Sachen hinkriegen, die man sonst nicht hinkriegt.

Jochen

Insofern muss man sich halt überlegen,

Jochen

ob sich das für einen lohnt oder

Jochen

nicht. Aber wenn man das jetzt

Jochen

macht, dann hat man eben genau dieses Problem. Da kommt jetzt

Jochen

halt irgendwie ein State

Jochen

von zum Beispiel einer API, den man jetzt irgendwie

Jochen

in der

Jochen

Applikation verwalten

Jochen

können muss und

Jochen

ja.

Jochen

Oder sagen wir so, der State ändert sich, wenn

Jochen

zum Beispiel ein API-Request zurückkommt.

Jochen

Also man fragt jetzt, man

Jochen

hat halt irgendwie so eine Applikation,

Jochen

die eine Liste von irgendwelchen Dingen, wie auch immer

Jochen

die aussehen, anzeigt

Jochen

und macht jetzt einen Request

Jochen

ans Backend und kriegt jetzt

Jochen

zurück, okay, diese 100

Jochen

Dinger gibt es. So, diese

Jochen

100 Dinger ändern jetzt den State

Jochen

der Client-Applikation

Jochen

und wie macht man das

Jochen

jetzt ordentlich? Und dann

Jochen

braucht man halt da auch irgendwie sowas wie

Jochen

ja,

Jochen

irgendeinen Platz, wo der State gehalten wird.

Jochen

Bei Django oder Rear-and-Rails

Jochen

wäre das halt jetzt die Datenbank, hat man

Jochen

jetzt auf der Client-Seite

Jochen

nicht so, aber da kann man halt auch sowas wie so

Jochen

Redux-Store zum Beispiel haben,

Jochen

wo das halt, wo man

Jochen

halt den State hält

Jochen

und

Jochen

geordnete Methoden hat, wie man darauf zugreift,

Jochen

wie auch unterschiedliche Teile der Applikation

Jochen

auch darauf zugreifen und wie die halt

Jochen

irgendwie Änderungen daran auslösen.

Jochen

Und ja,

Jochen

da gibt es dann auch nette,

Jochen

nettes Zusatztooling,

Jochen

dass man halt dann irgendwie

Jochen

auch

Jochen

da durchsteppen

Jochen

kann. Man kann also

Jochen

man kann sich halt angucken, wie sieht

Jochen

der State aus

Jochen

davor, danach,

Jochen

wie man kann auch die

Jochen

Applikation, wenn man das rumgesurft ist, man kann

Jochen

die in jeden Zustand wieder zurück

Jochen

bringen, dadurch,

Jochen

das ist halt sowas, also React zum Beispiel

Jochen

ist relativ funktional, das ist eigentlich

Jochen

sehr nett, also da nie,

Jochen

da immer nur

Jochen

die Seite gerendert wird

Jochen

aus dem Zustand, wenn du

Jochen

weißt, wie sich der Zustand immer geändert hat und

Jochen

immer gespeichert hast, kannst du die Seite in jeden Zustand

Jochen

wieder zurückversetzen.

Jochen

Die nennen das irgendwie da

Jochen

Time-Travel-Debugging zum Beispiel.

Jochen

Du kannst halt, wenn du jetzt

Jochen

zum Beispiel, da gibt es so eine

Jochen

Browser-Extension,

Jochen

die

Jochen

halt den State irgendwie

Jochen

die ganze Zeit speichert

Jochen

und das

Jochen

mit Redux checkt und da kannst du halt,

Jochen

wenn du ein bisschen auf der Seite rumgesurft bist,

Jochen

die Seite auch wieder in jeden Zustand zurückversetzen.

Jochen

Man kann es einfach sagen, okay, nimm diesen State

Jochen

und dann sagt man React

Jochen

einfach nur so, okay, jetzt rendert halt die Seite und dann

Jochen

kommt genau die Seite raus zu dem Zustand.

Jochen

Und das ist natürlich schon sehr nett.

Jochen

Also, dass du halt, ja,

Jochen

dass der Zustand nirgendwo

Jochen

irgendwie, dass da nicht irgendwie noch

Jochen

irgendwelche Daten, die

Jochen

gebraucht werden, in irgendwelchen

Jochen

DOM-Elementen drin rumhängen oder so,

Jochen

sondern die DOM-Elemente werden rein aus

Jochen

blöden Funktionen, die halt State nehmen

Jochen

und Elemente ausgeben,

Jochen

rausgerendert, sodass halt

Jochen

ja, quasi immer

Jochen

klar ist, was passiert. Das ist natürlich schon...

Dominik

Also eine Liste von States hast du dann, um

Dominik

tatsächlich zu speichern, wo du gerade bist oder warst oder sowas?

Dominik

Ja, du hast halt den...

Jochen

Der State ist halt das, was definiert, wie

Jochen

deine Seite aussieht.

Jochen

Und der State ändert sich halt auch.

Jochen

Es gibt halt Aktionen, die...

Jochen

Bei Redux ist es halt so, du hast halt

Jochen

Actions, die halt den State verändern.

Jochen

Und wenn du jetzt aber den State

Jochen

vor und nach jeder Action immer speicherst,

Jochen

dann kannst du einfach sagen,

Jochen

okay, hier ist der State.

Jochen

Liebes React, rendere alles mal so, dass es wieder

Jochen

wie eine Seite aussieht und dann ist die Seite genau in dem

Jochen

Zustand.

Dominik

Also um jetzt nochmal klarzustellen, also ein State ist

Dominik

dann ein Gesamtstatus der gesamten Seite und nicht der

Dominik

einzelnen Komponenten. Ne, genau, der

Jochen

Gesamtseite. Die Komponenten

Jochen

kriegen halt nur einen Teil

Jochen

des States, der sie interessiert, zu sehen.

Jochen

Ja, die können dann zum Beispiel

Jochen

sagen, okay, ich hätte jetzt gern alles

Jochen

an State unterhalb von, State

Jochen

ist halt so wie so ein Baum und man ist

Jochen

üblicherweise immer nur an so einem Teil davon interessiert.

Jochen

Also dass du dir so einen einzelnen

Dominik

Div-Container zum Beispiel aussuchst,

Dominik

den du jetzt haben willst.

Jochen

Das ist nicht der gleiche Baum

Jochen

wie der von der Webseite.

Jochen

Das ist nicht das gleiche.

Jochen

Der State ist eine andere Geschichte.

Jochen

Dann musst du mir das nochmal genau erklären.

Jochen

Dann habe ich das noch nicht genau verstanden.

Jochen

Also State ist im Grunde einfach nur so ein Baum

Jochen

von Daten irgendwie.

Dominik

Was ist denn ein Baum von Daten? Ein Graf?

Dominik

Nee, kein Graf.

Dominik

Nein, kein Graf. Warum ist das kein Graf?

Jochen

Dinge drin sein. Also insofern, aber

Jochen

ja, ich weiß nicht, ich musste.

Jochen

Es ist halt irgendwie alles, was

Jochen

letztlich wie ein Python im Dikt.

Jochen

So kann man sich das vielleicht vorstellen.

Jochen

Ja, okay. So ein verschachteltes Dikt halt.

Dominik

Wie so ein JSON-Struktur

Dominik

mit irgendwas.

Dominik

Ja, exakt.

Dominik

Und

Jochen

du kannst halt, als Komponente kriegst du das

Jochen

halt irgendwie einen Teil davon irgendwie reingereicht.

Jochen

und diesen Kram benutzt du halt,

Jochen

um halt letztlich, eine Komponente

Jochen

ist in React nichts anderes als eine Funktion, die aufgerufen

Jochen

wird mit bestimmten

Jochen

Daten und die spuckt dann halt irgendwas

Jochen

gerendertes aus.

Jochen

Fertig. Das war's.

Jochen

Aber die hält keinen eigenen State, die kann nicht

Jochen

ja

Jochen

das

Jochen

ist halt sehr schön, weil

Jochen

solange sich nichts an den Eingaben

Jochen

für diese Funktion ändert, ändert sich auch nichts an der Ausgabe.

Jochen

Nur wenn sich da irgendwas

Jochen

ändert, muss das neu gerendert werden und da immer

Jochen

weißt, sozusagen an welchen Stellen

Jochen

sich am State was geändert hat,

Jochen

weißt du halt auch, welche Teile

Jochen

du neu erinnern musst und welche nicht.

Jochen

Das ist halt schon nett.

Jochen

Aber naja, also

Jochen

das ist halt auch alles viel zu

Jochen

kompliziert für so eine Seite, die irgendwas Kleines macht.

Jochen

Also brauchst du das alles eigentlich nicht.

Jochen

Und es gibt natürlich auch Komponenten,

Jochen

die nur ihren eigenen State,

Jochen

also wenn du jetzt ein Formular hast, das irgendwie so ein bisschen

Jochen

Fehlerbehandlung macht, das muss jetzt nicht

Jochen

irgendwie da unbedingt angebunden

Jochen

sein an dem Komplett-State der Seite,

Jochen

weil das interessiert sowieso, wenn es

Jochen

keine andere Komponente interessiert, dann

Jochen

ist es ja sinnlos, das in so ein allgemeines Ding zu

Jochen

schreiben.

Dominik

Auch noch so eine spannende Frage, wenn du jetzt so ein Formular hast,

Dominik

was ja normalerweise jetzt in Python über

Dominik

so ein Django-Form validiert werden würde,

Dominik

unter anderem ja, mit den Feedbacks zum Nutzer

Dominik

und so, wie macht man das denn

Dominik

dann einfach in so einem JavaScript-Framework?

Dominik

Da muss man ja alles wieder neu implementieren.

Jochen

Du musst es halt einmal auf Client-Seite machen, du musst es einmal wieder

Jochen

auf Server-Seite machen, weil auf Server-Seite musst du es

Jochen

natürlich immer noch machen.

Dominik

Auf der anderen Seite bekomme ich dann ja aber dann wieder nur

Dominik

meine API, meinen Rest oder was auch immer

Dominik

und habe dann irgendwelche Error-Feedbacks,

Dominik

die ich geben kann und wo dann irgendeine Message drinsteht

Dominik

und das ist ja dann doppelt und dreifach hässlich.

Dominik

Also dago baue ich ja

Dominik

einmal die Formklasse,

Dominik

pipe die da rein, mache dann

Dominik

ein, zwei Widget-Einstellungen und das läuft, das Ding.

Dominik

Und inklusive

Dominik

Feedbacks und

Dominik

Ja, aber es ist halt so,

Dominik

also ich meine, gibt es keine,

Jochen

kommen wir nicht drum rum, du verwendest halt

Jochen

bei einer API dann nicht irgendwie

Jochen

eine Form-Klasse, sondern halt ein Serializer.

Jochen

Der ist halt so ähnlich wie ein Form.

Jochen

Aber klar,

Jochen

du musst halt auch das wieder validieren

Jochen

und dann halt eventuell Fehler zurückgeben.

Jochen

Und das auf der kleinen Seite halt nochmal.

Jochen

Was macht denn ein Serializer

Jochen

anders als eine Form?

Jochen

Ich würde sagen, es ist

Jochen

relativ ähnlich.

Jochen

Aber

Jochen

es

Jochen

serialisiert und

Jochen

Dinge nach

Jochen

sozusagen Dict und

Jochen

von irgendwie

Jochen

Dict nach, also von Objekt

Jochen

nach Dict und von Dict wieder zu Objekt.

Jochen

Das ist halt das, was Serializer machen.

Jochen

Und Formulare machen

Jochen

das auch.

Jochen

Mehr oder weniger. Aber die

Jochen

Formulare,

Jochen

lass mich überlegen,

Jochen

das ist halt so ein bisschen anders.

Jochen

Das ist halt nicht immer, also bei

Jochen

den Serializern, die können natürlich auch nach XML oder so,

Jochen

aber eigentlich ist es immer JSON.

Jochen

Ja.

Jochen

Und es ist tatsächlich

Jochen

sehr ähnlich, was sie machen.

Jochen

Also die Validierung ist, glaube ich,

Jochen

vielleicht so ein bisschen anders.

Jochen

Das ist sehr ähnlich.

Jochen

Also ich kann sagen, dass man mit Serializern noch ein bisschen

Jochen

mehr machen kann, aber naja, das ist immer so,

Jochen

das ist halt, ja.

Jochen

Ist aber auch, das sind halt Feinheiten,

Jochen

das ist halt nicht mehr so. Also im Grunde

Jochen

aber, du hast halt sowas wie Formular

Jochen

Validierung, musst du an der API

Jochen

natürlich auch machen.

Jochen

Ja, und das

Jochen

musst du auf dem Client halt auch machen, das heißt, musst du halt doppelt

Jochen

machen.

Jochen

Es gibt natürlich unter Umständen, wenn du jetzt rein in

Jochen

JavaScript bleibst, die Möglichkeit, dass halt, dass

Jochen

du das nur einmal hinschreibst

Jochen

und den Code dann sowohl auf dem Server wie

Jochen

auf dem Client verwendest, aber

Jochen

ja, weiß ich gar nicht, ob das jetzt so

Jochen

reibungslos, also man hört immer, dass das geht, aber ob das

Jochen

wirklich so reibungslos geht, weiß ich nicht.

Jochen

Ja.

Jochen

Und du hast

Jochen

dann ja die ganzen anderen Probleme. Du musst

Jochen

das ja auch noch immer irgendwie in der Datenbank wieder speichern.

Jochen

Das ist quasi nochmal das gleiche Problem.

Jochen

Du musst ja auch da irgendwie

Jochen

das wieder in

Jochen

eine Tabellenform serialisieren und

Jochen

deserialisieren. Da hast du immer ein ORM dazwischen.

Jochen

Also, und

Jochen

ja, es ist

Jochen

alles nicht so ganz

Jochen

einfach.

Jochen

Ja, aber

Jochen

Ja, das wird sich auf jeden Fall

Dominik

sagen, dass wenn man das sowieso zweimal machen muss, dann

Dominik

muss man ja fast schon zwei unterschiedliche Projekte nehmen.

Dominik

Wenn ich ja so eine API habe in

Dominik

Django zum Beispiel, dann muss ich die beiden ja gar nicht

Dominik

miteinander reblassen, wenn ich nicht will. Also die muss ich ja

Dominik

nicht mal im selben Repo halten, weil die

Dominik

voneinander gar nichts wissen brauchen und nichts miteinander zu tun haben, weil

Dominik

die eine Seite ja auch

Dominik

unabhängig von der anderen Seite getestet werden muss.

Dominik

Nee, ja,

Jochen

das kommt halt drauf an auf deine Anwendungszahl.

Jochen

Also würde ich sagen, kann man so oder so machen,

Jochen

je nachdem unter welchen Bedingungen

Jochen

ist es halt das eine oder das andere sinnvoller.

Jochen

Also kann man nicht so

Jochen

sagen, dass man das jetzt so machen sollte und das ist dann immer

Jochen

richtig für alle Sachen, sondern das ist halt

Jochen

hängt davon ab. Also

Jochen

kann man, also

Jochen

sowieso so. Es gibt ja Leute, die mögen das eher,

Jochen

wenn Sachen in vielen

Jochen

unterschiedlichen Projekten sind. Andere Leute mögen es lieber,

Jochen

wenn alles in einem ist.

Jochen

Hat halt auch beides so Vor- und Nachteile.

Jochen

Das ist halt, kann man nicht

Jochen

sagen, dass das eine besser ist als das andere.

Jochen

Jedenfalls nicht, dass ich wüsste.

Jochen

Wann würdest du das

Dominik

zusammen machen? Wann getrennt?

Dominik

Ich glaube,

Dominik

ich bin eher

Jochen

in dem Lager ein

Jochen

Großrepository.

Jochen

Also ich tendiere

Jochen

eher zu einem Repository

Jochen

als zu vielen kleinen.

Jochen

Aber

Jochen

naja, ich meine, der Vorteil ist halt

Jochen

bei kleinen repositories wäre es halt dass du dass du zum beispiel auch sachen rausgeben kannst zum

Jochen

Pakete daraus bauen und

Jochen

das halt irgendwie zum Beispiel, wenn du jetzt ein großes

Jochen

Repository hast, kannst du halt nicht so leicht sagen,

Jochen

den Kram machen wir jetzt mal Open Source.

Jochen

Geht ja nicht so gut. Wenn das schon ein

Jochen

Repository ist, dann ist das viel leichter.

Jochen

Wenn es jetzt ein Teil ist, der nicht

Jochen

den Kern von dem, was

Jochen

du tust, irgendwie betrifft oder so.

Jochen

Ja.

Jochen

So war es zum Beispiel. Ich weiß es

Jochen

nicht so genau. Aber

Jochen

ja.

Jochen

Wenn du ein Repository hast, wird es natürlich

Jochen

einfacher, das Ganze zu verwalten. Ich meine, du musst halt

Jochen

nicht,

Jochen

hast halt

Jochen

eben nicht das Problem, dass du dann vielleicht noch

Jochen

irgendwie die Sachen, die

Jochen

sowieso alle eigentlich mit zu deiner

Jochen

Software gehören, nochmal alle zusätzlich

Jochen

als Pakete installieren musst, was halt vielleicht

Jochen

nicht so toll ist.

Jochen

Also, ja.

Jochen

Okay, aber Frontend

Dominik

und Backend vielleicht dann wenigstens so ein bisschen

Dominik

drin. Also ich würde es nicht machen.

Jochen

ist Geschmackssache. Es gibt Leute, die machen das.

Jochen

Ja.

Jochen

Also

Jochen

der

Jochen

Nachteil ist halt, wenn du das so machst,

Jochen

dann kriegst du die

Jochen

ordentlich dazu zusammenzuarbeiten. Wie machst

Jochen

du denn End-to-End-Tests? Das ist halt schwierig.

Jochen

Ja.

Jochen

Also, aber

Jochen

kann man tun. Also es gibt

Jochen

ja dann unter Umständen, wenn du größere Applikationen

Jochen

hast, dann auch so, dann ist das halt nach Teams unterschiedlich.

Jochen

dann gibt es halt vielleicht ein Team, das nur Frontend

Jochen

macht oder Teams, die nur Frontend machen

Jochen

und Teams, die nur Backend machen und

Jochen

ja, dann willst du es

Jochen

vielleicht doch irgendwie auftrennen.

Dominik

Also nett ist das natürlich tatsächlich,

Dominik

wenn man

Dominik

das auch einfach austauschen kann. Wenn man jetzt

Dominik

beispielsweise jetzt sein Frontend in Vue

Dominik

gebaut hat und man möchte aber noch eine Elektron-Applikation

Dominik

dazu basteln oder so,

Dominik

dann muss man das Backend ja nicht mehr anfassen,

Dominik

sondern nur den Frontend-Ordner

Dominik

wegschmeißen oder das Repo dann tauschen

Dominik

oder so.

Jochen

Oh, das verstehe ich nicht.

Jochen

Was möchtest du machen?

Dominik

Also ich habe jetzt mein Django Headless, ja.

Dominik

Da ist die API und die ganze Logik und die ganzen

Dominik

Modelle und die ganzen Daten, man kennt Links, alle

Dominik

für mich erledigt. Und ich möchte

Dominik

einmal eine Web-Applikation

Dominik

haben mit Vue beispielsweise und

Dominik

einmal eine native Desktop-Applikation, beispielsweise

Dominik

mit Elektronen.

Jochen

Ich würde sagen, du nimmst zwei unterschiedliche Verzeichnisse, fertig.

Jochen

Okay.

Jochen

Warum muss das ein anderes Repo sein?

Jochen

Wenn es doch die gleiche Applikation ist.

Jochen

Was ist denn jetzt, wenn du testen möchtest, die Daten für die Tests, hast du die dann doppelt in beiden Repositories? Was ist, wenn du die änderst? Wie sorgst du dafür, dass jetzt die Testdaten synchron bleiben, sodass halt auch die Tests aussagekräftig bleiben?

Jochen

Es ist halt irgendwie schwierig, wenn das

Jochen

zwei Repositories sind, dann wird das halt

Jochen

also ich sag mal

Jochen

so, es kann sein, dass das nötig wird, wenn man

Jochen

sehr stark skaliert oder so, aber

Jochen

es wird auch sehr viel, es wird umständlicher.

Jochen

Es ist halt dann

Jochen

komplizierter.

Jochen

Was wird umständlicher?

Dominik

Was wird umständlicher?

Jochen

Allein sowas wie, wie testest du denn dann?

Jochen

Wie testest du deine

Jochen

Desktop-Applikation und deine View-

Jochen

Test gibt es auch gar nicht.

Jochen

Ja, aber

Jochen

jetzt hast du das in unterschiedlichen Repositories.

Jochen

Du hast jetzt deine Fixtures, die irgendwie

Jochen

Testdaten sind, mit denen du

Jochen

deine Tests machst.

Jochen

Jetzt hast du festgestellt, oh, ich habe hier

Jochen

einen Testcase, der ganz wichtig ist.

Jochen

Den mache ich jetzt bei meiner Vue-Geschichte dazu.

Jochen

Wie sorgt

Jochen

deine Desktop-App dafür, dass das auch

Jochen

getestet wird? Wie kommt dieser

Jochen

Testcase da rein? Ja, ich meine, du machst doch sowieso

Dominik

eigene Tests für die Desktop und für Vue,

Dominik

Oder ist das unanfänglich?

Jochen

Ja, aber wenn du jetzt festgestellt hast,

Jochen

oh, dieses Ding muss ich unbedingt testen,

Jochen

das willst du doch vielleicht in einem anderen Ding auch getestet haben.

Jochen

Und wie würdest du das machen,

Dominik

wenn die beide gleichzeitig im selben Repository-Mann anordnen sind?

Dominik

Dann sind deine Testdaten beide gleich.

Dominik

Und das funktioniert auch.

Dominik

Wenn das eine Repository ist, geht das ja.

Dominik

Ja, ja, ja.

Jochen

Oder eben, ich meine sowas wie,

Jochen

du musst ja vielleicht, um end-to-end-Tests machen zu können,

Jochen

halt so ein Dummy-Backend hochziehen.

Jochen

Wenn das Schema da irgendwo steht.

Jochen

Wie sorgst du dafür, dass das so groben bleibt?

Jochen

Also, ja, und dann kann man natürlich anfangen,

Jochen

das mit irgendwie GIF-Submodules zu machen

Jochen

oder weiß der Teufel.

Jochen

Und dann, also, aber das ist alles.

Jochen

Tja, also, sag mal so, ich kann mir vorstellen,

Jochen

dass es Vorteile hat, es in mehreren Repositories zu haben,

Jochen

aber es wird halt auch komplizierter.

Jochen

Und die Frage ist, ob man es denn macht oder nicht,

Jochen

hängt halt davon ab, ob dir diese

Jochen

ob

Jochen

ob diese Komplexität

Jochen

gerechtfertigt ist. Ob die Vorteile so groß sind,

Jochen

dass die zusätzliche Komplexität

Jochen

halt irgendwie

Jochen

nicht so schlimm

Jochen

ist demgegenüber.

Dominik

Ja. Dockerisiert das

Dominik

Ganze und go, oder?

Jochen

Nee, das würde ich auch nicht

Jochen

sagen, dass man das unbedingt machen muss, sondern

Jochen

es hängt halt auch davon ab, was man

Jochen

ich meine, wenn man jetzt alleine entwickelt, dann braucht man

Jochen

Docker nicht. Also es ist halt

Jochen

das brauchst du ja nur dann, wenn du mehrere Leute

Jochen

hast, die unterschiedliche

Jochen

Entwicklungsumgebungen haben. Dann ist halt

Jochen

Docker irgendwie sinnvoll, aber

Jochen

also für Sachen, wo ich

Jochen

alleine dran entwickle, benutze ich kein Docker.

Jochen

Außer

Jochen

ich deploy es halt irgendwie da.

Jochen

Zum Deployen benutze ich schon Docker, aber

Dominik

Ja, ist halt die Frage, also wann das halt

Dominik

macht und wann nicht. Deployen ist auch noch so eine Sache,

Dominik

also weil, wie die

Dominik

planen sich dann überhaupt so ein Frontend? Also ich habe ja jetzt

Dominik

tatsächlich irgendwie dann diese ganzen Systeme, die

Dominik

Live-Development-Server haben,

Dominik

also in JavaScript, da gibt es

Dominik

irgendwie jetzt npm oder yarn und

Dominik

node oder

Dominik

warum benutze ich das eine, aber das andere

Dominik

mal hin und her und, also ich habe

Dominik

jetzt erst mal yarn benutzt, weil es so ein bisschen ähnlich von

Dominik

Potree war. Ja, also yarn

Jochen

ist ein bisschen neuer,

Jochen

die war mal schneller,

Jochen

weil es halt Sachen gecached hat und so, aber

Jochen

ich glaube, es macht

Jochen

heute keinen großen Unterschied.

Jochen

Nimmt sich nicht viel.

Dominik

Und dann installiere ich halt dann da irgendwie meine Projekte

Dominik

und dann kann ich halt irgendwie die bauen

Dominik

oder surfen direkt und sehe dann alle Änderungen.

Dominik

Das ist ja super. Aber wenn ich jetzt in mein Django

Dominik

zum Beispiel einbauen möchte,

Dominik

dann muss ich die ja alle packen.

Dominik

Ja, das ist alles...

Dominik

Ich hab da ganz, ganz übel jetzt in letzter Zeit

Dominik

so ein bisschen rumgefimmelt mit Webpack

Dominik

und der Konfiguration davon,

Dominik

bis es dann irgendwie mit gehashten JavaScript-Files

Dominik

und so in den Static-Ordnern

Dominik

landete, die ich das gerne wollte. Und dann ist

Dominik

halt auch die Frage, wenn man das dann in

Dominik

Production ziehen will, wo deployt man das Ganze

Dominik

dann eigentlich hin? Liegt das dann einfach auf dem

Dominik

Server rum, irgendwo lokal und wird dann als

Dominik

File ausgeliefert mit Django-Collect-Static

Dominik

oder was heißt das?

Dominik

Irgendwelche Tootsie-Wide-News habe ich gesehen und

Dominik

habe, wie gesagt, diesen Webpack-Loader genommen, dass er

Dominik

automatisch weiß, welche Files das sind

Dominik

und das ist schon

Jochen

nochmal so eine

Jochen

Wissenschaft.

Jochen

Das ist halt leider

Jochen

ich wünsche mir

Jochen

auch, das wäre irgendwie anders, aber es ist

Jochen

leider alles nicht so einfach

Jochen

und ich habe

Jochen

mich auch lange nicht damit beschäftigt, mit diesem ganzen

Jochen

Deployment-Kram und wie setzt man so komplette Systeme

Jochen

auf, aber ich fürchte, letztlich

Jochen

kommt man da nicht so richtig drum rum

Jochen

und es ist halt, es ist schlimm.

Jochen

Es wird dann irgendwann besser, zuerst

Jochen

denkt man sich so, das kann auch alles, man sieht kein

Jochen

Land und das wird irgendwie alles nicht besser, aber

Jochen

irgendwann geht's

Jochen

dann doch und zu diesem ganzen

Jochen

also ich

Jochen

wie macht man das

Jochen

mit den Assets

Jochen

und so, das ist ein Problem

Jochen

es gab da letzte

Jochen

PyCon

Jochen

also ungefähr fast ein Jahr her

Jochen

2019

Jochen

ein Vortrag von

Jochen

Jacob Captain Moss, also einem der

Jochen

Django Gründer

Jochen

und

Jochen

der Talk hatte den Titel

Jochen

Assets in Django without losing

Jochen

your hair.

Jochen

Ah, dann denkt man sich so,

Jochen

das habe ich mir auch gedacht, dann habe ich mir

Jochen

das so super endlich erklärt, wie man das richtig macht,

Jochen

ohne dass es so kompliziert wird.

Jochen

Und dann, ja, sagte er

Jochen

dann halt so an den ersten Sätze,

Jochen

die da, also ja, der Titel ist so ein bisschen

Jochen

Bait and Switch.

Jochen

Also tatsächlich, ich habe mir das,

Jochen

ich habe das auch nie so, also ich fand das auch mal

Jochen

kompliziert und dachte mir, ach, dann halte ich mal einen Vortrag drüber.

Jochen

Und dann

Jochen

muss ich es halt lernen und dann habe ich auch einen Grund,

Jochen

das zu tun und mir das alles nochmal genau

Jochen

anzugucken und jetzt habe ich das halt gemacht

Jochen

und ich hatte den Titel aber vorher schon

Jochen

hingeschrieben und ich muss

Jochen

aber sagen, nachdem ich das jetzt alles gemacht habe, ist es leider nicht

Jochen

einfach und man kann

Jochen

nichts machen.

Jochen

Tja, leider verloren, aber

Jochen

ich erzähle euch jetzt trotzdem, was ich alles rausgefunden habe

Jochen

und

Jochen

ja, es ist leider

Jochen

nicht einfach und

Jochen

das ist, also eine Geschichte bei Django ist zum Beispiel

Jochen

blöd, dass das halt

Jochen

Static heißt, das ist halt so komisch, weil

Jochen

damals gab es noch keinen etablierten

Jochen

Begriff dafür. Heute würde man das eher

Jochen

als Assets nennen.

Jochen

Aber unbedingt, man kann ja

Dominik

Static Files dir einfach auf Assets

Jochen

setzen, Dango. Ja, kann man schon, aber

Jochen

das Problem ist, die Konfigurationsparameter,

Jochen

die heißen ja immer noch so, das heißt dann immer noch Static Root

Jochen

und Static weiß der Teufel irgendwie.

Jochen

Das

Jochen

wird man halt nicht so leicht los.

Dominik

Man kann aber immerhin da in die Konfigurationsparameter

Dominik

sagen, Assets Root gleich, Static Root gleich.

Dominik

Das kann man natürlich machen, aber

Dominik

naja.

Dominik

Ja, hässlich.

Dominik

Ja, okay. Also okay, wir haben jetzt Assets,

Dominik

die liegen jetzt irgendwo, okay? Genau.

Jochen

Also tatsächlich gibt es in

Jochen

Django einmal die Geschichte, dass

Jochen

der,

Jochen

ja, also man,

Jochen

es gibt

Jochen

so eine Indirektion, die so ein bisschen komisch ist.

Jochen

Die ist nicht so intuitiv.

Jochen

Zum Beispiel,

Jochen

das wird auch oft aufgerufen,

Jochen

wenn man jetzt

Jochen

deployed zum Beispiel oder halt auch

Jochen

gibt es so ein Ding, das nennt sich

Jochen

CollectStatic, ein Kommando, ein Management-Kommando.

Jochen

Und was das macht, ist,

Jochen

es kopiert halt alle

Jochen

nackte

Dominik

Dateien aus der Static-Files

Dominik

oder

Dominik

einzelnen Apps, die man irgendwie, kann man

Dominik

einzelne Static-Files hinlegen, einzelne Assets

Dominik

und die sammelt das alle ein, wenn das irgendwie

Dominik

eingestellt ist richtig und speist das dann

Dominik

alles in den Ordner Static-Files rein, wo man

Dominik

es abrufen kann fürs Deployment.

Jochen

Ja, nee, es macht sogar

Jochen

auch noch mehr. Es deployed das Ganze.

Jochen

Also man kann es so einstellen, dass es zum Beispiel

Jochen

den Kram auch direkt nach S3 packt und so.

Jochen

Also wo ist das hin kopiert?

Jochen

Das ist halt konfigurierbar.

Jochen

Und es wird auch

Dominik

minifiziert, also zusammengefasst und so.

Dominik

Ist da auch weit neu schon mitbeteiligt?

Dominik

Was ist das überhaupt?

Dominik

Ja, weit neu ist

Dominik

eine ganz andere Geschichte.

Dominik

Also

Jochen

diese Static-Files-Geschichte

Jochen

in Django ist halt, also diese

Jochen

Indirektionen gibt es halt deswegen,

Jochen

weil Third-Party-Apps ihre eigenen Geschichten mitbringen.

Jochen

Ansonsten könnte man sich ja sagen,

Jochen

warum surft man nicht einfach das Static Directory?

Jochen

Dann hat man es doch schon fertig.

Jochen

Aber ist leider nicht so,

Jochen

sondern man muss halt diese ganzen,

Jochen

muss auch die Static Assets,

Jochen

die Assets von allen Apps, die man verwendet, einsammeln.

Jochen

Daher geht das halt nicht so leicht,

Jochen

sondern das muss halt alles eingesammelt werden.

Jochen

Und dann gibt es ja auch eventuell Sachen,

Jochen

ich könnte ja auch sagen,

Jochen

okay, also meine Assets liegen

Jochen

halt nicht in einem Verzeichnis, sondern die liegen

Jochen

halt irgendwo eben in einem S3-Bucket

Jochen

oder auf irgendwas, was

Jochen

Django Storage als Anbindung hat, also auch

Jochen

auf einem FTP-Server oder sowas. Könnte auch

Jochen

sein. Also

Jochen

genau, das Collect-Static holt halt

Jochen

Dinge irgendwo her und schreibt sie irgendwo hin.

Jochen

Ich kann Django mit einem

Jochen

FTP-Server verknüpfen? Kann man

Jochen

es, ich weiß nicht,

Jochen

ob das eine fehlenswerte Geschichte ist, ich möchte

Jochen

ja nicht.

Jochen

Gute alte Zeiten hier.

Jochen

und ja, das ist halt

Jochen

blöd und das wird man auch nicht so richtig los und

Jochen

ja, das ist nur der eine Aspekt

Jochen

daran, das ist halt dieser

Jochen

was passiert mit den Assets, wie kommen die jetzt

Jochen

eigentlich dahin, wo sie gesurft werden

Jochen

und jetzt kann man das natürlich entweder so

Jochen

machen, dass man sich

Jochen

im Entwicklungs

Jochen

Umgebungsfall

Jochen

halt einfach dann vom

Jochen

Django-Entwicklungs-Server ausliefern

Jochen

lässt

Jochen

und

Jochen

dann halt damit lebt, dass das irgendwie

Jochen

anders ist als im Produktionssystem, weil im Produktionssystem

Jochen

surft das natürlich nicht Django, sondern da

Jochen

liegt das halt irgendwie

Jochen

auf S3

Jochen

oder halt irgendwie

Jochen

in irgendeinem CDN oder halt

Jochen

irgendwie

Jochen

hinter irgendeinem Nginx oder was auch immer.

Jochen

Und

Jochen

wenn das jetzt anders ist als in der Entwicklungsversion,

Jochen

dann kann es natürlich sein, dass dann Bugs passieren, weil man

Jochen

das halt in der Entwicklungsgeschichte nicht gesehen hat,

Jochen

dass das so nicht funktioniert.

Jochen

was man

Jochen

dann aber machen kann, ist, dass man sozusagen

Jochen

die gleiche Infrastruktur benutzt, wie

Jochen

beim Produktions

Jochen

bei Produktions

Jochen

Deployment auch

Jochen

und dann

Jochen

was auch in dem Vortrag

Jochen

dann halt

Jochen

gesagt wurde, ist halt, was man tun kann, ist man

Jochen

Präfix das dann halt irgendwie mit, damit

Jochen

man halt nicht Produktionsassets überschreibt oder so

Jochen

Präfix das halt mit Entwicklungs

Jochen

Version oder sowas

Jochen

mit Develop davor oder so

Jochen

und naja, aber

Jochen

und hätte

Jochen

dann halt sozusagen die gleiche Umgebung, Entwicklungssystem

Jochen

und Produktionssystem. Habe ich bisher noch nicht so gemacht, aber

Jochen

dachte ich mir so, oh ja, okay, stimmt, so kann man das

Jochen

vielleicht machen, dann hat man auf jeden Fall dieses Problem nicht mehr.

Jochen

Ja, aber

Jochen

es ist natürlich auch irgendwie doof,

Jochen

dass man dann immer, wenn sich irgendwas geändert hat,

Jochen

dann das dann plötzlich, dass man

Jochen

dann Collect Static aufrufen muss und so.

Jochen

Ja, also direkt irgendwie kleine

Dominik

zwei Pixel geändert und dann einmal bitteschön nach S3

Dominik

ab und so. Ja, genau.

Dominik

Das ist natürlich auch wieder so.

Jochen

Aber es gibt halt keine tolle Lösung

Jochen

dafür irgendwie. Das ist immer ein bisschen

Jochen

doof, egal wie man es macht.

Jochen

Dann

Jochen

genau das, was halt White Noise macht,

Jochen

ist im Grunde nur eine andere Art.

Jochen

Also tatsächlich

Jochen

ist es

Jochen

wahrscheinlich das, was man jetzt

Jochen

machen sollte, wenn man

Jochen

statisch Files ausliefert.

Jochen

Und früher ging das so gar nicht, aber mittlerweile mit White-Noise kann der Applikations-Server statische Files ausliefern. Das ist ein Teil von dem, was White-Noise macht. Der andere Teil ist, die Cache-Header richtig setzen.

Jochen

So, das, was man dann tun kann, ist, man liefert irgendwie die Assets aus über den Applikations-Server und packt dann halt ein CDN davor, dem man einfach nur sagt, also, da kommen die Files eigentlich her, also wenn du irgendeine URL unter der Domain kriegst, frag eigentlich mal den Server danach und dahinter liegt dann halt der Applikations-Server und caches halt.

Jochen

Und die Cache-Header, die Cache-Control-Header,

Jochen

die werden alle richtig gesetzt von White-Nose.

Jochen

Und damit hast du halt ein System, das gut funktioniert.

Jochen

Und White-Nose kannst du halt sowohl

Jochen

in deiner Entwicklungsumgebung verwenden,

Jochen

wie auch in deiner Produktionsumgebung.

Jochen

Also eigentlich ganz, ganz cool.

Jochen

Wo ich ein Problem, wo ich nicht weiß,

Jochen

wie dieses Problem gelöst wird,

Jochen

das ist, und das sind halt immer so Dinge,

Jochen

so Authentifizierung, wie macht man das?

Jochen

Was ist, wenn ich jetzt,

Jochen

es gibt ja noch die Unterscheidung zwischen Static-Files

Jochen

und Assets, wie sowas

Jochen

wie CSS, irgendwelche Icons,

Jochen

irgendwelche

Jochen

JavaScript-Geschichten

Jochen

oder so, die sich im Grunde ja auch

Jochen

nicht wirklich ändern, die auch nicht dynamisch sind, wo auch Nutzer

Jochen

irgendwie nichts damit machen können und halt sowas wie,

Jochen

das ist in der Django-Welt, heißt das dann Media,

Jochen

wo

Jochen

zum Beispiel User-Uploaded

Jochen

hochgeladene Geschichten drin landen.

Jochen

Und

Jochen

jetzt ist es halt auch so, manche von den Sachen willst du halt nur

Jochen

Leuten, die sich irgendwie

Jochen

authentifiziert haben, zugänglich machen.

Jochen

Und

Jochen

das ist halt auch so, wie macht man das

Jochen

eigentlich richtig? Ich habe ehrlich gesagt keine Ahnung, wie

Jochen

mir das mit White Noise richtig geht, weil

Jochen

wenn das jetzt irgendwie in CDN draußen cached,

Jochen

was ist, wenn

Jochen

da jetzt ein Request von jemand anders kommt? Keine Ahnung.

Jochen

Also so wie ich das kenne, was man machen kann, ist,

Jochen

dass du halt irgendwie

Jochen

einen Webserver

Jochen

hast davor,

Jochen

der das halt

Jochen

ausliefern kann theoretisch, also irgendwie

Jochen

in Nginx oder so.

Jochen

Und da geht halt

Jochen

ein Request

Jochen

rein nach jetzt irgendeinem Bild

Jochen

oder nach irgendeiner Datei.

Jochen

Und

Jochen

der Applikations-Server schickt dann halt bloß

Jochen

zurück, okay,

Jochen

der Request ist autorisiert oder nicht.

Jochen

Und

Jochen

dann nimmt der Nginx das

Jochen

und ersetzt diese Response halt

Jochen

durch die File-Response.

Jochen

Weil er ja auf die Files zugreifen kann.

Jochen

Sowas kann man halt machen.

Jochen

Es ist halt auch alles ganz schön übel,

Jochen

wie man das jetzt mit White-Noise hinkriegt.

Jochen

Ich habe keine Ahnung.

Jochen

Aber das sind alles Dinge, die sind nicht so richtig einfach.

Jochen

Ja, aber tatsächlich

Jochen

für so statische Assets ist wohl der

Jochen

Weg zur Zeit

Jochen

White-Noise

Jochen

zum Ausliefern und dann halt,

Jochen

wenn man skalieren muss, halt ein CDN

Jochen

davor. Und vorher,

Dominik

wenn man den JavaScript-Frontend dann quasi gebaut hat,

Dominik

wird das mit Webpack

Dominik

so ein Bundle gepackt und

Dominik

Chunk-Vendors ausgeliefert. Das ist nochmal

Jochen

ein anderes Problem im Grunde. Also das ist das Problem,

Jochen

dass man halt, wenn man jetzt irgendwie

Jochen

eine JavaScript-Applikation

Jochen

im weitesten Sinne irgendwie entwickelt,

Jochen

dass man

Jochen

dann halt das

Jochen

in einem Bundle zusammen

Jochen

kopiert haben

Jochen

möchte und halt auch vielleicht transpiliert, weil man

Jochen

schreibt halt ES-Next oder man schreibt halt TypeScript

Jochen

oder sonst irgendwas, was die Browser nicht verstehen.

Jochen

Und dann muss das halt

Jochen

irgendwie nach ES6 oder ES6.

Dominik

Warum verstehen denn die Browser kein ES6?

Dominik

Also ES6 verstehen sie,

Dominik

aber ES-Next zum Beispiel nicht.

Dominik

Aha. Ja.

Jochen

Und halt TypeScript wahrscheinlich auch nicht.

Jochen

Oder CoffeeScript oder was auch immer man da verwenden möchte.

Jochen

Und weil die

Dominik

das nicht verstehen, dann muss man denen halt sagen,

Dominik

dass das transpiliert wird mit was wie

Dominik

Babel oder was gibt es da irgendwie.

Dominik

Irgendwelche Transformatoren und Transpiler

Jochen

und... Das ist die eine Geschichte, dann ist es

Jochen

auch so, dass es halt unter Umständen günstiger ist, wenn es halt

Jochen

alles in einem Ding ist und minifiziert

Jochen

und nicht in vielen unterschiedlichen, sodass der Browser

Jochen

nicht so viele Requests machen muss.

Dominik

Das heißt, den ganzen neuen Code, wie er

Dominik

schreibt, und was du gerade nicht all die S-T-S-S-S-S-S

Dominik

oder die ganzen Frontend-Sachen, die man da bauen kann,

Dominik

das nimmt Webpack

Dominik

dann und baut daraus dann minifizierte,

Dominik

also auch ohne alle Leerzeichen, damit sie schneller

Dominik

geladen werden können, Pakete, schraubt

Dominik

die zusammen zu verschiedenen Chunk-Vendors,

Dominik

wie sich das nennt, und liefert das mit allen diesen

Dominik

20.000 Notpaketen, die unbedingt notwendig

Dominik

sind für die ganze Anwendung,

Dominik

insgesamt als Files ausdrehen.

Dominik

Ja, also Webpack

Dominik

ist im Grunde das Ding, was halt

Jochen

einen Riesenhaufen, also das seine Applikation

Jochen

irgendwie nimmt und dann spuckt es halt so ein paar

Jochen

Bundles aus,

Jochen

die dann halt

Jochen

tatsächlich benutzt werden.

Dominik

Das wäre das dann, was man in die Static Files reinpacken

Dominik

kann. Genau, genau.

Dominik

Aber

Dominik

wo ich jetzt ein paar Mal noch mal

Dominik

drüber gefallen bin, ist, man könnte diese Files

Dominik

dann ja einfach deployen und dann in Django einfach ganz normal

Dominik

laden, indem man halt die Namen dann so reinpackt.

Dominik

Aber bei jedem Bild ist natürlich die Hash anders und

Dominik

das heißt, du wirst das jedes Mal, wenn du das Frontend irgendwas

Dominik

änderst, dann das komplett neu bauen und das

Dominik

dann in Django wieder anpassen und das willst du eigentlich nicht machen.

Dominik

Aber dafür gibt es dann irgendwie sowas. Genau, deswegen

Jochen

man schreibt ja auch die Pfade für die

Jochen

Static-Files und so, da schreibt man ja auch

Jochen

nicht direkt die Pfade

Jochen

rein, sondern dafür nimmt man ja auch

Jochen

das Static

Jochen

Template-Tag.

Jochen

Sodass halt egal, wenn ich jetzt meine

Jochen

Storage, wenn ich jetzt von S3 auf

Jochen

Compute Engine umsteige

Jochen

oder auf sonst irgendwas Minio oder

Jochen

dann muss ich halt nicht

Jochen

überall meine URLs

Jochen

ändern, sondern dann macht das Static Text das

Dominik

automatisch. Ja, aber eventuell dann doch, weil

Dominik

ja nämlich der

Dominik

Bild von Webpack, die andere Hashes

Dominik

und deswegen auch andere Namen für die einzelnen Files

Dominik

gibt und dann müsstest du dir Dateinamen halt ändern

Dominik

und das ist halt blöd und da braucht man eine Wiederlösung.

Jochen

Genau, du brauchst halt so eine ähnliche

Jochen

Lösung dann halt jetzt für deine Bundles

Jochen

und da gibt es dann irgendwas, Django Webpack Loader

Jochen

oder so und dann

Jochen

da sagt man dann irgendwie Render Bundle

Jochen

und genau, dann

Jochen

Dann funktioniert

Dominik

das auf jeden Fall dann, wenn man die gebildet hat.

Dominik

Ja, ich bin jetzt gerade noch dabei herauszufinden, wie

Dominik

das zum Beispiel mit Vue so funktioniert, dass dann der

Dominik

Developer-Server nicht kaputt geht.

Dominik

Aber ja.

Jochen

Ja, aber es ist ganz schön kompliziert

Jochen

und ich meine, es gibt ja auch dann

Jochen

tatsächlich muss man sagen,

Jochen

Webpack ist halt wahrscheinlich das,

Jochen

was man verwenden muss.

Jochen

gibt es keinen, nicht so wirklichen Weg drumherum.

Jochen

Es gibt auch noch Django-Kompressor und so,

Jochen

also wenn man jetzt nur CSS und vielleicht ein ganz

Jochen

kleines bisschen JavaScript,

Jochen

dann geht das auch alles damit gut, aber wenn man

Jochen

jetzt irgendwie kompliziertere Sachen macht, dann

Jochen

kommt man halt um Webpack eigentlich nicht rum.

Jochen

Auch die ganzen anderen Tools, die es da so gibt,

Jochen

die sind alle nicht vergleichbar

Jochen

mit dem, was Webpack so kann.

Dominik

Der Kompressor ist auch irgendwie kaputt gegangen,

Dominik

als ich ihn angefasst habe. Das lag natürlich nur an mir.

Dominik

Wahrscheinlich den falschen Gang reingehauen, getrieben, kaputt gemacht.

Jochen

Für die Sachen, die es kann, ist es super, aber

Jochen

das Problem ist halt, ja,

Jochen

es gibt ja noch das

Jochen

Kompressor-Toolkit.

Jochen

Ja,

Jochen

also es ist irgendwie nicht,

Jochen

ja, tatsächlich läuft es momentan

Jochen

auf Webpack hinaus. Es gibt

Jochen

noch ein anderes Ding, nennt sich Parcel.

Jochen

Das könnte sein, dass das irgendwann mal Webpack ablöst, aber

Jochen

momentan ist es halt noch Webpack.

Jochen

Und, ja,

Jochen

man muss das halt irgendwie alles

Jochen

integriert kriegen, ja.

Jochen

Ja.

Jochen

Ja, das ist so eine

Dominik

Geschichte. Das ist ganz schön hakelig,

Dominik

wenn man da mal so ein bisschen guckt. Das ist ja nicht nur

Dominik

Pixel-Grumm-Geschubse, wenn man mal so

Dominik

ehrlich ist.

Dominik

Es gibt so gute Witze. Ich habe letztens

Dominik

wieder einen ganz tollen gesehen, wo

Dominik

jemand ganz gemütlich frühstückt,

Dominik

Müsli-Schale und ganz gemütlich

Dominik

seine Cornflakes. Dann gibt es jemand, der

Dominik

stillt Milch hin. Das ist ein Roboter, der nimmt

Dominik

die Milchkanne und schüttet das dann so vor

Dominik

in die Schüssel rein und er gibt dabei die Hälfte der Milch

Dominik

so weg. Das ist dann so Frontend-Nutzer-Experience

Dominik

und Backend der

Dominik

Arm, der dann die Milch

Dominik

in die Schüssel gießen muss, ja.

Dominik

Tja, ja.

Dominik

Ja, haben wir noch was auf der Liste?

Dominik

Oder haben wir euch jetzt alles erzählt über das Frontend, was ihr

Dominik

heute wissen wolltet?

Jochen

Ja, das weiß ich nicht, ob das irgendjemand wissen wollte,

Jochen

aber wir haben es auf jeden Fall mal erzählt.

Jochen

Also mit allen Dingen, die wir immer tun.

Jochen

Aber im Grunde, ja, was halt

Jochen

interessant wäre, ist, ob das,

Jochen

ob da jemand Lust drauf hätte, mal irgendwie so

Jochen

eine Vue-Lerngruppe

Jochen

vielleicht mitzumachen

Jochen

und... Ja, ich bin da freiwillig dabei.

Jochen

Bitte? Ich bin da schon mal

Jochen

freiwillig dabei und melde mich.

Jochen

Super, dann sind wir

Jochen

dann ja schon komplett.

Jochen

Aber

Jochen

genau,

Jochen

halt auch mit viel Python und

Jochen

vielleicht auch Django oder man kann auch

Jochen

irgendwas anderes nehmen. Ich meine, ich hätte auch mal Lust,

Jochen

irgendwie Fast-API zum Beispiel auszuprobieren.

Jochen

So, Salet

Jochen

unten drunter und so. Da gibt es ja auch ganz, ganz

Jochen

nette Geschichten mittlerweile.

Jochen

Aber halt View im

Jochen

Frontend.

Jochen

Genau, dann kann man da, dann schreibe

Jochen

ich das vielleicht mal irgendwie auf und schicke

Jochen

das mal in diese Gruppe. Das ist

Jochen

View Cologne, glaube ich, irgendwie.

Jochen

Die könnte man ja dann vielleicht einfach zur virtuellen

Jochen

View

Dominik

Da müssen wir auch nicht da wieder hinfahren.

Dominik

Ja.

Dominik

Und vielleicht kann man es ja dann auch irgendwie

Dominik

wieder in die physische

Jochen

Realität verlegen,

Jochen

wenn es dann mal wieder möglich

Jochen

sein sollte.

Jochen

Dieser ganze Spuk,

Dominik

wobei es aber... Ja, ist ja ganz witzig, gerade genau die

Dominik

Sachen, mit denen man sich die ganze Zeit um den Dom kümmert,

Dominik

und den Dom, die sind ja alle da unten.

Dominik

In Köln. Ja, sorry.

Dominik

Können wir bestimmt auch noch irgendeinen,

Dominik

ja, warten

Jochen

jede Menge Wortwitze drauf, irgendwie.

Jochen

Ja, ich glaube auch.

Jochen

Verbrochen zu werden.

Jochen

Ja, wir haben schon wieder

Jochen

spät. Ja, es ist echt

Jochen

genau. Ja, eigentlich, was haben wir

Jochen

noch auf der Liste? TypeScript könnte man noch machen, aber ich meine

Jochen

eigentlich, nee,

Jochen

ich glaube,

Jochen

ich würde auch das Unitests-Mock

Jochen

vielleicht tatsächlich irgendwie einfach mal erstmal weglassen

Jochen

wieder und dann...

Jochen

Jetzt haben sich alle darauf gefreut, Jochen.

Jochen

Ja, aber...

Jochen

Wo muss ich denn jetzt aufstehen?

Jochen

Gerade für dich.

Jochen

Schrecklich, schrecklich.

Jochen

Ja.

Jochen

Ja, ich kann das verstehen.

Dominik

Ja, also hört uns auf jeden Fall, egal wo ihr seid,

Dominik

bleibt uns gewogen und morgens, mittags, abends,

Dominik

nachts, schön, dass ihr wieder eingeschaltet habt.

Dominik

Habt ihr eigentlich gesagt, wenn wir das aufnehmen?

Dominik

Ja, nicht, ne? Nicht konkret.

Dominik

Wir haben gesagt, dass es zwei Tage

Dominik

vor dem Python-Bahn-Camp ist.

Dominik

Wir haben gesagt, dass letztes Jahr 2019

Dominik

ein, zwei interessante Sachen gewesen sind.

Dominik

Also das kann man zurückrechnen. Wer möchte,

Dominik

es ist der 23. April 2020.

Dominik

Ja.

Jochen

Und genau, demnächst

Jochen

mehr Frontend

Jochen

Backend-Integration

Jochen

hier. Noch mehr.

Jochen

Aber wir haben ja immer noch ein paar andere Sachen.

Jochen

Vielleicht müssen wir die Frequenz ein bisschen erhöhen.

Jochen

Ja, ja.

Dominik

Wir haben noch einige ganz spannende Sachen. Wir brauchen

Dominik

Gäste. Wir hatten noch

Dominik

immer noch keine Frau

Dominik

hier bei uns zu Gast. Was daran lag, ja, wir hätten

Dominik

gerne eine mal da, die etwas erzählen kann

Dominik

oder beißt. Ich hatte mal ein paar gefragt, aber

Dominik

die haben sich alle nicht überreden

Dominik

lassen.

Dominik

Ja, vielleicht ändern wir das mal zu einer Jubiläumsfolge

Dominik

oder sowas, aber ihr kennt das ja wahrscheinlich

Dominik

in der Entwicklergemeinde, dass das leider

Dominik

die Quote nicht ganz so super,

Dominik

wie wir das gerne hätten.

Dominik

Ja, naja.

Dominik

Ja, aber das führt noch hin.

Dominik

Also in Data Science, ja, ich glaube auch,

Dominik

demnächst müssen wir uns mal ein bisschen darauf fokussieren.

Dominik

Vielleicht liegt es auch einfach an uns und wir sind zu

Dominik

beschroben.

Dominik

Ja, das kann auch gut sein.

Jochen

Ja, aber ansonsten, ja, alles klar.

Jochen

Ja, genau.

Jochen

Vielen Dank, dass ihr eingeschaltet habt.

Dominik

Macht euch noch einen schönen Abendtag morgen.

Dominik

Bleibt weiterhin gesund und

Dominik

hoffentlich bald mal wieder in live

Dominik

auf einem der schönen Events hier in der Ecke.

Dominik

Alles klar. Tschüss.