Log in

goodpods headphones icon

To access all our features

Open the Goodpods app
Close icon
Dead Code - Ordinary Corrupt Memory Love (with Jean Boussier (byroot))

Ordinary Corrupt Memory Love (with Jean Boussier (byroot))

03/18/25 • 33 min

Dead Code

In this episode of Dead Code, host Jared Norman speaks with Jean Boussier, a key contributor to the Ruby community and Shopify engineer, about the challenges of concurrency in Ruby, particularly the Global VM Lock (GVL). Jean explains that while the GVL was originally implemented to simplify Ruby’s design, it now limits parallel execution, sparking debate on whether it should be removed. He argues that many Ruby applications are more CPU-bound than previously thought and suggests improving Ruby’s thread scheduler as a more practical short-term solution rather than eliminating the GVL entirely. The discussion also explores Ractors, Ruby’s experimental approach to parallelism, which remains unstable and impractical for most applications. Jean envisions a future where Ractors become more viable, gradually leading to broader concurrency improvements. The episode wraps up with insights on profiling tools and the evolving landscape of Ruby performance optimization.


Links:


Jean Boussier’s Blog

Jean’s GitHub

Ivo Anjo’s GVL Profiling Talk (RubyConf)

Ivo Anjo’s GVL Profiling Tool

Jean’s Blog Post: “So, You Want to Remove the GVL?”

Jean’s Blog Post: “The Mythical IO-Bound Rails App”

Ruby Ractors Documentation


Dead Code Podcast Links:


Mastodon

X


Jared’s Links:


Mastodon

X

twitch.tv/jardonamron

Jared’s Newsletter & Website


Episode Transcript


Hosted on Acast. See acast.com/privacy for more information.

plus icon
bookmark

In this episode of Dead Code, host Jared Norman speaks with Jean Boussier, a key contributor to the Ruby community and Shopify engineer, about the challenges of concurrency in Ruby, particularly the Global VM Lock (GVL). Jean explains that while the GVL was originally implemented to simplify Ruby’s design, it now limits parallel execution, sparking debate on whether it should be removed. He argues that many Ruby applications are more CPU-bound than previously thought and suggests improving Ruby’s thread scheduler as a more practical short-term solution rather than eliminating the GVL entirely. The discussion also explores Ractors, Ruby’s experimental approach to parallelism, which remains unstable and impractical for most applications. Jean envisions a future where Ractors become more viable, gradually leading to broader concurrency improvements. The episode wraps up with insights on profiling tools and the evolving landscape of Ruby performance optimization.


Links:


Jean Boussier’s Blog

Jean’s GitHub

Ivo Anjo’s GVL Profiling Talk (RubyConf)

Ivo Anjo’s GVL Profiling Tool

Jean’s Blog Post: “So, You Want to Remove the GVL?”

Jean’s Blog Post: “The Mythical IO-Bound Rails App”

Ruby Ractors Documentation


Dead Code Podcast Links:


Mastodon

X


Jared’s Links:


Mastodon

X

twitch.tv/jardonamron

Jared’s Newsletter & Website


Episode Transcript


Hosted on Acast. See acast.com/privacy for more information.

Previous Episode

undefined - All Models Are Wrong (with James Gayfer)

All Models Are Wrong (with James Gayfer)

In this episode of Dead Code, Jared interviews James Gayfer about data modeling and the challenges of structuring databases effectively. James, who prefers raw SQL over ORMs, explains how many database models merely mirror table structures, leading to inefficient APIs and excessive data fetching. He discusses the concept of complete versus incomplete data models, emphasizing that completeness depends on an application’s needs at a given time. They explore trade-offs between overly simplistic models that require frequent queries and overly complex ones that attempt to replicate real-world relationships in unnecessary detail. James advocates for designing domain models thoughtfully, using patterns like repositories to maintain consistency while keeping data retrieval manageable. Ultimately, he encourages developers to embrace iteration, rethink their models as needed, and accept that all models are wrong, but some are useful.


Links:


James Gayfer’s Blog

James Gayfer’s Mastodon profile

SQLx library for Rust

Repository Pattern

Hanami Framework

Phoenix Framework

Ecto

Hotwire

All models are wrong, but some are useful


Dead Code Podcast Links:


Mastodon

X


Jared’s Links:


Mastodon

X

twitch.tv/jardonamron

Jared’s Newsletter & Website


Episode Transcript


Hosted on Acast. See acast.com/privacy for more information.

Next Episode

undefined - Pattern Imprisonment (with Joan Westenberg)

Pattern Imprisonment (with Joan Westenberg)

In this episode of Dead Code, journalist Joan Westenberg joins host Jared to explore the political and ethical consequences of our tech choices, advocating for decentralized, open-source platforms over corporate-controlled ecosystems like Google and Meta. Joan shares her path from tech journalism to founding The Index, a reader-supported publication free from ads and investor influence, driven by a DIY punk ethos inspired by bands like Fugazi. She critiques the monopolization of the internet, the erosion of data privacy (especially for EU users), and the complicity of tech giants in supporting authoritarian politics. Emphasizing the power of small, intentional decisions, Joan urges listeners to resist cynicism, adopt “pragmatic meliorism,” and choose tools and platforms that align with their values—even if it’s harder—because incremental change still matters.


Links:


The Index

Joan Westenberg’s Website

Ghost

Mastodon

Pixelfed

Lemmy

Fairphone

Murena / /e/OS

Vivaldi

Qwant

Ecosia

Where Wizards Stay Up Late: The Origins of the Internet


Dead Code Podcast Links:


Mastodon

X


Jared’s Links:


Mastodon

X

twitch.tv/jardonamron

Jared’s Newsletter & Website


Episode Transcript


Hosted on Acast. See acast.com/privacy for more information.

Episode Comments

Generate a badge

Get a badge for your website that links back to this episode

Select type & size
Open dropdown icon
share badge image

<a href="https://goodpods.com/podcasts/dead-code-543080/ordinary-corrupt-memory-love-with-jean-boussier-byroot-87636731"> <img src="https://storage.googleapis.com/goodpods-images-bucket/badges/generic-badge-1.svg" alt="listen to ordinary corrupt memory love (with jean boussier (byroot)) on goodpods" style="width: 225px" /> </a>

Copy