Folge 122: Rust - Ein rostiger Faden
Shownotes
Folge 122: ein rostiger Faden
Zusammenfassung
Der Bene ist ja ein Java Typ! Kann alles! Und da ist sowieso alles Beste. Und ist auch blazing fast.
Allerdings ist ihm auch schon aufgefallen, dass Tools "written in Rust", schon noch mal blazing faster sind. Zufall! Garantiert!
Aber das nagt an ihm! Irgendwann wacht er Nachts schweißgebadet auf! Ich muss Rust lernen!! Auch wenn das ganze Internet das schon kann! Selbst der Holger baut seine TUIs damit!
Und von dieser Reise berichten wir heute! Ein rostiger Faden soll uns leiten!
Wir sind natürlich gewohnt überambitioniert!
Wir reden über Speichermanagement, Borrowing und Lifetimes. Es geht um Traits, Enums und Pattern Matching. Und so weiter und sofort. Und nicht zu vergessen das tolle Tooling!
Wir sind also schon recht begeistert von Rust!
Wie sieht das bei euch aus? Seid ihr schon im Rust Game? Oder ist eure Umgebung blazing fast genug? Schreibt uns! Wir sind gespannt!
Bis bald!
Bene und Holger
Links
Lokale KI
- c't 3003 – Video zu lokaler KI – https://www.youtube.com/watch?v=M1j_uRqKMKI
- NVIDIA GeForce RTX 3090 – https://www.nvidia.com/de-de/geforce/graphics-cards/30-series/rtx-3090-3090ti/
- Qwen3 – https://github.com/QwenLM/Qwen3
- GLM (Z.ai)- https://huggingface.co/zai-org
- Claude Code – https://claude.com/product/claude-code
NeoVim
- Neovim – https://neovim.io
- Neovim-Doku zu Window-Befehlen (
:help CTRL-W) – https://neovim.io/doc/user/windows.html
Gaming
- Factorio – https://factorio.com
- Warhammer 40,000: Boltgun – https://en.wikipedia.org/wiki/Warhammer_40,000:_Boltgun
- Memories in Orbit – https://mio.wiki.gg/
- Well-Dweller-Demo (neues Spiel vom Crypt-Custodian-Entwickler, Kyle Thompson) – https://denderagames.com/en/juego/well-dweller
- Framework Laptop – https://frame.work
Rust & Co.
- Rust – https://www.rust-lang.org
- Zig – https://ziglang.org
- Ghostty – https://ghostty.org
- Bun – https://bun.sh
- Anthropic-Blogpost zur Portierung von Bun von Zig nach Rust – https://bun.com/blog/bun-in-rust
- Oxc / Oxfmt – https://oxc.rs
- CodeCrafters – https://codecrafters.io
- SoCraTes Conference – https://www.socrates-conference.de
- Gradle Build Scans – https://scans.gradle.com
- GraalVM – https://www.graalvm.org
- Crabstat (Holgers System-Info-TUI) – https://github.com/holgergp/crabstat
- JobRad-Podcast-Folge mit Urs über Crabstat – https://jobrad-increase-cycle-time.podigee.io/11-lernen-mit-ki
- Nixpkgs – https://github.com/NixOS/nixpkgs
- NixOS Ocean Sprint – https://oceansprint.org
- Apache Commons – https://commons.apache.org
- Scala – https://www.scala-lang.org
- Idris – https://www.idris-lang.org
- Martin Odersky über Rust-Overuse (Interview) – https://www.linkedin.com/posts/ryanlpeterman_why-rust-is-overused-right-now-martin-odersky-activity-7500538505639526400-qbLe/
- Clippy – https://github.com/rust-lang/rust-clippy
- Nand2Tetris / The Elements of Computing Systems – https://www.nand2tetris.org
- Serde – https://serde.rs
- Tokio – https://tokio.rs
- Video zu komplexen Async-Typsignaturen (Pin
>) – https://youtu.be/9RsgFFp67eo - Embassy – https://embassy.dev
- STM32-Mikrocontroller – https://www.st.com/en/microcontrollers-microprocessors/stm32-32-bit-arm-cortex-mcus.html
- Papperlapapp-Folge zum Event Loop (Node vs. Browser) – https://www.youtube.com/watch?v=BmBY9zMYiHo
- fastfetch – https://github.com/fastfetch-cli/fastfetch
- neofetch (discontinued) – https://github.com/dylanaraps/neofetch
- Ratatui – https://ratatui.rs
- nom – https://github.com/rust-bakery/nom
- colored – https://crates.io/crates/colored
- Benes Tools: nixpkgs-PR-Tool & ClipMD – https://codeberg.org/britter/nixpkgs-pr bzw. https://codeberg.org/britter/clipmd
Rust lernen
- NotebookLM – https://notebooklm.google.com
- Let's Get Rusty (YouTube) – https://www.youtube.com/@letsgetrusty
- Rustlings – https://github.com/rust-lang/rustlings
- The Rust Programming Language (Rust Book) – https://doc.rust-lang.org/book/
- egghead.io – Rust-Kurs – https://egghead.io/courses/write-your-first-program-with-the-rust-language
- LinkedIn Learning – Rust-Kurs – https://www.linkedin.com/learning/rust-essential-training
Biere
- Holger trinkt ein Anderson's – „Westworld“, Double Dry Hopped West Coast IPA aus Tartu, Estland
- Bene trinkt ein Evil Twin Brewing (NYC) – Luxurious Luxury Volume 16, Sour Ale mit Passionsfrucht, Banane, Ananas, Marshmallow, Salz und 24k-Goldflocken
Transkript anzeigen
00:00:16: Wir haben eine Lebzeit drauf gewartet.
00:00:19: Heute ist es soweit an der Neufolge AutosTV mit mir in diesem epochalen Ereignis.
00:00:26: Benedikt Dritter, Hallo Benedikt!
00:00:28: Hallo Holger, schön dass wir uns mal wieder zusammengefunden haben.
00:00:33: Ja, wir haben uns gefunden irgendwie in den wilden Weiten des Internets.
00:00:39: Ich habe erst gedacht unser zwei-wöchiger Schlagzahlrhythmus bricht jetzt komplett ein Aber wir haben nochmal die Kurve gekriegt.
00:00:47: Ja, du hast ja irgendwie die Themenauswahl diese Woche übernommen?
00:00:51: Ich war ja ein bisschen lang unter.
00:00:53: Ich hatte ja andere Themen kurz.
00:00:57: Eine Onboarding-Woche, die mir dazwischen kamen.
00:01:01: Vielleicht hören wir da gleich noch was von aber... Du kannst jetzt natürlich nicht einfach mit irgendeiner onboarding-Woche hier rein
00:01:07: starten.
00:01:07: Was kommt zuerst?
00:01:11: Du fängst noch direkt an mit einem Nürrer, weiß nur nicht.
00:01:14: Und du hast was im Rumlamintieren, das wir zu wenig häufig aufnehmen.
00:01:18: und anstatt dass du es einfach mal genießt, dass wir gestern in der Folge veröffentlicht haben.
00:01:23: Ich habe die noch nicht gehört?
00:01:24: Hast du die schon gehört, die Folge?
00:01:26: Wie ich hab's produziert also von... Also ja, ich habe sie soweit gehört.
00:01:33: Ich hab mir gefallen.
00:01:35: Manöverkritik hat mir dann auch besser gefallen als die Folge nach vorn.
00:01:38: Die fand ich ja nicht so gut!
00:01:39: Da waren wir zu... Weiß nicht.
00:01:43: Wir waren beide angespannt, glaube ich!
00:01:45: Ja das kann sein.
00:01:46: Ich erinnere mich da ein bisschen noch müde war.
00:01:49: Und
00:01:50: wie ist dir denn heute, Olga?
00:01:51: Ich bin topfit muss ich sagen und mir geht es gut.
00:01:54: Ich habe gerade schön lecker Bier getrunken, ich habe gerade lecker gekocht.
00:01:57: Ich hab jetzt gleich auch noch schönes Bier da und wir haben ein knaller Thema.
00:02:03: du wirst mir gleich Themen erklären.
00:02:04: also ich lehne mich hier zurück und lasse mir Sachen erklären.
00:02:08: Das wird ein Fest.
00:02:11: Also mir geht's gut.
00:02:12: Aber wie geht es dir denn?
00:02:14: Mir gehts auch soweit eigentlich ganz gut, muss ich sagen also... aber ich hab da jetzt keinen spezifischen Grund für, mir geht das einfach so ganz... Ich hätte mir in Vorgriff auf einen gleich vorgängigen Chapter, ich hätte mir fast ein Computerspiel gekauft, aber nur fast!
00:02:31: Dann war ich mir unsicher und habe es dann doch nicht gemacht, aber kann ja gleich noch was von erzählen.
00:02:34: Okay,
00:02:34: sei gut.
00:02:35: Das ist okay.
00:02:37: Uns geht's einfach jetzt so, das finde ich jetzt ein bisschen ... Also da fehlt vielleicht, ist das eine und kann nicht so viel Drama-Folge dann.
00:02:45: Und es geht's beiden gut?
00:02:46: Ja ich meine im Grunde bin ich natürlich sehr deprimiert und so keine Ahnung.
00:02:53: Stade
00:02:53: of Things.
00:02:53: aber im Kleinen, wenn ich hier so vor meiner eigene Haustür gucke, dann ist das schon ganz okay alles.
00:03:02: Wenn man in die Welchen ausguckt sieht man sehr viele Katastrophe und sehr viele kaputte Menschen.
00:03:08: Und da ist es auch schön, dass ich heute Abend mal keinen kaputten Menschen mir gegenübersehe.
00:03:13: Das ist ja Healing!
00:03:18: So sieht das aus... Das ist jetzt hier sehr schnell und unser Intro ist fertig.
00:03:26: Du bist ganz verwirrt ne?
00:03:27: Dass wir erst drei Minuten drin sind und jetzt gleich schon immer Computerspieler
00:03:32: reden.
00:03:33: Ich muss gerade in der Tat überlegen was ist denn das nächste Kapitel?
00:03:39: Haben wir ja vorher noch so ein bisschen?
00:03:40: was haben wir denn so gemacht?
00:03:42: Komm, dann erzähl doch mal über deine unbordigen Woche.
00:03:45: Nee das erzählen sie so wie ich gar nicht.
00:03:46: Wir erzählen jetzt mal Fußball befrasten wie das Wochenende.
00:03:50: Wir könnten ja darüber reden.
00:03:51: du hast am Wochenende gingst du mir richtig auf den Sack muss ich sagen.
00:03:55: Hast du eigentlich keinen feinen Gefühl mit deinem Schalkeposting da?
00:04:01: Achso!
00:04:02: Ich hatte gerade vier zu drei gegen Elversberg verloren, die ganzen Vereinsen.
00:04:07: Und das war Fußball!
00:04:11: Ich fand Fußball auch gut.
00:04:14: Es hat mir Spaß gemacht, muss ich sagen.
00:04:16: Ich ging da hin und habe eigentlich so gedacht... Also am Wochenende für alle, die es nicht wissen hat, Schalke gegen Bayern München gespielt.
00:04:22: Schalkes ist ja gerade aufgestiegen.
00:04:25: Im Gegensatz zu Mönchengladbach, die ja nicht aufgestiegen sind.
00:04:27: Sondern die eigentlich ja etabliert in der ersten Liga sind hat Schalke als Aufsteiger gegen Bayern München gespielt den Rekordmeistern, die eigentlich jede Mannschaft vom Platz pflegen und hat da in einem doch sehr intensiven Verteidigungskampf einen Punkt mitgenommen nach Hause das somit eigentlich niemand gerechnet habe.
00:04:44: ich hatte eigentlich gedacht erste Halbzeit sechs Null und dann gehe ich auch nach Hausen guckt dem Rest gar nicht an.
00:04:50: Parallel habe ich dann aber mitbekommen.
00:04:51: Aber du bist doch gar kein Schalke-Fan, wie guckt das denn?
00:04:53: Ich gucke mir
00:04:54: gar keinen Fußball an!
00:04:55: Das war trotzdem mal Spaß gemacht.
00:04:57: Also da zu sitzen, das zu gucken war schon so ein bisschen wie Weltmeisterschaftsfinale muss ich sagen.
00:05:01: Das
00:05:01: kann man mir vorstellen ja.
00:05:04: Parallell dazu muss man natürlich wissen dass andere Mannschaften die in der ersten Liga sehr etabliert sind wie Mönchengladbach gegen Aufsteigerspiel und dann auch noch verlieren und einfach mal vier Boden kriegen.
00:05:15: Da muss man sich natürlich schon ein bisschen fragen... wie das so in der Saison weiterlaufen wird.
00:05:19: Du, also der Glatbacher Fan-Block ist sich relativ einig, dass das Realtiefzüge in die zweite Liga geht?
00:05:26: Wenn man drei Eins gegen Elversberg führt... Drei Eins!
00:05:30: Und dann sich noch drei Dinge einfach verteidigen.
00:05:34: Die Grundtugen sind einfach nicht da.
00:05:36: Man muss jetzt dazu sagen, dass Elversberg auch am ersten Spiel des Leverkusen weggehauen hat.
00:05:42: Muss man jetzt auch sagen.
00:05:43: Also von daher, die haben gerade... Ja
00:05:44: ich glaube auf die Aufsteiger da muss man sich ein bisschen auf was gefasst haben.
00:05:47: Es
00:05:47: gibt ja auch keine Kleine mehr!
00:05:50: Ja weil zum Beispiel Schalke hat ja einen Weltklasse Torwart muss man sagen ne?
00:05:54: Den Manuel Neuer, oder?
00:05:55: Nee,
00:05:56: den Bayerant-Beinuel Neuer.
00:05:58: Ja aber der war doch früher bei Schalcke.
00:06:00: Was ist denn los mit
00:06:00: dir?!
00:06:01: Ach so, ja nie.
00:06:02: Ich meine den Jester Karius oder
00:06:03: was?
00:06:03: Der Loris Karius, der
00:06:05: war ja mal bei Arsenal,
00:06:07: ne?
00:06:08: Der war bei Liverpool, glaub ich.
00:06:10: Bei Liverpool?
00:06:11: Der war auf jeden Fall, hat er ja im Champions League Finale einmal gepatzt und danach war so okay.
00:06:18: Nein, sagen wir mal
00:06:19: zweimal.
00:06:19: Ja gut aber trotzdem ein bisschen Weltklasse Torwart wenn du in der Champions League mitspielst.
00:06:22: Und jetzt spielt er halt bei Schalke!
00:06:25: Das richtig hab
00:06:26: ich.
00:06:26: Insofern?
00:06:27: Nee da habe ich das gute Spiel gemacht.
00:06:28: Egal Fußball ok gut.
00:06:30: Halt mir das ab.
00:06:31: Das Fußball kapitel.
00:06:32: Das ist schön.
00:06:33: Fußball gibt's auch und ich mag ja Fußball Apropos, das muss ich apropos Fußball.
00:06:39: Ich war ja letztens in Island und da kommen wir gleich noch mal im Bierkapitel zu.
00:06:42: Ich fahre hier Urlaub Island.
00:06:43: Möchte ihr keine Urlaubsgeschichte sehen?
00:06:44: Wir
00:06:45: haben ja früher mal richtige Urlaubsberichtssonderfolgen gemacht.
00:06:49: Das müssen wir vielleicht auch mal wieder machen.
00:06:51: Ich glaube die Leute möchten gerne hören was du in Island so erlebt hast.
00:06:54: Ja, Island war geil kann man sagen.
00:06:55: Also wenn man irgendwie alle skandinavischen Länder schon gesehen hat dann sollte man sich Island angucken.
00:07:01: Ist klassisch negativ.
00:07:04: Nee, also es ist halt ein skandinavisches Landpunkt.
00:07:08: Man sollte das nicht meinen aber es ist sehr skandinawisch und es ist geil.
00:07:13: Und mich so voll
00:07:14: wie... Das ist immer zu bevorzogen finde ich wenn Orte nicht so voll sind?
00:07:18: Ich mag keine volle Orte irgendwie.
00:07:20: Ja, das stimmt ja.
00:07:22: Ne, er hat mir sehr gefallen und ich habe mir da einen Trikot der isstnischen Nationalmannschaft gekauft.
00:07:29: Ja!
00:07:29: Das ist gut.
00:07:31: Habe ich keinen Eine weitere Meinung zu werden, ich gesagt.
00:07:36: Also okay na gut, ne das ist auch gut.
00:07:40: Naja, naja... Ich habe in der letzten Folge die du nur nicht gehört hast aber wo du Teil der Folge warst hab' ich Buchkapitel.
00:07:51: Ich habe mittlerweile das Handbuch für den vorsichtigen Reisenden durch das Ötland
00:07:58: durchgewiesen
00:07:59: und bin damit durch.
00:08:01: Und kann das in zu drei Vitteln empfehlen?
00:08:06: Das Ende ist mir zu wild.
00:08:10: Das verstehe ich nicht, aber...
00:08:12: Das möchtest du ja jetzt wahrscheinlich auch nicht spoilern,
00:08:13: ne?
00:08:14: Nein, nein, nein!
00:08:17: Die Prämisse ändert sich im Buch und es wird schon noch ein bisschen fantastischer im Laufe des Buches.
00:08:21: Es wird auch ein bisschen dramatischer.
00:08:23: Das Ende ist mir dann zu wild, muss ich sagen.
00:08:26: Aber trotzdem... Also es ist ein ungewöhnliches Buch für mich und ich find's lesenswert trotzdem.
00:08:33: Okay cool!
00:08:36: Ich bin immer noch bei Revelation Space, wo du ja letzte Mal erstmal den Namen korrigieren musstest weil ich den selber gar nicht mehr richtig wusste Und ich muss sagen.. komplett alles vergessen, was in dem Buch passiert.
00:08:51: Ich merke, ich lese das und denk mir so krass, was dir
00:08:53: abgeht.".
00:08:55: Und ich muss auch sagen es ist nicht mehr so hart Sci-Fi wie ich sie in Erinnerung habe.
00:09:00: Aber ist denn geil?
00:09:01: Also ist dann richtig geil geil oder...
00:09:04: Ich hab mich mit meinem Kumpel Marc darüber unterhalten der meinte er hat's angefangen zu jesisch ja so langweilig dass er es weggelegt hat.
00:09:10: Nein!
00:09:13: Ja also ich hatte ja Naja, ich glaube das habe ich letztmal auch schon erzählt mit André Kordakal und so.
00:09:18: Und dass ich jetzt mal wieder was neues wollte.
00:09:21: Ich mag einfach irgendwie die Atmosphäre von den Büchern von Alistair Reynolds muss ich sagen.
00:09:25: Das ist alles so ein bisschen irgendwie ... Weiß nicht, ich kann es nicht so richtig greifen aber irgendwie mag ich wie der halt über so Zukunftszenarien schreibt irgendwie.
00:09:37: Es ist halt oft so'n bisschen... Ich glaube, im Computerspiel würde man Environmental Storytelling sagen.
00:09:43: Der macht nicht so Exposition Dumps und sagt okay, so funktioniert die Welt!
00:09:46: Hier seit tausend Jahren fahren vielen Menschen mit Flugzeugen und Raumschiffen und bla... Und so funktionieren die Motoren und deshalb haben wir das und so ist die ganze Gesellschaft aufgebaut.
00:09:56: Sondern es wird halt alles so nebenbei irgendwie erzählt.
00:09:59: Das mag ich irgendwie ganz gerne.
00:10:01: Es ist dann natürlich manchmal auch ein bisschen dass man so bisschen orientierungslos ist und sie denkt so was geht ab?
00:10:06: Dadurch entsteht auch so ein gewisses Mysterium Teilweise.
00:10:10: Also im Zentrum von Revelation Space steht ein sehr großes Raumschiff, ein so einerter Lighthacker also ist quasi einen Raumschiffs das mit annähernd Lichtgeschwindigkeit sich bewegen kann.
00:10:23: und in dieser Welt, das spielt ja im Jahr zwei tausend fünfhundertsechzig In der Welt sind Raumschiffe dieser Art einfach jahrhunderte alt quasi Die Raumschiffe, also das muss man sich ein bisschen vorstellen wie so Städte die einfach jahrhundertealte Geschichte haben.
00:10:44: Dass halt Menschen diese Schiffe steuern... ...die halt noch nicht da waren als die Schiffe gebaut wurden und dass alles so Orte mit ganz viel Geschichte sind weißt du?
00:10:54: Also es ist selbst nicht so wie ich weiß nicht wie ich das erklären soll aber Ich meine bei Star Trek hast Du halt die Enterprise Die wird halt gebaut dann gehen die dahin Dann fliegen sie damit Und das ist halt alles so Ein Zeitkontext quasi.
00:11:06: Aber da ist es halt so, dass dieses Schiff ist wie eine Kathedrale quasi.
00:11:10: Wo schon vor Jahrhunderten von Jahren Menschen gelebt haben und Dinge gemacht haben... ...und alles ein bisschen runtergekommen und zerfällt.
00:11:17: Das ist irgendwie ziemlich cool.
00:11:19: Ja
00:11:19: das klingt interessant.
00:11:21: Nichtsdestotrotz war Marx-Werdig, das ist ziemlich langweilig.
00:11:26: Insofern möchte ich da keine uneingeschränkte Empfehlung aussprechen.
00:11:29: Sondern nur wenn man auf sehr langsames Storytelling und Hard Science Fiction Bock hat dann sollte man sich das
00:11:34: zu
00:11:35: reden.
00:11:37: Ich habe zwei Bücher jetzt parallel mal angefangen, um zu gucken, worauf ich als nächstes Bock hab.
00:11:41: Ich hab nur so die ersten ein, zwei, drei Kapitel angeguckt.
00:11:44: Unter anderem Dungeon Caller-Corran hab' ich mir immer das...
00:11:48: Du bist einfach krass, Holger!
00:11:49: Du bist aber so krass weil du einfach zwei Büchern parallel anfängst?
00:11:52: Das wär schon wieder so brain melt irgendwie.
00:11:55: Nee,
00:11:56: ich hab mit einem Buch namens Wackelkontakt angefangen von Wolf Haas.
00:11:59: Das ist so ein rekosives Buch.
00:12:02: Das kriege ich, das finde ich von der Grundidee.
00:12:05: Ist es
00:12:06: ein rekursives Buch?
00:12:07: Ja gut, dass du fragst.
00:12:08: Also das handelt erst von irgendeinem Typen, der irgendwie bisschen wie in so Brüchern so deutsches Buch so ein bisschen kaputtes Leben hat und er liest dann einen Buch von einem Gangster oder von irgendwie so einem Heftling und da geht die Geschichte mit der Geschichte weiter Und dieser liest dann irgendwann, der Heftling liest irgendwann ein Buch von unseren kaputten Typen.
00:12:36: Dann geht die Geschichte da so vor und das ruft sich dann so gegenseitig...
00:12:40: Das hört sich aber mega interessant an!
00:12:42: Ja,
00:12:42: das ist mega interessant, aber ich fand nur irgendwie es hat mich irgendwie... Ich habe mich dabei erwischt dass ich da irgendwie ein bisschen beeingenickt bin.
00:12:49: Von daher weiß man nicht.
00:12:50: Das ist bei mir aber der Standard wenn ich lese.
00:12:52: Ich lese Bücher immer zum Einschlafen.
00:12:54: Okay ja, das is näher.
00:12:55: Da dachte ich mir was ist das?
00:12:57: Ich musste mich dazu sehr zwingen.
00:13:03: Ich finde die Prämisse mega geil, ich werde immer noch mal eine Chance geben.
00:13:07: Und dann habe ich einfach gesagt, komm du legst es jetzt mal kurz weg und guckst meinen Dungeon-Croller-Kal rein.
00:13:11: Das liegt da so!
00:13:14: Da hab' ich das erste Kapitel gelesen bis jetzt zum Dungeon geht... ...und das erste kapitel hat mich schon...ja es gließt sich schon ganz zu viel weg aber... Die Exposition fand ich jetzt schon ein bisschen wild.
00:13:25: Also das finde ich auch, man muss bei dem... also ich persönlich musste so zwanzig dreißig Seiten lesen und das wirklich so einfach akzeptieren ist wie es ist.
00:13:36: Das ist ja dieses suspension of disbelief quasi nennt man das im Film glaube ich wenn man sagt okay Ich akzeptiere einfach, dass die Welt so ist und dann machen wir weiter.
00:13:46: Und ich weiß nicht, der ist noch nicht im Dungeon drin bei dir.
00:13:50: Dann will ich da jetzt nicht Dinge vorweggreifen.
00:13:53: Aber dieser Dungeon ... Wenn Sie da reingehen bekommen sie halt Fähigkeiten, gewisse Fähigkeit wo man auch sagt okay das ist echt irgendwie, ah ich weiss auch nicht!
00:14:04: Okay, ich akzeptier, dass es so ist.
00:14:06: Und wenn man einmal drinnen ist, dann entwickelt sich in dem Buch quasi so was wie ein Gameplay Loop auch.
00:14:13: Wie man das vom Spielen kennt, weil sie erleben dein Abenteuer?
00:14:17: Sie finden Lou den sie erst mal einstecken und dann hat man in dem Buch immer wieder diese Ruhe pausen wenn die in Ruhe räumen kommen und dann gucken wir halt ihren Lou an und ihre neue Fähigkeit ist es so als ob du einen Spiel spielst.
00:14:26: Du gehst halt erstmal los sammelt's, haust erstmal alles weg, sammelns alles ein und wenn du deine Base bist, dann guckst du dir alles an.
00:14:32: Das macht uns schon irgendwie Bock muss ich sagen.
00:14:34: Ja
00:14:34: also ich fand das ganz am Anfang halt, dass passiert relativ schnell Das ist irgendwas völlig Absurdes und okay.
00:14:45: Und halt so ein bisschen wie bei hier Anhalter durch die Galaxis, so ein bißchen.
00:14:54: aber ja egal also das ist... Also da bis zur nächsten Folge werde ich irgendwas davon weiter genießen haben.
00:15:05: Ja cool!
00:15:09: Da freuen wir uns auf den Bericht.
00:15:12: Dafür habe ich gar nicht so viel gespielt.
00:15:15: Irgendwie kannte ich mich da gerade gar nicht richtig, Game in Capital so richtig rein... Also ich hab Memories and Orbits, hab' ich noch mal mehr angeholt und was ist mir dann noch?
00:15:26: Ach, das ist mir grad alles schwierig!
00:15:27: Das ist mir alles zu hart.
00:15:30: Faktorio, das Faktoriodemo auf der Switch habe ich jetzt mal ausprobiert.
00:15:35: Factorio, ach krass!
00:15:36: Ja es gab's irgendwie, ich hatte mir irgendwann mal das Faktoriodemo runtergeladen gefiel mir auch nicht.
00:15:42: Ja, also
00:15:43: Faktorio ist halt irgendwie... Also mi hat's halt Bock gemacht bis ich das erst... Das haben wir ja schon mal an euch drüber gesprochen als ich damals gespielt hab.
00:15:50: Für alle die wissen, Faktore is ein Automatisierungsspiel.
00:15:53: Das heißt man baut gigantische Fabriken mit Förderbändern und Automatisierungsplattformen und automatisiert quasi industrielle Produktionsabläufe.
00:16:05: Das heißt am Anfang hat man eine Spitzacke und klopft irgendwie Kohle, Ärzte und so.
00:16:10: Und irgendwann hat man dann automatisch Abbauroboter... ...und dann hat man Conveyor-Bells also Fließbänder die das dann wieder in eine Schmelze befördern.
00:16:19: Dann hat man daraus Metalle und aus denen kann man wieder andere Sachen bauen.
00:16:23: Also es ist ein bisschen wie so einen Anno Nur dass die Produktionsketten aus den Dingen entstehen halt viel länger sind.
00:16:31: Das heißt man hat dann irgendwie keine Ahnung, vier fünf sechs sieben acht neun Schritte wo man immer Dinge weiter verfeinert bis man dann halt die entsprechenden Rohstoffe hat und die Fabriken die man baut werden halt relativ groß auch.
00:16:46: Und ich habe so lange Bock gehabt ...bis dann irgendwie der Platz nicht ausgereicht hat und ich das alles hätte sozusagen refactornen müssen.
00:16:52: Ich hatte die ganze Fabrik abreißend noch mal nur aufbauen müssen, da dachte ich so, oh nee, hab jetzt eben keinen Bock, dass mir echt zu viel Arbeit!
00:16:59: Ja aber so eine Session rein spielen hat Spaß gemacht.
00:17:04: Ja, ich hätte mich beinahe, weil es gerade im Sale ist finally Warhammer Boltgun gekauft... ...weil ich schon irgendwie übelst Bock mal wieder auf einen richtig plumpen Shooter habe.
00:17:14: Jetzt hol die das endlich.
00:17:15: Du bist seit Jahren in der Tat dabei, dieses Spiel zu holen?
00:17:18: Ja aber das kostet immer noch sieben Euro fünfzig.
00:17:21: und dann weiß ich nicht, hole ich es mir auf dem Rechner.
00:17:24: Das würde auf meinem Framework wahrscheinlich laufen weil das ja eine relativ pixelige Retro-Optik hat oder hole ich's mehr auf der Switch?
00:17:30: Aber auf einem Controller spiele ich eigentlich so gerne First Person Shooter Games.
00:17:36: Deshalb... Überlege ich dann immer relativ lange und denke mal, ach ich mach lieber was anderes wie zum Beispiel RUST programmieren.
00:17:42: Vielleicht reden wir da noch darüber.
00:17:44: Ich hab jetzt so ein Linux PC rumstehend der jetzt gerade aus ist.
00:17:49: Da habe ich Steam drauf und da hab' ich mir das Worldweller Demo angeguckt.
00:17:55: Worldwella isst das neue Spiel von Kyle Simpson hier die ja auch Cryptcustodian und Eilitzen so gemacht hat Und das hat mich schon wieder sehr gut gefallen.
00:18:04: Da freut mich noch, dass es endlich bald auch für den Switch rauskommt.
00:18:09: Grad war ja Nintendo Direct hier Zelda Direct und da habe ich nur gesehen, dass Ocarina of Time jetzt misken leer angekündigt wurde.
00:18:18: Hast du das mal gespielt?
00:18:21: Ich hab das selber nicht gespielt aber ein Freund von mir hatte damals einen NIVIN-Sächsich und da hab' ich dann oft dabei zugeguckt wie Sie was anderes gespielt haben.
00:18:28: Das soll ja irgendwie laut Game Two Menschen das beste... Selda sein.
00:18:33: Ja, es ist halt ein klassisches Zelda und halt eins wird abgefeiert überall.
00:18:39: Das ist eines der besten.
00:18:41: Es hat keine nervige Abnutzungsmechanik.
00:18:49: Also wenn's irgendwie kommt dann würde ich mir wahrscheinlich noch mal holen.
00:18:53: Die Preise jetzt also Elden Ring ist gerade rausgekommen.
00:18:57: Ich weiß das wird zu hart sein aber ich will Elden ring gespielt haben weil... Kulturell kulturgut das kostet aber fucking achtzig Euro auf der Spotsch.
00:19:07: Das ist mal das.
00:19:08: sorry.
00:19:09: also ich hab noch nie so viel für ein spiel ausgegeben
00:19:11: und werde auch nicht machen
00:19:13: weise
00:19:13: pro viel für den spiel ausgeben.
00:19:15: was es mit dem gta sechs showcase holt sie in a playstation six fünf meine ich.
00:19:21: Ich muss sagen, ich find's schon extrem geil.
00:19:25: Nein, finde ich geil, wenn ich jetzt ganz ehrlich bin... ...ich hab GTA V ja noch nicht mal durchgespielt!
00:19:29: Also
00:19:29: ich habe GTA V richtig gerne gespielt und auch durchgespielen.
00:19:32: Aber ich spiele es dann durch und dann hab' ich auch genug davon?
00:19:34: Also ich mach da nicht dahin.
00:19:35: Ich bin so ein Storyplayer, ich spiel die Geschichte durch.. ..und dann hab', ich auch keinen Bock mehr.
00:19:41: Aber wie geil das einfach aussieht, finde ik.
00:19:43: Da gibt´s ja eine Verfolgungsjagd wo ihr aus dem Auto vor die Zeiauto schießt und da fliegen einfach überall Teile weg, dann überschlägt er sich.
00:19:54: Und diese ganzen Partikel, die da überall unterwegs sind ... Ich glaub ich hab noch nie so einen geilen Autocrash in einem Spiel gesehen und dachte mir, das ist ja einfach absurd wie geil das alles aussieht!
00:20:03: Ja ne stimmt schon, nee aber ich habe ... Playsie-Fünf ist auch absolut teurer.
00:20:08: Ich ärgere mich dass ich den nicht damals geholt hab als rausgekommen ist.
00:20:11: Also die damals für ein Apple und ein Ei für vierhundert Euro gekauft haben?
00:20:14: Genau, die kostet jetzt irgendwie sechstwunderte oder so was.
00:20:17: Ja ich glaube
00:20:17: da würde ich ehrlich gesagt... Du wohnst ja sogar in Düsseldorf, da würde dich einfach eine gebrauchte bei ebay kaufen weil dann kannst du ja dann sogar hinfahren und gucken das dir funktioniert?
00:20:25: Ich
00:20:26: guck mal, also das ist aber... Ja GTA hab mich noch nicht... Ja geil!
00:20:32: Ich bin ein bisschen gehypt, ich freue mich auf die Reviews, aber ich selber spielen... Nee.. Also das... Nee... Ich glaube nicht.
00:20:44: Ich weiß noch nicht, ich habe ja eigentlich keine Zeit und eine Playstation-Sex extra dafür zu kaufen ist halt irgendwie krass.
00:20:51: Ich meine, eine Playstation six zu haben würde halt wieder so ein bisschen.
00:20:56: was für einen Playstation... Sorry!
00:20:59: Wobei angeblich die ja schon auch in Armacher ist, die Playstation-Sechs.
00:21:03: Ja
00:21:03: aber klar, die soll's geben weil ich glaub' ich hab fast preistecktausendrohneinhalb Euro oder sowas.
00:21:07: also das
00:21:07: ist lässig.
00:21:09: Naja, PlayStation fünf würde natürlich irgendwie meinen Spielehorizont noch mal öffnen.
00:21:13: Das heißt ich könnte theoretisch noch mehr Spiele spielen die ich dann eh nicht spielen würde weil ich ja dann mir keine Spiele kaufen keine Zeit habe.
00:21:20: Parallel bin ich in ein anderes Rabbit Hole gefallen.
00:21:24: Wir haben ja noch ein bisschen Zeit oder?
00:21:25: Klar wir haben jetzt zwanzig Minuten.
00:21:28: Ich
00:21:28: hab den CT-Dreitausend drei Video über lokale KI geguckt.
00:21:35: Wir haben ja schon miteinander gesprochen, dass CT-Dreitausendrei eigentlich gar nicht mal so schlecht ist dafür.
00:21:39: Das ist von CT's weil CT war ja früher mal das man so dachte okay... ...das Wald und Wiesenatmen heft aber...
00:21:46: Ich würde sogar sowas... Also das klingt mir fast zu negativ.
00:21:49: also ich habe diesen Podcast, den YouTube Kanal, den gucke ich immer ganz gerne Aber es ist nie so in meiner Heavy Rotation.
00:21:55: aber letztens gab´s eine Folge wo ich gesagt hab meine Fresse ihr seid fantastisch.
00:21:59: Okay Ja Jedenfalls haben die einen Video gemacht zu lokaler k.i und das hat für mich dieses ganze thema auch mal so ein bisschen entschlüsselt quasi weil ich darauf eingegangen sind welche hardware brauche ich um welches modell laufen zu lassen und wie viel taugt das dann?
00:22:16: Und da kamen so ein bischen raus.
00:22:17: wenn man sich jetzt so eine gforce... ...RTX-Dreißigneunzig holt, dass ist so das ein relativ altes model was aber vierundzwanzigerweit VRAM hat Da passt ein hoch quantisiertes quennen drei Punkt acht Modell halt schon rein.
00:22:36: Und damit kann man anscheinend, da kommt man ans Scheinend schon relativ weit mit.
00:22:41: Das fand ich dann doch irgendwie spannend muss ich gestehen.
00:22:45: Okay
00:22:48: aber er sagt halt auch dass also jetzt ich muss mal ein bisschen Schritt zurücktreten.
00:22:53: Ich denke natürlich die ganze Zeit über nach so KI benutzen und wieder Privacy und dann haben die meine Daten keine Ahnung und dies ist das.
00:23:02: Es wäre cool, wenn ich das selber hosten würde.
00:23:04: Ich könnte mir eine Grafikkarte für viertausend Euro kaufen und dann müsste ich keine zehn Euro Subscription bezahlen.
00:23:13: Der Clou ist die Modelle, die sehr groß sind und viele Parameter haben.
00:23:18: Die haben einfach sehr viel ... Wie soll ich sagen?
00:23:23: Also sehr viel Wissen in dem Modell quasi drin.
00:23:26: Deshalb sind sie halt so groß.
00:23:28: Und da ist so die These... Okay, wenn man ein kleineres Modell hat was halt nicht aus seinem Wissen heraus so viele Antworten richtig erzeugen kann.
00:23:38: Und dem Modell dann quasi sagt such nach der richtigen Antwort für mich.
00:23:42: also wenn jetzt mal irgendwie also fürs Coding reicht es ja dass das Modell einfach den Code sieht der da ist die Doku von Dingen sieht und dann einfach daraus ableiten kann was es schreiben muss.
00:23:54: Es ist vielleicht nicht so gut geeignet, um jetzt ein Essay über die Deutsch-Bundeskanzler zu verfassen.
00:23:59: Weil es dann einfach sehr viel Quatsch auch schreibt.
00:24:02: Ja,
00:24:02: das stimmt.
00:24:03: Das ist der Take
00:24:04: irgendwie!
00:24:05: Aber ja... Ist das denn?
00:24:07: Keine Ahnung, kann man das denn schon so?
00:24:12: wir derailen glaube ich so bisschen?
00:24:14: Kann man denn die Modelle den schon so...?
00:24:18: Kann man den Teil denn aus dem Modell rausschälen?
00:24:24: Also genau den Teil, der nur fürs Coding gut ist.
00:24:27: Ja
00:24:27: also dieses Gwenn drei acht das ist glaube ich in seiner Basis wäre so ein sechsundfünfzig Gigabyte groß.
00:24:34: und wenn du das halt quantisiert hast dann passt das irgendwie zwei zwanzig oder so und dann passt es halt genau in den Grafikarten.
00:24:41: speichern hat noch ein bisschen Platz für irgendwie so und so viele tausend Token.
00:24:45: Kontext quasi Wenn Du halt ein großes Modell haben willst was so ein bisschen er GPT-mäßig funktioniert dann gibt's ja jetzt dieses GLM Fünf Punkt zwei, glaub ich.
00:24:55: Nee, fünf Punkt drei, Flash!
00:24:57: Das sind auch andere Umweltenmodelle aus China?
00:24:59: Also generell die sind alle aus China.
00:25:01: Nee klar.
00:25:01: Umwelton-Modelle...
00:25:03: Und das ist ... das wiegt dann aber direkt irgendwie mehrere hundert Gigabyte.
00:25:07: also da bist du dann halt wieder so eher im Datacenter Grafikkartenbereich unterwegs.
00:25:12: Also das machst du zuhause nicht.
00:25:14: Egal, du hast recht, wird die railen.
00:25:16: Ich hatte das ja auch als Folgenvorschlag gemacht.
00:25:18: Da würde ich gerne mal drüber sprechen.
00:25:20: Wir wollen eigentlich nicht mehr so viel bei KI machen.
00:25:22: Aber dieses ganze Thema KI-Selberhosten, was gibt es eigentlich für Modelle?
00:25:26: Was gibt es für Harnesses und so weiter.
00:25:28: Es gibt halt nicht nur Claude Cote, es gibt auch noch andere Sachen.
00:25:31: Das macht sich, glaube ich, Sinn als Entwickler mit auszukennen, was ist da so oder im Winkelsten irgendwie ... Und
00:25:37: das weiß doch jeder!
00:25:38: Ja,
00:25:39: hast du recht?
00:25:42: Wir leben hinterm Stein unter
00:25:45: dem Stein?
00:25:47: Und unter dem Mond.
00:25:48: Hinterm Stein kriege ich jetzt langsam so ein bisschen Durst, aber nicht bevor wir die Neo Wim Motion der Woche besprechen.
00:25:54: was hast du vorbereitet?
00:25:56: Ja.
00:26:00: Ich habe mir gerade spontan das überlegt und zwar möchte ich erklären wie man wenn man einen Split hat den Split rotieren und tauschen kann.
00:26:10: Das ist nämlich manchmal wichtig.
00:26:12: Wenn du jetzt zum Beispiel einen einen V-Split gemacht hast, dann hast du vertikal deinen Screen geteilt.
00:26:20: Und jetzt möchtest du vielleicht das was auf der rechten Seite ist auf die linke Seite haben.
00:26:25: Dann drückst du Ctrl W, dann kommst du mich in den Window Mode und dann drück's du Shift H oder L je nachdem in welche Richtung du das bewegen möchtes und dann wandert der Split halt in die Richtung.
00:26:36: Mit Ctrl W und R rotatet man!
00:26:39: Das ist auch praktisch wenn man mehrere Splits hat zum Beispiel wenn man vier Splits Kreis drehen, dann kann man einfach Ctrl-W und R drücken.
00:26:47: Nicht schlecht!
00:26:49: Das ist so mein Neowimtipp der Woche?
00:26:51: Nicht schlecht, das ist nicht schlecht.
00:26:53: Nützlich oder?
00:26:55: Nützlich auf jeden Fall, ja gut.
00:26:58: Du dachtest schon geil.
00:26:59: jetzt gibt es Bier.
00:26:59: ne und dann habe ich dich nochmal mit dem Neowimm Thema hier richtig weit erwischt.
00:27:03: Da hast du mich echt kalt erwisht also Bierkapitel... Ich war in Estland, ich hab Bias Isla mitgebracht aber nicht das was du jetzt erwartest.
00:27:13: Mhm.
00:27:15: Aber das Bier von da habe ich, hab auch Dabiota getrunken... ...aber ich habe ein Bier von Anderson's Westworld.
00:27:22: Ah ja?
00:27:22: Kannte sich noch nicht!
00:27:23: Gab es da auch im Supermarkt.
00:27:25: also die auch Bioswahl war aber nicht so krass wie in Holland.
00:27:27: Mhm.
00:27:28: Arbeit trotzdem ganz gut und das ist jetzt ein Bier aus Tatoo glaube ich.
00:27:34: War ich nicht.
00:27:35: Fand ich spannend wollte ich mitnehmen.
00:27:37: Habe ich mir nur gekauft um das hier in der Folge zu trinken und das werde ich
00:27:39: jetzt tun.
00:27:40: Ja nice!
00:27:40: Das ist ein Double Dryer West Coast IPA.
00:27:44: Das klingt gut.
00:27:46: Ich hab was Ungewöhnliches für meine Verhältnisse, ich habe hier heute ein Evil Twin Brewing New York
00:27:54: City.
00:27:56: Und das Bier heißt Luxurious Luxury Volume Sixteen und es ist ein Sour Ale Brut with Passion Fruit Banana Pineapple Marshmallow and Salt.
00:28:11: End-twenty four K Goldflakes, okay.
00:28:15: Was?
00:28:16: Okay!
00:28:17: Das war relativ teuer, das habe ich mir bei Beyond Beer bestellt und du bist ja so ein Pastry Sour Fan.
00:28:25: Wenn da Goldflake drin sind, dann ist es so ein Bier für einen Fragerufler.
00:28:29: Also wenn
00:28:29: da jetzt wirklich Goldflak drin ist, das hab' ich gerade erst gesehen... Arih,
00:28:33: ich hab das gerade erst gesehn, dass er heute findet.
00:28:36: Wow, das war laut.
00:28:38: Gerade ist gesehen, dass da Gold drin ist.
00:28:40: Das ist... Wir gucken uns das mal an!
00:28:46: Also ich muss sagen, ich habe was anderes erwartet.
00:28:48: Warum?
00:28:51: Ja, ein bisschen mehr Hazy.
00:28:54: Aber der Schaum hat schon diese... Ich finde bei den Zauers ist der Schаum immer relativ schnell weg und der Schaugen hat halt auch die Farbe wie das Bier.
00:29:02: D.h.,
00:29:02: wenn du rotes hast, ist der schaum rot.
00:29:03: Wenn du sehr orange bist, ist er sehr orangisch.
00:29:06: Woin gegen bei einem Neipar der Schaus so aussieht wie bei dir.
00:29:10: Ja, guckt mal die Farbe an.
00:29:11: Die Farbe ist auch so dunkel als du dachtest für den Double Try.
00:29:14: Also
00:29:15: es riecht auf jeden Fall sehr fruchtig und sauer.
00:29:18: Es hat keine Goldflakes.
00:29:21: Keine Ahnung was das ist?
00:29:23: Schade!
00:29:25: Ich geh mal ein Schluck.
00:29:26: Ich lasse hier aus dem Glas.
00:29:29: Boah geil.
00:29:31: Das ist richtig geil.
00:29:34: Also wirklich fruchtshaft Das ist der Hammer.
00:29:37: Es hat sehr, sehr wenig Kohlensäure muss ich sagen.
00:29:40: Aber
00:29:41: es schmeckt richtig geil.
00:29:42: Es schmeckt so ein bisschen wie so ein fruchtiger Kaugummi irgendwie.
00:29:51: Ich kann Leute jetzt sagen wir sind kein Bier und wahrscheinlich bei dir im Pot wird's eine Aussage einfach verprügelt.
00:29:58: Dann würde gesagt werden hast du nicht einen Stau?
00:30:03: Nee also das ist hier...ich bin ein bisschen underwhelmt.
00:30:08: Ja, Punkt.
00:30:08: Das schmeckt so hart sich wie so ein... Ich vermisse die Fürst-Wertschecks Fruchtbombigkeit.
00:30:20: Das ist ein leckeres Bier aber
00:30:22: nicht mehr.
00:30:23: Nicht mehr leider, das ist okay.
00:30:28: In Ordnung!
00:30:31: Das war's dann, ne?
00:30:32: Halbe Stunde ist rum.
00:30:34: Dann komme
00:30:35: ich auch früh ins Bett heute.
00:30:37: Das kann man so machen.
00:30:40: Ja, also es gab ja auf Spotify.
00:30:43: Wir haben ja... Guckst du eigentlich mal regelmäßig oder überhaupt mal in die Kommentare bei Spotify rein?
00:30:49: Was denkst du Heuler?
00:30:50: Du kennst mich ja ganz gut mit dabei.
00:30:52: Weil was so vorgeht in meinem Leben.
00:30:54: Ja!
00:30:54: Du bist ein Spotify.
00:30:56: Zwischendurch ist bei mir einfach mal so eine Einschulung dann laufen einfach alle drei Wochen lang Amok und dann sitze ich manchmal einfach so rum und denke mir ach boah ich langweil mich gerade so sehr.
00:31:07: Ich glaub, ich lese mir mal die Autorwert-Kommentare bei Spotify durch.
00:31:11: Ja, klar!
00:31:12: Machst du das vor oder nachdem du mit ChatGbt über Lifetimes diskutierst?
00:31:17: Genau.
00:31:18: Leute ... Jetzt nehmt's mir nicht krummig.
00:31:21: Geil, wenn ihr das hört und kommentiert.
00:31:24: Egal wo ihr kommentierte, weil der Holger liest das.
00:31:27: Ich kann nur, ob meine aktuelle Lebenssituation, die manchmal etwas herausfordernd für mich ist, nicht immer alles lesen Was bei Mastodon kommt, das sehe ich meistens.
00:31:38: Du bist der Mastodormeister?
00:31:40: Ich bin
00:31:40: der MASTODON-Meister.
00:31:40: also die Dinge, die beim MASTodon kommen, die sehe ich.
00:31:42: Meistens schreibe ich auch oft zurück aus dem Doof was ihr schreibt.
00:31:45: Das schreib' ich einfach nicht zurück.
00:31:49: Spotify ist bei mir so ein bisschen so einen Schwarzerfleck da habe ich nicht... Nein!
00:31:53: Also Mastoron passiert ja... Also vielen Dank dafür Leute.
00:31:55: Weil man meistens mal ... haben wir Häufe eigentlich hier bei MASTORON passiert ja relativ viel.
00:32:01: Danke Leute.
00:32:02: Und beim Spotify gibt es so ein, zwei Leute die da schreiben.
00:32:06: Da passiert nicht so viel.
00:32:08: Aber das ist...da gibt schon bisschen was und ich habe das auch manchmal drei Monate vergessen.
00:32:13: also Leute auch dafür sorry weil ich kriege da keine Notifikation wenn bei Spotify irgendwas passiert.
00:32:18: Ja.
00:32:19: Da gucke ich jetzt auch nicht so...ich gehe natürlich immer davon aus dass niemand die Folge hört und ich schweige denn da kommentieren.
00:32:27: Wir müssen dann mal bei Prodigy Ben auf die Zahlen gucken.
00:32:31: Ja, das sind glaube ich hinter unseren grandiosen Zeiten so ein bisschen zurück.
00:32:39: Was soll ich sagen?
00:32:46: Wir haben irgendwann mal gespoilert dass wir das Thema was für heute machen wollen angehen möchten.
00:32:53: und da hat der Mensch, der gesagt hat ja ihr werdet dieses Thema machen Und dann wird das aber eine so legendäre Folge, wie die Nixweis-Folge.
00:33:05: Ah!
00:33:07: Er hatte quasi auch schon so die ... Also die Erwartungshaltung ist so dass wir jetzt so ne Zehntausend Leute folgen machen.
00:33:15: Ja.
00:33:15: So und jetzt?
00:33:16: Jetzt nicht.
00:33:17: Jetzt, jetzt zu.
00:33:18: Ja, ja.
00:33:20: Themas Rust übrigens.
00:33:22: Das Thema ist Rust.
00:33:24: Der rote Faden heißt heute der rostige Faden.
00:33:28: Ich hab da her relativ... Ich hatte mir gedacht, ich schreibe mal ein paar Punkte auf damit wir mehr als eine halbe Stunde vollkriegen.
00:33:33: Ja genau!
00:33:33: Jetzt habe ich das Gefühl, dass sind sehr viele Punkte irgendwie und ich frage mich ob wir das heute vielleicht so machen sollen, dass sich dir so ein bisschen die Moderation überlasse und du dich anhand der Punkte entlang hangelst und ich dann Dinge sage.
00:33:46: oder soll ich einfach jetzt meine Punkte vorlesen?
00:33:48: Nein kann man das gerne tun.
00:33:49: Ich weiß noch nicht, ich bin das schon komplett unvorbereitet aber das ist... ich funktioniere ganz gut.
00:33:54: unvor bereitig So Freestyle, so Thomas Gottschalk mäßig mache ich das jetzt.
00:33:57: Ich greif dich jetzt fast hier jetzt einfach ans Knie oder so.
00:34:00: Du musst dir es mal so vorstellen.
00:34:02: Also Rust... Ich habe ja auch ein bisschen mal mit Rust rumprobiert.
00:34:06: Da kann man vielleicht auch gleich noch was zu erzählen.
00:34:08: Aber du hast ja in paar Folgen auch schon erzählt, du hast eine Learning Week gemacht.
00:34:14: Du in deinem Freiberufler sein kannst, aber mal eine Learning week machen und dann hast du dir... Hast du überlegt?
00:34:23: Ich möchte Rust lernen!
00:34:25: Also wie bei du könntest, du hättest den für viertausend Euro in der Grafik gerade holen können und und quent vier sieben darauf packen können.
00:34:33: Nee!
00:34:33: Du machst Rust.
00:34:34: Wie kamst du drauf?
00:34:38: Ja ehrlich gesagt habe ich Rust.
00:34:41: Ich hab mit Rust schon in der Vergangenheit es ist jetzt sich zum zehnten Mal dass ich zuerst mal was von Rust gehört hat weil der Socratt Test bei der legendären Socrat Test two-tosendsechzehn habe ich mich mit jemanden eine kleine Hex-Session.
00:34:53: Die
00:34:53: war gerade auch wieder, oder?
00:34:54: Ja, die war auch.
00:34:57: Habe ich mit jemandem zusammen Rust gemacht und habe einfach nichts verstanden.
00:35:00: Da habe ich das relativ lange nicht mehr gesehen und nicht mehr gehört.
00:35:05: Das zieht sich so durch dein berufliches Leben durch, dass du einfach grundsätzlich nicht so stehst.
00:35:09: Genau!
00:35:10: Das zeigt dich aus.
00:35:11: Dann als ich bei Gradle arbeitete, da haben wir ja auch immer einen Learning-Tag irgendwie am Monat Und hat einer von den Kollegen versucht mit Rust ein Tui zu bauen, also so einen Terminal UI.
00:35:25: Um zu gucken wie unsere Deployments... Was ist mit unseren Deployment von der Scans.graded.com-Plattform ist?
00:35:33: Weil die war zu der Zeit noch nicht auf Kubernetes.
00:35:36: Da gab es keine Tuis für die Plattformtechnologie und da hat sich jemand selber was gebaut und hat dann Rust als Projekt benutzt.
00:35:43: Da haben wir einen Tag lang ... zu dritt gesessen und versucht, um das zu erweitern.
00:35:47: Ich hab nichts verstanden!
00:35:49: Und dann habe ich's wieder weggelegt... Aber bei mir ist es immer so, es werden dann immer so Keime gesetzt.
00:35:54: Das ist wie bei nix-nix-so-es hab' ich ja auch zum ersten Mal bei der Apeggicon, weißte nicht, im Jahr zwanzig vierzehn oder so in Miami als ich da war was von gehört.
00:36:04: Dann ist das so, das muss dann ganz lange reifen und irgendwann popt das dann auf.
00:36:09: Das wusste ich nicht echt?
00:36:10: Warst du das also...?
00:36:12: Ja.
00:36:12: Okay krass.
00:36:15: Genau.
00:36:16: und dann hatte ich mir ja schon länger überlegt, dass sich mal so ein Codecrafters I.O.
00:36:19: Kurs machen möchte weil ich das einen ziemlich coolen Ansatz finde.
00:36:23: also wir können nochmal eine Meta-Debatte darüber führen ob sich was Neues lernen, ob es überhaupt noch Sinn hat heutzutage.
00:36:29: aber ich habe erst einmal nicht etwas hat Sinn.
00:36:31: Können wir tun?
00:36:32: Da hätte ich ein paar Punkte zu oder also ein paar Pointer aber genau.
00:36:38: Genau, Codecrafters
00:36:39: I.o.,
00:36:39: die Idee da ist halt, Dinge lernt, indem man sie nachimplementiert.
00:36:44: Also es gibt zum Beispiel Implementiere ein DNS-Server und dann gehst du halt los und fängst an einen DNS Server zu programmieren mit Parsing der Messages die rein kommen und so weiter und sofort.
00:36:54: oder da gibts halt verschiedene andere auch irgendwie implementier dein eigenes Git, implementier deinen eigenes Redis.
00:36:58: Und die Idee ist Du lernst dadurch wie man halt gut also wie man programmiert und du lernest aber auch wie die Technologie die du nachimplementiers wie die halt intern funktioniert.
00:37:09: Und ich hatte mich dazu entschieden und hatte irgendwas aus irgendwelchen Gründen gesagt, ich mache das mit SICK.
00:37:14: SICK ist ja so eine andere Low Level Programmiersprache.
00:37:18: Kurz mal Hände hoch Leute.
00:37:20: wer von euch kennt SICK?
00:37:21: Alle die Ghostie benutzen sollten das kennen weil Ghostie ist nämlich in SICK geschrieben.
00:37:28: Bann war früher auch in Sieg geschrieben.
00:37:31: Bis es portiert wurde, genau.
00:37:33: Da
00:37:33: können wir vielleicht in den Show-Notes nochmal diesen legendären Entropic-Blockpost verlinken wo beschrieben wird wie sie Bann mit AI von SIG nach Rust portiert haben for the better of The Worlds.
00:37:48: Ich weiß nicht genau.
00:37:48: Also ganz genau verstanden habe ich das auch nicht warum das jetzt so passiert ist.
00:37:51: aber doch die haben ein paar Box glaube ich ist egal, keine Ahnung.
00:37:54: Das ist jetzt wirklich sidetricky Genau.
00:37:58: Also, ich hab mir deinen SIG angeguckt und hab dann aber kurz vor knapp entschieden.
00:38:02: Nee, das ist donnig!
00:38:03: Ich mach's jetzt doch in Rust.
00:38:04: Ich wollte es in SIG erst machen, weil ich dachte, ich mache so was, was nicht alle machen?
00:38:07: Weil ich hatte das Gefühl bei Rust habe ich schon wieder den Zug verpasst.
00:38:10: Ich komm immer dazu, wenn alles schon vorbei irgendwie.
00:38:14: Alles ist schon irgendwie ...
00:38:16: Das Ökosystem
00:38:16: ist schon gesettelt, die ganzen coolen Probleme sind gelöst.
00:38:19: Und zehn Jahre später komme ich da zu, hey, ich möchte auch gerne mitmachen.
00:38:25: Ja... Und da habe ich das gemacht.
00:38:28: Das hat einfach so viel Bock gemacht, das war im April... ...einfach was zu programmieren ohne irgendwie einen Druck, das fertigzukriegen, ohne ein LLM, dass einem die ganze Zeit sagt macht das so, macht das sowas, einfach alles dir hinprogrammiert?
00:38:42: Der Code ist nicht der schönste Code aber das Ding kann halt DNS-Requests verarbeiten und Antworten geben.
00:38:47: Also hab' ich den DNS-Server programmiert.
00:38:50: Und das hat halt eben Bock gemacht!
00:38:53: Es ist halt in Rust.
00:38:55: Ja ich kann also ich hab das.
00:38:56: ja, wir haben irgendwas.
00:38:58: Also ich habe auf jeden Fall in so einem anderen Podcast den ich mal gemacht habe hier der Jobart-Podcast.
00:39:06: da hatte ich in einer letzten Folge und habe mich mit dem Urstar darüber diskutiert.
00:39:08: Da habe ich über Quapstat was erzählt.
00:39:11: Ja?
00:39:11: Also eine Tweet die mir Systeminformationen ausgibt für Motivation für mich das zu tun war.
00:39:21: Ich wollte auch, ich wollte in der Blazing Fast Tree bauen und wollte wissen wie das funktioniert.
00:39:26: Man hat das damals mit Cloud gemacht aber es hat mega Bock gemacht.
00:39:30: Also warum mich das tun würde um ein Meter Diskussion vielleicht kurz aufzugreifen?
00:39:35: Es macht mir einfach Spaß!
00:39:37: Es macht Spaß mich mit einem neuen Spielzeug zu befassen und der Urs war da an der Stelle so ein bisschen... Negative würde ich nicht nennen.
00:39:46: Ja, aber er hat für sich den Effekt nicht so gesehen.
00:39:50: Also es sind den direkten Effekt dass er das direkt anwenden kann.
00:39:53: Das ist fair.
00:39:55: Ich finde mich denke... Es macht mir Spaß.
00:39:59: und ja, ich weiß, ich kann da jetzt sofort nichts mit anfangen.
00:40:03: Und vielleicht nie!
00:40:05: Aber die Wahrscheinlichkeit ist doch da weil ich das jetzt schon bei einigen Sachen festgestellt habe.
00:40:11: wenn du mit so einem ich hab Bock drauf so was zu lernen dran gehst, geht man da viel kreativer ... dran.
00:40:23: Stimmt!
00:40:23: Und das zahlen die Leute irgendwann Geld für.
00:40:28: Man hat ja dann auch ein Hammer und dann ist ja auch eigentlich jedes Problem mit einem automatischen Nagel oder?
00:40:32: Nein, das
00:40:33: nicht aber keine Ahnung, das weiß ich jetzt nicht.
00:40:37: Also
00:40:39: vielleicht mal für mich... Ich habe halt festgestellt am meisten lerne ich wenn ich Etwas mache, was ich selbst benutze quasi.
00:40:49: Ganz früher habe ich halt Apache Commons mitentwickelt weil ich Apache Commons auf der Arbeit als Library benutzt hab.
00:40:53: da habe ich mega viel darüber gelernt wie man Java programmiert und dann habe ich irgendwann mit nix angefangen und nix so erst.
00:41:00: Und weil ich es selber benutzt habe auf meinem Computer, hab' ich dann nix gelernt.
00:41:03: Weil ich's halt immer benutzt hatte.
00:41:04: und dann war das halt mit dem Rust-Programmien so dass ich dachte, ich würd irgendwie gerne auch mal so ein cooles CLI programmieren können wo so in Bund, so Emojis da drin sind oder so wie man das halt von den ganzen coolen JS Tools kennt ihr das ja schon seit Jahr und Tag irgendwie machen und da sehr viel auf diese Experience setzen... ...und ich wollte halt irgendwie so, dass das halt so ein natives CLI ist, weil du kannst sowas heutzutage auch mit Java machen Du kannst es auch mit GraVM irgendwie in eine Native Binary Compile.
00:41:32: Dann ist das quasi native, aber da ist dann wieder so ein Tools dabei, den du brauchst um was zu machen.
00:41:39: und dann dachte ich halt okay, dann mache ich's einfach mal mit Rust weil alle Leute machen coole CLI-Tools mit Rust.
00:41:46: Und dann hab' ich einfach angefangen, das habe ich ja auch schon paar Mal erzählt Sachen zu bauen die ich gerade selber brauche ohne jetzt irgendwie das Ziel zu haben Jetzt das mega Rust Open Source Projekt zu starten, was irgendwann mal alle benutzen werden.
00:41:59: Sondern ich hab jetzt einfach etwas gemacht, was ich gerade irgendwie brauche und da bastle ich jetzt halt immer wieder dran rum... ...und dadurch bleibe ich so ein bisschen drin, dass sich damit was mache.
00:42:06: Ich benutze das jetzt natürlich nicht so viel wie nix und nixOS also die beiden Tools.
00:42:12: aber ja, das ist jetzt so meine Idee, wie ich da irgendwie am Ball bleiben kann und wie ich dann so Dinge mitmachen kann.
00:42:21: Also ist der Wie formuliere ich das?
00:42:24: Für mich war der, wenn ich auf den roten Faden schiele.
00:42:30: Russ hat gewisse Eigenschaften als Sprache die die Spracher irgendwie geil machen.
00:42:34: Für mich wars dann so weniger... Ich gucke mir die Sprach an weil die Sprache so geil ist sondern was es andere Leute gibt die das tun und die das irgendwie abfeiern.
00:42:45: Und ich will auch mal bei der Party vorbeischauen und gucken was da los ist um dann festzustellen Was was für viel besonderheiten bei Bespeichermenagement zum Beispiel hat.
00:42:59: Ja also das ist definitiv ein Punkt, vor allen Dingen auch in der NixOS Community ist das so dass Rust relativ verbreitet ist?
00:43:07: Also es gibt ja bei Nix Packages das ist ja das Hauptrepo von Nixos indem halt die ganzen Package Derivations drin sind.
00:43:15: da gibts eine ganze Reihe von angepflanschten Tooling Und wenn man sich das anguckt ist, dass in der Regel entweder ein Python geschrieben oder in Rust.
00:43:25: Mhm und auch als ich damals beim NixOS Oceans Print war Anfang zwanzig, fünfundzwanzig?
00:43:31: Da war es halt aus so, dass die Leute gesagt haben okay lass uns jetzt mal das und das in Nixos einbauen ja wir machen das in Rust.
00:43:37: und dann war ich so ah ich kann nicht mitmachen So Genau.
00:43:41: und deshalb war da schon für mich so eine so eine Motivation das zu lernen.
00:43:46: Also ich glaube ne Motivations war auf.
00:43:48: Ich möchte gerne Rust Code erst mal verstehen können, damit ich mir diese Tools alle angucken kann und verstehen kann wie die funktionieren was sie machen.
00:43:57: Und das Thema mit dem Sprachfeatures ist ja etwas was mich auch schon sehr lange immer beschäftigt.
00:44:04: Ich gucke mir immer gerne an wenn Sprachen Features haben dies jetzt in anderen Sprachen nicht gibt.
00:44:10: Ich fand halt damals Scala cool weil es halt da so ein bisschen dieser dependent types quasi gab.
00:44:16: und dann gab es ja idriss als noch mehr krass dependent types als wirkliches sprachfeature.
00:44:21: bei skala war das ja nur so exzitente dass der compiler das konnte und das wurde ein bisschen entdeckt quasi, dass man auch dependent types damit machen kann.
00:44:28: hast du das mitgekriegt?
00:44:28: martin oderski hat sich zu wort gemeldet oder zu rust.
00:44:31: oh echt?
00:44:32: nee hab ich nicht
00:44:33: mitgekommen.
00:44:33: also ich meine er hat irgendwo eine interview.
00:44:37: ein youtuber hat ihn interviewt und hat da was gesagt wie das das zu viel rust verwendet wird.
00:44:42: zuviel!
00:44:45: Ich finde das lustig, weil ich finde seit Scala III erschienen ist hat Scala so komplett seine Relevanz verloren.
00:44:51: Genau!
00:44:51: Seit Scala II hatte ich das Gefühl, Scala war zwar nischig aber es gab immerhin so diese diversen Projekte die das gemacht haben.
00:44:59: Aber mit dem Wechsel nach ScalaIII ist das ja komplett in einer Versenkung verschwunden.
00:45:03: Das macht Interessierter gar keinen mehr.
00:45:04: einfach würde ich jetzt mal so behaupten.
00:45:07: Wollen wir mal kurz?
00:45:08: Ich gucke mal parallel Ja doch Martin Röschke und Rust Overuse Ja genau also er bezieht sich auf Rust Genau.
00:45:18: Soll er was zu sagen?
00:45:20: Nein, es war einfach nur... hab ich jetzt auch gedacht okay guck mich mir das an.
00:45:23: aber ja
00:45:25: genau.
00:45:25: also wie gesagt finde ich dass immer spannend mir halt so Sprachfeatures anzugucken.
00:45:30: also ein anderes Beispiel ist ich habe mir bei Haskell zum Beispiel angeguckt wie der Nut-Type funktioniert.
00:45:35: der hat natural numbers repräsentiert er ist ja so ein bisschen recursiv quasi Solche Sachen finde ich halt irgendwie cool, mir so anzugucken.
00:45:44: Es gibt nicht nur Sachen die aus einer C-Historie kommen, sondern es gibt auch noch andere Sachen und Rust bringt mit seinem ... Weiß nicht, Ownership oder Borrowing und Lifetime Modell noch mal was rein, das ist in gar keine anderen Sprache in der Art und Weise gibt.
00:46:02: Das find ich erst mal wieder spannend, mir das anzugucken.
00:46:05: Was kann man damit für Probleme lösen?
00:46:07: Oder wie kann man Probleme anders lösen ?
00:46:10: Und ja... Dann versinke ich da relativ schnell in so einem Rabbit Hole und möchte das dann alles verstehen, und alles lernen.
00:46:16: Und hab dann aber hinter das
00:46:18: Gefühl ... Rabbit Hole ist ein Ding bei dir auch so?
00:46:21: Wenn wir jetzt auch noch ... Das hat mich ziemlich aufgefallen!
00:46:26: Ja.
00:46:27: Was sind deine ...
00:46:28: Ich möchte einmal kurz auf deinen Punkte vorgreifen.
00:46:32: Du hast nämlich da geschrieben, dass kann man ja mit Node auch machen CLI Tools
00:46:36: bauen.
00:46:36: Aber
00:46:37: egal... Zielei tools mit node.
00:46:42: Ist das was du schon mal gemacht hast oder sinnvoll findest?
00:46:46: Oder nicht?
00:46:46: sinnvoll finde
00:46:48: ich wahrscheinlich heute nicht mehr dazu.
00:46:50: Du hast mir gerade ein framework gezeigt, mit dem man tuis bauen kann.
00:46:52: auch der Begriff Tui ist ja noch gar nicht so.
00:46:55: In meinem kontext noch gar nie so.
00:46:57: terminally.
00:46:58: Noch gar nicht.
00:47:02: Und da gibt es Frameworks, die dir halt primitive auf der Kommando-Zeile geben.
00:47:07: Also Fenster und Zeilen usw.
00:47:09: Jetzt bei Node.
00:47:10: oder nur meinst du bei Ratatouille?
00:47:12: Ratatousille kann ich noch nicht.
00:47:15: das gibt's bei Node wahrscheinlich auch.
00:47:18: Ich habe das alles zu Fuß gemacht.
00:47:21: Kanns auch damit Node tun.
00:47:22: Klar, warum nicht!
00:47:27: Du gehst jetzt nicht hin und bauste dein eigenes CLI mit Node
00:47:31: Nee, aber auch in der JavaScript-Community oder in der Node-Community ist ja so.
00:47:37: Dass alles Tooling irgendwie Richtung nativ geht.
00:47:41: Du hast gerade erzählt, dass Bunn ist eine javascript Runtime... ...die dann irgendwie auch SIG slash Rust ist und...
00:47:49: OXFMT?
00:47:51: OX Fmt da ist auch alles.
00:47:52: also es gab ne Zeit lang war es so das... JavaScript-Tooling in TypeScript geschrieben wurde, weil man sich davon einen Vorteil versprochen hatte dass wenn ich mit einer Sprache mich befasse und das in dieser Sprache selber mache.
00:48:11: Dass es irgendwie cooler ist.
00:48:13: Und jetzt, eine Zeit lang war das auch cool.
00:48:14: aber jetzt wo Geschwindigkeit dieser Tools auch relevant hat und dann ist so was wie Rust ein Vorteil
00:48:29: Ich finde das sehr interessant, dass dabei im JavaScript-Bereich so eine Erkenntnis stattfindet die einfach im Java Bereich überhaupt nicht vorhanden ist.
00:48:38: Weil es wird halt alles... Alle Tools sind halt in Java geschrieben und dann sind hier halt einfach so Scheiße langsam, dass die im Hintergrund einen Dämon brauchen der irgendwie läuft damit der Prozess schnell genug losläuft.
00:48:48: und also ja...
00:48:52: Das war für mich das was ich gerade gesagt habe.
00:48:54: Ähm, auf der Arbeit machen müsste weiß ich nie was ich tun würde.
00:49:02: In Zeiten von Claude würd' ich wahrscheinlich sogar Rust nehmen.
00:49:06: Geht's dir auch so?
00:49:07: Also mir geht es so dass wenn ich mir irgendein neues Tool angucke und auf der README MD steht das ist in Rust geschrieben Dann ist das für mich, es wird ja schon quasi so ein Joke.
00:49:20: Es ist für mich direkt so eine Qualitätskripte.
00:49:22: Ja,
00:49:23: für mich auch.
00:49:23: Kannst du mit
00:49:23: Rust geschrieben?
00:49:24: Das ist bestimmt gut!
00:49:25: Nein, nein, ich mach mir natürlich auch drüber lustig aber das ist irgendwie... Ja also... Wieso
00:49:31: ist das so?
00:49:31: Weil man kann natürlich mit Rust auch kompletten Scheißcode schreiben.
00:49:35: Ja, aber ich glaube die Rust-Community ist noch nicht so groß.
00:49:39: Das es jetzt halt... Also wenn der jetzt steht hier crafted with TypeScript dann weiß er auch okay gut das ist irgendwie jeder... Ich schieße mir selber Infos weil jeder und jede Wurst kann kein TypeScript.
00:49:55: Aber bei Rust?
00:49:57: Nee, noch nicht!
00:49:59: Was ist noch eine Nische?
00:50:00: Eine größere Nische!
00:50:05: Als jetzt weiß ich nicht, als SICK oder als Haskell.
00:50:11: Oder Erlangen und so weiter.
00:50:13: Das ist
00:50:14: eine größere Nische mit... Also das machen mehr Leute als Sick- oder
00:50:18: Haskell?
00:50:19: Genau!
00:50:19: Aber es machen nicht so wahnsinnig viele Leute aber es machen genug Leute um das jetzt professionell zu betreiben.
00:50:25: Wie liegt
00:50:27: es vielleicht daran dass man denkt, dass man dieses Gefühl hat, das muss was Cooles sein Weil man immer diese Geschichten hört, der Compiler ist ja so streng.
00:50:36: Man muss da alles so mega korrekt machen, dass man sich denkt okay die Leute, die das machen haben halt irgendwie Bock drauf und ziehen es dann wirklich durch das Sende zu machen weil die Leute halt irgendein Scheiß machen, die gehen vorher auf oder machen sie in Python oder JavaScript.
00:50:49: Das
00:50:50: kann sein, ich muss auch sagen... Da komme ich greife vielleicht auch vor?
00:50:55: Oder vielleicht nicht?
00:50:56: Nee, vielleicht gar nicht!
00:50:58: Ich finde das Tooling von Rust mega geil Und das ist halt auch so eine Sache.
00:51:03: Ich lerne dann, wenn ich mir Rust angucke, nicht nur die Sprache sondern auch das Tooling drumherum.
00:51:08: Also wenn ich mich jetzt mal einen Weg anschaue von Java irgendwann mal angefangen und du hast es ja gerade fast bestätigt.
00:51:15: Java ist immer noch vom Tooling her wie sich ein Tool anfühlt wie vor fünfzehn Jahren als ihr angefangen habt.
00:51:23: Dann kam Javascript mit den bunten Emojis Und hat dann irgendwann, dann kam Rust und das ganze bunte Emoji ist aber in schnell.
00:51:32: Da geht dann jetzt javascript-Tooling wieder hin.
00:51:37: Das ist jetzt ja nicht nur die Sprache sondern irgendwie.
00:51:40: ich lerne was wie eine Community lernt... ...was gerade status quo an Tooling ist und verbessert das Ganze noch so ein bisschen.
00:51:53: Das finde ich cool!
00:51:54: Gerade bei Rust ist es halt auch drin Formatting mit drinnen.
00:52:00: Äh, was war dieser Klippi noch gleich?
00:52:02: Also der Salinta und ähm...
00:52:06: Der Klippy ist vielleicht also erst mal was am Rust Compiler mega geiles.
00:52:12: Wenn er dir einen Fehler macht erklärt ihr immer, was ist der Fehler?
00:52:14: Genau!
00:52:15: Und was musst du anders machen?
00:52:17: Du kannst ihn zu jedem Fehler jeder Fehler hat so eine ID.
00:52:21: Du kannst den Compiler immer nach dem Fehler mit dieser ID fragen dann erklärt das nochmal Elaborierter quasi worum es geht und was das Problem ist.
00:52:28: Das finde ich einfach schon mega geil.
00:52:30: Und Chrissy ist ein Linter, der dich dann auch noch auf ganz viele Sachen hinweist die zwar kompilieren, die erstmal für den Compiler korrekt sind aber die trotzdem mal einfach nicht richtig eigentlich sind.
00:52:40: oder Idiomatic-sind und ja das stimmt mir dazu, dass es schon ziemlich cool...
00:52:45: ...und das basiert ja.
00:52:46: also kann an einer Weiterentwicklung sagen jetzt mal du wirst mich jetzt wissen wir das im Jornhauen von diesem ganzen JavaScript Tooling schon Auto von einem TypeScript-Compiler ist schon ganz geil!
00:52:57: Nur ein bisschen kompliziert.
00:52:59: Das muss man schon lesen wollen.
00:53:03: Und das ist jetzt bei den Rusting, dass es halt so lesbar ist, dass ich das als Entwickler verstehe.
00:53:11: Stimmt!
00:53:11: Das wollte ich nicht auch sagen weil es wird ja immer so behauptet oder es ist ja so schwer einen Rust-Programm zum Compile zu bekommen.
00:53:18: aber ich muss sagen die meiste Zeit habe ich das eigentlich relativ einfach hingekriegt.
00:53:24: also es war nie so... Ich meine, ich habe jetzt natürlich auch keine mega großen Programme damit geschrieben.
00:53:32: Aber das was sich da mit so gemacht hat... Da hab' ich das alles irgendwie hinbekommen und hab' das mit den Compiler-Federn irgendwann aufverstanden, was zu tun ist muss ich sagen.
00:53:42: Und gerade auch, ich hab grad auch wieder so ein Linsing-Thema, weil wir haben schon in so einem Podcast oft über Linsingen gesprochen und ja im Javascript Bereich ist das auch nicht... Da ist das zumindest, da gibt es sehr, sehr idiomatische Lösungen.
00:53:57: Das ist ganz okay.
00:53:59: aber ich mag Sprache und ich mag Ökosysteme wo das alles irgendwie aus aller... Wo das einfach mitgedacht ist, wo einfach diese Diskussion gar nicht da ist und dass es bei Rust eben unter anderem bei Rust ist.
00:54:08: Ja, bei Go übrigens auch.
00:54:12: Ja ja genau, es gibt recht viele sogar.
00:54:14: also das halt.
00:54:17: Ja Tooling, Haken dran.
00:54:18: Haken geil kann man machen.
00:54:20: Sollte man sich... Aber du hast gerade von Borrowing erzählt.
00:54:22: Er klärt mir Bowering was ist Bowerin?
00:54:26: Also reden von Speichermenagement, also wir reden von Java hat Gabych eine Gabyche Collection C nix und dann kommt Rust.
00:54:38: Genau ich habe ja da auch noch so ne kleine Fußnote hingeschrieben.
00:54:40: Ich weiß jetzt nicht genau was eigentlich deine Meinung dazu ist wie weit also wie detailliert wir das erklären müssen und welche Audienz wir uns hier im Podcast einstellen müssen.
00:54:50: Fangen wir erstmal an!
00:54:51: Also ich hab in der Tat... Du möchtest jetzt ein Hieb und Stack erklären.
00:55:01: Nein, also ich muss zugehen dass sich
00:55:04: das für die Erklärung auch nicht weiß warum das jetzt relevante ist.
00:55:08: aber erleiten wir.
00:55:09: Also was ist?
00:55:11: Nein, ich habe dem Holger in unserem rostigen Faden die Frage gestellt wen erwarten wir eigentlich bei autobdfm als target audience?
00:55:19: und können wir Dinge voraussetzen, die man vielleicht erst weiß wenn man eine gewisse Berufserfahrung im Software Engineering hat.
00:55:28: Ja
00:55:29: ich drück kurz auf Pause Leute!
00:55:31: Wir kommen gleich zurück.
00:55:32: wir müssen jetzt erstmal Personas malen.
00:55:35: Das heißt wir müssen so Sticky Notes kleben und ein paar Bilder ausmalen dann melden wir uns gleich zurück.
00:55:43: Ja, weil ich hatte halt Angst, dass wir anfangen was zu erklären und davon ausgehen.
00:55:47: Dass Leute wissen, was ist ein Heap?
00:55:50: Was ist ein Stack?
00:55:50: Was sind Pointer?
00:55:53: Etwa Dinge die ich vor einigen Jahren auch nicht so richtig wusste, weil in Java weißt du eigentlich nicht so wirklich, was ein Pointer ist und was ein Heaps oder Stack ist außer du kriegst mal irgendwann eine Out-of-Heap-Memory Error und fängst dann mit zur Beschäftigung... ...was ist überhaupt der Heap quasi?
00:56:07: Gut!
00:56:10: Also mein Take wäre jetzt Wir slash du fängst einfach erst mal anders zu erklären.
00:56:16: Und ich würde jetzt nicht komplett tief runtergehen, aber gleichzeitig Leute wenn euch da was fehlt sagt was?
00:56:25: Ich möglicherweise brauche es gar nicht so viel um den Herrn Ritter dazu zu reden darf vielleicht nochmal draufzugucken Und nochmal in der weitere Folge zuzumachen.
00:56:35: Die epische
00:56:35: Speichermenagement-Folge?
00:56:36: Nein,
00:56:37: das nicht!
00:56:37: Aber keine Ahnung auch.
00:56:40: Wenn uns irgendjemand sagt, oh komm, zu dem Teil hätten wir... Das habe ich nicht ganz verstanden.
00:56:46: Könnte da noch mal zehn Minuten drüber erzählen?
00:56:51: Dann machen wir das wahnsinnig gerne einfach vor uns dann auch keine Gedanken mehr und machen ein bisschen welches Thema wählen wir jetzt aus?
00:56:58: Und wir wissen doch alle, wie wir hier zusammensitzen.
00:57:02: Dass wir nicht zehn Minuten nur wegen Thema reden können.
00:57:06: Also
00:57:08: ich fange einfach mal aus meiner eigenen Historie an.
00:57:10: Ich habe ja wie gesagt das hab' ich auch schon oft erzählt.
00:57:12: Ich bin ja Wirtschaftsinformatiker
00:57:14: und... So tief kommst du jetzt?
00:57:16: Oh mein Gott!
00:57:17: Was hast du denn am Ende eigentlich?
00:57:18: Und richtige Informatiker von der RWTH Aachen wissen natürlich dass Wirtschafts-Informatika keine Ahnung von Programmieren haben oder?
00:57:24: Das ist richtig klar
00:57:26: Und deshalb habe ich auch als Wirtschaftsinformatiker in der Uni programmieren nur mit Java und später auch ganz kurz mit C-Sharp gelernt.
00:57:34: Das heißt, das sind ja beides garbisch.
00:57:37: kollektive Sprachen wie unter anderem auch Go zum Beispiel von Javas gibt es ja auch.
00:57:43: Also wusste
00:57:44: ich jetzt eigentlich gar nicht.
00:57:48: Das bedeutet wenn man Objekte erzeugt dann läuft im Hintergrund automatisch ein Prozess, der sich darum kümmert.
00:57:56: Dass der Speicher den diese Objekte belegen irgendwann wenn die nicht mehr benötigt werden wie er freigeben wird.
00:58:01: Möchtest du kurz über Gabytsch der kollektischen Strategien reden vielleicht?
00:58:05: Ja, sollen
00:58:05: wir vielleicht verschiedene Gabytsch-Collector einmal kurz besprechen.
00:58:07: da gab es letztens auch bei ja war keine Ahnung sieben zwanzig.
00:58:10: ich finde das fantastisch.
00:58:11: wie einfach ist es nicht einfach so D-Rail.
00:58:13: Da
00:58:14: wurde doch irgendwie so neuer Gen keine Ahnung was GabyTsch Collector der jetzt noch geiler ist und noch weniger Pauses hat genau also Die Gabelisch-Collection hat diverse Probleme.
00:58:23: Danke für die Überleitung, weil es zum Beispiel in Systemen sehr viele Requests bekommen und relativ schnell beantworten müssen.
00:58:33: führt das dazu oder hat das früher dazu geführt?
00:58:36: Die aktuellen Gabelische Collector sind natürlich ein bisschen besser dass teilweise einfach so eine GC Pause gibt.
00:58:42: Das heißt, das Programm bleibt einfach stehen.
00:58:44: dann fängt der Gabelischen Collector an und guckt mal welche Objekte alle wegräumen kann.
00:58:48: dafür musste halt zum Beispiel alle Objekte, die erkennt sich angucken.
00:58:51: Gibt es noch irgendwie Referenzen darauf oder nicht?
00:58:53: Wenn nein dann kann ich das wahrscheinlich wegräumen.
00:58:55: Das führt dazu dass vielleicht andere Objekten, die referenziert wurden auch weggeräumt werden können und durch diese Pause kam das halt früher dazu, dass die Anwendung einfach nichts mehr gemacht hat bis der damit fertig war.
00:59:05: Da wurde natürlich also ich sag mal so der Java Garbage Collector, der hat jetzt auch schon ein paar Iterationen hinter sich.
00:59:11: Der ist jetzt auch nicht so schlecht.
00:59:15: Genau.
00:59:16: aber Garbage collector macht erstmal das Programmieren relativ ... komfortabel, weil man sich eben die Speicherverwaltung nicht kümmern muss.
00:59:23: Ja!
00:59:24: Ist aber wenn man jetzt so in... Also man hat erstmal diesen natürlich Prozess der irgendwie da ist, der das machen muss.
00:59:31: In Java bedeutet es dass man eine Java VM braucht auf der das eigentliche Java-Programm laufen kann.
00:59:38: Bei Go ist das so, dass das Garbage Collection mit in das binary rein kopiliert wird und der Gegenentwurf dazu oder der?
00:59:48: Frühere entwurf bevor wir sowas hatten sind halt sprachen die anmännisch sind wie halt ganz prominent c. Oder auch c++ oder sick das bedeutet.
00:59:59: Echt zick ist auch.
01:00:00: ja sick es auch anmanagt.
01:00:01: okay cool,
01:00:03: dass war dann der grundfest.
01:00:04: habe ich hinterge sachter boah nee kein Bock drauf
01:00:05: mit cool mein ich nicht so gut damit rum gemalockt ja
01:00:09: genau also bei anmennet sprachen hat man halt den vorteil als Entwickler die volle kontrolle hat.
01:00:16: Das bedeutet aber auch, dass man die volle Kontrolle richtig ausführen muss.
01:00:20: Auch das man die Vollekontrolle hat?
01:00:21: Genau!
01:00:23: Und da wir ja alle relativ lazy Entwickler sind und Dinge einfach falsch machen, führt es leider dazu... Also vielleicht noch mal erklärt wenn ich in C oder so irgendwie in ein Speicher brauche, dann muss ich explizit sagen MemoryElloc.
01:00:39: D.h.,
01:00:39: ich sage dem System gibt mir diesen Speicher, damit komme ich einen Speicherbereich der nicht initialisiert ist.
01:00:45: Mit diesem Bereich kann ich Dinge tun.
01:00:47: Und wenn ich fertig bin, muss ich sagen Free, dass dieser Speicher wieder freigegeben wird und wenn ich da was falsch mache das vergesse Speicher-Free und den weiter benutze dann gibt es allerhand lustige Bugs die dadurch entstehen und im Prinzip keine Ahnung.
01:01:04: ein Großteil aller Security Vulnerabilities, die irgendwie einen hohen CVI-Score haben gehen eigentlich darauf zurück, dass es irgendwelche Speichermanagement Probleme gibt im Code, die dazu führen dass ein Angreifer auf Speicher zugreifen kann.
01:01:19: Auf den er eigentlich nicht zugreffen können sollte.
01:01:22: das heißt mit einer Sprache wie C Kann ich sehr hoch performant einen Code schreiben weil ich halt Im Hintergrund nicht irgendeinen Prozess habe der für mich den Speicher aufräumt.
01:01:31: aber gleichzeitig ist es halt extrem schwer Das richtig zu machen wenn man sich nicht Extrem gut auskennt.
01:01:39: und ja genau Das sind eben die beiden Strömungen.
01:01:44: und Rust positioniert sich aber irgendwo in der Mitte davon, indem es keinen Garbage-Collector hat.
01:01:51: Aber auch kein richtig explizites Speichermanagement hat sondern das Typsystem ist so erweitert dass der Entwickler quasi ausdrücken muss um den Compiler zufriedenzustellen wie Variablen verwendet werden und daraus kann abgeleitet werden wann die Variabeln nicht mehr benutzt werden und wann der Speicher entsprechend freigegeben werden kann.
01:02:13: Also es
01:02:14: gibt,
01:02:14: soweit ich das verstanden habe, maximal eine Stelle der ... so eine Variable gehört.
01:02:21: Richtig!
01:02:22: Es gibt das Konzept der Ownership.
01:02:25: Das heißt, es gibt von jedem Wert einen Besitzer, also einen Owner und solange dieser Owner lebt und die ownership nicht an jemand anderen übergeben wird, man kann ownership auch übergeben Solange dieser owner im scope ist, das ist nämlich alles scope basiert quasi.
01:02:48: Und die ownership nicht übergeben wird.
01:02:50: Lebt diese variable und wenn der owner out of scope geht dann wird die variabel weggeräumt.
01:02:57: Genau ja ich finde es ein sehr sehr elegantes konzept.
01:03:03: Warum noch noch niemand drauf gekommen ist weiß ich nicht aber das ist.
01:03:06: Ja also sprachen wie go.
01:03:08: also go is ja managed das ist eigentlich was.
01:03:11: aber zum beispiel sick Also ich sag wie go, weil Go hat auch das differ keyword.
01:03:16: Sieg hat halt dafür das differ Keywork
01:03:17: d.h.,
01:03:18: du hast immer einen expliziten Allocator mit dem du sagst gib mir mal Speicher.
01:03:22: also bei C gibt es einfach so eine magische Funktion die heißt Malog.
01:03:25: da kriegst du einfach Speicher und dann musstest an den in den freizuhäumen.
01:03:28: Bei SIG kannst du immer ein Allocater Objekt dem du sagt wo der Speicher irgendwie wieder gemanagt werden soll bla bla diesdass.
01:03:34: und dann gibt es das differ key word.
01:03:36: und das ist immer so ne doppelzeile schreib's immer allocator, dann sagst du wie viel du brauchst.
01:03:42: Und da drunter schreibst du immer defer-allocator deaLog und das defer führt dann dazu dass dieses dea-log an den Ende des Scopes gekackt
01:03:52: wird.
01:03:52: Also defer ist ein Go-Feature?
01:03:55: Genau
01:03:55: deshalb sage ich gerade go.
01:03:56: aber in GO ist es nicht für Speicher benutzt sondern zum Beispiel um Ressourcen zu schließen.
01:04:00: Aber
01:04:01: es funktioniert ähnlich!
01:04:03: Du schreibest defer und der Compiler schiebt das einfach ans Ende dieses Blocks.
01:04:07: Und bei Russ ist halt so, dass es halt einfach automatisch passiert.
01:04:11: Weil das Problem wenn du differen hinschreiben musstest, dann musst du's halt hinsschreiben.
01:04:16: Wenn es wieder broken im Endeffekt.
01:04:19: Also es gibt einmal die Ownership und das wäre ja irgendwie blöd, wenn jetzt jede Variable nur einmal benutzt werden kann weil es mal einen Owner gibt.
01:04:27: Deshalb gibt es eben die Referenzen auf ... Dinge?
01:04:35: Da kommt man halt in den Bereich des Borrowings, weil du kannst nämlich sagen ... Hey, du hast zwar hier ... Du, ihr gehört zwar dieses Ding.
01:04:44: Aber ich möchte's mir gerne ausleihen.
01:04:46: und wenn du dir was ausleißt, also wenn du es borrowsst dann schreibst so ein Unsymbol davor vor dem Typ Und du kannst halt sagen, möchtest mich nur lesend ausleinen?
01:04:56: Kannst du sagen Ich mach damit nichts, ich möchte einfach nur angucken.
01:04:59: Du kannst beliebig viele lesende Borrowing haben Oder du kannst genau einen Mutable-Boring haben.
01:05:08: Das heißt, es ist ab immer nur einer gleichzeitig mutierenden Zugriff auf diese Referenz haben die ja wieder zurück dahin schreibt wo halt dieses... ...ohnte Objekt oder sehr geohntes Speicherbereich ist.
01:05:21: Genau!
01:05:22: Und das ist schon mal erstmal so.
01:05:23: der erste Kopfnuss wenn man anfängt damit zu hohen an mir weil das ist eigentlich ja schon irgendwie anders.
01:05:31: Also du sagst quasi, du musst ausdrücken im Typsystem.
01:05:34: Auch wenn du eine Methode definierst, musst du sagen ... Möchte die Ownership haben?
01:05:40: Also bekommt ihr das Ding owned?
01:05:43: Das heißt, du machst ne Methode-Deklaration und schreibst da ohne dieses Unzymbol den Typen dran.
01:05:49: Dann heißt das, die Methode nimmt das Ding und übernimmt die Ownerschip.
01:05:53: An der Stelle wo du diese Methode aufrufst, du hast drüber deine Variable fu, dann übergibst du dir an die Methote übergibt es das auch, danach darf so Fuh nicht mehr benutzen.
01:06:02: Dann ist Fuh quasi ...
01:06:04: weg?
01:06:05: Ja genau ja, verstehe.
01:06:06: Und das ist halt krass!
01:06:08: Das gibt's in anderen Sprachen irgendwie nicht meiner Meinung
01:06:11: nach.
01:06:12: Also ich find's als Sie schon spannend sich überhaupt nur mit dem Konzept mal irgendwie zu befassen.
01:06:16: Aber das ist schon ganz cool.
01:06:18: Genau.
01:06:18: Ähm...ja.
01:06:25: Ja und wenn du halt mit den Überbowering- und Referenzenredes kommst dann noch deine Lifetimes mit ins Spiel.
01:06:31: Ich hätte jetzt die Lifetime sogar geschlabbert, muss ich zugeben.
01:06:34: Ja, die kann ich auch nicht erklären.
01:06:36: Nein, aber das ist...
01:06:37: Ich kann dich schon erklären eigentlich drücken Lifetimes nur aus.
01:06:40: wie lange Referenzen?
01:06:42: Weil Lifetime gibt es nur bei Referencen.
01:06:44: Referenze haben wir ja gerade gesagt Es gibt das das owned Konzept und es gibt halt Referensten also geborrote Referenßen.
01:06:51: Und bei den Referenissen muss man aber manchmal halt angeben Wie lange die gültig sind.
01:06:58: zum Beispiel Sag mal, du hast eine Methode.
01:07:02: Die nimmt eine Stringreferenz also der gehört nicht des Strings sondern die möchte den nur lesen und die gibt... ...die ersten drei Buchstaben von dem String wieder zurück das heißt.. Der Eingabeparameter ist un-ster also STR Und der Rückgabetyp is auch un-star.
01:07:18: und jetzt ist ja die Frage wie in welchem Verhältnis stehen diese beiden stirs zueinander Wenn du nichts dran schreiben würdest.
01:07:24: Also Spoiler der Computer macht es von alleine.
01:07:25: aber angenommen er wird's nicht von alleine wenn du nichts dranschreiben würdest dann würde der sagen Ja, jetzt gibst du hier so ne Sturmreferenz rein und da kommt eine raus.
01:07:33: Aber wie hängt das zusammen?
01:07:37: quasi?
01:07:38: Und um das zu lösen musst du eben sagen die Referenz, die reingeht und die, die rausgeht deren Lebenszeit, die hängen zusammen.
01:07:47: Die sind gleich mindestens gleich lange gültig.
01:07:50: Die dürfen nicht voneinander irgendwie unabhängig abgeräumt werden weil wir wissen natürlich als Entwickler Method Body drin steht, nimm den Eingabe.
01:08:01: Stirn.
01:08:02: Nimm die ersten Symbote und gib den zurück.
01:08:03: also so wir indexen quasi in diesen Stör, dem wir bekommen haben rein und geben eigentlich nur eine View auf diesen Speicherbereich wieder zurück.
01:08:13: Und deshalb müssen wir im Prinzip müssten wir im prinzip ausdrücken das ist gleich lange gültig weil du darfst natürlich nicht die eine Referenz wo die andere Referenz quasi drauf zeigt um die drei Zeichen zu zeigen die darfst du natürlich nicht vorher irgendwie weg geräumt haben oder ja die sind da einfach gleich langgültig.
01:08:29: Und dafür gibt es dann die Lebens, die Lifetime-Specifiers mit denen du sagst... Also gibts einfach nur ein Symbol.
01:08:37: Das ist wie ein Generic, sagst halt so einen Tick und dann irgendwie nen Namen dafür.
01:08:41: meistens sind man dann A wenn man nur einen hat und sagt einfach a an dem Eingabester oder ausgabester und dann weiß man okay die leben gleich lange.
01:08:50: aber in solchen einfachen Fällen gibt's halt die Lifetime Illusion.
01:08:53: das heißt der Compiler kann das Schon alleine sich überlegen, okay da geht ein Sturr rein.
01:08:58: Da kommt ein Sturm raus.
01:08:59: wahrscheinlich sind die voneinander abhängig.
01:09:02: Leute ihr habt es an dieser dann doch recht technischen Erklärung gemerkt das ist nicht... Das Konzept selber ist das Ergebnis ist glaube ich relativ straight forward.
01:09:13: aber der Teufel steckt da glaube ich mehr als im Detail drin oder?
01:09:16: Ja es wird halt.
01:09:18: Lifetimes werden dann komplex wenn du Containerstrucks hast aus meiner Sicht.
01:09:24: Also wenn du so Container hast, Collections, Futures und so weiter... Stopp!
01:09:31: Wir rennen gerade von einer allgemeinen Beschreibung hin wahnsinnig schnell ins Detail.
01:09:37: Lassen wir
01:09:38: mal kurz über das Type-State-Petan reden?
01:09:41: Nein, wir reden nicht über das type-state-petan.
01:09:43: Leute, wir machen eine Touch-Stapetan deep dive Folge.
01:09:49: Das ist das eine von Rust.
01:09:53: Und es ist, glaube ich... Ich würde sagen, dass es so das Hauptdingen ist.
01:09:57: Es sorgt dafür, dass Programmer in Rust genau als The Blazing Fastiness kriegen, weil kein Gabelskollektor da ist aber der Compilerler sehr viel machen kann.
01:10:06: Das ist schon ziemlich geil!
01:10:10: Was ich... Gleichzeitig hat Rust auch sehr viele High Level Sachen so was wie z.B.
01:10:19: enumsten Pattern Matching, das ist schon im Typesystem drin wo viele Sprachen irgendwie dann noch so nachhüpfen.
01:10:27: Ja und
01:10:28: sorry dass ich unterbreche aber Rust hat einfach einen Result-Type!
01:10:31: Wie geil ist es das bitte einen Resul Type zu haben?
01:10:34: Also es gibt in Rust übrigens keine... Keine Exceptions, sondern...
01:10:38: Wollte du rennst jetzt?
01:10:42: Du erklärst... Okay.
01:10:43: Du moderierst!
01:10:44: Wir haben einfach gesagt, du moderierest.
01:10:45: Tut mir leid.
01:10:46: Holger,
01:10:46: mach mal weiter.
01:10:48: Aber denk dran
01:10:49: immer Results zu sprechen.
01:10:50: Ich verkläre es nicht wirklich in der Lampe.
01:10:53: Läuft geil.
01:10:54: Haben wir euch verloren?
01:10:54: Seid ihr noch
01:10:55: da?!
01:10:56: Der Holger pennt das hier wieder ein.
01:10:58: Also Moment.
01:11:03: Gut, andersrum.
01:11:05: Es gibt keine Exceptions in der Sprache was sich an sich jetzt.
01:11:08: Ja, Exceptions sind irgendwie doof.
01:11:12: Scala hat das ja schon so gemacht... Was Scala gab es ja schon irgendwie den?
01:11:16: Wie hieß der?
01:11:17: War das auch Result oder Error?
01:11:18: Ich weiß nicht, habe ich vergessen.
01:11:20: Ganz
01:11:21: verschiedene!
01:11:21: Da gab's Option, Try und Either.
01:11:25: Das ist was
01:11:26: am
01:11:26: Nächsten an.
01:11:27: Ja,
01:11:28: da gab es Either.
01:11:29: Und das gibt es genau.
01:11:30: Ich muss irgendwie diesen... Hast du
01:11:32: eigentlich either oder
01:11:33: either?!
01:11:34: Ich hab keine Ahnung.
01:11:34: Auf jeden Fall, ich muss diesen ... den Error-Fall, den muss ich in meinem Typsystem mit... ...verknuseln.
01:11:46: Ich muss entweder sagen Resalt oder irgendwie keine Ahnung.
01:11:50: Als ich meinen CrapStat gebaut habe, da gab es einmal glaube ich so ein so ein Network-Bringen und der Return Type war halt entweder String für irgendeinen Hostname oder halt Not Present oder sowas.
01:12:05: Und eben keine HostNotFoundException.
01:12:09: Also du wirst jetzt wieder sagen, ich galoppiere vor.
01:12:12: Aber was halt daran?
01:12:13: nice ist an Option und einen Result, dass du wenn du dadurch das halt es ja keine Exceptions gibt, ist das so, dass viele, viele Methoden halt Results zurückgeben?
01:12:27: Und jetzt wär's ja irgendwie blöd, wenn du da immer sagen müsstest... Mach irgendwas, zeige ich einen Result.
01:12:32: Jetzt guck ich erst mal ifResaltError und ansonsten so.
01:12:35: dann hast du halt wieder diesen Go.
01:12:36: Mist Anführungszeichen wo du immer bei jedem Call das du If, Er und gleich Null, da macht das.
01:12:41: Ansonsten macht das.
01:12:43: Bei Rust gibt es da so ein Shortcut Und da kommen wir ja so ein bisschen in den Bereich dass auch relativ viel Magic gibt.
01:12:49: Da kann man gleich ein bisschen mehr darüber reden weil Du kannst quasi ans Ende Frage Zeichen schreiben.
01:12:53: also du bekommst einen result zurück Du schreibst am Ende Fragezeichen, dann ist das Binding auf der anderen Seite der gute Fall.
01:13:01: Also quasi dein String, der Hosenin.
01:13:05: Wenn es aber der Errorfall ist, wird er automatisch propagiert.
01:13:10: Das heißt du programmierst so als ob's immer der gute fall ist, schreibts immer ein Fragezeichender hinter und wenns der schlechte Fall ist wird an dieser Stelle nach oben propagiert und du musst nicht mehr irgendwelche Fehler merken oder so kannst die einfach ganz oben behandeln.
01:13:23: Sollte ich echt ganz nice?
01:13:24: Macht das genau, was ich gesagt habe?
01:13:25: Ja.
01:13:26: Ich glaube... Ist das dann mit dem Optional Chaining Verwandt?
01:13:31: aus dem Javascript?
01:13:32: wahrscheinlich ja und einem Optional chaining?
01:13:36: Das weiß ich nicht genau.
01:13:37: Kannst du dir eigentlich so vorstellen Du machst ein Fragezeichen Und der Compiler sagt einfach Wenns Error ist Return nicht sofort.
01:13:42: Ja ja doch, das ist Optional Chain Genau, aber äh..das Ja es geil
01:13:49: Ja Muss man auch nicht mehr zu sagen Es ist
01:13:53: einfach geil.
01:13:53: Aber okay gut Enums hängen da auch mit zusammen.
01:13:57: Enumus fand's doch auch geil!
01:13:59: Ja, Enums sind halt so ein bisschen ... haben mich an Data-Klases in Skade ein.
01:14:04: Das heißt man kann da so ADS mitbauen... ADRs
01:14:07: gewonnen mit Baum?
01:14:08: Der ADT ist sorry.
01:14:10: Algebraic Data Types Also quasi so Bäume von Typen Und es gibt halt einen Pattern Matching wo man sagen kann Wenn also enums sind können halt quasi Typparameter haben, dass man etwas übergibt.
01:14:27: Also man hat jetzt irgendwie eine E-Norm... Jetzt muss ich irgendwie ein cooles Beispiel... Ich hätte mir vorhin ein gutes Beispiel überlegen müssen.
01:14:34: Ich muss auch ganz kurz in meinen Code gucken weil... Ich muss noch
01:14:36: mehr kurz auf Toilette!
01:14:40: Nee, weil das habe ich ja keine Ahnung.
01:14:42: Ich hab hier Info Value besteht aus available und unavailable und da geht String rein.
01:14:51: Meinst du sowas?
01:14:52: Genau Dass man halt der Enum, die kann halt noch Werte haben.
01:14:56: Man kann dann dieses Matching machen, dass man sagt match meine Enum und dann hat man quasi ist es der eine Fall?
01:15:03: Und man kann das dann so.
01:15:04: die Structuren wie man das vielleicht schon mal gesehen hat ist jetzt ein bisschen schwierig zu erklären wenn man's nur quasi auf der Tonstuhl beschreiben kann.
01:15:13: Wenn man kann quasi sagen, wenn es der der eine fall ist, der irgendwie sowas innen drin hat... Dann kann man direkt diesem inneren Wert einen Namen geben und kann sozusagen sofort darauf zugreifen.
01:15:25: Es gibt es in verschiedenen
01:15:27: Ansprachen auch.
01:15:28: gut, wenn wir das nicht nur auf der Tonschwer klären müssen ist wahrscheinlich die Erklärung ist geil.
01:15:35: ja genau und Ja deshalb sind sind enums eigentlich ganz nice.
01:15:44: zusammen mit den den options und den results finde ich fängt mal an mehr darüber nachzudenken, was gebe ich eigentlich zurück und wie beschreibe ich bestimmte Ergebnisse.
01:15:54: Also ich hab mich jetzt oft schon dabei erwischt in Anführungszeichen ... dass sich Code der quasi einen Bulien zurückgegeben hat?
01:16:04: Und dann if das, dann macht das, else macht das.
01:16:06: Er setzt habt durch eine Enum die aber noch diesen Payload hatte.
01:16:12: Dann konnte ich alles ein bisschen high-levelmäßig eher beschreiben.
01:16:17: Ja.
01:16:17: Das ist eigentlich ganz ... Ganz cool finde ich.
01:16:20: Und was halt, du hast das ja gerade schon gesagt?
01:16:22: Also Rust ist ja eigentlich auf Papier erstmal so eine Low Level, native System Programming Sprache.
01:16:28: aber die hat halt Features die man eher aus Sprachen wie Scala oder weiß ich nicht was kennt und das ist dann schon wieder irgendwie ganz cool.
01:16:37: Das passt dann trotzdem zusammen.
01:16:42: Das letzte Feature was ich mir angeguckt habe, also das Sprachfeature sind Trades Wobei ich auch nicht so ganz... Von Trades war eigentlich nur so halb begeistert, muss ich zugeben.
01:16:54: Weil die... Ich fand das so taktisch irgendwie ein bisschen schwierig.
01:16:57: Trades heißt halt dass ich ähm... So ähnlich wie ich sage mal in Kotlin.
01:17:03: Wie heißen sie?
01:17:05: Sind das die Companion?
01:17:06: Companion-Objects?
01:17:07: Companions-Methals?
01:17:08: Ja ist
01:17:08: es und ich würde jetzt eher sagen, Trades sind so'n bisschen... Damit kann man was wie Extension Functions mitmachen.
01:17:13: Extension!
01:17:14: Das war das, was ich genau... Genau das.
01:17:16: äh ähm.. Ich kann Ohne das Objekt selber in der Hand zu haben oder die Klasse selber eine Hand zu habe, kann ich gewisse Dinge überschreiben.
01:17:27: Genau also Trades definieren erstmal ein Interface so wie man das vielleicht aus Java kennt?
01:17:32: Ich weiß es gibt das Interface Konzept in Rust was ich nicht.
01:17:36: Die Trades sind quasi das was Interfaces.
01:17:38: Ja okay.
01:17:40: Also die sagen quasi wie sieht die Schnittstelle von etwas aus?
01:17:43: und also es gibt in Rust erst mal Structs das sind einfach nur Datenstrukturen Also quasi ein Datencontainer.
01:17:52: Und es gibt Trades und Trades definieren Verhalten, quasi.
01:17:56: Und Struts können.
01:17:58: an Struts kann man quasi Implementierung anhängen.
01:18:01: Das heißt, man kann erst mal sagen wenn man jetzt einen Struck-Customer hat dann kann man erst einmal sagen Imple Customer und kann erstmal einfach Methoden oder Funktionen definieren für Customer.
01:18:11: Was sieht denn in der Implementierungen so ein bisschen aus wie bei Python?
01:18:14: Dass man als Erstes immer so ein Self Parameter bekommt mit dem man Zugriff auf die Daten dieses Structs hat.
01:18:19: Dann kann man zum Beispiel sagen, keine Ahnung was hat ein Customer für eine Methode?
01:18:22: Ich weiß nicht.
01:18:24: Peh, weiß ich
01:18:24: nicht.
01:18:25: Äh, na Adresse!
01:18:26: Ja okay das wäre jetzt eher ein Getter aber egal.
01:18:31: Genau sorry.
01:18:36: So jetzt kann es aber ja sein dass ich quasi einen Interface definieren möchte für was halt sowohl Customer als auch Anonymous-User in meinem System haben sollen.
01:18:50: D.h.,
01:18:50: ich definiere erst mal diesen Trade, wie ich halt ein Interface definieren würde und dann sage ich aber... Und das kann ich überall machen!
01:18:57: Das muss sich nicht in derselben Datei machen, wie der Customer oder der Anonymous User definiert ist.
01:19:03: Da schreibe ich einfach hin.
01:19:05: Imple... ...User?
01:19:09: Keine Ahnung.
01:19:10: Vor und dann sag' ich halt für was ich das implementieren möchte d.h.
01:19:14: Ich kann irgendwo Für jedes beliebige Struct jeden beliebigen trade eigentlich implementieren.
01:19:19: Also genau also wie das jetzt bei extend also falls extension ist, dass ist das die gleiche idee als ich kann.
01:19:26: aus der third party code kann ich also so mit auch
01:19:29: richtig
01:19:30: ein bisschen weiter mein Beispiel habe ich irgendwie eine two string funktion irgendwo hinten dran gehängt.
01:19:35: Genau da geht.
01:19:37: es gibt halt so Sachen wie... Display ist zum Beispiel ein Trade, mit dem kann man wenn man den implementiert für das eigenes Struct.
01:19:45: Dann kann der automatisch in Formating Strings kann das Struct dann.
01:19:49: da wird quasi diese Methode aufgerufen die in dem Trade definiert ist für dieses Struct und dann wird das Stuct in einem String Wenn ich das irgendwie auf der Konsole ausgebe schön formatiert.
01:19:59: Und das ist halt auf der einen Seite ziemlich cool weil man halt überall jegliche Funktionen noch dran patchen kann wenn man sie braucht.
01:20:08: Auf der anderen Seite ist das aber auch echt verwirrend manchmal, weil man nicht so einen einfachen Überblick darüber bekommt.
01:20:17: Warum?
01:20:20: Dinge bestimmte Methoden haben oder wo Methoden halt herkommen.
01:20:25: also ein Beispiel was ich letztens hatte ist wenn du einen weg von Results hast.
01:20:31: also ein Weg ist eine Liste.
01:20:32: Du hast eine Leste von verschiedenen Results dann gibt es auf Wenn man darüber iteriert gibt es eine Kollektmethode, die das wieder einsammelt.
01:20:42: Also ich hab irgendwie gemapped, keine Ahnung was.
01:20:44: Ich hab ne Liste von Results, ich mape da drüber und dann mach' ich Collect.
01:20:50: Man muss halt explizit Collect sagen um wieder einen Weck daraus zu machen.
01:20:54: Jetzt kann ich bei dem Collect hinschreiben doppelpunkt doppelpunkt result von weg also quasi... Das umgedreht im Prinzip.
01:21:05: Also ich hab vorher Wecktoren, ein Weck von Results gehabt und unten sag' ich aber, ich möchte jetzt einen Result vom Weg haben.
01:21:13: Weißt du?
01:21:13: Also quasi das... Ich habe das so quasi ausgepackt und wieder eingepackt.
01:21:20: Dann geht das einfach weil es eine Trade Implementierung gibt die From Itter nach Result Von Bla irgendwas implementiert.
01:21:30: Und das ist dann irgendwie zufällig im Scope und dann geht das einfacher Ja, du sitzt davor nicht sehr.
01:21:34: What the fuck?
01:21:35: Warum geht das?
01:21:36: Keine Ahnung.
01:21:37: Äh ja also ich fand bei den... Bei den... bei den Trades.
01:21:43: Du hast es gerade zum Beispiel mit dem Self so genannt.
01:21:45: Ich finde es syntaktisch ein bisschen.
01:21:49: Also als ich mir gerade nochmal angeguckt habe Hat das nicht direkt geleuchtet.
01:21:53: muss ich zugeben
01:21:54: Das mit dem self?
01:21:55: Ja!
01:21:55: Also ich verstehe es jetzt wieder Aber dass ist ein bisschen unhandlich.
01:22:00: Ich muss da eigentlich zwei Sachen zu sagen.
01:22:02: Erstens ... Oder sag du mal deine Sache
01:22:04: zu mir?
01:22:04: Nee, nee, nee!
01:22:05: Du wolltest zwei Sachen sagen, ich zähle mit.
01:22:07: Erstends hab ich das jetzt bei verschiedenen Sprachen gesehen und merke, dass wir vielleicht so ein bisschen aus unserer Javascript- und Java-Historie kommen, die nicht so gewohnt sind.
01:22:18: Aber bei Python ist es halt so, bei Go ist es auch so, wenn du Structis implementierst, dass du immer diesen Selfparameter quasi hast.
01:22:26: Und ich hab ja auch damals den Elements of Computing System Kurs gemacht.
01:22:32: Da ist das auch so, dass quasi oft da... Also wenn man sich anguckt wie es tatsächlich auf einer VM oder so läuft, dass eigentlich für jede Methode, also wenn du so Objekt orientiert was machst?
01:22:47: Für jede Methore ist quasi implizit der erste Parameter immer ...self oder this.
01:22:52: Und es hat einfach nichts gezielt gemacht, dass self einfach dieser Parameter ist.
01:22:56: Aber
01:22:56: das ist eine gute Überleitung zum Type-Stay-Pattern!
01:23:00: Stunde Zweiundzwanzig Hammer!
01:23:04: Nein, gut, das Type-stay-pattern... Das kriegt ihr nur ne Honorable Mansion, das finde ich mega geil.
01:23:09: Schaut's euch an, Hammer geht nur in Rust und ja mehr sag' ich dazu jetzt nicht, keiner.
01:23:14: Erlsausaufgabe für euch.
01:23:16: Ich denke, ein T-Mark kann man... Na vielleicht, keine Ahnung.
01:23:19: Du willst noch?
01:23:20: Komm,
01:23:21: hier.
01:23:21: Makros und Asyngrust machen wir noch okay?
01:23:25: Wir machen heute mal länger weil das ein Herzensthema ist.
01:23:28: Okay!
01:23:30: Und wir haben
01:23:30: auch eher mehr als halb zehn.
01:23:31: Wir haben bis zehn Uhr Zeit.
01:23:33: Jaa... Vielleicht ja eigentlich nicht aber wir haben ja sehr früh angefangen.
01:23:42: Egal.
01:23:43: Makros kann ich in der Tat... Zumindest
01:23:44: Makros in Berührung bekommen.
01:23:46: Nein
01:23:47: Hast du Print LN aufgerufen?
01:23:50: Ja.
01:23:50: Dann hast du ein Makro benutzt.
01:23:52: Geil, fantastisch!
01:23:53: Okay dann Async.
01:23:57: Also Makros gibt es so in verschiedenen Flavors.
01:24:01: Es gibt halt die Makros, die man so bisschen metodenmäßig aufruft wie zum Beispiel Print Ln mit Ausrufezeichen.
01:24:06: Daran sieht man immer hier kommt Makro und was das Print L n quasi macht ist Das sieht aus, als ob das so eine WarArks-Methode ist.
01:24:16: Sieht erst mal aus wie man jetzt in Java oder wahrscheinlich ... Ja, in Java gibt's halt diese Texte, da ist das egal.
01:24:20: Aber in Java ist es zum Beispiel so, wenn man StringFormat aufruft, dann hat man einen FormatString und dann gibt man dahinter alle Argumente an die in dem Format benutzt werden.
01:24:29: Und das ist so ne WarArx-Metode.
01:24:32: In Rust gibt es aber keine VariableArguments Methoden.
01:24:36: Ist einfach nicht Teil der Sprache!
01:24:38: Und dieses PrintLn makro generiert, weil Makros sind immer Kot-Generierung zur Compile Zeit.
01:24:45: Generiert quasi zur Compil-Zeit alle verschiedenen Methoden die du bräuchtes um deine verschiedenen Printer in den Aufruf zu machen.
01:24:52: Ach
01:24:52: so!
01:24:52: Auf erheben?
01:24:53: Ja das auch am Anfang denkt man sich auch so hä was soll das?
01:24:56: und ja.
01:24:57: So dann gibt es noch die Derive Makros.
01:25:00: Das sind quasi Makros die man an... Ich hab übrigens gar keine Ahnung von was, wollte ich nur mal kurz.
01:25:05: Richtig nein also du hast wirklich gar keine ahnung.
01:25:07: Ich habe mich damit nur Eine Woche einen lang beschäftigt.
01:25:10: Derive Makros sind so Makros, die man ... Ich spreche übrigens noch nicht darüber wie man selber Makros baut.
01:25:16: Sollen wir über selber Makro bauen reden?
01:25:19: Leute haben diesen ... Muss ich den Seufz da noch lauter ... muss ich noch lautes Seufzen?
01:25:24: Nein aber derive makros ist ziemlich wichtig weil man das immer braucht wenn man Serialisierung macht und man braucht ja immer irgendwie Jason oder Jammel oder irgendwas.
01:25:33: Ja,
01:25:34: Jason.
01:25:34: Das ist halt eine Library.
01:25:37: Wie heißt CERDI?
01:25:40: Das ist halt ein makrobasiertes Serialisierungs- und deren Serialiserungsframework.
01:25:44: D.h.,
01:25:45: ich schreibe an mein Struct, weil Datenstrukturen sind halt Structs dran, dass sich gerne die Serialisierung deriven möchte... ...und dann wird zur Compile-Zeit der ganze Serializierungskode generiert.
01:25:57: Das ist jetzt nicht so wie bei Java, das es so wie mit Jackson Runtime Reflection ist?
01:26:03: Wo man immer sagt, das ist ja so langsam und andere wieder sagen nee.
01:26:05: Das ist gar nicht langsam da sind ja V-Tables und geht alles ganz schnell bla bla.
01:26:09: Bei Russ ist halt der Code, der das realisiert wird einfach generiert für dich und dann ist er einfach da.
01:26:14: Und das sind halt einfach Makros.
01:26:15: du schreibst halt hast ein bestimmter Syntax, schreib's irgendwo was dran und dadurch wird die Code genanierte Punkt.
01:26:22: Und ja... Das sieht man halt öfter mal an verschiedenen Stellen.
01:26:29: Das klingt also grundsätzlich klingelt.
01:26:31: das war cool, weil dadurch kann ich ja eine ganze.
01:26:35: Menge an Komplicität einfach rausnehmen.
01:26:38: für mich als Anwender ist ja cool weiß noch nicht was das für Nachteile hat aber.
01:26:43: Die Kompilzeiten werden dadurch halt höher?
01:26:46: Weil der Kompiler kompilitiert jetzt dann findet die Makros da fängt ein Code zu generieren.
01:26:50: Dann kompilliert er den Kot denn er gerade generiert hat und weiss nicht ob es auch mehrstufig ist wenn jetzt in dem generierten Code wieder Makros drin sind ob die dann auch wieder ausgebettet werden würden, ob das Steuernstufel ist.
01:27:01: Aber es hat einfach darauf, wie lange dein Bild ist.
01:27:04: Ich hab hier gerade einen Schneider bei mir im Raum.
01:27:08: Ich mag nicht gerne Schneider.
01:27:10: Magst du keine Schneide eigentlich?
01:27:12: Kleine Insektenattacke!
01:27:14: Nee guck mal, Makros super schön abgehandelt.
01:27:16: Ja geil!
01:27:17: Dann können wir ja über das sehr einfache und sehr schnelle Thema Ace & Grust.
01:27:21: noch eben schnell reden die letzten fünf Minuten.
01:27:24: Als ich meine Crap-Set... Wir
01:27:28: verlinken Crap Stat in den Show Notes, damit ihr euch das benutzen könnt.
01:27:32: Es ist eine Blazingly Fast-Alternative zu FastFetch und NeoFetch.
01:27:37: Was immer NeoFedge isst?
01:27:39: Aber ich hab keine Ahnung...
01:27:39: Das ist natürlich so ein Tool was du gemacht hast, was du...
01:27:42: Verdammt noch mal!
01:27:43: Ich war wieder... Ist nicht
01:27:44: Blazingley Fast weil es nicht in Rust programmiert ist glaube
01:27:46: ich.
01:27:46: Ist das so?
01:27:47: Also NeoFed ist ja discontinued.
01:27:49: jetzt benutzt man ja FastFatch.
01:27:51: Weinig oder umgekehrt?
01:27:52: Ich hab keine ahnung von was du redest.
01:27:55: Was
01:27:58: ist FastFetch?
01:28:01: Ich glaube, Fast Fetch.
01:28:02: Nee das ist Seven-Aussegnung.
01:28:03: Ja genau, Fastfetch macht man heutzutage.
01:28:05: Und
01:28:05: was ist denn das?
01:28:08: Ach so!
01:28:08: Das ist halt so ein Tool, das gibt ja so Sachen aus die du halt auf deinem Computer hast.
01:28:16: Da steht dann zum Beispiel wenn du nix OS machst... Dieser Mensch isst einen nixOS mit der Hand.
01:28:20: Achso, ach das okay.
01:28:23: Ah ok, verstehe ich.
01:28:25: Ja, genau, genau.
01:28:26: So etwas ist das halt.... Sagen wir mal nicht ganz so umfangreich, also genau.
01:28:33: Ich gucke gerade... Das ist etwa ein... das ist in C geschrieben.
01:28:38: Ach, ich sehe hier eine C-Makelist Text, dass ja richtiger Mist, ne?
01:28:41: Da muss man auf jeden Fall was im Rust haben.
01:28:43: Auf jeden Fall!
01:28:44: Nein, also was ich da gemacht habe, ich wollte natürlich auch Async sein weil Async is'ja the way to go und da gibt es verschiedene Calls die dir jetzt was ist ich den Host nehmen oder Äh weiß ich nicht, paar Sachen raus dingsen und das willst du natürlich parallel machen.
01:29:01: Klar
01:29:02: weil äh statische ähm äh hier so statische Calls die sollte man immer parallel machen.
01:29:08: ja aber das wollte ich halt tun einfach nur um es gemacht zu haben.
01:29:11: Ja.
01:29:11: Und da hab' ich einfach mit Threads Born gemacht also mit Threds äh äh also mit hinterher noch Join.
01:29:17: Mhm.
01:29:19: Ja hat funktioniert.
01:29:21: Ja war okay.
01:29:25: Aber du wolltest auf eine andere Art und Weise, wie man mit Rust Async umgeht.
01:29:31: Ja es gibt ja Leute die sagen, Async Rust ist so die hohe Schule des Rust Programmierens.
01:29:38: Also Rust hat ein Async-Programmiermodell das so ein bisschen finde ich daran erinnert wie das in JavaScript ist.
01:29:46: Das heißt ich habe im Prinzip so Blue and Green Functions aber Funktionen sind Synchrohen, die kann ich immer überall aufrufen Und ich hab halt Async-Funktion, die kann nicht einfach so aufrufen.
01:30:01: Jetzt musst du mir mal kurz helfen.
01:30:02: in Javascript oder TypeScript ist das so?
01:30:04: Wenn ich eine asyncfn aufrufe und ihr waite ... dann wird da irgendwo noch so ne Promise hingezaubert, ne?
01:30:11: Oder wie?
01:30:12: Ja,
01:30:12: ja!
01:30:13: Erstmal muss der Kontext, indem ich das Aufrufe auch als Async sein... ...und der's Promise wird für dich automatisch aufgehandelt.
01:30:24: Aber da ist halt, ja also du kannst... Also wenn du eine Funktion die Asynchronis awaitest wird das Promise für dich aufgelöst.
01:30:33: Wenn es nicht awaited ist, ist halt das Promise der Art und kannst mit dem Promise umhandieren wie du das möchtest.
01:30:38: Jetzt habe ich dich ja vorher die Falle tappen lassen weil Du hast mir gerade vorgeworfen dass ich da so direkt ein Deep Dive machen würde und Du hast jetzt einfach schon direkt so angefangen.
01:30:46: Das versteht ja jetzt keiner mehr.
01:30:49: Ich war einfach noch höflich, ich bin ein höflicher Mensch, ich hab einfach deine Frage beantwortet.
01:30:52: Wir
01:30:53: können ja erst mal kurz erklären, welches Problem man damit überhaupt löst.
01:30:57: Mit Grüne?
01:30:57: Also im Corona-Programmierung.
01:30:58: Ähm ... also genau!
01:31:04: Wenn ich wie du das gerade beschrieben hast mit verschiedenen Threads arbeite... Das hab' ich jetzt nämlich auch endlich verstanden.
01:31:10: wir haben nicht mal eine Folge gemacht.
01:31:11: da haben wir glaube über Java Virtual Thread Geräte und keiner von uns wusste richtig was das eigentlich bringen soll.
01:31:17: Wenn ich ein Betriebssystem Thread starte dann sage ich halt den Betrieb System macht mir einen neuen Thread und ein Thread ist halt relativ heavy, weil der seinen eigenen Stack und weiß nicht was für Sachen?
01:31:31: das eine sehr relativ schwere Aufgabe nimmt auch Speicher weg.
01:31:38: Und ich kann da nicht unbegrenzt viele Threads machen, weil die eben ja... ...Speicher brauchen und Kontext switches und weiss nicht was.
01:31:50: Jetzt möchte ich aber trotzdem jetzt.
01:31:53: Also jetzt stellt man aber fest, wenn man zum Beispiel Web-Anwendung baut.
01:31:56: Dass Web Anwendungen meistens ein Request entgegennehmen und dann die meiste Zeit eigentlich damit verbringen auf
01:32:02: I.O.,
01:32:03: also darauf zu warten, dass z.B.
01:32:04: eine Datenbank antwortet, da aufzuwarten, das irgendwie in den Datei fertig gelesen wird, darauf zu warten, dass ein weiterer Network Call auf ein anderes System wieder zurückkommt.
01:32:15: Und wenn ich das auf der Ebene von Threads implementiere?
01:32:18: Dann kann ja jeder Thread ... Ich krieg einen Request rein, er wird von einem Thread entgegengenommen Der Thread macht eine Datenwangabfrage und jetzt wartet der, weil das blockiert.
01:32:27: Er wartet darauf, dass die Anfrage zurückkommt.
01:32:29: So lange kann dieser Thread nichts anderes machen.
01:32:31: Der ist einfach da und wartet und macht nichts.
01:32:33: Und Async-Programmierung ist so ein Gegenentwurf ... Weil man da sozusagen nicht auf der Ebene von US-Threads parallelisiert, sondern man hat quasi auf der Sprachebene Tasks oder wie auch immer man das nennen möchte Und die Runtime sorgt dafür, dass zwischen diesen Tasken einfach hin und her geschaltet wird.
01:33:00: So bei JavaScript sind das dann halt die Promises, die sozusagen hier geht es gerade nicht weiter... ...und wenn die Rantime an unseren Await-Punkt kommt, kann sie quasi auf den nächsten... Also ich hatte im Hintergrund so ein Loop der immer durchläuft und guckt welcher Task kann ihn gerade weitermachen?
01:33:21: E-Poll vielleicht reden, weil das ist auch noch wichtig im Betriebssystem dafür.
01:33:26: Wir verlinken da eine legendäre Parallop-Habfolge, wo wir das Modell in Browser haben.
01:33:31: Ach klar!
01:33:32: Geht ihr da richtig bis runter aufs Metall mit E-Paul und so?
01:33:34: Nein.
01:33:35: Ah schade... Aber wir unterscheiden dazwischen Node und Browsermodell und wie das dann mit den ganzen Cues wird.
01:33:42: Verlinkt
01:33:42: das auf jeden Fall?
01:33:43: Ja.
01:33:45: Die Erkenntnis ist auf jeden fall Web Anwendungen oder solche Anwendung Die viele Requests verarbeiten sollen können sollen warten hauptsächlich auf.
01:33:58: Und asynchrone Programmierung benutzt wenig ein oder wenige Threats und schaltet zwischen diesen verschiedenen Aufgaben, die halt warten müssen.
01:34:07: immerhin und her gibt es dann also verschiedene Mechanismen im Betriebssystem unter anderem das EpoL um Äh, wenn jetzt dieser IO-Call fertig ist wieder zurück zu benachten und sagen oh der ist jetzt fertig macht er mal weiter.
01:34:21: Und dann wird der Task wieder eingereit und wir wieder weiterverarbeitet.
01:34:24: So!
01:34:25: Und jetzt haben wir gerade gesagt bei JavaScript gibt es eben diese promisebasierten Ansatz... ...und bei Rust ist das aber nochmal so ein bisschen so'n anderer Twist weil ich kann zwar hinschreiben asyncfn also können Async Funktion definieren Aber rust Die Sprache selber bringt keine Runtime dafür mit.
01:34:44: Also man kann so eine Funktion machen, da kann ich nicht benutzen einfach.
01:34:48: Sondern die Runtim ist halt ein externes Crate also quasi ein Community-Projekt im Prinzip.
01:34:53: das finde ich erstmal schon mal ziemlich wild muss ich sagen oder?
01:34:56: Das versteh' ich auch nicht ganz aber gut.
01:35:00: Da is es erst mal so!
01:35:02: Das kommt eigentlich aus dem Grund dass Rust ja Low-Level Systemprogrammi Sprache ist, die erst mal diese Building Blocks mitbringt.
01:35:15: Und Tokyo das ist halt die Hauptrundtime also, die man eigentlich normal ... Die meisten Leute wahrscheinlich benutzen werden.
01:35:21: wenn sie jetzt irgendwie ein DNS-Verbraucher so bauen dann würde man vermutlich Tokio benutzen.
01:35:27: Wenn ich aber zum Beispiel Embedded Rust machen möchte weil ich kann Rust auch benutzen um Embeddit Devices zu programmieren da kann ich Tokio nicht benutzen Weil Tokio z.B eine Standard Library braucht.
01:35:37: also darauf basiert dass der Linux Kernel bestimmte Funktionalitäten bereitstellt.
01:35:43: Wenn
01:35:43: ich embedded programmiere, habe ich kein Linux Kerneln weil dann ist mein Programm das einzige Programm was auf diesem Device gerade läuft.
01:35:49: und da gibt es aber eine eigene Async Runtime die quasi direkt mit Hardware Interrupts arbeitet heißt Embassy glaube ich.
01:36:02: Die nutzt dieselben Building Blocks, die halt in der Sprache Rust drin sind und implementiert auf einer anderen Hardware-Basis.
01:36:09: Das kann aber wieder Asynch programmieren.
01:36:11: Das
01:36:11: gleiche Programmiermodell, aber ein anderes Framework.
01:36:14: im Endeffekt was das halt...
01:36:15: ...das
01:36:17: ganz Interrupt Handling anders macht?
01:36:19: Das ist krass, ja okay!
01:36:21: Ja, das ist krasst, es ist halt auch irgendwie erst mal, dass man nicht denkt so ok, das is irgendwie wild.
01:36:26: Ja gut finde ich jetzt krass.
01:36:28: da kommen wir wieder an einen Punkt vom Anfang, ich fühle das faszinierend.
01:36:32: Aber welchen Newscase gibt's das, dass ich dann zwischen embedded und nicht embedded rumswitchen kann.
01:36:40: Ich hab mich da letztens ein bisschen eingelesen, ehrlich gesagt weil ich das auch mal spannend fand.
01:36:45: Weil ich einfach mal gucken wollte was kann man damit machen irgendwie?
01:36:49: Es gibt da wohl so einen relativ weit verbreiteten Mikro-Kontroller der heißt irgendwie STM-Dreißig.
01:36:56: Da gibts halt ganz kleine Boards für fünf Euro die auch schon so Debugports ... Flash-Speicher und GPIO Pins und so haben.
01:37:04: Da hab ich mir echt überlegt, ob ich mehr so ein Ding mal kaufen soll?
01:37:07: Das ist halt dann echt nur so kleiner als ein Pi... ...und dazu dann einfach irgendwie ein E-Ink-Display... ...dann einfach irgendwas basteln damit!
01:37:15: Also das jetzt natürlich... Ja, braucht man's nicht?
01:37:18: Nein keine Ahnung.
01:37:19: Man kann natürlich einen Embedded Device mit C programmieren.
01:37:22: Das ist wahrscheinlich das was die heißen Leute machen werden.
01:37:25: Aber du kannst halt auch mit Rust machen und dann ist es halt... Dann hast du halt diese also... Du hast dann weniger Features, weil du an die Standard Library nicht benutzen kannst.
01:37:34: Das ist erst mal ein bisschen blöd!
01:37:36: Aber du kannst ja trotzdem Enums machen und Structs machen.
01:37:39: Du kannst Pattern Matchen, du kannst Options und Results machen... Du kannst sowas wie Embassy benutzen, weil wenn du nachdenkst, wenn du jetzt irgendwie so einen Mikrocontroller hast, der hat vielleicht irgendwie ein Wetter-Sensor über seinen TV Open angeschlossen?
01:37:55: Und er steuert noch nen E-Inc-Display an um da das Wetter anzuzeigen dann hast du halt so ein Async Loop, der immer für eine Minute schläft und das Display aktualisiert.
01:38:08: Und Du hast halt so einen Await, dass immer auf Daten von dem Sensor wartet und einfach so ein geteiltes Datastruct aktualiziert.
01:38:15: Ja ja, verschön!
01:38:16: Wenn Du das mit C machst, Du musst halt diesen ganzen... Du musst alles quasi vorhanden machen also Du musst die ganze Speichermanagement musst Du vorhandemachen.
01:38:23: Ja, ich verstehe ja.
01:38:23: Du musst
01:38:24: diese ganz Interrupt Handling und wo bin ich gerade in welchem Zustand und wo ist der Speicher?
01:38:28: Keine Ahnung was Und das finde ich schon.
01:38:31: Das ist halt wieder so dieses, was du gerade sagst, dass es irgendwie spannend ist, mal auszuprobieren und zu gucken, was da so geht.
01:38:36: Wir verlinken dieses Board?
01:38:37: Was du da ... Ich kannte das nicht.
01:38:40: Wie heißt das?
01:38:41: Ach, dieses STM-XVII-Board.
01:38:44: Das legendäre STM XVIII-Boarde.
01:38:45: Nicht, dass ich jetzt misster erzählt hab, aber immer.
01:38:47: STM... XVII... Mikro... Ja.
01:38:50: Uppsala!
01:38:51: Ja,
01:38:51: d.h.,
01:38:52: STM XXVII.
01:38:56: Ähm, ja.
01:38:57: So, ich muss jetzt leider sagen.
01:38:59: Du musst ins Bett?
01:39:00: Ich bin...ich gerne.
01:39:02: Sonst geh'n du doch schlafen und ich mach noch weiter!
01:39:05: Wir haben noch nicht über die ganzen Crades geredet, die es so gibt, die man auf jeden Fall mal... Das ist hier falsch, das muss kurz zum Fehler progieren.
01:39:13: Yuracru heißt das.
01:39:17: Wenn du dir jetzt ein Crade aussuchen müsstest, über den du gerne sprechen möchtest, welchen würdest du?
01:39:21: Welcher wär denn dein Lieblings-Crade?
01:39:24: Ratatouille.
01:39:24: Ich bin ja für einen Nom.
01:39:25: Pasa-Kombinators.
01:39:28: Nein, Ratatouille ist auch geil.
01:39:29: Ja, ich habe den nur kurz reingeguckt.
01:39:33: Ich hab ja für meinen Crab Set ganz billig aber meine Abstraktion um eine Tue zu machen ist Print Line und also malen mir eine Zeile und ich hab mich am Format String und kann da Dinge tun.
01:39:50: Das ist für eine Kommando-Zeile schon okayisch Und du kannst dann jetzt mit Ratatouille auf Rust-Ebene, halt keine Ahnung Fenster bauen oder Frames bauen.
01:40:04: Und das fand ich schon ganz sexy!
01:40:05: Das geht auch mit sowas wie mit... Du kannst auch mit React machen.
01:40:12: Also du kannst React auf Terminal rennen lassen und das geht auch?
01:40:18: Ich will mich nicht so weit aus dem Fenster lehnen aber meine gehört zu haben dass Ratatoue so ein Reacttisches
01:40:28: Das
01:40:30: heißt
01:40:30: Rust und React.
01:40:35: Ich überprüfe das jetzt gar nicht, ich sag einfach nur ist es mega geil.
01:40:40: Ja.
01:40:41: Und das finde ich cool einfach nur weil ich diese Abstraktion habe und weil er's dann noch mal einfacher
01:40:47: macht.
01:40:49: Wenn du so halt Twee Spouse Also wenn du das von Hand machst, dann ... es gibt ja für das Terminal quasi so Control-Characters.
01:40:57: Die dafür sorgen, dass halt die Zeile wieder gekliert wird und so oder der Cursor sich irgendwie rückwärts bewegt und so.
01:41:02: Und das ist ja richtig ... richtig painful glaub ich, wenn man das vonhand machen würde.
01:41:06: Ja!
01:41:06: Und Ratatouille bringt einem halt so Abstraktionen mit, die einem helfen halt einfach zu sagen, ich möchte jetzt hier so ein Widget haben also im Prinzip so ein bisschen als ob du so eine GUI halt programmieren würdest nur halt fürs Terminal.
01:41:18: Das schon ziemlich nice, ja?
01:41:21: Hab ich aber selber auch noch nicht benutzt.
01:41:22: Das würde ich in der Tat mal ausprobieren wollen, weil das ist irgendwie sowas... Also ich wüsste jetzt auch nur nicht was ich damit machen wollte.
01:41:28: Vielleicht würde ich einfach nur CrapStat darauf umbauen und gucken ob so was passiert?
01:41:33: Ja, wobei vielleicht würde für Crap Stats sogar schon das reichen, was ich für das Nix Packages PR genommen habe.
01:41:47: Ich guck mal gerade wie das heißt.
01:41:51: Leute.
01:41:51: dann meine geile Tastatur.
01:41:54: Ich habe da genommen das Colour, heißt das einfach nur?
01:41:58: Das hab ich auch.
01:42:00: Da kann man dann so grüne Haken zum Beispiel machen oder unterstrichen oder bohlt von... Das ist ja schon mehr als normalerweise mache wenn ich auf die Konsole schreibe.
01:42:10: Nein aber das ist schon drin mein ich.
01:42:14: Also man kann schön Farben definieren und das ist doch schon drin, das ist geil!
01:42:20: Ja Damit sind wir am Ende des Rosting Fans angekommen.
01:42:23: Was ist denn dein Verdict jetzt?
01:42:25: Ich hab gehört
01:42:26: nach einem nach anfänglichem... Nach anfänglicher Euphorie, als du das angefangen hast mal eine Woche lang deinen Crap State zu bauen, ist die Euphoria dann doch wieder ein bisschen abgeklungen.
01:42:37: Ja ich wollte eigentlich nur für mich rausfinden kann nicht aus was muss ich dafür tun?
01:42:42: und ich habe festgestellt ja kann ich Ich kann so einen Terminal bauen aber ab dann Hab dann für mich festgestellt, läuft.
01:42:55: Kann ich machen und weiß wie das funktioniert?
01:42:57: Ja!
01:42:58: Und mehr mich da so reinzugraben hatte ich dann irgendwie auch keine Lust mehr und keine...weiß nicht.
01:43:04: Da fehlt mir der Use-Gaze glaube ich ja.
01:43:06: Dafür ganz ehrlich trägt Crap-Set jetzt nicht als Use-gaze genug.
01:43:11: Das habe ich bei mir gerade auch ein bisschen das Nix Packages PR und das andere heißt ja ClipMD das Tool was ich gebaut hab.
01:43:18: die sind langsam ausimplementiert.
01:43:20: Da kann man eigentlich nicht mehr so viel mitmachen.
01:43:23: Jetzt überlege ich halt gerade, suche ich mir jetzt einfach irgendein Problem?
01:43:26: Einfach nur um Rust zu machen oder versuche ich das irgendwo beruflich mit einzubauen, dass sich das werden wir machen... Das führt schon wieder zu einer Metadiskussion.
01:43:35: Wozu macht man das überhaupt?
01:43:37: Also was ist überhaupt der Sinn davon, das zu tun?
01:43:41: Irgendwie macht man es erst für den Spaß aber dann denkt man sich ja, ich muss aber irgendwie arbeitsmäßig den Sinn darin sehen.
01:43:47: Aber gut da brauchen wir diesmal nicht darüber reden.
01:43:50: Das ist eine Meta-Diskursion, die wir vielleicht an einem anderen Tag führen können.
01:43:53: Weil der Holger hat schon ganz kleine müde, coole Augen und möchte ganz schnell in sein kuscheliges Kuschelbett um seinen Schlafanzug anziehen... Ja!
01:44:02: Die schlafen mit zu aufsetzen.
01:44:03: Genau.
01:44:05: Ich muss da dann noch ein Kapitel im Buch lesen.
01:44:08: Da muss ich dich nicht von abhalten.
01:44:11: Ne aber was ist deinwürdigt?
01:44:15: Bist du oft einer Rustriser Am Ende?
01:44:20: hast du aus dieser Folge jetzt noch mehr Motivation gezogen?
01:44:23: Ist das für dich an Zwischenschritt?
01:44:29: Ich habe mal wieder gemerkt, dass man doch irgendwie mehr mitnimmt und aufschnabbt.
01:44:33: Und kann als man sich selber doch bewusst ist wenn man dann die ganzen Dinge doch irgendwie erklärt.
01:44:39: Ich möchte auf jeden Fall Async Rust nochmal machen.
01:44:44: Das habe ich noch gar nicht gemacht.
01:44:46: Endet eigentlich jede Folge so... Ich glaube, ich weiß doch mehr als sagen wir mal nix.
01:44:52: Also also jetzt nicht nix, als gar nichts jetzt so ist egal.
01:44:58: Genau!
01:44:58: Also ich würde ja auf jeden Fall gerne mir Asing Rust nochmal angucken.
01:45:01: Ich würd' mir gerne Embedded Rust angucken und ich würde mir gerne Ratatouille noch einmal angucken...
01:45:05: Ja, Asing rust würde ich mir in der Tat das ... also mit Tokyo habe ich jetzt auch irgendwie neugierig gemacht wie es jetzt wieder funktioniert?
01:45:11: Ja aber wie gesagt, ich hab da ja diesen einen Typ-Signatur dazu geschrieben Weil das haben wir gerade so ein bisschen unterschlagen ist, dass bei Async Rust ... Ist es eben nicht so wie bei JavaScript.
01:45:23: Dass man eine Promise hat die sofort losläuft oder ne Go-Routine die sofort lossläuft wie bei Go sondern der Compiler generiert einem im Prinzip so ne State Machine in den Code rein, die man einfach noch nicht sieht.
01:45:34: Außer man muss sie doch sehen und dann wird's ziemlich kompliziert ehrlich gesagt.
01:45:40: Ja egal.
01:45:41: also das würde ich mir auf jeden Fall gerne angucken.
01:45:42: Ähm, wo steh ich da mit meiner Reise?
01:45:46: Irgendwie ... Ich hab immer Spaß.
01:45:49: Wenn ich's mache!
01:45:50: Also wenn ich's mach', merke ich, ich habe Spaß und bin so immersed irgendwie im Programmieren wie früher.
01:45:56: Dass ich mega drin bin und dann so stundenlang ... Sachen mach'.
01:45:59: Und hab Bock drauf, das macht mich erst mal glücklich.
01:46:01: Deshalb ist es eine gute Sache, dass ich das mache.
01:46:05: Bringt mir das jetzt karrieretechnisch was?
01:46:07: Ich weiß es zum jetzigen Zeitpunkt nicht einfach weil... bisschen, was ich jetzt gelernt habe kann jedes LLM wahrscheinlich schneller und besser generieren als das, was sich jetzt von Hand hin programmiere.
01:46:17: Das ist so ein bisschen die Metadiskussion, die wir am Ende am Anfang ausgespart haben.
01:46:25: Vielleicht auch nochmal interessant für eine Folge warum... Warum lernt man eigentlich überhaupt noch etwas irgendwie?
01:46:31: Oder wie viel Lernen macht heute noch Sinn?
01:46:33: Reicht es alles überflächlich zu können Genau.
01:46:39: Aber solange ich daran Spaß habe, Dinge damit zu tun, würde ich jetzt erst mal weitermachen.
01:46:44: Meinst du trägt das für eine ganze Folge?
01:46:50: Warum sollte ich heute noch was lernen?
01:46:52: Klar!
01:46:53: Können wir mal gucken, wie lange der rote fahren wird und dazu was aufschreiben.
01:46:59: Oder haben wir das schon mal zugesagt?
01:47:00: Ich weiß es nicht, ich müsste mal gucken.
01:47:02: Nee,
01:47:02: wir haben nur gemacht, was sollen Entwickler im Jahr zwanzig sechsundzwanzig kürzen.
01:47:05: Ah okay
01:47:06: ja gut, ist ein bisschen verwandt aber können wir immer gucken genau.
01:47:10: Genau
01:47:10: also ähm ... würde im Moment jemand mich für eine Rust-Stelle einstellen mit dem was ich kann?
01:47:19: Wahrscheinlich nicht, weil jemand der etwas mehr Rust kann als ich.
01:47:22: Der kann halt einfach mit dem LLM.
01:47:24: oder jemand der auch keinen Rust kann, kannst du mit einem LLm wahrscheinlich besser als ich?
01:47:28: Spart das aber jetzt erst mal aus!
01:47:32: Du hast gerade für dich schon festgestellt, oh ich kann ja schon ein bisschen was und lass uns die Diskussion einfach aussparen.
01:47:40: Du redest dich da unnötig im Kopf und krankt.
01:47:41: Genau, aber
01:47:44: was?
01:47:45: Deshalb ist das verdict.
01:47:46: Es macht mir mega viel Spaß und ich werde es auch erst mal weiter machen.
01:47:50: Ich möchte ... Generell möchte ich, glaube ich, mein Ziel so über die letzten Jahre gewesen, nachdem ich ja sehr stark im Java wirklich alles versucht habe irgendwie zur Perfektion zu treiben also nicht alles, aber halt bestimmte Bereiche in der Java-Entwicklung oder in einer Java-Toolchain gut zu beherrschen.
01:48:10: Das hab' ich ein bisschen paar Jahre lang gemacht merke ich jetzt, dass ich mich irgendwie breiter aufstellen möchte und mehr verschiedene Sprachen irgendwie uns Stacks beherrschen möchte um halt ein weiteres breites Spektrum von Problemen lösen zu können.
01:48:22: Weil man kann mit Java halt vieles machen aber es gibt halt bestimmte Sachen die sollte man vielleicht nicht unbedingt mit Java machen.
01:48:28: Streitbare These aber stelle ich mich jetzt einfach mal so hin und sage man sollte nicht alles mit Java
01:48:35: tun.
01:48:35: Ich sehe Schaum von nun bei verschiedenen Leuten.
01:48:38: das ist schön!
01:48:39: Das gefällt mir.
01:48:41: Wenn jemand jetzt vor dem leeren Rustblatt steht, wie fängt man an?
01:48:47: Gut, dass du fragst.
01:48:49: Ich habe dir noch gar nicht davon erzählt, dass ich Notebook LM von Google benutzt habe um Rust zu lernen.
01:48:55: Ach Quatsch!
01:48:55: Kennst du NotebookLM?
01:48:57: Ja genau das ist so ein Tool.
01:48:59: Kollege Hallo Alexey und er hat mir davon erzählt ,dass er sich da von Fachartikeln Podcast generieren muss.
01:49:08: Genau, so hab ich auch davon gehört.
01:49:09: Der Palo von der NixOS Community in Essen hat mir davon erzählt und zwar ist das ein Google-Produkt.
01:49:16: da kann man Quellen sammeln also kannteoretisch gesehen alle möglichen Dokumente PDFs keine Ahnung was.
01:49:23: Ich mach es in der Regel so dass ich halt links da rein packe und dann sag' ich zum Beispiel ich möchte gerne Async Rust verstehen.
01:49:31: Dann frage ich halt Claude oder ein anderes LLM Danach was sind relevante Quellen für dieses Thema?
01:49:37: Lass mir das alles zusammenstellen.
01:49:39: Packt das dann nach Notebook LM, macht da noch so ein Prompt wo ich dann sage generieren wir der rausen Podcast und dann macht er mehr in dreißig Minuten Podcast daraus mit zwei Sprechern.
01:49:48: Und meistens hört sich das sogar einigermaßen gescheitert an.
01:49:51: also es ist meistens eine weibliche und männliche Stimme und manchmal zwischendurch ändert sich die Stimme dann irgendwie okay.
01:49:58: ist das jetzt eine andere Person wie komisch?
01:50:01: Also es ist schon manchmal so bisschen klanky auf Weil wenn es technische oder englische Begriffe sind, ist auch manchmal ein bisschen komisch.
01:50:07: Da kann man mit dem Prompt so ein bisschen spielen, dass man zum Beispiel sagt... Wenn du dir die Rust-Dokumentation anguckst, dann liest bitte in den Podcast nicht den Code vor!
01:50:15: Sondern beschreibe den Code nur High Level.
01:50:18: Und da habe ich mir so sechs, sieben Folgen generiert, immer so eine halbe Stunde.
01:50:21: Also das ganze Zeug was ich jetzt über Async and Rust z.B.
01:50:24: erzählt habe, also wie das genau funktioniert, da hab' ich natürlich auch so einen Blogposten sehr elaborierten gelesen.
01:50:29: Aber das habe ich halt dadurch gelernt dass ich mir einen Podcast generiert habe und mir den angehört hab.
01:50:37: Cool!
01:50:38: Ansonsten, der Let's Get Rusty YouTube Channel ist für mich eine große Empfehlung.
01:50:45: Das ist ein Typ, der macht halt einfach Rust Videos.
01:50:50: Sie haben immer ne gute Länge, sind sehr scoped auf ein bestimmtes Thema.
01:50:55: Und das guck' ich eigentlich letzter Zeit ganz gerne.
01:50:58: Und ansonsten kann ich auf jeden Fall ... Wenn man sich mit der Sündtags ein bisschen vertraut gemacht hat und es schon ein bisschen kann.
01:51:05: Dann kann ich auf jeden Fall Codecraft das IO empfehlen, wenn man etwas mehr Zeit hat da sollte man aber für so Projekte schon eine Woche für frei schaufeln irgendwie.
01:51:13: also ist jetzt aus meiner Sicht nicht sowas was man mal irgendwie so ein bisschen nebenbei machen kann sonst ist es nicht so effektiv glaube ich.
01:51:23: Ja gibt auch Leute die so Diese Rustlings oder wie das heißt also so mini Probleme irgendwie, die man dann fixen muss.
01:51:30: Das finde ich jetzt nicht so toll ist es nicht für mich aber vielleicht ist das auch für die Leute was
01:51:35: okay
01:51:36: und... Ich glaube das ist so.
01:51:38: ansonsten gibt's natürlich die Standard-Dokumentation.
01:51:40: Es gibt einen Standardbuch was man sich durchlesen kann.
01:51:43: Das hängt ein bisschen davon ab was man für den Lerntyp ist würde ich sagen.
01:51:46: Aber Nach wie vor ist ja immer schon mein Kredo gewesen.
01:51:49: Programmieren ist halt eine Handarbeit und deshalb am besten ein bisschen Rust programmieren hilft am meisten, unterzuflechten LMM im Tutor-Modus irgendwie sich einen eigenen Tutorskill schreiben und dem LLM beibringen.
01:52:01: Sag mir nicht die Lösung sondern erklär mir das, wie ich es selber lösen kann und dann hilf mir dabei dass ich selber die Lösung finde.
01:52:07: Das klingt gut!
01:52:09: Ja mehr hab' ich.
01:52:13: Mehr hast du nicht?
01:52:14: Ich
01:52:14: habe alles über Rust erzählt was mal zu erzählen.
01:52:19: Es gibt ein Eckhardt-Kurs, den ich mal gemacht habe.
01:52:21: Der ganz gut war.
01:52:22: Ah, erzähl mir mal davon!
01:52:24: Das hab' ich irgendwie auch gesehen in deinen Notes.
01:52:27: Was ist da nochmal das Format?
01:52:29: Eckhart war oder ist... Ich hab' das glaube ich nicht mehr abonniert.
01:52:35: Als ich benutzt hab', so einen Format-Folm für Fronten und ja, es gab Entwicklung.
01:52:41: Die hatten das Ding dass die Themen so in maximal fünf Minuten Blockets zerschnitten haben.
01:52:49: Also Beitzer ist das heißt du konntest schnell mal eben nochmal fünf Minuten oder Minute, vielleicht auch nur für ein Thema.
01:52:58: Das heißt da wird einen Rustblock in sehr viele kleine kleine Blöcke zerknitten was es sehr gut snackbar machte.
01:53:07: Die Videos waren sehr gut aufbereitet.
01:53:10: Und ich habe von dem Christian Binzer gelernt, der hatte auf LinkedIn, da gab es irgendwie LinkedIn Learning.
01:53:17: Da gab's mal freie Rustkurse.
01:53:21: Cool!
01:53:22: Da hab' ich auch mal einen gemacht und fand das ganz gut.
01:53:26: Okay cool.
01:53:27: Ich glaub', der ging... Zumindest den, den ich gemacht hab'.
01:53:28: Das ging gar nicht so tief.
01:53:31: Bis Asyn ging das dann gar nicht mehr.
01:53:34: aber vielleicht kommt das dann...
01:53:35: Ja, Asyn ist ja schon ein bisschen etwaans doch?
01:53:37: Vielleicht gibt's dann noch weitere Kurse, was weiß ich nicht Aber so habe ich da meinen Weg reingefunden.
01:53:45: Jut, dann geleiten wir uns und geleiten mal die Hörerinnen nach Hause?
01:53:54: Ja!
01:53:55: Ich bedanke mich für dieses schöne Rust-Gespräch.
01:53:59: Ich habe Sachen gelernt... ...und ich sage einfach mal bis bald.
01:54:07: was hast du für letzte Worte?
01:54:11: Ich wollte gerade sagen, bleibt uns gewogen und kommentiert bitte fleißig bei Spotify.
01:54:16: Und bei Mastodon?
01:54:17: Und bei LinkedIn natürlich!
01:54:19: Wir haben jetzt einen Linkedin-Organisation.
01:54:21: Werdet Fans von unserer Linkedinorganisation.
01:54:23: Ja
01:54:24: folgt uns alle und genau...
01:54:25: Dann sehen wir uns beim nächsten, oder denn wir hören uns beim Nächsten.
01:54:28: Mal sehen tun wir uns ja nicht aber wir hören
01:54:30: Uns.
01:54:31: Bis bald macht's gut tschüss.
Neuer Kommentar