The Way of the Crab

A podcast where two Rustaceans set out to make a game. In each episode, we talk about what we've been working on using the Rust programming language as well as other topics that have been on our mind or our listeners have asked about.

Episode 1: Hello, World!

Ecton and ToggleBit meet for an introductory episode of The Way of the Crab. The main topics are: Who are we? How did we start programming? When did we start using Rust? What are we trying to build? What does each of us think our favorite/most-often-used crate is? We also talk about our user interface projects that we've been working on recently. Here are links to various topics mentioned throughout the episode. The list is organized by when it is first mentioned. Ecton (GitHub) BonsaiDb HyperCard ToggleBit (GitHub) / ToggleBit (Twitch) Dining Philosophers problem Rocket Coffee with Butterscotch i3 Window Manager tui-rs, now maintained as ratatui crossterm ncurses ToggleBit's TUI library, whose name wasn't mentioned in the episode: Anathema Gooey leptos flume slotmap slab Have any questions or feedback for us? Email us at podcast@wayofthecrab.com, or join our Discord community.

05-05
01:09:21

Episode 2: select * from crabs

Ecton and ToggleBit meet for the second episode of The Way of the Crab. The main discussion topics are: What have we been working on? Learning Rust for new programmers What makes Rust so alluring to us? What are we hoping to get out of future Rust releases? Here are links to various topics mentioned throughout the episode. The list is organized by when it is first mentioned. BonsaiDb Crabtrics (metrics for Way of the Crab) Text-based user interface (TUI) Anathema (ToggleBit's text-user interface project) Zero Cost Abstraction Factory Pattern Leptos ModProg REALbasic/Xojo Electron Tauri Dioxus Gooey Raph Levien Druid Xilum QUIC WebSockets The Rust Programming Language (aka "The Book") Rust Analyzer crates.io / lib.rs Tantivy Dogfooding CORECURSIVE #088: Interview with Yann Collet, the creator of LZ4 and ZStandard LLVM / GCC gccrs / rustc_codegen_gcc no_std Vec::drain_filter Stabilizing Async Traits We welcome your feedback and questions and have set up these ways of reaching us: Email us at podcast@wayofthecrab.com Join our Discord community. Post on our GitHub Discussions

05-12
57:20

Episode 3: The Pit of Stupid

Ecton and ToggleBit meet for the third episode of The Way of the Crab. In this episode they discuss: What have they been working on? Premature allocation optimization Squashing Commits vs Keeping Commit History Domain Specific Languages (DSLs) vs Pure Rust Our game project Utilize generative AI? Character Progression How open will their design process be? "Finding the fun" Here are links to various topics mentioned throughout the episode. The list is organized by when it is first mentioned. BonsaiDb BonsaiDb storage rewrite Rust's namespaced features, available in 1.60 ToggleBit's Twitch Stream Why does std::env::args allocate? Anathema (ToggleBit's text-user interface project) Domain Specific Language (DSL) Gooey proof-of-concept quote Rust Analyzer Blog: IDEs and Macros We welcome your feedback and questions and have set up these ways of reaching us: Email us at podcast@wayofthecrab.com Join our Discord community. Post on our GitHub Discussions

05-18
01:00:41

Episode 4: Bunnies, Boxes, and Style

Ecton and ToggleBit meet for the fourth episode of The Way of the Crab. In this episode they discuss: What they've been working on User interface styling Premature optimization Box<str> vs String Will their game have questing in our game? Making a programmable game? Backwards compatibility Here are links to various topics mentioned throughout the episode. The list is organized by when it is first mentioned. BonsaiDb Memento Gooey Binary Search PyO3 Keep a Changelog We welcome your feedback and questions and have set up these ways of reaching us: Email us at podcast@wayofthecrab.com Join our Discord community. Post on our GitHub Discussions

05-26
01:00:02

Episode 5: Putting Lipstick on a Pig

Ecton and ToggleBit meet for the fifth episode of The Way of the Crab. They discuss everything except their game project. 00:25: What has Ecton been working on? OnceLock/OnceCell stabilized in Rust 1.70 Gooey kempt (Ecton's library he released, but failed to name on the podcast) PartialOrd<str> missing for String 03:54: What has ToggleBit been working on? Clippy ChillFish8 23:40: ModProg asks, "how much time did you waste due to me using your libraries?" leptos Rsn Ron 26:40: Opinions on updating minimum Rust versions on projects? 29:57: What do you do when you're stuck on a problem? 38:10: Looking into the standard library for fun 41:20: What are some of our personal rules for programming? 50:36: Our highlights from Rust 1.70 release notes 54:30: ToggleBit helps a friend try Rust cargo watch 58:03: sbutcher1969 asks, "When you were first learning Rust, what was the hardest part for you, what did you struggle with the most? And why?" We welcome your feedback and questions and have set up these ways of reaching us: Email us at podcast@wayofthecrab.com Join our Discord community. Post on our GitHub Discussions

06-01
01:06:08

Episode 6: Making sure the happy path is happy

Ecton and ToggleBit meet for the sixth episode of The Way of the Crab. In this episode, they discuss what they've been working on, their unit testing philosophies, and how they evaluate crates. And most importantly... they avoid discussing their game project for another episode! 01:02: Updating BonsaiDb dependencies fabruic - PR mentioned quinn futures::select!()/futures::select_biased!() tokio::time::timeout() pin_project 08:56: Working on styling Gooey apps 11:56: Working on Anathema's viewport 17:56: Our philosophies on writing tests kempt cargo llvm-cov 36:57: Having strong opinions 44:05: How do we find and evaluate crates? fnv RandomState We welcome your feedback and questions and have set up these ways of reaching us: Email us at podcast@wayofthecrab.com Join our Discord community. Post on our GitHub Discussions

06-09
57:22

Episode 7: Shoehorning unsafe code

Notes 00:19: What has Ecton been working on? Gooey The Reddit blackout explained Lemmy Usenet ActivityPub Mastodon kbin 04:49: What has ToggleBit been working on? Anathema BonsaiDb wgpu 08:49: User experience testing / watching other people use your software ToggleBit's Twitch Stream 14:58: How do we approach benchmarking? Ecton's saga of benchmark woes BonsaiDb storage rewrite tracking issue Techempower Web Benchmarks justjson 29:39: How do we organize our Rust projects? Embedded Cargo.toml aka "Cargo Script" 39:38: Do we write a lot of unsafe code? Rustonomicon Miri 49:45: super_cool_joey from Discord asks: Are we going to open source our project? We welcome your feedback and questions and have set up these ways of reaching us: Email us at podcast@wayofthecrab.com Join our Discord community. Post on our GitHub Discussions

06-17
54:17

Episode 8: Beware of spiders

Notes 00:55 What has Ecton been up to? CityHasher CRC Gooey wgpu winit Kludgine glyphon 06:30 What has Togglebit been up? Masters of Doom Anathema Xilem: an architecture for UI in Rust 21:06 How do we approach planning/project management? 26:50 What are the "worst" projects we worked on? Domain Specific Language 37:15 Diving into wgpu rend3 Fyrox 53:05 How do we approach learning new concepts and codebases? We welcome your feedback and questions and have set up these ways of reaching us: Email us at podcast@wayofthecrab.com Join our Discord community. Post on our GitHub Discussions

06-23
56:29

Episode 9: Did you start Steam?

Notes 00:17 What has Ecton been up to? Kludgine caffeine-ng bevy wgpu cosmic-text glyphon wgpu: Encapsulating Graphics Work 05:40 What has Togglebit been up to? Play position PR Anathema crossterm llvm-cov-pretty 13:50 Vacationing with or without a laptop 20:48 What are our favorite flavors of ice cream? 21:55 What are we going to start working on first? Multi-user Dungeon rayon Gooey 30:53 Game monetization 1,000 True Fans 37:33 Optimizing time-to-play 43:55 How do we want to start organizing our work? 50:45 Why is Ecton building all these things? BonsaiDb Microsoft Excel Add-in for EVE Online We welcome your feedback and questions and have set up these ways of reaching us: Email us at podcast@wayofthecrab.com Join our Discord community. Post on our GitHub Discussions

06-30
56:05

Episode 10: They're making a programming language now?!

Notes 00:00:20 What has Ecton been up to? Gooey wgpu winit 00:01:20 What has ToggleBit been up to? (Removing Lifetimes) Arc Kludgine wgpu::RenderPass "this is a known limitation that will be removed in the future" Trait Objects 00:06:55 Writing public test utilities? 00:09:14 What is our podcast recording setup? Audacity 00:15:00 Pressure cooker fun Kristoff Zig 00:17:50 Optimizing [Anathema] slotmap alot miri Stacked Borrows Tree Borrows parking_lot::RwLock::upgradable_read Rust Atomics and Locks 00:35:00 Ask us questions! (Links at the bottom of the notes) 00:38:30 Web frameworks in Rust yew axum tide warp actix-web Rocket BonsaiDb Rust Programming Language (The Book) Dining Philosophers 00:51:50 Floating point vs Integer math for 2D graphics Epsilon 01:05:40 How is Gooey going to handle animations? Easings.net 01:10:40 FlexBox vs alternative layout systems? Let's build a browser engine! Cassowary RectCut taffy Flutter's Rendering Pipeline 01:26:10 Is Gooey something we want to build? cosmic_text::Editor cosmic_text::ViEditor (not currently listed on docs.rs) We welcome your feedback and questions and have set up these ways of reaching us: Email us at podcast@wayofthecrab.com Join our Discord community. Post on our GitHub Discussions

07-29
01:45:18

Episode 11: Always check your inputs and outputs

Notes 00:18 What has Ecton been up to? Erlang Elixir BEAM Bud nom Crafting Interpreters 12:50 What has ToggleBit been up to? 17:50 Do we have practices we follow when releasing code? 21:35 A discussion of types arising from a story of an ash cloud Typestates in The Embedded Rust Book: Static Guarantees. 30:00 Did our early development experiences become our preferred experiences? REALbasic / Xojo "The Dragon Book" (Compilers: Principles, Technique, and Tools) Rhai Previewing Bud(Lang) 39:45 What is our current vision of the game user interface? Mordor: The Depths of Dejenol We welcome your feedback and questions and have set up these ways of reaching us: Email us at podcast@wayofthecrab.com Join our Discord community. Post on our GitHub Discussions

08-08
53:31

Episode 12: Code reuse could lead to bugs

Notes 00:26: Wordle Nerdle 08:36: Programming language design discussions Type and Effect Systems Crumb YAML (YAML Ain't Markup Languageā„¢) #! Cargo Script 28:11: Optimizing our user interfaces Gooey Anathema Kludgine tracing Jaeger Archer: A simple clone of Jaeger in Rust Arch Wiki: .NET 39:15: Ecton's recent work on BonsaiDb 42:50: Keeping our systems up to date rustup 44:40: Rust 1.72 unstable feature doc_auto_cfg Rust 1.62: Optimized Mutexes parking_lot flume 55:38: What else have we been up to? Doom Guy Masters of Doom Hyperthymesia We welcome your feedback and questions and have set up these ways of reaching us: Email us at podcast@wayofthecrab.com Join our Discord community. Post on our GitHub Discussions

08-31
01:06:05

Recommend Channels