Graceful.Dev
@graceful.dev
A garden of courses to deepen and mature your coding practice, lovingly tended by @avdi.codes & friends. https://graceful.dev
For basic mutable data structures, you can't get much quicker and easier than Ruby's "Struct" class! But do you know everything it can do? Full screencast, now free to all!
youtu.be/0fei3uDkjNE
youtu.be/0fei3uDkjNE
Using Ruby Struct
For basic mutable data structures, you can't get much quicker and easier than Ruby's "Struct" class!Get these tips in your inbox: https://avdi.codes/devseeds/
youtu.be
October 30, 2025 at 4:57 PM
For basic mutable data structures, you can't get much quicker and easier than Ruby's "Struct" class! But do you know everything it can do? Full screencast, now free to all!
youtu.be/0fei3uDkjNE
youtu.be/0fei3uDkjNE
Hi there, graceful devs! Here’s what’s new in the garden… Content Updates There are two hefty new episodes since the last update! The first one, Policy as Structure, introduces a powerful approach to architecting your code for flexibility and change.
graceful.dev/site-news-26...
graceful.dev/site-news-26...
Site News #26: Policy, Structure, and Memoization
Hi there, graceful devs! Here’s what’s new in the garden…Content UpdatesThere are two hefty new episodes since the last update! The first one, Pol
graceful.dev
July 2, 2025 at 5:00 PM
Hi there, graceful devs! Here’s what’s new in the garden… Content Updates There are two hefty new episodes since the last update! The first one, Policy as Structure, introduces a powerful approach to architecting your code for flexibility and change.
graceful.dev/site-news-26...
graceful.dev/site-news-26...
We've been busy in the Graceful.Dev garden. Here's what's new!
graceful.dev/site-news-26...
graceful.dev/site-news-26...
Site News #26: Policy, Structure, and Memoization
Hi there, graceful devs! Here’s what’s new in the garden…
Content Updates
There are two hefty new episodes since the last update! The first one, Pol
graceful.dev
July 1, 2025 at 6:22 PM
We've been busy in the Graceful.Dev garden. Here's what's new!
graceful.dev/site-news-26...
graceful.dev/site-news-26...
Originally captured in Kent Beck's classic book "Smalltalk Best Practice Patterns", Pluggable Selector is an under-used strategy for making methods more flexible. Learn how to use it in Ruby, in this classic Graceful.Dev episode now free to all!
youtu.be/rMsL3ZH4A2s
youtu.be/rMsL3ZH4A2s
Pluggable Selector Pattern in Ruby
Originally captured in Kent Beck's classic book "Smalltalk Best Practice Patterns", Pluggable Selector is an under-used strategy for making methods more flex...
youtu.be
June 30, 2025 at 4:16 PM
Originally captured in Kent Beck's classic book "Smalltalk Best Practice Patterns", Pluggable Selector is an under-used strategy for making methods more flexible. Learn how to use it in Ruby, in this classic Graceful.Dev episode now free to all!
youtu.be/rMsL3ZH4A2s
youtu.be/rMsL3ZH4A2s
Memoization of a complex object can seem like a free optimization... but there are always trade-offs. Full episode now up for members: https://graceful.dev/topic/resist-memoization/
youtu.be/t5UjASNKChQ
youtu.be/t5UjASNKChQ
Resist Memoization (Teaser)
Memoization of a complex object can seem like a free optimization... but there are always trade-offs. Full episode now up for members: https://graceful.dev/t...
www.youtube.com
May 21, 2025 at 9:14 PM
Memoization of a complex object can seem like a free optimization... but there are always trade-offs. Full episode now up for members: https://graceful.dev/topic/resist-memoization/
youtu.be/t5UjASNKChQ
youtu.be/t5UjASNKChQ
Learn why subclassing core Ruby classes like Array and Hash is a bad idea, and what to do instead. A classic from the Graceful.Dev archives, now free!
youtu.be/Zc_OdXLCT4M
youtu.be/Zc_OdXLCT4M
Subclassing Array in Ruby
Sooner or later you will be tempted to subclass one of Ruby's core collection classes. Learn why that's a bad idea - and a better alternative!Get these tips ...
www.youtube.com
April 25, 2025 at 3:45 PM
Learn why subclassing core Ruby classes like Array and Hash is a bad idea, and what to do instead. A classic from the Graceful.Dev archives, now free!
youtu.be/Zc_OdXLCT4M
youtu.be/Zc_OdXLCT4M
Don't let your codebase come down with flag-itis! Model your operating policies as composed structure, rather than as tangled conditionals. Full episode now live for subscribers: https://graceful.
www.youtube.com/watch?v=KvQ07O75XSU
www.youtube.com/watch?v=KvQ07O75XSU
Policy as Structure (teaser)
Get two weeks of Graceful.Dev Pro for free: https://graceful.dev/youtube
www.youtube.com
April 16, 2025 at 5:48 PM
Don't let your codebase come down with flag-itis! Model your operating policies as composed structure, rather than as tangled conditionals. Full episode now live for subscribers: https://graceful.
www.youtube.com/watch?v=KvQ07O75XSU
www.youtube.com/watch?v=KvQ07O75XSU
Know your Ruby division operations, and pick the right one for the job! Learn more in the "Crystaline Ruby" course on Graceful.Dev
April 7, 2025 at 2:40 PM
Know your Ruby division operations, and pick the right one for the job! Learn more in the "Crystaline Ruby" course on Graceful.Dev
Celebrate Spring with new videos and new code snippets
Get 2 weeks of Graceful.Dev Pro Free: https://graceful.dev/bluesky
graceful.dev/site-news-25...
Get 2 weeks of Graceful.Dev Pro Free: https://graceful.dev/bluesky
graceful.dev/site-news-25...
Site News #25: Filter Map and Snippets
Celebrate Spring with new videos and new code snippets
graceful.dev
April 1, 2025 at 6:04 PM
Celebrate Spring with new videos and new code snippets
Get 2 weeks of Graceful.Dev Pro Free: https://graceful.dev/bluesky
graceful.dev/site-news-25...
Get 2 weeks of Graceful.Dev Pro Free: https://graceful.dev/bluesky
graceful.dev/site-news-25...
With Ruby 3, it's easier than ever to compose objects with forwarded methods!
Get development tips in your inbox: https://graceful.dev/devseeds/
Get development tips in your inbox: https://graceful.dev/devseeds/
March 31, 2025 at 4:52 PM
With Ruby 3, it's easier than ever to compose objects with forwarded methods!
Get development tips in your inbox: https://graceful.dev/devseeds/
Get development tips in your inbox: https://graceful.dev/devseeds/
Full episode now free! Originally published in October 2012 as RubyTapas #17, this dense episode deals with the UNIX "at" commands, Ruby, TDD, how mock-object pain can give us insight into code smells, and the concept of Command-Query Separation.
youtu.be/gQUC-5lbQm0
youtu.be/gQUC-5lbQm0
Pay it Forward
Originally published in October 2012 as RubyTapas #17, this dense episode deals with Ruby, mockist testing, and the concept of Command-Query Separation. Ther...
www.youtube.com
March 28, 2025 at 4:02 PM
Full episode now free! Originally published in October 2012 as RubyTapas #17, this dense episode deals with the UNIX "at" commands, Ruby, TDD, how mock-object pain can give us insight into code smells, and the concept of Command-Query Separation.
youtu.be/gQUC-5lbQm0
youtu.be/gQUC-5lbQm0
Know your Ruby conversion protocols, and pick the right one for the task at hand! Learn more in the "Crystaline Ruby" course, on Graceful.Dev
March 24, 2025 at 5:15 PM
Know your Ruby conversion protocols, and pick the right one for the task at hand! Learn more in the "Crystaline Ruby" course, on Graceful.Dev
Prefer spies to mocks!
Learn more in the "Rigorous Ruby" course, on Graceful.Dev
Learn more in the "Rigorous Ruby" course, on Graceful.Dev
March 20, 2025 at 6:15 PM
Prefer spies to mocks!
Learn more in the "Rigorous Ruby" course, on Graceful.Dev
Learn more in the "Rigorous Ruby" course, on Graceful.Dev
Hi there graceful devs! Here’s what’s new in the garden… Content Updates It’s been a couple months since the last newsletter, so we’ve got a few new episodes to list! In case you missed them: Site Improvements Efforts to give Graceful.Dev
graceful.dev/site-news-24...
graceful.dev/site-news-24...
Site News #24: New Videos, Better Videos
Hi there graceful devs! Here's what's new in the garden...
Content Updates
It's been a couple months since the last newsletter, so we've got a few new epi
graceful.dev
March 18, 2025 at 9:22 PM
Hi there graceful devs! Here’s what’s new in the garden… Content Updates It’s been a couple months since the last newsletter, so we’ve got a few new episodes to list! In case you missed them: Site Improvements Efforts to give Graceful.Dev
graceful.dev/site-news-24...
graceful.dev/site-news-24...
Filter and map at once! Learn more in the "Collected Ruby" course on Graceful.Dev
March 11, 2025 at 4:29 PM
Filter and map at once! Learn more in the "Collected Ruby" course on Graceful.Dev
Prefer `and`/`&&` to ternary, when applicable! Learn more at Graceful.Dev.
graceful.dev
graceful.dev
March 7, 2025 at 4:02 PM
Prefer `and`/`&&` to ternary, when applicable! Learn more at Graceful.Dev.
graceful.dev
graceful.dev
Ruby's mix-in modules are a wonderfully powerful way to drop-in reusable functionality. But authoring them can be tricky. In this video, now free to all from the Graceful.Dev archives, you'll learn how to author robust mixins that won't conflict with inherited methods!
youtu.be/SFkKBquMHSc
youtu.be/SFkKBquMHSc
Using Ruby's `super` in Mix-in Modules
One of Ruby's coolest features is "mixin modules" which can add drop-in features to your class. But authoring those modules sometimes requires some extra car...
www.youtube.com
January 30, 2025 at 5:38 PM
Ruby's mix-in modules are a wonderfully powerful way to drop-in reusable functionality. But authoring them can be tricky. In this video, now free to all from the Graceful.Dev archives, you'll learn how to author robust mixins that won't conflict with inherited methods!
youtu.be/SFkKBquMHSc
youtu.be/SFkKBquMHSc
It's a library! No, it's an executable! Relax, your Ruby files can be both require-able libraries and executables!
Get 2 weeks of Graceful.Dev Pro Free: https://graceful.dev/bluesky
graceful.dev/courses/tapa...
Get 2 weeks of Graceful.Dev Pro Free: https://graceful.dev/bluesky
graceful.dev/courses/tapa...
Runnable Library
It's a library! No, it's an executable! Relax, your Ruby files can be both require-able libraries and executables!
graceful.dev
January 28, 2025 at 4:00 PM
It's a library! No, it's an executable! Relax, your Ruby files can be both require-able libraries and executables!
Get 2 weeks of Graceful.Dev Pro Free: https://graceful.dev/bluesky
graceful.dev/courses/tapa...
Get 2 weeks of Graceful.Dev Pro Free: https://graceful.dev/bluesky
graceful.dev/courses/tapa...
Beginning on the implementation of a Ruby PulseAudio API.
Get 2 weeks of Graceful.Dev Pro Free: https://graceful.dev/bluesky
graceful.dev/courses/tapa...
Get 2 weeks of Graceful.Dev Pro Free: https://graceful.dev/bluesky
graceful.dev/courses/tapa...
FFI Part 4: Test of the Mainloop
Beginning on the implementation of a Ruby PulseAudio API.
graceful.dev
January 23, 2025 at 4:00 PM
Beginning on the implementation of a Ruby PulseAudio API.
Get 2 weeks of Graceful.Dev Pro Free: https://graceful.dev/bluesky
graceful.dev/courses/tapa...
Get 2 weeks of Graceful.Dev Pro Free: https://graceful.dev/bluesky
graceful.dev/courses/tapa...
Selectively running tests can be a lifesaver in a large codebase. This episode covers how to run just the tests you care about in both MiniTest and RSpec - including how to slectively run tests under Rake.
Get 2 weeks of Graceful.Dev Pro Free: https://graceful.
graceful.dev/courses/tapa...
Get 2 weeks of Graceful.Dev Pro Free: https://graceful.
graceful.dev/courses/tapa...
Selectively Run Tests
Selectively running tests can be a lifesaver in a large codebase. This episode covers how to run just the tests you care about in both MiniTest and RSpec - including how to slectively run tests under Rake.
graceful.dev
January 21, 2025 at 4:00 PM
Selectively running tests can be a lifesaver in a large codebase. This episode covers how to run just the tests you care about in both MiniTest and RSpec - including how to slectively run tests under Rake.
Get 2 weeks of Graceful.Dev Pro Free: https://graceful.
graceful.dev/courses/tapa...
Get 2 weeks of Graceful.Dev Pro Free: https://graceful.
graceful.dev/courses/tapa...
Sometimes objects are missing, and sometimes that’s OK! We need a way to say it’s OK, and we have one: the “safe navigation operator”. But what exactly does it do, and what are its limitations? And why does it look the way it does in Ruby? Let’s talk about it!
youtu.be/PoHvsOomCuA
youtu.be/PoHvsOomCuA
Safe Navigation Redux (Teaser)
Sometimes objects are missing, and sometimes that’s OK! We need a way to say it’s OK, and we have one: the “safe navigation operator”. But what exactly does ...
www.youtube.com
January 20, 2025 at 9:30 PM
Sometimes objects are missing, and sometimes that’s OK! We need a way to say it’s OK, and we have one: the “safe navigation operator”. But what exactly does it do, and what are its limitations? And why does it look the way it does in Ruby? Let’s talk about it!
youtu.be/PoHvsOomCuA
youtu.be/PoHvsOomCuA
At the borders of our systems, mockist testing hits a point of diminishing returns. In this episode we take a look at when to stop mocking and start integration testing.
Get 2 weeks of Graceful.Dev Pro Free: https://graceful.dev/bluesky
graceful.dev/courses/tapa...
Get 2 weeks of Graceful.Dev Pro Free: https://graceful.dev/bluesky
graceful.dev/courses/tapa...
The End of Mocking
At the borders of our systems, mockist testing hits a point of diminishing returns. In this episode we take a look at when to stop mocking and start integration testing.
graceful.dev
January 16, 2025 at 4:00 PM
At the borders of our systems, mockist testing hits a point of diminishing returns. In this episode we take a look at when to stop mocking and start integration testing.
Get 2 weeks of Graceful.Dev Pro Free: https://graceful.dev/bluesky
graceful.dev/courses/tapa...
Get 2 weeks of Graceful.Dev Pro Free: https://graceful.dev/bluesky
graceful.dev/courses/tapa...
FFI IT, WE'LL DO IT LIVE!
Get 2 weeks of Graceful.Dev Pro Free: https://graceful.dev/bluesky
graceful.dev/courses/tapa...
Get 2 weeks of Graceful.Dev Pro Free: https://graceful.dev/bluesky
graceful.dev/courses/tapa...
FFI Part 3: A New Library
FFI IT, WE'LL DO IT LIVE!
graceful.dev
January 14, 2025 at 4:00 PM
FFI IT, WE'LL DO IT LIVE!
Get 2 weeks of Graceful.Dev Pro Free: https://graceful.dev/bluesky
graceful.dev/courses/tapa...
Get 2 weeks of Graceful.Dev Pro Free: https://graceful.dev/bluesky
graceful.dev/courses/tapa...