Transcript: DjangoCon Europe 2021

· Back to episode

Full episode transcript. Timestamps refer to the audio playback.

Dominik

Hallo liebe Hörerinnen und Hörer, willkommen zum Python-Podcast, heute in der Episode 2 to the Power of 5, Episode 32, heute geht es vor allen Dingen um DjangoCon und so ein paar Sachen drumherum, Jochen hat einen kleinen Stream aufgemacht und sowas und ja, heute ist wieder Johannes dabei, hi Johannes.

Dominik

Hallihallo, hallo, hi Jochen, hallo, ich bin der Dominik, hallo, genau, ja, wollen wir direkt mit der DjangoCon starten oder haben wir noch andere News, die da irgendwie reingehören?

Dominik

Ja, Django-Con sind die wichtigsten News.

Jochen

Okay, also die paar News, die ich habe, die kann ich auch direkt, weil ich habe nicht so viel verfolgt, weil es passieren die ganze Zeit irgendwelche Dinge und ich habe keine Zeit mehr irgendwas zu machen.

Dominik

Ja, Entschuldigung übrigens auch an der Stelle, dass wir euch so lange haben warten lassen, diese neue Episode, aber das war gerade absolut drunter und drüber im Privatleben, da musste man ja kurz ein bisschen warten.

Dominik

Nee, dann.

Dominik

Wir haben euch aber nicht vergessen, wir machen auch weiter.

Jochen

Genau, genau. Ja, dann können wir eigentlich direkt einsteigen.

Jochen

Ja, genau.

Jochen

Waren wir alle auf der Django-Con?

Jochen

Nein, ich nicht.

Jochen

Achso, dann können wir dir ja davon erzählen.

Jochen

Genau, ich wollte gerade sagen, es war mir zu virtuell

Jochen

und ich bin gespannt, was da losgeht.

Dominik

Ich habe gehört, es ging los mit Programming for Pleasure.

Dominik

Oder wollt ihr erstmal generell was sagen?

Johannes

Ja, das ist auch gleich das erste große Highlight, würde ich sagen.

Jochen

Ja, das war auch so ein Ding, was mich total überrascht hat.

Jochen

Also mit so einem Talk hätte ich gar nicht gerechnet.

Jochen

Vielleicht mal kurz am Anfang, worum es ging.

Dominik

Jemand hat erzählt, die meisten Menschen programmieren aus Spaß,

Dominik

weil es irgendwie cool ist.

Dominik

Aber das ist gar nicht so toll.

Johannes

Ja, das ist so ein bisschen die Hypothese davon, genau.

Johannes

Also Daniele Prosida hat diesen Talk gehalten,

Johannes

der erste Talk in der ganzen Konferenz

Johannes

und war direkt großartig.

Johannes

Ich hatte Daniele Prosida 2018 in Heidelberg schon mal gesehen

Johannes

und auch da hat er einen großartigen Talk gehalten.

Johannes

Auch völlig untechnisch, aber sehr relevant.

Johannes

Und die Hypothese, die er da aufstellt,

Johannes

ist halt, dass Programmierer Spaß an ihrem Job

Johannes

haben und

Johannes

dass das gut für die Programmierer ist, aber

Johannes

schlecht für alle anderen, weil dann machen wir das

Johannes

nämlich zum Spaß und nicht für das

Johannes

Ergebnis.

Johannes

Das heißt, für uns

Johannes

als Softwareentwickler ist es viel

Johannes

wichtiger, dass wir möglichst

Johannes

viel und möglichst lange programmieren können

Johannes

und was dann dabei

Johannes

rauskommt, ist gar nicht so wichtig, weil das

Johannes

ist nicht das, woran wir Interesse haben.

Dominik

Für mich als Chef ist das jetzt total Mist, das heißt, ich muss

Dominik

jetzt irgendwie versuchen, euch anders zu erziehen.

Jochen

Also tatsächlich, ich

Jochen

fühlte mich, als ich den Vortrag gehört habe

Jochen

und ich dachte so, wir gingen ja auch schon so los

Jochen

irgendwie so, ja, programmieren, voll gut

Jochen

irgendwie total bessere

Johannes

Jeder macht das ja auch selber zu Hause

Jochen

Zu Hause noch und ja, da dachte ich so, ja, ja

Jochen

voll gut

Jochen

und dann kam irgendwann der Punkt, wo das dann

Jochen

umschlug und ich so, ja, kann das nicht auch sein, dass

Jochen

das vielleicht total schlecht ist und da fühlte ich mich schon ziemlich ertappt

Jochen

weil ich fürchte, auf mich trifft das ziemlich genau zu

Jochen

Erwischt

Jochen

es ist auch leider tatsächlich so, dass

Jochen

ich das Gefühl habe, manchmal so, ja, aber das ist

Jochen

halt auch, manchmal sind halt auch die Projekte, die man

Jochen

macht, so vom Ergebnis her, da ist man

Jochen

gar nicht so sehr am Ergebnis interessiert, weil

Jochen

Aber das ist schlecht

Jochen

doch. Das ist schlecht, ich weiß.

Jochen

Das hat mir jetzt jemand letztens in einem

Jochen

Jungle-Con-Talk erzählt. Wo ist dein purpose-driven-commitment?

Jochen

Ja, das ist auch manchmal, aber das

Jochen

ist auch wirklich schwierig, finde ich, bei manchen Projekten.

Jochen

Also, naja,

Jochen

aber das Programmieren selber macht ja Spaß

Jochen

und da kann man sich auch drüber motivieren, aber stimmt,

Jochen

dann hat man halt mit dem Ergebnis,

Jochen

wenn es dann nicht so richtig passt, dann denkt man sich so,

Jochen

naja Gott, also mir hat es schon Spaß gemacht.

Jochen

Ja, genau.

Jochen

Deshalb gibt es so viel schlechte Software.

Johannes

Und das Schlimmste ist ja, selbst wenn es schlecht ist,

Johannes

dann bedeutet das ja nur, dass wir noch mehr

Johannes

programmieren müssen.

Dominik

Was ich noch nicht verstanden habe, ist, warum wird die Software

Dominik

denn schlechter, wenn man Spaß dabei hat?

Dominik

Die wird nicht automatisch schlechter,

Johannes

aber sie wird

Johannes

auch nicht automatisch besser.

Johannes

Und das ist so das Problem.

Dominik

Was heißt denn besser? Da sind wir wieder vielleicht bei so einem

Dominik

Quantifizierungsbeispiel, was das denn überhaupt ist.

Dominik

Ja, das spielt keine Rolle.

Dominik

Das spielt gar keine Rolle, wie du es quantifizierst,

Johannes

weil das ist nicht das Ziel der Sache. Du orientierst dich nicht daran,

Johannes

wie kann ich die Software besser machen,

Johannes

sondern du orientierst dich erstmal

Johannes

und unterbewusst daran,

Johannes

wie kann ich mehr Software machen.

Johannes

Und

Johannes

das ist halt normalerweise nicht das Ziel,

Johannes

mehr Software zu produzieren.

Johannes

Beziehungsweise

Johannes

da hat niemand was davon.

Johannes

Da ist doch einer.

Johannes

Ja, genau. Derjenige, der ist

Johannes

hinterher nicht bezahlt.

Johannes

Ja.

Jochen

Okay. Ja, ich meine natürlich, also

Jochen

besonders schlimm und das ist natürlich

Jochen

auch so etwas, das wird ja auch immer gesagt

Jochen

und ich erlebe das auch in Projekten so, dass es

Jochen

halt besonders dann schwierig

Jochen

ist, wenn man halt wenig Kontakt

Jochen

zu den tatsächlichen Benutzern und

Jochen

zum Endkunden hat. Und das kann natürlich auch

Jochen

nochmal sein, dass das da so eine Rolle spielt, weil

Jochen

wenn einem sozusagen der Endnutzer

Jochen

tatsächlich mehr oder weniger häufiger

Jochen

auf dem Schoß sitzt und sagt, was ihn quält,

Jochen

dann kann man ja da vielleicht so eine

Jochen

gewisse Empathietransferleistung erbringen und

Jochen

sagen, na gut, okay, wenn der

Jochen

so drunter leidet, dann kann ich da vielleicht auch mal was machen.

Dominik

Das ist ja was anderes als ein quengelnder Manager, der wird dann

Jochen

gerne mal... Ja, aber auch wenn man

Jochen

den Kunden nie sieht. Aber ein quengelnder Manager hat jeder.

Dominik

Ja, deswegen ja, also das ist nicht so effektiv.

Dominik

Nee, überhaupt nicht.

Dominik

Nee, das ist nicht so. Oder

Jochen

Jira-Tickets, ja. Jira-Tickets machen jetzt nicht

Jochen

unbedingt so empathische Reaktionen.

Jochen

Ehrlich gesagt, ich

Jochen

ja, also

Dominik

das ist für mich aber auch

Dominik

wie man die Tickets dann irgendwie schätzt, wie lange das dauert

Dominik

das ist halt auch irgendwie so eine subjektive Sache und man kann halt

Dominik

sich auch mal mehr Zeit lassen, mal weniger und so

Dominik

mehr Zeit dann verbringen mit der

Dominik

schönen ästhetischen Herangehensweise

Dominik

diese Aufgabe zu

Dominik

lösen, ne? Das ist für mich aber auch

Johannes

so ein bisschen die Gegenhypothese, also auch

Johannes

Software, die keinen Spaß macht zu schreiben, ist auch nicht gut

Johannes

auch Kobol-Programme sind meistens nicht

Johannes

super

Johannes

und da möchte ich

Johannes

niemandem vorwerfen, dass er Spaß dran hatte, die zu

Dominik

schreiben. Kobalt, ist das nicht die 13. Kolonie in

Dominik

Battlestar Galactica?

Dominik

Ja, das ist...

Johannes

Letztes Jahr hat man ja gesagt, das Schlimmste an Covid-19 ist,

Johannes

dass es auch ein Jira-Ticket sein könnte.

Johannes

Ja.

Johannes

Ja.

Dominik

Wir mussten ein Projekt intern umbenennen,

Dominik

weil irgendjemand das Delta genannt hatte.

Dominik

Ja.

Johannes

Aber ja, man fühlt sich auf jeden Fall ertappt, weil ich meine, jeder von uns hat schon mal Sachen so vor sich hingedudelt und die dann auf GitHub hochgeladen und irgendjemand anderes muss jetzt darunter leiden.

Johannes

Also es ist auf jeden Fall schon so und das ist auch genau wie Daniel Poloschida da sagt, nicht gängig in anderen Berufsgruppen, dass die ihre Arbeit mit nach Hause nehmen.

Johannes

Also das Beispiel, was er da bringt, ist, dass der Zahnarzt in seiner Freizeit normalerweise keine Zähne richtet, sondern das macht er halt nur beruhigt.

Dominik

Ich stelle mir gerade so einen Zahnarzt vor, der eine Sammlung von Gebissen in seinem Garten legt.

Johannes

Ja, und dann vielleicht auch mal ein bisschen drin rumbohrt und sagt, hier ist aber ein Wurzelkanal, den wir mal ganz dringend rausbohren müssen.

Johannes

Ich glaube, zu so einem Zahnarzt würde ich nicht gehen wollen.

Dominik

Ja, das Einzige, was mich tatsächlich nervt am Weiterprogrammieren ist, dass ich nur sitze und nicht stehen kann.

Dominik

Schön ist ja die Idee, die ich mal gesehen habe.

Dominik

Genau, beim Standing-Desk mit einer

Dominik

Laufwand drunter, fand ich ja ziemlich cool.

Dominik

Das wäre so eine Sache, das müsste ich eigentlich noch machen.

Johannes

Dann kannst du noch die Geschwindigkeit, kannst du dann auch noch

Johannes

irgendwie übertragen auf die Maus-Geschwindigkeit

Johannes

oder sowas.

Dominik

Weil ich mache das wirklich

Dominik

auch sehr gerne, auch in der Freizeit, also wenn man irgendwie

Dominik

Zeit hat, Sachen zu bauen, das ist halt irgendwie

Dominik

so ein was Schaffendes, so was Schönes,

Dominik

Kreationistisches, das ist echt was Tolles.

Dominik

Das ist halt so ein bisschen wie mit Lego spielen.

Johannes

Ja, aber niemand von uns würde

Johannes

in ein Lego-Haus einziehen wollen.

Johannes

Ja, ja, ja. Das ist ja irgendwie so ein Handwerk.

Dominik

Man hat hinterher was Richtiges in der Hand. Also vielleicht sowas wie mit

Dominik

Holz. Also nicht, dass ich jetzt irgendwo gut mit Holz arbeiten

Dominik

konnte, aber so vom Gefühl her.

Dominik

Das kann man schön machen, dann noch

Dominik

lackieren und dann mit einem Schwung, einem Bogen

Dominik

rein, ein ganz tolles Holz auswählen,

Dominik

dann mit einer schönen Maserung und so.

Dominik

Und dann eine ganz tolle Sache zusammenfliegen.

Dominik

Das ist ja fast schon was Klischeehaftes.

Dominik

Gerade zusammengesteckt.

Dominik

Fast schon klischeehaft, dass Softwareentwickler

Dominik

dann irgendwann zu Woodworkers werden.

Dominik

Ja, das ist wahrscheinlich

Jochen

auch tatsächlich halt sowas Ähnliches, nur

Jochen

dass die Rahmenbedingungen halt nicht so schrecklich

Jochen

sind, wenn man einen Schrein hat.

Jochen

Ja, und dass es auch egal ist.

Jochen

Es ist kein Manager, der hinter einem steht und sagt,

Johannes

mach mal das hier, sondern es geht wirklich nur darum,

Johannes

da was zu haben. Aber auch da,

Johannes

da geht es ja auch tatsächlich mehr um das Ergebnis.

Johannes

Da ist auch das Ergebnis sichtbarer. Du kannst hinterher

Johannes

sagen, der Schrank ist gerade oder nicht.

Johannes

Genau, wäre dann nicht ein

Jochen

möglicher Ausweg, so ganz

Jochen

naiv, wenn man

Jochen

sein eigener Kunde wird,

Jochen

wo man dann quasi,

Jochen

Ja, dass man sagt, okay, ich bin halt dann derjenige,

Jochen

der am Ergebnis auch interessiert ist,

Jochen

weil es ist halt auch mein Produkt.

Jochen

Genau, das würde ich halt auch sagen.

Dominik

Ganz richtig, halt dieses Purpose-Driven,

Dominik

dass du halt wichtig dafür brennst, dass du das machst,

Dominik

so wie du dir das vorstellst, weil du halt diese User-Story

Dominik

quasi selber in dir drin trägst, ja, zum Benutzen.

Dominik

Aber den ich ja meistens gar nicht.

Dominik

Ja, genau, aber wenn das halt so ist und halt irgendwie

Dominik

ein Management das halt nicht hinkriegt, was verkackt,

Dominik

dass du halt so eine Informationsasymmetrie bekommst

Dominik

zwischen User-Story oder Management,

Dominik

weißt, was richtig ist und du weißt, was du machen willst,

Dominik

das wird halt schwierig zu managen.

Dominik

Also das ist eigentlich unmöglich zu managen, weil du kannst, die meisten

Dominik

Manager sind ja technisch jetzt nicht so affin,

Dominik

kannst du irgendwas vom Pferd erzählen und das machen dann auch irgendwann

Dominik

viele Leute, die halt keine Lust haben auf irgendwas.

Dominik

Wir erzählen halt irgendwas von ganz, ganz

Dominik

komplizierten Funktionen, die da geschrieben werden müssen

Dominik

und so und dann dauert das halt

Dominik

gefühlt ein bisschen länger,

Dominik

bis nach zwei Teilen fertig und hast

Dominik

wieder Zeit für die schönen Dinge oder so.

Dominik

Du meinst, dann kannst du noch ein paar

Dominik

Unit-Tests schreiben? Ja, zum Beispiel.

Johannes

So nutzt man doch dann die Zeit, oder?

Johannes

man schreibt Tests und Dokumentation

Johannes

und... Ja, das fällt halt auch dann

Dominik

meistens mal runter, weil die Leute immer sagen, ja, das ist alles

Dominik

total unwichtig, oder so

Dominik

Refactorings oder sowas.

Jochen

Für einen selber als Programmierer ist es nicht ganz so

Jochen

wichtig, ja.

Jochen

Ja, für alle Leute,

Jochen

die mitarbeiten, vielleicht.

Jochen

Das war auf jeden Fall ein großer Paukenschlag,

Johannes

so direkt zur Eröffnung der Konferenz

Johannes

hat auch, ist super

Johannes

gut angekommen und...

Dominik

Programming for pleasure, Daniel Furchier.

Dominik

Der macht auch sonst gute Talks.

Jochen

Der hat auch schon welche über Dokumentationen gemacht,

Jochen

die ich auch sehr gut fand.

Dominik

Sind die eigentlich schon online, die Talks?

Dominik

Ich glaube nicht.

Dominik

Die müssen aber jetzt in den nächsten Tagen

Dominik

irgendwann auf YouTube erscheinen, oder?

Johannes

Ich glaube, 30 Tage habe ich irgendwo gehört,

Johannes

aber ich weiß es nicht.

Johannes

Wann war die nochmal genau?

Johannes

Am 2. Juni.

Johannes

2. Juni.

Johannes

2. bis 6. Juni.

Dominik

Dann ist ja jetzt in 10 Tagen alles da.

Dominik

Müsste demnächst soweit sein.

Dominik

Also ich weiß nicht, wie sie es machen, aber ja.

Dominik

Cool.

Dominik

Was hat euch denn noch super gut gefallen?

Dominik

Also ich meine, das habt ihr vielleicht noch gar nicht gesagt.

Dominik

die beiden hatten auch einen Talk, beziehungsweise einen Worktop,

Dominik

die ich natürlich beide dann doch getalkt habe.

Johannes

Der nächste Talk, der mir sehr gut gefallen hat, war der von

Johannes

Jochen Wersdorfer, war sehr, fand ich sehr, sehr gut.

Johannes

Jochen, erzähl,

Johannes

hast du den auch geguckt? Erzähl doch mal.

Dominik

Ich habe gerade übrigens das erste Mal deinen vollen Namen gesagt in diesem Podcast.

Dominik

Oh je.

Jochen

Ich glaube, auf der Webseite war der auch schon irgendwie drauf.

Jochen

Hab ich dich gedoxed.

Jochen

Kann man auch nicht wirklich verändern.

Jochen

Ja,

Jochen

nö, das, genau, also ich habe

Jochen

den auch ein paar Mal, ich habe den, ich habe ja tatsächlich

Jochen

so ein bisschen dann geübt und so

Jochen

und dachte, oh, vielleicht kann ich

Jochen

dann auch live halten. Das hat dann irgendwie nicht geklappt,

Jochen

weil mein Video,

Jochen

mein vielleicht ein wenig zu

Jochen

elaboriertes Video-Setup das nicht zugelassen hat,

Jochen

weil wenn man das als Webcam bei

Jochen

Zoom registriert, dann wird die

Jochen

Schrift so unscharf, dass man es nicht mehr lesen kann.

Dominik

Um mal kurz euch vorzustellen, wie Jochen das macht.

Dominik

Jochen schmeißt tatsächlich ein mega krasses

Dominik

Technik-Setup, wie er schon mal gesagt hat. Oh, Content interessiert

Dominik

gar nicht so, Technik ist das, was wichtig ist.

Dominik

Schmeißt er dann alles halt

Dominik

irgendwie in OBS rein mit einer ziemlich krassen Webcam

Dominik

und ziemlich cool im Setup da auch

Dominik

mit seinem großen, was ist das

Dominik

für ein Fernsehstudio

Jochen

Kontrollpult. Genau, das war so

Jochen

ein Atem Mini von Blackmagic.

Jochen

Und tatsächlich braucht man dann keinen OBS mehr. Das Ding

Jochen

streamt selber. Ah ja, okay. Also siehst du noch nicht mal

Jochen

OBS, du hast da einfach selbst konfiguriert

Dominik

und dann, ja, das sah auch schon ziemlich cool aus,

Dominik

muss ich sagen. Aber

Dominik

wir wollten das gar nicht annehmen, hast du gerade

Dominik

gesagt. Ja, zurück zum Content. Genau, das hat halt

Jochen

dann nicht funktioniert live. Sonst hätte ich das auch

Jochen

live gemacht. Ach, wegen Zoom? Genau.

Jochen

Und da musste halt die Aufnahme verwendet werden,

Jochen

die überraschend früh eingereicht werden musste.

Jochen

Das hatte mich auch so ein bisschen Schweiß gekostet.

Jochen

Oh ja.

Jochen

Und ja, weil ich hatte doch gar keine Slides fertig und so.

Dominik

Ja, die Story habe ich ja noch im Ohr.

Dominik

Aber jetzt haben wir schon darüber gesprochen,

Dominik

was oder wie du getalkt hast, aber über was denn?

Jochen

Das ist ein Thema, mit dem ich seit einiger Zeit

Jochen

irgendwie so ein bisschen hadere oder wo ich dann rumfeile.

Jochen

Und zwar, was ich irgendwie ein bisschen doof finde, ist, wenn man so mit Files zu tun hat, also tatsächlich Dateien, irgendwie größere vor allen Dingen, also Bilder können auch schon größer werden oder Videos oder Audiodateien.

Jochen

Und Audiodateien hat man natürlich irgendwie beim Podcasten schon zu tun und irgendwie die Seite für diesen Podcast hier, den habe ich ja auch mal irgendwann gebaut.

Jochen

Und da ist es so, da verwende ich so ein CDN, um die Audio-Files auszuliefern.

Jochen

Und auch wenn ich das jetzt in irgendwelchen Kundenprojekten sehe oder so, wenn Leute mit Files umgehen,

Jochen

dann hinterlässt das meistens so ein, das ist irgendwie noch nicht so richtig optimal Ding bei mir,

Jochen

weil oft hat man dann so Anforderungen wie, das habe ich jetzt beim Podcast nicht,

Jochen

aber so in quasi, ja, wo man so Auftragsarbeiten,

Jochen

dann hat man halt oft Leute,

Jochen

die irgendwie Authentifizierung und Autorisierung haben wollen

Jochen

für die Dateien, weil das Sachen sind,

Jochen

die nicht unbedingt öffentlich sind.

Jochen

Und dann wird es schon schwierig.

Jochen

Und das, was halt alle machen eigentlich,

Jochen

oder die meisten jedenfalls, wo ich das bisher gesehen habe,

Jochen

ist, dass sie einfach irgendwie als Dateinahme

Jochen

den Hash des Files nehmen oder so

Jochen

und das irgendwo auf einen öffentlichen Webserver

Jochen

packen und dann sagen, naja,

Jochen

also wird schon keiner finden. Wird schon keiner erraten,

Jochen

was der Hedge ist. Ja, genau. Ja, das ist

Jochen

wirklich so, das wird schon keiner erraten.

Jochen

Nee, das ist richtig, aber das Problem ist, es kann halt

Jochen

irgendwie aus anderen Kanälen halt auch rausliegen,

Jochen

wie zum Beispiel irgendwelchen Logfiles oder

Jochen

auf der Client-Seite, dass halt irgendjemand

Jochen

die Links verschickt. Speichert oder

Jochen

das verschickt oder so. Ganz genau.

Jochen

Und dann hat man halt. Du kannst es auch nie wieder zurücknehmen.

Jochen

Ja. Wenn du es einmal jemandem gezeigt hast,

Jochen

der hat es für immer. Genau.

Jochen

Und das ist halt so ein bisschen

Jochen

vielleicht nicht unbedingt das fassen will. Und wenn man dann sagt so,

Jochen

oh, das ist aber eigentlich vielleicht nicht so ganz so optimal,

Jochen

dann kommt halt häufig so, ja,

Jochen

ach, das wird schon,

Jochen

das ist jetzt,

Jochen

das lösen wir dann später mal, keine Ahnung,

Jochen

da müssen wir uns mal Gedanken drüber machen.

Jochen

Ja, aber das ist halt dann schon eine relativ

Jochen

zentrale Geschichte, dass Authentifizierung irgendwie

Jochen

funktioniert. Und später

Jochen

sich drum kümmern ist halt bei solchen Sachen oft ziemlich

Jochen

schwierig, wenn man dann halt schon irgendwie

Jochen

Dinge hat, die darauf basieren, dass das so funktioniert,

Jochen

wie es funktioniert. Und wenn es kaputt funktioniert,

Jochen

dann ist diese, das ist halt sehr schwer hinterher ein System nochmal reinzubringen und dann hat man halt eigentlich ein unsicheres System und das ist natürlich eigentlich nicht so richtig, dass man es haben möchte und das hat mich schon immer so ein bisschen geärgert, also ich habe auch schon gesehen, dass Leute das richtig machen, aber das ist halt eher so die Ausnahme und die Art.

Jochen

Was wäre denn richtig? Was gibt es denn für Alternativen?

Jochen

Genau, also das, was man tun kann, wäre halt, wenn man jetzt quasi das komplett alles selber hosten möchte, vielleicht so ein Nginx davor zu nehmen, davor zu haben.

Jochen

Man hat ja sowieso immer irgendeine Art Reverse-Proxy vom Applikationsserver bei Django und da kann man ja jetzt, also auch diesen Lösungsansatz, den habe ich ja von dir, Johannes.

Jochen

Gibt es da was, was man mit NGINX machen kann?

Jochen

Ja, ja.

Jochen

Genau.

Jochen

Dann geht der Request vom Browser aus,

Jochen

geht halt direkt zum Applikationsserver.

Jochen

Aber der Applikationsserver schickt halt nicht das File zurück,

Jochen

sondern der schickt halt eine leere Response zurück,

Jochen

in der nur ein Header gesetzt ist.

Jochen

Also Xen-File oder X-Excel heißt der, glaube ich, bei NGINX.

Jochen

Wo dann drin steht, ja, ja, das ist schon okay.

Jochen

Und dann ersetzt der Nginx die leere File-Response durch die echte File-Response.

Jochen

Und wo kriegt der die her?

Jochen

Ja, der braucht dann halt Zugriff auf, wie auch immer, das Verzeichnis oder was auch immer.

Jochen

Also aus einer Datei, oder?

Jochen

Ja, genau.

Jochen

Okay, aber das ist ja schon mal ziemlich cool, oder?

Johannes

Dann kann ich ja sagen, hier, diese Datei darfst du nur ausliefern, wenn folgende Vorbedingungen gelten.

Johannes

Also ich kann die Vorbedingungen in meinem App-Server prüfen und das Ausliefern macht dann aber Nginx.

Johannes

Also das ist ja schon mal ziemlich cool.

Jochen

Damit ist eigentlich ziemlich super. Also das funktioniert

Jochen

tatsächlich. Das einzige Problem, wo ich

Jochen

sagen würde, naja, das ist halt so ein bisschen hässlich

Jochen

an der Lösung, ist, dass

Jochen

naja, also man hat

Jochen

jetzt plötzlich zwei Systeme, die Zugriff auf alle

Jochen

Daten haben müssen. Also

Jochen

zumindest auf alle Dateien haben müssen.

Johannes

Und es muss halt auch so verbunden sein, dass

Johannes

die das beide korrekt finden. Genau. Und

Jochen

du kannst es halt nicht mehr gut testen.

Jochen

Ob jetzt deine

Jochen

Applikation alle

Jochen

Sicherheitsanforderungen noch erfüllt, kannst du in

Jochen

Django-Tests allein nicht mehr machen.

Jochen

weil dein Applikationsserver

Jochen

kann ja sagen, nee, da darf jemand nicht

Jochen

drauf zugreifen, dein Test überprüft das und sagt so,

Jochen

super, hier ist alles richtig.

Jochen

Und dein Nginx kann aber die Datei trotzdem ausliefern,

Jochen

weil der irgendwie falsch konfiguriert ist oder keine Ahnung,

Jochen

weil da sonst irgendwie was schiefgegangen ist.

Jochen

Und das heißt, du merkst

Jochen

unter Umständen nicht, wenn dein System kaputt geht,

Jochen

weil du den einen Teil nicht mehr so

Jochen

wirklich mittesten kannst, weil es halt auch schwierig ist,

Jochen

das komplette System dann halt immer beim Entwickeln

Jochen

hochzufahren mit Nginx und dem ganzen

Jochen

Kram. Also eigentlich müsstest du es ja dann

Jochen

mittesten.

Johannes

Man verschiebt quasi so ein bisschen was von dieser Testlast in den operativen Bereich.

Johannes

Weil im Endeffekt musst du ja dann das operative System testen und überprüfen.

Johannes

Und du müsstest ja eigentlich sogar einen negativen Test machen.

Johannes

Du musst ja nachweisen, dass Nginx diese Datei unter keinen Umständen ausliefert, außer wenn.

Johannes

Und das ist natürlich sehr, sehr schwierig.

Johannes

Aber gibt es denn da Echtweltbeispiele?

Johannes

Das passiert doch in der echten Welt nicht, oder?

Johannes

dass irgendwas offen konfiguriert ist, wo

Johannes

Daten rumliegen. Das passiert so gut wie

Johannes

die, ja. Also auch

Johannes

diese Leaks, die dann immer gibt.

Johannes

Das passiert ja

Jochen

nicht. Also ich meine, tatsächlich ist auch eine der häufigsten

Jochen

Sachen, die man so sieht, dass dann irgendwo jemand

Jochen

halt sich mal irgendwelche Sachen angeguckt hat

Jochen

und dann, oh, was ist denn da? Hier sehe ich

Jochen

meine Dateien. Hm, was ist denn? Da gibt es halt vielleicht noch mehr.

Jochen

Oder dass irgendwelche Backup-Server

Johannes

offen sind oder dass irgendwelche Log-Server

Johannes

offen sind oder dass irgendwelche. Ja, ja.

Jochen

Und dann sind halt plötzlich alle Daten

Jochen

von allen Leuten irgendwie öffentlich und das ist halt furchtbar

Jochen

eigentlich.

Jochen

Genau, also so kann man das halt

Jochen

machen, aber dafür muss man jetzt, also ich würde

Jochen

sagen, das ist auf jeden Fall schon somit die beste Lösung,

Jochen

die ich so gesehen habe,

Jochen

wie man das richtig machen kann.

Jochen

Man kann das auch noch

Jochen

machen, also wenn man jetzt die eigene

Jochen

Infrastruktur komplett unter Kontrolle hat, wenn man das nicht

Dominik

hat. Es hört sich halt auch so ein bisschen an, als wäre es

Dominik

ein bisschen komplexer, zu dem

Dominik

NGINX zu erzählen, dass er die selben Sachen versteht

Dominik

für Authentifizierung, Autorisierung, wie zum Beispiel

Dominik

die Applikationshilfe mit dem Django dahinter

Dominik

oder so.

Dominik

Nee, das ist gar nicht das Problem.

Jochen

Das muss er nicht. Der Request geht ja durch

Jochen

einen Applikationsserver. Das heißt, der Applikationsserver

Jochen

entscheidet. Der Nginx

Jochen

sieht nur den Header und macht dann, oder

Dominik

macht eben nicht. Das heißt, das Einzige, was man quasi macht,

Dominik

muss die richtigen Header setzen und dann läuft es.

Dominik

Vom Applikationsserver aus, ja genau.

Jochen

Das ist auch sowas. Da gab es dann in der Reaktion

Jochen

auf den Talk, glaube ich, im Slack

Jochen

oder so, hat dann jemand gesagt, da gibt es doch in Nginx

Jochen

auch ein Ding, wo man

Jochen

der Nginx dann beim Applikationsserver nachfragt,

Jochen

ob das authentifiziert ist oder nicht. Das ist auch sehr schön.

Jochen

Das ist, also würde ich sagen,

Jochen

funktioniert ähnlich gut und das ist vielleicht sogar noch mal

Jochen

ein bisschen besser, weil man es dann

Jochen

schlechter falsch konfigurieren kann, weil

Jochen

ja.

Jochen

Es ist leichter testbar, oder?

Jochen

Es ist leichter testbar. Wenn die Authentifizierung

Jochen

nicht da ist, darf der einfach nichts ausliefern.

Jochen

Das kann man leichter nachweisen.

Jochen

Also insofern, das kannte ich noch gar nicht und das

Jochen

klingt eigentlich auch sehr gut.

Jochen

Das ist durchaus eine Geschichte, die man machen kann.

Jochen

Das Einzige, was daran so ein bisschen

Jochen

blöd ist, ist halt, es funktioniert nur,

Jochen

wenn man, also es macht die Infrastruktur

Jochen

komplizierter und es funktioniert nur, wenn man die komplette Kontrolle

Jochen

drüber hat. Wenn man jetzt ein CDN verwendet oder so,

Jochen

geht das halt nicht mehr so richtig. Ja, was könnte

Johannes

ich denn machen, wenn ich meine Dateien auf S3 habe?

Johannes

Die kann ich ja auch auf Private schalten

Johannes

oder Public. Gibt es denn da auch eine Möglichkeit?

Jochen

Erzähl mal. Genau, ja. Also was man

Jochen

da tun kann, ist, man benutzt

Jochen

entweder Signed Cookies oder halt

Jochen

signierte URLs

Jochen

und

Jochen

über den Applikationsserver aus. Also das

Jochen

bedeutet im Grunde, die URL, die man an den Browser ausliefert,

Jochen

da steht halt,

Jochen

also ist halt eine Signatur drin. Ein Token

Jochen

dran oder? Ja, so was. Also

Jochen

es ist ein bisschen mehr Daten, es ist nicht nur

Jochen

die Signatur, sondern es ist halt immer noch so

Jochen

also ich weiß nicht, ob das dann letztendlich JSON ist

Jochen

oder so, also das kann man auch, ist halt wahrscheinlich

Jochen

gibt es verschiedene Techniken für, genau

Jochen

da steht dann halt meistens noch sowas drin

Jochen

wie, also diese URL ist

Jochen

jetzt 30 Minuten gültig ab jetzt, oder ab

Jochen

diesem Zeitstempel, oder die ist halt nur

Jochen

gültig für IP-Adressen aus

Jochen

dem Adressbereich oder sowas. Oder nur für einen Klick

Jochen

oder sowas, oder für einen Aufruf oder sowas?

Jochen

Ja, weiß ich nicht, ob man das da einstellen kann, also

Jochen

IP-Adressen und Zeit weiß ich, dass es

Jochen

bei Amazon geht, auf jeden Fall

Jochen

und das kann man halt entweder in die URL packen

Jochen

oder man kann es halt sozusagen vom

Jochen

Server aus als Cookie setzen

Jochen

und wenn das dann quasi,

Jochen

wenn dieser Request, da kommt es halt

Jochen

darauf an, wie die Domains aussehen und so

Jochen

und wenn das eine andere Domain ist, ist es manchmal vielleicht schwierig

Jochen

also ob man jetzt als

Jochen

Applikationsserver ein Cookie setzen kann für

Jochen

die Domain, unter der dann tatsächlich

Jochen

die Files liegen, aber wenn man das kann, kann man das

Jochen

halt auch einfach so als Cookie setzen

Jochen

und

Jochen

ja, das

Jochen

funktioniert halt auch.

Jochen

Das ist auch richtig

Jochen

eigentlich sozusagen in Anführungsstrichen

Jochen

ordentlich, aber man hat halt immer noch

Jochen

das gleiche Problem, dass

Jochen

eigentlich ist es ein bisschen schlechter als

Jochen

die Lösung mit dem Nginx, weil man

Jochen

halt nicht wirklich von dem

Jochen

CDN aus überprüfen kann, ob die Autorisierung noch

Jochen

da ist oder nicht. Also wenn man jetzt in Django Admin

Jochen

sagt, diese Files, dieser User,

Jochen

darf die nicht mehr sehen, dann

Jochen

kann das halt nicht sofort funktionieren,

Jochen

sondern wenn man halt eine gültige URL hat, dann

Jochen

ja, funktioniert die erst mal

Jochen

weiter, zumindest 30 Minuten lang oder so.

Jochen

Gut, ist dann halt nicht mehr so schlimm, als wäre die für immer

Jochen

gültig, aber

Jochen

auch da reicht es ja unter Umständen schon,

Jochen

um

Jochen

irgendwie die Daten daraus zu kriegen.

Jochen

Es ist halt so ein bisschen, also es ist

Jochen

besser als nichts zu machen, aber es ist halt immer noch so ein bisschen

Jochen

so, ah, so richtig schön ist es eigentlich nicht.

Jochen

Ja.

Jochen

Und genau.

Jochen

Ja, also das sind halt so die beiden

Jochen

Ansätze, wie man das ordentlich macht eigentlich.

Jochen

Aber was ist denn jetzt die richtige Lösung?

Johannes

Was kann man denn heutzutage noch besser machen?

Jochen

Genau, meine Idee an der Stelle war,

Jochen

okay, naja, es muss im Grunde über den Applikationsserver gehen,

Jochen

weil der der Einzige ist, der weiß,

Jochen

ob jetzt ein User irgendwas sehen darf oder nicht.

Jochen

Das kann man auch nicht irgendwie großartig anders machen,

Jochen

ohne Probleme zu bekommen.

Jochen

Wie wäre es denn, wenn der einfach selber die Files ausliefert?

Johannes

Aber davon wird ja erstmal abgeraten, oder?

Johannes

hast du Worker beschäftigt und dann hast du

Johannes

nur so und so viele App-Server

Johannes

und dann sind die

Johannes

langsam und brauchen viel Speicher und so.

Jochen

Genau, also in allen Tutorials

Jochen

steht immer drin, nee, macht das nicht. Also wenn ihr

Jochen

irgendwie Files ausliefern wollt, macht das über einen

Jochen

getrennten App-Server, der da statt

Jochen

Files direkt ausliefern kann oder macht das mit White Noise

Jochen

und CDN oder so, aber

Jochen

macht das nicht über den Applikations-Server, weil das Problem

Jochen

beim Applikations-Server ist halt, dass es normalerweise

Jochen

standardmäßig

Jochen

ein Pre-Fogged, also sozusagen

Jochen

Es gibt mehrere Prozesse, die halt Requests beantworten, davon gibt es halt so ein paar, eine Handvoll vielleicht oder allgemein vielleicht zweimal Anzahl der Cores plus eins oder so, was halt halbwegs optimal ist und solange die irgendwas ausliefern, sind die halt belegt und wenn ich jetzt einen Pfeil ausliefer, das groß ist oder einen kleinen Tab, der sehr wenig Bandbreite hat, dann kann das halt lange dauern und solange wie das dauert, ist der Worker-Prozess sozusagen belegt

Jochen

und wenn alle Worker-Prozesse belegt

Jochen

sind, dann kann niemand mehr anrufen

Jochen

und dann ist es schlecht.

Jochen

das hinausläuft.

Jochen

Und genau.

Jochen

Ja, daher sollte man das nicht machen,

Jochen

und das kann schnell passieren. Wenn man eine Webseite hat,

Jochen

da sind ja viele Bilder drauf.

Jochen

Auch die Browser, die fragen ja inzwischen

Jochen

Concurrent ab und so.

Jochen

Dann ist es halt relativ schnell vorbei mit den Workern.

Jochen

Und

Jochen

ja, dann müssen halt

Jochen

andere Clients warten.

Jochen

Und das ist natürlich schlecht, weil das hat halt

Jochen

direkten Einfluss auf die User Experience,

Jochen

weil entweder dauert es länger oder noch schlimmer.

Jochen

Es gibt halt eine Fehlermeldung, weil irgendwas timeoutet.

Dominik

Das heißt, man müsste die auch konkurrent bedienen.

Jochen

Genau, und das kann dieses Pre-Forked-Worker-Modell-Synchronen-Sachen-Ausliefern eigentlich nicht leisten.

Jochen

Deswegen wird immer davon abgeraten.

Jochen

Aber wir haben ja jetzt Async-Await in Python seit einiger Zeit.

Jochen

In Django noch nicht so lange, weil da konnte es halt lange nicht so richtig verwendet werden,

Jochen

weil die Standardschnittstelle zwischen Applikationsserver und Web-Framework ist halt WSGI.

Jochen

Und WSGI kann das halt einfach nicht.

Jochen

Da ist halt, das sind halt

Jochen

synchrone Funktionsaufrufe, da kannst du auch nichts machen.

Jochen

Und

Jochen

ASGI, also der quasi

Jochen

Nachfolger, der halt dann auch

Jochen

sozusagen asynchrone

Jochen

Dinge

Jochen

kann, der ist halt noch nicht so alt,

Jochen

ist auch quasi auch im Kontext von

Jochen

im

Jochen

Django-Kontext irgendwie entstanden.

Jochen

Der Standard ist von Andrew Godwin geschrieben worden,

Jochen

der halt auch... Ja, das habe ich im Janals-Projekt

Jochen

aus dem Janals-Projekt, das ist rausgefallen.

Jochen

Genau und damit geht das dann, aber Unterstützung für die Syntax war auch lange nicht möglich, weil Django lange Zeit noch Python 2 zum Beispiel unterstützt hat bis Dezember 2019, also bis Django 3 rausgekommen ist und mit Python 2 geht es gar nicht, weil da gibt es einfach nicht die Syntax für, so Async Await Syntax geht damit nicht und auch mit Python 3.5 ging das nicht gut.

Jochen

ich weiß ehrlich gesagt nicht genau, woran das

Jochen

liegt, also weil die Syntax kam eigentlich mit

Jochen

3.5, aber alle Bibliotheken, die das

Jochen

irgendwie, die Async Await unterstützen, die sagen

Jochen

alle immer, ja, erst ab Python 3.6, da ist wohl

Jochen

irgendwas Wichtiges noch passiert, aber ich habe nie so richtig

Jochen

rausgefunden, was. Vielleicht sind es auch

Jochen

einfach nur die F-Springs und alle sagen so,

Jochen

ach, wenn wir jetzt schon was Modernes haben, wollen wir auch F-Springs

Jochen

haben und dann geht das halt erst

Jochen

ab 3.6, ich habe keine Ahnung.

Jochen

Und ja.

Jochen

Aber ich meine, 3.5 und 3.6 macht jetzt für uns

Jochen

nicht so den Riesenunterschied, oder? Wir sind ja alle modern.

Jochen

Auch Debian ist inzwischen auf 3.8

Jochen

und oh wow, okay.

Jochen

Ja, genau.

Jochen

Jedenfalls also

Jochen

die Syntax kann man, also dass es überhaupt geht

Jochen

ist halt ab

Jochen

Django 3.0 so.

Jochen

Support für Python 2

Jochen

und für Python 3.5 gedroppt

Jochen

und seitdem gibt es auch

Jochen

Unterstützung für ASGI und halt auch

Jochen

prinzipiell die Möglichkeit

Jochen

AsyncIO-Syntax zu verwenden in Django.

Jochen

Aber es gab noch keine AsyncViews.

Jochen

Das heißt, man konnte keine

Jochen

AsyncFileResponse schreiben,

Jochen

weil, naja,

Jochen

Isingviews gab es halt einfach nicht. Und das kam

Jochen

erst dazu im August

Jochen

letzten Jahres, August 2020.

Jochen

Das heißt, es geht noch gar nicht so lange.

Jochen

August 2019 meinst du?

Jochen

Nee, 2020.

Jochen

Letztes Jahr war doch 2019.

Jochen

Ach ja, okay.

Jochen

Ach ja.

Jochen

Ja, okay,

Johannes

auf jeden Fall gibt es das erst seit ungefähr einem Jahr.

Jochen

Genau. Und damals hatte ich ja auch

Jochen

schon ein bisschen... Warum ist das cool?

Jochen

Genau, das ist halt total cool, weil

Jochen

das bedeutet eigentlich,

Jochen

dass man jetzt so richtig Async-Sachen mit Django

Jochen

tun kann. Was man auch nicht tun

Jochen

kann, was auch total cool wäre, aber das wird halt noch ein bisschen

Jochen

dauern, ist halt tatsächlich

Jochen

Async, die Datenbank

Jochen

fragen oder so, aber man hat zumindest

Jochen

schon mal Async-Views. Und das ist halt

Jochen

hilfreich.

Jochen

Ich hatte damals einen Artikel

Jochen

auch drüber geschrieben, mit Dominik zusammen.

Jochen

Genau, der ist sogar

Dominik

in der Zeitung erschienen, auf Deutsch dann, unter deinem Blog.

Dominik

Echt? Cool.

Dominik

Darf man das sagen, Entwickler?

Dominik

oder? Ja, ich glaube, ja.

Dominik

Schickle-Magazin war das.

Dominik

Und

Jochen

genau, da haben wir überlegt, okay, was für

Jochen

Anwendungsfälle gibt es denn jetzt eigentlich, wenn man schon

Jochen

Async-Kram machen kann?

Jochen

Und der

Jochen

Anwendungsfall, den wir dann da benutzt haben, war,

Jochen

du machst halt

Jochen

in der Django-Applikation halt vielleicht ganz viele

Jochen

API-Zugriffe irgendwo nach außen hin und

Jochen

möchtest halt nicht, dass sich die

Jochen

Latenzen, die du dann beim Abfragen dieser

Jochen

Requests hast, halt aufsummieren, sondern

Jochen

dass halt der

Jochen

die Latenz nur so lang ist, wie der längste

Jochen

Request, den du machst. Und dann schickst du einfach all die

Jochen

Requests, die du zu irgendwelchen APIs machst, halt gleichzeitig

Jochen

los und

Jochen

die Antworten kommen halt sozusagen dann

Jochen

auch concurrent zurück und

Jochen

nur, also die Latenz wird

Jochen

bestimmt durch die langsamste API,

Jochen

aber nicht mehr durch die Summe aller

Jochen

Requests. Und das

Jochen

macht es dann halt schon deutlich schneller. Also wenn du da viele

Jochen

APIs fragst, dann kann es sein, dass du da halt

Jochen

in Größenordnung schneller

Jochen

bist oder so. Und das ist

Jochen

dann ja schon praktisch.

Jochen

Und das war so der Anwendungsfall.

Jochen

Hatten wir da nicht auch drüber gesprochen in der

Jochen

Async-Episode? Ja, ja, bestimmt.

Jochen

Ja, genau, da hatten wir ja auch schon mal

Jochen

zwei Episoden dazu gemacht.

Jochen

Wir brauchen noch mehr.

Jochen

Thema, da kann man immer noch mal drüber sprechen.

Jochen

Ja, vielleicht sogar alle gleichzeitig.

Dominik

Wenn man ein Thema einmal drin hat, dann muss man das auch ein bisschen ausschalten.

Dominik

Ja, genau.

Jochen

Aber jetzt, genau, ist mir dann halt irgendwann,

Jochen

das war so Anfang des Jahres, dann dachte ich so,

Jochen

ach, wenn man jetzt schon so Async-Evade hat,

Jochen

vielleicht ist ja tatsächlich Files-Serven

Jochen

ein guter Anwendungsfall,

Jochen

weil es ist ja immer so ein bisschen hässlich,

Jochen

so richtig toll ist es nie und

Jochen

eigentlich könnte man ja jetzt eine Async

Jochen

File Response schreiben, die

Jochen

die Daten sozusagen da

Jochen

so asynchron rausstreamt, ohne

Jochen

zu blockieren und dann

Jochen

müsste das ja eigentlich, müsste ich ja quasi beliebig

Jochen

viele Clients

Jochen

den Files ausliefern können.

Jochen

Und dann habe ich

Jochen

dann halt so ein bisschen rumprobiert und

Jochen

hat so ein bisschen gedauert und irgendwann aber

Jochen

dachte ich so, okay, das funktioniert tatsächlich und

Jochen

ja, dann habe ich daraus halt

Jochen

dann hat

Jochen

der Johannes erzählt, dass er dann irgendwas

Jochen

bei der Django.eu eingereicht hat

Jochen

und da dachte ich so, das muss ich dann auch machen

Jochen

den Talk eingereicht haben

Jochen

der soziale Druck

Jochen

ja und

Jochen

genau, das war dann auch Thema

Jochen

des Talks im Grunde und ja, es

Jochen

funktioniert auch tatsächlich, ich habe jetzt

Jochen

ich habe unterwegs auch

Jochen

Methoden gefunden, wie man das gleiche hinkriegt

Jochen

und auch schon vorher hinkriegen

Jochen

konnte, ohne sich so zu verrenken.

Jochen

Insofern war es

Jochen

vielleicht alles nicht so richtig notwendig.

Johannes

Ja, aber das ist ja schon sauberer,

Johannes

was du da geschrieben hast. Wir haben ja die Tests

Johannes

gesehen und in einigen

Johannes

Tagen kann vielleicht jeder auch sich diesen Talk

Johannes

selber angucken. Ja, ich packe das.

Johannes

Ist ja schon deutlich sauberer und deutlich einfacher.

Johannes

Wirst du das auch an

Johannes

Django schicken?

Johannes

Ich mache dann einfach ein

Jochen

Party-Package draus.

Jochen

Das wäre ja prinzipiell was, was vielleicht

Johannes

auch für Django an sich interessant ist.

Jochen

Ja, das Problem ist,

Jochen

leider funktioniert es nicht so

Jochen

richtig, kann man es nicht einfach in Django,

Jochen

könnte man es nicht in Django reinbauen

Jochen

oder könnte man schon, aber dazu müsste man

Jochen

den ASGI-Händler, das ist so

Jochen

das Ding, was halt mit

Jochen

die Applikation ist, quasi die

Jochen

ASGI-Applikation, das ist halt der ASGI-Händler

Jochen

in Django.

Jochen

Ach, den hast du einfach mal gemunkeypatcht, oder?

Jochen

Naja, den müsste man anpassen

Jochen

und das ist natürlich nicht so schön.

Johannes

Ja gut, aber das ist in MPR auch prinzipiell möglich.

Johannes

Oder dass man Subklassen anbietet oder sowas.

Jochen

Ja, muss man

Jochen

mal mit jemandem

Jochen

drüber sprechen. Ja genau, dann machst du halt den

Dominik

ASCII mit Async-File-Response-Händler.

Dominik

Genau, aber den habe ich

Jochen

jetzt einfach erstmal in einem anderen Paket drin und wenn man

Jochen

das verwenden möchte, dann muss man das halt

Jochen

entweder get

Jochen

Async-File-Response-Händler

Jochen

oder Application

Jochen

importieren oder halt den Händler direkt

Jochen

und dann die Applikation selber instanziieren

Jochen

und dann geht das, aber das ist halt schon

Jochen

ein Umbau an Django. Das Problem ist, ich weiß halt nicht, was das alles

Jochen

kaputt machen würde.

Jochen

Da kann es schon sein, dass einige Dinge nicht mehr funktionieren.

Jochen

Ja, genau, dafür gibt es Tests.

Jochen

Ja.

Dominik

Ja, klingt auf jeden Fall ziemlich cool. Das heißt, man kann jetzt

Dominik

einfach mit dem Dango-Applikations-Server

Dominik

seine Files direkt ausliefern.

Dominik

Man muss sie nicht mehr irgendwie außen vom

Dominik

Web-Server quasi routen lassen, sondern man kann direkt sagen,

Dominik

Dango, hey, nimm die doch mal direkt aus.

Dominik

Was nutzt man dafür? Dango-Storages raus oder so

Dominik

und liefer die mal mit.

Dominik

Ja, und das, achso,

Jochen

das war damals, als ich den, damals,

Jochen

vor zwei Wochen,

Jochen

war das

Jochen

noch nicht so klar. Also man kann auch irgendwie

Jochen

ein selbst gehostetes S3

Jochen

oder so benutzen, weil das ist ja eigentlich

Jochen

auch mein Ziel. Ich habe es mit dem Filesystem gezeigt,

Jochen

aber Filesystem ist ja eigentlich so ein bisschen langweilig, weil

Dominik

Wie hostet man S3 selber? Minio?

Dominik

Minio, genau.

Dominik

Weil man möchte eigentlich nicht,

Dominik

dass User

Jochen

selbst so Content,

Jochen

Files, wo sie den Content kontrollieren, in das gleiche

Jochen

Filesystem nehmen kann, in dem die Applikation

Jochen

läuft. Das ist halt auch so ein bisschen gefährlich.

Jochen

Und man hat dann das Synchronisationsproblem,

Jochen

kann man natürlich irgendwie so ein

Jochen

Samba-Share nehmen oder NFS oder was weiß ich.

Jochen

Oder 7.

Jochen

Geht alles, aber ist halt auch so ein bisschen

Jochen

äh.

Jochen

Ancient Relaying.

Jochen

Ja, also die

Jochen

Standard

Jochen

Geschichte, wie man das selber hostet

Jochen

momentan, also so ein Object Store wie

Jochen

S3 oder so,

Jochen

ist halt wohl momentan Minio.

Dominik

Da müssen wir ja quasi direkt so einen kleinen Exkurs

Dominik

machen, weil an der Stelle, das hast du alles

Dominik

gezeigt auf deinem neuen

Dominik

Twitch-Stream.

Dominik

Genau, genau, genau.

Jochen

Die Entwicklung daran, die habe ich jetzt gerade mal gestreamt, weil ich dachte so,

Jochen

jetzt konnte ich dieses Atem-Mini-Dings

Jochen

da gar nicht auf den Talk einsetzen.

Jochen

Da muss ich es auf irgendwas anderes benutzen.

Dominik

Also Jochen hat tatsächlich in der letzten Woche

Dominik

oder in den letzten zwei Wochen ein bisschen mehr auf Twitch gestreamt

Dominik

und auf YouTube gleichzeitig und da seine Sachen

Dominik

hochgeladen. Da könnt ihr ihm ein bisschen beim Live-Programmieren

Dominik

mal gucken. Das ist vielleicht ein bisschen was anderes, als nur so

Dominik

zu theorisieren.

Dominik

Sondern halt auch mal tatsächlich live zu sehen,

Dominik

wie Jochen das denn so macht.

Jochen

Ich da vorsitze und keine Ahnung habe, was ich da eigentlich tue.

Dominik

Genau, Jochen ist auch nur Mensch und macht die ganze Zeit Fehler und so und mir fällt

Dominik

wenn ich da vorsitze, ich möchte die ganze Zeit

Dominik

hier so einen Stock nehmen und

Dominik

Bist du auch wünschend gegen Jochen? Kann man sich wünschen, was du

Dominik

programmierst? Oder programmierst du nur, was

Dominik

dir Freude macht?

Dominik

Ja,

Jochen

prinzipiell kein Problem, ja klar.

Jochen

Vielleicht gegen eine

Jochen

kleine Spende, kannst du vielleicht

Jochen

Requests annehmen.

Jochen

Ja, genau.

Dominik

Mir sind auch immer wieder aufgefallen, schöne Sachen da

Dominik

bei dir, die du schön gemacht hast.

Jochen

Ich packe den Link mal rein, mal gucken, ob

Jochen

da... Immer wenn ich denke, hä, das

Dominik

hätte ich doch ganz anders gemacht, fällt Jochen dann eine halbe Stunde

Dominik

später auf, oh, das kann man ja auch anders machen.

Jochen

Ja, aber ich meine, so ist das halt.

Jochen

Mir sind da auch schon tatsächlich live Dinge passiert,

Jochen

wie, ich habe

Jochen

da live einen Bug in irgendeiner

Jochen

Library gefunden, sozusagen, und

Jochen

dann sitzt da, also ich hatte bisher

Jochen

immer so den Impuls dann zu sagen, so, okay,

Jochen

das muss ich dann mal irgendwann debuggen, wenn ich Zeit habe, weil

Jochen

das ist zu langweilig.

Jochen

Immer wieder, aber

Jochen

das ging, glaube ich. Also ich meine, aber es ist ja vielleicht

Jochen

auch ganz gut mal zu sehen, was man da so

Dominik

rumsucht. Also Jochen benutzt dafür

Dominik

übrigens NBDEV.

Dominik

Da hatten wir auch schon mal eine Folge ein bisschen eingeleitet.

Jochen

Genau, das mache ich eigentlich nur, weil

Jochen

ich das Projekt ganz cool fand.

Jochen

Das mache ich jetzt nicht unbedingt mit allen Sachen so, aber für das

Jochen

Ding dachte ich, kann ich das machen.

Dominik

Du musst das ja nicht nochmal anders machen, also nochmal

Dominik

in VI und einmal in VS Code

Dominik

oder so, da können wir mal schauen. Vielleicht sogar in PyCharm,

Dominik

dass man so ein bisschen einmal zeigt, wie das denn überall so geht.

Dominik

Genau, das habe ich

Dominik

auf jeden Fall auch vor.

Dominik

Ja, genau.

Dominik

Vielleicht kriegen wir das ja auch mit dem Podcast nochmal

Dominik

da so ein bisschen

Jochen

den vielleicht so ein bisschen

Jochen

Video-Live-

Jochen

Live-Schalter gestalten.

Jochen

Mal gucken, ob wir dafür Zuschauer

Jochen

begeistern können.

Jochen

Ja, cool. Genau.

Dominik

Ich glaube, noch jemand hat halt tatsächlich

Dominik

einen Workshop bei der dann begonnen.

Dominik

Ja, ich bin ja

Dominik

quasi schuld dran, dass der ja von dem

Johannes

Talk überhaupt eingereicht hat, weil ich

Johannes

hab das nämlich auch gemacht und das war bei mir auch so ein bisschen

Johannes

so halb spontan.

Johannes

Also lange geplant.

Johannes

Nee, eigentlich überhaupt nicht, weil die Botschaft auf der Webseite, die die Organisierer, die übrigens großartig sind, so verbreiten, ist ja, ja, selbst wenn du dir nicht sicher bist, probier es halt mal. Komm, reich was ein, im schlimmsten Fall machst du keinen Talk. Im schlimmsten Fall musst du einen Talk machen.

Johannes

Und so war es dann auch so ein bisschen. Ich habe mir überlegt, was andere Menschen interessieren könnte und was ich Interessantes sagen könnte und habe es einfach mal so ein kleines bisschen reingeschrieben. Die Talk-Beschreibung hat sich dann auch im Laufe der Zeit noch mehrmals geändert. Es ist auch nicht genau das gewesen, was ich mir anfänglich gedacht hatte. Aber ja, ich habe einen Talk eingereicht, der dann als Workshop akzeptiert wurde. Und es ging so ein bisschen darum, wie ich Django-Projekte mache.

Dominik

Also so ein bisschen das, was du auch von dir in unseren Podcast-Folgen erzählt hast wahrscheinlich.

Johannes

Genau, so ein bisschen Best Practices oder Programmierer-Erfahrung.

Johannes

Ich programmiere jetzt schon sehr lange in Django.

Johannes

Ich habe mal nachgeguckt, welches die erste Version war, die ich benutzt habe.

Johannes

Das war die 0.96.

Johannes

Ist schon eine ganze Weile her, das war 2005.

Johannes

Also ich habe jetzt tatsächlich 15 Jahre Django-Erfahrung.

Johannes

15? Das ist ja noch 2020.

Johannes

Ja, wieso?

Johannes

Ich habe den Witz eben nicht verstanden, deswegen habe ich ihn noch nicht gefasst.

Johannes

Wir müssen den Witz jetzt einfach so lange wiederholen, bis jeder glaubt.

Johannes

Ich habe also über 15 Jahre Django-Erfahrung und da sammeln sich einfach so Dinge an, die man sich angewöhnt, an die man tut und die dann auch sinnvoll sind.

Johannes

Und Best Practices dazu zu sagen, ist ein bisschen zu hoch geflogen, weil Best Practices heißt ja, dass das jeder so macht oder jeder so machen sollte.

Johannes

Und so weit will ich gar nicht gehen.

Johannes

Ich will eigentlich nur sagen, hier folgende Dinge

Johannes

haben sich für mich bewährt und

Johannes

hier ist auch die Begründung.

Johannes

Und ja, das habe ich dann so ein bisschen da reingepackt.

Johannes

Also ich hatte vier Bereiche

Johannes

mehr aufgeschrieben.

Johannes

Während des Live-Talks

Johannes

sind es leider nur drei Bereiche geworden, aber

Johannes

es gibt ja genau wie beim

Johannes

Jochen auch eine sehr frühzeitig eingereichte

Johannes

Aufnahme,

Johannes

die auch auf meiner Webseite

Johannes

zur Verfügung steht. Können wir nachher gerne verlinken.

Dominik

Wagen euch auch ein bisschen mehr für Einsteiger

Dominik

geeignet, glaube ich, den Talk, den du gemacht hast, das was doch

Dominik

jetzt. Ja, es war so ein bisschen

Johannes

gedacht, dass ich vier verschiedene Bereiche habe

Johannes

und manche sind für Einsteiger gut und manche

Johannes

sind eher für Fortgeschrittenere

Johannes

gut.

Johannes

Was dann halt am Ende so ein kleines

Johannes

bisschen rausgefallen ist. Diese Einsteiger

Johannes

Sachen, wobei auch erfahrene

Johannes

Leute, also ich

Johannes

wechsle da immer so hin und her. Der Bereich,

Johannes

der mich da hauptsächlich beschäftigt

Johannes

war, ist Projektstruktur.

Johannes

Wo kommt Code hin? Wie heißen die Dateien?

Johannes

Wie sorge ich dafür, dass ich

Johannes

die Sachen alle wiederfinde?

Johannes

Wie sorge ich dafür, dass ich auch in einem großen Projekt

Johannes

den Überblick bewahre? Und sowas

Johannes

halt. Und ich wechsle da immer

Johannes

so hin und her. Es gibt ja Leute, die sind da ganz krass drauf.

Johannes

Die haben dann ihre extrem

Johannes

angepassten Cookie-Cutter-Vorlagen,

Johannes

wo alles anders ist, wo alles

Johannes

Custom ist.

Johannes

Und es gibt Leute, die benutzen Django

Johannes

Start Project. Und ich

Johannes

wechsle da immer so ein bisschen hin und her.

Johannes

Ich sehe die Vorteile von beidem. Und in

Johannes

den letzten Jahren bin ich mehr so in Richtung

Johannes

Django Start Project gegangen.

Johannes

Weil das schon eine gute Basis

Johannes

ist und weil das jeder machen kann

Johannes

und weil das

Johannes

jeder auch versteht. Aber das hat so

Johannes

ein paar Dinge, die mir da nicht so gut gefallen.

Johannes

Zum Beispiel das Apps-Folder.

Johannes

Zum Beispiel der Apps-Folder, ja. Ich finde,

Johannes

alle Apps, die man selbst in seinem Code

Johannes

hat, die gehören in ein eigenes Verzeichnis. Die gehören

Johannes

nicht in das Projektverzeichnis rein.

Johannes

Bei dem Projektverzeichnis sind ganz viele andere Sachen drin.

Johannes

Config zum Beispiel. Und dass das Config-Verzeichnis

Johannes

nicht Config heißt, ist auch sowas.

Johannes

Passe ich in jedem

Johannes

meiner Projekte an, ja. Und

Johannes

das einfach mal sozusagen zusammenzuholen

Johannes

und zusammenzufassen und ein bisschen drüber zu sprechen

Johannes

auch, was

Johannes

da für Schritte drin sind.

Johannes

War super hilfreich. Inzwischen habe ich das

Johannes

Ganze auch in ein Template verpasst. Django

Johannes

hat tatsächlich einen Template-Mechanismus

Johannes

für Startproject und für Startapp.

Johannes

Den kannte ich auch noch nicht. Das

Jochen

fand ich auch sehr interessant. Das wusste ich nicht.

Jochen

Vollnützliche Informationen, ja. Echt sehr gut.

Jochen

Ich habe da jetzt auch inzwischen

Johannes

das so eben zusammengefasst,

Johannes

dass man also mit Startproject

Johannes

slash slash Template

Johannes

geht tatsächlich sogar von GitHub direkt,

Johannes

dass man

Johannes

da meine Konventionen

Johannes

reinnehmen kann, die fast genauso sind wie die

Johannes

von Django und

Johannes

eben da mehr Struktur reinbringen.

Dominik

Oh, das finde ich auch nochmal interessant, wie man

Dominik

das nochmal aufsetzt und das editiert, dass man sein

Dominik

eigenes Skeleton-Start-Template

Dominik

über das Django-Start-Project-Kommando

Dominik

reinbekommt. Das fände ich auch nochmal spannend.

Dominik

Ja, können wir gerne mal

Dominik

besprechen oder vielleicht machen wir da einfach eine Bibliothek

Dominik

dafür, Dominik. Wollte ich sowieso noch

Dominik

machen. Können wir mal zusammenprogrammieren.

Johannes

Genau, also es war einfach so ein bisschen, wie

Johannes

entwickle ich und was hat sich für mich bewährt

Johannes

und

Johannes

dann eben, genau,

Johannes

so ein bisschen im Dialog, so ein bisschen

Johannes

drüber sprechen, was bei den anderen

Johannes

so ist. Und das hat super gut funktioniert. Das ist auch, glaube ich,

Johannes

ganz gut angekommen.

Johannes

Klingt spannend.

Johannes

Müsst ihr euch auf jeden Fall mal angucken.

Johannes

Kommt auch in zehn Tagen.

Johannes

Genau, wir verlinken das.

Johannes

Oder eben meine Aufnahme ist schon auf der Seite.

Johannes

Das war so

Johannes

die sechste oder siebte Aufnahme, die ich gemacht habe.

Johannes

Also die ist ganz okay.

Jochen

Ja, das fand ich auch, ehrlich gesagt, damit hätte ich nicht gerechnet,

Jochen

wie oft man dann ein paar Mal aufgenommen

Jochen

und dann passiert irgendein Scheiß.

Jochen

Das war einfach nochmal.

Jochen

Fällt einem die Kaffeetasse aus der Hand.

Johannes

Bei der letzten Aufnahme, die ich

Johannes

nehmen wollte, das war dann auch schon am Tag der

Johannes

Abgabe, habe ich

Johannes

drei verschiedene Aufnahmen gemacht.

Johannes

Audio-Aufnahme und Kamera-Aufnahme und

Johannes

Screencast. Und da wollte ich

Johannes

zusammenschneiden und dann war der Screencast kaputt.

Johannes

Und dann habe ich gedacht, jetzt muss ich nochmal

Johannes

eine Stunde mich hinsetzen und nochmal das

Johannes

ganze Ding machen. Aber zum Glück war es nur die

Johannes

Datei auf der SSD, die

Johannes

auf der mobilen SSD, die ich fertig kopiert hatte.

Johannes

Konnte ich dann tatsächlich noch retten.

Johannes

Und da war ich so,

Johannes

ich hätte sonst,

Johannes

der Rest des Tages wäre sonst futsch gewesen.

Dominik

Ja, also dein Probevideo ist auch abgestürzt, glaube ich,

Dominik

30 Sekunden vor Ende. Das heißt, man hat deine Grußworte

Dominik

nicht mehr ganz mitbekommen. Das hast du ja dann auch noch gefixt.

Dominik

Habe ich auch noch gefixt, genau. Also es

Johannes

gab da verschiedene Aufnahmen, die alle nicht so gut

Johannes

waren und dann gab es alle, die ganz okay waren.

Dominik

Also ihr merkt, es ist auch eine relativ viel technische Detailarbeit

Jochen

hinten. Ja, aber tatsächlich

Jochen

erstaunlich viel mehr Vorbereitung,

Jochen

als ich gedacht hätte.

Jochen

Genau. Und aber

Jochen

was ich sagen muss, also das war

Jochen

dann, da war Johannes' Vortrag auch echt

Jochen

einer der

Jochen

positiv herausstechendsten,

Jochen

also sowohl Video- als auch Audioqualität war gut.

Jochen

Während

Jochen

das aber, das war...

Jochen

Ja, ja.

Jochen

Tatsächlich muss man leider sagen, also ich fand,

Jochen

oft war das nicht so gut. Ich hab dann

Jochen

ich hatte während der Konferenz gar nicht so richtig

Jochen

Zeit, das live zu verfolgen, weil

Jochen

Dinge

Jochen

passieren, genau.

Jochen

Aber ich habe die dann alle versucht

Jochen

nachzuhören hinterher und habe die dann

Jochen

halt auf dem Telefon

Jochen

laufen lassen,

Jochen

weil, ja, auch hier komme ich nicht von Rechner

Jochen

setzen. Dinge passieren, man hat keine Zeit.

Jochen

Und das ging

Jochen

auch ganz gut, aber was

Jochen

mich halt dann schon so nach dem dritten, vierten

Jochen

Talk, den ich gehört habe, angenervt hat, ist halt,

Jochen

dass die Audioqualität oft nicht gut

Jochen

ist, weil was viele Leute dann

Jochen

machen ist, sie stellen sich halt

Jochen

nehmen halt ihr Laptop oder sonst irgendwas und stellen sich dann

Jochen

halt irgendwie ein paar Meter dahinter, damit sie halt irgendwie

Jochen

zu sehen sind und dann sind sie halt weit

Jochen

vom Mikrofon weg und das Mikrofon ist schon schlecht

Jochen

und dann wird das nochmal

Jochen

kaputt komprimiert von irgendwie Zoom

Jochen

oder so und dann gehen die Lüfter an und

Jochen

dann ist es schwer zu

Jochen

verstehen. Also ich hatte tatsächlich bei einigen

Jochen

Talks das Problem, dass ich kaum verstanden

Jochen

habe und ich habe die Lautstärke auf dem Telefon

Jochen

komplett aufgedreht und trotzdem Schwierigkeiten

Jochen

gehabt, das richtig zu verstehen und es ist

Jochen

vor allen Dingen auch anstrengend,

Jochen

selbst wenn man es verstehen kann,

Jochen

Audio zu hören, wo man immer so,

Jochen

dass es halt so schlecht ist, dass man sich

Jochen

wirklich anstrengen muss, um es hören zu können.

Jochen

Und da denke ich vielleicht

Jochen

auch manchmal, vielleicht sollte man,

Jochen

da gab es ja auch so einen Talk, den gab es

Jochen

diesmal nicht, aber glaube ich bei der letzten

Jochen

DjangoCon EU,

Jochen

How to get on the stage.

Jochen

Der war verlinkt,

Johannes

der war verlinkt für die Sprecher, damit die wissen,

Johannes

was auf sie zukommt.

Jochen

Und vielleicht kann man irgendwie so, wie kriegt man

Jochen

eigentlich zumindest verständliches Audio

Jochen

und nicht so, beim Video ist

Jochen

ja fast egal, das ist gar nicht so furchtbar

Jochen

wichtig, aber ich finde das Audio ist halt schon

Jochen

so das halt, was man verstehen können

Jochen

sollte, wenn man den Inhalt mitbekommen möchte

Jochen

und wie kriegt man das so hin, dass man das

Jochen

verstehen kann und dass das nicht total schrecklich ist

Jochen

und ja, weil das war

Jochen

durchgängig, fand ich bei

Jochen

vielen nicht gut. Es gab

Jochen

ein paar Ausnahmen, eben Johannes eine

Jochen

löbliche Ausnahme, aber

Jochen

bei vielen war das nicht so richtig toll.

Jochen

Man tut, was man kann.

Johannes

Ja, das ist schade, dass es dann oft an so technischen Sachen auch hängt, aber das ist halt wirklich bei so einer Remote-Konferenz eine sehr inhomogene Mischung von Technik und Menschen und Ideen und Anforderungen und Zeit auch.

Jochen

Nicht mir ist doch völlig klar, dass ich hier damit beschäftigen möchte.

Johannes

Was man eigentlich bräuchte, wäre irgendwie so Sets, die man verschickt, wo eine gute Kamera dabei ist und ein gutes Mikrofon und die dann hinterher wieder zurückgeschickt werden.

Jochen

und irgendwie ein Tutorial, wie man das anschließt

Jochen

und wie man das, weil es ist halt dummerweise,

Jochen

es ist leider schwieriger, als man so denkt

Jochen

und genau. Ja, eigentlich macht man alles mit

Dominik

so bunten Kabeln, die immer genau an die richtigen Stecker passen,

Dominik

also die Stecker sehen genau so aus, wie die klingen

Dominik

und dann steckt man es ein und dann hat man auf einen Knopf und dann läuft es.

Dominik

Ja, USB, einfach nur

Dominik

einen USB-Anschluss.

Johannes

Ja, was mich tatsächlich so ein bisschen,

Johannes

was mir so ein bisschen

Johannes

negativ aufgefallen ist, war, dass

Johannes

diese Zoom-Meetings oft qualitativ

Johannes

nicht so cool waren, ja.

Johannes

Also ich habe jetzt auch nicht die beste Kamera,

Johannes

aufgestellt gehabt, aber ich sah halt auf dem Bild

Johannes

echt krümelig aus auch.

Johannes

Und danach, nach den

Johannes

Talks, waren immer noch Jitsi,

Johannes

hatten sie immer noch einen Jitsi-Raum für den jeweiligen

Johannes

Talk, auch super, ja, großartige Idee,

Johannes

dass man sozusagen noch so dieses Gefühl

Johannes

hat, ich gehe jetzt vor zu dem Sprecher so, ich gehe

Johannes

zur Bühne und spreche noch fünf Minuten mit dem.

Johannes

Haben sie super hingekriegt

Johannes

und da war die Bildqualität bei den Sprechern dann

Johannes

oft wesentlich besser als vorher in diesem Zoom-Meeting.

Johannes

Das ist

Johannes

natürlich schon irgendwie schade.

Johannes

Das ist schon irgendwie schade.

Dominik

Aber von der ganzen Technikkritik

Dominik

jetzt hier und den Bildern.

Dominik

Was hat euch denn inhaltlich noch super gefallen?

Dominik

Aber das ist halt das Einzige, was man kritisieren

Dominik

kann. Das alles andere war halt super.

Dominik

Die Vorträge waren super und

Dominik

die Community war super.

Dominik

Die hatten ein Tool, das heißt

Dominik

Gather Town.

Dominik

Oh ja, Gather Town ist großartig.

Dominik

Da kann man nicht rumlaufen mit einem kleinen Avatar

Dominik

und sich dann quasi live auf dem Konferenzgelände

Dominik

treffen mit so einem Pixel-Avatar.

Dominik

Und da kann man sich auch dann sehen, weil dann nämlich, wenn man sich da live

Dominik

begegnet, dann geht nämlich die Kamera an und man kann

Dominik

den Ton hören und dann kann man sich irgendwie auf dem Dorfplatz

Dominik

versammeln oder ich weiß jetzt nicht genau, ich war gar nicht ja bei der

Dominik

Dango Condor Live im Gather Town.

Dominik

Es hat einfach eine Räumlichkeit,

Dominik

du bist nicht, wenn du in einem Jitsi bist

Dominik

oder in einem Slack oder so, dann bist du ja immer mit allen

Johannes

Leuten gleichzeitig am Sprechen

Johannes

und das ist zwar schön, ja, weil

Johannes

du mit allen Leuten gleichzeitig sprechen kannst, aber es ist auch

Johannes

so ein bisschen erschreckend, weil dir alle Leute immer

Johannes

zuhören, ja, weil alles public ist.

Dominik

Ja und außerdem meinte ich, die Leute reden vielleicht dann gar nicht,

Dominik

weil irgendwer immer redet halt. Ja genau, weil man sich

Dominik

nicht traut.

Dominik

Oder man kann an den Stand gehen von den Sponsoren

Johannes

und kann sich da was zeigen lassen.

Johannes

Oder man kann sich an den Tisch setzen, wo schon vier Leute sitzen

Johannes

und dann weißt du, es sind genau vier Leute da und nicht 80.

Johannes

Und das macht einfach ein ganz nettes Gefühl.

Johannes

Also man kann eigentlich gar nicht so richtig viel kritisieren,

Johannes

außer eben die Bildqualität.

Johannes

Jochen, du hast alle Talks angeguckt, oder?

Johannes

Ja.

Johannes

Was war denn der Talk, der dich am meisten überrascht hat?

Jochen

Tatsächlich der erste, würde ich sagen. Insofern ist das ein bisschen langweilig immer.

Jochen

Dann sprechen wir da nicht nochmal drüber.

Jochen

Genau. Ansonsten fand ich die, also man muss auch unter, also ich meine, es gab halt, es gibt halt mehrere Dimensionen sozusagen. Es gab halt Text, Talks, die mich halt irgendwie inhaltlich überrascht haben, irgendwie so wie die.

Jochen

der erste und die ich auch gut fand. Oder es gab

Jochen

welche, die ich technisch gut fand.

Jochen

Oder es gab welche, wo ich

Jochen

den Inhalt fachlich super fand.

Jochen

Aber das muss alles nicht unbedingt

Jochen

gleichzeitig passiert sein, sondern das war

Jochen

teilweise, ja. Hast du vielleicht noch

Dominik

eine Empfehlung von einem Talk, den man unbedingt gucken sollte,

Jochen

wenn du jetzt mal drauf bist? Also einer

Jochen

meiner Lieblingstalks war auf jeden Fall

Jochen

der von Carlton Gibson.

Jochen

Static Sides.

Jochen

Das ist auch generell großartig.

Jochen

Static Sides mit Zwings, weil

Jochen

ich hatte auch selber da schon mal so Dinge gemacht.

Jochen

Ich habe auch überlegt, ob ich da nicht irgendwie

Jochen

Viewpress oder

Jochen

Whitepress, ich habe da schon

Jochen

auch Dinge mitgemacht, für Dokumentation

Jochen

von Software verwenden soll.

Jochen

Und dann

Jochen

dieses, diese

Jochen

Read the Docs

Jochen

Geschichte, wie heißt das noch da?

Jochen

Restructured Text, das ist ja eigentlich auch ganz nett,

Jochen

da kann man auch viele schöne Sachen, aber es ist meistens nicht so

Jochen

vielleicht unbedingt

Jochen

hat eben auch Vor- und Nachteile.

Jochen

Und das, was er da vorgestellt hat, das fand ich schon

Jochen

großartig, dass man halt sozusagen auf der einen Seite

Jochen

diese etablierte

Jochen

Dokumentations-

Jochen

Erstellungsgeschichte benutzen kann, aber auf der

Jochen

anderen Seite dann halt, das war mir auch völlig

Jochen

überhaupt gar nicht klar, dass die Django-Dokumentation das so macht,

Jochen

dass da nicht ein fertig

Jochen

gerendertes statisches HTML ist,

Jochen

sondern dass das dynamische Elemente hat und dass das halt

Jochen

sozusagen die Art, wie

Jochen

der Dokumentations-Content

Jochen

in die Django-Dokumentationsseite reinkommt,

Jochen

ist halt über JSON.

Jochen

Das war mir überhaupt nicht klar

Jochen

und das ist eigentlich aber voll gut.

Jochen

Total absurd.

Jochen

Und deswegen, also den Talk fand ich

Jochen

auch technisch gut. Also das Audio war

Jochen

super. Carlton macht das auch total

Jochen

gut. Er ist total entspannt und

Jochen

ein bisschen flapsig und kurz und

Jochen

echt cool. Carlton Gibson

Dominik

Static Pages, ja.

Johannes

Carlton Gibson ist generell so einer, der in der

Johannes

Community ganz viel macht. Er ist

Johannes

einer von den Django Fellows.

Johannes

Der macht die ganze Drecksarbeit.

Johannes

Er bezeichnet sich selbst als Janitor.

Johannes

Django ist Janitor.

Johannes

Und

Johannes

der ist schon

Johannes

jahrelang in der Community

Johannes

drin und der ist großartig. Also das kann ich jedem

Jochen

empfehlen. Oh, er macht ja auch einen Podcast

Jochen

mit Will Winston zusammen,

Jochen

Django Chat. Ach, das ist auch gut.

Johannes

Hatte ich kürzlich im Auto die Zeit, acht Episoden

Johannes

anzuhören.

Johannes

Also auch das, da muss man die Konkurrenz

Johannes

einmal hier hervorheben. Du hast ja demnächst

Dominik

öfter mal Zeit wieder für die Podcasts

Dominik

in einem Auto, habe ich gehört. Ja, es kann

Dominik

passieren, dass ich demnächst mehr Auto fahren muss.

Dominik

Der Talk, der mich am meisten

Dominik

überrascht hat, wusste ich aber

Johannes

vorher schon, weil ich kenne die Person auch

Johannes

von anderen

Johannes

Django-Cons, wo ich schon war, ist

Johannes

Rewriting Django from Scratch in 2021

Johannes

von Emma Deliscore,

Johannes

die sich die Frage gestellt hat, wenn wir

Johannes

kein Django hätten

Johannes

und es aus

Johannes

Bibliotheken zusammensetzen müssten, wie

Johannes

schwierig wäre das denn?

Johannes

Und die Antwort ist, erstaunlich wenig.

Johannes

Ja, wäre gar nicht so schwer.

Johannes

Ja genau, man findet quasi für alle Bauteile

Johannes

was und sie hat dann eben wenige

Johannes

hundert Zeilen Glue-Code geschrieben,

Johannes

die das Ganze zu einem Django machen und

Johannes

das so als Denkanstoß für Django

Johannes

4, weil das steht ja demnächst

Johannes

an, wo

Johannes

wohl auch einige technische Änderungen drin sein sollen.

Johannes

Fand ich super spannend.

Johannes

Ja, ja, aber ich meine,

Jochen

also in gewisser Weise wäre

Jochen

das, aber das kann auch sein, dass ich das nicht so

Jochen

richtig verstanden habe, weil ich dachte so

Jochen

erst so, ja, interessant, die ganzen

Jochen

Dinge, die sie da nennt, aber warum sollte man das so machen, weil

Jochen

für mich ist ja eigentlich der Vorteil

Jochen

von Django jetzt gegenüber, zum Beispiel

Jochen

sowas wie Flask oder so,

Jochen

oder könnte man auch gleich nochmal kurz was zu sagen,

Jochen

dass man

Jochen

das eben nicht machen muss, dass man auch

Jochen

nicht sich daran kümmern muss, dass die ganzen Sachen

Jochen

immer noch gemaintained sind und wenn sie

Jochen

das nicht mehr sind, das austauscht, sondern Django kriegst du

Jochen

sozusagen das Komplettpaket, wo andere Leute sich

Jochen

darum gekümmert haben, vielleicht nicht

Jochen

alle Funktionen und nicht so

Jochen

im Detail ausgefeilt,

Jochen

aber dafür halt irgendwie

Jochen

Stimmig. Integriert. Genau.

Jochen

Integriert. Ja, aber

Jochen

was wäre denn, wenn Django nicht ein

Johannes

Paket wäre, sondern wenn Django ein Meta-Paket wäre,

Johannes

was zwölf andere Pakete

Johannes

reinzieht, wo wenn du

Johannes

Django installierst, kriegst du es immer noch integriert

Johannes

und immer noch stimmig, aber hast

Johannes

dann trotzdem die Möglichkeit, einen Baukasten

Johannes

zu haben. Hast trotzdem die Möglichkeit zu sagen,

Johannes

ah, Moment mal, ich möchte eigentlich lieber

Johannes

Templates haben, die x machen oder Templates

Johannes

die y haben. Ja. Oder auch

Johannes

eben so Contrib-Pakete. Was ist denn,

Johannes

wenn ich mal den Admin nicht brauche?

Johannes

was ist denn, wenn ich mal eine Seite habe, die den Admin

Johannes

nicht braucht? Im Moment kann ich ja

Johannes

nicht viel machen. Ich kann die App

Johannes

deaktivieren und ich kann die URLs deaktivieren.

Johannes

Aber der Code ist auf jeden Fall drin, ja.

Johannes

Aber der Code ist immer noch da.

Johannes

Und sich diese

Johannes

Frage zu stellen, was wäre denn, wenn Django

Johannes

modular wäre? Es ist ja modular,

Johannes

es ist ja jetzt schon so, dass du die verschiedenen

Johannes

Bausteine miteinander kombinierst,

Johannes

aber was wäre denn, wenn die auf technischer Ebene

Johannes

auch modular wären?

Johannes

Was im Django-Chat gesagt wurde, was wäre

Johannes

denn, wenn man manche Pakete einfach ein bisschen

Johannes

ausgliedern könnte?

Johannes

Carlton Gibson möchte gerne das E-Mail-Paket

Johannes

ausgliedern.

Johannes

Was wäre denn, wenn

Johannes

das möglich wäre? Und was wäre denn, wenn sich da

Johannes

vielleicht ein eigener Maintainer dafür findet, der

Johannes

E-Mail macht?

Johannes

Was wäre denn, wenn es

Johannes

ein E-Mail-Paket gibt, was automatisch alles

Johannes

macht, dass ich über SendGrid

Johannes

verschicke?

Johannes

Ich muss nur PipInstall, Django, SendGrid machen

Johannes

und dann ist das komplett nah.

Johannes

Diese Frage ist

Johannes

Das ist eine großartige, gute Frage.

Jochen

Okay, ja, gut. Also so gesehen doch,

Jochen

ja, weil im Grunde ist Django

Jochen

ja schon, da sind viele Teile sind ja schon

Jochen

pluggable, eben Storage oder halt

Jochen

Authentication, halt nicht auf so einer

Jochen

ich installiere dann halt ein anderes

Jochen

Paket, sondern auf der Ebene von

Jochen

in den Settings sage ich halt, ja,

Jochen

du bist jetzt für mehrere Pakete

Johannes

und dann stelle ich es in den Settings ein, welches benutzt

Johannes

wird. Genau, aber

Jochen

stimmt, also dass man

Jochen

den Code gar nicht mit drin haben muss, das ist natürlich schon so ein

Jochen

Punkt, ja.

Jochen

Das ist aber auch noch

Jochen

interessant. Genau, jetzt fällt mir doch noch

Jochen

was ein, zu welcher Talk hat mich am meisten

Jochen

überrascht. Und zwar, ich weiß nicht, ob ihr den

Jochen

oder Johannes, ob du den auch gehört hast,

Jochen

von Jannis Leidl,

Jochen

der Jazzband

Jochen

Talk. Ja, habe ich gehört.

Jochen

Ich bin auch live während des

Jochen

Talks Jazzband beigetreten.

Jochen

Ah, okay, genau. Ich habe es mir nur überlegt,

Jochen

ich habe es noch nicht getan, aber ich

Jochen

habe stark daran gedacht, es zu tun.

Jochen

Und

Jochen

genau, ich hatte das immer nur gesehen.

Jochen

Was ist denn Jazzband, Jochen? Erklär mal.

Jochen

Ich hatte das immer nur gesehen bisher als

Jochen

das ist irgendwie eine Organisation,

Jochen

in der viele der im Django

Jochen

Kosmos befindlichen

Jochen

Pakete halt so auch mit drin sind

Jochen

und was da gemantet wird,

Jochen

Django Filter und weiß ich nicht,

Jochen

ganz, ganz viel Zeug.

Jochen

Storages und Comments.

Jochen

Also ganz

Jochen

viel und da dachte ich immer so, ja.

Jochen

Und dann wusste ich auch irgendwie so, ja, das ist halt irgendwie so, wenn man

Jochen

keine Lust mehr hat, das selber zu mantennen, dann kann man das vielleicht dahin

Jochen

das loswerden.

Jochen

Projekthalde meinst du?

Jochen

Irgendwie, weiß ich nicht,

Jochen

ein Schleifchen dran binden und das dann da aussetzen.

Jochen

Wie an der Autobahnraststätte.

Jochen

Die Apache Foundation der Django-Welt.

Jochen

Ja.

Jochen

Aber genau.

Johannes

Die sind ja tatsächlich sehr aktiv,

Johannes

habe ich jetzt gehört in dem Talk.

Jochen

Ja, aber dann,

Jochen

was mich in dem Talk dann halt überrascht hat und was ich nicht wusste,

Jochen

ist, dass

Jochen

das tatsächlich etwas ist, wo man

Jochen

selber sehr leicht beitreten kann

Jochen

und

Jochen

man hat so ein bisschen die Anforderungen an ein Projekt,

Jochen

aber es ist auch relativ leicht zu erfüllen

Jochen

und dann kann man

Jochen

quasi Projekte davon maintainen lassen

Jochen

und also der entscheidende Punkt, und der war mir überhaupt

Jochen

nicht klar, ist

Jochen

bei diesen Projekten ist es so, dass man das so ein bisschen

Jochen

umkehrt, weil normalerweise hast du halt immer

Jochen

in vielen Projekten irgendwie so

Jochen

Core-Entwickler oder Leute, die halt

Jochen

da reinkommitten dürfen, also dieses

Jochen

Privileg bekommt man halt

Jochen

Normalerweise, weiß ich nicht, nach ein paar erfolgreichen Pull-Requests oder so oft bei vielen Projekten. Und vielleicht bei so noch größeren ist es so, dass es dann Leute gibt, die dann überwiegend, ja, sich um den Issue-Tracker kümmern oder sowas. Und es gibt halt einen Unterschied zwischen diesen sozusagen offiziell Beteiligten und den ganzen Leuten, die halt tatsächlich die Pull-Requests erstellen.

Jochen

Und dieses Jazzband dreht das halt um und sagt, du kannst halt einfach da reinkommitten. Es funktioniert halt. Und dann muss, es gibt halt nur weniger Release.

Jochen

Und jeder kann beitreten.

Jochen

Jeder kann beitreten und erst beim Release wird dann halt geguckt, okay, macht das denn irgendwie Sinn oder ist das irgendwie Quatsch? Und das passiert halt deutlich seltener, sodass du halt diese Hürde, das ist tatsächlich eine Hürde, das habe ich mir auch schon oft gedacht, muss ich das jetzt wirklich?

Jochen

Ja, und ein Pull-Request stellen und dann

Johannes

hörst du acht Wochen lang nichts und dann

Johannes

fragst du, ja hier ist was und dann weißt du es schon alles

Johannes

gar nicht mehr oder geht ganz unter.

Johannes

Ja und was ich dann oft mache ist,

Jochen

ach dann fork ich es doch mal schnell selber, fix das

Jochen

da und dann

Jochen

dann vielleicht mache ich doch tatsächlich

Jochen

nochmal ein Pull-Request, aber eigentlich auch egal

Jochen

und tatsächlich habe ich das

Jochen

auch bei Projekten gemacht, die in Jasmine da

Jochen

drin sind und dann hätte ich dann so, okay

Jochen

eigentlich hätte ich die direkt fixen

Jochen

können und

Jochen

dann wäre dieser ganze

Jochen

ja, hätte man diesen ganzen Tanz

Jochen

um GitHub-Pull-Request-Issue gar nicht

Jochen

machen müssen, sondern jetzt einfach gefixt, committet

Jochen

und fertig. Was heißt bei Django

Jochen

Field-Hastorisches All-Outs?

Jochen

Django Field-Hastorisches All-Outs? Ja, ganz viele von diesen Sachen,

Johannes

die man kennt, ich glaube auch Django Extensions und

Johannes

Debug-Toolbars sind inzwischen Jazzband-Projekte.

Johannes

Ja. Oh, apropos

Johannes

Debug-Toolbar, da gab es ja auch was für das.

Jochen

Der Jazzband, weil

Jochen

das irgendwie sozusagen,

Jochen

ja, Django ist ja auch vom Namen her

Jochen

wird das zurückgeführt

Jochen

auf dem Django rein hat.

Jochen

Ach so. Ja, daher kommt das.

Jochen

Und Band. Cooler Name,

Jochen

finde ich. Ja.

Dominik

Django Extensions, hast du noch irgendwas Schönes

Dominik

geteilt, Johannes? Und zwar hast du

Dominik

da was entdeckt, das heißt die Kolo-App

Dominik

heißt, was auch für Debug

Dominik

für Django relativ lustig sein soll.

Dominik

Da musst du mir auf die

Dominik

Sprünge helfen, Dominik. Weiß gar nicht, was du meinst gerade.

Dominik

Du hast das schon schon hingeteilt.

Dominik

Kolo-App, das ist eine Django-Applikation

Dominik

zum Debuggen. Vor allem auch in VS Code

Dominik

Grundsätzlich. Du kannst halt so den

Dominik

Thor Street anschauen.

Dominik

Genau, das hat mich jetzt

Johannes

gar nicht so richtig, hat mir gar nicht so richtig

Johannes

geholfen, weil ich VSCode nicht benutze.

Johannes

Aber

Johannes

die haben eben einen Django-Debugger

Johannes

in VSCode integriert und zwar so richtig tief.

Johannes

Also der zeigt einem direkt alle Innereien.

Johannes

Genau, Best Response,

Johannes

die Queries und so.

Johannes

Genau, und auch mit Profiling drin und wenn

Johannes

Fehler auftreten, kommst du gleich an eine richtige Stelle.

Dominik

Genau, man kann sogar den Executed-Code-Path

Dominik

visualisieren und so.

Johannes

Es ist ein richtig, richtig ausgefeilter

Johannes

Debugger, geht allerdings nur in Visual Studio Code.

Johannes

Also Celery Task kann man damit machen.

Johannes

Also der zeigt

Johannes

dann wirklich alles an und das ist sehr beeindruckend.

Johannes

Ja, ich habe es leider

Johannes

nicht weiter benutzt, weil ich bin

Johannes

ja, ich komme ja aus einer anderen Richtung.

Johannes

Charming.

Johannes

Ich bin sehr charming.

Johannes

Ja.

Johannes

Auch was, was ich da gesehen habe. Okay, ich habe noch eine andere

Johannes

Sache, die mich überrascht hat da.

Johannes

Bei der DjangoCon.

Johannes

Und das war HTMX.

Johannes

Oh ja. Du hattest das schon mal

Johannes

erwähnt, Jochen. Ja.

Johannes

Du hattest HTMLX schon mal gesagt.

Johannes

HTMLX ist eine JavaScript-Bibliothek

Johannes

ohne JavaScript.

Johannes

Das heißt,

Johannes

anstatt dass ich selber JavaScript schreibe,

Johannes

schreibe ich nur spezifische

Johannes

Tags an meinen HTML dran,

Johannes

die dann irgendwelches dynamisches Verhalten auslösen.

Johannes

Zum Beispiel kann ich einem Button sagen, dass er

Johannes

das Formular submitten soll.

Johannes

Oder ich kann sagen, wenn

Johannes

ein Item

Johannes

in den Bildschirmbereich gescrollt wird,

Johannes

dann macht das ein AJAX-Request

Johannes

und holt neue Listen-Einträge

Johannes

und kann ich Infinite Scrolling machen.

Johannes

Oder ich kann sagen,

Johannes

ich möchte Formvalidierung haben

Johannes

oder ich kann sagen,

Johannes

ich möchte Animationen haben oder so.

Johannes

Und das Ganze nur über HTML-Tags,

Johannes

ohne selbst JavaScript schreiben zu müssen.

Johannes

Und das kam in drei oder vier Talks hintereinander.

Johannes

Haben sie alle auf HTMLX verwiesen

Johannes

und offensichtlich auch nicht abgestimmt,

Johannes

weil die dann, die Sprecher dann auch gesagt haben,

Johannes

ja, es ist jetzt schon wieder, ich weiß,

Johannes

es kam jetzt eben schon in den anderen Talks, aber jetzt ist es schon wieder.

Johannes

Und auch im Slack

Johannes

kam das dann auf,

Johannes

dass da jetzt schon wieder

Johannes

HTMX vorkommt.

Johannes

Und ich glaube, das ist was, was ich mir,

Johannes

also ich wusste, dass es das gibt,

Johannes

aber mir war gar nicht so klar

Johannes

gewesen, wie sinnvoll das ist und wie nützlich das ist.

Johannes

Und dass man ja tatsächlich

Johannes

sehr viel Dynamik in seiner Seite mit

Johannes

diesen einfachen Mitteln hinkriegen kann.

Johannes

Also das, wo man früher

Johannes

jQuery verwendet hat, ja,

Johannes

Button.click

Johannes

und dann $ajax

Johannes

machen, ist jetzt einfach

Johannes

in dieses htmx-Attribut

Johannes

reingewandert. Und

Johannes

ich glaube, ich muss mir das mal noch

Johannes

genauer angucken,

Johannes

wie weit man da gehen kann.

Johannes

Also, ich meine, einen Talk gab es

Johannes

damit, der hat es quasi zu Ende gedacht.

Johannes

Was ist denn, wenn wir diese Sachen alle aus dem

Johannes

Django-Form, aus der Form-Klasse

Johannes

generieren und aus dem Django-Modell generieren?

Johannes

auch großartige Idee,

Johannes

Data-Binding automatisch erzeugen

Johannes

über Django-Template-Syntax.

Johannes

Geht vielleicht einen Schritt zu weit.

Johannes

Möchte ich schon noch die Kontrolle drüber haben.

Johannes

Aber, ja, dass man quasi JavaScript schreibt,

Johannes

ohne JavaScript schreiben zu müssen,

Johannes

großartige Idee.

Johannes

Ja, ich habe letztens,

Johannes

ja genau, würde ich auch sagen,

Jochen

das war auf jeden Fall auch eines der großen Themenfelder,

Jochen

die es auf der Django-Con gab.

Jochen

Nämlich, wie macht man eigentlich,

Jochen

sozusagen, ja,

Jochen

etwas interaktivere

Jochen

oder so modernere,

Jochen

so Single-Page-App

Jochen

mäßige

Jochen

Applikationen mit Django, weil

Jochen

wohl auch der Druck größer wird irgendwie von da

Jochen

außen. Und vielleicht kann

Jochen

man aber, muss man dafür nicht jetzt irgendwie

Jochen

das, also es gibt einen Weg,

Jochen

den halt auch viele Leute beschreiben,

Jochen

beschreiten, der ist halt, naja, du machst halt

Jochen

Django REST-Framework oder halt, weiß ich nicht,

Jochen

GraphQL irgendwie, Graphene. Gab's auch einen Talk dazu.

Jochen

Ja, und machst halt deine

Jochen

Applikationen im Frontend halt

Jochen

quasi als, weiß ich nicht, ReactView

Jochen

Angular. Django Headless.

Jochen

Und Headless, genau. Und

Jochen

dein Backend ist sozusagen, dein Django ist halt nur noch

Jochen

das Backend und macht halt, rennt halt nur noch

Jochen

JSON raus und sonst nichts.

Jochen

Das ist eine Möglichkeit. Das ist aber eigentlich irgendwie

Jochen

traurig, oder? Das ist irgendwie traurig, weil

Johannes

man die ganzen guten Teile halt

Jochen

Ja, es gibt halt schöne Teile

Jochen

von Django, eben die

Jochen

Formulare, ja, Formvalidation oder so,

Jochen

das kann man halt alles nicht mehr nutzen. Template,

Jochen

Da gibt es sehr schöne Geschichten für.

Jochen

Authentifizierung auch, alles mögliche.

Jochen

Genau. Man verliert halt

Jochen

viele Dinge, die halt bei Django

Jochen

eigentlich total nützlich machen.

Jochen

Und die muss man dann selber machen. Und wenn man das

Jochen

dann macht in JavaScript, stellt man oft fest,

Jochen

äh.

Jochen

Ja, man schreibt sich halt

Johannes

die langweiligen Teile von Django,

Johannes

schreibt man sich dann in JavaScript nochmal nach.

Jochen

Genau. Und das ist halt...

Jochen

Und man hat dann immer noch

Jochen

eine andere Programmiersprache, die man halt auch noch mit

Jochen

kämpfen muss. Und das ist halt...

Jochen

Aber mit JavaScript muss man doch.

Jochen

Deswegen nimmt man ja TypeScript.

Jochen

Ja, also es ist besser geworden,

Jochen

sagen wir mal so. Aber

Jochen

ehrlich gesagt, mir ist Python

Jochen

immer noch lieber, auch die ganzen...

Jochen

Auch angenehmer. Ja, ja, durchaus.

Jochen

Und eben,

Jochen

was kann man denn jetzt eigentlich noch tun?

Jochen

Da gibt es ja dann mehrere Gegenbewegungen, aber

Jochen

wir hatten das ja auch schon ein paar Mal,

Jochen

sowas wie dieses ganze

Jochen

Hotwire-Zeugs,

Jochen

irgendwie Ruby on Rails macht das ja auch,

Jochen

dass man halt sozusagen, oder Elixir,

Jochen

Felix,

Jochen

man rendert halt HTML

Jochen

auf der Server-Seite und

Jochen

hat nur noch wenig JavaScript auf der

Jochen

Client-Seite, was halt dann irgendwie

Jochen

die Seite updatet. Und

Jochen

tatsächlich fällt für mich HTMX halt auch in

Jochen

diese Klasse von Dingen rein.

Jochen

Oder, sagen wir mal so,

Jochen

jQuery scheint jetzt wohl dann so

Jochen

endgültig irgendwie tot zu sein.

Jochen

Ja, das ist ja

Johannes

mit ECMAScript 6 sind ja die

Johannes

meisten Sachen, für die man früher

Johannes

jQuery benutzt hat, einfach direkt in VanillaJS

Johannes

drin und dann...

Jochen

Genau, genau. Und es gibt dann

Jochen

im Grunde, entweder verwendet man halt, wenn man noch mehr

Jochen

JavaScript machen möchte,

Jochen

dann sowas wie AlpineJS oder so.

Jochen

Oder halt eben HTMX, wenn man nichts kompliziertes

Jochen

macht oder wo da auch schon einige interessante

Jochen

Sachen gehen. Und ich habe jetzt letztens auch

Jochen

eine Podcast-Episode gehört mit dem Auto

Jochen

von HTMX.

Jochen

Und

Jochen

der beschrieb so ein bisschen, was er damit vorhatte

Jochen

und das fand ich auch sehr interessant, weil das hat mich tatsächlich

Jochen

an die Episode, wo wir

Jochen

das letzte Mal zusammengesetzt haben, REST

Jochen

erinnert.

Jochen

Da haben wir auch das

Jochen

erste Mal HTMX erwähnt.

Jochen

Und

Jochen

dass das Ding HTMX nennt, heißt,

Jochen

das ist kein Zufall. Das ist

Jochen

tatsächlich, meinte er,

Jochen

er hat aber mit jQuery angefangen und dann

Jochen

hat er sich überlegt, okay, eigentlich ist das ja blöd.

Jochen

Und

Jochen

hat dann versucht, die Funktionalität,

Jochen

da hat er irgendwie das

Jochen

Gefühl, das müsste ja eigentlich in HTML

Jochen

oder so drin sein und das bricht ja auch mit

Jochen

ist ein ganzes REST-Ding. Und da hat er

Jochen

wohl auch die Dissertation von Roy Feeling

Jochen

da gelesen. Und er meinte so, was wäre denn,

Jochen

wenn ich eine Bibliothek schreiben würde,

Jochen

die es erlaubt, dass

Jochen

das irgendwie so ist, wie das eigentlich sein

Jochen

sollte, aber

Jochen

man selber das JavaScript dafür

Jochen

nicht schreiben muss. Also ich erweitere sozusagen

Jochen

HTML

Jochen

so, wie das eigentlich gehören würde,

Jochen

wenn es Browser-Supporter für gäbe. Und das mache ich dann halt

Jochen

in JavaScript. Und das Ding nennt er irgendwie

Jochen

Intercooler.js. Und das war am Anfang noch so

Jochen

ein bisschen grude und sehr Jackfairy-mäßig.

Jochen

Ich habe schon mal davon gehört.

Jochen

Auch noch gelobt heutzutage.

Jochen

Er meinte, der Name ist halt schlecht,

Jochen

weil das JS hinten dran

Jochen

vermittelt den Eindruck,

Jochen

das wäre eins von diesen JavaScript-Frameworks,

Jochen

was es eigentlich nicht ist von den Frameworks.

Jochen

Und Intercooler versteht auch keiner.

Jochen

Und dann hat er so ein bisschen

Jochen

so ähnlich,

Jochen

wie nennen wir diesen Podcast?

Jochen

Na ja, gucken wir mal.

Jochen

Eigentlich möchte ich

Jochen

HTML, aber erweitert, extended.

Jochen

htmx, okay, htmx-org noch frei,

Jochen

oh, super. Und dann

Jochen

ist das Ding halt htmx.

Jochen

Und die Idee ist...

Jochen

Die Buchstaben org-demands ist auch nicht schlecht.

Jochen

Ja, gibt's eigentlich gar nicht mehr so häufig, aber

Jochen

hat wohl funktioniert.

Jochen

Und deswegen hat er das dann halt

Jochen

jetzt nochmal so, ist halt sozusagen Nachfolger

Jochen

von intercooler.js.

Jochen

Und die Idee ist tatsächlich,

Jochen

was wäre denn, also was

Jochen

ist das Hauptproblem bei, wenn man jetzt

Jochen

einfach nur ganz stinknormal

Jochen

html rendert und

Jochen

dieses HOS

Jochen

verwenden möchte, also

Jochen

Hypermedia ist die Engine of Application

Jochen

State-Dings und so quasi die

Jochen

Prinzipien beibringen möchte,

Jochen

die halt auch in dieser Dissertation

Jochen

von Roy Fielding drin sind.

Jochen

Also das Hauptproblem, weshalb das nicht

Jochen

gut ist und weshalb alle irgendwie

Jochen

JavaScript zusätzlich machen, ist, dass

Jochen

sobald du irgendwas änderst

Jochen

in diesem alten Modell, musst du

Jochen

deinen kompletten DOM neu aufbauen,

Jochen

also einen Request-Response-Type

Jochen

einen kompletten Page Reload. Ja, du musst einen kompletten Page Reload

Jochen

machen und das ist halt etwas, was

Jochen

nicht gut funktioniert, weil das

Jochen

ist halt für, wenn die Seite komplizierter wird,

Jochen

dann dauert das halt einfach schon mal über eine Sekunde,

Jochen

bis sich die Seite wieder aufgebaut hat und das

Jochen

heißt irgendwie alles, das fühlt sich dann einfach

Jochen

nicht mehr flüssig an und das ist halt

Jochen

ja, aber

Jochen

mit AJAX und so

Jochen

konnte man ja da immer schon so ein bisschen was machen, so

Jochen

Web 2.0 mäßig und

Jochen

aber das ist halt eben dann eben

Jochen

und jQuery, aber das ist halt eben nicht

Jochen

REST eigentlich.

Jochen

Und auch diese Single-Page-Apps sind auch nicht REST, weil die sagen, okay, naja, der Application-State ist halt im Frontend und Backend liefert halt nur Daten oder vielleicht so ein bisschen State, aber du hast halt dieses Synchronisationsproblem, aber die eigentliche Applikation läuft halt im Browser.

Jochen

Und er meinte, okay, wie ist es denn, wenn wir jetzt sagen, okay, wir erweitern HTML eigentlich um die Elemente. Warum ist es so, dass nur Form, nur das Form-Tag einen Post auslösen kann? Warum kann das nur einen Post auslösen? Warum gibt es nichts, was irgendwie einen Put auslösen kann?

Jochen

Ja, okay, aber gut, man kann das ja einfach dann so machen, weil aus JavaScript heraus kann man das ja dann tun, dann führt man halt Attribute ein, wo dann Elemente eben auch einen Put machen können oder halt eben auch andere Elemente einen Post machen können und dann kommt dabei, wenn man das dann halt sozusagen so ein bisschen standardisiert, kommt halt HTMLX eigentlich raus, sodass du halt sozusagen diese ganzen anderen netten Sachen halt auch einfach nur in deinem HTML sozusagen machst und ja, es gibt halt dann noch so eine Bibliothek, die das, solange die Browser das nicht unterstützen,

Jochen

halt dann für dich in JavaScript tut,

Jochen

aber im Grunde könnte man das auch einfach so...

Jochen

Ja. Und das ist

Jochen

eigentlich ein sehr, sehr

Jochen

interessanter Gedanke. Also fand ich auch sehr gut.

Jochen

Ja.

Jochen

Ja, und es kam einfach so häufig

Jochen

vor. Ja. Ja, also man merkt,

Jochen

dass man gezwungen war, sich das anzusehen. Also es

Jochen

scheint irgendwie jetzt so im Zeitgeist drin zu

Jochen

sein oder eben im Gedanken

Jochen

der Moment, das Moment ist...

Jochen

Ja, der Zeitgeist geht auf jeden Fall Richtung

Jochen

ja, was wäre denn, wenn wir einfach HTML

Jochen

rüberschicken und nicht irgendwie JSON

Jochen

So ein bisschen, ja.

Jochen

Na gut, diese ganzen Single-Page-Apps,

Jochen

so eine React-App oder so eine Angular-App

Jochen

oder so eine Ember-App oder was auch immer,

Jochen

sind ja im Wesentlichen gar keine Webseiten.

Jochen

Das sind ja Desktop-Anwendungen,

Jochen

die halt, okay, zufällig in so einer VM laufen,

Jochen

die Browser und JavaScript heißt.

Johannes

Und die aber im Wesentlichen ja selbstständig sind.

Johannes

Und es geht ja bei vielen Sachen auch total gut,

Johannes

dass du halt eine Anwendung hast im Vordergrund.

Johannes

also es gibt ja inzwischen alle möglichen Sachen. Es gibt ja

Johannes

Fotobearbeitungssoftware

Johannes

im Browser.

Johannes

Ja gut, also klar, wenn man...

Johannes

Es braucht ja überhaupt gar keinen...

Johannes

dass das Internet da ist.

Jochen

Wenn man so eine Applikation hat, die selber sehr viel macht

Jochen

und die ab und zu, wo vielleicht man mit dem Backend reden muss,

Jochen

okay, dann ist das dafür vielleicht

Jochen

auch super geeignet. Aber ich meine,

Jochen

die meisten Webseiten sind ja gar nicht unbedingt so.

Jochen

Genau, deshalb meine ich das ja.

Jochen

Das meine ich ja.

Johannes

Es gibt ja ganz viele solche Anwendungen, die halt

Johannes

einfach Desktop-Anwendungen sind, die

Johannes

die zufällig im Browser laufen.

Johannes

Und es gibt aber auch

Johannes

sicherlich den größeren Teil

Johannes

der Webseiten, die halt

Johannes

die gerne so wären,

Johannes

aber es eigentlich gar nicht nötig haben.

Johannes

Und so diese Brücke

Johannes

dazwischen zu schaffen,

Johannes

ist glaube ich,

Johannes

das ist eben das, weshalb es im Zeitgeist ist,

Johannes

dass man jetzt eben von den ganz statischen

Johannes

Webseiten, sind wir ja schon lange

Johannes

weg oder sind wir ja schon auf eine gewisse

Johannes

Art und Weise lange weg, die ganz dynamischen

Johannes

Sachen, die ja eigentlich Anwendungen sind,

Johannes

selbst freistehende Anwendungen, die

Johannes

zufällig halt auch noch Internet-Requests machen.

Johannes

Das ist die

Johannes

andere Seite und eine Weile lang hat man versucht, das alles,

Johannes

ja, alles muss so eine Anwendung sein,

Johannes

was aber auch nicht sinnvoll ist.

Johannes

So auf den Zwischenschritt zu gehen,

Johannes

dass du eigentlich eine, dass du statische Informationen

Johannes

anzeigst, die aber trotzdem irgendwie auf

Johannes

Events reagieren können und sich dann trotzdem so ein bisschen

Johannes

zumindest verändern können,

Johannes

ist, glaube ich,

Johannes

einfach, ja, das ist der

Johannes

Kompromiss in der Mitte und der deckt

Johannes

sicherlich da super viele

Johannes

Use Cases ab und super viele Sachen

Johannes

ab, die man eben früher entweder

Johannes

so oder so machen musste und deshalb

Johannes

ja,

Johannes

in die Mitte ist richtig.

Johannes

Das Nash-Gleichgewicht

Johannes

ist immer in der Mitte.

Jochen

Wie heißt es bei

Jochen

Alexander Kluge, glaube ich,

Jochen

in Gefahr und großer Not,

Jochen

es bringt der Mittelweg den Tod.

Jochen

Ja, aber in der Mitte der Herde

Jochen

zu sein, ist der sicherste Ort, deshalb

Jochen

Ja, genau. Zu der letzten Rest-Episode, da gab es dann auch eine Erwähnung im Podlovers-Podcast, wo es um die Entwicklung von so einer Podcast-Plattform geht, im Grunde, basierend auf WordPress und so einem Plugin. Und da wurde durchaus wahrgenommen, dass wir irgendwie über XML gelästert haben. So was.

Jochen

Passt. Habt ihr euch

Jochen

gerügt

Jochen

worden? Ja.

Jochen

Nee, es wurde sogar ein gewisses

Jochen

Verständnis dafür gezeigt, dass Entwickler vielleicht doch lieber

Jochen

Jason mögen, unter Umständen

Jochen

als XML.

Jochen

Was hat dir denn gefehlt

Jochen

an der DjangoCon? Was müsste die DjangoCon mehr

Jochen

haben?

Jochen

Schwer zu sagen, also was mir

Jochen

ich war jetzt

Jochen

gar nicht so wahnsinnig da mit drin,

Jochen

also ich würde sagen, was mir persönlich gefehlt hat, war halt

Jochen

der Kontakt mit den anderen Leuten, aber das ging halt einfach nicht.

Jochen

Aber da kann man jetzt keinen Vorwurf

Jochen

machen. Ja, aber das ist halt der Grund,

Jochen

warum man eigentlich das... Ja, also ich

Jochen

würde auch sagen, eigentlich, wenn man vor Ort sein könnte,

Jochen

ich wäre auch gerne mal nach Porto gefahren,

Jochen

wo das hätte eigentlich stattfinden sollen.

Jochen

Ja, das ist auf jeden Fall eine ganz andere

Dominik

Atmosphäre, ne? Also wenn man da die ganze Zeit doch noch

Dominik

wieder vor dem selben Rechner sitzt. Ja, und auch mehr

Dominik

Fokus einfach. Ja.

Dominik

Aber... Das ist ja

Dominik

Vor- und Nachteil, ja.

Johannes

Ich habe das auch sehr genossen, dass ich da nicht hinfahren

Johannes

musste, weil ich konnte mich halt trotzdem um

Johannes

meine Kinder kümmern, konnte trotzdem

Johannes

dann abends mit der Familie

Johannes

essen und dann trotzdem abends

Dominik

noch die Talks. Als ob du es nicht genossen hättest, wenn du auch mal

Dominik

ausnahmsweise ohne die Familie und ohne die Kinder

Dominik

irgendwie frei in Porto.

Johannes

Klar, hätte ich auch genossen. Wäre aber

Johannes

einfach schwieriger gewesen,

Johannes

das zu machen. Ich glaube,

Johannes

ich glaube, in Zukunft wäre

Johannes

das sehr schön, wenn solche Konferenzen so ein Hybridmodell

Johannes

hätten. Dass man da sein

Johannes

kann, aber dass man

Johannes

auch online sein kann.

Dominik

Okay, finde ich ehrlich gesagt ein bisschen

Dominik

anstrengend.

Johannes

Ja, mag sein, aber es sind einfach

Johannes

unterschiedliche Zielgruppen und

Johannes

es gibt ganz viele Leute, die können nicht

Johannes

reisen oder die wollen nicht reisen oder die

Johannes

haben das sehr schwer

Johannes

zu reisen und machen es deshalb

Johannes

entsprechend selten und ich glaube,

Johannes

Online-Konferenzen ist was, was bleiben wird

Johannes

und dann müsste man irgendwas,

Johannes

ich habe da auch ganz eigene Ideen, ich finde es ganz

Johannes

cool, dass es Online-Konferenzen gibt,

Johannes

aber eigentlich, wenn man die Online-Konferenz macht,

Johannes

dann braucht man keine DjangoCon EU und keine

Johannes

DjangoCon India und

Johannes

keine DjangoCon America, sondern es müsste eigentlich

Johannes

eine DjangoCon Worldwide geben und

Johannes

dann ist die Sache klar, ja, du kannst nicht

Johannes

bei allen Talks dabei sein, aber du kannst halt bei denen dabei

Johannes

sein, wo du dabei sein kannst und fertig.

Johannes

Aber das ist mehr Umbruch

Johannes

als

Johannes

Also ich finde, das hat auch ein bisschen was familiäres,

Dominik

wenn man da hingehen kann, kann die Leute wirklich treffen

Dominik

irgendwie, wie kleiner das ist,

Dominik

desto familiärer ist das und je größer es wird, desto anonymer wird das

Dominik

und das Problem, was du ja gerade schon beschrieben hast,

Dominik

an diesen Online-Talks ist halt vor allen Dingen

Dominik

dieses Frontalunterrichtsthema, dass

Dominik

irgendwie alle Leute einen Speaker in einem Raum hängen,

Dominik

Und sich diese ganzen Nebengespräche halt nicht entwickeln,

Dominik

sich diese ganze soziale Interaktion irgendwie nicht so

Dominik

entwickelt, wie man sich das wünscht, man sich nicht mal gemeinsam Kaffee

Dominik

trinkt, irgendwelche zufälligen Bekanntschaften

Dominik

auf einem Gang hat oder so. Und das ist ja

Dominik

auch das, wovon irgendwie so eine Community lebt und so.

Dominik

Und das ist halt virtuell,

Dominik

ja, vielleicht hast du sowas wie

Dominik

Gather Town so ein bisschen

Dominik

reproduzierbar, aber

Dominik

naja, ist halt doch schon was ganz anderes, ne?

Dominik

Ja klar, aber du schließt halt auch manche

Johannes

Leute aus, die das nicht können oder nicht wollen.

Johannes

Und die Leute sind auch ein

Johannes

wichtiger Teil der Community.

Johannes

die irgendwie mitnehmen und deshalb

Johannes

denke ich, es wird

Johannes

Mischlösungen geben in der Zukunft

Johannes

und muss es auch geben. Okay, aber ich habe noch

Johannes

was ganz Konkretes, was mir jetzt leider

Johannes

gefehlt hat an der Konferenz

Johannes

und das waren die Lightning Talks.

Johannes

Es gab Lightning Talks. Oh ja, stimmt.

Johannes

Und die waren auch alle sehr gut und

Johannes

sehr schön und es war wirklich cool, dass da die Leute

Johannes

sich, also ich kann das jedem nur empfehlen,

Johannes

ja, das ist ein guter Einstieg, fünf Minuten, das

Johannes

schafft jeder. Die waren

Johannes

alle pre-recorded, das heißt, man hat auch nicht den

Johannes

Stress des Live-Daseins

Johannes

gehabt. Ich kann es jedem nur empfehlen.

Johannes

Aber die Auswahl war dieses Mal

Johannes

nicht so groß.

Johannes

Es waren alles technische Talks.

Johannes

Es waren auch nur eine Handvoll.

Johannes

Und die

Johannes

waren nicht so promoted, wie sie bei einer

Johannes

Konferenz wären. Also so ganz cool,

Dominik

wie baue ich mein Baumhaus, das hat denen noch gefehlt.

Dominik

Genau, also ich habe einfach

Johannes

in Heidelberg hat einer einen Talk gehalten,

Johannes

wie baue ich ein Baumhaus?

Johannes

Fünf Minuten Lightning Talk. Großartig.

Johannes

Hatte überhaupt nichts mit der DjangoCon zu tun,

Johannes

aber war großartig.

Johannes

Es ist so ein bisschen so ungefähr der einzige Talk, an den ich mich erinnern kann von der DjangoCon 2019 oder 2018 war es, ich weiß nicht mehr. Einfach, weil es so was ganz anderes war und das gab es dieses Mal gar nicht.

Johannes

Und das fand ich ein bisschen schade, dass es da nicht mehr so ein bisschen drüber hinausging, weil es war schon sehr fokussiert auf Django, was ja okay ist, aber bei den Lightning-Talks darf man durchaus, finde ich, auch so ein bisschen über die Stränge schlagen und das hätte ich mir mehr gewünscht.

Johannes

Ja.

Johannes

Das ist keine Kritik an jetzt irgendjemandem,

Johannes

sondern das ist eher Kritik an jemandem, der nicht dabei war.

Johannes

Schämt euch was. Ihr hättet

Johannes

dabei sein sollen und hättet coole Talks über

Johannes

abgefahrene Dinge halten können.

Johannes

Jeder hat ein Hobby und jeder kann das fünf Minuten

Johannes

präsentieren. Das interessiert ganz viele Leute.

Johannes

Meine Hobbys sind alle illegal.

Johannes

Meine Hobbys

Johannes

sind Python und Django, deshalb

Johannes

ich bin da schon

Johannes

ertappt.

Johannes

Ja.

Johannes

Ja, ansonsten.

Johannes

Das ist ein Bereich.

Jochen

Ja, stimmt. Also das hat mich auch gewundert,

Jochen

dass ich die Lightning-Talks war,

Jochen

schon vorbei, hupsala.

Johannes

Ja, waren zu wenige und waren auch nicht

Johannes

divers genug, sagen wir mal so.

Jochen

Ja, ansonsten so große, große Themen.

Jochen

Wir hatten jetzt so, genau, dieses ganze

Jochen

HTMX,

Jochen

so, genau,

Jochen

das war auf jeden Fall ein großes

Jochen

Thema, gab es viele Talks zu,

Jochen

viele Talks gab es halt auch zu

Jochen

Datenbank-Geschichten,

Jochen

das fand ich auch voll gut, also da waren auch einige,

Jochen

ja, eben diese. Der von Haki Benita,

Jochen

großartig. Ja, Markus Holtermann auch.

Jochen

Let's use another index.

Jochen

Ja. Can we do better?

Jochen

You've been in this talk long enough to know that yes,

Jochen

we can do better.

Jochen

Ja, oder auch der, wie macht man

Jochen

Migration eigentlich ordentlich, wenn man ein Produktionssystem

Jochen

hat, das irgendwie vielleicht nicht so

Jochen

verträgt, wenn man da mal, das fand ich auch

Jochen

sehr gut. Ich meine, klar.

Jochen

Was können wir denn machen, ohne den Django ORM zu benutzen?

Jochen

Was ist denn, wenn wir nur SQL benutzen wollen?

Jochen

Auch super. Ja, fand ich auch gut, weil

Jochen

dass das geht, war mir schon klar und

Jochen

ich habe das auch so ab und zu gemacht, aber was man da alles

Jochen

machen kann, das war mir jetzt gar nicht so präsent und das war

Jochen

ja, das war auch super. Und das

Jochen

SQL ist ja eigentlich auch eine sehr interessante

Jochen

Geschichte, dass man viel

Jochen

in SQL machen kann.

Johannes

Da kann man eine eigene Episode machen.

Johannes

Ja, drüber.

Jochen

Ja, ja, ja. Und Postgres wird immer besser.

Jochen

Ja, Postgres wird so langsam

Johannes

zur Eier legenden Wollmilch, aber das kann alles.

Johannes

Ja, das war auf jeden Fall auch ein

Johannes

großes Thema.

Jochen

Ja, dann, was hatten wir denn

Jochen

noch an größeren, dann

Jochen

GraphQL, war halt auch

Jochen

ein großes Thema,

Jochen

aber auch vor allen Dingen in Kombination,

Jochen

in einem Talk gab es, fand ich,

Jochen

im Zusammenhang

Jochen

mit Domain-Driven

Jochen

Design

Jochen

und genau.

Jochen

Sehr gut. Genau, aber da

Jochen

war auch, das muss ich, ja, es ist halt

Jochen

tatsächlich nicht so ganz einfach, das

Jochen

miteinander zu verknüpfen. Da wäre

Jochen

auch nochmal interessant gewesen, wie du

Jochen

das in dem dritten Teil, der da nicht vorgekommen ist.

Jochen

Achso, der ist ja in der

Jochen

Aufzeichnung.

Jochen

Genau, wie macht man das eigentlich,

Jochen

wenn man jetzt

Jochen

wenn man jetzt

Jochen

irgendwie

Jochen

Business-Logik hat, wo packt man die denn

Jochen

jetzt in Django eigentlich hin,

Jochen

wenn doch viele sagen, dass

Jochen

gar nicht so gut ist, das in die Models zu packen.

Jochen

Server, Helpers, Services,

Jochen

Helpers, Utils.

Jochen

Jochen, da haben wir doch schon

Johannes

drüber gesprochen, wenn du das in die Models packst,

Johannes

ist überhaupt nicht solid. Die sind überhaupt

Johannes

nicht mehr Single Responsibility,

Johannes

die sind überhaupt nicht mehr ersetzbar, die sind überhaupt nicht mehr

Johannes

Ja.

Johannes

Jede Buchstabe von Solid ist direkt

Johannes

ist direkt

Johannes

verletzt. Aber ja, das Problem

Johannes

ist halt, andererseits auch irgendwie

Johannes

nicht, weil das andererseits ist

Jochen

Es ist halt auch schon sehr praktisch, das ist auch richtig.

Jochen

Aber da, auf jeden Fall

Jochen

mich kam darauf, weil sich auch, glaube ich, eben

Jochen

in dieser Domain-Driven-Design-Plus-GraphQL

Jochen

Geschichte hat sich auch, oder vielleicht war es

Jochen

so ein anderer, vielleicht kriege ich es auch mal so richtig zusammen,

Jochen

Talk, hat sich auch jemand dann so, ja, wie macht man

Jochen

das eigentlich mit Django? Und dann, okay,

Jochen

irgendwie geht es nicht so richtig gut, weil

Jochen

wenn man es in die Models

Jochen

schreibt, dann hat man da etwas,

Jochen

macht man da etwas, was man eigentlich nicht tun sollte

Jochen

und ja, aber anders geht es

Jochen

irgendwie auch nicht gut und

Jochen

Ja, das ist einfach so eine

Jochen

ungelöste Frage.

Jochen

Da ist auf jeden Fall noch eine Baustelle

Jochen

und ich fand, man hat diesmal auch gemerkt, dass

Jochen

die ordentlichen Menge,

Jochen

ordentlichen Anteil der Leute tut es halt weh,

Jochen

aber es gibt irgendwie keine Lösung, keine jedenfalls

Jochen

keine Best Practice, die man einfach so verwenden

Jochen

könnte.

Jochen

Das ist so ein bisschen

Johannes

der letzte Punkt, den ich bringen

Johannes

möchte, der letzte Kritikpunkt, den

Johannes

ich bringen möchte.

Johannes

Die Django-Community ist großartig.

Johannes

Die ist ganz große Klasse und

Johannes

es gab quasi nichts,

Johannes

wo ich irgendwie negative

Johannes

Erfahrungen machte. Es gab nichts, wo jemand

Johannes

ausgelacht wurde oder wo

Johannes

ein unangenehmer Witz gemacht wurde oder wo

Johannes

irgendwas negativ betrachtet wurde, sondern es ist

Johannes

alles großartig und positiv.

Johannes

Und das ist großartig, ja, das ist super für so eine Community

Johannes

und ich bin da echt froh

Johannes

und dankbar, Teil so einer Community

Johannes

zu sein und jetzt nicht irgendwo

Johannes

so in so einer

Johannes

giftigen Community

Johannes

festzustecken, die alle fertig machen.

Johannes

Also ja, das ist wirklich großartig.

Johannes

Und auch, dass

Johannes

es geschafft wurde, dass viele

Johannes

Frauen dabei sind, ja, auch

Johannes

vielleicht nicht binäre, die waren jetzt, die standen jetzt

Johannes

hier nicht irgendwo im Vordergrund oder so, aber

Johannes

das wäre überhaupt gar kein Thema gewesen, ja.

Johannes

Wäre überhaupt gar kein Thema gewesen.

Johannes

großartig, ja, großartige

Johannes

Community, sehr inklusiv, sehr, sehr

Johannes

positiv, aber

Johannes

aber auch

Johannes

an manchen Stellen einfach ein bisschen zu positiv.

Johannes

Zu wenig

Johannes

über die schlechte Bildqualität wurde mal geredet,

Johannes

das mal. Ja, das meine ich gar

Johannes

nicht, sondern

Johannes

Django, es wurde auch auf der Konferenz

Johannes

mehrmals als the boring old framework

Johannes

bezeichnet und

Johannes

das ist was, was man Django

Johannes

und der Community vorwerfen kann, ja, die Innovation

Johannes

kommt aus anderen Sachen.

Johannes

Die innovativen Sachen kommen aus

Johannes

der Ruby-Welt, die viel kleiner ist.

Johannes

Aus der Rails-Welt.

Johannes

Die innovativen Sachen kommen aus der JavaScript-Welt,

Johannes

die halt, ja okay,

Johannes

die halt tun müssen, ja, weil sie

Johannes

nicht anders können.

Johannes

Aber warum haben wir

Johannes

denn nicht so

Johannes

viel Innovation in der Django und in der Python-Welt?

Johannes

Warum

Johannes

beäugen wir die Sachen nicht auch mal viel skeptischer

Johannes

und sagen, ja, das ist ja schon ganz gut, aber

Johannes

es könnte noch viel cooler sein?

Johannes

So ein bisschen sieht man das ja mit dem HTMLX und mit dem Fullstack without writing JavaScript. Aber das sind immer nur Sachen, die, wir zeigen jetzt mal eine Lösung, die jemand gemacht hat.

Johannes

es gab wenig so

Johannes

lasst uns doch mal Folgendes machen oder lasst uns mal

Johannes

ausprobieren oder hier ist was, was ihr noch nie gesehen habt.

Johannes

Weil es das noch nicht gibt

Johannes

irgendwo anders. Und ich hatte

Johannes

das Gefühl, oder ich habe schon länger das Gefühl,

Johannes

dass die Django-Community eben so ein kleines bisschen

Johannes

weniger

Johannes

weniger

Johannes

ja, es ist schwer, das in Worte

Johannes

zu fassen, ohne zu negativ zu sein.

Dominik

Das ist einfach so gut, dass man einfach den Nied nicht hat,

Dominik

sich so schnell in eine andere Richtung zu bringen.

Dominik

Ja, vielleicht.

Johannes

Ja, aber das ist ja so ein lokales Maximum, ja. Vielleicht ist das ja so. Vielleicht ist ja Django so ein lokales Maximum, wo es eben sehr schwer ist, sich rauszuoptimieren, weil jeder Schritt nach draußen erstmal ein Schritt nach unten ist. Und vielleicht ist es das, aber ich würde es mir halt wünschen, ja.

Johannes

Ich habe in der Rails-Welt

Johannes

total coole Sachen gesehen.

Johannes

Hotwire kommt, glaube ich, aus der Rails-Welt.

Johannes

Es wurde mehrmals darauf verwiesen,

Johannes

wie Rails das macht, während Konferenztalks.

Johannes

Und das ist schade,

Johannes

weil Django sollte der Vorreiter sein.

Johannes

Django ist nicht der Vorreiter. Django ist die

Johannes

beste Lösung, aber nicht der Vorreiter.

Jochen

Auf der anderen Seite ist Django

Jochen

damit natürlich auch so ein bisschen wie Python selber.

Jochen

Irgendwie so das zweitbeste

Jochen

Framework.

Johannes

Und es ist der absolut beste Platz, wo man sein kann,

Johannes

der zweitbeste zu sein, weil der erste wird immer

Johannes

angegriffen und sie zerlegt.

Dominik

Mach doch mal, Johannes, sei doch mal innovativ.

Dominik

Bring doch mal was Neues raus.

Dominik

Ja, ich versuch's ja.

Dominik

Ich versuch's ja, aber

Johannes

erst mal muss ich Geld verdienen.

Johannes

Ja, da kommt wieder her

Johannes

der Greed und so.

Johannes

Ja, ja, ja.

Johannes

Diese Sache mit

Johannes

Anvil, Jochen, die ist ja großartig.

Johannes

Anvil ist ja eine ganz

Johannes

verrückte, abgefahrene Sache.

Dominik

Was ist Anvil? Ein Schmiede-Amboss

Dominik

für... Ja, das ist quasi

Dominik

JavaScript aus Python.

Dominik

Die haben

Johannes

einen Python-Compiler

Johannes

für

Johannes

JavaScript, der JavaScript erzeugt. Das heißt, du kannst

Johannes

dein System komplett in Python schreiben

Johannes

und hast dann aber trotzdem hinterher

Johannes

eine JavaScript-Webseite.

Johannes

Großartig. Großartige Idee.

Johannes

Funktioniert auch.

Johannes

Kann man jetzt schon

Johannes

benutzen. Er hat auch eine Live-Demo gemacht, die dann sofort

Johannes

live war. Auch

Johannes

sehr großartig. Weiß nicht, ob das Ding noch live ist.

Johannes

Müssen wir mal gucken.

Johannes

Ja, aber es geht auch,

Johannes

das ist dann schon nicht mehr Django.

Johannes

Anvil ist, glaube ich, relativ wenig Django.

Jochen

Ja, ja, ja. Genau.

Jochen

Aber vielleicht ist das ja genau das

Johannes

Indiz dafür, dass das aus dem lokalen

Jochen

Maximum da raus... Ich glaube auch, es ist

Jochen

einfach schwer, du kannst auch Django nicht mehr so leicht

Jochen

verändern. Du kannst ja nicht einfach sagen, wir bauen

Jochen

jetzt Django so um, dass es sowas wie Anvil ist.

Jochen

Ja, das würde halt... Das ist einfach so viel Arbeit.

Dominik

Das Johannes eben gesagt hat, dass wir Module

Dominik

daraus machen. Ja, das wäre

Jochen

möglicherweise ein Grund, das zu

Jochen

tun. Wenn man sagt, also ich meine, es fängt ja schon bei

Jochen

sowas an wie Django Admin, haben ja auch schon viele

Jochen

Leute gesagt, aber es wäre doch auch cooler, wenn das irgendwie

Jochen

so ein bisschen reaktiver wäre und wenn man da irgendwie

Jochen

so ein paar modernere... Es geht halt nicht, weil

Jochen

Django Admin Neuschreiben... Oder wenn man seine Anwendung da besser

Jochen

integrieren könnte. Ja, aber

Jochen

es wird halt auch da, wird dann immer gesagt, so ja, Django Admin

Jochen

Neuschreiben, vergiss es einfach, das kriegst du ja nicht mehr hin.

Jochen

Das ist nicht zu machen. Ja, oder

Jochen

es ist halt nicht... Es ist halt das

Johannes

lokale Maximum, ja. Du kannst ein Django Admin schon

Johannes

Neuschreiben, aber der wird erstmal eine ganze Weile

Johannes

lang sehr viel schlechter sein, als der Django hat,

Johannes

mit dem du jetzt hast.

Johannes

Und dann ist die Motivation

Johannes

schon so ein bisschen so, ach ja,

Johannes

dann nehme ich halt den Django ab.

Johannes

Und das vielleicht, ja, vielleicht

Johannes

ist das der richtige Weg, das zu modularisieren.

Johannes

Ja,

Jochen

ich meine, ich würde da sagen,

Jochen

Flask, um da nochmal, weil da gab es

Jochen

noch News zu.

Jochen

Das ist ja der andere Ansatz,

Jochen

das ist ja sozusagen,

Jochen

alles ist modular und du bastelst

Jochen

dir das halt selber zusammen. Und es gibt auch keine

Johannes

Standardmodule, sondern du musst dir selber Standardmodule

Johannes

suchen.

Jochen

Da gab es jetzt eine neue Release,

Jochen

Flask 2.0, und

Jochen

ich hatte ja mal so irgendwie

Jochen

Kess behauptet, ah, das wird nie

Jochen

irgendwie, weil

Jochen

ich hatte das noch so in Erinnerung,

Jochen

dass da ja auch mal sehr, sehr

Jochen

stark geachtet wurde auf Abwerbskompatibilität

Jochen

und möglichst, also gerade,

Jochen

na, wie heißt der noch?

Jochen

Dings da, Armin,

Jochen

der missfällt das ja total, dass

Jochen

irgendwie der

Jochen

der hat ja am liebsten Abwärtskompatibilität

Jochen

bis, weiß ich nicht, eigentlich

Jochen

bis ganz weit, bis Jahrzehnte zurück.

Jochen

Was ich ja auch verstehen kann in gewisser Weise.

Jochen

Ja, ja, hat auch Vorteile.

Jochen

Aber auf der anderen Seite würde das eben bedeuten,

Jochen

ja, sowas wie Async Await, das wird dann

Jochen

halt nie gehen, weil das, oder

Jochen

und Flask ist halt auch

Jochen

direkt setzt halt, ist eines der ersten Frames, das

Jochen

direkt auf WSGI aufsetzt, was halt

Jochen

ein Problem ist, weil

Jochen

naja, das ist halt nicht Async

Jochen

und das kriegst du auch nicht dazu.

Jochen

Und Django hat es da sogar ein bisschen einfacher,

Jochen

weil Django ist nämlich älter als

Jochen

WSGI und WSGI ist schon

Jochen

irgendwie da so

Jochen

dran gebastelt und jetzt kann man

Jochen

halt auch noch was anderes ranbasteln.

Jochen

Auf jeden Fall eine Stelle, an der man was ranbasteln kann,

Jochen

die bei Flask so nicht da ist. Deswegen dachte ich so,

Jochen

naja, also das Flask-Async-fähig

Jochen

wird nicht passieren. Aber es ist

Jochen

tatsächlich passiert, jetzt mit 2.0 geht

Jochen

das und sie haben auch eine Menge

Jochen

eben, sie haben halt die Abwärtskompetitivität

Jochen

beendet, jedenfalls.

Jochen

Aufgegeben.

Jochen

Ja gut, okay, aber in einer Major-Release

Jochen

kann man das auch machen.

Jochen

Aber dann hätten sie es, geschickterweise

Jochen

hätten sie es Flask 3 nennen müssen,

Johannes

weil das ist doch das, wo in Python immer die

Johannes

Kompetenzen zerbrechen.

Johannes

Genau,

Johannes

das braucht

Johannes

jetzt mindestens Python 3.6 und

Jochen

genau, man hat jetzt auch Async-Geschichten

Jochen

da drin und SGI und

Jochen

es gab da immer so ein Ding

Jochen

dafür, Quad, das gibt es auch immer noch, das ist

Jochen

ja, da hatte ich das übrigens

Jochen

auch her, die Idee

Jochen

aus einer Podcast-Episode mit

Jochen

dem jetzigen Maintainer von

Jochen

Flask,

Jochen

dass man doch, weil der sagte so,

Jochen

ja ey, wozu braucht man das denn?

Jochen

Das ist doch irgendwie, in der Flask-Welt

Jochen

machen wir das schon seit jeher mit

Jochen

Eventlets und G-Event.

Jochen

Ich so, ha, okay.

Jochen

Und das geht?

Jochen

Und das geht? Und dann habe ich es probiert und ja, es geht.

Jochen

Tatsächlich, das kann man machen. Und das ist halt

Jochen

möglicherweise auch tatsächlich eine einfachere Lösung für

Jochen

dieses File-Surf-Problem

Jochen

einfach einen Geo-Event-Worker

Jochen

nimmt, der dann halt die Standard-Bibliothek

Jochen

monkeypatcht und alle synchronen

Jochen

I.O. Calls ersetzt durch

Jochen

nicht blockierende und

Jochen

das funktioniert dann einfach magisch.

Jochen

Über monkeypatching ist halt so ein bisschen gefährlich,

Jochen

aber wenn das nur für die Worker macht, die die

Jochen

Files ausliefern, ist es vielleicht auch nicht so schlimm.

Jochen

Ja, aber

Jochen

und was man da auch machen kann,

Jochen

ist, man kann das gleichzeitig machen. Man macht halt

Jochen

Geo-Event irgendwie auf dem

Jochen

Main-Thread und

Jochen

packt halt, und das macht Django ja auch, und zwar

Jochen

auch aus dem Grund, um G-Event und

Jochen

Eventlets nicht zu brechen,

Jochen

den ganzen, die lässt

Jochen

die Event-Gloob in einem anderen Thread laufen.

Jochen

Und dann alles, was I think Await macht, läuft dann halt

Jochen

in einem anderen Thread und

Jochen

trotzdem funktioniert diese ganze

Jochen

Eventlet-G-Event-Geschichte weiterhin.

Jochen

Also, interessant

Jochen

wusste ich alles gar nicht, aber auf der anderen Seite

Jochen

sagten die auch, ja, also tatsächlich, um

Jochen

kompatibel zu sein zu moderneren

Jochen

Bibliotheken und so, wo man Await-Syntax

Jochen

verwenden

Jochen

mustern, weil die nur noch das können.

Jochen

Hm, ja, bleibt uns wohl auch nichts anderes

Jochen

übrig, müssen wir das auch irgendwie können,

Jochen

weil du kannst halt in einem synchronen Funktionsaufruf

Jochen

nicht irgendwas erwähnen, das geht einfach nicht.

Jochen

Ja, und deswegen ist es

Jochen

auch in Flask jetzt drin und ja, das wird

Jochen

also Flask immer noch weiterentwickelt,

Jochen

voll gut. Ich weiß nicht

Jochen

so recht, ich habe mit dieser ganzen

Jochen

Welt nicht so wahnsinnig viel zu tun,

Jochen

weil ich jetzt ehrlich gesagt auch keine Flask-Projekte

Jochen

oder sowas habe oder Dinge, wo ich was

Jochen

drin schreibe. Ich benutze dann immer,

Jochen

Ich habe noch ein paar Sachen, die

Jochen

Fast-API sind und das finde ich auch sehr nett.

Jochen

Und ich glaube, das ist ja so ähnlich wie Flask quasi.

Jochen

Also auch

Jochen

in der Hinsicht, dass es halt nicht

Jochen

dir vorgibt, was

Jochen

also es ist halt nicht integriert, sondern

Jochen

es bringt gar nichts mit, sondern du musst

Jochen

alles dann halt selber

Jochen

konfigurieren und zusammenstecken.

Jochen

Ja, aber es ist halt

Jochen

war halt nativ direkt Async und macht alles über

Jochen

Type und Annotation und so.

Jochen

Ja, insofern.

Jochen

Aber ja, es ist schön, dass Flask

Jochen

halt auch jetzt einen neuen Release hat.

Dominik

Wenn wir schon bei den ganzen Webfilmen sind,

Dominik

liebt Pyramid eigentlich noch?

Dominik

Ja, da gab es ja auch,

Jochen

weiß nicht, ist jetzt ein paar Monate her, glaube ich, aber da gab es auch

Jochen

einen neuen Release.

Jochen

Habe ich allerdings auch nichts mehr zu tun,

Jochen

keine Ahnung, kann ich nicht mehr drüber erzählen.

Jochen

Aber in unserem

Johannes

Bekanntenkreis gibt es Leute, die das

Johannes

ganz stark

Johannes

in der

Johannes

Pi-DDF-Konferenz.

Johannes

Kommt immer wieder was auf.

Johannes

Ja, genau.

Johannes

Ja, ich finde, dann haben wir einen kleinen Überblick

Johannes

über die Jungle-Kongen tatsächlich jetzt gegeben.

Johannes

Guckt euch doch die ganzen Videos an,

Dominik

wenn sie alle draußen sind. Das ist bestimmt noch mal

Dominik

interessant.

Dominik

Ja, mache ich auf jeden Fall.

Dominik

Genau.

Dominik

Wollen wir noch was vergessen? Habt ihr noch was dazu?

Dominik

Wollen wir noch Pics machen?

Dominik

Oh ja, können wir machen.

Dominik

Johannes, was ist dein Pick dieses Mal?

Dominik

Ich habe

Dominik

dieses Mal keinen Pick mitgebracht.

Dominik

Na gut. Doch, doch, ich habe keinen Pick.

Dominik

DevDocs.

Dominik

Ah, ja, achso.

Dominik

Tja, die hatten wir leider schon in der letzten Episode.

Dominik

Hattet ihr schon? Okay, gut.

Dominik

Dann wiederhole ich das, dann bekräftige ich das.

Dominik

Jeder sollte sich das sofort auf seinen Rechner runterladen

Dominik

und für alles benutzen.

Johannes

Ich fand es ja sehr schön. Ich habe das jetzt kürzlich

Johannes

gefunden und habe dann natürlich direkt alle

Johannes

Dokumentationen runtergeladen, die es runtergeladen hat.

Johannes

Vielleicht, weil du unseren Podcast gehört hast?

Johannes

Natürlich, weil ich das nachgeholt

Johannes

habe, habe ich es nachgeholt quasi.

Johannes

Was mich sehr

Johannes

belustigt hat, war, ich habe diese Dokumentation

Johannes

runtergeladen in den Offline-Modus und die

Johannes

Django-Dokumentation sind, glaube ich,

Johannes

6 MB und die Python-Dokumentation

Johannes

sind etwas über 9 MB und die

Johannes

Dokumentation für die DOM sind 64

Johannes

MB.

Johannes

Also

Johannes

6,5 Pythons

Johannes

muss man

Johannes

komplett kennen, um

Johannes

die DOM benutzen zu dürfen.

Johannes

Fand ich

Johannes

erschreckend, schrägstrich belustigend.

Dominik

Ja, damit ihr noch mal wisst, was das ist,

Dominik

man kann sich halt tatsächlich auf einer einzigen

Dominik

Seite die Dokumentation von verschiedensten

Dominik

Frameworks und Sprachen irgendwie

Dominik

auf seine Favorites legen und hat dann direkt einen Zugriff

Dominik

auf das Buch.

Dominik

Ja, und auch offline.

Dominik

Jochen, was ist deine

Dominik

Pick?

Dominik

Das ist eine sehr frohe Frage.

Jochen

Ich kann vielleicht auch, was ich tatsächlich

Jochen

sehr schick fand, habe ich jetzt,

Jochen

das meine ich auch,

Jochen

EIO SQL

Jochen

ist so eine ganz eigene Art,

Jochen

wie man jetzt nochmal, also

Jochen

ich dachte dran, musste dran denken,

Jochen

ich weiß nicht mehr, wie ich drauf gekommen bin,

Jochen

als ich den Talk zu RAW, SQL

Jochen

und Django gehört hatte

Jochen

und dachte so, ja, also man kann

Jochen

halt auch

Jochen

sich so als

Jochen

alternatives Konzept zu dem klassischen ORMs,

Jochen

die man so hat, einfach alles

Jochen

über Statements definieren

Jochen

und dann diese Statements halt so ein bisschen

Jochen

parametrisierbar machen und das ist halt,

Jochen

das ist auch alles Async und so und

Jochen

das ist auch eine sehr nette

Jochen

Geschichte, kann man sich mal angucken.

Dominik

Also direkt SGL-Statements aus.

Jochen

Ja, ganz, ganz anderer Ansatz als der

Jochen

OEM-Ansatz, den man so kennt, aber auch irgendwie

Jochen

interessant.

Jochen

Und, ah, eine Geschichte,

Jochen

das fand ich sehr verwunderlich, ich dachte jetzt

Jochen

eigentlich, ich fange jetzt mal mit so einem Stream an, ich habe ja auch nirgendwo

Jochen

gesagt, dass ich das tue oder so, außer euch

Jochen

jetzt.

Jochen

In dem Twitch-Stream waren eigentlich

Jochen

relativ sofort irgendwie Leute drin und

Jochen

ja, da muss ich mich auch erstmal dran gewöhnen.

Jochen

Und

Jochen

da hat jemand gesagt, also als ich

Jochen

mit Git die ganze Zeit so rumgemurkst habe

Jochen

auf der Kommandozeile, nimm doch einfach Tick.

Jochen

So, das gebe ich jetzt einfach mal so weiter.

Jochen

Ich habe es noch nicht benutzt, ich weiß gar nicht, ob das gut ist, aber das ist wohl

Jochen

ein Endcursus

Jochen

Client für Git, der vielleicht

Jochen

ein bisschen besser ist.

Jochen

Interessant.

Dominik

Muss man sich mal angucken. Ja, ich habe auch noch

Dominik

einen kleinen Pick, ich würde diesmal eine Business-Anwendung

Dominik

nehmen, und zwar Lifetimes.

Dominik

Das gibt es auf PyPy und

Dominik

wenn man da quasi Bestelldaten von

Dominik

Kunden reinpiped, dann

Dominik

bekommt man quasi die Absprungrate, die

Dominik

Churnrate ausgerechnet.

Dominik

Und das ist tatsächlich gar nicht so schlecht, wenn man

Dominik

so Sales machen möchte oder so.

Dominik

Ja, hab ich so entdeckt und fand ich gut.

Dominik

Funktioniert echt gut für gute

Dominik

Businesses. Kann man wahrscheinlich auch verkaufen,

Dominik

also an Endkunden oder so, die wollen das alle haben.

Dominik

Die Library, dass du einfach

Dominik

nur die Library verkaufst, oder? Ja, du musst

Dominik

natürlich schon... Rechnen euch die Churnrate.

Dominik

Durch die Daten der Kundenpipen, aber ja.

Johannes

Ja klar, das als Service anzubieten.

Johannes

Das ist eine coole Idee.

Johannes

Ja, vielen Dank,

Johannes

dass ihr wieder eingeschaltet habt, dass ihr zugehört habt.

Dominik

Bleibt uns gewogen. Hört uns nachts, morgens, mittags,

Dominik

abends, am Wochenende, unter der Woche

Dominik

beim Schwimmen gehen.

Dominik

Ja, schönen Tag,

Dominik

schönen Zeit.

Dominik

Bis dann. Tschüss.

Dominik

Ja, spät wieder.

Dominik

Tschüss. Ja, diesmal lassen wir uns nicht so viel Zeit.

Dominik

Ja. Bis dann. Tschüss.