Discover
The Way of the Crab
The Way of the Crab
Author: Ecton and ToggleBit
Subscribed: 21Played: 178Subscribe
Share
© 2023 The Way of the Crab
Description
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.
12 Episodes
Reverse
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.
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
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
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
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
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
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
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
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
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
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
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



