Transcript: Bytes und Strings

· Back to episode

Full episode transcript. Timestamps refer to the audio playback.

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

Episode 62 heute.

Hi Jochen.

Ja, hallo Dominik, herzlich willkommen und hallo Johannes.

Hi Johannes.

Hallo zusammen.

Mal wieder, ja.

Ja, mal wieder.

Wir wollten heute wieder über ein weiteres Kapitel unseres wundervollen Buches sprechen.

Ja.

Und ja, mal wieder, wir sind tatsächlich ein bisschen spät dran in diesem Jahr.

Ja, wir wollten eigentlich auch noch andere Dinge machen, das hat nicht so richtig funktioniert.

Wir hatten eine Pause, kreative Pause.

Ja, und da sind noch andere Episoden noch in der Warner-Akt.

Die kommt aber, die kommt wahrscheinlich tatsächlich vorher, denke ich mal.

Ja, die ist vorher erschienen?

Nein.

Wir werden sehen.

Ja.

Ja, was ist denn das Kapitel heute?

Johannes hat es ganz gelesen, habe ich gehört.

Ich habe es gelesen, ja, extra heute Mittag noch.

Ja, gut.

Also ich meine, vor Wochen schon.

Ja, wollen wir vielleicht ein bisschen News machen oder so?

Wir haben noch so ein paar.

Aber ich wollte kurz sagen.

Was es heute geht.

Ja, okay.

Ach so.

Ja, dann muss der Johannes es wohl sagen.

Es geht um Bytes und Strings.

Okay, cool.

Cool.

Alle Datentypen ein bisschen.

Und wie heißt das Buch?

Fluent.

Das ist Fluent Python.

Fluent Python, genau.

Ja.

Meine Kinder sind immer beeindruckt, wenn ich ihnen das dicke Buch zeige, wie viel da drin

steht muss.

Ja.

Dass man so große und lange Bücher überhaupt lesen kann.

Ja, das ist auch schon die dritte Episode über dieses Buch, die wir machen.

Das ist das Premiere.

In diesem Buch, da stecken auch noch ein paar Episoden drin.

Ja, aber so viel.

Ja.

Von jetzt haben wir noch das Fernbuch gezogen bisher.

Ja.

Also von her.

Ich habe hier noch ein paar andere dicke Bücher.

Es sind auch Python in a nutshell.

Und ja.

Wie dick ist Python in a nutshell?

Nicht ganz so dick wie Fluent Python, aber ähnlich.

Aber dann ist es eine sehr große Nussschale.

Ja.

Eine Walnuss.

Ist mehr so der Öltanker unter den Nussschalen.

Das ist.

Es gibt auch noch dieses schöne neue Tangebuch.

Tango 5.

Die ist das.

Tango 5 by example.

Tango 5.

Ich habe nur noch E-Books.

Und das ist perfekt, weil die liegen nicht so vorwurfsvoll rum auf dem Schreibtisch.

Das ist natürlich ein Vorteil.

Aber der Nachteil ist, also ich habe auch ganz viele E-Books.

Der Nachteil ist so ein bisschen, also ich gucke tatsächlich in die physischen Bücher

häufiger rein als in meine E-Books.

Ja, also E-Books.

Also tatsächlich, dann hast du irgendeine Sammlung, die vergammelt in irgendeinem Ordner.

Und dann?

Also so als Nachschlagewerk.

Einer noch.

Also es gibt ganz wenige Bücher, die ich als Nachschlagewerk benutze.

Ansonsten tatsächlich Buch aus dem Regal holen, aufschlagen, reingucken.

Ja, du bist halt analog.

Okay.

Okay.

Okay.

Okay.

Jetzt hast du dich datiert, Dominik.

Jetzt wissen wir alle, dass du alt bist.

Ja, bei Musik ist das auch so.

Da mache ich auch analog Zeug.

Ja.

Kein Computer?

Ja, manchmal auch.

Also ich bin ja auch manchmal modern.

Oder so beides gleich, den Wechsel oder Sample oder so, ja.

Ah.

Aber schon analoge Sims, das ist schon nice.

Ja, aber wir schweifen ab.

Ja.

Ja, genau.

Aber vielleicht wollen wir jetzt erst mal ein bisschen, ich könnte jetzt hier mal so

eine Kapitelmarke für News einfügen.

Ja.

Ähm, und, ähm, jetzt hat es die Kapitelmarke hier an den Anfang gesetzt.

Was ist denn das?

Schon wieder alles kaputt hier.

Ja, wir haben ein Problem mit der Software, Jochen.

Ja, ja.

62 Episoden sind wir ja immer noch.

Ihr wisst wahrscheinlich, wie lange wir zwischendurch brauchen, um das Audio-Setup hinzubekommen.

Ja, heute auch schon wieder.

Das war jedes Mal.

Ja.

Ja.

Jedes Mal.

Jedes Mal mit neuen, tollen Dingen, die wir rausfinden über das Audio-Setup.

Ja.

Und wir machen noch jedenfalls bei eigenem, was die Musik kann.

Heute hatten wir ein Echo.

Vielleicht hat er, dann mischt wohl einfach zu viele Kanäle, Jochen.

Ja.

Ja, aber diesmal war ich es ja.

Diesmal bin ich ja schuld, wenigstens.

Ja, du, das war wieder was Neues.

Ja.

Also, wenn man ein Echo hört, ist Johannes schuld.

Ja, weil wenn man viele Kanäle hat und viele Rechner und viele Personen, dann hat man irgendwie

eine kombinatorische Explosion von vieler Quellen und das, dann treten halt auch immer

mal wieder neue, lustige Sachen auf.

So ist es halt.

Du könntest vielleicht ein Echo.

Das ist ja fast schon die Überleitung zur Softwareentwicklung, Jochen.

Ja, klar.

Du könntest auch so ein Federhall-Modul da reinbauen, dass das auch so wirklich so nach

Ja.

Ja.

Da kann man dann unterscheiden.

Können wir auch.

Wir können auch noch ein paar hinzufügen.

Das geht.

Das ist immer.

Trick nicht, Jochen.

Tiss nicht.

Ja.

Genau.

Also, richtig.

Ah, der News.

News, genau.

Es ist für mich tatsächlich einiges passiert.

Es ist halt immer die Frage, letztes Mal, die News sind so ein bisschen legal.

Seit über zwei Monaten.

Aber tatsächlich.

Ja, aber News haben doch die Eigenschaft, dass sie neu sind.

Also kannst du nichts von.

Es bezieht sich nur auf die letzten zwei Wochen.

Ja, genau.

Also, so ganz uralte Sachen.

Werd ich jetzt auch nicht nehmen.

Aber ich denke, es gibt so ein paar Sachen, die sollte man vielleicht schon mal erwähnt

haben.

Also, zum Beispiel, ich weiß nicht, Tailwind 4 ist raus.

Ja.

Ja.

Genau.

Das ist vielleicht ein.

Das ist super.

Ja.

Ja.

Also, ich wollte jetzt keine.

Ach so, okay.

Von Tailwind.

Ich sag's jetzt ganz einfach.

Ich bin kein Freund von Tailwind.

Ja, du machst auch.

Was war das?

Als CSS.

Ich wollte jetzt nichts sagen.

Ein semantisches CSS.

Sogenanntes semantisches CSS.

Ach, das machst du auch.

Ich verstehe den Vorteil von Tailwind nicht.

Wobei.

Ja.

Wo man eine CSS-Deklaration von Color Red durch eine Klasse Color Red ersetzt.

Dafür brauche ich kein CSS.

Der ist der Vorteil.

Das bringt überhaupt gar nichts.

Doch.

Also, ich meine, der Vorteil ist natürlich schon irgendwie, dass du, du kannst halt irgendwie

ins Internet gehen.

So, wenn man so alt ist wie wir, mit einer Krücke und dann einfach per Copy und Paste

irgendwelche Sachen in dein eigenes HTML pasten und es funktioniert einfach so.

Das ist der Vorteil.

Aber es ist nicht besser als Inline-Styles.

Ja, doch.

Ja, doch.

Die ganzen Vorteile von CSS sind weg.

Nach.

Nach.

Nach Cascading hast, dass du sie ändern kannst, dass du sie semantisch benennst, dass du sie

nicht wissen musst, was der Style ist, was der bedeutet.

Das ist alles weg.

Aber ich habe so eine schöne Utility-Sicht auf kleine Komponenten, die lesbar sind, die

genau das machen, was sie sollen.

Und das ist viel, viel hübscher als Inline-Styles.

Nee, ist genau das Gleiche.

Nee, ist das gar nicht.

Inline-Styles sind total.

Wir driften schon wieder ab.

Wir driften schon wieder.

Ja, ja.

Ich starte hiermit eine Umfrage unter den Zugang.

Zuhören, ob sie wissen wollen, was wir von Tailwind halten.

Und dann machen wir eine erste.

Wollen wir das nicht dann machen, wenn wir mit dem Frontend-Podcast, den wir irgendwann

mal treffen wollten, das gemeinsam tun?

Ja, das können wir auch gerne machen.

Das hätte wahrscheinlich höhere Chancen.

Das ist ja gut.

Dann sollen die sich mal erklären.

Da wird die Wahrscheinlichkeit auch größer, dass das dann tatsächlich irgendwie um die

Bioktellerand herum passiert.

Da war es ja was mit Tailwind CSS.

Ja.

Genau.

Aber ja.

Also ich bin auch eher momentan auf der semantischen CSS-Seite unterwegs.

Ja.

Aber genau.

Vielleicht können wir da auch gleich nochmal.

Ja, okay.

Aber es ist auf jeden Fall da.

Und das macht einige Dinge besser.

Okay.

Was haben wir noch?

Wir hatten noch.

Ah, genau.

Was halt, wo ich finde, das muss man halt schon mal irgendwie erwähnen.

Und ich höre das auch mal in anderen Podcasts.

Und ich höre da immer so viel Mist.

Da dachte ich, na gut, da muss man auch mal was zu sagen, dass das irgendwie, was da wirklich

passiert ist.

Irgendwie DeepSeek zum Beispiel ist irgendwie.

Sprachmodelle, ja.

Ja.

NLMs.

Was ist das denn, Joch?

Was ist denn DeepSeek?

Ja.

Das ist halt irgendwie so ein Modell.

Oder Gewichte sind herausgefallen aus einem chinesischen.

Die haben die alle selber generiert.

Hitschfond.

Gewichte, ja.

Wahrscheinlich.

Aber genau.

Und zwar sehr lustig irgendwie.

Also das Foundation-Model ist halt, haben sie veröffentlicht am 24.

Dezember 2024.

Ein Weihnachtsgeschenk.

Ja.

Und zwar völlig kommentarlos.

Und das hat tatsächlich relativ viel Aufsehen erregt, weil es halt schon, es ist ein sehr,

sehr guter Modell.

Es ist ein sehr, sehr guter Modell.

Das muss man sagen.

Also wirklich, wirklich gut.

Und es war auch sehr billig.

Und es ist schnell.

Ja, aber da, da, genau.

Da würde ich dann halt eher, eher so mal nochmal, also, weil das hört man immer.

Aber da, oder ich weiß nicht, wie, wie, wie, oder wo ist die Quelle dafür, dass das besonders

billig ist?

Ja, DeepSeek selber.

Die haben diese.

Ja, ja.

Die haben gesagt, es ist nur 5 Millionen dabei.

Ja, ja.

Ja gut.

Aber ich meine, die haben natürlich unter Umständen auch eine gewisse Motivation zu

sagen, was sie sagen.

Insofern.

Die haben die falschen, geklauten Sachen.

Die haben die falschen geklaut.

Das ist ja wöchentlich.

Ja, das fand ich ja das Allerlustigste, dass sich dann OpenAI darüber aufgeregt hat, dass

sie das, dass sie die Modelle verändert haben.

Ja.

Da hat jemand Daten genommen, die ihm nicht zugestanden sind.

Ah, das ist zum ersten Mal in der Geschichte von LLMs passiert.

Ja, das ist, das ist lustig, ne?

Also irgendwie, dass das OpenAI macht, ist ja im Grunde irgendwie so dicke Bücher nehmen,

so wie Fluent Python oder sowas.

Das runterdestillieren in ein Modell.

Ohne Lizenz.

Modellgewichte destillieren und jetzt beschweren sie sich darüber, dass jemand anderes ihre

Modellgewichte genommen hat und die destilliert hat.

Ja.

Ja.

Ja.

Ja.

Ein anderes Modell.

Geht gar nicht.

Das geht natürlich auch gar nicht.

Also als Dieb bei einem anderen Dieb klauen geht halt einfach nicht.

Ja.

Keine Ehre mehr.

Keine Ehre unter Verbrechern.

Ja.

Wobei man jetzt sagen muss, also diese, diese, diesen Zungenschlag finde ich auch immer komisch,

wenn man jetzt sagt, das ist irgendwie alles geklaut.

Ich mir denke so, ja, aber irgendwie, wie kann man das dann damit, also ich, also ich

finde, man muss sich entscheiden.

Also entweder man fand diese Coffee-Rite-Geschichte ja schon immer irgendwie scheiße.

Also so fand ich schon immer Kacke.

Ja.

Ja.

Ja.

Ja.

Ja.

Ja.

Ja.

Ja.

Ja.

Ja.

Ja.

Ja.

ist einfach totaler Müll, ja, also

was zur Hölle? Und

ja, also Informationen will halt

irgendwie frei sein und irgendwie jeder soll

sich auf den Quellen irgendwie unabhängig

informieren können, ja, das sollte eigentlich schon

gehen. Es gab doch mal diese T-Shirts,

das ist das Swat-Thing, you wouldn't understand.

Ja.

You wouldn't download a car.

Jetzt ging es um

die J-Store.

Ach, die Geschichte, ja, mit

Aaron Schwartz, ja, das ist halt...

Ja, aber auch vorher schon mit Pirate Bay und mit

Filmen runterladen und Musik runterladen

und so weiter, ja klar.

Johann, das, also

für mich erklärt sich das durch,

ich bin auch so ein, ja, ich bin auch so ein,

Information muss frei sein und wenn man eine offene Lizenz

dran machen kann, umso besser.

Und ich kenne auch einige Leute aus der Szene und das

ist generell so. Ja, aber ich meine,

das macht man ja nur deswegen,

weil es ein Ball, irgendwie die Welt

so verrückt ist, ja, und das ist ja nicht deswegen, weil man Lizenzen

so geil findet.

Ja, aber Lizenzen sind doch...

Aber das Problem

ist doch, oder das

Schöne, das Ironische an der Sache ist doch,

dass es ja eigentlich die multinationalen

Konzerne sind, die sich immer für

Copyright regeln und je drakonischer,

desto besser ausgesprochen haben.

Und jetzt machen sie genau das Gleiche.

Ja, weil sie entdeckt haben, dass ihr

Geschäftsmodell daran hängt, dass man damit Geld verdienen kann.

Das ist so ein bisschen das Open-Source-Problem, ne?

Ich meine, tolle Sachen machen und die für alle veröffentlichen

und aber dann dafür nicht bezahlt werden,

können sich halt nur Leute leisten, die eigentlich

eh schon guten Nuxubüsen privilegiert

sind.

Ja,

also ich finde halt, was mir halt

nicht gefällt, ist, dass diese

Argumentation aus der Ecke immer inkonsistent ist.

Das gefällt mir einfach ästhetisch nicht. Ich weiß jetzt nicht,

ob es auch ethisch schlimm ist, aber ästhetisch

finde ich, geht das nicht, weil man kann

nicht auf der einen Seite sagen,

irgendwie man soll sich,

man darf sich halt aus

freizugehörigen Fällen informieren können

und dann auf der anderen Seite sagen, ja, aber du darfst jetzt

meine

Daten nicht benutzen, um dein Modell zu trainieren.

Das ist einfach ein Widerspruch, das geht nicht.

Und vor allen Dingen,

mit der gleichen Argumentation könntest du auch Google

verbieten, seine Webseiten zu indizieren.

Ja, kann man versuchen,

aber das ist ja aus meiner Sicht, das ist ja offensichtlich

absurd, ja.

Ja, aber die Zeitungen?

Ja, gut, das machen Leute ja auch, das kann man auch

tun, also wenn ich jetzt hingehe und sage, okay,

wenn ich da irgendeinen

LLM-Crawler von so einer

Firma sehe, dann sage ich dem halt, nö,

kriegst du hier nichts, oder was auch Leute ja machen

ist, dass sie dann halt so

quasi so Endlostrom

von sinnlosen Tokens irgendwie

erzeugen, um da Rechenzeit zu verbrennen, auf der

anderen Seite. Und möglichst langsam.

Dass der wirklich lange da festhängt.

Die moderne Variante der

guten alten Teergrube.

Ja, aber...

Das ist halt so ein bisschen die Frage, ne?

Es gibt ja, vielleicht der frühe Urheberrecht

sagen so, ja, da kommt jemand in meinen Laden

rein, macht überall Fotos und

nimmt alles mit nach draußen und das ist eigentlich

meins und dass der meinen Laden betreten hat,

der ist ja einfach durch die Tür gegangen.

Ich würde eher sagen, das ist sowas wie, da

stellt sich jemand auf den Marktplatz und schreit,

irgendwie so laut, wie er kann, allen Leuten

ins Gesicht, was er da macht und dann

hat das halt jemand gehört. Genau.

Und ja, das ist der Punkt.

Da kannst du mit dem Urheberrecht halt nichts machen, denke ich.

Ja, genau. Das ist der entscheidende Unterschied.

Das Urheberrecht schützt ja die drei Vs irgendwie so

für vielfältigen Verändern, Verbreiten,

aber nichts davon ist betroffen, wenn ich

jetzt halt irgendwie den Text von irgendeiner

Wesserte nehme und dann ein Modell drauf trainiere.

Ja, also die Frage ist halt, was zum Beispiel mit

wissenschaftlichen Veröffentlichungen ist, sind die schon

allgemein recht oder nicht?

Nein, aber

aber

wenn ich jetzt die lese, also

nochmal, also ich meine im Grunde dein

neuronales Netz und Gehirn ist ja auch sowas.

Ja, du dürftest das ja, also durch

Lesen kann man keine Urheberrechtsverletzung begehen.

Aus meiner, in meinem

Verständnis halt. Das geht einfach. Oh Jochen, jetzt hast du

aber eine schlimme Dose aufgemacht, weil jetzt

die Rechteinhaber drauf, dass wenn du das in dein

Gehirn einliest, hast du es

vervielfältigt.

Ja, aber das ist ja offensichtlich

absurd. Das kann man doch nicht vertreten,

sowas. Und was mich ärgert, ist halt,

dass Leute quasi auch so

Leute, von denen ich dachte, dass es meine

Freunde wären, jetzt online irgendwie

offenbar diese

Ansicht vertreten, dass halt irgendwie

Dinge lesen eine Urheberrechtsverletzung

ist, was totaler Quatsch ist.

Das ärgert mich immer so ein bisschen.

Das ist zwar eine schöne Unterhaltung,

aber ich habe das Gefühl, wir driften schon wie

so ein kleines bisschen ab.

Ist das in diesem Podcast schon mal vorgekommen?

Nein, aus einer anderen Weise.

Ich glaube, in Episode 3 ist es mal vorgekommen.

Ja, ist das echt?

Gut, dann ist ja nicht so schlimm, wenn das nicht so ist.

Ist es trotzdem interessant.

Ja, aber genau.

Also ich finde es halt,

ja klar, natürlich ist es irgendwie absurd, wenn sich

jetzt OpenAI über DeepSync beschwert.

Also ich glaube, die Frage ist, natürlich hat jeder Konzern

Interesse daran, so viel Geld wie möglich zu verdienen mit

irgendwas, was er denkt, was er kontrollieren kann. Was aber

die andere Seite der Medaille ist, ist,

ob es ein öffentliches Interesse gibt an so etwas

wie einem allgemein verfügbaren Sprachmodell.

Einfach weil diese, ich sag mal, Schöpfungshöhe

von diesen Dingern doch schon so massiv ist

und die so einen, also für mich

Value bereitstellen können.

Also die Schöpfungshöhe sogar.

Aber Jochen, die viel wichtigere

Frage ist doch, ist das Modell wirklich besser

und billiger? Nein, es ist gut.

Also genau. Hast du es denn ausprobiert?

Ja, also naja,

ich habe es momentan

nicht geschafft. Mit meiner Hardware kriege ich es

nicht hin, gerade so.

Aber es gibt ja AP-Zugang. Ja, genau.

Da habe ich es natürlich schon ausprobiert.

Und das ist tatsächlich gut, ja. Ja, ist das okay.

Und die

Empfehlung, die ich gehört habe, die ja auch den

Aktienmarkt

irritiert hat, um es mal so zu sagen,

ist ja, dass man sich keine

Grafikkarte kaufen soll, sondern lieber AMD-Prozessoren.

Was natürlich eine sehr schöne

Ironie ist.

Die AMD-Prozessoren sind, die man

sich kaufen soll.

Ja, die AMD-Prozessoren, gut.

Ja, also natürlich Hauptspeicher ist

für die Dinger, wenn du die halt komplett laufen

hast, brauchst du halt viel Hauptspeicher.

Und auf einem

ordentlichen, also ich habe so verschiedene Artikel

gesehen, wo sich die Leute Rechner zusammenbauen,

zwischen 2.000 und 6.000 Dollar.

Was ja nicht viel ist für so ein System.

Und dann kriegst du irgendwo zwischen 3 und 5 Token pro Sekunde.

Was auch nicht viel ist.

Aber

auch nicht schlecht.

Du kannst das Ding wohl,

also das Original

Ding kriegst du

mit ein bisschen Trickserei und

Quantisierung kriegst du das, glaube ich, auf einem

Mac-Studio mit 192 GB RAM

zum Laufen. Und da kriegst du

mehr als 4 bis 5 Tokens pro Sekunde.

Da kriegst du halt ordentlich.

Das liegt ja daran, dass die Macs so eine spezielle

Speicherarchitektur haben, die kannst du ja auch GPU benutzen.

Aber, also ich meine, das Problem ist doch,

dass du den Macs nur bis 192 GB

kaufen kannst.

Ja, das ist auch eine halbe Zahl.

Und das ist irgendwie eine Verzillade kostet.

Ja, genau.

Exponentialkurve und SD-Karte

kriegst du für einen Terabyte, kriegst du für einen Apple-9.

Genau. Und

so ein AMD-Prozessor mit

vier

Prozessorsockeln

drin, da kannst du ja einen Terabyte-Speicher

reintun für den gleichen Preis.

Und da hast du dann gewisse

Limitationen einfach nicht mehr.

Ja, das ist schon richtig. Ich habe auch heute

gesehen auf einem Postgres-Newsletter

so, was machen wir jetzt eigentlich mit den Monster-Rechnern,

die wir bauen können? Da hatte jemand auch so, es gibt

irgendwie diese Epic-AMD-Dinger,

da hast du halt irgendwie 768

Threads irgendwie auf zwei Sockeln

und 10 Terabyte Hauptprecher

für gar nicht mehr so wahnsinnig viel Geld.

Und das ist wirklich absurd,

was da gerade geht.

Aber ja.

Ach ja.

Aber manche Leute brauchen das halt.

Es ist doch schön, dass es das gibt.

Ja.

Es ist doch schön, dass das geht.

Genau. Also nee, das Ding ist gut.

Aber jetzt diese ganzen Gerüchte, die da so im Umlauf

sind, also einmal,

ich würde sagen, dass das jetzt billiger

ist oder so, das sagt jetzt irgendwie diebsig,

aber ich kann das nicht

unabhängig, also ich habe nichts gesehen, wo ich

sagen würde, da hat das jemand unabhängig überprüft.

Wenn die Leute fragen, die sich auskennen, sagen die,

das liegt genau auf den Scaling-Kurven drauf.

Das ist überhaupt kein Stück billiger

als irgendwas anderes.

Das sind auch sicherlich

die geschönte Zahlen.

Das kann ein Teil sein, dass du sagst,

die Zahl ist richtig,

aber wenn man sich anguckt,

womit würde man rechnen,

wie viel man ausgeben muss jetzt sozusagen,

dann liegt das genau

da drauf. Das ist nicht irgendwie billiger.

Ja, okay.

Anthropic hat tatsächlich

Zahlen dazu veröffentlicht,

also der Chef von Anthropic,

Dario Amodei oder so,

der hat auch tatsächlich veröffentlicht,

wie viel es gekostet hat.

Sonnet 3.5, glaube ich,

zu trainieren

in einem Blogpost, um halt

klarzumachen, ja, das ist nicht billiger.

Also das jetzt ist nicht billiger gewesen

als das, was sie gemacht haben.

Sie haben irgendwie 35 Millionen bezahlt,

aber der Witz ist halt, das war irgendwie

zehn Monate her oder so und in der Zeit

sind die Preise eben so gefallen,

dass es jetzt halt billiger ist.

Eine schöne Ironie

finde ich an der ganzen

Geschichte, dass diese

Firma DeepSeek sehr viel Engineering

da reingesteckt hat, um die,

billigere Hardware,

weil sie die nicht importieren dürfen.

Weil die Amerikaner gesagt haben,

das geht nicht, dass man da solche Dinge betreibt

und deshalb dürfen die das nicht und deshalb können die nicht.

Und dann haben sie gesagt, wir machen es trotzdem

und das hat geklappt. Und es ist auch keine Überraschung

für jemanden, der sich da fünf Minuten damit

beschäftigt. Ja, also es gibt da diesen

Technical Report, den sie da veröffentlicht haben

und da sind einige wirklich gute Tricks dabei und so.

Also das ist wirklich solides

Engineering, also kann man sich

nicht beschränken. Einfach um die

Exportbeschränkung rum. Top.

Alle.

Erste Klasse.

Ja, aber jetzt, genau,

also das erste Modell, das wir veröffentlicht haben,

also das war sozusagen halt

in der Fachwelt,

sag ich mal, durchaus sehr viel

Aufmerksamkeit erregt und

da war dann nach ein paar Wochen auch klar,

das ist wirklich, wirklich gut, das Modell.

Und dann kam ja jetzt irgendwann

so Ende,

Mitte bis Ende Januar, ich weiß gar nicht mehr wann,

kam halt irgendwie

R1, wo sie dann so ein Marketing

Bus drum gemacht haben.

Das ist aber wirklich,

also das ist jetzt keine Kunst,

also von einem guten Foundation-Modell

Ein guter Marketing-Bus machen ist schon

eine schöne Sache.

Aber das Modell war jetzt kein, das Modell selber war nicht,

das war nicht aufsehenderregend eigentlich.

Aber

das Marketing schon,

also sie wussten halt, okay,

irgendwie, wir haben ein Modell,

das nicht gut ist und jetzt

haben sie halt dann draußen halt

eine Geschichte gemacht, die halt dann auch irgendwie durch

alle Nachrichten gegangen ist und

Nvidia hat irgendwie so und so

viele Milliarden an Aktienwert verloren.

Also ja, man könnte natürlich jetzt vermuten, dass

irgendjemand, möglicherweise,

dass er ein bisschen

reingedreht hat oder viel Geld verdient hat.

Wer denn? Ja, ich weiß auch nicht.

Ich würde jetzt erwarten, es könnte irgendwie so ein Hedgefonds sein,

zum Beispiel. Weiß nicht.

Aber shorten die irgendwelche?

Ja, was machen die da?

Was machen die?

Das klingt so riskant.

Nein.

Also ich weiß es nicht.

Auf jeden Fall ist das natürlich schon so ein bisschen,

ein bisschen verdächtig und

ja, auch wenn man

auch da wieder, wenn man Leute fragt,

die haben die Ausgangsweise, die so, warum

fällt eigentlich der Nvidia-Aktienkurs?

Also ich meine, klar, natürlich, es ist eine Blase.

Ja, das ist auch, muss auch irgendwie

Was? Du hast doch nicht ernsthaft

angenommen, dass das da irgendeinen Fundamentaldaten

Zusammenhang gäbe.

Ja, natürlich nicht. Also insofern,

dass das eine Blase ist, ist schon richtig

und dass man dadurch natürlich irgendwie

dann eine Chance sieht, da irgendwie Luft auf dieser Blase zu lassen,

okay. Ja, das ist ja auch irgendwie,

ein wenig überraschend, aber tatsächlich

der Bedarf an Compute,

wenn man jetzt quasi

aus dieser ganzen Geschichte mitnimmt,

es ist einfacher, als wir dachten, irgendwie solche Modelle

zu bauen und es ist

irgendwie einfacher, sie zu betreiben, es ist einfacher, sie zu

trainieren und

dann ist die Konsequenz

eigentlich nicht, wir brauchen

weniger, also

wir verkaufen jetzt

weniger Chips, sondern die Konsequenz ist

natürlich, wenn man jetzt das aus so einer ökonomischen

Perspektive betrachtet, dann werden

natürlich viel mehr Chips verkauft.

Ja, aber von wem, Jochen, das ist doch

die Frage. Die müssen jetzt nicht mehr unbedingt die teuren

von Nvidia sein.

Ja, weiß ich nicht,

aber für Nvidia ist das auf jeden Fall auch gut.

Also sagen wir mal so, aus ökonomischer Sicht macht das keinen Sinn,

dass der Aktienkurs von Nvidia

fällt, wenn

irgendwie man jetzt sieht, dass man mit

Computer, dass man mit halt

irgendwie Chips mehr machen kann. Aber Jochen, du glaubst doch nicht, dass

das Rauschen eines Wahls irgendwas mit

ökonomischen Ratio zu tun hätte?

Nee,

natürlich nicht.

Hast du welche gekauft, Jochen? Hast du Nvidia gekauft?

Ah!

Hast du die getauscht?

Ich kann nicht genug Marketing-Buzz generieren, um da irgendwas

Nee, keine

Diese Podcast-Episode, die

Keine Aktienempfehlungen von

Podcastern bitte irgendwie

Nee, ich

hab da nichts gekauft und nichts verkauft,

das ist auch vielleicht doof, ja, also das müsste man

vielleicht eigentlich machen. Ja, bei den Steuern, die man jetzt zahlen muss,

ja.

Ja, aber also

genau, also irgendwie

Also

du glaubst nicht, dass Nvidia mehr wert ist, als

die gesamte deutsche Wirtschaft zusammen?

Ja, finde ich irgendwie komisch.

Glaubst du nicht?

Nee.

Ja, ich glaub's auch nicht.

Ja, aber interessanter Weg jetzt aus

diesem Wissen irgendwie Geld zu machen, das hat

Diebsig irgendwie geschafft und

ja, ich meine, das haben sie wirklich gut gemacht.

Also man muss mal anerkennend sagen, ist irgendwie

eine... Und ich hab... Ah, und dann hat jemand auf

Mastodon oder so, hat jemand eine ganz interessante

Geschichte gepostet und das fand ich auch

total super. Er meinte so, okay,

also Diebsig hat das ja ganz gut

gemacht. Lass mal überlegen,

gibt's vielleicht noch irgendwelche anderen

Firmen, die halt auch total

überbewertet sind oder wo es eine Blase

ist? Nein. Und man vielleicht sowas

ähnliches machen könnte? Zum Beispiel,

was ja auch immer so ein Problem ist, hatten wir

gerade schon von Open Source,

schwer, schwer ein Geschäft

zu... Also wie kann man damit Geld verdienen?

Hm, vielleicht so. Also wenn man sich jetzt

sowas überlegt wie SAP

verdient einen Haufen Geld für

ja, was eigentlich genau, ist ein bisschen

unklar, aber irgendwie so

wirklich... Ja, ich mein, okay,

das ist jetzt grob vereinfacht. Ich hab ehrlich gesagt

keine Ahnung von SAP, aber ich würd sagen, das ist halt eine

relationelle Datenbank und ein bisschen Frontend drumrum.

Ja, aber so viel mehr ist da nicht. Und vieles

davon ist wahrscheinlich auch gar nicht so gut.

Und wie wäre es denn,

wenn jetzt ein Hedgefonds hingehen würde

und würde mich dafür bezahlen,

doch mal sowas zu

bauen, was ich... Nicht spezifisch, okay.

Ja, eigentlich ein Trick an der Geschichte.

Ja.

Oder sonst irgendwen.

Keine Ahnung.

Keine Ahnung, was ich dafür bezahlen muss, wie gesagt.

Würde jemand für dich gut bezahlen.

Das halt in Open Source nachzubauen.

Und dann Weihnachten 2025

wirft man halt das Ding irgendwie raus.

Ja, sagt er aber vorher.

Natürlich müsste man irgendwie so ein paar Leerverkäufe machen,

so Tättingen, und dann

hier so SAP-Kunden, ihr habt den Ding,

das macht ihr auch gleich und ihr müsst die ganzen Lizenzgebühren

nicht bezahlen. Das Problem

ist halt, dass das so krasse meistens

an die ganzen Schnittstellen...

Dominik, du und deine Realität.

Ja, okay. Also ich... Ja, natürlich.

Lass mir von deiner Realität nicht die Wirklichkeit

verderben. So einfach ist es wahrscheinlich

natürlich nicht alles, klar.

Aber also...

Ich glaube, der einzige Verkaufsfaktor ist,

dass die ganzen...

Was sind das?

Der ganzen Matrix-Konzerne

von Finance, VHA,

oder was auch immer, alle ihr eigenes Modul

haben, um ihre Kostenrechnung

ganz wundervoll

auf irgendwelchen Charts ausgeben zu lassen.

Ja, und es hat nur wenige

Millionen gekostet. Genau.

Ja.

Okay.

Ja, mighty.

Nochmal zurück zum Thema News. Das kann man aber schon

nachbauen.

Glaube ich. Ja, ich glaube auch.

Hast du Lust?

Es gibt einen Grund, warum du

da nicht viel mit zu tun haben willst.

Ja, klar. Es ist halt auch irgendwie langweilig, aber...

Der Jochen hat halt noch nicht die richtigen Investoren

gefunden. Genau. Ich meine, natürlich Langeweile...

35 Millionen geben dafür.

Das geht besser, wenn

man sich das Glas Wasser dann

irgendwie in einem goldenen Wasserhahn

holt. Das macht dann...

Ich weiß es nicht. Keine Ahnung.

Ich...

Ja, aber ich fand die Idee auf jeden Fall interessant.

Und dann dachte ich so, ach, das musste man ja

machen hier.

Ja. Genau. News.

Das war diese Liebste-Geschichte.

Also ja, es ist interessant.

Insgesamt ist es natürlich auch eine tolle

Geschichte, dass das halt irgendwie...

Also ich meine, ich glaube,

diese Vorhersage von Jan Lekun,

der

jetzt bei Meta

Dinge macht oder so, dass er sagt, auf lange Sicht

werden die Open-Source-Geschichten gewinnen, ist richtig.

Jetzt natürlich, wie lieb es dir ist,

das Modell, das ist kein Open-Source.

Das hat alles überhaupt gar nichts mit Open-Source zu tun.

Also in den Medien hört man immer so,

oh, ein Open-Source-Modell. Nein, natürlich nicht.

Alles Quatsch. Ja, Trading-Supply sind nicht Open-Source.

Die Algorithmen, der ganze Kram ist alles nicht Open-Source.

Aber man kann jetzt natürlich dieses

Modell in Open-Source-Software

verwenden. Ja, und man konnte es halt

auch benutzen. Es war halt frei

verfügbar einfach. Also es war nicht nur per Schnittstelle

über so... Keine komische Lizenz, ja.

Also Lama hat ja immer noch diese eigenartige Lizenz.

Du darfst es verwenden. Es sei denn, du bist Google.

Dann nicht. Aber...

Ja, aber das hat mich jetzt noch nie gestört

an der Lama-Lizenz-Vereinbarung.

Bist du nicht Google? Da bin ich weit davon

entfernt von den 700

Millionen-Maus.

Ja.

Genau. Wie auch immer.

Ja, wie auch immer. Genau, das...

Ja, das war so die eine Geschichte.

Oh ja, dann, also überhaupt,

ich meine, das wird jetzt...

Es gibt da noch so ein paar

Geschichten. Also OpenAI

verliert irgendwie beständig Leute.

Also,

das ist auch irgendwie etwas, was ich irgendwie

interessant finde.

Also irgendwie...

Also Sam Altman...

Also, ich meine...

Sam Altman verloren?

Nein, nein.

Fast.

Er hat doch mal Glück gehabt, dass das nicht passiert ist.

Ja, fast. Er hat einen Elonist auch gekriegt.

Ja.

Also,

ja, also Alec Redford ist jetzt auch weg.

Und

die Leute, also es haben schon mal...

Also die ersten, also

die Leute, die Anthropic gegründet haben,

oder halt Dario,

hat halt irgendwie versucht...

Die waren doch auch...

Die kommen doch auch von OpenAI.

Ja, die kommen auch alle von OpenAI.

Das sind die Leute, die Chachapity ursprünglich mal gebaut haben.

Und die haben aber auch schon mal versucht,

Sam Altman feuern zu lassen.

Das hat nicht geklappt, dann mussten sie alle gehen.

Und, ja, dann haben das

nochmal wieder Leute versucht.

Das hat auch wieder nicht geklappt, dann mussten sie alle gehen.

Und es gehen immer noch irgendwie Leute.

Ist ein Modell, kann man machen.

Ja.

Ja.

Was ich gut finde, ist halt, dass es wirklich irgendwie

ganz ordentlichen Wettbewerb gibt.

Also, ich muss auch sagen,

die Anthropic-Geschichten zum Programmieren,

finde ich, ist so nicht so das beste Modell

momentan.

Und, ja, es funktioniert alles super.

Genau, dann aber auch interessant,

die neuen

OpenAI-Modelle

OO3 oder so,

da gab es große Erfolge

bei irgendwie

AGI und

Frontier-Math-Benchmarks

und so. Also, das ist schon...

Ja, also, ich glaube, der Trick ist halt

tatsächlich, dass man das so

verknüpft mit so einer Art persistenter Datenbank,

auf die das

zugreifen kann, das Ding.

Persistenter Datenbank?

Ja. Also, keine Ahnung, so ein

Sprachmodell darf bei dir auf die Datenbank zugreifen

und sich daran erinnern, was das in der letzten oder vorletzten

Session da abgelegt hat.

Und so eine Transaktion da machen

und von da weitermachen.

Also, das ist quasi das,

was Consciousness gesatied werden kann,

was es da hat. Und die Frage, was halt dann

Consciousness dann heißt und was davon

Memory ist und was

an Prozessen

drumherum notwendig ist,

um das zu einem Consciousness zu machen.

Also, sowas wie Reasoning

über Zusammenhänge, die man hat oder

Neubilden von Informationen anhand der

Informationen, die man dann schon gespeichert hat.

Außer einem, ich sag mal, Dialoggespräch.

Und ich würde sagen, jedes Dialoggespräch ist eine eigene

Entität. Das ist so ein bisschen

wie

ähm,

wenn man mit sich selber einen inneren Dialog hält.

Ja, gut.

Die Anfänge von so einer Subjekt-Objekt-Beziehung.

Und ich finde, das geht schon sehr in die Richtung,

wo man was draus bauen kann.

Und so eine Initialzündung von...

Okay, ich finde, das sind so zwei Aspekte.

Also, der eine wäre sowas wie dieses

Model-Context-Protokoll von Anthropic,

wo du halt sozusagen dem Modell

irgendwie Dinge geben kannst.

Oder halt, du kannst ihm auch Zugriff auf deinen Rechner geben

oder was auch immer. Und auf deine Daten.

Du kannst eine Datenbank anbinden.

Mhm.

Das ist halt nicht immer dieses

Retrieval-Augmented-Generation machen musst,

sondern dass du halt dem Modell sagen kannst,

also hier ist eine Datenbank, die kannst du fragen

und hier ist irgendwie sonst was.

Okay, gut, aber die Spiele-Fälle sind ja überhaupt

das Rack machst oder nicht.

Ja.

Ja, genau. Also macht

inhaltlich keinen großen Unterschied. Das andere,

diese Reasoning-Modelle,

das ist halt irgendwie, das ist halt

so eine Kombination von irgendwie

dem, ja,

Token generieren, was halt,

alle Modelle da irgendwie machen.

Das musst du aber erklären, was du damit meinst?

Naja, dass du halt einfach

Next-Token-Prediction machst.

Das machen wir alle. Aber

der Unterschied jetzt zu den Reasoning-Modellen ist halt,

dass man jetzt sagt, okay, man

generiert

out,

generiert halt so Chains of Thought

und zwar jede Menge und wählt dann halt

die, die irgendwie in sich konsistent aussehen

aus, als das könnte die Antwort sein.

Ja. Das heißt, man kombiniert irgendwie

so eine Art Suche, also

irgendwas, wie wir im Schach irgendwie

mal halt auch Varianten suchen.

Jetzt sind wir nämlich in einem Graph drin und diese Graphen haben

quasi ja auch States, die irgendwas

machen und jetzt kann man vielleicht

hingehen und kann das

kuratiert hardcoden

in verschiedenen Szenarien, das nicht

durch das LLM machen lassen, sondern so verschiedene

kuratierte Szenarien vorgeben,

die ein State sind und zwischen denen man

sich hin und her bewegen kann und

dann kommt man wieder auf

noch einen Schritt weiter.

Ja, keine Ahnung. Also ich würde sagen, man kann jetzt,

halt irgendwie traden zwischen,

sich jetzt überlegen, wo

man die, wo man Computer

ausgeben möchte, zu Inference-Time oder

bei Trainingszeit und

für ein optimales Ergebnis muss man halt irgendwie

wahrscheinlich ein bisschen mehr

Computer in Inference-Zeit

verlagern und halt ein bisschen mehr Suche

machen. Ja.

Aber dass das so gut funktioniert, ist

halt eine Überraschung. Also das war halt auch nicht klar, dass das geht

und ja,

es macht aber einen riesen Unterschied

und ich meine, der Arc

AG

I Benchmark ist halt komisch benannt,

weil er hat nichts mit AGI zu tun, aber

ja, das ist da,

kriegen Leute auch mal einen falschen Hals.

Und ja,

Frontier Mass ist aber auch, ja, oder

auch super interessant, wie heißt das Ding?

Dieser Coding Benchmark.

Ah, ich hab's vergessen.

Aber das sind auf jeden Fall

irgendwie, sie haben echte Pull-Requests

genommen, gegen Projekte wie zum Beispiel

Django ist da halt auch mit drin, aber halt auch noch

so ein paar andere.

Cycle Learn ist auch drin.

Und haben dann geguckt, wie viele von den

offenen Pull-Requests würde sozusagen

ein LLM halt

lösen.

Und da kommen die guten,

also es gab immer schon spezialisierte Modelle, die

ganz gut abschneiden, aber das ist halt irgendwie,

ja, das ist halt auch nicht so einfach,

die irgendwie laufen zu lassen.

Aber die

normalen LLMs waren halt da nie so

wirklich gut, bis jetzt auch die Reasing-Modelle,

die sind alle auch super. Also die kommen auch schon da auf fast

50% oder sowas.

Und das ist natürlich schon krass. Also irgendwie,

ja.

Das fand ich schon schlecht.

Ja.

Genau.

Oh, dann was wir,

dann haben wir eine Mail gekriegt.

Das reicht auch gerade noch so.

PyCon Austria

ist jetzt irgendwie.

Oh ja, wir sollen das. Und wir sollen das ankündigen.

Das ist am 6. und 7. April

2025.

20.

Hochschule Burgenland in Eisenstadt.

Ja, genau.

Kann man sich mal ansehen.

Was haben wir noch?

Wir müssen mal eine ganze LLM-Folge mal wieder machen.

Ja, ja, ja. Ich habe mir da auch schon so ein paar Sachen

aufgeschrieben. Genau, da brauchen wir halt noch irgendeinen Gast.

Ja, wenn sich da irgendjemand berufen fühlt oder so.

Genau, wir suchen da jemanden.

Oder jemanden kennt.

Den man mal fragen könnte, dann

wäre das wahrscheinlich ganz nett.

Da gibt es auch so viele Tools und Dinge.

Über die man mal reden müsste.

Also gerade dieses ganze Thema

Programmieren mit LLMs finde ich halt sehr interessant.

Ich mache das ja auch viel.

Und ja,

da kann man auch unterschiedliche Arten

tun.

Genau, da kann man auch mal die ganzen Tools

angucken und sowas.

Ich habe noch zwei News-Items, die allerdings in eine ganz

andere Richtung gehen.

Das erste Item

ist, dass Microsoft

bei Nature eine Veröffentlichung

eingereicht hat,

wo sie,

die sagen, sie haben

einen

Quantencomputer mit topologischen

Qubits

erfunden.

Das ist wohl

eine andere Art, Qubits zu machen,

die stabiler ist.

Also da ist sehr viel,

sehr viele

Worte drin, die man sich mal von einem LLM

erklären lassen müsste.

Special kind of

Qubit built using non-abelian

anions, which are excitation

set can exist in a two-dimensional medium.

Würdest du kurz was dazu sagen, bitte, lieber Johannes?

Nee, ich kann da gar nichts dazu sagen.

Was sind denn überhaupt

typologische Quanten?

Keine Ahnung. Es war einfach nur in der Veröffentlichung,

dass es einen Durchbruch gab in dieser Art

Quantencomputer.

Das hat auch einige Bällen erzeugt.

Ja, also Quantencomputer wäre schon voll cool,

aber alle bisherigen

Durchbrüche waren nicht so richtig

Durchbrüche, ehrlich gesagt.

Sind noch nicht so weit gekommen.

Aber es wird Zeit, dass man zu

Postquanten-Kryptografie wechselt.

Ja, das hat auch einen tollen Namen,

dieser Chip, der heißt Majorana.

Majorana. Ja, das

liegt daran, dass das

tatsächlich

irgendein Autor, der

Das hätte jemand zu viel gekifft.

Majorana Zero Modus.

Egal.

Das zweite News-Item ist tatsächlich wesentlich

spezifischer für Python

und ist auch erst zwei Wochen

alt, ungefähr.

Und zwar gibt es

einen PR, der jetzt gerade

durch die Review geht

und da wird ein

Tailcalling-Interpreter

umgesetzt. Ja, das ist cool.

Was das genau ist, spielt auch keine

richtig große Rolle. Tailcall-Optimization

ist so eine Möglichkeit, um

Stackframes zu eliminieren, wenn man weiß,

dass man nicht mehr dahin zurückkehrt.

Das Wichtige daran ist,

9 bis 15 Prozent

Geschwindigkeitsimprovement.

Das ist schon,

Das ist schon massiv.

John Haberman war das, oder Josh Haberman?

Ken Jin

war das.

Und es ist

jetzt schon gemerged und

wird in 3.14 veröffentlicht.

Noch nicht in den Default-Sachen.

Also man muss das

beim Konfigurieren, beim Compilen

gibt es dann einen Schalter, den man

Und das funktioniert irgendwie auch nur bei

neuen Compilern. Das ist auch leider der Grund, warum sie es

nicht per Default

anmachen, weil du brauchst halt

neue Compilern.

Bei LLVM.

Weil der C-Standard, in dem C-Standard

gibt es so Sachen, die das nicht

können.

Der C-Standard, der braucht

immer Register bei so einem

Funktionsaufruf und

deshalb wurde das auf Ebene von der LLVM

IL, also diese

Intermediate Representation gemacht.

Und da kann man das nämlich wegeliminieren.

Da gibt es so ein Flag, das heißt Must Tail.

Das sind alles

technische Details. Das Interessante ist, dass da

wirklich einfach,

mit einer neuen Umsetzung einfach

10%, 10, 15% mehr

Performance rauskommen. Und das ist schon

fantastisch.

Ja, voll gut. Stimmt.

Ja, ansonsten,

genau.

Habe ich jetzt, glaube ich, gar nicht. Ich muss mir nur scrollen,

dass du viel zeugst.

Das Alter ist

schon vorbei. Ist nicht mehr nötig.

Ja, also wir haben auch, das sollte

vielleicht auch einfach was zu sagen.

Wir hatten mal aufgerufen,

ob Leute

sich melden könnten, die Interesse daran haben,

irgendwie so ein Hörertreffen mal zu suchen.

Und da gab es relativ viel Feedback tatsächlich.

Und da so, sagen wir mal so,

ausreichend genug, dass wir jetzt wohl tatsächlich

ernsthaft ins Auge fassen müssen.

Keine Ausrede mehr.

Ja, aber es ist ja leider nicht in Süddeutschland.

Es ist eigentlich auch egal, ob man das macht.

Du kommst einfach mit, Johannes.

Du hast eingeflogen.

Wir können ja mal gucken. Also ich würde denken,

dass es gut wäre, das irgendwann zu machen, wenn es

ein bisschen wärmer ist, dass man auch irgendwo draus gehen kann,

wo es irgendwie schön ist.

So Mai, Jun.

Irgendwie so, genau, genau.

Und dann

brauchen wir noch eine Location

irgendwie und dann müssen wir den Johannes irgendwie

von Heim.

Also ich würde eher so Erwachsenenzeit

irgendwie so mittags anfangen.

Ah, okay.

Dieser hat Erwachsenenzeit.

Ja, und dann kann man sich doch

irgendwie ein schönes, was Grünes raussuchen, oder?

Muss ja nicht jetzt so...

Ja.

Klingt voll gut.

Ja, aber...

Und wir können auch schon mal sagen, es wird wahrscheinlich eher so

Rheinland, das heißt Köln-Düsseldorf.

Ah, Düsseldorf.

Kleiner Spoiler.

Ja, okay.

Ja, aber es waren viele Leute, die hier sagten, die kommen hier von Rheinland.

Deswegen machen wir das einfach hier.

Ja.

Genau.

Ja, also aber dann, das waren dann auch schon alle News,

die ich so hatte, glaube ich.

Ja.

Ja, einiges.

Wolltest du nicht noch irgendwas erzählen von der

Forstkontakt?

Ach, Forstem. Ja, genau.

Ja, könnte ich.

Genau, auch.

Ja, und...

Ja, warte, dann mache ich am besten mal eine Kapitelmarke und sage hier mal...

Ja, Peck und Wepfer auch, ne?

Ach so, genau, da kannst du ja mal was erzählen.

Dann nenne ich die Kapitelmarke einfach Konferenzen nachher.

Ja, so viel kann ich dazu eigentlich gar nicht erzählen.

War interessant.

War interessant?

Ja.

Okay, wie viele Leute waren denn ungefähr da?

Boah, schwer zu sagen.

200?

Okay.

Also waren nicht so riesig groß.

Wo fand das denn statt?

In Berlin?

In Berlin.

Ach so.

CC, irgendwie so ein Center.

Das war relativ draußen in...

Wie heißt das da?

Viertel.

Moment, ich muss mal kurz schauen.

Ja, in irgendeinem Viertel in Berlin.

Chebchow oder so, ja.

Okay, ja.

Also genau, irgendein Haus in irgendeinem Viertel in Berlin.

Also war nicht so groß wie...

Das ist ja eine genaue Beschreibung.

Ja, genau.

Ja, wir können die Konferenz einfach verlinken, dann kann man da nachgucken.

Ja.

Okay.

Da waren interessante Sachen dabei.

Mhm.

Fand ich ganz gut.

Aber wie war so die Atmosphäre?

Ich meine, PyCon Web klingt für mich jetzt nach Webentwicklung und da gab es da irgendwelche

interessanten...

Also ich meine, klar, also...

Ich habe ja viel über UUIDs gelernt.

Ah, okay.

Hm.

Ja.

Das finde ich gut.

Über die neuen, oder?

Sieben oder acht, ja.

Ja, das sind die neuen.

Ah, okay.

Ich habe immer noch nicht so richtig verstanden, wofür man die unbedingt braucht, aber gut.

Ja, dann, wenn du den Talk hast, dann...

Ja, auf die PyCon Web gehen.

Okay, gut.

Dann, genau.

Dann muss ich mir den mal angucken.

Ja, ich habe es tatsächlich umgestellt in Dango auch jetzt auf sieben, glaube ich, ja.

Ja.

Ist leider eine extra Lib und man muss so ein klein...

Bei Dango geht es nicht einfach so, aber man kann das quasi dann mit einem anderen Import

versehen und dann funktioniert es als sieben und die sind auch dann geordnet und so.

Das ist sehr, sehr schön.

Ah.

Ja, genau.

Ich war jetzt Anfang Februar auf der FOSDEM in Brüssel und ja, nee, das war auch ziemlich

cool irgendwie.

Das war riesig.

Ja, das ist immer so ein bisschen...

Also es ist einfach...

Es ist irgendwie zu viel.

Also man...

Es sind einfach wahnsinnig viele Leute.

Ich weiß nicht, wie viele da waren, aber es könnten so 10.000 gewesen sein ungefähr.

Und das findet halt statt immer auf diesem Campus der Freien Universität Brüssel irgendwie.

Und der ist halt auch dann komplett voll.

Und es gibt halt, ich weiß nicht, wie viele Tracks.

Keine Ahnung.

Viele.

30 oder so?

Ja.

Gefühlt.

Es ist halt...

Also...

Es ist halt...

Es ist halt...

Es ist halt...

Es ist halt...

Es ist halt...

Es ist halt...

Es ist halt...

Es ist halt...

Das Programm anzugucken ist halt schon ein Ding der Unmöglichkeit.

Weil...

Das ist irgendwie...

Zu viel.

Sobald man einmal durch alle Talks durchgescrollt hat für den Tag und immer geguckt hat, sind

die Talks, die man sich angucken wollte, schon vorbei.

Weil es dauert einfach zu lange.

Und...

Hast du ein Sitzplatz bekommen irgendwo?

Ja, ja.

Doch.

Also klar.

Es war schon auch sehr voll.

Also das ist...

Aber gerade bei den großen Serien kam man eigentlich meistens dann doch noch irgendwie rein.

Manchmal musste man ein bisschen früher da sein.

Ja.

Ja.

Ja.

Es war wahnsinnig voll.

Aber es war auf der anderen Seite auch wieder gut zu sehen,

dass halt irgendwie, also oft hatte man ja jetzt das Gefühl,

auch gerade nach Covid, dass einfach Sachen irgendwie leerer waren.

Dass nicht mehr so viele Leute zu irgendwelchen Veranstaltungen gehen

und das alles irgendwie so ein bisschen,

also bei der Subscriber war das zum Beispiel auch so,

dass man sagt, ja, es sind gerade so viele Leute,

dass sich das halt irgendwie so halbwegs lohnt.

Aber es sind deutlich weniger als bei der letzten Konferenz vor Covid.

Und bei Meetups hört man das auch immer.

So viele haben auch zugemacht.

Oder bei manchen ist es halt so, naja,

da kommen jetzt ein bisschen weniger als vor Covid,

aber es kommen wieder welche.

Und jetzt bei der Fostel war das halt so,

so einfach, man geht da hin und dann stehen einem Leute auf den Füßen,

weil es halt so voll ist.

Also es war einfach, und man kommt in die Serne nicht rein,

weil es halt irgendwie aber da Riesenschlangen davor sind.

Also da geht wieder einiges.

Also das war richtig, da war richtig was los.

Den Python-Devroom hat Marc-André gemacht, oder?

Genau, ja.

Das war am Sonntag.

Das war halt am Wochenende, Samstag, Sonntag.

Sonntag war Python-Devroom in so einem Hörsaal da.

Und da waren einige sehr coole Talks dabei.

Ich habe da nicht alle gesehen.

Also gerade morgens war ich halt noch irgendwie nicht da.

Sehr richtig.

Nicht da, ja.

Und dann so ab mittags habe ich so drei, vier gesehen, glaube ich.

War das auch Hybrid?

Also das finde ich ja zum Beispiel bei den großen,

Europice und FNC ist immer toll.

Da konnte man dann, während man einen Talk gerade,

auf dem Telefon weiterguckt,

auf dem Nachhauseweg ins Hotelzimmer,

auf dem Hotelfernseher zu Ende gucken,

dann kurz in die Sauna gehen

und dann zum Talk auf dem Gang wieder dabei sein drüben.

Ja, das geht da schon.

Das geht da auch.

Also es gibt einen Stream von allen Tracks sozusagen.

Ja, genau.

Das ist cool.

Genau.

Also aber das ist alles sehr weitläufig da.

Das heißt, man kann da nicht.

Also das habe ich auf der Karte.

Brüssel ist irgendwie viel weitläufiger,

als ich jetzt gedacht hätte.

Brüssel, auch keine so riesige Stadt.

Bisschen größer als Düsseldorf vielleicht.

Aber nicht so wahnsinnig viel größer.

Und Düsseldorf ist ja so eine Stadt,

da kann man einfach mal so in einer Dreiviertelstunde

so von Osten nach Westen oder Süden nach Norden durchlaufen.

Was?

Ja.

Also durch den Kahn.

Also du wohnst ja halt auch im Zentrum.

Das ist ja in jede Richtung einmal.

Das ist dann schon anderthalb.

Aber ja, okay.

Ja, okay.

Also ich meine jetzt,

also wenn man eine Achse durchläuft,

dann das dauert gar nicht so lang.

Das sind halt drei, vier Kilometer.

Mehr nicht.

Naja, also ich brauche,

wenn ich auf die andere Reihenseite brauche,

brauche ich anderthalb Stunden.

Nee, das brauche ich nicht.

Doch, von mir aus schon.

Ach so, ja gut, okay.

Okay, ja, ja, okay.

Aber du bist ja noch nicht am...

Ja, okay.

Ich bin nicht mal im Ostrand.

Ich kann damals zu Johannes hochlaufen.

Hat doch mal eine anderthalb Stunden gedauert.

Ja, okay.

Ja gut, es hängt dann auch noch ein bisschen davon ab.

Aber sowas so.

Also mein Gefühl für Städte,

die ungefähr so groß sind wie Düsseldorf,

sagt mir halt,

ich kann da irgendwie hinlaufen,

wenn ich da irgendwo in der Nähe wohne.

Das sollte kein Problem sein.

Ja.

Und das ist in Brüssel aber falsch.

Also das war auf der Karte auch so,

irgendwie das ist da genau in der Nähe.

Und dann war das halt aber zuvorderlich.

Du bist 40 Minuten.

Und das war...

Das geht ja noch.

Ja, aber...

In Berlin musste ich tatsächlich 40 Minuten mit der S-Bahn fahren.

Ja.

Also genau, klar.

In Berlin ist natürlich...

Berlin ist auch riesig...

Aber das wäre mir klar gewesen.

Dass Berlin sehr weitläufig ist, das weiß ich.

Aber Brüssel war mir jetzt nicht so...

Und das Öffentlich-Verkehrssystem in Brüssel

ist auch irgendwie so ein bisschen komisch.

Aber ja, und man braucht auch sehr lange da.

Aber genau,

also da kann man nicht einfach irgendwie mal kurz ins Hotel

oder in die Sauna

und dann wieder zurücklaufen.

Oder hat man einfach ein falsches Hotel ausgesucht.

Ja.

Ja gut.

Vielleicht.

Ja, aber genau.

Also ich habe da auch einen Talk gehalten

über mein Resümee-Side-Projekt.

Jungle Resümees.

Jungle Resümee.

Ja, wir machen gerade unsere TV's schick.

Genau.

Weil das muss man ja so ab und zu machen.

Oder so, wenn...

Kann man schon mit Voucher-Token

direkt einmal aufrufen,

wenn man das nicht will.

Dann ist das eine Woche gültig.

Dann kann man sich das alles schon angucken,

wie das ganze Projekt ist und sowas, ja?

Ja, genau, genau.

Das ist auch drin.

Aber im Wesentlichen ist es halt irgendwie so

ein JSON-Field,

wo der ganze Kram halt drinsteht.

Die Lochen schreibt sogar die ganzen Token

mit ins JSON-Field rein.

Da steht einfach alles in dem JSON-Field drin.

Das ist jetzt gar nicht so erwartet.

Ja.

Alle Plugins, einfach ein JSON-Field,

alles rein.

Papp.

Ja.

Fand ich ein bisschen seltsam.

Postgres als MongoDB verwenden.

Ja, genau.

Aber also die Idee ist sozusagen...

Das ist schneller.

Ja.

Genau.

Und man macht halt immer nur eine Curry pro...

Wenn man eine Webseite rendert.

Man muss immer nur dieses eine Ding

aus der Datenbank holen.

Fertig.

Ja, aber der eigentliche Grund,

warum ich das an der Stelle so gemacht habe

und nicht irgendwie quasi so in Normalform

so normalisiert irgendwie in der Datenbank schreibe,

wie man das vielleicht normalerweise tun würde,

ist, dass ich gern hätte,

dass man das durch Plugins erweitern kann.

Und wenn man jetzt ein Plugin schreibt,

das halt...

eigene Tabellen mitbringt und so,

dann wird es schnell sehr eklig.

Weil da muss man sich überlegen,

okay, jetzt müssen die Daten ja da irgendwie

aus den Tabellen rausgeholt werden.

Jetzt muss irgendwie das Hauptding irgendwie wissen,

wie all diese Tabellen sind.

Oder den muss man halt irgendwie...

Dann muss man dagegen joinen oder...

Das wird alles sehr komisch.

Ja, aber da muss man halt auch eine Liste pflegen

mit offiziell supporteten Plugins,

sodass die alle auch identische Keys nicht haben,

sondern dass die...

Ja, das muss man vielleicht nicht.

Aber so kann man wahrscheinlich auch irgendwie automatisch machen.

Aber das ist halt dann schwierig.

Während dann halt man sagt,

wenn du Plugins schreibst,

dann ist sozusagen die Anforderung,

dass das etwas sein...

Die Daten müssen halt etwas sein,

was man nach JSON serialisieren kann.

Und wieder...

Ja, so.

Dann reicht das eigentlich schon.

Und ja, dann muss man halt sonst nichts machen

und kann einfach den Namen des Plugins nehmen

und darunter halt die ganzen Daten speichern.

Ich sag ja nichts.

In Name Collision,

zweimal das gleiche Plugin gleich nennt.

Ja, das geht natürlich nicht.

Aber das ist...

Das Problem hast du ja immer.

Kontrolle drüber,

wenn du...

Wenn du das halt verwendest,

wenn du dann zwei Plugins mit dem gleichen Namen nimmst,

okay, dann hast du halt einen Fuß geschossen.

Aber ja, genau.

Das ist so.

Ja.

Und es macht halt so HTMX-Zeugs

und solche Dinge.

Genau.

Und ich habe so ein bisschen...

Ich habe eine Demo gemacht mit

so Code-Generierungen über LLMs.

Und genau.

Die hat auch so halb funktioniert.

Insofern eigentlich ganz gut.

Wo ich einfach so Few-Shot-Learning mache.

Also ich packe halt quasi die Plugins,

die es gibt,

in den Kontext von einem LLM

und sag dann...

Gib mal ein neues Plugin.

Gib mal ein neues Plugin für ein neues Prompt.

Und dann kommt da halt irgendwie Kram von einem LLM zurück

und den schreibe ich dann halt auch in eine Datenbank

und kann das aber auch live direkt testen,

wie es halt so aussieht.

Und ja, das hat eigentlich ganz gut funktioniert.

Ja, ich fand das Projekt interessant.

Das hat so verschiedene Aspekte gleichzeitig.

Also dieses Plugin-System hat auch so ein Auto-Crud und so.

Und ja, das war bei...

Also in der Technik...

Ich fand es nicht so einfach zu benutzen.

Vielleicht bin ich auch zu doof dafür.

Ja, ist es auch nicht.

Es ist alles immer experimentell.

Also ich meine, man kann ja mal einfach drauf gucken,

das ausprobieren.

Ich habe überlegt, ob ich es forken soll

und dann habe ich es anders implementiert.

Ja, ist ja auch okay.

Genau.

Dann hat mir irgendjemand gesagt,

es gibt so ein Standard-JSON-Schema für Resumes.

Aha.

Das würde ich auch gerne kennen.

Genau.

Da muss ich mal gucken,

ob ich da nicht...

Genau.

Genau.

Genau.

Genau.

Wenn ich dann Import oder Export dahin irgendwie auch reinbaue,

weil das wäre natürlich vielleicht auch interessant.

Da gibt es auch dann schon jede Menge fertige Templates,

um das halt irgendwie aussehen zu lassen.

Hm.

Muss ich mal gucken.

Oder ob ich das irgendwie einbaue,

das weiß ich noch nicht.

Das würde sich aber mit deiner Plugin-Architektur jetzt beißen.

Nö, das könnte man ja auch so machen.

Als Subkeys von dem...

Ja, okay.

Verstehe.

Ein Plugin dafür machen.

Genau.

Ja.

Mhm.

Ja, okay.

Ja, mal schauen.

Genau.

Das war eigentlich...

Das ist doch jetzt...

Tatsächlich der perfekte Zeitpunkt,

so den Mietaufruf zu bringen wieder, ne?

Miet?

Den Mietaufruf.

Man kann uns gerade mieten.

Ja, sollten wir auf jeden Fall an der Stelle machen.

Uns kann man mieten.

Den Jochen kann man mieten.

Und den Dominik kann man mieten.

Ja.

Dominik, dich kann man inzwischen auch mieten.

Ja, ich kann auch mieten.

Wieder.

Ja, das ist ja richtig.

Das konnten wir bisher ja gar nicht announcen,

aber jetzt...

Ja, doch.

Man konnte mich ja auch schon vorher ein bisschen mieten,

aber jetzt auch wieder richtig.

Und den Johannes kann man auch mieten.

Ja.

Wir sind alle mietbar.

Und ich habe sogar noch mehr Leute,

die man mieten kann.

Wir sind sogar eine richtig große Mietbilde.

Ist das quasi eine WG?

Ja, also ich würde schon sagen,

das ist ein gutes Projecting,

was ordentlich Dampf jetzt auch mal draufkriegt

und halt nicht nur so ein paar kleine Männchen,

sondern ordentlich.

Sehr schön.

Ja.

Also wenn ihr, liebe Zuhörer,

ein Projekt habt,

dann mietet uns.

Genau.

Ja, ansonsten, genau,

was ich da noch gesehen habe an Vorträgen,

da gab es einen von Thibaut Collin

über...

Die Zukunft von Django.

Ich wollte gerade sagen,

das ist doch der Mensch,

der ist in Django,

die Presidency.

Der ist jetzt, genau,

Präsident der Django Software Foundation.

Apropos Django,

da gibt es doch jetzt auch bald wieder so eine Konferenz.

Ja, genau.

Die ist am Ende April.

Ende April.

Ist das ein inoffizielles Treffen?

Ist die Woche nach Ostern.

Ja.

Also wir werden alle da sein.

Daher...

Ja, wünschen wir das.

Könnte man.

Das ist in Dublin.

In Dublin.

Oh ja, cool, cool, cool.

Ja.

Und ich darf kein Bier trinken.

Fürchterlich.

Ja.

Aber in Dublin,

gibt es in Dublin irgendein Bier,

was man trinken müsste?

Ja, ich habe kein Bier.

Ich weiß nicht.

Indischer Wein, habe ich gehört.

Nein, du gehst in jeden Pub

und da gibt es on tap

einfach die leckersten Sachen

und die ganzen Craft-Biere

und alles fresh und...

Ja.

Ah ja, okay.

Wundervoll.

Ja, Cider kriegst du auch,

aber Genusswein stehe ich nicht drauf,

brauche ich nicht.

Aber andere leckere on tap Sorten.

Aber Django gibt es auch.

Ja, und Django.

Das ist der eigentliche Grund,

warum wir da hingehen.

Ja.

Und die Natur ist so schön grün da.

Das ist schon gutes Wetter.

Das hört man zumindest.

Ja, genau.

Ist nicht auch die Europython

zum gleichen Zeitpunkt?

Nein.

Nee, die Pycon.de

ist leider zum gleichen Zeitpunkt.

Pycon.de, genau.

Und Pycon Data.

Pycon.de und PyData.

Genau, ist zum gleichen Zeitpunkt

in Darmstadt.

Darmstadt, genau.

Ja.

Ja, aber genau.

Können wir...

Aber wir können uns halt

nicht zerreißen.

Ja.

Genau.

Ja, also Zukunft Django

war ganz interessant,

weil

ja, da war so halt,

das waren hauptsächlich so Statistiken

zu wie viele Leute verwenden das,

was hätten sie gern,

wie verlagert sich das irgendwie

von irgendwie

als von den Frameworkverwendenden

zu API-Geschichten

und so Dinge.

Und ja, war ganz nett.

Was man ja glaube ich sieht,

ist, dass drüben über den Teich

super viel mehr Menschen und Firmen

auch Django einsetzen als hier.

Ja.

Dass man das vielleicht mal so

da Aktivität machen könnte

in der Richtung, was so Marketing angeht.

Da hatte er auch mal

einen Blogpost zu jetzt letztens.

Das kam in dem Vortrag zwar nicht vor,

aber das war dann ja auch sehr interessant,

welche Regierungsseiten

denn irgendwie Django verwenden und so.

Und das war halt überall irgendwie

relativ viel.

Nur in einem

analogen Dorf irgendwie,

auf der Weltkarte halt nicht.

Das globale Funkloch sozusagen.

Ja, wo könnte das wohl sein?

Ja, das war nämlich genau hier.

Also hier gab es einfach gar keine,

hier gibt es einfach keine Django-Projekte

irgendwie in öffentlicher

Hand oder so.

Tja.

Keine Ahnung, das liegt

schon wieder im Quatsch.

Aber irgendwie geht das hier.

Wundert einen doch nicht, oder?

Wenn man immer noch Fuck schicken muss

für bestimmte Sachen.

Naja.

Aber hast du nicht mitgekriegt, Dominik,

dass die Bundesbank jetzt keine Faxe mehr

entgegennimmt seit 1.1.25?

Nein.

So weit ist es

fortgeschritten mit der Digitalisierung.

Wir haben ihr Fax abgeschaltet.

Die Zukunft ist jetzt. Wir sind im Neuland angekommen.

Ja, 2025 schon.

Ja, doch gar nicht so schlecht.

So langsam.

Es ging durch die Presse.

Tja, und jemand anders hat sich überlegt,

dann macht der Faxgerät auf der anderen Seite einen Elementen.

Dann kann man die Antworten ausdrucken.

Yay.

Ja.

Genau. Ah, dann ein Vortrag,

den ich richtig cool fand.

Der war total super. Hätte ich gar nicht so erwartet.

Ich saß da irgendwie nur, weil ich nicht rauskam, weil es so voll war.

Aber...

Wie ist das? Das ist immer das Bessere in Konferenzen.

Die Talks, die sehen total toll aus von außen,

sind aber total langweilig.

Und dann sind die total spannend.

Und alles dazwischen.

Da hatte jemand irgendwie tatsächlich in PyScript

irgendwie

ja, so irgendwas

sehr Excel-mäßiges nachgebaut.

Aha.

Und das hat tatsächlich richtig gut funktioniert.

Und das war...

Das sah auch gut aus.

Das war auch gut aus.

Okay.

Das war total faszinierend.

Also wirklich so komplette Spreadsheet-Geschichte im Browser.

Okay, nice.

Und es war schnell.

PyScript.

Und alles in Py...

Also die ganze Logik war halt in Python geschrieben.

Und dann halt sozusagen über PyScript irgendwie...

Ja.

Oder ich weiß es gar nicht mehr, ob es Pyodite war.

Nee, ich glaube, es war PyScript tatsächlich.

Ja.

Not too bad.

Also, ja, cool.

Auf GD wäre ich jetzt auch noch nicht gekommen, ja.

Ja.

Ähm, genau.

Ja, also,

vorst dann war coole Konferenz hervoll.

Ja.

Hat da auch jemand dann irgendwann einen Post geschrieben,

habe ich jetzt letztens...

Ja, also, immer wenn jetzt gerade irgendwie aus aktuellem Anlass

haben wir ja irgendwie so ein bisschen Schwankungen,

was so die weltpolitische Lage angeht.

Und da in Europa ist ja dann immer so,

dass so, oh nein, irgendwie die...

Wir sind ja auch, was Technologie angeht,

und so total abgehängt und keine Ahnung.

Und Hilfe, Hilfe.

Ja.

Dabei ist das ja irgendwie auch Quatsch, ja.

Also, ich meine, klar, okay,

was jetzt den Börsenwert von manchen Unternehmen angeht oder so, okay.

Ja, klar, da kann man halt nicht mithalten.

Aber auf der anderen Seite, na ja, also, ich meine,

wie viel realer Wert ist denn da tatsächlich?

Das ist auch ein bisschen unklar.

Wenn man jetzt aber sich anguckt,

wie sieht es denn aus, was jetzt Open-Source-Projekte angeht, ne?

Was ist denn da...

Also, wenn man jetzt auf so eine Veranstaltung wie die FOSDEM geht oder so,

dann ist, also, ich meine, ein Großteil der Projekte sozusagen,

die die Infrastruktur dafür bilden,

was dann halt in Amerika halt diesen Riesenmarkt macht, ne,

ist alles, das ist alles diese,

es ist alles Open-Source-Infrastruktur-Software.

Und da ist ein europäischer Entwickler,

ist da halt, sind da halt irgendwie eigentlich sehr, sehr gut vertreten, ne?

Also, das ist halt...

Ja, nur das Problem ist halt, dass da keiner Geld für bezahlt.

Ja, aber also, sag mal, das Potenzial wäre halt da.

Also, es ist halt irgendwie...

Ja, genau.

Also, es ist nicht so, dass das hier nicht geht oder so,

sondern es geht und es passiert.

Es ist halt bloß nicht so,

dass damit so wahnsinnig viel Geld verdient wird.

Ja, genau.

Die Leute nutzen das halt alle und sagen halt, ja...

We first.

Ja.

Ja.

Und das ist blöd.

Ja, aber das sind alles Dinge, an denen man ja was machen könnte und so, ne?

Also, das ist ja nichts, wo man jetzt...

Also, wenn jetzt das in der Situation wäre,

dass man halt gerne da mitspielen würde,

aber man hat nicht mal einen Fuß in der Tür oder so,

das wäre ganz schlecht,

aber so hat man eigentlich schon beide Füße in der Tür.

Eigentlich wäre es schöner, wenn es ein Gegenmodell gäbe, ne?

Also, wenn es tatsächlich irgendwie...

Tatsächlich öffentliche Institutionen,

die das weitermachen würden

und das halt nicht nur auf diesem kommerziellen...

Wir machen das,

dass nächstes Aktienunternehmen draus funktionieren würde.

Ja, genau.

Aber, genau.

Also, es gibt auch den...

Es gibt ja so Tech-Severanity-Funds oder sowas.

Also, einer von denen bezahlt jetzt auch irgendwie Hugo von Kermenade.

Von Kermenade.

Als, also, europäischer...

Ich glaube, es ist sogar deutscher irgendwie.

Als Python-Entwickler.

Also, sozusagen, der ist ja jetzt auch Release-Manager, glaube ich,

für 3.14, 3.15.

Das ist schon mal ganz gut.

Es gibt ja jetzt, ja, keine Ahnung,

in Frankreich passieren auch lustige Sachen.

Naja.

Ja, genau.

Hm.

Wir hatten auch noch ein Thema, glaube ich.

Ja, wir hatten auch noch ein Thema.

Was?

Oh je.

Oh, ich habe es vergessen.

Moment, ich mache meine Kapitelmarke irgendwie Thema.

Also, wir haben jetzt noch eine Minute.

Wir können eine Stunde Off-Topic reden.

Oh Gott.

Dann haben wir die Stunde vorher Off-Topic.

Ja.

Ja, okay.

Ah, gut.

Aber dann, ja, Johannes, willst du vielleicht etwas erzählen über Strings und Beides?

Ja, ich muss sagen, die ersten beiden Kapitel, die wir gelesen haben, die waren ja sehr voll.

Ja.

Und die waren auch sehr breit.

Und im Vergleich dazu ist dieses Kapitel nicht so interessant.

Ja.

Und das ist sowohl gut als auch schlecht.

Das ist sowohl gut als auch schlecht, weil dieses Thema sollte eigentlich langweilig sein.

Eigentlich sollte man über dieses Thema gar nicht so viel sagen müssen.

Hm.

Weil eigentlich sollte das alles funktionieren.

Und in Python 3, meiner Meinung nach, ist das auch so.

Was ist denn nochmal das Thema?

Da funktionieren Unico.

Viele Sachen sehr gut.

Genau.

Es geht um Strings und Beides.

Und das große Problem an Strings und Beides ist, dass die nicht das gleiche sind.

Früher, in der guten alten Zeit, als es nur ASCII gab, da war das das gleiche.

Da war ein String halt eine Abfolge von Beides.

Ganz genau genommen ist ASCII ja nur 7-Bit breit.

Also man hätte das dann sogar, also gab es dann diese Encodings mit 7-Bits.

Das ist aber auch eine schreckliche Vorstellung.

Äh.

Aber wenn man nur ASCII verwendet, dann sind Beides und Strings das gleiche.

Ja, weil ich einfach sagen kann, okay, also ein String ist halt eine Abfolge von Beides.

Und alle Zeichen, die es gibt, die sind da drin.

Ja.

Jetzt stellt sich raus, die Welt ist größer als Amerika.

Und nicht alle sprechen Englisch.

Und selbst die, die Englisch sprechen, die haben manchmal Akzente in ihren Namen.

Oder wollen Äs und Ös und Üs anzeigen.

Oder scharfe Ässe.

Oder C-Mit-C-D-I-E.

Oder I mit und ohne Punkt.

Oder dies und das.

Und jenes.

Ja, ich habe auch so einen Gleich-F6 in meinem Namen.

Ja, stimmt.

Ich habe extra nur einen ASCII-Namen.

Da haben meine Eltern drauf geachtet.

Ja, das sollte man schon machen.

Genau.

Und das Problem ist, aus historischer Sicht gab es halt die Computer in den USA.

Und da gab es ASCII drauf.

Und ASCII hat geschickterweise nur 7-Bit.

Das heißt, da sind noch 128 Zeichen frei.

Ja.

Und die kann man dann halt irgendwie verwenden.

Und dann haben sich die Leute Code-Pages ausgedacht.

Die Menschen, die alt genug sind, die können sich noch an CP-850 erinnern.

Oder an CP-437.

Das man einstellen musste, damit der Norton-Commander richtig angezeigt wurde.

Unter DOS.

Und jetzt wissen alle Leute, wie alt ich bin.

Und das war ganz schrecklich.

Weil man musste immer darauf achten, dass man die richtige Code-Page hatte.

Weil es halt einfach nur...

Ja, 128 vorbelegte Zeichen und 128 Zeichen extra gab.

Und um dem Ganzen ein Ende zu setzen, haben sich schlaue Menschen zusammengesetzt

und haben sich das Unicode-Konsortium genannt.

Und haben gesagt, wisst ihr was?

Wir brauchen einfach mehr Zeichen.

Alle.

Nee, das heißt nicht...

Achso, achso.

Ich wollte gerade...

An der Stelle macht immer irgendjemand diesen Witz.

Nee, nee, es heißt nicht Unicode.

Und...

Sondern...

Es heißt...

Das heißt Unicodes Monster, oder?

Ja, das Unicode-Konsortium hat dann das Monster gebaut.

Und das Monster ist 1,15 Millionen Zeichen groß und verschlinkt alles, was es nur so finden kann.

Das Ziel des Unicode-Konsortiums ist es, alle Schriftzeichen, die es in Verwendung gibt,

abbildbar zu machen.

Und sie machen das, indem sie sagen, jedes Schriftzeichen, was es gibt,

es wird in eine große Tabelle reingeschrieben.

Die Tabelle hat eben diese prinzipiell möglichen 1,1 Millionen Zeichen.

Und da schreiben wir dann noch eine Beschreibung rein, was das ist und was das bedeutet

und was für eine Sorte das ist, weil da tun sich dann ganz viele coole Probleme auf,

die man da kriegen kann.

Aber das ist schon mal gut, diese Tabelle zu haben.

Das Problem ist jetzt, es sind mehr als 255.

Das heißt, die passen nicht in einen Byte rein.

Und da fangen die ganzen Probleme an.

Weil das Problem ist, man muss die irgendwie, wenn man sie speichern möchte,

Unicode-Zeichen in Bytes reinkriegen.

Und da gibt es leider auch aus historischer Sicht viele, viele, viele verschiedene Möglichkeiten,

die zu kodieren.

Und die inzwischen am weitesten verbreitete heißt UTF-8.

Ich weiß gar nicht, was das heißt.

Aber das ist ein sehr schlauer Trick.

Unicode-Text-Formatting?

Das kann sein.

Es gibt auch UTF-16.

Es gibt auch UCS-2.

Es gibt auch diverse Varianten davon.

Und dann muss man auch wissen, ob die Little-Indian sind oder Big-Indian

und ob die ein Byte-Order-Mark haben oder nicht.

Und das ist alles ganz wundervoll.

Und eigentlich will man sich damit gar nicht beschäftigen.

Unicode-Transformation-Format.

Es ist ganz interessant, sich anzusehen, wie es funktioniert.

Da gibt es ein sehr interessantes Video von Numberphile,

wie sie das erklären.

Das ist so ein bisschen ein Hack.

Da werden so Bits an der vorderen Stelle gesetzt,

damit es mit ASCII-kompatibel ist

und damit man mehrere haben kann.

Und UTF-8 kann bis zu 4 Byte pro Zeichen verwenden.

Und damit kriegt man dann die gesamten Unicode-Sachen abgedeckt.

Und das ist alles sehr schön.

Und das Fazit dieses ganzen Kapitels ist eigentlich,

man sollte immer UTF-8 verwenden.

Haha.

Und?

Äh, inzwischen ist es tatsächlich so,

dass man fast überall UTF-8 verwenden kann.

Auch chinesisch?

Ja, auch für chinesisch und auch für japanisch

und auch für koreanisch und auch für thailändisch

und auch für klingonisch.

Richtig.

Wenn du den richtigen Font hast,

kannst du klingonische Schriftzeichen haben.

Du kannst die auf jeden Fall mit Unicode-Code-Points darstellen.

Ein Unicode-Code-Point ist jetzt nicht mehr nur ein Byte,

wo halt eine Zahl von 0 bis 255 drinsteht,

sondern es ist auch ein Byte, der sich mit einem Byte verwendet.

Und das ist auch ein Unicode-Code-Point.

Und das ist auch ein Unicode-Code-Point.

Und das ist eigentlich eine Zahl.

Und die Zahl, die geht eben von 0,

das ist das 0-Byte,

bis, keine Ahnung, dort hinaus.

Ich weiß jetzt nicht, wie weit es geht.

Das ist eine komische Zahl,

die mir nicht bekannt vorkommt,

irgendwie 1,15 Millionen.

Das bedeutet aber,

dass ich diese Unicode-Code-Points

nicht einfach so abspeichern kann,

sondern wenn ich sie irgendwo in der Datei speichern will,

muss ich sie irgendwie kodieren.

Und Python 2 hat aber keine Unterscheidung gemacht

zwischen Strings und Bytes.

Und Python 2 hat keine Unterscheidung gemacht

zwischen Strings und Bytes.

Weil wenn man aus Amerika kommt,

so wie Guido van Rossum,

dann macht es halt keinen Unterschied,

weil dann nimmt man nur ASCII

und alles andere spielt keine Rolle.

Und das war meiner Meinung nach

eine der größten Unfeinheiten an Python 2,

dass es keine Unterscheidung gibt

zwischen Strings und Bytes.

Es gab damals schon diese

Encode- und Decode-Funktionen,

aber die haben nicht den Datentyp verändert,

sondern die haben nur die Bits verändert.

Ja.

Und das war meiner Meinung nach

einfach nicht sehr sauber

und nicht sehr fein.

Und seit Python 3,

seit den wenigen Jahren, die es Python 3 gibt,

gibt es eine strikte Trennung

zwischen Bytes und Strings.

Und Bytes ist eben das, was in Dateien drin ist

und im Speicher drin ist.

Und Strings ist das,

wo Zeichen drin sind.

Es gibt noch einen dritten Datentyp,

der heißt ByteArray.

Bytes ist nicht mutable und ByteArray ist mutable.

Wenn man das braucht,

dann muss man halt,

wenn man ein Datentyp hat,

dann muss man halt ein Datentyp haben.

Das ist tatsächlich ein Detail.

Wichtig ist,

es gibt eigentlich nur vier Sachen,

die wichtig sind an dieser Stelle.

Die vier Bytes?

Nein, die vier Funktionen, die wichtig sind.

Die erste heißt Encode.

Und jetzt ist die Preisfrage,

geht Encode von Unicode-CodePoints

nach Bytes

oder von Bytes nach Unicode-CodePoints?

Weil es könnte eigentlich beides sein.

Encode geht zu Beides.

Encode geht zu Bytes.

Also von Unicode, von Strings zu Bytes.

Es könnte aber auch andersrum sein.

Ja.

Und Decode geht entsprechend andersrum.

Das heißt, wenn ich einen String habe,

wo Unicode-CodePoints drinstehen,

dann kann ich Encode sagen

und dann kriege ich da einen ByteString raus

mit einem gewissen Encoding.

Und umgekehrt, wenn ich Bytes habe,

dann kann ich Decode sagen

mit einem gewissen Encoding

und dann kriege ich da einen Unicode-String raus.

Wenn das funktioniert,

weil diese Encodings,

die sind frickelig und die sind fitzelig

und manche funktionieren und manche funktionieren nicht.

Und wenn man es mit dem falschen Encoding

dekodiert,

dann kann es sein,

dass es funktioniert und es ist trotzdem falsch.

Und das ist was ganz Schlimmes.

Ja.

Und das sorgt dann dafür,

dass irgendwelche Fragezeichen

in Namen drin sind

oder irgendwelche...

Ja, diese komische schwarze Raute mit dem Fragezeichen.

Ja, genau.

Genau.

Oder bestimmte Sachen,

die man, wenn man mit UTF-8 dekodiert,

dann ist da so ein XAE drin

oder irgendwie sowas.

Das sind so diese Zeichenkombinationen.

Ganz gemeine Leute tun die ja

in ihren Benutzernamen rein.

Einfach.

Um die Entwickler auf Trab zu halten.

Das sind die ersten beiden Funktionen,

Encode und Decode.

Und die gehen von Unicode-Strings

in die Encode-String.

Zu Bytes und zurück.

Und da gibt es ganz viel Gefütze

mit irgendwelchen Encodings

und die müssen richtig sein.

Und das eigentliche Fazit von diesem ganzen Kapitel ist

UTF-8. Nehmt überall UTF-8.

Wenn das möglich ist, einfach immer UTF-8 nehmen.

Weil damit geht alles.

Das ist nicht das optimale Encoding.

Ja, das kann sein,

dass man da mehr Platz verbraucht.

Aber ganz ehrlich, für Textdaten heutzutage

meistens ja.

Ist doch wurscht.

So ein bisschen wurscht.

Ja.

Ja.

Ein bisschen wurscht ist das.

Green IT sollte man ja auch bedenken.

Da muss man natürlich Datensparsamkeit

immer als ganz besonders suchen.

Ja, das ist schon richtig.

Das ist schon richtig.

Aber Textdateien werden nicht

den Großteil deiner

Datengröße ausmachen.

Das ist meiner Meinung nach.

Wenn du in so einen Use Case kommst,

dann musst du eh Experte werden auf diesem

Gebiet und dann reicht es nicht,

die 25 Seiten in Flutenpasten

zu lesen.

Ne.

Die zweiten zwei Funktionen,

die an dieser Stelle ganz wichtig sind,

weil sie mit Strings und Bytes ganz natürlich

zu tun haben,

sind Read und Write.

Also Open auf eine Datei

mit Read-Modus und Open auf eine Datei

mit Write-Modus.

Und standardmäßig in Python ist es ja so,

wenn ich ein Open sage,

im R-Modus, also nicht im RB-Modus,

sondern im R-Modus,

dann bedeutet das, lies mir diese

Datei bitte als

UTF-8-kodierte Text

ein.

Und dann habe ich da auch diese ganzen

Komfortfunktionen drauf, die ich da haben möchte.

Also Readlines und Read und Readline

und so weiter, die mir alle

direkt Strings geben, die automatisch dieses

Decoding machen. Und die auch

das Byte-Order-Mark automatisch

behandeln. Also wenn,

das ist dann alles schon gemacht,

wenn es eine UTF-8-Datei ist.

Wenn ich eine Datei habe, die nicht UTF-8

ist, dann

komme ich wieder in Teufelsküche, weil dann muss ich wieder

das Encoding wissen, dann muss ich wieder das richtige

Encoding wählen und dann muss ich wieder mich mit solchen

Decode-Errorn,

rumschlagen.

Die vierte Richtung ist jetzt das Schreiben von Dateien.

Auch hier, wenn ich eine Datei öffne im

W-Modus, nicht im WB-Modus.

Im W-Modus,

dann bedeutet das, dass es

eine UTF-8-kodierte Textdatei

ohne Byte-Order mag.

Und das ist die

richtige Wahl, ja, das ist das Richtige.

In den allermeisten Fällen

funktioniert das.

Wenn ich

eine Datei im RB- oder im

WB-Modus öffne, dann ist das

der sogenannte Binary-Mode, da kriege ich dann immer Bytes

raus. Das heißt, wenn ich da drauf ein Read

mache, dann kriege ich Bytes raus.

Wenn ich ein Write mache, kriege ich auch Bytes raus.

So, das

sind die wichtigen Dinge, die man sich

hier merken muss. Encode,

um aus Strings

Bytes zu machen, Decode, um aus Bytes

Strings zu machen, mit allen Dingen, die da passieren

können. Dateien lesen und Dateien

schreiben mit den richtigen Encodings.

Alles andere, was jetzt noch dazu kommt,

sind irgendwelche,

ich möchte jetzt keine starken,

Worte wählen, aber das sind beschissene Legacy-Wartsen,

die man da jetzt nicht reinholt.

Weil man halt

irgendwie das Encoding rausfinden

muss. Dann gibt es eine Package, das heißt Chartered,

der untersucht mit

Heuristiken, welche Zeichen da drin sind,

ob das,

welches Encoding das sein könnte und das

funktioniert manchmal, manchmal funktioniert es nicht.

Und unter Windows

ist alles ganz schrecklich,

weil eins von den Encodings,

das Konsolen-Encoding, ein anderes ist,

als die ganzen anderen und es ist nicht UTF-

8.

Und das macht einen Unterschied, wenn man

auf der Standardausgabe schreibt, ob die

Standardausgabe auf die Konsole geht oder

ob das in eine Datei umgeleitet wird und das ist

alles ganz schrecklich.

Und das eigentliche

Fazit, was ich aus dem Kapitel ziehe, ist,

ich bin heilfroh, dass ich ein Linux-Betriebssystem habe,

weil da ist UTF-8 eingestellt und dann

funktioniert UTF-8 und alles ist UTF-8

und

fertig. Das macht alles

viel einfacher.

Ja.

Ja.

I agree.

Ja.

Und das ist eigentlich das Fazit aus dem ganzen Kapitel.

Einfach UTF-8 verwenden und das ist

an fast allen Stellen möglich und wenn man es

nicht verwenden kann, dann ist es halt blöd

und man muss sich damit befassen.

Warum sind denn nochmal so komische Skorpione

immer an dem Buch?

Das sind halt unterschiedliche

Hinweise.

Also Skorpion ist glaube ich das,

was einen irgendwie beißen kann.

Genau, das wollte ich gerade fragen.

Ich gucke mal gerade hier.

In dem Kapitel gibt es mehrere

Skorpione.

Das liegt halt einfach an dieser Geschichte,

von der ich jetzt gerade einen Abriss gegeben habe

mit 1000 verschiedenen Code-Pages

und vielen verschiedenen

Encodings und Mojibake

und

ganz vielen tollen Phänomenen.

Also die Erklärung zu Skorpionen ist,

this element indicates

a warning or a caution.

Genau, dann gibt es den Raben.

This element signifies

a general note und es gibt

irgendwie ein Lemuren oder sowas.

This element signifies

a tip or suggestion.

Es muss zum Gemankit.

Dieses Kapitel ist voll mit Skorpionen.

Ja.

Vorsichtig.

Ah, und dann die Karte.

Oh, vorsichtig.

Und hier, wenn du die Karte eingestellt hast.

Oh, vorsichtig.

Es gibt da tatsächlich so ein paar Dinge,

die einen in den Stiefel kriechen können.

Da gibt es ja so fiese Sachen

wie zum Beispiel

Unicode-Normalisierung.

Oh ja, das ist auch ein ganz

wundervolles Thema.

Ja.

Ein wundervolles Thema.

Was ist das jetzt?

Bin ich neugierig geworden.

Jochen, willst du das erklären?

Mach du mal, Jochen.

Ich brauche eine kurze Pause, weil das halte ich sonst nicht aus.

Naja, also es gibt halt unterschiedliche

Arten,

manche Zeichen zu schreiben.

Und die sind,

dann sehen genau gleich aus,

aber die sind halt anders kodiert.

Du meinst ein L und ein I

und ein E?

Ja.

Ein E mit einem Akku.

Ja, zum Beispiel sowas, genau.

Ja, und

dann ist halt die Frage...

Was für Arten gibt es denn, Jochen?

Wie kann man das denn darstellen?

NKFD und N...

Ich weiß es nicht mehr genau.

Ja, okay, aber das ist ja nur diese

Normalisierung.

Das darunter liegende Problem ist, dass es

zwei verschiedene Möglichkeiten, dieses E mit dem Akzent

darzustellen.

Es gibt es als Zeichen.

Es gibt ein Zeichen, das heißt E mit Akzent.

Was haben wir da drauf?

Oder zwei Zeichen.

Ja, und es gibt E und dann gibt es ein zweites Zeichen

kombinierende Akzent mit dem

davorgehenden Ding dazu.

Genau.

Und auch da gibt es natürlich Leute, die sich da eine große Freude

draus gemacht haben und da gibt es ganz viele schöne

Salgo-Textgeneratoren, die einfach

sagen, hier, was passiert denn, wenn man

drei von diesen Akzents drauf tut?

Oder fünf oder zehn oder hundert?

Und dann ist

der Text kaum noch lesbar und

der

Abstieg in den Wahnsinn ist vollzogen.

Ja.

Ja, letztlich, genau.

Also, ja.

Das ist dann da, wo man immer landet halt.

Die richtigen Hacker-Namen.

Ja, genau. Da kann man nämlich

auch viel

wirklich auch security-relevanten

Unsinn betreiben, wenn man jetzt zum Beispiel

sich überlegt, dass man halt

also, wann ist

denn jetzt sowas, wann sind denn zwei Strings

irgendwie gleich? Wenn ich jetzt auf irgendwie sowas checke, wie

ist der Benutzername so und so

oder ist das halt irgendwie diese oder jene

Stadt oder irgendwie, wenn ich halt

solche Vergleiche habe, dann

kann ich ja eventuell, also

da muss ich ja sicher gehen,

dass das halt irgendwie,

dass ich da nichts

übersehe, sozusagen.

Das heißt, wenn ich da nicht normalisierte

Sachen miteinander vergleiche, dann können

halt wilde Dinge passieren.

Das heißt, bei all diesen Sachen,

wo ich halt sicher sein muss, dass das halt

klappt, muss ich halt auch nochmal zusätzlich

zu irgendwie, ich muss es als

Unicode-String haben, auch nochmal

gucken, dass die,

Normalisierung halt auf beiden Seiten

gleich ist, weil ansonsten

kann mir halt jemand

ein U für ein O

vormachen oder so und dann habe ich ein Problem

unter Umständen.

Ja, oder ein

kyrillisches A für ein

lateinisches A, das ist ja der Klassiker.

Ja.

Dass es da diese Zeichen gibt, die gleich

aussehen, aber nicht gleich sind.

Ja. Und da

das ist echt sehr schwierig. Und noch schlimmer

ist Sortieren. Ach, so.

Sortieren, oh Gott. Ja, ja. Und Groß- und

Kleinschreibung ist genauso schlimm,

weil die hängen von der Lokal

ab.

Da gibt es das klassische Beispiel,

Türkisch hat ein I mit einem Punkt und

ein I ohne Punkt.

Und entsprechend

gibt es davon Klein- und Großvarianten.

Das heißt, wenn ich einen Text habe, der ein kleines

I mit einem Punkt oben drauf

enthält, also ein normales I,

aus unserer Perspektive,

und ich möchte den in

einen großgeschriebenen String umwandeln,

dann würde ich als Deutscher

würde da ein großgeschriebenes I

ohne Punkt drüber

hinmachen.

Und es ist auf Türkisch aber falsch. Auf Türkisch

ist es so, dass wenn ich

ein kleines I mit einem Punkt habe, dann muss

das ein großes I mit einem Punkt oben drauf werden.

Und es gibt wohl tatsächlich

so einen Fall, wo eine SMS

übertragen wurde. Und SMS ist ja auch

so ein Legacy-System mit

Ecken und Kanten.

Wo eben

eine SMS übertragen wurde und offensichtlich

durch ein System wegnormalisiert wurde,

wo dann ein Mann

an seine Frau geschrieben hat und die ist dann

irgendwie ausgedeckt, weil er geschrieben hat, dass er

bei einer anderen ist, anstatt dass er nach Hause kommt.

Irgendwie sowas passiert da.

Also es gibt tatsächlich Real-World-Auswirkungen.

Die Katze war. Auch Sortierung.

Und auch Sortierung ist genauso.

Sortierung ist auch

locale-abhängig. Also das

kommt darauf an, wo ich bin, wie ich

Zeichen sortiere. Zum Beispiel auf Deutsch

wird das E traditionell

nach dem A einsortiert.

Auf Schwedisch

werden die

kanonisch nach dem Z einsortiert.

Und

das heißt, wenn ich

sortieren und kleine Großschreibungen machen will,

dann

muss ich wissen, wo ich bin.

Ja.

Und es gibt noch mehr coole Sachen.

Kann man das nicht auch noch irgendwie

einen Weg finden, wie man das in der Zeitzone abhängig machen könnte?

Oder so.

Von der Bodenphase.

Das ist ein Potenzial.

Das ist kompliziert.

Mal ganz davon abgesehen, dass es in vielen asiatischen

Sprachen diesen Unterschied zwischen

Groß- und Kleingeschriebenen gar nicht gibt.

Da gibt es ja keine Groß- und Kleingeschriebenenzeichen.

Aber Groß- und Kleingeschriebenenzeichen ist noch schlimmer, weil

es gibt in manchen Sprachen

auch abhängig von der

Locale Strings, die kann ich

nicht Upper und

danach wieder Lower machen. Da kommt nicht der gleiche

String raus.

Deutsch ist zum Beispiel so eine Sprache und

ist auch abhängig von der Locale.

Je nachdem, ob ich in der Schweiz bin,

oder in Deutschland, wird es

unterschiedlich behandelt. Wenn ich einen String mit einem

scharfen S groß mache,

dann wird

es ja ein Doppel-S.

Es gibt doch mal ein großes scharfes S, oder?

Es gibt ein großes scharfes S, ja.

Das wäre meiner Meinung nach auch die richtige Lösung.

Aber in der Schweiz wird

kanonisch das Doppel-S verwendet. Auch wenn es das

große scharfe S gibt.

Und wenn du diesen String wieder klein machst,

dann sind es zwei kleine S.

Dann sind es zwei kleine S. Und dann

kommt auch nicht das gleiche wieder raus.

Semantisch Unterschied.

Semantischer Unterschied, der sich aus dem Kontext ergibt.

Das heißt, das kannst du gar nicht technisch lösen.

Das heißt, mit

Unicode und mit Unicode-Strings sind

nicht alle Probleme gelöst, die

Menschen haben.

Die doofen Menschen, die haben halt Probleme, die sie

nie in den Computer reintun lassen.

Auch mit Unicode sind solche Probleme

nicht gelöst. Und die Lösung

dafür ist im Wesentlichen,

ja, darfst du halt nicht machen.

Kein Großstring.

Wenn du ein Großstring machen willst, lieber nicht.

Ja.

Wenn du Roundtripping haben willst

zwischen Upper und Lower, geht halt nicht.

Kriegst du nicht wieder raus. Wenn du Strings

vergleichen willst, musst du diese

sagen wir mal

mittelmäßig coolen Encodings

verwenden. Da gibt es übrigens vier, Jochen, die auch

ein Buch haben.

NFC und

NFD.

Das heißt eigentlich Normalized

Format C und Normalized Format D.

Warum das jetzt ausgerechnet

C und D sind, weiß ich nicht.

In meinem Kopf ist das Compact und

äh,

die,

die, die,

das ist irgendwie so.

Compact ist das Format,

was möglichst wenige Zeichen

erzeugt. Und D,

also das Decomposed

vielleicht, ist das Format,

was möglichst

atomare Zeichen erzeugt.

Also da wäre dann halt das E mit dem Axon

zwei Zeichen und in dem anderen wäre es halt

mit einem Zeichen.

Und dann gibt es noch normalisierende

Varianten davon, wo dann solche

coolen Spezialsachen

weggemacht werden, wie das

µ zum Beispiel. Das µ gibt es in zwei Varianten.

Einmal als die

SI-Einheit µ für Mikrometer

und einmal als das Griechische, den

Griechenbuchstaben µ. Und OM

ist auch so ein Zeichen, also ein großes

Omega. Und manche

von den Varianten normalisieren das weg

und manche von den Varianten normalisieren das nicht weg.

Und das ist also

die

Lösung,

für die das Problem ist. Das darfst du einfach nicht machen.

Mach es einfach nicht.

Ja, also ich erinnere mich an diese ganzen

Details nicht mehr.

Vor einem Jahr ungefähr habe ich das halt dann irgendwann mal

eingebaut, weil es halt eine Relevanz

hatte und da habe ich das dann auch getestet.

Und beim

Schreiben dieser Tests ist mir dann irgendwann so,

dachte ich mir so, oh mein Gott, also eigentlich

fallen mir jetzt noch 20 Situationen

ein früher, wo ich das auch mal

besser hätte testen sollen, wo ich es nicht

getan habe. Schnell vergessen und verdrängen,

sonst, aber da

gibt es so viele komische Sachen, die

passieren können. Also,

ja.

Ja, es gibt ein Repository auf GitHub,

das heißt Big List of Naughty Strings.

Ach ja.

Eine neue

Rame-Move.

Darf man auch nicht auf seine Weihnachts-Runch-Liste schreiben.

Ja,

es sind erstaunlich viele und es sind erstaunlich

üble Sachen drin. Und

ich habe auch schon einen PR dagegen gestellt, aber

der ist, glaube ich, unmaintained.

Die Liste,

weil mein schöner PR mit dem

großen, scharfen S würde leider nicht

genommen. Ja.

Aber ein großes, scharfes S ist schon

sehr naughty.

Das ist sehr naughty, aber man muss

umgehen können damit.

Ja.

Ja, ja.

German character, sharp S,

which becomes SS when uppercased.

So, changes from one character to two ASCII

characters.

Ich glaube auch, der

Grund, warum Python 2 das nicht

konnte, also ich, weil

ich meine nämlich, Java hatte von Anfang an

ein ordentliches Unicode irgendwie.

Der lag aber einfach

Ja, aber hatten die nicht auch UCS2 am Anfang?

Äh,

das kann sein. UCS2, um das kurz,

um kurz unsere Hörer abzuholen.

UCS2 ist einfach

ein Textzeichen

wird zu zwei bald.

Ja, und

da muss man auch Big Engine und Little Engine

sagen, okay, das ist ein Detail.

Dann brauchen wir mal einen Marker vorne dran.

Ja, genau.

Die geneigten Zuhörer werden bemerken, dass

zwei Byte, 16 Bit sind,

das sind ungefähr 65.000 Zeichen,

das ist weniger als 1,1

Millionen. Ja. Das heißt,

das ist so ein

Fix, der nicht

weit hilft.

Ja. Und die ganze

Windows-Welt, das war ja alles mit

UCS2, da gibt es diese ganzen Windows-Funktionen,

die gibt es in normal und in unterstrich

W für wide.

Oh, okay. Hilft aber alles nichts,

weil es war halt UCS2 und

das ist...

Und dann hatten wir jede Menge Null-Bytes

in seinen Dateien drin und das

ist nicht so cool.

Sehr gut. Kann man gut zippen.

Ja. Okay, also auf jeden Fall,

ich glaube, Java hat am Anfang auch UCS2,

die sind inzwischen auch auf UTF-8 umgestiegen.

Ja, aber sie hatten schon

auf jeden Fall dieses quasi Konzept,

dass sie intern Unicode

hatten und dann nach außen irgendwie

enkodieren, dekodieren. Aber ich

meine, das hatten sie nur deswegen, weil

Java halt ein Stück jünger ist.

Als Python. Und vorher war das gar nicht

standardisiert, sozusagen.

Vier Jahre. Kurz nach der Standardisierung

hat Java, ist Java damit

halt dann, sozusagen

konnte das direkt verwenden und Python halt noch nicht,

weil es halt älter ist. Aber da müssen wir noch mal

die Timeline...

Python ist doch 91

und Java ist 95 und Unicode

ist 96.

Das kann nicht in Java 1 drin gewesen sein.

Vielleicht ist es seit Java 2. Ich meine, es gab ja

da auch einen großen

Versionssprung.

Ich hatte ja mal

meine erste

Programmiersprache an der Uni, das war Java

tatsächlich und wir haben da noch die...

Mein Beileid.

Ja, auch zwei sehr dicke Bücher.

Da kommt also zwei

Bücher von dem Format von Flo und

Patton. Das war einmal

irgendwie Java irgendwie

von... Ich weiß gar nicht mehr.

Java in der Nutshell. Nee, nicht in der Nutshell, sondern

irgendwie The Language oder so was.

Und dann die Sprachspezifikation,

was halt im Wesentlichen,

die Grammatik war.

Ja, also 2000 Seitenbücher.

Und das war,

meine ich, das war schon Unicode.

Aber...

Ja, und das muss kurz nach...

Na gut, du bist halt auch so ein junger Programmierer,

der nur Unicode kennt.

Ja.

Also das mit dem Unicode war nicht so schlecht,

aber ansonsten, da waren so einige Dinge,

die ich so... Public Static Void Main

Dings, das habe ich nie so richtig...

Das fand ich eher so ein bisschen...

Was ist denn da los?

Ja, meine erste...

Meine Uniprogrammiersprache war C.

Wir haben direkt mit C angefangen.

Das war nicht die ideale Sprache

für Programmieranfänger.

Ja.

Hat für einen gewissen

Ausfilterungseffekt

gesorgt.

Sehr schön.

Aber dein echt schönes

Depot, was du da geteilt hast,

sowas wie Strings for Spanish Fools

to use cat on a file,

things with crash...

The list of naughty strings.

Ja, ja.

Lesen Sie es in den Shownotes nach.

My course on human to reinterpret worldview.

Ja.

Eine interessante Sache, die tatsächlich

in dem Kapitel vorkommt,

die so als Frage gestellt wird,

als so ein bisschen so eine

Sidebar, würde ich sagen.

Wie stellt Python denn intern

eigentlich diese Unicode Strings dar?

Und die Antwort

darauf ist,

ja, brauchst du gar nicht wissen.

Implementierungsdetail.

Mhm.

Das ist eigentlich die richtige Antwort.

Es wird dann trotzdem erklärt,

ja, das ist wie Integer

und der wählt so eine optimierte Darstellung.

Und wenn es

nur solche Zeichen sind,

dann ist es ein ByteString.

Jedenfalls ist da Optimierung drin.

Das Wichtige ist, man kann immer

davon ausgehen, dass es einfach

eine Zahl ist.

Jedes Zeichen in einem String ist eigentlich

eine Zahl zwischen 0 und...

1,1 Millionen.

Ja, irgendwie sowas.

Und

Python sorgt dafür, dass das so ist

und optimiert es dann auch richtig schön

innen drin.

Ich finde das eigentlich sehr beruhigend.

Es ist nicht so, wie man es sich

vorstellt, dass du es halt hörst.

Das ist so eine Abfolge von Bytes.

Oder eine Abfolge von hier.

Das ist ein Speicher so drin.

Sondern es ist erstaunlich kompliziert.

Es ist erstaunlich komplex.

Aber zum Glück gibt es da die

schlauen Python Core Maintainer,

die das für uns machen, die auch diese ganzen

Unicode-Listen

sich zu Gemüte führen und

einem sagen, was das

für Zeichen sind.

Eine weitere

interessante Sache ist, dass es ein paar Module gibt,

die können mit beidem umgehen.

Die können mit Bytes umgehen und

mit Strings.

Und die zwei wichtigsten davon sind

RE, also Regular Expressions.

Ja, gut.

Klar, genau. Manchmal musst du halt

Regular Expressions haben, die

funktionieren auch.

Das Gesicht in einem Bild austauschen.

Das geht auch.

Ja, okay. Keine Ahnung.

Die funktionieren anders, je nachdem, ob man Bytes reingibt

oder Strings.

Und auch die Regular Expressions,

der Typ der Regular Expressions muss zum

Typ des verarbeiteten Datentyps

passen.

Das zweite Modul,

interessanterweise, ist OS.

Und zwar alles, was mit Dateipfaden

zu tun hat.

Und das ist auch so eine interessante

Legacy-Sache.

Weil Dateipfade

nicht unbedingt

valides UTF-8 sein müssen.

Auf modernen Betriebssystemen

sollte das so sein.

Wenn ich eine Datei

schreibe, dann sollte die eine UTF-8-Dateinamen

haben. Wenn ich in meinen

Gnome Explorer,

wie auch immer der heißen mag, Nautilus,

Tuna oder keine Ahnung, was es gibt,

eine Dateinamen eingebe,

dann wird es ein UTF-8-String sein.

Aber das Dateisystem garantiert

es nicht.

Und das heißt, es kann Dateinamen

geben, die ich nicht in UTF-8,

die ich nicht als UTF-8-kodierte

Strings darstellen kann. Das heißt,

wenn ich eine Datei aufmachen möchte,

dann muss ich irgendwie da rankommen

an diesen Dateinamen, der kein korrekter

String sein muss.

Und deshalb gibt es

für diese Dateisachen

alle, also

alle Funktionen in zwei Varianten, als mit String und als mit Bytes.

Und

da kann man auch schöne Strings

treffen.

Das war am Anfang

war das, glaube ich, in Python 3,

also da war der Umstieg von

2 auf 3, da war das am Anfang

nicht so, da gab es das noch nicht.

Und da haben Leute irgendwie,

das war für einige Leute ein Grund, Python 3

nicht zu verwenden, weil sie sagten, ja super,

ich kann damit meine Dateien leider nicht

irgendwie löschen.

Es geht einfach nicht.

Es gibt keine Möglichkeit, das zu tun.

Kann ja wohl nicht sein.

Und dann gab es auch noch diverse böse Sonderfälle

mit irgendwie, naja, also eigentlich kann das

Dateisystem aber halt nicht,

wenn du irgendwas uraltes über NFS

gemountet hast oder sowas, dann machen wir das nicht.

Ja.

Ja, ja.

Ja, ja.

Für mich, das Fazit des ganzen Kapitels ist,

modernes Betriebssystem, UTF-8,

fein.

Also in der Situation

möglichst vermeidlich. Genau, Python 2 und Python 3,

wie alt ist Python 3 jetzt?

Wann kam das raus? 2010?

14 Jahre? Ja, so 2010

ungefähr ist das irgendwie losgegangen.

Also 15 Jahre fast. Ja.

Also auch Legacy.

Forget it. Aber da haben sich ja Leute

gewehrt dagegen. Ja, da haben sich ja Leute gewehrt dagegen.

Es gibt einen

Programmierkurs von Seth Shaw,

Learn Python the Hard Way.

Ja, den kann ich sehr empfehlen, den habe ich durchgezogen.

Und der hat sich sehr lange

gewehrt,

den auf Python 3.

umzustellen, weil ihm die

Trennung zwischen

String und Bytes nicht logisch erschien.

Und

er hat da sehr lange, sehr viele

Artikel darüber geschrieben und

ich finde diese Trennung großartig. Das ist genau

richtig. Es sind zwei unterschiedliche Dinge,

zwei unterschiedliche Bedeutungen,

die unterschiedliche Zwecke verfolgen.

Und natürlich musste das auftreten. Natürlich

musste die unterschiedlich behandelt werden.

Und

es gibt Leute, die sich da lange dagegen

gewehrt haben. Ich weiß nicht, wie der

Mr. Shaw das inzwischen sieht.

Es ist mir auch egal, weil er hat damals kein

Recht gehabt.

Ja, ich kann das Buch auch

versuchen.

Der macht jetzt inzwischen auch ganz viel

AI-Zeugs.

Aber genau.

Aber das habe ich

auch nie verstanden.

Ja, also

das war damals schon ein Streitpunkt.

Meiner Meinung nach ist das schon das Richtige.

Das war die richtige Entscheidung.

Ja, auf jeden Fall.

Diese Trennung zu machen und auch sauber zu machen.

Und viele von den Problemen,

die man so haben kann, die gehen halt einfach weg.

Auch wenn es auch noch mal andere Probleme

mit NFC und NFT

und Sortierung

und dann halt

und das auch.

Kannst du einfach nicht mehr machen.

Ja, cool.

Genau.

Ah,

ich glaube, es gibt ja auch noch Dinge

vor ASCII.

Wir hatten ja eben auch schon Faxgeräte.

Aber wenn man

so hinguckt.

Asien gibt es ganz inkompatible.

Oder wenn man jetzt irgendwo hinfliegt oder so.

Man sagt so, alles

schrecklich.

Macht es gut, ihr Trottel. Ich fliege jetzt einfach irgendwo anders hin.

Und dann könnt ihr halt

irgendwo bleiben.

Dann das nicht funktioniert,

weil man halt irgendwie auf dem Ticket

hat man halt irgendwie zum Beispiel keine Umlaute oder sowas.

Aber Jörg, es gibt auch ein Protokoll für Brieftauben.

Wir kriegen die schon.

Dann gibt es

und das ist bei Überweisungen manchmal auch so oder so.

Und das ist halt immer dann, wenn man es plötzlich nochmal mit so

mit so richtigen

Wobei wir ja jetzt in der Swift

Wir sind ja jetzt in der Swift-Ära.

In der

Payment Services Directive 2-Ära, wo

alles ordentliche Encodings hat.

Zumindest definierte Encodings.

Ach okay, das war mir jetzt gar nicht so, weil

das war Überweisungen oder so, das ist ja auch manchmal so, dass ich da versuche

irgendwie das einzugeben und so, hä, geht nicht.

Komisch.

Ja, das hat auf jeden Fall

also das, diese Zeichensatzung,

das da drin ist, ist komisch, aber der ist wenigstens genau definiert.

Ah, okay, ja gut.

Das kann natürlich sein.

Früher, oder ich glaube bei Flukus-Systemen

ist es immer noch so, dass es läuft alles immer noch über Suchbezeichner

und das ist halt, die verwenden

EBITIC oder so, ne? Das ist halt auch irgendwie

ein 7-Bit-Monster-Ding.

Was aber nicht kompatibel ist.

Nein, gar nicht, natürlich.

Und diese ganzen

radiatischen Schreibsysteme, die

mehrbeitig sind, sind aber auch

nichts kompatibel und auch untereinander

nicht kompatibel und ah.

Ja.

Ja, es ist großartig.

So.

Ja.

Wie soll man das? Das muss man an einer Höhle malen.

Machen wir doch wieder

irgendwas mit Holz oder so.

Ja, ich empfehle

dieses Kapitel nicht zum Lesen. Es ist tatsächlich

ein bisschen trocken und ein bisschen lang.

Es ist ganz gut als

Nachschlagewerk. Wenn man eben

an diese Stelle kommt, wo man tatsächlich mit

mit Bytes und mit Legacy-Datenbots

dieses Thema arbeiten muss, da stehen ein paar interessante Sachen

drin, aber zum Lesen fand ich es jetzt nicht so interessant.

Ja.

Ja, cool, cool, cool.

Aber, ja. Also ich würde sagen, dann haben wir heute

die Episode gefüllt, oder?

Ja, ich glaube, wir machen irgendwann nochmal einen Mittag.

Ja, genau. Aber wir könnten auch sowas wie Pics

machen zum Beispiel. Können wir das?

Könnten wir. Ja. Okay. Ja.

Dann fang doch mal an. Wie

vorhin schon angekündigt, habe ich sogar zwei Pics.

Oha. Und einer davon

ist sogar Python-relevant.

Äh.

Der erste Pic, den ich habe, der ist nicht

Python-relevant.

Das ist ein Paper auf Astroarchive.

Gravitational

Effects of a Small Primordial

Black Hole Passing Through the Human Body.

Da geht es

um eine Klasse

von schwarzen Löchtern,

sogenannte Primordial Black Holes.

Das ist so eine Vorstufe von einem schwarzen Loch.

Das sind so schwarze Löcher, die dann sofort wieder wegverdunsten.

so wie ich

das verstanden habe, ich verstehe ja nichts davon.

Aber ich habe Kommentare gelesen. Und so wie ich die Kommentare

gelesen habe, ist dieses Paper interessant

in dem Sinne, dass man

nicht genau weiß, ob es diese schwarzen

Löcher gibt und wie oft die vorkommen

und wie viele es davon gibt.

Und wie groß die sind.

Und in diesem Paper hat man ausgerechnet,

wenn ein solches schwarzes Loch

durch einen Menschen durchfliegt,

die sind extrem klein, dann

hat es keinerlei Auswirkungen, wenn es

kleiner ist als 1,4 mal

10 hoch 17 Gramm.

Mhm.

Mhm.

Das ist ungefähr so viel, wie die Pyramide

von Giza wiegt.

Aha.

Die wiegt ungefähr 10 hoch 17 Gramm.

Das heißt, wenn ein schwarzes Loch

durch einen Menschen durchfliegt und dieses schwarze Loch

hat eine Masse, die ist kleiner als die Pyramide

von Giza, dann passiert gar nichts.

Was heißt die Pyramide von Giza?

Gizeh. Das ist die in Kairo da,

diese riesengroße Pyramide.

Die große Gizeh, nicht Giza.

Ja, also sie ist 146,5 Meter hoch

und

wiegt ungefähr 1,5 Meter.

Also wenn die durch dich durchfliegt,

dann merkst du das.

Ja, aber nicht als schwarzes Loch.

Der Grund ist, dass dieses schwarze Loch

zu klein ist. Das interagiert mit keinem

deiner Moleküle.

Achso, weil der Schwarzschildradius von dem Ding

ist so gewünscht, dass das...

Der ist kleiner als ein Atomkern und deshalb

kriegst du nichts ab.

Ja, okay.

Der Event Horizon ist klein genug,

dass du überhaupt gar nichts bemerkst.

Wenn eins davon größer ist,

also die Sprache in diesem Artikel ist sehr,

äh, technisch.

Ich würde sagen,

wenn ein

schwarzes Loch durch einen

menschlichen Körper durchfliegt,

was eine größere Masse hat, dann hätte es

messbare Auswirkungen.

So ist es, glaube ich.

Okay, das klingt unangenehm.

Genau. Die Tatsache, dass es

keine bekannten Fälle gibt von solchen

seltsamen

Verwundungen,

die einfach so passieren,

ist eine Indikation dafür,

dass es diese Primordial Black Holes

nicht gibt oder dass die nicht in genügend

großer Menge auftreten,

dass sie von der gesamten Menschheit messbar sind.

Und das ist das Interessante an diesem

Paper da drin. Also sehr weit

außenrum ausgeholt, um dann hinterher zu

sagen, ja, und deshalb

kann es nicht so viele davon geben.

Fand ich nicht.

Mein zweiter Pick

ist

wesentlich weniger

physikalisch.

Äh,

ein Artikel

mit dem Titel

A Year of UV, Pros, Cons and Should You Migrate?

Ah.

Das heißt, jemand hat seine Erfahrungen

aufgeschrieben

mit UV,

dem Python

Package Management Tool,

Project Management Tool.

Und

es ist sehr interessant

zu lesen, weil es gibt natürlich viele

gute Dinge zu sagen

und viele Dinge zu sagen,

die anders sind.

Und es gibt erstaunlich wenige Dinge

zu sagen, die nicht so gut sind.

Und im Wesentlichen

der einzige Grund, warum man

UV nicht verwenden sollte,

laut dieses Artikels, ist, wenn man irgendwelche

Legacy-Anwendungen hat, die man damit

halt nicht auflösen kann.

Weil die Dependency Resolution anders ist.

Und

wenn es nicht geht, ja, dann kannst du

entweder den Aufwand reinstecken, dafür zu sorgen,

dass es geht, oder du kannst halt bei Pip bleiben.

Oder bei was auch immer es ist.

Und es ist ein sehr langer Artikel.

Und der

beschreibt diese Situation sehr genau.

Und ich fand ihn sehr interessant zu lesen.

Und deshalb ist es mein Pick für diese Woche.

Mein zweiter Pick neben den schwarzen Löchern.

Sehr cool. Es gibt da auch ein

Video von Hüneck.

Der hat vor

Anfang 2024 oder so

irgendwie ein Video gemacht, wo er sagt,

ist das wirklich die

Zukunft von Packaging

in Python? Und dann hat er irgendwann

im August oder September

das Titel hat,

ja, es ist die Zukunft von

Packaging in Python.

Ja, das kommt auch in dem Artikel rüber.

Einer der Gründe, warum die Empfehlung

so mehr oder weniger unangeschränkt ist, ist, dass

dieses Team einfach ungeheuer

viel drin arbeitet.

Und die machen einfach,

also, wenn man sich den Bugtracker

anschaut von

UV,

dann hat es eine

extrem große Anzahl Tickets.

Ich mach's gerade auf.

Wir

sind jetzt bei Ticketnummer

11.679.

Wow.

Und offen sind aber nur 1.200.

Nur 1.200.

Das heißt, die arbeiten

einfach alles ab, was

in den Weg kommt.

Diese Sachen, die da drin sind, scheinen alle

sehr gut von der Architektur zu sein.

Die sind alle sehr performant. Die sind alle sehr

gut ausgedacht,

was auch die Oberfläche angeht. Also es

scheint so zu sein, dass

das einfach gut von der

Das ist einfach gut.

Ja, so ein paar Kinderkrankheiten am Anfang sind alle

weg und es ist sehr viel cooler.

Ja, ich hab das auch.

Und ich bin inzwischen auch überall hinmigriert.

Es gibt auch ein

Python-Package, das heißt

Migrate to UV.

Das hab ich einfach mal auf alle meine Sachen angewendet

und jetzt sind die alle UV-visiert.

Es gibt noch UV-Secure

und so, da kann man so einen Pipeline testen und so was.

Ja, es ist sehr nice, ja.

Ja.

Ja.

Cool.

Ich pick da mal.

Ja.

Ich weiß gar nicht mehr, wo ich das herhabe. Vielleicht hab ich es bei einem von euch gefunden.

Es heißt Sketch a Day.

Da wird eine visuelle Idee

jeden Tag gecodet.

Und zwar in Python. Finde ich sehr nice.

Das ist so eine Blog-Serie

von Alexandre Bivilares.

Sehr, sehr schick, weil man da irgendwie so

Visualisierung mit Python kriegt.

So ganz viele verschiedene unterschiedliche Ideen. Da ist immer so das Skript dabei.

Und der macht das schon eine ganze Weile

und da sind ziemlich nette Sachen dabei,

wie man sich das angucken kann.

Also super.

Und spannend, wenn man mal Grafik mit Python machen will

oder generieren will

und sich mal angucken möchte, wie das denn alles da aussehen kann.

Kann ich sehr empfehlen.

Verlinken wir.

Da kann man echt schicke Sachen mit rendern.

Ja.

Traktate und sowas.

Sehr coole Sache.

Ja.

Was hab ich da?

Also ich mach mal keinen Python-Pick.

Sondern

ich pick mal eine Shell.

Da gab es nämlich jetzt auch irgendwie

vor nicht allzu langer Zeit.

Ja.

Ja.

Das hat ein neuer Release.

Also ich

verwende dann

Phish.

Und Phish gibt es jetzt auch in der Version 4.

Wow.

Und sie haben da auch einen Großteil in Rust neu geschrieben.

Oh cool.

Ich mag Phish eigentlich sehr gerne.

Vor allem wegen dem Fuzzy-Ding. Das ist alles sehr nice

und completionist war immer sehr nett.

Aber was echt nervt ist,

dass Skripte nicht so

kompatibel sind. Die Skript-Sprache finde ich

anstrengend. Das bricht halt

wenn man das irgendwo anders ausführen will, immer alles durch.

Der Grund, warum ich es nicht mehr

auf allen Servern einsetze. Ich hatte es zwischendurch

auf allen Pod-Servern drauf.

Ja, mach ich auch.

Aber ja, klar. Also manche Sachen kannst du halt

einfach nicht verwenden in der Phish-Shell.

Genau.

Gut, aber ich mach dann halt, ich hab dann zum Beispiel

so Deployment-Skripten oder so, dann nehm ich halt eine Bash.

Ja, genau.

Und führe das dann damit aus. Das geht halt auch.

Ja, weil auch die Konfigurationen sind halt nicht Portable und so.

Das ist alles so ein bisschen nervig.

Da gab es doch auch einen sehr langen Artikel, Jochen.

Darüber, wie sie das gemacht haben und wie sie das

hingekriegt haben.

Fish of Theseus.

Ja, genau.

Erklär dir die Anspielung?

Ja, natürlich. Aber erklär sie uns trotzdem doch.

Okay, der Ship of Theseus ist halt

so ein Ding aus der Philosophie,

dass wenn man jetzt

irgendwie so ein altes

Schiff ausgräbt irgendwie

und

naja, man

möchte es halt sozusagen

äh

äh

äh

reparieren und man tauscht jetzt

äh quasi

äh die ganzen alten und vergammelten

Teile aus durch neue.

Äh, dann...

Durch identische.

Durch identische, genau.

Dann hat man ja im Grunde halt

zwei Schiffe.

Welches ist denn jetzt das richtige?

Ich glaube, du hast irgendwas kaputt gemacht.

Oh, Moment.

Das bricht gleich in Flammen auf.

Ich glaube,

das war der, äh,

das war's für Sonntag.

Mit unseren digitalen Audioproblemen

kommen jetzt auch noch analoge Audioprobleme.

Äh, Kabel...

Gleich geht's in Flammen auf, Jochen.

Jetzt, wunderbar.

Keiner hat's gehört.

Irgendwie ist das Kabel tatsächlich nicht mehr so ganz in Ordnung.

Liebe Hörer, das sind die Probleme,

mit denen wir uns rumschlagen müssen,

um euch diese Episoden zu bringen.

Hauptschleim nochmal irgendwie so

das eine Bein über das andere und

rupft kräftig an dem Kabelbaum

schon raus und kracht es überall.

Das ist ein Kreuz, ja.

Es ist mehr so ein Kabel...

Kabelstrauch, oder?

Als ein Kabelbaum.

Aber Baum impliziert eine gewisse Ordnung.

Ja, das ist falsch.

Das ist ein Kabelgebüsch.

Ja, ein Kabelbüsch.

Ja, also das Schiff des Tesois.

Da gibt's auch ganz viele Varianten davon.

Der Tesois fährt mit seinem

mit seinem Schiff

auf seine Abenteuerfahrt

und hat aber genügend Ersatzteile dabei.

Und während der Fahrt,

tauscht er kaputte Planken aus.

Und am Ende, wenn er ankommt,

hat er alle Planken einmal ausgetauscht,

ist er jetzt immer noch in dem gleichen Schiff,

mit dem er losgefahren ist.

Und seine Feinde, die fahren hinter ihm her

und sammeln diese Teile aus, die er austauscht

und bauen die dann in ihr eigenes Schiff ein.

Und am Ende haben sie alle Teile

in ihrem eigenen Schiff ausgetauscht,

durch die Teile, die der Tesois hinten runtergeschmissen hat.

Sind die jetzt noch in ihrem eigenen Schiff?

Oder sind die jetzt in dem Schiff,

mit dem Tesois losgefahren ist?

Was ist da eigentlich passiert?

Und was ist da eigentlich passiert?

Ja.

Diese Anspielung ist eben, was passiert,

wenn du alle Teile von einer Shell austauscht,

dann ist es noch die gleiche Shell.

Genau.

Wenn sie nicht alle Teile ausgetauscht haben,

wenn ich es richtig verstanden habe.

Ja, aber auch ein sehr interessantes Problem.

Das passiert ja tatsächlich bei Menschen auch,

wenn man Dinge isst und wieder ausscheidet.

Man tauscht ja auch zum Beispiel,

also so durchschnittlich glaube ich,

alle sieben Jahre alle Atome aus,

aus denen man besteht.

Ja, aber das glaube ich nicht.

In den Knochen sind Atome drin, die bleiben da drin.

Ja, okay.

Also im Schnitt halt.

Das ist gelettet.

Natürlich, klar.

Natürlich wirst du nicht alle austauschen,

aber und auch nicht die, ja, okay.

Aber noch, also ich meine,

noch viel kürzer zusammengefasst ist ja,

you can never step twice in the same river.

Du kannst niemals zweimal in den gleichen Fluss reinsteigen,

weil jede Sekunde verändert er sich so weit,

dass es nicht mehr der gleiche ist.

Wir sind aber immer auf der gleichen Welt.

Ja, und genau die Auflösung

oder die philosophische Schlussfolgerung ist halt,

dass bei manchen Sachen,

zählt die Kontinuität mehr,

die Kontinuität der Existenz mehr als die Bauteile.

Und ja, also ich meine,

die Philosophie ist ja dieselbe,

die Syntax ist dieselbe,

die Skriptsprache ist dieselbe,

das Interface ist dieselbe,

die API ist dieselbe.

Ja, aber die Fax sind andere.

Aber die Frage wäre halt,

die Frage wäre halt,

wie kann das denn,

wenn ich jetzt das ganze Material auswähle,

wie kann es denn sein,

dass es immer noch das Gleiche ist sozusagen?

Also wie kann ich denn zum Beispiel,

oder wie kann ich bei Menschen,

wenn da ja alle Teile ausgetauscht werden

und auch jetzt ansonsten,

das Schwierige ist mit der Kontinuität,

weil es ja auch unterschiedliche Lebensphasen,

aber ich kann den gleichen Menschen

immer noch erkennen als Kind oder als Kreis,

wie kann denn das sein?

Was ist das, was ich da erkenne?

An den Contract gehalten,

an die Closure,

an das Protokoll,

an das GEMA,

an das Modell.

Das ist doch scheißegal.

Das regt mich auch so ein bisschen auf

an dieser Beamen-Debatte,

wo du sagst,

wenn du jemanden mit dem Star Trek-Transporter-Mechanismus

irgendwo hin beamst,

dann nimmst du die ganzen Moleküle

und zaubertest,

taust sie und auf der anderen Seite

machst du neue Moleküle.

Eigentlich ist es ja kein Mensch,

sondern das ist Mord und Klonen.

Aber es hat mich nie überzeugt,

dieses Argument.

Weil du beim Beamen immer nach dem Beamen

immer noch genau der gleiche bist.

Ja, weil wir das ja sowieso die ganze Zeit machen.

Jedes Mal, wenn ich das mache,

bin ich immer noch der gleiche.

Ja, und wir wissen ja auch nicht,

ob Zeit nicht quantisiert ist

und ob wir überhaupt eine Kontinuität haben.

Aber das geht jetzt,

vielleicht zu weit für den Programmier-Podcast.

Ja, aber liebe Hörer,

folgen Sie uns auf

Philosophie für Anfänger.

Ja, ich kann aber auch mal

einen Pick, den ich dazu

in Stellung bringen könnte,

wäre, wenn Sie sich mal die Sachen von

Joscha Bach anhören.

Der hat jetzt auf dem letzten Zitze-Tekung

auch wieder einen interessanten...

Sehr kontrovers wahrgenommenen...

Ja?

Okay, das habe ich gar nicht so kontrovers.

Ja, es gibt mittlerweile Leute, die finden alles komisch.

Ja.

Also, es gab da diesen Essay

auch von dem Antophag-Typen,

den man auch mal

in einer LLM-Folge besprechen sollte.

Der Titel von dem Essay ist

Machines of Loving Grace.

Ja, aber du liest auch

wie die Wurst, da waren noch viele Leute sehr empört.

Ja, die haben es gar nicht so mitgekriegt.

Und

ja, genau, er hat einen Vortrag gehalten

mit dem Titel Self-Models of Loving Grace

und

ich fand den gut, den Talk.

Ich fand den auch ziemlich gut, wo er halt sagt,

naja, also was ist eigentlich existieren?

Existieren könnte ja auch bedeuten,

also sozusagen

existieren ist halt

sozusagen

immer davon abhängig,

wie...

Also, man existiert

in dem Maß, in dem man implementiert ist,

sozusagen. Und dann

gehen viele der Probleme weg, wenn man das so...

Wenn man das aus dem Blickwinkel...

Wenn man das jetzt kombiniert mit diesem Attention is all you need,

Ding, dann

wird da auch philosophisch etwas draus,

weil man tatsächlich wahrscheinlich

in diesen Quantentheorien immer durch die jeweilige

Aufmerksamkeit die Dinge erst

verwirklicht. Spannend.

Jetzt sind wir alle

sprachlos. Ich finde, das ist das perfekte Ende

für unsere heutige Episode.

Also bleibt uns doch gewogen.

Feedback, hallo, at peisenpodcast.de

Schreibt, ob ihr uns irgendwo treffen wollt, ob ihr vorbeikommt.

Gerne. Wir möchten gerne

eure...

Ideen für die Location?

Ja, die machen wir. Das machen wir schon.

Machen wir? Ja, ja, das machen wir schon.

Und wir organisieren das irgendwie, dann schreiben wir euch

irgendwie und freuen uns auf euch und

würde sagen, dann

hört uns vor mehr Zeit. Guten Morgen und Abend, gute Nacht.

Viel Spaß. Bleibt uns gewogen.

Schaltet wieder rein.

Bis bald. Und bis zum nächsten Mal. Tschüss.

Ciao, ciao.