Transcript: CSS / Markdown / Microservices

· Back to episode

Full episode transcript. Timestamps refer to the audio playback.

Dominik

Ja, hallo und herzlich willkommen beim Peißen-Podcast. Heute Episode 40, Jochen, wir haben Jubiläum.

Jochen

Oh ja, herzlich willkommen Dominik. Ja, 40.

Jochen

40, kann nicht so schlecht, ne?

Jochen

Das ist ja schon viel älter, als wir sind.

Jochen

Ja, fast.

Jochen

Ja, zumindest teilweise.

Jochen

Ja, noch.

Dominik

So, was wollen wir heute machen? Wir haben ja erst überlegt, ob wir irgendwas über Ensebill erzählen wollen,

Dominik

Aber das müssen wir wann anders, glaube ich, nachholen, weil wir niemanden gefunden haben, der sich mit Ensebel so richtig gut auskennt, den wir ja gerne als Gast gehabt hätten.

Dominik

Wenn ihr also von Ensebel Ahnung habt und was erzählen wollt, dann sagt uns doch einfach mal Bescheid.

Dominik

Das gilt auch übrigens für alles andere Feedback, was ihr uns schicken wollt an hallo.heißenpodcast.de.

Jochen

Genau, wenn ihr ein Thema habt, über das ihr gerne mal gesprochen haben wollen würdet, dann könnt ihr das auch gerne selber mit uns tun oder jemanden nennen, die wir mal fragen sollen.

Dominik

Wir haben zwar noch viele schöne Themen auf unserer Liste

Dominik

und so, aber wir lassen uns auch immer gerne bereichern

Dominik

mit neuen tollen Themen. Da müssen wir vielleicht nachher nochmal

Jochen

drüber reden, welche Themen das denn sind, damit Leute dann auch

Jochen

eine Chance haben, irgendwie zu sagen, ob sie jemanden kennen.

Dominik

Die können ja einfach ihr Thema bringen, auf das sie besonders Lust haben.

Jochen

Okay, dann sagen wir das jetzt zuerst, wo noch

Jochen

so viele Leute dazuhören, dass sie das mal machen sollen.

Jochen

Ja, es gibt ja so eine Burnrate.

Jochen

Genau, und dann am Schluss ist ja keiner mehr übrig.

Jochen

Ja, aber was machen wir denn dann heute?

Dominik

Wir wollten einfach so ein bisschen mal wieder kunterbunt

Dominik

durcheinander reden,

Jochen

Zeugs besprechen. Eben so Metageschichten vielleicht

Jochen

tatsächlich mal wieder. Das haben wir jetzt auch schon länger nicht mehr gemacht.

Jochen

so eben, über was man mal reden könnte

Jochen

oder ja, was wir

Jochen

so tun. Ja, so richtig Meta,

Dominik

ja, Meta über was, ja, über Podcast

Dominik

ist es nicht, Meta über Python ist es nicht mehr.

Dominik

Ich glaube, es ist eigentlich so Web-Dev-Meta, oder?

Dominik

Also was man so alles benutzen kann an Tools

Jochen

oder so. Ja, ich meine, wir machen

Jochen

ja relativ viel Web-Entwicklung, oder ich

Jochen

mache gerade relativ viel Web-Entwicklung

Jochen

seit einer ganzen Zeit.

Jochen

Ich weiß auch nicht, warum das so ist, weil ich

Jochen

mache ja eigentlich auch viel Maschinenleutent-Kram und so,

Jochen

oder habe auch mal viel gemacht, aber in letzter Zeit

Jochen

ist es irgendwie mehr Web-Entwicklung, obwohl das

Jochen

andere Dinge ja auch gerade so halbt. Ich weiß nicht,

Jochen

woran das liegt. Ich muss halt vielleicht einfach mehr Machine Learning

Jochen

wieder machen. Ich wollte gerade sagen, einfach den Job wechseln,

Jochen

Jochen. Ja, das kann natürlich auch sein.

Jochen

Ja, gut.

Jochen

Vielleicht Webentwicklung

Jochen

ist eigentlich so ein bisschen

Jochen

Convenience-Software-Entwicklung.

Jochen

Das kann man mal so ein bisschen

Jochen

dazwischen schieben, mal Teilzeit, ist nicht so schlimm.

Dominik

Also Machine Learning auf Blockchain

Dominik

oder so. Oh mein Gott.

Dominik

Ja, das ist jetzt nur,

Dominik

das weiß ich jetzt nicht. Duo in Finale.

Jochen

Ob ich das machen möchte? Nee, eher nicht.

Jochen

Aber genau, vielleicht fangen wir einfach mit News an.

Jochen

Ja, mit News wie immer, oder?

Jochen

Okay, warte mal, die Kapitelmarke News.

Jochen

Dafür musst du dich jetzt aber ziemlich strecken.

Jochen

Ja.

Jochen

Das müssen wir noch optimieren.

Jochen

Das muss ich, der Raum ist noch nicht ganz optimal, das stimmt.

Dominik

Okay, also wir haben gerade ein Kapitelmarke.

Jochen

Ich sehe schon, dass die Kapitelmarke irgendwie am Anfang jetzt sitzt

Jochen

und nicht da, wo ich sie eigentlich haben wollte.

Jochen

Irgendwie funktioniert das alles noch nicht so richtig.

Jochen

Ja, ihr merkt, heute wird eher eine Laberfolge.

Jochen

Ah, was ist denn da schon wieder kaputt?

Jochen

Okay, ich stelle jetzt hier mal das Ding

Jochen

in Ultraschall auf.

Jochen

Wir benutzen übrigens Ultraschall zum Aufnehmen.

Jochen

Ultraschall 5.

Jochen

Sehr gut.

Dominik

Ein Plugin auf Reaper.

Dominik

Ja, genau.

Jochen

Wie produziert man Podcasts?

Jochen

Das haben wir noch gar nicht.

Dominik

Haben wir das schon mal gesagt, wie man Podcasts produziert?

Dominik

Oder wie wir unseren produzieren vielleicht?

Dominik

Also Kurzversion ist tatsächlich,

Dominik

wir nehmen das auf mit diesem Plugin für Reaper.

Dominik

Reaper ist eine Software, die

Dominik

eigentlich kostenlos.

Dominik

Nein, nein, nein.

Dominik

Ich habe auch bezahlt.

Dominik

In der Evaluation-Version gibt es.

Dominik

Also erstmal zum Ausprobieren kostenlos, ich wollte jetzt sagen.

Dominik

Und dann gibt es halt dann dieses Plugin Ultraschall

Dominik

für Podcasts, was echt cool ist.

Dominik

Und danach machen wir noch so

Dominik

Post-Production mit

Jochen

Aufphonic. Ja, und Shownotes schreiben

Jochen

und so, das machen wir auch so. Leider nicht automatisch,

Jochen

sondern muss man überall aufwarten.

Dominik

Tja, aber Shownotes kann man ja

Dominik

einigermaßen gebrauchen, dann kann man doch mal nachschauen,

Dominik

was wir für einen Quatsch irgendwann mal erzählt haben.

Dominik

Vielleicht ist da ein bisschen Schumanns drin, wenn das

Dominik

dann jemand aufgeschrieben hat.

Jochen

Genau. So, jetzt kann ich auch die

Jochen

News-Kapitelmarke nochmal verschieben.

Jochen

Ich kann kein schlechtes Gewissen haben.

Dominik

Jetzt haben wir aber auch wirklich ein bisschen Meta über Podcasts.

Dominik

Das ist doch schon mal etwas. Du wolltest bestimmt auch mal über andere Podcasts

Dominik

gleich erzählen.

Dominik

Ja, aber vielleicht erstmal News.

Dominik

Na gut.

Dominik

Was gibt es denn Neues?

Jochen

Also ganz schick.

Jochen

Task Groups gibt es jetzt.

Jochen

Es ist gerade gemerged worden für Python 3.11.

Jochen

Okay, was ist

Dominik

Taskgroups? Fangen wir vielleicht erstmal damit an.

Dominik

Naja, also sagen wir so, es gibt

Dominik

ja irgendwie bei, also es gibt

Jochen

eine Schwachstelle bei Python

Jochen

Async-Geschichten,

Jochen

die halt da schon oft

Jochen

irgendwie

Jochen

ja, Leute

Jochen

ein bisschen depressiv gemacht hat

Jochen

oder keine Ahnung, oder geagert hat.

Jochen

Ich weiß nicht genau, wie man das am besten

Jochen

also zum Beispiel

Jochen

Trio ist eine Bibliothek, die sich halt

Jochen

mit diesen ganzen Problemen beschäftigt. Es ist halt auch

Jochen

schwierig.

Jochen

Nathaniel Smith hat die geschrieben.

Jochen

Es gibt ja diverse Implementationen

Jochen

von diesem Async. Ich habe jetzt ganz viel gehört, aber ich habe

Dominik

immer noch nicht genau verstanden, was denn das Problem

Jochen

dabei ist und warum. Also das Problem ist halt

Jochen

also, sagen wir mal

Jochen

so, wir

Jochen

befinden uns, was diese Async-Geschichten angeht,

Jochen

ja so ein bisschen in einem ähnlichen

Jochen

Stadium wie, als man

Jochen

irgendwann mal angeführt hat, strukturierte Programmierung

Jochen

zu verwenden, anstelle von

Jochen

Gotoh oder so.

Dominik

Das ist jetzt ein bisschen abstrakt.

Dominik

Es ist so, als wäre jetzt nebenläufig ein Feind gedankenlos gelaufen,

Dominik

der aber nicht mit dem anderen wieder zusammengekommen ist,

Dominik

weil ich den nicht einsammeln konnte.

Jochen

Ja, aber genau.

Jochen

Also nachdem man strukturierte Programmierung,

Jochen

also mit Funktionen und so oder Prozeduren irgendwie eingeführt hatte,

Jochen

da muss man auch erst mal sich umgewöhnen oder so,

Jochen

weil man das bisher immer anders gemacht hat.

Jochen

Also man strukturierte Programmierung bedeutet,

Dominik

man schreibt nicht von oben nach unten irgendwas durch

Dominik

und sagt dann, okay, gehe wieder zu dieser Zeile

Dominik

und mach da irgendwie weiter.

Dominik

Sondern man trennt das in logische Blöcke,

Dominik

die man aufrufen kann.

Jochen

Die halt, wo man am Anfang weiß, was da reinkommt

Jochen

und am Schluss weiß, was da wieder zurückgeht.

Jochen

Und sozusagen, damit man das halt nur noch ...

Jochen

Nennt man das eine Clojure?

Jochen

Nö.

Jochen

Clojure ist eine innere Funktion,

Jochen

die halt Zugriff auf etwas hat, was ...

Jochen

Ja, also du kannst zum Beispiel,

Jochen

wenn du eine Funktion in einer Funktion hast

Jochen

und du gibst jetzt sozusagen die innere Funktion zurück,

Jochen

dann hat die ja noch Zugriff auf den Scope

Jochen

der Funktion, aus der sie rauskommt.

Jochen

Und da kannst du jetzt Sachen drin definieren.

Jochen

Also zum Beispiel Closures ist halt

Jochen

das allgemeine Prinzip hinter, wie man

Jochen

Dekoratoren in Python dann implementiert.

Jochen

Also Dekoratoren machen das.

Jochen

Die rappen sozusagen die Funktion,

Jochen

die man dekoriert, in eine innere Funktion rein.

Dominik

Jetzt bin ich mir gerade nicht ganz sicher, ob wir die

Dominik

Menschen, die uns zuhören, jetzt nochmal abhören dabei.

Dominik

Falls die Dekorators sind. Oder ob die das alle schon wissen.

Jochen

Dann können wir mal eine Episode dazu machen.

Jochen

Dekoratoren, super Sache.

Dominik

Eigentlich schon, ne? Ja, okay, dann machen wir eine eigene Episode dazu.

Dominik

Haben wir schon mal wieder eine.

Dominik

Man rappt dann quasi

Dominik

die Funktion und dann da dir aufgerufen wird

Dominik

und das Funktionsobjekt da durch die Gegend gereicht

Dominik

wird, muss man da halt Objekte oder Dinge

Dominik

reingeben können, rausgeben können und kann halt vorher

Dominik

und nachher Sachen machen.

Dominik

Oder da irgendwelchen Kontext setzen, genau.

Jochen

Und ja,

Jochen

also

Jochen

das ist nochmal was Komplizierteres, aber

Jochen

also Funktionen sind ja eigentlich relativ einfach, aber

Jochen

trotzdem, wenn man das halt nicht gewohnt ist, dann muss man das umstellen

Jochen

und es ist die Frage, wie arbeitet man damit, was macht man

Jochen

jetzt eigentlich in einem Fehlerfall und so und all diese

Jochen

Probleme haben wir jetzt nochmal so ein bisschen, weil

Jochen

wir jetzt uns irgendwie überlegen müssen, okay,

Jochen

wenn wir jetzt Async-Sachen machen, wie machen wir das

Jochen

dann richtig? Und

Jochen

zum Beispiel ein Problem, was jetzt halt den Leuten

Jochen

öfter mal auf den Fuß gefallen ist, vor allen Dingen

Jochen

die Bibliotheken entwickeln, als Endanwender

Jochen

oder Endbenutzer

Jochen

von diesen Geschichten, hat man das

Jochen

eigentlich gar nicht so oft, aber

Jochen

kann man sich ungefähr verdeutlichen. Also wenn man

Jochen

jetzt zum Beispiel, man hat halt so ein,

Jochen

also was man mit Async-IO oft macht, ist

Jochen

sowas wie, zum Beispiel, also im einfachsten Fall

Jochen

man hat eine Liste von URLs, die man abfragen möchte

Jochen

und dann sagt man halt irgendwie

Jochen

Gather

Jochen

den ganzen Kram und kriegt

Jochen

dann halt das alles zurück.

Jochen

Was passiert denn? Was macht denn das Gather

Jochen

jetzt genau?

Jochen

Das wartet, bis sie alle einmal durch sind.

Dominik

Alle awaiten. Gather macht await eins

Dominik

nach dem anderen und zwar in der Reihenfolge, wie die in der Liste drinstehen.

Dominik

Oder das letzte.

Dominik

Reihenfolge gibt es so ja nicht mehr.

Dominik

Naja, aber die laufen ja nebenläufig

Dominik

und eins ist ja zuerst fertig.

Dominik

Ja. Und eins zuletzt fertig.

Dominik

Und Gather wartet, bis alle fertig sind.

Dominik

Genau.

Jochen

das

Jochen

sozusagen, also man muss es halt noch

Jochen

erwarten, aber das wartet, bis halt

Jochen

alle fertig sind. Und die Ergebnisse sammelt das

Dominik

auch oder gibt es da Ergebnisse?

Dominik

Ja, also

Jochen

man kann da durchaus auch, wenn

Jochen

da halt Ergebnisse zurückkommen, jetzt weiß ich jetzt nicht genau was

Jochen

mit all den Dingern, wenn da jetzt unterschiedlich, also normalerweise

Jochen

hast du eine Liste von Sachen, wo das ist das gleiche, wo

Jochen

Liste von Responses oder so zurückkommt, dann kriegst du halt die Liste

Jochen

von Responses

Jochen

dann halt zurück, denke ich.

Jochen

Wenn das jetzt unterschiedliche Sachen

Jochen

sein sollten, weiß ich gar nicht so genau.

Jochen

Weil ich jetzt gar nicht so

Jochen

sicher, was dann passiert.

Jochen

Aber wahrscheinlich kriegst du halt eine

Jochen

Liste, der

Jochen

wie auch immer die Struktur dann

Jochen

aussieht, keine Ahnung.

Jochen

Aber das Problem ist halt eben,

Jochen

und das, was halt nicht so gut geht, wenn du jetzt

Jochen

sagst async-io-gether und jetzt

Jochen

passieren aber mehrere Dinge.

Jochen

Jetzt hast du zum Beispiel einmal einen Connection-Error

Jochen

irgendwie, wenn du eine URL

Jochen

holst, und bei einem anderen Ding hast du

Jochen

aber irgendwie einen, weiß ich

Jochen

not authorized und bei einem anderen

Jochen

hast du irgendwie

Jochen

Authentication Error oder was auch immer.

Jochen

Du hast halt so unterschiedliche

Jochen

Fehlertypen.

Jochen

Du kannst jetzt aber, im Interpreter

Jochen

kann immer nur eine Exception

Jochen

weiterreichen. Was passiert denn jetzt?

Jochen

Du kriegst die aber zu unterschiedlichen Zeitpunkten.

Jochen

Wenn du jetzt das try irgendwas

Jochen

gather, was

Jochen

passiert denn jetzt, wenn du Accept sagst?

Dominik

Ja, dann sollte die Exception, die zuerst

Dominik

rausfliegt, rausfliegen. Aber eigentlich sollte man die ja vorher

Dominik

auch catchen, oder? Also innerhalb des

Dominik

Dekor-Routines und nicht...

Jochen

Ja, willst du ja aber auch nicht. Also du willst ja die

Jochen

Exception an der Stelle fangen, wo du irgendwas mit der machen kannst.

Jochen

Das hängt halt davon ab natürlich,

Jochen

aber es ist halt so die Frage, wenn du die Frage

Jochen

gefangen hast, okay gut, dann kriegst du sie ja auch nicht mehr.

Jochen

Aber wenn du jetzt mehrere

Jochen

Exceptions hast, die halt da

Jochen

auftreten, was passiert denn dann? Und ja,

Jochen

die Antwort momentan ist halt irgendwie

Jochen

doof, weil

Jochen

es gibt

Jochen

da sowas wie Chained Exceptions, das sieht man

Jochen

manchmal auch gerade bei so Web-Frameworks häufiger

Jochen

irgendwie, dass halt irgendwas eine Exception wirft

Jochen

und dann dir sagt, ah,

Jochen

also das ist passiert, also

Jochen

oder in Tests passiert es auch häufig,

Jochen

während ich versucht habe, diese Exception zu werfen,

Jochen

ist halt das passiert oder keine Ahnung,

Jochen

also sowas geht

Jochen

auch, aber das

Jochen

bildet das halt auch nicht ab, was du dann eigentlich

Jochen

können müsstest, wenn jetzt irgendwie mehrere

Jochen

unterschiedliche Exceptions halt

Jochen

aufgetreten sind oder ein ganzer Baum, also

Jochen

im allgemeinen Fall ein ganzer Grafbaum

Jochen

von Exceptions, die halt irgendwie

Jochen

so, das geht irgendwie nicht. Das kann auch tatsächlich

Jochen

der Interpreter nicht.

Jochen

Und ja, das ist halt ein Problem.

Jochen

Und dafür gab es ein

Jochen

654

Jochen

Exception Groups and Accept.

Jochen

Und da der Code dafür

Jochen

ist jetzt irgendwie

Jochen

vor Woche oder so

Jochen

oder ein paar Tagen

Jochen

gemerged worden und alle so

Jochen

und das kommt in 3.11 und das bedeutet

Jochen

halt, dass man jetzt quasi damit sauber umgehen kann.

Jochen

Also Trio habe ich deswegen angesprochen, weil

Jochen

das war halt so ein Ding,

Jochen

damit umzugehen. Also der nannte

Jochen

seinen Ansatz da auch irgendwie

Jochen

Structured Concurrency

Jochen

und der hatte dieses Konzept von Nurseries,

Jochen

die man da benutzen kann, um halt damit

Jochen

dann sauber umzugehen. Das hat in der Asienfolge, glaube ich,

Jochen

schon mal erwähnt. Das hat in der Asienfolge und

Jochen

ich weiß nicht, ob wir das wirklich, also

Jochen

ich glaube, das hat damals schon niemandem so wirklich

Jochen

ehrlich gesagt und

Jochen

wahrscheinlich ist das jetzt auch nicht anders. Aber

Jochen

ich finde es interessant und

Jochen

also es ist

Jochen

aber auch ein kompliziertes Thema und

Jochen

naja, also

Jochen

sagen wir so, die Kurzfassung ist, es geht jetzt

Jochen

alles, also ab 3.11 wird es deutlich besser, es gibt da

Jochen

diverse Leute, zum Beispiel auch der Juri

Jochen

Selivanov,

Jochen

der mit

Jochen

HQL und HDB,

Jochen

der hat auf Twitter relativ

Jochen

enthusiastisch gesagt, so 3.11, das ist voll gut,

Jochen

dass das jetzt drin ist, wir haben schon seit Jahren

Jochen

Probleme damit und jetzt

Jochen

ist es endlich sauber gelöst und damit ist

Jochen

quasi, Python hat jetzt irgendwie

Jochen

sehr gute Unterstützung im Vergleich zu

Jochen

allen anderen Sprachen eigentlich.

Jochen

Spielt da jetzt ganz vorne mit.

Jochen

Und juhu!

Jochen

Also das kann man

Jochen

auf jeden Fall schon mal erwähnen, dass das irgendwie ziemlich cool

Jochen

werden wird.

Dominik

Jetzt muss ich nur noch verstehen, wie man halt so eine

Dominik

Exception Group,

Dominik

was das halt...

Jochen

Ja, da musst du dir den Pepp angucken, da steht das drin,

Jochen

wie man dann damit umgeht,

Jochen

dass da jetzt so ein... Du kannst halt auch, ich glaube,

Jochen

man kann das ganz normal...

Dominik

Einmal noch mal kurz, wir haben jetzt relativ viel,

Dominik

also ich habe

Dominik

zwei verschiedene Exceptions, wir fangen mal mit zwei an,

Dominik

die gleichzeitig auftreten. Also einmal, keine Ahnung,

Dominik

Autorisierung verweigert und einmal Connection abgebrochen.

Dominik

In zwei verschiedenen Threads.

Dominik

Was machen die?

Dominik

Muss ja nicht Thread sein.

Jochen

Aber ist auch egal.

Dominik

Die haben auf dieselbe API oder auf eine andere API zugerufen,

Dominik

ist auch egal. Also Hauptsache, die schmeißen beide irgendwie Exceptions.

Dominik

Aber der

Dominik

Zeitpunkt ist egal

Dominik

oder nicht egal, wenn das auftreten ist.

Jochen

Naja, das kannst du jetzt nach einem Zeitpunkt

Jochen

ordnen, du kannst es aber auch irgendwie anders ordnen, je nachdem

Jochen

wie du willst. Also du hast halt eine Exception-Group und

Jochen

darunter hast du jetzt dann halt unterschiedliche

Jochen

Exceptions. Und dann

Jochen

hast du halt quasi einen Baum. Also eine Exception-Group

Jochen

kann halt wieder unterschiedliche

Jochen

Exception-Groups drunter haben, die dann

Jochen

wieder Exceptions drunter haben. Das ist halt ein Baum

Dominik

von... Und wofür brauche ich das?

Dominik

Naja, also wie gesagt, als

Jochen

Endanwender hat man da den Fall, dass man das wirklich braucht,

Jochen

gar nicht so häufig. Aber wenn du jetzt halt irgendwie so eine

Jochen

High-Performance-Datenbank-Library

Jochen

irgendwie Dings-Geschichte baust,

Jochen

sowas wie zum Beispiel Async-PG oder so,

Jochen

dann kann das durchaus passieren,

Jochen

dass du halt in solche Sachen reinläufst,

Jochen

wo du dann gerne irgendwie was gut,

Jochen

wo du zum Beispiel einfach noch einen ordentlichen Traceback

Jochen

werfen wollen würdest,

Jochen

wo man sehen kann, was passiert ist.

Jochen

Weil wenn du das auf 1 runterdampfen musst

Jochen

und dann rausschmeißen und sagst Datenbank-Error,

Jochen

sagen wir mal, es gibt eine Zahl zurück, Datenbank-Fehler,

Jochen

dann ist das nicht sehr hilfreich.

Jochen

Du musst halt, aber

Jochen

alle Sachen kannst du nicht angeben, weil du kriegst ja,

Jochen

du hast nur eine Exception. Also weil die erste,

Dominik

die quasi dann geraced wird, dann

Dominik

die rausfliegt und die anderen gehen dann unter.

Dominik

Das wäre das Problem sonst. Genau, ja.

Dominik

Ja, okay. Und ich will halt quasi, dass die durchgereicht

Dominik

werden. Du willst die irgendwie

Jochen

behandeln können. Ob du sie jetzt rausprintest

Jochen

oder irgendwie darauf reagierst oder so, ist ja nochmal eine andere

Jochen

Sache, aber du kannst sie jetzt handeln.

Dominik

Also so wäre, das wäre quasi so, als müsste

Dominik

ich so eine Art Exception-Cache

Dominik

bauen und dann irgendwann

Dominik

alle Exceptions in diesem Exception-Cache

Dominik

zurückgeben, anstatt die zu raisen, die quasi in diesen

Dominik

Exception-Cache rein speichern und

Dominik

ganz am Ende alle Exceptions da drin sind

Dominik

in eine Custom-Exception

Dominik

zusammenfassen und raisen.

Jochen

Keine Ahnung, wie das jetzt dann Leute gerade machen.

Jochen

Wie sie damit umgehen.

Jochen

Da gibt es unterschiedliche Ansätze wahrscheinlich, aber

Jochen

jetzt geht es halt so, dass es cool ist und sauber.

Jochen

Ja,

Jochen

ansonsten hatten wir noch

Jochen

iPython, erste

Jochen

Major-Release seit drei Jahren oder so.

Jochen

iPython 8.

Jochen

Ja, okay.

Jochen

ehrlich gesagt so wahnsinnig viel Neues ist da gar nicht

Jochen

unbedingt, also außer Black ist irgendwie neu,

Jochen

da mussten sie auch ein bisschen zurückrudern,

Jochen

das hat Leute irgendwie auch böse

Jochen

überrascht teilweise. Das haben wir doch letztes Mal noch gelobt.

Jochen

Ja, ja, ja, aber im Prinzip

Jochen

ist es eigentlich schon richtig

Jochen

und

Jochen

ja, ist es viel deprecated

Jochen

worden von Dingen, die man nicht mehr

Jochen

braucht und so und ich glaube, ich habe es auch schon,

Jochen

ist es nur Beta, ist es noch nicht

Jochen

stable, aber ich habe

Jochen

es auch schon, also wenn man es einfach so installiert

Jochen

man pinnt es nicht runter oder so, sondern

Jochen

man sagt einfach nur pip install

Jochen

ipad und dann kriegt man das halt.

Jochen

Und funktioniert bei mir auch schon super.

Jochen

Ich verwende es schon

Jochen

die paar Tage, die es veröffentlicht ist,

Jochen

auf jeden Fall. Und da hat es bisher immer getan.

Jochen

Ja.

Jochen

Genau.

Jochen

Ja, ansonsten so war es.

Jochen

Wir haben jetzt irgendwie

Jochen

super viele

Jochen

Episoden in letzter Zeit aufgenommen. Jetzt ist gar nicht so viel passiert.

Jochen

Weil gar nicht so viel Zeit vergangen ist.

Jochen

Ja, okay.

Jochen

Ich weiß nicht, hattest du noch irgendwas?

Jochen

Oder haben wir noch irgendwie...

Dominik

Wir machen nochmal Werbung dieser Episode.

Jochen

Oh ja, genau, das müssen wir dann jetzt auch machen.

Jochen

Also, diese Episode

Jochen

kommt wieder mit der freundlichen Unterstützung von NordVPN.

Jochen

Ja, und

Jochen

schnapp dir den Exklusiv-Deal

Jochen

und ein Geschenk obendrauf

Jochen

zum NordVPN-Geburtstag.

Jochen

Geh auf

Jochen

https.nordvpn.com

Jochen

slash pythonpodcast

Jochen

und sichere dir den Wahnsinns-Deal

Jochen

jetzt auch komplett risikofrei mit 30 Tage

Jochen

Geld-Zurück-Garantie. Also das ist

Jochen

eine Geschichte, die man

Jochen

durchaus mal machen kann. Also

Jochen

NordVPN, VPN-Anbieter,

Jochen

da

Jochen

kann man sich zum Beispiel

Jochen

irgendwie im Urlaub auch drauf verlassen, dass man dann

Jochen

weiter Netflix gucken kann,

Jochen

was man ja sonst irgendwie, manchmal hat man da so Probleme

Jochen

zu Geoblocking und so. Und damit kann man

Jochen

das irgendwie relativ einfach umgehen. Oder halt

Jochen

auch, wenn man irgendwie sonst

Jochen

Konnektivitätsprobleme hat, dann kann man aber auch

Jochen

irgendwie da was gegen tun

Jochen

mit. Und

Jochen

ja, hat viele Server

Jochen

in allen möglichen Ländern und so.

Jochen

Also ist auf jeden Fall irgendwie

Jochen

einer der größten Anbieter da in dem Bereich.

Jochen

Und ja, kann man ja einfach

Jochen

mal ausprobieren und auf

Jochen

HTTPS-NordVPN.com

Jochen

slash peißenpodcast gehen und

Dominik

den Warnsignal sichern, der jetzt auch komplett risikofrei

Dominik

mit der 30-Tage-Geld-Zurück-Garantie ist.

Dominik

Wunderbar.

Dominik

Ja, worüber

Dominik

reden wir denn heute?

Dominik

Ja, die ganzen Tipps, Tools

Dominik

im Web und

Dominik

CSS-Frameworks und

Dominik

vielleicht fangen wir damit an.

Dominik

Was für ein CSS-Framework benutzt denn du, Jochen?

Dominik

Ja, irgendwie

Dominik

gar nicht.

Dominik

Ihr habt vielleicht gesehen,

Dominik

Python-Podcast ist zu unserer Schande in

Dominik

Bootstrap, weil das Einzige, was wir gemacht haben

Dominik

für Styling ist Import CDN

Dominik

vom, also Bootstrap vom CDN.

Jochen

Ja, das weiß ich gar nicht mal. Ich glaube, das mache ich tatsächlich nicht.

Jochen

Aber das mache ich.

Jochen

Oh Gott, bin ich schlecht.

Dominik

Tja, wir müssen das irgendwann mal anfassen.

Jochen

Weil ich würde sagen, das sollte man natürlich

Jochen

eigentlich auf keinen Fall machen, sowas.

Jochen

Aber weil,

Jochen

ja, das ist natürlich extrem unsicher. Das erinnert mich an was?

Jochen

Mach ich das wirklich?

Jochen

Ist das nicht so?

Jochen

Ich meine nicht, aber

Jochen

ich gucke mal gerade, ich mache hier gerade mal

Jochen

an den,

Jochen

das Netzwerk,

Jochen

das ist ja auch,

Jochen

das steht doch immer unter Sources,

Jochen

ne? Und dann steht da drin,

Jochen

äh,

Jochen

oh ja,

Jochen

und da sind die weißen CDNs.

Jochen

Codejquery.com.

Jochen

Oh mein Gott.

Jochen

Bootstrap-CDN. Oh nein.

Jochen

Ja, also, okay.

Jochen

Ja, okay, das war mir gar nicht so klar,

Dominik

dass ich das machen kann. Kontrolle ist besser als

Jochen

Ja, ja, dankeschön. Dann ist mir das

Jochen

jetzt auch bewusst. Ich dachte, ach, so was mache ich

Jochen

aber nicht. Aber doch, mache ich schon. Kacke.

Jochen

Naja. Ja, also

Dominik

Bootstrap ist raus. Also

Dominik

sagen wir so, das benutzt man halt natürlich

Dominik

dann, wenn man keine Zeit für irgendwas anderes hat.

Dominik

Dann macht man einfach Import-Bootstrap vom CDN

Dominik

und dann sieht alles irgendwie ein bisschen besser aus.

Dominik

Das hätte man jetzt gar nicht gestylt.

Dominik

Aber auch nicht viel besser, ehrlich gesagt.

Jochen

Ja, vor allen Dingen ist es halt das,

Jochen

was in dem Django-Cookie-Cutter-Template mit dabei war.

Jochen

Deswegen habe ich das vor allen Dingen.

Dominik

Du benutzt ja kein Cookie-Cutter von ...

Jochen

Eigentlich seit einiger Zeit nicht mehr,

Jochen

aber ich habe es lange verwendet, ja.

Dominik

Ja, also ich habe es auch ein bisschen mal ausprobiert.

Dominik

Das war nicht so ganz mein Ding.

Jochen

Ja, also inzwischen würde ich auch sagen,

Jochen

also ich benutze inzwischen gerne irgendwie tatsächlich Start-Project

Jochen

oder halt auch das, das habe ich jetzt letztens wieder verwendet,

Jochen

das

Jochen

Project Template, weil man kann ja dem Start Project

Jochen

auch Project Templates mitgeben

Jochen

von Johannes. Das gefällt mir eigentlich

Jochen

tatsächlich auch ganz gut. Und

Jochen

Cookie Cutter ist einfach, ist mir zu

Jochen

viel Zeug, das ich irgendwie nicht

Dominik

brauche. Also ich habe eigentlich meine eigenen

Dominik

Skeletons einfach geschrieben, also so zwei, drei

Dominik

Templates für Sachen, die ich manchmal brauche. Django

Dominik

mit Postgres, Django Minimal

Dominik

Farb-API und dann klone

Dominik

ich die einfach.

Jochen

Ja, kannst du halt auch machen, aber dann

Jochen

Es bleiben halt manchmal nur so Reste übrig.

Dominik

Ja, aber das ist nicht viel. Also ich weiß ja dann wo

Dominik

und ich habe mir das ja so ein bisschen weggescriptet.

Dominik

Dann kann ich einfach zwei Skripte ausführen.

Dominik

Dann habe ich es einmal replaced und dann schmeiße ich

Dominik

drei Dateien weg, die ich nicht brauche und dann ist es gut.

Dominik

Das ist halt mein Zeugs. Ich kenne mich da ja auch aus

Dominik

und das geht aber dann wirklich schnell. Und da ist halt aber auch

Dominik

dann das bei, was ich will.

Jochen

Ja, also es ist halt

Jochen

irgendwie, also ich bin

Dominik

da noch nicht bei null. Ja, andersrum ist, du fängst halt bei null an

Dominik

und dann musst du aus allen alten Projekten, wo du das benutzt hast,

Dominik

das jetzt mal reinkopieren. Das geht auch nicht schneller.

Jochen

Ja, aber genau dafür, sowas hast du ja normalerweise

Jochen

in einem Template, damit du das nicht

Jochen

aber es ist wirklich, also ich

Jochen

habe auch, ich würde jetzt nicht sagen,

Jochen

dass es da irgendwie eine Lösung für das Problem gibt,

Jochen

weil das ist irgendwie, ich

Jochen

habe inzwischen auch, also

Jochen

am Anfang fand ich

Jochen

das tatsächlich hilfreich, weil

Jochen

es gibt ja so viele Settings in

Jochen

Django auch, es ist halt echt eine Menge Zeug,

Jochen

dass man gar nicht weiß, wie man

Jochen

das alles setzen soll und wenn man vor dieser

Jochen

Aufgabe steht, ohne jetzt wirklich damit

Jochen

schon lange Erfahrung zu haben,

Jochen

dann ist man so ein bisschen, also jedenfalls hatte ich das am Anfang,

Jochen

hatte ich das Problem, du stehst halt wieder

Jochen

wie so ein Ox von Berg.

Dominik

Ja gut, aber wenn er es von Fydenny nimmt, also tatsächlich das

Dominik

Komplettprogramm.

Dominik

mit Cookie Cutter. Das ist ja derselbe

Dominik

Typ, der auch Two Scoops

Jochen

of Django. Ja, das Buch geschrieben hat oder

Jochen

die diversen Bücher, die es zu dem Thema gibt.

Jochen

Aber

Dominik

da ist so viel Zeugs drin.

Dominik

Da ist so viel Zeugs drin.

Dominik

Ja, die Hälfte brauchst du nicht.

Jochen

Ja, aber das ist halt die Frage.

Jochen

Am Anfang weißt du halt nicht, was du brauchst und was du nicht brauchst.

Jochen

Ja, aber das ist halt so.

Dominik

Gerade für Anfänger würde ich auf gar keinen Fall

Dominik

Klar, weißt du noch nicht, was du nicht brauchst, aber

Dominik

das würde ich auf gar keinen Fall machen, sondern ich würde Blank Django

Dominik

nehmen als Anfänger. Ja gut.

Jochen

also für mich war das

Jochen

gar nicht so ein schlechter Weg, aber inzwischen

Jochen

mache ich das halt auch nicht mehr, weil ich jetzt sagen würde,

Jochen

okay, ich weiß jetzt, was ich alles nicht brauche und ich brauche den

Jochen

meisten Kram nicht und vor allen Dingen ein Ding,

Jochen

das mich von dem Cookie Cutter,

Jochen

Django Cookie Cutter komplett weggebracht hat, ist halt,

Jochen

dass die halt irgendwann, das war auch

Jochen

nicht so, das war am Anfang nicht so,

Jochen

am Anfang war das komplett ohne Docker

Jochen

und dann haben sie irgendwann gesagt, okay,

Jochen

das jetzt für unterschiedliche Plattformen,

Jochen

das wird halt so stressig, das alles zu maintainen,

Jochen

wir konsolidieren das jetzt auf Docker

Jochen

und

Jochen

dann habe ich ja auch eine Zeit lang das mit Docker verwendet

Jochen

und jetzt würde ich sagen so, nee, ich will aber Docker gar nicht

Jochen

mehr, also weg damit.

Jochen

Und ja, jetzt

Jochen

bringt es für mich sozusagen gar nicht mehr so viel, weil

Jochen

ja, das ist halt hauptsächlich

Jochen

Docker-Zeugs.

Jochen

Okay, aber wir sind

Dominik

quasi jetzt ja da hingekommen, also warum

Dominik

Bootstrap bei dir? Genau, so ist

Jochen

das Bootstrap da irgendwie reingekommen und

Jochen

ich weiß auch nicht, ob das noch da

Jochen

mit drin ist, bei den aktuellen

Jochen

Geschichten, aber ja, also

Jochen

genau, eigentlich ist das natürlich nicht so schön.

Jochen

Ich habe jetzt auch letztens gesehen, wie groß

Jochen

Bootstrap eigentlich ist, war mir auch nicht so klar, das ist ja

Jochen

irgendwie alles ziemlich riesig.

Jochen

Und dann eben hat das noch so

Jochen

Dependencies auf jQuery und so, das sind ja alles Zeugs,

Jochen

was man heutzutage im Grunde nicht mehr wirklich haben will,

Jochen

braucht und so, aber es ist halt

Jochen

irgendwie dann alles immer noch mit dabei.

Dominik

Ja, also Foundation gibt es noch,

Dominik

das habe ich von Johannes mal.

Jochen

Ja, Foundation ist so quasi

Jochen

so ähnlich. Ja, auch so, du musst halt

Dominik

eigentlich, du schreibst halt nichts, importierst halt

Dominik

einfach irgendwas vom CDN oder kannst es natürlich

Dominik

auch vom Lokal. Und es sieht halt ein bisschen hübscher

Dominik

aus. Man kann natürlich immer nachstylen, wenn man will.

Dominik

Dann gibt es noch

Dominik

Materialize und

Dominik

UI-Kit.

Dominik

Und das sind alles immer so große klassenbasierte

Dominik

CSS-Sachen oder Post-SS oder so.

Dominik

Wo man halt dann seine Klassen,

Dominik

vordefinierte Klassen hat, die dann irgendwelche tolle Magie

Jochen

machen. Ja, oder Semantic

Jochen

UI habe ich jetzt auch gesehen, dass das viele Leute

Jochen

verwenden. End-Design.

Jochen

Das kenne ich nicht. Das ist

Jochen

auch total schräg.

Jochen

End, die Ameise?

Jochen

Ja, ja, ja. End.design.

Jochen

Das ist so was Chinesisches.

Jochen

Das ist auch so, dass

Jochen

es gibt, also das hat mehr

Jochen

Stars aufgetappt als Django.

Jochen

Und

Jochen

irgendwie in China verwenden das

Jochen

Millionen Leute. Aber hier

Jochen

kennt man das gar nicht so sehr.

Jochen

Ja, ist auch eigentlich.

Jochen

Wahrscheinlich

Dominik

verwenden es deswegen Leute, weil es gute Dokumentationen

Dominik

auf Chinesisch hat. Man weiß es nicht. Ja, mag

Dominik

sein. Dann gibt es noch Bulma.

Dominik

Das benutzen zum Beispiel viel von den

Dominik

VJS-Leuten, also wenn man irgendwie jetzt auf

Dominik

Mastery oder so Kurse macht. Da gibt es so ein paar

Dominik

Leute, die Bulma machen, fand ich, das hat mich

Dominik

nicht so ehrlich begeistert.

Dominik

Ist vielleicht eher so für...

Jochen

Ja, aber ich glaube, ich fände die gleiche Kategorie wie eben

Jochen

das habe ich ja auch unter Utility First

Jochen

CSS-Frameworks

Jochen

genauso wie Tailwind.

Dominik

Ja, genau, aber Tailwind würde ich sagen,

Dominik

so mache ich das.

Dominik

Okay. Ja, also ich finde es sehr, sehr

Dominik

toll. Ja, ich

Jochen

habe auch viel Gutes gehört und habe aber auch

Jochen

Leute schon stöhnen gehört, also ich weiß es nicht.

Dominik

Ja, also wir haben im Vorfeld jetzt kurz drüber gesprochen

Dominik

und du hast gesagt, so oben, Moment,

Dominik

also ich habe es zwar nicht benutzt, aber ich habe ja gehört

Dominik

A und B und C und die haben

Dominik

gesagt, das ist doof und

Dominik

Ja,

Jochen

genau, aber das Problem ist halt immer so, bei diesen

Jochen

Entscheidungen, ich meine wahrscheinlich ist einfach alles Unsinn,

Jochen

muss man irgendwas anfangen, aber ich habe ja keine Ahnung davon,

Jochen

ich habe aber jetzt, reden wir da schon

Jochen

fünf Minuten drüber und ich habe ja auch eine Liste mir dann

Jochen

gemacht, weil ich dachte irgendwie, vielleicht muss ich

Jochen

da mal irgendwie von 20 Dingern,

Jochen

die es hier irgendwie gibt, die ich mir alle mal angucken

Jochen

muss. Ich denke jetzt so, ich habe noch überhaupt

Jochen

nicht angefangen. Jetzt muss ich schon zwischen so vielen unterschiedlichen

Jochen

Sachen aushalten. Ich habe absolut keine Ahnung, was ich da machen soll.

Jochen

Oh mein Gott.

Jochen

Und dann eben, genau.

Jochen

Soll man jetzt das selber machen? Soll man BAM

Jochen

machen? Soll man irgendwie Utility

Jochen

First machen? Soll man ein Framework nehmen?

Jochen

Soll man SAS nehmen? LESS nehmen?

Jochen

PostCSS irgendwie? Was auch immer.

Jochen

Ich weiß es doch alles nicht.

Jochen

Und ich habe keine Ahnung.

Jochen

Ja, ich würde da tatsächlich Table nehmen.

Dominik

Ja, gut, dann fange ich mal mit Table an. Aber du hast ja gesagt, das ist ja alles noch für

Dominik

low budget.

Jochen

Und ich bin ja eher so,

Jochen

persönlich, bin ja eher so der

Jochen

high budget Typ.

Jochen

Finde ich,

Jochen

man muss sich da schon irgendwie so ein bisschen

Jochen

positionieren, ansonsten

Jochen

nicht, dass man da irgendwie

Jochen

am falschen Ende rauskommt.

Jochen

Das wäre nicht gut.

Jochen

Aber ich, genau, also ich weiß

Jochen

es halt nicht. Und es gibt so andere Sachen, es gibt dann noch

Jochen

diese ganzen Mini-Dinger. Habe ich jetzt gesehen

Jochen

bei, na,

Jochen

wie heißt der noch?

Jochen

Andrew Johnson hat das verwendet.

Jochen

MVP, CSS.

Jochen

Ja, das kenne ich noch nicht.

Jochen

Super minimal. Und davon gibt es dann halt

Jochen

auch wieder ein paar. Es gibt Mini-CSS

Jochen

dort auch. Aber da muss man immer CSS sein.

Jochen

Also ich muss jetzt nochmal

Dominik

Tavent nochmal loben, weil

Dominik

es sieht hässlich aus

Dominik

auf den ersten Blick, weil das das

Dominik

HTML so ein bisschen bloatet. Du hast halt

Dominik

in deinem HTML ganz viel mehr Klassen

Dominik

drin, die halt direkt das Styling machen. Aber

Dominik

dafür hast du halt eben keine extra CSS-File mehr,

Dominik

musst nicht hin- und herswitchen. Und eigentlich steht

Dominik

es meiner Meinung nach genau da halt

Dominik

die Definition des Styles drin, wo es halt hingehört.

Dominik

Und zwar genau an dem

Dominik

HTML-Element.

Dominik

Und das finde ich super angenehm. Und da man

Dominik

eh meiner Meinung nach ja immer so wieder

Dominik

benutzbare Komponenten aktuell so

Dominik

hat, ist das mit der Redundanz

Dominik

hier auch nicht so schlimm. Und

Dominik

ja, wenn du dann halt so ein

Dominik

Hot-Reloading weit noch nebenbei anhast,

Dominik

dann siehst du halt jede Änderung

Dominik

der Farbe, schreibst halt

Dominik

Red als Klasse hin

Dominik

und dann ist es Rot und dann schreibst du

Dominik

Red wächst mal Blau und dann ist es direkt Blau

Dominik

und das ist einfach, das ist so

Dominik

ein bisschen wie in den 90ern HTML-Coden.

Dominik

Da musste man das ja auch

Dominik

alles noch direkt hineinschreiben.

Dominik

Und ich mochte das.

Jochen

Okay, ich habe das weder in den 90ern gemacht, noch jetzt

Jochen

oder dazwischen irgendwann, aber gut.

Jochen

Naja, jetzt

Jochen

muss ich wohl doch irgendwie mal.

Jochen

Ja, das musst du auf jeden Fall mal angucken.

Dominik

Wir haben ja auch eben noch über Winnie kurz gesprochen,

Dominik

Das hast du ja auch noch gehabt.

Dominik

Da gab es ja eine lustige...

Jochen

Also über Tailwind, da gab es eine neue Release.

Jochen

Ach, das hätten wir in die News packen können, ne?

Jochen

Ja.

Jochen

Siehst du mal.

Jochen

Es gab eine Working Draft-Episode letzte Woche oder sowas

Jochen

über Tailwind CSS3, wo auch irgendwie der Continuer war,

Jochen

so eigentlich ist es ganz gut.

Jochen

Und die Vorteile sind halt irgendwie, dass man jetzt nicht mehr...

Jochen

Also früher war es so, im Default-Fall hat es halt irgendwie

Jochen

immer die gleiche Größe an CSS ausgelegt.

Dominik

Ja, man musste halt manuell purgen, die

Dominik

CSS-Dinge, die man nicht haben wollte,

Dominik

die musste man dann weg purgen, dass

Dominik

die Falle nicht so groß wurde, ja.

Jochen

Genau, und das passiert jetzt irgendwie alles

Jochen

automatisch und man

Jochen

muss auch nicht mehr Node.js verwenden,

Jochen

sondern es hat irgendwie Standalone

Jochen

Command-Line-Utilities irgendwie

Jochen

für all die Sachen. Und das

Jochen

ist ja schon sehr nett, also da dachte

Jochen

ich auch so, oh, das klingt aber gut. Und dann

Jochen

eben hieß es da auch, ja, das kommt aber von den Leuten

Jochen

von Winnie oder so. Ja, also

Dominik

Winnie hat ja Tailwind geklaut und dann

Dominik

Sachen so ein bisschen halt faster gemacht vielleicht

Dominik

oder so, so ein bisschen mehr Opinion reingebracht.

Dominik

Jetzt haben sie das halt wieder zurückgeklaut.

Dominik

Und dann haben sich die Winnie-Leute

Jochen

beschert, dass sie nicht gecredited

Jochen

werden für diese Geschichten.

Jochen

Und dann hat irgendjemand anders gemeint, so, ah, aber ihr habt

Jochen

das auch nur von mir wieder geklaut.

Dominik

Verflüstert es auf einmal so, als wären das jetzt irgendwelche

Dominik

Geheiminformationen, die...

Jochen

Aber ich, keine Ahnung.

Dominik

Also ich mag tatsächlich auch die

Dominik

Bezahlsachen von Table & Can Scan. Es gibt ja so

Dominik

vorgefertigte UI-Komponenten, die man sich kaufen

Dominik

konnte. Und das Projekt zu unterstützen ist von denselben

Dominik

Leuten, die das Projekt

Dominik

geschrieben haben.

Jochen

Es gibt ja auch so ein tolles Buch,

Jochen

Refactoring UI oder so.

Jochen

Habe ich mir auch irgendwann mal gekauft, aber habe ich

Jochen

dann nicht gelesen. Vielleicht sollte ich das auch mal machen.

Jochen

Vielleicht weiß ich dann mehr, wie das für die ganzen CSS.

Jochen

Vielleicht sollte ich damit mal starten und irgendwie mal ein Buch lesen.

Jochen

Das könnte vielleicht hilfreich sein.

Jochen

Eine Geschichte,

Jochen

die tatsächlich interessanter aussieht als diese

Jochen

Myriade an unterschiedlichen CSS

Jochen

Arten, Frameworks,

Jochen

Minimaldingern, die man so benutzen kann.

Jochen

die ich letztens gesehen habe, ist

Jochen

Missing.Style

Jochen

und zwar, weil

Jochen

das halt aus dem HTMX-Umfeld

Jochen

kommt und

Jochen

da Leute sich überlegt haben, okay,

Jochen

ja, es gibt, das fehlt halt noch. Also wenn man

Jochen

HTMX macht, das mache ich jetzt auch relativ viel

Jochen

und da bin ich eigentlich super

Jochen

zufrieden mit und ja, aber wie macht man

Jochen

das denn jetzt, weil da ist ja auch viel

Jochen

Animationsgeschichten oder so

Jochen

drin, die, dass dann Sachen verschwinden, wenn man

Jochen

irgendwo draufklickt oder auftauchen und so

Jochen

Transition-Effekte und so

Jochen

und ja, da haben sie überlegt,

Jochen

okay, dann brauchen wir eigentlich genau dafür

Jochen

eins, aber wir wollen vielleicht nicht so ein super

Jochen

so ein

Jochen

all-in-one-riesen-Ding haben, sondern

Jochen

nur für die Sachen, die wir da benutzen,

Jochen

irgendwie so ein CSS-Geschichten

Jochen

mitrahmen und sozusagen

Jochen

der Missing Link irgendwie

Jochen

soll das irgendwie so sein.

Jochen

Das kann man sich auch mal angucken. Also da werde ich auf jeden Fall

Jochen

auch mal drauf gucken, was die da machen

Jochen

und das klang auf jeden Fall interessant, weil das

Jochen

fehlt halt tatsächlich. Also bisher muss man dann halt

Jochen

diese ganzen Transition-Geschichten

Jochen

halt irgendwie in seinen CSS mit

Jochen

reinfrickeln dann. Und wenn das halt

Jochen

automatisch alles da wäre, wäre natürlich schon nett.

Jochen

Ja.

Jochen

Genau.

Jochen

Ansonsten, ja, ich weiß

Jochen

nicht.

Jochen

CSS

Jochen

haben, ja.

Jochen

Ich muss mich

Jochen

damit mal auseinandersetzen. Ich komme nicht mehr drum rum.

Jochen

Ja, das erzählst du mir schon seit

Jochen

Jahren.

Jochen

Und dann habe ich doch immer wieder was anderes gefunden.

Jochen

Und ja, es lässt sich aber, glaube ich, inzwischen echt nicht mehr vermeiden.

Jochen

Ja, wie so ein bisschen.

Dominik

Also deswegen empfehlen wir immer noch Tailwind.

Dominik

Habt ihr das schon gesagt?

Dominik

Ja, ich bin ein kleiner Fan davon.

Dominik

Ich weiß nicht genau, warum.

Dominik

Es war so ein bisschen, also ich konnte CSS sehr, sehr lange überhaupt nicht leiden.

Dominik

Es war irgendwie mega hässlich.

Dominik

Und dann fühlte sich Tailwind so an, wie ich es machen will.

Dominik

Das ist so wie bei Python, wo ich relativ schnell wusste, okay, so will ich es machen.

Dominik

Ja.

Dominik

Das ist immer dann, wenn man gar nicht weiß, wie es geht

Dominik

und dann findet man was, das irgendwie cool ist.

Dominik

Ich weiß auch nicht. Vielleicht ist man auch völlig

Dominik

auf dem Holzweg, weil man keinen hat, der einem erklärt hat,

Dominik

wie es richtig ist. Aber vielleicht ist es auch manchmal gar nicht so schlecht,

Dominik

wenn man da so ein bisschen seiner Intuition folgt.

Dominik

Ja, am besten ist es wahrscheinlich,

Dominik

man muss irgendwas machen und dann

Jochen

schauen, ob man den

Jochen

Kurs korrigiert, wenn es irgendwie nicht mehr gut

Dominik

funktioniert. Ja, das sollte schon möglich sein,

Dominik

dass man seine Meinung auch wechseln kann.

Dominik

Das ist, glaube ich, schon...

Jochen

Wir werden uns

Jochen

weiter

Jochen

Dinge angucken und dann sagen wir Bescheid, wenn wir

Jochen

irgendwie das perfekt gefunden haben.

Jochen

Ansonsten, ja, ich meine,

Jochen

keine Ahnung, ich könnte ein bisschen was erzählen zu den

Jochen

Sachen, die ich so mache. Warum gucke ich mir eigentlich

Jochen

CSS-Geschichten an? Ja, erzähl mal, warum

Dominik

guckst du dir CSS-Geschichten an? Ist ja langweilig,

Dominik

auch wenn du es noch nicht benutzt hast.

Jochen

Ja, ich habe ja diverse Projekte,

Jochen

ja. Aber

Jochen

genau, momentan

Jochen

also

Jochen

eine Geschichte, die ganz interessant ist,

Jochen

ist halt, dass

Jochen

Das beeinflusst halt so viele Sachen, weil das halt

Dominik

Mit HTML-Sachen in den nächsten Trinkspielen, Jürgen.

Dominik

Wenn ich das sage,

Dominik

ja,

Jochen

stimmt schon, aber

Jochen

naja, so, weil

Jochen

vieles, so gerade, ich hatte

Jochen

mal irgendwann vor Jahren, also das ist zum Beispiel wieder eins von

Jochen

diesen Beispielen,

Jochen

so ein Bookmarking-Ding

Jochen

angefangen und das macht halt auch so viel mit

Jochen

Bootstrap und

Jochen

so und jQuery und

Jochen

ist halt alles ziemlich hässlich, was

Jochen

Frontend-Geschichten angeht und

Jochen

das

Jochen

letztens nochmal angefasst, wieder auf aktuellen

Jochen

Stand gebracht und da könnte man

Jochen

wahrscheinlich mit HTMLX sehr viel machen und

Jochen

dann ist halt die Frage, kann man dann nicht den ganzen

Jochen

anderen Kram gleich mit rausschmeißen? Also sowas wie

Jochen

dieses ganze jQuery-Graffel

Jochen

und irgendwie Bootstrap und so, das wäre doch eigentlich

Jochen

ganz nett. Und dann ist halt die Frage, okay,

Jochen

was macht man in der Hand?

Jochen

Genau, genau.

Dominik

Dafür auch super geeignet.

Dominik

Du hast ein Snippet, das du bei HTMLX

Dominik

rausrennst und was schreibst du in dein Snippet rein?

Jochen

Ja, genau. Also das wäre natürlich nett.

Jochen

Das sind halt so Sachen, die Tailwind

Jochen

nett machen, ist halt, dass es, wenn es im HTML

Jochen

drinsteht, dann kann man es eben auch direkt mit

Jochen

man muss halt nicht ein neues CSS mit ausliefern.

Dominik

Genau, und du musst auch nicht jedes Mal in das

Dominik

irgendein großes CSS, in das du schon ausgeliefert hast,

Dominik

genau die Sachen reintreiben, sondern schreibst halt genau das, was du willst

Dominik

in dein, ja.

Dominik

Aber du hast eben auch gesagt, also ja, also

Dominik

die großen Designer, die sich die ganz tollen Konzepte

Dominik

überlegt haben mit ihren Styleguides, die könnten

Dominik

eventuell sein, dass du dann einfach trotzdem

Dominik

den Button kleiner machst, obwohl das verboten ist im Styleguide.

Dominik

Ja, ich weiß

Jochen

ich habe ehrlich gesagt keine Ahnung noch, wie man das alles

Jochen

wirklich macht, aber naja.

Jochen

Ja, aber genau, das wäre

Jochen

so, das war so einer der Gründe,

Jochen

warum ich da nochmal drüber nachgedacht habe.

Jochen

Dann genau, aber auch sowas wie

Jochen

ja, diese,

Jochen

dafür würde ich gerne so eine Landingpage

Jochen

bauen halt irgendwie, Podcast,

Jochen

Hosting, Software as a Service

Jochen

Geschichte und da

Jochen

braucht man dann ja auch vielleicht ein bisschen mehr Design,

Jochen

Wumms und dann ist Bootstrap vielleicht irgendwie

Jochen

nicht das Richtige.

Dominik

Nee, also was wir da machen, ist Designer

Dominik

fragen, dann machen

Dominik

die uns einen Entwurf, Design

Dominik

und dann machen wir das in

Dominik

Tablet. Ah, okay.

Dominik

Ja, irgendwie

Dominik

sowas, ne? Ja, da helfe ich dir gerne

Dominik

bei. Ja. Was machst du noch?

Dominik

Du hast noch ein paar Sachen entdeckt, so ein paar Pics fast,

Dominik

ja, die... Ja, aber genau,

Dominik

kann man auch einfach mal raushauen,

Jochen

da gibt es ja genug Gelegenheiten für andere Pics.

Jochen

Mermaid. Mermaid habe ich jetzt

Jochen

letztens gesehen. Ziemlich

Dominik

coole Sache, das kann ich noch nicht. Was man damit machen kann,

Dominik

es Markdown-Enhancen um

Dominik

sowas wie Diagramme.

Jochen

Ja, genau. Und das kann halt auch diese Diagramme,

Jochen

die Arten von Diagrammen, die man halt

Dominik

zu rendern. Also das, was ihr von Draw.io vielleicht

Dominik

kennt so ein bisschen oder so, wenn ihr so

Dominik

ich weiß nicht, ob das in der Komplexität geht, aber

Dominik

richtig coole Sachen, die man echt

Dominik

gut dastehen kann. ERM-Diagramme,

Dominik

Flowcharts, sowas.

Dominik

Einfach als Markdown schreiben, so ein bisschen

Dominik

runterschreiben und dann könnt ihr das auch

Dominik

direkt rendern lassen. Auch von sowas wie GitHub.

Dominik

Ja, also ER-Diagramme

Jochen

habe ich auch oft irgendwie, da gab es so ein Plugin für

Jochen

weiß ich gar nicht, wie das hieß,

Jochen

auch in Django konnte man das irgendwie mit

Jochen

einbinden und dann hat das halt

Jochen

als Management Command und dann hat das halt

Jochen

irgendwie ein ER-Diagramm rausgerendert,

Jochen

aber das Problem ist halt, die sind halt wenig konfigurierbar

Jochen

und wenn das halt groß wird, dann ist halt irgendwie

Jochen

sieht man nichts mehr und wenn es klein ist, dann hätte man

Jochen

gar nicht mehr Informationen. Du meinst Graphist?

Jochen

Und das hat mit Graphist oder Dot

Jochen

irgendwie hat das das dann gerendert, aber

Jochen

das ist alles nicht so,

Jochen

also da ist... Ja gut, also für das ERM-Diagramm

Dominik

direkt rausrennen lassen aus den Models, ist das natürlich schon nett,

Dominik

Wir reden ja gerade über Mermaid, dass das, glaube ich,

Jochen

nicht macht. Nee, da machst du es von Hand, aber da hast

Jochen

halt dann auch mehr Kontrollmöglichkeiten. Also insofern...

Dominik

Ja gut, aber ich will jetzt natürlich nicht jetzt irgendwie,

Dominik

wenn irgendjemand einfach kurz das ERM

Dominik

sehen will, dann exportiere ich halt einfach aus meinen

Dominik

Dango-Models kurz das ERM. Aber ja, du hast natürlich

Dominik

recht, viel schöner, wenn man das vorbereitet

Dominik

und am Anfang, bevor man die Models hat,

Dominik

kann man das ja vielleicht bauen, so.

Jochen

Naja, ist eher so, weil die Frage ist, was willst

Jochen

du in deiner Dokumentation verlinken?

Jochen

Und ein automatisch generiertes Ding

Jochen

in der Dokumentation ist halt irgendwie

Jochen

nicht so super.

Dominik

Wichtigere Frage wäre, liest jemand die Dokumentation?

Dominik

Ja, das ist

Jochen

auch vielleicht nicht. Ja, wenn nicht,

Dominik

dann mache ich es automatisch, weil dann brauche ich ja

Dominik

keine Arbeitszeit reinchecken. Wenn doch, dann sollte

Dominik

man es ordentlich machen. Aber das ist immer ein bisschen die Frage.

Dominik

Einige Leute wollen die unbedingt haben, aber niemand

Dominik

guckt rein. Dann ist es halt nur für einen selber

Dominik

und dann weiß ich nicht, ob ich das dann...

Dominik

Naja, aber also was mich

Jochen

halt freut, ist, dass es jetzt auf jeden Fall ein Ding gibt,

Jochen

wo man... Also sonst habe ich mich immer gefragt,

Jochen

nehme ich Draw.io oder nehme ich irgendein anderes Tool

Jochen

oder nehme ich halt irgendwie irgendein Desktop-Ding,

Jochen

was ich halt habe. Und dann mache ich das als PNG

Jochen

raus oder als SVG. Nehme ich lieber in SVG

Jochen

oder weiß nicht so genau. Und dann

Jochen

das sieht aber auch wieder ganz anders aus als alle anderen

Jochen

Diagramme, die ich sonst so gemacht

Jochen

habe. Also Mist, auf dem Hintergrund funktioniert das

Jochen

aber nicht. Halt diese ganzen Probleme. Und das

Jochen

ist man halt alles los, wenn man das mit Mermaid macht.

Dominik

Ja, also vor allem, das ist wie gesagt Master. Und ihr

Dominik

könnt auch sowas machen wie verschiedene Projekte.

Dominik

Wie lange wollt ihr die denn schedulen?

Dominik

Und dann nebeneinander. Das finde ich echt sehr geil. Also ich

Dominik

müsste mir das unbedingt angucken, weil ich halt diese

Dominik

Tasks, die hintereinander kommen, mit

Dominik

wie lange brauchen die denn? So ein Ad-Gent

Dominik

oder sowas für verschiedene Projekte bauen kann

Dominik

in Markdown. Und wir benutzen ja eh

Dominik

für alles jetzt Markdown, nicht wahr, Jochen?

Dominik

Ja.

Dominik

Ich weiß nicht so genau.

Dominik

Nein, zum Schreiben, nicht?

Jochen

Ja, meistens. Also, genau.

Jochen

Ich habe ja jetzt auch MPR-Docs mehr dann angeguckt

Jochen

und damit geht das halt auch.

Dominik

Genau, Static-Page-Rendering geht auch.

Dominik

Und da kann ich auch Markdown.

Dominik

PDF geht, sogar so Richtung LaTeX-Templates geht.

Dominik

Es geht,

Dominik

was noch? Was brauchen wir noch? PDF natürlich,

Dominik

Präsentationen geht.

Dominik

Naja, oder Notebooks verwende ich halt auch

Dominik

Markdown viel. Notebooks? Klar.

Jochen

Aber, sagen wir mal so,

Jochen

also für Python-Dokumentationen

Jochen

traditionell verwenden Leute ja dann

Jochen

Restructured Text. Ja, aber das ist so hässlich.

Jochen

Ja, es ist hässlich, aber es ist halt,

Jochen

es kann halt viel mehr als Markdown.

Jochen

Und es gibt halt, die Leute sagen halt immer so,

Jochen

ja, also Markdown nett,

Jochen

aber es kann halt nicht die Sachen, die ich brauche.

Jochen

Daher nehme ich lieber, also gerade was Links

Jochen

angeht und so,

Jochen

daher nehme ich lieber Restructured Text.

Jochen

Ich glaube auch,

Jochen

das ist immer noch das,

Jochen

was am häufigsten verwendet wird.

Jochen

Also wenn man irgendwie Dokumentationen von Projekten anguckt,

Jochen

das ist meistens Restructured Text.

Jochen

Aber ich habe es auch jetzt öfter mal

Dominik

mit Twinks oder so versucht.

Jochen

Ich verstehe, wo das Problem ist, ja.

Jochen

Also das schlägt dann keiner mehr.

Dominik

Also Markdown kann man irgendwie besser.

Dominik

Ich weiß nicht,

Dominik

Restructured Text wird es nicht schaffen.

Dominik

Keine Ahnung, aber...

Dominik

Bin ich mir zumindest sicher.

Dominik

Also Markdown kann man so super viele Anwendungsfälle haben.

Dominik

man kann das halt einfach, sein Github hochladen,

Dominik

das ist direkt gerendert. Man kann, weiß nicht,

Dominik

es gibt so Typora oder so, ich glaube, der ist leider,

Dominik

der war tischendurch frei, ich glaube, der ist jetzt

Dominik

leider auch

Dominik

proprietär, aber da konnte man wie

Dominik

so ein Schreibprogramm seine Eltern

Dominik

überreden, wenn die irgendwas schreiben wollen und

Dominik

kein Word brauchten, hey, schreib doch Typora, dann hatten die

Dominik

Markdown-Files voll toll und die haben es gar nicht gemerkt,

Dominik

weil das so ein Wolf-Misky-Editor für Markdown

Dominik

hat das richtig schön und

Dominik

sowas halt und ja, Obsidian

Dominik

vielleicht noch und

Dominik

das halt so eine grafische Visualisierung von einem Markdown

Dominik

es macht, wenn du es möchtest. Und dann

Dominik

kannst du so ein bisschen sehen, woran du arbeitest oder wie die Themen

Dominik

untereinander verknüpft sind. Die Links können man...

Dominik

Kennst du das Zettelkasten-Prinzip?

Dominik

Luhmann ist das irgendwie, ne?

Dominik

Ich weiß nicht genau, wie es heißt.

Dominik

Zettelkasten habe ich.

Dominik

Ach, jetzt können wir es nicht erklären. Jetzt müssten wir

Dominik

Kollegen

Dominik

hier haben.

Jochen

Doch, ich glaube...

Dominik

Also du kannst auf jeden Fall Sachen da richtig einsortieren und hast

Dominik

durch die Verknüpfung direkt viel

Dominik

schnellere Sachverhalte miteinander

Dominik

gebündelt.

Dominik

Ja.

Dominik

Ja, Luhmann kann sagen, dass das richtig war, aber

Dominik

wie genau das ging, weiß ich jetzt nicht genau. Jedenfalls

Dominik

Y unterstützt auch das,

Dominik

deine Ablage an dieser

Dominik

Methoden.

Dominik

Mein Notizblock, SimpleNote,

Dominik

auch Markdown, Vendable

Dominik

und so. Ja, also es gibt ganz viele Kleinigkeiten,

Dominik

die in diese Markdown-Welt reinspielen und

Dominik

diese Schlimmste sind alle

Dominik

Entertainable und das ist,

Dominik

ich bin auch ein großer Fan von Markdown, hab ich ja schon gesagt.

Jochen

Nee, aber ich glaube, man kann das irgendwie

Jochen

durchaus so raushören, wenn man da

Jochen

ganz, ganz genau mit der Lupe

Jochen

draufkommt.

Jochen

Ja.

Jochen

Ja,

Jochen

ja, es läuft

Jochen

momentan alles so ein bisschen auf dem Markdown hinaus.

Jochen

Mal schauen. Genau, auch schön

Jochen

ist, dass es halt auch in GitHub-Geschichten funktioniert.

Jochen

Da ist auch irgendwie Standard-Integration,

Jochen

Standard-Message-Integration an. Das heißt,

Jochen

wenn man das einfach so reinschreibt, dann hat man das halt

Jochen

auch in Issues oder halt in irgendwie

Jochen

ja, Markdown, was halt auch von

Jochen

Github gerendert wird.

Jochen

Ja, überhaupt, aber

Jochen

das ganze Dokumentationsthema ist ja auch

Jochen

so in letzter Zeit, habe ich nicht...

Jochen

Genau, ein bisschen

Jochen

mit Make-Docs

Jochen

beschäftigt, aber halt auch

Jochen

überhaupt mit diesem Ding, dass man das halt

Jochen

vielleicht mal tun sollte, weil

Jochen

an sich dazu, bisher war ja eigentlich immer

Jochen

so Dokumentation, ah, nee, lieber nicht.

Jochen

Ist ein bisschen zweifelhaft

Jochen

vielleicht und

Jochen

inzwischen denke ich mir so, naja,

Jochen

vielleicht ist es doch nicht so schlau und

Jochen

genau, da hatte

Jochen

Simon Willison auch irgendwie

Jochen

diverse Artikel jetzt in letzter Zeit

Jochen

in seinem Blog einmal irgendwie bessere

Jochen

Release Notes schreiben.

Jochen

Da versuche ich mich jetzt auch so ein bisschen dran zu halten.

Jochen

Ja, das ist cool. Das finde ich schwierig.

Dominik

Also bei mir steht auch in den meisten

Dominik

Commits nur Schrott drin wie Fixed Something

Dominik

oder Fixed Final oder Fixed Again

Dominik

oder Typo oder, ja, also ich

Dominik

versuche es immer. Also es gibt dann immer einen Commit,

Dominik

der ist ordentlich und

Dominik

15 dann, die sind irgendwie so Fixes

Dominik

davon. Ich glaube, man kann die irgendwie

Dominik

stacken.

Jochen

Du kannst sie hinterher squashen,

Jochen

wenn du das halt in einem

Jochen

Pull-Request zusammenfasst.

Jochen

Ja, aber das mache ich zum Beispiel nicht.

Dominik

Ja, das würde man im Pull-Request machen.

Dominik

Das ist bei mir relativ egal, wenn ich der Einzige bin,

Dominik

der auf so einem Branch ackert, dann ist das völlig wurscht.

Dominik

Ja, klar, klar.

Jochen

Ja, würde ich auch sagen. Also normalerweise

Jochen

mache ich das halt auch nicht, wenn ich da irgendwie

Jochen

alleine... Aber, wenn man sich jetzt überlegt,

Jochen

eigentlich möchte man ja vielleicht irgendwie

Jochen

die Entwicklung auch skalieren können.

Dominik

Und ja, das ist sehr sinnvoll, dass man gute Commit-Messages hat, wo auch was passiert und nicht nur zwei Leerzeichen gemittet werden, dann müsste man auf jeden Fall seine Commits alles squashen und die ordentlich machen und so, ja.

Jochen

Aber also Commit-Messages ist jetzt bei mir so da.

Jochen

die gehen eigentlich, finde ich. Die sind gar nicht so schlimm.

Jochen

Aber das ist auch ganz okay.

Jochen

Ich habe mich ja mal über die Zeit

Dominik

mit euch unterhalten. Das ist auch schon ein paar

Dominik

Jährchen her, glaube ich. Und zwar, ob man die

Dominik

in Präsenz oder in

Dominik

der Vergangenheitsform formuliert.

Dominik

Ja.

Dominik

Weiß ich auch gar nicht mehr. Das Ergebnis war,

Dominik

Präsenz wurde bevorzugt. Präsenz, ja, kann sein.

Dominik

Ich weiß jetzt gar nicht, was ich...

Jochen

Dieser Komite fix, dies und jenes.

Dominik

Anstatt dieser Komite hat das und das gefixt.

Dominik

Ja.

Jochen

Aber das ist ja nicht das gleiche wie Release-Logs.

Jochen

Release-Logs ist immer eine andere Geschichte.

Jochen

Ja, aber wann macht man das zum Beispiel?

Dominik

Also wann schreibt man quasi sein, ja, die Fixliste.

Dominik

Also das ist ja ein bisschen wie Bugs und Features.

Jochen

Wenn du eine Release machst.

Dominik

Also die, ja, aber auf Semantic-Versioning, auf welcher, auf meiner.

Jochen

Semantic-Versioning ist halt so eine Sache.

Dominik

Braucht man das? Nein? Warum nicht?

Jochen

Naja, weil es ja auch nicht wirklich hilft.

Jochen

gut, auch da gibt's halt

Jochen

eine Menge Leute, die mittlerweile halt

Jochen

irgendwie einfach fortlaufende

Dominik

Geschichten machen. So ein bisschen Pseudo ist ja ganz okay.

Dominik

Also wenn man zum Beispiel weiß, man hat jetzt nur ein bisschen

Dominik

was gefixt oder arbeitet an so ein paar

Dominik

Sachen rum, dann

Dominik

macht man immer so die Patch-Version.

Dominik

Wenn man jetzt quasi ein paar neue Features eingebaut hat,

Dominik

würde ich sagen, ist schon Minor nach oben.

Dominik

Machen wir einfach Minor ein. Neue Features,

Jochen

Minor. Ja, also genau.

Dominik

Und Major ist Breaking Change, also

Dominik

es geht irgendwas nicht mehr mit früher, dann ist Major.

Dominik

Ja, wenn man

Jochen

das so machen will, klar. Aber die Frage

Jochen

ist halt, ob das jetzt sinnvoll ist oder nicht.

Jochen

Das ist halt nochmal eine andere Frage. Es gibt Leute, die machen es so,

Jochen

machen es anders. Aber egal, wie man es

Jochen

macht, also Release Notes

Jochen

zu schreiben, ist wahrscheinlich immer eine ganz gute Idee.

Jochen

Egal, wie man es macht.

Jochen

Und auch da ein Datum

Jochen

zum Beispiel dazu zu schreiben. Und dann halt noch,

Jochen

da kann man sich auch die Artikel mal im Detail angucken.

Jochen

Ja, stimmt.

Jochen

Idealerweise sollte da die User-Story

Dominik

beschrieben sein, die gefixt wurde oder die

Dominik

dazugekommen ist. Zu viel ist auch nicht gut.

Dominik

Es sollte so sein, dass...

Dominik

Ein Satz zu dem Punkt.

Jochen

Ein Satz, okay, das ist okay.

Jochen

Aber es sollte halt nicht irgendwie, genau.

Jochen

Man kann ja durchaus die Issues

Jochen

und so reinschreiben.

Dominik

Der User kann sich jetzt

Dominik

auf unserem Backend einloggen.

Dominik

Oder sowas wie, der User

Dominik

kann jetzt den Filter

Dominik

so bedienen, dass er alle möglichen...

Jochen

Das ist halt die Frage, für wen schreibst du das?

Jochen

Das sollte man sich vielleicht auch überlegen.

Jochen

Ja, weil die interessiert das doch nicht,

Jochen

was die User-Story ist. Also ich würde sagen,

Jochen

aus einer technischen Perspektive sind die User-Stories

Jochen

doch eigentlich komplett uninteressant.

Dominik

Das wäre die technische Formulierung von, du kannst jetzt in diesem Formular

Dominik

die Auswahl fehlen. Also technisch würde ich reinschreiben,

Jochen

was tatsächlich passiert ist, was man geändert hat.

Jochen

Oder es kommt mit

Jochen

Messages aneinander kleben.

Jochen

Nee, aber halt sozusagen

Jochen

reinschreiben, was da passiert ist.

Jochen

Aber aus Business-Sicht ist das

Jochen

halt uninteressant. Aus Business-Sicht ist halt nur

Jochen

interessant, was ist denn jetzt mit

Jochen

unseren User-Stories passiert. Aber aus technischer Sicht

Jochen

sind die User-Stories halt relativ irrelevant.

Jochen

Das finde ich gar nicht.

Jochen

Nee? Okay, gut.

Jochen

Interessant. Ich weiß es nicht so genau.

Jochen

Ich würde sagen, dass die meisten Open-Source-Projekte

Jochen

sowas gar nicht haben. Die haben gar keine User-Stories

Jochen

oder sowas. Ja, okay, aber

Dominik

das, was damit gemeint ist vielleicht, weil tatsächlich ja das

Dominik

Feature, das man baut, vielleicht das ist, was man dann

Dominik

umsetzt und wie man das, also das würde ich

Dominik

jetzt in so einen Release-Log reintreiben, welches Feature

Dominik

jetzt umgesetzt ist.

Dominik

Ja, wie gesagt,

Jochen

aber ich glaube, es würde wahrscheinlich schon viel

Jochen

helfen, wenn man sich überlegt, an wen richtet sich das eigentlich?

Jochen

Wer soll das lesen?

Dominik

So dass Manager lesen oder Kunde lesen

Dominik

oder Nutzer lesen

Dominik

oder die Devs lesen, ja.

Dominik

Und zum Beispiel ein Ding,

Dominik

das mich jetzt gerade interessiert,

Dominik

deswegen beschäftige ich mich damit auch so ein bisschen,

Jochen

eben wenn man jetzt Entwicklung skalieren möchte,

Jochen

dann ist es vielleicht gar nicht so schlecht,

Jochen

also zum Beispiel eben auch andere Artikel,

Jochen

ich weiß jetzt gar nicht mehr,

Jochen

wie der Titel von dem war,

Jochen

das Simon Wilson geschrieben hat,

Jochen

hat er so, ja, also er schreibt immer,

Jochen

seit einiger Zeit immer,

Jochen

macht er immer GitHub-Issues auf

Jochen

für alles, was er macht.

Jochen

Und einfach

Jochen

um halt einen Punkt zu haben, wo er alles sammeln

Jochen

kann, was zu einem bestimmten Ding gehört.

Jochen

Auch. Und zwar nicht nur

Dominik

Was ich ganz gerne

Dominik

mache ist, das muss man halt immer

Dominik

ein bisschen einstellen, ist

Dominik

To-Do-Kommentare im Code.

Dominik

Ja. Aber

Dominik

die mit GitHub Post

Dominik

Assessing, dass ihr halt einen Hook habt, dass ihr halt

Dominik

automatisch aus meinen To-Dos im Code Issues erstellt

Dominik

auf GitHub und die automatisch wieder

Dominik

zumacht, wenn das To-Do da verschwindet.

Dominik

Und dass ihr die automatisch auch nummeriert und das dann halt auch

Dominik

in dem Commitment ergänzt.

Dominik

Das heißt, er schreibt dann quasi an den To-Do

Dominik

die Issue-Nummer mit dran und

Dominik

dann kann man quasi darüber auch direkt

Dominik

sich linken lassen, wenn man das einstellt, auf den

Dominik

Issue, auf GitHub und sich den angucken und die Diskussion dazu

Dominik

angucken und hat aber das im Code stehen und

Dominik

muss halt nicht zwei Sachen pflegen, sondern du kannst halt einfach

Dominik

im Code das dann bereinigen

Dominik

und dann ist halt geschlossen

Dominik

und sowas. Und das finde ich

Jochen

der Wettbewerb. Ja, wenn du eine Stelle hast an einem Code,

Jochen

wo du das hin, aber es gibt ja auch viele Dinge, die sind

Jochen

kannst du ja nicht an einer Stelle festmachen.

Jochen

Aber gut, ja, wie man es macht, ist ja letztlich gar nicht...

Dominik

Du kannst natürlich auch ein Extra machen und dann halt referenzieren, ein Commit oder so, aber ja.

Jochen

Genau, und das kannst du ja mit dem Issue auch super machen, also GitHub macht das ja gut.

Dominik

Also es erinnert dich niemand daran, noch extra Issues aufzumachen, wollte ich da mal sagen.

Jochen

Ja, ja, nee, klar, also ich weiß gar nicht, also wie man es jetzt macht, das kann man halt machen, wie man will,

Jochen

aber was ich daran interessant fand, ist halt, also einmal sagt er halt irgendwie,

Jochen

aber warum er das macht, ist halt,

Jochen

dass er einen Punkt haben möchte,

Jochen

sozusagen an dem alles andere hängt.

Jochen

Und GitHub macht das ja automatisch für ihn,

Jochen

das alles zusammenzuführen,

Jochen

wenn er irgendwo dann halt die Issue-Nummer mit reinschreibt.

Jochen

Und der andere Punkt ist halt,

Jochen

er hätte gerne dann daraus einen Pull-Request

Jochen

und dann sozusagen einen perfekten Commit,

Jochen

der das dann halt irgendwie handelt.

Jochen

Wo er dann halt sozusagen alles zusammen hat,

Jochen

was an Änderungen an Dokumentation, Test, Code gemacht werden muss,

Jochen

damit er das Ding zumachen kann.

Jochen

Und dann ist der Issue sozusagen eigentlich auch so eine schöne Geschichte,

Jochen

um halt da reinzuschreiben, was denn überhaupt passieren soll.

Jochen

Auch eine gute Gelegenheit, um sich Gedanken zu machen,

Jochen

was man eigentlich machen will.

Jochen

Und allein, wenn man sich überlegt, okay, ich mache jetzt ein Issue auf

Jochen

und schreibe mir erstmal auf, was denn jetzt dazugehört,

Jochen

dann erledigen sich halt viele Sachen schon,

Jochen

weil man dann anfängt, so ein bisschen gezwungen ist,

Jochen

darüber nochmal nachzudenken und dann vieles

Jochen

sich dann auch schon wieder erledigt.

Jochen

Man fängt nachzudenken, ist ja manchmal so ein bisschen,

Jochen

ist ja nicht so schlecht.

Jochen

Oft ist es halt so, dass man das dann später merkt,

Jochen

wenn man irgendwie anfängt zu entwickeln und dann später merkt man so,

Jochen

oh, das hätte ich jetzt alles eigentlich gar nicht machen müssen.

Jochen

Aber

Jochen

also, das fand ich ganz

Jochen

nett.

Jochen

Vor allen Dingen, ich habe das jetzt zum Beispiel für ein Ding,

Jochen

ich habe so einen Podcast-Client geschrieben.

Jochen

Ich weiß nicht genau, warum ich das jetzt gemacht habe.

Jochen

Könnte diesen Ding Jagni...

Jochen

Ich weiß nicht genau, warum ich das nicht genau gemacht habe.

Jochen

Ja, Jagni könnte sein.

Jochen

Oder halt auch einfach so Standard-Jagdshaving.

Jochen

Könnte auch gut sein.

Jochen

Ja, eben.

Jochen

Ich vermisse gleich vielleicht nochmal eine Abschweife.

Jochen

Aber genau.

Jochen

Und da habe ich mir dann gedacht, okay, das war dann halt auch das Richtige.

Jochen

Das mit den Issues mache ich jetzt vielleicht auch mal so.

Jochen

Ich lege einfach schon mal ein paar Issues an.

Jochen

Wenn jemand vorbeikommt oder drauf guckt,

Jochen

dann kann er das vielleicht einfach auch so machen.

Jochen

einfach damit Leute halt einen Ansatzpunkt haben.

Jochen

Wenn du halt einfach so eine Code-Basis hast, dann weißt du ja gar nicht,

Jochen

selbst wenn du dann irgendwas machen wollen würdest,

Jochen

was du denn jetzt da machen sollst.

Dominik

Weißt du, das Problem ist ja auch, die meisten Leute, die gehen da nicht hin und gucken,

Dominik

oh, was gibt es denn schon für Git-Apps, für coole Podcast-Clients,

Dominik

oh, der ist auch total unfertig, das sieht doch cool aus,

Dominik

da gucke ich mir in die iTunes rein, was ich alles machen kann.

Dominik

Nichts.

Dominik

Nein, sondern die fangen dann ihren eigenen Podcast-Client an.

Dominik

Ja, so wie ich, das stimmt.

Jochen

Ja, genau, vielleicht ist es ein bisschen zu enthusiastisch, optimistisch verblendet,

Jochen

Aber wenn man das denn machen wollen würde,

Jochen

dann ist es natürlich die Wahrscheinlichkeit,

Jochen

dass jemand vorbeikommt und was macht,

Jochen

vielleicht viel höher, wenn da schon sowas ist.

Jochen

Ja, ich würde sagen, das macht tatsächlich dann Sinn,

Dominik

wenn das Projekt schon so ein bisschen Drive aufgenommen hat.

Dominik

Nee, klar.

Dominik

So ein paar Stars gesammelt hat und man dann denkt so,

Dominik

hey, es wäre jetzt vielleicht cool, so ein paar...

Jochen

Nee, ich mache das vor allen Dingen deswegen halt,

Jochen

um das zu üben, weil wenn man es dann braucht,

Jochen

dann ist es ja immer schlecht.

Jochen

Wenn man das dann erst lernt.

Jochen

Genau.

Dominik

Man muss ja immer schon alles direkt perfekt können.

Dominik

Nicht perfekt, aber so ein bisschen besser,

Dominik

was irgendwie man vergrattert.

Dominik

Ja, es ist

Jochen

manchmal nicht so einfach.

Dominik

Ja, immer auf jeden Fall besser als alle.

Dominik

Ja, ja, ich verstehe das.

Dominik

Ja, das ist halt

Dominik

aber tatsächlich so eins der Probleme, die

Dominik

wir in unserer Gesellschaft, in unserer Kultur haben. Das sehen

Dominik

andere Leute aus anderen Ländern überhaupt nicht so.

Dominik

Die verstehen das überhaupt nicht, warum wir da so völlig

Dominik

bescheuert sind. Und denen ist das,

Dominik

die können das wirklich nicht nachvollziehen.

Dominik

Ich finde das auch ein bisschen anstrengend immer.

Dominik

Und ich finde das auch nicht so produktiv.

Dominik

Und es ist tatsächlich nicht so

Dominik

Business optimiert. Ja, das mag sein.

Dominik

Aber naja. Aber

Jochen

zu Glück muss ich auch nicht auf Business-Ziele optimieren.

Jochen

Ja, gut für dich, Jochen.

Jochen

Ja, genau.

Jochen

Ja, genau, ich wollte

Jochen

einfach mal ein bisschen Übung zu schreiben und

Jochen

ja, das mache ich jetzt auch

Jochen

so ein bisschen. Und ich habe einen kleinen, und ich, tatsächlich, ich finde

Jochen

eigentlich Podcast-Client ist, also habe ich schon erzählt,

Jochen

warum ich das interessant finde oder was mich da so dran

Jochen

angesprungen hat.

Jochen

Der Grund, warum ich das mache, ist, dass man

Jochen

das ja sowieso irgendwie braucht.

Jochen

Ich habe das Gefühl, ich muss es

Jochen

sowieso früher oder später irgendwann tun

Jochen

und der Grund, warum man das

Jochen

irgendwie tun muss, oder ich das Gefühl

Jochen

habe, dass ich das tun muss, ist, weil

Jochen

da ja so viele

Jochen

schöne andere Dinge dranhängen, wie zum Beispiel

Jochen

wenn du jetzt irgendwie

Jochen

wissen möchtest, wie zum Beispiel dein Podcast

Jochen

aussieht in einem Podcast-Rosting.

Jochen

Dann willst du den

Jochen

vielleicht importieren. Wie machst du das? Naja, du sagst

Jochen

halt, hier ist mein Feed, importiere doch mal.

Jochen

Feed importieren irgendwo her

Jochen

und einen Client haben, der

Jochen

irgendwie sagen, das ist fast das Gleiche.

Jochen

Das ist fast das Gleiche.

Jochen

Ja, fast.

Jochen

Und überhaupt,

Jochen

ja, vielleicht willst du einen Katalog haben, vielleicht willst du

Jochen

irgendwie, da brauchst du

Jochen

auch die Dinger parsen können, Feeds parsen

Jochen

können, Podcast Client haben, ist fast das Gleiche.

Jochen

Ganz interessante Geschichte und dann wollte ich mal

Jochen

gucken, wie funktioniert eigentlich diese Feed Parser Library

Jochen

so, was muss man da für eigentlich alles machen.

Jochen

Ja, dann habe ich das

Jochen

irgendwie gestartet und ich dachte, ach, Rich

Jochen

und so, das ist auch voll cool.

Dominik

Ja, Rich finde ich ja tatsächlich gut, habe ich ja schon ein paar Mal gepickt.

Dominik

ja. Rich gibt's die

Dominik

Klee, Rich Klee, CLI. Genau,

Jochen

das, ähm, genau, wollte ich eigentlich

Jochen

gleich nochmal picken, aber können wir auch jetzt machen, ist mir egal.

Dominik

Das wäre dein Pick gewesen, okay, Entschuldigung.

Dominik

Statt Butt, hast du gesagt, nimmst du die Rich CLI,

Dominik

weil es so wunderschöne

Dominik

Dokumente darstellt und Markdown-Rendern und

Dominik

Tabellen, CV. Genau, also das, was ich

Jochen

bisher eigentlich immer verwendet habe, ist Butt.

Jochen

Das verwende ich auch immer noch.

Jochen

Ich finde das super. Ja, ist auch

Jochen

ganz gut. Fast, Modern Unix.

Jochen

Äh, ja, aber

Jochen

bei mir. Konfigurierbar.

Jochen

Man kann es konfigurieren, aber in der Default-Konfiguration

Jochen

macht es halt irgendwie Zeilennummern davor.

Dominik

Ja, das kann man nicht mehr copy und pasten, da hast du recht.

Dominik

Das heißt, da kann man auch nicht mehr pipen, wie man das mit Cut gewohnt ist.

Dominik

Und deswegen muss man die Konfiguration anpassen.

Dominik

Das sind zwei Environment-Variablen, die man setzen muss.

Dominik

Und dann muss man

Dominik

machen, wie man das so haben möchte.

Dominik

Also eine für den Style und eine für die

Dominik

Zeilennummern und dann kann man das nach wie vor

Dominik

in einen Pipes einsetzen und kann das

Dominik

dann aliasen auch auf Cut und dann kann man Butt nehmen für

Dominik

mit Zeilennummern.

Jochen

Ja, aber wie gesagt, wenn man

Jochen

Rich nimmt, dann ist das halt

Jochen

Rich-CLI und auf der Kommando-Seile ist es dann einfach nur

Jochen

Rich. Dann muss man

Jochen

das eben nicht machen, sondern es funktioniert einfach so.

Jochen

Und es kann auch ein bisschen mehr

Jochen

Syntax-Highlighting-Geschichten machen als

Jochen

Butt. Also insofern

Jochen

kann man ja mal ausprobieren.

Dominik

Ja, ich fand es auch ganz gut. Also ich mag ja

Dominik

Rich auch. Ich mache mit Rich auch Konsolen-Anwendungen

Dominik

teilweise.

Jochen

Ja, gibt es jetzt auch...

Jochen

Nein, das sag ich jetzt nicht.

Jochen

Da müsst ihr jetzt warten

Jochen

bis zum Schluss, dann picke ich nämlich das nämlich stattdessen.

Jochen

Na gut. Ja.

Jochen

Und genau.

Jochen

Ja, und da dachte ich, so kommen halt ein paar Sachen zusammen,

Jochen

die das aus unterschiedlichen Gesichtspunkten

Jochen

interessant machen, deswegen habe ich damit mal angefangen.

Jochen

Ich habe, genau, also eine der

Jochen

Geschichten, also von diesem Bootstrap-Ding und

Jochen

Jungle Crispy Forms und so muss man irgendwie weg. Ich habe jetzt

Jochen

auch, das habe ich, glaube ich, relativ

Jochen

aus anderen Gründen

Jochen

und dann das jetzt nicht mehr in der privaten

Jochen

Weise viel mehr zu tun gehabt und

Dominik

Es gibt auch irgendein, ich weiß nicht mehr, ob das

Dominik

mit Crispy Forms war oder sowas, wo man

Dominik

einen Hook reinbauen kann und dann halt

Dominik

die Forms mit Tailwind benutzen kann.

Dominik

Ja, also ich würde sagen,

Jochen

das wäre auch interessant, wenn da jemand eine Empfehlung

Jochen

hat, wie man das, also ich habe mir jetzt,

Jochen

Crispy Form habe ich auch immer so verwendet, ich habe es nie so genau angeguckt,

Jochen

sondern immer nur so benutzt und es ist

Jochen

ja auch, es hat ja einige ganz nette

Jochen

Geschichten und es macht einige Dinge ja einfacher

Jochen

und jetzt habe ich da so mal tief reingeguckt

Jochen

und ich muss sagen, das muss alles weg.

Jochen

Das muss alles,

Jochen

das geht nicht, das ist alles ganz

Jochen

schrecklich. Also das

Jochen

ist halt irgendwie langsam, man

Jochen

kriegt es auch nicht schnell, weil es ist furchtbar

Jochen

und das ist alles

Jochen

so, also das ist, nee.

Jochen

Also ich

Jochen

denke, man sollte das anders machen. Ich weiß jetzt auch

Jochen

noch nicht wie, aber man muss das irgendwie anders machen.

Jochen

Das geht so nicht.

Jochen

Und das war mir nicht so klar vorher, als ich da noch

Jochen

nichts reingeguckt habe.

Jochen

Irgendwas mit Forms

Jochen

muss man sich nochmal ausdenken.

Jochen

Ja, wobei, wenn man

Jochen

halt irgendwie, da ist jetzt wieder,

Jochen

das ist halt das Problem. Ich meine,

Jochen

wenn du das jetzt so machst,

Jochen

dass du die CSS-Klassen in HTML setzt und so,

Jochen

dann hast du halt beim Rendern ein Problem, weil

Jochen

dann musst du das nämlich alles irgendwie setzen.

Jochen

Unter Umständen, ne?

Dominik

Wieso, du machst ein Template für ein...

Jochen

Ja, aber das ist ja genau das Problem,

Jochen

dass CrispyForms löst.

Jochen

Du hast halt eine Form, jetzt kommen die Formfehler zurück.

Jochen

Wie machst du das so, dass

Jochen

jetzt deine Fehler ordentlich, dass da halt

Jochen

so ein roter Kringel drumrum ist?

Dominik

Ja, du benutzt den Default, den machst du

Dominik

zum Beispiel mit CrispyTemplate, CrispyTable gibt's auch.

Dominik

Und dann, also

Dominik

dass das auch langsam ist, ja, weil das auch Crispy Forms ist.

Dominik

Aber dann machst du halt einfach

Dominik

in deinem Template, überschreibst dann halt den Default

Dominik

und hast dann

Dominik

einen schönen Style.

Jochen

Du musst es ja in das HTML rausrendern, weil die Klassen müssen ja

Jochen

im HTML drinstehen.

Dominik

Das wird dann da reingerendert, wenn du einfach deine Form erzeugst

Dominik

und die Form gibst du dem Django View.

Dominik

So einfach geht das dann aber nicht mehr.

Jochen

Also wie passiert das denn zum Beispiel, wenn

Jochen

da halt die Fehler zurückgegeben werden?

Jochen

Du hast jetzt eine Form, jetzt validiert das nicht, sondern das sind irgendwie Fehler.

Jochen

Dann nimmt dir die Fehlerklasse

Dominik

und in der Fehlerklasse hängt ein HTML-Element,

Jochen

mit dran. Ja, aber das ist aber, ich weiß

Jochen

das nicht. Das HTML-Element wird gestylt. Das ist nicht einfach

Jochen

irgendwie eine Fehlerklasse. Doch.

Jochen

Das ist nicht, das ist doch.

Jochen

Da wird ganz kompliziertes Zeug gemacht. Da werden

Jochen

diverse Klassen hinzugefügt, diverse Sachen

Jochen

geändert. Und das musst du auch machen,

Jochen

sonst geht das nicht gut aus hinterher. Ja, aber du kannst ja

Dominik

überschreiben, glaube ich.

Dominik

Ich hatte irgendwie mal ein paar Sachen customised,

Jochen

das ging. Ja, man kann so ein bisschen

Jochen

customisen, aber naja, okay, keine Ahnung.

Jochen

Also wie gesagt, also dieses Problem hast du, wenn du

Jochen

das halt, wenn du das HTML verändern

Jochen

musst, wenn du jetzt einen Fehler renderst.

Jochen

dann musst du das irgendwie machen, wie auch immer du

Jochen

machst, aber du musst es ja irgendwie tun. Und das ist

Jochen

nicht so, dass da irgendwas in Django drin wäre, was dir dabei

Jochen

hilft, sondern da musst du halt dann irgendwie Crispy Forms

Jochen

nehmen oder irgendwas anderes, was das halt für dich macht.

Jochen

Und das ist halt nicht so ganz

Jochen

einfach. Während wenn du jetzt, sag mal so, du hast jetzt

Jochen

getrenntes CSS, ja, und

Jochen

du hast halt da definiert, wie dein

Jochen

ganzer Kram halt so aussieht und

Jochen

da setzt du halt, dann sagst du ja

Jochen

Fehler, rennst aber ganz normales

Jochen

semantisches HTML raus, ohne

Jochen

das, dann hast du sozusagen in deiner Applikationslogik

Jochen

irgendwie kein Problem damit, dass

Jochen

du da irgendwie komische Dinge,

Jochen

Klassen auf HTML-Geschichten setzen

Jochen

musst und so, sondern dann sagst du

Jochen

halt irgendwie nur, das ist mein

Jochen

Standard. Ich weiß nicht, was von Django

Jochen

dann zurückkommt, was da für eine Klasse gesetzt wird oder wahrscheinlich

Jochen

irgendwas. Und dann zahlst du das

Jochen

in einem CSS und fertig.

Jochen

Das macht es dann halt deutlich

Jochen

einfacher. Aber ich weiß es noch nicht. Ich muss mal

Jochen

gucken. Ich habe keine Ahnung.

Jochen

Damit muss man sich beschäftigen.

Dominik

Da muss man so ein Template wieder bauen für HTMLX und Django.

Dominik

Also, eine

Dominik

Geschichte.

Jochen

Ist halt, ich weiß nicht, SQL-Model, sagt ihr ja vielleicht auch.

Jochen

Es gab ja auch letztens eine Episode zu irgendwie wieder auf TalkPython2Me.

Jochen

Und das versuche ich ja gerade zu entfernen, zum Beispiel aus dem Fast Deploy.

Jochen

Und der Grund ist, weshalb ich das versuche zu machen,

Jochen

ist, dass ich versuche, mal das so ein bisschen umzuorganisieren.

Jochen

Dass halt so ein bisschen Software-Architektur reinkommt.

Jochen

Ich weiß es auch nicht unbedingt jeder Manns Sache.

Jochen

Ich habe auch früher mal schon gedacht,

Jochen

das ist auch vielleicht jubiliert.

Jochen

Das schnürt mir schon, wenn ich das Wort ausspreche,

Jochen

irgendwie die Krawatte, die Luft ab.

Dominik

Der Architekt, ein feiner Herr.

Jochen

Aber vielleicht gibt es Situationen,

Jochen

in denen das doch nicht so verkehrt ist.

Jochen

Und ich wollte es einfach mal so ein bisschen ausprobieren.

Jochen

Und deswegen mache ich das da jetzt.

Jochen

Und genau, da ist ja immer so...

Dominik

Was ist denn Architektur, Software-Architektur überhaupt?

Jochen

Naja, es ist im Wesentlichen quasi die Beschreibung

Jochen

für die Tätigkeit, die man halt

Jochen

ausübt, wenn man

Jochen

Software versucht zu modularisieren,

Jochen

also so in Teile zu zerlegen, dass man nur noch

Jochen

irgendwie, dass die

Jochen

Gesamtkomplexität nur noch dominiert

Jochen

wird von der Komplexität des

Jochen

kompliziertesten, komplexesten

Jochen

Moduls und nicht mehr alles mit

Jochen

allem zusammenhängt, sozusagen. Und

Jochen

die Art, was man macht, wenn man das jetzt

Jochen

tut und versucht, das klein zu hauen, das

Jochen

nennt man halt Softwarearchitektur, sag ich jetzt mal so.

Jochen

Also, es gibt da,

Jochen

das wäre jetzt meine aus der hohlen Hand

Jochen

Definitionen. Es gibt ja Leute, die versucht haben, das ernsthaft

Jochen

zu definieren, wie so Martin Fowler

Jochen

und so, die würden sowas sagen wie

Jochen

Software-Architektur sind alle die

Jochen

grundlegenden

Jochen

und schwer änderbaren Entscheidungen,

Jochen

die

Jochen

ich weiß nicht, ob ich die Definition richtig zusammenkriege,

Jochen

die Einfluss dann halt

Jochen

auf das Projekt haben und die dazu führen,

Jochen

ob man jetzt irgendwie Dinge schneller ändern kann

Jochen

oder nicht. Kann man auch kritisieren,

Jochen

es ist so wichtig,

Jochen

ob man Code hinterher ändern kann oder nicht.

Jochen

was sind das denn eigentlich, wenn man weiß, dass es wichtig ist,

Jochen

dann hat man ja schon den Teil der Software-Architektur

Jochen

irgendwie erledigt im Grunde.

Jochen

Man weiß halt vor allem bei den Entscheidungen halt dummerweise

Jochen

leider vorher meistens nie, ob die jetzt wichtig sind oder

Jochen

nicht. Aber das ist halt

Jochen

eine Definition. Ich glaube, ich habe die von,

Jochen

die haben auch andere Leute so ähnlich

Jochen

auch schon gebracht.

Jochen

Mir gefällt

Jochen

die irgendwie, wie zerlegt man

Jochen

eigentlich ein Programm in kleinere Teile

Jochen

ein bisschen besser.

Jochen

Aber ja gut, ist halt ein bisschen

Jochen

Geschmackssache, aber im Grunde irgendwie so, man kann sich

Jochen

das auch vorstellen, ja, wie wenn man ein Haus

Jochen

Architektur hat, dann kann man auch für ein Softwareding

Jochen

Architektur haben. Also Microservices

Dominik

für so Häuser breitstellen, also jedes

Jochen

Mal auf seinem eigenen. Microservices wäre

Jochen

halt ein Ding, wie man

Jochen

also, aber Architektur bezieht sich jetzt nicht

Jochen

auf das, auf den

Jochen

IT-Teil, nicht auf das System,

Jochen

sondern eher auf die

Jochen

Software. Also du kannst natürlich

Jochen

auch, ich meine, das sind halt eher so die Dinge, wo ich

Jochen

das Gefühl habe, das geht dann halt schief, wenn

Jochen

Leute das

Jochen

Software-Problem, weil sie es

Jochen

irgendwie nicht lösen können, das sieht man

Jochen

übrigens ganz oft, also mir begegnet das

Jochen

häufig und es ist furchtbar.

Jochen

Meistens,

Jochen

also die Konsequenzen sind meistens furchtbar,

Jochen

dass Leute halt

Jochen

dieses Modularisierungsding in der Software

Jochen

nicht gebacken kriegen, aus welchen Gründen auch immer

Jochen

und dann hingehen

Jochen

und das versuchen auf einer anderen Ebene zu lösen.

Jochen

Also auf der Ebene zum Beispiel, was man häufig sieht,

Jochen

ist, dass die Leute dann versuchen, es organisatorisch zu lösen

Jochen

oder dass Leute versuchen, es mit

Jochen

mit IT-Geschichten zu lösen,

Jochen

wir nehmen jetzt die Cloud, oder

Jochen

dass Leute es mit Microservices

Jochen

versuchen und all diese Ansätze

Jochen

sind eigentlich immer, das scheitert immer ganz

Jochen

spektakulär, weil

Jochen

an dem grundsätzlichen

Jochen

Problem ändert sich dadurch nichts und du hast

Jochen

dir das Leben halt irgendwie gerade noch mal

Jochen

in Größenordnung schwerer gemacht, dadurch

Jochen

dass du jetzt zum Beispiel

Dominik

ein Park, ein Fuhrpark

Dominik

ein Zoo

Jochen

gerade Microservices gab es

Jochen

auch letztens, habe ich auch letztens

Jochen

eine Podcast-Episode darüber gehört, mit dem

Jochen

es gibt ein Buch, das irgendwie alle immer

Jochen

referenzieren, was Microservices angeht.

Jochen

Und

Jochen

der sprach dann halt auch so drüber,

Jochen

der hat das Buch geschrieben und meinte so,

Jochen

ich bin ein bisschen unglücklich, ich gelte jetzt immer als Experte

Jochen

für Microservices, jetzt, weil ich dieses Buch geschrieben habe, na gut.

Jochen

Und der meinte,

Jochen

er macht halt viel Consulting irgendwie

Jochen

und wird eigentlich immer dazu gerufen, wenn

Jochen

irgendwelche Leute auf die Idee gekommen sind, wir müssen jetzt mal

Jochen

auf Microsoft-Architektur umsteigen.

Jochen

Und dann holt man sich halt irgendjemanden dazu,

Jochen

der dann sagen soll, warum das irgendwie alles eine super

Jochen

Idee war. Und dann sitzt

Jochen

er dann immer und meint so, hm,

Jochen

das ist vielleicht gar nicht so eine gute Idee

Jochen

in eurem Fall.

Jochen

Und das macht

Jochen

ihn halt nicht unbedingt beliebt, aber er versucht das dann irgendwie

Jochen

so diplomatisch zu verpacken. Aber er meint so, ja,

Jochen

ganz oft ist es halt so, dass Leute das dann so

Jochen

probieren, aber eigentlich

Jochen

sollte man vielleicht andersrum anfangen und eher Monolith

Jochen

nehmen und dann halt, wenn man

Jochen

dann auf bestimmte Probleme stößt, die man

Jochen

anders nicht mehr lösen kann, dann Microservice

Jochen

ist dann vielleicht eine

Jochen

Möglichkeit unter Umständen.

Jochen

Aber damit anzufangen,

Jochen

ohne zu wissen, was man jetzt eigentlich

Jochen

machen möchte, das ist vielleicht nicht so eine gute Idee.

Jochen

Also wenn man jetzt halt vorher schon

Jochen

ein Problem mit der Modularisierung hatte

Jochen

und dann auch noch

Jochen

Microservices dazu nimmt, dann hast du halt hinterher

Jochen

einen distributed ball of mud sozusagen.

Jochen

Also das Problem

Jochen

an

Dominik

Modularisierung

Dominik

kann sein, dass man verschiedene Stellen hat, an denen man Dinge

Dominik

pflegen muss?

Jochen

Ne, Modularisierung ist eigentlich eine gute Sache.

Dominik

Aber wenn nicht, du hast gerade ein Beispiel gesagt,

Dominik

du hast gesagt, wenn man Probleme nimmt.

Jochen

Das ist gut, wenn man das hinkriegt, das ist gut.

Jochen

Wenn man es nicht hinkriegt, das ist doof.

Jochen

Also wenn du es nicht schaffst,

Jochen

sozusagen modulisieren.

Jochen

Die Dinge voneinander zu trennen.

Jochen

Ja, wobei jetzt auch nicht Trennung beliebig super ist.

Jochen

Also natürlich kann man das auch falsch machen,

Jochen

in dem Sinne, dass man halt das an den falschen Stellen trennt,

Jochen

irgendwie in der falschen Granularität trennt.

Jochen

Das ist natürlich nicht schlecht.

Jochen

Und wenn man jetzt sozusagen es aber gar nicht schafft,

Jochen

das zu trennen und sagt, wir machen jetzt aber Microservices,

Jochen

um die Sachen, wo wir es halt falsch getrennt haben,

Jochen

nochmal zu zementieren, indem wir es auf andere Rechner packen

Jochen

und in andere Repositories und so.

Jochen

Und dazwischen halt jetzt Schnittstellen haben,

Jochen

die wir schlecht ändern können und die, wo

Jochen

wir Fehlerbehandlung machen müssen und das ist alles ganz, ganz

Jochen

schrecklich, dann ist das halt

Jochen

noch viel schlimmer als vorher. Also wenn du vorher das Problem

Jochen

hattest, du hast es nur in deiner

Jochen

in deinen Funktionsaufrufen nicht geschafft, das ordentlich

Jochen

zu trennen und jetzt

Jochen

hast du es halt irgendwie, diese Funktionsaufrufe

Jochen

verteilt, aber

Jochen

du hast es quasi nicht

Jochen

wirklich modularisiert, sondern du hast ja

Jochen

Abhängigkeiten immer noch,

Jochen

dann hast du danach ein viel schwereres

Jochen

Problem als vorher.

Jochen

Du hast es nur dann

Jochen

eine ganze Zeit lang nicht mehr gemerkt, weil

Jochen

da warst du damit beschäftigt, irgendwie

Jochen

Kubernetes zu konfigurieren, ja, so ein halbes

Jochen

Jahr oder so. Und dann nach einem halben Jahr fällt dir

Jochen

auf, so, das Problem ist eigentlich noch viel schlimmer jetzt als

Jochen

vorher. Und das ist halt dann,

Jochen

ja, da bist du in einer doofen Position,

Jochen

weil da kommst du dann auch nicht mehr so leicht raus.

Jochen

Und, ja, das ist halt,

Jochen

genau, ja, das ist halt,

Jochen

ja, Architektur,

Jochen

genau, also jedenfalls

Jochen

damit beschäftige ich mich halt

Jochen

auch gerade so ein bisschen. Ich meine, da müsste man mal drüber

Jochen

reden, wenn ich da irgendwie mehr zu weiß.

Dominik

Ich glaube, da müssen wir auch eine eigene Folge zu machen zur Architektur.

Dominik

Oder auch

Dominik

Microservice versus Modulit.

Dominik

Aufschreiben.

Dominik

Wenn ihr mich nicht auskennt,

Dominik

sagt uns Bescheid.

Dominik

Genau.

Jochen

Was ich halt gerade versuche, ist halt

Jochen

mich mit diesem, was macht man

Jochen

denn eigentlich so üblicherweise,

Jochen

wenn man jetzt eine Architektur,

Jochen

wenn man überhaupt so ein bisschen Architektur haben möchte,

Jochen

wie macht man das denn?

Jochen

Und zum Beispiel,

Jochen

Ein schönes Zitat, was es

Jochen

halt in dem Buch, diesem Software

Jochen

Architecture Patterns with Python

Jochen

Buch, das ich da so zu lese,

Jochen

gibt, ist halt

Jochen

und

Jochen

ja, das fällt mir halt dazu,

Jochen

dann auch allen, wenn man sagt, ja, super,

Jochen

weil ich kenne das

Jochen

ganz viele Leute, ah, super,

Jochen

Microsoft ist voll gut oder sonst wie.

Jochen

Ja,

Jochen

das hatte mal, glaube ich,

Jochen

der Autor von

Jochen

Clojure,

Jochen

der Programmiersprache Rick Hickey

Jochen

oder Rich Hickey, ich weiß gar nicht,

Jochen

wie heißt der nochmal, hat das gesagt,

Jochen

meinte so, ja, es gibt immer

Jochen

unter Ökonomen den Witz,

Jochen

ja, so Ökonomen kennen irgendwie den

Jochen

Preis von allem, aber den Wert von nix.

Jochen

Und für Softwareentwickler

Jochen

kann man das halt auch anpassen und sagen, ja, Softwareentwickler,

Jochen

die kennen halt irgendwie

Jochen

die Vorteile von allem,

Jochen

ja, oder die Features und die,

Jochen

aber sie kennen halt irgendwie die

Jochen

Trade-offs und die Nachteile von nix, ja.

Jochen

Und das ist halt, das ist so ein bisschen,

Jochen

das ist halt, da ist was Wahres dran.

Jochen

zum Beispiel, eben,

Jochen

das ist da,

Jochen

wir hatten ja letztes Mal diese Fast-API-Episode

Jochen

oder so.

Jochen

Also,

Jochen

das ist so,

Jochen

ich weiß nicht, würde

Jochen

man, auch wenn ich das so,

Jochen

auch bei TalkPython-Termin oder so, wenn ich das höre,

Jochen

ich höre immer so, ja, das ist alles voll gut und so.

Jochen

Aber,

Jochen

es gibt ja auch Nachteile, die das hat, wenn man das

Jochen

jetzt so macht. Also wenn man jetzt zum Beispiel sagt,

Jochen

man nimmt jetzt FastAPI, nehmen wir mal

Jochen

ein Beispiel, du nimmst halt FastAPI, SQL-Model

Jochen

und so

Jochen

und alles funktioniert

Jochen

mehr oder weniger automagisch.

Jochen

Was ist der große Nachteil an dieser Geschichte?

Jochen

Erzähl.

Jochen

Tja, da würde ich sagen,

Jochen

eben, da bist du schon typischer Software-Entwickler.

Jochen

Die meisten würden sagen, ja, das hat doch keinen Nachteil,

Jochen

das hat doch nur Vorteile. Naja, es hat halt schon

Jochen

Nachteile und der Nachteil ist halt,

Jochen

Aber wenn du halt von SQL-Model erbst, dann kannst du das nie wieder ändern.

Jochen

Wenn du jetzt auf die Idee kommst, wir machen das, oder du stellst halt fest,

Jochen

du misst das, du hast viele kleine Sachen, die halt serialisiert werden müssen,

Jochen

das ist halt zu langsam, das funktioniert irgendwie nicht.

Jochen

Und das ginge besser, wenn ich das jetzt irgendwie mit einem Unpile machen würde

Jochen

oder keine Ahnung, dann, das kannst du nicht mehr anpassen.

Jochen

Das ist halt einfach, dann hast du halt mehr oder weniger verloren.

Dominik

Naja, du könntest ja schon Export der Daten machen und Import woanders herstellen,

Dominik

man muss dann eine kurze Downtime kaufen und so.

Dominik

Conversion

Dominik

dazwischen schreiten. Also irgendwie geht das ja schon.

Dominik

Wenn dann eine Business-Logik

Dominik

da drin hängt

Jochen

und du hast von SQL-Model geerbt

Jochen

oder von

Jochen

Pidentic, irgendwie von den Base-Models, da kannst du

Jochen

nicht mehr viel machen. Das ist halt

Jochen

das Problem. Du hast halt, oder

Jochen

sagen wir mal so, ich will gar nicht

Jochen

auf Fast-API rumhacken oder so. Also ich meine,

Jochen

dieser Ansatz ist ja durchaus verbreitet.

Jochen

Bei allen Frameworks ist es halt so, du

Jochen

erbst von irgendwas und dann

Jochen

hast du halt viel mehr Fähigkeiten

Jochen

und hast halt in kurzer Zeit sozusagen

Jochen

in Anführungsstrichen viel geschafft, aber du kannst es halt auch

Jochen

nicht mehr ändern. Wenn du das in Django machst, ist das das gleiche

Jochen

Problem. Wenn du in Django irgendwie

Jochen

erbst du ja von Models

Jochen

Punkt irgendwas Model und

Jochen

hast da deine Fields und so. Was ist denn

Jochen

jetzt, wenn das aus irgendwelchen Gründen nicht mehr gut auf deine

Jochen

Anforderungen passt?

Jochen

Da musst du halt umziehen. Ja, aber das geht quasi nicht.

Jochen

Endpunkt pro Endpunkt.

Jochen

Funktioniert nicht gut. Das kannst

Jochen

du praktisch nicht mehr ändern. Also da würde ich sagen, der

Jochen

der große Nachteil, also du kaufst

Jochen

dir eine Menge, du kriegst halt viel

Jochen

Magie einfach so ganz schnell und

Jochen

es funktioniert ganz viel. Der große

Jochen

Nachteil, den du dir einkaufst, ist, du kannst

Jochen

das nicht mehr ändern. Wilde Magie.

Jochen

Du hast dich ganz eng an dein Framework

Jochen

gekoppelt. Das ist die engste Kopplung, die es

Jochen

überhaupt gibt, von irgendwas zu erben.

Jochen

Und

Jochen

jetzt eben sozusagen

Jochen

diese klassische Software-Architektur

Jochen

würde halt sagen, ja, Frameworks sind nicht deine

Jochen

Freunde, sei vorsichtig, wenn du von

Jochen

irgendjemandem erbst. Das ist immer,

Jochen

du koppelst dich da ganz eng. Also all diese

Jochen

Sachen von Sachen erben, Sachen importieren,

Jochen

alles vielleicht nicht so gut,

Jochen

weil das lässt sich hinterher alles verändern. Ja, aber alles selber machen

Jochen

ist halt auch irgendwie ein bisschen Quatsch. Das musst du ja nicht.

Jochen

Du könntest zum Beispiel stattdessen Software-Architektur machen.

Jochen

Ist halt die Frage. Okay, du meinst, du kannst es krapseln

Jochen

dann? Du machst, also da

Jochen

kannst du es halt so machen, dass

Jochen

zum Beispiel dein Kern, deine

Jochen

Applikation halt von überhaupt nichts

Jochen

abhängt, von nichts erbt und auch nichts importiert.

Jochen

Aber es braucht einen Händler für

Jochen

Speichern von Daten.

Jochen

Ja, aber den kannst du ja reinreichen sozusagen.

Dominik

Genau, aber das ist dann eine Dependency Injection.

Dominik

Habe ich das jetzt richtig?

Dominik

Ja, ja, ja, genau.

Jochen

Du würdest die Dependencies umdrehen.

Jochen

Du würdest halt sagen,

Jochen

der Kern meiner Software basiert halt

Jochen

oder hängt halt ab von anderen Sachen,

Jochen

sondern du würdest sagen, man dreht das halt um

Jochen

und sagst, die anderen Sachen hängen halt von meiner Software ab.

Jochen

Und als Mittel, um das zu erreichen,

Jochen

könnte man Dependency Injection zum Beispiel verwenden.

Jochen

aber das muss man ja auch nicht automatisch, also Dependency

Jochen

Injection oder

Jochen

Dependency Injection Frameworks,

Jochen

da wird das ja quasi

Jochen

so ein bisschen automatisiert.

Jochen

Man kann das ja aber auch manuell

Jochen

machen. Also manuell heißt das

Jochen

eigentlich, du machst das so, dass du

Jochen

hast halt dann

Jochen

quasi Schnittstellen oder irgendwelche abstrakten

Jochen

Interfaces, von denen du

Jochen

halt, die du halt sagst, okay, das ist halt

Jochen

das, was hier, dir wird zum Beispiel

Jochen

so eine

Jochen

in eine Datenbank

Jochen

ein Repository.

Jochen

Das sagt gar nicht, was das für eine Datenbank

Jochen

ist, sondern wird halt reingereicht,

Jochen

dass es bestimmte Methoden

Jochen

hat und eine bestimmte Schnittstelle hat.

Jochen

Also quasi Abstract-Base-Class mit

Dominik

Methoden zu implementieren,

Dominik

die man dann verwenden muss als

Dominik

Injection und die man dann, wo dann

Dominik

klar ist, okay, das muss jetzt so und so implementiert sein,

Dominik

egal wie du das löst, ist mir wurscht, aber Hauptsache, du stellst

Dominik

diese Interfaces für mich bereit,

Dominik

die benutze ich dann einfach und Input, Output sind vordefiniert.

Jochen

Und man dependet dann eben auf diese abstrakte

Jochen

Schnittstelle und nicht auf eine konkrete

Jochen

Implementation. Das habe ich tatsächlich auch schon mal

Jochen

gemacht. Ja, das ist ja

Jochen

schon irgendwie so richtig, ist doch für Architektur.

Jochen

Ja, genau. Und dann kannst du mich jetzt

Jochen

Architekt nennen. Ja, ich glaube, das darfst

Jochen

nicht jeder. Das ist gar kein Problem.

Jochen

Hast du ja alles schon gesehen, welche Leute sich Architekt genannt haben.

Jochen

Ja, Informatiker glaube ich auch nicht.

Jochen

Ich glaube, du darfst dich nicht

Jochen

Diplom-Informatiker nennen, aber

Jochen

Informatiker ist...

Jochen

Ja, ist auch wurscht.

Jochen

Genau.

Jochen

Jedenfalls, wenn du halt auf diese

Jochen

Abstraktionen dependest und nicht

Jochen

auf irgendwas Konkretes, dann kannst du halt das,

Jochen

die konkrete Implementation

Jochen

dieser Schnittstelle halt

Jochen

austauschen. Wenn du ein Repository hast, das halt

Jochen

irgendwie SQL-Alchemy war, kannst du sagen, okay, ich nehme

Jochen

jetzt ein Django-Repository

Jochen

stattdessen und dann merkt deine

Jochen

Applikation gar nicht, dass das geändert wurde.

Jochen

Der Nachteil ist

Jochen

halt irgendwie Django-ORM und so, das ist ja schon

Jochen

nett, du sparst ja halt viel Arbeit.

Dominik

Du musst halt dann nochmal selber bauen, die ganzen Methoden,

Dominik

die es da halt gibt quasi. Und dann halt quasi,

Dominik

du musst einer die abstrakte Klasse bauen, die musst du dann

Dominik

für deine Sache implementieren.

Dominik

Wenn du das mit dem Django-ORM nutzen willst, dann musst du quasi den Händler

Dominik

dafür schreiben für deine abstrakte Klasse, die dann

Dominik

den Django-ORM benutzt, damit die Methoden,

Dominik

die du dir bereitstellen willst, auch dann darüber gehen.

Dominik

Ja, also sagen wir mal so, du verlierst halt

Jochen

einen Großteil der Gründe, warum man

Jochen

jetzt... Convenience. Der Convenience,

Jochen

den verlierst du tatsächlich, das ist halt so.

Jochen

Dadurch, dass du halt

Jochen

Django austauschbar machst oder Fast-API

Jochen

austauschbar machst, ich habe das

Jochen

überlegt, zum Spaß könnte man eigentlich

Jochen

noch einen Flask, irgendwie Entrypoint

Jochen

davor hängen, sozusagen, wenn ich damit

Jochen

fertig sein sollte. Und das wäre praktisch

Jochen

kein Problem, das zu machen. Ich könnte halt

Jochen

Flask gegen Fast API austauschen oder umgekehrt

Jochen

oder Django, das wäre alles kein großes Problem.

Jochen

Aber man hat halt auch die ganzen Vorteile dann nicht mehr.

Jochen

Das ist halt der Nachteil.

Jochen

Aber, ja,

Jochen

ich wollte es einfach mal ausprobieren, deswegen habe ich da so ein bisschen

Jochen

mit angefangen. Und,

Jochen

ja,

Jochen

aber man sollte sich halt,

Jochen

wenn man jetzt ihm

Jochen

diesen Weg geht und sagt,

Jochen

ich nehme einfach ein Framework, dann ist alles schnell.

Jochen

Ich wusste, dass man das Software-Architektur

Dominik

nennt und so ein bisschen Hochtraben

Dominik

überlegt.

Dominik

Ja, aber man muss halt

Dominik

entsprechend verfolgen. Ja, abstrakte Infrafaces

Dominik

bauen, damit man so ein bisschen die

Dominik

Dependency-Injection auslagern kann

Dominik

und damit man reduziert die Abhängigkeit

Dominik

in seine eigenen

Dominik

Codes von anderen Dingen

Dominik

und die einfach austauschen kann. Also dieses Pattern

Dominik

der Dependency-Injection in diesem Fall, mit diesem abstrakten

Dominik

Ansatz, ist glaube ich eine richtig gute Idee,

Dominik

wenn man Skalierung möchte in irgendwann

Jochen

Ja, es hat halt auch so Vorteile. Also es hat halt den Vorteil, dass du dann eben flexibel diese Sachen aushauschen kannst und so und dann halt nicht davon abhängst, dass wenn irgendeiner von deinen Defenses sich nicht so gut weißt und du willst was anderes machen, dann kannst du das halt tun.

Jochen

Auf der anderen Seite ist es halt, wenn du weißt, dass du das nie musst und dass es auch egal ist, also wenn du zum Beispiel eben klassische Crud-Geschichte hast, die relativ einfach ist, dann macht das keinen Sinn, da viel Architektur zu machen, weil das ist sowieso egal.

Jochen

genau, ich mache es jetzt auch nicht, weil es nötig ist, sondern einfach

Jochen

nur, um zu verstehen, wie das alles funktioniert.

Dominik

Ich habe genug Zeit und mache da so schöne

Dominik

Sachen.

Jochen

Genau, ich mache das nur, weil es Spaß macht.

Jochen

Das ist auch ein Selbstzweck.

Jochen

Ja, vielleicht noch erzählen

Jochen

wollte, dass, weil

Jochen

es tut mir gerade so, da ich

Jochen

immer so viel Webentwicklung mache, fehlt mir

Jochen

halt dieser ganze Machine Learning Teil

Jochen

so ein bisschen. Ich bin da momentan auch nicht

Jochen

so richtig auf dem Laufenden. Ich habe letztens wieder

Jochen

einen Podcast gehört, da war so, oh krass, was da

Jochen

alles so passiert, da wusste ich

Jochen

ja gar nichts von, also

Jochen

ich kann auch sagen, dass ich jetzt

Jochen

ein bisschen Unsinn erzähle, weil ich da nicht mehr so richtig drinstecke,

Jochen

aber vielleicht ist das ja interessant, also mich hat es auf jeden Fall überrascht.

Jochen

Also einmal

Jochen

gibt es halt jetzt die Bestrebung, also

Jochen

das kennst du ja wahrscheinlich auch, es gibt so große Modelle,

Jochen

die trainiert werden, auf irgendwie

Jochen

self-supervised trainiert werden, auf quasi

Jochen

im Internet zum Beispiel, Language-Modelle gibt es da,

Jochen

diese GPT-3

Jochen

und so was, ja.

Jochen

Und

Jochen

die machen ja alles irgendwie so ein bisschen

Jochen

besser, wenn man jetzt irgendwie die verwendet

Jochen

und

Jochen

dann sozusagen

Jochen

das eigene Problem darauf

Jochen

feintunt irgendwie.

Jochen

Und das dachte ich auch immer so,

Jochen

das ist der Hauptvorteil, den man da hat,

Jochen

wenn man den Kram verwendet, aber tatsächlich

Jochen

können die halt noch eine ganze Menge mehr und das war mir

Jochen

so gar nicht so richtig klar.

Jochen

Zum Beispiel bei GPT-3

Jochen

ist es halt so, du kannst halt auch so Dinge

Jochen

machen wie Zero-Shot-Learning oder

Jochen

Few-Shot-Learning, also gar nicht irgendwie, du feintunst es

Jochen

nicht mit ein paar hunderttausend, was auch immer

Jochen

Beispielen, sondern

Jochen

du sagst zum Beispiel GPT-3 einfach so

Jochen

irgendwie, dein Job ist jetzt

Jochen

Übersätze von Englisch nach Deutsch. Und dann

Jochen

tut es das einfach so, ohne dass du ihm irgendwelche

Jochen

Trainingsbeispiele gezeigt hast. Oder du

Jochen

sagst ihm, dein Job ist jetzt

Jochen

Übersätze von Englisch nach Deutsch und

Jochen

gibst ihm halt noch drei, vier Beispiele.

Jochen

Und dann geht das auch schon ganz gut.

Jochen

Und das ist halt schon krass.

Jochen

Und für viele andere

Jochen

Tasks geht das auch. Ich glaube, da gibt es dann auch wieder die Frage,

Jochen

wie man das nennt, dann Instruction-Based

Jochen

Learning oder Zero-Shot Learning

Dominik

oder so. Die KI schon Conscious

Dominik

ungefähr, ja. Ja,

Dominik

das weiß ich nicht, aber

Jochen

es ist auf jeden Fall beeindruckend, was damit geht

Jochen

und es gab dann halt so, tatsächlich,

Jochen

das wusste ich überhaupt nicht, dass das existiert,

Jochen

was dann Leute, die dann meinten,

Jochen

also, es gibt inzwischen so

Jochen

den Job quasi mehr oder weniger von Leuten,

Jochen

die sich halt überlegen, wie sie

Jochen

Anfragen an das Modell formulieren, dass da irgendwas,

Jochen

was sie dann hinterher verwerten können, dabei rauskommt, weil man muss

Jochen

da auch so ein bisschen aufpassen und rumtricksen

Jochen

und welche Beispiele gibt man dann, um das halt noch ein bisschen

Jochen

zu verbessern. Und da kann man

Jochen

halt solche, diese großen Modelle wohl

Jochen

dazu bewegen, Dinge zu tun,

Jochen

die ganz erschaunlich sind.

Dominik

Genau, beim Co-Pilot ist das auch so ein bisschen so.

Dominik

Co-Pilot ist auch so, ja.

Dominik

Gute Beispiele gibt es, also gute Methoden und so, gute Namen,

Dominik

gute Argumente, gute Docs, lernt er sehr gut

Dominik

draus. Also, wenn man das in einem Projekt mal so konstant hat,

Dominik

da ist es echt Gold wert.

Dominik

Ja, genau. Und

Jochen

ja, habe ich jetzt auch letztens gehört,

Jochen

genau, ist die Frage, wie nennt man

Jochen

das jetzt eigentlich? Weil all die

Jochen

Sachen, wie man das früher genannt hat, das trifft es eigentlich nicht.

Jochen

so Pre-Train-Modelle, das

Jochen

klingt irgendwie so ein bisschen, als wäre dann schon alles

Jochen

passiert,

Jochen

aber das trifft's ja nicht,

Jochen

weil man muss ja jetzt mit dem Ding noch irgendwie so lange

Jochen

interagieren, bis man das dazu gekriegt hat, dass das macht, was man

Jochen

eigentlich möchte, also

Jochen

einfach nur

Jochen

was waren noch die,

Jochen

Self-Supervised ist halt auch nicht so ganz richtig, weil es ist

Jochen

nicht immer Self-Supervised. Wir müssen dazu auch noch

Dominik

eine Machine Learning-Folge machen, glaube ich, das hört sich sehr interessant an.

Jochen

Ja, aber da brauchen wir auch jemanden, der sich damit

Jochen

wirklich auskennt, nicht so der

Jochen

ein paar Bauchklassen gehört hat, wie ich.

Jochen

Und

Jochen

also unklar, es gab jetzt den Vorschlag,

Jochen

glaube ich, von Stanford oder so,

Jochen

wo sie gesagt haben, lass uns die Dinger doch

Jochen

Foundation Models nennen.

Jochen

Weil das macht das ein bisschen

Jochen

klarer, weil wir wissen auch nicht so genau,

Jochen

wie das jetzt, es wird halt auch

Jochen

für Bilder gibt es das noch nicht so richtig, aber es sieht

Jochen

so aus, als ob das jetzt auch

Jochen

in die Richtung läuft, dass man das irgendwann mit Bildern

Jochen

und auch vielleicht mit Videos machen kann und dann

Jochen

werden da auch mal sehr

Jochen

interessante Sachen gehen.

Jochen

und vielleicht ist es eben auch nicht nur

Jochen

selbstsupervised, vielleicht kann man auch irgendwie bei ImageNet

Jochen

oder so hat man ja rein supervised

Jochen

irgendwie sozusagen, kann man ja auch benutzen

Jochen

aber wir haben auf jeden Fall

Jochen

irgendwie so eine Klasse von Modellen, die sind sehr groß und mit denen

Jochen

kann man irgendwie interessante Dinge tun und das ist so ein bisschen unklar

Jochen

aber es sind irgendwie die

Jochen

Foundation für alle möglichen anderen Dinge, die man

Jochen

damit macht, also lass uns die doch Foundation Models nennen

Jochen

und sozusagen da irgendwie die ganzen

Jochen

Themen, die halt jetzt da dran hängen

Jochen

halt irgendwie mit

Jochen

mit Abflussstücken

Jochen

Und die Idee fand ich eigentlich gar nicht so schlecht.

Jochen

Ich bin mal gespannt, ob sich das durchsetzt.

Jochen

Ja, und

Jochen

genau. Ja, und dann

Jochen

ist es halt so, dass auch der

Jochen

Fortschritt in dem ganzen Deep Learning-Bereich

Jochen

war in letzter Zeit so stark.

Jochen

Das konsolidiert sich jetzt auch alles so ein bisschen.

Jochen

Finde ich auch ziemlich

Jochen

cool. Da gibt es halt irgendwie

Jochen

Leute, die auf

Jochen

GitHub irgendwie

Jochen

jetzt die ganzen Sachen polieren.

Jochen

Also das hatte ich früher auch mal so, wenn man sich jetzt anguckt,

Jochen

diese ganzen Leute, die in diesem

Jochen

Forschungsumfeld tätig sind, also wenn man sich

Jochen

den Code anguckt,

Jochen

ist halt oft

Jochen

theoretisch

Jochen

sehr avanciert und irgendwie

Jochen

Leute machen sich da viele Gedanken und so,

Jochen

sind sehr kreativ und

Jochen

machen irgendwie krasse Mathematik,

Jochen

aber irgendwie jetzt so den Code, den sie

Jochen

schreiben, ist manchmal schon so ein bisschen, also da geht

Jochen

auf jeden Fall noch was.

Jochen

Das ist jetzt lieb ausgedrückt. Ja, ich meine, klar,

Jochen

man kann ja auch nicht in allem gut sein, das ist halt irgendwie so,

Jochen

man muss sich auf irgendwas beschränken

Jochen

und aber da ist auf jeden Fall noch nicht

Jochen

so das Ende der Fahnenstange erreicht und

Jochen

was ich jetzt interessant fand, ist

Jochen

dass halt da jetzt Leute gibt, die

Jochen

aus dem Softwareentwicklungsbereich kommen,

Jochen

die sich das angucken und sagen, das ist ja, da kann man

Jochen

ja noch was machen und das hat

Jochen

jetzt wieder Einfluss auf die Forschung.

Jochen

Zum Beispiel eben aus der

Jochen

Kegel-Ecke kommen da einige,

Jochen

also Competitive Machine Learning

Jochen

oder halt auch aus der Industrie.

Jochen

Es gibt da zum Beispiel einen, Ross Whiteman,

Jochen

der

Jochen

sich diese ganzen Standard-Image-Modelle

Jochen

mal nochmal angeguckt hat

Jochen

und der

Jochen

dann im Wesentlichen rausgefunden hat,

Jochen

so, naja,

Jochen

also das, was ihr sagt, also

Jochen

der State-of-the-Art sozusagen

Jochen

für den Score auf bestimmten Problemen,

Jochen

jetzt nehmen wir ImageNet oder so,

Jochen

der

Jochen

wurde ja ermittelt

Jochen

für bestimmte Modelle vor ein paar Jahren.

Jochen

So,

Jochen

inzwischen hat es aber nicht nur Fortschritte

Jochen

bei den Modellen gegeben, also wie ist die Architektur der Modelle

Jochen

oder so, sondern halt auch bei den, ja,

Jochen

das ist aber, das spielt alles nicht so eine große

Jochen

Rolle, weil man kann eh nur kleine Bilder nehmen,

Jochen

weil irgendwie die Datenmengen halt sonst

Jochen

irgendwie schwierig für die Modelle werden,

Jochen

aber, nee, wo sich

Jochen

was getan hat, ist zum Beispiel sowas wie,

Jochen

wie trainiert man die Dinger eigentlich, also

Jochen

wie sind die Hyperparameter, mit

Jochen

denen man, die man

Jochen

benutzt zum Trainieren, wie,

Jochen

da gibt es halt auch eine Menge Zeugs.

Dominik

Es klingt wirklich so, also das ist ja super interessant

Dominik

alles, aber ich glaube, wir sind jetzt in der,

Dominik

so oft hin und her gesprungen, dass wir da

Dominik

unbedingt nochmal genauer drüber reden müssen in einer eigenen

Dominik

Episode, weil das, ja,

Dominik

ich finde es sehr spannend und ich glaube,

Dominik

das war aber komplett off-topic. Ich glaube, die Leute, die vorher

Dominik

das interessant fanden bei CSS, waren jetzt bei Machine Learning

Dominik

nicht mehr dabei und andersrum waren die

Dominik

wirklich gespannt.

Dominik

Ja, wir machen auf jeden Fall noch eine Episode

Dominik

dazu, das ist versprochen. Ihr seht, Jochen ist ja auch sehr

Dominik

belesen und ich finde das

Dominik

auch super interessant. Ich finde das super interessant.

Jochen

Vielleicht nochmal kurz zum Abschluss zu bringen. Also es ist auf jeden Fall

Jochen

so, dass jetzt, dass man sagt, dass der

Jochen

quasi gedacht hat, also wenn man jetzt die ganzen

Jochen

Fortschritte, die es in anderen Bereichen gibt, jetzt nochmal mit

Jochen

den alten Modellen zusammennimmt, dann stimmt

Jochen

die Baseline nicht mehr. Es ist halt nicht so,

Jochen

dass die Modelle von damals schlecht

Jochen

wären. Es ist nur so, dass die Methoden, mit denen

Jochen

wir die trainiert haben damals, sind halt vielleicht nicht so gut gewesen.

Jochen

Wenn wir die heute mit den besseren Methoden trainieren,

Jochen

dann upsala, für manche Probleme sind die doch

Jochen

wieder state of the art.

Jochen

Und dann, ja,

Jochen

also sehr, sehr

Jochen

coole Sachen und ja,

Jochen

da gibt es viel zu erzählen.

Jochen

Ja.

Dominik

Ja, ich glaube, dann haben wir jetzt

Dominik

quasi, das war das letzte Thema, glaube ich, was auf deiner Liste

Dominik

stand, was du noch...

Dominik

Ja, ich glaube, wir haben

Dominik

heute genug Kuddelmuddel-Salat

Dominik

aufgetischt. Ja gut, alles klar.

Dominik

Genau, ja, ich weiß nicht,

Jochen

jetzt haben wir das Problem,

Jochen

aber jetzt bist du dran, jetzt muss ich erst mal meinen Pick wieder

Jochen

nachgucken, den du mir ja versaut hast.

Jochen

Was würdest du denn picken?

Dominik

Ich muss was picken, in dieser Folge schon wieder.

Dominik

Ich weiß nicht, wo könntest du?

Dominik

Ja, ich picke Critical Role.

Dominik

Das ist eine wunderschöne Serie, die auf

Dominik

Prime läuft, über D&D.

Dominik

Falls jemand

Dominik

sich für D&D interessiert, es gibt ein

Dominik

Vodcast von

Dominik

Matthew Mercer dazu,

Dominik

der Critical Role heißt und

Dominik

der hat eine Kampagne mit seinen SpielerInnen

Dominik

gespielt,

Dominik

Vox Machina und diese Vox Machina

Dominik

ist jetzt auf Prime Machine.

Dominik

Es war eigentlich

Dominik

gar nicht geplant, als Fernsehserie natürlich,

Dominik

aber irgendwer sagt, ach, total toll,

Dominik

was wir hier machen, also das sind alles so Voice Actors und so,

Dominik

macht total Spaß, eigentlich sollte

Dominik

mal jemand einen Comic draus machen, dann hat irgendwer gesagt,

Dominik

ach, naja, kein Comic, ja, vielleicht doch,

Dominik

ja, da brauchen wir doch irgendwie Geld für, ja, dann lass doch einen Kickstarter

Dominik

machen, meint dann irgendwer, dann sagt er, ach,

Dominik

hat irgendwer einen Kickstarter gemacht, 48 Stunden

Dominik

später irgendwie 11 Millionen Dollar oder so eingenommen,

Dominik

dann haben die gesagt, so, hey, yo, wir machen

Dominik

doch so eine Serie

Dominik

und dann hat Amazon gesagt, oh, wir kaufen's

Dominik

und hat direkt die Staffeln da veröffentlicht

Dominik

und die laufen jetzt tatsächlich auf Prime,

Dominik

glaube ich, die erste Staffel gerade rum und das ist D&D,

Dominik

Eine Abenteurergruppe, die es live gab quasi,

Dominik

gibt es auf YouTube, kann man die echten Abenteuer nachholen.

Dominik

Also eine Folge ist, glaube ich, so dreieinhalb

Dominik

bis vier Stunden oder sowas und die haben, glaube ich,

Dominik

150 Sessions abgehalten für diese Kampagne.

Dominik

Es ist also ein bisschen verkürzt

Dominik

dargestellt, aber

Dominik

ja.

Dominik

Wo wir eben bei

Dominik

Jackshaving waren, was man alles

Dominik

verbessern und optimieren kann und wie tief das

Dominik

Material jeweils ist. Aber egal, nur ein kleines

Dominik

bisschen was Privates.

Dominik

Jochen, dein Pick?

Dominik

Ja, ich habe jetzt versucht, den

Jochen

gerade zu finden. Ich habe ihn nicht mehr gefunden.

Jochen

Aber ich kann ihn beschreiben und ich

Jochen

reiche den Link dann in den Show Notes nach. Es gibt

Jochen

Rich, also es gibt ja

Jochen

Typer, das macht auch schon eine Menge

Jochen

so Command-Line-Geschichten. Es basiert

Jochen

aber auch auf Click. Genau. Und es gibt

Jochen

jetzt auch irgendwie Rich-Click oder ich weiß jetzt eben nicht,

Jochen

wie man es hinschreibt, aber wo man

Jochen

sozusagen Click und Rich

Jochen

ganz nett kombiniert hat und das sah

Jochen

sehr gut aus und das war dann mein Pick.

Jochen

Interessant. Cool.

Dominik

Ja, super. Dann vielen Dank, dass ihr wieder eingeschaltet

Dominik

habt. Bleibt uns gewogen.

Dominik

Ich hoffe, ich darf diese Episode nicht

Dominik

ganz so verstören wie uns.

Dominik

Und schreibt beim nächsten Mal wieder ein.

Dominik

Und ja, wie gesagt, schreibt uns gerne

Dominik

alles, was euch beschäftigt an

Dominik

hallo-at-pyson-podcast.de

Dominik

Bis zum nächsten Mal.

Dominik

Bis dann. Tschüss.