Transkript: Bytes und Strings
Vollständiges Transkript der Episode. Zeitstempel beziehen sich auf die Audiowiedergabe.
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, weil 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 gemacht.
Wir haben eine Pause.
Kreative Pause.
Ja, und da sind noch andere Episoden noch in Navana-Akton, weil wir wissen noch nicht, ob wir sicherlich.
Die kommt aber, die kommt wahrscheinlich tatsächlich vorher, denke ich mal.
Ja, die ist vorher erschienen.
Nein, ja.
Wir werden es 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, ich wollte vielleicht ein bisschen News machen oder so.
Wir haben auch noch so ein paar.
Aber ich wollte kurz sagen, um was es heute geht.
Ja, okay.
Achso, ja, dann musste Johannes wohl sagen.
Es geht um Bytes und Strings.
Okay, cool.
Alle Datentypen ein bisschen.
Und wie heißt das Buch?
Fluent.
Das ist Fluent Python.
Fluent Python, genau.
Meine Kinder sind immer beeindruckt, wenn ich ihnen das dicke Buch zeige, wie viel da drin stehen 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 primäriere Doku.
In diesem Buch, da stecken auch noch ein paar Episoden drin.
Ja, aber so viel Content haben wir noch aus keinem Buch gezogen bisher.
Ja, ja.
Also vonher.
Da gibt es noch ein paar andere dicke Bücher.
Das ist auch noch Python in a Nutshell und ja.
Wie dick ist Python in a Nutshell?
Nicht ganz so dick wie Fluen Python, aber ähnlich.
Aber dann ist es eine sehr große Nussschale.
Ja, eine Wahl-Nuss-Schale.
Ist mehr so ein Sinne des Ort.
Der Öltanker unter den Nussschalen, ja.
Das ist ja auch nicht so gut.
Ich gebe doch noch das schöne neue Tango-Buch, Tango 5, Tango 5 by Example oder sowas, da können wir auch noch was machen.
Ja, ich habe nur noch E-Books und das ist geschickt, weil die liegen nicht so vorwurfsvoll rum auf dem Schreibisch.
Ja, 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 Schule.
Also E-Books, also tatsächlich, dann hast du irgendeine Sammlung, die vergammelt in irgendeinem Ordner.
Und dann?
Also so als Nachschlagewerk, I don't know.
Also es gibt ganz wenige Bücher, die ich als Nachschlagewerk benutze, ansonsten tatsächlich Buch aus dem Regal holen, aufschlagen, reingucken.
Ah, du bist halt, du bist halt analog.
Jetzt hast du dich datiert, Dominik.
Wissen wir alle, dass du alt bist.
Ja, bei Musik ist das auch so, mache ich ja auch analog Zeug.
Kein Computer.
Ja, manchmal auch.
Also ich bin ja auch manchmal modern.
Oder so beides gleich, dem Wechsel oder Sample oder so.
Aber schon analoge Synthesiz schon nice.
Ja, aber wir schweifen ab.
Ja, genau, aber vielleicht wollen wir ja zuerst mal ein bisschen, ich könnte jetzt hier mal so eine Kapitelmarke für News einfügen.
Und jetzt hat es die Kapitelmarke ja in den Anfang gesetzt, das ist das schon wieder alles kaputt hier.
Ja, wir haben schon ein Problem mit der Software, Jochen.
62 Episoden sind wir ja immer noch.
Ihr wisst gar nicht, wie lange wir zwischendurch brauchen, um das Audio-Setup hinzubekommen.
Ja, heute auch schon wieder.
Es war jedes Mal.
Ja, jedes Mal.
Jedes Mal mit neuen, tollen Dingen, die wir rausfinden über das Audio-Setup.
Und wir machen noch wieder zwei, was ich
nicht kann.
Heute hatten wir ein Echo.
Vielleicht hat er einmal.
Dann mischt einfach zu viele Kanäle, Jochen.
Ja, aber diesmal war ich es ja.
Diesmal bin ich ja schuld, wenigstens.
Ja, das war was wieder was Neues.
Ja, aber wenn man viele Kanäle hat und viele machen viele Personen, dann hat man irgendwie eine kombinatorische Explosion von vieler Quellen und dann treten halt auch immer wieder neue lustige Sachen auf.
So ist es halt.
Du könntest vielleicht
fast schon eine Überleitung zur Softwareentwicklung machen.
Du könntest auch so ein Federheilmodul da reinbauen, dass das auch so wirklich so nach kann man dann unterschiedlich.
Können wir auch.
Wir können auch noch ein paar hinzufügen.
Das ist immer.
Drink nicht drauf machen, tüß nicht.
Ja, genau, also richtig.
News, genau.
Es ist ziemlich tatsächlich einiges passiert.
Es ist halt immer die Frage.
Letztes Mal, die letzte Episode.
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 werde 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, Talwin 4 ist raus.
Das ist super.
Ja.
Ja.
Also ich wollte jetzt keine.
Achso, Freunde 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.
Semantisches CSS, sogenanntes semantisches CSS.
Ach, das machst du auch.
Ich verstehe den Vorteil von Tailwind nicht, wo man eine CSS-Deklaration von Color Red durch eine Klasse Color Red ersetzt.
Dafür brauche ich keinen CSS.
Der 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.
Vorteile von CSS sind weg.
Dass du 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, ist alles weg.
Aber ich habe so eine schöne Utility, sich auf kleine Komponenten, die lesbar sind, die genau das machen, was sie sollen.
Und das ist ja auch schon als Inline-Styles.
Nee, ist genau das gleiche.
Nee, es ist gar nichts.
Wir trifften schon wieder ab.
Wir trifften schon wieder ab.
Ich starte hiermit eine Umfrage unter den Zuhörern, ob sie wissen wollen, was wir von Talwind halten.
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.
Ja, gut, dann sollen die sich mal erklären.
Damit die Wahrscheinlichkeit auch größer, dass das dann tatsächlich irgendwie um LeBiom-Tellerand herum passiert.
Genau, aber ja, also ich bin auch eher momentan auf der semantischen CSS-Seite unterwegs.
Ja, aber genau, dafür, vielleicht wollen 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, ach genau, was halt, wo ich finde, das muss man halt schon mal irgendwie erwähnen.
Und ich höre da, ich höre das auch mal in anderen Podcasts und ich höre da mal so viel Mist und da dachte ich, na gut, da muss man doch mal was zu sagen, dass das irgendwie, was da wirklich passiert ist, irgendwie Deep Seek zum Beispiel ist irgendwie.
Achso, Sprachmodelle, ja.
Ja.
LLMs, ähm,
was ist das denn, Jochen?
Was ist denn
Deep Seek?
Ja, da ist halt irgendwie so ein Modell oder Gewichte sind herausgefallen aus einem chinesischen.
Die haben die alle selber generiert.
Gewichte, ja.
Wahrscheinlich.
Aber genau, und zwar sehr lustig, irgendwie, also das Foundation-Modell ist halt am, 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 gutes Modell, muss man sagen.
Also wirklich, wirklich gut.
Und es war auch sehr billig.
Und das ist ja.
Ja, aber da genau, da würde ich dann halt eher so mal nochmal, also, weil das hört man immer, aber da, oder ich weiß, wie, wie, wie, wie, oder wo ist die Quelle dafür, dass das besonders billig ist?
Ja, weil Deep
Seek selber, die haben die haben gesagt, es hat nur 5
Millionen Dollar gekauft.
Ja, gut, aber ich meine, die haben natürlich unter Umständen auch eine gewisse Motivation zu sagen, was sie sagen.
Die haben die vielleicht geklaut.
Sachen 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 verwendet haben.
Hat jemand Daten genommen, die ihm nicht zugestanden sind?
Ah, das ist zum ersten Mal in der Geschichte von LLMs passiert.
Ja, das ist lustig, ne?
Also irgendwie das, was OpenAI macht, ist ja im Grunde irgendwie so dicke Bücher nehmen, so wie Flu and Python oder sowas.
Das runterdistillieren in ein Modell.
Modellgewichte destillieren und jetzt beschweren Sie sich darüber, dass jemand anderes ihre Modellgewichte genommen hat und die destilliert hast in ein anderes Modell.
Das geht gar nicht.
Das geht natürlich oft gar nicht.
Als Deep bei einem anderen Deep Clown geht halt einfach nicht.
Ja, es gibt keine Ehre mehr.
Ehre und Verbrecher.
Ja.
Wobei man jetzt sagen muss, also 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 verändern?
Also weil ich, also ich finde, man muss sich entscheiden.
Also entweder man fand diese Copyright-Geschichte ja schon immer irgendwie scheiße, also so fand ich schon immer kacke.
Das 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 aus often Quellen irgendwie unerfänglich informieren können.
Das sollte eigentlich schon gehen.
Es gab doch mal diese T-Shirt, das ist das SWAT-Sing, you wouldn't understand.
Ja.
Wouldn't that car?
Das ging es um die JSTOR-Klasse.
Ach, die Geschichte, ja, mit Aaron Schwarz, ja.
Das ist halt,
aber auch vorher schon mit Pirate Bay und mit Film 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 ja auch nicht.
Ja, aber ich
meine, das ist ganz viel Al-Dings, das macht man nicht deswegen, weil es ein Ball irgendwie die Wahl zu verrückt ist.
Das ist ja nicht deswegen, weil man Lizenzen so geil findet.
Oder Lizenzen sind.
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 darin hintun ist und 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, luxuriösen, privilegierten Lebensstil fahren.
Ja, aber also ich finde halt, also was mir halt nicht gefällt, ist, dass diese Argumentation aus der Ecke immer inkonsistent ist.
Also 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 frei zugänglichen Quellen 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.
Das ist ja auch ein bisschen.
Ja, wurde ja auch schon.
Ja, kann man versuchen, aber das ist ja aus meiner Sicht, das ist ja offensichtlich absurd, ja.
Aber man könnte doch zum Beispiel sowas machen wie Robots.
Ja, gut, das machen Leute ja auch, das kann man auch tun.
Also wenn ich jetzt hingehe und sage, okay, wenn ich da irgendein so ein LLM, so ein Crawler von so einer Firma sehe, dann sage ich dem halt, nö, du kriegst hier nichts.
Oder was auch Leute ja machen, ist, dass sie dann halt so quasi so Endlosstrom von sinnlosen Tokens irgendwie erzeugen, um eine Rechenzeit zu verbrennen auf der anderen Seite.
Möglichst langsam.
Ja.
Dass der so klar verdient.
Die moderne Variante der guten alten Teergrube.
Ja, aber.
Das ist halt so ein bisschen die Frage, ne?
Es gibt ja die, der welcher für Urbricht 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 so.
Da kannst du mit dem Urheberrecht halt nichts machen, denke ich mal.
Genau.
Also das Urheberrecht unterstützt ja die drei V's irgendwie so vervielfältigen, verändern, verbreiten, ja, aber nichts davon ist betroffen, wenn ich jetzt halt irgendwie einen Text von irgendeiner Webseite nehme und dann ein Modell drauf trainiere.
Ja, also die Frage ist halt, was zum Beispiel mit wissenschaftlichen Veröffentlichungen ist, sind die schon allgemeinrecht oder nicht, weil die
beiden, aber wenn ich jetzt die lese, also nochmal, also ich meine, im Grunde, dein neuronales Netz und Gehirn ist ja auch sowas.
Du dürftest das ja, also durch Lesen kann man keine Urheberrechtsverletzung begehen.
Meinem Verständnis halt.
Das geht einfach um.
Ui Joachim, jetzt hast du aber eine schlimme Dose aufgemacht, weil jetzt haben die Rechtsinhaber drauf, dass wenn du das in dein Gehirn einlest, hast das vergessen.
Ja, hast du vervielfältigt?
Das ist offensichtlich absurd.
Das kann man doch nicht vertreten, sowas.
Und was mich ärgert, ist halt, dass Leute quasi auf so Leute, von denen ich dachte, dass es meine Freunde wären, jetzt online irgendwie offenbar diese Ansicht vertreten, dass halt vor dem 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 wieder so ein kleines bisschen ab.
Oh, ist das in diesem Podcast schon mal vorgekommen?
Ja, dann offenbar.
Okay.
Ich glaube, in Episode 3 ist es mal vorgekommen.
Echt?
Gut, dann ist ja nicht so schlimm, wenn das nicht so häufig vorkommt.
Ist das trotzdem interessant?
Ja, aber genau, also ich finde es halt, genau, aber ja klar, natürlich ist es irgendwie absurd, wenn sich jetzt OpenAI über Deep Seek beschwert.
Also ich glaube, die Frage ist natürlich, hat jeder Konzern Interesse dran, 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 ein Value bereitstellen können.
Weißt du, ob die
Schöpfungshöhe so groß ist.
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, also ich habe leider nicht geschafft.
Ich hab's momentan nicht geschafft mit meiner Hardware, kriege ich es nicht hin, gerade so.
Leider, leider.
Es gibt ja AP-Zugang, wenn das ist.
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.
Dass es die AMD-Prozessoren sind, die man sich kaufen soll.
Also ich, ich, ja, die AMD-Prozessoren, gut, ja, also natürlich Hauptspeicher ist für die Dinger, wenn du die halt komplett laufen lassen willst, brauchst du halt viel Hauptspeicher.
Genau.
Und auf einem ordentlichen, also ich habe so verschiedene Artikel gesehen, wo sich die Leute Rechner zusammenbauen, zwischen 2.000 und 6000 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.
Ja, du kriegst auch noch ein bisschen, du kannst das Ding wohl, also das Originald-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.
Aber.
Ja, okay, das liegt ja daran, dass die Macs so eine spezielle Speicherarchitektur hat ins GPU benutzen.
Aber, also ich meine, das Problem ist doch, dass der Macs nur bis 192 GB kaufen kannst.
Ja, das ist auch.
Und das ist wieder für das Milliarde kostet, ja.
Dass sie sich irgendwie das so.
Exponentialkurve und SD-Karte kriegst du für einen Terabyte, kriegst du nur ein Upon I.
Genau.
Und so einen AMD-Prozessor mit vier Prozessordern, Prozessors drin, da kannst du 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 irgendwie gesehen auf einem Postgres-Newscletter, 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 Hauptsprecher für gar nicht mehr so wahnsinnig viel Geld.
Und das ist wirklich absurd, was da gerade geht.
Also, aber ja.
Ach ja.
Aber manche Leute brauchen das halt.
Also ich meine, das ist halt, es ist doch schön, dass es das gibt.
Ja.
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, also ich würde sagen, so dieses, dass das jetzt billiger ist oder so, das sagt jetzt wie Diepsig, 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 fragt, die sich auskennen, sagen die, das liegt genau auf den Scaling-Kurven drauf.
Da ist nichts mit.
Das ist überhaupt kein Stück billiger als irgendwas anderes, ja.
Also das liegt ganz genau auf.
Das muss sicherlich eine geschönte Zahl sein, ja, dass du sagst, hier, hassa,
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.
Also zum Beispiel Anthropic hat tatsächlich Zahlen dazu veröffentlicht.
Also der Chef von Anthropic, da irgendwie Dario Amoday oder so, der hat auch tatsächlich veröffentlicht, wie viel sie, wie viel es gekostet hat, so nicht 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 A-Zieler-Hardware.
Ja, ja.
Genau.
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 zu und da sind einige wirklich gute Tricks dabei und so.
Also das ist wirklich solides Engineering, also kann man sich nicht beschweren.
Einfach um die Exportbeschränkung rum.
Top.
Aller erste Klasse.
Ja, aber jetzt, was, genau, also das erste Modell, das wir veröffentlicht haben, also das war sozusagen, hat 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, also Mitte bis Ende Januar, ich weiß gar nicht noch wann, kam halt irgendwie R1, wo sie dann so einen Marketingbass drum gemacht haben.
Das ist aber wirklich, also das ist jetzt keine Kunst.
Also von einem guten Foundation-Modell.
Ein guten Marketing-Bas machen ist schon ein bisschen.
Ja, irgendwie eine gute Kunst, aber das Modell war jetzt kein.
Das Modell selber war nicht, das war nicht auch sinterregend eigentlich.
Aber das Marketing schon.
Also sie wussten halt, okay, ne, irgendwie, wir haben ein Modell, das ziemlich gut ist.
Und jetzt haben sie halt dann draus halt irgendwie 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 da so ein bisschen dran gedreht hat oder viel Geld verdient hat.
Ja, ich weiß auch nicht.
Ich würde jetzt erwarten, es könnte irgendwie so ein Hedgephone sein zum Beispiel.
Weiß nicht.
Ja, was machen die da?
Was machen die viel zu riskant?
Nein.
Also ich weiß es nicht.
Auf jeden Fall ist das natürlich schon so ein bisschen verdächtig.
Und ja, auch wenn man auch da wieder, wenn man Leute fragt, die sich damit auskranken, sagen die so, warum fällt eigentlich der Nvidia-Aktienkurs?
Also ich meine, klar, natürlich ist es eine Blase, ja.
Das ist auch, muss auch irgendwie dem Klasse sein.
Was?
Also du hast doch nicht ernsthaft angenommen, dass das da irgendeinen Fundamentaldatenzusammenhang gäbe.
Ja, 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 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 einfach, sie zu betreiben, sind einfach sie zu trainieren.
Und dann ist die Konsequenz eigentlich nicht mehr.
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 sag mal so, aus ökonomischer Sicht macht das keinen Sinn, dass der Aktienkurs von Nvidia fällt, wenn irgendwie man jetzt sieht, dass man mit Computern, dass man mit halt irgendwie Chips mehr macht.
Jochen, du glaubst doch nicht, dass das Kaufen eines Wahl irgendwas mit ökonomischen Ratio zu tun hätte.
Nee, natürlich nicht.
Hast du welche gekauft, Jochen?
Hast du Nvidia gekauft?
Ah.
Hast du dir geschafft?
Ich kann nicht genug Marketingbass generieren, um da irgendwas zu.
Diese Podcast-Episode, die.
Keine Aktienempfehlungen von Podcastern, bitte irgendwie.
Nee, ich habe da nichts gekauft und nichts verkauft.
Das ist auch vielleicht doof, ja.
Also müsste man vielleicht eigentlich machen.
Ja, bei den Steuern, die man hier zahlen muss.
Aber, also genau.
Also irgendwie.
Aber du glaubst nicht, dass Nvidia mehr wert ist als die gesamte deutsche Wirtschaft zusammen.
Ja, finde ich irgendwie komisch, ja.
Glaubst du nicht.
Ja, okay.
Ich glaube es auch nicht.
Ja, aber interessanter Weg, jetzt aus diesem Wissen irgendwie Geld zu machen, das hat Deep Seek irgendwie geschafft.
Und ja, ich meine, das haben sie wirklich gut gemacht.
Also muss man anerkennend sagen, ist irgendwie eine.
Und ich hab, ah, und dann hat jemand auf Mastodon oder so hat jemand eine ganz interessante Geschichte gepust.
Und das fand ich auch total super.
Er meinte so, okay, das ist also da, Deep Seek hat das ja ganz gut gemacht.
Lass mal überlegen, gibt es vielleicht noch irgendwelche anderen Firmen, die halt auch total überbewertet sind oder wo es eine Blase ist.
Nein.
Wo man vielleicht sowas ähnliches machen könnte.
Zum Beispiel, was ja auch immer so ein Problem ist, hatten wir es gerade schon von Open Source, ne?
Ist 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 meine, okay, das ist jetzt grob vereinfacht.
Ich habe ehrlich gesagt keine Ahnung von SAP, aber ich würde sagen, das ist halt eine relationale Datenbank und ein bisschen Frontend drumherum, 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.
Spezifisch, okay.
Ja, und das ist ja eigentlich ein Trick an der Geschichte.
Verstehe?
Oder sonst irgendwie
dafür bezahlen, musst du sagen.
Würde jemand für dich gut bezahlen.
Das halt in Open Source nachzubauen.
Und dann Weihnachten 2025 wirft man halt das Ding irgendwie rauf, raus.
Ja.
Und sagt aber vorher.
Hat vorher natürlich muss man irgendwie so ein paar Leerverkäufe machen, so tätigen.
Und dann sagen wir hier so, SAP-Kunden, ihr habt den Ding, das kommt genau das gleiche und ihr müsst die ganzen Lizenzgewöhn nicht bezahlen.
Das Problem ist halt, dass das so customized ist an die ganzen Schnittstellen, die sind.
Dominic Loden Realität.
Ja, okay.
Ja, natürlich.
So einfach ist es wahrscheinlich natürlich nicht alles klar, ja.
Aber ich glaube, der einzige Verkaufsfaktor ist, dass die ganzen, was sind das, Silos, der ganzen Matrix-Konzerne von Finance über HR, über 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.
Und das ist halt Mighty.
Nochmal zurück zum Thema News.
Das kann man aber schon nachbauen.
Glaube ich.
Ja, ich glaube auch.
Hast du Lust?
Ja.
Aber ja, also.
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 irgendwie sich das Glas Wasser dann irgendwie einem golden Wasserhand irgendwie holt.
Das macht dann, ja.
Ich weiß es nicht.
Keine Ahnung.
Ja, aber ich fand die Idee auf jeden Fall interessant und dann dachte ich so, ah, das musste man ja, das muss man noch jemand machen hier.
Ja.
Genau, News.
Das war diese Deep Seek-Geschichte.
Also ja, es ist interessant.
Also insgesamt ist es natürlich auch eine tolle, tolle Geschichte, dass es halt irgendwie, also ich meine, ich glaube, diese Vorhersage von Jan Le Kune, der da jetzt bei Meta Dinge macht oder so, dass er sagt, ja, auf lange Sicht werden die Open Source Geschichten gewinnen, ist richtig.
Jetzt natürlich irgendwie DeepSeek, das Modell, das ist keine Open Source, das hat alles überhaupt nicht gar nichts mit Open Source zu tun.
Also den Medien hört man immer so, oh, ein Open-Source-Modell.
Nein, natürlich nicht.
Alles Quatsch.
Ja, Trainingsdaten 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.
Und man konnte es halt auch benutzen, es war halt frei verfügbar einfach.
Also es war nicht nur Per-Schnittstelle über ein bisschen.
Keine komische Lizenz, ja.
Also Lama hat ja immer noch diese eigenartige Lizenz, so du darfst es verwenden.
Du bist Googelt, dann nicht.
Aber das hat mich jetzt noch nie gestört an der Lama-Lizenzvereinbarung.
Bist du nicht Google?
Da bin ich weit davon entwickelt, von den 700 Millionen Maus.
Ja.
Wie auch immer.
Ja, wie auch immer.
Genau, 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.
Ja, Sam Altman verloren?
Nein, nein.
Fast.
Wir haben nochmal Glück gehabt, dass das nicht fasziniert.
Ja.
Also, äh, ja, also Alec Redford ist jetzt auch weg.
Und die Leute, also es haben schon mal, also die ersten, also die Leute, die Entropic gegründet haben, oder halt Dario, hat halt irgendwie versucht.
Die waren doch auch Zim noch auch von OpenI alle.
Ja, die kommen auch alle von OpenI.
Das sind die Leute, die ChatGPT ursprünglich mal gebaut haben.
Und die haben aber auch schon mal versucht, Sim Altman feuern zu lassen.
Es hat nicht geklappt, dann mussten sie alle gehen.
Und ja, dann haben das nochmal wieder Leute versucht, die haben es, es hat auch wieder nicht geklappt, da mussten wieder alle gehen.
Und es gehen immer noch irgendwie Leute.
Ist ein Modell, kann man machen.
Ja.
Aber ich meine, was ich gut finde, ist es halt wirklich irgendwie ganz ordentlichen Wettbewerb gibt.
Also ich muss auch sagen, die Anthropic-Geschichten, das ist zum Beispiel zum Programmieren, finde ich, ist so nett so das beste Modell momentan.
Und ja, es funktioniert alles super.
Genau, dann aber auch interessant, die neuen OpenAI-Modelle O3 oder so.
Da gab es große Erfolge bei irgendwie AGI und Frontier Math Benchmarks und so.
Also das ist schon.
Ja, ich glaube, der Trick ist jetzt halt tatsächlich, dass man das so verknüpft mit so einer Art persistenter Datenbank, auf die das zugreifen kann, das Ding.
Persistente Datenbank?
Ja.
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 dass quasi das Consciousness gesafed 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, ja?
Also sowas wie Reasoning über Zusammenhänge, die man hat oder Neubilden von Informationen anhand der Informationen, die man dann schon gespeichert hat, aus so 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, wenn man mit sich selber einen inneren Dialog hält.
Ja, gut.
Die Anfänge von so einer Subject-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-Kontext-Protokoll von Anthropic, wo du halt sozusagen dem Modell irgendwie Dinge geben kannst, sozusagen.
Oder halt du kannst immer auch Zugriff auf deinen Rechnern geben oder was auch immer.
Oder auf deine Daten.
Du kannst eine Datenbank anbinden.
Das ist die eine Geschichte, dass du 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 es hätte nur die Fälle dasselbe, ob der es Rag machst oder nicht, ist ja fast egal.
Ja.
Genau, also macht inhaltlich keinen großen Unterschied.
Das andere, dieses, diese, diese, diese Reasoning-Modelle, das ist halt irgendwie, das ist halt so eine Kombination von irgendwie dem Token generieren, was halt alle Modelle da irgendwie machen.
Das musst du mal erklären, was du damit meinst.
Naja, dass du halt einfach Next Token Prediction machst.
Okay.
Das machen die alle.
Aber der Unterschied jetzt zu den Reasoning-Modellen ist halt, dass man jetzt sagt, okay, man generiert halt.
Generiert halt so Chains of Thought und zwar jede Menge.
Ja.
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, die wir im Schach irgendwie halt auch Varianten machen.
Ja, jetzt sind wir nämlich in einem Graph drin und diese Grafen haben quasi ja auch States, die irgendwas machen.
Und jetzt kann man vielleicht hingehen und kann das kuratiert hart coden 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, also sich jetzt überlegen, wo man die, wo man Computer ausgeben möchte zur Inference-Time oder bei Trainingszeit.
Und für ein optimales Ergebnis muss man halt irgendwie wahrscheinlich ein bisschen mehr Compute 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 Riesenunterschied.
Und ich meine, der Arc AGI Benchmark ist halt komisch benannt, weil er hat nichts mit AGI zu tun, aber das ist, kriegen Leute auch mal einen falschen Hals.
Und ja, Frontier Math ist aber auch, ja, oder auch super interessant, wie heißt das Ding?
Dieser Coding-Benchmark.
Ah, ich habe es vergessen.
Aber das sind auf jeden Fall irgendwie, sie haben echte Pull-Requests genommen.
Gegen Projekte wie zum Beispiel Django ist halt auch mit drin, aber halt auch noch so ein paar andere.
Cycled 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 Real.
Also es gab immer schon spezialisierte Modelle, die ganz gut abschneiden, aber das ist halt irgendwie, ja, es ist halt auch nicht so einfach, die irgendwie laufen zu lassen.
Aber die diese 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 ist schon nicht so 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.
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, aber wir brauchen halt noch irgendeinen Gast.
Ja, wenn sich da irgendjemand berufen fühlt oder so, genau, wir suchen da jemanden.
Oder jemanden kennt?
Oder jemanden kennt, den man mal fragen könnte, dann wäre das wahrscheinlich ganz nett.
Weil 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, das da.
Da kann man auf unterschiedliche Arten tun.
Ja.
Genau, und 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.
Okay.
Das erste Item ist, dass Microsoft bei Nature eine Veröffentlichung eingereicht hat, wo sie sagen, sie haben einen Quantencomputer mit topologischen Kubits gefunden.
Das ist wohl eine andere Art, Kubits zu machen, die stabiler ist und es ist aber, also da ist sehr viel Worte drin, die man sich mal von einem LLM anklären lassen müsste.
Special kind of qubit built using non-abelian anyons, which are excitations that 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 ist denn
anthologische Quantenkompensatz?
Keine Ahnung.
Es war einfach nur in der Veröffentlichung, dass es einen Durchbruch gab in dieser Art Quantencomputer.
Und es hat auch einige Bellen erzeugt.
Ja, also Quantencomputer wäre schon voll cool, aber ich, also alle bisherigen Durchbrüche waren nicht so richtig Durchbrüche.
Sind noch nicht so weit gekommen.
Aber es wird Zeit, dass man zu Postquantenkryptografie wechselt.
Der hat auch einen tollen Namen, dieser Chip, der heißt Majorana.
Majorana.
Ja, das liegt daran, dass das ist so ein, das ist tatsächlich der irgendein Autor, der
klingt, das hätte jemand so 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.
Das ist massiv, ja, richtig.
John Haberman war das, oder Josh Habermann?
Ken Jin war das.
Aha.
Und ist schon, ist, es ist jetzt schon gemerged und wird in M314 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 neueren Compilern.
Das ist auch einer der Grund, warum sie es nicht per Default anmachen, weil du brauchst halt wirklich neue Compiler.
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 weg eliminieren.
Da gibt es so einen Flag, das heißt Must-Tail.
Das sind alles technische Details.
Das Interessante ist, dass da wirklich einfach mit einem mit einer neuen Umsetzung einfach 10%, 10, 15% mehr Performance rauskommt.
Und das ist schon, das ist schon fantastisch.
Ja, voll gut.
Stimmt.
Ja, ansonsten genau.
Habe ich jetzt, glaube ich, gar nichts.
Ich muss mal scrollen, dass du viel Zeugst, aber das
Alter ist schon vorbei, ist nicht mehr.
Ja, also wir haben auch, da sollten wir vielleicht auch einfach was zu sagen.
Wir hatten mal aufgerufen, ob Leute sich melden könnten, die Interesse dran haben, irgendwie so einen Hörertreffen mal.
Ja, da gab es und da gab es relativ viel Feedback tatsächlich.
Und da so, sagen wir mal, so ausreichend genug, dass wir das jetzt wohl tatsächlich ernsthaft ins Auge fassen müssen.
Keine Ausrede mehr.
Ja, aber es ist
ja leider nicht in Süddeutschland, deshalb ist es eigentlich auch egal, ob wir das machen oder nicht.
Ja, du kommst einfach mit, Johannes.
Genau.
Das ist 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 drausgehen kann, wo es irgendwie schön ist.
So Mai-June.
Irgendwie so, genau, genau.
Und dann brauchen wir noch eine Location irgendwie und dann müssen wir den Johannes irgendwie machen.
Was wollen wir denn zum Hain?
Also ich würde ja eher so Erwachsenenzeit nehmen, also irgendwie so mittags anfangen.
Ah, okay.
Anstatt abends.
Ah, dieser der Erwachsenenzeit.
Ja.
Und dann kann man sich doch irgendwie ein schön was Grünes raussuchen, oder?
Muss ja nicht jetzt so im Schiff.
Ja.
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.
Also Düsseldorf wird's.
Kleiner Spoiler.
Ja.
Ja, aber es haben viele Leute, die hier sagen, 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.
Du wolltest ja einiges.
Wolltest du nicht noch irgendwas erzählen von der Foskon?
Ach, Fosdem, ja, genau, doch.
Ja, könnte ich, genau, auch.
Ja, und ja, warte, dann mache ich mal am besten mal eine Kapitelmarke und sag je mal.
Ja, PyCon-Webfer auch noch.
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 war nicht so riesig groß.
Wo fand das denn statt in Berlin?
In Berlin.
Achso, ähm, CC, irgendwie so ein Center.
Das war relativ draußen in da Viertel.
Moment, ich muss mal kurz hauen.
In irgendeinem Viertel.
Okay, ja.
Also genau, irgendein Haus in irgendeinem Viertel in Berlin.
War.
Also war nicht so groß wie die Pizza.
Das ist eine genaue Beschreibung.
Ja, genau.
Ja, wir können die Konferenz einfach verlinken, dann können wir da nachgucken.
Waren interessante Sachen dabei?
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 UU-IDs gelernt.
Ah, okay.
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 weißt du.
Okay, gut, dann muss ich mir denen wohl mal angucken.
Ja, ich habe tatsächlich umgestellt in Dango auch jetzt auf sieben, glaube ich, ja.
Ist leider eine extra Lippe 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 7 und die sind auch dann geordnet und so.
Das ist sehr, sehr schön.
Ja, genau.
Ich war jetzt am Anfang Februar auf der Fosstem in Brüssel.
Und ja, ne, 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, es ist halt, also allein sich das Programm anzugucken, ist halt schon ein Ding der Unmöglichkeit, weil das ist so, sobald man einmal durch alle Talks durchgescrt hat für den Tag und nochmal geguckt hat, sind die Talks, die man sich angucken wollte, schon vorbei, weil es dauert einfach zu lange.
Hast du einen
Sitzplatz bekommen irgendwo?
Ja, ja, doch.
Also klar, es war schon auch sehr voll.
Also das ist, aber gerade bei den großen Sälen kam man eigentlich meistens dann doch noch irgendwie rein.
Manchmal musste man ein bisschen früher da sein.
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, ne, dass nicht mehr so viele Leute zu irgendwelchen Veranstaltungen gehen und das alles irgendwie so ein bisschen, ja, und dann, also bei der Subscribe war das zum Beispiel auch so, dass so ja, also 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, also 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 Fostim war das halt so, also 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 Seile 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 Deathroom hat Marc-André gemacht, oder?
Genau, ja.
Das war am Sonntag.
Das war halt am Wochenende, Samstag, Sonntag, Sonntag war Python Dev Room 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.
Nicht da.
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, ne?
Europrise und das ist immer toll.
Da konnte man dann, während man einen Talk gerade auf dem Telefon weiterguckte, auf dem Hauseweg 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ücken.
Ja, das Fanscenter.
Das geht da schon, das geht ja 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, also Brüssel ist irgendwie viel weitläufiger, als ich jetzt gedacht hätte.
Also Brüssel auch keine so riesige Stadt, ein 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 Kern.
Also du wohnst ja halt auch im Zentrum.
Das ist ja 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, habe ich anderthalb Stunden.
Nee, das brauche ich nicht.
Doch, von mir auch schon.
Achso, ja gut, okay.
Okay, ja, ja, okay.
Aber du bist ja noch nicht am ja, okay.
Ich bin nicht mal am 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 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.
Und das ist in Brüssel aber falsch.
Also das sah auf der Karte aus so, das ist da genau in der Nähe und dann war das halt aber zu Fuß 40 Minuten.
Das geht ja noch.
Ja.
Also in Berlin musste ich tatsächlich 40 Minuten mit der S-Bahn fahren.
Ja.
Also genau, klar, in Berlin ist natürlich auch riesig weit.
Aber das wäre mir klar gewesen.
Deberlin sehr weitläufig ist, das weiß ich, aber Brüssel war man jetzt nicht so.
Und das irgendwie öffentliche 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ück oder so.
Das dauert.
Sieht das sonst aus?
Ja, gut.
Vielleicht.
Ja, aber genau, also ja, also ich habe da auch einen, genau, in dem einen Talk gehalten über mein Resümee irgendwie Side Project.
Jungle Resümees.
Ja, wir machen gerade unsere CV's schick.
Genau, weil das muss man ja so ab und zu machen oder so, wenn, ja.
Kann man es schon mit Voucher-Token direkt einmal aufrufen für das eine Woche gültig, da kann man es jetzt alles schon angucken.
Die ganzen Projekte und sowas, ja?
Ja, genau, genau.
Das ist da auch drin.
Aber im Wesentlichen ist es halt irgendwie so ein JSON-Field, wo der ganze Kram halt drin steht.
Jochen schreibt sogar die ganzen Token mit ins JSON-Feed rein.
Da steht einfach alles in einem JSON-Field drin.
Hätte sich jetzt gar nicht so erwartet.
Ja.
Alle Plugins, einfach ein JSON-Feed, alles rein.
Papp.
Fand ich mit so.
Postgres als Mongo-DB verwenden.
Ja, genau.
Aber also die Idee ist sozusagen.
Trotzdem schneller.
Ja.
Genau.
Und man macht halt immer nur eine Curry pro, wenn man eine Webseite rendert.
Aber man muss immer nur dieses eine Ding aus der Datenbank holen und fertig.
Aber der eigentliche Grund, warum ich das an der Stelle so gemacht habe und nicht irgendwie quasi so in Normalform so normalisiert irgendwie eine 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 halt auch eine Liste pflegen mit offiziell supporteten Plugins und dass sie alle auch identische Keys nicht haben oder dann, dass sie.
Ja, das muss man vielleicht nicht, aber kann man wahrscheinlich auch irgendwie automatisch machen, aber das ist halt dann schwierig.
Während wenn halt man sagt, also wenn du ein Plugin schreibst, dann ist sozusagen die Anforderung, dass das etwas sein, also 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 sage, da gibt es eine Name-Collision Time, weil das gleiche Plugin-Cloud gleich nennt.
Ja, das geht dann für mich blöd.
Aber das ist ja immer Kontrolle drüber, wenn du, wenn du das halt verwendest.
Wenn du dann zwei Plugins mit dem gleichen Namen nimmst, okay, dann naja, hast du halt einen Fuß geschossen.
Aber ja, genau, das ist so, äh, 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 Codegenerierungen ü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, im Kontext von einem LLM und sage dann.
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 so halt so aussieht.
Und ja, das hat eigentlich ganz gut funktioniert.
Ja, ich fand das Projekt interessant.
Das hatte so verschiedene Aspekte.
Gleichzeitig das Plugin-System hat auch so ein Auto-Qrad und so.
Ja, das war Ende deren Technik interessant.
Ich fand es nicht so einfach zu benutzen.
Vielleicht bin ich auch zu doof dafür.
Ja, ist es auch nicht.
Es ist alles experimentell.
Also ich meine, man kann ja mal einfach drauf gucken, das ausprobieren.
Ich habe sich überlegt, ob ich es folgen 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 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
Subkeys von dem.
Ja, okay, verstehe.
Ein Plugin dafür machen.
Genau.
Ja, okay.
Ja, mal schauen.
Genau, das war eigentlich ganz gut.
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, das sollten wir auf jeden Fall an der Stelle machen.
Uns kann man mieten.
Den Jochen kann man mieten und den Dominik kann man mieten.
Dominik, dich kann man inzwischen auch mieten.
Ja, ich kann auch hin wieder.
Ja, das ist ja richtig, das konnten wir bisher gar nicht announcen, aber jetzt.
Ja, doch, ja.
Man konnte mich 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 Mietgilde.
Das ist quasi eine WG.
Ja, also ich würde schon sagen, es ist ein gutes Projektteam, was ordentlich Dampfett auch mal draufkriegt und halt nicht nur so ein paar kleine Männchen, sondern ordentlich.
Dankeschön.
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 Thibo Collar über die Zukunft von Django.
Ich wollte gerade sagen, das ist doch der Mensch, der jetzt in Django, die Präsident.
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 Hörerin-Treffen?
Ist die Woche nach Ostern.
Ja.
Also wir werden alle da sein.
Daher, ja, wenn es wieder könnte man.
Und das ist in Dublin.
Und ich darf kein Bier trinken.
Fürchterlich.
Aber Dublin, gibt es in Dublin irgendein Bier, was man trinken müsste?
Ja, in Irischer Wein habe ich gehört zuerst.
Nein, du gehst in jeden Pub und da gibt es on tap einfach die leckersten Sachen und die ganzen Kraftbeere und alles fresh.
Ja, ah ja, okay.
Wundervoll.
Ja, Cider kriegst du auch, aber Genisswein stehe ich nicht drauf, brauche ich nicht.
Aber andere leckere on Tabsorten.
Aber Django gibt es auch.
Ja, und der eigentliche Grund, warum wir da hingehen.
Ja.
Und die Natur ist so schön grün da.
Das ist schon ein gutes Wetter.
Ja, genau, das wird das wird.
Ja, ist nicht auch nicht auch die EuroPython zum gleichen Zeitpunkt?
Nein.
Nee, die Pycon.de PyCon ist leider zum gleichen Zeitpunkt.
Pykonde.de, genau.
Und PyconData, Pycon.de und Pycon.
PyData.
Genau.
Ist zum gleichen Zeitpunkt in Darmstadt.
Darmstadt, glaube ich.
Ja, aber genau, können wir leider nicht verreisen.
Wir konnten uns halt nicht zerreißen.
Ja.
Genau.
Ja, also Zukunft Django war ganz interessant, weil 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 Framework verwenden zu API-Geschichten und so Dinge.
Und ja, war ganz, war ganz nett.
Was man ja, glaube ich, sieht, ist, dass da drüben über den Teich super viel mehr Menschen und Firmen auch Django einsetzen als hier.
Dass man das vielleicht mal so da Aktivität machen könnte, wenn das so Marketing angeht.
Da hatte er auch mal einen Blogpost zu jetzt letztens.
Das kam in dem Vortrag zwar nicht vor, aber das fand ich auch sehr interessant, welche Regierungsseiten dann irgendwie Django verwenden und so.
Und das war halt überall irgendwie, relativ viel.
Nur in einem analogen Dorf irgendwie auf der Weltkarte halt nicht.
Welches könnte das wohl sein?
Das globale Funkloch sozusagen irgendwie, 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.
Was ja, keine Ahnung, woran das liegt.
Das ist schon wieder ein Quatsch.
Aber irgendwie geht das hier.
Wundert einen doch nicht, oder?
Wenn man immer noch Fax schicken muss für bestimmte Sachen.
Naja.
Aber anders
hast du nicht mitgekriegt, Dominik, dass die Bundesbank jetzt keine Faxe mehr entgegennimmt seit 1.01.2025?
Nein, echt keine Entgegen.
So weit ist es fortgeschritten mit der digitalen Wand.
Wir haben ihr Fax abgeschaltet.
Die Zukunft ist jetzt, wir sind im Neuland angekommen.
Ja.
Ja, 2025 schon.
Ja, doch gar nicht so schlecht.
So langsam.
Es ging durch die Presse.
Ja, oder jemand anders hat sich überlegt, da macht er ein Faxgerät auf der anderen Seite ein LMN und dann kann man sich die Antworten ausdrucken lassen.
Yay!
Genau.
Ah, dann einen Vortrag, den ich richtig cool fand, der war total super.
Hätte ich gar nichts erwartet.
Ich saß da irgendwie nur, weil ich nicht rauskam, weil es so voll war.
Aber wie ist also immer das besser-Konferenz?
Es gibt Talks, die sehen total toll aus von außen, sind aber total langweilig und das Talks, da denkt man so, hä?
Und dann sind die total spannend und alles dazwischen.
Da hatte jemand irgendwie tatsächlich in PyScript irgendwie irgendwas sehr Excel-mäßiges nachgebaut.
Und das hat tatsächlich richtig gut funktioniert.
Das sah auch noch gut aus.
Das sah auch gut aus.
Okay.
Das war total faszinierend.
Also wirklich so komplette Spreadsheet-Geschichte im Browser und PyScript und alles in Party.
Also die ganze Logik war halt 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.
Die wäre ich jetzt auch noch nicht gekommen, ja.
Genau.
Ja, also Fostham war coole Konferenz sehr voll.
Ja.
Hat da auch jemand dann irgendwann einen Post geschrieben, habe ich jetzt letztens so, ja, also immer wenn jetzt jetzt gerade irgendwie aus aktuellem Anlass haben wir ja irgendwie so ein bisschen Schwankungen, was so die weltpolitische Lage angeht.
Und da irgend 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.
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, naja, also ich meine, wie viel realer Wert ist denn da tatsächlich, das ist auch ein bisschen unklar.
Wenn man sich jetzt aber sich anguckt, wie sieht es denn aus, was jetzt Open Source-Projekte angeht, ne?
Was ist denn da?
Also wenn es auf so eine Veranstaltung wie die FOSM 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 sind europäische Entwickler sind da halt irgendwie eigentlich sehr, sehr gut vertreten, ne?
Also das ist halt.
Ja, nur das Problem ist halt, dass da keiner Geld mehr bezahlen.
Ja, aber also sagen wir mal das Potenzial wäre halt da.
Also es ist halt irgendwie, 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, aber die Leute nutzen das halt alle und sagen halt, ja,
we first.
Ja, das ist blöd.
Ja, aber das sind alles Dinge, an denen man ja was machen könnte und so.
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ß an der Tür oder so, das wäre ganz schlecht.
Aber so eigentlich hat man eigentlich schon ein paar Schwert.
Wenn es ein Gegenmodell gäbe, ne?
Also wenn es tatsächlich irgendwie tatsächlich öffentliche Institutionen gäbe, die das weitermachen würden.
Und das halt nicht nur auf diesem kommerziellen, wir machen das nichts der Aktienunternehmen draus funktionieren würde.
Ja, keine Ahnung.
Aber genau, also es gibt auch den, es gibt ja so Tech-Sovereignity Funds oder sowas.
Also einer von denen bezahlt jetzt auch irgendwie Hugo von Caminade.
Als europäischer, ich glaube, das ist sogar deutscher irgendwie, als Python-Entwickler.
Der ist ja jetzt auch Release-Manager, glaube ich, für 314, 315.
Das ist schon mal ganz gut.
Es gibt ja jetzt, ja, keine Ahnung, in Frankreich passieren auch lustige Sachen.
Naja.
Ja, genau.
Wir hatten auch noch ein Thema, glaube ich.
Ja, wir hatten auch noch ein Thema.
Was?
Oh je, ich habe das nicht.
Moment, ich mache meine Kapitelmarke irgendwie Thema.
Also wenn wir jetzt noch eine Minute auf Topic reden, dann haben wir die Stunde voll auf Topic.
Ja, okay.
Oh gut, aber dann, ja, Johannes, willst du vielleicht etwas erzählen über Strings und Strings und Jungs?
Ja, ich muss sagen, die ersten beiden Kapitel, die wir gelesen haben, die waren ja sehr voll.
Und die waren auch sehr breit.
Und im Vergleich dazu ist dieses Kapitel nicht so interessant.
Und das ist sowohl gut, als
wir so lange Einheiten haben, das ist in der Viertelstunde
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.
Weil eigentlich sollte das alles funktionieren.
Und in Python 3, meiner Meinung nach, ist das auch so.
Was ist denn nochmal Unique?
Viele Sachen sehr gut.
Genau, es geht um Strings und Bytes.
Und das große Problem an Strings und Bytes 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 Bytes.
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 ja aber auch ein schrecklicher, schrecklich Vorstellung.
Wenn man nur ASCII verwendet, dann sind Bytes und Strings das gleiche.
Weil ich einfach sagen kann, okay, also ein String ist halt eine Abfolge von Bytes und alle Zeichen, die es gibt, die sind da drin.
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 Esse oder C M C Dier oder I mit und ohne Punkt oder dies und das und jenes.
Ja, ich habe auch so ein gleich F6 in meinem Namen.
Ja, stimmt.
Ich habe extra nur einen ASCII-Namen, da meine Eltern drauf geachtet.
Ja, das ist
natürlich, ja, das sollte man schon machen.
Genau.
Und das Problem ist, also aus historischer Sicht gab es halt die Computer in den USA, ja, und da gab es ASCII drauf.
Und ASCII hat geschickterweise nur 7 Bit.
Das heißt, da sind noch 128 Zeichen frei 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 CP850 erinnern oder an CP437, 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 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.
Nee, das heißt nicht, achso, also ich wollte gerade an der Stelle macht immer irgendjemand diesen Witz.
Nee, nee, es heißt nicht Unicode, sondern 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 verschlingt 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, das 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, ja, diese Tabelle zu haben.
Das Problem ist jetzt, es sind mehr als 255, das heißt, die passen nicht in ein 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 UTF8.
Ich weiß gar nicht, was das heißt.
Aber das ist ein sehr schlauer Trick.
Unico-Textformatting, okay?
Das kann sein.
Es gibt auch UTF16, es gibt auch UCS2, es gibt auch diverse Varianten davon.
Und dann muss man doch wissen, ob die Little Endion sind oder Big Endion und ob die einen Byte-Ordemark haben oder nicht.
Und das ist alles ganz wundervoll und eigentlich will man sich damit gar nicht beschäftigen.
Unicode Transformation Format.
Okay.
Es ist ganz interessant, sich anzusehen, wie es funktioniert.
Da gibt es ein sehr interessantes Video von Numberfile, 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 8, 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.
Und inzwischen ist es tatsächlich so, dass man fast überall UTF-8 verwenden kann.
Auch Chines, ja, auch für Chinesischen, auch für japanischen, auch für Koreanischen, 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 drin steht, sondern es ist eigentlich eine Zahl.
Und die Zahl, die geht eben von 0, das ist das 0-Byte, bis, keine Ahnung, dort hinaus.
Ich weiß es nicht, wie weit es geht.
Es ist eine komische Zahl, die mir nicht, die mir nicht bekannt vorkam, 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.
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.
Und das war meiner Meinung nach einfach nicht sehr sauber und nicht sehr fein.
Python 3, seit Python 3, seit den wenigen Jahren, die es Python 3 gibt, gibt es da 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 da den entsprechenden Typ erwähnen.
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 Code Points nach Bytes oder von Bytes nach Unicode Code Points?
Weil es könnte eigentlich beides sein.
ENCODE geht zu Bytes.
Encode geht zu Bytes, also von Unicode, von Strings zu Bytes.
Es könnte aber auch andersrum sein.
Und Decode geht entsprechend andersrum.
Das heißt, wenn ich einen String habe, wo Unicode-Code Points drinstehen, dann kann ich ENCode sagen und dann kriege ich da einen Byte-String 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.
Und das sorgt dann dafür, dass irgendwelche Fragezeichen in Namen drin sind oder irgendwelche.
Ja, diese komische schwarze Raute mit den 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 zu Bytes und zurück.
Und da gibt es ganz viel Gefitzel 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.
Das kann sein, dass man da mehr Platz verbraucht.
Aber ganz ehrlich, für Textdaten heutzutage
ist es auch wurscht.
So ein bisschen Wurscht ist ja, ja.
Also ein bisschen
Wurscht ist der Geld.
Green IT sollte man ja auch bedenken, da muss man natürlich Datensparsamkeit immer als ganz besonders.
Ah, das ist schon richtig.
Das ist schon richtig, aber Textdateien werden nicht den Großteil deiner Datengröße ausmachen.
Und 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 Flu und Python zu lesen.
Nee, ja.
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 offene Datei mit Read-Modus und Open offene 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 es, lies mir diese Datei bitte als UTF8-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-Oder-Mark automatisch behandeln.
Also wenn, das ist dann alles schon gemacht, wenn es eine UTF8-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-Errond 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 UTF8-codierte Textdatei ohne Byte-Order mag.
Und das ist die richtige Wahl, ja, das ist das Richtige.
In den allermeisten Fällen funktioniert das.
Aber 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-Warzen, die man da jetzt sich reinholt.
Weil man halt irgendwie das Encoding rausfinden muss.
Dann gibt es eine Package, das heißt Chartet, der untersucht mit Heuristiken, welche Zeichen da drin sind, 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-Encodingen anderes ist als die ganzen anderen und es ist nicht UTF8.
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 da funktioniert UTF8 und alles ist UTF8.
Und fertig, das macht es alles viel einfacher.
Ja, ja.
Ja, I agree.
Ja, ja, ja.
Und das ist eigentlich das Fazit, das dem ganzen Kapitel.
Einfach UTF8 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?
Ja, das sind halt unterschiedliche Hinweise.
Also da gibt es, also Skorpion ist, glaube ich, das, was er einen irgendwie beißen kann.
Genau, das wollte ich gerade sagen.
Ich gucke mal gerade hier in die.
In dem Kapitel gibt es mehrere Skorpione.
Das liegt halt einfach an dieser Geschichte, von der ich jetzt gerade einen kurzen Abriss gegeben habe, mit 1000 verschiedenen Codepages und vielen verschiedenen Encodings und Moji-Bake und ganz vielen tollen Phänomen, die ihr habt.
Die Erklärung zu Skorpionen ist, this element indicates a warning or caution.
A caution.
Genau, dann gibt es den Raben.
This element signifies a general note und es gibt irgendwie einen Lemuren oder sowas.
This element signifies a tip or suggestion.
Also dieses Kapitel ist voll mit Skorpionen.
Sehr vorsichtig.
Ah, und dann ist er auch vorsichtig.
Und hier, wenn du die falsche Fallpage eingestellt hast, oh, vorsichtig.
Und nicht so ein bisschen.
Ja, Byte von Python.
Es gibt da tatsächlich so ein paar Dinge, die einen in den Stiefel kriechen können.
Da ist wirklich, also auch sowas, es gibt ja so fiese Sachen wie zum Beispiel Unicode-Normalisierung.
Oh ja, das ist auch ein ganz wundervolles Thema.
Ganz wundervolles Thema.
Was ist das jetzt, bin ich neugierig geworden?
Jochen, willst du das erklären oder.
Mach du mal, Jochen, jetzt brauch 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.
Und dann ist
es ein L und ein I und ein E.
Ein E mit einem Accent drauf.
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 darunterliegende Problem ist, dass es zwei verschiedene Möglichkeiten gibt dieses E mit dem Accent darzustellen.
Ja, ja, genau.
Das gibt es als Zeichen.
Es gibt ein Zeichen, das heißt E mit Accent, was auch immer du da drauf hast.
Oder zwei Zeichen.
Und es gibt E und dann gibt es ein zweites Zeichen, kombinierende Accent mit dem davorgehenden Ding dazu.
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 Accents 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, letztlich, genau.
Also, ja, das ist dann da, wo man immer landet halt.
Die wichtigen 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 gleich, 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 dann 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, sortieren, oh Gott.
Und Groß- und Kleinschreibung ist noch, ist genauso schlimm, weil die hängen von der Lokal, von der Locale 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 obendrauf 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 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 i, 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 ganz vielen 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 ausgedickt, weil er geschrieben hat, dass er bei einer anderen ist, anstatt dass er nach Hause kommt.
Irgendwie sowas passiert dann.
Also es gibt tatsächlich Real-World-Auswirkungen.
Die Katze wahr.
Auch Sortierung.
Und auch Sortierung ist genauso, ja.
Sortierung ist auch locale abhängig.
Also das kommt darauf an, wo ich bin, wie ich Zeichen sortiere.
Zum Beispiel auf Deutsch wird das Ä traditionell nach dem A einsortiert.
Auf Schwedisch.
Nicht nach dem Z?
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, weil gerade auch nicht mehr so.
Wenn man das nicht
auch noch irgendwie einen Weg findet, wie man das von der Zeitzone abhängig machen könnte oder so, ich jetzt eh da noch von der Motphase Potenzial für das komplizierter zu machen.
Mal ganz davon abgesehen, dass es in vielen asiatischen Sprachen diesen Unterschied zwischen große Gleitschreibung ja gar nicht gibt, ja.
Da gibt es ja keine große und kleingeschriebenen Zeichen.
Aber große Gleitschreibung 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, ja, 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 das ja ein Doppel-S.
Gab 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 es auch nicht das gleiche wieder raus.
Und das ist ja auch semantisch Unterschied, ja.
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.
Und das ist so ein, ach, die doofen Menschen, ja.
Die haben halt Probleme, die sich nicht 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.
Kannst du nicht machen.
Wenn du mehr Strings groß machen willst, lieber nicht.
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 im Buch sind.
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 D, D, D, Dissociated irgendwie so.
Compact ist das Format, was möglichst wenige Zeichen erzeugt.
Und D, also das Decompost vielleicht.
Decompost ist das Format, was möglichst atomare Zeichen erzeugt.
Also da wäre dann halt das E mit dem Accent 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 Ohm 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 dieses Problem ist, das darfst du einfach nicht machen.
Mach's einfach nicht.
Ja, also ich erinnere mich an diese ganzen Details nicht mehr.
Ich habe 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 Neu-Ray-Move.
Ja, darf man auch nicht auf seine Weihnachtswunschliste 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, an mein Tandy-Liste, weil mein schöner PR mit dem großen scharfen S wurde leider nicht genommen.
Sowas.
So ist es halt.
Und großes, scharfes S ist schon sehr naugty.
Das ist sehr naugty, ja.
Aber er musste ja umgehen können damit.
Ja.
German Character Sharp S, which becomes SS when uppercase.
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 ordentliches Unicode irgendwie.
Der lag aber einfach nicht.
Ja, aber hatten die nicht auch UCS2 am Anfang?
Das kann man nicht mehr.
UCS2, um das um kurz unsere Hörer abzuholen.
UCS2 ist einfach ein Textzeichen wird zu zwei Byte.
Ja.
Und da muss man auch Big Endion und Little Endion sagen, okay, das ist ein Detail.
Dann braucht man ein paar Marker vorne dran.
Die geneigten Zuhörer werden bemerken, dass 2 Byte 16-Bit sind, das sind ungefähr 65.000 Zeichen, das ist weniger als 1,1 Millionen.
Das heißt, das ist so ein Fix, der nicht weit hilft.
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 hat man jede Menge Nullbytes in seinen Dateien drin und das ist
auch irgendwie blöd.
Das ist nicht so cool.
Na gut, kann man kurz zippen.
Ja, okay, also auf jeden Fall, ich glaube, Java hatte am Anfang auch UCS2, die sind inzwischen auch auf UTF-Vachtung gestiegen.
Ja, aber sie hatten schon auf jeden Fall dieses Quasi-Konzept, dass sie intern Unicode hatten und dann nach außen irgendwie encodieren, dekodieren.
Aber ich meine, das hatten sie nur deswegen, weil Java halt, Java halt ein Stück jünger ist als Python und vorher war das gar nicht standardisiert, sozusagen.
Kurz nach der Standardisierung hat Java damit halt dann sozusagen konnte das direkt verwenden und Python halt noch nicht, weil es halt älter ist.
Aber da müssen wir nochmal die Timeline.
Ja, müssen wir nicht immer, aber ich habe das so im Hintergemacht.
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 weiß es.
Also ich, also ich hatte ja mal meine erste Programmiersprache an der Uni, das war, das war Java tatsächlich.
Und wir haben dann noch die sehr dicke Bücher, da kommt also, also zwei Bücher von dem Format von Flur und Pfutten.
Das war einmal irgendwie Java irgendwie von ich weiß gar nicht.
In Nutshell, Java in der Nutshell.
Nee, nicht in der Nutshell, sondern The Language oder sowas.
Und dann und dann die Sprachspezifikation, was halt im Wesentlichen die Grammatik war.
Ja, also 2000 Seitenbücher.
Und das war, meine ich, da war, das war schon Unicode.
Aber ja, und das muss kurz nach.
Ja, 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 einige Dinge, die ich da dieses Public Static Void Main-Dings, das habe ich nie so richtig.
Also da, das fand ich eher so ein bisschen, hm.
Was ist denn da los?
Ja, meine
erste, meine Uni-Programmiersprache war C.
Wir haben direkt mit C angefangen.
Ach, das war nicht die ideale Sprache für Programmieranfänger.
Ja.
Hat für einen gewissen Ausfilterungseffekt gesagt.
Sehr schön.
Aber das ist ja echt schön das Depot, was du da geteilt hast.
Sowas wie Strings with Spanish the Fools zu use, Cat on a file, things with Crash.
Big List of Naughty Strings.
Lesen Sie es in den Shownotes nach.
Strings with my cause hat to re-interpret worldview.
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.
Und das ist auch, also 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 und wenn es andere ist.
Jedenfalls ist da Optimierung drin und 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.
Und das ist doch, ich finde das eigentlich sehr beruhigend.
Aber es ist nicht so, wie man sich vorstellt, dass es halt so eine Abfolge von Bytes oder eine Abfolge von hier, das ist im 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, ja, gut, klar.
Weil, klar, genau, manchmal musst du halt Regular Expressions haben, die auf Bytes arbeiten.
Die funktionieren irgendwie das Gesicht in einem Bild austauschen, das geht auch.
Ja, okay.
Keine Ahnung.
Geht bestimmt.
Die funktionieren anders, je nachdem, ob man Bytes reingibt oder Strings.
Und auch die Regular, also die Regular Expression, der Typ der Regular Expression muss zum Typ des verarbeiteten Datentyps passen.
Und dann ist auch alles so, wie man es sich wünscht.
Das zweite Modul, interessanterweise, ist OS.
Und zwar alles, was mit Dateipfaden zu tun hat.
Und das ist auch so eine interessante Legacy-Sache.
Oh ja.
Weil Dateipfade nicht unbedingt valides UTF8 sein müssen.
Auf modernen Betriebssystemen sollte das so sein, ja.
Also wenn ich eine Datei schreibe, dann sollte die einen UTF8-Dateinamen haben.
Wenn ich in meinen GNOME Explorer, wie auch immer der heißen mag, Nautilus Tuna oder keine Ahnung, was es gibt, einen Dateinamen eingebe, dann wird es einen UTF8-String sein.
Aber das Dateisystem garantiert es nicht.
Und das heißt, es kann Dateinamen geben, die ich nicht in UTF8, die ich nicht als UTF8 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 Funktionen in zwei Varianten, als mit String und als mit Bytes.
Und da kann man auch schöne Strip-Seals treffen.
Dateien, die man nicht löschen kann von der Konsole.
Das war am Anfang, war das, glaube ich, in Python 3.
Also da erinnere ich mich noch, da war der Umstieg von 2 auf 3.
Da war das am Anfang nicht so, da hatte man das, da gab es das noch nicht.
Und da haben Leute irgendwie das Häufig für einige Leute einen Grund, Python 3 nicht zu verwenden.
Also sie sagen, ja, super, ich kann damit meine Dateien leider nicht irgendwie löschen oder ich hoffe nicht.
Es geht einfach nicht.
Es gibt keine Möglichkeit, das zu tun.
Das kann ja nicht sein.
Ja, und dann gab es auch noch diverse böse Sonderfälle mit irgendwie, naja, also eigentlich kann das dann ein Dateisystem, aber halt nicht, wenn du irgendwas uraltes über NFS gemountet hast oder sowas, dann machen wir das Ganze.
Ja, ja.
Ja, ja.
Für mich, das Fazit des ganzen Kapitels, ist modernes Betriebssystem, UTF8, fein.
Also in der anderen Situation übelst vorbei.
Genau, Python 2 und Python 3.
Wie alt ist Python 3 jetzt?
Wann kann das raus?
2010?
14 Jahre?
Ja, so 2010 ungefähr ist das irgendwie losgegangen.
Also 15 Jahre fast.
Also auch Legacy.
Forgetted.
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 habe ich, kann ich sie empfehlen?
Habe ich durchgezogen.
Und Python ist der hat sich sehr lange gewehrt.
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 drü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 behandeln.
Und das, also 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, ich fand es immer so.
Ja, der macht jetzt inzwischen auch ganz viel AI-Zeugs.
Aber genau, ja, ja.
Aber das habe ich auch nie verstanden.
Ja, also das war damals schon ein Streitpunkt.
Meiner Meinung nach ist das schon das Richtige.
War die richtige Entscheidung.
Ja, 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 nochmal
Anwirkungen bei dem NFC und NFD
und Sortierung und dann halt Location und das auch.
Kannst du einfach nicht mehr machen.
Ja, cool, cool, cool.
Genau.
Ah, ja, ich glaube, wenn man, es gibt ja auch noch Dinge vor ASCII, das ist ja auch mal, wenn man jetzt, 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, wenn man es hat so alles, alles schrecklich, macht's gut, ihr Trottel, ich fliege jetzt einfach irgendwo anders hin und dann könnt ihr halt sehen, wer bleibt, dann das nicht funktioniert, weil man halt irgendwie auf dem Ticket hat man halt irgendwie zum Beispiel keine Umlaute oder sowas.
Aber ja, 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 richtigen Hosts
zu bekommen hat.
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 ich, das bei Überweisung oder so ist sicher auch manchmal so, dass ich da versuche, irgendwie das einzugehen und so, hä, geht nicht.
Komisch.
Ja, das hat auf jeden Fall, also dieser Zeichensatz, der da drin ist, ist komisch, aber der ist wenigstens genau definiert.
Ah, okay.
Ja, gut.
Das kann natürlich sein.
Ja, ich habe es aber so früher, oder ich glaube bei Flughaussystemen ist es immer noch so, dass es läuft alles immer über so Großrechner 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, zu gar nichts, natürlich.
Und diese ganzen asiatischen Schreibsysteme, die mehrbeitig sind, sind aber auch zu nichts kompatibel und auch untereinander nicht kompatibel.
Und ah.
Ja, es ist großartig.
Ja.
Wie soll man das Muster an einer Höhle malen?
Machen wir doch wieder irgendwas mit Holz oder so.
Ja, ich fand das mit den EV-Arres immer noch gut.
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 Bytes und mit Legacy-Systemen arbeiten muss, da stehen ein paar interessante Sachen drin, aber zum Lesen fand ich es jetzt nicht so interessant.
Ja, cool, cool, cool.
Aber ja.
Also ich würde sagen, dann haben wir heute die Episode gefüllt, oder?
Mit der Stelle.
Dann machen wir irgendwann nochmal einen Glauters.
Ja.
Genau, aber wir könnten noch sowas wie Picks machen zum Beispiel.
Könnten wir das?
Könnten wir.
Okay.
Dann fang doch mal an.
Wie vorhin schon angekündigt, habe ich sogar zwei Picks.
Oha.
Und einer davon ist sogar, ist sogar Python-relevant.
Der erste Pick, den ich habe, der ist nicht Python-relevant.
Das ist ein Paper auf Astro Archiv.
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 sind so eine Vorstufe von einem schwarzen Loch.
Das sind so schwarze Löcher, die dann sofort wieder wegverdunsten.
Und so wie ich das verstanden habe, ich verstehe ja nichts davon, ja, 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.
Das ist ungefähr so viel, wie die Pyramide von Giza wiegt.
Die wiegt ungefähr 10 hoch 17 Gramm, 1,4 mal 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 ist die Pyramide von Giza?
Gizé, das ist in Kairo da, diese riesengroße Pyramide.
Die große Gizé, nicht Giza.
Ja, also die ist 146,5 Meter hoch und
wiegt ungefähr 1,5 mal 10 noch 70.
Wenn die durch dich durchfliegt, dann merkst du das.
Ja, aber nicht als schwarzes Loch, wenn du komplett ist zum Schlossloch.
Der Grund ist, dass dieses schwarze Loch zu klein ist.
Es interagiert mit keinem deiner Moleküle.
Achso, weil der Schwarzschildradius von dem Ding ist so winzig, dass es.
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 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 primordialen, also diese Primordial Black Holes, dass es die 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 gibt es da nicht so, kann es nicht so viele davon geben.
Fand ich sehr schön.
Mein zweiter Pick, wesentlich weniger physikalisch, ist 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, 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 er Jubi 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 es sehr interessant zu lesen.
Und deshalb ist das 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, ich glaube, Anfang 2024 oder so irgendwie ein Video gemacht, wo er sagt: so, ist das wirklich die Zukunft von Packaging in Python?
Und dann hat er irgendwann im August oder September oder so eins gemacht, wo er dann 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 uneingeschränkt ist, ist, dass dieses Team einfach ungeheuer viel daran 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 Ticket Nummer 11.679.
Wow.
Und offen sind aber nur 1200.
Nur 1200, ja.
Das heißt, die arbeiten einfach alles ab, was ihnen in den Weg kommt.
Und 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 funktioniert.
Ja, so ein paar Kinderkrankheiten am Anfang sind alle weg und es ist so sehr viel cooler, ja.
Das ist super schnell.
Und ich bin inzwischen auch überall hin migriert.
Es gibt auch ein Python-Package, das heißt Migrate to UV.
Das habe ich einfach mal auf alle meine Sachen angewendet und jetzt sind die alle UV-isiert und das ist schön.
Es gibt noch UV Secure und so, da kann man doch in Pipelines testen und sowas, Packages.
Ja, es ist sehr nice, ja.
Ja.
Ja.
Cool.
Ich pick da mal.
Ich weiß gar nicht mehr, wo ich das her habe.
Vielleicht habe ich es bei einem von euch gefunden.
Das 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 visualisieren 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 spannend, so wenn man mal Grafik mit Python machen will oder generieren will und sich mal angucken möchte, wie das denn alles so aussehen kann.
Kann ich sehr empfehlen.
Verlinken wir.
Da kann man echt schicke Sachen mit rendern.
Traktate und sowas alles, ja.
Sehr coole Sache.
Jo.
Tja, was habe 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 neue Release.
Also ich verwende dann Fisch und Fisch gibt es jetzt auch in der Version 4.
Wow.
Und sie haben da auch einen Großteil in Rust neu geschrieben.
Oh, cool.
Also ich mag Fisch eigentlich sehr gerne.
Also vor allem wegen dem Fuzzy-Ding, das ist alles sehr nice und completion, das war immer sehr nett.
Aber was echt nervt, ist, dass Skripte nicht so kompatibel sind.
Die Skriptsprache finde ich anstrengend.
Das bericht 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 Port-Servern drauf.
Ja, mache ich auch, aber ja.
Aber ja, klar, also manche Sachen kannst du halt einfach nicht verwenden in der Fisch Shell.
Genau.
Gut, aber ich mache dann halt, ich habe dann zum Beispiel in so Deployment-Skripten oder so, habe ich dann halt, dann nehme ich halt eine Bash.
Ja, genau, ja, ja.
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.
The Fish of Theseus.
These ja, genau, da gibt es.
Der Fisch des Theseus.
Ja, kennt ihr die Anspielung?
Ja, natürlich.
Aber erklären Sie uns trotzdem dazu.
Okay, der The Ship of Theseus ist halt so ein eigentlich ein Ding aus der Philosophie, dass wenn man jetzt irgendwie so ein altes Schiff ausgräbt irgendwie und ja, man möchte, man möchte es halt sozusagen reparieren und man tauscht jetzt quasi die ganzen alten und vergammelten Teile aus durch neue.
Durch identische.
Durch identische, genau.
Dann hat man ja im Grunde halt zwei.
Ups, hat man ja im Grunde hinterher zwei Schiffe.
Welches ist denn jetzt das Richtige?
Ich glaube, du hast irgendwas kaputt gemacht.
Oh, Moment.
Oh no!
Das nimmt gleich, bricht gleich in Flammen auf.
Ich glaube, das war der Sonntag.
Mit digitalen Audio-Problemen kommen jetzt auch noch.
Analoge Audioprobleme.
Kabel.
Gleich geht es in Flammen aufjochen.
Auch schon.
Jetzt wunderbar.
Keiner hat's gehört.
Irgendwie ist das Kabel tatsächlich nicht mehr so ganz in Ordnung.
Das kann ja
lieb sein.
Das sind die Probleme, mit denen wir uns rumschlagen müssen, um euch diese Episoden zu bringen.
Ich glaube, schlägt man mal irgendwie so das eine Bein über das andere und rupt kräftig an dem Kabelbaum schon rauf und knackt es überall.
Das ist ein Kreuz.
Es ist mehr so ein Kabelstrauch, oder?
Als ein Kabelbaum.
Kabelbaum impliziert eine gewisse Ordnung.
Ja, das ist falsch, das stimmt.
Das ist ein Kabelgebüsch.
Ja, okay, also
das Schiff des Theseus.
Da gibt es auch ganz viele Varianten davon.
Der Theseus fährt 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 Theseus hinten runtergeschmissen hat.
Sind die jetzt noch in ihrem eigenen Schiff oder sind die jetzt in dem Schiff, mit dem Theseus losgefahren ist?
Oder was ist da eigentlich passiert?
Und diese Anspielung ist eben, was passiert, wenn du alle Teile von einer Shell austauschst, ist es noch die gleiche Shell.
Genau.
Weil sie nicht alle Teile ausgetauscht haben, wenn ich es richtig verstanden habe.
Ja, aber auch in der Philosophie, also ein sehr, sehr interessantes Problem, irgendwie, das passiert ja tatsächlich bei Menschen auch, ne?
Irgendwie, wenn man Dinge isst und wieder ausschaltet, dann 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, ja.
Natürlich, klar, also natürlich wirst du nicht alle austauschen, aber und auch nicht die, ja, 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 Gleich ist.
Wir sind aber immerhin 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.
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.
Aber die Frage halt wäre halt, wie kann das denn, wenn ich jetzt das ganze Material austausche, wie kann es denn sein, dass es immer noch das gleiche ist, sozusagen?
Also wie kann ich denn zum Beispiel, oder wie kann ich beim Menschen, wenn da ja alle Teile ausgetauscht werden und auch jetzt ansonsten das Schwierig ist mit der Kontinuität, weil es ja auch unterschiedliche Lebensphasen ist, aber ich kann den gleichen Menschen immer noch erkennen als Kind oder als Kreis, wie kann denn das sein?
Ja, was ich da erkenne.
An den Contract gehalten, an die Closure, an das Protokoll, an das Schema, an das Modell, das ist doch scheißegal.
Das regt mich auch so ein bisschen auf an diese Beamen-Debatte, wo du sagst, wenn du jemanden mit dem Star Trek-Transportermechanismus irgendwo hinbeamst, dann nimmst du die ganzen Moleküle und zerhaust sie und auf der anderen Seite machst du neue Moleküle und machst sie.
Eigentlich ist es ja kein Mensch, sondern es ist Mord und Klon.
Aber ja, also es hat mich nie überzeugt, dieses Argument.
Weil du beim Beam immer nach dem Beamen immer noch genau der gleiche bist.
Ja.
Ja, weil wir das ja sowieso die ganze Zeit machen.
Jedes Mal, wenn ich das mache, bin ich immerhin noch der gleiche.
Ja, und wir wissen ja auch nicht, ob Zeit nicht quantisiert ist und ob wir überhaupt eine Kontinuität haben und so weiter, aber ja, das geht jetzt vielleicht zu weit für den Programmierpodcast.
Liebe Hörer,
folgen Sie uns auf Philosophie für Anfänger.
Ja, ich kann aber auch mal so vielleicht noch ein Pick, den ich dazu irgendwie in Stellung bringen könnte, wäre halt irgendwie, wenn sich mal die Sachen von Joscha Bach anhören.
Der hat jetzt auf dem letzten CCC-Kongress auch wieder einen interessanten
kontrovers wahrgenommenen.
Ja?
Ja.
Okay, das habe ich gar nicht so kontrovers.
Ja, es gibt mittlerweile Leute, die finden alles komisch.
Also, sag mal so, es gab da diesen Essay auch von dem an Schofek-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 noch Widiverse, da waren noch viele Leute sehr empört.
Ja, den hat man so mitgekriegt.
Und ja, genau, er hatte einen Vortrag gehalten mit dem Titel Self-Models of Loving Grace.
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 an.
Wenn man das jetzt kombiniert mit diesem Attention is all you need-Ding, wird da auch philosophisch etwas draus, weil man tatsächlich wahrscheinlich in den Quantentheorien immer durch die jeweilige Aufmerksamkeit die Dinge erst verwirklicht.
Spannend.
Jetzt sind wir alle sprachlos.
Ich finde, das ist das perfekte Ende und heute Episode.
Also bleibt uns doch gewogen.
Feedback hallo at pythonpodcast.de.
Schreibt, ob ihr uns irgendwo treffen wollt, ob ihr vorbeikommt, gerne.
Wir möchten gerne eure.
Idee für eine Location?
Ja, die machen wir.
Das machen wir schon.
Machen wir?
Ja, ja, das war gut schon.
Und ja, wir organisieren das irgendwie, dann schreiben wir euch irgendwie und freuen uns auf euch.
Und würde sagen, dann hört uns, wo auch immer ihr seid.
Guten Morgen, guten Abend, gute Nacht.
Viel Spaß.
Bleibt uns bewogen.
Schaltet wieder rein.
Bis bald.
Und bis zum nächsten Mal.
Tschüss.
Ciao, ciao.