
Self-Directed Research
This is the Self Directed Research Podcast, where our hosts James and Amos share a little bit about the topics they’ve been obsessing about lately.
Visit sdr-podcast.com/ for more information about the podcast, check out all episodes and learn about who we are and how to support us!
Questions, comments, interested in sponsoring? Send an email to contact@sdr-podcast.com
Latest episodes

Oct 30, 2024 • 34min
What good is partial understanding?
The discussion dives into the complexities of partial understanding in machine communication. It highlights the importance of self-describing formats for clearer data exchange and touches on the challenges of varying protocols. Hiram's rule is examined, showcasing user reliance on informal patterns in APIs. The podcast also navigates data parsing between languages like C and Rust, emphasizing type safety and error management. Unique message handling techniques through postcard RPC are explored, alongside the critical role of data normalization in transitioning from XML to JSON.

Oct 23, 2024 • 30min
Things you might not have known about clipboards
Dive into the quirky world of clipboards and their unexpected history! Discover how clipboard functionalities have evolved from early computing to today's diverse operating systems. Explore the challenges posed by Rich Text Format and differing browser behaviors. Unravel the complexities faced by web developers in code highlighting and clipboard usage. Plus, hear a charming story about a dedicated developer on a mission to fix clipboard bugs. It's a light-hearted journey through the unseen intricacies of a common tool!

Oct 16, 2024 • 22min
Async Allocators
Dive into the intriguing world of asynchronous allocators and their implications in programming, especially with Rust. Unpack the complexities of memory management and the challenges it poses across different systems. Explore the stark contrasts between server scalability and embedded system constraints. Discover innovative solutions for async memory management and how future language designs might prioritize compile-time safety checks, enhancing both efficiency and code usability.

Oct 9, 2024 • 28min
Frame Synchronization
Delve into the captivating world of frame synchronization in computer communications. Discover the complexities of message boundaries in protocols like TCP and UDP. Navigate the challenges of reliable data transmission, comparing them to telegraph systems. Learn about signaling techniques and the critical role of accurate message framing. Explore innovative strategies like Consistent Overhead Byte Stuffing for efficient data exchange. Lastly, uncover how COBS encoding and hardware acceleration optimize serial communication.

Oct 2, 2024 • 23min
Fixing build times with rubicon
Amos, a skilled developer, introduces Rubicon, a tool designed to enhance build times in Rust programming. He dives into the challenges of managing dependencies and dynamic linking in large projects, revealing how Rubicon alleviates issues that previously hindered developers. The discussion also covers multiverse programming complexities and the significance of efficient global state management. Amos shares his insights on the evolving Rust tooling landscape, making the case for improved performance and collaborative open-source efforts.

Sep 25, 2024 • 31min
What Are You Syncing About?
An exciting journey through the ins and outs of asynchronous programming awaits! Discover the magic of synchronization primitives and how they manage tasks like pros. Dive deep into the role of 'wakers' in monitoring task readiness while tackling challenges of CPU utilization. Explore innovative lock-free algorithms that elevate task management in multi-threaded environments. Plus, unravel the complexities of state management and compare static vs. dynamic task allocation. It's a tech lover's paradise!

Sep 18, 2024 • 25min
You might not need Arc<T>
Dive into the intricate world of Rust programming as the hosts tackle the challenges of atomic reference counting and the nuances of concurrency management. They illuminate the complexities of asynchronous programming with the Tokio framework, offering strategies to balance performance and safety. Discover the importance of managing context effectively to avoid stale data and navigate the tricky waters of unnameable types. This lively discussion is packed with insights for both seasoned developers and curious beginners!

Sep 11, 2024 • 28min
Talking to Microcontrollers with Postcard-RPC
A conceptual introduction to structured communication protocols, and the design decisions behind the postcard-rpc crate
Visit sdr-podcast.com/episodes/postcard-rpc to see the show notes and transcript!
Episode sponsor: Visit ladybird.org for more information and to join the mailing list.

Sep 4, 2024 • 36min
Thread-locals galore
Explore the quirky world of thread local variables and the hurdles they introduce in dynamic linking. The hosts reveal their missteps in effectively communicating technical concepts, providing a humorous look at learning from past errors. Engaging in collaborative creativity, they discuss the thrill of surprise in project development. Delve into memory management intricacies, including the lifecycle of thread-local variables in languages like Rust and C. Discover the challenges of thread local storage in the Tokyo runtime and the evolution of static functions.

Aug 28, 2024 • 22min
Direct Memory Access for the Uninitiated
An introduction to DMA, including what it is commonly used for, and a model of how to think about what the hardware does.
Visit sdr-podcast.com/episodes/dma to see the show notes and transcript!
You can read the Inside Rust Survey Announcement for information about the Embedded Rust Community Micro Survey, or you can take the survey now by
clicking here.