Transcript: Python 3.11 und Listen

· Back to episode

Full episode transcript. Timestamps refer to the audio playback.

Dominik

Ja, hallo, liebe Hörerinnen und Hörer, willkommen beim Python-Podcast, Episode 46 heute.

Dominik

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

Dominik

Johannes ist wieder dabei. Hi, Johannes.

Dominik

Hallo, Johannes.

Dominik

Hallo, Jochen.

Jochen

Ja, herzlich willkommen, Dominik.

Jochen

Hi.

Dominik

Ja, wir haben uns ein bisschen Zeit gelassen mit dieser Episode.

Dominik

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

Dominik

Ja.

Dominik

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

Jochen

Genau, also ja.

Dominik

Wie fandet ihr das Release? Wie fandet ihr Python 3.11?

Dominik

Habt ihr es schon ausprobiert?

Dominik

Ja, ich verwende

Jochen

das tatsächlich schon und zwar

Jochen

auch so produktiv und so und

Jochen

war

Jochen

überraschend wenig

Jochen

Stress irgendwie das Update diesmal

Jochen

und für die meisten Sachen, die ich so verwende,

Jochen

gab es auch schon Reels, also

Jochen

normalerweise muss man am Anfang immer irgendwie alle Dinge

Jochen

dann neu komponieren und so, das war jetzt

Jochen

mir gar nicht aufgefallen, dass das irgendwie

Jochen

Hast du einen Tag länger gewartet als sonst?

Jochen

Vielleicht habe ich auch einen Tag länger gewartet, das kann auch sein.

Jochen

Ich weiß es nicht mehr so genau.

Jochen

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

Jochen

Ich benutze das noch nicht.

Johannes

Warum muss man das denn jetzt, was lohnt sich denn da jetzt?

Johannes

Die ganz tollen Tracebacks.

Johannes

Ja, also das würde ich auch sagen.

Johannes

Die waren doch schon immer super gut.

Jochen

Nee, sind aber jetzt nochmal deutlich besser geworden.

Dominik

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

Jochen

Ja, also das ist etwas, was ich jetzt

Jochen

nach wenigen Wochen

Jochen

Benutzung auch schon, das ist halt das,

Dominik

wie du hast Tracepacks, Jochen, wenn du Fotos hast.

Dominik

Ja, ja, ja.

Jochen

Auf und zu raise ich mal irgendwas,

Jochen

einfach nur so, weil es so gut aussieht.

Jochen

Und nee, aber das ist mir auch

Jochen

schon, also das

Jochen

möchte ich nicht mehr missen.

Jochen

Es zeigt einem relativ direkt, wo

Jochen

was kaputt ist und

Jochen

das ist wirklich sehr hilfreich. Und kommen wir dazu mit

Dominik

Rich dann zum Beispiel, Rich Tracepacks, sehr toll.

Dominik

Ja.

Dominik

PIP kann auch Rich.

Dominik

Übrigens, kennt ihr das?

Dominik

Wenn Rich installiert ist, nutzt PIP

Dominik

automatisch Rich. Ja, und dann hat man so

Jochen

farbige Progress Bars

Jochen

und sowas. Wundervoll, ich stehe auf sowas.

Jochen

Ja, ja. Alles nur

Jochen

Eye-Candy.

Jochen

Ja, aber es sieht schon alles besser aus,

Jochen

als früher. Früher mussten wir ja

Johannes

unsere Pakete mit der

Johannes

Brieftaube geschickt bekommen.

Johannes

Ja, das Deal ist ja alles.

Johannes

Wenn wir das nicht

Johannes

gebraucht haben, dann kriegen die Kinder das von heute

Johannes

ja auch nicht.

Johannes

Ich habe auch nicht mal kennengelernt,

Johannes

dass er aus den 80er Jahren berichtete

Dominik

von C und so, wie furchtbar

Dominik

das alles war.

Dominik

Das ist bei C, glaube ich, heute immer

Dominik

noch so.

Dominik

Aber das

Dominik

ist eine gute Überleitung, weil einer der Gründe,

Dominik

warum Python 3.11 jetzt so

Dominik

anders ist oder eine Neuerung, ist

Dominik

vielleicht, dass an der C

Dominik

Unterbau etwas gearbeitet

Dominik

worden ist.

Jochen

Naja, es ist ja das Release vom C Python Interpreter,

Jochen

Aber genau, also ja, es ist halt, da ist einiges.

Jochen

Also es ist echt viel passiert.

Jochen

Also es ist schneller.

Jochen

Es ist schneller, oder?

Johannes

Das ist immer der Grund, warum man Leuten empfiehlt,

Johannes

auf neue Parsons zu gehen.

Johannes

Es ist wirklich viel, viel schneller.

Dominik

Also nicht überall, aber in vielen Anwendungen

Dominik

ist es wirklich deutlich, deutlich performanter geworden.

Dominik

Ja.

Dominik

So viel 20, 25 Prozent munkelt man.

Jochen

Ja, ja, also je nach Anwendung kommt es halt darauf an.

Jochen

Also es kann auch deutlich mehr sein noch.

Jochen

also, aber es ist insgesamt

Jochen

über alles wahrscheinlich so 25% schneller

Jochen

ungefähr, ähm, äh, und

Jochen

das ist auch nochmal ein gutes Stückchen mehr

Jochen

als die Verbesserungen vorher, also

Jochen

es wird ja immer ein bisschen schneller von

Jochen

Version zu Version und, ähm, diesmal

Jochen

ist es aber ein größerer Sprung als, ähm

Jochen

sozusagen normalerweise oder bisher

Jochen

ja, was halt vor allen Dingen daran liegt, dass

Jochen

jetzt halt eine Menge Leute tatsächlich

Jochen

dediziert an diesem Problem arbeiten

Jochen

und, ähm, ja

Jochen

äh, da der, der

Jochen

Release-Manager von, von

Jochen

Python 3.11 irgendwie

Jochen

Pablo

Jochen

Galindo Salgado, der meinte

Jochen

auch so, also irgendwie ist das

Jochen

deutlich stressiger geworden mit dem

Jochen

Releasen oder das war

Jochen

halt deutlich stressiger als 3.10

Jochen

und einer der Gründe ist halt, dass

Jochen

jetzt halt sechs Leute Vollzeit

Jochen

irgendwie da an Features arbeiten und

Jochen

vorher hat da eigentlich niemand Vollzeit

Jochen

an neuen Features oder an Performance-Verbesserungen

Jochen

gearbeitet und

Jochen

jetzt gibt es doch einige Leute, die da

Jochen

irgendwie viel Zeug reintun

Jochen

Und ja, da hatten sie halt irgendwie enorme Probleme. Also das war auch sowas. Also 3.11 war sehr, sehr schwer irgendwie fertig zu kriegen wohl. Aber es hat dann doch am Schluss noch alles funktioniert. Aber sie mussten halt, also zum Beispiel ein großes Problem, das sie hatten, ist, dass sie hatten halt richtig fiese Bugs noch, 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,

Jochen

also Wheels, die man dann kompiliert hat, dass die noch auch mit dem richtigen Release funktionieren.

Jochen

Das muss man halt früh genug machen, sonst hat man halt nicht genug fertig komplizierte Binaries und das ist halt ein Problem. 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. Und dann muss man halt teilweise sehr komplizierte Dinge tun, damit man das trotzdem fixen kann.

Jochen

Und solche Sachen sind halt leider passiert. Unter anderem sind halt solche Dinge, weil halt, naja, auch was halt für diese Performance-Optimierungen verantwortlich ist, dass halt Dinge halt nicht mehr so gemacht werden, also sie werden eine Zeit lang ganz normal so interpretiert, der 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. Ist mir das zu blöd? Habe ich das achtmal gemacht? Mache ich nicht nochmal? Und nimmt halt eine spezialisierte Version davon, die halt dann zum Beispiel Integer addiert oder Floats addiert und dann 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 Attribut-Akzess und dann manchmal ist es halt so, dann funktioniert das, die ersten acht Attribut-Akzesse funktionieren halt und beim neunten Mal wird halt die Klassenvariable genommen, also wenn du zum Beispiel, das machen ja viele Leute, dass sie halt in der Klasse halt sozusagen die Parameter, die ein Objekt bekommt, definieren und wenn du dann eine Instanz machst, instanzierst das Ding, dann überschreibst du das.

Jochen

Und die Instanzvariablen, also wenn Attribute an der 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 Bug-Report rein und dann hat einer so, ha, irgendwie, also achtmal geht das gut und dann beim neunten Mal irgendwie, achso nee, das war nicht der Report.

Jochen

Der Report war irgendwo, komische Geschichte ist irgendwie dann geworden und wo es nicht dann werden durfte und irgendwas seltsames und das hat irgendwie lange gedauert, um rauszukriegen, was das Problem ist.

Jochen

das Problem war tatsächlich, dass halt beim neunten Mal

Jochen

wurde halt irgendwie die Klassenvariable genommen und nicht mehr

Jochen

die Instanzvariable, was halt nicht passieren darf,

Jochen

weil das

Jochen

irgendwie mit dieser Spezialisierung zusammenhing,

Jochen

dass man dann halt, dass da halt irgendwas

Jochen

direkt genommen wurde.

Jochen

Irgendwelche Fallbacks.

Jochen

Das ist natürlich total schrecklich,

Jochen

wenn man so einen Bug hat. Also einmal

Jochen

war es wohl irgendwie super schwierig, den zu finden und dann

Jochen

war es halt super schwierig, den zu fixen,

Jochen

ohne die C-API nochmal anfassen

Jochen

zu müssen und naja, also alles ganz, ganz

Jochen

schrecklich.

Jochen

Ja, der hat es auf jeden Fall sehr gejammert,

Jochen

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

Jochen

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

Jochen

Aber das ist so ein Problem, oder?

Jochen

Wenn zu viele Leute an einer Software arbeiten,

Johannes

dass dann halt irgendwie doch schwieriger ist oder stressiger oder so.

Johannes

Ja, ja.

Johannes

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,

Johannes

dann ist das auch nicht so wild,

Johannes

weil dann ist irgendwie das gesamte Wissen so verteilt.

Johannes

Aber wenn es dann mehr Leute werden,

Johannes

dann ist einfach da so Sachen, die so ineinander greifen.

Johannes

Also das ist meine Erfahrung.

Johannes

Ich weiß nicht, wie es euch da geht.

Johannes

Ja, ja, absolut.

Jochen

Also die Komplexität, auch wenn mehr Leute an einem Projekt sind,

Jochen

steigt nicht linear, sondern irgendwie bösartiger.

Jochen

Exponentiell.

Jochen

Exponentiell weiß ich jetzt auch nicht.

Jochen

Aber irgendwie dieser.

Jochen

Heute geht noch, oder?

Jochen

Sechs, sieben geht vielleicht auch.

Jochen

Ja, da muss man dann schon Prozesse haben und so und genau darauf aufpassen.

Jochen

Und ganz schlimm wird es, also ich würde mich dem Lager zuordnen,

Jochen

das sagt also mehr als ein Team an der Software arbeiten,

Jochen

vielleicht sowieso keine so gute Idee.

Jochen

Also wenn man jetzt quasi aus dem Bereich, wo man noch ein Team haben kann, rauskommt,

Jochen

hat jetzt mehrere Teams die anderen.

Jochen

Also da gibt es dann ja auch irgendwie diverse Dinge.

Jochen

Aber ehrlich gesagt, das ist alles so schrecklich.

Jochen

Also ich weiß nicht, ob es sich überhaupt lohnt, in dem Bereich zu skalieren,

Jochen

weil wenn du halt ein gutes Team hast, das kleiner ist,

Jochen

dann kann das eigentlich aus meiner Perspektive fast immer

Jochen

schneller sein, als egal, wie viele Leute du drauf

Jochen

wirfst, weil das kriegst du

Jochen

eh nicht mehr organisiert.

Jochen

Naja,

Jochen

keine Ahnung. Was für eine optimale Teamgröße

Jochen

würdest du sagen?

Jochen

Fünf oder so was?

Jochen

Ja, ja.

Jochen

Ich würde sagen vier.

Jochen

Warum vier?

Johannes

Weil fünf schon zu groß ist. Fünf ist ein

Johannes

großes Team schon. Vier ist

Johannes

ein mittleres Team, drei ist ein kleines Team,

Johannes

das ist super. Und alles über

Johannes

fünf ist nicht gut. Da musst du dann

Johannes

viel Management machen. Da brauchst du dann

Johannes

jemanden, der assistiert

Johannes

und jemanden, der koordiniert und dann

Johannes

gehst du schon in so

Johannes

Ist bei dir bei den vier Leuten die

Johannes

Kommunikation mit dem Kunden mit drin, bei den vieren?

Dominik

Oder macht das noch jemand

Dominik

mit Managing ein Projekt?

Johannes

Das kommt auf das Projekt an.

Johannes

Es gibt

Johannes

ja Projekte, die haben gar keinen Kunden

Johannes

in dem Sinne. Zum Beispiel Python. Python hat ja

Johannes

keinen Kunden.

Johannes

Keiner, der sagt, ich habe

Johannes

aber das hier beauftragt und das,

Johannes

ja, aber die Software-Community ist ja kein

Johannes

Naja, du musst ja auch Kommunikation

Johannes

machen, du hast ja auch irgendwie eine

Dominik

Product-Ownership in gewisser Weise dann.

Dominik

Nö.

Dominik

Doch. Du kannst machen, was du willst,

Dominik

die Community muss das halt annehmen.

Jochen

Da ist, da ist man ja

Jochen

sozusagen, das ist ja ein schöner Fall eigentlich.

Jochen

Also ich würde ja denken, Produktmanagement

Jochen

ist halt Marketing und Marketing ist halt

Jochen

Ja, so würde ich das nicht sehen. Ich würde jetzt nicht

Dominik

Marketing gucken, das geht nur um die

Dominik

Kommunikationsstelle mit dem Kunden, also jemand, der

Dominik

quasi User-Stories baut und die koordiniert.

Dominik

Ja, aber was soll das für User-Stories geben bei Python?

Jochen

Bei Python-Entwicklung brauchst du sowas in Quatsch halt nicht.

Jochen

Also würde ich jetzt mal so sagen, also so spontan.

Jochen

Also das machst du halt, wenn du,

Jochen

ja, also, aber

Jochen

Nee, aber das brauchst du dann schon

Johannes

zusätzlich, wenn du einen Kunden hast

Johannes

und in so einer Situation bist, wo du einen Kunden

Johannes

hast, der spezifische Wünsche hat,

Johannes

dann brauchst du schon eine Rolle, die nicht

Johannes

nur Entwickler ist.

Jochen

Ja, ja, wenn du Kunden hast, klar, okay, ja.

Johannes

Und da brauchst du dann schon

Johannes

einen PO oder einen, keine Ahnung.

Jochen

Ja, du brauchst halt jemanden, der, also vor allen Dingen,

Jochen

wenn die Entwickler auch nicht selber die, also das ist halt

Jochen

immer das Ding, ich will, eben,

Jochen

ist halt eine Marketingrolle und das halt

Jochen

Produktmanagement wäre halt aus meiner Sicht so

Jochen

irgendwie Anwalt des Kunden.

Jochen

Das ist halt vor allen Dingen dann wichtig, wenn man selber

Jochen

als Entwickler das halt nicht verwendet und auch gar nicht

Jochen

verwenden kann und wenn es um irgendeine andere

Jochen

Geschichte geht, mit der man gar nichts zu tun hat, dann brauchst

Jochen

du jemanden, der diese Rolle einnimmt.

Jochen

Wenn ich irgendwas mache, was ich selber

Jochen

verwende, dann brauche ich das nicht. Dann kann ich das

Jochen

super selber machen.

Jochen

Wenn mir dann jemand erzählt, wie ich das

Jochen

verwenden soll, fände ich komisch, weil

Jochen

ich meine,

Jochen

wie kann das gehen?

Jochen

Jochen, kannst du den nicht auch?

Jochen

Du darfst nur an den

Jochen

Sachen arbeiten, die gerade im aktuellen

Jochen

Sprint drin sind, Jochen.

Jochen

Ja, also, weiß ich nicht.

Jochen

Doch, ich mache das auch

Johannes

für meine privaten Projekte.

Johannes

Natürlich, auch für Skripte,

Johannes

100-Zeiten-Skripte erstmal eine User-Story

Johannes

geschrieben. Erstmal ein Epic.

Johannes

Ja.

Dominik

Da war es doch die Accountability dann,

Dominik

die Responsibility, Jochen. Bist du auch selber für dich

Dominik

...

Dominik

Binnable.

Johannes

Kannst du dir dein Gehalt selber

Johannes

in Bonuspunkten ausbezahlen.

Jochen

Ja, nee. Das

Jochen

muss man da alles nicht machen, zum Glück.

Jochen

Ja, aber

Jochen

also ja, ich meine, tatsächlich, das ist halt

Jochen

groß geworden und

Jochen

ja, wenn viele Leute daran entwickeln, ist halt

Jochen

schwierig und sie hatten ja,

Jochen

es gab ja schon mal in Python 3.9

Jochen

beziehungsweise in 3.10

Jochen

ist es dann halt aktiv geworden. Der Packparser

Jochen

ist halt ja auch die interne, so quasi

Jochen

ein zentraler Teil von

Jochen

Python, ist halt irgendwie komplett

Jochen

einmal irgendwie auf links gedreht worden.

Jochen

Das hat aber einfach so funktioniert.

Jochen

Das ist nicht irgendwie quasi so

Jochen

fies, hat nicht so fiese

Jochen

Konsequenzen gehabt wie jetzt, aber ich meine

Jochen

manchmal hat man halt auch einfach Glück oder Pech, das kann natürlich

Jochen

auch sein.

Dominik

Irgendwer hat irgendwas ordentlich gemacht oder irgendwas übersehen.

Dominik

Aber darauf kannst du nicht setzen.

Dominik

Nee, setzen kann man darauf nicht.

Jochen

Aber ja, also ich meine natürlich auch, wenn man mehrere

Jochen

Sachen gleichzeitig ändert, dann ist es halt so, dass

Jochen

die, dann hat man eine

Jochen

kombinatorische Explosion von

Jochen

Möglichkeiten, wie es schief gehen kann und dann ist natürlich

Jochen

auch die Wahrscheinlichkeit einfach höher, dass es irgendwo kracht.

Jochen

Ja, und diesmal

Jochen

sind es viele Dinge. Ich war mal in so einem Projekt

Johannes

und das war schon so ein bisschen verspätet und dann

Johannes

kam irgendwann der Projektmanager,

Johannes

was nicht, Projekt oder Produkt oder was auch immer

Johannes

für einen Manager, hat gesagt, also

Johannes

wir haben

Johannes

einen sehr engen Zeitplan, ab jetzt dürfen wir keine

Johannes

Fehler mehr machen.

Johannes

Unsere Reaktion war dann, ach so,

Johannes

na gut, ab jetzt

Johannes

dürfen wir keine Fehler mehr machen, na gut,

Johannes

dann machen wir das jetzt halt nicht mehr.

Johannes

Immer wenn ich

Johannes

über die Schulter gucke, ist irgendwas kaputt, ja.

Johannes

Sobald der Manager weghockt, fangen die

Johannes

Entwickler an, Lego zu spielen

Johannes

und Fehler einzubauen.

Johannes

Oder Fehler darf man ja nicht

Johannes

sagen, man sagt ja Jobsicherheit, ich baue

Johannes

Jobsicherheit in dieses Projekt ein.

Johannes

Ja.

Johannes

Das ist genau wie so eine Schätzung von so einem Softwareprojekt.

Johannes

Wer brauchst du denn dafür?

Johannes

Zwei Tage, was kommuniziere

Johannes

ich denn jetzt?

Jochen

Also Schätzung

Jochen

ist auch so ein schönes Thema.

Jochen

Also das ist halt auch, ja,

Jochen

also

Jochen

soll ich das

Jochen

wirklich sagen?

Jochen

Wird das nochmal eine andere Episode,

Jochen

wird das eine so irgendwie, ja.

Jochen

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, also wir

Jochen

callen Bullshit auf alle möglichen etablierten Business-Prozesse,

Jochen

aber ja, dieses mit dem Schätzen ist

Jochen

einfach nur totaler Quark aus meiner Perspektive.

Jochen

Also niemand kann das schätzen.

Jochen

Wir haben da genug Erfahrung, um das inzwischen relativ

Jochen

sicher sagen zu können, dass man das nicht schätzen kann.

Jochen

Es geht einfach nicht. Und wenn man

Jochen

Leute dazu zwingt, dass sie das tun,

Jochen

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

Einfache Sachen.

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, sozusagen Wert, wie auch immer man das definiert, aber man hat ja irgendeine Vorstellung von dem, was Wert bringt.

Dominik

Ja, improvisieren an irgendwelche Aufgaben und wollen, dass die Aufgaben fertiggestellt sind.

Jochen

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

Jochen

So, diesen Wert willst du eigentlich optimieren.

Jochen

Wenn du 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 und du ihnen auf die Finger haust, sie 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.

Dominik

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

Jochen

Ja, aber das führt halt

Jochen

dazu, dass dein Wert nicht mehr maximiert

Jochen

wird, sondern dann wird halt maximiert auf

Jochen

irgendwie langweiligen Scheiß, den man halt

Jochen

schön schätzen kann.

Jochen

Und das ist ja gar nicht das, was du willst.

Jochen

Ich würde anders maximieren.

Jochen

Ich würde auf das maximal

Jochen

erträgliche Zeitbudget

Dominik

maximieren und dann halt gucken, dass ich

Dominik

halt das dann trotzdem so schnell mache, wie ich das für richtig

Dominik

halte und dann den Rest der Zeit halt

Dominik

nicht signalisiere, sondern

Dominik

schön meine Sachen machen kann, wie ich das für richtig halte.

Dominik

Ja,

Dominik

gut, aber

Jochen

ja, ich weiß nicht, aber das

Dominik

Aus Business-Perspektive ist das nicht so sinnvoll.

Dominik

Aus meiner Perspektive

Dominik

ist das schon gar nicht so schlecht.

Dominik

Ja, ich glaube,

Dominik

das sind unterschiedliche Incentives.

Jochen

Das ist ja immer ein anderer Fall.

Jochen

Aber selbst

Jochen

unter der Annahme, dass

Jochen

niemand versucht, das zu gamen, sondern dass alle

Jochen

sich so verhalten, wie das gedacht ist,

Jochen

funktioniert das mit dem Schätzen ja schon nicht.

Jochen

Und das ist halt schon echt schlecht. Also wenn man

Jochen

jetzt noch mit zusätzlich an dem

Jochen

annimmt, die Leute sind bösartig,

Jochen

okay, dann weiß ich nicht,

Jochen

aber das ist ja nochmal ein anderes Problem. Aber selbst wenn

Jochen

sich alle gutartig verhalten und alle

Jochen

nur das Beste wollen, funktioniert das halt schon nicht mehr.

Dominik

Also die Frage ist halt schon, wenn du halt gemeinsam

Dominik

kooperativ irgendwann arbeiten willst, dann musst du ja

Dominik

quasi davon ausgehen, dass du Vertrauen den Leuten

Dominik

entgegenbringen musst. Ja, genau. Und dafür

Dominik

ist das ja schon irgendwie Quatsch, unter Druck zu setzen und dann

Dominik

ist eigentlich die einzige

Dominik

Info, die man irgendwie geben kann, so ja,

Dominik

ist das jetzt eine Frage von Tagen oder von

Dominik

Jahren oder sowas, ne? Ja, aber die

Jochen

Frage wäre auch, wofür willst du das

Jochen

wissen? Warum ist das so? Also, ich meine,

Jochen

ich würde ja sagen, okay, manchmal kann es ja sein, dass das...

Jochen

Die geschäftliche Planung, ja, so Make or Buy und so was,

Jochen

all das halt, ne? Ja, aber...

Johannes

Da hast du ja auch oft viele Business-Sachen da,

Johannes

die da dran hängen, du Marketing

Johannes

und Fremdsysteme und Kundenkontakt

Johannes

und so. Ja.

Johannes

Dann musst du ja Sachen ankündigen. Jahresbudget.

Johannes

Ja, am Ende können wir...

Johannes

Genau, Jahresbudget und

Johannes

manchmal hast du ja auch gesetzliche Vorgaben.

Johannes

Ich arbeite ja jetzt in der Versicherungsbranche,

Johannes

für die Versicherungsbranche

Johannes

und da gibt es

Johannes

jede Menge gesetzliche Vorgaben, könnt ihr euch

Johannes

gar nicht vorstellen, wie viele gesetzliche Vorgaben

Johannes

es da gibt. Und

Johannes

wir kommen jetzt ins Jahresendgeschäft,

Johannes

das ist auch was, was mir bisher unbekannt war, weil

Johannes

die halt so eine Vermittlerstruktur haben und die haben halt

Johannes

Jahrespläne

Johannes

und weil es jetzt zum Ende des Jahres

Johannes

hinzugeht, müssen die jetzt alle noch ihren Plan erfüllen

Johannes

und deshalb ist

Johannes

im November und Dezember doppelt so viel

Johannes

Geschäft wie im Januar und Februar.

Johannes

Und da muss man

Johannes

halt auch damit klarkommen.

Johannes

Also da hängen ja schon Sachen drin. 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. Das wäre sozusagen die Frage.

Dominik

Das ist der Marketingpreis doch. Ich dachte, du magst Marketing nicht.

Jochen

Ja, doch, ich mag schon Marketing.

Jochen

Wie hoch ist deine Schätzungsmarge?

Jochen

Wie hoch ist dein Schätzungsfaktor? Zwei oder drei?

Jochen

Zwei bis drei, irgendwie sowas, ja. Ungefähr.

Jochen

Ja, das würde ich sagen, ist doch normal, oder? Und dann ist doch okay.

Jochen

Ja.

Jochen

Dann kriegst du es auch hin in der Zeit.

Jochen

Nee, ja, manchmal halt auch nicht.

Jochen

Schätzt du Story Points oder Tage?

Jochen

Also, sagen wir mal so, Tage ist noch falscher als Story Points, aber Story Points sind auch schon falsch.

Jochen

Mit fünf bist du eigentlich immer richtig.

Jochen

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

Jochen

Das hatte ich gemacht, Dominik. Jetzt will er nicht mehr.

Jochen

Und

Jochen

ich meine, die Alternative

Jochen

ist ja, ich würde einfach die Alternative

Jochen

probieren. Die Alternative ist, man nimmt sich das Nächste, was

Jochen

halt irgendwie den höchsten Wert

Jochen

verspricht und arbeitet

Jochen

halt dran. Und wenn das halt zu lange dauert,

Jochen

dann hat das nicht mehr den höchsten Wert, dann nimmt man

Jochen

was anderes. Aber das

Jochen

vorher alles zu

Jochen

schätzen und dann zu priorisieren,

Jochen

also ich habe starke Zweifel daran,

Jochen

dass das irgendein, dass das irgendwie

Dominik

das besser macht. Das ist genau das, worum es da gerade geht.

Dominik

du fängst halt an, die Sachen dann untereinander zu

Dominik

gamen und zu arbitragieren und sowas und das ist

Dominik

halt das, was die dümmste Idee ist, die du

Dominik

machen kannst, wenn du vernünftiges Management

Dominik

machen willst mit Leuten, die motiviert, intrinsisch motiviert

Dominik

an Dingen arbeiten sollen oder wollen

Dominik

und das ist genau der entscheidende Punkt, wo

Dominik

ich auch sagen würde, dass das keine gute Idee ist, das zu machen

Dominik

auch das mit dem Tracking und so, das ist keine gute Idee

Dominik

Ja

Dominik

Ja, es gibt Leute, die verstehen das nicht, die meinen

Dominik

ja, die müssen aber, ja und dann

Dominik

Ja gut, also

Jochen

Ja, ich meine

Jochen

es gibt ja auch genug Beispiele, wo dann halt irgendwie nicht so

Jochen

tolle Sachen dann mal rauskommt. Ich freue mich dann immer

Jochen

über Leute, bei denen das dann doch funktioniert und

Jochen

die anderen, die meinen, dass das funktioniert und

Jochen

wenig von der

Jochen

Realität informiert

Jochen

werden darüber, ob das jetzt

Jochen

dann, da freue ich mich auch drüber, weil

Jochen

irgendwie... Ja, das hat ja auch was mit Informationsadmetrie zu tun

Jochen

und die Frage ist also, ob du die Wahrheit überhaupt

Jochen

kennen kannst. Ja.

Dominik

An der Stelle, aus der jeweiligen

Dominik

Managementperspektive oder so, das geht halt nicht.

Jochen

Richtig, das ist auch ein Riesenproblem

Jochen

und ich würde sagen, in vielen Sachen, die ich gesehen

Jochen

habe, ja, nee, können sie nicht. Also du müsstest

Dominik

Ja, du musst es halt zum Beispiel haben, der richtig selber

Dominik

kunden kann, der das komplett selber einschätzen kann,

Dominik

was aber passiert ist. Ansonsten ist das

Dominik

gar nicht so notwendig. Der müsste halt die ganzen Commits lesen und dann

Dominik

verstehen, warum es so lange gedauert hat. Der muss

Dominik

auch verstehen, dass, keine Ahnung, man manchmal

Dominik

zwei Tage lang nach einem fehlenden Punkt oder Komma

Dominik

oder Leerzeichen suchen muss, weil das irgendeinen blöden Bug

Dominik

an irgendeiner Stelle gibt, den man nicht erwartet hat.

Dominik

Und dass dafür bestimmte Sachen halt einfach schnell gehen, obwohl

Dominik

die total kompliziert aussehen. Das ist halt so,

Dominik

ja, der muss halt so ein Feeling

Dominik

haben. Aber das... Manchmal hat man ja auch

Dominik

die Inspiration, oder, sowas zu machen.

Dominik

manche Sachen gehen schneller,

Dominik

obwohl sie komplizierter sind, weil man sie machen möchte.

Dominik

Ja, aber das ist das, was du willst. Du willst diesen

Dominik

Flow haben. Und damit dieser Flow möglich ist,

Dominik

damit dir diesen Flow reinkommt, dass du mal 3, 4,

Dominik

5, 6, 7, 8, 9, 10 Stunden

Dominik

einfach nur ballerst und dann ist das richtig

Dominik

geiles Fertig. Dafür brauchst du danach die Tage

Dominik

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

Johannes

Flow optimieren?

Johannes

Oh je.

Johannes

Ah, ich weiß es. Wir brauchen einen

Johannes

Kickertisch in der Lande.

Johannes

Schon fertig.

Johannes

Und einmal im Monat gibt es Pizza-Abends

Johannes

für alle, die nach 20 Uhr

Johannes

noch da sind.

Johannes

Eine Tischtennisplatte natürlich

Johannes

und ein Lauftreff.

Jochen

Naja, tja.

Jochen

Ja.

Jochen

Ach ja, man merkt das.

Jochen

Ist das bei euch auch so? Ich glaube, ich weiß, warum das jetzt

Jochen

gerade alles wieder so am Jahresende

Jochen

Ihr habt ja mehr Geschäft, ne?

Jochen

Ja, wir auch. Also hier ist gerade relativ

Jochen

stressig, weil es ist relativ

Jochen

viel Zeugs. Also ich meine, da kann man sich auch mal

Jochen

drüber freuen, wenn Leute irgendwie

Jochen

wollen, dass man Dinge für sie macht.

Jochen

Ist eigentlich gut.

Jochen

Ist eigentlich sehr gut, aber

Jochen

es ist so zum Jahresende, es wird immer

Jochen

mehr irgendwie. Man hat immer so das Gefühl,

Jochen

am Jahresende ist es immer so ein bisschen voller irgendwie.

Dominik

Man muss ja noch irgendwie die Sachen durchkriegen, die man für das Jahr geplant hat

Dominik

und gucken, ob die noch fertig werden.

Dominik

Dann wieder muss man aufs Neue ufern.

Dominik

Muss dann wieder

Dominik

ohne überlegen neue Projekte.

Dominik

Wenn du die Zeitperioden einplanst.

Dominik

Ja.

Dominik

Erstmal die Frage, kann man dann

Dominik

eine clevere Planung machen.

Dominik

Da sind wir jetzt nämlich genau wieder bei dem Punkt,

Dominik

kannst du sagen, clevererweise,

Dominik

okay, wir machen sowas so,

Dominik

das muss am Ende des Jahres fertig sein,

Dominik

da muss man am Ende gucken,

Dominik

da hat man ein bisschen geschludert,

Dominik

muss man noch ein bisschen antreiben oder sowas,

Dominik

aus so einer Management-Perspektive.

Dominik

Ja, weiß ich nicht.

Dominik

Ich glaube, das geht alles nicht.

Dominik

Glaube ich auch nicht.

Dominik

Auch etwas, was niemand hören will, aber.

Dominik

Für eine gewisse Zeit geht es schon, oder?

Johannes

Also ich meine, Crunch-Time funktioniert schon.

Johannes

Funktioniert ein bisschen, ja.

Johannes

Die Akkus leer sind halt, ne?

Johannes

Genau, dann hast du halt danach wieder die Periode,

Johannes

wo es langsamer geht.

Johannes

Ja, aber es ist auch keine...

Johannes

Viele können die das machen so.

Johannes

Ja, ja.

Johannes

Qualität darf da auch nicht das Merkmal sein.

Johannes

Das ist halt dann nur mehr gemacht.

Dominik

Ja, aber dann machst du billig und Crunch-Time

Dominik

und dann guckst du, dass die Produktivität

Dominik

dann immerhin so 60% ist, wenn du einfach gute Leute nimmst.

Dominik

Und es kostet aber trotzdem eher mehr.

Johannes

Ja, aber gute Leute...

Johannes

Sie sind zu rar.

Johannes

Kennst du so viele gute Leute,

Johannes

dass du ein Viererteam damit füllen könntest?

Johannes

Ja.

Johannes

Also wir sind jetzt...

Johannes

Ja, aber die Zeit hat...

Johannes

Kennst du noch einen guten?

Johannes

Bereit wären für dich zu arbeiten?

Johannes

Schwierig.

Johannes

Also ja, nee, ist nicht so einfach.

Johannes

Die du bezahlen kannst, Dominik.

Johannes

Ja.

Johannes

Die Zeit haben, die nicht schon woanders sind.

Johannes

Das ist doch das Problem.

Johannes

Die guten Leute sind immer belegt.

Johannes

Naja.

Johannes

Tja.

Johannes

Deshalb habe ich auch nie Zeit, Podcasts aufzunehmen.

Johannes

Jetzt wisst ihr Bescheid.

Johannes

Ja.

Jochen

Ja, aber offenbar hat das Python-Projekt ein paar Leute gefunden,

Jochen

die tatsächlich irgendwie dafür arbeiten wollen.

Jochen

Und die sind auch eigentlich alle ziemlich gut.

Dominik

Das war eine der längsten Exkurse, die wir bisher hatten, glaube ich.

Dominik

Ja, die haben dieses

Jochen

Problem irgendwie in den Griff gekriegt.

Jochen

Und

Jochen

ja, das hat

Jochen

eigentlich auch tatsächlich, also das ist

Jochen

ja sowieso eine Neuerung im Grunde, dass

Jochen

halt so viele Leute Vollzeit

Jochen

jetzt irgendwie da dran arbeiten.

Jochen

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

Jochen

Ja, das war super.

Jochen

Genau, also

Jochen

vielleicht gehen wir einfach nochmal durch die

Jochen

Dinger so durch, was da alles

Jochen

und neuen Sachen dazugekommen ist.

Jochen

Also genau,

Jochen

wir hatten die

Jochen

Performance-Verbesserung so ein bisschen, da können wir

Jochen

eigentlich nochmal ein bisschen ins Detail gehen,

Jochen

auch was da passiert ist, aber halt

Jochen

dann die besseren Fehlermeldungen.

Jochen

Was es auch gibt, sind

Jochen

Exception-Groups und Accept-Sternen

Jochen

irgendwie. Das ist

Jochen

etwas,

Jochen

also

Jochen

auf der einen Seite ist es krass, dass das jetzt erst

Jochen

da drin ist sozusagen, weil erst jetzt

Jochen

hat man halt die Möglichkeit, bestimmte Sachen zu machen, wo man

Jochen

denkt so, oh, das ist aber ganz übel, wenn man das nicht

Jochen

machen kann. Und ja, es war einfach schon immer

Jochen

ganz übel. Also Python 2 war

Jochen

super übel. Da gab es halt bloß

Jochen

eine Exception, die halt, wenn eine geflogen

Jochen

ist, halt nur eine geflogen. Und wenn irgendwas

Jochen

anderes zwischendurch passiert ist, ja, Pech gehabt.

Jochen

Und dann

Jochen

ab Python 3 gibt es halt diese Chained

Jochen

Exceptions, die man manchmal sieht, wenn da so

Jochen

wenn man so ein Traceback

Jochen

kriegt, so während dieser Traceback geworfen

Jochen

wurde, ist halt noch was anderes passiert. Und da kann man

Jochen

beliebige aneinanderhängen. Und diesen Mechanismus kann man

Jochen

natürlich auch dafür missbrauchen, dann

Jochen

oder gebrauchen,

Jochen

um halt, wenn man viele Exceptions hat,

Jochen

die irgendwie, zum Beispiel wenn man halt viele Tasks

Jochen

hat, die man gleichzeitig abgefeuert hat,

Jochen

die dann halt alle ja auch irgendwie schief gehen können,

Jochen

um das zu

Jochen

wieder einzufangen oder solche Sachen.

Jochen

Aber das ist natürlich alles sehr hässlich, weil

Jochen

eigentlich war das gedacht für Sachen, die was miteinander zu tun

Jochen

haben. Und wenn man jetzt

Jochen

aber so Async-Geschichten

Jochen

macht, die haben ja oft nichts miteinander zu tun.

Jochen

Also die aneinander zu ketten ist halt

Jochen

irgendwie, macht keinen so großen Sinn.

Jochen

Und dafür gibt es jetzt halt

Jochen

Exemption Groups und

Jochen

wo man die Exceptions so in Bäumen

Jochen

anordnen kann und

Jochen

ja, es gab auch

Jochen

vorher schon so Sachen, die dann versucht haben, drüber umzuarbeiten.

Jochen

Nurseries in Trio und so.

Jochen

Wir haben auch schon irgendwann

Jochen

ganz kurz drüber gesprochen.

Jochen

Genau, das war eigentlich so ein fehlendes

Jochen

Puzzlestück auch für

Jochen

Async.io, um das

Jochen

halt so richtig ordentlich zu machen, weil

Jochen

das ist halt total blöd, wenn du halt

Jochen

nicht tatsächlich alle

Jochen

Sachen, die schiefgegangen sind, hinterher

Jochen

behandeln kannst.

Jochen

Weil manchmal musst du es halt

Jochen

handeln und wenn du dann davon gar nicht

Jochen

informiert wirst, ist es halt irgendwie schon nicht so gut.

Jochen

Und es gibt das aber auch außerhalb

Jochen

von AsyncIO. Es ist nicht nur ein

Jochen

AsyncIO-Feature, weil es gibt auch so

Jochen

Dinge wie zum Beispiel

Jochen

im Socket-Modul, wenn du halt eine Verbindung

Jochen

irgendwo hin aufmachst, dann probiert das

Jochen

Ding halt unterschiedliche

Jochen

Sachen

Jochen

durch, wenn es halt irgendwie nicht funktioniert.

Jochen

Also diverse Optionen, die dann

Jochen

gesetzt werden können. Und bisher

Jochen

war es halt so, naja, es werden halt diese Sachen durchprobiert,

Jochen

wenn das eine nicht funktioniert, wird das andere probiert und so weiter.

Jochen

Und jedes Mal fliegt ja eigentlich eine Exception.

Jochen

Aber du kriegst immer nur die letzte

Jochen

zu sehen eigentlich.

Jochen

Was ja auch irgendwie kacke ist, weil du

Jochen

möchtest ja im Grunde vielleicht schon sehen können,

Jochen

so, was ist denn da alles schiefgegangen? Also bei

Jochen

allen Dingen, wo man so Retry-Geschichten hat,

Jochen

wenn du jetzt sagst,

Jochen

oder bei so einem

Jochen

Salary-Task oder was auch immer, sagst halt

Jochen

irgendwie fünf Retries und dann geht's

Jochen

halt nicht. Dann kriegst du halt, wenn es

Jochen

dann eine Exception gab, immer nur die letzte.

Jochen

Aber vielleicht gab's ja vorher schon mal Exceptions und

Jochen

vielleicht waren die anders. Das wäre ja interessant zu

Jochen

wissen. Aber das, momentan gibt's keine

Jochen

Möglichkeit, oder bisher gab's keine

Jochen

Möglichkeit, da dran zu kommen. Und jetzt

Jochen

halt schon. Und ja, da das halt nicht

Jochen

nur für Asian-Geschichten, sondern

Jochen

halt auch in anderen Kontexten auftritt und

Jochen

eigentlich jetzt zum ersten Mal

Jochen

ermöglicht, diese Sachen so sauber zu handeln, dass du wirklich

Jochen

alles behandeln kannst,

Jochen

was da schiefgegangen ist.

Dominik

Also man konnte das ja schon vorher machen, indem man

Dominik

so ein Python-Feature

Dominik

genutzt hat, also indem man

Dominik

eine leere Liste als Cache

Dominik

irgendeiner Funktion gegeben hat.

Dominik

Also quasi selber bauen,

Dominik

Dominik. Genau, die immer aufgerufen wurde.

Dominik

Und dann konnte man

Dominik

die daran dann sammeln.

Dominik

Ja, also man kann natürlich solche Sachen...

Johannes

Aber das musst du dann halt immer machen. Das ist so wie die C-Fehlernummern,

Johannes

oder? Es gibt keine Fehlernummern, also

Johannes

wenn du 0 zurückgibst, ist alles

Johannes

in Ordnung und wenn du irgendwas anderes zurückgibst, musst du in der

Johannes

großen Liste nachschauen.

Jochen

Ja, oder was man halt, ein Vorschlag

Jochen

war halt auch, man kann es nicht über Logging machen oder solche

Jochen

Mechanismen, aber tatsächlich

Jochen

es gibt dann Vorrätsel.

Jochen

Ja, oder irgendwas in der Richtung,

Jochen

dass man das halt nicht,

Jochen

weil tatsächlich ist es ja jetzt, es

Jochen

ändert ja die Python-Syntax.

Dominik

Das müsst ihr mir kurz erklären, warum ihr gerade gelacht habt, mit was

Dominik

ist das für ein Vorschlag? Verstehe ich nicht.

Johannes

Ja, wenn eine Exception auftritt und du willst wissen,

Johannes

was da vor passiert ist, da drüben ist

Johannes

eine magische Datei und da hast du es hoffentlich reingeschrieben.

Jochen

Ja, wenn die weg ist, keine Lösung

Jochen

für dieses Problem.

Jochen

Du kannst natürlich hingehen und

Jochen

quasi um, also du könntest

Jochen

natürlich statt Exceptions zu werfen, einfach

Jochen

alles in ein Logfile reinschreiben und dann

Jochen

im Code ab und zu mal nachgucken, ob

Jochen

eine Exception geflogen ist in ein Logfile.

Jochen

Das ist so eine schlaue Art.

Jochen

Mit Dragle Expressions.

Jochen

Ich habe gehört, so funktioniert Cloud.

Jochen

Ja, genau. Oder verteilte Systeme,

Jochen

da hat man das Problem natürlich so.

Jochen

Das ist unter Umständen

Jochen

sehr schmerzhaft.

Jochen

es gibt da einen schönen Vortrag von

Jochen

der Entwicklerin,

Jochen

die das geschrieben hat,

Jochen

wo sie halt

Jochen

auch kurz durchgeht, ich habe das jetzt

Jochen

dummerweise, ich habe das schon

Jochen

ein oder zwei Monate her gesehen,

Jochen

wo sie halt durchgeht,

Jochen

warum das eine sinnvolle Geschichte ist, an der

Jochen

die Sprachsyntax zu verändern, weil

Jochen

du kannst es, und sie geht dann diverse Möglichkeiten durch,

Jochen

wie man das implementieren könnte, und

Jochen

da kommt am Schluss raus, ja, es geht nicht

Jochen

anders, du musst die Sprach, man muss die Sprachsyntax

Jochen

da verändern. Es gibt keine andere

Jochen

schöne Möglichkeit, wie man das hinprogrammiert, wie man das

Jochen

anders machen kann. Also wenn es eine andere gegeben

Jochen

hätte, hätten sie es auch anders gemacht, weil das ist natürlich

Jochen

irgendwie so ein bisschen das letzte Mittel,

Jochen

die Sprachsyntax ändern, das macht mir ja auch nicht

Jochen

so einfach aus Spaß.

Jochen

Und es gab aber keine. Und dass es ein Problem

Jochen

ist, ist ja schon lange klar. Also das ist ja

Jochen

nicht so, dass den Leuten das jetzt erst aufgefallen wäre,

Jochen

sondern eigentlich, also quasi

Jochen

dass man sowas braucht und

Jochen

im Async-Kontext war das, der

Jochen

Async.io hauptsächlich implementiert hat,

Jochen

Juri Selimanov, der

Jochen

hat 2017 schon irgendwie gesagt, wir brauchen das unbedingt

Jochen

irgendwie, dann gab es diese Geschichten mit Trio

Jochen

und so und aber

Jochen

niemand hat eine Möglichkeit, weil man dachte immer so,

Jochen

ach das geht bestimmt, irgendwie kriegt man das hin, ohne

Jochen

dass man dafür irgendwie die Sprache ändern muss

Jochen

und das hat aber niemand hingekriegt und jetzt

Jochen

ist die Sprache geändert worden und

Jochen

ja, also was es halt an neuer Syntax

Jochen

gibt, ist halt dieses Accept-Stern irgendwie,

Jochen

wo man dann halt quasi

Jochen

alle Dinge aus einer Gruppe halt,

Jochen

eine Gruppe von Sachen halt fangen kann,

Jochen

dann kann man damit irgendwas machen, dann kann man die splitten

Jochen

und damit kann man es eigentlich

Jochen

sauber machen und das ist eigentlich sehr schön.

Jochen

Ja, also gefällt mir auch sehr gut

Jochen

dieses Feature.

Jochen

Oh, und man kann in Exceptions auch noch irgendwie so

Jochen

Notes dranhängen, sodass man halt irgendwie noch ein bisschen

Jochen

Metainformationen mitgeben kann, das auch

Jochen

neu, wenn

Jochen

da halt irgendwie man halt noch ein bisschen

Jochen

Kontext hat, den man gerne da mit

Jochen

reintun würde.

Jochen

Ja,

Jochen

genau.

Jochen

Und

Jochen

ja,

Jochen

Genau, da fällt mir gerade noch

Jochen

zu ein, zu Async, da gibt's

Jochen

jetzt auch, also vielleicht kennen da viele

Jochen

auch dieses, also was man normalerweise verwendet ist,

Jochen

ja, irgendwie Gather, um halt

Jochen

viele Tasks irgendwie gleichzeitig

Jochen

zu awaiten und so. Da gibt's

Jochen

jetzt ein neues Ding, es gibt Task Groups,

Jochen

das ist quasi so ähnlich wie Nurseries

Jochen

in Trio

Jochen

und das ist auch die, das

Jochen

löst Gather und diverse andere

Jochen

Geschichten halt ab und Create Tasks und so

Jochen

und da macht man eigentlich, was man tut,

Jochen

ist, wenn man sagt AsyncWithTaskGroup

Jochen

STG und dann

Jochen

createt man halt Tasks und wenn der

Jochen

Async-Context-Manager

Jochen

durch ist, dann sind alle

Jochen

erfolgreich durchgelaufen. Also das sieht auch

Jochen

sehr elegant aus, also sehr schöne

Jochen

neue Art, wie man

Jochen

Sachen hinschreibt. Es spart gar nicht so viel Zahlen, es ist ein bisschen

Jochen

weniger als vorher, aber es sieht einfach irgendwie

Jochen

ja, sieht gut aus.

Jochen

Also das in Kombination mit den

Jochen

Exception-Groups, also Async mit 3.11

Jochen

ist eigentlich echt so auf dem Stand,

Jochen

dass jetzt funktionieren, es greifen so die ganzen Teile

Jochen

ineinander und jetzt ist es so richtig rund.

Jochen

So vorher haben wir halt... Jetzt kann man endlich

Jochen

Async benutzen. Ja, vorher konnte man es auch schon, aber es haben

Jochen

schon tatsächlich wesentliche Teile gefehlt irgendwie.

Jochen

Also da, ja.

Jochen

Ja, das ist auf jeden Fall

Jochen

alles sehr erfreulich.

Jochen

Genau. Also es ist

Jochen

alles besser geworden, würdest du sagen? Ja, ja, ja.

Jochen

Schon alles deutlich.

Jochen

Das ist doch schön geworden.

Jochen

Da müssen wir in der

Jochen

Typing-Episode mal drüber reden. Keine Ahnung.

Jochen

Variadic Generics

Jochen

Zeugs, das da will ich jetzt einfach mal reden.

Jochen

Das ist alles viel zu kompliziert.

Johannes

Du kriegst eine eigene Episode, glaube ich.

Dominik

Ja, haben wir schon geplant.

Dominik

Dann, ja,

Jochen

Typing ist und einige Sachen mit dazugekommen.

Jochen

Eine coole Geschichte beim Typing, die dazugekommen ist,

Jochen

ist Self.

Jochen

Ja, also wenn man zum Beispiel

Jochen

bisher sowas machen wollte,

Jochen

habt ihr das mal gemacht, so

Jochen

Typ-Annotationen und wenn diese Sachen

Jochen

die Self zurückgeben, was gibt man dann zurück?

Jochen

Ja, die Klasse selber.

Jochen

Ja, das funktioniert leider nicht so. Was ist, wenn du

Jochen

erbst, du bist in...

Jochen

Es ist halt keine Instanz der Klasse.

Jochen

Stell dir vor, du hast halt eine Basisklasse

Jochen

und eine Klasse, die von der Basisklasse erbt.

Jochen

Und in der Superklasse

Jochen

hast du eine Funktion,

Jochen

die irgendwie

Jochen

sozusagen irgendwas zurückgibt.

Jochen

Und das ist dann der Teil des Falls.

Jochen

In der Superklasse sagst du jetzt,

Jochen

annotierst du mit, gib zurück, eine Superklasse.

Dominik

Also eigentlich müsste es dann eine Union machen, ja.

Jochen

Aber das ist ja, wenn das in der Instanz

Jochen

aufgenommen wird, ist das ja falsch, weil es wird eine andere Klasse

Jochen

zurückgegeben. Das geht halt

Jochen

nicht. Das ist genau das Problem.

Jochen

Deswegen kannst du nicht einfach die Klasse da

Jochen

mit der Klasse amüsieren.

Johannes

Es wird doch höchstens eine erbende Klasse

Johannes

zurückgegeben, oder?

Johannes

Ja, eine von denen, die geerbt haben.

Jochen

Also ich meine, in gewisser Weise ist das natürlich schon richtig.

Dominik

Also du kannst die unterste Base-Klasse zurückgeben,

Dominik

das ist ja nicht falsch, weil das ist eine Art von der Instanz.

Dominik

Das ist nicht komplett, aber es ist auch nicht falsch.

Dominik

Aber wenn du jetzt irgendwo dann

Jochen

quasi drauf überprüfst, ob tatsächlich die Unterklasse

Jochen

übergeben wird irgendwo

Jochen

und nicht die Basisklasse,

Jochen

dann geht das halt schief, obwohl es eigentlich richtig ist.

Jochen

Dann hast du ein volles Positiv.

Jochen

Und jetzt kannst du halt sagen

Jochen

from typing import self und dann

Jochen

kriegst du das Self-Tool. Warte mal, ich muss das kurz

Johannes

als Argument aufschreiben, warum ich Typen nicht mag.

Johannes

Warte, das brauche ich für die Typen.

Jochen

Ja, ja, also ich habe auch mal so,

Jochen

also es ist, also so diese

Jochen

Details sind alle schon sehr haarig, muss ich sagen.

Jochen

Also es geht

Jochen

auch nicht gut anders. Also man sagt, es gab das

Jochen

ja vorher nicht, ja, und wenn man sich da Gedanken

Jochen

gemacht hat, okay, wie annotiere ich das denn jetzt richtig?

Jochen

Sondern es geht nicht richtig

Jochen

gut. Man kann das nicht gut annotieren.

Jochen

Du darfst einfach nicht selbst zurückgeben.

Jochen

Und dann sind wir wieder in dieser Situation

Johannes

mit den Schätzungen, dass man jetzt nur noch Sachen macht,

Johannes

die man per Typ erreichen kann

Johannes

und das ist eine Einschränkung, die nicht gut ist.

Johannes

Genau, genau. Aber jetzt

Jochen

gibt es zumindest eine Möglichkeit, die nicht ganz so schrecklich ist

Jochen

und die einfach das Richtige

Jochen

tut quasi. Das ist schon mal gut.

Jochen

Alle Ideen verstehen die jetzt dann auch.

Jochen

Ja.

Jochen

Was haben wir noch?

Jochen

Genau.

Jochen

Jochen, du stöbert gerade so eine lange Liste.

Jochen

Ja, ich habe das im Grunde nur...

Jochen

aus dem What's-New-Ding rauskopiert,

Jochen

das alles.

Jochen

Oh, es gibt eine,

Jochen

das war schon mal in Kleinigkeiten,

Jochen

oder es gibt

Jochen

einen Change-Dir-Context-Manager,

Jochen

das ist etwas, was ich, ich weiß nicht, wie viel Mal

Jochen

ich mir das geschrieben habe.

Jochen

Und wahrscheinlich hat das jeder andere auch schon mal getan.

Jochen

So, irgendwie so, ich möchte ein Verzeichnis...

Jochen

Ein Change-Dir-Context-Manager, sehr schön.

Jochen

Aber ich muss unbedingt wieder zurück, weil

Jochen

das ist nicht gut, wenn ich da irgendwo

Jochen

in einem, ich muss jetzt irgendwo tief im

Jochen

Dateisystem-Baum irgendwas machen, aber ich...

Dominik

Du musst ja nicht bleiben und da irgendwas ablegen, was da nicht

Jochen

hingehört, aus Versehen oder so. Das Problem ist,

Jochen

dass du dann noch, also wenn du halt da noch mehr

Jochen

Sachen machst und du bist im falschen Verzeichnis, dann hat

Jochen

das halt unter Umständen blöde Konsequenzen, deswegen,

Jochen

also ich habe das schon ganz oft gemacht, dass ich dann irgendwie

Jochen

mir einen Context-Manager dafür geschrieben habe, wo ich dann sicher sein

Jochen

kann, okay, wenn der durch ist, dann bin ich wieder

Jochen

zurück.

Jochen

Und das Ding ist jetzt in der Context-Lib

Jochen

ist jetzt so ein Teil drin.

Jochen

Ist ein bisschen doof, kann man nicht gut verwenden, weil ansonsten

Jochen

dependet man auf 3.11, aber ja.

Dominik

Wirst changed hier und dann

Dominik

ein Pass-Objekt oder was? Genau, man sagt

Jochen

with ChangeDirPath

Jochen

und wenn man da zurückkommt, ist man

Jochen

wieder zurück.

Jochen

Wusstet ihr, dass Bash auch so ein Feature hat?

Jochen

Da kann man Verzeichnisse pushen.

Johannes

Man kann so ein Stack machen mit Verzeichnissen.

Johannes

Und wenn du fertig bist, kannst du Pop machen und bist dann wieder da,

Johannes

wo du vorher Push gemacht hast.

Johannes

Ne, wusste ich nicht.

Johannes

Du musst allerdings selber darauf aufpassen, dass du wieder

Johannes

an die richtige Stelle zurückpopst.

Dominik

Bei jedem CD kannst du danach poppen.

Johannes

Ja, genau. Du kannst halt einen Stack bauen.

Johannes

Und du könntest prinzipiell ja auch Sub-Shells

Johannes

machen, wo du dann ein Verzeichnis wechselst,

Johannes

aber das wäre ja zu viel drauf.

Dominik

Wo ihr gerade schon über Battery, kennt ihr Sockside?

Dominik

Nee, was ist das?

Dominik

Das ist so ein schönes, kleines

Dominik

Tool, das für mich CD ersetzt hat.

Dominik

Ach, doch, doch, doch, das verwende ich

Dominik

auch. Ja, ja, ja.

Dominik

Vielen Dank, war ein guter Tipp.

Dominik

Ja, weil man kann nämlich einfach Abbreviation schreiben,

Dominik

statt Directly nehmen. Dann merkt sich quasi die

Dominik

Verzeichnisse, in denen man schon war.

Dominik

Und dann nimmt er den nächsten Match davon.

Dominik

Und dann kann man quasi mit

Dominik

zwei Zeichen oder sowas

Dominik

in das Directory seiner Wahl springen. Und das funktioniert

Dominik

ziemlich gut.

Jochen

Ja, ist tatsächlich sehr nett.

Jochen

Hört sich

Jochen

gefährlich an.

Jochen

Du musst halt die Fahrer nicht mehr ausschreiben.

Dominik

Tipp V, Auto-Completion

Dominik

for the win.

Dominik

Dieses Manifest unterschreibe ich

Dominik

zwar prinzipiell, aber

Dominik

ich möchte schon gerne wissen, was der Computer macht.

Dominik

Ein Hoch auf den Co-Pilot, das ist hervorragend.

Jochen

Weißt du ganz genau, was passiert, wenn du

Jochen

Tab drückst?

Johannes

natürlich, ganz exakt weiß ich das

Johannes

vor allem in sowas wie PyCharm

Johannes

das ist ja ein relativ kleines

Johannes

übersichtliches Java-Programm

Johannes

da weiß man immer genau, was passiert vorher

Dominik

aber Control-R zum Beispiel ist ja dann

Dominik

auch so, weil ich weiß nicht, kann man das auch konfigurieren

Dominik

bei PyCharm oder sowas?

Dominik

dass man eine Liste von den Vorschlägen bekommt, die jetzt gerade

Dominik

die tollste Alternative

Dominik

gewesen wären, wie das

Dominik

Fisch-Shell macht das ja zum Beispiel

Dominik

Blatt hat ja auch eine History

Dominik

das ist ein Bash-Feature

Dominik

History Search

Jochen

das gibt es jetzt bei Fish

Jochen

den nächsten Match

Dominik

was ist das

Dominik

FZF

Jochen

genau das ist halt das was

Jochen

genau weil die

Jochen

in der Bash-Historie suchen

Jochen

FZF ist natürlich deutlich

Jochen

schicker

Dominik

das kann man dann

Dominik

ja

Dominik

kennt ihr alle schon

Dominik

Kleine Exkurse.

Dominik

Ja, ja.

Jochen

Genau. Was haben wir denn noch?

Dominik

Wenn wir schon mal in den Exkursen sind, also ich wollte noch mal

Dominik

sagen, ich bin natürlich einer von den Netten eigentlich.

Dominik

Muss halt dann auch nett sein. Aber das ist halt

Dominik

Capitalism, Baby. Wir hatten

Dominik

über Projektsachen gesprochen. Das ist halt der Punkt.

Dominik

Also wenn mich jemand als Sklave

Dominik

ausbeuten will, das kann man natürlich nicht zulassen.

Dominik

Es sei denn, man ist ja in einer

Dominik

holokratischen Gemeinschaft, dann ist das alles was anderes.

Dominik

Der Dominik hat gerade auch noch

Dominik

was von seinem Stack zurückgeholt.

Dominik

Es gibt tatsächlich Dinge,

Jochen

die noch gefährlicher sind als Z und Zwei-Wut-Stamm.

Jochen

Aber

Jochen

ja, ich fürchte,

Jochen

dass es halt

Jochen

Kapitalismus, das ist schwer.

Jochen

Ja, es ist ein Problem.

Jochen

Kapitalismus ist schwer.

Jochen

Man kann sich da schon die Zähne draus beißen, muss man sagen.

Dominik

Nein, nein, das Problem ist halt,

Dominik

was heißt Zähne draus beißen?

Dominik

Das Problem ist halt, dass man gegamed wird

Dominik

vom Geld.

Dominik

Ja, das ist das Problem dabei.

Dominik

Und dann muss man überlegen, ob man game will.

Dominik

Also in Spieltheorie kann man ja überlegen,

Dominik

ob das fair verhandelt, dann verhandelbare

Dominik

Lösungen gibt oder nicht.

Dominik

Und ich sag mal so, man kann nicht

Dominik

ja vielleicht glück sein, wenn man Partizipationen sich erkaufen kann

Dominik

oder das möchte irgendwie.

Dominik

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

Dominik

Für den

Dominik

schnöden Mammon.

Jochen

Ja, man muss

Jochen

aufpassen. Also es ist

Jochen

schwierig und ja, man ist

Jochen

leichter

Jochen

Fehler zu machen, das ist schon richtig.

Jochen

Äh, genau.

Jochen

Nein, ich finde, es ist eine Pflicht,

Dominik

da Widerstand zu leisten, darauf wollte ich hinaus.

Jochen

Ach so, ja, ja.

Jochen

Na egal, wir wollten keine politischen

Jochen

Sachen. Das ist aber schon so ein

Jochen

moralisches Dilemma, was man hat manchmal, oder?

Jochen

Ja. Also ich meine,

Johannes

ich war noch nicht in der Situation, dass ich ein Feature

Johannes

bauen musste,

Johannes

wo ich

Johannes

moralisch nicht dazu in der Lage

Johannes

gewesen wäre, um es mal so zu formulieren.

Johannes

Ähm, aber es gibt

Johannes

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

Johannes

jetzt gerade mit den

Johannes

zahlreichen Personen,

Johannes

deren NDAs bei Twitter ausgelaufen

Johannes

ist,

Johannes

die jetzt

Johannes

über Features sprechen können, die sie hätten

Johannes

bauen sollen. Da gibt es

Johannes

schon interessante Geschichten.

Johannes

Okay, das habe ich

Johannes

noch gar nicht gehört. Viel drüber diskutiert,

Johannes

aber

Johannes

ja, das ist so irgendein, also

Johannes

einer von diesen Twitter,

Johannes

einer von den wenigen entlassenen

Johannes

Twitter-Software-Engineers,

Johannes

hat geschrieben auf Twitter,

Johannes

dass

Johannes

das vor einigen

Johannes

Jahren, 2016 war das, als Twitter

Johannes

ganz arg Geld gebraucht hat,

Johannes

wo übrigens Google und Facebook beide

Johannes

nicht Twitter kaufen wollten, wo die sich jetzt glaube ich

Johannes

ärgern,

Johannes

dass sie da mit so

Johannes

Telcos zusammengearbeitet

Johannes

haben und die dann halt verlangt haben, dass

Johannes

Twitter quasi alle 10 Sekunden

Johannes

die aktuelle Position des Benutzers

Johannes

übermittelt, damit die schauen, ob die in die Läden

Johannes

der Konkurrenz reingehen.

Johannes

Und wo dann halt auch der, der Engineer gesagt hat, nee, das brauche ich nicht, mache ich nicht. Und da halt in dem Team der Einzige war, der das hatte machen können, mussten die halt sagen, okay, gut, dann gibt es das 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, gerade, also ich meine, viele Leute haben ja Angst davor, entlassen zu werden, aber 2016 als Software-Ingenieur hat man sich da, glaube ich, keine Sorgen machen müssen. Aber es gehört natürlich trotzdem Mut dazu, zu sagen, ich mache das nicht, auch wenn ihr mich entlasst.

Johannes

Ja, und die meisten Leute haben auch ihren Preis.

Johannes

Beziehungsweise dann erst recht.

Dominik

Nur mehr zahlen und dann geht es dann trotzdem oder so.

Dominik

Ja, auch das.

Dominik

Das wurde ja wohl auch gefragt,

Johannes

wie viel Geld müssen wir dir denn geben, dass du es machst?

Johannes

Und dann hat er gesagt, so viel Geld habt ihr nicht.

Johannes

Tja.

Jochen

Ja, ja, also ich meine, nö, aber ich merke das ja.

Jochen

Ich denke, es gibt viele Leute, die wahrscheinlich irgendwie,

Jochen

ich glaube, Waffenentwicklung oder so wäre für viele schon ein Tabu

Jochen

oder auch eben

Jochen

für irgendwelche staatlichen Akteure

Jochen

irgendwelche Schnüffelgeschichten bauen oder so.

Dominik

Aber da gibt es ja auch wieder Gut und Böse, deswegen sagt

Dominik

der Crusader das. Ja, irgendjemand macht's,

Dominik

aber ich denke... Ja, irgendjemand hat den

Johannes

Staatstrojaner geschrieben, irgendjemand hat...

Dominik

Nein, aber die Frage ist halt, wenn du angegriffen wirst,

Dominik

dann ist es relativ opportunistischer

Dominik

wieder sowas zu tun.

Dominik

Hm? Wenn du dich bedroht

Dominik

fühlst, wenn du dich...

Dominik

Ja, ja. Du bist...

Dominik

Deine China und das große Amerika

Dominik

versucht, sich zu unterdrücken, der muss sich wehren

Dominik

und so weiter.

Dominik

Das hat doch nichts mit Privacy-Sachen

Johannes

zu tun, die du dir verkaufen kannst.

Johannes

Doch, viel.

Jochen

Naja, das hat nichts mit

Jochen

Datenschutz zu tun.

Dominik

Also die ganzen kommerziellen Zwecke, die dann

Dominik

dazu führen, dass sowas passiert und

Dominik

diese ganzen Incentives

Dominik

überhaupt, das zu machen, also auch für Geld und so,

Dominik

also die Moral hinten anzustellen

Dominik

oder das halt tatsächlich aktiv zu

Dominik

machen, um für so einen Staat oder so was

Dominik

in Aktion treten zu können und dem mehr Kontrolle

Dominik

zu verschaffen, das, glaube ich, hängt sehr stark damit

Dominik

ab, zusammen.

Dominik

Vielleicht habe ich es auch noch nicht

Johannes

so richtig verstanden. Also ich weiß es nicht, ganz ehrlich zu

Johannes

sein. Ich weiß es nicht, um ganz ehrlich zu sein,

Johannes

wenn man mir Geld anbieten würde für ein

Johannes

unethisches Feature.

Jochen

Ich kann ja schon mal die Kontonummer sagen,

Jochen

aber ich weiß es nicht. Du könntest was mit deiner Fahne tun.

Jochen

Die Flagge hochhalten.

Jochen

Ich glaube von mir, dass ich

Johannes

ein guter Mensch bin, aber wenn es dann

Johannes

tatsächlich in der Situation ist, kann ich

Johannes

nicht garantieren, dass es tatsächlich so ist, weil

Johannes

ich habe halt

Johannes

Familie und ein Häusle, was abbezahlt werden

Johannes

muss und

Johannes

irgendwie will man sich ja

Johannes

da schon schützen, ja, und man ist ja auch bequem,

Johannes

ganz ehrlich. Ja, das ist Komfort auch nicht.

Johannes

Jeden Tagsprojekt. Dafür habe ich

Dominik

an der Uni immer Schelte bekommen,

Dominik

wenn solche Leute waren.

Dominik

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

Dominik

Die Kampfbereitschaft, die fehlende, der Mut

Dominik

zur Veränderung, fehlende revolutionäre

Dominik

Anteile und so, ja, ja.

Dominik

Verstehe schon.

Johannes

Ja, und bevor die das Geld jemand anderem geben,

Johannes

der das nicht gescheit macht, dann mach es doch lieber ich.

Johannes

Kapitalism, Baby.

Johannes

Ja, es ist schwierig.

Johannes

Andererseits kenne ich halt auch so Leute,

Johannes

die von sich selber sagen, ja gut,

Johannes

die sind halt Software-Prostituierte,

Johannes

die machen halt, was der Kunde verlangt.

Johannes

Solange der das bezahlt, machen die das halt.

Johannes

Ich würde sagen, das ist der Default.

Johannes

Ja.

Jochen

Ist jetzt auch, würde ich sagen,

Jochen

nicht so furchtbar verwerflich, ehrlich gesagt,

Jochen

weil ich meine, das ist ja das, was alle

Jochen

anderen eigentlich auch so machen, üblicherweise.

Johannes

Ja, aber gerade dann ist es doch verwerflich.

Johannes

Ja?

Johannes

Ja, vielleicht ist es dann besonders verwerflich.

Johannes

Gerade hier in Deutschland muss man doch aus der Geschichte,

Johannes

muss man schon aus der Geschichte sagen, ja, wenn die

Johannes

das machen, dann ist es okay.

Dominik

Besonders bei einem Beispiel voran in den Abgrund rennen.

Dominik

Und möglichst.

Jochen

Ja, es ist schwierig.

Jochen

Ich weiß es nicht.

Jochen

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

Jochen

Das ist ja der Aufruf, jemand soll uns mal in diese Situation bringen.

Dominik

Bitte, immer nur dank von den Leuten, die die Böse nicht richtig auseinanderhalten können und nicht wissen, für wen es sich richtig bekämpfen lohnt.

Jochen

Aber das Problem ist halt, man kann nicht drüber reden, man kann da nur Sachen machen oder nicht machen, ja, und dann kann man, aber wenn so, ich meine, eigentlich ist das halt eine selbstwidersprü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. Weil das öffentlich zu moralisieren ist halt eine Methode, um das zu gamen.

Jochen

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

Dominik

hinterher wirklich gemacht wird und nicht, was

Dominik

erzählt wird, was jemand machen wollen würde und

Dominik

was andere machen sollen, sollten und so. Das finde ich auch

Dominik

immer so ein bisschen problematisch. Aber ja, egal. Jetzt werden wir

Dominik

wirklich sehr froh. Also, wie gesagt, ist der Aufruf,

Johannes

wenn mir jemand viel Geld für moralisch

Johannes

verwerfliche Dinge anbieten möchte,

Johannes

meine E-Mail-Adresse ist

Johannes

hier in den Shownotes.

Johannes

Ich weiß dann zwei,

Johannes

ich wüsste zwei andere, denen man das dann auch anbieten

Johannes

kann.

Johannes

Abzüglich irgendwie.

Johannes

die höchsten Provisionen, aber...

Johannes

Genau, aber diese ganze Twitter-Geschichte

Johannes

ist natürlich auch nochmal interessant.

Johannes

Also das ist auch...

Dominik

An der Stelle, um nochmal auf die letzte vorgedrückt zu kommen,

Dominik

kurz so eine Coin-Adresse.

Jochen

Ja, also da ist auch wieder was geplatzt.

Jochen

Kann man noch? Lohnen sich Coin-Adressen noch?

Jochen

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

Jochen

FTX irgendwie gerade wieder...

Jochen

Ja, FTX und Binance waren nämlich der Bumm.

Jochen

Also ich hatte mir letztes Mal schon überlegt,

Jochen

aber vielleicht muss ich das jetzt nochmal irgendwie...

Jochen

Muss ich da nochmal...

Jochen

Wie kann man eigentlich den Kram shorten?

Jochen

Ach, naja.

Jochen

Das ist schwierig. Das geht nur, wenn jemand

Dominik

die Unternehmen, die da investiert sind,

Dominik

locken will. Du musst halt

Dominik

wissen, wie viel Asset-Anteil

Dominik

solche Investitionen an welchen Kapitalgesellschaften

Dominik

haben und musst die halt locken.

Dominik

Das Problem ist,

Johannes

the markets can stay irrational longer

Johannes

than you can stay solvent.

Jochen

Das ist ein Problem, ja.

Jochen

Can. Ja, und deshalb

Jochen

ist es ein gefährliches Spiel.

Jochen

Ja, genau.

Jochen

Vielleicht auch erstmal wieder ignorieren.

Jochen

Und hinterher dann sagen, ich wusste es.

Jochen

Ich wusste es, aber ich habe nichts gemacht.

Jochen

So ist es halt immer.

Jochen

Ich habe es euch ja gesagt.

Jochen

Aber jetzt ist es zumindest irgendwie aufgenommen.

Jochen

Du machst nichts für Eiscreme.

Jochen

Ich kann mal drauf linken und sagen, ich habe es tatsächlich gesagt.

Jochen

Ja, also dieser Twitter-Auto-Unfall,

Jochen

da ist auch gerade...

Jochen

Aber in Zeitlupe ist es doch nicht.

Jochen

Nee, stimmt, das ist ein relativ schnelles...

Jochen

Wenn man versuchen würde, Twitter kaputt zu machen,

Johannes

wäre es schwierig, das schneller hinzukriegen.

Johannes

Ja.

Jochen

Ja, ist schon beeindruckend.

Dominik

Ja, erzähl mal mehr. Ich habe gar nichts davon mitbekommen, weil ich

Dominik

habe ja seit Twitter, seit, weiß ich nicht,

Dominik

2008,

Dominik

19, 20. Ach, das ist super unterhaltsam.

Johannes

Vor 15 Tagen

Johannes

hat er Twitter gekauft und ist hier auch von Twitter

Johannes

gekommen.

Johannes

Der Saint Elon, wie man ihn

Johannes

gemeinhin nennt. Ja, der Heilige.

Johannes

Der Saint Elon. Und seither

Johannes

gibt es nur gute Nachrichten aus diesem

Johannes

Lage. Also eine der

Johannes

ersten Sachen, die er gemacht hat, ist, dass er drei Viertel

Johannes

der Belegschaft gefeuert hat. So viele?

Jochen

Ich glaube, die Hälfte oder drei Viertel, ich weiß es nicht genau.

Jochen

Also alle Leute, die vorbeigelaufen sind,

Jochen

nach seiner Nase getroffen haben.

Johannes

Viele von den Sachen sind schwer zu verifizieren.

Johannes

Man weiß es nicht genau, aber man

Johannes

hört.

Johannes

Dann hat er angekündigt,

Johannes

das ist dieses blaue Checkmark. Es gibt ja

Johannes

für verifizierte Personen

Johannes

gibt es so ein blaues Häkchen. Das wurde

Johannes

mal eingeführt, weil

Johannes

Identitätsdiebstahl sehr einfach war,

Johannes

Man hat sich halt einfach Elon Musk genannt auf Twitter.

Johannes

Mit dem Bildchen rein und dann immer seriöse Post verfasst

Johannes

von der Zeit lang.

Johannes

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

Johannes

Und für Personen des öffentlichen Lebens

Johannes

wurde dann mal eben so eine Verification eingeführt,

Johannes

dass du eben sagen kannst,

Johannes

okay, du bist tatsächlich der wirkliche Donald.

Johannes

Und nur der hat so ein blaues Häkchen

Johannes

und das ist dann verifiziert.

Dominik

Oder du machst das mit Ausgangsverifikation

Dominik

oder kriegst du Post-Ident?

Dominik

Ich weiß nicht genau, wie die das

Johannes

gemacht haben. Das war wohl ein Team, das das gemacht hat,

Johannes

was kompliziert war.

Jochen

Es waren ja auch nicht so, also das war halt nur so,

Jochen

also haben Leute, Prübenzeiten,

Jochen

Journalisten und so gekriegt, aber

Jochen

und es wurde halt manuell gemacht.

Dominik

Oh, das heißt also neue Fame, der blaue Haken.

Dominik

Jaja. Und

Johannes

eine der ersten Geschäftsideen, die

Johannes

der heilige E mitgebracht

Johannes

hat, war, dass das jetzt 20 Dollar im Monat

Johannes

kostet, wenn du so ein blaues Häkchen hast.

Johannes

Und dann hat Stephen King zurückgeschrieben,

Johannes

was, ihr spinnt wohl, ihr solltet mich dafür

Johannes

bezahlen, dass ich so ein blaues Häkchen

Johannes

habe, nicht umgekehrt. Und dann hat Elon

Johannes

geantwortet, okay, vielleicht ist 20 Dollar

Johannes

zu viel. Wie wäre es mit 8 Dollar?

Johannes

Und das hat ja schon mal für sehr viel

Johannes

Unterhaltung gesorgt, weil die Leute

Johannes

kommentiert haben, also ich bin ja kein CEO von

Johannes

großen Firmen, aber ich dachte, wenn

Johannes

man 44 Milliarden Dollar für irgendwas

Johannes

ausgibt, überlegt man sich vorher ein Businessmodell.

Johannes

Jedenfalls kostet das jetzt

Johannes

8 Dollar im Monat und es ist jetzt

Johannes

auch frei verfügbar, weil der möchte das ja so vielen

Johannes

Leuten wie möglich verkaufen.

Dominik

Ich kann jetzt Twitter, meinen blauen Haar für 8 Dollar anmelden.

Dominik

Du kannst dich

Johannes

verifizieren lassen für 8 Dollar

Johannes

und das hat natürlich sofort dazu geführt,

Johannes

dass sich ganz viele Leute

Johannes

verifizieren lassen.

Johannes

Nee, als Elon Musk.

Johannes

Ganz viele Leute haben sich als

Johannes

Elon Musk verifiziert

Johannes

und dann natürlich auch sehr viele schöne Dinge getwittert.

Johannes

Kann man auf den

Johannes

üblichen Orten im Internet finden.

Jochen

Also das war tatsächlich sehr lustig, muss ich sagen.

Jochen

Also war gute Unterhaltung.

Jochen

Das hat dann aber wiederum dazu gehört.

Jochen

Du brauchst eine US-Adresse dafür.

Jochen

Also das brauchst du irgendwie VPN und so.

Jochen

Aber das geht.

Dominik

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

Dominik

Ja, aber Elon Musk hat sich ja schon lange Zeit

Johannes

als Verfechter des Free Speech hingestellt.

Johannes

Ja, dass er jetzt hier wieder alles frei macht.

Johannes

Und dann ging es aber sofort, als die Leute angefangen haben,

Johannes

sich als Elon Musk auszugeben, wurden die dann sofort suspendiert.

Johannes

Und zwar so hart wie immer.

Jochen

Dann hat er gesagt, irgendwie ist das wohl zu viel geworden. Ich weiß gar nicht wieso. Also wie gesagt, für mich sehr lustig. Für ihn offenbar. Er hat sich da so ein bisschen dran gestört. Und dann hat er gesagt, nee, das finde ich nicht okay. Also da muss jetzt immer Parodie drüber geschrieben werden, sonst geht das nicht.

Jochen

Und wenn das jemand nicht macht, dann verbannt er die Leute irgendwie, ja, hat er dann auch gemacht.

Johannes

Genau, aber heute war ja tatsächlich die nächste Welle, die nächste Welle in diesem Drama, weil Personenedetä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 mit diesen Firmen geschrieben haben.

Johannes

Zum Beispiel Tesla hat heute einen wundervollen Tweet veröffentlicht. A second Tesla has arrived at the World Trade Center. Also so ganz gute Sachen. Ein Eli Lilly hat 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 und es kostet natürlich weiterhin 700 Dollar pro Monat.

Johannes

Und das ist so der aktuelle Stand und von diesen gefeuerten Leuten wurden wohl schon welche gefragt, ob sie wieder zurückkommen, um sich um dieses Thema zu kümmern.

Johannes

Also es ist sehr beeindruckend, wie schnell...

Dominik

Was kommt, was die Antwort Double or Nothing oder was ist dann die Antwort?

Johannes

Keine Ahnung, also ich würde da nicht zurückgehen, ganz ehrlich.

Johannes

Aber das ist auch so eine...

Johannes

Wenn mich jemand in die Situation bringt, Double or Nothing,

Johannes

möchte man, möge man gerne an mir ausprobieren.

Johannes

Es ist auf jeden Fall sehr beeindruckend,

Johannes

wie schnell auch so ein Image zerstört sein kann.

Johannes

Zwei Wochen, um halt das Image des Industriegottes zu zerstören. Anderer Kommentar war, wenn jemand CEO von zwei oder drei großen Firmen gleichzeitig sein kann, dann kann es kein besonders wichtiger Job sein.

Johannes

Ja, natürlich.

Johannes

Ja, es ist schon so.

Johannes

Also es ist wirklich beeindruckend,

Johannes

wie öffentlich dieser ganze Autounfall passiert

Johannes

und wie beeindruckend das ist.

Johannes

Und man kann auch nicht so richtig wegschauen,

Johannes

weil, ach, das ist so,

Johannes

überleben sie es oder überleben sie es nicht?

Johannes

Und kurz noch anfangen zu brennen

Johannes

und anfangen noch, wer,

Johannes

also es ist schon sehr beeindruckend, oder?

Johannes

Interessiert das sonst irgendjemand?

Jochen

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

Johannes

Es ist ein Spektakel, ja.

Johannes

Das ist es auf jeden Fall.

Johannes

Und ja, ich meine,

Johannes

ist alles nicht so einfach.

Johannes

Das moderne Boulevard.

Johannes

Ja, genau.

Johannes

Es hat natürlich auch sowas für...

Johannes

Der einfache Mann auf der Straße interessiert sich halt

Johannes

für sowas. Es ist klar, dass so eine kultivierte

Johannes

Begünstigkeit wie du da nicht...

Johannes

Aber Jochen und ich, wir sind halt einfacher

Johannes

gestrickt und deshalb gucken wir dazu.

Jochen

Ja, also natürlich ist es auch ein Weg, um Aufmerksamkeit zu kriegen, nur ich weiß nicht, also so super geplant und super, ist es noch drei Level, dreidimensionales Schach mehr, als ich irgendwie verstehen kann 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, als wir das hatten. Na doch, gibt schon, aber es gibt nur Emotionen, die wir hatten, als wir das wussten und da wir alle die ganze Zeit ums kaputt gelacht haben, erinnern wir uns an diese Freude, wenn wir noch in zehn Jahren an Twitter denken.

Dominik

Und das ist Branding und Marketing.

Dominik

Ja, aber das ist doch Schadenfreude.

Dominik

Das ist doch egal. Du hast dich gut gefühlt.

Dominik

Und das ist genau der Punkt.

Dominik

Das ist ein wunderbares Branding.

Johannes

Ich habe mich gut gefühlt, als es ihnen schlecht gegangen ist.

Johannes

Das ist eine fundamentale Emotion von Menschen.

Johannes

Schadenfreude.

Jochen

Ja, aber es passieren ja tatsächlich.

Jochen

Es gehen tatsächlich gerade sehr, sehr viele Leute weg.

Jochen

Schadenfreude gibt es übrigens auch im Englischen, oder?

Jochen

Das ist ein Englisch-Original.

Jochen

Das ist ein Englisches Wort. Schadenfreude.

Dominik

Und damit meinen die immer German Schadenfreude.

Johannes

Ja gut, wir können das halt am besten.

Johannes

Wir können auch so viele Dinge.

Jochen

Und Humor besonders wenig.

Jochen

Das ist halt das Einzige, was aus dem Keller ab und zu mal nach außen dringt,

Jochen

wenn man in dem Kontext...

Jochen

Schadenfreude.

Johannes

Wenn dir einer in den Keller gefallen ist.

Jochen

Ja, aber genau, also das ist der Autounfall.

Jochen

also der andere Teil ist halt lustig,

Jochen

dass jetzt Leute irgendwie

Jochen

nach Mastodon gehen, irgendwie ins

Jochen

Filibus und so.

Jochen

Hast du dich auch schon angemeldet, Jochen?

Jochen

Ja, aber ich bin nicht zufrieden

Jochen

mit meiner... Dann traust du dich nicht, deine Adresse zu sagen.

Jochen

Doch, aber ich hab das

Jochen

irgendwie, das ist irgendwie ein Ding, das ich mal früher,

Jochen

als Twitter auch mal wieder, als Twitter so eine

Jochen

Episode hatte, wo es ihnen nicht so gut ging,

Jochen

hab ich das dann halt auch mal so in Erwägung gezogen,

Jochen

vielleicht lieber nach das zu machen, da hab ich dann

Jochen

irgendeinen Server genommen.

Jochen

Und zwar irgendwie das Tröth-Café

Jochen

oder so, weil das halt offen war.

Jochen

Tröth.

Jochen

Retro-Tröth gibt's.

Jochen

Und

Jochen

genau, das habe ich jetzt auch und das ist irgendwie

Jochen

nichts, ich weiß nicht, ob ich da bleiben soll. Ich dachte, wenn man

Jochen

sich das selber husten kann, ach, dann will ich das vielleicht auch

Jochen

machen. Auf der anderen Seite, ich habe so

Jochen

viel zu tun und ich habe keine

Jochen

Zeit und will ich mir das auch

Jochen

ans Bein binden, aber naja.

Jochen

Es gibt

Johannes

instances.social,

Johannes

Link in den Shownotes.

Johannes

da kann man

Johannes

sich die Instanzen anschauen, was die

Johannes

so für Eigenschaften haben und auch, was die für Content

Johannes

erlauben und so weiter und

Johannes

so fort. Also da, so habe ich

Dominik

meine neue Heimat. Ja, da fängt es schon an, Content-Kontrolle.

Dominik

Ja, egal.

Dominik

Ja, natürlich, aber ich will halt kein

Dominik

Spam und keine Werbung haben.

Dominik

Ja, aber ich will meine eigenen Sachen da reinchecken.

Dominik

Die wollen kein Nudity haben und so.

Dominik

Dann mach deine eigene Instanz.

Dominik

Oder du filterst nach Instanzen, die das

Dominik

explizit erlauben. Dann gibt es halt keinen vernünftigen

Dominik

Client, irgendwie richtig fürs Telefon.

Dominik

Ja,

Johannes

aber das ist bei Twitter ja auch nicht so.

Johannes

Also bei Twitter

Johannes

gab es welche,

Johannes

bis Twitter sie alle abgerührt hat.

Johannes

Habe ich gehört davon, aber so alt bin ich

Johannes

gar nicht.

Jochen

Naja, also ich meine, das Problem

Jochen

an dem, die

Jochen

Speck ist wohl alle, also ich habe jetzt

Jochen

auch viel darüber gelesen, dass Leute das selber wussten und die meisten

Jochen

haben gesagt, super, ich wusste das selber.

Jochen

Stunden, Tage später kommt es dann so,

Jochen

boah, habt ihr mal die Speck angeguckt?

Jochen

doch nicht. Habt ihr mal geguckt, was man dafür

Jochen

alles braucht, um das zu treiben?

Jochen

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

Jochen

ausgedacht? Das ist ja schrecklich.

Jochen

Und ja, das ist alles schon sehr schrecklich.

Jochen

Und naja, also es gibt

Jochen

also eigentlich, ja, aber was soll man machen?

Jochen

Es ist halt das, was jetzt gerade irgendwie

Jochen

auf jeden Fall sehr viel

Jochen

Auftrieb hat und vielleicht kann man einfach mal mitmachen.

Jochen

Im Prinzip würde ich da sagen, es ist voll gut, wenn es

Jochen

irgendwie was gibt, was man selbst beruhigen kann,

Jochen

was frei ist und so.

Jochen

Indie-Web-Prinzip jetzt. Indie-Web, genau.

Jochen

Ja, wäre gut.

Dominik

Ja, seine eigenen Daten selber zu besitzen, ist schon gar nicht so schlecht.

Dominik

Aber wer stellt denn irgendwie selber so einen eigenen Kasten zu Hause hin,

Dominik

den man noch die ganze Zeit selber ownen kann, wo man nur selber reinmacht?

Dominik

Gibt es ja auch gehostet.

Dominik

Ja, kannst du auch hosten lassen.

Jochen

Ja, ich bin noch so ein bisschen unentschieden.

Jochen

Aber das Problem ist, so mittlerweile ist es nicht so sehr,

Jochen

oh, Twitter und Elon, die sind irgendwie fies und ich gehe da mal weg,

Jochen

weil ich will eigentlich nicht mit denen zusammen gesehen werden.

Jochen

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

Jochen

und es wird einfach nicht mehr funktionieren.

Jochen

Das ist so eher so. Das heißt, ich muss

Jochen

Ja, schon. Ich kann nicht mal

Jochen

mehr, wahrscheinlich in absehbarer Zeit kann man

Jochen

nicht mal mehr nachgucken, wie man jetzt gefolgt hat,

Jochen

um das wieder zu tun, weil es ist einfach weg.

Jochen

Muss man jetzt exportieren. Muss man jetzt exportieren,

Jochen

genau, sonst geht das nicht mehr. Also es ist

Jochen

schon, also ja, komisch.

Jochen

Ja, Free Speech?

Jochen

Tja.

Jochen

Ach, Free Speech gibt es in den

Johannes

allermeisten Ländern auf der Welt nicht. In Deutschland auch nicht.

Johannes

Kannst du auch nicht sagen. Ist die Frage, ist das richtig?

Jochen

Selbst in den USA ist es halt sehr stark eingeschränkt.

Jochen

Was heißt, naja, sehr stark?

Jochen

Es kommt drauf an, auf welchem Standpunkt man steht.

Jochen

Es ist ja auch eingeschränkt.

Johannes

Was du denkst, wissen wir ja jetzt, Jochen.

Johannes

Bitte?

Johannes

Was du denkst, wissen wir ja jetzt, Jochen.

Johannes

Das ist gerade gesetzlich gesagt.

Jochen

Aber auch wenn man in den USA in einem Kino oder einem Theater sitzt,

Jochen

darf man auch nicht irgendwie aufstehen und Feuer rufen.

Jochen

Geht halt nicht.

Jochen

Also sag mal so, du kannst dich dann nicht auf Free Speech

Jochen

berufen, wenn du das machst, sondern dann wirst du halt auch

Jochen

verknackt.

Jochen

Ja, und Defamation gibt es auch

Jochen

und Slander gibt es auch und

Johannes

deshalb, es gibt überall

Johannes

Einschränkungen.

Johannes

Was ich halt cleverer finde, für so Online-Leute

Johannes

ist halt sowas wie

Dominik

Moderation, das wäre schon, also

Dominik

kuratierte Dinge, das finde ich ein sehr

Dominik

powerful Werkzeug. Das ist halt

Dominik

immer unfair, aber ist immer

Dominik

irgendwie richtiger.

Dominik

Das ist auch so was, was man gehört hat jetzt,

Johannes

dass eben das Hauptprodukt von Social Networks

Johannes

eigentlich Content Moderation ist.

Johannes

Dass du sozusagen den,

Johannes

du verkaufst nicht den Benutzern irgendeine Funktionalität,

Johannes

sondern du verkaufst den werbetreibenden Content Moderation.

Johannes

Community Management.

Johannes

Wenn die Content Moderation gut genug ist,

Johannes

sodass deine Brand Safety, dass der Genüge getan ist.

Johannes

Auch da gibt es so einen Exkurs.

Johannes

Da hat wohl der heilige E einen Call gemacht mit den Werbetreibenden

Johannes

und dann haben sie ihm halt da verschiedene Dinge erzählt.

Johannes

Angeblich haben mehrere große Blöcke

Johannes

während dieses Calls ihre Kampagnen ausgesetzt.

Johannes

Und einer hat halt auch öffentlich auf Twitter gesagt,

Johannes

hier, für uns ist Brand Safety das Wichtigste.

Johannes

Wir wollen nicht mit folgenden Dingen in Verbindung gebracht werden.

Johannes

Gezeigt, i.

Johannes

Genau, er hat ihn dann blockiert.

Johannes

Das war dann der nächste Tweet.

Johannes

du bist doch für freie Sprache und

Johannes

warum hast du mich denn dann blockiert?

Johannes

Tja.

Johannes

Und das

Johannes

ist schon sehr interessant, da mal

Johannes

so einen Einblick reinzukriegen, weil sich da

Johannes

halt jetzt die Lücken aufreißen und mal einmal

Johannes

hier in die Eingeweide gucken. Ja, und die Leute anfangen

Jochen

Klartext zu reden und sagen, was halt ihre Interessen sind.

Jochen

Und man sieht jetzt wirklich, wie das, also das ist halt das,

Jochen

das ist so wie so ein Teilchenbeschleuniger.

Jochen

Da nimmt man ja auch irgendwie so, da nehmen die Teilchen

Jochen

viel Fahrt auf und dann haupt man die aufeinander

Jochen

und dann fliegt der ganze Scheiß auseinander. Dann kann man gucken,

Jochen

was steckt da jetzt eigentlich so drin. Ja, was war da eigentlich

Jochen

drin. Und das geht jetzt, das sieht

Jochen

man jetzt sozusagen in sozial auch gerade

Jochen

und das ist total interessant, weil da stecken

Jochen

manchmal sehr unerwartete Sachen drin.

Jochen

Das ist wirklich sehr, sehr spannend.

Jochen

Ja.

Jochen

Ja. Aber

Johannes

in other news, Amazon ist

Johannes

die erste Firma der Welt, die jetzt nicht,

Johannes

hat jetzt nicht mit Social Networks zu tun,

Johannes

die ist die erste Firma der Welt, die

Johannes

über eine Billion an Marktwert

Johannes

verloren hat. Oh wow.

Johannes

Und das

Johannes

ist so, das kommt dann so im Hintergrund

Johannes

drüber, wo hier so das große Twitter-Spektakel

Johannes

hier im Vordergrund ist und im Hintergrund

Johannes

machen die halt

Johannes

1 Trillion Dollars, haben sie ihren Marktwert

Johannes

verloren und das ist schon...

Johannes

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

Johannes

Ja.

Johannes

1.000 Milliarden.

Johannes

Ja, 1.000 Milliarden, aber was bedeutet

Johannes

1.000 Milliarden?

Dominik

1 Million Millionen.

Dominik

Wenn du überlegst, dass ein Haus

Dominik

eine halbe Million, wenn du überlegst, dass ein Haus

Dominik

eine Million kostet, dann sind es 2 Millionen Häuser.

Dominik

Da kannst du überlegen, dass eine ganze

Dominik

Großstadt. Ich finde, das ist eine gute

Dominik

Wahl, das zu visualisieren. Der beste Vergleich, den ich

Johannes

gehört habe, ist, wenn du zum Bau

Johannes

der Pyramiden anfängst, jeden Tag 500.000

Johannes

Dollar auszugeben, dann hast

Johannes

du jetzt noch nicht eine Billion ausgegeben.

Johannes

Tja. Ja. Also ich finde

Dominik

das mit der Großstadt gar nicht. Wenn du dir ausrechnest, wie teuer sind denn

Dominik

die Immobilien so in der Großstadt oder sowas?

Dominik

Und dann nimmst du einfach so eine

Dominik

Großstadt. Die ist da einfach komplett.

Dominik

Kannst du irgendwo hinschicken. Aber da sind keine zwei Millionen

Johannes

Häuser drin. Da kannst du dir Tokio kaufen davon.

Johannes

Ja, die haben ja unterschiedliche Größe.

Dominik

Das war jetzt natürlich eine Fehlannahme, dass die alle

Dominik

gleichverteilt eine halbe Million kosten, aber

Dominik

es ist ja schon ein größeres Gebäude und so deswegen.

Johannes

Ja, aber in so einem Haus wohnt ja mehr als

Johannes

eine Person, also du musst ja dann schon

Johannes

eine vergleichsweise

Johannes

große Stadt, also so eine große Stadt gibt es in Deutschland

Johannes

nicht.

Johannes

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

Johannes

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

Jochen

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

Jochen

sich davon zu stellen.

Jochen

Ja, nehmen wir doch mal so Stuttgart oder Düsseldorf

Jochen

oder sowas.

Johannes

Stuttgart hat 600.000 Einwohner, da gibt es keine 2 Millionen

Johannes

Häuser in Stuttgart.

Johannes

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

Johannes

Düsseldorf hat auch 600.000.

Johannes

Der Immobilienwert, eine Million.

Jochen

Ich glaube auch, dass die Zahl, wenn die Zahlen so groß werden,

Jochen

dann ist das unklar, was die an Wert überhaupt beschreiben ist.

Jochen

Den Wert gibt es ja.

Jochen

Also Amazon als Unternehmen existiert ja, das hat ja irgendwie einen Wert.

Jochen

Es waren imaginäre Dollar.

Jochen

Ja, das ist halt die Frage.

Jochen

Also da stehen ja auch Dollar dran, aber es ist trotzdem irgendwie sehr unklar,

Jochen

weil selbst kleine Veränderungen in der Zukunft

Jochen

ja riesige Auswirkungen haben können, gerade wenn der Marktwert so hoch ist.

Jochen

Das heißt, es ist halt irgendwie unklar, was das Geld da, auch wenn man das quantifizieren kann, was das überhaupt an Wert bezeichnet, weil, ja, also ich meine, bei anderen Großen ist das ja, bei Apple wäre das wahrscheinlich auch so, keine Ahnung, ja, was ist das eigentlich, Apple, die haben auch so einen Aktienwert, ja, was ist, wenn sie es irgendwie verkacken oder keine Ahnung, das jetzt nicht mehr funktioniert, kann, genau, ist sehr unklar, was das eigentlich ist.

Johannes

Also diese Aktienwerte sind doch hypothetische Werte, oder?

Johannes

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

Dominik

Nein, das sind keine hypothetischen Werte, das sind Buchwerte.

Dominik

Nee, nee, das ist, wenn du zum jetzigen Zeitpunkt

Johannes

alle Aktien verkaufen könntest, dann hättest du so viel Geld.

Dominik

Nein, nein, das ist falsch, weil du sagst, das geht ja nicht.

Dominik

Das ist ja physikalisch unmöglich.

Dominik

Du sagst hätte, es gibt kein hätte.

Dominik

Der Wert ist null.

Dominik

Es gibt ein hätte.

Dominik

Nein, der Realwert ist null.

Dominik

Der Wert ist null.

Dominik

Du hast einen Buchwert, der da drin steht.

Dominik

Der reale Wert ist null.

Dominik

Genau, und das ist ein Buchwert.

Dominik

Du musst eine Transaktion machen,

Dominik

um was zu verkaufen. Dafür musst du einen Käufer finden.

Dominik

Du kannst gar nicht wahrscheinlich zu dem

Dominik

Preis alles, was du hast, verkaufen.

Johannes

Für 1.000 Milliarden kannst du nicht

Johannes

Aktien kaufen. Zumindest nicht alle jetzt.

Johannes

Genau, das geht nicht.

Johannes

Eben, das sage ich ja. Deshalb sind es ja hypothetische

Johannes

Werte. Wenn du

Johannes

jetzt gerade alle Aktien verkaufen

Johannes

könntest, dann hättest du folgenden

Dominik

Wert. Das ist die Hoffnung auf zukünftige

Dominik

Umsätze, also auf zukünftige

Dominik

Produktivität der

Dominik

Marken, des Values, der Businesses,

Dominik

wo auch immer die ihre Kohle rausziehen wollen.

Dominik

Das ist mir jetzt zu kompliziert.

Dominik

Ja, das ist gar nicht so kompliziert.

Dominik

Das ist viel, viel Fantasie.

Dominik

Ja, genau.

Dominik

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

Dominik

irgendwie so Twitter, Armageddon und so einen cleveren Satz.

Dominik

Mal gucken, was Stable Diffusion ausmacht.

Jochen

Da passieren bestimmt dann auch lustige Sachen.

Jochen

Wobei, ich meine, bei Stable Diffusion und so,

Jochen

man muss halt schon irgendwie, man muss lange warten und so

Jochen

und kreativ sein beim Aufschreiben von Prompts und so.

Jochen

Ich weiß nicht.

Jochen

Was?

Jochen

Ja.

Jochen

Nicht? Nein. Okay.

Dominik

Mach mal mage.space auf. Hast du mal dalle

Dominik

ausprobiert? Ach, dalle. Dalle hab ich auch ausprobiert.

Dominik

Mach mal mage.space auf.

Dominik

Na.

Dominik

Wie wird das geschrieben? Mage, wie der

Dominik

Magier. Und dann

Dominik

.space.

Dominik

Checking if the site connection

Dominik

is secure. Oh oh.

Dominik

Create anything.

Dominik

Ja,

Dominik

Jochen tippt gerade irgendeinen Satz zu Ihnen.

Dominik

Müssen wir ein bisschen warten. Ist okay.

Dominik

Ja, aber...

Dominik

Ja, ja, es ist

Dominik

kein CPS hinterher oder was?

Dominik

Also da ist keine dicke Grafikkarte hinterher.

Dominik

Das könnte man ja hinterhängen.

Jochen

Ja, aber gut, genau, diese Experience

Jochen

habe ich auf meinem Laptop auch und die ist

Jochen

halt... Geht so.

Jochen

Ja, okay.

Jochen

Und? Was hast du eingegeben?

Jochen

Ja, so...

Jochen

Was habt ihr denn eingegeben? Das Twitter-Amageddon, das

Jochen

von oben...

Dominik

Es kommt so ein Vogel und der hat, also dieser Bird,

Dominik

so ein Gelber, der hat

Dominik

irgendein Viech in der Hand und versucht das zu fangen.

Dominik

Und das ist so ein sehr artifizierter

Dominik

Comic. Das sieht cool aus.

Dominik

Ja.

Dominik

Also bei mir dauert es noch.

Jochen

Ja, also...

Jochen

Ich habe gerade alle Rechenleistungen aufgenommen.

Jochen

Deshalb kann ich jetzt...

Johannes

Ah ja, Elon Musk destroying Twitter

Johannes

with Gasoline.

Johannes

Siehste?

Jochen

Wenn man da gute Prompts schreiben kann,

Jochen

dann passen auch lustige Sachen.

Jochen

Aber ich weiß nicht.

Johannes

Also den Prompt kann ich nicht empfehlen.

Jochen

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 benutzen kann, um dieses Activity-Pub oder wie das Protokoll heißt, da irgendwie zu sprechen.

Jochen

Naja, vielleicht hoste ich da ja doch nochmal was, mal schauen.

Jochen

Implementierst du erstmal deine eigenen Instanzen.

Jochen

Das habe ich schon hinterher.

Dominik

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

Dominik

Du kannst doch dann eigentlich alle Nachrichten, die über dich gehen, mitlesen.

Dominik

oder ist das im Protokoll verboten?

Dominik

Ja, genau, toll.

Johannes

Das kann dann sein, dass da eine RP gebannt wird,

Johannes

aber da gibt es ja Wege außenrum.

Johannes

Nee, aber das gibt es tatsächlich,

Johannes

da gibt es ja Vorschläge, der Simon Willison

Johannes

zum Beispiel, der ja auch sehr groß ist in der

Johannes

Python-Welt, hat gesagt, der ist jetzt

Johannes

auf Mastodon und ihm

Johannes

gefällt es total und

Johannes

er vermisst so ein bisschen seine Timeline, aber

Johannes

das kann er sich ja jetzt selber schreiben.

Jochen

Ja, das höre ich von vielen Leuten.

Jochen

Ich höre von vielen Leuten, die sagen so,

Jochen

Auch Simon Wilson hat zum Beispiel zweimal die gleichen Sachen, einmal auf Twitter, der hat auf Twitter irgendwie zehntausende Follower, keine Ahnung, auf Mastodon irgendwie ein Zehntel davon und hat dann zweimal das gleiche gepostet und hat gesagt, guck mal hier, Interaktionen auf Mastodon viel, viel mehr, viel interessantere Geschichten auf Twitter, war eher so lahm.

Jochen

Also klar, ist natürlich jetzt auch irgendwie wahrscheinlich, ist keine unabhängige…

Jochen

Ja gut, doch der Hype-Bias auch, ne?

Jochen

Natürlich.

Johannes

Wisst ihr, was der Eternal September ist?

Jochen

Genau. Und auf Mastodon sind die jetzt halt noch nicht.

Jochen

Das ist richtig. Also ich meine, ja, natürlich.

Jochen

Aber andere sagen das auch,

Jochen

sagen, momentan ist da echt eine gute Party,

Jochen

weil, ja, es sind eigentlich nur

Jochen

nette Leute und die ganzen

Jochen

Pupa haben es noch nicht gefunden.

Jochen

Mal schauen, wenn es

Jochen

im nächsten September ist,

Jochen

vielleicht dann rum. Dann hast du es ja auch da, Jochen.

Jochen

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

Jochen

Genau.

Jochen

Wir gehören immer zu denen.

Jochen

Aber schon interessant. Auch

Jochen

interessant, Simon Millison habe ich jetzt gesehen, als ich

Jochen

in dem Kontext auch

Jochen

sich mit der Authentifizierung

Jochen

beschäftigt und dann gibt es ein Paket von

Jochen

ihm namens Django

Jochen

Indie-Auth

Jochen

und da fühlte ich mich auch so,

Jochen

das habe ich irgendwann mal 2016 auf

Jochen

einer von diesen Vorveranstaltungen

Jochen

von der Beyond Tolerant

Jochen

saßen wir mal da bei ZipGate rum

Jochen

und so Indie-Web, voll gut,

Jochen

war so eine Indie-Web-Konferenz, habe ich das auch

Jochen

mal implementiert, Django Indie-Web ist

Jochen

ein Paket von mir, da habe ich auch schon mal Indie-Auth

Jochen

implementiert, jetzt hat es ja Heimwildensens auch noch mal

Jochen

implementiert, muss ich mal vergleichen.

Jochen

Jeder muss das mal machen.

Jochen

Offenbar muss das jeder mal machen, ja.

Jochen

Ja. Sechs Jahre später, Jochen,

Jochen

du bist ja in der Zeit voraus.

Jochen

Ja, weiß man nie so genau, oder?

Jochen

Ganz ehrlich.

Jochen

Ja, aufs falsche Pferd zum falschen Zeitpunkt

Jochen

gesetzt, wer weiß.

Jochen

Ja.

Jochen

Aber ja, das hatte so ein bisschen

Jochen

Comeback, aber das war gut.

Jochen

Das ist eigentlich eine gute Sache. Genau, wo waren wir stehen geblieben?

Jochen

Ich gucke gerade in die Liste.

Jochen

Waren noch interessante Dinge dabei?

Jochen

Ja, also vielleicht kann man

Jochen

noch ein bisschen was zu dem, also die ganzen

Jochen

Dinger, die ich jetzt hier noch habe, sind alles so eigentlich

Jochen

eher so kleinere Geschichten. Tommellip,

Jochen

weiß ich nicht.

Jochen

Ja, da war ich total überrascht.

Jochen

Ja? Warum?

Johannes

Welche ist es denn? Welche haben sie denn reingenommen?

Johannes

Oder eine neue?

Jochen

Ich glaube, sie haben tatsächlich das, was Tommellip,

Jochen

ich dachte, es gibt noch, ich weiß nicht,

Jochen

sie haben das Ding irgendwie reingenommen.

Jochen

Mindestens drei.

Jochen

Tommel?

Jochen

Einfach Tommel? Tommli?

Jochen

Tommellip.

Jochen

Ah, okay. Ja, ich glaube, es ist Tommellip.

Jochen

Ist in die Standard-Tab reingegangen.

Johannes

Aber es kann noch nicht schreiben.

Dominik

Apropos, es gibt auch so eine Riesen-

Dominik

PEP gerade zum Rausschmeißen

Dominik

von vielen Zeugs.

Dominik

Ja, das finde ich auch super.

Dominik

Wie heißt der noch?

Johannes

Die sind in der Dokumentation jetzt schon separat

Johannes

aufgeführt. Deprecated Packages oder

Johannes

sowas.

Johannes

Removing Dead Batteries.

Johannes

Ja, auch von

Jochen

Christian.

Jochen

Genau, Heimis.

Jochen

Der hat auch diese

Jochen

PyScript.

Jochen

nach WebAssembly, Kompilieren, Python

Jochen

gemacht hat, ja.

Johannes

Ich war da kürzlich sehr überrascht, weil

Johannes

persönlicher Bezug,

Johannes

ich verwende

Johannes

Tommel, ich finde Tommel gut.

Johannes

Und ich habe Sachen

Johannes

mit Tommel geladen und die dann gepickelt.

Johannes

Fragt nicht,

Johannes

warum.

Johannes

Und wenn man

Johannes

diese Standard-Tommel-Bibliothek, also nicht

Johannes

die jetzt in der Standard-Bibliothek ist, sondern die

Johannes

davor einfach, also wenn man pip-install-tommel

Johannes

gemacht hat, dann kann man

Johannes

die Sachen, kann man bestimmte Dinge

Johannes

nicht entpickeln.

Johannes

Und zwar Timestamps mit

Johannes

Zeitzone.

Johannes

Da fehlt irgendwas.

Johannes

Ja gut, das

Johannes

mir macht es auch keinen Spaß

Johannes

Timestamps mit Zeitzone

Johannes

zu haben, aber die gibt es nun mal.

Johannes

Das kann

Johannes

Tom Lee kann das nämlich.

Johannes

Und dann bin ich auf Tom Lee umgestiegen.

Johannes

Und

Johannes

jetzt müsste ich dann da tatsächlich mal ausprobieren,

Johannes

ob man das in Python 3.11 einfach auch so

Johannes

machen kann und ob die korrekt pickeln.

Johannes

Ich weiß, das ist eine lustige Kombination, tummeln und pickeln,

Johannes

aber ich habe es halt gebraucht.

Johannes

Für einen Cash.

Johannes

Ich werde gerade pickeln.

Dominik

Wenn du pickeln lernst, dann kann ich doch einfach alles ausführen,

Dominik

was ich will, oder?

Dominik

Ja, schon.

Dominik

Und sind die ganzen Machine Learning-Modelle nicht alle pickelfeil?

Dominik

Nee, nee.

Jochen

Also ja, man benutzt da häufig

Jochen

auch Pickel, aber

Jochen

nee, nicht wirklich.

Jochen

Ja, viele machen das so.

Jochen

Das heißt, du kannst einfach so hochladen und sagen,

Jochen

guck mal hier, ich habe das neue Maschinenmodell für bla bla bla

Jochen

und alle Leute führen deine File out.

Jochen

Ja, also ich meine, du kannst auch...

Jochen

Und da sind wir wieder bei den guten und bei den schlechten Leuten.

Jochen

Ja, aber ich meine, wenn du

Jochen

sagst, ich habe hier ein tolles Maschinen-Loading-Modell,

Jochen

installiere mal hier dieses per PIP, dieses Paket,

Jochen

natürlich. Wenn du per PIP Sachen installierst,

Jochen

dann kannst du auch alles machen.

Dominik

Ja, bei PIP muss ich aber noch ausführen.

Dominik

Nö, wenn du es installierst...

Johannes

Pickel musst du auch ausführen, musst du auch laden.

Johannes

Beim Rebuilden kommt das schon durch?

Johannes

Wenn ich

Jochen

installiert werde

Jochen

als Paket, kann ich alles machen.

Jochen

Okay.

Jochen

Ja, ja.

Jochen

RIP-Install, RM-RF.

Jochen

Ja, also

Jochen

genau.

Jochen

Ah, genau.

Jochen

Was

Jochen

was an schnellerem

Jochen

Python irgendwie, was da so ein paar

Jochen

Sachen sind, die passiert sind, ist vielleicht auch

Jochen

also Exceptions hatten vorher so ein bisschen

Jochen

Overhead irgendwie

Jochen

dadurch, dass sie zum Beispiel

Jochen

das halt Speicher

Jochen

alloziert werden musste

Jochen

den man braucht, wenn man jetzt

Jochen

eine Exception schmeißt

Jochen

das muss man halt vorher machen

Jochen

und das war

Jochen

vorher auf dem Heap, das heißt man hat irgendwie mehr oder

Jochen

weniger Malog aufgerufen, keine Ahnung

Jochen

und das hat es halt langsam gemacht.

Jochen

Das heißt, du hast halt dann immer, wenn du

Jochen

irgendwie try-accept gesagt hast, hast du damit

Jochen

den Code, der da drin steht, ein bisschen langsamer gemacht.

Jochen

Und das ist jetzt weg,

Jochen

weil jetzt wird halt irgendwie ein statisches Ding

Jochen

alloziert und das wird halt immer benutzt und dann

Jochen

da kümmert sich jetzt Python selber drum.

Jochen

Das heißt, ist jetzt der Overhead von

Jochen

try-accept ist nur noch, also es heißt irgendwie

Jochen

zero-cost-exceptions

Jochen

oder so, oder zero-cost-try-accept,

Jochen

aber das ist es nicht wirklich. Es kostet irgendwie

Jochen

ein Prozent Overhead immer noch, aber es ist halt viel

Jochen

weniger als vorher.

Jochen

Dann sind so Dinge

Jochen

passiert. Funktionen

Jochen

aufrufen ist schneller geworden.

Jochen

Unter anderem,

Jochen

die brauchen auch weniger Speicher.

Jochen

Auch, weil

Jochen

da irgendwas mit den

Jochen

Frames irgendwie anders gemacht wird.

Jochen

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

Jochen

Und deswegen gehen auch Rekursionen jetzt

Jochen

ein bisschen tiefer. Man muss das noch von Hand umstellen.

Jochen

Aber

Jochen

dann

Jochen

genau

Jochen

Python-Objekte

Jochen

sind ein bisschen kleiner geworden, also

Jochen

bei Python 2 Zeiten

Jochen

waren es irgendwie so, wir hatten

Jochen

ein Objekt mit vier Attributen,

Jochen

wo man braucht irgendwie

Jochen

350 Byte oder so.

Jochen

In Python 3 waren es dann nur noch so

Jochen

irgendwie

Jochen

200 oder sowas, sondern irgendwie waren es

Jochen

bis bei 3.10 sind es

Jochen

120 Byte und jetzt sind es irgendwie

Jochen

95 oder sowas, keine Ahnung.

Jochen

Aber es ist schon deutlich weniger geworden.

Jochen

Also Objekte brauchen auch deutlich weniger

Jochen

Platz als früher. Ich meine, das kann man nicht gut mit

Jochen

C++ braucht nur 32, aber

Jochen

ja.

Jochen

Ja, aber auch, ich meine,

Jochen

immerhin. Aber immerhin, es geht da schon

Jochen

in eine sehr

Jochen

erstaunliche Richtung.

Jochen

Das Größte

Jochen

bei dem Wie wird Python schneller

Jochen

Feature ist halt, dass halt

Jochen

quasi

Jochen

der Bytecode halt umgeschrieben wird.

Jochen

Wenn da ein paar Mal irgendwas gemacht

Jochen

wurde und

Jochen

man das jetzt durch irgendwas

Jochen

Einfacheres ersetzen kann, dann wird das halt ersetzt

Jochen

und dann wird halt die einfache Operation gemacht an der Stelle.

Jochen

Der merkt sich quasi, was er schon kennt

Dominik

und macht das dann einfach schnell durch, ohne dass er

Dominik

jedes Mal rumhüpfen muss, sondern kennt einfach direkt den...

Jochen

Ja, also da sind solche Dinge dran.

Jochen

Dick-Look-Ups zum Beispiel, wenn das halt

Jochen

häufiger passiert. Ganz wichtig,

Jochen

Globals, Locals, also früher hat man ja auch

Jochen

immer solche Sachen gemacht wie,

Jochen

wenn man

Jochen

in Schleifen oder in heißen,

Jochen

warmen Kot-Teilen

Jochen

irgendwie, wenn man, da habe ich,

Jochen

mache ich heute noch irgendwie, manchmal mache ich es so instinktiv,

Jochen

dass ich dann halt eine lokale Variable

Jochen

verwende, damit halt nicht immer

Jochen

quasi, also entweder

Jochen

ein Attribut-Log abgemacht werden muss bei einer Klasse oder

Jochen

es in Globals oder so nachgeschlagen

Jochen

werden muss, sondern dass man es halt im Lokal

Jochen

Locals direkt hat und dann sofort gefunden wird.

Jochen

Das ist jetzt alles egal,

Jochen

das ist alles jetzt immer gleich schnell,

Jochen

jedenfalls wenn es achtmal passiert ist danach, ist es dann immer

Jochen

gleich schnell und das ist halt auch eine ganz

Jochen

ordentliche Verbesserung.

Jochen

Kannst du nochmal kurz sagen, was du

Jochen

meinst mit heißen Stellen?

Jochen

Ja, also du hast halt irgendwie vierfach verschachtelte

Jochen

Vor-Loop, die Variable, du machst

Jochen

irgendwas plus irgendwas da drin oder so.

Jochen

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

Jochen

Die brennt die ganze Zeit.

Jochen

Ja, wenn du irgendwas Self-Punkt irgendwas sagst, war das früher

Jochen

nicht so gut.

Jochen

Es ist so ein Paradigma,

Jochen

dass man sagt, der meiste Code, den du

Johannes

schreibst, der wird nicht oft ausgeführt.

Johannes

Und dafür gibt es ganz wenige

Johannes

Stellen, die dafür ganz oft ausgeführt werden.

Dominik

Und wenn du Self-Punkt gemacht hast?

Dominik

Die Stellen, die

Johannes

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

Johannes

Und wenn du da Operationen machst, die teuer sind, dann sind

Johannes

die halt unverhältnismäßig viel teurer

Johannes

für die Gesamtlaufzeit des Programms, als wenn

Johannes

irgendwo in der Initialisierung was

Jochen

lagert. Weil die wird nur einmal ausgeführt.

Jochen

Ja, genau.

Dominik

Okay, weil Safety Call macht dann das ganze Objekt mal aus.

Johannes

Und wenn du halt in der Schleife, die eine Million

Johannes

mal ausgeführt wird, eine Nanosekunde

Johannes

mehr verbrauchst, dann ist das halt

Johannes

direkt messbar.

Johannes

Und deshalb

Johannes

versucht man eigentlich Optimierung.

Johannes

Das ist das, was man mit Profiling erreichen will.

Johannes

Wenn du anfängst zu optimieren,

Johannes

guckst du erst, wo du optimieren musst.

Johannes

Und deshalb, also es lohnt sich nicht,

Johannes

irgendwelche Routinen zu optimieren,

Johannes

die im Programmlauf nur zweimal ausgeführt werden,

Johannes

wenn du dafür irgendwo eine Schleife hast,

Johannes

die eine Milliarde Mal durchgewirbelt wird.

Johannes

Ja.

Johannes

Und deshalb hat der Jochen direkt

Johannes

Mikro-Optimierungen gemacht mit Locker.

Johannes

Ja, ist auch vielleicht nicht so schlau,

Johannes

so sollte man auch nicht,

Johannes

aber es gab durchaus Stellen,

Johannes

wo das dann viel gebracht hat.

Johannes

Wenn du das weißt, dass das was bringt,

Johannes

dann ist das doch legitim.

Dominik

Kannst du nochmal erklären, was du da gemacht hast?

Jochen

Ja, solche Dinge wie eben

Jochen

ein Attribut, das in einer Klasse dranhängt,

Jochen

halt einen lokalen Namen zu geben.

Jochen

Einfach zu sagen... Also vor dem Ausführen

Jochen

hast du das? Lokal-Name gleich

Jochen

Self-Punkt, irgendein Attribut, was man dann halt ganz oft braucht.

Jochen

Und das da gehst du dann erst rein

Dominik

und rechnest daran rum? Ja.

Dominik

Genau. Weil dann der Instanz sonst nichts verändert

Dominik

und am Ende schreibst du es wieder weg.

Dominik

Ja, oder braucht man es dann auch nicht mehr.

Dominik

Ja.

Johannes

Ja, oder auch Methoden rausholen, dass du halt

Johannes

nicht Self-Punkt-Compute machst,

Johannes

sondern dass du halt sagst, compute gleich

Johannes

self.compute und dann kannst du hundertmal

Johannes

compute ausführen und musst nicht jedes Mal

Johannes

diesen Lookup machen. Und das ist jetzt

Jochen

besser? Ja, genau, das muss man jetzt eigentlich

Jochen

nicht mehr machen, das passiert jetzt automatisch sozusagen.

Jochen

Okay, ah,

Jochen

beim achten Mal. Ja, irgendwie

Jochen

so, ich glaube, das ist ein Implementationsdetail,

Jochen

das muss ich auch jedes Mal ändern, also

Jochen

aber irgendwie, ich glaube total,

Jochen

da vertrauen wir drauf.

Jochen

Ist ja auch wurscht, also ich meine,

Jochen

das macht ja nur einen Unterschied bei Dingen,

Jochen

die sowieso tausende Mal gemacht werden

Jochen

und da, ob das jetzt

Jochen

acht oder zwölf Mal ist, ist auch egal.

Dominik

Aber cool, das ist jetzt automatisch, das heißt man kann

Dominik

die Sachen, die man vorher nicht kannte,

Dominik

kann man jetzt einfach ignorieren.

Jochen

Genau, jetzt kann man es halt schön

Jochen

hinschreiben und es sollte trotzdem...

Jochen

Genau, und

Jochen

manche Sachen gehen halt noch nicht.

Jochen

Also was geht, was halt zum Beispiel

Jochen

durch schnellere Operationen

Jochen

ersetzt wird, ist halt so

Jochen

Floats, wenn man die addiert, multipliziert

Jochen

und so, keine Ahnung, bei int und float,

Jochen

also wenn es nur int sind,

Jochen

Wenn es nur Float sind, geht es, glaube ich.

Jochen

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

Jochen

Kommt dann vielleicht irgendwann oder

Jochen

es hat sich herausgestellt, es ist nicht so effektiv,

Jochen

wenn man das macht. Keine Ahnung, aber

Jochen

eigentlich muss man das alles nicht wissen.

Jochen

Man kann einfach Code so schreiben, wie man das macht.

Jochen

Es gibt eine ganz interessante

Jochen

Geschichte. Das Ding

Jochen

heißt Specialist

Jochen

und

Jochen

man kann, also es gibt ja diese

Jochen

Dis-Funktion, mit der kann man sich den Bytecode angucken

Jochen

und wenn man dem noch

Jochen

einen Parameter übergibt, dann zeigt

Jochen

es einem auch an, welche Sachen

Jochen

rewritet worden sind

Jochen

und welche nicht.

Jochen

Und das heißt, so kann man sich halt beim

Jochen

eigenen Code angucken. Kann quasi beobachten.

Jochen

Ja, genau.

Jochen

Cool.

Jochen

This will disassembly. Genau.

Jochen

Ja.

Jochen

Ansonsten,

Jochen

ja, nee, also ich glaube

Jochen

fast immer, oder ich weiß nicht, habt ihr noch

Jochen

irgendwelche Dinge, die in Python 3.11 dazugekommen sind,

Jochen

die

Jochen

ich jetzt noch nicht drin hatte,

Jochen

die irgendwie interessant sind.

Jochen

Ganz viel Speed, Speed, Speed.

Jochen

Ja, und es wird jetzt

Jochen

auch immer mehr, also das ist ja

Jochen

eigentlich ein Plan, der fünf Jahre lang

Jochen

verfolgt wird.

Jochen

Oh, der Fünf-Jahres-Plan?

Jochen

Ja. Und diese wichtigen Dinge, wo man

Dominik

genau weiß, was in fünf Jahren alles passieren wird?

Jochen

Ja, so ganz genau weiß man es natürlich nicht, aber

Jochen

es ist halt ein langfristiges Projekt, also tatsächlich

Jochen

geht über, also ich glaube,

Jochen

der Shannon-Plan, der ist halt

Jochen

irgendwie, das soll, über fünf Jahre

Jochen

soll Python irgendwie ungefähr

Jochen

fünfmal so schnell werden wie vorher.

Jochen

Magst du?

Jochen

Ja.

Jochen

Und ja, es sieht gut aus.

Johannes

Das ist schön, wenn diese Pläne schon Namen bekommen.

Johannes

Ja, es ist gut in der Zeit.

Jochen

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

Jochen

Was hat jemand richtig geschätzt?

Johannes

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

Johannes

Genau.

Johannes

Ja.

Jochen

Nee, also es hat sich um ein Jahr gezogen irgendwie,

Jochen

aber ansonsten ist alles noch so.

Jochen

Ja, dann habe ich ja recht tatsächlich.

Jochen

Ein Jahr hier mehr und weniger, meine Güte.

Jochen

Ja gut, sechs Jahre.

Jochen

Also ich meine, das ist halt alles,

Jochen

das weiß natürlich keiner so genau.

Jochen

Je länger das wird, desto schwerer ist es auch zu sagen.

Jochen

Aber

Jochen

momentan funktioniert alles.

Jochen

Ja.

Jochen

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

Jochen

passiert sind, aber ich glaube, Python können wir dann an der

Jochen

Stelle 3.11, jetzt so ein bisschen

Jochen

drüber geredet.

Jochen

Ein bisschen. Was ist denn noch passiert?

Jochen

Erzähl mal. Also

Jochen

zum Beispiel

Jochen

also gerade noch eine neue Django-Release,

Jochen

die jetzt 3.11-Release ist zum Beispiel.

Jochen

Voll gut.

Johannes

Ich habe gehört, es ist schneller geworden.

Johannes

Ja, ja, ja.

Johannes

Wollen wir nochmal über die 3.11...

Jochen

Was auch noch

Jochen

ein großes Release ist, hat jetzt nicht direkt was mit

Jochen

Python zu tun, aber in dem Umfeld natürlich

Jochen

auch mal interessant, Postgres 15 ist released.

Jochen

Also zumindest nachdem wir

Jochen

das letzte Mal irgendwie aufgenommen haben.

Jochen

Und was kann das mehr?

Jochen

Die werden auch immer schneller.

Jochen

schneller geworden, genau,

Jochen

es kann jetzt das Writer-Headlock

Jochen

direkt komprimieren, also ist irgendwie was reingekommen,

Jochen

ist halt, dass bestimmte Sachen so LZ4

Jochen

und Z-Standard

Jochen

sind halt direkt in Postgres drin,

Jochen

sodass du das halt, dann kannst du deine Backups

Jochen

direkt komprimiert rausschreiben

Jochen

und das

Jochen

Writer-Headlock kann auch direkt komprimiert geschrieben werden,

Jochen

das macht es halt auch ein bisschen schneller,

Jochen

einfach deswegen, weil du weniger schreiben musst.

Jochen

Ja, das ist dann

Jochen

Merge, ach, das große Feature, das ist Merge

Jochen

Statements,

Jochen

die im SQL-Standard drin sind,

Jochen

sind jetzt implementiert worden.

Jochen

Da kannst du halt diverse Geschichten,

Jochen

Insight-Update, sonst wie Sachen mixen.

Jochen

Und weiß ich nicht, ob das,

Jochen

also kann man, wenn man rohes SQL schreibt,

Jochen

kann man das vielleicht benutzen, bis das irgendwo in den

Jochen

ORMs und so ankommt.

Jochen

Keine Ahnung.

Jochen

Ja, ansonsten, ja,

Jochen

Indizes ein bisschen schneller geworden.

Jochen

Distinct kann jetzt parallel abgearbeitet werden.

Jochen

Ach ja,

Jochen

Also eigentlich ist es ein bisschen schneller,

Jochen

ein bisschen hübscher geworden.

Jochen

Ich habe einen Kunden,

Jochen

die haben noch Postgres 8.1.

Jochen

Ja.

Johannes

Und das ist ganz schön schwierig, weil da

Johannes

kriegt man keine Docker-Container dafür,

Johannes

da kriegt man keine

Johannes

Dokumentation mehr dafür.

Dominik

Ich habe einen Kunden, die schreiben mir Backend in Date-File.

Dominik

Die machen das schon immer so.

Jochen

Warum machen die das?

Jochen

Sind deine Kunden so im Bereich

Jochen

irgendwie...

Jochen

Ja gut, läuft halt noch.

Jochen

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

Johannes

Nein, aber es ist eine öffentliche Kunde.

Johannes

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

Johannes

Ja.

Johannes

Nee, aber das ist tatsächlich echt schwierig,

Johannes

weil zum Beispiel Django so alte Versionen von Postgres

Johannes

einfach nicht unterstützt.

Johannes

Da kannst du einfach direkt migraten,

Johannes

kannst du es gar nicht machen.

Johannes

Ja.

Johannes

Und dann fängt es schon an, so echt schwer zu werden,

Johannes

wenn du dann die Django-Version zurückdrehen musst

Johannes

in den Zweier-Bereich.

Dominik

Der Draft reicht noch zwei?

Johannes

Ja, mit 2.2 ging das, glaube ich.

Johannes

Also sie sagen nicht, dass es offizielle Kompatibilität gibt,

Johannes

aber es ging dann irgendwie.

Johannes

Ich musste irgendein Feature noch vermeiden

Johannes

und dann haben wir es irgendwie nicht.

Johannes

Aber es ist ja schön, dass dann Postgres jetzt fast

Johannes

doppelt so weit ist, wie

Johannes

diese Datenbank-Version.

Dominik

Die ganzen Legacy-Sachen benutzen.

Dominik

Und das sind immer von den Leuten, die meinen,

Dominik

die müssen das unbedingt selbst migrieren, weil die die Sicherheitslücken

Dominik

besser finden als die Community.

Dominik

Ja, das ist die von 8.1. Naja, gut.

Dominik

Muss jeder selber entscheiden.

Dominik

Ja, wo wir schon

Dominik

über Daten machen. In dem Fall habe ich tatsächlich

Johannes

einfach gemacht, was der Kunde wollte.

Johannes

Ja.

Johannes

Die hatten das Geld, um das zu bezahlen.

Dominik

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

Dominik

Ja, genau.

Dominik

Ja, ich meine, gut, dass Leute alte,

Jochen

das ist halt irgendwie, ja, manche Leute stehen halt irgendwie drauf.

Jochen

Tja.

Jochen

Ich mache das so.

Jochen

Aber beim Thema Datenbanken ist das auch ganz

Jochen

interessant. Da gab es jetzt ein,

Jochen

ich glaube, ich weiß nicht, ob das auf der DjangoCon

Jochen

US war oder, ich weiß nicht, irgendwie haben

Jochen

sich Carlton Gibson und

Jochen

Simon Rennison unterhalten und

Jochen

Simon Rennison meinte so, hm, warum ist

Jochen

eigentlich, warum steht in den DjangoDocs eigentlich

Jochen

drin,

Jochen

SQLite wird nicht für den Produktionsbetrieb

Jochen

empfohlen.

Jochen

Und ja, der Grund ist halt,

Jochen

naja, wenn man SQLite verwendet

Jochen

und dann fangen plötzlich an, also es funktioniert im Entwicklungsmodus,

Jochen

funktioniert das ja alles super, und dann

Jochen

wenn man es produktiv verwendet, dann fangen Leute an, da Sachen

Jochen

reinzuschreiben, dann ist halt relativ schnell

Jochen

Ende Gelände, weil

Jochen

kann halt immer nur ein Thread reinschreiben und die locken

Jochen

halt und wenn man viel schreibt, dann lockt sich das

Jochen

alles gegenseitig.

Jochen

Concurrent Rights ist das Problem.

Jochen

Und dann ist man sehr schnell

Jochen

dann kriegt man Time-Outs.

Jochen

Ja, es ist total

Jochen

so funktioniert nicht gut.

Johannes

Das kann man noch ein bisschen in den Griff kriegen.

Johannes

Der hat einen 5-Sekunden-Standard-Time-Out.

Johannes

Kann man natürlich hochdrehen,

Johannes

dann wird es nur langsamer, aber

Johannes

es ist am Ende, ja.

Jochen

Genau. Und daraufhin,

Jochen

okay, Simon Lism hat ganz viel

Jochen

mit SQLite, Data Setter und so Zeugs

Jochen

und hat auch Ahnung von dem Ding

Jochen

und macht so, okay, ich probiere mal was.

Jochen

Und hat dann halt Benchmark

Jochen

dazu geschrieben und dann so Sachen

Jochen

ausprobiert, wie zum Beispiel einfach mal umstellen

Jochen

von dem

Jochen

normalen, ich weiß nicht, was der normale

Jochen

Mechanismus ist, auf

Jochen

Write-Ahead-Log, weil SQLite kann auch

Jochen

sowas mit Write-Ahead-Log.

Jochen

Da hat man zwar immer noch das Locking-Problem,

Jochen

aber das ist halt irgendwie,

Jochen

also es kann immer nur ein, zwei

Jochen

gleichzeitig schreiben, aber irgendwie wird das dann

Jochen

halt alles so ein bisschen zwischengepuffert und ist halt

Jochen

schneller fertig. Und stellt sich raus, tja,

Jochen

also an der Stelle ist dann halt irgendwie diese

Jochen

Timeouts gehen weg. Es geht eigentlich. Und es geht

Jochen

eigentlich, ja, da hat er wirklich

Jochen

so hunderte Requests pro Sekunde

Jochen

oder auch, ich weiß nicht, wie viele tausend

Jochen

Sachen er da pro Sekunde schreiben konnte,

Jochen

viel. Und es geht. Und es

Jochen

skaliert auch. Okay, was

Jochen

passiert denn jetzt, wenn ich mehrere Prozesse nebeneinander draufschreibe?

Jochen

SQLite verwendet

Jochen

so ein File-Logging dafür.

Jochen

Und ich so, oh, das fliegt mir bestimmt

Jochen

in die Ohren. Nö, es ist fast linear skaliert

Jochen

bis zu vier Prozessoren.

Jochen

Also, geht auch.

Jochen

Das heißt, du kannst eigentlich,

Jochen

also für die allermeisten, also es wird

Jochen

machen. Es wird kaum Leute geben, die,

Jochen

wenn man SQLite so konfiguriert,

Jochen

in einen Bereich

Jochen

kommen, wo sie Schreibprobleme kriegen.

Jochen

Das heißt, eigentlich kannst du das Ding halt

Jochen

auch produktiv deployen

Jochen

und Leuten das als Datenbank

Jochen

geben.

Jochen

Man will vielleicht aus diversen anderen Gründen auch noch

Jochen

ein richtiges Postgres verwenden, aber

Jochen

für viele Sachen reicht

Jochen

es wahrscheinlich aus. Und dann brauchst du keinen Datenbank-Server mehr,

Jochen

weil das ist halt schon

Jochen

eine sehr schmerzhafte Geschichte. Ja, das ist schon

Johannes

ein Einrichtungsaufwand, der

Jochen

vermeidbar ist.

Jochen

Und wenn du das jetzt auf irgendeine kleine

Jochen

virtuelle Maschine mit

Jochen

Dateisystemen deployen kannst,

Jochen

reicht für die meisten Leute wahrscheinlich aus.

Jochen

Und das ist natürlich schon nett.

Jochen

Also als ich das gelesen habe,

Jochen

dachte ich auch, super.

Jochen

Genau.

Jochen

Hat

Johannes

SQLite nicht kürzlich so ein

Johannes

Sicherheitsthema gehabt? Ich erinnere mich, dass da irgendwas war.

Johannes

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

Johannes

Weiß ich nicht.

Johannes

Ich glaube, die hatten so ein

Johannes

Sicherheitsproblem

Johannes

bei sehr großen

Johannes

Rides. Anscheinend gibt es da einen

Johannes

Overflow, wenn du irgendwie

Johannes

Max Bytes

Johannes

minus 1 an Daten

Johannes

holst. Das ist irgendwie ein Terabyte oder sowas.

Johannes

Okay, na gut. Also es ist nicht

Johannes

es ist kein

Johannes

realistisches, kein pragmatisches Problem.

Johannes

Aber tatsächlich

Johannes

war das so ein bisschen News, weil

Johannes

SQLite eigentlich sehr, sehr gut vertestet

Johannes

ist und sehr, sehr sicher ist.

Johannes

Und das war eben so eine Sache, wo

Johannes

einer gesagt hat, haha, aber wenn ich

Johannes

einen Terabyte gleichzeitig in einer Transaktion

Johannes

drin habe und dann

Johannes

irgendwas mache, da wird halt auch irgendein Puffer

Johannes

alloziert, der dann ausläuft.

Johannes

Dann geht es aber nicht mehr.

Johannes

Ah, okay.

Johannes

Das passiert den Besten.

Johannes

Ja.

Johannes

Ja, ja.

Johannes

Tja,

Johannes

ansonsten

Jochen

PyMCs4 ist veröffentlicht.

Jochen

Heißt

Jochen

jetzt nur noch bei MC, also für

Jochen

probabilistische Programmierungsgeschichten

Jochen

Library, die man sich mal angucken kann.

Jochen

Manchmal ist es ganz nett, das zu haben.

Jochen

Wofür steht denn MC?

Jochen

Monte Carlo.

Jochen

Also MC, MC,

Johannes

Markov Chain, Monte Carlo.

Johannes

Ja, das MC steht für

Johannes

Monte Carlo.

Johannes

Okay.

Johannes

Ja.

Johannes

Ja, ich weiß nicht genau.

Dominik

Und Andrej Kapati ist ja jetzt

Dominik

seinen Job los und hat angefangen

Dominik

ein Machine-Learning-Tutorial

Dominik

mit Python irgendwie auf YouTube

Jochen

zu veröffentlichen. Ach, ja, ja, ich habe gesehen, er macht jetzt

Jochen

mehr YouTube-Videos wieder, ja.

Dominik

Also so neue Networks und so, so ein bisschen

Dominik

Intro, wie das in Python geht und

Dominik

Language-Modelling und sowas. Nett, ja, kann man sich

Dominik

auf jeden Fall auch angucken.

Jochen

Ja, der macht immer sehr schöne Sachen.

Jochen

Stimmt, warum?

Jochen

Der war bei Tesla, ne?

Jochen

War der schon von...

Jochen

Tja.

Jochen

Ist er wohl entlassen worden?

Jochen

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

Jochen

Ja, es gibt da einige Leute,

Jochen

also der, der sich diese,

Jochen

na, wie heißen die GAN-Modelle?

Jochen

General Adversarial Networks,

Jochen

ja, wie heißt die?

Jochen

Generative Adversarial Networks, meine Güte.

Jochen

Ist schon spät.

Jochen

Wie heißt da ein,

Jochen

der war irgendwas auch Chefmäßiges

Jochen

für Machine Learning bei Apple

Jochen

und der wollte eigentlich weiter

Jochen

Homeoffice machen und Apple hat gesagt,

Jochen

nee, wollen wir nicht und dann ist er auch gegangen.

Jochen

Da muss man halt

Johannes

wissen, was einem wichtig ist, ja, ob die Leute

Johannes

da sind oder ob sie

Johannes

da sind.

Johannes

Ja.

Jochen

Also ich meine, das ist halt auch eine sehr teure

Jochen

Policy, aber offenbar

Jochen

scheint es für Leute so

Jochen

effektiv zu sein, dass sie das gerne in Kauf

Dominik

aufnehmen. Die Policies sind ganz wichtig

Dominik

fürs Teamgefüge, fürs Building und für ihre

Dominik

Kontrollsüchte.

Jochen

Ja, ich glaube auch, das ist einfach,

Jochen

ich meine, wenn man, was ist denn, wenn man

Jochen

jetzt da so irgendwie eine Firma hat und da ist

Jochen

keiner, das ist ja nicht gut. Also ich meine, wenn ich jetzt

Jochen

eine Firma habe, dann möchte ich ja auch schon sehen,

Jochen

dass da Leute sind. Du meinst, wenn du so ein teures Gebäude hast?

Dominik

Ja. Die müssen da schon sitzen und arbeiten,

Dominik

damit der Peitsche dahinter fliegen kann.

Dominik

Weiß ich gar nicht. Also wenn sie in einem

Jochen

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

Jochen

für mich eigentlich auch gar nicht so schlecht, finde ich.

Jochen

er kann sich reden würden.

Jochen

Andere Leute, Aufmerksamkeit,

Jochen

Aufmerksamkeit, nur für dich.

Jochen

Ja,

Jochen

ansonsten.

Jochen

Arsch die Räuber.

Jochen

Genau, was hatten wir noch? Also es gab noch

Jochen

diverse, wie gut das jetzt für die meisten wahrscheinlich nicht so

Jochen

oder ich weiß nicht, für mich war es

Jochen

ganz interessant, macOS und iOS

Jochen

Updates, da gab es einige ganz interessante

Jochen

Geschichten. Also was mich ein bisschen genervt

Jochen

hat. Es war diesmal ein sehr, sehr hakeliges Update

Jochen

für mich.

Jochen

Es gibt ein sehr schönes

Jochen

Feature, das ich tatsächlich sehr cool finde. Es gibt auf dem

Jochen

Mac, ich weiß nicht, wie macht ihr das eigentlich, wenn ihr Fotos

Jochen

teilen wollt mit anderen Leuten?

Jochen

Gar nicht.

Jochen

Machen wir nicht.

Jochen

Ist nicht so ein einfaches Thema, finde ich.

Jochen

Und auch auf iOS und so

Jochen

oder auf Apple im Apple-Universum

Jochen

ist es auch nicht so leicht.

Jochen

Also denkt man, man kann so ein Shared-Album

Jochen

machen und dann geht das.

Jochen

Nee, geht nicht, weil dann werden die ganzen

Jochen

das hat irgendwie super klein gerechnet, winzig und dann

Jochen

Dropbox?

Jochen

Dropbox könnte man machen, aber dann hast du halt das Problem,

Jochen

dass du, ja, du musst die Dinger,

Jochen

wie willst du die angucken,

Jochen

was legst du in diese Dropbox?

Jochen

Fotos?

Jochen

Ja, aber wenn du jetzt, nimm mal an, du hast

Jochen

RAWs. OwnCloud?

Dominik

Legst du die da rein? Von RAWs kann da niemand angucken,

Dominik

da musst du ja schon irgendwie, ja.

Dominik

Ja, aber, ja,

Dominik

ist halt,

Dominik

wir sind wieder bei so Problemen, die wenige Leute haben.

Dominik

Ja, also,

Johannes

Ja, der Jochen möchte halt seine 28k-Resolution-Fotos gerne schon in ordentlicher Qualität sharen können.

Johannes

Ja, aber dann muss der das halt selber schreiben, muss der 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.

Jochen

Ich habe eine Lösung dafür, also sozusagen für diese, 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, das ist ja auch Arbeit, das zu machen, wenn man möchte einfach Leuten sagen, so hier, ihr könnt das einfach auch angucken, das gab es bisher eigentlich nicht und das kann man auch nicht gut öffentlich über eine Webseite oder so machen und das ist jetzt drin und das funktioniert eigentlich auch ganz gut und da funktioniert genau das, dass man, also es gab auch vorher schon eine Möglichkeit, man konnte so einen iCloud-Sharing-Link erzeugen

Jochen

Und dann hat man so eine Web an sich gekriegt und da waren auch die Originalgrößen-Dinger drin. Was die meisten Leute machen ist wahrscheinlich, sie nehmen einfach den Kram und verschicken ihn vollkommen hemmungslos per WhatsApp oder so. Und WhatsApp rechnet den Kram dann irgendwie zu gut genug.

Jochen

Und dann nehmen die Leute das

Jochen

und machen A3-Ausdrucke dafür,

Jochen

hängen sich jetzt in die Wand und sagen,

Jochen

also irgendwie sah das aus.

Jochen

Der Typ kann gar nicht fotografieren,

Jochen

das ist ja schrecklich.

Jochen

Wer für eine Kamera fällt gar nicht auf,

Jochen

das Motiv gefällt denen immer,

Jochen

deswegen hängen sie sich an die Wand.

Jochen

Ja, es ist wahr, aber es tut manchmal auch ein bisschen weh,

Jochen

wenn man sieht, was Leute so machen.

Jochen

Mit deinem Auge,

Jochen

mit deinem ästhetischen Anspruch.

Jochen

Ja, genau.

Jochen

Also das, was Leute tun, ist sehr schrecklich.

Dominik

Aber ich glaube bei Mac-Update, wir reden schon so lange

Dominik

über Mac-Update, wo das hier alles gefixt ist

Dominik

Es gibt ja jetzt ein Feature, dass

Jochen

das halt fixt, aber das hatte

Jochen

ziemlich hakelige Geschichten, bei mir jedenfalls war es alles

Jochen

sehr schrecklich, hat die ganzen Counts und alle kaputt gegangen

Jochen

Ich hab

Jochen

meine Uhr hat teilweise nur noch

Jochen

die Uhrzeit von gestern angezeigt

Jochen

Also es war alles irgendwie, es war sehr unrund

Johannes

Aber dafür in voller Auflösung

Jochen

Ja, ja ich weiß auch nicht

Jochen

Also

Jochen

Hm

Jochen

Aber Jochen, weißt du denn, dass es die

Jochen

Uhrzeit von gestern ist? Weil gestern hat ja die gleichen

Jochen

Uhrzeiten wie heute. Ja, ich weiß,

Jochen

wann ich ins Bett gegangen bin und eingeschlafen bin

Jochen

und dann, wenn ich morgens aufwache...

Jochen

Und dann ist er einfach stehen geblieben. Genau, und dann ist er stehen geblieben.

Jochen

Das war ein bisschen...

Johannes

Ich dachte, du meinst, er hat jetzt das 12 Uhr

Johannes

von gestern angezeigt. Nein, nein.

Johannes

Das ist eine philosophische Frage.

Johannes

Ja, so

Jochen

solche Probleme

Jochen

von gestern, ja, das weiß ich.

Jochen

Ach ja.

Jochen

Genau.

Jochen

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

Dominik

Ja, ich glaube, wir sind jetzt mit den News tatsächlich durch.

Dominik

Wir machen mal das Thema, was wir heute machen wollen.

Dominik

Ich weiß nicht, wie weit wir das noch haben.

Johannes

Nach zwei Stunden Diskussion fangen wir schon das Thema an.

Johannes

Ich weiß nicht, ob wir gescheckt haben.

Dominik

Wir wollten ganz kurz, mach mal fünf Minuten listen.

Dominik

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

Dominik

Wir haben die ganze Zeit gequatscht.

Dominik

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

Dominik

Okay, machen wir.

Dominik

Aber vielleicht so ein, gut, machen wir.

Dominik

Listen.

Dominik

Wer steigt jetzt ein von uns drei?

Dominik

Man schreibt doch was rein, wenn man überhaupt was rauchen kann.

Dominik

Johannes, du kennst dich doch damit aus.

Johannes

Eine lineare Abfolge von Einträgen.

Johannes

So, das ist eine Liste.

Dominik

Und die Ordnung hat eine Anteil an Leuten.

Dominik

Ja, genau.

Dominik

Also es ist eine lineare Abfolge.

Johannes

Es gibt ein erstes Element und ein zweites Element

Johannes

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.

Dominik

Ist eine Liste ein Array? Ist ein String eine Liste?

Johannes

Und genau, jetzt gibt es zwei Techniken,

Johannes

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. Ich habe ein Element in der Hand und das Nächste steht an dieser Stelle. Und das muss dann wieder einen Verweis auf das Nächste haben. Und diese Technik heißt Linklist. Also eine verknüpfte Liste.

Johannes

Und die haben sehr unterschiedliche Eigenschaften, obwohl sie sich, also von außen sehen die ja gleich aus. Von außen sage ich, ich gebe mir das dritte Element und dann kriegst du das dritte Element oder gib mir jedes Element nacheinander, so wie man es in Python mit einer Vorschleife hat.

Johannes

Und das spielt keine Rolle, wie die darunter liegende Implementierung ist, ob die jetzt im Speicher alle hintereinander gespeichert sind oder ob die alle irgendwo gespeichert sind und dann nur aufeinander verweisen. 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.

Johannes

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

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 und zwar für beide Möglichkeiten.

Johannes

Und die sind auch unterschiedlich schwer zu implementieren und das ist auch ganz interessant. Deshalb kennen viele Informatikstudenten halt die Datenstruktur LinkedList, weil die super einfach zu schreiben ist. Es ist super einfach eine Datenstruktur zu schreiben, die LinkedList 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 vorherige ist, geht das auch?

Johannes

Ja, das kannst du machen. Das heißt dann

Johannes

Doubly-Linked-List. Kannst du in beide Richtungen

Johannes

durchgehen. Du kannst sogar

Johannes

tatsächlich so Tricks machen, dass du auf ein

Johannes

späteres Element verweist und dann hast du sowas wie

Johannes

eine Skip-List. Skip-Listen. Ja.

Johannes

Sehr cool. Ja, das ist eine meiner Lieblings-

Johannes

Datenstrukturen. Aber weil die so einfach

Johannes

sind, gibt es die schon sehr lange. Zum Beispiel

Johannes

Lisp ist im Wesentlichen

Johannes

gebaut aus solchen

Johannes

Link-Lists. Da gibt es Car und Cutter.

Johannes

Also Content of Address

Johannes

Register und Content of Decrement

Johannes

Register. Das

Johannes

eine ist das Element, was man speichern möchte

Johannes

und das andere ist ein Verweis auf die nächste Stelle,

Johannes

wo man was sich merken kann. Und das

Johannes

reicht schon aus, um eine Linklist zu machen. Das reicht schon

Johannes

aus, um sich

Johannes

Sachen zu speichern und das ist

Johannes

ziemlich spannend. Und

Johannes

es ist sehr leicht, das zu schreiben und deshalb

Johannes

wird das eben oft als Beispiel

Johannes

für eine

Johannes

Datenstruktur benutzt in Informatik

Johannes

Vorlesungen, in Einführungsvorlesungen,

Johannes

dass man sagt, jetzt schreibt ihr mal eine Linklist

Johannes

und dann fügt mal

Johannes

100.000 Elemente ein und schaut mal, wie schnell ihr es machen

Johannes

könnt. Und

Johannes

macht mal Iterationen und macht mal

Johannes

so, dass man in der Mitte was einfügen kann. Und macht

Johannes

mal so, dass man am Ende was löschen kann. Und macht mal

Johannes

so, dass man X, Y und Z machen kann.

Johannes

Und

Johannes

weil das so einfach ist und

Johannes

weil man es so einfach machen kann, gibt es da dann halt

Johannes

sehr viele schöne Optimierungstechniken. Zum Beispiel,

Johannes

wie der Dominik schon gesagt hat, Pointer in die andere

Johannes

Richtung speichern, dass man auch von hinten

Johannes

nach vorne durchiterieren kann.

Johannes

Oder

Johannes

keine Ahnung, Pointer,

Johannes

die halt in die Mitte zeigen oder die

Johannes

irgendwelche Segmente haben

Johannes

oder Sublisten haben

Johannes

oder sonst irgendwas, wo du halt viele schöne Dinge

Johannes

machen kannst damit. Oder auch

Johannes

Cycle Detection, das ist dann was, was da

Johannes

rausfällt, wenn du so eine Liste hast, wo du

Johannes

immer nur aufs nächste Element verweist,

Johannes

kann es ja sein, dass du ein Element hast, was irgendwo

Johannes

an eine andere Stelle in die Liste rein verweist

Johannes

und dann hast du so einen Kreis

Johannes

in deiner Liste drin. Und wie machst du

Johannes

Cycle Detection?

Johannes

Bitte? Eine Q.

Johannes

Eine Q kannst du auch machen, genau.

Johannes

Da musst du dir nur das erste und das letzte

Johannes

Element merken, damit du dir was einfügen kannst

Johannes

am Ende und was abholen kannst vorne.

Johannes

Kann man sehr schön und sehr leicht

Johannes

viele Sachen draus

Johannes

bauen. Auch einen Tree kannst du dir sehr leicht

Johannes

draus bauen. Hast du halt nicht einen Pointer,

Johannes

wo das nächste Element ist, sondern

Johannes

hast du halt zwei Pointer. Eins

Johannes

zum rechten Child und eins zum linken

Johannes

Child und dann hast du mit wenig

Johannes

Arbeit einen Baum aus deiner Liste

Johannes

gemacht. Und deshalb ist das so ein

Johannes

bisschen so ein fundamentales

Johannes

Bauteil in den

Johannes

Datenstrukturen.

Johannes

Aber auf modernen Prozessoren sind

Johannes

Linklists halt brutal langsam, üblicherweise.

Johannes

Weil

Johannes

du bei jedem Element

Johannes

einen Cashmiss hast, normalerweise.

Johannes

Und Cashmisses sind das

Johannes

schlechteste, was du machen kannst auf modernen Prozessoren.

Johannes

Was ist denn jetzt ein Cashmiss?

Johannes

Ja,

Johannes

man hat ja im Kopf immer so die Vorstellung,

Johannes

Cashmiss ist,

Johannes

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. Das eine ist der Prozessor und das andere ist der Hauptspeicher. Und der Prozessor macht irgendwelche Dinge mit den Sachen, die im Hauptspeicher sind. Und das mag vor 40 Jahren so gewesen sein, aber das ist heutzutage leider nicht mehr so.

Johannes

heutzutage gibt es viele verschiedene

Johannes

Ebenen von Speicher.

Johannes

Und je näher der Speicher am

Johannes

Prozessor ist, umso schneller ist der.

Johannes

Und umso kleiner ist der.

Johannes

Das heißt, ein Prozessor hat

Johannes

sogenannte Register, die sind direkt

Johannes

in den Prozessor eingebaut, aber davon gibt es halt

Johannes

nur, keine Ahnung, 16.

Johannes

Und

Johannes

die nächste Ebene drüber, die heißt

Johannes

L1 Cache, der Level 1 Cache

Johannes

und davon gibt es dann halt, keine Ahnung,

Johannes

16 Kilobyte.

Johannes

Und dann gibt es den L2 Cache und das sind

Johannes

dann halt 128 Kilobyte. Und dann gibt's

Johannes

den L3-Cache, das sind dann 4 Megabyte.

Johannes

Und weil die

Johannes

alle sehr klein sind, gibt's danach halt den Hauptspeicher

Johannes

und der hat dann auf einmal, keine Ahnung,

Johannes

je nachdem, wie viel man halt hat, 8 Gigabyte

Johannes

oder 16 Gigabyte oder auch 128

Johannes

Gigabyte, das spielt keine Rolle.

Johannes

Und die Ebene

Johannes

dahinter, hinter dem Hauptspeicher, ist eigentlich die

Johannes

Festplatte oder beziehungsweise die SSD,

Johannes

die man jetzt drin hat, die dann halt in Terabyte

Johannes

gemessen wird, die im Grunde

Johannes

genommen gar nicht so viel anders ist

Johannes

als das, was im Hauptspeicher drin ist,

Johannes

nur halt langsamer.

Johannes

Und jede

Johannes

dieser Ebenen ist immer langsamer.

Johannes

Um auf ein Register zuzugreifen, das dauert

Johannes

einen Prozessorzyklus. Um auf den

Johannes

L1-Cache zuzugreifen, dauert, keine Ahnung,

Johannes

vier Prozessorzyklen. Auf den L2-Cache

Johannes

acht Prozessorzyklen.

Jochen

Das ist ungefähr ein Faktor 3 dazwischen, ja.

Jochen

Also am Schluss wird es mehr, aber

Johannes

ja. Bis auf den Hauptspeicher, ja, beim Hauptspeicher

Johannes

ist es eine große Lücke.

Johannes

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

Johannes

Das heißt,

Johannes

Ja, es ist gefährlich, Sachen aus dem Hauptspeicher in den Prozessor reinzuholen, um dann Sachen damit zu machen. Und dieses ganze Schema funktioniert nur deshalb, weil Programme sowas haben, das heißt Lokalität.

Johannes

ich eine Speicherzelle bearbeitet habe, dann ist die Wahrscheinlichkeit hoch, dass ich

Johannes

die benachbarten Speicherzellen als nächstes bearbeite. Und deshalb funktioniert dieses

Johannes

Caching, weil das Caching eben darauf basiert, dass immer ganze Blöcke von Speicher in die

Johannes

Ebene darunter geholt werden. Das heißt, wenn ich jetzt im Hauptspeicher irgendeine

Johannes

Speicherseite habe, die hat 16 Kilobyte und ich lese da ein Byte draus, dann wird diese

Johannes

ganze Seite in den L3-Cache

Johannes

geholt. Und das Byte,

Johannes

was ich hole, das wird halt

Johannes

mit so einer Cache-Line

Johannes

unterschiedlicher Größe in den L2-Cache geholt

Johannes

und daraus in den L1-Cache und

Johannes

daraus in die Register und in den Register wird das dann gemacht

Johannes

und dann geht das ganze Spiel wieder zurück.

Johannes

Das heißt, wenn ich auf benachbarten

Johannes

Speicherzellen operiere,

Johannes

dann muss ich das nur

Johannes

einmal diese Seite aus dem Hauptspeicher

Johannes

in den Prozessor reinholen

Johannes

und die anderen Zugriffe, die sind dann

Johannes

wesentlich schneller.

Johannes

Wenn ich jetzt aber im Hauptspeicher hin und her springe, so wie es bei einer Linked-List ist, dann muss ich jedes Mal in den Hauptspeicher gehen. Und Hauptspeicher ist halt aus der Sicht eines Prozessors extrem langsam. 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 Linked-List heutzutage so ein kleines bisschen verpönt, habe ich das Gefühl. Das ist so, ach, der benutzt Linked-List, der hat keine Ahnung. 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 Vector, ist, dass du halt die Elemente alle hintereinander schreibst.

Johannes

Das heißt, das erste Element steht an Speicheradresse 1 und das zweite Element steht an Speicheradresse 2 und das nächste Element steht an Speicheradresse 3.

Johannes

Und halt je nachdem, wie groß die Dinger sind, dass du die halt alle aneinander packst.

Dominik

Aber was steht dann, wenn du durch so einen drinstehst, steht dann nur der Zeiger auf das richtige Objekt drin?

Dominik

Und unterschiedlich, ja.

Dominik

was du halt hast. Sonst hast du ja eine Maximalgröße von Dingen,

Dominik

die da drinstehen können und dann verschwendest du den Speicherplatz,

Dominik

wenn nicht alle gleich groß sind von den Dingen, die drinstehen.

Dominik

Ja, je nachdem, was du halt hast. Also wenn

Johannes

du eine Liste von Integern hast, dann sind

Johannes

die halt alle 32-Bit groß

Johannes

und dann stehen die halt einfach zack, zack, zack nebeneinander.

Johannes

Wenn du einen String hast, dann sind die halt alle

Johannes

keine Ahnung, auch

Johannes

32-Bit groß, weil

Johannes

man inzwischen Unicode macht. Wenn du Floats

Johannes

hast, hast du halt 32-Bit oder 64-Bit

Johannes

oder 128-Bit Floats oder was auch immer

Johannes

du hast.

Johannes

Das ist sozusagen der Nachteil da dran.

Johannes

Du musst halt die Größe wissen.

Johannes

Du musst wissen, was du da rein tust.

Johannes

Du kannst auch, wenn du Objekte da rein speicherst,

Johannes

dann werden das üblicherweise ja Pointer sein zu Objekten

Johannes

oder halt Verweise.

Johannes

In Python zum Beispiel,

Johannes

da braucht man gar nicht so richtig drüber sprechen,

Johannes

weil das immer alles nur Verweise sind auf andere Dinge.

Johannes

Aber ja, der Vorteil davon ist halt,

Johannes

wenn du, sagen wir mal,

Johannes

ein Array hast mit 128 Integern drin

Johannes

und da das erste Element liest,

Johannes

dann musst du das ja aus dem Hauptspeicher

Johannes

in den L3 holen und dann hast du aber das

Johannes

gesamte Array schon direkt im L3 drin.

Johannes

Das heißt, die Zugriffe, die dann auf das

Johannes

zweite Element sind, die kosten

Johannes

vergleichsweise gar nichts.

Johannes

Und

Johannes

das ist natürlich sehr schön, wenn du

Johannes

Operationen machen kannst, wo die Speicherzugriffe

Johannes

einfach schon gecached sind, wo du schon

Johannes

die Sachen geholt hast.

Johannes

Und deshalb ist das heutzutage so ein bisschen

Johannes

die Technik, die man

Johannes

eher einsetzt, dass man halt sagt, wir machen Arrays,

Johannes

die zwar an dieser Stelle eben

Johannes

wesentlich schneller sind, aber dafür andere

Johannes

Nachteile haben. Zum Beispiel ist es

Johannes

bei Arrays schwieriger, Sachen einzufügen

Johannes

und rauszulöschen

Johannes

auch. Das heißt, dieses Q-Beispiel,

Johannes

was der Dominik sofort intuitiv gesagt hat,

Johannes

ja, das ist ja easy, kannst du hinten einfügen und vorne rausnehmen,

Johannes

das ist mit einem Array

Johannes

nicht so einfach umzusetzen.

Johannes

Und das

Johannes

hat sehr viele Edge-Cases,

Johannes

ja, selbst, also wenn man sich das umsetzen

Johannes

möchte, kann man sich ja überlegen, ja, wenn ich

Johannes

vorne ein Element rausnehme, dann muss ich alle anderen

Johannes

da hinten eins nach vorne schieben.

Johannes

Das ist aber auch blöd, ja, weil dann musst du

Johannes

jedes Element anfassen, bloß weil du eins rausgeholt hast.

Johannes

Und das wird langsamer, wenn es mehr sind.

Jochen

Das ist eine, Python-Listen kann man nicht so gut

Jochen

als quasi so, wenn man da

Jochen

dauernd Sachen hinten raus

Jochen

und vorne rein tut oder so, das geht mit

Jochen

Python-Listen nicht gut, genau, ganz genau.

Jochen

Das ist aber schlecht. Ja, und deswegen sollte man

Jochen

dafür lieber von Collections-Deck

Jochen

oder so verwenden, also Double-Ended-Queue,

Jochen

das geht deutlich besser. Oder Queue.

Johannes

oder da baut man sich einen

Johannes

zyklischen Puffer, hast du eine Liste mit 100 Elementen

Johannes

und hast einen Array,

Johannes

einen Index drin, der das erste und das letzte Element

Johannes

ist, aber das ist auch schlecht,

Johannes

hast du auch ganz viele Edge Cases.

Johannes

Was ist, wenn du mehr als 100 Elemente

Johannes

in deiner Queue hast?

Johannes

Was ist, wenn die

Johannes

ausläuft? Das musst du dann abfangen,

Johannes

dass du dann lauter,

Johannes

also hast du ganz viele so Edge Cases.

Johannes

Arrays sind

Johannes

vom Aufbau her simpler, aber in der

Johannes

Verwendung her irgendwie

Johannes

fitzliger, weil

Johannes

die halt so eine feste Struktur haben.

Johannes

Und das ist so ein bisschen

Johannes

die Sache.

Johannes

Das ist irgendwie so eine

Johannes

Geschwindigkeitsoptimierung.

Johannes

Die sind in mancherlei

Johannes

Hinsicht schneller und dann halt auch gleich

Johannes

richtig viel schneller.

Johannes

Aber dafür holst du dir

Johannes

ganz viele Implementierungsprobleme rein.

Johannes

ich bin eigentlich ein Freund von

Johannes

Link-Lists, weil die so schön sind. Und Skip-Lists,

Johannes

ich meine, da braucht man nicht drüber sprechen,

Johannes

das ist die coolste Sache der Welt.

Johannes

Ja, und

Dominik

kann man da Elemente deaktivieren

Dominik

quasi?

Dominik

Nee, die verweisen nicht auf die Liste, sondern

Dominik

Ja, genau.

Dominik

Genau, eine Skip-List ist was total

Johannes

Smartes. Das ist eigentlich eine Liste,

Johannes

die aber zusätzliche Pointer

Johannes

hat, die durchspringen können.

Johannes

Und die

Johannes

legst du randomisiert an

Johannes

und dann hast du

Johannes

ähnliche Zugriffszeiten wie

Johannes

bei einem Baum. Das heißt, du kannst da so

Johannes

eine Art binäre Suche drin machen,

Johannes

aber

Johannes

hast nicht die Verwaltungsprobleme

Johannes

bei einem Baum, sondern du hast einfach randomisiert,

Johannes

ich verweise auf ein späteres Element.

Johannes

Und man

Johannes

muss ein kleines bisschen mehr Arbeit machen, aber das ist

Johannes

so der Kern der Sache, dass du

Johannes

eben zufällige

Johannes

Skips machst. Und das ist das

Johannes

Skip in SkipList, dass du halt

Johannes

sagst, okay, ich gehe von Index X

Johannes

auf Index X plus eine zufällige

Johannes

Zahl, die sich dann zwischendurch auch verändern kann.

Johannes

Die sich verändern kann, wenn du in der Mitte was

Johannes

einfügst oder was rauslöscht

Johannes

oder so.

Johannes

Und das ist vom Programmieren her was total

Johannes

Simples, gibt dir

Johannes

aber eben die logarithmische

Johannes

Zugriffszeiten, amortisiert

Johannes

statistisch

Johannes

logarithmische Zugriffszeiten.

Johannes

Und deshalb ist das was total Cooles, das ist so was

Johannes

völlig Überraschendes. Als ich das zum ersten

Johannes

Mal gesehen habe, habe ich,

Johannes

erst versteht man es nicht,

Johannes

warum macht man sowas? Und dann

Johannes

kommt so ein Aha-Moment

Johannes

und dann versteht man es

Johannes

immer noch nicht, weil das viel zu simpel ist.

Johannes

Das ist sowas Simples und es gibt einem

Johannes

so Zugriffszeiten wie bei einem Baum, wo man

Johannes

vorher drei Monate mit so

Johannes

scheiß Balancing Red-Black-Trees

Johannes

verbracht hat.

Johannes

Und hinterher sagen sie einem, alles, was

Johannes

du hättest machen müssen, wäre Randomized

Johannes

irgendwie durchgehen.

Johannes

Random Forest.

Johannes

Und wenn du eine sortierte Liste hast und

Johannes

dann mehrere Skip-Ebenen hast, kannst du das sogar

Johannes

garantieren, dass du logarithmische Zugriffszeiten hast.

Johannes

Tja, da gibt es schon coole

Johannes

Sachen.

Johannes

Moment, doch mal, was kannst du

Johannes

garantieren, wenn du mehrere...

Johannes

Ja, wenn du eine

Johannes

sortierte Liste hast, dann

Johannes

kannst du so eine Skip-List

Johannes

haben, wo du

Johannes

auf der untersten Ebene zufällige Skips

Johannes

machst und eine Ebene

Johannes

drüber machst du zufällige Skips auf

Johannes

diesen zufälligen Skips und

Johannes

eine Ebene drüber machst du zufällige Skips auf den

Johannes

bis du in der obersten Ebene quasi

Johannes

vom ersten bis zum letzten Element skippst.

Johannes

Und dann kannst du innerhalb

Johannes

dieser Skipp-Ebenen

Johannes

kannst du binäre Suche machen.

Johannes

In der

Johannes

Linked-List binäre Suche

Dominik

Das ist so ein bisschen wie so ein Reißverschluss.

Johannes

Genau, also du kannst entweder sagen,

Johannes

du hast das Element gefunden oder du gehst eine Ebene

Johannes

runter und suchst genauer.

Johannes

Und das gibt dir eben diese logarithmische

Johannes

Zugriffszeit, weil du eben

Johannes

randomisierten binären Baum

Dominik

suchst. Ist das sowas wie ein Random Forest?

Dominik

Aber nicht verwalten. Da bin ich total auf dem falschen

Dominik

Holzweg gerade.

Jochen

Ist es ja kein Baum.

Jochen

Es ist so eine

Jochen

randomisierte

Johannes

Granularität, die du da hast.

Johannes

Du hast verschiedene Ebenen

Johannes

verschiedener Granularität.

Johannes

Und du hast

Johannes

Zugriffszeiten wie bei einem Baum, musst

Johannes

aber nicht den Baum verwalten und das ist

Johannes

super cool.

Johannes

Cool. Es ist tatsächlich

Johannes

wirklich sehr einfach, sich so eine Liste zu schreiben.

Johannes

So eine ganz einfache Linked-List

Johannes

schreiben ist super easy und

Johannes

jeder sollte das mal ausprobieren.

Johannes

Und dann auch

Johannes

ein bisschen damit spielen und gucken, wie schnell das ist

Johannes

und wie schnell man es machen kann und was man alles damit machen

Johannes

kann und ob man eine Queue daraus kriegt und

Johannes

ob man da sinnvollerweise eine Queue damit rauskriegt.

Johannes

Du meinst,

Johannes

da kann man es einfach mit Algorithmen nennen?

Johannes

Ja, Algorithmen

Johannes

und Datenstrukturen.

Johannes

genau, das ist so ein bisschen

Johannes

der Grund, warum das

Johannes

in Informatikvorlesungen halt oft vorkommt,

Johannes

weil man da sehr einfach

Johannes

einen Einstieg hat und dann aber

Johannes

trotzdem weiter mitkommt.

Johannes

Und weil es halt so

Johannes

eine fundamentale Datenstruktur ist,

Johannes

muss man auch irgendwie,

Johannes

sollte man schon irgendwie wissen, wie das funktioniert.

Johannes

Das bringt einem ungeheuer viel.

Johannes

Ja, und weil man halt

Johannes

direkt auf die Probleme stößt, die halt,

Jochen

ich glaube, das ist auch der, also da habe ich mich

Jochen

vorher gefragt, also

Jochen

sagen, warum wird eigentlich, wenn man

Jochen

Informatik, das sind doch diese coolen Sachen, wo man so

Jochen

Computerspiele macht und irgendwie Grafik und weiß ich

Jochen

nicht, so zu zahlen und sich dahin

Jochen

und dann wird einem erzählt, also wenn wir jetzt hier,

Jochen

wir beschäftigen uns vor allen Dingen damit, wie man so

Jochen

Listen sortiert und irgendwie Dinge

Jochen

in so Listen wieder sucht

Jochen

und findet und so.

Jochen

Das macht man jetzt, suchen und sortieren die ganze Zeit

Jochen

und dann, ja, der Grund ist halt schon, dass

Jochen

irgendjemand hat, vielleicht hat man sogar

Jochen

Knut geguckt, also worum

Jochen

beschäftigen Rechner eigentlich so den ganzen Tag

Jochen

und da war es 70 Prozent waren suchen und sortieren

Jochen

von Dingen war halt das, was Rechner so machen.

Jochen

Und ja, das ist heute immer noch so,

Jochen

glaube ich. Also

Jochen

Listen sortieren ist so. Ich glaube eher, dass das mehr wird.

Jochen

Es wird wahrscheinlich sogar mehr.

Jochen

Weil man doch mehr Fälle gefunden hat,

Jochen

wo man das drauf resorzieren kann.

Jochen

Weil man mehr Daten hat.

Jochen

Oh, sortieren

Dominik

und suchen wären auch nochmal so tolle Folgen.

Dominik

Ja.

Johannes

Das kann man auch mit LinkedLists

Johannes

kann man auch sehr schön Sortieralgorithmen

Johannes

umsetzen.

Johannes

Und auch

Johannes

das lohnt sich. Auch das lohnt sich,

Johannes

dass man sich mal selber hinsetzt

Johannes

und einfach mal BubbleSort

Johannes

implementiert. Das ist ja sehr einfach,

Johannes

der Algorithmus. Das stimmt. Und

Johannes

dann sieht man auch sofort, dass der nur

Johannes

eine Handvoll Operationen benötigt und dass

Johannes

der langsam ist. Und warum der langsam ist?

Johannes

Wenn man sich das dann nämlich rausvisualisiert,

Johannes

dann sieht man, was da passiert und das ist großartig.

Johannes

Oder ein MergeSort.

Johannes

Ein MergeSort ist auch vergleichsweise einfach

Johannes

und ist aber eben deutlich schneller

Johannes

als BubbleSort.

Johannes

Ich mag total gerne

Johannes

LSD-Sort.

Johannes

Du hast so 10 Buckets

Dominik

und da packst du die Sachen einfach dann rückwärts,

Dominik

also von der letzten Dezimalstelle immer rein

Dominik

und dann packst du einfach die Buckets zusammen

Dominik

und dann ist es fertig.

Dominik

Okay.

Dominik

Das ist auch sehr geil. Das heißt LSD-Sort,

Johannes

weil das geht nur, wenn man genügend Drogen genommen hat.

Johannes

Nein, nein, das hat damit nichts zu tun.

Johannes

Leider natürlich.

Johannes

Aber das ist

Dominik

super, weil das kannst du auch mit Kindern machen.

Dominik

Du kannst einfach denen sagen, hey, pack das mal.

Dominik

also so Sortierspiele, pack das mal

Dominik

nach der Reihenfolge da rein, dann hast du eine sortierte

Dominik

Liste, das ist sehr cool.

Dominik

Ja.

Dominik

Würde ich nicht sagen, das ist einer der coolsten.

Dominik

Und das kann man sehr gut ausprobieren, wenn man sich selber gerade seine

Dominik

Linguist geschrieben hat, deshalb ich plädiere

Dominik

dafür, dass das jeder mal tut.

Dominik

Also es ist so, Radix

Dominik

kommt das, ne? Radixort, ja.

Dominik

Radixort, ja, Radixort.

Dominik

Das kenne ich, ja.

Dominik

Es gibt tatsächlich auch

Johannes

Verfechter heutzutage und man muss halt auch

Johannes

dazu sagen, ja, je nach Anwendungszweck

Johannes

sind Arrays besser oder Linked Lists?

Dominik

Also warum es LSD ist, was heißt Lists?

Dominik

Significant Digit. Ach so, okay.

Dominik

Ja, gut.

Dominik

Sorry. Okay.

Dominik

Es gibt

Dominik

es natürlich auch heute noch. Ich habe

Johannes

kürzlich einen Artikel gelesen von dem

Johannes

Menschen, der Redis

Johannes

entwickelt hat,

Johannes

der gesagt hat, wir benutzen es an ganz vielen

Johannes

Stellen, weil das ist halt das, was man

Johannes

braucht. Und auch wenn es so ein kleines bisschen

Johannes

verpönt ist, wenn man so ein bisschen belächelt wird,

Johannes

Das ist halt das, was richtig ist.

Johannes

Und

Johannes

er verweist dann auch auf Stellen im

Johannes

Linus-Kernel, wo auch Link-Lists verwendet werden

Johannes

und sieht es als

Johannes

Indiz, dass es halt das Richtige ist.

Johannes

Weil das halt das

Johannes

Richtige ist. Weil das einen Use-Case

Johannes

erfüllt, der sinnvoll

Johannes

ist.

Johannes

Ja.

Johannes

Durchaus. Also ich meine,

Johannes

was auch noch so

Johannes

eine interessante Geschichte, also auch eine Frage,

Johannes

Linklist oder Array

Jochen

ist halt, wie indiziert man

Jochen

eigentlich, wo fängt man an, 0 oder 1?

Jochen

Und Python macht das

Jochen

richtig, fängt an 0 an.

Johannes

Korrekt, das ist die einzig

Johannes

wahre Antwort. Genau.

Johannes

Warum macht man das nochmal? Ich hatte

Dominik

jemanden, der meinte, das ist total furchtbar, die ganzen

Dominik

Entwickler machen alle immer falsch, die fangen immer

Dominik

bei 0 an zu zählen. Ja, also weil du

Jochen

dann zum Beispiel so nette Sachen machen kannst, wie wenn du

Jochen

eine Liste in zwei Teile teilen willst

Jochen

und willst sie an der Position 2 teilen,

Jochen

dann sagst du einfach Liste

Jochen

Ecke-Klammer auf

Jochen

Doppelpunkt 2

Jochen

Klammer zu oder Liste

Jochen

Ecke-Klammer auf 2 Doppelpunkt

Jochen

Ecke-Klammer zu und hast dir dann genau an der Position

Jochen

2 geteilt.

Jochen

Das ist zum Beispiel ein schöner

Jochen

Effekt davon.

Johannes

Da gibt es tatsächlich eine alte E-Mail

Johannes

von Guido von Rossum, wo er genau das

Johannes

gefragt wurde, warum er das so gemacht hat

Johannes

und genau diese Antwort kommt, dass er sagt,

Johannes

wenn du halt diesen Index

Johannes

wiederverwendest, dann sind die genau lückenlos

Johannes

zusammen. Ich muss mal schauen, ob ich

Johannes

diesen Link wieder finde. Das wäre schön, weil

Dominik

das mein nettes Argument ist.

Johannes

Das wäre schön, ja. Das ist auch sehr angenehm zu lesen. Und der sagt

Johannes

auch die anderen Optionen, die du machen kannst.

Johannes

Und die haben alle auch ihre

Jochen

Plattform. Da gibt es ein super Paper

Jochen

von Deikstra.

Jochen

Das ist

Jochen

im Original. Hat der das handschriftlich

Jochen

aufge... Er hat ja so, er hat ja irgendwie in den Diskussionen

Jochen

mitbekommen, wo Leute gesagt haben,

Jochen

die einen sagten, ah, mit 0 anfangen, die anderen

Jochen

mit 1. Und dann der, der

Jochen

1 gesagt hat, der sagt dann irgendwann, ah,

Jochen

hat denen vorgeworfen, ihr seid

Jochen

irgendwie pedantisch, dass ihr da unbedingt auf dieser Null

Jochen

besteht, das ist doch eigentlich ganz egal, wir können ja irgendwas

Jochen

anfangen zu zählen, sowohl wurscht.

Dominik

Das erste Element ist das erste Element, nicht das Nullte.

Dominik

Und dann meinte er so,

Dominik

ja, also ich hab mir das mal überlegt und

Jochen

dann hab ich das mal aufgeschrieben, wie das richtig geht

Jochen

und nee, der mit der Eins liegt falsch

Jochen

und zwar weil, und

Jochen

das dann so auf Karopapier zwei

Jochen

Seiten, die er dann handschriftlich vollgeschrieben hat,

Jochen

als ich dann zum Beispiel eben, wie man

Jochen

sagen kann,

Jochen

wie man jetzt, ich glaube, da geht es um,

Jochen

er sagt 2, also

Jochen

die Folge hat 2,3

Jochen

Punkt, Punkt, Punkt, 12 oder so.

Jochen

Wie kann ich die jetzt logisch

Jochen

hinschreiben? Also überhaupt, ich weiß keine Ahnung,

Jochen

wie da drauf gekommen ist, das so zu machen, aber

Jochen

und dann hat er alle Möglichkeiten, wie man das hinschreiben

Jochen

kann, mit größer, kleiner und so, aufgeschrieben

Jochen

und hat gesagt, und ist die dann alle durchgegangen und meinte so,

Jochen

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.

Jochen

Das ist jetzt auch nicht so gut. Und dann kommt er halt dabei raus

Jochen

am Schluss so, ja, nee, man muss mit 0 anfangen.

Jochen

Das geht sonst nicht. Ansonsten muss man irgendwie

Jochen

kommt man, hat man manchmal

Jochen

Vergleiche mit, also mit, wo man

Jochen

einen Index minus, also wo

Jochen

Null nicht das kleinste ist, sondern

Jochen

irgendwas drunter.

Jochen

Also wenn man jetzt da

Jochen

so unnatürliche Zahlen als Index

Jochen

verwendet, das ist irgendwie nicht gut. Das sollte

Jochen

man nicht machen.

Jochen

Also es ist wirklich, es ist auch sehr amüsant zu

Jochen

lesen und, aber es ist

Jochen

auch sehr überzeugend. Also am Schluss denke ich so, ja

Jochen

stimmt, musst du mit Null indizieren, das geht

Jochen

nicht anders. Und

Jochen

Und ja, am Schluss endet das, diese zwei Seiten, die er geschrieben hat,

Jochen

endet auch mit einem sehr schönen Zitat, wo er dann schreibt,

Jochen

ja, ich weiß jetzt gar nicht, von wem das, er zieht ja da irgendjemand anders.

Jochen

Er meinte so, ja, also warum regen sich die Leute an so einer Stelle

Jochen

dann immer darüber auf und werfen dann vor, dass da Leute pedantisch sind?

Jochen

Das ist deswegen, weil so soziale Exklusionen muss man halt,

Jochen

wenn es um so religiöse Überzeugungen geht, immer dann besonders machen.

Jochen

Nicht deswegen, weil man Angst davor hat,

Jochen

dass andere Leute vielleicht was Falsches denken könnten,

Jochen

sondern der eigentliche Grund ist

Jochen

die Möglichkeit, dass sie recht haben könnten.

Jochen

Deswegen muss man da besonders draufhauen.

Jochen

Und das ist halt, ja, das ist so.

Jochen

Das muss man ausschließen.

Jochen

Ja, genau.

Jochen

Super. Ja, also da kann man das mal nachlesen.

Jochen

Das müsste man auch unbedingt in die Schulungsbücher nehmen.

Jochen

Ja, genau.

Jochen

Was ich auch manchmal gerne mache,

Jochen

ist, man kann, wenn man jetzt

Jochen

in einer Liste so bestimmte Teile

Jochen

markieren will, da kann man natürlich

Jochen

irgendwie Liste, klicke ich da mal auf,

Jochen

anfangen, Doppelpunkt Ende,

Jochen

hinschreiben. Man kann aber auch,

Jochen

es gibt irgendwie ein Bild in Slice, wo man

Jochen

sagen kann, Slice irgendwie

Jochen

Anfang, Ende

Jochen

und dann kann man eben Namen geben.

Jochen

Und dann kann man das Ding direkt reintun.

Jochen

Das heißt, man kann sagen irgendwie, das ist jetzt

Jochen

irgendwie die, weiß ich nicht, der Name oder

Jochen

sowas. Und dann gibt dann, sagt man,

Jochen

großgeschrieben Name, gleich Slice

Jochen

5,12, Klammer zu.

Jochen

Und dann kann man hinterher sagen, Liste, Ecke, Klammer auf,

Jochen

Name, Ecke, Klammer zu. Das ist

Jochen

manchmal ganz nett.

Jochen

Ja,

Jochen

genau, es gibt natürlich noch diverse Geschichten

Jochen

in Python, auch die eher so mit Arrays zu tun haben.

Jochen

Es gibt das Array-Modul,

Jochen

also das Array-Modul

Jochen

in der Standardbibliothek, immer sehr schön.

Jochen

Da kann man dann tatsächlich solche Sachen, die alle den gleichen Typ haben,

Jochen

reinschreiben. Es gibt auch die Verallgemeinerung

Jochen

davon. Sind da sowas, was

Jochen

die Indizes dann direkt mit drin oder sowas?

Jochen

Indizes,

Jochen

dass man da irgendwie dann Dinge drin suchen kann

Jochen

oder... Ja, zum Beispiel, oder Zugriff direkt

Jochen

Nee, das ist nur, das sind nur

Jochen

dann einfache Arrays. Also für sowas kannst du

Jochen

dann Pandas oder NumPy oder so. Okay,

Dominik

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

Jochen

die halt irgendwie im Hauptspeicher zusammenliegen,

Jochen

irgendwie durch die Gegend schieben kann,

Jochen

ohne dass man jetzt exakt ranschreibt, was das jetzt ist.

Jochen

Sondern man kann die Daten einfach in der Gegend rumschieben

Jochen

und dann ist es halt ein Memory View.

Jochen

Und dann kann man aus dem Memory View wieder irgendwas anderes machen.

Jochen

Ein NumPy Array oder halt ein Array oder sonst irgendwas,

Jochen

in dem man dann halt dazu sagt, du hast jetzt irgendwie folgende Struktur.

Jochen

Und dann kann man halt auch so

Jochen

multidimensional

Jochen

werden oder so.

Jochen

Aber wichtig ist oft, dass man das Ding

Jochen

als gesamten Block im Hauptsprecher

Jochen

irgendwie rumschieben kann.

Jochen

Und dafür sind Memory Views ganz gut.

Jochen

Das ist auch ganz nett.

Dominik

Das muss natürlich in den Hauptsprecher passen.

Dominik

Ja, wenn es nicht reinpasst,

Jochen

dann gut, dann muss man was anderes machen.

Jochen

Eine Ibis oder so.

Jochen

Genau.

Jochen

Was auch nett ist, ist, wenn man

Jochen

die NumPy

Jochen

macht da auch noch viele magische

Jochen

Geschichten mit. Man kann jetzt auch mehrere Sachen,

Jochen

wenn er jetzt mehrdimensionale Arrays

Jochen

hat, sowas gibt es nicht in der Standardbibliothek.

Jochen

Aber es gibt halt

Jochen

die Möglichkeit, das zu

Jochen

benutzen. Also das sieht Python schon vor,

Jochen

auch wenn es jetzt

Jochen

keine Objekte in der Standardbibliothek implementiert,

Jochen

dieses Interface. Aber dass du halt

Jochen

sagst, Index, Doppelpunkt,

Jochen

irgendwas, Komma und dann die nächste

Jochen

Dimension.

Jochen

Das macht der NumPy halt,

Jochen

kann man auch verwenden,

Jochen

und

Jochen

ein Ding, das man da häufig

Jochen

sieht, was halt komisch aussieht, man kann auch

Jochen

statt, also wenn man jetzt sowas schreiben würde, wie

Jochen

x, Ecke, Klammer auf

Jochen

i, Komma und dann Doppelpunkt, Komma, Doppelpunkt,

Jochen

Komma, Doppelpunkt irgendwie,

Jochen

um halt nur eine bestimmten,

Jochen

also eine bestimmte

Jochen

Dimension rauszuziehen

Jochen

und genau, alle anderen Sachen

Jochen

halt dann beliebig zu lassen,

Jochen

dann kann man dafür auch Ellipsis verwenden und einfach

Jochen

Klammer auf i, Komma,

Jochen

Punkt, Punkt, Punkt schreiben. Das sieht man häufig

Jochen

und dann, also hat mich aber anfangs total verwirrt.

Jochen

Hä, was ist das denn?

Jochen

Ja.

Jochen

Kann man sich auch noch mal ein bisschen was sparen?

Jochen

Ja.

Jochen

Was gibt es sonst noch nennenswertes

Jochen

über Listen zu sagen?

Jochen

Ich glaube, du musst einmal noch ganz kurz

Dominik

über Ellipsis was sagen, weil vielleicht ist das immer noch nicht

Jochen

Ja, das ist sowieso so ein interessantes

Jochen

Spezial-Ding.

Jochen

Also ich sehe das relativ häufig, ich benutze

Dominik

das auch mal, wenn ich irgendwas fertig machen möchte.

Dominik

Einfach so als Platzhalter in meinem Kopf.

Dominik

Aber es ist nicht so ganz richtig verwendet.

Dominik

Man kann einfach drei Punkte machen irgendwo und peißen.

Jochen

Genau, es gibt auch, man kann es auch ausschreiben.

Jochen

Das funktioniert erst mal wie ein Pass, oder?

Jochen

Wenn du einfach nur drei Punkte schreibst, ist es wie ein Pass.

Jochen

Genau, aber es verhält sich in manchen anderen Kontexten

Jochen

halt manchmal so ein bisschen anders.

Jochen

Man kann es auch, also in Typ-Annotationen

Jochen

wird es häufig verwendet für,

Jochen

da steht jetzt halt irgendwas, irgendwie,

Jochen

keine Ahnung, oder halt eben

Jochen

in diesen

Jochen

Index-Geschichten

Jochen

man kann auch Ellipsis einfach tatsächlich

Jochen

ausschreiben. Und wenn man jetzt sagt, Punkt, Punkt, Punkt

Jochen

ist Ellipsis, dann sagt Python halt

Jochen

true. Das ist halt das gleiche Objekt.

Jochen

Ja.

Jochen

Genau.

Jochen

Ja, aber es ist halt irgendwie komisch. Es sieht anders aus

Jochen

als andere Sachen und man weiß oft nicht so genau, was es denn sein

Jochen

soll.

Jochen

Ja.

Jochen

Ja, ja, ja, ja.

Jochen

Ansonsten, ich weiß nicht,

Jochen

was noch ganz interessant ist. Das sortet

Jochen

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 entweder... Aber das ist doch Absicht,

Jochen

das ist doch extra so. Ja, ja, ist extra so, aber

Jochen

genau.

Jochen

Sonst kann man ja PunktSort, oder PunktSort macht

Jochen

das halt in place, genau.

Jochen

Ja.

Johannes

Auch das sorgt oft für Verwirrung,

Johannes

weil PunktSort gibt nämlich nichts zurück.

Jochen

Genau, was dazu führt, dass man es nicht chainen kann

Jochen

und wenn man halt

Jochen

aus der Data-Science-Welt kommt und dann ist man plötzlich in einer

Jochen

anderen Welt, dann kriegen Leute

Jochen

plötzlich irgendwie seltsame Probleme.

Jochen

Ja, ja, ja.

Jochen

Ja.

Jochen

Aber ansonsten,

Jochen

ja, mir fällt jetzt auch ehrlich gesagt nicht mehr viel ein.

Jochen

Weiß nicht, wenn jemand noch eine gute Idee hat.

Dominik

Listen, listen. Noch was?

Dominik

Auf der Liste nicht mehr genug drauf?

Dominik

Nö, mehr habe ich hier nicht.

Dominik

Ja, aber ich würde sagen,

Dominik

das ging doch jetzt einigermaßen

Dominik

flott.

Dominik

Das ging erstaunlich flott jetzt von da.

Dominik

Ja.

Johannes

Wir warten jetzt auf die Rückfragen

Johannes

und beantworten. Genau, und beantworten

Johannes

muss man zu Listen, alle Rückfragen zu Listen.

Dominik

Ja, also ihr wisst ja immer, wie Feedback wie immer

Dominik

hallo.peisenpodcast.de

Dominik

Ja. Dürft ihr uns gerne schreiben,

Dominik

wenn ihr irgendwie Feedback-Anregungen, Kritik,

Dominik

Beleidigungen

Dominik

zuwerfen wollt. Hatten wir auch schon.

Dominik

Ja, ja, ja. Ihr selten.

Dominik

Ganz viele tolle Posten. Vielen Dank

Dominik

dafür immer. Das mögen wir sehr gerne.

Dominik

Es gibt ein sehr schönes

Dominik

Buch von John Scalzi

Johannes

mit dem Titel Your Hate Mail Will Be

Johannes

Graded, wo er

Johannes

einfach Briefe, die er bekommen hat,

Johannes

veröffentlicht und kommentiert.

Jochen

Das ist auch eine sehr interessante Art, damit umzugehen.

Jochen

Wenn man das

Jochen

öffentlich sagt, dass man das tut, dann kriegt man auch weniger.

Jochen

Ich mache Profit aus den Sachen,

Jochen

die er mir schickt.

Jochen

Ich finde es fair.

Dominik

Wir haben noch unseren Pick der Woche, des Monats, der Episode.

Dominik

Okay, ja. Ja, ich habe einen.

Dominik

Ah, du hast einen. Ich habe mir extra

Johannes

einen ausgedacht. Ist eine Python-Bibliothek.

Johannes

Open AI Whisper.

Johannes

Ah, okay. Vorsicht,

Johannes

nicht PIP-Install Whisper.

Johannes

Das ist was anderes, sondern man muss das

Johannes

aus dem GitHub-Repo installieren.

Johannes

Ist ein trainiertes

Johannes

Modell zur Spracherkennung.

Johannes

Das heißt, es gibt mal ein WAV-File

Johannes

oder ein MP3 oder sonst irgendwas und der

Johannes

gibt einem den Text, der da

Johannes

gesagt wurde, zurück.

Johannes

Und es funktioniert erstaunlich gut und es funktioniert auch erstaunlich einfach, weil man hat ja oft so ein bisschen, also ich habe oft so ein bisschen Berührungsangst, wenn dann irgendwo steht, ja, hier ist ein Modell veröffentlicht worden. Es ist tatsächlich einfach nur pip install.

Dominik

Also für verschiedene Modelle gibt es sowieso so coole Sachen.

Johannes

Und dann drei Zeilen Code und dann tatsächlich Spracherkennung. Also ich habe es ausprobiert und es funktioniert erstaunlich gut.

Jochen

Das funktioniert das auch mit Deutsch irgendwie halbwegs?

Johannes

Ja, funktioniert auch mit Deutsch. Es gibt verschiedene Modelle, die für die verschiedenen Sprachen eingestellt sind und das hat tatsächlich mit Deutsch so gut funktioniert. Also ich habe Lorem Ipsum reingeschrieben, reingesagt und er hat dann deutsche Wörter daraus gehört.

Dominik

Also kennt ihr so ein paar Sachen? Es gibt ja diese ganzen Machine Learning Tools, es gibt ja irgendwie so ein paar, ich nenne es jetzt mal High-Level-Wrapper, Gradio zum Beispiel oder so, wo man einfach so eine App deployen kann, die direkt mit so einem Web-Interface läuft, wo man dann so ein Modell hat, was man dann direkt benutzen kann, irgendwie mit so einem Easy-Web-Interface und sowas, das ist halt total nett zum Dämonen oder Pocken oder MVPen oder sowas.

Dominik

Ja.

Dominik

Vielleicht in der Kombination mit Streamlit, falls ihr das kennt.

Dominik

Das macht auch so

Dominik

Web-Apps und für so

Dominik

Data-Science-Krams hast du dann direkt

Dominik

irgendwie Überblick

Dominik

über, weiß ich nicht, Analytics,

Dominik

Data Exploration und dann

Dominik

kannst du direkt das Modell speichern.

Johannes

Da kommen jetzt schon wieder meine Berührungsängste, die ich gerade gesagt habe,

Johannes

weil es so kompliziert ist, da den Einstieg zu finden.

Johannes

Ja, da müssen wir vielleicht mal

Dominik

eine eigene Folge zu machen. Aber das wäre nicht mein Pick,

Dominik

aber das hat mich gerade sehr daran erinnert, dass du eine so eine

Dominik

schöne, kleine, schnelle Benutzung

Dominik

von so einem Modell hast. Zum Beispiel Gradio nutzt

Dominik

jetzt komplett Hugging-Face-Zio.

Dominik

Da hast du Zugriff über zwei Zeilen

Dominik

Python-Code auf, weiß nicht, 10.000 Modelle oder so

Dominik

vortrainierte. Und die du einfach direkt

Dominik

benutzen kannst. Das ist sehr geil. Ja, auch sehr cool.

Jochen

Ja, ist auf jeden Fall. Ja, genau. Ist mir auch schon

Jochen

aufgefallen. Viele Leute packen das

Jochen

auch auf ihre GitHub-Repos und so.

Jochen

Ja.

Jochen

Was auch ganz interessant ist, gerade da,

Jochen

jetzt habe ich das wieder ein bisschen vergessen,

Jochen

leider, ich habe

Jochen

mich mit diesem Audio, ich habe mich ja schon ein bisschen

Jochen

damit beschäftigt.

Jochen

dieser Automatic Speech Recognition

Jochen

und

Jochen

da früher,

Jochen

so

Jochen

ganz, ganz früher, so

Jochen

2015, 16,

Jochen

als die Deep Speech Modelle

Jochen

So lange her, hey?

Jochen

Also es gab einen riesen Fortschritt, also

Jochen

irgendwie niemand hat das richtig hingekriegt,

Jochen

weil irgendwie hat alles nicht funktioniert

Jochen

und die ersten Modelle,

Jochen

die so richtig gut funktioniert haben, auch

Jochen

Deep Learning angewendet auf Speech Recognition

Jochen

waren halt Deep Speech 1, 2

Jochen

für Englisch, Chinesisch

Jochen

und genau, dann gab es

Jochen

immer da so Verbesserungen und so, aber das Problem

Jochen

immer für Deutschland, dass es nie funktioniert, weil

Jochen

beziehungsweise, es gibt ein paar Firmen,

Jochen

die konnten das gut machen, irgendwie

Jochen

Microsoft, Google, Apple,

Jochen

Amazon, weil sie halt die Trainingsappen

Jochen

dafür haben, ja, die einen dadurch, dass sie halt

Jochen

Telefone verkaufen, wo die Leute reinquatschen

Jochen

und die anderen dadurch, dass sie halt irgendwie

Jochen

den Leuten so irgendwie Lautsprecher

Jochen

in die Wohnung stellen oder weiß ich nicht

Jochen

und

Jochen

ja, die konnten das halt machen, aber

Jochen

alle anderen eigentlich nicht, weil die Trainingsdaten gab es halt

Jochen

nicht. Und

Jochen

dann gab es, gibt es dieses

Jochen

tolle Common Voice Projekt von Mozilla,

Jochen

wo dann halt

Jochen

sozusagen so

Jochen

Datenspenden gesammelt wurden,

Jochen

dass man konnte man halt irgendwie ein paar Sätze sagen,

Jochen

die einem vorgegeben wurden und dann

Jochen

wurden das halt als Trainingsdaten

Jochen

verwendet für

Jochen

dieses Common Voice, für diesen Trainingsdatenkorpus

Jochen

und die haben auch selber ein Modell trainiert,

Jochen

das halt basierte, glaube ich, auf Deep Speech

Jochen

und das dann halt

Jochen

auf so eine Word-Error-Rate gekommen ist, die halt relativ

Jochen

gut ist, um halt Leuten anbieten zu können,

Jochen

okay, ihr könnt die Spracherkennung auch direkt auf eurem

Jochen

Raspberry Pi oder so machen und müsst

Jochen

es nicht irgendwie an eine Google-API schicken, weil das ist

Jochen

eigentlich ja schon nicht so geil, weil die können einen dann ja

Jochen

quasi ausnehmen, wenn man irgendwie selber

Jochen

ein Produkt baut oder so, muss immer eine Google-API fragen

Jochen

und dann sagt Google irgendwann so, ja, nette Gewinne

Jochen

macht ihr da, wir hätten auch mal gern was von ab.

Jochen

Ja, oder noch schlimmer finde ich, die können einfach

Jochen

einen ausschließen oder so.

Jochen

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

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 diesen Natural Language Processing Modellen so,

Jochen

dass der Riesenschritt zu

Jochen

oh mein Gott, man kann jetzt da Dinge machen, die

Jochen

früher waren, eigentlich

Jochen

eher diese Self-Supervised-Geschichten,

Jochen

dass man halt die Modelle

Jochen

dadurch trainiert hat, dass man denen Lückentexte gegeben hat

Jochen

und man gibt ihnen einfach irgendwelchen Text,

Jochen

trainiert das Modell dadurch, dass man es

Jochen

quasi

Jochen

voraussagen lässt, welches Wort

Jochen

in dieser Lücke gestanden

Jochen

hat und es dann halt belohnt oder bestraft,

Jochen

je nachdem, wie nah das da halt dran war.

Jochen

Und das heißt, man kann plötzlich, und

Jochen

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. Und eigentlich muss es die fast verstehen können, ja. Sonst kann es das halt nicht gut tun. Und wenn man das Modell halt dann mit genug Texten aus dem ganzen Internet halt prügelt, dann kann es das halt irgendwann. 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. Funktioniert dann aber immer noch super.

Jochen

Und so ähnlich funktioniert das mit dem Audiokram auch. Und zwar, ich weiß jetzt, die genauen Verfahren kenne ich jetzt alle nicht. Ich habe es inzwischen wieder vergessen. Da haben Leute das auf irgendwie, weiß ich nicht, tausenden und Millionen Stunden, ich glaube ein paar hunderttausend Stunden YouTube-Videos trainiert, self-supervised und dann nur ein paar annotierte Trainingsbeispiele für irgendwie.

Jochen

also dieses Audio war übrigens

Jochen

jetzt folgender Satz.

Jochen

Und das hat dann auch schon super funktioniert.

Jochen

Das heißt quasi, die

Jochen

Dinger haben self-supervised auf

Jochen

unfassbaren Mengen Audio gelernt, was

Jochen

halt so Audio ist und wie das funktioniert, wie Sprache so

Jochen

funktioniert. Also

Jochen

in Form der

Jochen

Audio

Jochen

quasi Repräsentation.

Jochen

Und dann hat man

Jochen

dieses gelernte Modell benutzt, um halt

Dominik

mit Transkriptionen

Dominik

nochmal zusätzlich zu verändern.

Jochen

Ja, dann wirklich halt daraus Text zu machen.

Jochen

Und das funktioniert total super. Also die

Jochen

Modelle sind alle inzwischen nochmal viel besser als Deep Speech

Jochen

und so. Und du brauchst nicht mehr diese gigantischen

Jochen

Trainingsdatenmengen. Das heißt,

Jochen

ja, eigentlich ist es quasi,

Jochen

dieses Problem ist mehr oder weniger gelöst.

Jochen

Ist halt jetzt nur

Jochen

so eine Frage, wie kriegt man das gut

Jochen

irgendwie so umgesetzt, dass es halt gut funktioniert. Also es

Jochen

gibt ein Modell, das halt super gute

Jochen

Genauigkeit hat,

Jochen

aber das braucht halt irre lange. Also bei mir

Jochen

braucht das halt pro Faktor

Jochen

30 irgendwie von, also wenn du

Jochen

zehn Sekunden Audio hast, brauchst du es halt Faktor 30,

Jochen

um halt Text rauszumachen. Das kann man

Jochen

praktisch nicht so gut verwenden, weil

Jochen

eigentlich muss ja Echtzeit sein. Und es braucht dann auch viel

Jochen

Hauptspeicher und viel und so weiter.

Jochen

Genau. Also, aber

Jochen

das wird ja alles auch noch besser, denke ich mal.

Jochen

Also bei diesem

Johannes

Whisper sind

Johannes

verschiedene Modelle dabei und ich habe jetzt nur das

Johannes

Tiny-Modell ausprobiert. Das hat

Johannes

einen Faktor ungefähr von 0,2.

Johannes

Das heißt, in

Johannes

deine 30 Sekunden Audio

Johannes

hättest du dann eben in

Johannes

sechs Sekunden

Johannes

durchtranskribiert.

Johannes

Und ich war von der Qualität

Johannes

sehr positiv überrascht. Für so ein kleines

Johannes

Modell, sehr, sehr positiv

Johannes

überrascht, dass das so gut funktioniert. Also musst du auf jeden Fall

Johannes

mal ausprobieren, Jochen.

Jochen

Ja, für Podcasts ist das nicht ganz uninteressant, ja.

Johannes

Und wie gesagt, da gibt es halt mehrere Größen,

Johannes

je nachdem, wie viel du runterladen willst und wie viele

Johannes

Grafikkarten du zu verbrennen hast.

Johannes

Oh, hmm.

Johannes

und kannst anschauen.

Johannes

Die kleinen Modelle laufen auch alle auf CPU

Johannes

und das ist ziemlich cool.

Johannes

Cool, ja, schön.

Johannes

Das ist ja praktisch.

Johannes

Bitte?

Johannes

Da hast du auch einen Blick.

Johannes

Oh, ja, ich dachte eigentlich,

Jochen

ich wollte hier das Specialist picken,

Jochen

aber das habe ich ja jetzt schon verbrannt.

Jochen

Mist.

Jochen

Ich habe gerade immer geguckt.

Jochen

Es gibt eine andere Geschichte,

Jochen

die halt, also wenn man irgendwie mal gucken will,

Jochen

wie, welche Sachen im Code langsam oder schnell sind,

Jochen

gibt es schöne Profile inzwischen,

Jochen

hat sich einiges getan

Jochen

und ein wirklich netter ist

Jochen

Skalinen. Genau, packe ich auch nicht

Jochen

so, Shownotes, da kann man

Jochen

eine Menge sehen.

Dominik

Ich habe wieder so einen kleinen Pick und ich habe

Dominik

PureMagic entdeckt, fand ich

Dominik

ganz cool. Aus der Standard

Dominik

Lib kann man auf

Dominik

Falt schmeißen

Dominik

und weiß dann so ein bisschen,

Dominik

was das denn für ein Dateiformat sein könnte

Dominik

oder so.

Dominik

Ah, die Magic

Jochen

Numbers.

Dominik

Mögliche Extensions raus oder so, genau.

Dominik

Das gibt schon Konfidenz und so.

Dominik

Ja, cool.

Dominik

Und das ist in der Standardlib?

Dominik

Ja, Pyramidic, ja.

Dominik

Das ist ja Hammer.

Dominik

Ich weiß nicht, ist das in der Standardlib?

Dominik

Ich weiß nicht, ich werde es nachgucken.

Dominik

Ja, es ist bei PyPI auf jeden Fall.

Dominik

Aber mir ist das aufgefallen,

Dominik

weil ich es darauf kam, weil ich diesen

Dominik

Pep gelesen habe von Christian Heimers,

Dominik

wo halt dann welche denn die

Dominik

Pakete sind, die das ersetzen können,

Dominik

die aus der Standardlib duplicated sind.

Dominik

Ach so, ja.

Dominik

Ich glaube, Pure Magic ist vielleicht nicht drin, aber ...

Jochen

Nee, das ist ein externes, aber genau.

Dominik

Aber es macht genau das, was ich mir da vorgestellt habe.

Dominik

Ah, okay. Ja, ist ja auch interessant.

Dominik

Cool, cool, cool.

Johannes

Ich habe noch einen zweiten Pick, in Anführungszeichen.

Johannes

Noch einen Pick.

Johannes

Weil das Post-Pick,

Johannes

weil das zum Thema des heutigen Abends sehr gut passt.

Johannes

Oh, okay.

Johannes

Nannybell.se

Johannes

Das ist ein soziales Netzwerk, so ähnlich wie Facebook,

Johannes

aber es läuft immer nur lokal auf dem eigenen Telefon.

Johannes

Und Datenaustausch funktioniert nur über Bluetooth

Johannes

mit Geräten, die in der Nähe sind.

Johannes

Das heißt, die Posts, die man dann schreibt,

Johannes

die verbreiten sich dann eben langsam in der sozialen Hülle,

Johannes

die halt in der Nähe ist.

Johannes

Witzig.

Johannes

Das finde ich ein sehr schönes Gegenmodell zu dem,

Johannes

was man sonst so hat.

Johannes

Ich werde sicherlich keins laufen lassen.

Johannes

Also das ist für die Leute, die nicht miteinander reden,

Dominik

sondern nebeneinander auf ihren Handys rumhacken, oder?

Dominik

Genau.

Dominik

Wenn man sich Bilder teilen möchte,

Dominik

dann ist das gut.

Dominik

Nein, aber das, also

Johannes

ich meine, wenn du jemanden

Johannes

kennst, der jemanden kennt, der jemanden kennt, der jemanden kennt,

Johannes

dann kannst du auch bei dem die Posts sehen, aber halt

Johannes

erst langsamer.

Johannes

Die verbreiten sich dann

Johannes

eben durch dieses Netzwerk durch.

Johannes

Das finde ich irgendwie

Johannes

Aber verbreiten sich alles zu allen?

Johannes

Also geht das dann weiter?

Johannes

Nee, ich glaube, ich weiß nicht genau,

Johannes

wie die das gelöst haben.

Johannes

Aber man kann irgendwie halt folgen

Johannes

und das muss ja dann irgendwie schließlich da ankommen.

Johannes

Also es wird irgendwie so ein, keine Ahnung,

Johannes

Distributed Hashtable

Johannes

Routing sein,

Johannes

was sich halt langsam, was da halt langsam

Johannes

hinkonvergiert.

Johannes

Interessant.

Johannes

Okay, aber ich glaube, das haben wir es heute

Dominik

tatsächlich dann doch geschafft. Vielen Dank, dass ihr

Dominik

bis hierhin durchgehalten habt und

Dominik

ich fand es war eine schöne Folge, hat mir viel Spaß gemacht.

Dominik

Vielen Dank Johannes, dass du wieder dabei warst.

Dominik

Ja, sehr gerne, mir hat es auch viel Spaß gemacht.

Dominik

Danke Jochen. Und ich freue mich schon

Johannes

auf die nächste Listen-Folge. Bleibt uns gewogen

Johannes

und hört uns zu.

Johannes

Vielen Dank für eure Aufmerksamkeit.

Johannes

Tschüssi.