Transkript: Python 3.11 und Listen

· Zurück zur Episode

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

Ja, hallo liebe Hörer und Hörer.

Dominik

Willkommen beim Python Podcast, Episode 46 heute.

Dominik

Heute soll es bei uns gehen um Python 3.111 und um Listen.

Johannes ist wieder dabei.

Hi Johannes.

Hallo Johan.

Hallo Jochen.

Jochen

Ja, herzlich willkommen, Dominik.

Hi.

Dominik

Ja, wir haben an ein bisschen teilgelassen mit dieser Episode.

Dominik

Manchmal ist ein bisschen viel zu tun, gerade in dieser dunklen Jahreszeit.

Ja.

Dominik

Ja, aber Python 3.11, ich würde sagen, mit den News fangen wir heute mal wieder an.

Genau, also ja.

Wie fandet ihr das für dich?

Wie fandet ihr Python 311?

Habt ihr schon ausprobiert?

Jochen

Ja, ich verwende das.

Jochen

Ich verwende das tatsächlich schon.

Jochen

Und zwar auch so produktiv und so und war überraschend wenig Stress irgendwie, das Update diesmal.

Jochen

Und für die meisten Sachen, die ich so verwende, gab es auch schon Reels.

Jochen

Also musste nicht mal, normalerweise muss man am Anfang immer irgendwie alle Dinge dann neu kompilieren und so.

Jochen

Das war jetzt, ist mir gar nicht aufgefallen, dass das irgendwie jetzt

schon einen Tag

länger gewartet als sonst.

Jochen

Vielleicht habe ich auch einen Tag länger gemacht, das kann auch sein, ich weiß es nicht mehr so genau.

Jochen

Aber nö, das war alles sehr, sehr entspannt bei mir.

Ich benutze das noch nicht.

Johannes

Warum muss man das denn jetzt?

Johannes

Was lohnt sich denn da jetzt?

Dominik

Die ganz tollen Tracebacks, Janet.

Ja, also das würde ich auch sagen.

Johannes

Die waren noch schon immer super gut.

Jochen

Naja, sind aber jetzt nochmal deutlich besser geworden.

Dominik

Tatsächlich zeigen dir jetzt wirklich an, an welcher Stelle der Code kaputt gegangen ist.

Jochen

Ja, also das ist etwas, was ich jetzt nach wenigen Wochen Benutzung auch schon, das ist halt das, was.

Wie du hastbacks

Jochen, wenn du Code hast?

Jochen

Ja, ja, ja, ja.

Jochen

Ab und zu raise ich mal irgendwas, einfach nur so, weil es so gut aussieht.

Jochen

Und nee, aber das ist mir auch schon, also das möchte ich nicht mehr missen.

Jochen

Das ist halt wirklich, es zeigt einem relativ direkt, wo was kaputt ist und genau, das ist wirklich sehr hilfreich.

Dominik

Und kombiniert so mit Ridge dann zum Beispiel, Ridge Race-Backs, sehr toll.

Dominik

Pip kann auch Rich übrigens, kennt ihr das?

Dominik

Wenn Rich installiert ist, nutzt Pip automatisch Ridge.

Jochen

Ja, und dann hat man so farbige Progress Bars und sowas.

Wunderbar.

Ja, ja.

Alles nur Eye-Candy.

Jochen

Ja, aber es sieht schon alles besser

aus, muss man

Jochen

sagen, als früher.

Johannes

Mussten wir ja unsere Pakete mit der Brieftaube geschickt bekommen.

Ja, Stil ist ja alles.

Johannes

Wenn wir das nicht gebraucht haben, dann kriegen die Kinder das von heute auch nicht.

Dominik

Jahren berichtete von C und so und wie furchtbar das alles war.

Johannes

Fand ich auch das bei C, glaube ich, heute immer noch so völlig.

Ja, es war tatsächlich wirklich verbessert.

Dominik

Aber das ist eine gute Überleitung, weil einer der Gründe, warum Python 3.11 jetzt so anders ist oder eine Neuerung, ist vielleicht, dass an der Cunterbau etwas gearbeitet worden ist.

Jochen

Naja, es ist ja das Release vom C-Python-Interpretar, aber genau, also ja, es ist halt, da ist einiges.

Jochen

Also es ist echt viel passiert und es ist schneller.

Johannes

Das ist immer der Grund, warum man Leuten empfehlt, auf neue Pythons zu gehen.

Das ist wirklich viel, viel schneller.

Dominik

Also nicht in überall, aber in vielen Anwendungen ist wirklich deutlich, deutlich performanter geworden.

Ja.

Dominik

So viel 20, 25 Prozent munkelt man.

Jochen

Ja, ja.

Jochen

Also je nach Anwendung kommt es halt darauf an, also es kann auch deutlich mehr sein noch.

Jochen

Aber es ist insgesamt über alles wahrscheinlich so 25% schneller ungefähr.

Jochen

Und das ist auch nochmal ein gutes Stückchen mehr als die Verbesserungen vorher.

Jochen

Also es wird ja immer ein bisschen schneller von Version zu Version und diesmal ist es aber ein größerer Sprung als sozusagen normalerweise oder bisher.

Jochen

Ja, was halt vor allen Dingen daran liegt, dass jetzt halt eine Menge Leute tatsächlich dediziert an diesem Problem arbeiten.

Jochen

Und ja, da der Release-Manager von Python 3.111 irgendwie Pablo Galindo Salgado, der meinte auch so, also irgendwie ist das irgendwie deutlich stressiger geworden mit dem Releasen oder das war halt deutlich stressiger als 3.10.

Jochen

Und einer der Gründe ist halt, dass jetzt halt sechs Leute Vollzeit irgendwie da an Features arbeiten und vorher hat da eigentlich niemand Vollzeit an neuen Features oder an Performance Verbesserungen gearbeitet.

Jochen

Tragisch.

Jochen

Und jetzt gibt es doch einige Leute, die da irgendwie viel Zeug reintun.

Jochen

Und ja, da hatten sie halt irgendwie enorme Probleme.

Jochen

Also das war auch sowas, also 31 war sehr, sehr schwer, irgendwie fertig zu kriegen wohl.

Jochen

Aber es hat dann doch am Schluss noch alles funktioniert.

Jochen

Aber sie mussten halt, also zum Beispiel ein großes Problem, das sie hatten, ist, dass sie hatten halt richtig fiese Bugs noch, bis, also so Release-Blocker-Bugs bis in den Release-Kandidaten noch mit drin.

Jochen

Und auch vor allen Dingen, also das Schlimme war halt, nach dem Punkt, wo man sagt, man gewährleistet Abi-Stabilität.

Jochen

Also, dass sich dieses Application Binary Interface nicht mehr ändert.

Jochen

Also dass sozusagen C-Funktionen ihre Signaturen nicht mehr ändern und so.

Jochen

Das garantiert man ab einem bestimmten Punkt, damit die Pakete, die man zu dem Zeitpunkt oder nach diesem Zeitpunkt halt gebaut hat, also Wheels, die man dann kompiliert hat, dass die noch auch mit der richtigen, mit dem richtigen Release funktionieren.

Jochen

Und das muss man halt früh genug machen, sonst hat man halt nicht genug fertig kompilierte Binaries, sonst ist es halt ein Problem.

Jochen

Das Problem ist aber, wenn man jetzt irgendwie dahinter, nachdem man diese Schwelle überschritten hat, dann noch Bugs findet, bei denen man gerne was ändern würde, dann geht das halt nicht mehr.

Jochen

Und da muss man halt teilweise sehr komplizierte Dinge tun, damit man das trotzdem fixen kann.

Jochen

Und solche Sachen sind halt leider passiert.

Jochen

Unter anderem sind halt solche Dinge und ja, weil halt, naja, es ist auch, was halt für diese Performance-Optimierungen verantwortlich ist, dass halt Dinge halt nicht mehr so gemacht werden, wie.

Jochen

Also sie werden eine Zeit lang, werden sie ganz normal so interpretiert, ja, Interpreter-Bytecode, so wie er normalerweise interpretiert wird.

Jochen

Und wenn das dann achtmal passiert ist oder so, dann sagt er halt, okay, jetzt schalte ich auf was anderes um.

Jochen

Ist mir das zu blöd, habe ich das achtmal gemacht, mach ich nicht auch mal.

Jochen

Und nimmt halt eine spezialisierte Version davon, die halt dann zum Beispiel Integer addiert oder Floats addiert oder das halt nicht mit Objekten macht, sondern direkt irgendwie auf dem Prozessor.

Jochen

Und das geht auch meistens gut, aber dann so, es gab es halt so fiese Bugs wie, naja, also das passiert zum Beispiel auch beim Attributakzess.

Jochen

Und dann manchmal ist es halt so, dann funktioniert das, die ersten acht Attributakzesse funktionieren halt.

Jochen

Und beim neunten Mal wird halt die Klassenvariable genommen, also wenn du zum Beispiel, es waren ja viele Leute, dass sie halt in der Klasse halt sozusagen die Parameter, die ein Objekt bekommt, definieren.

Jochen

Und wenn du dann eine Instanz, wenn du dann eine Instanz machst, instanzierst das Ding, dann überschreibst du das.

Jochen

Und die Instanzvariablen, also wenn Attribute an eine Instanz hängen, dann überschreiben die immer das, was an der Klasse dran steht, sodass es kein Problem ist.

Jochen

Und jetzt kam halt dann irgendwann so ein Bugreport rein und halt einer so, ha, irgendwie, also achtmal geht das gut und dann beim neunten Mal irgendwie.

Jochen

Achso, nee, das war nicht der Report.

Jochen

Der Report war irgendwo, komische Geschichte ist irgendwie nannen geworden und wo es nicht dann werden durfte und verseltsam ist.

Jochen

Und das hat irgendwie lange gedauert, um überhaupt rauszukriegen, was das Problem ist.

Jochen

Und das Problem war tatsächlich, dass halt beim neunten Mal wurde halt irgendwie die Klassenvariable genommen und nicht mehr die Instanzvariable, was halt nicht passieren darf, weil das irgendwie mit dieser Spezialisierung zusammenhing, dass man dann halt, dass er halt irgendwas direkt genommen wurde.

Dominik

Okay, hidden Fallbacks, hm, im Prinzip ist Better than Explicit, okay.

Jochen

Das ist natürlich total schrecklich, wenn man so einen Bug hat.

Jochen

Also einmal war es wohl irgendwie super schwierig, den zu finden und dann war es halt super schwierig, ihn zu fixen, ohne die C-AP hier nochmal anfassen zu müssen.

Jochen

Und naja, also alles ganz, ganz schrecklich.

Jochen

Ja, der hat es auf jeden Fall sehr gejammert.

Jochen

Dass das alles diesmal sehr, sehr, sehr schlimm gewesen wäre.

Jochen

Aber, naja, gut, es hat halt trotzdem funktioniert, also insofern.

Aber das ist so ein Problem, oder?

Johannes

Wenn so viele Leute an einer Software arbeiten, das dann halt irgendwie doch schwieriger ist oder stressiger oder so.

Ja.

Weil wenn nur zwei oder drei, ich glaube, da gibt es irgendwo so eine Grenze.

Johannes

Wenn nur zwei oder drei so zusammenarbeiten und man sich jeden Tag sieht, dann ist das auch nicht so wild, weil dann ist irgendwie das gesamte Wissen so verteilt, aber wenn es dann mehr Leute werden, dann ist einfach da so Sachen, die so ineinander greifen.

Johannes

Also das ist meine Erfahrung, ich weiß nicht, wie es euch da geht.

Jochen

Ja, ja, absolut.

Jochen

Also die Komplexität, auch wenn mehr Leute an einem Projekt sind, steigt nicht linear, sondern irgendwie bösartiger.

Exponentiell.

Jochen

Exponentiell weiß ich jetzt auch nicht.

Dominik

Aber Leute geht noch, oder?

Sechs, sieben geht.

Jochen

Und dann ist aber irgendwann.

Ja, da muss man dann schon Prozesse haben und so und genau drauf aufgehen.

Jochen

Und ganz schlimm wird es, und da, also ich würde mich dem Lager zuordnen, das sagt, also mehr als ein Team an der Software arbeiten, vielleicht sowieso keine so gute Idee.

Jochen

Also wenn man jetzt quasi aus dem Bereich, wo man noch ein Team haben kann, rauskommt, hat jetzt mehrere Teams, die an der, also da gibt es dann ja auch irgendwie diverse Dinge und aber ehrlich gesagt, das ist alles so schrecklich.

Jochen

Also ich weiß nicht, ob es sich überhaupt lohnt, in dem Bereich zu skalieren, weil wenn du halt ein gutes Team hast, das kleiner ist, dann kann das eigentlich aus meiner Perspektive fast immer schneller sein, als egal wie viele Leute du drauf wirfst, weil das kriegst du eh nicht mehr organisiert.

Jochen

Also, ja.

Jochen

Naja, keine Ahnung.

Dominik

Die optimale Teamgröße würdest du sagen, Jo.

Jochen

Da fünf oder sowas.

Ja, ja, ja.

Ich würde sagen vier.

Vier?

Warum vier?

Johannes

Weil fünf schon zu groß ist.

Johannes

Fünf ist ein großes Team schon.

Johannes

Vier ist ein mittleres Team, drei ist ein kleines Team, das ist super.

Johannes

Und alles über fünf ist nicht gut.

Johannes

Da musst du dann viel Management machen.

Johannes

Da brauchst du dann jemanden, der assistiert und jemanden, der koordiniert.

Johannes

Und dann gehst du schon in so.

Dominik

Ist bei dir bei den vier Leuten die Kommunikation mit dem Kunden mit drin, bei den vieren?

Dominik

Oder macht das noch jemand mit Managing Projekt irgendwas?

Johannes

Das kommt auf das Projekt an.

Wenn dann ein.

Johannes

Es gibt ja Projekte, die haben gar keinen Kunden in dem Sinne.

Zum Beispiel Python.

Johannes

Python hat ja keinen Kunden.

Johannes

Keiner, der sagt, ich habe aber das hier beauftragt und das, ja, ja, aber die Software-Community ist ja kein Problem.

Dominik

Naja, du musst ja auch eine Definition machen.

Dominik

Du hast ja auch irgendwie eine Product Ownership in gewisser Weise dann.

Naja.

Doch.

Du kannst machen, was du willst.

Johannes

Also die Community muss das halt annehmen.

Also ich weiß.

Jochen

Das ist ja ein schöner Fall eigentlich.

Jochen

Also ich meine, also ich würde ja denken, Produktmanagement ist halt Marketing.

Ja, so würde

Dominik

ich jetzt nicht sehen.

Dominik

Ich würde jetzt nicht Marketing gucken, es geht nur um die Kommunikationsstelle mit dem Kunden.

Dominik

Also also jemand, der quasi User-Stories baut und die koordiniert.

Johannes

Ja, aber

was soll das?

Jochen

Bei Python-Entwicklung brauchst du so einen Quatsch halt nicht.

Jochen

Also würde ich jetzt mal so sagen.

Jochen

Also so spontan.

Jochen

Also das machst du halt, wenn du ja, also, aber.

Johannes

Nee, aber das brauchst du dann schon zusätzlich.

Johannes

Wenn du einen Kunden hast und in so einer Situation bist, wo du einen Kunden hast, der spezifische Wünsche hat, dann brauchst du schon eine Rolle, die nicht nur Entwickler ist.

Jochen

Ja, ja, wenn du Kunden hast, klar.

Okay, ja.

Johannes

Und da brauchst du dann schon einen PO oder einen, keine Ahnung.

Ja, du brauchst halt jemanden,

Jochen

der, also vor allen Dingen, wenn die Entwickler auch nicht selber, die, also das ist halt immer das Ding, eben, es ist halt eine Marketingrolle und das ist halt, Produktmanager wäre halt aus meiner Sicht so ein Anwalt des Kunden.

Jochen

Das ist halt vor allen Dingen dann wichtig, wenn man selber als Entwickler das halt nicht verwendet und auch gar nicht verwenden kann.

Jochen

Und wenn es um irgendeine andere Geschichte geht, mit der man gar nichts zu tun hat, dann brauchst du jemanden, der diese Rolle einnimmt.

Jochen

Wenn ich irgendwas mache, was ich selber verwende, dann brauche ich das nicht.

Jochen

Dann kann ich das super selber machen.

Jochen

Da wäre, wenn mir dann jemand erzählt, wie ich das verwenden soll, fände ich komisch, weil ich meine,

wie kann das gehen.

Johannes

Celeber User Stories und ist die da in Tools Teams-Backlog.

Johannes

Und du darfst nur an den Sachen arbeiten, die gerade im aktuellen Sprint drin sind, Jochen.

Jochen

Ja, also weiß ich nicht.

Johannes

Doch, ich mache das auch für klar, für auch für meine privaten Projekte, natürlich.

Johannes

Auch für Skripte, so 100 Zeilen Skripte, erstmal eine User-Story geschrieben.

Erstmal ein Epic.

Ja.

Dominik

Aber hast doch die Accountability dann, die Responsibility Jochen.

Bist du auch selber für dich?

Ja.

Johannes

Kannst du dein Gehalt selber in Bonuspunkten ausbezahlen.

Jochen

Ja, ja, nee, das muss man da alles nicht machen zum Glück.

Jochen

Ja, aber also ja, ich meine, tatsächlich, das ist halt groß geworden und ja, wenn viele Leute daran entwickeln, ist halt, ist halt schwierig.

Jochen

Und sie hatten ja, es gab ja schon mal in Python 3.9 bzw.

Jochen

in 3.10 ist es dann halt aktiv geworden.

Jochen

Der Packparser ist halt ja auch die Interna, so quasi hat sich ja, also ein zentraler Teil von Python hat ist halt irgendwie komplett einmal irgendwie auf links gedreht worden.

Jochen

Das hat aber einfach so funktioniert.

Jochen

Es ist nicht irgendwie quasi so fies, äh, hat nicht so fiese Konsequenzen gehabt wie jetzt.

Jochen

Aber ich meine, manchmal hat man halt auch einfach Glück oder Pech, ne?

Jochen

Das kann natürlich auch sein.

Also das ist ja nicht so.

Das ist halt irgendwas ordentlich gemacht oder irgendwas übersehen, aber darauf kannst du nicht setzen.

Jochen

Nee, setzen kann man darauf nicht.

Jochen

Aber ja, also ich meine natürlich auch, wenn man mehrere Sachen gleichzeitig ändert, dann ist es halt so, dass die, dann hat man eine kombinatorische Explosion von irgendwie Möglichkeiten, wie es schief gehen kann und dann ist natürlich auch die Wahrscheinlichkeit einfach höher, dass es umgekracht.

Jochen

Ja.

Und diesmal ist es nicht so gut.

Johannes

Ich war mal in so einem Projekt und das war schon so ein bisschen verspätet und dann kam irgendwann der Projektmanager, der was nicht, Projekt oder Produkt oder was auch immer für den Manager.

Exakt.

Johannes

Also wir haben einen sehr engen Zeitplan, ab jetzt dürfen wir keine Fehler mehr machen.

Und unsere

Johannes

Reaktion war dann, ach so, ab jetzt.

Ab jetzt dürfen wir keine Fehler mehr machen.

Johannes

Na gut, dann machen wir das jetzt halt nicht mehr.

Immer wenn ich über die Schulter gucke, ist irgendwas kaputt, ja.

Johannes

Sobald der Manager wegguckt, fangen die Entwickler an, Lego zu spielen.

Und Fehler einzubauen.

Johannes

Oder Fehler darf man nicht sagen.

Man sagt ja Jobsicherheit.

Johannes

Ich baue Jobsicherheit in dieses Projekt.

Ja.

Das ist genau wie so eine Schätzung von so einem Software-Projekt.

Man denkst so, hm, was brauchst du denn dafür?

Zwei Tage?

Was kommuniziere ich denn jetzt?

Jochen

Nee, das

ist alles,

Jochen

also das, ja, das ist auch so eine Schätzung, ist auch so ein schönes Thema.

Jochen

Also das ist halt auch, ja, also aus, also, hm, soll ich das wirklich sagen?

Jochen

Wird das nochmal eine andere Episode, wird das eine so irgendwie, ja.

Haben wir da nicht schon mal drüber gesprochen?

Jochen

Ja, wir haben bestimmt über solche Sachen schon häufiger gesprochen.

Jochen

Aber ich bin auch irgendwie der Stimmung.

Jochen

Also wir callen Bullshit auf alle möglichen etablierten Businessprozesse, aber ja, dieses mit dem Schätzen ist einfach nur totaler Quark aus meiner Perspektive.

Jochen

Also niemand kann das schätzen.

Jochen

Wir haben da genug Erfahrung, um es inzwischen relativ sicher sagen zu können, dass man das nicht schätzen kann.

Jochen

Es geht einfach nicht.

Jochen

Und wenn man Leute dazu zwingt, dass sie das tun, dann passieren halt Dinge, die man nicht haben will.

Jochen

Nämlich zum Beispiel, dann machen sie halt nur noch Sachen, die man gut schätzen kann, zum Beispiel.

Jochen

Ja, was

halt irgendwie.

Jochen

Ja, aber das ist ja nicht.

Jochen

Du willst ja eigentlich quasi sozusagen, eben aus der Business-Perspektive, möchtest du haben, die Leute sollen an dem Kram arbeiten, der den meisten Wert bringt.

Jochen

Irgendwie.

Jochen

Sozusagen Wert, wie auch immer man das definiert, aber man hat ja irgendeine Vorstellung von dem, was Wert bringt,

weil sonst würde man was.

Dominik

Aber sie werden dann irgendwelche Aufgaben und wollen, dass die Aufgaben für dich gestellt sind und irgendwie so.

Jochen

Genau, aber das, was du eigentlich haben willst, ist, dass die Leute etwas produzieren, was für dich einen Wert hat.

Jochen

So, diesen Wert willst du eigentlich optimieren.

Jochen

Wenn den Leuten jetzt sagst, ihr müsst mir aber vorher sagen, wie lange das dauert, und das bei denen dazu führt, dass wenn sie das sich verschätzen, du ihnen auf die Finger haust, die dafür bestraft werden und belohnt werden dafür, dass wenn das stimmt, dann machen sie nur noch Sachen, die man gut

schätzen kann.

Und vor allen Dingen,

Dominik

was du dann halt verstanden hast, wenn du weißt, was Informationsasymmetrie ist und dann verstehst du auf welcher Seite welche Informations liegt und wer da was machen kann, ja bitte, Entschuldigung.

Jochen

Ja, das führt halt dazu, dass

Jochen

sein Wert nicht mehr maximiert wird, sondern dann wird halt maximiert auf irgendwie langweiligen Scheiß, den man halt schön schätzen kann.

Jochen

Und das ist

ja gar nicht das, was man vorher schon mal gemacht hat.

Dominik

Nee, ich würde anders maximieren.

Ich würde auf das maximal erträgliche Zeitbudget maximieren und dann halt gucken, dass ich halt das dann trotzdem so schnell mache, wie ich das für richtig halte und dann den Rest der Zeit halt nicht signalisiere, sondern schön meine Sachen machen kann, wie ich das für richtig halte.

Jochen

Ja, gut, aber ja, ich weiß nicht, aber das.

Dominik

Aussichts Perspektive ist das nicht so sinnvoll.

Dominik

Aus meiner Perspektive ist das schon gar nicht so schlecht.

Ja.

Das klappt nicht so.

Das ist ja immer

Jochen

ein anderer Fall.

Aber selbst

unter der

Jochen

Annahme, dass alle nicht, dass niemand versucht, das zu gamen, sondern dass alle sich so verhalten, wie das gedacht ist, funktioniert das mit dem Schätzen ja schon nicht.

Jochen

Und dann ist halt schon echt schlecht.

Jochen

Also wenn man jetzt noch mit zusätzlich annehmen und annimmt, die Leute sind bösartig, okay, dann weiß ich nicht, aber das ist ja nochmal ein anderes Problem.

Jochen

Aber selbst wenn sie sich alle gutartig verhalten und alle nur das Beste wollen, funktioniert das halt schon nicht mehr.

Dominik

Also die Frage ist halt ja schon, wenn du halt gemeinsam kooperativ irgendwann arbeiten willst, dann musst du ja quasi davon ausgehen, dass du Vertrauen in den Leuten entgegenbringen musst.

Ja, genau.

Dominik

Und dafür ist das ja schon irgendwie Quatsch, hinter Druck zu setzen.

Dominik

Und dann ist eigentlich die einzige Info, die man irgendwie geben kann, so ja, ist das jetzt eine Frage von Tagen oder von Jahren oder sowas.

Jochen

Ja, aber die Frage wäre auch, wofür willst du das wissen?

Jochen

Warum ist das so?

Jochen

Also ich meine, ich würde ja sagen, okay, manchmal kann es ja sein, dass

Dominik

das Make-Oby und sowas alles halt, ne?

Ja, aber.

Johannes

Da hast du ja auch oft viele Business-Sachen da, die da drin hängen.

Marketing und Fremdsysteme und Kundenkontakt und so.

Und dann musst du Sachen ankündigen und den Beispiel, am Ende können wir genau Jahresbudget und manchmal hast du auch gesetzliche Vorgaben.

Johannes

Ich arbeite jetzt in der Versicherungsbranche für die Versicherungsbranche und da gibt es jede Menge gesetzliche Vorgaben.

Könnt ihr euch gar nicht vorstellen, wie viele gesetzliche Vorgaben es da gibt.

Johannes

Und wir kommen jetzt ins Jahresendgeschäft.

Johannes

Das ist auch was, was mir bisher unbekannt war, weil die halt so eine Vermittlerstruktur haben und die haben halt Jahrespläne.

Johannes

Und weil es jetzt zum Ende des Jahres zugeht, müssen die jetzt alle noch ihren Plan erfüllen.

Johannes

Und deshalb ist im November und Dezember doppelt so viel Geschäft wie im Januar und Februar.

Und da muss man halt auch damit klarkommen.

Also da hängen ja schon Sachen dran.

Johannes

Also ich kann schon verstehen, dass du vorher wissen möchtest, wie viel das kostet, wenn du was kaufst und wie lange es dauert, wann du es kriegst.

Jochen

Ja, aber die Frage ist, wie viel dir das wert ist.

Jochen

Das wäre dann sozusagen die.

Dominik

Ich dachte, du magst Marketing nicht.

Jochen

Ja, ja, doch, ich mag es nicht.

Wie hoch ist

deine Schätzungsmarge?

Wie hoch ist dein Schätzungsfaktor?

Zwei oder drei?

Zwei bis

drei, irgendwie sowas, ja.

Ungefähr.

Ist doch normal, oder?

Und dann ist doch okay.

Jochen

Ja.

Dann kriegst du es auch hin in der Zeit.

Nee, ja, manchmal halt auch nicht.

Schätzst du Storypoints

oder Tage?

Jochen

Also, sagen wir so, Tage ist noch

Jochen

falscher als Storypoints, aber Storypoints sind

Johannes

zwei Storypoints.

Jochen

Storypoints sind alle auch schon falsch.

Du bist du eigentlich immer richtig?

Jochen

Ja, genau.

Jochen

Also ich fand, naja, gut, also ich weiß nicht, es ist halt alles sehr sinnlos.

Jochen

Und ich meine, die Alternative wäre, ich würde einfach die Alternative probieren.

Jochen

Die Alternative ist, man nimmt sich das Nächste, was halt irgendwie den höchsten Wert verspricht und arbeitet halt dran.

Jochen

Und wenn das halt so lange dauert, dann nimmt man halt was an, dann hat das nicht mehr den höchsten Wert, dann nimmt man was anderes, ja.

Jochen

Aber das vorher alles zu schätzen und dann zu priorisieren, also ich habe starke Zweifel daran, dass das irgendeinen, dass das

irgendwie was besser macht.

Das ist genau das, worum es halt gerade geht.

Dominik

Du fängst halt an, die Sachen dann untereinander zu gamen und zu arbitragieren und sowas.

Dominik

Und das ist halt das, was die dümmste Idee ist, die du machen kannst, wenn du vernünftiges Management machen willst mit Leuten, die motiviert, intrinsisch motiviert an Dingen arbeiten sollen oder wollen.

Dominik

Und das ist genau der entscheidende Punkt, wo ich auch sagen würde, dass das keine gute Idee ist zu machen.

Dominik

Auch das mit dem Tracking und so, das ist alles keine gute Idee.

Ja.

Ja, es

Dominik

gibt Leute, die verstehen das nicht, die meinen ja, die müssen aber.

Ja, und dann ist es nicht.

Jochen

Ich freue mich.

Jochen

Ja, ich meine, es gibt ja auch genug Beispiele, wo dann halt irgendwie nicht so tolle Sachen damit rauskommt.

Jochen

Ich freue mich dann immer über Leute, bei denen das dann doch funktioniert.

Jochen

Und die anderen, die meinen, dass das funktioniert und wenig von der Realität informiert werden, darüber, ob das jetzt dann, da freue ich mich auch drüber, weil irgendwie.

Dominik

Ja, das hat ja auch was mit Informationsademetrie zu tun.

Dominik

Die Frage ist also, ob du die Wahrheit überhaupt kennen kannst.

Ja.

Dominik

An der Stelle aus der jeweiligen Management-Perspektive oder so.

Das geht halt nicht.

Jochen

Richtig, das ist auch ein Riesenproblem und ich würde sagen, in vielen Sachen nicht gesehen habe, ja, nee, können sie nicht.

Dominik

Also du müsstest ja zum Beispiel haben, der richtig selber Kunden selber einschätzen kann, was überhaupt passiert ist.

Und sonst ist das gar nicht so notwendig.

Dominik

Der müsste halt die ganzen Commits lesen und dann verstehen, warum das wie so lange dauert hat.

Dominik

Der muss auch verstehen, dass, keine Ahnung, man manchmal zwei Tage lang nach einem fehlenden Punkt oder Komma oder Leerzeichen suchen muss, weil das irgendeinen blöden Bug an irgendeiner Stelle gibt, die man nicht erwartet hat.

Dominik

Und dass dafür bestimmte Sachen halt einfach schnell gehen, obwohl die total kompliziert aussehen.

Dominik

Das ist halt so, ja, der muss halt so ein Feeling haben.

Manchmal hat man ja auch die Inspiration, oder sowas zu machen.

Manche Sachen gehen schneller, obwohl sie kompliziert.

Ja, aber das ist das, was du willst.

Du willst diesen Flow haben.

Dominik

Und damit dieser Flow möglich ist, damit du, damit in diesen Flow reinkommt, dass du mal drei, vier, fünf, sechs, sieben, acht, neun, zehn Stunden einfach nur ballerst und dann ist was richtig geiles fertig.

Dominik

Dafür brauchst du danach die Tage auch ein bisschen mehr Ruhe.

Das kannst du nicht die ganze Zeit machen, das geht nicht.

Johannes

Wie können wir jetzt businessmäßig den Flow optimieren?

Oh je.

Ah, ich weiß es.

Wir brauchen einen Kickertisch in der Zeit.

Schon fertig.

Das war ja einfach.

Und einmal im Monat gibt es Pizza-Abendatte, bitte ist, die nach 20 Uhr noch da sind.

Ja.

Johannes

Eine Tischtennisplatte natürlich und einen Lauftreff.

Jochen

Naja.

Jochen

Tja, ja.

Jochen

Ach ja, man merkt das, ach, ist das bei euch auch so?

Jochen

Ich glaube, ich weiß, warum das jetzt gerade alles wieder so am Jahresende?

Jochen

Ihr habt da mehr Geschäft, ne?

Jochen

Ja, wir auch.

Jochen

Also hier ist gerade relativ stressig, weil es ist relativ viel Zeugs.

Jochen

Also ich meine, da kann man sich auch mal drüber freuen, wenn Leute irgendwie wollen, dass man Dinge für sie macht und so.

Jochen

Aber gut, ist eigentlich, eigentlich sehr gut.

Jochen

Aber es ist so zum Jahresende, es wird immer mehr irgendwie.

Jochen

Man hat immer so das Gefühl, so am Jahresende ist immer so ein bisschen voller irgendwie.

Dominik

Man muss ja noch halt irgendwie die Sachen noch durchkriegen, die man fürs Jahr geplant hat und gucken, ob wir

noch fertig werden.

Ja.

Dann muss er ja auch der Topern wieder ohne Überlegen und Projekt.

Einplanst.

Ja.

Dominik

Erstmal die Frage, kann man dann eine clevere Planung machen?

Dominik

Da sind wir jetzt nämlich genau wieder bei dem Punkt kann zu sagen, clevererweise, okay, wir machen sowas so, das muss ja eines Jahres fertig sein, dann muss man am Ende gucken, hat man ein bisschen geschludert, muss man noch ein bisschen antreiben oder sowas, ne?

Dominik

Aus der Management-Perspektive.

Ja, weiß ich nicht.

Jochen

Ich glaube, das geht alles nicht.

Glaube ich auch nicht.

Jochen

Aber auch etwas

geht es schon, oder?

Johannes

Also ich meine, Crunch-Time funktioniert schon eine Weile.

Dominik

Die Akkus leer sind halt, ne?

Genau.

Die Leute ausschmeißen neu in die Periode, wo es langsamer geht.

Ja, aber es ist auch nicht mehr.

Johannes

Qualität darf da auch nicht das Merkmal sein.

Das ist halt dann nur mehr gemacht.

Dominik

Ja, aber das ist ja, dann machst du billig und Crunch-Time und dann guckst du, dass die Produktivität dann immerhin so 60% ist, wärst du, du einfach gute Leute nimmst.

Dominik

Und es kostet aber trotzdem eher mehr.

Johannes

Ja, aber gute Leute sind zu recht.

Ja.

Also wir sind jetzt noch einen

Jochen

guten bereit werden für dich zu arbeiten.

Jochen

Schwierig.

Jochen

Also ja, nee, ist nicht so einfach.

Johannes

Die du bezahlen kannst damit.

Johannes

Die Zeit haben, die nicht schon woanders sind.

Das ist doch das Problem.

Die guten Leute sind immer belegt.

Johannes

Deshalb habe ich auch nie Zeit, Podcasts aufzunehmen.

Jetzt wisst ihr Bescheid.

Jochen

Ja, aber offenbar hat das Baltenprojekt ein paar Leute gefunden, die tatsächlich irgendwie dafür arbeiten wollen.

Jochen

Und die sind auch eigentlich alle ziemlich gut.

Jochen

Die haben dieses Problem irgendwie in den Griff gekriegt.

Jochen

Und ja, das hat eigentlich auch tatsächlich, also das ist ja sowieso eine Neuerung im Grunde, dass halt so viele, so viele Leute Vollzeit jetzt irgendwie daran arbeiten.

Jochen

Und ja, eigentlich hat es ja schon ganz gut funktioniert.

Jochen

Genau, also vielleicht gehen wir einfach nochmal durch die Dinger so durch, was da alles in neuen Sachen dazugekommen ist.

Jochen

Also, genau, wir hatten die Performanceverbesserung so ein bisschen, da können wir eigentlich nochmal ein bisschen ins Detail gehen, auch was da passiert ist.

Jochen

Aber halt dann die besseren Fehlermeldungen.

Jochen

Was es auch gibt, sind Exception Groups und Except-Sternen irgendwie.

Jochen

Das ist eine, das ist etwas.

Jochen

Also auf der einen Seite ist es krass, dass das jetzt erst da drin ist, sozusagen, weil erst jetzt hat man halt die Möglichkeit, bestimmte Sachen zu machen, wo man denkt so, oh, das ist aber ganz übel, wenn man das nicht machen kann.

Jochen

Und ja, es war einfach schon immer ganz übel.

Jochen

Also Python 2 war es super übel, da gab es halt bloß eine Exception, die halt, wenn eine geflogen ist, halt nur eine geflogen.

Jochen

Und wenn irgendwas anderes zwischendurch passiert ist, ja, Pechkaft.

Jochen

Und dann ab Python 3 gibt es halt diese Chained-Exceptions, die man manchmal sieht, wenn da so, wenn man so eine so ein Thraspack kriegt, so während dieser Thraseback geworfen wurde, ist halt noch was anderes passiert.

Jochen

Und da kann man beliebige aneinanderhängen und diesen Mechanismus kann man natürlich auch dafür missbrauchen, dann, oder gebrauchen, um halt, wenn man viele Exceptions hat, die irgendwie, zum Beispiel, wenn man halt viele Tasks hat, die man gleichzeitig abgefeucht hat, die dann halt alle ja auch irgendwie schief gehen können, um das zu wieder einzufangen oder solche Sachen.

Jochen

Aber das ist natürlich alles sehr hässlich, weil eigentlich war das gedacht für Sachen, die was miteinander zu tun haben.

Jochen

Und wenn man jetzt aber so Async-Geschichten macht, die haben ja oft nichts miteinander zu tun.

Jochen

So die aneinander zu ketten ist halt irgendwie, macht keinen so großen Sinn.

Jochen

Und dafür gibt es jetzt halt Exception Groups und wo man die Exceptions so in Bäumen anordnen kann.

Jochen

Und ja, es gab auch vorher schon so Sachen, die dann versucht haben, drum umzuarbeiten, Nurseries in Trio und so.

Dominik

Auch schon irgendwann ganz kurz drüber gesprochen.

Ja, haben wir auch

Jochen

schon mal genau, das war eigentlich so ein fehlendes Puzzlestück auch für Async.io, um das halt so richtig ordentlich zu machen, weil das ist halt total blöd, wenn du halt nicht tatsächlich alle Sachen, die schiefgegangen sind, hinterher

behandeln kannst, weil manchmal musst du halt.

Dominik

Wenn es irgendwie weggeschluckt wird, das schon ein bisschen blöd.

Jochen

Ja, weil manchmal musst du es halt handeln und wenn du dann davon gar nicht informiert wirst, ist es halt irgendwie schon nicht so gut.

Jochen

Und es gibt es aber auch außerhalb von Async.io, es ist nicht nur ein Asing-I.O-Feature, weil es gibt auch so Dinge wie zum Beispiel im Socket-Modul, wenn du halt eine Verbindung irgendwo hin aufmachst, dann probiert das Ding halt unterschiedliche Sachen durch, wenn es halt irgendwie nicht funktioniert.

Jochen

Also diverse Optionen, die dann gesetzt werden können.

Jochen

Und bisher war es halt so, naja, es werden halt diese Sachen durchprobiert, wenn das eine nicht funktioniert, wird das andere probiert und so weiter.

Jochen

Und jedes Mal fliegt ja eigentlich eine Exception, aber du kriegst immer nur die letzte zu sehen eigentlich.

Jochen

Was ja auch irgendwie Kacke ist, weil du möchtest ja im Grunde vielleicht schon sehen können, so was ist denn da alles schief gegangen.

Jochen

Also bei allen Dingen, wo man so Retry-Geschichten hat.

Jochen

Wenn du jetzt sagst, oder bei irgendeinem, äh bei so einem Salary-Task oder was auch immer, sagst du halt irgendwie fünf Retries und dann geh halt geht's halt nicht, dann kriegst du halt, wenn es dann eine Exception gab, immer nur die letzte.

Jochen

Aber vielleicht gab es ja vorher schon mal Exceptions und vielleicht waren die anders.

Jochen

Das wäre ja interessant zu wissen.

Jochen

Aber momentan gibt es keine Möglichkeit oder bisher gab es keine Möglichkeit, da dran zu kommen.

Jochen

Und jetzt halt schon.

Jochen

Und ja, da das halt nicht nur für Asyn-Geschichten, sondern halt auch in anderen Kontexten auftritt und eigentlich jetzt zum ersten Mal ermöglicht, diese Sachen so sauber zu handeln, dass du wirklich alles behandeln kannst, was da schief gegangen ist.

Dominik

Also man konnte das ja schon

Dominik

vorher machen, indem man so ein Python-Feature genutzt hat.

Dominik

Also indem man eine leere Liste als Cache irgendeiner Funktion gegeben hat.

Also die immer quasi selber bauen, damit ich das machen kann.

Genau, die immer aufgefallen.

Konnte man die daran dann sammeln.

Jochen

Ja, also man kann natürlich solche Sachen dann halt immer machen.

Johannes

Das ist so wie die C-Fehernummern, oder?

Es gibt keine Fehlernummern, also wenn du 0 zurückgibst, ist alles in Ordnung und wenn du irgendwas anderes zurückgibst, musst du in der großen Liste nachschauen.

Jochen

Ja, oder was man halt, ein Vorschlag war halt auch, man kann man es nicht über Logging machen oder solche Mechanismen, aber tatsächlich.

Jochen

Ja, oder irgendwas in der Richtung, dass man das halt nicht, weil tatsächlich ist es ja jetzt, es hat, es ändert ja die Python-Syntax.

Dominik

Also das musst du ja mal kurz erkennen, weil man mir gerade gedacht hat, mit was ist denn das für ein Vorschlag?

Verstehe ich nicht.

Was ist so?

Johannes

Wenn eine Exception auftritt und du willst wissen, was davor passiert ist, da drüben ist eine magische Datei und da hast du es hoffentlich reingeschrieben.

Ja, wenn die weg ist, keine Lösung für dieses Problem.

Du kannst

Jochen

halt, also du kannst natürlich hingehen und quasi, um die, also du könntest natürlich, statt Exceptions zu werfen, einfach alles in einen Log-File reinschreiben und dann im Code ab und zu mal nachgucken, ob irgendeine Exception geflogen ist in einem Logfile.

Jochen

Das ist so eine schlaue Art.

Johannes

Dragon Expressions, also ich habe mal einfach hin rauskam.

Ich habe kurz auf den C Cloud.

Jochen

Ja, genau, oder verteilte Systeme,

da hat man das Problem natürlich so.

Jochen

Ja, das ist unter Umständen sehr schmerzhaft.

Jochen

Es gibt da einen schönen Vortrag von der Entwicklerin, die das, die das geschrieben hat, Erik Catrill, wo sie halt auch kurz durchgeht, ich habe das jetzt dummerweise, ich habe denn das schon ein paar Monate, schon ein oder zwei Monate her, dass ich ihn gesehen habe, wo sie halt durchgeht, warum das eine sinnvolle Geschichte ist, an der die Sprachsyntax zu verändern.

Jochen

Weil du kannst es, und sie geht dann diverse Möglichkeiten durch, wie man das implementieren könnte.

Jochen

Und da kommt am Schluss raus, ja, es geht nicht anders.

Jochen

Du musst die Sprache, man muss die Sprachsyntax da verändern.

Jochen

Es gibt keine andere schöne Möglichkeit, wie man das hinprogrammiert, wie man das anders machen kann.

Jochen

Also wenn es eine andere gegeben hätte, hätten sie es auch anders gemacht, weil das natürlich irgendwie so ein bisschen das letzte Mittel, irgendwie die Sprachsyntax ändern, macht man ja auch nicht so einfach aus Spaß.

Jochen

Und es gab aber keine.

Jochen

Und dass es ein Problem ist, ist ja schon lange klar.

Jochen

Also das ist ja nicht so, dass den Leuten das jetzt erst aufgefallen wäre, sondern eigentlich, also quasi, dass man sowas braucht.

Jochen

Und im Essen-Kontext, weil der Assing-IO hauptsächlich implementiert hatte, ihr Juri Selevanov, der 2017 schon irgendwie gesagt, wir brauchen das unbedingt irgendwie.

Jochen

Dann gab es diese Geschichten mit Trio und so.

Jochen

Aber niemand hat eine Möglichkeit, weil man dachte immer so, ach, das geht bestimmt, irgendwie kriegt man das hin, ohne dass man dafür irgendwie die Sprache erinnern muss.

Jochen

Und das hat aber niemand hingekriegt und jetzt ist die Sprache geändert worden.

Jochen

Und ja, also was es halt an neuer Syntax gibt, ist halt dieses Except-Stern irgendwie, wo man dann halt quasi alle Dinge aus einer Gruppe halt, eine Gruppe von Sachen halt fangen kann.

Jochen

Dann kann man damit irgendwas machen, dann kann man die splitten und ja, ja.

Jochen

Ja, und damit kann man es eigentlich sauber machen.

Jochen

Und das ist eigentlich sehr schön.

Jochen

Ja.

Jochen

Also gefällt mir auch sehr gut, dieses Feature.

Jochen

Oh, und man kann an Exceptions auch noch irgendwie so Notes dranhängen, sodass man halt irgendwie noch ein bisschen Metainformationen mitgeben kann.

Jochen

Das auch neu.

Jochen

Wenn da halt irgendwie man halt noch ein bisschen Kontext hat, den man gerne da mit reintun würde.

Jochen

Ja.

Jochen

Genau.

Jochen

Und ja, genau, da fällt mir gerade noch zu ein, zu Async.

Jochen

Da gibt es jetzt auch, also vielleicht kennen da viele auch dieses, also was man normalerweise verwendet, ist ja irgendwie Gather, um halt viele Tasks irgendwie auf gleichzeitig zu awaiten und so.

Jochen

Da gibt es jetzt ein neues Ding, es gibt Taskgroups.

Jochen

Das ist quasi so ähnlich wie Nurseries in Trio.

Jochen

Und das ist auch die, das löst Gather und diverse andere Geschichten halt ab und Create Tasks und so.

Jochen

Und da macht man eigentlich, was man tut, ist, man sagt, Async with Taskgroup STG und dann createt man halt Tasks und wenn der Async-Kontextmanager durch ist, dann sind alle erfolgreich durchgelaufen.

Jochen

Also das sieht auch sehr elegant aus.

Jochen

Also sehr schöne neue Art, wie man so Sachen hinschreibt.

Jochen

Es spart gar nicht so viel Zahlen, es ist ein bisschen weniger als vorher, aber es sieht einfach irgendwie, ja, sieht gut aus.

Jochen

Also das in Kombination mit den Exception Groups, also Async mit 3 Elf ist es eigentlich echt so auf dem Stand, dass jetzt funktioniert, es greifen so die ganzen Teile ineinander und jetzt ist es so richtig rund.

Jetzt kann man endlich Async benutzen.

Jochen

Ja, vorher konnte man es auch schon, aber es haben schon tatsächlich wesentliche Teile gefehlt irgendwie.

Jochen

Also da, ja.

Jochen

Ja, das

Jochen

ist auf jeden Fall alles sehr erfreulich.

Jochen

Genau.

Also es ist alles besser geworden, würdest du sagen.

Jochen

Ja, ja, ja.

Jochen

Schon alles dort geworden.

Dann sind noch Dinge,

Jochen

da müssen wir in der Typing-Episode mal drüber reden, keine Ahnung.

Jochen

Variatic Generics Zeugs, das da will ich einfach drüber reden.

Jochen

Das ist alles viel zu kompliziert.

Das kriegt eine eigene

Episode, glaube ich.

Ja, ja, haben wir schon geplant.

Jochen

Dann, ja, Typing sind einige Sachen mit dazugekommen.

Jochen

E coole Geschichte beim Typing, die dazugekommen ist, ist Self.

Jochen

Ja, also wenn man zum Beispiel bisher sowas machen wollte, wie.

Jochen

Habt ihr das mal gemacht, so Typannotationen und wenn diese Sachen die Self zurückgeben, was gibt man dann zurück?

Ja, die Klasse selber.

Jochen

Ja, das funktioniert leider nicht so.

Jochen

Was ist, wenn du erbst?

Das ist halt keine Instanz der Klasse, sondern so.

Jochen

Also stell dir vor, du hast halt eine Basisklasse und eine Klasse, die von der Basisklasse erbt.

Jochen

Und in der Superklasse hast du eine Funktion, die irgendwie sozusagen irgendwas zurückgibt.

Jetzt sagst du,

Jochen

in der Superklasse sagst du jetzt, annotierst du mit, gib zurück eine Superklasse.

Dominik

Also eigentlich müsstest du dann eine Union machen, ja.

Jochen

Aber das ist ja, wenn das in der Instanz aufkommt, ist das ja falsch, weil es wird eine andere Klasse zurückgegeben.

Jochen

Das geht halt nicht.

Jochen

Das ist genau das Problem.

Jochen

Deswegen kannst du nicht einfach die Klasse da mit der Klasse annotieren.

Johannes

Es wird doch höchstens eine erbende Klasse

zurückgegeben, oder?

Jochen

Ja, eine von denen, die geerbt haben.

Jochen

Also ich meine, in gewisser Zeit ist es natürlich schon richtig.

Dominik

Also du kannst die unteres zur Base-Klasse zurückgeben, ist ja nicht falsch, weil das ist eine Art von der Institution.

Jochen

Ja, aber es ist auch nicht falsch.

Jochen

Aber wenn du jetzt irgendwo dann quasi darauf überprüfst, ob tatsächlich die Unterklasse übergeben wird, irgendwo und nicht die Basisklasse, dann geht das halt schief, obwohl es eigentlich richtig ist.

Jochen

Dann hast du ein False-Positive.

Jochen

Und jetzt kannst du halt sagen, from Typing Import Self und dann griffst

du das Self-Zug und.

Johannes

Du kannst das kurz als Argument aufschreiben, warum ich Typen nicht mag.

Johannes

Warte, das brauche ich für die Typen episode.

Jochen

Ja, ja, also ich hab auch mal so, also es ist, es ist, also so diese Details sind alle schon sehr haarig,

muss ich sagen.

Jochen

Also es geht auch nicht gut anders.

Jochen

Also man sagt, es gab das ja vorher nicht, ja.

Jochen

Und wenn man sich da Gedanken drüber macht, okay, wie annotiere ich das denn jetzt richtig?

Jochen

Es geht nicht richtig gut.

Jochen

Man kann das nicht gut annotieren.

Johannes

Du darfst erstmal nicht selbst zurückgeben.

Und dann

Johannes

sind wir wieder in dieser Situation mit den Schätzungen, dass man jetzt nur noch Sachen macht, die man per Typ erreichen kann und das ist eine Einschränkung, die nicht gut ist.

Jochen

Genau, genau.

Jochen

Aber also jetzt gibt es zumindest eine Möglichkeit, die nicht ganz so schrecklich ist und die, die einfach das Richtige tut, quasi.

Jochen

Das ist schon mal gut.

Jochen

Was haben wir noch?

Jochen

Genau.

Dominik

Jochen, bestübert gerade ist eine lange Liste.

Jochen

Ich habe das im Grunde nur aus dem What's New Ding rauskopiert, das alles.

Jochen

Oh, es gibt eine, das ist eine schon bei den Kleinigkeiten.

Jochen

Es gibt einen Change Dear Kontextmanager.

Jochen

Das ist etwas, was ich, ich weiß nicht, wie viel Mal ich mir das geschrieben habe.

Jochen

Und wahrscheinlich hat das jeder andere auch schon mal getan.

Ich möchte ein Verzeichnis.

Change Dear Contextmanager ist sehr schön.

Jochen

Ja, aber ich muss unbedingt wieder zurück, weil das ist nicht gut, wenn ich da irgendwo in einem, ich muss jetzt irgendwo tief im Dateisystembaum irgendwas machen.

Jochen

Aber ich.

Dominik

Du bist ja nicht bleiben und da irgendwas ablegen, was da nicht hingehört, aus Versehen oder so.

Jochen

Das Problem ist, dass du dann noch, also wenn du halt dann noch mehr Sachen machst und du bist im falschen Verzeichnis, dann hat das halt unter Umstand blöde Konsequenzen.

Jochen

Deswegen, also ich habe das schon ganz oft gemacht, dass ich dann irgendwie mir einen Kontextmanager dafür geschrieben habe, wo ich dann sicher sein kann, okay, wenn der durch ist, dann bin ich wieder zurück.

Jochen

Und das Ding ist jetzt in der Kontext-Slip ist jetzt so ein Teil drin.

Jochen

Das ist ein

bisschen doof,

Jochen

kann man nicht gut verwenden, weil ansonsten dependet man auf drei Elf, aber.

Dominik

With Changedier und dann Path-Objekt oder was?

Jochen

Genau, man sagt with Change, Changedier, Path und wenn man da zurückkommt, ist man wieder zurück.

Wusstet ihr, dass Bash auch so ein Feature hat?

Da kann man Verzeichnisse pushen.

Johannes

Man kann so einen Stack machen mit Verzeichnissen.

Und wenn du fertig bist, kannst du Pop machen und bist dann wieder da, wo du vorher push gemacht hast.

Ja, genau, pushen kann.

Ah, ne, wusste ich nicht.

Ah, cool.

Johannes

Du musst allerdings selber darauf aufpassen, dass du wieder in die richtige Stelle zurückpoppst.

Dominik

Du kannst bei jedem CD kannst du danach poppen.

Johannes

Ja, genau, aber du musst halt kannst ja halt einen Stack bauen.

Johannes

Und du könntest prinzipiell ja auch Subshells machen, wo du dann Verzeichnis wechselst, aber das wäre ja zu viel Aufwand.

Obwohl ihr gerade schon über Bertrehrt.

Kennt ihr Sockseid?

Nee, was ist das?

Dominik

Das ist so ein schönes kleines Tool, das für mich CD ersetzt hat.

Ach, ach

Jochen

doch, doch, doch, das verwende ich auch.

Jochen

Ja, ja, ja, ja.

Jochen

Vielen Dank, war ein guter Tipp.

Dominik

Ja, weil man kann nämlich einfach Abbreviation schreiben, statt Directory nehmen, denn merkt sich quasi die Verzeichnisse, in denen man schon war.

Dominik

Und dann nimmt er den nächsten Match davon.

Dominik

Und dann kann man quasi mit zwei Zeichen oder sowas in das Directory seiner Wahl springen und das funktioniert ziemlich gut.

Ja.

Okay.

Jochen

Ja, ist tatsächlich sehr nett.

Johannes

Hört sich gefährlich an.

Dominik

Du musst halt Fade nicht mehr ausschreiben, ne?

Tipp V.

Dominik

Autocompletion for the wind, ja.

Johannes

Dieses Manifest unterschreibe ich zwar prinzipiell, aber ich möchte schon gerne wissen, was der Computer macht.

Dominik

Ein Hoch auf den Copilot, das ist hervorragend.

Jochen

Weißt du ganz genau, was passiert, wenn du Tab drückst?

Natürlich.

Johannes

Ganz exakt weiß ich das.

Vor allem in sowas wie PyCharm.

Johannes

Das ist ja ein relativ kleines, übersichtliches Java-Programm.

Johannes

Da weiß man immer genau, was passiert vorher.

Dominik

Aber Control-R zum Beispiel ist ja dann auch so.

Dominik

Ich weiß nicht, kann man das auch konfigurieren bei PyCharm oder sowas?

Dominik

Also, dass man eine Liste von den Vorschlägen bekommt, die jetzt gerade die toll zu einem TV gewesen wären.

Wie das Fish-Shell macht das ja zum Beispiel.

Blättert ja auch genau aus der History.

Ja, Entscheidung.

Das ist bei Reverse History Search.

Jochen

Genau, das gibt's jetzt bei Fisch so.

Den nächsten Match.

Was ist das?

FZF?

FZF irgendwie so?

Jochen

FZF benutzt, genau, das ist halt das, was halt die Bashes in der Bash-Serie suchen, das ist halt so, FZF ist natürlich deutlich deutlich schicker.

Ja, das kann man dann.

Ja?

Naja, ja, klar, das weiß ich.

Kennt ihr alle schon.

Kleine Exkurs.

Was haben wir denn noch?

Dominik

Wenn wir schon mal den Exkursen sind, also ich wollte nochmal sagen, ich bin natürlich einer von den Netten eigentlich, muss halt dann auch nett sein.

Dominik

Aber das ist halt Kapitalism-Baby.

Dominik

Wir haben über die Meer-Projekt-Sachen gesprochen.

Dominik

Das ist halt der Punkt.

Dominik

Also wenn mich jemand als Sklave ausbeuten will, das kann man natürlich nicht zulassen.

Dominik

Seider man ist ja in einer holokratischen Gemeinschaft, dann ist das alles was anderes.

Johannes

Der Romick hat gerade auch noch was von seinem Stack zurückgeholt.

Nochmal zu das Thema von der Fall.

Jochen

Es gibt tatsächlich Dinge, die noch gefährlicher sind als Z und zwar Wusst.

Jochen

Aber ja, ich fürchte, dass es halt Kapitalismus ist schwer.

Es ist ein Problem.

Man kann sich da schon

Jochen

die Zellen dran ausbeißen, muss man sagen.

Dominik

Nein, nein, das Problem ist halt, also das heißt Zellen drin ausbeißen.

Dominik

Das Problem ist halt, dass man gegamed wird vom Geld.

Ja.

Das ist das Problem dabei.

Dominik

Und dann muss man halt überlegen, ob man gamen will.

Dominik

Also in der Spieltheorie kann man ja überlegen, ob das fair verhandelt, dann verhandelbare Lösungen gibt oder nicht.

Dominik

Und ich sag mal so, man kann nicht ja vielleicht klug sein, wenn man sich Partizipationen sich erkaufen kann oder das möchte

irgendwie, wenn

Dominik

man oder wenn man höhere Ziele dafür aufgibt.

Dominik

Für den schnöden Mammon.

Ja.

Jochen

Ja, man muss aufpassen.

Jochen

Also es ist schwierig und ja, man ist leichter, Fehler zu machen.

Jochen

Das ist schon richtig.

Dominik

Nein, ich finde, es ist eine Pflicht, da Widerstand zu leisten, darauf wollte ich Ihnen aus.

Achso, ja.

Dominik

Na egal, wir wollten keine politischen Sachen.

Johannes

Das ist aber schon so ein moralisches Dilemma, was man hat manchmal, oder?

Johannes

Also ich meine, ich war noch nicht in der Situation, dass ich ein Feature bauen musste, wo ich moralisch nicht dazu in der Lage gewesen wäre, um es mal so zu formulieren.

Johannes

Aber es gibt ja schon so Situationen, man hört das ja immer wieder.

Johannes

Und jetzt gerade mit den zahlreichen Personen, deren NDAs bei Twitter ausgelaufen ist, die jetzt über Features sprechen können, die sie hätten bauen sollen, da gibt es schon interessante Geschichten.

Okay, was war das?

Viel drüber diskutiert,

aber ja,

Johannes

das ist so irgend so ein, also einer von diesen Twitter, von diesen, einer von den wenigen entlassenen Twitter-Software-Engineers hat sie geschrieben auf Twitter, dass vor einigen Jahren, 2016 war das, als Twitter ganz arg Geld gebraucht hat.

Johannes

Wo übrigens Google und Facebook beide nicht Twitter kaufen wollten, wo die sich jetzt, glaube ich, ärgern, dass sie da mit so Telcos zusammengearbeitet haben und die dann halt verlangt haben, dass Twitter quasi alle zehn Sekunden die aktuelle Position des Benutzers übermittelt, damit die schauen, ob die in die Läden der Konkurrenz reingehen.

Johannes

Wo dann halt auch der Engineer gesagt hat, nee, das baue ich nicht.

Mach ich nicht.

Johannes

Und da halt in dem Team der Einzige war, der das hätte machen können, mussten die halt sagen, okay, gut, dann gibt es es halt nicht.

Er ist dann wohl auch entlassen worden, aber er hat es nicht gemacht.

Johannes

Und da gehört ja schon ein gewisser Mut dazu.

Johannes

Gerade, also ich meine, viele Leute haben ja Angst davor, entlassen zu werden, aber 2016 als Software Engineer hat man sich da, glaube ich, keine Sorgen machen müssen.

Johannes

Aber es gehört natürlich trotzdem Mut dazu, zu sagen, ich mache das nicht, auch wenn ihr mich entlasst.

Ja, und die meisten Leute haben auch ihren Preis.

Dominik

Beziehungsweise dann erstmal nur mehr Zahlen und dann geht es dann trotzdem oder so.

Ja, auch das.

Johannes

Das wurde ja wohl auch gefragt, wie viel Geld müssen wir dir denn geben, dass du es machst.

Johannes

Und dann hat er gesagt, so

Johannes

viel Geld habt ihr nicht.

Jochen

Tja.

Jochen

Ja, ja, also ich meine, nö, aber ich merke das ja, ich merke das, ich denke, es gibt viele Leute, die wahrscheinlich irgendwie, also ich glaube, für Waffenentwicklung oder so wäre für viele schon ein Tabu oder auch eben für irgendwelche staatlichen Akteure irgendwie irgendwelche Schnüffelgeschichten bauen oder so.

Dominik

Aber da gibt es ja auch wieder gut und böse, deswegen sagen die alle Crusader.

Jochen

Ja, irgendjemand macht's, aber ich denke.

Johannes

Ja, irgendjemand hat den Staatstrojaner geschrieben.

Irgendjemand hat.

Dominik

Nein, aber die Frage ist halt, wenn du angegriffen wirst, dann ist es relativ opportunistischer, wieder sowas zu tun.

Wenn du dich bedroht fühlst.

Ja, ja.

Dominik

Du bist das ökonomisch in China und das große Amerika versucht sich zu unterdrücken, da musst du dihren und so weiter.

Johannes

Ja, aber das hat doch nichts mit Privacy-Sachen zu tun, die du verkaufen kannst.

Doch.

Viel.

Naja, das ist.

Nichts mit Datenschutz zu tun.

Dominik

Also die ganzen kommerziellen Zwecke, die dann dazu führen, dass sowas passiert und diese ganzen Incentives überhaupt das zu machen, also auch für Geld und so, also die Moral anzustellen oder das halt tatsächlich aktiv zu machen, um für so einen Staat oder sowas in eine Aktion treten zu können und dem mehr Kontrolle zu verschaffen, das glaube ich, hängt sehr stark damit ab zusammen.

Vielleicht habe ich es auch noch nicht so richtig.

Also ich weiß es nicht, um ganz ehrlich zu sein.

Johannes

Ich weiß es nicht, um ganz ehrlich zu sein, wenn man mehr Geld anbieten würde für ein unethisches Feature.

Jochen

Man kann ja schon mal die Kontroll mal sagen, aber es ist eine Fahne tun.

Dominik

Die Flagge hochhalten, wie sagt man?

Johannes

Ja, aber ich glaube von mir, dass ich ein guter Mensch bin, aber wenn es dann tatsächlich in der Situation ist, kann ich nicht garantieren, dass es tatsächlich so ist.

Johannes

Weil ich habe halt Familie und ein Häusle, was abbezahlt werden muss und irgendwie will man sich ja da schon schützen, ja.

Johannes

Und man ist ja auch bequem, ganz ehrlich.

Ja, das ist komplett auch nicht richtig.

Jeden Tagsprojekt.

Dominik

Dafür habe ich in der Uni immer Schelte bekommen, wenn solche Leute waren, die wollen.

Dominik

Ja, ja, genau, das ist ja völlig klar.

Dominik

Die Kampfbereitschaft, die fehlende, der Mut zur Veränderung, fehlende revolutionäre Anteil und so, ja, ja.

Versteh schon.

Johannes

Ja, und bevor dir das Geld jemand anderem geben, der das nicht gescheit macht, dann mach's doch lieber ich.

Kapitalism-Baby.

Ja, es ist scheint andererseits, andererseits kenne ich halt auch so Leute, die von sich selber sagen: ja gut, sie sind halt Software-Prostituierte, die machen halt, was der Kunde verlangt.

Solange der das bezahlt, machen die das halt.

Ich würde sagen, das ist wieder Default.

Jochen

Ist jetzt auch, würde ich sagen, nicht so furchtbar verwerflich, ehrlich gesagt, weil ich meine, das ist ja das, was alle anderen eigentlich auch so machen, üblicherweise.

Johannes

Ja, aber gerade dann ist es doch verwerflich.

Jochen

Ja.

Ja, vielleicht ist es ein besonders verwerflicher.

Gerade hier in Deutschland muss man doch aus der Geschichte, muss man schon aus der Geschichte sagen, ja, wenn die Mannes machen, dann ist es wirklich voran in den Abgrund rennen und möglichst.

Jochen

Ja, es ist, es ist, es ist, es ist, es ist schwierig, ich weiß es nicht.

Jochen

Aber eben, darüber reden bringt auch nichts, weil irgendwie eigentlich, das ist auch so etwas, was, also da können wir den Bogen wieder zurück zu Twitter, dass man auf Twitter irgendwie aus dem Sack geht, eigentlich ist halt,

wenn Leute.

Johannes

Jemand soll uns mal in diese Situation bringen.

Dominik

Die Böse nicht richtig auseinanderhalten können und nicht wissen, für wen

Jochen

es sich richtig.

Jochen

Das Problem ist halt, man kann nicht drüber reden.

Jochen

Man kann ja nur Sachen machen oder nicht machen, ja, und dann kann man, aber wenn so, ich meine, eigentlich ist das halt eine selbst widersprüchliche Geschichte, wenn man sagt, ich bin einer von den Guten und mach das nicht.

Jochen

Weil damit, wenn ich das höre, dann höre ich eigentlich, du bist einer von den Bösen.

Jochen

Weil das öffentlich öffentlich zu moralisieren, ist halt eine Methode, um das zu gamen.

Jochen

Daher, das.

Ja, aber es ist ja richtig.

Jochen

Ja, es wäre

richtig, das zu tun.

Johannes

Wir sind die Guten, weil wir das öffentlich gamen.

Dominik

Das ist die Frage, ob das nicht noch Signaling ist.

Jochen

Genau, also insofern.

Dominik

Ich würde auch sagen, was entscheidend wäre, was hinterher wirklich gemacht wird und nicht, was erzählt wird, was jemand machen wollen würde und was andere machen sollen sollten und so.

Das finde ich auch immer so ein bisschen problemat.

Aber ja, egal.

Jetzt wäre mir wirklich der Problem.

Johannes

Also, wie gesagt, ist der Aufruf, wenn mir jemand viel Geld für moralisch verwerfliche Dinge anbieten möchte, meine E-Mail-Adresse ist.

Johannes

Ich weiß dann zwei, ich wüsste zwei andere, denen man das dann auch anbieten kann.

Abzüglich irgendwie ganz Provision, aber.

Jochen

Genau, aber diese ganze Twitter-Geschichte ist natürlich auch nochmal interessant.

Jochen

Also das ist auch ein bisschen.

An der Stelle nochmal, um nochmal auf die letzte Folge zurückzukommen, kurz so eine Coin-Adresse, finde ich schon uns gemacht.

Jochen

Ja, also da ist auch wieder was geplant.

Kann man noch?

Lohnen sich Coinadressen noch?

Jochen

Das würde auch unter News noch fallen, ne?

Jochen

FTX irgendwie gerade wieder.

Dominik

FTX und 52.

Jochen

Also ich muss, ich hatte mir letztes Mal schon überlegt, aber vielleicht muss ich das jetzt nochmal irgendwie.

Jochen

Wie kann man eigentlich den Kram shorten?

Ach naja.

Das ist schwierig.

Das ist schwierig.

Das geht nur, wenn jemanden hast, der.

Dominik

Du musst halt die Unternehmen, die da investiert sind, loggen will.

Dominik

Du musst halt wissen, wie viel Asset-Anteil solche Investitionen an welchen Kapitalgesellschaften haben und musst die halt shorten.

Johannes

Das Problem ist, the markets can stay irrational longer than you can stay solvent.

Jochen

Das ist ein Problem, ja.

Kennen.

Ja, und deshalb ist es ein gefährliches Spiel.

Jochen

Ja, genau.

Jochen

Vielleicht auch erstmal wieder ignorieren.

Und hinterher dann sagen, ich wusste nichts.

Ich wusste es, ich habe

Jochen

nichts gemacht.

Naja.

Jochen

So ist es halt immer.

Ich hab's euch ja gesagt.

Jochen

Aber jetzt ist es zumindest irgendwie aufgenommen.

Dominik

Macht nichts für Eiskream, ja.

Jochen

Kann man drauf linken und sagen, ich habe es tatsächlich gesagt.

Jochen

Ja, nee, also dieser Twitter-Auto-Unfall da ist auch gerade.

In Zeitlupe ist es doch nicht.

Nee, stimmt, das

Jochen

ist ein relativ schneller.

Wenn man versuchen würde, Twitter kaputt zu machen, wäre es schwierig, das schneller hinzukriegen.

Jochen

Ja.

Jochen

Ja, ist schon beeindruckend.

Dominik

Ja, erzähl mal mir, ich habe gar nicht davon mitbekommen, weil ich habe ja seit Twitter seit, weiß ich nicht, 2008, 9, 10.

Das ist super unterhaltsam.

Johannes

Vor 15 Tagen hat er Twitter gekauft und ist sie auch von Twitter gekommen.

Der St.

Elon, wie man ihn gemeinhin nennt.

Ja.

Der heilige Elon.

Johannes

Und seither gibt es nur gute Nachrichten aus diesem Laden.

Johannes

Also eine der ersten Sachen, die er gemacht hat, ist, dass er drei Viertel der Belegschaft gefeuert hat.

So viele?

Ich glaube, die Hälfte

oder drei Viertel,

Jochen

ich weiß es nicht.

Dominik

Also alle Leute, die vorbeigelaufen, die nach seiner Nase gestattet haben oder was ist das?

Johannes

Viele von den Sachen sind schwer zu verifizieren.

Johannes

Man weiß es nicht genau, aber man hört.

Johannes

Dann hat er angekündigt, dass es dieses blaue Checkmark ist.

Johannes

Es gibt ja für verifizierte Personen so ein blaues Häkchen.

Johannes

Das wurde mal eingeführt, weil Identitätsdiebstahl sehr einfach war.

Man hat sich halt einfach in der Frage.

Dominik

Mit dem Bildchen rein und dann immer seriöse Post verfasst wurde Zeit lang.

Genau, so lange seriöse Post, bist du verrückt geworden bist.

Johannes

Und für Personen des öffentlichen Lebens wurde dann mal eben so eine Verification eingeführt, dass du eben sagen kannst, okay, du bist tatsächlich der wirkliche Donald.

Johannes

Und nur der hat so ein blaues Häkchen und das ist dann verifiziert.

Dominik

Oder machst du das mit einer Ausnahme-Verifikation oder kriegst du per Post-Ident?

Johannes

Ich weiß nicht genau, wie die das gemacht haben, aber das war wohl

Johannes

ein Team, das

das gemacht

Johannes

hat, was kompliziert war.

Jochen

Es waren ja auch nicht so, also das war halt nur so, also wir haben Leute berühmtheiten, Journalisten und so gekriegt, aber.

Jochen

Und das wurde halt, wurde halt manuell gemacht und so.

Oh, das

Dominik

heißt ja, der neue Fame, der

blaue Haken.

Ja, ja.

Johannes

Und eine der ersten Geschäftsideen, die der heilige E mitgebracht hat, war, dass das jetzt 20 Dollar im Monat kostet, wenn du so ein blaues Häkchen hast.

Und dann

Johannes

hat Stephen King zurückgeschrieben, was?

Johannes

Ihr seht wohl, ihr solltet mich dafür bezahlen, dass ich so ein blaues Häkchen habe, nicht umgekehrt.

Johannes

Und dann hat Elon geantwortet, okay, vielleicht ist 20 Dollar zu viel.

Johannes

Wie wäre es mit 8 Dollar?

Johannes

Und das hat ja schon mal für sehr viel Unterhaltung gesorgt, ja, weil so, dann die Leute kommentiert haben, also ich bin ja kein CEO von großen Firmen, aber ich dachte, wenn man 44 Milliarden Dollar für irgendwas ausgibt, überlegt man sich vorher ein Businessmodell.

Johannes

Jedenfalls kostet das jetzt 8 Dollar im Monat und es ist jetzt auch frei verfügbar, weil der möchte das ja so vielen Leuten wie möglich verkaufen.

Dominik

Ich kann das Twitter meinen Blau bei Twitter anmelden.

Johannes

Kannst du dich verifizieren lassen für 8 Dollar und das hat natürlich sofort dazu geführt, dass sich ganz tolle Leute, die das.

Kannst du dich verifizieren lassen?

Johannes

Nee, als Elon Musk.

Johannes

Ganz viele Leute haben sich als Elon Musk verifiziert und dann natürlich auch sehr viele schöne Dinge getwittert.

Johannes

Kann man auf den üblichen Orten im Internet finden.

Also das war

Jochen

tatsächlich sehr lustig, muss ich sagen.

Jochen

Also war gute Unterhaltung.

Es war sehr.

Übrigens, wiederum dazu.

Jochen

Du brauchst eine US-Adresse dafür, ne?

Jochen

Also das brauchst du irgendwie VPN und so, aber es geht.

Dominik

By the way, the next thing I do, Elon Musk post, I buy Python.

Johannes

Ja, aber Elon Musk hat sich ja schon lange Zeit als Verfechter des Free Speech hingestellt, ja, dass er jetzt hier wieder alles frei macht.

Johannes

Und dann ging das aber sofort, als die Leute angefangen haben, sich als Elon Musk auszugeben, wurden die dann sofort suspendiert.

Und zwar so rechts.

Ja, und dann

Jochen

hat er dann gesagt, ist das wohl zu viel geworden.

Ich weiß gar nicht wieso.

Jochen

Also wie gesagt, für mich sehr lustig.

Für ihn offenbar irgendwie,

Jochen

er hat sich da so ein bisschen dran gestört und hat er gesagt, nee, das finde ich nicht okay.

Jochen

Also da muss jetzt immer Parodie drüber geschrieben werden, sonst geht das nicht.

Und wenn er

die nächste Welle,

Jochen

dann verband er die Leute irgendwie, ja, hat er dann auch gemacht.

Johannes

Aber heute war ja tatsächlich die nächste Welle.

Johannes

Die nächste Welle in diesem Drama, weil Personenidentitätsdiebstahl ist ja verboten, aber Firmen haben ja keine Persönlichkeitsrechte.

Johannes

Und deshalb gab es heute ganz viele Leute, die sich als Firmen verifiziert haben und dann Tweets über diese mit diesen Firmen geschrieben haben.

Johannes

Zum Beispiel Tesla hat heute einen wundervollen Tweet veröffentlicht.

Johannes

A second Tesla has arrived at the World Trade Center.

Irgendwie sowas.

Also so ganz Sachen.

Johannes

Ein Eli Lilly hat sich einen Tweet geschrieben, der groß angekommen ist, dass Insulin ab jetzt kostenlos ist.

Johannes

Und sie haben sich dann sehr dafür entschuldigt, dass das zu Verwirrungen geführt hat.

Johannes

Und das kostet natürlich weiterhin 700 Dollar pro Monat.

Aber ja.

Ei, ei, ei.

Johannes

Das ist so der aktuelle Stand.

Johannes

Und ja, von diesen gefeuerten Leuten wurden wohl schon welche gefragt, ob sie wieder zurückkommen, um sich um die Systeme zu kümmern.

Also es ist sehr beeindruckend, wie schnell.

Dominik

Was kommt, was die Antworten?

Dominik

Oder was ist dann die Antwort?

Keine Ahnung.

Johannes

Also ich würde da nicht zurückgehen, ganz ehrlich.

Johannes

Aber das ist auch so eine, wenn mich jemand in die Situation bringt, Double or nothing, möchte man, möge man gerne an mir ausprobieren.

Johannes

Es ist auf jeden Fall sehr beeindruckend, wie schnell auch so ein Image zerstört sein kann.

Johannes

Zwei Wochen, um halt das Image des Industriegottes zu zerstören.

Johannes

Anderer Kommentar war, wenn jemand CEO von zwei oder drei großen Firmen gleichzeitig sein kann, dann kann es doch ein besonders wichtiger Job sein.

Jochen

Ja, natürlich.

Johannes

Und ja, es ist schon so.

Johannes

Also es ist wirklich beeindruckend, wie öffentlich dieser ganze Autounfall passiert und wie beeindruckend das ist.

Johannes

Und man kann auch nicht so richtig wegschauen, weil, ach, das ist so, überleben Sie es oder überleben sie es nicht.

Johannes

Und noch anfangen zu brennen und anfangen noch wer.

Ah, also es ist schon ein bisschen.

Jochen

Also es ist ein großes Spektakel, muss man sagen.

Es ist ein

Johannes

Spektakel, ja.

Johannes

Das ist es auf jeden Fall.

Jochen

Und ja, ich meine, tja, ist alles nicht so einfach.

Dominik

Das moderne Boulevard.

Ja, genau.

Johannes

Ja, Dominik, der einfache Mann auf der Straße interessiert sich halt für sowas.

Johannes

Es ist klar, dass so eine kultivierte Persönlichkeit wie du da nicht.

Johannes

Aber Jochen und ich, wir sind halt einfacher gestrickt und deshalb gucken wir dazu.

Jochen

Ja, also natürlich ist es auch ein Weg, um Aufmerksamkeit zu kriegen, nur ich weiß nicht.

Jochen

Also so super Lagend und super.

Jochen

Es ist noch drei Level, dreidimensionales Schach mehr, als ich irgendwie verstehen kann.

Jochen

Wisst ihr was?

Oder ist es gar nicht so schlau?

Dominik

Wenn Murdoch recht hatte, dann geht es nicht darum, was tatsächlich passiert ist, sondern nur darum, welche Emotionen wir hatten, wie schnell wir das hatten.

Dominik

Und ja doch, gibt es schon, aber es geht nur um Emotionen, die wir hatten, als wir es wussten.

Dominik

Und da wir alle die ganze Zeit uns kaputt gelacht haben, erinnern wir uns an diese Freude, wenn wir noch in zehn Jahren an Twitter denken.

Und das ist random.

Aber das ist doch Schadenfreude.

Das ist doch egal.

Du hast dich gut gefühlt.

Und das ist genau der Punkt.

Das ist ein wunderbares Welt.

Johannes

Das ist eine fundamentale Emotion von Menschen.

Schadenfreude.

Jochen

Ja, aber es passieren ja tatsächlich.

Also es geht tatsächlich

Jochen

gerade sehr, sehr viele Leute weg.

Jochen

Und zum Beispiel nach

Schadenfreude gibt es universum.

Das ist ein Fremdwort im Englisch.

Ja, das ist englisches Wort.

Schadenfreude.

Und damit mein Portiert.

Ja, gut.

Wir können es halt am besten.

So viele Dinge.

Jochen

Und Humor besonders wenig.

Jochen

Das ist halt das Einzige, was aus dem Keller ab und zu mal raußen dringt, wenn man in dem Kontext.

Schadenfreude.

Johannes

Wenn einer in den Keller gefallen ist.

Ja.

Jochen

Ja, aber genau, also das ist der Autounfall.

Jochen

Also der andere Teil ist halt lustig, dass jetzt Leute irgendwie nach Mastodon gehen, irgendwie in Twitter und so.

Jochen

Das ist ja auf.

Jochen

Ich meine, das ist

ja auch cool.

Jochen

Ja, aber ich bin nicht zufrieden mit meiner.

Jochen

Doch, aber ich habe das irgendwie, das ist irgendwie, was ich mal früher, als es Twitter auch mal wieder, als Twitter so eine Episode hatte, wo es ihnen nicht so gut ging, habe ich das dann halt auch mal so in Erwägung gezogen, vielleicht lieber nach das zu machen.

Jochen

Da habe ich dann irgendeinen

Server genommen.

Jochen

Und zwar irgendwie das Tröt-Café oder so, weil das halt offen war, ja.

Johannes

Retro-Tröd gibt's.

Jochen

Und genau, das habe ich jetzt auch und das ist irgendwie nichts, ich weiß nicht, ob ich da bleiben soll.

Jochen

Ich dachte, wenn man sich das selber husten kann, ach, dann will ich das vielleicht auch machen.

Jochen

Auf der anderen Seite, ich habe so viel zu tun und ich

habe keine

Jochen

Zeit und will ich mir das auch nach beiden Pings befinden, aber naja.

Es gibt

Johannes

instances.social, äh, Link in den Shownotes.

Johannes

Da kann man sich die Instanzen anschauen, was die so für Eigenschaften haben und auch, was die für Content erlauben und so weiter und so fort.

Also da so habe ich meine neue Heimat.

Dominik

Ja, da fängst du schon an Content-Kontrolle.

Ja, egal.

Johannes

Ja, natürlich, aber ich kann keinen Spam und keine Programm.

Ja, aber ich will meine Leute, die wollen kein Nullity haben und so.

Ja, aber das ist ja wieder Arbeit.

Johannes

Oder du filterst nach Instanzen, die das explizit erlauben.

Dominik

Dann gibt es ja keinen vernünftigen Client irgendwie richtig fürs Telefon.

Ja.

Johannes

Ja, aber das ist bei Twitter ja auch nichts.

Jochen

Also bei Twitter gab es welche,

bis Twitter sie alle abgedreht hat.

Johannes

Hab ich gehört davon, aber so alt bin ich gar nicht.

Jochen

Ja, ja.

Jochen

Naja, also ich meine, das Problem an dem Speck ist wohl alle, ist wohl, also ich habe jetzt auch viele darüber gelesen, dass Leute das selber hosten und jemals haben sehr enthusiastisch, super, ich hostel das selber dann so Stunden, Tage später kommt dann so, boah, habt ihr mal die Speck angeguckt?

Jochen

Du hast ja schon habt ihr mal geguckt, was man da für alles so braucht.

Jochen

Meine Güte, wow, wer hat sich das denn ausgedacht?

Jochen

Das ist ja schrecklich.

Jochen

Und ja, das ist alles schon sehr schrecklich.

Jochen

Und ja, also es gibt, also eigentlich, ja, aber was soll man machen?

Jochen

Es ist halt das, was jetzt gerade irgendwie auf jeden Fall sehr viel Auftrieb hat und vielleicht kann man einfach mal mitmachen.

Jochen

Und ich im Prinzip würde ich ja sagen, es ist voll gut, wenn es irgendwie was gibt,

was man selbst

Jochen

husten kann, was kann, was frei ist und so.

Dominik

In die Web-Prinzip jetzt.

Jochen

In die Web, genau.

Jochen

Ja.

Dominik

Ja, seine eigenen Daten selber zum Sitz ist schon gar nicht so schlecht, aber wer stellt denn denn irgendwie selber so einen eigenen Kasten zu Hause hin, den man noch die ganze Zeit selber own kann, wo man nur selber reinholt?

Gibt's ja auch gehostet.

Jochen

Ja, kannst du auch hosten lassen.

Jochen

Ja.

Naja, muss man.

Jochen

Ich bin noch so ein bisschen unentschieden, aber das Problem ist, so mittlerweile ist es nicht so sehr, oh, Twitter und Elon, die sind irgendwie fies und ich geh dann mal weg, weil ich will eigentlich nicht mit denen zusammen gesehen werden.

Jochen

Zu, hm, irgendwann geht er einfach, irgendwann werde ich den Client aufmachen

und es wird einfach nicht mehr funktionieren.

Jochen

Das ist so eher, das heißt, ich muss nicht mal nach mehr, wahrscheinlich in absehbarer Zeit kann man nicht mal mehr nachgucken, wem man jetzt gefolgt hat, um das wiederzutun, weil das ist einfach weg.

Muss man jetzt exportieren.

Jochen

Muss man jetzt exportieren, genau, sonst geht das nicht mehr.

Jochen

Also es ist schon, also ja, komisch.

Ja, Free Speech.

Jochen

Tja.

Ach, Free Speech.

Alles auch in den allermeisten Ländern auf der Welt nicht.

In Deutschland auch nicht.

Kannst du auch nicht sagen.

Jetzt die Frage, ist das richtig?

Jochen

Selbst in den USA ist es halt sehr stark eingeschränkt, was heißt, naja, sehr stark.

Jochen

Es kommt auf all, auf welchem Stadtbuch man steht.

Jochen

Es ist ja auch eingeschränkt.

Jochen

Du kannst darf auch in einem Schweden.

Was du denkst, wissen wir ja jetzt.

Ja, nicht gesagt.

Also, aber

Jochen

du darfst halt auch wenn man in den USA in einem Kino oder in einem Theater sitzt, darf man auch nicht irgendwie aufstehen und Feuer rufen.

Geht halt nicht.

Jochen

Also sag mal so, du kannst dich ja nicht auf Free Speech berufen, wenn du das machst, sondern dann wirst du halt auch verknackt.

Johannes

Ja, und

Johannes

Defamation gibt es auch und Slander gibt es auch.

Johannes

Deshalb, es gibt überall Einschränkungen.

Also was ich halt cleverer finde, finde ich das gut für so Online-Leute klar.

Dominik

Ist halt sowas wie Moderation, das wäre schon geil.

Also kuratier Dinge.

Dominik

Das finde ich ein sehr powerful Werkzeug.

Dominik

Das ist halt immer unfair, aber es ist immer irgendwie richtig eher.

Johannes

Das ist auch sowas, was man gehört hat jetzt, dass eben das Hauptprodukt von Social Networks eigentlich Content Moderation ist.

Johannes

Dass du sozusagen den, du verkaufst nicht den Benutzern irgendeine Funktionalität, sondern du verkaufst den Werbetreibenden Content Moderation.

Community Management.

Johannes

Wenn die Content Moderation gut genug ist, sodass du, dass deine Brand Safety Genüge getan ist.

Auch da gibt es so einen Exkurs.

Johannes

Ja, da hat wohl der heilige E einen Call gemacht mit den Werbetreibenden und dann haben sie ihm halt da verschiedene Dinge erzählt.

Johannes

Angeblich haben mehrere große Blöcke während dieses Calls ihre Kampagnen ausgesetzt.

Johannes

Und einer hat halt auch öffentlich auf Twitter gesagt, hier, für uns ist Brand Safety das Wichtigste, wir wollen nicht mit folgenden Dingen in Verbindung gebracht werden.

Ja, er hat ihn dann blockiert.

Johannes

Das war dann der nächste Tweet.

Johannes

Du bist auch für freie Sprache und warum hast du mich denn dann blockiert?

Tja.

Und das ist schon sehr interessant, da mal so einen Einblick reinzukriegen, ja, weil sich da halt jetzt die Licken aufreißen und mal einmal hier in die Eingeweihung.

Jochen

Ja, und die Leute anfangen, Klartext zu reden und sagen, was halt ihre Interessen

sind und so.

Jochen

Man sieht jetzt wirklich, wie das, also das ist halt das, das ist so wie so ein Teilchenbeschleuniger, da nimmt man ja auch irgendwie so viele, da nehmen die Teilchen viel Fahrt auf und dann haupt man die aufeinander, dann fliegt der ganze Scheiß auseinander und kann mal gucken, was steckt da jetzt eigentlich so drin.

Johannes

Ja, was war da eigentlich drin?

Jochen

Und das geht jetzt, das sieht man jetzt sozusagen in Sozial auch gerade und das ist total interessant, weil da stecken manchmal

sehr unerwartete

Jochen

Sachen drin.

Jochen

Das ist wirklich.

Sehr, sehr spannend.

Ja, ja, ja.

Ja.

Johannes

Aber in Other News, Amazon ist die erste Firma der Welt, die jetzt nicht, hat jetzt nicht mit Social Networks zu tun.

Johannes

Die ist die erste Firma der Welt, die über eine Billion an Marktwert verloren hat.

Oh wow.

Johannes

Und das kommt dann so im Hintergrund drüber, ja, wo hier so das große Twitter-Spektakel hier im Vordergrund ist und im Hintergrund machen die halt one Trillion Dollars haben sie einen Marktwert verloren.

Und das ist schon.

Johannes

Das sind so Zahlen, die sind sehr schwer zu greifen.

Ja.

Dominik

1000 Milliarden.

Johannes

Ja, tausend Milliarden, aber was bedeutet 1000 Milliarden?

Also eine Million Millionen.

Dominik

Wenn du überlegst, dass eine Million, aber dass ein Haus, eine halbe Million, wenn du überlegst, dass ein Haus eine Million kostet, dann sind es zwei Millionen Häuser, da kannst du überlegen, dass eine ganze Großstadt.

Ich finde das eine gute Vergleich visualisieren.

Johannes

Der beste Vergleich, den ich gehört habe, ist, wenn du zum Bau der Pyramiden anfängst, jeden Tag 500.000 Dollar auszugeben, dann hast du jetzt noch nicht eine Billion ausgegeben.

Ja.

Dominik

Also ich finde das mit der Großvergangenheit, wenn du dir ausrechnet, wie teuer sind die Immobilien in so einer Großstadt oder sowas.

Dominik

Und dann genug einfach so eine Großstadt.

Dominik

Die ist halt einfach komplett, kannst du irgendwo hinschicken.

Johannes

Aber da sind keine zwei Millionen Häuser drin, da kannst du dir Tokio kaufen davon.

Dominik

Ja, die haben eine unterschiedliche Größe, als war ja es natürlich eine Fehlannahme, dass sie alle gleich verteilt eine halbe Million kosten, aber da ist ja schon größere Gebäude und so, deswegen.

Johannes

Ja, ja, aber dann, also in so einem Haus wohnen ja mehr als wohnt ja mehr als eine Person.

Also du musst ja dann schon eine.

Johannes

Das ist schon eine vergleichsweise große Stadt.

Johannes

Also so eine große Stadt gibt es in Deutschland nicht.

Dominik

Doch, ich würde sagen, das ist unterschätzt so.

Dominik

Ich würde sagen, die so groß ist die nicht.

Jochen

Also ich glaube, da kann man festhalten, dass es nicht so

einfach ist, sich das vorzustellen.

Ja, nimm mal so Stuttgart oder Düsseldorf oder sowas.

Vielleicht.

Johannes

Stuttgart hat 600.000 Einwohner, da gibt es keine zwei Millionen Häuser in Stuttgart.

Ja, aber der Wert, es geht um den Ding.

Düsseldorf hat auch 600.000.

Der Immobilienwert, eine Million.

Jochen

Ich glaube auch, dass die Zahl, wenn die Zahlen so groß werden, dann ist das unklar, was die an den Wert überhaupt beschreiben ist.

Jochen

Den Wert gibt es ja.

Also Amazon

als Unternehmen existiert ja, das hat ja

Jochen

irgendwie einen Wert.

Jochen

Aber du kriegst.

Johannes

Es waren imaginäre Dollar.

Jochen

Ja, das ist halt, das ist halt die Frage.

Jochen

Also da stehen ja auch Dollar dran, aber es ist trotzdem irgendwie sehr unklar, weil selbst kleine Veränderungen in der Zukunft ja riesige Auswirkungen haben können, gerade wenn der Marktwert so hoch ist.

Jochen

Das heißt, es ist halt irgendwie unklar, was dieses, was das Geld da, auch wenn man das quantifizieren kann, was das überhaupt an Wert bezeichnet, weil ja, sehr, also ich meine, bei anderen großen ist das ja, also bei Apple wäre das wahrscheinlich auch so, ne?

Jochen

Keine Ahnung.

Jochen

Ja, was ist das eigentlich?

Apple hat so einen Aktienwert.

Jochen

Die haben auch so einen Aktienwert, ja.

Jochen

Was ist, wenn, wenn sie es irgendwie verkacken oder keine Ahnung, das jetzt nicht mehr funktioniert?

Jochen

Genau, ist ja

unklar, was das alles ist.

Johannes

Also diese Aktienwerte sind doch hypothetisch wert, oder?

Die sind doch der Wert, wenn du zum jetzigen Zeitpunkt.

Dominik

Das sind keine hypothetischen Werte, das sind Buchwerte.

Okay.

Nee, nee.

Johannes

Das ist, wenn du zum jetzigen Zeitpunkt alle Aktien verkaufen könntest, dann hättest du so viel Geld.

Nein, nein, das geht ja nicht.

Das ist ja physikalisch unmöglich.

Genau, du sagst hätte.

Es gibt keinen Hätte.

Der Wert ist null.

Es gibt einen Hätte.

Nein, der Realwert ist null.

Der Wert ist null.

Du hast einen Buchwert, der da drin ist.

Der reale Wert ist null.

Genau, und das ist ein Buchwert.

Dominik

Du musst eine Transaktion machen, um was zu verkaufen.

Dominik

Da fünfst du einen Käufer finden.

Dominik

Du kannst gar nicht wahrscheinlich zu dem Preis alles, was.

Johannes

Für 1000 Milliarden kannst du nicht Aktien verbinden.

Zumindest nicht alle jetzt sofort findest du.

Genau, das geht nicht.

Ja, eben, das sage ich ja.

Johannes

Deshalb sind es ja hypothetische.

Johannes

Wenn du gerade alle Aktien verkaufen könntest, dann hättest du folgenden Wert.

Dominik

Das ist die Hoffnung auf zukünftige Umsätze, also auf zukünftige Produktivität der Marken, des Values, der Businesses, wo auch immer die ihre Kohle rausziehen wollen.

Das ist mehr zu kompliziert.

Ja, das ist gar nicht zu kompliziert.

Viel Fantasie.

Jochen

Ja, genau.

Jochen

Ja.

Dominik

Jetzt müsste man eigentlich bei Stable Diffusion mal eingeben, irgendwie so Twitter,

Dominik

Armageddon und so einen cleveren Satz.

Mal gucken,

Jochen

da passieren bestimmt dann auch lustige Sachen.

Jochen

Wobei, ich meine, bei Stable Diffusion und so, man muss halt schon irgendwie, man muss man muss lange warten und so und kreativ sein beim Aufschreiben von Prompts und das weiß nicht.

Was?

Ja, nicht?

Nein.

Okay.

Dominik

Mach mal Mage das auf.

Hast du mal Dalli ausprobiert?

Ach, Dalli.

Dalli habe ich auch ausprobiert.

Dominik

Mach mal Mage.space aufprobieren.

Mage?

Irgendwie der Magie.

Dominik

Und dann.space.

Johannes

Checking if the side connection is secure.

Oh oh.

Create anything.

Ja, Jochen Tipp gerade irgendeinem Satz zu erinnern.

Müssen wir ein bisschen warten.

Ist okay.

Ja, aber es ist

kein CPS-Hinter oder was?

Dominik

Also da ist keine dicke Grafikkarte.

Dominik

Das könnte man ja hinterhängen.

Jochen

Ja, aber gut, das genau, diese Experience habe ich auf meinem Laptop auch und die ist halt.

Jochen

Das ist schon was.

Jochen

Geht so.

Jochen

Ja, okay.

Und?

Was hast du eingegeben?

Jochen

Ja, Twitter-Amageddon, das von oben.

Dominik

Vogel und der, der hat, also dieser Bird.

Dominik

So ein Gelber, der hat irgendein Viech in der Hand und versucht das zu fangen.

Dominik

Und das ist so ein sehr artificiell Komicz.

Sieht cool aus.

Johannes

Ich habe gerade alle Rechenleistungen aufgenommen, deshalb kann ich jetzt.

Ah ja.

Johannes

Elon Musk destroying Twitter with Gasoline.

Jochen

Siehst du, wenn man da gute Prompts schreiben kann, dann passieren auch lustige Sachen.

Jochen

Aber ich weiß nicht.

Johannes

Also den Prompt kann ich nicht empfehlen.

Jochen

Ja, ja, aber gut, also auf jeden Fall, da passieren lustige Sachen gerade und vielleicht gibt es ja, es gibt auch diverse Dinge in Python, die man da benutzen kann, um dieses Activity-Pub oder was wie das Protokoll heißt, da irgendwie zu sprechen.

Jochen

Naja, vielleicht huste ich da ja doch nochmal was.

Jochen

Mal schauen.

Johannes

Implementierst ja erstmal

dann eigentlich dann.

Dominik

Du kannst dann dann eigentlich alle Nachrichten, die über dich gehen, mitlesen, oder nicht?

Dominik

Du kannst doch dann eigentlich alle Nachrichten mitlesen.

Dominik

Oder hast du das im Protokoll verboten?

Ja, genau.

Johannes

Nee, das kann dann sein, dass deine RP gebannt wird, aber da gibt es ja Wege außenrum.

Johannes

Nee, aber das gibt es tatsächlich, da gibt es ja Vorschläge der Simon Willison zum Beispiel, der ja auch sehr groß ist in der Python-Welt, hat gesagt, der ist jetzt auf Mastodon und ihm gefällt es total.

Johannes

Und er vermisst so ein bisschen seine Timeline, aber das kann er sich ja jetzt selber schreiben.

Jochen

Ja, ja.

Jochen

Das habe ich von vielen Leuten.

Jochen

Ich habe von vielen Leuten, die sagen so, also auch Simon Willison hat es auch, er hat zum Beispiel zweimal die gleichen Sachen.

Jochen

Einmal auf Twitter, einmal, der hat auf Twitter irgendwie zehntausende Follower, keine Ahnung.

Jochen

Auf Mastodon irgendwie ein Zehntel davon.

Jochen

Und hat dann zweimal das gleiche gepostet und hat gesagt, guck mal hier, irgendwie Interaktionen auf Mastodon viel, viel mehr, viel interessantere Geschichten.

Jochen

Auf Twitter war eher so lahm.

Jochen

Also klar, ist natürlich jetzt auch irgendwie wahrscheinlich

die unabhängige

Bias auch, ne?

Johannes

Wisst ihr, was der Eternal September ist?

Jochen

Genau.

Jochen

Und auf Mastodon sind die jetzt halt noch nicht.

Jochen

Das ist richtig.

Jochen

Also ich meine, ja, natürlich.

Jochen

Aber andere sagen das auch, sagen momentan ist er echt eine gute Party, weil es sind eigentlich nur nette Leute und die ganzen Pupa haben es noch nicht gefunden.

Jochen

Mal schauen, wenn es im nächsten September ist, vielleicht dann rum.

Dann hast du es ja auch da Jochen.

Jochen

Ja, wenn ich da jetzt auch hingehe, dann ist es wahrscheinlich vorbei.

Ja, aber schon interessant.

Jochen

Auch interessant sein, Willison habe ich jetzt gesehen, als ich in dem Kontext auch mit der Authentifizierung da beschäftigt habe, gibt es dann ein Paket von ihm namens Django IndieAuth.

Jochen

Und da fühlte ich mich auch so, als habe ich irgendwann mal 2016 auf irgendwie einer von diesen Vorveranstaltungen von DBR und Tellerant saßen wir mal da bei Zipgate rum und haben so IndieWeb voll gut, war so eine Indie-Web-Konferenz, habe ich das auch mal implementiert.

Jochen

Django IndieWeb ist ein Paket von mir, da habe ich auch schon mal IndieAuth implementiert.

Jochen

Jetzt hat er heim willstens auch nochmal implementiert.

Jochen

Muss ich mal vergleichen, was er dafür machen kann.

Jochen

Offenbar muss das jeder mal machen, ja.

Dominik

Sechs Jahre später, Jochen, du bist ja in der Zeit voraus.

Jochen

Ja, weiß man nie so genau, oder?

Jochen

Ja, aufs falsche Pferd zum falschen Zeitpunkt gesetzt.

Jochen

Wer weiß.

Jochen

Ja.

Jochen

Aber ja, das hat es so ein bisschen gemacht.

Jochen

Wo waren wir stehen?

Jochen

Das war gut.

Jochen

Das ist eigentlich eine gute Sache.

Jochen

Genau, wo waren wir stehen?

Jochen

Ich gucke gerade in die Liste.

Jochen

Waren noch interessante Dinge dabei?

Jochen

Ja, also vielleicht kann man noch ein bisschen was zu dem, also die ganzen Dinge, die ich jetzt hier noch habe, sind alles so eigentlich eher so kleinere Geschichten.

Jochen

Tommellip, weiß ich nicht.

Ja, da war ich

total überrascht bei Tommellib.

Warum?

Welche ist es denn?

Johannes

Welche haben Sie denn reingenommen oder eine neue?

Jochen

Nee, ich glaube, sie haben tatsächlich das, was Tomilip, ich dachte, es gibt noch.

Jochen

Ich weiß, Sie

haben das Ding irgendwie reingenommen.

Mindestens drei.

Piamil?

Mindestens drei.

Tommel?

Einfach Tommel?

Tomli.

Tommellib.

Ah, okay.

Ja.

Jochen

Ich glaube, es ist Tommellib.

Ist in die Standard-P reingekommen.

Aber es kann doch nicht schreiben.

Dominik

Oh, apropos, es gibt auch so eine riesen PEP gerade zum Rausschmeißen von vielen Zeugs aus der Schule.

Ja, der auch die sind in der Dokumentation jetzt schon separat aufgeführt.

Johannes

Deprecated Packages oder sowas.

Nicht deprecated

Jochen

Batteries, ja, auch von irgendwas.

Jochen

Genau, genau, Heimes, der hat diese PyScript nach WebAssembly kompilieren, Python gemacht hat, ja.

Johannes

Ja, ich war da kürzlich sehr überrascht, weil persönlicher Bezug, ich verwende Tommel, ich finde Tommel gut.

Johannes

Und ich habe Sachen mit Tommel geladen und die dann gepickelt.

Fragt nicht warum.

Johannes

Und wenn man diese Standard-Tommel-Bibliothek, also nicht die jetzt in der Standardbibliothek ist, sondern die, die davor einfach, also wenn man Pip Install Tommel gemacht hat, dann kann man die Sachen, kann man bestimmte Dinge nicht entpickeln.

Johannes

Und zwar Timestamps mit Zeitzone.

Die werden gut gepickelt.

Johannes

Da fehlt irgendwas.

Johannes

Na gut, das mir macht es auch keinen Spaß, Timestamps mit Zeitzone zu haben, aber die gibt es nun mal.

Johannes

Das kann Tomli kann das nämlich.

Johannes

Und dann bin ich auf Tomli umgestiegen.

Johannes

Und jetzt müsste ich dann da tatsächlich mal ausprobieren, ob man das in Python 3.111 einfach auch so machen kann.

Und ob die korrekt pickeln.

Johannes

Ich weiß, das ist eine lustige Kombination, Tommel und Pickel, aber ich habe es halt gebraucht.

Für einen Cache.

Ich will hier gerade Pickel.

Dominik

Wenn du ein Pickel lehrst, dann kann ich doch einfach alles ausführen, was ich will, oder?

Ja, schon.

Und sind die

Dominik

ganzen Maschinenlearning-Modelle nicht alle Pickel-Fallen?

Jochen

Nee, nee.

Jochen

Also ja, man benutzt da häufig auch Pickel, aber nee, nicht so gut.

Dominik

Ganz oft.

Ja, viele machen das so.

Dominik

Das heißt, du kannst einfach so hochladen und sagen, guck mal hier, ich habe doch total neue Maschinenmodell für bla bla bla und alle Leute führen deine Pfeil auf.

Jochen

Ja, also ich meine, aber

du kannst auch mal.

Da sind wir wieder bei den guten und bei den Schlachten.

Jochen

Ja, aber ich meine, wenn du sagst, ich habe hier ein tolles Machine Learning-Modell, installiere mal hier dieses Papip, dieses Paket.

Jochen

Natürlich, wenn du Papip-Sachen installierst, dann kannst du auch alles machen.

Jochen

Das ist halt, ja klar.

Ja, bei

Pip muss ich ja auch noch ausführen.

Nö, das installierst.

So beim

Instalieren, wenn der Arsch ausgeführt.

Jochen

Also ich kann, wenn ich installiert werde als Paket, kann ich alles machen.

Okay.

Ja, ja.

Jochen

Ja, also genau.

Jochen

Ah, äh, genau.

Jochen

Was in schnellerem Python irgendwie, was da so für ein paar Sachen sind, die passiert sind, ist vielleicht auch halt.

Jochen

Also Exceptions hatten vorher so ein bisschen Overhead irgendwie.

Jochen

Dadurch, dass sie zum Beispiel, dass halt Speicher adociert werden musste, den man braucht, wenn man jetzt eine Exception schmeißt.

Jochen

Das muss man halt vorher machen.

Jochen

Und das war vorher auf dem Heap und das heißt, man hat irgendwie mehr oder weniger Maloc aufgerufen, keine Ahnung.

Jochen

Und das hat es halt langsam gemacht.

Jochen

Das heißt, du hast halt dann immer, wenn du irgendwie Tri-Ecept gesagt hast, hast du damit den Code, der da drin steht, ein bisschen langsamer gemacht.

Jochen

Und das ist jetzt weg, weil jetzt wird halt irgendwie ein statisches Dings irgendwie alloziert und das wird halt immer benutzt und dann, da kümmert sich jetzt Python selber drum, dass das heißt, es ist jetzt der Overhead von Tri-Except ist nur noch, also es heißt irgendwie Zero Cost Exceptions oder so, oder Zero Cost Tri-Except, aber das ist es nicht wirklich, es kostet irgendwie 1% Overhead immer noch, aber es ist halt viel weniger als vorher.

Jochen

Dann sind so Dinge passiert, Funktionen aufrufen ist schneller geworden, unter anderem und die brauchen auch weniger Speicher, auch weil da irgendwas mit den Frames irgendwie anders gemacht wird.

Jochen

Ich weiß nicht mehr genau, was sie gemacht haben.

Jochen

Und deswegen geht auch Rekursionen jetzt ein bisschen tiefer, muss das noch von Hand umstellen, aber ja, dann genau Python-Objekte sind ein bisschen kleiner geworden.

Jochen

Also bei Python 2 zu Python 2 Zeiten waren es irgendwie so, ich hatte ein Objekt mit vier Attributen, braucht irgendwie 350 Byte oder so.

Jochen

In Python 3 waren es dann nur noch so irgendwie 200 oder so, sondern irgendwie waren es bis bei 310 sind es 120 Byte und jetzt sind es irgendwie 95 oder sowas, keine Ahnung.

Jochen

Aber es ist schon deutlich weniger geworden.

Jochen

Also Objekte brauchen auch deutlich weniger Platz als früher.

Jochen

Ich meine, das kann man nicht gut mit C Plus braucht nur 32, aber ja.

Ja, aber auch, ich meine.

Ja.

Immerhin.

Jochen

Aber immerhin, es geht da schon

Jochen

in eine sehr erstaunliche Richtung.

Jochen

Ja, dann großer, das Größte bei dem Wie wird Python schneller Feature ist halt, dass halt quasi der Bytecode halt umgeschrieben wird.

Jochen

Wenn da ein paar Mal irgendwas gemacht wurde und man das jetzt durch irgendwas Einfacheres ersetzen kann, dann wird das halt ersetzt und dann wird halt die einfache Operation gemacht an der Stelle.

Dominik

Der merkt sich quasi, was er schon kennt und macht das dann einfach schnell durch, ohne dass er jedes Mal rumhüpfen muss und kennt einfach direkt den.

Jochen

Ja, ja, also da sind solche Dinge, Dick-Lookups zum Beispiel, wenn das halt häufiger passiert.

Jochen

Ganz wichtig, Globals, Locals, also früher hat man ja auch immer solche Sachen gemacht wie, oder so, wenn man in Schleifen oder in heißen, warmen Code-Teilen irgendwie, wenn man, da habe ich, mache ich heute noch irgendwie, manchmal mache ich es so instinktiv, dass ich dann halt eine lokale Variable verwende, damit halt nicht immer quasi, also entweder ein Attribut-Lok abgemacht werden muss bei einer Klasse oder es in Globals oder so nachgeschlagen werden muss, sondern dass man es halt ein Lokal, Local-Strack hat und dann sofort gefunden wird.

Jochen

Das ist jetzt alles egal, das ist alles jetzt immer gleich schnell.

Jochen

Jedenfalls, wenn es achtmal passiert ist, danach ist es dann immer gleich schnell.

Jochen

Und das ist halt auch eine ganz ordentliche Verbesserung.

Dominik

Kannst du nochmal kurz sagen, was du meinst mit heißen Stellen vom.

Jochen

Ja, also du hast halt irgendwie vierfach verschachtelte Vorloop, die Variable, du machst irgendwas plus irgendwas da drin oder so.

Jochen

Die Variable, mit der du das machst, die ist halt heiß.

Die brennt die ganze Zeit.

Jochen

Ja, wenn du irgendwas Self-Punkt irgendwas sagst, war das früher nicht so gut.

Johannes

Es ist so ein Paradigma, dass man sagt, der meiste Code, den du schreibst, der wird nicht oft ausgeführt.

Johannes

Und dafür gibt es ganz wenige Stellen, die dafür ganz oft ausgeführt werden.

Dominik

Und wenn du Self-Stellen oft macht hast.

Johannes

Die Stellen, die oft ausgeführt werden, das sind halt die heißen Stellen, ja.

Johannes

Und wenn du da Operationen machst, die teuer sind, dann sind die halt unverhältnismäßig viel teurer für die Gesamtlaufzeit des Programms, als wenn du halt irgendwo in der Initialisierung was leider hast.

Jochen

Genau, weil die wird nur einmal passiert geführt.

Ja, genau.

Dominik

Okay, okay, bei Safety Call macht dann das ganze Objekt immer ausprobieren muss und so weiter.

Johannes

Und wenn du halt in der Schleife, die eine Million Mal ausgeführt wird, eine Nanosekunde mehr verbrauchst, dann ist das halt direkt messbar.

Johannes

Und deshalb versucht man solche, versucht man eigentlich Optimierung.

Johannes

Das ist das, was man mit Profiling erreichen will.

Johannes

Wenn du anfängst zu optimieren, guckst du erst, wo du optimieren musst.

Johannes

Und deshalb, also es lohnt sich nicht, irgendwelche Routinen zu optimieren, die im Programmlauf nur zweimal ausgeführt werden, wenn du dafür irgendwo eine Schleife hast, die eine Milliarde Mal durchgewirbelt wird.

Johannes

Und deshalb hat der Jochen direkt Mikrooptimierungen gemacht mit Lockhart.

Jochen

Ja, ist auch vielleicht nicht so schlau, so sollte man auch nicht, aber es gab durchaus Stellen, wo das dann viel gebracht hat.

Johannes

Wenn der das weiß, dass das was bringt, dann kann man das.

Ja, ja, genau, dann kann man auch machen.

Dominik

Das ist doch legitim, das kannst du nochmal erkennen, was du da gemacht hast.

Jochen

Ja, solche Dinge wie eben ein Attribut, das in einer Klasse dranhängt, halt einen lokalen Namen zu geben.

Einfach zu sagen, Lokalunterstrich-Name gleich Self-Punkt, irgendein Attribut, was man dann halt ganz oft braucht.

Dominik

Und das da gehe ich dann erst rein und rechnest

daran rum.

Ja.

Dominik

Weil an der Anfangs sich verändert und am Ende schreibst du es wieder weg.

Jochen

Ja, oder braucht man es dann auch nicht mehr?

Ja, oder auch Methoden rausholen, dass du halt nicht self-compute machst, sondern dass du halt sagst, Compute gleich Self-Punkt Compute und dann kannst du 100 Mal Compute ausführen und musst nicht jedes Mal diesen Lookup machen.

Und das ist jetzt besser.

Jochen

Ja, genau, das muss man jetzt eigentlich nicht mehr machen.

Jochen

Das passiert jetzt automatisch sozusagen.

Okay, ah,

beim achten Mal.

Jochen

Ja, irgendwie so.

Ich glaube, das ist momentan.

Jochen

Also es ist ein Implementationsdeteil,

das muss man sich

auch jedes Mal ändern.

Jochen

Aber irgendwie ist es auf 8.

Da vertrauen wir drauf.

Jochen

Ist ja auch wurscht.

Jochen

Also ich meine, das macht ja nur einen Unterschied

bei Dingen, die

Jochen

sowieso tausende Mal gemacht werden.

Jochen

Und da, ob das jetzt acht oder zwölf Mal ist auch egal.

Dominik

Aber cool, das ist ja das automatisch.

Dominik

Das heißt, man kann, also die Sachen, die man nicht vorher nicht kannte, die kann man einfach ignorieren.

Jochen

Genau, jetzt kann man es halt schön hinschreiben und das sollte trotzdem sein.

Jochen

Genau, und manche Sachen gehen halt noch nicht.

Jochen

Also was geht, was halt zum Beispiel durch schnellere Operationen ersetzt wird, ist halt so Floats, wenn man die addiert, multipliziert und so, keine Ahnung, bei Int und Float, also und wenn Ints, wenn es nur ins Int, wenn es nur Floats sind, geht es, glaube ich.

Jochen

Wenn es Int und Float sind, geht es halt nicht.

Jochen

Oder so.

Jochen

Kommt dann vielleicht irgendwann oder es halt hat sich rausgestellt, ist nicht so effektiv, wenn man das macht.

Jochen

Keine Ahnung, aber eigentlich muss man das alles nicht wissen.

Jochen

Es ist einfach, man kann einfach den Code so schreiben, wie man das macht.

Jochen

Es gibt eine ganz interessante Geschichte, das Ding heißt Specialist und man kann, also es gibt ja diese Dis-Funktion, mit der kann man sich den Bytecode angucken.

Jochen

Und wenn man dem noch ein Parameter übergibt, dann zeigt es einem auch an, welche Sachen rewreitet worden sind und welche nicht.

Jochen

Und das heißt, so kann man sich halt beim eigenen Code angucken.

Quasi beobachten.

Jochen

Ja, genau.

Cool.

Dis für Disassembly.

Genau.

Jochen

Ansonsten, ja.

Jochen

Nee, also ich glaube fast immer, oder ich weiß nicht, habt ihr noch irgendwelche Dinge, die in Python 3.11 dazugekommen sind, die ich jetzt noch nicht drin hatte, die irgendwie interessant sind.

Dominik

Ganz wie Speed, Speed, Speed.

Jochen

Ja.

Jochen

Ja, und es wird jetzt einzige, was zählt.

Jochen

Es wird ja jetzt auch immer mehr.

Jochen

Also das ist ja eigentlich ein Plan, der fünf Jahre lang verfolgt wird,

einen Fünf-Jahresplan.

Jochen

Ja.

Dominik

Und diese wichtigen Dinge, wo man genau weiß, was in fünf Jahren alles passieren wird.

Jochen

Ja, so ganz

genau weiß man es

Jochen

natürlich nicht, aber es ist halt ein langfristiges Projekt.

Jochen

Also tatsächlich geht über.

Jochen

Also ich glaube, der Shannon-Plan, der ist halt irgendwie, das soll über fünf Jahre soll Python irgendwie ungefähr fünfmal so schnell werden wie vorher.

Maxel.

Ja.

Jochen

Und ja, es sieht alles aus.

Johannes

Wenn diese Pläne schon einen Namen bekommen.

Jochen

Ja, es ist gut in der Zeit.

Jochen

Also bisher sieht das so aus, als ob es funktionieren würde.

Johannes

Es ist jetzt ein Jahr rum und das ist schon einmal so schnell wie vorher.

Genau.

Jochen

Ja.

Jochen

Also es hat sich um ein Jahr verzogen irgendwie, aber ansonsten ist alles noch so.

Ja, dann habe ich ja recht tatsächlich.

Jochen

Ein Jahr hier mehr und weniger, meine Güte, ach, sechs Jahre haben wir.

Jochen

Klar, also ich meine, das ist halt alles, da muss man halt, was weiß natürlich keiner so genau.

Jochen

Das kann man halt, je länger das wird, desto schwerer ist es auch zu sagen.

Jochen

Aber momentan ist ja funktioniert alles.

Genau.

Jochen

Ja, was haben wir denn sonst noch so für News?

Jochen

Es gab noch ein paar andere Sachen außer Python, die passiert sind, aber ich glaube, Python können wir dann an der Stelle 31 jetzt so ein bisschen drüber geredet.

Johannes

Was ist denn noch passiert, erzähl mal.

Jochen

Also, zum Beispiel, also ich glaube auch eine neue Django-Release, die jetzt 3-11 Reddy ist, zum Beispiel.

Johannes

Ich hab gehört, das ist schneller geworden.

Jochen

Wollen wir nochmal über die 311?

Jochen

Ja, was auch noch großes Release hat jetzt nicht direkt was mit Python zu tun, aber in dem Umfeld natürlich auch immer interessant, Postgres 15 ist released, also zumindest nachdem wir das letzte Mal irgendwie aufgenommen haben.

Und was kann das mehr?

Die werden auch immer schneller.

Jochen

Das ist immer schneller geworden, genau.

Jochen

Es kann jetzt das Rider-Headlock direkt komprimieren.

Jochen

Also es ist irgendwie, was reingekommen ist halt, dass bestimmte Sachen, so LZ4 und Z-Standards, sind halt direkt in Postgres drin, sodass du da halt, deine Backups direkt komprimiert rausschreiben.

Jochen

Und das Rider-Headlock kann auch direkt komprimiert geschrieben werden.

Jochen

Das macht es halt auch ein bisschen schneller, einfach deswegen, weil du weniger schreiben muss.

Jochen

Ja, das ist dann Merge, ach das große Feature, Merge-Statements, die im SQL-Standard drin sind, sind jetzt implementiert worden.

Jochen

Da kannst du halt diverse Geschichten Insight-Update, sonst wie Sachen mixen und weiß ich nicht, ob das, also kann man, wenn man rohes SQL schreibt, kann man das vielleicht benutzen, bis das irgendwo in den ORMs und so ankommt.

Jochen

Noch ein bisschen dauern.

Jochen

Keine Ahnung.

Jochen

Ja, ansonsten, ja.

Jochen

Indizes ein bisschen schneller geworden, Distinct, kann jetzt parallel abgearbeitet werden.

Ach ja.

Jochen

Also eigentlich ist es ein bisschen schneller, ein bisschen hübscher geworden.

Johannes

Ich habe bei den Kunden, die haben noch Postgres 8.1.

Ja.

Johannes

Und das ist ganz schön schwierig, weil da kriegt man keine Docker-Container dafür, da kriegt man keine Dokumentation mehr dafür.

Ich habe einen Kunden, da gibt es eine.

Nein, die schreiben ihr Back in den Date.

Das ist schon immer so.

Jochen

Also ich meine, warum warum machen die das?

Jochen

Sind dann Kunden so im Bereich irgendwie?

Jochen

Ja, gut.

Johannes

Läuft halt noch.

Jochen

Sie betreiben kein Museum für alten Code oder so, oder nein?

Johannes

Nein, aber es ist ein öffentlicher Kunde.

Johannes

Das geht schon in Richtung Museum für alte Maschinen.

Johannes

Nee, aber das ist tatsächlich echt schwierig, weil zum Beispiel Django so alte Versionen von Postgres einfach nicht unterstützt.

Johannes

Da kannst du einfach, also du kannst direkt migrate, kannst du es gar nicht machen.

Jochen

Ja.

Johannes

Und dann fängst du schon an, so echt schwer zu werden, weil du dann die Django-Version zurückdrehen musst in den Zweier-Bereich.

Da.

Erreicht noch zwei?

Johannes

Ja, mit 2.2 ging das, glaube ich.

Johannes

Also sie sagen nicht, dass es offizielle Kompatibilität gibt, aber es ging dann irgendwie.

Johannes

Ich musste irgendeinen Feature noch vermeiden und dann haben wir es irgendwie.

Johannes

Aber es ist ja schön, dass dann Postgres jetzt fast doppelt so weit ist wie diese Park-Version.

Die ganzen Legacy-Sachen benutzen.

Dominik

Und das sind immer von den Leuten, die meinen, die müssen das unbedingt selbst migrieren, weil die die Sicherheitslücken besser finden als die Community.

Johannes

Muss jeder selber entscheiden.

Jochen

Ja, wo wir schon, wo wir schon über da waren.

Johannes

In dem Fall habe ich tatsächlich einfach gemacht, was der Kunde wollte.

Johannes

Die hatten das Geld, um das zu bezahlen.

Dominik

Ja, ja, bei dem Thema waren wir heute schon mal.

Jochen

Ja, ich meine gut, dass Leute alte, das ist halt irgendwie, ja, manche Leute stehen halt irgendwie drauf.

Jochen

Tja.

Jochen

Ich mach's nicht so.

Jochen

Aber beim Thema Datenbanken das auch ganz interessant.

Jochen

Da gab es jetzt ein, also ich glaube, ich weiß nicht, ob das auf der DjangoCon US war oder ich weiß es nicht, irgendwie haben sich Carlton Gibson und Simon Willison unterhalten und das haben wir so, hm, warum ist eigentlich, warum steht in den Django-Docks eigentlich drin, SQLite wird nicht für einen Produktionsbetrieb empfohlen.

Jochen

Und ja, der Grund ist halt, naja, wenn man SQLite verwendet und dann fangen plötzlich an, also es funktioniert im Entwicklungsmodus, funktioniert das ja alles super.

Jochen

Und dann, wenn man es produktiv verwendet, dann fangen Leute an, da Sachen reinzuschreiben, dann ist halt relativ schnell Ende Gelände, weil kann halt immer nur ein Thread reinschreiben und die locken halt und wenn man viel schreibt, dann lockt sich das alles gegenseitig.

Jochen

Dann lockt man.

Jochen

Concurrent Rides und dann ist man sehr schnell in dann kriegt man Timeouts.

Timeouts die ganze Zeit.

Jochen

Ja, ist total so funktioniert nicht gut.

Johannes

Gut, das kann man noch ein bisschen in den Griff kriegen, der hat einen fünf Sekunden Standard-Timeout.

Johannes

Kann man natürlich hochdrehen, damit wird es nur langsamer, aber es ist am Ende.

Jochen

Genau.

Jochen

Und darauf hinten, ja, okay, Simon Millens macht ganz viel mit SQLite, äh, Tazetter und so Zeugs und hat er auch Ahnung von dem Ding und machte so, okay, ich probiere mal was.

Jochen

Und hat dann halt Benchmark dazu geschrieben und dann so Sachen ausprobiert, wie zum Beispiel einfach mal umstellen von dem normalen, ich weiß nicht, was der normale Mechanismus ist, auf Ride-Adlog, weil SQLite kann auch sowas mit Ride-Ad-Lock.

Jochen

Da hat man zwar immer noch das Locking-Problem, aber das ist halt irgendwie, also es kann immer nur einen gleichzeitig schreiben, aber irgendwie wird das dann halt alles so ein bisschen zwischengepuffert und ist halt schneller fertig.

Jochen

Und stellt sich raus, tja, also an der Stelle ist dann halt irgendwie diese Timeouts gehen weg.

Jochen

Es geht eigentlich.

Und es geht eigentlich, ja.

Jochen

Der hat ja wirklich so hunderte Requests pro Sekunde, also auch ich weiß nicht, wie viele tausend Sachen er da pro Sekunde schreiben konnte.

Jochen

Viel.

Und es geht.

Jochen

Und es skaliert auch.

Jochen

Und er dachte so, okay, was passiert denn jetzt, wenn ich mehrere Prozesse nehme, die draufschreiben?

Jochen

SQLite verwendet so ein File-Locking dafür.

Jochen

So, das fliegt mir bestimmt in die Ohren.

Jochen

Nö, es ist fast linear skaliert, bis zu vier Prozessoren.

Also geht auch.

Jochen

Das heißt, du kannst eigentlich, also für die allermeisten, also es wird kaum Leute geben, die, wenn man SQLite so konfiguriert, in einen Bereich kommen, wo sie Schreibprobleme kriegen.

Jochen

Das heißt, eigentlich kannst du das Ding halt auch produktiv deployen und Leuten das als Datenbank geben.

Jochen

Ich meine, man will vielleicht aus diversen anderen Gründen auch noch ein richtiges Postgres

behalten, aber

Jochen

für viele Sachen reicht es wahrscheinlich aus.

Jochen

Und dann brauchst du keinen Datenbank-Server mehr, weil das ist halt schon eine sehr schmerzhafte Geschichte.

Das ist schon ein Einrichtungsaufwand, der für viele Leute haltbar ist.

Jochen

Und wenn du das jetzt auf irgendeine kleine virtuelle Maschine mit Dateisystemen deployen kannst, reicht für die meisten Leute wahrscheinlich aus.

Jochen

Und das ist natürlich schon ein Netz.

Jochen

Gut, ja.

Also als ich

das gelesen habe, dachte ich,

Jochen

sollte man machen.

Jochen

Super, ja, also.

Genau.

Johannes

Hat SQLite nicht kürzlich so ein Sicherheitsthema gehabt?

Johannes

Ich erinnere mich, dass da irgendwas war.

Jochen

Oh, das habe ich, glaube ich, überlesen.

Jochen

Weiß ich nicht.

Johannes

Ja, nee, ich glaube, die hatten so ein Sicherheitsproblem bei sehr großen Writes.

Anscheinend gibt es da einen Overflow.

Oh oh.

Johannes

Wenn du irgendwie Max Bytes minus 1 an Daten holen hättest, das ist irgendwie ein Terabyte oder sowas.

Okay, na gut.

Johannes

Also es ist nicht kein realistisches, kein pragmatisches Problem.

Johannes

Aber tatsächlich war das so ein bisschen News, weil SQLite eigentlich sehr, sehr gut vertestet ist und sehr, sehr sicher ist.

Johannes

Und das war eben so eine Sache, wo einer gesagt hat, haha, aber wenn ich ein Terabyte gleichzeitig in einer Transaktion drin habe und dann irgendwas mache, da wird halt auch irgendein Puffer alloziert, der dann ausläuft.

Johannes

Dann geht's aber nicht mehr.

Ah, okay.

Johannes

Das passiert den besten.

Ja.

Ja, ja.

Jochen

Tja, ansonsten PyMC4 ist veröffentlicht.

Jochen

Heißt jetzt nur noch PyMC, so für probabilistische Programmierungsgeschichten Library, die man sich mal angucken kann.

Jochen

Also manchmal ist es ganz nett, das zu haben.

Johannes

Wofür steht denn MC?

Jochen

Monte Carlo.

Also MCMC Markov Genf für Monte Carlo.

Jochen

Ja, und das MC steht für Monte Carlo.

Okay.

Ja, ich weiß nicht genau.

Dominik

Und Andrew Carpathy ist ja jetzt seinen Job los und hat angefangen, ein Machine Learning Tutorial mit Python irgendwie auf YouTube zu verpflichten.

Jochen

Ja, ja, ich habe gesehen, er macht jetzt mehr YouTube-Videos wieder.

Dominik

Das ist gut, also so Neural Networks und so, so ein bisschen Intro, wie das in Python geht und so ein Language Modeling und sowas.

Jochen

Nett, ja, kann man sich auf jeden Fall auch angucken.

Jochen

Ja, der macht immer, der macht immer sehr schöne Sachen.

Jochen

Stimmt, warum der war ein paar Tesla, ne?

Jochen

War der Schritt von dem.

Jochen

Tja.

Ist er wohl entlassen worden?

Jochen

Nee, ich glaube, der ist tatsächlich freiwillig.

Jochen

Ja, es gibt da einige Leute, also der, der sich diese GAN-Modelle, äh, General Adversarial Networks, Generative Adversarial Networks, meine Güte.

Jochen

Das ist schon spät.

Jochen

Der war irgendwas auch Chefmäßiges für Machine Learning bei Apple und der wollte eigentlich weiter Homeoffice machen und Apple hat gesagt, nee, wollen wir nicht.

Jochen

Und dann ist er auch gegangen.

Achso, dafür eigentlich genau.

Johannes

Da muss man halt wissen, was einem wichtig ist, ob die Leute da sind oder ob sie da sind.

Ja.

Jochen

Also, ich meine, das ist halt auch eine sehr teure Policy, aber offenbar scheint

für Leute

Jochen

so effektiv zu sein, dass sie das gerne in Kauf nehmen.

Dominik

Die Policies sind ganz wichtig fürs Teamgefüge,

Dominik

fürs Building und für ihre Kontrollesüchte.

Jochen

Ja, ich glaube auch, das ist einfach, ich meine, wenn man, was ist denn, wenn man jetzt da so irgendwie eine Firma hat und da ist keiner?

Jochen

Das ist eigentlich gut.

Jochen

Also ich meine, wenn ich jetzt eine Firma habe, dann möchte ich ja auch schon sehen, dass da Leute sind.

Johannes

Du meinst, wenn du so ein teures Gebäude hast?

Ja.

Dominik

Die müssen da sitzen und arbeiten.

Mit der Peitsche dahinter

Jochen

liegen kann.

Jochen

Weiß ich gar nicht.

Jochen

Also wenn sie in einem Meeting sitzen und mir zuhören, finde ich das eigentlich auch okay.

Jochen

Da können sie ja gar nicht so viel arbeiten, aber das ist für mich eigentlich auch gar nicht so schlecht, finde ich.

Da kann sich reden würden.

Dominik

Aufmerksamkeit, Aufmerksamkeit, nur für dich, ja.

Ja, ansonsten.

Jochen

Genau, was hatten wir noch?

Jochen

Also es gab noch diverse, die gut, das ist jetzt für die meisten wahrscheinlich nicht so, oder ich weiß nicht, für mich war es ganz interessant, macOS und iOS-Updates, weil da gab es einige ganz interessante Geschichten.

Jochen

Also was mich ein bisschen genervt hat, es war diesmal ein sehr, sehr hakeliges Update für mich.

Jochen

Es gibt ein sehr schönes Feature, das ich tatsächlich sehr cool finde.

Jochen

Es gibt auf dem Mac, ich weiß nicht, wie macht ihr das eigentlich, wenn ihr Fotos teilen wollt mit anderen Leuten?

Machen wir nicht.

Jochen

Ist nicht so ein einfaches Thema, finde ich.

Jochen

Und auch auf iOS und oder auf Apple, im Apple-Universum ist es auch nicht so leicht.

Jochen

Also denkt man, man kann so ein Shared-Album machen und dann geht das?

Jochen

Nee, geht nicht, weil dann werden die ganzen Sachen irgendwie super klein gerechnet, winzig und dann.

Dropbox?

Jochen

Dropbox könnte man machen, aber dann hast du halt das Problem, dass du die Dinger, wie willst du die angucken?

Was legst du.

Jochen

Was legst du in diese Dropbox?

Jochen

Fotos?

Jochen

Ja, aber wenn du jetzt zwar, nehmen wir an, du hast RAWs.

Own Cloud?

Legst du die da rein?

Dominik

Von RAWs kann niemand angucken, da muss er schon irgendwie.

Jochen

Ja, aber ist halt,

Dominik

es ist irgendwie dabei so Probleme, die wenige Leute haben.

Ja, also.

Johannes

Der Jochann möchte halt seine 28K-Resolution-Fotos gerne schon in ordentlicher Qualität sharen können.

Ja.

Naja, aber dann musste er das halt selber schreiben, musste halt ein Verzeichnis haben, wo die Dateien drin liegen und die dann irgendwie zugänglich machen.

Johannes

Und ich meine, Image Gallery Software gibt es genügend.

Ich habe eine Lösung dafür.

Jochen

Also sozusagen für diese.

Jochen

Aber was halt auch schön wäre, ist, dass man das so, dass man halt ganze Alben oder so, nicht unbedingt nur so eine Auswahl, die man noch.

Jochen

Das ist ja auch Arbeit, das zu machen.

Jochen

Wenn man möchte, einfach Leuten sagen, so hier, ihr könnt das einfach auch angucken.

Jochen

Das gab es bisher eigentlich nicht und das kann man auch nicht gut öffentlich über eine Website oder so machen.

Jochen

Und das ist jetzt drin und das funktioniert eigentlich auch ganz gut.

Jochen

Und da funktioniert genau das, dass man.

Jochen

Also es gab auch vorher schon eine Möglichkeit, man konnte so einen iCloud-Sharing-Link erzeugen und da hat man so eine Webansicht gekriegt und da waren auch die Originalgrößendinger drin.

Jochen

Was die meisten Leute machen, ist wahrscheinlich, sie nehmen einfach den Kram und verschicken ihn vollkommen hemmungslos per WhatsApp oder so.

Jochen

Und WhatsApp rechnet den Kram dann irgendwie zu.

Gut genug.

Jochen

Also nehmen die Leute das und machen drei Ausdrucke dafür, hängen sich das in die Wand und sagen, also irgendwie sah das.

Johannes

Der Typ kann gar nicht fotografieren, das ist ja schrecklich.

Dominik

Das fällt mir gar nicht auf, das Motiv gefällt dir immer, deswegen hänge ich an die Wand.

Jochen

Ja, es ist wahr, aber ich will, ja.

Jochen

Aber es tut manchmal auch ein bisschen weh, wenn man sieht, was Leute so machen.

Dominik

Mit deinem Auge, mit deinem ästhetischen Anspruch.

Jochen

Ja, genau.

Jochen

Also das ist halt das, was Leute tun, ist sehr schrecklich.

Dominik

Aber es gab bei Mac-Update, wir reden schon schon lange über Mac-Upplates, wo das hier das gefixt ist und wo es irgendwie besser versst.

Jochen

Es gibt ja jetzt ein Feature, dass das halt fixt.

Jochen

Aber das hatte ziemlich hackelige Geschichten.

Jochen

Bei mir jedenfalls war es alles sehr schrecklich.

Jochen

Hat die ganzen Counts sind alle kaputt gegangen.

Jochen

Ich habe meine Uhr hat teilweise nur noch die Uhrzeit von gestern angezeigt.

Also es war alles irgendwie, es war

Jochen

sehr unrund.

Johannes

Aber dafür in voller Auflösung.

Jochen

Ja, ich weiß auch nicht.

Also.

Johannes

Aber weißt du denn, dass es die Uhrzeit von gestern ist,

Johannes

weil gestern hat er die gleichen Uhrzeiten wie heute.

Jochen

Ja, ich weiß, wann ich ins Bett gegangen bin und eingeschlafen bin.

Jochen

Und dann, wenn ich morgens aufwache.

Und dann ist er einfach stehen geblieben.

Genau, und dann ist er stehen geblieben.

Johannes

Ich dachte, du meinst, er hat jetzt bis 12 Uhr von gestern angezeigt.

Nein, das 12 Uhr von heute.

Das ist eine philosophische Frage.

Jochen

Ja, so solche

Gestart, ja, Smacey.

Ach ja.

Jochen

Genau.

Jochen

Ja, nee, das ist zumindest schon bei den unwichtigen Dingen angekommen, glaube ich.

Dominik

Ja, ich glaube, wir sind jetzt mit den News tatsächlich durch und wir machen mal das Thema, was wir heute machen wollen.

Ich weiß nicht, wie wir das machen.

Machen wir das jetzt.

Johannes

Nach zwei Stunden Diskussion fangen wir schon das Thema an.

Wir wollten ganz kurz das.

Dominik

Machen wir fünf Minuten Listen.

Dominik

Wir haben es am Anfang versprochen, wir konnten das schon wieder nicht halten.

Wir haben die ganze Zeit gequatscht.

Dominik

Das müssen wir auch einmal kurz, fünf Minuten noch in das Thema Listen einsteigen.

Okay, machen wir.

Aber vielleicht sollten wir.

Jochen

Gute, machen wir.

Listen.

Listen?

Johannes

Wer steigt jetzt ein von uns drei?

Man schreibt doch was rein, man poppt was rauch kann und fährt sich.

Dominik

Johannes, du kennst dich doch damit aus.

Johannes

Eine lineare Abfolge von Einträgen.

So, das ist eine Liste.

Dominik

Und eine Anzahl an Leuten.

Johannes

Ja, genau, die hat eine, also es ist eine lineare Abfolge.

Johannes

Es gibt ein erstes Element und ein zweites Element und ein drittes Element und ein viertes Element.

Johannes

Und vielleicht gibt es auch ein fünftes Element.

Johannes

Und das hört sich doch an wie was Sinnvolles, oder?

Johannes

So zum Programmieren, dass man sich mehrere Dinge merken kann.

Ist eine Liste ein Array?

Ist ein String eine Liste?

Johannes

Und genau, jetzt gibt es zwei Techniken, wie man sich sowas speichern kann.

Johannes

Das eine ist einfach alles hintereinander.

Johannes

Und das heißt dann normalerweise Array.

Oder Vektor oder Liste.

Johannes

Und das andere ist quasi immer mit Verweisen auf das nächste.

Johannes

Ich habe ein Element in der Hand und das nächste steht an dieser Stelle.

Johannes

Und das muss dann wieder ein Verweis auf das nächste haben.

Johannes

Und diese Technik heißt Linklist.

Johannes

Also eine verknüpfte Liste.

Johannes

Und die haben sehr unterschiedliche Eigenschaften.

Johannes

Obwohl sie sich, also von außen sehen die ja gleich aus.

Johannes

Von außen sage ich, ich gebe mir das dritte Element und dann kriegst du das dritte Element.

Johannes

Oder gib mir jedes Element nacheinander, so wie wenn man es in Python mit einer Vorschleife hat.

Johannes

Und das spielt keine Rolle, wie die darunterliegende Implementierung ist.

Johannes

Ob die jetzt im Speicher alle hintereinander gespeichert sind oder ob die alle irgendwo gespeichert sind und dann nur aufeinander verweisen.

Johannes

Aber so von den Laufzeiteigenschaften und von den möglichen Operationen oder von den Kosten der möglichen Operationen unterscheiden die sich ja schon sehr deutlich.

Johannes

Und das ist super interessant, weil es halt so, das Interface so quasi das gleiche ist, aber halt so vom Verhalten extrem unterschiedlich ist.

Und das ist so ein bisschen da der Kernpunkt an dieser Debatte, warum wir da diesem Thema eine Podcast-Episode können, wollten, wollten können oder nicht.

Johannes

Und es gibt da auch Verfechter auf beiden Seiten, das ist auch ganz interessant, dass da halt Leute sagen, nein, es muss so sein.

Johannes

Und zwar für beide Möglichkeiten.

Und die

Johannes

sind auch unterschiedlich schwer zu implementieren und das ist auch ganz interessant.

Johannes

Deshalb kennen viele Informatikstudenten halt die Datenstruktur Linked List, weil die super einfach zu schreiben ist.

Johannes

Es ist super einfach, eine Datenstruktur zu schreiben, die Linked List ist, weil du brauchst nur zwei Felder.

Johannes

Du brauchst ein Feld, das was ich speichern möchte, und ein Feld, das, was das nächste ist.

Also ein Paar eigentlich.

Dominik

Oder das, was das ist, geht das auch?

Ja, das kannst du machen.

Johannes

Das heißt dann Doubly-Linked List.

Johannes

Kann in beide Richtungen durchgehen.

Johannes

Du kannst sogar tatsächlich so Tricks machen, dass du auf ein späteres Element verweist und dann hast du sowas wie eine Skiplist.

Skiplisten.

Johannes

Ja, das ist eine meiner Lieblingsdatenstrukturen.

Johannes

Aber weil die so einfach sind, gibt es die schon sehr lange.

Johannes

Zum Beispiel Lisp ist im Wesentlichen gebaut aus solchen Linklists.

Johannes

Da gibt es Car und Cutter, also Content of Address Register und Content of Decrement Register.

Johannes

Das eine ist das Element, was man speichern möchte, und das andere ist ein Verweis auf die nächste Stelle, wo man was sich merken kann.

Johannes

Und das reicht schon aus, um eine Linktlist zu machen.

Johannes

Das reicht schon aus, um sich Sachen zu speichern.

Johannes

Und das ist ziemlich spannend.

Johannes

Und es ist sehr leicht, das zu schreiben und deshalb wird das eben oft als Beispiel für eine Datenstruktur benutzt in Informatikvorlesungen, in Einführungsvorlesungen.

Johannes

Dass man sagt, jetzt schreibt ihr mal eine Linklist.

Johannes

Und dann fügt mal 100.000 Elemente ein und schaut mal, wie schnell ihr es machen könnt.

Johannes

Und macht mal Iterationen und macht mal so, dass man in der Mitte was einfügen kann und macht mal so, dass man am Ende was löschen kann und macht mal so, dass man XY und Z machen kann.

Johannes

Und weil das so einfach ist und weil man es so einfach machen kann, gibt es da dann halt sehr viele schöne Optimierungstechniken.

Johannes

Zum Beispiel, wie der Dominik schon gesagt hat, Pointer in die andere Richtung speichern, dass man auch von hinten nach vorne durchiterieren kann.

Johannes

Oder, keine Ahnung, Pointer, die halt in die Mitte zeigen oder die irgendwelche Segmente haben oder Sublisten haben oder sonst irgendwas, wo du halt viele schöne Dinge machen kannst damit.

Johannes

Oder auch Cycle Detection, ja.

Johannes

Das ist dann was, was da herausfällt.

Johannes

Wenn du so eine Liste hast, wo du immer nur aufs nächste Element verweist, kann es ja sein, dass du ein Element hast, was irgendwo an eine andere Stelle in eine Liste reinverweist und dann hast du so einen Kreis in deiner Liste drin.

Johannes

Und wie machst du Cycle Detection?

Bitte?

Eine Cue.

Johannes

Eine Cue kannst du auch machen, genau.

Johannes

Wenn du quasi, da musst du dir nur das erste und das letzte Element merken, damit du dir was einfügen kannst am Ende und was abholen kannst vorne.

Johannes

Kann man sehr schön und sehr leicht viele Sachen draus bauen.

Johannes

Auch einen Tree kannst du dir sehr leicht rausbauen.

Johannes

Hast du halt nicht einen Pointer, den du dir, wo das nächste Element ist, sondern hast du halt zwei Pointer.

Johannes

Eins zum rechten Child und eins zum linken Child.

Johannes

Und dann hast du mit wenig Arbeit einen Baum aus deiner Liste gemacht.

Johannes

Und deshalb ist das so ein bisschen so ein fundamentales Bauteil in den Datenstrukturen.

Johannes

Aber auf modernen Prozessoren sind Linklists halt brutal langsam, üblicherweise.

Johannes

Weil du bei jedem Element einen Cash miss hast.

Normalerweise, ja.

Johannes

Und Cashmisses sind das Schlechteste, was du machen kannst auf modernen Prozessoren.

Was denn das ein Cache ist?

Ja.

Johannes

Man hat ja im Kopf immer auch die Farbstellen raus.

Johannes

Genau, Cashmiss ist, wenn du kein Geld bekommst.

Johannes

Wenn du zu wenig Geld hast.

Johannes

Nein, man hat ja im Kopf so das Bild, dass ein Computer aus zwei Bauteilen besteht.

Johannes

Das eine ist der Prozessor und das andere ist der Hauptspeicher und der Prozessor macht irgendwelche Dinge mit den Sachen, die im Hauptspeicher sind.

Johannes

Und das mag vor 40 Jahren so gewesen sein, aber das ist heutzutage leider nicht mehr so.

Johannes

Heutzutage gibt es viele verschiedene Ebenen von Speicher.

Johannes

Und je näher der Speicher am Prozessor ist, umso schneller ist er.

Johannes

Und umso kleiner ist er.

Johannes

Das heißt, ein Prozessor hat sogenannte Register, die sind direkt in den Prozessor eingebaut, aber davon gibt es halt nur, keine Ahnung, 16.

Johannes

Und die

Johannes

nächste Ebene drüber, die heißt L1 Cache, der Level 1 Cache und davon gibt es dann halt, keine Ahnung, 16 Kilobyte.

Johannes

Und dann gibt es den L2-Cache und das sind dann halt 128 Kilobyte.

Johannes

Und dann gibt es den L3-Cache, das sind dann 4 MB.

Johannes

Und weil die alle sehr klein sind, gibt es danach halt den Hauptspeicher und der hat dann auf einmal, keine Ahnung, je nachdem, wie viel mal er hat.

Johannes

8 GB oder 16 Gigabyte oder auch 128 GB so spielt keine Rolle.

Johannes

Und die Ebene dahinter, hinterm Hauptspeicher, ist eigentlich die Festplatte, oder beziehungsweise die SSD, die man jetzt drin hat, die dann halt in Terabyte gemessen wird.

Johannes

Die im Grunde genommen gar nicht so viel anders ist als das, was im Hauptspeicher drin ist, nur halt langsamer.

Johannes

So, und jede dieser Ebenen ist immer langsamer.

Johannes

Um auf ein Register zuzugreifen, das dauert einen Prozessorzyklus.

Johannes

Um auf den L1-Cache zuzugreifen, dauert, keine Ahnung, vier Prozessorzyklen.

Johannes

Auf den L2-Cache acht Prozessorzyklen.

Es ist ungefähr bei Kapture

Jochen

3 dazwischen, ja.

Jochen

Also bis auf am Schluss wird es mehr, aber mehr.

Johannes

Bis auf den Hauptspeicher, ja, beim Hauptspeicher plötzlich von.

Johannes

Genau, da ist eine große Lücke.

Johannes

Das heißt, es ist gefährlich, Sachen aus dem Hauptspeicher in den Prozessor reinzuholen, um dann Sachen damit zu machen.

Johannes

Und dieses ganze Schema funktioniert nur deshalb, weil Programme sowas haben, das heißt Lokalität.

Johannes

Wenn ich eine Speicherzelle bearbeitet habe, dann ist die Wahrscheinlichkeit hoch, dass ich die benachbarten Speicherzellen als nächstes bearbeite.

Johannes

Und deshalb funktioniert dieses Caching, weil das Caching eben darauf basiert, dass immer ganze Blöcke von Speichern in die Ebene darunter geholt werden.

Johannes

Das heißt, wenn ich jetzt im Hauptspeicher irgendeine Speicherseite habe, die hat 16 Kilobyte und ich lese da ein Byte draus, dann wird diese ganze Seite in den L3-Cache geholt.

Johannes

Und das Byte, was ich hole, das wird halt mit so einer Cache Line unterschiedlicher Größe in den L2-Cache geholt und daraus in den L1-Cache und daraus in die Register und in den Registern wird das dann gemacht und dann geht das ganze Spiel wieder zurück.

Johannes

Das heißt, wenn ich auf benachbarten Speicherzellen operiere, dann muss ich das nur einmal diese Seite aus dem Hauptspeicher in den Prozessor reinholen und die anderen Zugriffe, die sind dann wesentlich schneller.

Johannes

Wenn ich jetzt aber im Hauptspeicher hin und her springe, so wie es bei einer Linkedlist ist, dann muss ich jedes Mal diese gesamte Speicher, muss ich jedes Mal in den Hauptspeicher gehen.

Johannes

Und Hauptspeicher ist halt aus der Sicht eines Prozessors extrem langsam.

Johannes

Also das eine wird in Nanosekunden gemessen und das andere wird in Mikrosekunden gemessen und das ist einfach ein brutal großer Unterschied.

Johannes

Und deshalb ist die Linklist heutzutage so ein kleines bisschen verpönt, habe ich das Gefühl.

Johannes

Das ist so, ach, der benutzt LinkedList, der heißt keine Ahnung.

Johannes

Weil die halt Cache-Misses erzeugen, weil die halt im Speicher hin und her springen.

Johannes

Die andere Technik, die man machen kann, das heißt oft Array oder Vektor, ist, dass du halt die Elemente alle hintereinander schreibst.

Johannes

Dass du sagst, das erste Element steht an Speicheradresse 1 und das zweite Element steht an Speicheradresse 2 und das nächste Element steht an Speicheradresse 3 und halt je nachdem, wie groß die Dinger sind, dass du die halt alle aneinander packst.

Dominik

Aber was das heißt, wenn du durch so ein bisschen drin steht dann nur der Zeiger auf das richtige Objekt drin.

Jochen

Und unterschiedlich, ja, also genau, es kann halt, was du halt hast.

Dominik

Sonst hast du ja eine Maximalgröße von Dingen, die da drinstehen können und dann verschwendest du einen Speicherplatz, wenn nicht alle gleich groß sind von den Dingen, die drinstehen und drückt.

Ja, je nachdem, was du halt hast.

Johannes

Also wenn du eine Liste von Integern hast, dann sind die halt alle 32-Bit groß und dann stehen die halt einfach zack, zack, zack nebeneinander.

Johannes

Wenn du einen String hast, dann sind die halt alle, keine Ahnung, auch 32-Bit groß, weil man zwischen Unicode macht.

Johannes

Wenn du Floats hast, hast du halt 32-Bit oder 64-Bit oder 128-Bit-Floats oder was auch immer du hast.

Johannes

Das ist sozusagen der Nachteil da drin.

Johannes

Du musst halt die Größe wissen.

Johannes

Du musst wissen, was du da reintust.

Johannes

Du kannst auch, wenn du Objekte da reinspeicherst, dann werden das üblicherweise ja Pointer sein zu Objekten, ja, oder halt Verweise.

Johannes

In Python zum Beispiel, da braucht man gar nicht so richtig drüber sprechen, weil das immer alles nur Verweise sind auf andere Dinge.

Aber ja.

Johannes

Der Vorteil davon ist halt, wenn du, wenn du, sagen wir mal, ein Array hast mit 128 Integern drin und da das erste Element liest, dann musst du das ja aus dem Hauptspeicher in den L3 holen und dann hast du aber das gesamte Array schon direkt im L3 drin.

Johannes

Das heißt, die Zugriffe, die dann auf das zweite Element sind, die kosten vergleichsweise gar nichts.

Und das

Johannes

ist natürlich sehr schön, wenn du Operationen machen kannst, wo die Speicherzugriffe einfach schon gecached sind, wo du schon die Sachen geholt hast.

Johannes

Und deshalb ist das heutzutage so ein bisschen die Technik, die man eher einsetzt, dass man halt sagt, wir machen Arrays, die zwar an dieser Stelle eben wesentlich schneller sind, aber dafür andere Nachteile haben.

Johannes

Zum Beispiel ist es bei Arrays schwieriger, Sachen einzufügen und rauszulöschen auch.

Johannes

Das heißt, dieses Q-Beispiel, was der Dominik sofort intuitiv gesagt hat, ja, das ist ja easy, ja, kannst du hinten einfügen und vorne rausnehmen.

Johannes

Das ist mit einem Array nicht so einfach umzusetzen.

Johannes

Und es hat sehr viele Edge Cases, ja.

Johannes

Selbst also wenn man sich das umsetzen möchte, kann man sich ja überlegen, ja, wenn ich vorne ein Element rausnehme, dann muss ich alle anderen da hinten eins nach vorne schieben.

Johannes

Das ist aber auch blöd, ja, weil da musste jedes Element anfassen, bloß weil der eins rausgeholt hat.

Johannes

Und das ist langsamer, wenn es mehr sind.

Jochen

Das ist eine Python-Listen kann man nicht so gut als quasi so, wenn man da dauernd Sachen hinten raus und vornherein tut oder so.

Jochen

Das geht mit Python-Listen nicht gut ganz genau aus.

Super schlecht.

Ja, und deswegen sollte

Jochen

man dafür lieber auch von Collections Deck oder so verwenden.

Jochen

Also Double-Ended Cue, das geht dort besser.

Oder Queue.

Johannes

Oder da baut man sich einen zyklischen Puffer.

Johannes

Hast du eine Liste mit 100 Elementen und hast einen Array, einen Index drin, der das erste und das letzte Element ist.

Aber das ist auch schlecht, ja?

Johannes

Hast du auch ganz viele Edge Cases?

Johannes

Was ist, wenn du mehr als 100 Elemente in deiner Que hast?

Johannes

Was ist, wenn du was ist, wenn die ausläuft?

Johannes

Das musst du dann abfangen, ja, dass du dann lauter.

Also hast du ganz viele so Edge Cases.

Johannes

Arrays sind vom Aufbau her simpler, aber in der Verwendung her, von der Verwendung her irgendwie fitzeliger.

Johannes

Weil die halt so eine feste Struktur haben.

Johannes

Und das ist so ein bisschen die Sache, ja.

Johannes

Das ist irgendwie so eine Geschwindigkeitsoptimierung.

Johannes

Die sind in mancherlei Hinsicht schneller und dann halt auch gleich richtig viel schneller.

Johannes

Aber dafür holst du dir ganz viele Implementierungsprobleme rein.

Und ja.

Johannes

Ich bin eigentlich ein Freund von LinkedIns, weil die so schön sind.

Johannes

Und Skip Lists, ich meine, da braucht man nicht drüber sprechen.

Johannes

Das ist die coolste Sache der Welt.

Dominik

Kann man Elemente deaktivieren, quasi.

Nee, was total smart ist.

Johannes

Genau, eine Skip List ist was total Smartes.

Johannes

Das ist eigentlich eine Liste, die aber zusätzliche Pointer hat, die durchspringen können.

Johannes

Und die legst du randomisiert an und dann hast du ähnliche Zugriffszeiten wie bei einem Baum.

Johannes

Das heißt, du kannst da so eine Art binäre Suche drin machen, aber hast nicht die Verwaltungsprobleme bei einem Baum, sondern du hast einfach randomisiert, ich verweise auf ein späteres Element.

Johannes

Und man muss ein kleines bisschen mehr Arbeit machen, aber das ist so der Kern der Sache, dass du eben zufällige Skips machst.

Johannes

Und das ist das Skip in Skiplist.

Johannes

Dass du halt sagst, okay, ich gehe von Index X auf Index X plus eine zufällige Zahl, die sich dann zwischendurch auch verändern kann.

Johannes

Die sich verändern kann, wenn du in der Mitte was einfügst oder was rauslösst oder so.

Johannes

Und das ist vom Programmieren her was total

Simples, gibt

Johannes

dir aber eben die logarithmische Zugriffszeiten.

Johannes

Amortisiert statistisch logarithmische Zugriffszeiten.

Johannes

Und deshalb ist das was total Cooles, das ist sowas völlig Überraschendes.

Johannes

Als ich das zum ersten Mal gesehen habe, habe ich erst versteht man es nicht.

Johannes

Warum macht man sowas?

Johannes

Und dann kommt so ein Aha-Moment und dann versteht man es immer noch nicht, weil das viel zu simpel ist.

Johannes

Das ist sowas Simples und es gibt einem so Zugriffszeiten wie bei einem Baum, wo man vorher drei Monate mit so scheiß Balancing Red Black Trees verbracht hat.

Johannes

Und hinterher sagen sie einem, alles, was du hättest machen müssen, wäre randomized da irgendwie durchgehen.

Johannes

Und wenn du eine sortierte Liste hast und dann mehrere Skip-Ebenen hast, kannst du es sogar garantieren, dass du logarithmische Zugriffszeiten hast.

Tja.

Jochen

Ja, gibt es schon coole Sachen.

Dominik

Also Moment, nochmal, was kannst du garantieren, wenn du mehrere.

Johannes

Ja, wenn du eine sortierte Liste hast, dann kannst du so eine Skip-List haben, wo du auf der untersten Ebene zufällige Skips machst und eine Ebene drüber machst du zufällige Skips auf diesen zufälligen Skips und eine Ebene drüber machst du zufälliges Gips auf dem, bis du in der obersten Ebene quasi vom ersten bis zum letzten Element skips.

Johannes

Und dann kannst du innerhalb dieser Skip-Ebenen binäre Suche machen.

Johannes

In der Linked List binäre Suche.

Dominik

Das ist so ein bisschen wie so ein Reißverschluss.

Johannes

Genau, also du kannst entweder sagen, du hast das Element gefunden oder du gehst eine Ebene runter und suchst genauer.

Johannes

Und das gibt dir eben diese logarithmische Zugriffszeit, weil du eben in einem randomisierten binären Baum suchst.

Ist das so etwas wie ein Random Forest?

Aber nicht verwaltet.

Ja, nee, es ist ja kein Binnener.

Johannes

Ja, nee, es ist so eine so eine randomisierte Granularität, die du da hast.

Okay.

Es gibt verschiedene Ebenen verschiedener Granularität.

Johannes

Und du hast Zugestalten wie bei einem Baum, musst aber nicht den Baum verwalten und das ist super cool.

Cool.

Johannes

Ja, es ist tatsächlich wirklich sehr einfach, sich so eine Liste zu schreiben.

Johannes

So eine ganz einfache LinkedList schreiben ist super easy und jeder sollte das mal ausprobieren.

Und dann auch ein bisschen damit spielen und gucken, wie schnell das ist und wie schnell man es machen kann und was man alles damit machen kann und ob man eine Queue rauskriegt und ob man da sinnvollerweise eine Queue damit rauskriegt und das ist einfach eine schöne Sache.

Johannes

Ja, Algorithmen und Datenstrukturen.

Johannes

Genau, das ist so ein bisschen der Grund, warum das in Informatikvorlesungen halt oft vorkommt.

Johannes

Weil man da sehr einfach, sehr einfach einen Einstieg hat und dann aber trotzdem weit damit kommt.

Johannes

Und weil es halt so eine fundamentale Datenstruktur ist, muss man auch irgendwie, sollte man schon irgendwie wissen, wie das funktioniert.

Johannes

Das bringt einem ungeheuer viel.

Jochen

Ja, und weil man halt direkt auf die Probleme stößt, die halt, ich glaube, das ist auch der, also ich habe mich vorher gefragt, also an, warum wird eigentlich, wenn man Informatik, das sind doch diese coolen Sachen, wo man so Computerspiele macht und irgendwie Grafik und weiß ich nicht, so zu zahlen und sich dahindern und dann wird einer so, also wenn wir jetzt hier, wir beschäftigen uns vor allen Dingen damit, wie man so Listen sortiert und irgendwie Dinge in so Listen wieder sucht und findet und so.

Jochen

Das macht man jetzt so suchen und sortieren die ganze Zeit.

Jochen

Und dann, ja, der Grund ist halt schon, dass irgendjemand hat mal, vielleicht war es sogar knut geguckt, also woromit beschäftigen sich Rechner eigentlich so den ganzen Tag und da war es 70%, wann Suchen und Sortieren von Dingen war halt das, was Rechner so machen.

Jochen

Und ja, das ist heute immer noch so, glaube ich.

Jochen

Also Listen sortieren ist so.

Ich glaube eher, dass das mehr wird.

Jochen

Es wird wahrscheinlich sogar mehr.

Das kann gut sein.

Jochen

Weil man doch mehr Felder gefunden hat, wo man das drauf resultieren kann, dass es das ist.

Weil man mehr Daten hat.

Dominik

Oh, sortieren und suchen werden auch nochmal so tolle Folgen gewinnen.

Ja.

Das kann man auch.

Johannes

Mit Linked Lists kann man auch sehr schön Sortieralgorithmen umsetzen.

Und auch das lohnt sich.

Auch das lohnt sich, ja.

Johannes

Dass man sich mal selber hinsetzt und einfach mal Bubble-Sort implementiert.

Johannes

Das ist ja sehr einfach, der Algorithmus.

Das stimmt.

Johannes

Und dann sieht man auch sofort, dass der nur eine Handvoll Operationen benötigt und dass der langsam ist.

Und warum der langsam ist.

Johannes

Wenn man sich das dann nämlich rausvisualisiert, dann sieht man, was da passiert und das ist großartig.

Oder ein Merge-Sort, ja.

Johannes

Ein Merge-Sort ist auch vergleichsweise einfach und ist aber eben deutlich schneller als Bubble Sort.

Dominik

Ich mag total gerne einen LSD-Sort.

Okay, was war das?

Dominik

Du hast nur zehn Buckets und da packst du die Sachen einfach dann rückwärts, also von der letzten Dezimalstelle immer rein und dann packst du einfach die Buckets zusammen und ist fertig.

Okay.

Nein, das hat damit tatsächlich nicht zu tun.

Leider natürlich.

Aber es ist,

ähm, ich finde

Dominik

super, weil das kannst du auch mit Kindern machen.

Dominik

Du kannst einfach Dinge sagen, hey, pack das mal, also ne, so Sortierspiele, pack das mal nach der Reihenfolge da rein.

Und da hast du eine sortierte Liste.

Das ist sehr cool.

Würde ich sagen, es ist eine der Kurzungen.

Und das kann man sehr gut ausprobieren, wenn man sich selber gerade seine Linktlist geschrieben hat.

Johannes

Deshalb, ich plädiere dafür, dass das jeder mal tut.

Dominik

Also er sehe ich so das dann Radix, kommt das, ne?

Radix-Sort, ja, das ist ja.

Radix-Ort.

Ja, Radix-Ort ist das finde ich.

Johannes

Es gibt tatsächlich auch Verfechter heutzutage.

Johannes

Und man muss halt auch dazu sagen, ja, je nach Anwendungszweck sind Arrays besser oder Linklists.

Also warum ist LSD-Start heißt das?

Least Significant Digital.

Jochen

Ach so, okay.

Ja gut, hatte ich.

Sorry.

Okay.

Ja, genau.

Johannes

Es gibt es natürlich auch heute noch.

Johannes

Ich habe kürzlich einen Artikel gelesen von dem Menschen, der Redis entwickelt hat, der gesagt hat, wir benutzen es an ganz vielen Stellen, weil das ist halt das, was man braucht.

Johannes

Und auch wenn es so ein kleines bisschen verpönt ist, wenn man so ein bisschen belächelt wird, das ist halt das, was richtig ist.

Und ja.

Johannes

Er verweist dann auch auf Stellen im Linux-Kernel, wo auch Linklists verwendet werden und sieht es als Indiz, dass es halt das Richtige ist.

Johannes

Weil das halt das Richtige ist, ja.

Johannes

Weil das einen Use Case erfüllt, der sinnvoll ist.

Jochen

Ja.

Jochen

Ne, durchaus.

Jochen

Also ich meine, was auch noch so eine interessante Geschichte, also auch eine Frage Linklist oder Array, wie indiziert man eigentlich, wo fängt man an, 0 oder 1?

Jochen

Und Python macht das richtig, fängt eine Null an.

Johannes

Korrekt.

Johannes

Das ist

die einzig wahre Antwort.

Genau.

Warum macht man das nochmal?

Dominik

Ich hatte hier jemanden dessen, das meintest total furchtbar.

Dominik

Die ganzen Entwickler machen alle immer falsch, die fangen immer bei 0 anzuziehen.

Ja, also weil du

Jochen

dann zum Beispiel so nette Sachen machen kannst, wie wenn du also eine Liste in zwei Teile teilen willst und willst sie an der Position 2 teilen, dann sagst du einfach Liste eckige Klammer auf, Doppelpunkt 2, Klammer zu oder Liste eckige Klammer auf 2, Doppelpunkt, eckig Klammer zu und hast dir dann genau an der Position 2 geteilt.

Jochen

Das ist zum Beispiel ein schöner Effekt davon.

Johannes

Da gibt es tatsächlich eine alte E-Mail von Guido von Rossum, wo er genau das gefragt wurde, warum er das so gemacht hat und genau diese Antwort kommt, dass er sagt.

Johannes

Wenn du halt diesen Index wiederverwendest, dann sind die genau lückenlos zusammen.

Johannes

Ich muss mal schauen, ob ich diesen Link wiederfinde.

Dominik

Das wäre schön, weil das mein nettes Argument ist.

Sehr schön, ja, der ist auch sehr angenehm zu böden.

Johannes

Und der sagt auch die anderen Optionen, die du machen kannst.

Johannes

Und die haben alle auch ihre Index.

Jochen

Da gibt es ein super Paper von Dijkstra.

Jochen

Das ist im Original, hat er das handschriftlich aufgeführt.

Jochen

Er hat er irgendwie eine Diskussion mitbekommen, wo Leute gesagt haben, so die einen sagten, ah, mit 0 anfangen, die anderen mit 1.

Jochen

Und dann der, der eins gesagt hat, sagt er irgendwann, ah, hat ihn vorgeworfen, ihr seid irgendwie pedantisch, dass ihr da unbedingt auf dieser Null besteht, das ist doch eigentlich ganz egal, wir können irgendwas anfangen zu zählen, sowohl wurscht.

Dominik

Das erste Element ist das erste Element, nicht das Null.

Jochen

Und dann meinte er so, ja, also ich habe mir das mal überlegt und jetzt habe ich das mal aufgeschrieben, wie das richtig geht.

Jochen

Und nee, der mit der 1 liegt falsch.

Jochen

Und zwar, weil, und dass dann so auf Karo Papier zwei Seiten, die er dann handschriftlich vollgeschrieben hat, hat sich dann zum Beispiel eben, wie man, wie man sagen kann, wie man jetzt, ich glaube, da geht es um, er sagt zwei, also die Folge hat 2,3 Punkt, Punkt, Punkt, 12 oder so.

Jochen

Wie kann ich die jetzt logisch hinschreiben?

Jochen

Also überhaupt, ich weiß keine Ahnung, wie da drauf gekommen ist, das so zu machen, aber und dann hat er alle Möglichkeiten, wie man das hinschreiben kann, mit größer, kleiner und so aufgeschrieben und hat gesagt, und ist die dann alle durchgegangen und man hat so, also man könnte jetzt sagen, das wäre gut.

Jochen

Das hat folgende Vorteile, folgende Nachteile.

Jochen

Man könnte sagen, das macht man so.

Das ist jetzt auch nicht so gut.

Jochen

Und dann kommt er dabei raus am Schluss so, ja, nee, man muss mit 0 anfangen.

Jochen

Das geht sonst nicht.

Jochen

Ansonsten muss man irgendwie, kommt man, hat man manchmal Vergleiche mit, also mit, wo man dann einen Index minus, also wo Null nicht das Kleinste ist, sondern irgendwas drunter.

Jochen

Also, also wenn man jetzt da so unnatürliche Zahlen als Index verwendet, das ist irgendwie nicht gut.

Jochen

Das sollte man nicht machen.

Jochen

Also es ist wirklich, es ist auch sehr amüsant zu lesen.

Jochen

Aber es ist auch sehr überzeugend.

Jochen

Also am Schluss so, ja, stimmt, musst du mit 0 initiieren, das geht nicht anders.

Jochen

Und ja, am Schluss endet das diese, diese, diese, diese zwei Seiten, die er geschrieben hat, endet auch mit sehr schönem Zitat, wo er dann schreibt ihr, ja, ich weiß jetzt gar nicht, von wem das zieht ja da irgendjemand anders.

Jochen

Man meinte so, ja, also warum regen sich die Leute an so einer Stelle dann immer darüber auf und werfen dann vor, dass da Leute pedantisch sind.

Jochen

Das ist deswegen, weil so soziale Exklusion muss man halt, wenn es um so religiöse Überzeugungen geht, immer dann besonders machen.

Jochen

Nicht deswegen, weil man Angst davor hat, dass andere Leute vielleicht was Falsches denken könnten, sondern der eigentliche Grund ist, die Möglichkeit, dass sie recht haben könnten.

Jochen

Deswegen muss man da besonders drauf hauen.

Und das ist halt, ja, das muss man aus.

Jochen

Also das muss man ausschließen.

Jochen

Ja, genau.

Jochen

Wenn man, ja, super.

Jochen

Ja, also da kann man das mal nachlesen.

Das müsste auch unbedingt nicht rausfinden.

Jochen

Ja, genau.

Jochen

Was ich auch manchmal gerne mache, ist, man kann, wenn man jetzt in einer Liste so bestimmte Teile markieren will, da kann man natürlich irgendwie Liste, klicke ich mal auf, anfangen, Doppelpunkt Ende hinschreiben.

Jochen

Man kann aber auch, es gibt irgendwie ein Build in Slice, wo man sagen kann, Slice irgendwie Anfangen, Ende, Komma, und dann kann man ihm einen Namen geben.

Jochen

Und dann kann man das Ding direkt reintun.

Jochen

Das heißt, man kann sagen, irgendwie, das ist jetzt irgendwie die, weiß ich nicht, der Name oder sowas.

Jochen

Und dann gibt dann sagt man einen groß geschriebenen Name gleich Slice 5,12 Klammer zu.

Jochen

Und dann kann man hinterher sagen, Liste, Ecke Klammer auf, Name, Ecke Klammer zu.

Jochen

Das ist manchmal ganz nett.

Jochen

Ja, genau, es gibt natürlich noch diverse Geschichten in Python, auch die eher so mit Arrays zu tun haben.

Jochen

Es gibt das Array-Array-Modul, also das Array-Modul in der Standardbibliothek immer sehr schön.

Jochen

Da kann man dann tatsächlich solche Sachen, die alle den gleichen Typ haben, reinschreiben.

Jochen

Es gibt auch die Verallgemeinerung davon.

Dominik

Sind das sowas, was die Indizes dann direkt mit drin

Jochen

oder sowas?

Jochen

Indizes, äh, meinst, dass man da irgendwie dann Dinge drin suchen kann oder.

Ja, zum Beispiel oder Zugriff direkt, aber die Dinge.

Jochen

Ne, das

Jochen

ist nur, das sind nur dann einfache Arrays.

Jochen

Also dafür sowas kannst du dann Panas oder NumPy oder so.

Dominik

Okay, muss ich ja direkt immer enumeraten oder so.

Jochen

Aber es gibt Memory Views.

Jochen

Memory Views sind dafür da, dass man halt so Daten, die halt irgendwie im Hauptsprecher zusammenliegen, irgendwie durch die Gegend schieben kann, ohne dass man jetzt exakt dran schreibt, was das jetzt ist, sondern man kann die Daten einfach in der Gegend rumschieben und dann ist es halt ein Memory View und dann kann man aus dem Memory View wieder irgendwas anderes machen.

Jochen

Ein NumPy-Array oder halt ein Array oder sonst irgendwas, indem man dann halt dazu sagt, so du bist jetzt, du hast jetzt irgendwie folgende Struktur und dann kann man halt auch so, also dann kann halt das auch multidimensional werden oder so.

Jochen

Aber wichtig ist oft, dass man das Ding als gesamten Block im Hauptsprecher irgendwie verschieben, rumschieben kann.

Jochen

Und dafür sind Memory-Views ganz gut.

Jochen

Das ist auch ganz nett.

Dominik

Muss natürlich in den Hauptsprecher passen.

Jochen

Ja, wenn es nicht reinpasst, dann gut, dann muss man was anderes machen.

Der IBIS oder so.

Jochen

Was auch nett ist, ist, wenn man die NumPy macht da auch noch viele magische Geschichten mit.

Jochen

Man kann ja jetzt auch mehrere Sachen, wenn er jetzt mehrdimensionale Arrays hat, das gibt es, sowas gibt es nicht in der Standardbibliothek.

Jochen

Aber es gibt halt die Möglichkeit, das zu benutzen.

Jochen

Also das sieht Python schon vor, auch wenn es jetzt nirgendwo keine Objekte in der Standardbibliothek implementiert, dieses Interface.

Jochen

Dass du halt sagst, Index Doppelpunkt irgendwas, Komma und dann die nächste Dimension.

Jochen

Das macht in Ampai halt, kann man auch verwenden, und ein Ding, das man da häufig sieht, was halt komisch aussieht, man kann auch statt, also wenn man jetzt sowas schreiben würde wie x-Klammer auf I, Komma und dann Doppelpunkt, Komma, Doppelpunkt, Komma, Doppelpunkt irgendwie, um halt nur eine bestimmte, also eine bestimmte Division rauszuziehen und genau alle anderen Sachen halt dann beliebig zu lassen, dann kann man dafür auch Ellipsis verwenden und einfach K

Jochen

lammer auf I, Punkt, Punkt, Punkt schreiben.

Jochen

Das sieht man häufig und dann, also hat

mich am Anfang total verloren.

Jochen

Hä, was ist das denn?

Ja.

Jochen

Kann man sich auch noch mal ein bisschen was sparen.

Jochen

Was gibt es sonst?

Jochen

Noch ein Nennenswertes über Listen zu sagen.

Dominik

Ich glaube, du musst einfach noch ganz kurz über Ellipsis was sagen, weil vielleicht ist das immer noch nicht angefangen.

Jochen

Ja, das ist sowieso so ein interessantes Spezialding.

Dominik

Also ich sehe das relativ häufig, ich benutze das auch mal, wenn ich

Dominik

was fertig machen möchte.

Dominik

Einfach so als Platzhalter meinem Kopf.

Dominik

Aber es ist nicht so ganz richtig verwendet.

Dominik

Man kann einfach drei Punkte machen, irgendwo in Python und das.

Jochen

Genau, es gibt auch ausschreiben als Ellipsis.

Das funktioniert erstmal wie ein Pass, oder?

Wenn du einfach

nur drei Punkte schreibst, ist es wie ein Pass.

Jochen

Genau, aber es fällt sich in manchen anderen Kontexten halt manchmal so ein bisschen anders.

Jochen

Man kann es auch, also in Typen-Annotationen wird es häufig verwendet für, da steht halt halt irgendwas, irgendwie, keine Ahnung.

Jochen

Oder halt eben, ja, in diesen in den Index-Geschichten, man kann auch Ellipsis einfach tatsächlich ausschreiben.

Jochen

Und wenn man jetzt sagt, Punkt, Punkt, Punkt ist Ellipsis, dann sagt Python halt true.

Jochen

Das ist halt das gleiche Objekt.

Ja.

Jochen

Genau.

Jochen

Ja, aber es ist halt irgendwie komisch.

Jochen

Es sieht anders aus als andere Sachen und man weiß oft nicht so genau, was das denn sein soll.

Ja.

Jochen

Ja, ja, ja, ja.

Jochen

Ansonsten, ich weiß nicht, was noch ganz interessant ist, dass Sorted irgendwie eine Kopie macht, das sollte man vielleicht wissen.

Jochen

Das kann einem böse beißen, wenn man das nicht weiß.

Jochen

Also man

kann halt wieder.

Ja, ja, ist extra

Jochen

so, aber genau.

Sonst kann man ja Punktsorten.

Punkt Sorten macht es halt

Jochen

in place, genau.

Jochen

Ja.

Johannes

Auch das sorgt oft für Verwirrung, weil Punktsort gibt nämlich nichts zurück.

Jochen

Genau, was dazu führt, dass man es nicht trainen kann.

Jochen

Und wenn man halt aus der Data

Science Welt kommt und dann ist man

Jochen

plötzlich in der anderen Welt, dann kommt, kriegen

Jochen

Leute plötzlich irgendwie seltsame Probleme.

Jochen

Ja, ja, ja.

Jochen

Ja.

Jochen

Aber ansonsten.

Jochen

Mir fällt jetzt auch ehrlich gesagt nicht mehr viel ein.

Jochen

Weiß ich, wenn ich immer noch eine gute Idee hatte.

Dominik

Listen, Listen, noch was Listen.

Auf der Liste nicht mehr genug drauf.

Jochen

Mehr habe ich hier nicht.

Dominik

Ja, aber ich würde sagen, das ging doch jetzt einigermaßen flott.

Johannes

Das ging erstaunlich flott jetzt von.

Wir warten jetzt auf die Rückfragen und beantworten Passode zu listen, alle Rückfragen zu listen.

Dominik

Ja, also ihr wisst ja immer wie feedback wie immer, hallo.pythonpodcast.de.

Ja.

Dominik

Dürft uns gerne schreiben, wenn ihr irgendwie Feedback-Anregung, Kritik, Beleidigung zuwerfen wollt.

Hatten wir auch schon.

Ihr seltsam.

Wir haben ganz viel tolle Post.

Vielen Dank dafür immer.

Dominik

Das mögen wir sehr gerne, aber manchmal auch nicht.

Johannes

Es gibt ein sehr schönes Buch von John Skalzi mit dem Titel Your Hate Mail Will Be Graded.

Johannes

Wo er einfach Briefe, die er bekommen hat, veröffentlicht und kommentiert.

Das ist

auch eine sehr

Jochen

interessante Art, damit umzugehen, ja.

Jochen

Genau, wenn man

das öffentlich

Jochen

sagt, dass man das tut, dann kriegt man

auch weniger.

Johannes

Ich mache Profit aus den Sachen, die ihr mir schickt.

Ich finde es fair.

Ja.

Dominik

Wir haben noch unseren Pick der Woche, des Monats der Episode.

Okay, ja.

Ja, ich habe einen.

Ah, du hast einen.

Johannes

Ich habe mir extra einen ausgedacht.

Johannes

Ist eine Python-Bibliothek.

OpenAI Whisper.

Ah, okay.

Johannes

Vorsicht, nicht Pip Install Whisper.

Johannes

Das ist was anderes, sondern man muss das aus dem GitHub-Repo installieren.

Johannes

Ist ein trainiertes Modell zur Spracherkennung.

Johannes

Das heißt, dem gibt mal ein WAV-File oder ein MP3 oder sonst irgendwas und der gibt einem den Text, der da gesagt wurde.

Cool.

Zurück.

Johannes

Und es funktioniert erstaunlich gut.

Johannes

Und es funktioniert auch erstaunlich einfach, weil man hat ja oft so ein bisschen, also ich habe oft so ein bisschen Berührungsangst, ja, wenn dann irgendwo steht, ja, hier ist ein Modell veröffentlicht worden.

Johannes

Es ist tatsächlich einfach nur Pip Installer.

Dominik

Also von Pipeline Modelle gibt es sowieso so coole Sachen, ne?

Johannes

Und dann drei Zeilen Code und dann tatsächlich Spracherkennung.

Johannes

Und das hat, also ich habe es ausprobiert und es funktioniert echt gar nicht gut.

Das funktioniert auch mit Deutsch irgendwie

Jochen

halbwegs oder?

Johannes

Ja, funktioniert auch mit Deutsch.

Johannes

Es gibt verschiedene Modelle, die für die verschiedenen Sprachen eingestellt sind.

Johannes

Und es hat tatsächlich mit Deutsch so gut funktioniert.

Johannes

Also ich habe Lore im Ipsum rein geschrieben, reingesagt und er hat dann deutsche Wörter daraus rausgehört.

Dominik

Also kennt ihr so ein paar Sachen?

Dominik

Es gibt aber diese ganzen Machine Learning-Tools, es gibt ja irgendwie so ein paar, ich nenne es jetzt mal High-Level-Rapper, Radio zum Beispiel oder so, wo man einfach so eine App deployen kann, die direkt mit so einem Webinterface läuft, wo man dann so ein Modell hat, was man dann direkt benutzt werden kann, irgendwie mit so einem Easy-Webinterface und sowas, das ist halt total nett zum Dämonen oder Pocken oder MVPen oder sowas.

Ja.

Dominik

Vielleicht eine Kombination mit Streamlit, falls sie das kennen?

Dominik

Das macht auch so Web-Apps und für so Data Science-Krams hast du dann direkt irgendwie Überblick über, weiß ich nicht, Analytics, Data Exploration und dann kannst du direkt das Modell speichern.

Johannes

Da kommen jetzt schon wieder meine Berührungsängste, die ich gerade gesagt habe, weil das so kompliziert ist, da den Einstieg zu finden.

Dominik

Ja, da müssen wir vielleicht mal eine eigene Folge zu machen.

Dominik

Das wäre nicht mein Pick, aber das hat mich gerade sehr daran erinnert, dass du so eine schöne kleine, schnelle Benutzung von so einem Modell hat.

Dominik

Zum Beispiel, Gradeo nutzt jetzt komplett Hugging Face.

Dominik

Du kannst halt da Zugriff über zwei Zeilen Python-Code auf, weiß ich, 10.000 Modelle oder so vortrainierte.

Dominik

Und die da einfach direkt benutzt und hast, das ist sehr geil.

Ja, auch sehr cool.

Ja, ist auf jeden Fall.

Jochen

Ja, genau.

Jochen

Ist mir auch schon aufgefallen, viele Leute packen das auch auf ihre GitHub-Repos und so.

Ja.

Jochen

Was auch ganz interessant ist, glaubt da, jetzt habe ich das wieder ein bisschen vergessen, leider, ich habe mich mit diesem Audio, ich habe mich ja schon so ein bisschen damit beschäftigt.

Jochen

Mit dieser Automatic Speech Recognition und früher, damals.

Jochen

Also ganz, ganz früher, so 2015, 16.

Jochen

Als die Deep Speech wurde.

So lange her, im Mittel.

Jochen

Also es gab einen Riesenfortschritt, also irgendwie niemand hat das richtig hingekriegt, weil irgendwie hat halt alles nicht funktioniert.

Jochen

Und die ersten Modelle, die so richtig gut funktioniert haben, auch Deep Learning angewendet auf Speech Recognition, waren halt Deep Speech 1, 2 für Englisch, Chinesisch.

Jochen

Und genau, dann gab es immer da so Verbesserungen und so, aber das Problem immer für Deutsch hat das nie funktioniert, weil, beziehungsweise es gibt ein paar Firmen, die konnten das gut machen, irgendwie Microsoft, Google, Apple, Amazon, weil sie halt die Trainingsdaten dafür haben.

Jochen

Die einen dadurch, dass sie halt Telefone verkaufen, wo die Leute reinquatschen, und die anderen dadurch, dass sie halt irgendwie den Leuten so irgendwie Lautsprecher irgendwie in die Wohnung stellen oder weiß ich nicht.

Jochen

Und ja, die konnten das halt machen, aber alle anderen eigentlich nicht, weil die Trainingsdaten gab es halt nicht.

Jochen

Und dann gibt es dieses tolle Common Voice-Projekt von Mozilla, wo dann halt sozusagen so Datenspenden gesammelt wurden, dass man konnte man halt irgendwie ein paar Sätze sagen, die einem vorgegeben wurden, und dann wurde das halt als Trainings, wurden das halt als Trainingsdaten verwendet für dieses Common Voice, für diesen Trainingsdatenkorpus.

Jochen

Und die haben auch selber ein Modell trainiert, das halt basierte, glaube ich, auf Deep Speech und das dann halt auf so eine Word-Arrow-Rate gekommen ist, die halt relativ gut ist, um halt Leuten anbieten zu können, okay, ihr könnt die Spracherkennung auch direkt auf eurem Raspberry Pi oder so machen und müsst es nicht irgendwie an eine Google-Api schicken, weil das ist eigentlich ja schon nicht so geil.

Jochen

Weil die können einen dann ja quasi ausnehmen, wenn man irgendwie selber ein Produkt baut oder so, muss immer eine Google-Api fragen, dann sagt Google irgendwann so, ihr habt ja nett eine Gewinne, macht ihr da, wir hätten auch mal gerne was von ab.

Ja, und die können

Dominik

alle noch schlimmer, finde ich, die können einfach.

Gerade wenn denen was passiert.

Jochen

Genau.

Jochen

Und das ist ja auch irgendwie so Mozilla irgendwie so ein bisschen der Zweck, dass man das so ein bisschen irgendwie auch den Leuten ermöglicht, dass sie was tun können.

Jochen

Und also eigentlich alles super gut, aber es gab halt nicht genug Trainingsdaten für Deutsch, dass man das hätte irgendwie wirklich trainieren können.

Jochen

Aber inzwischen gibt es halt große Fortschritte und zwar, das war ja auch schon bei den Natural Language Processing Modellen so, dass der Riesenschritt zu, oh mein Gott, man kann jetzt da Dinge machen, die früher waren, eigentlich eher diese Self-Supervised-Geschichten, dass man halt die Modelle dadurch trainiert hat, dass man denen Lückentexte gegeben hat und man gibt ihnen einfach irgendwelchen Text, trainiert das Modell dadurch, dass man es quasi voraussagen lässt, welches Wort in dieser Lücke gestanden hat

Jochen

und es dann halt belohnt oder bestraft, je nachdem, wie nah das da halt dran war.

Jochen

Und das heißt, man kann plötzlich, und dann kann man dieses Modell verwenden für was ganz anderes.

Jochen

Ja, aber um dieses Problem Lückentext ausfüllen, irgendwie hinzubekommen, muss das Modell halt quasi ganz viel über die Sprache lernen und auch über die Konzepte, die da drin sind.

Jochen

Und eigentlich muss es die fast verstehen können.

Jochen

Sonst kann es das halt nicht gut tun.

Jochen

Deswegen, und wenn man das Modell halt dann lang genug mit genug Texten, so aus dem ganzen Internet, halt prügelt, dann kannst du das halt irgendwann.

Jochen

Und dann kann man das aber für andere Sachen verwenden, wie für das Problem, was man eigentlich lösen will, was ja vielleicht was ganz anderes ist.

Jochen

Funktioniert dann aber immer noch super.

Jochen

Und so ähnlich funktioniert das mit dem Audiogram auch.

Jochen

Und zwar, ich weiß jetzt, die genauen Verfahren kenne ich jetzt alle nicht.

Jochen

Ich habe mir das mal, ich hab's wieder inzwischen wieder vergessen.

Jochen

Da haben Leute das auf irgendwie, weiß ich nicht, tausenden und Millionen Stunden, irgendwie, ich glaube ein paar hunderttausend Stunden YouTube-Videos trainiert.

Jochen

Self-supervised und dann nur ein paar annotierte Trainingsbeispiele für irgendwie, also dieses Audio war übrigens jetzt folgender Satz.

Jochen

Und das hat dann auch schon super funktioniert.

Jochen

Das heißt, quasi, die Dinger haben self-supervised auf unfassbaren Mengen Audio gelernt, was halt so Audio ist und wie das funktioniert, wie Sprache so funktioniert.

Jochen

Also die in Form der Audio quasi Repräsentation.

Jochen

Und dann hat man dieses gelernte Modell benutzt, um halt zu

Dominik

Transkription dann nochmal durch.

Jochen

Ja, dann wirklich halt daraus Text zu machen.

Jochen

Und das funktioniert total super.

Jochen

Also die Modelle sind alle inzwischen nochmal viel besser als Deep Speech und so.

Jochen

Und du brauchst nicht mal diese gigantischen Trainingsdatenmengen.

Jochen

Das heißt, ja, eigentlich ist es quasi, dieses Problem ist mehr oder weniger gelöst.

Jochen

Es ist halt jetzt nur so eine Frage, wie kriegt man das gut irgendwie so umgesetzt, dass es halt gut funktioniert.

Jochen

Also es gibt ein Modell, das halt super gute Genauigkeit hat, aber das braucht halt irre lange.

Jochen

Also bei mir braucht das halt pro Faktor 30 irgendwie von, also wenn du 10 Sekunden Audio hast, brauchst du es halt Faktor 30, um halt einen Text rauszumachen.

Jochen

Das kann man praktisch nicht so gut verwenden, weil es einfach.

Eigentlich muss ja echt Zeit sein, damit es.

Johannes

Und es braucht dann auch viel Hauptspeicher

und viel und

so weiter.

Jochen

Genau.

Jochen

Also, aber das wird ja alles auch noch besser,

denke ich mal.

Johannes

Also bei diesem Whisper sind verschiedene Modelle dabei und ich habe jetzt nur das Tiny-Modell ausprobiert.

Johannes

Das hat einen Faktor ungefähr von 0,2.

Johannes

Das heißt, in deine 30 Sekunden Audio hättest du dann eben in fünf Sekunden, in sechs Sekunden durchtranskribiert.

Und ich war von der Qualität sehr positiv überrascht.

Johannes

Für so ein kleines Modell sehr, sehr positiv überrascht, dass das so gut funktioniert.

Also musst du auf jeden Fall mal ausprobieren.

Jochen

Ja, für Podcasts eigentlich ganz uninteressant, ja.

Johannes

Und wie gesagt, da gibt es halt mehrere Größen, je nachdem, wie viel du runterladen willst und wie viele Grafikkarten du zu verbrennen hast.

Oh, hm.

Und kannst du anschauen.

Johannes

Die kleinen Modelle laufen auch alle auf CPU und das ist ziemlich cool.

Jochen

Bitte?

Hast du auch einen Blick?

Jochen

Oh, ja, ich dachte, ich wollte das Specialist picken, aber das habe ich ja jetzt schon verbrannt.

Jochen

Mist.

Jochen

Ich habe gerade immer noch geguckt.

Jochen

Es gibt eine andere Geschichte, die halt.

Jochen

Also wenn man irgendwie mal gucken will, welche Sachen im Code langsam oder schnell sind, gibt es schöne Profile inzwischen, hat sich einiges getan.

Jochen

Und ein wirklich netter Skalin.

Jochen

Genau, packe ich auch nicht so Shownotes, da kann man echt eine Menge sehen.

Dominik

Ich habe wieder so einen kleinen Pack und ich habe Pure Magic entdeckt.

Fand ich ganz cool.

Dominik

Aus der Standard-Lib kann man auf Falt schmeißen und weiß dann so ein bisschen, was das denn für ein Dateiformat sein könnte oder so.

Jochen

Die Magic, ach, ah, Magic Numbers.

Dominik

Mögliche Extension

raus oder so, genau.

Description, Confidence und so.

Cool.

Und das ist in der Standard-Lib.

Ja, Pure Magic, ja.

Das ist ja Hammer.

Oder ist das alles?

Ich weiß nicht, ist das eine Standard-Lib?

Keine Ahnung, ich werde es nachgucken.

Dominik

Ja, es ist bei PyPI auf jeden Fall.

Aber mir ist das auch in den Show Notes.

Dominik

Weil ich darauf kam, weil ich diesen Pap gelesen habe von Christian Heimes, wo halt dann drunter hat, welche denn die Pakete sind, die jetzt ersetzen können, die aus der Standard-Teptik deprecated worden sind.

Dominik

Ich glaube, Priomatic ist vielleicht nicht drin, aber.

Jochen

Nee, das ist ein externes, aber genau.

Dominik

Aber das macht genau das, was ich mir da vorgeschlagen habe.

Jochen

Okay.

Jochen

Ja, das ist ja auch interessant.

Jochen

Cool, cool, cool.

Johannes

Ich habe noch einen zweiten Pick in Anführungszeichen.

Johannes

Weil es zum Thema des heutigen Abends sehr gut passt.

Oh, Mannybell.

Johannes

Manybell.se Das ist ein soziales Netzwerk, so ähnlich wie Facebook, aber es läuft immer nur lokal auf dem eigenen Telefon.

Johannes

Und Datenaustausch funktioniert nur über Bluetooth mit Geräten, die in der Nähe sind.

Johannes

Das heißt, die Posts, die man dann schreibt, die verbreiten sich dann eben langsam in der sozialen Hülle, die halt in der Nähe ist.

Witzig.

Johannes

Und das finde ich ein sehr schönes Gegenmodell zu dem, was man sonst so hat.

Ja.

Nur Peer-to-Peer, die so.

Das hat ja sicherlich keins laufen lassen.

Dominik

Also das für die Leute, die nicht miteinander reden, sondern nebeneinander auf ihren Handys rumhacken, oder?

Genau.

Johannes

Wenn man sich Bilder teilen möchte, dann ist es.

Johannes

Nein, aber das, also ich meine, wenn du jemanden kennst, der jemanden kennt, der jemanden kennt, der jemanden kennt, dann kannst du auch bei dem die Posts sehen, aber halt erst langsamer.

Okay.

Johannes

Die verbreiten sich dann eben durch dieses Netzwerk durch.

Okay.

Das finde ich irgendwie so.

Jochen

Aber verbreiten sich alle zu allen?

Also geht das dann weiter?

Wird das dann von den Notes irgendwie.

Johannes

Nee, ich glaube, ich weiß nicht genau, wie die das gelöst haben.

Johannes

Aber man kann irgendwie halt folgen und das muss ja dann irgendwie schließlich da ankommen.

Johannes

Also es wird irgendwie so ein, keine Ahnung, Distributed Hashtable Routing sein.

Johannes

Was da halt langsam hin konvergiert.

Interessant, oder?

Okay.

Dominik

Aber ich glaube, das haben wir es heute tatsächlich dann doch geschafft.

Dominik

Vielen Dank, dass ihr alle bis hierhin durchgehalten habt und ich fand zwar eine schöne Folge.

Hat mir viel Spaß gemacht.

Dominik

Vielen Dank, Johannes, dass du wieder dabei warst.

Ja.

Ja, voll gut.

Ja, sehr gerne.

Mir hat es auch viel Spaß gemacht.

Ja, danke, Jochen.

Johannes

Und ich freue mich schon auf die nächste Listenfolge.

Dominik

Bleibt uns gewogen und hört uns zu.

Jochen

Ja, vielen Dank für eure Aufmerksamkeit.

Haha, bis später.

Tschüss.