Remote Ruby

Ain't Your Callback Girl

August 25, 2023 Jason Charnes, Chris Oliver, Andrew Mason Episode 239
Remote Ruby
Ain't Your Callback Girl
Show Notes

In this episode, Chris, Jason, and Andrew engage in a discussion revolving around the functionality and nuances of generated columns, callbacks, and coding practices in database and Rails applications. They explore the benefits and challenges of these features, and they dive into the complexities of coding tests.  They also discuss the HTML Pipeline library, GitHub’s markdown processing, and the Rails function for rendering rich text associations. Jason, Chris, and Andrew share their personal experiences, they explore the deeper layers of the Rails ecosystem, and they touch on Rails upgrades and the importance of maintaining minimal dependencies. Join us for a blend of tech insights, nostalgia, and humor! 

[00:00:51] Chris jumps right in and asks the guys if they’ve ever used any virtual generated columns, and Jason shares a story about a diesel spill in the water supply near Memphis. 

[00:02:31] In other news this week, Chris talks about the technical aspect of searching for users in the databases and the introduction of generated columns, he mentions Jamie’s involvement in PRs related to the feature, the bugs he encountered while trying to feature in SQLite, and how generated columns work in Active Record and their current limitations.   

[00:09:19] Chris asks Andrew and Jason if they’ve ever used generated or virtual columns in the database. Jason discusses his views on callbacks and the Name of Person gem. Chris mentions Jorge’s post about callbacks. 

[00:12:56] Jason discusses the pros and cons of using callbacks. He finds them convenient but also problematic at times. Chris provides an example where callbacks come in handy. 

[00:15:17] Jason states he has some high-level rules about callbacks, and Chris and Jason discuss when it’s appropriate to use callbacks, like when making HTTP requests or sending emails. 

[00:16:16] Chris brings up an old tutorial on Stripe where the save method also involved verifying data before sending a request to Stripe. 

[00:17:20] Andrew introduces the idea of a “smell test” for potential pitfalls in code. He shares his experience of having to work around callbacks when they caused unexpected changes in records. 

[00:18:08] Jason shares his thoughts on testing, especially when callbacks create tightly coupled associations. 

[00:18:50] The guys share various stories about tests failing due to timing and other unexpected conditions. They also joke about different “solutions” to these issues.

[00:22:24] Jason introduces the HTML-Pipeline library, which he recently used. He praises GitHub for its tech center and variable support, emphasizing its capability in content replacement. Chris recalls using GitHub for its auto-link feature which identifies HTTP and HTTPS links. 

[00:24:46] Chris reminisces about the early days of GitHub, its hiring spree, and the cool open source tools they released. 

[00:25:21] Jason describes building an action-text style structure for content, which allows for rich content editing and rendering, Chris appreciates the simplicity of this system, and they discuss the Rails function and how it renders text associations. 

[00:27:24] Jason highlights a limitation with the ‘render in’ method, where it doesn’t accept certain arguments and he talks about the structure of his board concept and the challenges faced with variable integration. 

[00:28:53] Chris shares his experience working on component stuff for Jumpstart Pro, emphasizing the simplicity and efficiency of their solution. Also, he emphasizes the benefits of keeping dependencies minimal for maintainability. 

[00:33:17] Chris was super excited to see that Rails 7.0.7 was released and speculates about Rails 7.1.0.