Dominik: Ja, hallo, liebe Hörerinnen und Hörer, willkommen bei einem Python-Podcast, Episode 62 heute.
Dominik: Hi, Jochen.
Jochen: Ja, hallo, Dominik, herzlich willkommen und hallo, Johannes.
Jochen: Hi, Johannes.
Jochen: Hallo zusammen.
Jochen: Mal wieder, ja.
Dominik: Ja, mal wieder. Wir wollten heute wieder über ein weiteres Kapitel unseres wundervollen Buches sprechen.
Dominik: Ja.
Dominik: Und ja, mal wieder, wir sind tatsächlich ein bisschen spät dran in diesem Jahr.
Jochen: Ja, wir wollten eigentlich auch noch andere Dinge machen, das hat nicht so richtig funktioniert.
Jochen: Ja, das sind noch ein paar Episoden.
Jochen: Wir hatten eine Pause, kreative Pause.
Dominik: Ja, und da sind noch andere Episoden noch in der Warner-Aktion.
Dominik: Die kommt aber, die kommt wahrscheinlich tatsächlich vorher, denke ich mal.
Dominik: Ja, die ist vorher erschienen?
Jochen: Nein, ja, wir werden sehen.
Jochen: Ja.
Dominik: Ja, was ist denn das Kapitel heute?
Dominik: Johannes hat es ganz gelesen, habe ich gehört.
Johannes: Ich habe es gelesen, ja, extra heute Mittag noch.
Johannes: Ja, gut.
Johannes: Also ich meine, vor Wochen schon.
Jochen: Ja, wollen wir vielleicht ein bisschen News machen oder so?
Jochen: Wir haben auch noch so ein paar.
Jochen: Aber ich wollte kurz sagen, was?
Jochen: Um was es heute geht.
Jochen: Ja, okay.
Jochen: Ach so, ja, dann muss der Johannes es wohl sagen.
Johannes: Es geht um Bytes und Strings.
Johannes: Okay, cool.
Johannes: Cool.
Johannes: Alle Datentypen ein bisschen.
Dominik: Und wie heißt das Buch?
Dominik: Fluent.
Dominik: Das ist Fluent Python.
Dominik: Fluent Python, genau.
Dominik: Ja.
Johannes: Meine Kinder sind immer beeindruckt, wenn ich ihnen das dicke Buch zeige, wie viel da drinstehen muss.
Johannes: Ja.
Johannes: Dass man so große und lange Bücher überhaupt lesen kann.
Dominik: Ja, das ist auch schon die dritte Episode über dieses Buch, die wir machen.
Dominik: Das ist ja Premiere.
Jochen: In diesem Buch, da stecken auch noch ein paar Episoden drin.
Jochen: Ja, aber so viel.
Dominik: So viel Content haben wir noch aus keinem Buch gezogen bisher.
Dominik: Ja, ja.
Dominik: Also von, hä?
Dominik: Ich habe hier noch ein paar andere dicke Bücher.
Jochen: Da ist auch noch Python in a Nutshell und, ja.
Johannes: Wie dick ist Python in a Nutshell?
Jochen: Nicht ganz so dick wie Fluent Python, aber ähnlich.
Johannes: Aber dann ist es eine sehr große Nussschale.
Johannes: Ja.
Johannes: Eine Walnuss im wahrsten Sinne des Wortes.
Jochen: Das ist mehr so der Öltanker unter den Nussschalen, ja.
Jochen: Das ist.
Dominik: Es gibt auch noch dieses schöne neue Tango Buch.
Dominik: Tango 5, dies, das.
Dominik: Tango 5 by Example.
Dominik: Ja, ich habe nur noch E-Books und das ist geschickt,
Johannes: weil die liegen nicht so vorwurfsvoll rum auf dem Schreibtisch.
Jochen: Ja, das ist natürlich ein Vorteil.
Jochen: Aber der Nachteil ist, also ich habe auch ganz viele E-Books.
Jochen: Der Nachteil ist so ein bisschen,
Jochen: also ich gucke tatsächlich in die physischen Bücher häufiger rein
Jochen: als in meine E-Books.
Jochen: Ja, also E-Books.
Dominik: Also tatsächlich, dann hast du irgendeine Sammlung,
Dominik: die vergammelt in irgendeinem Ordner.
Dominik: Und dann?
Dominik: Also so als Nachschlagewerk, I don't know.
Dominik: Also es gibt ganz wenige Bücher, die ich als Nachschlagewerk benutze.
Dominik: Ansonsten tatsächlich Buch aus dem Regal holen,
Dominik: aufschlagen, reingucken.
Dominik: Ja, du bist halt analog.
Dominik: Okay.
Johannes: Jetzt hast du dich datiert, Dominik.
Johannes: Jetzt wissen wir alle, dass du alt bist.
Johannes: Ja, bei Musik ist das auch so.
Johannes: Da mache ich auch analog Zeug.
Johannes: Ja.
Johannes: Kein Computer?
Dominik: Ja, manchmal auch.
Dominik: Also ich bin ja auch manchmal modern.
Dominik: Oder so beides gleich, den Wechsel oder das Sample oder so, ja.
Dominik: Ah.
Dominik: Aber schon analoge Sims, das ist schon nice.
Dominik: Ja, aber wir schweifen ab.
Dominik: Ja.
Jochen: Ja, genau.
Jochen: Aber vielleicht wollen wir ja zuerst mal so ein bisschen,
Jochen: ich könnte jetzt hier mal so eine Kapitelmarke für News einfügen.
Jochen: Ja.
Jochen: Und...
Jochen: Ja.
Jochen: Ach, jetzt hat es die Kapitelmarke hier an den Anfang gesetzt.
Jochen: Was ist denn das?
Jochen: Schon wieder alles kaputt hier.
Jochen: Ja, wir haben schon ein Problem mit der Software, Jochen.
Jochen: Ja, ja.
Johannes: Nach 62 Episoden sind wir ja immer noch Profis.
Dominik: Ihr wisst gar nicht, wie lange wir zwischendurch brauchen,
Dominik: um das Audiosetup hinzubekommen.
Dominik: Ja, heute auch schon wieder.
Dominik: Es war jedes Mal.
Dominik: Ja.
Dominik: Jedes Mal.
Johannes: Jedes Mal mit neuen, tollen Dingen, die wir rausfinden
Johannes: über das Audiosetup.
Johannes: Ja.
Johannes: Und wir machen noch nebenbei eigenes, was es nicht kann.
Johannes: Heute hatten wir ein Echo.
Dominik: Vielleicht hat dein Mischpult einfach zu viele Kanäle, Jochen.
Dominik: Ja.
Johannes: Ja, aber diesmal war ich da.
Johannes: Diesmal bin ich ja schuld, wenigstens.
Johannes: Ja, das war wieder was Neues.
Johannes: Ja.
Dominik: Wenn man ein Echo hört, ist Johannes schuld.
Jochen: Ja, weil wenn man viele Kanäle hat und viele Rechner und viele Personen,
Jochen: dann hat man irgendwie eine kombinatorische Explosion
Jochen: von vieler Quellen.
Jochen: Und dann treten halt auch immer mal wieder neue, lustige Sachen auf.
Jochen: So ist es halt.
Jochen: Du könntest vielleicht ein Echo...
Johannes: Das ist ja fast schon die Überleitung zur Softwareentwicklung, Jochen.
Dominik: Du könntest auch so ein Federhall-Modul da reinbauen,
Dominik: dass das auch so wirklich so nach...
Dominik: Ja.
Dominik: Da kann man dann einen Unterschied...
Dominik: Können wir auch.
Dominik: Wir können auch noch ein paar hinzufügen.
Dominik: Das geht.
Jochen: Und das ist immer...
Jochen: Drück nicht drauf, Jochen.
Jochen: Tu es nicht.
Jochen: Ja.
Jochen: Genau.
Jochen: Also, äh...
Jochen: Richtig.
Jochen: Ah, der News.
Jochen: News, genau.
Jochen: Es ist nämlich tatsächlich einiges passiert.
Jochen: Es ist halt immer die Frage, letztes Mal...
Jochen: Die letzten Episoden von News sind so ein bisschen egal.
Jochen: Seit über zwei Monaten.
Jochen: Aber tatsächlich...
Johannes: Ja, aber News haben doch die Eigenschaft, dass sie neu sind.
Johannes: Also kannst du nix von...
Johannes: Es bezieht sich nur auf die letzten zwei Wochen.
Johannes: Ja, genau.
Jochen: Also so ganz uralte Sachen werde ich jetzt auch nicht nehmen.
Jochen: Aber ich denke, es gibt so ein paar Sachen,
Jochen: die sollte man vielleicht schon mal erwähnt haben.
Jochen: Also zum Beispiel, äh, ich weiß nicht, äh,
Jochen: Tailwind 4 ist raus.
Jochen: Ja.
Jochen: Genau, das ist vielleicht ein...
Jochen: Das ist super.
Jochen: Ja?
Jochen: Ja.
Dominik: Also ich wollte jetzt keine, äh...
Dominik: Ach so, okay.
Dominik: Ich bin kein Freund von Tailwind.
Johannes: Ich sag's jetzt ganz einfach.
Johannes: So, ich bin kein Freund von Tailwind.
Johannes: Ja, äh, du machst auch...
Dominik: Was war das, äh, als CSS?
Dominik: Ich wollte jetzt nicht sagen.
Dominik: Ein semantisches CSS.
Dominik: Sogenanntes semantisches CSS.
Dominik: Ach, das machst du auch.
Johannes: Ich verstehe den Vorteil von Tailwind nicht,
Johannes: wo man eine, wo man eine CSS-Deklaration
Johannes: von Color Red durch eine Klasse Color Red ersetzt.
Johannes: Dafür brauch ich kein CSS.
Johannes: Der, der Vorteil...
Johannes: Das bringt überhaupt gar nichts.
Johannes: Doch.
Jochen: Also, ich meine, der Vorteil ist natürlich schon irgendwie,
Jochen: dass du, du kannst halt irgendwie ins Internet gehen.
Jochen: Äh, so, äh, mit der, wenn man so alt ist wie wir,
Jochen: mit einer Krücke und dann einfach per Copy und Paste
Jochen: irgendwelche Sachen in dein eigenes HTML pasten
Jochen: und es funktioniert einfach so.
Jochen: Das ist der Vorteil.
Johannes: Aber es ist nicht besser als Inline-Styles.
Johannes: Ja, doch.
Johannes: Die ganzen Vorteile von CSS sind weg.
Johannes: Nach, also, ja...
Johannes: Dass du Cascading hast,
Johannes: dass du, dass du, äh,
Johannes: dass du sie ändern kannst,
Johannes: dass du sie semantisch benennst,
Johannes: dass du sie nicht wissen musst,
Johannes: was der Style ist,
Johannes: was, was der bedeutet,
Johannes: das ist alles weg.
Dominik: Aber ich habe so eine schöne Utility-Sicht
Dominik: auf kleine Komponenten,
Dominik: die lesbar sind,
Dominik: die genau das machen, was sie sollen.
Dominik: Und das ist viel, viel hübscher als Inline-Styles.
Dominik: Nee, ist genau das Gleiche.
Dominik: Nee, ist das gleiche.
Dominik: Inline-Styles sind total...
Dominik: Wir driften schon wieder ab.
Dominik: Wir driften schon wieder.
Dominik: Ja, ja.
Johannes: Ich starte hiermit eine Umfrage unter den Zuhörern,
Johannes: ob sie wissen wollen,
Johannes: äh, was wir von Tailwind halten.
Johannes: Und dann machen wir...
Johannes: Wollen wir das nicht dann, äh,
Dominik: machen wir mal mit dem Frontend-Podcast,
Dominik: den wir irgendwann mal treffen wollten,
Dominik: das gemeinsam tun?
Dominik: Ja, das können wir auch gerne machen.
Dominik: Hätte wahrscheinlich höhere Chancen.
Dominik: Das wäre gut.
Dominik: Dann sollen die sich mal erklären.
Dominik: Da, das, das...
Dominik: Erklären sie sich.
Dominik: Da wird die Wahrscheinlichkeit auch größer,
Dominik: dass das dann tatsächlich irgendwie...
Dominik: Irgendwen interessiert.
Jochen: ...um die Biotele-Rand, äh, herum passiert.
Jochen: Weil was, was mit Tailwind-CSS passiert.
Jochen: Äh, genau.
Jochen: Aber, ja.
Jochen: Also, ich bin auch, äh,
Jochen: eher momentan auf der,
Jochen: auf der semantischen CSS-Seite unterwegs.
Jochen: Ja, aber, genau, dafür...
Jochen: Ah, ja, vielleicht können wir da auch gleich nochmal...
Jochen: Ja, okay, aber es ist auf jeden Fall da
Jochen: und das macht einige Dinge besser.
Jochen: Okay, was haben wir noch?
Jochen: Wir hatten noch, äh, ah, genau.
Jochen: Was ist halt, wo ich finde,
Jochen: das muss man halt schon mal irgendwie erwähnen.
Jochen: Und ich höre, ich höre das auch mal in anderen Podcasts
Jochen: und ich höre da immer so viel Mist.
Jochen: Da dachte ich, na gut,
Jochen: da muss man auch mal was zu sagen,
Jochen: dass das irgendwie, äh, äh,
Jochen: was da wirklich passiert ist.
Jochen: Irgendwie DeepSeek zum Beispiel ist irgendwie...
Dominik: Ach so, Sprachmodelle, ja.
Jochen: Ja, LLMs, ähm, da ist...
Jochen: Was ist das denn, Jochen?
Jochen: Was ist denn DeepSeek?
Jochen: Ja, da ist halt, äh, irgendwie so ein,
Jochen: so ein Modell oder Gewichte sind herausgefallen
Jochen: aus einem, äh, chinesischen...
Jochen: Die haben die alle selber generiert.
Jochen: Hedgefonds.
Jochen: Gewichte, ja.
Jochen: Wahrscheinlich, aber, ähm, genau.
Jochen: Und zwar, äh, sehr lustig irgendwie, äh,
Jochen: also das, das Foundation-Model ist halt am,
Jochen: haben sie veröffentlicht am 24. Dezember 2024.
Jochen: Ein Weihnachtsgeschenk.
Jochen: Ja, und zwar völlig kommentarlos.
Jochen: Und, äh, das hat tatsächlich relativ viel Aufsehen erregt,
Jochen: weil es halt...
Jochen: Es ist ein sehr, sehr gutes Modell, muss man sagen.
Jochen: Also wirklich, wirklich gut.
Johannes: Und es war auch sehr billig.
Johannes: Und es ist schnell.
Johannes: Ja, aber da, da, genau.
Jochen: Da würde ich dann halt eher, eher so mal, nochmal, also,
Jochen: weil das hört man immer, aber da, oder ich weiß nicht,
Jochen: wie, wie, wie, wie, oder wo ist die Quelle dafür,
Jochen: dass das besonders billig ist?
Johannes: Ja, DeepSeek selber, die haben, die haben gesagt,
Johannes: es hat nur 5 Millionen dabei.
Jochen: Ja, gut, aber ich meine, die haben natürlich unter Umständen
Jochen: auch eine gewisse Motivation zu sagen, was sie sagen, ne,
Jochen: insofern.
Dominik: Die haben die falschen Sachen geklaut, das ist ja fürchterlich.
Johannes: Ja, das fand ich ja das Allerlustigste,
Johannes: dass sich dann OpenAI drüber aufgeregt hat,
Johannes: dass sie das, dass sie die Modelle verändert haben.
Johannes: Ja.
Johannes: Da hat jemand Daten genommen, die ihm nicht zugestanden sind.
Johannes: Ah, das ist zum ersten Mal in der Geschichte von LLMs passiert.
Jochen: Ja, das ist, das ist lustig, ne, so irgendwie,
Jochen: das, was OpenAI macht, ist ja im Grunde irgendwie
Jochen: so dicke Bücher nehmen, so wie Flunenpaiten oder sowas,
Jochen: das runterdestillieren in ein Modell.
Jochen: Ohne Lizenz.
Jochen: Modellgewichte destillieren und jetzt beschweren sie sich
Jochen: darüber, dass jemand anderes ihre Modellgewichte
Jochen: genommen hat.
Jochen: Und die destilliert hat in ein anderes Modell.
Jochen: Das geht gar nicht.
Jochen: Das geht natürlich auch gar nicht.
Johannes: Also als Dieb bei einem anderen Dieb klauen geht halt einfach nicht.
Jochen: Ja, das ist keine Ehre mehr.
Jochen: Keine Ehre unter Verbrechern.
Jochen: Ja.
Jochen: Wobei man jetzt sagen muss, also diese, diese,
Jochen: diesen Zungenschlag finde ich auch immer komisch,
Jochen: wenn man jetzt sagt, das ist irgendwie alles geklaut.
Jochen: Ich mir denke so, ja, aber irgendwie,
Jochen: wie kann man das dann damit, also weil ich,
Jochen: also ich finde, man muss sich entscheiden.
Jochen: Also entweder man fand diese Coffee-Rite-Geschichte
Jochen: ja schon immer irgendwie scheiße.
Jochen: Also so fand ich,
Jochen: schon immer Kacke.
Jochen: Das war einfach, ist einfach totaler Müll.
Jochen: Ja, also was zur Hölle?
Jochen: Und ja, also Information will halt irgendwie frei sein
Jochen: und irgendwie jeder soll sich auf den Quellen
Jochen: irgendwie unabhängig informieren können.
Jochen: Ja, das sollte eigentlich schon gehen.
Jochen: Es gab doch mal diese T-Shirts,
Jochen: das ist das Swat-Thing,
Jochen: you wouldn't understand.
Jochen: Ja.
Jochen: You wouldn't download a car.
Dominik: Jetzt ging es um die J-Store.
Jochen: Ach, die Geschichte, ja, mit Aaron Schwarz.
Jochen: Ja, das ist halt.
Jochen: Ja, aber auch vorher schon,
Jochen: mit Aaron Schwarz.
Johannes: Ja, das ist halt.
Johannes: Ja, aber auch vorher schon mit Aaron Schwarz.
Johannes: Ja, das ist halt.
Johannes: Ja, aber auch vorher schon mit Aaron Schwarz.
Johannes: Ja, das ist halt.
Johannes: Mit Pirate Bay und mit Film runterladen
Johannes: und Musik runterladen und so weiter.
Johannes: Ja, klar.
Johannes: Johann, das, also für mich erklärt sich das durch,
Johannes: ich bin auch so einer, ja,
Johannes: ich bin auch so einer,
Johannes: Information muss frei sein
Johannes: und wenn man eine offene Lizenz dran machen kann,
Johannes: umso besser.
Johannes: Und ich kenne auch einige Leute aus der Szene
Johannes: und das ist generell so.
Johannes: Ja, aber ich meine,
Johannes: das ganze GPL-Dings,
Johannes: das macht man ja nur deswegen,
Johannes: weil es ein,
Jochen: weil irgendwie die Welt so verrückt ist, ja.
Jochen: Das ist ja nicht deswegen,
Jochen: weil man Lizenzen so geil findet.
Jochen: Ja, doch, Lizenzen sind doch.
Jochen: Ja, aber GPL ist ein bisschen.
Jochen: Aber das Problem ist,
Jochen: das Problem ist doch,
Jochen: oder das Schöne,
Johannes: das Ironische an der Sache ist doch,
Johannes: dass es ja eigentlich
Johannes: die multinationalen Konzerne sind,
Johannes: die sich immer für Copyright regeln
Johannes: und je drakonischer,
Johannes: desto besser ausgesprochen haben.
Johannes: Ja.
Johannes: Und jetzt machen sie genau das Gleiche.
Johannes: Ja, weil sie entdeckt haben,
Johannes: dass ihr Geschäftsmodell darin hängt,
Johannes: dass man damit Geld verdienen kann.
Johannes: Das ist so ein bisschen
Johannes: das Open-Source-Problem, ne?
Johannes: Ich meine, tolle Sachen machen
Johannes: und die für alle veröffentlichen
Johannes: und aber dann dafür nicht bezahlt werden,
Dominik: können sich halt nur Leute leisten,
Dominik: die eigentlich eh schon
Dominik: einen guten, luxuriösen,
Dominik: privilegierten Lebensmittel fahren.
Jochen: Ja, na ja, aber ich finde halt,
Jochen: also was mir halt nicht gefällt,
Jochen: ist, dass diese Argumentation
Jochen: aus der Ecke immer inkonsistent ist.
Jochen: Also das gefällt mir einfach ästhetisch nicht.
Jochen: Ich weiß jetzt nicht,
Jochen: ob es auch ethisch schlimm ist,
Jochen: aber ästhetisch, finde ich, geht das nicht,
Jochen: weil man kann nicht auf der einen Seite sagen,
Jochen: irgendwie man darf sich halt
Jochen: aus freizugänglichen Quellen informieren können
Jochen: und dann auf der anderen Seite sagen,
Jochen: ja, aber du darfst jetzt meine Daten nicht benutzen,
Jochen: um dein Modell zu trainieren.
Jochen: Das ist einfach ein Widerspruch.
Jochen: Das geht nicht.
Jochen: Ja, und vor allen Dingen
Jochen: mit der gleichen Argumentation
Jochen: könntest du auch Google verbieten,
Jochen: seine Webseiten zu indizieren.
Jochen: Ja, wurde ja auch schon.
Jochen: Ja, kann man versuchen,
Jochen: aber das ist ja aus meiner Sicht,
Jochen: das ist ja offensichtlich absurd, ja.
Jochen: Aber man könnte doch zum Beispiel
Jochen: sowas machen wie Robots.txt.
Jochen: Ja, wie die Zeitungen.
Jochen: Ja, gut, das machen Leute ja auch,
Jochen: das kann man auch so tun.
Jochen: Also wenn ich jetzt hingehe und sage,
Jochen: okay, wenn ich da irgendeinen LLM-Crawler
Jochen: von so einer Firma sehe,
Jochen: dann sage ich dem halt,
Jochen: nö, du kriegst hier nichts.
Jochen: Oder was auch Leute ja machen ist,
Jochen: dass sie dann halt so
Jochen: quasi so endlos Strom von Sinn
Jochen: und endlosen Tokens irgendwie erzeugen,
Jochen: um da Rechenzeit zu verbrennen
Jochen: auf der anderen Seite.
Jochen: Und möglichst langsam.
Jochen: Ja.
Jochen: Dass der möglichst lange da festhängt.
Jochen: Also quasi so die moderne Variante
Jochen: der guten alten Teergrube.
Jochen: Ja, aber.
Jochen: Jetzt ist halt so ein bisschen die Frage, ne.
Jochen: Es gibt ja,
Dominik: vielleicht der Frühruhrbericht sagen so,
Dominik: ja, da kommt jemand in meinen Laden rein,
Dominik: macht überall Fotos
Dominik: und nimmt alles mit nach draußen
Dominik: und das ist eigentlich meins.
Dominik: Und dass der meinen Laden betreten hat,
Dominik: der ist ja einfach durch die Tür gegangen.
Dominik: Ich würde eher sagen,
Dominik: das ist sowas wie,
Dominik: da stellt sich jemand auf den Markt
Dominik: und schreit irgendwie so laut,
Dominik: wie er kann allen Leuten ins Gesicht,
Dominik: was er da macht.
Dominik: Und dann hat das halt jemand gehört.
Dominik: Genau.
Dominik: Und ja, das ist so der Punkt.
Jochen: Da kannst du mit dem Urheberrecht
Jochen: halt nichts machen, denke ich mir.
Jochen: Ja, genau.
Jochen: Das ist der entscheidende Unterschied.
Jochen: Das Urheberrecht schützt ja die drei Vs
Jochen: irgendwie so vervielfältigen,
Jochen: verändern, verbreiten.
Jochen: Ja, aber nichts davon ist betroffen,
Jochen: wenn ich jetzt halt irgendwie
Jochen: den Text von irgendeiner Bewerberseite nehme
Jochen: und dann ein Modell drauf trainiere.
Jochen: Ja, also die Frage ist halt,
Jochen: was zum Beispiel
Dominik: mit wissenschaftlichen Veröffentlichungen ist.
Dominik: Sind die schon allgemein recht oder nicht?
Dominik: Nein, aber.
Jochen: Aber wenn ich jetzt die lese,
Jochen: also nochmal,
Jochen: also ich meine im Grunde
Jochen: dein neuronales Netz und Gehirn
Jochen: ist ja auch sowas.
Jochen: Ja, du dürftest das ja,
Jochen: also durch Lesen
Jochen: kann man keine Urheberrechtsverletzung begehen.
Jochen: In meinem Verständnis halt.
Jochen: Das geht einfach nicht.
Jochen: Oh Jochen, jetzt hast du aber
Jochen: eine schlimme Dose aufgemacht,
Johannes: weil jetzt kommen die Rechteinhaber drauf,
Johannes: dass wenn du das in dein Gehirn einliest,
Johannes: hast du es vervielfältigt.
Johannes: Hast du eine Nutzungsgebühr bezahlt beim Lesen.
Johannes: Ja, aber das ist ja offensichtlich absurd.
Johannes: Das kann man doch nicht vertreten, sowas.
Johannes: Und was mich ärgert,
Johannes: ist halt, dass Leute quasi
Jochen: so Leute, von denen ich dachte,
Jochen: dass es meine Freunde wären,
Jochen: jetzt online irgendwie
Jochen: offenbar diese Ansicht vertreten,
Jochen: dass halt irgendwie Dinge lesen
Jochen: eine Urheberrechtsverletzung ist,
Jochen: was totaler Quatsch ist.
Jochen: Das ärgert mich immer so ein bisschen.
Johannes: Das ist zwar eine schöne Unterhaltung,
Johannes: aber ich habe das Gefühl,
Johannes: wir driften schon wieder
Johannes: so ein kleines bisschen ab.
Johannes: Oh, ist das in diesem Podcast
Johannes: schon mal vorgekommen?
Johannes: Ja, dann aus unserer Weise.
Johannes: Ich glaube, in Episode 3
Johannes: ist es mal vorgekommen.
Johannes: Ja, ist das echt?
Johannes: Oh ja.
Jochen: Gut, dann ist ja nicht so schlimm.
Jochen: Wenn das nicht so häufig vorkommt.
Jochen: Dann ist es trotzdem interessant.
Jochen: Ja, aber genau.
Jochen: Also ich finde es halt genau.
Jochen: Aber ja, klar.
Jochen: Natürlich ist es irgendwie absurd,
Jochen: wenn sich jetzt OpenAI
Jochen: über DeepSeek beschwert.
Jochen: Also ich glaube, die Frage ist,
Jochen: natürlich hat jeder Konzern
Jochen: Interesse daran,
Jochen: so viel Geld wie möglich zu verdienen
Jochen: mit irgendwas, was er denkt,
Jochen: was er kontrollieren kann.
Jochen: Was aber die andere Seite
Jochen: der Medaille ist,
Dominik: ist, ob es ein öffentliches Interesse
Dominik: gibt an so etwas
Dominik: wie einem allgemein
Dominik: verfügbaren Sprachmodell.
Dominik: Einfach weil diese,
Dominik: ich sage mal,
Dominik: Schöpfungshöhe von diesen Dingern
Dominik: doch schon so massiv ist
Dominik: und die so einen,
Dominik: also für mich Value-Brand.
Dominik: Die Schöpfungshöhe sogar hoch ist.
Dominik: Aber Jochen,
Dominik: die viel wichtigere Frage ist doch,
Johannes: ist das Modell wirklich besser
Johannes: und billiger?
Johannes: Nein, es ist gut.
Johannes: Also genau.
Johannes: Hast du es denn ausprobiert?
Jochen: Ja, also naja,
Jochen: ich habe es momentan nicht geschafft.
Jochen: Mit meiner Hardware
Jochen: kriege ich es nicht hin,
Jochen: gerade so.
Jochen: Leider, leider.
Jochen: Aber es gibt ja AP-Zugang.
Jochen: Ja, genau.
Jochen: Da habe ich es natürlich
Jochen: schon ausprobiert.
Jochen: Und das ist tatsächlich gut, ja.
Jochen: Ja, ist das okay.
Jochen: Und die Empfehlung,
Jochen: die ich gehört habe,
Jochen: die ja auch den Aktienmarkt
Jochen: irritiert hat,
Jochen: um es mal so zu sagen,
Jochen: ist ja,
Johannes: dass man sich keine Grafikkarte
Johannes: kaufen soll,
Johannes: sondern lieber AMD-Prozessoren,
Johannes: was natürlich eine sehr schöne Ironie ist.
Johannes: Ja, also.
Johannes: Die AMD-Prozessoren sind,
Johannes: die man sich kaufen soll.
Johannes: Also ich,
Jochen: ja, die AMD-Prozessoren,
Jochen: gut,
Jochen: ja, also natürlich Hauptspeicher
Jochen: ist für die Dinger,
Jochen: wenn du die halt
Jochen: komplett laufen lassen willst,
Jochen: brauchst du halt viel Hauptspeicher.
Jochen: Genau.
Jochen: Und auf einem ordentlichen,
Johannes: also ich habe so verschiedene Artikel gesehen,
Johannes: wo sich die Leute
Johannes: Rechner zusammenbauen
Johannes: zwischen 2.000 und 6.000 Dollar.
Johannes: Ja.
Johannes: Was ja nicht viel ist
Johannes: für so ein System.
Johannes: Ja, ja.
Johannes: Und dann kriegst du irgendwo
Johannes: zwischen drei und fünf Token pro Sekunde,
Johannes: was auch nicht viel ist.
Johannes: Ja.
Johannes: Aber auch nicht schlecht.
Johannes: Ja, du kriegst auch noch ein bisschen,
Johannes: du kannst,
Johannes: du kannst das Ding wohl,
Jochen: also das Original-Ding kriegst du
Jochen: mit ein bisschen Trickserei
Jochen: und Quantisierung
Jochen: kriegst du das, glaube ich,
Jochen: auf einem Mac-Studio
Jochen: mit 192 GB RAM zum Laufen.
Jochen: Und da kriegst du mehr
Jochen: als vier bis fünf Tokens pro Sekunde.
Jochen: Da kriegst du halt ordentlich.
Jochen: Ja, okay.
Jochen: Das liegt ja daran,
Jochen: dass die Macs
Jochen: so eine spezielle,
Jochen: spezielle Speicher-Architektur haben.
Jochen: Ja, genau.
Jochen: Du kannst die GPU benutzen.
Jochen: Aber, also ich meine,
Jochen: das Problem ist doch,
Johannes: dass du Macs nur bis 192 GB kaufen kannst.
Johannes: Ja, das ist auch,
Johannes: und das ist irgendwie
Johannes: eine Verdasseljahre gekostet, ja.
Johannes: Das sieht sich irgendwie
Johannes: da so um.
Johannes: Ich habe es gesagt,
Johannes: Exponential-Kurve
Johannes: und eine SD-Karte
Johannes: kriegst du für einen Terabyte,
Johannes: kriegst du für einen Apple-9.
Johannes: Genau.
Johannes: Und so ein AMD-Prozessor
Johannes: mit vier Prozessor-Dingern,
Johannes: Prozessor-Sockeln drin,
Johannes: da kannst du ja
Johannes: einen Terabyte-Speicher reintun
Johannes: für den gleichen Preis.
Johannes: Ja.
Johannes: Und da hast du dann
Johannes: gewisse Limitationen
Johannes: einfach nicht mehr.
Johannes: Ja, das ist schon richtig.
Johannes: Ich habe auch heute
Johannes: irgendwie gesehen
Jochen: auf einem Postgres-News-Kletter,
Jochen: so, was machen wir jetzt
Jochen: eigentlich mit den Monster-Rechnern,
Jochen: die wir bauen können?
Jochen: Da hatte jemand auch so,
Jochen: es gibt irgendwie
Jochen: diese Epic-AMD-Dinger,
Jochen: da hast du halt
Jochen: irgendwie 768 Threads
Jochen: irgendwie auf zwei Sockeln
Jochen: und 10 Terabyte Hauptspeicher
Jochen: für gar nicht mal
Jochen: so wahnsinnig viel Geld.
Jochen: Und das ist wirklich absurd,
Jochen: was da gerade geht.
Jochen: Also, aber ja.
Jochen: Ach ja.
Jochen: Aber manche Leute
Jochen: brauchen das halt.
Jochen: Also, ich meine,
Jochen: es ist doch schön,
Jochen: dass es das gibt.
Jochen: Ja.
Jochen: So schön, dass das geht.
Jochen: Genau.
Jochen: Also, nee,
Jochen: das Ding ist gut.
Jochen: Aber jetzt diese ganzen
Jochen: Gerüchte,
Jochen: die da so im Umlauf sind,
Jochen: also einmal,
Jochen: also ich würde sagen,
Jochen: so dieses,
Jochen: dass das jetzt billiger ist
Jochen: oder so,
Jochen: das sagt jetzt irgendwie diebsig,
Jochen: aber also,
Jochen: ich kann das nicht unabhängig,
Jochen: also ich habe nichts gesehen,
Jochen: wo ich sagen würde,
Jochen: da hat das jemand
Jochen: unabhängig überprüft.
Jochen: Wenn die Leute fragen,
Jochen: die sich auskennen,
Jochen: sagen die,
Jochen: das liegt genau
Jochen: auf den Scaling-Kurven drauf.
Jochen: Da ist nichts mit.
Jochen: Das ist überhaupt
Jochen: kein Stück billiger
Jochen: als irgendwas anderes, ja.
Jochen: Also, das liegt ganz genau
Jochen: Das muss sicherlich
Jochen: eine geschönte Zahl sein,
Jochen: dass du sagst,
Jochen: hier, ha, ha,
Jochen: wir haben das hier
Jochen: nach da trainiert.
Jochen: Die Zahl ist richtig,
Jochen: aber wenn man sich anguckt,
Jochen: womit würde man rechnen,
Jochen: wie viel man ausgeben muss
Jochen: jetzt sozusagen,
Jochen: dann liegt das genau da drauf.
Jochen: Das ist nicht irgendwie billiger.
Jochen: Ja, okay.
Jochen: Ja, also,
Jochen: zum Beispiel Anthropic
Jochen: hat tatsächlich
Jochen: hat tatsächlich Zahlen
Jochen: dazu veröffentlicht,
Jochen: also der Chef von Anthropic,
Jochen: da irgendwie
Jochen: Dario Amodei oder so,
Jochen: der hat auch tatsächlich
Jochen: veröffentlicht,
Jochen: wie viel sie,
Jochen: wie viel es gekostet hat.
Jochen: Also,
Jochen: net 3,5, glaube ich,
Jochen: zu trainieren
Jochen: in einem Blogpost,
Jochen: um halt klarzumachen,
Jochen: ja, das ist nicht billiger,
Jochen: also, das jetzt
Jochen: ist nicht billiger gewesen
Jochen: als das,
Jochen: was sie gemacht haben.
Jochen: Sie haben irgendwie
Jochen: 35 Millionen bezahlt,
Jochen: aber der Witz ist halt,
Jochen: das war irgendwie
Jochen: zehn Monate her oder so
Jochen: und in der Zeit
Jochen: sind die Preise eben so gefallen,
Jochen: dass es jetzt halt billiger ist.
Jochen: Ja.
Jochen: Und, ja.
Jochen: Eine schöne Ironie,
Jochen: finde ich,
Johannes: an der ganzen Geschichte,
Johannes: dass diese Firma Diebsieg
Johannes: sehr viel Engineering
Johannes: da reingesteckt hat,
Johannes: um die billigere Hardware,
Johannes: weil sie die nicht importieren dürfen,
Johannes: weil die Amerikaner gesagt haben,
Johannes: das geht nicht,
Johannes: dass man da solche Dinge betreibt
Johannes: und deshalb dürfen die das nicht
Johannes: und deshalb können die nicht
Johannes: und dann haben sie gesagt,
Johannes: wir machen es trotzdem
Johannes: und es hat geklappt
Johannes: und es ist auch keine Überraschung
Johannes: für jemanden,
Johannes: der sich da fünf Minuten
Johannes: damit beschäftigt.
Johannes: Ja, also es gibt da diesen
Johannes: Technical Report,
Johannes: den sie da veröffentlicht haben
Johannes: und da sind einige wirklich
Johannes: gute Tricks dabei und so
Johannes: und das ist wirklich
Jochen: solides Engineering,
Jochen: also kann man sich nicht beschränken.
Johannes: Einfach um die Exportbeschränkung rum.
Johannes: Ja.
Johannes: Top.
Johannes: Allererste Klasse.
Jochen: Ja, aber jetzt was,
Jochen: genau, also das erste Modell,
Jochen: das wir veröffentlicht haben,
Jochen: also das war sozusagen
Jochen: halt in der Fachwelt,
Jochen: sag ich mal,
Jochen: durchaus sehr viel Aufmerksamkeit erregt
Jochen: und da war dann
Jochen: nach ein paar Wochen auch klar,
Jochen: das ist wirklich,
Jochen: wirklich gut, das Modell
Jochen: und dann kam ja jetzt
Jochen: irgendwann so Ende,
Jochen: war so Mitte bis Ende Januar,
Jochen: ich weiß gar nicht mehr wann,
Jochen: kam halt irgendwie R1,
Jochen: wo sie dann so ein Marketing-Bus
Jochen: drum gemacht haben.
Jochen: Und das ist aber wirklich,
Jochen: also das ist jetzt keine Kunst,
Jochen: also von einem guten Foundation-Modell.
Jochen: Einen guten Marketing-Bus machen
Jochen: ist schon eine schöne Sache.
Jochen: Ja, das ist eine schöne Kunst,
Jochen: aber das Modell war jetzt kein,
Jochen: das Modell selber war nicht,
Jochen: das war nicht aufsehenderregend eigentlich.
Jochen: Ja, aber Marketing halt.
Jochen: Aber das Marketing schon,
Jochen: also sie wussten halt,
Jochen: okay, irgendwie,
Jochen: wir haben ein Modell,
Jochen: das ziemlich gut ist
Jochen: und jetzt haben sie halt
Jochen: dann draußen halt irgendwie
Jochen: eine Geschichte gemacht,
Jochen: die halt dann auch irgendwie
Jochen: durch alle Nachrichten gegangen ist
Jochen: und Nvidia hat irgendwie
Jochen: so und so viele Milliarden
Jochen: an Aktienwert verloren.
Jochen: Also ja,
Jochen: man könnte natürlich jetzt vermuten,
Jochen: dass irgendjemand
Jochen: möglicherweise
Jochen: das so ein bisschen reingedreht hat
Jochen: oder viel Geld verdient hat.
Jochen: Wer denn?
Jochen: Ja, ich weiß auch nicht.
Jochen: Ich würde jetzt erwarten,
Jochen: es könnte irgendwie
Jochen: so ein Hedgefonds sein zum Beispiel.
Jochen: Weiß nicht.
Jochen: Nur so eine Idee.
Jochen: Aber shorten die?
Jochen: Shorten die irgendwelche?
Jochen: Ja, ich meine,
Jochen: was machen die da?
Jochen: Das ist wie zu riskant.
Jochen: Nein.
Jochen: Also ich weiß es nicht.
Jochen: Auf jeden Fall
Jochen: ist das natürlich schon
Jochen: so ein bisschen
Jochen: verdächtig
Jochen: und ja,
Jochen: auch wenn man
Jochen: auch da wieder,
Jochen: wenn man Leute
Jochen: Leute fragt,
Jochen: die es ja mit auskennen,
Jochen: sagen die so,
Jochen: warum fällt eigentlich
Jochen: der Nvidia Aktienkurs?
Jochen: Also ich meine,
Jochen: klar, natürlich,
Jochen: es ist eine Blase.
Jochen: Ja, das ist auch,
Jochen: muss auch irgendwie
Jochen: dem klar sein.
Jochen: Was?
Jochen: Du hast doch nicht
Jochen: ernsthaft angenommen,
Jochen: dass das da irgendein
Dominik: Fundamentaldatensammenhang gäbe.
Dominik: Ja, ja, natürlich nicht.
Dominik: Also insofern,
Jochen: dass das eine Blase ist,
Jochen: ist schon richtig
Jochen: und dass man dadurch
Jochen: natürlich irgendwie
Jochen: dann eine Chance sieht,
Jochen: da irgendwie Luft
Jochen: auf dieser Blase zu lassen.
Jochen: Okay.
Jochen: Ja, das ist ja auch irgendwie,
Jochen: sehr wenig überraschend,
Jochen: aber tatsächlich
Jochen: der Bedarf an Compute,
Jochen: wenn man jetzt quasi
Jochen: aus dieser ganzen Geschichte
Jochen: mitnimmt,
Jochen: es ist einfacher,
Jochen: als wir dachten,
Jochen: irgendwie solche Modelle
Jochen: zu bauen
Jochen: und es ist irgendwie
Jochen: einfacher,
Jochen: sie zu betreiben,
Jochen: es ist einfacher,
Jochen: sie zu trainieren
Jochen: und dann ist die Konsequenz
Jochen: eigentlich nicht,
Jochen: wir brauchen,
Jochen: wir brauchen weniger,
Jochen: also wir irgendwie,
Jochen: wir verkaufen jetzt
Jochen: weniger Chips,
Jochen: sondern die Konsequenz
Jochen: ist natürlich,
Jochen: wenn man jetzt das
Jochen: aus so einer ökonomischen
Jochen: Perspektive betrachtet,
Jochen: dann werden natürlich
Jochen: viel mehr Chips verkauft,
Jochen: weil.
Jochen: Ja, aber von wem, Jochen,
Jochen: das ist doch die Frage,
Jochen: die müssen jetzt nicht mehr
Jochen: unbedingt die teuren
Jochen: von Nvidia sein.
Jochen: Ja, weiß ich nicht,
Jochen: aber für Nvidia
Jochen: ist das auf jeden Fall auch gut.
Jochen: Also sagen wir mal so,
Jochen: aus ökonomischer Sicht
Jochen: macht das keinen Sinn,
Jochen: dass der Aktienkurs
Jochen: von Nvidia fällt,
Jochen: wenn irgendwie man jetzt sieht,
Jochen: dass man mit Computer,
Jochen: dass man mit halt
Jochen: irgendwie Chips mehr machen kann.
Jochen: Aber Jochen,
Jochen: du glaubst doch nicht,
Dominik: dass das Brauchen eines Wahls
Dominik: irgendwas mit ökonomischen
Dominik: Ratio zu tun hätte.
Dominik: Nee, natürlich nicht.
Johannes: Hast du welche gekauft, Jochen?
Johannes: Hast du Nvidia gekauft?
Johannes: Ah.
Johannes: Hast du die geshortet?
Jochen: Ich kann nicht genug Marketing
Jochen: was generieren,
Jochen: um da irgendwas,
Jochen: nee, keine.
Jochen: Jetzt diese Podcast-Episode,
Jochen: die löst sich aus.
Jochen: Keine Aktienempfehlungen
Jochen: von Podcastern,
Jochen: bitte irgendwie.
Jochen: Nee, ich habe da,
Jochen: ich habe da nichts gekauft
Jochen: und nichts verkauft.
Jochen: Das ist auch vielleicht doof, ja.
Jochen: Also müsste man
Jochen: vielleicht eigentlich machen.
Jochen: Ja, bei den Steuern,
Jochen: die man jetzt zahlen muss, ja.
Jochen: Ja, aber also genau.
Jochen: Also irgendwie.
Jochen: Aber also du glaubst nicht,
Jochen: dass Nvidia Mehrwert ist
Johannes: als die gesamte deutsche Wirtschaft zusammen.
Jochen: Ja, finde ich irgendwie komisch.
Jochen: Glaubst du nicht?
Jochen: Nee.
Jochen: Ja, okay gut.
Jochen: Ich glaube es auch nicht.
Jochen: Ja, aber interessanter Weg
Jochen: jetzt aus diesem Wissen
Jochen: irgendwie Geld zu machen,
Jochen: das hat Diebsig irgendwie geschafft
Jochen: und ja, ich meine,
Jochen: das haben sie wirklich gut gemacht.
Jochen: Also man muss mal anerkennend sagen,
Jochen: ist irgendwie eine,
Jochen: und ich habe,
Jochen: und dann hat jemand auf Mastodon
Jochen: oder so hat jemand
Jochen: eine ganz interessante Geschichte gepostet
Jochen: und das fand ich auch total super.
Jochen: Er meinte so, okay,
Jochen: das ist also,
Jochen: hm, Diebsig hat,
Jochen: das ist ja ganz gut gemacht.
Jochen: Lass mal überlegen,
Jochen: gibt es vielleicht noch
Jochen: irgendwelche anderen Firmen,
Jochen: die halt auch total überbewertet sind
Jochen: oder wo es eine Blase ist.
Jochen: Nein.
Jochen: Und man vielleicht so etwas Ähnliches
Jochen: machen könnte.
Jochen: Zum Beispiel,
Jochen: was ja auch immer so ein Problem ist,
Jochen: hatten wir es gerade schon von Open Source,
Jochen: ist schwer, schwer ein Geschäft zu,
Jochen: also wie kann man damit Geld verdienen?
Jochen: Hm, vielleicht so.
Jochen: Also wenn man sich jetzt
Jochen: so etwas überlegt wie SAP,
Jochen: verdient einen Haufen Geld
Jochen: für, ja, was eigentlich genau,
Jochen: ist ein bisschen unklar.
Jochen: Aber irgendwie,
Jochen: so wirklich,
Jochen: ja, ich meine,
Jochen: okay, das ist jetzt grob vereinfacht.
Jochen: Ich habe ehrlich gesagt keine Ahnung von SAP,
Jochen: aber ich würde sagen,
Jochen: das ist halt eine relationelle Datenbank
Jochen: und ein bisschen Frontend drumherum.
Jochen: Ja, aber so viel mehr ist da nicht.
Jochen: Und vieles davon ist wahrscheinlich
Jochen: auch gar nicht so gut.
Jochen: Und wie wäre es denn,
Jochen: wenn jetzt ein Hedgefonds hingehen würde
Jochen: und würde mich dafür bezahlen,
Jochen: doch mal sowas zu bauen,
Jochen: was ich...
Jochen: Dich spezifisch, okay.
Jochen: Ja, oder...
Jochen: Das ist der eigentliche Trick an der Geschichte.
Jochen: Ja.
Jochen: Verstehe.
Jochen: Oder sonst irgendwen.
Jochen: Keine Ahnung.
Jochen: Gut, dafür bezahlen.
Jochen: Du musst dir sagen,
Johannes: würde jemand für dich gut bezahlen.
Johannes: Ja, das halt in Open Source nachzubauen.
Jochen: Und dann Weihnachten 2025
Jochen: wirft man halt das Ding irgendwie raus.
Jochen: Ja, man zeigt aber vorher.
Jochen: Hat vorher,
Jochen: natürlich müsste man irgendwie
Jochen: so ein paar Leerverkäufe machen,
Jochen: so Tatting.
Jochen: Und dann,
Jochen: sagen wir hier so,
Jochen: SAP-Kunden,
Jochen: ihr habt den Ding,
Jochen: das macht genau das Gleiche
Jochen: und ihr müsst die ganzen Lizenzgebühren
Jochen: nicht bezahlen.
Jochen: Das Problem ist halt,
Dominik: dass das so Customized ist
Dominik: an die ganzen Schnittstellen,
Dominik: die es da gibt.
Dominik: Ach, Dominik,
Dominik: nur in deiner Realität.
Dominik: Ja, okay.
Dominik: Ja, natürlich.
Dominik: Lass mich doch von deiner Realität
Dominik: nicht die Worte sagen.
Dominik: Wirklichkeit verderben.
Dominik: So einfach ist es wahrscheinlich
Dominik: natürlich nicht alles, klar.
Jochen: Aber, also, ja.
Jochen: Ich glaube,
Jochen: der einzige Verkaufsfaktor ist,
Jochen: dass die ganzen,
Dominik: was sind das,
Dominik: Silos der ganzen Matrix-Konzerne
Dominik: von Finance,
Dominik: über HR,
Dominik: über was auch immer,
Dominik: alle ihr eigenes Modul haben,
Dominik: um ihre Kostenrechnung
Dominik: ganz wundervoll
Dominik: auf irgendwelchen Charts
Dominik: ausgeben zu lassen.
Dominik: Ja, und es hat nur
Dominik: wenige Millionen gekostet.
Dominik: Genau.
Dominik: Ja.
Dominik: Okay.
Dominik: Das heißt, Mighty.
Johannes: Nochmal zurück zum Thema News.
Johannes: Das kann man aber schon nachbauen.
Johannes: Glaube ich, hoffentlich.
Johannes: Ja, ich glaube auch.
Johannes: Hast du Lust?
Johannes: Naja.
Johannes: Aber, ja, also.
Johannes: Es gibt einen Grund,
Johannes: warum du da nicht
Johannes: viel mit zu tun haben willst.
Johannes: Ja, klar.
Johannes: Es ist halt auch irgendwie langweilig,
Johannes: aber.
Johannes: Ja, Jochen hat halt noch nicht
Johannes: die richtigen Investoren gefunden.
Johannes: Genau.
Johannes: Ich meine, natürlich Langeweile.
Johannes: 35 Millionen geben dafür.
Johannes: Das geht,
Johannes: das geht besser,
Johannes: wenn man irgendwie
Johannes: sich das Glas Wasser
Johannes: dann irgendwie
Johannes: in einem goldenen Wasserhahn
Johannes: irgendwie holt.
Jochen: Das macht dann, ja.
Jochen: Ich weiß es nicht.
Jochen: Keine Ahnung.
Jochen: Ja, aber ich fand die Idee
Jochen: auf jeden Fall interessant.
Jochen: Und dann dachte ich so,
Jochen: ach, das musste man ja,
Jochen: das muss man mal
Jochen: wieder mal machen hier.
Jochen: Ja.
Jochen: Genau.
Jochen: News.
Jochen: Das war diese Leipzig-Geschichte.
Jochen: Also, ja, es ist interessant.
Jochen: Also, ich,
Jochen: insgesamt ist es natürlich
Jochen: auch eine tolle, tolle Geschichte,
Jochen: dass es halt irgendwie,
Jochen: also, ich meine,
Jochen: ich glaube,
Jochen: diese Vorhersage von Jan LeCun,
Jochen: der, der, der jetzt bei Meta
Jochen: Dinge macht oder so,
Jochen: dass er sagt,
Jochen: ja, so auf lange Sicht
Jochen: werden die Open-Source-Geschichten
Jochen: gewinnen, ist richtig.
Jochen: Jetzt natürlich,
Jochen: irgendwie diepstigt das Modell,
Jochen: das ist kein Open-Source,
Jochen: das hat alles überhaupt
Jochen: gar nichts mit Open-Source zu tun.
Jochen: Ja, also,
Jochen: in den Medien hört man immer so,
Jochen: oh, ein Open-Source-Modell.
Jochen: Nein, natürlich nicht.
Jochen: Alles Quatsch.
Jochen: Ja, Trainingsdaten sind nicht Open-Source,
Jochen: die Algorithmen,
Jochen: der ganze Kram ist alles nicht Open-Source.
Jochen: Ja, aber man kann jetzt natürlich
Jochen: dieses Modell in Open-Source-Software
Jochen: verwenden.
Dominik: Ja, und man konnte es halt auch benutzen.
Dominik: Es war halt frei verfügbar einfach.
Dominik: Genau.
Dominik: Also, es war nicht nur per Schnittstelle
Dominik: über so ein Projekt.
Dominik: Keine komische Lizenz, ja.
Dominik: Also, Lama hat ja immer noch
Dominik: diese eigenartige Lizenz,
Dominik: so, du darfst es verwenden.
Dominik: Es sei denn, du bist Google,
Dominik: dann nicht.
Dominik: Aber, ja.
Dominik: Ja, aber das,
Dominik: also, das hat mich jetzt noch nie gestört
Dominik: an der Lama-Lizenz-Vereinbarung.
Dominik: Bist du nicht Google?
Dominik: Da bin ich weit davon enttäuscht,
Johannes: von den 700 Millionen-Maus.
Johannes: Ja.
Jochen: Genau.
Jochen: Wie auch immer.
Jochen: Ja, wie auch immer.
Jochen: Genau, das,
Jochen: ja, das war so die eine Geschichte.
Jochen: Oh, ja, dann,
Jochen: also, überhaupt,
Jochen: ich meine,
Jochen: das wird jetzt,
Jochen: es gibt da noch so ein paar
Jochen: Geschichten,
Jochen: also, OpenAI
Jochen: verliert irgendwie
Jochen: beständig Leute.
Jochen: Also,
Jochen: das ist auch irgendwie etwas,
Jochen: was ich irgendwie
Jochen: interessant finde.
Jochen: Also, irgendwie,
Jochen: also, Sam Altman,
Jochen: also, ich meine,
Jochen: ihr habt Sam Altman verloren?
Jochen: Nein, nein.
Jochen: Fast.
Jochen: Fast hätte er
Jochen: noch mal Glück gehabt,
Jochen: dass das nicht passiert ist.
Jochen: Fast hätte er einen Elonist
Jochen: auch gekriegt.
Jochen: Ja.
Jochen: Also,
Jochen: ja, also,
Jochen: Alec Redford ist jetzt auch weg.
Jochen: Und,
Jochen: die Leute,
Jochen: also,
Jochen: es haben schon mal,
Jochen: also, die ersten,
Jochen: also,
Jochen: die Leute,
Jochen: die Anthropic gegründet haben,
Jochen: oder halt Dario,
Jochen: hat halt irgendwie versucht,
Jochen: die waren doch auch,
Jochen: die kommen doch auch von OpenAI alle.
Jochen: Ja, die kommen auch alle von OpenAI.
Jochen: Das sind die Leute,
Jochen: die Chachapiti ursprünglich mal gebaut haben.
Jochen: Und,
Jochen: die haben aber auch schon mal versucht,
Jochen: Sam Altman feuern zu lassen.
Jochen: Es hat nicht geklappt,
Jochen: dann mussten sie alle gehen.
Jochen: Und,
Jochen: ja,
Jochen: dann haben das nochmal wieder Leute versucht.
Jochen: Die haben,
Jochen: es hat auch wieder nicht geklappt,
Jochen: dann mussten wieder alle gehen.
Jochen: Und,
Jochen: es gehen immer noch irgendwie,
Jochen: diese Leute,
Jochen: ja.
Jochen: Ist ein Modell,
Jochen: kann man machen.
Jochen: Ja.
Jochen: Ja,
Jochen: aber ich meine,
Jochen: was ich gut finde,
Jochen: ist halt,
Jochen: dass es halt wirklich irgendwie
Jochen: ganz ordentlichen Wettbewerb gibt.
Jochen: ich muss auch sagen,
Jochen: die Anthropic-Geschichten,
Jochen: zum Beispiel zum Programmieren,
Jochen: finde ich,
Jochen: ist so nicht so das beste Modell,
Jochen: momentan.
Jochen: Und,
Jochen: ja,
Jochen: es funktioniert alles super.
Jochen: Genau,
Jochen: dann aber auch interessant,
Jochen: die Neu-
Jochen: OpenAI-Modelle
Jochen: O3 oder so,
Jochen: da gab es große Erfolge
Jochen: bei irgendwie
Jochen: AGI und
Jochen: Frontier Math Benchmarks
Jochen: und so. Also das ist schon...
Jochen: Ja, ich glaube, der Trick ist
Dominik: halt tatsächlich, dass man das
Dominik: so verknüpft mit so einer Art persistenter
Dominik: Datenbank, auf
Dominik: die das zugreifen kann, das Ding.
Dominik: Persistente Datenbank?
Dominik: Ja. Was ist das denn? Keine Ahnung.
Dominik: So ein Sprachmodell darf bei dir auf die Datenbank
Dominik: zugreifen und sich daran erinnern, was es in der letzten
Dominik: oder vorletzten Session da abgelegt hat.
Dominik: Und so eine Transaktion
Dominik: da machen und von da
Dominik: weitermachen. Also dass quasi das
Dominik: Consciousness gesaved werden
Dominik: kann, was es da hat. Und die Frage,
Dominik: was halt dann Consciousness dann heißt und was
Dominik: davon Memory ist und was
Dominik: an
Dominik: Prozessen drumherum notwendig
Dominik: ist, um das zu einem Consciousness
Dominik: zu machen. Also sowas wie
Dominik: Reasoning über Zusammenhänge, die man hat
Dominik: oder Neubilden von Informationen
Dominik: anhand der Informationen, die man dann schon gespeichert
Dominik: hat. Aus so einem, ich sag mal Dialoggespräch
Dominik: und ich würde sagen, jedes Dialoggespräch ist
Dominik: eine eigene Entität.
Dominik: Das ist so ein bisschen wie
Dominik: wenn man mit sich selber einen inneren
Dominik: Dialog hält.
Dominik: Die Anfänge von so einer
Dominik: Subjekt-Objekt-Beziehung. Und ich finde, das geht schon sehr
Dominik: in die Richtung, wo man was draus bauen kann.
Dominik: Und so eine Initialzündung
Jochen: von... Okay, ich finde, das sind so zwei
Jochen: Aspekte. Also der eine wäre sowas wie dieses
Jochen: Model-Context-Protokoll von
Jochen: Anthropic, wo du halt sozusagen
Jochen: dem Modell irgendwie Dinge geben kannst.
Jochen: Oder halt, du kannst immer auch Zugriff auf
Jochen: deinen Rechner geben oder was auch immer.
Jochen: Du kannst eine Datenbank anbinden.
Jochen: Das ist die eine Geschichte, dass du halt nicht
Jochen: immer dieses Retrieval-Augmented-Generation
Jochen: machen musst, sondern dass du halt dem
Jochen: Modell sagen kannst, also hier ist eine
Jochen: Datenbank, die kannst du fragen und hier ist irgendwie sonst was.
Dominik: Okay, gut, aber es hat natürlich
Dominik: die Stelle für dasselbe. Ob du jetzt Rack machst oder
Dominik: nicht, ist fast egal.
Dominik: Ja, genau.
Jochen: Also macht inhaltlich keinen großen
Jochen: Unterschied. Das andere, diese
Jochen: Reasoning-Modelle, das ist
Jochen: halt irgendwie, das ist halt so eine Kombination von
Jochen: irgendwie
Jochen: dem, ja, Token-Generieren,
Jochen: was halt alle
Jochen: Modelle da irgendwie machen. Das musst du
Jochen: erklären, was du damit meinst?
Jochen: Naja, dass du halt einfach Next-Token-Prediction machst.
Jochen: Okay. Das macht ihr alle? Ja.
Jochen: Aber der Unterschied jetzt zu den
Jochen: Reasoning-Modellen ist halt, dass man jetzt sagt, okay,
Jochen: man generiert...
Jochen: Autsch.
Jochen: Äh, generiert halt so Chains
Jochen: of Thought, und zwar jede Menge. Ja.
Jochen: Und wählt dann halt die, die irgendwie
Jochen: in sich konsistent aussehen, aus, als
Jochen: das könnte die Antwort sein. Ja.
Jochen: Das heißt, man kombiniert irgendwie so eine Art Suche,
Jochen: also irgendwas, wie wir
Jochen: im Schach irgendwie, wo man halt auch Varianten
Jochen: sucht. Ja, jetzt sind wir halt nämlich in einem Graph drin.
Dominik: Und diese Graphen haben quasi ja auch States,
Dominik: die irgendwas machen. Und
Dominik: jetzt kann man vielleicht hingehen und kann
Dominik: das kuratiert
Dominik: hardcoden, in verschiedenen
Dominik: Szenarien, das nicht durch das LLM machen lassen,
Dominik: sondern so verschiedene kuratierte Szenarien
Dominik: vorgeben, die ein State sind
Dominik: und zwischen denen man sich hin und her bewegen kann.
Dominik: Und dann kommt man
Dominik: wieder auf noch einen Schritt weiter.
Jochen: Ja, keine Ahnung. Also ich würde
Jochen: sagen, man kann jetzt halt irgendwie traden zwischen...
Jochen: Also ich würde jetzt überlegen,
Jochen: wo man die...
Jochen: Wo man Computer ausgeben möchte, zu
Jochen: Inference-Time oder bei Trainingszeit.
Jochen: Und für ein optimales Ergebnis muss man
Jochen: halt irgendwie wahrscheinlich ein bisschen mehr
Jochen: Computer in Inference-Zeit
Jochen: verlagern und halt
Jochen: ein bisschen mehr Suche machen.
Jochen: Aber dass das so gut
Jochen: funktioniert, ist halt eine Überraschung. Also das war halt auch
Jochen: nicht klar, dass das geht. Und ja,
Jochen: es macht aber einen riesen
Jochen: Unterschied. Und ich meine,
Jochen: der Arc-AGI-Benchmark ist halt komisch
Jochen: benannt, weil er hat nichts mit AGI zu tun.
Jochen: Aber ja,
Jochen: das kriegen Leute auch immer in den falschen Hals.
Jochen: ja, Frontier-Math ist aber auch...
Jochen: Ja, oder auch super interessant, wie heißt
Jochen: das Ding?
Jochen: Dieser Coding-Benchmark,
Jochen: äh...
Jochen: Ah, ich hab's
Jochen: vergessen. Aber
Jochen: das sind auf jeden Fall irgendwie... Sie haben echte
Jochen: Pull-Requests genommen, gegen Projekte
Jochen: wie zum Beispiel Django ist da halt auch mit drin,
Jochen: aber halt auch noch so ein paar andere.
Jochen: Scikit-Learn ist auch drin. Und haben
Jochen: dann geguckt, wie viele von den
Jochen: offenen Pull-Requests würde sozusagen
Jochen: ein LLM
Jochen: halt lösen.
Jochen: Und da kommen die
Jochen: guten... Also es gab immer schon spezialisierte Modelle,
Jochen: die ganz gut abschneiden, aber das ist halt irgendwie...
Jochen: Ja, es ist halt auch nicht so
Jochen: einfach, die irgendwie laufen zu lassen.
Jochen: Und ja, aber die
Jochen: normalen LLMs waren halt da nie
Jochen: so wirklich gut. Bis jetzt auch die
Jochen: Reising-Modelle, die sind alle auch super. Also die kommen auch schon da
Jochen: auf fast 50% oder sowas.
Jochen: Und das ist natürlich schon krass. Also irgendwie...
Jochen: Ja.
Jochen: Ja, das ist auch nicht so schlecht.
Jochen: Ja.
Jochen: Äh, genau.
Jochen: Oh, dann was wir...
Jochen: Dann haben wir eine Mail gekriegt.
Jochen: Das reicht auch gerade noch so.
Jochen: Äh, PyCon Austria
Jochen: ist jetzt irgendwie.
Jochen: Oh ja, wir sollen das... Und wir sollen das ankündigen.
Jochen: Das ist am 6. und 7. April
Jochen: 2025.
Jochen: Äh, Hochschule
Jochen: Burgenland in Eisenstadt.
Jochen: Ja, genau.
Jochen: Kann man sich mal ansehen.
Jochen: Ähm...
Jochen: Was haben wir noch?
Jochen: Äh...
Dominik: Wir müssen mal eine ganze LLM-Folge mal wieder machen.
Jochen: Ja, ja, ja. Ich hab mir da auch schon so ein paar Sachen
Jochen: aufgeschrieben. Genau. Da brauchen wir halt noch irgendeinen Gast.
Jochen: Ja.
Jochen: Wenn sich da irgendjemand berufen fühlt oder so.
Jochen: Genau. Wir suchen da jemanden.
Jochen: Oder jemanden kennt.
Jochen: Oder jemanden kennt, den man mal fragen könnte.
Jochen: Dann, äh, wär das wahrscheinlich ganz nett.
Jochen: Da gibt's auch so viele Tools und Dinge, über die man mal reden müsste.
Jochen: Also gerade dieses ganze Thema, äh,
Jochen: Programmieren mit LLMs finde ich halt sehr interessant.
Jochen: Ich mach das ja auch viel.
Jochen: Und, ähm, ja, das, äh...
Dominik: Ja, und da kann man auf unterschiedliche Arten, kann man das tun.
Dominik: Ja.
Jochen: Genau. Und da kann man auch mal die ganzen Tools angucken
Jochen: und sowas. Ja.
Johannes: Ich hab noch zwei News-Items, die ja allerdings in eine ganz andere...
Johannes: Richtung gehen. Okay.
Johannes: Der, das erste Item ist,
Johannes: dass, äh, Microsoft
Johannes: bei Nature eine Veröffentlichung
Johannes: eingereicht hat. Mhm.
Johannes: Wo sie, äh, sagen, sie haben
Johannes: einen, äh,
Johannes: Quantencomputer mit topologischen
Johannes: Qubits. Oha.
Johannes: Gefunden.
Johannes: Hm. Okay. Und, äh,
Johannes: das ist wohl eine andere Art, äh, Qubits zu machen,
Johannes: die stabiler ist. Und das ist
Johannes: aber, also da ist sehr viel,
Johannes: sehr viel,
Johannes: sehr viele Worte drin, die man sich mal von einem LLM
Johannes: an erklären lassen müsste.
Johannes: Special kind of Qubit
Johannes: built using non-Abelian
Johannes: Anions, which are excitations that
Johannes: can exist in a two-dimensional medium.
Dominik: Ähm, würdest du
Dominik: kurz was dazu sagen, bitte, lieber Johannes?
Johannes: Nee, ich kann da gar nichts dazu sagen.
Johannes: Was ist denn überhaupt topologische
Johannes: Quanten? Keine Ahnung. Äh, es war
Johannes: einfach nur in der Veröffentlichung, dass es einen
Johannes: Durchbruch gab in dieser Art Quantencomputer.
Johannes: Ah, okay. Und das, äh, hat
Johannes: auch einige, einige Wellen erzeugt.
Jochen: Ja, also Quantencomputer wäre schon voll cool, aber
Jochen: ich, also alle bisherigen Durchbrüche
Jochen: waren nicht so richtig
Jochen: Durchbrüche, ehrlich gesagt. Ja, sind, sind noch nicht,
Johannes: sind noch nicht so weit gekommen. Und, äh, ja.
Johannes: Aber es wird Zeit, dass man zu
Johannes: Postquanten-Kryptografie wechselt.
Dominik: Ja, das wird man vielleicht machen. Der hat auch einen tollen Namen,
Dominik: dieser Typ, der heißt Majorana.
Johannes: Majorana. Ja, das, äh, das
Johannes: liegt daran, dass das, äh, das ist so ein,
Johannes: das ist tatsächlich der,
Johannes: irgendein Autor, der
Johannes: Das hätte jemand so viel gekifft.
Johannes: Majorana Zero Modus.
Johannes: Egal. Das zweite
Johannes: News-Item ist tatsächlich wesentlich
Johannes: spezifischer für Python
Johannes: und ist auch erst zwei Wochen alt,
Johannes: ungefähr.
Johannes: Äh, und zwar gibt
Johannes: es, äh, einen PR, der jetzt gerade,
Johannes: äh, durch die Review
Johannes: geht. Und, äh,
Johannes: da wird ein Tail-Calling-Interpreter
Jochen: äh, umgesetzt. Ah, ja, ja. Ja, das
Jochen: ist cool. Was das genau ist, ist,
Johannes: spielt auch keine richtig große Rolle. Tail-Call-Optimization
Johannes: ist so eine Möglichkeit,
Johannes: um, äh, Stack-Frames zu eliminieren,
Johannes: wenn man weiß, dass man nicht mehr dahin zurückkehrt.
Johannes: Das Wichtige daran ist,
Johannes: neun bis fünfzehn Prozent,
Johannes: äh, Geschwindigkeits-
Johannes: Improvement. Ja. Das ist schon, das ist
Jochen: schon massiv. Das ist massiv, ja, richtig.
Dominik: John Haberman war das, oder Josh Haberman?
Dominik: Äh, Ken Jin
Dominik: war das. Aha.
Dominik: Und, äh, ist schon, ist,
Johannes: äh, es ist jetzt schon gemerged und, äh,
Johannes: wird mit drei Vierzehn veröffentlicht.
Johannes: Noch nicht in den, nicht in den
Johannes: Default-Sachen, also man muss das, äh,
Johannes: beim Konfigurieren, beim Compilen,
Johannes: äh, gibt's dann einen Schalter, den man
Jochen: Und, und das funktioniert irgendwie auch nur bei
Jochen: neueren Compilern. Das ist auch leider der Grund, warum
Jochen: sie es nicht, äh, äh, äh,
Jochen: per Default anmachen, weil du brauchst halt wirklich
Jochen: neue Compiler-Personen. Es gibt nur bei LLVM. Ja.
Johannes: Weil der C-Standard, äh,
Johannes: in dem C-Standard gibt's so Sachen, die das nicht,
Johannes: äh, können.
Johannes: Der C-Standard, äh,
Johannes: der braucht immer Register bei so einem,
Johannes: bei so einem Funktionsaufruf und, äh,
Johannes: deshalb wurde das auf Ebene von
Johannes: der LLVM-IL, ja, also
Johannes: dieser Intermediate Representing,
Johannes: der Presentation gemacht. Und da kann man das
Johannes: nämlich wegeliminieren. Da gibt's so ein, vielleicht, das heißt
Johannes: Must-Tale, äh,
Johannes: das sind alles technische Details. Das Interessante
Johannes: ist, dass da wirklich einfach
Johannes: mit einem, mit einer neuen Umsetzung
Johannes: einfach 10 Prozent, 10, 15 Prozent
Johannes: mehr Performance rauskommen. Und das ist schon,
Johannes: das ist schon fantastisch. Ja.
Johannes: Ja, voll gut.
Johannes: Stimmt.
Jochen: Ja, ansonsten,
Jochen: genau,
Jochen: hab ich jetzt, glaub ich, gar nichts. Ich muss mal
Jochen: scrollen, da ist so viel Zeugs, aber
Jochen: ...
Jochen: Das Alter ist schon vorbei, ist nicht mehr
Jochen: in Höhe. Ja, also wir haben auch,
Jochen: das sollte, da sollten wir vielleicht auch einfach was zu
Jochen: sagen, äh, zu dem, zu dem,
Jochen: wir hatten mal aufgerufen, ob, äh,
Jochen: Leute, äh, sich melden könnten, die Interesse
Jochen: drin haben, irgendwie so ein Hörertreffen mal. Ja,
Jochen: da gab's relativ viel. Und da gab's relativ viel
Jochen: Feedback tatsächlich und, also,
Jochen: sagen wir mal so ausreichend genug, dass wir das
Jochen: jetzt wohl tatsächlich ernsthaft ins Auge fassen müssen.
Jochen: Ähm, ja. Keine Ausrede mehr.
Jochen: Und das ist ... Ja, aber es ist ja leider nicht in Süddeutschland,
Johannes: deshalb ist es eigentlich auch egal, ob man das
Johannes: macht, oder? Ja, du kommst ...
Dominik: Genau. Das ist eingeflogen.
Jochen: Wir können ja mal gucken. Also, ich würde,
Jochen: würde denken, dass es gut wäre, das irgendwann zu
Jochen: machen, wenn es ein bisschen wärmer ist, dass man auch irgendwo
Jochen: draus gehen kann, wo es irgendwie
Jochen: schön ist. So Mai, Juni. Irgendwie so,
Jochen: genau, genau.
Jochen: Äh, und, äh, dann ...
Jochen: Agree. Brauchen wir noch eine, eine
Jochen: Location irgendwie, und dann müssen wir den, den Johannes
Dominik: irgendwie ... Was wollen wir denn, ähm,
Dominik: also, ich würde eher so, äh, Erwachsenenzeit
Dominik: nehmen, also, irgendwie so Mittags anfangen.
Dominik: Ah, okay. Anstatt abends. Ah, die
Dominik: sollte Erwachsenenzeit.
Dominik: Ja. Ja. Und dann kann man
Dominik: sich doch irgendwie ein schönes, was Grünes raussuchen,
Dominik: oder? Muss ja nicht jetzt so ... Ja. Ja.
Jochen: Ja, klingt voll gut.
Jochen: Ja, aber, und wir können auch schon mal
Jochen: sagen, es wird wahrscheinlich eher so Rheinland,
Jochen: das heißt Köln, Düsseldorf. Ah, Düsseldorf
Jochen: wird ... Ja.
Jochen: Ja. Kleiner Spoiler. Ja.
Dominik: Ja, okay. Ja. Ja, aber es waren viele Leute, die
Dominik: hier sagten, die kommen hier vorbei, und dann deswegen machen wir das einfach
Dominik: hier. Ja.
Jochen: Mhm. Genau.
Jochen: Ja, also, aber dann, das waren
Jochen: dann auch schon alle News, die ich so hatte, glaube ich.
Jochen: Ja.
Jochen: Ja, war ja einiges.
Dominik: Wolltest du nicht noch irgendwas erzählen von der, äh,
Jochen: Voskonten? Ach, Voskonten. Ja, genau,
Jochen: doch, ja, äh,
Jochen: könnte ich, äh, genau, auch. Ja, äh,
Jochen: und, ähm, ja, warte, da mach ich mal
Jochen: am besten mal eine Kapitelmarke und sag hier mal, äh ...
Jochen: Ja, äh, Peikon Web war auch noch.
Jochen: Ach so, genau, da kannst du ja mal was erzählen.
Jochen: Dann nenn ich die Kapitelmarke einfach Konferenzen
Jochen: nachher. Ja. Ja, so viel
Jochen: kann ich dazu eigentlich gar nicht erzählen.
Jochen: War, war interessant. War interessant? Ja.
Jochen: Okay, wie viele Leute waren denn ungefähr da?
Jochen: Boah, schwer zu sagen.
Jochen: 200? Okay.
Dominik: Also, waren nicht so riesig groß.
Jochen: Wo, wo fand das denn statt in Berlin?
Dominik: In Berlin, ähm, ach so, ähm,
Dominik: CC, irgendwie so ein
Dominik: Center, das war relativ draußen in, äh,
Dominik: wer ist das da?
Dominik: Viertel, Moment, ich muss
Dominik: mal kurz schauen. Ja, in irgendeinem
Dominik: Viertel in Berlin. oder so, ja.
Dominik: Okay, ja. Also, genau, irgendein Haus
Dominik: in irgendeinem Viertel in Berlin
Dominik: war, also,
Dominik: war nicht so groß wie. Ist ja eine genaue Beschreibung.
Dominik: Ja, genau.
Jochen: Ja, ich, wir können die Konferenz einfach
Jochen: verlinken, dann kann man da nachgucken. Ja.
Jochen: Okay. War, war eine interessante Sache dabei.
Jochen: Fand ich ganz gut. Aber wie war so die
Jochen: Atmosphäre? Ich meine, PyCon Web klingt
Jochen: für mich jetzt nach Webentwicklung und da
Jochen: gab's da irgendwelche interessanten, also
Jochen: ich meine, klar, also. Vielen Dank, ich hab
Jochen: ja viel über UUIDs gelernt.
Jochen: Ah, okay. Hm. Ja. Das find ich
Jochen: gut. Über die neuen, oder?
Dominik: Äh, sieben oder acht, ja.
Dominik: Ja, das sind die neuen.
Jochen: Okay, ich hab immer noch nicht so richtig verstanden, wofür man die
Jochen: unbedingt braucht, aber gut. Ja, dann,
Jochen: wenn du den Talk hörst, dann weißt du. Ja, jetzt mal auf die PyCon Web
Jochen: gehen. Okay, gut, dann, äh,
Jochen: genau, dann muss ich mir den wohl mal angucken.
Dominik: Ja, ich hab's tatsächlich umgestellt in
Dominik: Dango auch jetzt auf sieben, glaube ich,
Dominik: ja. Ja. Ist leider
Dominik: eine extra Lip und man muss so ein klein, bei Dango
Dominik: geht's nicht einfach so, aber man
Dominik: kann das quasi dann mit einem anderen Import
Dominik: versehen und dann funktioniert's als sieben und
Dominik: die sind auch dann geordnet und so.
Dominik: Das ist sehr, sehr schön.
Dominik: Ah. Ja.
Jochen: Genau, ich war jetzt am Anfang
Jochen: Februar, ähm, auf der
Jochen: FOSDEM in Brüssel und, ähm, ja,
Jochen: nee, das war auch ziemlich cool irgendwie,
Jochen: das war riesig, also,
Jochen: ähm, ja,
Jochen: das ist immer so ein bisschen, also es ist einfach, es ist
Jochen: irgendwie zu viel, also man, es sind
Jochen: einfach wahnsinnig viele Leute, ich weiß nicht, wie viele da waren,
Jochen: aber es könnten so 10.000 gewesen sein
Jochen: ungefähr und das
Jochen: findet halt statt immer auf diesem Campus der,
Jochen: ähm, Freien Universität
Jochen: Brüssel irgendwie und
Jochen: der ist halt auch dann komplett voll.
Jochen: Es gibt halt, ich weiß nicht, wie viele Tracks, äh,
Jochen: keine Ahnung, viele.
Jochen: 30 oder so? Ja.
Jochen: Es ist halt, also
Jochen: allein sich das Programm anzugucken ist halt
Jochen: schon ein Ding der Unmöglichkeit,
Jochen: weil, äh, es ist irgendwie,
Jochen: sobald man einmal durch alle
Jochen: Talks durchgescrollt hat für den Tag und
Jochen: dann mal geguckt hat, sind die Talks, die man sich angucken
Jochen: wollte, schon vorbei, weil es dauert einfach zu lange.
Jochen: Und, äh. Hast du einen Sitzplatz bekommen irgendwo?
Jochen: Ja, ja, doch. Also, klar,
Jochen: es war schon auch sehr voll, also, das
Jochen: ist, äh, aber, äh,
Jochen: gerade bei, äh,
Jochen: bei den großen Sälen, ähm,
Jochen: kam man eigentlich meistens dann doch noch
Jochen: irgendwie rein. Manchmal musste man ein bisschen früher da sein.
Jochen: Ja, ja, ja,
Jochen: es war wahnsinnig voll. Es war, aber es war auf der anderen Seite
Jochen: auch wieder gut zu sehen, dass halt irgendwie,
Jochen: äh, also oft hatte man ja jetzt das Gefühl, auch
Jochen: gerade nach Covid, dass, ähm,
Jochen: dass
Jochen: einfach Sachen irgendwie leerer waren,
Jochen: ne, so, äh, dass nicht mehr so viele Leute
Jochen: zu irgendwelchen Veranstaltungen gehen und das alles
Jochen: irgendwie so ein bisschen, ja, und
Jochen: dann, also, bei der, bei der Subscriber
Jochen: war das zum Beispiel auch so, dass man sagt, ja, also, es sind gerade
Jochen: so viele Leute, dass sich das halt irgendwie so halbwegs
Jochen: lohnt, aber es sind deutlich weniger
Jochen: als bei der letzten Konferenz vor Covid
Jochen: und bei Meetups hört man das auch immer,
Jochen: so viele haben auch zugemacht oder bei manchen
Jochen: ist es halt so, naja, da kommen jetzt ein bisschen weniger
Jochen: als vor Covid, aber es kommen wieder welche
Jochen: und jetzt bei der FOSDEM war das halt so,
Jochen: äh, so,
Jochen: einfach, man, man geht da hin und dann
Jochen: stehen einem Leute auf den Füßen,
Jochen: weil es halt so voll ist, also, es war einfach, und man
Jochen: kommt in die Säle nicht rein, weil es halt irgendwie,
Jochen: weil da Riesenschlangen davor sind.
Jochen: Also, da geht wieder einiges, also, das ist halt, war
Jochen: richtig, ähm, da war richtig
Jochen: was los, genau.
Dominik: Den Python-Deathroom hat Marc-André gemacht, oder?
Jochen: Genau, ja, das war
Jochen: am Sonntag, das war halt
Jochen: am Wochenende, Samstag, Sonntag, Sonntag war
Jochen: Python-Deathroom in so einem, ja,
Jochen: Hörsaal da und
Jochen: da waren einige sehr coole Talks dabei,
Jochen: ähm, ich hab da nicht alle gesehen,
Jochen: also, gerade morgens war ich halt noch
Jochen: irgendwie nicht da,
Jochen: äh, und dann so
Jochen: ab mittags hab ich so drei, vier gesehen,
Jochen: glaube ich,
Dominik: ähm. War das auch Hybrid? Also, das finde ich
Dominik: ja zum Beispiel bei den Großen, ne, Europice und
Dominik: Funnel ist immer toll, da konnte man dann,
Dominik: während man einen Talk gerade
Dominik: auf dem Telefon weiterguckte, auf dem Nachhauseweg
Dominik: ins Hotelzimmer, auf dem Hotelfernseher
Dominik: zu Ende gucken, dann kurz in die Sauna gehen
Dominik: und dann zum Talk auf dem Gang wieder dabei
Dominik: sein drüben. Ja, das, das
Jochen: geht da schon, das geht da auch, also, es gibt
Jochen: einen Stream von allen
Jochen: Tracks, sozusagen. Ja, genau,
Jochen: das ist cool. Äh, genau, also,
Jochen: aber das ist alles sehr weitläufig da, das
Jochen: heißt, man kann da nicht, also, das hab ich, auf der Karte,
Jochen: also, Brüssel ist irgendwie viel, äh,
Jochen: weitläufiger, als ich jetzt gedacht hätte,
Jochen: also, Brüssel, auch keine so riesige Stadt,
Jochen: bisschen größer als Düsseldorf vielleicht, aber nicht so
Jochen: wahnsinnig viel größer, und Düsseldorf ist ja so eine Stadt,
Jochen: da kann man einfach mal so, so, in einer
Jochen: Dreiviertelstunde so von Osten nach
Jochen: Westen oder Süden nach Norden durchlaufen.
Jochen: Was? Ja, also,
Jochen: durch den Kern. Also, du wohnst
Jochen: hier halt auch im Zentrum, das ist ja in jede Richtung
Dominik: einmal, das ist dann schon anderthalb, aber, ja, okay.
Jochen: Ja, okay, also, ich meine jetzt, also, wenn man
Jochen: eine Achse durchläuft, dann, das dauert
Jochen: gar nicht so lang, das sind halt drei, vier Kilometer, mehr nicht.
Dominik: Naja, also, ich brauche, wenn ich auf die andere
Dominik: Reihenseite brauche, brauche ich anderthalb Stunden.
Dominik: Nee, das brauche ich nicht. Doch, von mir aus schon.
Jochen: Ach so, ja, gut, okay, okay, ja, ja, okay, aber du bist ja
Jochen: noch nicht am, ja, okay.
Dominik: Ich bin nicht mal im Ostrand, ich kann damals
Dominik: zu Johannes hochlaufen, hat doch mal eine anderthalb Stunden
Dominik: gedauert. Ja, äh, okay.
Jochen: Ja, gut, es hängt dann auch noch ein bisschen
Jochen: davon ab, aber sowas so, also, mein, mein,
Jochen: mein Gefühl für Städte, die ungefähr so groß sind
Jochen: wie Düsseldorf, sagt mir halt, ich kann da irgendwie
Jochen: hinlaufen, wenn ich da irgendwo in der Nähe wohne.
Jochen: Das sollte kein Problem sein. Ja.
Jochen: Und das ist in Brüssel aber falsch.
Jochen: Also, das sah auf der Karte aus so, irgendwie,
Jochen: das ist da genau in der Nähe, und dann war das
Jochen: halt aber zu Fuß 40 Minuten.
Jochen: Und das war... Das geht ja noch. Ja, aber...
Dominik: Also, ich, in Berlin musste ich tatsächlich 40 Minuten
Dominik: mit der S-Bahn fahren.
Jochen: Ja, also, genau,
Jochen: klar, in Berlin ist natürlich, Berlin ist auch riesig,
Jochen: aber da, das wäre mir klar gewesen,
Jochen: dass Berlin sehr weitläufig ist, das weiß ich, aber
Jochen: Brüssel war mir jetzt nicht so, und das,
Jochen: das, das irgendwie Öffentlich-Verkehrssystem in Brüssel
Jochen: ist auch irgendwie, ja, so ein bisschen
Jochen: komisch, aber, äh, ja,
Jochen: und man braucht auch sehr lange da. Aber,
Jochen: äh, genau, also, da kann man nicht einfach irgendwie mal
Jochen: kurz ins Hotel oder in die Sauna und dann
Jochen: wieder zurück oder so, das ist, da dauert...
Jochen: Du hast dir einfach ein falsches Hotel ausgesucht. Ja.
Jochen: Sieht das sonst aus? Ja, gut. Vielleicht.
Jochen: Ja, aber, genau, also,
Jochen: äh, ja, also, ich hab da auch ein, genau,
Jochen: in dem, äh,
Jochen: einen Talk, äh, gehalten über, über,
Jochen: über mein, äh, Resümee,
Jochen: äh, irgendwie, Side-Project.
Jochen: Django-Resümees. Django-Resümee.
Dominik: Ja, wir machen gerade unsere CVs
Jochen: schick. Genau, weil
Jochen: das muss man ja so,
Jochen: auf und zu machen, oder, äh,
Jochen: so, wenn, ja.
Dominik: Kann man schon mit Voucher-Token, äh, direkt einmal
Dominik: aufrufen für, das ist dann eine Woche gültig, und dann kann man
Dominik: sich das alles schon angucken, die ganzen Projekte und sowas, ja?
Jochen: Ja, genau, genau, das
Jochen: ist da auch drin, aber im Wesentlichen ist es
Jochen: halt irgendwie so ein JSON-Field,
Jochen: wo der ganze Kram halt drinsteht. Jochen schreibt
Dominik: sogar die ganzen Token mit ins JSON-Field rein, da steht
Dominik: einfach alles in dem JSON-Field drin, hätte ich jetzt gar nicht
Dominik: so erwartet. Ja. Alle Plugins
Dominik: so, einfach ein JSON-Field, alles rein, papp.
Dominik: Ja. Fand ich ein bisschen seltsam. Postgres,
Johannes: als MongoDB verwenden. Ja.
Jochen: Ja, genau. Aber, also, die Idee ist,
Jochen: äh, ist sozusagen... Ein bisschen schneller.
Jochen: Ja.
Jochen: Genau, und man macht halt immer nur eine
Jochen: Query, äh, pro,
Jochen: wenn man eine Webseite rendert,
Jochen: weil man muss immer nur dieses eine Ding aus der Datenbank holen,
Jochen: fertig. Ähm,
Jochen: na ja, aber der eigentliche Grund, warum ich das an der Stelle
Jochen: so gemacht hab und nicht irgendwie
Jochen: quasi so, äh, in Normalform
Jochen: so normalisiert irgendwie,
Jochen: äh, in der Datenbank, äh,
Jochen: äh, schreibe, wie man das vielleicht normalerweise
Jochen: tun würde, ist, dass ich gern hätte,
Jochen: dass man das durch Plugins erweitern kann.
Jochen: Und wenn man jetzt ein Plugin
Jochen: schreibt, das halt eigene Tabellen mitbringt
Jochen: und so, dann wird es schnell sehr eklig,
Jochen: weil da muss man sich überlegen, okay, jetzt müssen
Jochen: die Daten ja da irgendwie aus den Tabellen rausgeholt
Jochen: werden. Jetzt muss irgendwie das Hauptding irgendwie
Jochen: wissen, wie all diese Tabellen sind, oder den muss man
Jochen: halt irgendwie, dann muss man dagegen joinen
Jochen: oder, äh, das wird alles sehr komisch.
Dominik: Ja, aber da muss man halt auch eine Liste pflegen mit, äh,
Dominik: offiziell supporteten Plugins, sodass die alle
Dominik: auch identische Keys nicht haben, sondern dass die...
Jochen: Ja, das, das muss man vielleicht nicht, aber, also,
Jochen: man kann man wahrscheinlich auch irgendwie automatisch machen,
Jochen: aber das ist...
Jochen: Das ist halt dann schwierig.
Jochen: Äh, während wenn halt man sagt, also,
Jochen: äh, wenn du Plugins schreibst,
Jochen: dann, äh, ist sozusagen die Anforderung,
Jochen: dass das etwas sein, also, die Daten
Jochen: müssen halt etwas sein, was man nach
Jochen: JSON serialisieren kann und wieder, äh,
Jochen: ja, so, dann
Jochen: war's, reicht das eigentlich schon.
Jochen: Äh, und, äh, ja,
Jochen: dann muss man halt sonst nichts machen und
Jochen: kann einfach den Namen des Plugins nehmen und
Jochen: darunter halt die ganzen Daten speichern.
Dominik: Ich hab ja gesehen, Name Collision, zweimal das gleiche
Dominik: Plugin-Clown gleich nennt. Ja, das geht natürlich nicht.
Dominik: Wenn es nicht blüht. Aber, ähm,
Dominik: aber das ist, da hast du ja... Das Problem hast du ja immer.
Jochen: Kontrolle drüber, wenn du, wenn du das halt
Jochen: verwendest, dann, wenn du dann zwei Plugins mit dem
Jochen: gleichen Namen nimmst, okay, dann, naja, hast du halt
Jochen: einen Fuß geschossen. Aber, ja,
Jochen: genau, das ist so, äh, ja.
Jochen: Und es macht halt so HTMX
Jochen: Zeugs und, äh, solche
Jochen: Dinge.
Jochen: Äh, genau, und ich hab so ein bisschen,
Jochen: ich hab eine Demo, äh, gemacht mit, ähm,
Jochen: so Code-Generierung
Jochen: über LLMs.
Jochen: Und, äh,
Jochen: äh, genau, die hat auch so halb
Jochen: funktioniert, insofern eigentlich ganz gut.
Jochen: Ähm, äh, wo ich einfach
Jochen: so Few-Shot-Learning mache, also ich packe halt,
Jochen: äh, quasi die Plugins, die es
Jochen: gibt, in Kontext von einem LLM
Jochen: und sag dann... Gib mal ein neues Plugin.
Jochen: Gib mal ein neues Plugin für ein neues Prompt.
Jochen: Und, äh,
Jochen: dann, äh, kommt da halt
Jochen: irgendwie Kram von einem LLM zurück
Jochen: und, äh, den schreibe ich dann halt auch
Jochen: in eine Datenbank und kann das aber auch live
Jochen: direkt testen, wie es so halt so aussieht.
Jochen: Und, ja, das hat eigentlich ganz gut funktioniert.
Dominik: Ich fand das Projekt interessant. Das hat so verschiedene Aspekte
Dominik: gleichzeitig. Du hast ja, also dieses Plugin-System hat auch so ein
Dominik: Auto-Crud und so.
Dominik: Ähm, ja, das war, war,
Dominik: also, äh, in der Lehre technisch interessant. Ich fand's
Dominik: nicht so einfach zu benutzen. Vielleicht bin ich auch zu doof
Jochen: dafür. Ja, ist es auch nicht. Es ist alles
Jochen: immer experimentell. Also, ich meine, man kann
Jochen: ja mal, äh, einfach drauf gucken, das ausprobieren.
Dominik: Ich hab überlegt, ob ich's forken soll und dann hab ich's, äh,
Dominik: anders implementiert. Ja.
Jochen: Ist ja auch, ist ja auch okay. Genau.
Jochen: Dann hat mir irgendjemand gesagt, es gibt so ein
Jochen: Standard-JSON-Schemer
Jochen: für Resume,
Jochen: Resumes. Aha. Das würde ich auch
Jochen: gerne kennen. Genau. Da, äh,
Jochen: da muss ich mal gucken, ob ich da nicht dann Import oder Export
Jochen: dahin irgendwie auch reinbaue, weil das
Jochen: wäre natürlich vielleicht auch interessant. Da gibt's auch dann schon jede Menge
Jochen: fertige Templates, um das
Jochen: halt irgendwie aussehen zu lassen.
Jochen: Hm, muss ich mal gucken. Oder ob ich das irgendwie einbaue,
Jochen: das, das weiß ich noch nicht, ähm.
Dominik: Das würde sich aber mit deiner Plugin-Architektur
Dominik: jetzt beißen. Nö, das könnte man
Jochen: ja auch so machen. Als Sub-Keys von
Dominik: dem, ja, okay, verstehe. Ein Plugin dafür machen.
Dominik: Genau. Ja. Mhm.
Dominik: Mhm. Ja, okay.
Dominik: Ja.
Jochen: Ja, mal schauen. Genau.
Jochen: Das, äh, das war, das war eigentlich
Jochen: ganz... Das ist auch jetzt tatsächlich der perfekte
Dominik: Zeitpunkt, so den Mietaufruf zu bringen wieder, ne?
Dominik: Äh, Miet? Den Mietaufruf.
Dominik: Hm? Man kann uns gerade mieten.
Johannes: Ja, sollten wir auf jeden Fall an der Stelle machen.
Johannes: Uns kann man mieten, den Jochen kann man mieten und den
Johannes: Dominik kann man mieten. Ja. Dominik,
Johannes: dich kann man inzwischen auch mieten. Ja, mich kann man auch
Jochen: wieder. Ja, das ist ja richtig, das, genau, das konnten
Jochen: wir bisher ja gar nicht announcen, aber jetzt schon.
Dominik: Ja, doch, ja, man konnte mich auch schon vorher ein bisschen mieten,
Dominik: aber jetzt auch wieder richtig.
Dominik: Und den Johannes kann man auch mieten. Ja.
Dominik: Wir sind alle mietbar. Und ich hab sogar noch mehr Leute,
Dominik: die man mieten kann. Wir sind sogar eine richtig große
Dominik: Mietgilde.
Dominik: Ist das, ist quasi ne, ne,
Dominik: ne WG.
Dominik: Ja, also ich würd schon sagen, ist ein gutes Projektteam, was, äh,
Dominik: ordentlich, äh, Dampf jetzt auch mal draufkriegt und
Dominik: halt nicht nur so ne, so ein paar kleine
Dominik: Männchen, sondern ordentlich.
Dominik: Ja. Also wenn ihr, wenn ihr, liebe
Dominik: Zuhörer, ein Projekt habt, dann
Dominik: mietet uns.
Dominik: Genau.
Jochen: Ja, ansonsten,
Jochen: genau, was ist, äh, was ich da noch gesehen hab,
Jochen: an vor,
Jochen: da gab's einen von Thibaut Collat
Jochen: über die Zukunft von Django.
Dominik: Ich wollt grad sagen, das ist doch der Mensch, der ist in Django,
Dominik: die, äh, Presidency?
Jochen: Der ist jetzt, genau, Präsident der Django Software Foundation.
Jochen: Apropos Django,
Dominik: da gibt's doch jetzt auch bald wieder so ne Konferenz.
Jochen: Ja, genau, die ist am,
Dominik: irgendwann Ende April. Was ist denn da? Ende April?
Dominik: Ist das ein inoffizielles
Dominik: Hörer-Eintreffen? Ist die Woche
Dominik: nach Ostern. Ja.
Jochen: Also wir werden alle da sein,
Jochen: daher, ja, wünschen wir das.
Jochen: Könnte man. Und es ist in Dublin.
Jochen: In Dublin, oh ja, cool, cool, cool.
Dominik: Ja. Und ich darf kein Bier trinken.
Dominik: Fürchterlich. Naja.
Dominik: Aber in Dublin, gibt's in Dublin
Dominik: irgendein Bier, was man trinken müsste?
Dominik: Ja, ich hab kein Bier, weiß nicht.
Dominik: Irischer Wein, hab ich gehört.
Dominik: Nein, du gehst in jeden Pub und da gibt's on tap
Dominik: einfach die leckersten Sachen und die ganzen Craft-Biere
Dominik: und alles fresh und, ja.
Dominik: Ah ja, okay. Wundervoll. Ja, Cider kriegst
Dominik: du auch, aber, genussweise steh ich
Dominik: nicht drauf, brauch ich nicht. Aber andere leckere
Dominik: on tap Sorten. Aber Django gibt's auch.
Dominik: Ja, und da ist der eigentliche Grund, warum wir da hingehen.
Dominik: Ja. Und die Natur ist so schön
Dominik: grün da, ist ja schon gutes Wetter.
Johannes: So hört man zumindest, ja.
Jochen: Ja, genau, das wird
Jochen: Ja, ist nicht auch
Johannes: die
Johannes: Europython
Johannes: zum gleichen Zeitpunkt? Nein.
Jochen: Die Pycon.de ist leider zum
Jochen: gleichen Zeitpunkt. Pycon.de, genau.
Jochen: Und Pycon.data.
Johannes: Pycon.de und Pydata.
Jochen: Genau, ist zum gleichen Zeitpunkt in
Jochen: Darmstadt, glaube ich.
Jochen: Ja, aber,
Jochen: genau, können wir leider nicht hin. Aber wir können uns halt nicht zerreißen.
Jochen: Ja.
Jochen: Äh,
Jochen: genau, ja, äh, also
Jochen: Zukunft Django war, war ganz
Jochen: interessant, ähm,
Jochen: weil, äh,
Jochen: ja, da war so halt, das waren hauptsächlich so Statistiken
Jochen: zu, wie viele Leute verwenden
Jochen: das, was hätten sie gern, wie
Jochen: verlagert sich das irgendwie von,
Jochen: äh, irgendwie als von den Framework
Jochen: verwenden zu API-Geschichten
Jochen: und so Dinge. Und, ähm,
Jochen: ja, war ganz, war ganz nett. Was man ja
Dominik: glaube ich sieht ist, dass, äh, drüben über
Dominik: den Teich, ähm, super viel mehr
Dominik: Menschen und Firmen auch Django einsetzen
Dominik: als hier. Ja. Dass man das vielleicht mal
Dominik: so, da Aktivität machen
Dominik: könnte in der Richtung, was so Marketing angeht.
Jochen: Da, äh, hatte er auch mal
Jochen: einen Blogpost zu jetzt letztens, das war, kam
Jochen: in dem Vortrag zwar nicht vor, aber das war, fand ich auch sehr interessant,
Jochen: welche Regierungs, äh,
Jochen: äh, Seiten denn irgendwie Django verwenden
Jochen: und so. Und das war
Jochen: halt überall irgendwie, relativ viel.
Jochen: Nur in einem, einem,
Jochen: äh, analogen Dorf,
Jochen: irgendwie auf der Weltkarte halt nicht.
Jochen: Welches könnte das wohl sein?
Jochen: Das, das globale Funkloch sozusagen
Jochen: irgendwie, ja? Wo könnte das wohl sein?
Jochen: Ja, das war nämlich genau hier. Also hier
Jochen: gab's einfach gar keine, hier gibt's einfach keine
Jochen: Django-Projekte irgendwie
Jochen: in öffentlicher, äh,
Jochen: Hand oder so. Tja. Was,
Jochen: äh, ja, keine Ahnung,
Jochen: boah, das liegt, das ist schon wieder ein Quatsch.
Jochen: Ja. Ja. Aber
Jochen: irgendwie geht das hier. Wundert einen doch nicht, oder?
Dominik: Weil man immer noch Fuck schicken muss für bestimmte Sachen.
Dominik: Naja.
Johannes: Ähm, aber anders. Ja, aber hast du nicht mitgekriegt,
Johannes: Dominik, dass die Bundesbank
Johannes: jetzt keine Faxe mehr entgegennimmt
Johannes: seit 1.1.25?
Johannes: Nein, echt nicht. Keine entgegen.
Johannes: Soweit ist es, soweit ist es fortgeschritten
Johannes: mit der Digitalisierung. Wir haben ihr Fax
Dominik: abgeschaltet. Die Zukunft ist jetzt. Wir sind im Neuland
Dominik: angekommen. Ja.
Johannes: Ja, 2025 schon.
Dominik: Ja. Doch gar nicht so schlecht.
Dominik: So langsam. Es ging durch die Presse.
Dominik: Tja, oder jemand anders hat sich überlegt,
Dominik: dann macht der Faxgerät auf der anderen Seite ein Element,
Dominik: dann kann man sich die Antworten ausdrucken lassen.
Dominik: Yay.
Jochen: Ja. Genau. Ah, dann
Jochen: einen Vortrag, den ich richtig cool fand.
Jochen: Der war total super. Hätte ich gar nicht so erwartet.
Jochen: Ich saß da irgendwie nur, weil ich nicht rauskam,
Jochen: weil es so voll war, aber
Jochen: Wie ist das? Das ist immer das Bessere in Konferenzen.
Dominik: Die Talks, die sehen total toll aus von außen,
Dominik: sind aber total langweilig und die Talks,
Dominik: da denkt man so, hä? Und dann sind die total spannend
Dominik: und alles dazwischen.
Jochen: Da hatte jemand irgendwie tatsächlich in PyScript
Jochen: irgendwie
Jochen: ja, so irgendwas
Jochen: sehr Excel-mäßiges nachgebaut.
Jochen: Und das hat tatsächlich
Jochen: richtig gut funktioniert.
Jochen: Das sah auch noch gut aus? Das sah auch gut aus.
Jochen: Das war total faszinierend.
Jochen: Also wirklich so komplettes Spreadsheet-Geschichte
Jochen: im Browser und es war schnell.
Jochen: Und alles in Py...
Jochen: Also die ganze Logik war halt in Python geschrieben
Jochen: und dann halt
Jochen: sozusagen über PyScript irgendwie
Jochen: ja, oder ich weiß es gar nicht mehr,
Jochen: ob es Pyodide war. Ne, ich glaube es war PyScript
Jochen: tatsächlich.
Jochen: Not too bad.
Jochen: Also, ja, cool.
Jochen: Auf die, die wäre ich jetzt auch noch nicht gekommen, ja.
Jochen: Ja.
Jochen: Ähm, genau.
Jochen: Ja, also Forstheim war
Jochen: eine coole Konferenz, sehr voll.
Jochen: Ja.
Jochen: Hat da auch jemand dann irgendwann
Jochen: einen Post geschrieben, habe ich jetzt letztens
Jochen: so, ja, also immer wenn jetzt
Jochen: gerade irgendwie aus aktuellem
Jochen: Anlass, haben wir ja irgendwie so ein bisschen Schwankungen,
Jochen: was so die weltpolitische Lage angeht und
Jochen: da in Europa
Jochen: ist ja dann immer so, dass so, oh nein,
Jochen: irgendwie, wir sind ja auch
Jochen: was Technologie angeht und so
Jochen: total abgehängt und keine Ahnung und Hilfe, Hilfe.
Jochen: Dabei ist das ja
Jochen: irgendwie auch Quatsch, ja, also ich meine,
Jochen: klar, okay, was jetzt den
Jochen: Börsenwert von manchen Unternehmen
Jochen: angeht oder so, okay, ja, klar,
Jochen: da kann man halt nicht mithalten, aber auf der anderen Seite, naja,
Jochen: also, ich meine, wie viel realer
Jochen: Wert ist denn da tatsächlich, das ist auch ein bisschen unklar,
Jochen: wenn man jetzt aber sich anguckt, wie sieht
Jochen: es denn aus, was jetzt Open-Source-Projekte
Jochen: angeht, ne, was ist denn da, also wenn man jetzt auf so
Jochen: eine Veranstaltung wie die FOSDEM geht oder so, dann
Jochen: ist, also, ich meine, ein Großteil der
Jochen: Projekte sozusagen, die
Jochen: die Infrastruktur dafür bilden, was dann halt
Jochen: in Amerika halt diesen Riesenmarkt
Jochen: macht, ne, ist alles,
Jochen: das ist alles diese, es ist alles Open-Source
Jochen: Infrastruktur-Software
Jochen: und da ist ein europäischer Entwickler
Jochen: ist da halt, sind da halt irgendwie
Jochen: eigentlich sehr, sehr gut vertreten,
Jochen: ne, also das ist halt. Ja, nur das Problem
Jochen: ist halt, dass da keiner Geld für bezahlt. Ja,
Jochen: aber also, sag mal, das Potenzial wäre halt da, also
Jochen: es ist halt irgendwie, also
Jochen: es ist nicht so, dass das hier nicht geht oder so, sondern
Jochen: es geht und es passiert,
Jochen: es ist halt bloß nicht so, dass damit so wahnsinnig viel Geld
Dominik: verdient wird. Ja, genau, aber die Leute nutzen das halt
Dominik: alle und sagen halt,
Dominik: ja, we first.
Dominik: Ja. Ja.
Dominik: Das ist blöd.
Jochen: Ja, aber, aber das sind
Jochen: alles Dinge, an denen man ja was machen könnte
Jochen: und so, ne, also das ist ja nichts, wo man jetzt,
Jochen: also wenn jetzt das in der Situation wäre,
Jochen: dass man halt gerne da mitspielen würde, aber
Jochen: man hat nicht mal einen Fuß in der Tür oder so,
Jochen: das wäre ganz schlecht, aber so
Jochen: eigentlich hat man eigentlich schon beide Füße in der Tür.
Dominik: Eigentlich wäre es schöner, wenn es ein Gegenmodell gäbe, ne, also wenn es
Dominik: tatsächlich irgendwie, tatsächlich
Dominik: öffentliche Institutionen gäbe, die das
Dominik: weitermachen würden und das halt nicht nur
Dominik: auf diesem kommerziellen, wir machen das
Dominik: nächste Aktienunternehmen draus
Dominik: funktionieren würde.
Jochen: Ja, genau. Aber, äh, genau,
Jochen: also es gibt auch den,
Jochen: es gibt ja so Tech-Serverely,
Jochen: Community-Funds oder sowas,
Jochen: also einer von denen bezahlt jetzt auch
Jochen: irgendwie Hugo von Kermenade,
Jochen: von Kermenade, äh,
Jochen: als, äh, also europäischer,
Jochen: ich glaube sogar deutscher, irgendwie,
Jochen: äh, als
Jochen: Python-Entwickler, äh,
Jochen: sozusagen, der ist ja jetzt auch Release-Manager, glaube ich,
Jochen: für 3.14, 3.15,
Jochen: das ist schon mal ganz gut,
Jochen: äh, es gibt ja jetzt, ja,
Jochen: keine Ahnung, in Frankreich passieren auch lustige
Jochen: Sachen. Naja,
Jochen: ja, ähm, genau,
Jochen: hm.
Dominik: Wir hatten auch noch ein Thema, glaube ich.
Dominik: Ja, wir hatten auch noch ein Thema.
Jochen: Was? Oh je, ich habe es vergessen.
Jochen: Moment, ich mache mal eine Kapitelmarke,
Jochen: irgendwie, äh, Thema.
Dominik: Also, wenn wir jetzt noch
Dominik: eine Minute
Dominik: off-topic reden, dann haben wir
Dominik: die Stunde vorher off-topic.
Jochen: Ja, okay. Ah, gut, aber
Jochen: dann, ja, Johannes, willst
Jochen: du vielleicht etwas erzählen über, äh,
Jochen: Strings und Bites?
Jochen: Ja, ich muss sagen,
Johannes: die, die ersten beiden
Johannes: Kapitel, die wir gelesen haben, die waren ja sehr
Johannes: voll. Ja. Und die
Johannes: waren auch sehr breit.
Johannes: Und im Vergleich dazu
Johannes: ist dieses Kapitel
Johannes: nicht so interessant.
Johannes: Und, äh, das ist sowohl gut,
Johannes: gut, das ist sowohl gut als auch
Johannes: schlecht, das ist sowohl
Johannes: gut als auch schlecht, weil
Johannes: dieses Thema sollte eigentlich
Johannes: langweilig sein. Eigentlich
Johannes: sollte man über dieses Thema gar nicht so viel sagen,
Johannes: müssen.
Johannes: Weil eigentlich sollte das alles
Johannes: funktionieren. Und in Python 3,
Johannes: meiner Meinung nach,
Johannes: ist das auch so.
Dominik: Was ist denn nochmal das Thema? Unico?
Johannes: Viele Sachen, viele Sachen sehr gut.
Johannes: Äh, genau. Es geht um Strings
Johannes: und Bites. Und, ähm,
Johannes: das große Problem
Johannes: an Strings und Bites ist, dass die nicht
Johannes: das Gleiche sind.
Johannes: Früher, in der guten alten Zeit, als es
Johannes: nur ASCII gab, da
Johannes: war das das Gleiche. Da war ein String halt
Johannes: eine Abfolge von Bites.
Johannes: Ganz genau genommen
Johannes: ist ASCII ja nur 7-Bit-breit.
Johannes: Also, man hätte das dann sogar,
Johannes: also gab es dann diese Encodings mit 7-Bits.
Johannes: Das ist aber auch eine schreckliche
Johannes: Vorstellung.
Johannes: Wenn man nur ASCII verwendet,
Johannes: dann sind Bites und Strings
Johannes: das Gleiche. Ja, weil ich einfach sagen kann,
Johannes: okay, also ein String ist halt eine Abfolge von
Johannes: Bites und alle Zeichen, die es gibt, die sind da drin.
Johannes: Ja.
Johannes: Jetzt stellt sich raus, die Welt ist größer als Amerika
Johannes: und nicht alle sprechen Englisch.
Johannes: Und selbst die, die Englisch sprechen,
Johannes: die haben manchmal Akzente in ihren Namen oder
Johannes: wollen Äs und Ös und Üs
Johannes: anzeigen oder scharfe Ässe
Johannes: oder C-Mit-C-D-I-E
Johannes: oder I mit und ohne Punkt
Johannes: oder dies und das und jenes.
Jochen: Ja, ich habe auch so ein
Jochen: Gleich-F6 in meinem Namen.
Jochen: Ja, stimmt.
Johannes: Ich habe extra nur einen ASCII-Namen,
Johannes: da haben meine Eltern drauf geachtet.
Johannes: Ja, das sollte man schon machen.
Johannes: Genau.
Johannes: Und das Problem ist,
Johannes: aus historischer Sicht
Johannes: gab es halt die Computer in den USA
Johannes: und da gab es ASCII drauf
Johannes: und ASCII hat geschickterweise nur 7 Bit.
Johannes: Das heißt, da sind noch 128 Zeichen
Johannes: frei und die kann man dann halt irgendwie
Johannes: verwenden und dann haben sich die Leute Code-Pages
Johannes: ausgedacht. Die Menschen,
Johannes: die alt genug sind, die können sich noch an
Johannes: CP-850 erinnern oder an
Johannes: CP-437, das man einstellen musste,
Johannes: damit der Norton-Commander richtig
Johannes: angezeigt wurde.
Johannes: Unter DOS.
Johannes: Und jetzt wissen alle Leute,
Johannes: wie alt ich bin.
Johannes: Und das war
Johannes: ganz schrecklich, weil man musste immer
Johannes: darauf achten, dass man die richtige Code-Page
Johannes: hatte, weil es halt einfach nur
Johannes: 128 vorbelegte Zeichen
Johannes: und 128 Zeichen
Johannes: extra gab.
Johannes: Und um dem Ganzen ein Ende zu setzen,
Johannes: haben sich schlaue Menschen
Johannes: zusammengesetzt und haben sich das Unicode-Konsortium
Johannes: genannt und haben gesagt, wisst ihr was,
Johannes: wir brauchen einfach mehr Zeichen.
Johannes: Alle.
Jochen: Achso, ich wollte gerade
Jochen: an der Stelle
Jochen: macht immer irgendjemand diesen Witz.
Jochen: Nee, nee, es heißt nicht
Jochen: Unicode, sondern
Jochen: das heißt
Jochen: Unicodes Monster.
Jochen: Ja, das Unicode-Konsortium
Johannes: hat dann das Monster gebaut und das Monster
Johannes: ist
Johannes: 1,15 Millionen
Johannes: Zeichen groß und verschlinkt
Johannes: alles, was es nur so finden kann.
Johannes: Das Ziel,
Johannes: das Unicode-Konsortiums ist es,
Johannes: alle Schriftzeichen, die es in Verwendung
Johannes: gibt, abbildbar
Johannes: zu machen.
Johannes: Und sie machen das, indem sie
Johannes: sagen, jedes Schriftzeichen, was es gibt, das wird
Johannes: in eine große Tabelle reingeschrieben. Die Tabelle
Johannes: hat eben diese prinzipiell möglichen
Johannes: 1,1 Millionen Zeichen
Johannes: und da
Johannes: schreiben wir dann noch eine Beschreibung rein, was das ist und was das
Johannes: bedeutet und was für eine Sorte das ist,
Johannes: weil da tun sich dann ganz viele coole
Johannes: Probleme auf, die man da kriegen kann.
Johannes: Aber das ist schon mal gut,
Johannes: diese Tabelle zu haben. Das Problem ist
Johannes: jetzt, es sind mehr als 255,
Johannes: das heißt, die passen nicht in ein Byte rein.
Johannes: Und da
Johannes: fangen die ganzen Probleme an, weil
Johannes: das Problem ist, man muss die irgendwie,
Johannes: wenn man sie speichern möchte, Unicode-Zeichen
Johannes: in Bytes reinkriegen.
Johannes: Und da
Johannes: gibt es leider auch aus historischer Sicht
Johannes: viele, viele, viele
Johannes: verschiedene Möglichkeiten,
Johannes: die zu kodieren. Und
Johannes: die inzwischen am weitesten verbreitete heißt
Johannes: UTF-8.
Johannes: Ich weiß gar nicht, was das
Johannes: heißt, aber das ist ein sehr
Johannes: schlauer Trick.
Johannes: Das kann sein.
Johannes: Es gibt auch
Johannes: UTF-16, es gibt auch UCS-2,
Johannes: es gibt auch
Johannes: diverse Varianten davon und dann
Johannes: muss man doch wissen, ob die Little-Indian sind
Johannes: oder Big-Indian und ob die ein Byte-Order-Mark haben
Johannes: oder nicht.
Johannes: Und das ist alles ganz wundervoll und
Johannes: eigentlich will man sich damit gar nicht beschäftigen.
Johannes: Und
Dominik: Unicode-Transformation-Format.
Dominik: Okay.
Johannes: Es ist ganz interessant, sich anzusehen, wie es funktioniert.
Johannes: Da gibt es ein sehr interessantes Video von
Johannes: Numberphile, wie sie das erklären.
Johannes: Das ist so ein bisschen ein Hack.
Johannes: Da werden so Bits an der vorderen Stelle gesetzt,
Johannes: damit es mit ASCII-kompatibel ist und
Johannes: damit man mehrere haben kann.
Johannes: Und UTF-8 kann bis zu
Johannes: 4 Byte pro
Johannes: Zeichen verwenden und damit
Johannes: kriegt man dann die gesamten Unicode-Sachen
Johannes: abgedeckt.
Johannes: Und das ist alles
Johannes: sehr schön. Und das Fazit
Johannes: dieses ganzen Kapitels ist eigentlich,
Johannes: man sollte immer UTF-8 verwenden.
Johannes: Und
Johannes: inzwischen ist es
Johannes: tatsächlich so, dass man fast überall
Johannes: UTF-8 verwenden kann.
Johannes: Auch für Chinesisch?
Johannes: Ja, auch für Chinesisch und auch für Japanisch und auch für Koreanisch
Johannes: und auch für
Johannes: Thailändisch und auch für Klingonisch.
Johannes: Wichtig.
Johannes: Wenn du den richtigen Font hast,
Johannes: kannst du Klingonische,
Johannes: Schriftzeichen haben.
Johannes: Du kannst die auf jeden Fall mit Unicode-Code-Points
Johannes: darstellen. Ein Unicode-Code-Point
Johannes: ist jetzt nicht mehr nur ein Byte,
Johannes: wo halt eine Zahl von 0 bis
Johannes: 255 drinsteht, sondern es ist eigentlich
Johannes: eine Zahl. Und die Zahl,
Johannes: die geht eben von 0,
Johannes: das ist das Null-Byte,
Johannes: bis, keine Ahnung, dort hinaus.
Johannes: Ich weiß jetzt nicht, wie weit es geht. Es ist eine komische
Johannes: Zahl, die mir nicht
Johannes: bekannt vorkommt, irgendwie 1,15 Millionen.
Johannes: Das
Johannes: bedeutet aber, dass ich diese Unicode-Code-Points
Johannes: nicht einfach so abspeichern kann, sondern wenn ich sie irgendwo
Johannes: in der Datei speichern will, muss ich sie irgendwie kodieren.
Johannes: Und Python 2
Johannes: hat aber keine Unterscheidung gemacht
Johannes: zwischen Strings und Bytes.
Johannes: Weil wenn man aus Amerika
Johannes: kommt, so wie Guido van Rossum,
Johannes: dann macht es halt keinen Unterschied,
Johannes: weil dann nimmt man nur ASCII und alles andere spielt
Johannes: keine Rolle.
Johannes: Und das war meiner Meinung nach,
Johannes: ist das eine der größten
Johannes: Unfeinheiten an Python,
Johannes: und zwar, dass es keine Unterscheidung gibt
Johannes: zwischen Strings und Bytes.
Johannes: Es gab damals schon diese Encode- und Decode-Funktionen,
Johannes: aber die haben nicht den Datentyp verändert,
Johannes: sondern die haben nur die Bits verändert.
Johannes: Und
Johannes: das war meiner Meinung nach
Johannes: einfach nicht sehr sauber
Johannes: und nicht sehr fein.
Johannes: Seit Python 3, seit den wenigen Jahren,
Johannes: die es Python 3 gibt,
Johannes: gibt es da eine strikte Trennung zwischen Bytes und Strings.
Johannes: Und Bytes ist eben das, was
Johannes: in Dateien drin ist und im Speicher drin ist.
Johannes: Und
Johannes: Strings ist das, wo
Johannes: Zeichen drin sind.
Johannes: Es gibt noch einen dritten Datentyp, der heißt
Johannes: ByteArray. Bytes ist nicht mutable
Johannes: und ByteArray ist mutable.
Johannes: Wenn man das braucht, dann muss man halt da den entsprechenden
Johannes: Typ wählen. Das ist tatsächlich
Johannes: ein Detail.
Johannes: Wichtig ist,
Johannes: es gibt eigentlich nur
Johannes: vier Sachen, die wichtig sind an dieser Stelle.
Johannes: Die vier Bytes?
Johannes: Nein, die vier Funktionen, die wichtig sind.
Johannes: Die erste heißt Encode.
Johannes: Und jetzt ist
Johannes: die Preisfrage.
Johannes: Geht Encode von Unicode
Johannes: CodePoints nach Bytes oder von Bytes
Johannes: nach Unicode CodePoints?
Johannes: Weil es könnte eigentlich beides sein.
Johannes: Encode geht zu Bytes.
Johannes: Also von Unicode, von Strings
Johannes: zu Bytes. Es könnte aber auch andersrum
Johannes: sein.
Johannes: Und Decode geht
Johannes: entsprechend andersrum. Das heißt, wenn ich einen String
Johannes: habe, wo Unicode CodePoints drinstehen,
Johannes: dann kann ich Encode sagen
Johannes: und dann kriege ich da einen ByteString raus.
Johannes: Mit einem gewissen Encoding.
Johannes: Und umgekehrt, wenn ich Bytes habe,
Johannes: dann kann ich Decode sagen, mit einem gewissen
Johannes: Encoding. Und dann kriege ich da
Johannes: einen Unicode String raus. Wenn das
Johannes: funktioniert.
Johannes: Weil diese Encodings, die sind
Johannes: frickelig und die sind fitzelig und manche
Johannes: funktionieren und manche funktionieren nicht.
Johannes: Und
Johannes: wenn man es mit dem falschen
Johannes: Encoding dekodiert,
Johannes: dann kann es sein,
Johannes: dass es funktioniert und es ist trotzdem falsch.
Johannes: Und das ist
Johannes: was ganz Schlimmes.
Johannes: Ja. Und das sorgt dann dafür,
Johannes: dass irgendwelche
Johannes: Fragezeichen in Namen drin sind
Johannes: oder irgendwelche. Ja, diese komische
Jochen: schwarze Raute mit den Fragezeichen. Ja, genau.
Jochen: Genau. Oder
Johannes: bestimmte Sachen, die man, wenn man mit
Johannes: UTF-8 dekodiert,
Johannes: dann ist da so ein
Johannes: XAE drin
Johannes: oder irgendwie sowas. Ja, das sind so
Johannes: diese Zeichenkombinationen.
Johannes: Ganz gemeine Leute tun die ja in ihren
Johannes: Benutzernamen rein.
Johannes: Einfach, um
Johannes: die Entwickler auf Trab zu halten.
Johannes: Das sind die ersten beiden Funktionen,
Johannes: Encode und Decode. Und die gehen von
Johannes: Unicode-Strings zu Bytes
Johannes: und zurück. Und
Johannes: da gibt es ganz viel Gefitzel mit
Johannes: irgendwelchen Encodings und
Johannes: die müssen richtig sein. Und das eigentliche
Johannes: Fazit von diesem ganzen Kapitel ist,
Johannes: UTF-8. Nehmt überall UTF-8. Wenn das
Johannes: möglich ist, einfach immer UTF-8 nehmen, weil
Johannes: damit geht alles.
Johannes: Das ist nicht das optimale Encode,
Johannes: ja, das kann sein, dass man da
Johannes: mehr Platz verbraucht. Aber ganz ehrlich, für
Johannes: Textdaten heutzutage, meistens so.
Johannes: Ist doch wurscht.
Jochen: So ein bisschen wurscht ist es.
Jochen: Ja, ne. Also ein bisschen wurscht
Dominik: ist es schon. Green IT sollte man ja auch
Dominik: bedenken. Da muss man natürlich Datensparsamkeit
Dominik: immer als ganz besonderes. Ja, das ist schon richtig.
Johannes: Das ist schon richtig, aber Text
Johannes: Dateien werden nicht
Johannes: den Großteil deiner
Johannes: Datengröße ausmachen. Das ist
Johannes: meiner Meinung nach.
Johannes: Wenn du in so einen Use Case kommst,
Johannes: dann musst du eh Experte werden auf diesem
Johannes: Gebiet und dann reicht es nicht,
Johannes: die 25 Seiten in Fluent Python
Johannes: zu lesen. Ne, ja.
Johannes: Die zweiten zwei
Johannes: Funktionen, die an dieser Stelle ganz wichtig sind,
Johannes: weil sie mit Strings und Bytes ganz natürlich
Johannes: zu tun haben,
Johannes: sind Read und Write. Also
Johannes: Open auf eine Datei mit
Johannes: Read-Modus und Open auf eine Datei mit
Johannes: Write-Modus.
Johannes: Und standardmäßig in Python ist es ja so,
Johannes: wenn ich ein Open sage, im
Johannes: R-Modus, also nicht im RB-Modus,
Johannes: sondern im R-Modus,
Johannes: dann bedeutet das, lies mir diese Datei
Johannes: bitte als UTF-8
Johannes: kodierte Text
Johannes: ein.
Johannes: Und dann habe ich da auch diese ganzen
Johannes: Komfortfunktionen drauf, die ich da haben möchte.
Johannes: Also Readlines und Read und Readline und so weiter.
Johannes: Die mir alle direkt
Johannes: Strings geben, die automatisch dieses
Johannes: Decoding machen. Und die auch
Johannes: das Byte-Order-Mark automatisch
Johannes: behandeln. Also wenn, das ist
Johannes: dann alles schon gemacht,
Johannes: wenn es eine UTF-8-Datei ist.
Johannes: Wenn ich eine Datei habe, die nicht UTF-8
Johannes: ist,
Johannes: dann komme ich wieder in Teufelsküche, weil dann muss ich
Johannes: wieder das Encoding wissen, dann muss ich wieder das
Johannes: richtige Encoding wählen und dann muss ich wieder mich mit
Johannes: solchen Decode-Error
Johannes: rumschlagen.
Johannes: Die vierte Richtung ist jetzt das Schreiben von Dateien.
Johannes: Auch hier, wenn ich eine Datei öffne
Johannes: im W-Modus, nicht im WB-Modus.
Johannes: Im W-Modus
Johannes: dann bedeutet das,
Johannes: das ist eine UTF-8-kodierte Textdatei
Johannes: ohne Byte-Order-Mark.
Johannes: Und das ist die
Johannes: richtige Wahl, ja, das ist das Richtige.
Johannes: In den allermeisten Fällen
Johannes: funktioniert das.
Johannes: Wenn ich
Johannes: eine Datei im RB- oder im
Johannes: WB-Modus öffne, dann ist das
Johannes: der sogenannte Binary-Mode, da kriege ich dann immer
Johannes: Bytes raus. Das heißt, wenn ich da drauf ein
Johannes: Read mache, dann kriege ich Bytes raus.
Johannes: Wenn ich ein Write mache, kriege ich auch Bytes raus.
Johannes: So.
Johannes: Das sind die wichtigen Dinge, die man
Johannes: sich hier merken muss.
Johannes: Encode, um aus
Johannes: Strings Bytes zu machen. Decode, um aus
Johannes: Bytes Strings zu machen mit allen Dingen, die da
Johannes: passieren können. Dateien lesen und Dateien
Johannes: schreiben mit den richtigen Encodings.
Johannes: Alles andere, was jetzt noch dazukommt,
Johannes: sind irgendwelche,
Johannes: ich möchte jetzt keine starken Worte
Johannes: wählen, aber das sind beschissene Legacy-Warzen,
Johannes: die man da jetzt sich reinholt.
Johannes: Weil man halt
Johannes: irgendwie das Encoding rausfinden
Johannes: muss. Dann gibt es eine Package, das heißt Chartered,
Johannes: der untersucht mit
Johannes: Heuristiken, welche Zeichen da drin sind,
Johannes: ob das,
Johannes: welches Encoding das sein könnte und das
Johannes: funktioniert manchmal und manchmal funktioniert es nicht.
Johannes: Und unter Windows
Johannes: ist alles ganz schrecklich,
Johannes: weil eins von den Encodings
Johannes: des Konsolen-Encoding ein anderes ist
Johannes: als die ganzen anderen und es ist nicht
Johannes: UTF-8.
Johannes: Und das macht einen Unterschied,
Johannes: wenn man auf der Standardausgabe schreibt,
Johannes: ob die Standardausgabe auf die Konsole geht
Johannes: oder ob das in eine Datei umgeleitet wird.
Johannes: Und das ist alles ganz schrecklich.
Johannes: Und das eigentliche
Johannes: Fazit, was ich aus dem Kapitel ziehe, ist,
Johannes: ich bin heilfroh, dass ich ein Linux-Betriebssystem
Johannes: habe, weil da ist UTF-8 eingestellt und
Johannes: da funktioniert UTF-8 und alles ist
Johannes: UTF-8 und
Johannes: fertig. Das macht
Johannes: alles viel einfacher.
Johannes: Ja.
Johannes: I agree.
Johannes: Und das ist eigentlich das Fazit
Johannes: aus dem ganzen Kapitel. Einfach UTF-8 verwenden
Johannes: und das ist an fast allen Stellen möglich
Johannes: und wenn man es nicht verwenden kann, dann ist
Johannes: es halt blöd und man muss sich damit befassen.
Dominik: Warum sind denn nochmal so
Dominik: komische Skorpione immer an dem Buch?
Jochen: Ja, das sind halt unterschiedliche
Jochen: Hinweise.
Jochen: Also da gibt es, also Skorpion
Jochen: ist glaube ich das, was einen irgendwie beißen kann.
Jochen: Genau, das wollte ich gerade fragen.
Jochen: In dem Kapitel gibt es mehrere
Johannes: Skorpione. Das liegt halt einfach an dieser
Johannes: Geschichte, von der ich jetzt gerade einen kurzen
Johannes: Abriss gegeben habe mit 1000 verschiedenen
Johannes: Codepages und
Johannes: vielen verschiedenen Encodings und
Johannes: Mojibake und
Johannes: ganz vielen tollen Phänomenen.
Jochen: Also die Erklärung zu Skorpion ist,
Jochen: this element indicates a warning
Jochen: or caution.
Jochen: Genau, dann gibt es den Raben.
Jochen: This element signifies a general note
Jochen: und es gibt irgendwie ein Lemuren
Jochen: oder sowas. This element
Jochen: signifies a tip or suggestion.
Dominik: Da musst du gemunkied, ja.
Dominik: Also dieses Kapitel
Dominik: ist voll mit Skorpionen.
Dominik: Hier vorsichtig.
Johannes: Oh, vorsichtig. Und hier, wenn du die Falsch-Code-Page
Johannes: eingestellt hast, oh, vorsichtig.
Dominik: Und ja, es gibt da
Dominik: tatsächlich so ein paar Dinge,
Dominik: die einen in den Stiefel kriechen können.
Jochen: Da ist wirklich, also
Jochen: auch sowas, da gibt es ja so fiese Sachen
Jochen: wie zum Beispiel Unicode-Normalisierung.
Jochen: Oh ja, das ist auch
Johannes: ein ganz wundervolles Thema.
Johannes: Ganz wundervolles Thema.
Johannes: Und was ist das?
Johannes: Da ist man nicht neugierig geworden.
Johannes: Jochen, willst du das erklären oder
Johannes: mach du mal, Jochen.
Johannes: Ich brauche eine kurze Pause, weil das halte ich sonst
Jochen: nicht aus. Naja, also es gibt halt
Jochen: unterschiedliche Arten,
Jochen: manche Zeichen zu schreiben
Jochen: und die sind
Jochen: dann, sehen genau gleich aus,
Jochen: aber die sind halt anders kodiert
Jochen: und dann... Du meinst ein L und ein
Dominik: I und ein oder ein E?
Dominik: Ja. Ein E mit
Jochen: einem Axon drauf. Ja, zum Beispiel sowas, genau.
Jochen: Ja, und
Jochen: dann ist halt die Frage... Was für Arten gibt's denn, Jochen?
Jochen: Wie kann man das denn darstellen?
Jochen: NKFD und N...
Jochen: Ich weiß es nicht mehr genau.
Jochen: Ja, okay, aber das ist ja nur
Jochen: diese Normalisierung. Ja.
Johannes: Das darunterliegende Problem ist, dass es
Johannes: zwei verschiedene Möglichkeiten, dieses E mit dem
Johannes: Axon darzustellen. Ja, ja, genau.
Johannes: Das gibt's als Zeichen. Es gibt ein Zeichen,
Johannes: das heißt E mit Axon, was auch immer
Jochen: du da drauf hast. Oder mit zwei Zeichen.
Jochen: Und es gibt E
Johannes: und dann gibt's ein zweites Zeichen, kombinierende
Johannes: Axon mit dem davorgehenden
Johannes: Ding dazu. Genau.
Johannes: Und auch da gibt's natürlich Leute, die sich da
Johannes: eine große Freude draus gemacht haben und da gibt's
Johannes: ganz viele schöne Salgo-
Johannes: Textgeneratoren, die einfach sagen, hier,
Johannes: was passiert denn, wenn wir drei von
Johannes: diesen Axons drauf tut? Oder fünf?
Johannes: Oder zehn? Oder hundert?
Johannes: Und dann ist der Text kaum
Johannes: noch lesbar und
Johannes: der Abstieg in den Wahnsinn
Johannes: ist vollzogen.
Jochen: Ja, ja, ja, letztlich
Jochen: genau. Also,
Jochen: ja, das ist dann da, wo man immer landet
Jochen: halt. Und...
Jochen: Die richtigen Hacker-Namen. Ja, genau.
Jochen: Da kann man nämlich auch viel
Jochen: wirklich
Jochen: auch security-relevanten Unsinn betreiben.
Jochen: Wenn man jetzt zum Beispiel sich überlegt, dass man
Jochen: halt, also
Jochen: wann ist denn jetzt sowas...
Jochen: Wann sind denn zwei Strings irgendwie gleich?
Jochen: Wenn ich jetzt auf irgendwie sowas checke, wie
Jochen: ist der Benutzername so und so? Oder ist das halt
Jochen: irgendwie diese oder jene Stadt? Oder irgendwie
Jochen: wenn ich halt solche Vergleiche habe,
Jochen: dann kann ich ja
Jochen: eventuell, also da muss ich ja sicher
Jochen: gehen, dass das halt
Jochen: irgendwie...
Jochen: dass ich da nichts übersehe, sozusagen.
Jochen: Das heißt, wenn ich da
Jochen: nicht normalisierte Sachen miteinander
Jochen: vergleiche, dann können halt wilde Dinge
Jochen: passieren. Das heißt,
Jochen: bei all diesen Sachen, wo ich halt sicher
Jochen: sein muss, dass das halt klappt, muss ich halt
Jochen: auch nochmal zusätzlich zu
Jochen: irgendwie, ich muss es als Unicode-String haben,
Jochen: auch nochmal gucken, dass die
Jochen: Normalisierung halt
Jochen: auf beiden Seiten gleich
Jochen: ist. Weil ansonsten
Jochen: kann mir halt jemand ein
Jochen: U für ein O vormachen oder so
Jochen: und dann habe ich ein Problem unter Umständen.
Jochen: Ja.
Jochen: Oder ein kyrillisches
Jochen: A für ein lateinisches
Jochen: A. Das ist ja der Klassiker.
Jochen: Ja. Dass es da diese
Johannes: Zeichen gibt, die gleich aussehen, aber nicht
Johannes: gleich sind. Ja. Und
Johannes: da, das ist echt
Johannes: sehr schwierig. Und noch schlimmer ist sortieren.
Jochen: Ah, sortieren. Oh Gott. Ja, ja.
Johannes: Und Groß- und Kleinschreibung ist noch
Johannes: genauso schlimm, weil die hängen von
Johannes: der Lokal, von der Lokal ab.
Johannes: Da gibt es das klassische
Johannes: Beispiel. Türkisch hat ein I
Johannes: mit einem Punkt und ein I ohne Punkt.
Johannes: Und
Johannes: entsprechend gibt es da von Klein- und
Johannes: Großvarianten. Das heißt, wenn ich
Johannes: einen Text habe, der ein kleines I mit einem
Johannes: Punkt obendrauf enthält, also ein normales
Johannes: I, ja, aus unserer Perspektive
Johannes: und ich
Johannes: möchte den in einen großgeschriebenen
Johannes: String umwandeln, dann würde ich
Johannes: als Deutscher, würde da
Johannes: ein großgeschriebenes I
Johannes: ohne Punkt drüber
Johannes: hinmachen. Und es ist auf Türkisch
Johannes: aber falsch. Auf Türkisch ist es so, dass
Johannes: wenn ich ein I, ein kleines
Johannes: I mit einem Punkt habe, dann muss das ein großes I
Johannes: mit einem Punkt obendrauf werden.
Johannes: Und es gibt wohl tatsächlich so einen Fall,
Johannes: wo eine SMS übertragen wurde und SMS
Johannes: ist ja auch so ein Legacy-System
Johannes: mit ganz vielen
Johannes: Ecken und Kanten,
Johannes: wo eben eine SMS übertragen
Johannes: wurde und offensichtlich durch ein System
Johannes: wegnormalisiert wurde, wo dann ein
Johannes: Mann an seine Frau geschrieben hat
Johannes: und die ist dann irgendwie ausgetickt, weil er geschrieben
Johannes: hat, dass er bei einer anderen ist, anstatt
Johannes: dass er nach Hause kommt. Irgendwie sowas
Johannes: passiert da. Also es gibt tatsächlich
Johannes: Real-World-Auswirken. Die Katze war. Auch Sortierung.
Johannes: Und auch Sortierung ist genauso.
Johannes: Sortierung ist auch
Johannes: lokal abhängig. Also das kommt
Johannes: darauf an, wo ich bin, wie ich
Johannes: Zeichen sortiere. Zum Beispiel auf Deutsch
Johannes: wird das Ä traditionell
Johannes: nach dem A einsortiert.
Johannes: Auf Schwedisch werden die
Johannes: kanonisch nach dem Z einsortiert.
Johannes: Und
Johannes: das heißt, wenn ich sortieren
Johannes: und kleine Großschreibungen machen will,
Johannes: dann muss ich
Johannes: wissen, wo ich bin.
Johannes: Ja.
Johannes: Und es gibt noch mehr coole Sachen.
Johannes: Kann man das nicht auch noch irgendwie einen Weg finden,
Jochen: wie man das mit der Zeitzone abhängig machen könnte?
Jochen: Ich sehe da noch
Jochen: Potenzial für
Jochen: es komplizierter zu machen.
Jochen: Mal ganz davon
Johannes: abgesehen, dass es in vielen asiatischen Sprachen
Johannes: diesen Unterschied zwischen Groß- und Kleingeschriebenen
Johannes: gar nicht gibt. Da gibt es ja keine Groß- und
Johannes: Kleingeschriebenenzeichen. Aber Groß- und
Johannes: Kleingeschriebenenzeichen ist noch schlimmer, weil
Johannes: es gibt in manchen Sprachen
Johannes: auch abhängig von der Locale
Johannes: Strings. Die kann ich
Johannes: nicht upper und
Johannes: danach wieder lower machen. Da kommt nicht der gleiche String raus.
Johannes: Deutsch ist
Johannes: zum Beispiel so eine Sprache und ist auch
Johannes: abhängig von der Locale. Je nachdem, ob ich
Johannes: in der Schweiz bin oder in
Johannes: Deutschland, wird das unterschiedlich behandelt.
Johannes: Wenn ich einen String mit einem scharfen S
Johannes: groß mache,
Johannes: dann wird das ja ein Doppel-S.
Dominik: Es gab doch mal ein großes scharfes S, oder?
Johannes: Es gibt ein großes scharfes S, ja.
Johannes: Das wäre meiner Meinung nach
Johannes: auch die richtige Lösung. Aber in der Schweiz,
Johannes: wird kanonisch das Doppel-S
Johannes: verwendet, auch wenn es das große, scharfe S gibt.
Johannes: Und wenn du diesen String wieder
Johannes: klein machst, dann sind es
Johannes: zwei kleine S.
Johannes: Und dann kommt auch nicht das
Johannes: gleiche wieder raus. Und das ist ja auch ein semantischer Unterschied.
Johannes: Ja. Semantischer Unterschied,
Johannes: der sich aus dem Kontext ergibt. Das heißt, das
Johannes: kannst du gar nicht technisch lösen.
Johannes: Das heißt, mit Unicode
Johannes: und mit Unicode-Strings sind nicht alle
Johannes: Probleme gelöst, die Menschen haben.
Johannes: Und das ist so, ach, die doofen Menschen,
Johannes: die haben halt Probleme, die sie nicht in den Computer rein tun.
Johannes: Lassen.
Johannes: Auch mit Unicode
Johannes: sind solche Probleme nicht gelöst.
Johannes: Und die Lösung dafür ist im Wesentlichen,
Johannes: ja, darfst du halt nicht machen.
Johannes: Kannst du nicht machen.
Johannes: Wenn du Strings groß machen willst,
Johannes: lieber nicht.
Johannes: Wenn du
Johannes: Roundtripping haben willst, zwischen Upper
Johannes: und Lower, geht halt nicht. Kriegst du nicht wieder raus.
Johannes: Wenn du Strings vergleichen willst, musst du
Johannes: diese,
Johannes: sagen wir mal, mittelmäßig coolen
Johannes: Encodings verwenden. Da gibt es übrigens
Johannes: vier, Jochen, die auch im Buch
Johannes: vorkommen.
Johannes: NFC und NFD.
Johannes: Das heißt
Johannes: eigentlich Normalized Format C
Johannes: und Normalized Format D.
Johannes: Warum das jetzt ausgerechnet C und D sind,
Johannes: weiß ich nicht. In meinem Kopf ist
Johannes: das Compact und
Johannes: die
Johannes: Disassociated
Johannes: irgendwie so.
Johannes: Compact ist das Format, was
Johannes: möglichst wenige Zeichen erzeugt.
Johannes: Und D, also das,
Johannes: äh, Decomposed vielleicht.
Johannes: Decomposed ist das Format, was
Johannes: möglichst atomare
Johannes: Zeichen erzeugt. Also da wäre
Johannes: dann halt das E mit dem Axon zwei Zeichen
Johannes: und in dem anderen wäre es halt mit einem Zeichen.
Johannes: Und dann
Johannes: gibt es noch normalisierende
Johannes: Varianten davon, wo dann solche coolen
Johannes: Spezialsachen
Johannes: weggemacht werden, wie das My zum Beispiel.
Johannes: Das My gibt es in zwei Varianten.
Johannes: Einmal als die
Johannes: SI-Einheit, My für Mikrometer.
Johannes: Und einmal als das Griechische, den Griechenbuchstaben.
Johannes: My und Om ist auch
Johannes: so ein Zeichen, also ein großes
Johannes: Omega. Und manche von
Johannes: den Varianten normalisieren das weg und manche
Johannes: von den Varianten normalisieren das nicht weg.
Johannes: Die
Johannes: Lösung für dieses Problem
Johannes: ist, darfst du einfach nicht machen.
Johannes: Mach's einfach nicht.
Jochen: Ich erinnere mich an diese ganzen Details
Jochen: nicht mehr. Vor einem Jahr
Jochen: ungefähr habe ich das halt dann irgendwann mal
Jochen: eingebaut, weil es halt eine Relevanz hatte.
Jochen: Und da habe ich das dann auch getestet.
Jochen: Und beim Schreiben
Jochen: dieser Tests ist mir dann irgendwann so, dachte ich mir so,
Jochen: oh mein Gott, also eigentlich fallen mir
Jochen: jetzt noch 20 Situationen ein
Jochen: früher, wo ich das auch mal besser
Jochen: hätte testen sollen, wo ich es nicht getan
Jochen: habe. Schnell vergessen und verdrängen, sonst
Jochen: aber da gibt es
Jochen: so viele komische Sachen, die passieren
Jochen: können. Also, ja.
Johannes: Ja, es gibt ein
Johannes: Repository auf GitHub,
Johannes: das heißt Big List of Naughty Strings.
Johannes: Ach ja.
Johannes: Eine neue Rainbow.
Johannes: Ja, darf man auch nicht
Johannes: auf seine Weihnachtswunschliste schreiben.
Johannes: Ja, es sind
Johannes: erstaunlich viele und es sind erstaunlich
Johannes: üble Sachen drin und ich habe auch schon
Johannes: einen PR dagegen gestellt, aber der
Johannes: ist, glaube ich, unmaintained, die Liste, weil
Johannes: mein schöner PR mit dem großen
Johannes: scharfen S wurde leider nicht genommen.
Johannes: Ja, so ist es halt.
Jochen: Aber ein großes scharfes S ist schon
Jochen: sehr naughty.
Johannes: Das ist sehr naughty, aber man muss
Johannes: umgehen können damit.
Johannes: Ja.
Johannes: Ja, ja.
Johannes: German character sharp S,
Johannes: which becomes SS when uppercased.
Johannes: So changes from one character to two ASCII
Johannes: characters.
Jochen: Ich glaube auch, der Grund,
Jochen: warum Python 2 das nicht
Jochen: konnte, also ich, weil
Jochen: Ich meine, Java hatte von Anfang an
Jochen: ein ordentliches Unicode irgendwie.
Jochen: Der lag aber einfach da.
Johannes: Ja, aber hatten die nicht auch UCS2 am Anfang?
Johannes: Äh, das kann sein.
Johannes: UCS2, um kurz
Johannes: unsere Hörer abzuholen,
Johannes: UCS2 ist einfach
Johannes: ein Textzeichen
Johannes: zu zwei Byte.
Johannes: Und da muss man
Johannes: auch Big Engine und Little Engine sagen,
Johannes: okay, das ist ein Detail.
Johannes: Dann braucht man mal ein Marker vorne dran.
Johannes: Genau. Die geneigten Zuhörer
Johannes: werden bemerken, dass zwei
Johannes: Byte 16 Bit sind.
Johannes: Das sind ungefähr 65.000 Zeichen.
Johannes: Das ist weniger als 1,1
Johannes: Millionen. Das heißt,
Johannes: das ist so ein
Johannes: Fix, der nicht
Johannes: weit hilft.
Johannes: Und die ganze Windows
Johannes: Welt, das war ja alles mit UCS2.
Johannes: Da gibt es diese ganzen Windows-Funktionen,
Johannes: die gibt es in normal und in unterstrich W
Johannes: für Wide.
Johannes: Oh, okay. Hilft aber alles nichts,
Johannes: weil es war halt UCS2 und das ist
Johannes: meh.
Johannes: Und dann hat man jede Menge Null-Bytes
Johannes: in seinen Dateien drin und das
Johannes: ist nicht so cool.
Johannes: Na gut, kann man gut zippen.
Johannes: Ja, okay, also auf jeden Fall,
Johannes: ich glaube, Java hat am Anfang auch UCS2,
Johannes: die sind inzwischen auch auf UTF-8 umgestiegen.
Jochen: Ja, aber sie hatten schon
Jochen: auf jeden Fall dieses quasi Konzept,
Jochen: dass sie intern Unicode
Jochen: hatten und dann nach außen irgendwie
Jochen: encodieren, decodieren. Aber ich
Jochen: meine, das hatten sie nur deswegen, weil
Jochen: Java halt ein Stück jünger ist als Python
Jochen: und vorher war das gar nicht
Jochen: standardisiert, sozusagen.
Jochen: Vier Jahre. Kurz nach der Standardisierung
Jochen: hat Java, ist Java damit
Jochen: halt dann, sozusagen
Jochen: konnte das direkt verwenden und Python halt noch nicht,
Jochen: weil es halt älter ist. Aber da müssen wir noch mal
Jochen: die Timeline. Ja, müssen wir natürlich mal, aber ich
Jochen: hab das so im Hinterkopf. Python ist doch 91
Johannes: und Java ist 95 und Unicode
Johannes: ist 96.
Johannes: Das kann nicht in Java 1 drin gewesen sein.
Johannes: Vielleicht ist es seit Java 2. Ich meine, es gab ja
Johannes: da auch einen großen
Johannes: Versionssprung.
Jochen: Ich weiß es.
Jochen: Also ich hatte ja mal
Jochen: meine erste
Jochen: Programmiersprache an der Uni, das war Java
Jochen: tatsächlich und wir haben da noch die
Jochen: Mein Beileid.
Jochen: Ja, auch zwei sehr dicke Bücher
Jochen: kommt also, also zwei
Jochen: Bücher von dem Format von Flo und
Jochen: Patten. Das war einmal
Jochen: irgendwie Java irgendwie
Jochen: von, ich weiß gar nicht.
Jochen: Java in der Nutshell. Nee, nicht in der Nutshell, sondern
Jochen: irgendwie Language oder sowas.
Jochen: Und dann die Sprachspezifikation,
Jochen: was halt im Wesentlichen die,
Jochen: ja, Grammatik war.
Jochen: Ja, also 2000 Seitenbücher
Jochen: und das war, meine ich,
Jochen: da war, das war schon Unicode.
Jochen: Aber,
Jochen: ja, und das muss kurz nach
Johannes: Ja gut, du bist halt auch so ein junger Programmierer,
Johannes: der nur Unicode kennt.
Johannes: Ja.
Jochen: Also das mit dem Unicode war nicht so schlecht, aber
Jochen: ansonsten, da waren einige Dinge, die ich
Jochen: das Public Static Void Main-Dings,
Jochen: das hab ich nie so richtig, also da, das fand ich
Jochen: eher so ein bisschen, hm, was ist denn da los?
Jochen: Ja.
Jochen: Ja, meine erste, meine Uni-Programmiersprache
Johannes: war C. Wir haben direkt mit C angefangen.
Johannes: Ach, das war nicht die
Johannes: ideale Sprache für Programmieranfänger.
Johannes: Ja.
Johannes: Kann man auch nicht sagen.
Johannes: Hat für einen gewissen
Johannes: Ausfilterungseffekt
Johannes: gesorgt.
Johannes: Sehr schön.
Dominik: Aber dein, das ist ja echt schön, das Depot, was du da geteilt hast,
Dominik: sowas wie Strings for Spanish
Dominik: Fools to use cat on a file,
Dominik: Hings with Crash.
Dominik: Big List of Naughty Strings.
Dominik: Lesen Sie es in den Shownotes nach.
Dominik: Strings just make course, I'm going to reinterpret
Dominik: Worldview.
Dominik: Eine interessante Sache,
Dominik: die tatsächlich in dem Kapitel vorkommt,
Johannes: die so als Frage gestellt wird,
Johannes: als so ein bisschen so eine
Johannes: Sidebar, würde ich sagen.
Johannes: Wie stellt Python
Johannes: denn intern eigentlich diese
Johannes: Unicode-Strings dar?
Johannes: Und die Antwort darauf ist,
Johannes: ja, brauchst du gar nicht wissen.
Johannes: Der Parlamentierungsdetail.
Johannes: Und das ist auch, also,
Johannes: das ist eigentlich die richtige Antwort.
Johannes: Es wird dann trotzdem erklärt, ja, das ist wie
Johannes: Integer und der wählt
Johannes: so eine optimierte Darstellung. Und wenn es
Johannes: nur
Johannes: solche Zeichen sind, dann ist es ein
Johannes: Byte-String und wenn es andere ist, jedenfalls ist da
Johannes: Optimierung drin. Und
Johannes: das Wichtige ist, man kann immer davon ausgehen,
Johannes: dass es einfach eine Zahl ist.
Johannes: Jedes Zeichen in einem
Johannes: String ist eigentlich eine Zahl zwischen 0
Johannes: und 1,1 Millionen.
Johannes: Ja, irgendwie sowas.
Johannes: Und
Johannes: Python sorgt dafür, dass das so ist und
Johannes: optimiert das dann auch richtig schön innen drin.
Johannes: Und das ist doch, ich finde das eigentlich sehr beruhigend.
Johannes: Es ist nicht so, wie man
Johannes: sich's vorstellt, ja, dass du's halt
Johannes: hier hörst, so eine Abfolge von Bytes
Johannes: oder eine Abfolge von hier, das ist im Speicher
Johannes: so drin, sondern es ist erstaunlich
Johannes: kompliziert, es ist erstaunlich komplex.
Johannes: Aber
Johannes: zum Glück gibt's da die
Johannes: schlauen Python-Core-Maintainer, die das für uns machen,
Johannes: die auch diese ganzen Unicode-Listen
Johannes: sich zu Gemüte
Johannes: führen und
Johannes: einem sagen, was das für Zeichen
Johannes: sind.
Johannes: Eine weitere interessante
Johannes: Sache ist, dass es ein paar Module gibt, die können mit
Johannes: Beidem umgehen.
Johannes: Die können mit Bytes umgehen und mit
Johannes: Strings. Und die
Johannes: zwei wichtigsten davon sind RE,
Johannes: also Regular Expressions.
Johannes: Ja, gut, klar.
Johannes: Weil, klar, genau, manchmal musst du
Johannes: halt Regular Expressions haben, die
Johannes: mit Bytes arbeiten, die funktionieren auch.
Jochen: Das Gesicht in einem Bild austauschen, das geht auch.
Jochen: Ja.
Jochen: Ja, okay.
Jochen: Keine Ahnung.
Johannes: Die funktionieren anders, je nachdem,
Johannes: ob man Bytes reingibt oder
Johannes: Strings. Und auch die Regular, also
Johannes: die Regular Expression, der Typ der Regular Expression
Johannes: muss zum Typ des verarbeiteten
Johannes: Datentyps passen und dann ist
Johannes: auch alles so, wie man es sich wünscht.
Johannes: Das zweite Modul, interessanterweise, ist OS.
Johannes: Und zwar alles, was mit
Johannes: Dateipfaden zu tun hat.
Johannes: Und das ist auch
Johannes: so eine interessante Legacy-Sache,
Johannes: oder? Oh ja.
Johannes: Weil Dateipfade nicht
Johannes: unbedingt valides
Johannes: UTF-8 sein müssen.
Johannes: Auf
Johannes: modernen Betriebssystemen
Johannes: sollte das so sein, ja?
Johannes: Wenn ich eine Datei schreibe,
Johannes: dann sollte die einen UTF-8-Dateinamen haben.
Johannes: Wenn ich in meinen
Johannes: Gnome Explorer, wie auch immer der
Johannes: heißen mag, Nautilus, Tuna oder
Johannes: keine Ahnung, was es da gibt,
Johannes: einen Dateinamen
Johannes: eingebe, dann wird es ein UTF-8.
Johannes: Aber das Dateisystem
Johannes: garantiert es nicht.
Johannes: Und das heißt, es kann
Johannes: Dateinamen geben, die ich nicht in
Johannes: UTF-8, die ich nicht als
Johannes: UTF-8-codierte Strings darstellen kann.
Johannes: Das heißt, wenn ich eine Datei aufmachen
Johannes: möchte, dann muss ich irgendwie
Johannes: da rankommen an diesen Dateinamen,
Johannes: der kein korrekter String sein muss.
Johannes: Und deshalb
Johannes: gibt es für diese
Johannes: Dateisachen alle
Johannes: Funktionen in zwei Varianten, als mit
Johannes: String und als mit Bytes.
Johannes: Und da kann man auch schönes
Johannes: String-Dateien, die man nicht
Johannes: löschen kann von der Konsole.
Jochen: Am Anfang war das, glaube ich, in
Jochen: Python 3, also da war der
Jochen: Umstieg von 2 auf 3,
Jochen: da war das am Anfang nicht so, da hatte man das,
Jochen: da gab es das noch nicht und da haben Leute
Jochen: irgendwie, das war für einige Leute
Jochen: ein Grund, Python 3 nicht zu verwenden, weil sie
Jochen: sagten, ja super, ich kann damit meine Dateien
Jochen: leider nicht irgendwie löschen oder
Jochen: es geht einfach nicht, es gibt keine
Jochen: Möglichkeit, das zu tun, das kann man nicht sagen.
Jochen: Ja, und dann gab es auch noch die
Jochen: diverse böse Sonderfälle mit irgendwie,
Jochen: naja, also eigentlich kann das sein Dateisystem,
Jochen: aber halt nicht, wenn du irgendwas
Jochen: uraltes über NFS gemountet hast oder so
Jochen: was, dann macht man das alles.
Jochen: Ja.
Jochen: Ja, ja.
Jochen: Ja, äh, ja.
Johannes: Das, für mich, das Fazit des ganzen
Johannes: Kapitels ist, modernes Betriebssystem,
Johannes: UTF-8, fein.
Johannes: Mhm.
Johannes: Also in aller anderen Situationen möglichst vermeidlich.
Dominik: Genau, Python 2 und Python 3, wie alt ist Python 3 jetzt?
Dominik: Wann kam das raus? 2012?
Dominik: 15 Jahre? Ja, so 2010
Jochen: ungefähr ist das irgendwie losgegangen, ja.
Jochen: Also 15 Jahre fast. Ja.
Jochen: Also auch Legacy,
Jochen: forget it. Aber da haben sich ja
Johannes: Leute gewehrt dagegen, ja, da haben sich ja Leute
Johannes: gewehrt dagegen. Es gibt einen
Johannes: Programmierkurs von
Johannes: Seth Shaw, Learn Python the Hard Way.
Dominik: Ja, den habe ich, kann ich sehr empfehlen,
Dominik: habe ich durchgezogen. Und der hat
Dominik: sich sehr lange gewehrt,
Johannes: der hat sich sehr lange gewehrt, den auf
Johannes: Python 3 umzustellen, weil
Johannes: eben die Trennung zwischen
Johannes: String und Bytes nicht logisch
Johannes: erschien.
Johannes: Und er hat da sehr lange
Johannes: sehr viele Artikel drüber geschrieben und
Johannes: ich finde diese Trennung großartig,
Johannes: das ist genau richtig. Es sind zwei unterschiedliche
Johannes: Dinge, zwei unterschiedliche Bedeutungen,
Johannes: die unterschiedliche Zwecke verfolgen
Johannes: und natürlich musste das auftreten,
Johannes: natürlich musste die unterschiedlich behandeln.
Johannes: Und
Johannes: das, also es gibt Leute, die sich da lange
Johannes: dagegen gewehrt haben. Ich weiß nicht, wie
Johannes: der Mr. Shaw das inzwischen sieht.
Johannes: Es ist mir auch egal, weil ... Es gibt doch Leute, die sich ...
Johannes: Weil er hat damals kein Recht gehabt.
Jochen: Ja, ich kann das
Jochen: Buch auch, ich kann es mal suchen.
Jochen: Ja, der macht jetzt inzwischen auch ganz
Jochen: viel AI-Zeugs.
Jochen: Aber
Jochen: genau, ja, ja.
Jochen: Aber das habe ich auch nie verstanden, ja.
Johannes: Ja, also das war damals schon ein Streitpunkt.
Johannes: Ich, meiner Meinung nach, ist das schon das
Johannes: Richtige. Das war die richtige Entscheidung.
Johannes: Ja, ja, auf jeden Fall. Diese Trennung zu machen
Johannes: und auch sauber zu machen und
Johannes: viele von den Problemen, die man so
Johannes: haben kann, die gehen halt einfach weg.
Johannes: Auch wenn es auch so ein paar
Johannes: andere Probleme mit NFC und
Johannes: NFT ...
Jochen: Und Sortierung und, naja,
Jochen: und dann halt, okay.
Jochen: Ja, kannst du einfach nicht mehr machen.
Johannes: Kannst du einfach nicht mehr machen.
Johannes: Ja, cool, cool, cool.
Johannes: Genau.
Jochen: Ah, ja, ich glaube,
Jochen: wenn man, es gibt ja auch noch Dinge vor ASCII,
Jochen: das ist ja auch mal,
Jochen: wenn man jetzt, wir hatten eben auch schon Faxgeräte,
Jochen: ja, aber wenn man
Johannes: in Asien gibt es ganz
Johannes: inkompatible. Ja, oder wenn man jetzt irgendwo
Jochen: hinfliegt oder so, man sagt so, alles,
Jochen: alles,
Jochen: alles schrecklich, macht's gut, ihr Trottel,
Jochen: ich fliege jetzt einfach irgendwo anders hin und dann
Jochen: könnt, könnt ihr halt sehen,
Jochen: wer bleibt, dann
Jochen: das nicht funktioniert, weil man
Jochen: halt irgendwie auf dem Ticket hat man halt irgendwie
Jochen: zum Beispiel keine Umlaute oder sowas.
Dominik: Aber Jochen, es gibt auch ein Protokoll für Brieftauben, wir kriegen die schon.
Dominik: Okay.
Jochen: Dann gibt's,
Jochen: das ist bei Überweisungen manchmal auch so oder so
Jochen: und das ist halt immer dann, wenn man es plötzlich noch mal mit
Jochen: so, mit so richtigen
Jochen: Hosts zu Kugel kommt. Wobei wir ja jetzt in der Swift,
Johannes: wir sind ja jetzt in der, in der Swift-Ära,
Johannes: in der
Johannes: Payment Services Directive 2-Ära, wo
Johannes: alles ordentliche Encodings hat,
Johannes: zumindest definierte Encodings. Ach, okay, das war mir
Jochen: jetzt gar nicht so, weil ich, das war Überweisungen
Jochen: oder so, das ist ja auch manchmal so, dass ich da versuche irgendwie was einzugeben
Jochen: und so, hä, geht nicht, komisch.
Johannes: Ja, das, das hat auf jeden Fall, also das,
Johannes: äh, dieser Zeichensatz, der da drin ist,
Johannes: ist komisch, aber der ist wenigstens genau definiert.
Johannes: Ah, okay, ja gut, das kann
Jochen: natürlich sein, ja, ich hab's, aber so
Jochen: früher, oder ich glaub bei Flugsystemen ist es
Jochen: immer noch so, dass es läuft alles immer noch über so Großrechner
Jochen: und das ist halt, die verwenden EBDIC
Jochen: oder so, ne, das ist halt auch irgendwie
Jochen: so ein 7-Bit, äh, irgendwie
Jochen: Monster, ja, Ding.
Jochen: Was aber nicht kompatibel ist. Nein, zu
Jochen: gar nichts natürlich.
Jochen: Und diese ganzen radiatischen
Johannes: Schreibsysteme, die mehrbeitig
Johannes: sind, sind aber auch zu nichts kompatibel
Johannes: und auch untereinander nicht kompatibel
Johannes: und ahhh.
Johannes: Ja, äh,
Johannes: das ist großartig, das ist großartig.
Johannes: So.
Dominik: Ja. Ja. Wie soll man das
Dominik: Muster an einer Höhle malen?
Dominik: Hm, machen wir doch wieder irgendwas
Dominik: mit Holz oder so. Ja, ich fand das mit den
Dominik: Heavy Carriers immer noch gut. Also, ich, ich empfehle
Johannes: dieses Kapitel nicht zum Lesen, das ist tatsächlich
Johannes: ein bisschen trocken und ein bisschen lang.
Johannes: Ähm, es ist ganz gut als Nachschlagewerk.
Johannes: Ja, wenn man, wenn man eben an diese
Johannes: Stelle kommt, wo man tatsächlich mit
Johannes: mit Bytes und mit Legacy-Systemen
Johannes: arbeiten muss, da stehen ein paar interessante Sachen drin,
Johannes: aber zum Lesen,
Johannes: fand ich es jetzt nicht so interessant.
Johannes: Ja.
Johannes: Ja, cool, cool, cool. Aber, ja.
Dominik: Also, ich würde sagen, dann haben wir heute die Episode gefüllt,
Dominik: oder? Ja, ich glaube, wir machen irgendwann noch mal
Dominik: einen Beitrag. Ja.
Jochen: Genau, aber wir könnten auch sowas wie Pics machen zum Beispiel.
Jochen: Können wir das? Könnten wir. Ja.
Jochen: Okay. Ja.
Jochen: Dann fang doch mal an. Wie vorhin schon angekündigt,
Jochen: habe ich sogar zwei Pics. Oha.
Johannes: Und einer davon ist sogar,
Johannes: ist sogar Python-relevant.
Johannes: Äh, der erste Pick,
Johannes: den ich habe, der ist nicht Python-relevant,
Johannes: äh, das ist ein Paper
Johannes: auf Astroarchive, äh,
Johannes: Gravitational Effects
Johannes: of a Small Primordial Black Hole
Johannes: Passing Through the Human Body.
Johannes: Äh, da geht es
Johannes: um eine Klasse von
Johannes: schwarzen Löchtern, sogenannte
Johannes: Primordial Black Holes, das sind so,
Johannes: das ist so eine Vorstufe von einem schwarzen Loch, das sind so schwarze
Johannes: Löcher, die dann sofort wieder wegverdunsten.
Johannes: Und, ähm,
Johannes: es, so wie ich das verstanden
Johannes: habe, ich verstehe ja nichts davon, ja, weil ich habe Kommentare
Johannes: gelesen und so wie ich die Kommentare gelesen habe,
Johannes: ist dieses Paper interessant in dem
Johannes: Sinne, dass man nicht genau
Johannes: weiß, ob es diese schwarzen Löcher gibt
Johannes: und wie, wie oft die vorkommen und wie
Johannes: viele es davon gibt.
Johannes: Und wie groß die sind.
Johannes: Und in diesem Paper hat man ausgerechnet,
Johannes: wenn ein solches schwarzes Loch durch
Johannes: einen Menschen durchfliegt, die sind extrem
Johannes: klein, dann hat es
Johannes: keinerlei Auswirkungen, wenn es kleiner ist
Johannes: als 1,4 mal 10 hoch
Johannes: 17 Gramm.
Johannes: Das ist ungefähr,
Johannes: ungefähr so viel wie die
Johannes: Pyramide von Giza wiegt.
Johannes: Die wiegt
Johannes: ungefähr 10 hoch 17 Gramm, 1,4 mal
Johannes: 10 hoch 17 Gramm. Das heißt, wenn ein schwarzes
Johannes: Loch durch einen Menschen durchfliegt und dieses schwarze
Johannes: Loch hat eine Masse, die ist kleiner als die Pyramide
Johannes: von Giza, dann passiert gar nichts.
Dominik: Was ist die Pyramide von Giza?
Jochen: Gizeh. Das ist die
Jochen: in Kairo da, diese riesen, die große Pyramide.
Jochen: Die große Gizeh, nicht Giza.
Jochen: Also die ist 146,5
Jochen: Meter hoch und, äh.
Johannes: Und wiegt ungefähr 1,4 mal 10 hoch
Jochen: 17 Gramm. Wenn die durch dich durchfliegt, dann merkst du das.
Johannes: Ja, aber nicht als schwarzes
Johannes: Loch, wenn du komprimiert bist mit einem schwarzen Loch.
Johannes: Der Grund ist, dass dieses schwarze Loch zu klein
Johannes: ist. Das interagiert mit keinem deiner
Johannes: Moleküle. Achso,
Jochen: weil der Schwarzschildradius von dem Ding ist halt so winzig,
Jochen: dass das. Der ist kleiner als
Jochen: ein Atomkern und deshalb
Jochen: kriegst du nichts ab. Ja, okay.
Johannes: Ja, der Event Horizon
Johannes: ist klein genug, dass du überhaupt
Johannes: gar nichts bemerkst.
Johannes: Wenn eins davon größer ist, also die
Johannes: Sprache in diesem Artikel ist sehr
Johannes: Ich würde sagen, wenn
Johannes: ein, äh, ein
Johannes: schwarzes Loch durch einen menschlichen Körper
Johannes: durchfliegt, äh, was eine
Johannes: größere Masse hat, dann hätte es
Johannes: messbare Auswirkungen. So ist es, glaube ich.
Jochen: Okay, das klingt
Jochen: unangenehm. Genau.
Johannes: Die Tatsache, dass es keine
Johannes: bekannten Fälle gibt von solchen
Johannes: seltsamen
Johannes: Verwundungen, die
Johannes: einfach so passieren, ist eine Indikation
Johannes: dafür, dass es diese
Johannes: Primordial, also diese Primordial Black
Johannes: Holes, dass es die nicht gibt oder dass die nicht
Johannes: in genügend großer Menge auftreten,
Johannes: dass sie von der gesamten
Johannes: Menschheit messbar sind. Und das ist, das ist das
Johannes: Interessante an diesem Paper da drin. Also
Johannes: sehr weit außenrum ausgeholt, um
Johannes: dann hinterher zu sagen, ja, und deshalb
Johannes: gibt's da nicht so, kann's nicht so viele
Johannes: davon geben. Fand ich für schön.
Johannes: Ja. Mein zweiter
Johannes: Pick
Johannes: ist wesentlich weniger
Johannes: physikalisch.
Johannes: Äh, ist ein Artikel
Johannes: äh, mit dem Titel A Year of
Johannes: UV, Pros, Cons and Should You Migrate.
Johannes: Ah.
Johannes: Das heißt, äh, jemand hat seine Erfahrungen
Johannes: aufgeschrieben, äh,
Johannes: mit UV, UV,
Johannes: dem Python, äh,
Johannes: Package Management Tool,
Johannes: Project Management Tool, ähm,
Johannes: und
Johannes: es, es ist sehr interessant
Johannes: zu lesen, weil es gibt natürlich viele,
Johannes: viele gute Dinge zu sagen, zu sagen
Johannes: und viele Dinge zu sagen,
Johannes: die anders sind. Und es gibt erstaunlich
Johannes: wenige Dinge zu sagen, die
Johannes: nicht so gut sind. Mhm.
Johannes: Und im Wesentlichen der einzige
Johannes: Grund, warum man UV
Johannes: nicht verwenden sollte, laut dieses Artikels
Johannes: ist, wenn man irgendwelche Legacy-Anwendungen
Johannes: hat, die man damit halt nicht auflösen
Johannes: kann. Mhm. Ja, weil die Dependency Resolution
Johannes: anders ist und, ähm,
Johannes: wenn's nicht geht, ja, dann
Johannes: kannst du entweder den Aufwand reinstecken,
Johannes: dafür zu sorgen, dass es geht, oder du kannst halt
Johannes: bei Pip bleiben oder bei was auch immer es ist. Mhm.
Johannes: Ja. Und, äh, es ist ein
Johannes: sehr langer Artikel und der, ähm,
Johannes: beschreibt diese
Johannes: Situation sehr genau und ich fand ihn sehr interessant zu lesen
Johannes: und deshalb ist das mein Pick für diese Woche, mein
Johannes: zweiter Pick neben den schwarzen Löchern.
Jochen: Mhm. Sehr cool. Es gibt da auch ein,
Jochen: ähm, Video von, von
Jochen: Hüneck, äh,
Jochen: der hat vor, ähm, ich glaub Anfang
Jochen: 2024 oder so irgendwie ein Video gemacht,
Jochen: wo er sagt, so ist das wirklich die,
Jochen: die Zukunft von, äh,
Jochen: Packaging in Python und
Jochen: dann hat er irgendwann im August oder September
Jochen: ein Video gemacht, wo er dann,
Jochen: dass der Titel hat, ja, es ist die Zukunft
Jochen: von Packaging in Python.
Jochen: Ja. Und, ja, das kommt auch
Johannes: in dem Artikel rüber. Eine der Gründe, warum
Johannes: die Empfehlung so mehr oder weniger uneingeschränkt
Johannes: ist, ist, dass dieses Team einfach
Johannes: ungeheuer viel dran arbeitet.
Johannes: Ja. Und die, die
Johannes: machen einfach, also, wenn man sich
Johannes: den Bugtracker anschaut, äh,
Johannes: von, äh, von UV,
Johannes: ähm, dann hat es
Johannes: eine extrem große Anzahl Tickets.
Johannes: Ah, ich mach's gerade auf.
Johannes: Ähm,
Johannes: wir sind jetzt bei Ticket Nummer
Johannes: 11.679.
Johannes: Wow.
Johannes: Und offen sind aber
Johannes: nur 1.200. Nur 1.200.
Johannes: Mhm. Äh, das heißt,
Johannes: die arbeiten einfach alles
Johannes: ab, was ihnen in den Weg kommt. Und die,
Johannes: äh, diese Sachen, die da drin sind,
Johannes: scheinen alle sehr gut von
Johannes: der Architektur zu sein. Die sind alle sehr performant.
Johannes: Die sind alle sehr gut
Johannes: ausgedacht, was auch die Oberfläche angeht.
Johannes: Also, es scheint so zu sein, dass,
Johannes: ähm, dass die,
Johannes: dass es einfach gut funktioniert. Ja, so ein paar Kinderkrankheiten
Dominik: am Anfang sind alle weg und es ist so.
Dominik: Genau. Sehr viel cooler, ja. Ja, ich
Johannes: hab jetzt auch. Und es ist super schnell. Und ich bin inzwischen auch überall
Johannes: hinmigriert. Ja. Es gibt auch ein, es gibt auch
Johannes: ein, äh, äh, ein Python-Package,
Johannes: das heißt Migrate to UV.
Johannes: Mhm. Äh, das hab ich einfach mal auf
Johannes: alle meine Sachen angewendet und jetzt sind die alle
Johannes: UV-visiert und das ist schön. Es gibt noch
Dominik: UV-Secure und so, da kann man so ein Pipelines
Dominik: testen und sowas, Packages. Ja,
Dominik: es ist sehr nice, ja.
Dominik: Ja.
Dominik: Ja, cool.
Dominik: Äh, ich pick da mal. Ja.
Dominik: Ich weiß gar nicht mehr, wo ich das herhab. Vielleicht hab ich's bei einem von euch gefunden.
Dominik: Es heißt, äh, Sketch a Day.
Dominik: Ähm, da wird eine visuelle
Dominik: Idee jeden Tag, äh,
Dominik: gecodet und zwar in Python. Finde ich
Dominik: sehr nice. Das ist so ein, äh, Blog-Serie.
Dominik: Ah, okay. Von Alexandre Bivilares.
Dominik: Sehr, sehr schick, weil man
Dominik: da irgendwie so Visualisierung mit Python
Dominik: kriegt, so ganz viele verschiedene unterschiedliche Ideen. Da ist immer
Dominik: so das Skript dabei und der macht
Dominik: das schon eine ganze Weile und da sind ziemlich nette
Dominik: Sachen dabei, wie man sich das angucken kann.
Dominik: Hm.
Dominik: Also super spannend, so wenn man mal
Dominik: Grafik mit Python machen will oder generieren will,
Dominik: äh, und sich mal angucken möchte, wie das denn
Dominik: alles da aussehen kann, kann ich
Dominik: sehr empfehlen. Verlinken wir, äh,
Dominik: da kann man echt schicke Sachen mit
Dominik: rendern.
Dominik: Traktate und sowas alles, ja.
Dominik: Sehr coole Sache.
Dominik: Jo.
Dominik: Ja, was hab ich da? Also ich
Jochen: mach mal keinen Python, äh,
Jochen: Pick, äh,
Jochen: sondern ich pick mal eine Shell.
Jochen: Da gab's nämlich jetzt auch, äh, irgendwie
Jochen: vor nicht allzu langer Zeit einen neuen Release,
Jochen: äh, also ich,
Jochen: ähm,
Jochen: verwenden kann Fisch und, äh,
Jochen: Fisch gibt's jetzt auch
Jochen: in der Version 4. Wow. Und, ähm,
Jochen: sie haben da auch einen Großteil
Jochen: in Rust neu geschrieben. Oh, cool.
Dominik: Also, ich mag Fisch
Dominik: eigentlich sehr gerne, also vor allem wegen dem Fuzzy-Ding,
Dominik: das ist alles sehr nice und completionist war
Dominik: immer sehr nett, aber
Dominik: was echt nervt ist, dass
Dominik: Skripte nicht so kompatibel sind.
Dominik: Die Skriptsprache finde ich anstrengend. Das
Dominik: bricht halt, wenn man das irgendwo anders ausführen
Dominik: will, immer alles durch.
Dominik: Der Grund, warum ich es nicht mehr auf allen
Dominik: Servern einsetze, ich hatte es zwischendurch
Dominik: auf allen Pod-Servern drauf. Ja,
Jochen: mach ich auch, aber, ja. Aber ja, klar,
Jochen: also manche Sachen kannst du halt einfach nicht verwenden
Jochen: in der Fisch-Shell, äh, ich,
Jochen: gut, aber ich mach dann halt, ich hab dann
Jochen: zum Beispiel in so Deployment-Skripten oder so, hab ich dann halt,
Jochen: dann nehm ich halt eine Bash. Ja, genau, ja, ja.
Jochen: Und führe das dann damit aus, das geht halt auch.
Dominik: Ja, weil auch die Konfigurationen sind halt
Dominik: nicht portable und so, das ist alles so ein bisschen nervig.
Johannes: Da gab's doch auch einen sehr langen
Johannes: Artikel, Jochen, äh, darüber, wie sie
Johannes: das gemacht haben und wie sie das hingekriegt
Johannes: haben. Genau. The Fish of Theseus.
Jochen: Äh, Theseus, ja, genau. Der Fisch des
Jochen: Theseus. Ja, kennt ihr die, die
Jochen: Anspielung? Ja, natürlich, aber
Jochen: erklär sie uns trotzdem noch mal. Okay, der,
Jochen: The Ship of Theseus ist halt so ein, äh,
Jochen: eigentlich ein Ding aus der Philosophie,
Jochen: dass, äh, wenn man jetzt irgendwie so ein
Jochen: altes, äh, Schiff
Jochen: ausgräbt irgendwie und,
Jochen: ähm,
Jochen: naja, man, äh, man möchte,
Jochen: man möchte es halt sozusagen, äh,
Jochen: äh, reparieren
Jochen: und man tauscht jetzt, äh,
Jochen: quasi, äh, die ganzen
Jochen: alten und vergammelten Teile aus durch
Jochen: neue. Äh,
Jochen: dann. Durch identische. Durch identische,
Jochen: genau.
Jochen: Dann hat man ja im Grunde halt, äh,
Jochen: äh, äh, hat man ja
Jochen: im Grunde hinterher zwei Schiffe.
Jochen: Welches ist denn jetzt das richtige?
Jochen: Jochen, du hast
Jochen: irgendwas kaputt gemacht. Oh, Moment.
Jochen: Oh, no. Das nimmt gleich,
Jochen: bricht gleich in Flammen auf.
Dominik: Ich glaub, das war der, äh,
Dominik: das Wort vom Sonntag. Mit unserem digitalen Audio,
Dominik: mit unseren Audio-Problemen kommen jetzt auch noch
Dominik: analoge Audio-Probleme. Äh, Kabel.
Dominik: Gleich geht's in Flammen auf, Jochen.
Dominik: Jetzt, wunderbar.
Dominik: Keiner hat's gehört.
Jochen: Irgendwie ist das Kabel tatsächlich nicht mehr so ganz
Jochen: in Ordnung. Das kann ja nicht sein. Liebe Hörer, das sind die
Johannes: Probleme, mit denen wir uns rumschlagen müssen,
Johannes: um euch diese Episoden zu bringen.
Jochen: Ich glaub, schlägt man mal irgendwie so
Jochen: das eine Bein über das andere und
Jochen: rupft kräftig an dem Kabelbaum
Jochen: schon rauf und knackt
Jochen: es überall. Das ist ein Kreuz.
Jochen: Ja. Es ist mehr
Johannes: so ein Kabel, Kabelstrauch,
Johannes: oder? Als ein Kabelbaum.
Johannes: Ja. Aber Baum impliziert eine gewisse Ordnung.
Johannes: Ja. Ja, das ist
Johannes: falsch, das stimmt. Das ist Kabelgebüsch.
Jochen: Ja, ein Kabelunterholz.
Jochen: Ja, okay, also das Schiff des Teseus.
Johannes: Da gibt's auch ganz viele Varianten davon, ja,
Johannes: dass der Teseus fährt mit seinem,
Johannes: mit seinem Schiff auf seine,
Johannes: auf seine Abenteuerfahrt und hat
Johannes: aber genügend Ersatzteile dabei und während der Fahrt
Johannes: tauscht er kaputte Planken
Johannes: aus und am Ende, wenn er ankommt,
Johannes: hat er alle Planken einmal ausgetauscht, ist er
Johannes: jetzt immer noch mit dem, in dem gleichen Schiff,
Johannes: mit dem er losgefahren ist und
Johannes: seine Feinde, die fahren hinter ihm her und sammeln
Johannes: diese Teile aus, die er austauscht und bauen die
Johannes: dann in ihr eigenes Schiff ein und
Johannes: am Ende haben sie alle Teile in ihrem
Johannes: eigenen Schiff ausgetauscht durch die Teile, die
Johannes: der Teseus hinten runtergeschmissen hat.
Johannes: Sind die jetzt noch in ihrem eigenen
Johannes: Schiff oder sind die jetzt in dem Schiff, mit dem Teseus
Johannes: losgefahren ist oder
Johannes: was ist da
Johannes: eigentlich passiert und
Johannes: diese Anspielung ist eben, was passiert, wenn du
Johannes: alle Teile von einer Shell austauschst
Johannes: und dann ist es noch die gleiche Shell.
Jochen: Genau. Weil sie nicht alle
Johannes: Teile ausgetauscht haben, wenn ich es richtig verstanden habe.
Jochen: Ja, aber auch in der Philosophie, also sehr, sehr
Jochen: interessantes Problem irgendwie,
Jochen: das passiert ja tatsächlich bei Menschen auch,
Jochen: irgendwie, wenn man Dinge isst und wieder
Jochen: ausscheidet, dann man tauscht ja
Jochen: auch zum Beispiel, also so durchschnittlich glaube ich
Jochen: alle sieben Jahre alle Atome aus,
Jochen: aus denen man besteht. Ja, aber das glaube ich nicht, in den
Johannes: Knochen sind Atome drin, die bleiben da drin.
Jochen: Ja, okay, also im Schnitt halt, ja,
Jochen: natürlich, klar, also
Jochen: natürlich wirst du nicht alle austauschen, aber
Jochen: und auch nicht die, ja, okay, aber
Johannes: Aber noch, also ich meine, noch viel kürzer
Johannes: zusammengefasst ist ja,
Johannes: you can never step twice in the same river.
Johannes: Du kannst niemals zweimal in den gleichen Fluss
Johannes: reinsteigen, weil jede Sekunde
Johannes: verändert er sich so weit, dass es nicht mehr der gleiche ist.
Johannes: Wir sind aber immer auf der gleichen Welt.
Johannes: Ja, und genau, die
Johannes: Auflösung oder die
Johannes: philosophische
Johannes: Schlussfolgerung ist halt, dass bei manchen
Johannes: Sachen zählt die Kontinuität
Johannes: mehr, die Kontinuität der Existenz
Johannes: mehr als die
Johannes: Bauteile und, ja.
Dominik: Also ich meine, die Philosophie ist ja dieselbe, die Syntax
Dominik: ist dieselbe, die Skriptsprache ist dieselbe,
Dominik: das Interface ist dieselbe,
Dominik: die API ist dieselbe.
Jochen: Aber die Frage wäre halt,
Jochen: die Frage halt wäre halt, wie kann das denn,
Jochen: wenn ich jetzt das ganze Material austausche, wie kann
Jochen: es denn sein, dass es immer noch das Gleiche ist, sozusagen?
Jochen: Wie kann ich denn zum Beispiel, oder wie kann ich
Jochen: bei Menschen, wenn da ja
Jochen: alle Teile ausgetauscht werden und auch jetzt ansonsten
Jochen: das Schwierige ist mit
Jochen: der Kontinuität, weil es ja auch unterschiedliche
Jochen: Lebensphasen, aber ich kann ja die gleichen
Jochen: Menschen immer noch erkennen als Kind oder als
Jochen: Kreis, wie kann denn das sein? Was ist das,
Jochen: was ich da erkenne? An den Contract gehalten, an die
Dominik: Closure, an das Protokoll, an das
Dominik: Schema, an das Modell,
Dominik: das ist doch scheißegal. Das regt mich
Johannes: auch so ein bisschen auf an dieser
Johannes: Beamen-Debatte, wo du
Johannes: sagst, wenn du jemanden mit dem
Johannes: Star Trek-Transporter-Mechanismus
Johannes: irgendwo hin beamst, dann nimmst du die ganzen
Johannes: Moleküle und
Johannes: haust sie und auf der anderen Seite machst du
Johannes: neue Moleküle und machst sie.
Johannes: Eigentlich ist es ja kein Mensch, sondern
Johannes: das ist Mord und Klonen.
Johannes: Aber
Johannes: ja, also es hat mich nie
Johannes: überzeugt, dieses Argument.
Dominik: Weil du beim Beamen immer nach dem Beamen immer noch genau
Dominik: der Gleiche bist.
Jochen: Ja, weil wir das ja sowieso die ganze Zeit machen.
Johannes: Jedes Mal, wenn ich das mache, bin ich immerhin
Johannes: noch der Gleiche.
Johannes: Ja, und wir wissen ja auch nicht, ob Zeit nicht
Johannes: quantisiert ist und ob wir überhaupt eine Kontinuität haben
Johannes: und so weiter, aber ja, das geht
Johannes: jetzt vielleicht zu weit für
Johannes: den Programmier-Podcast.
Johannes: Ja, aber es ist halt...
Johannes: Liebe Hörer, folgen Sie uns auf
Johannes: Philosophie für Anfänger.
Jochen: Ja, ich kann aber auch mal so vielleicht noch
Jochen: einen Pick, den ich dazu irgendwie
Jochen: in Stellung bringen könnte, wäre halt irgendwie,
Jochen: wenn Sie sich mal die Sachen von
Jochen: Joscha Bach anhören. Der hat jetzt auf dem
Jochen: letzten CCC-Kongress auch wieder einen
Jochen: interessanten... Sehr kontrovers
Dominik: wahrgenommenen...
Dominik: Ja. Ja? Ja. Okay, das habe ich
Dominik: gar nicht so kontrovers. Ja, es gibt mittlerweile Leute,
Dominik: die finden alles komisch. Ja.
Jochen: Ah ja, also, sagen wir mal so, es gab da
Jochen: diesen Essay auch von dem
Jochen: Anthropic-Typen,
Jochen: den man auch mal in einer LLM-Folge
Jochen: besprechen sollte.
Jochen: Der
Jochen: Titel von dem Essay ist
Jochen: Machines of Loving Grace. Ja, aber du
Dominik: liest noch wie die Worst, da waren noch viele Leute sehr
Dominik: empört. Ja, den habe ich gar nicht so mitgekriegt.
Dominik: Ja, okay. Und
Jochen: ja, genau,
Jochen: er hat einen Vortrag gehalten mit dem Titel
Jochen: Self-Models of Loving Grace und
Jochen: Ich fand den gut, den Talk.
Jochen: Ich fand den auch ziemlich gut,
Jochen: wo er halt sagt, naja, also was ist eigentlich
Jochen: existieren? Existieren könnte ja auch
Jochen: bedeuten, also sozusagen
Jochen: existieren
Jochen: ist halt
Jochen: sozusagen immer davon
Jochen: abhängig, wie
Jochen: also
Jochen: man existiert in dem Maß, in dem man
Jochen: implementiert ist, sozusagen.
Jochen: Und dann gehen viele der Probleme
Jochen: weg, wenn man das so, wenn man das
Dominik: aus dem Blickwinkel ein... Wenn man das jetzt kombiniert mit diesem
Dominik: Attention is all you need-Ding, dann
Dominik: wird da auch Philosophisch,
Dominik: etwas draus, weil man tatsächlich wahrscheinlich
Dominik: in diesen Quantentheorien
Dominik: immer durch die jeweilige Aufmerksamkeit die Dinge
Dominik: erst verwirklicht.
Dominik: Spannend.
Dominik: Jetzt sind wir alle sprachlos. Ich finde, das ist das
Dominik: perfekte Ende für unsere
Dominik: heutige Episode. Also bleibt uns doch
Dominik: gewogen. Feedback, hallo, at
Dominik: pythonpodcast.de. Schreibt, ob ihr uns irgendwo treffen
Dominik: wollt, ob ihr vorbeikommt. Gerne, wir möchten
Dominik: gerne eure...
Dominik: Idee für eine Location? Ja, die machen wir.
Dominik: Das machen wir schon.
Dominik: Und ja, wir organisieren das irgendwie,
Dominik: dann schreiben wir euch irgendwie und freuen uns
Dominik: auf euch und würde sagen,
Dominik: dann hört uns vorher mehr Zeit.
Dominik: Guten Morgen und Abend, gute Nacht.
Dominik: Viel Spaß, bleibt uns gewogen. Schaltet wieder
Dominik: rein. Bis bald. Und bis zum nächsten Mal.
Dominik: Tschüss. Ciao, ciao.