Software Unscripted cover image

Software Unscripted

Undo-Redo and Persistent State with Tom Ballinger

Jul 12, 2024
Tom Ballinger discusses undo and redo in REPLs, stateful systems, hot code loading, and database query planning. Topics include using Redis for undo operations, managing persistent state in a REPL environment, enabling time-rewind mechanisms in games, maintaining determinism in software projects, and cache invalidation in web applications.
59:28

Episode guests

Podcast summary created with Snipd AI

Quick takeaways

  • Implementation challenges of undo in REPLs due to memory overhead and side effects.
  • Importance of meticulous planning and handling of edge cases in hot code loading.

Deep dives

Exploring Undo and Redo in the Context of REPLs

The podcast delves into the concept of undo and redo within REPLs, highlighting the implementation of undos in existing REPLs such as IRB and Python. There is a discussion on the usage of 'fork' in enabling undo functionality, with considerations on the challenges of productionalizing the concept due to memory overhead and side effects. The utilization of consistent snapshots in systems like Redis and Factorio is explored, showcasing the significance of structural sharing.

Get the Snipd
podcast app

Unlock the knowledge in podcasts with the podcast player of the future.
App store bannerPlay store banner

AI-powered
podcast player

Listen to all your favourite podcasts with AI-powered features

Discover
highlights

Listen to the best highlights from the podcasts you love and dive into the full episode

Save any
moment

Hear something you like? Tap your headphones to save it with AI-generated key takeaways

Share
& Export

Send highlights to Twitter, WhatsApp or export them to Notion, Readwise & more

AI-powered
podcast player

Listen to all your favourite podcasts with AI-powered features

Discover
highlights

Listen to the best highlights from the podcasts you love and dive into the full episode