Short Ruby Newsletter - edition 126

Friendly.rb launches Early Bird tickets, Rails World opens the CFP, and RailsCamp offers scholarships.

In partnership with

Table of Contents

(ad)

Optimize global IT operations with our World at Work Guide

Explore this ready-to-go guide to support your IT operations in 130+ countries. Discover how:

  • Standardizing global IT operations enhances efficiency and reduces overhead

  • Ensuring compliance with local IT legislation to safeguard your operations

  • Integrating Deel IT with EOR, global payroll, and contractor management optimizes your tech stack

Leverage Deel IT to manage your global operations with ease.

πŸš€ Launches and discounts

πŸš€ Ryan Kulp launched a free Ruby course: Fundamentals

Source: @ryanckulp

πŸš€Gregory Brown announced the release of a free sample of his β€œBug Hunt: Volume 1β€œ guidebook πŸ₯³

Available here, go and check it out: BUG HUNT | skillstopractice.com (you can also pre-order the book):

πŸš€ Dave Thomas launched his new book: simplicity. The book is available here: The Pragmatic Bookshelf | simplicity

Source: @pragdave

πŸ“… Events

πŸ“…Friendly.rb announced the upcoming Friendly.rb β€˜25 conference, with tickets now available and also accepting Call for Paper submissions

πŸ“… Ruby On Rails announced the RailsWorld CFP is now open. For more details, you can check out Ruby on Rails page

Source: @rails

πŸ“… Irina Nazarova invited Bay Area Ruby enthusiasts to join a new event at New Relic

πŸ“… Andy Croll announced a new edition of Brighton Ruby Meetup

πŸ“… Saeed Jabbar announced a new Ruby AI meetup in NYC πŸ—½

Source: @saeedjabbar

πŸ“… Baltic Ruby announced updates to their website for the Riga event, with the main page and lineup now available, and more content coming soon πŸ”œ

πŸ“… Rails Camp Usa announced some updates about the Rails Camp scholarship

πŸ“…schwad announced the first BelfastRuby meetup for this year 🎊

Source: @schwad.org

πŸ“… Ruby Kaigi announced the event schedule is now available:

Source: @rubykaigi

πŸ‘‰ All about Code and Ruby

πŸ’» Code Samples

πŸ’»AristΓ³teles Coutinho shared a code sample about preventing direct access to internal components:

οΈοΈπŸ’» Brad Gessler shared a code sample demonstrating Phlex view component

οΈπŸ’» Jakob shared a Ruby code snippet that reads CSV data from standard input, allowing for quick console data parsing

οΈπŸ’» Steve Polito shared a client project approach on debounce mechanism

Here is the solution he came up with πŸ”‘

οΈπŸ’» Jonathan Frias shared a tip about adding ordering helpers to models to maintain consistent ordering and improve composition flow

οΈπŸ’» Ruby Cademy shared a code sample about a new discovery: structure_dump_flags

Source: @RubyCademy

πŸ’» Hyacinthe shared a code sample about building a queue with Ractors:

οΈπŸ’» Ahmed Benh shared steps for integrating daisyUI 5.0 with Rails

Source: @Ahmedbenh1

οΈοΈπŸ’» Hans Schnedlitz shared a tip about using ~/.default-gems to auto-install gems with new Ruby installations via ASDF and Mise

Source: @hschnedlitz

οΈπŸ’» Ruby Cademy highlighted Rails halted_callback_hook feature for monitoring halted callbacks

Source: @RubyCademy

οΈπŸ’» Jess Brown shared insights on Active Record OR queries, particularly combining them with AND operations and complex joins. Read the full article here

Source: @bjessbrown

οΈπŸ’» Akinori Musha asked about a Ruby regex behavior:

οΈπŸ’» Janko MarohniΔ‡ shared a code sample demonstrating how to make Arel more ergonomic with minimal effort

Source: @janko.io

Source: @janko.io

Source: @janko.io

οΈπŸ’»Graceful.Dev shared a code sample about logical operators vs ternary operator

οΈπŸ’»Adam Fortuna shared a code sample to show how they populate Redux state from Ruby using IntertiaRails instead of ActionCable

οΈπŸ’» Fabian shared a tip for serving images directly from Rails to bypass asset pipeline complications

Source: @ffaebi

Source: @ffaebi

οΈπŸ’» Ruby Cademy explained how Ruby's in? method smartly selects between include? and cover? depending on the argument type. See the code here

Source: @RubyCademy

οΈπŸ’» Matheus Richard shared his appreciation for how it and then create readable code chains in modern Ruby

Source: @matheusrich

πŸ’» Scott Watermasysk shared a tip about re-running RSpec tests with a specific seed using the β€”seed parameter

Source: @scottw

οΈπŸ’» Hamid Siddiqui shared how handy is to add rate limiting in Rails 8 πŸ’ͺ

πŸ“ Thinking about Code Design

οΈοΈπŸ“ JoΓ«l Quenneville highlighted 3 principles he uses to structure complex functions. Also, check the full blog post for more details on his take: Triangle of Separation

Source: @joelquen

οΈπŸ“ Greg Molnar noted Rails CSRF protection only covers POST requests, not GET requests that modify data

Source: @GregMolnar

DHH replied with:

Source: @dhh

οΈπŸ“ Rich Steinmetz shared optimization tips for Bullet Train apps on Render’s free tier by reducing Puma workers and thread count to address RAM limitations

Source: @RichStoneIO

οΈπŸ“ Josef Strzibny asked about handling conditional redirects in Turbo based on success/failure states, particularly for modals

Source: @strzibnyj

Here are some responses he received (check the full thread on Twitter)

Source: @yarotheslav

οΈπŸ“Stephen Margheim asked if adding a custom allocation code path for a class could affect Object Shapes and YJIT optimization. Check full thread for the entire conversation πŸ’¬

οΈπŸ“ Nate Berkopec noted on Rails frontend weaknesses:

Here are some replies from his post πŸ’¬

Source: @bradgessler

οΈπŸ“ Brad Gessler appreciated how clean anchor tags look under link abstractions in Rails, hiding Turbo data attributes while maintaining readability

Source: @bradgessler

Source: @bradgessler

οΈπŸ“ Nate Berkopec shared about sharing CSS from another domain:

οΈπŸ“Jean Boussier demonstrated how reversing operands in a comparison (REMOVE_KEY == value instead of value == REMOVE_KEY) dramatically improved performance

and the PR comment for more explanations

οΈπŸ“ Vladimir Dementyev shared his experience pairing with Claude Code to migrate from Minitest to RSpec πŸ§ͺ

Source: @palkan_tula

οΈπŸ“ Joel Moss asked Ruby gem authors whether they prefer specifying development dependencies in the gemspec or Gemfile

Source: @joelmoss

and Julik replied

Source: @juliknl

πŸ“ David Heinemeier Hansson shared his thoughts on using Docker in development only for accessory services:

Source: @dhh

He also posted some benchmarks on his take

Source: @dhh

οΈπŸ“Gregory Brown shared advice on how to effectively read code by tracing execution paths rather than reading linearly

οΈπŸ“ Rich Steinmetz shared about how they use AI. Here is a part of the long post they shared. You can read it full on Threadreader app

πŸ’‘Around code (news, findings, books, and more - all about Ruby)

πŸ’‘ Charles Oliver Nutter is seeking help verifying third-party libraries on JRuby 10 ♦️

Source: @headius

❀️ Why Choose Ruby and Rails

❀️ Yaroslav Shmarov compared Laravel’s commercial focus to Rails minimalist open approach πŸ‘€

Source: @yarotheslav

🧰 Gems, Libraries, Tools and Updates

πŸ†• New Gems and Repos

πŸ†• David Heinemeier Hansson announced a new GitHub extension for local CI sign-offs. Here you can check the repo of this extension: gh-signoff

Source: @dhh

Source: @dhh

🧰 Updates

🧰 Joel Drapper added experimental support for ERB snippets in Phlex:

🧰 Joel Drapper announced an update on Phlex

🧰 Jorge Manrubia announced a new version of idiomorph:

Source: @jorgemanru

🧰 Davide Santangelo announced an update to his Gitingest gem and provided an article explaining the usage of it

Source: davidesantangelo

🧰 Avo announced plenty of updates recently - see the Video update, or read the blog post

Source: @avo_hq

🧰 Alexis Bernard announced a new version of Active Analytics

🧰 David Heinemeier Hansson announced a new Continuous Integration DSL for Rails 8.1. Here you can check the full PR: Structured CI with bin/ci #54693

Source: @dhh

🀝Hans Schnedlitz shared a NeoVim keybinding trick

🀝 Gavin Morrice asked for help defining "state" in software terms that would be understandable to non-technical people

He got some responses from his community

Source: @mhenrixon

Source: @juliknl

🀝Honeybadger.io announced a new EU data region option for users who need to keep their data outside the U.S., with a blog post providing more details

🀝 Adam Wathan shared his video series with the focus on high-quality UI 🎨

Source: @adamwathan

🀝Gregory Brown shared that he's been writing a personal tribute to the art of practice over the past few weeks

🀝 Donn Felker shared his take on how scattered meetings throughout the day destroy developer productivity

Source: @donnfelker

Links from his post:

🀝 David Teren shared a thread about MCP( Model Context Protocol). Read the full thread on threadreader app

Source: @davidteren

Source: @davidteren

🀝 Alex Yarotsky shared three steps for optimizing multi-column database indexes

More content: πŸ“š πŸ—ž 🎧 πŸŽ₯ ✍🏾

πŸ—ž Newsletters

πŸ—ž Any Cable published new edition of their newsletter: Any Cables Monthly #27

πŸ—ž Ruby Weekly published a new edition about On the state of Ractors in Ruby

πŸ—ž Hotwire Weekly published a new edition about Week 10 - Turbo Frames Loading Spinners, when to use Rails views, and more!

πŸ—ž Awesome Ruby Newsletter published a new edition about Issue 459 - What's the Deal with (Ruby) Ractors?

🎧 Podcasts

🎧 Tim Riley posted a new podcast: Lethal Dependency Injection

🎧 David Hill shared new podcast: Brand New Box - Ode to RailsConf

🎧 Pablo shared a new podcast about A junior, A Senior and I - on Building a Community

🎧 IndieRails posted a new podcast about Garrett Dimon - A Long Winding Journey

🎧 Chris Oliver and Andrew Mason published a new article about Advanced Package Management, PostgresSQL, and Mise

🎧 The Ruby on Rails Podcast published a new podcast about Episode 533: Catching Up With Nick Schwaderer

πŸŽ₯ Videos

πŸŽ₯ Dave Kimura posted a new video about Conditional Queue

πŸŽ₯ Ruby Central shared a new video: Ruby Talks: Chris Oliver on Becoming Co-Chair for RailsConf 2025

πŸŽ₯ Thoughtbot published a new video: Implementing LLM features with new Rails gem, Active Agent

πŸŽ₯ Rails Quest By Kaleb Lape published a new article about Rails 8 + Usage Credits: Build a Full Credit System in Your App in 10 Minutes

πŸŽ₯ CarlaStabile posted a new video: Coffee & Code 

πŸŽ₯ Landon Gray published a new video: HR & Payroll Assistant

✍🏾 Articles

What’s new πŸ†•

πŸ†• Avo published a new article: Social login with the Rails 8 auth generator

πŸ†• Jean Boussier posted an article: The Pitchfork Story

πŸ†• Kevin Sylvestre published a new article about OmniAI 2.0: An LLM Library for Anthropic, DeepSeek, Google, Mistral and OpenAI

πŸ†• Camillo Visini published a new article about Phlex for Rails Emails: Action Mailer without ERB

πŸ†• Alessandro Rodi published a new article about Going beyond the Jamstack with dato-rails

πŸ†• Ryan Bigg published a new article about Decorating arrays with SimpleDelegator

πŸ†• Daniela Baron published a new article about Migrating From Rails Secrets to Credentials

πŸ†• Brad Gessler published a new article about Pick the wrong tool for the job

πŸ†• Jon Sully published a new article about An Opinionated Guide to Configuring Rails on Heroku

πŸ†• Rails Designer published a new article about Build a Notion-like editor with Rails, part 2

πŸ†• Jess Brown published an article about Active Record OR with Merge

πŸ†• Mika Henriksson published a new article about Empty Jobs, Empty Promises

πŸ†• Paul Kim published a new article about Set up Action Cable with Rails and React

πŸ†• Jose Farias published a new article on his new series Object-Oriented Rails: It’s none of their business and about Just Write English

πŸ†• JoΓ«l Quenneville published an article about Triangle of Separation

πŸ†• Akshay Khot published a new article about New Series on Rails Controllers and about Working with HTTP Requests in Rails

πŸ†• Josef Strzibny published a new article The pragmatic approach to testing Rails applications

πŸ†• Andrey Koleshko published a new article about New UI Features for Schema Tracking and Migration Management in ActualDbSchema

πŸ†• Louis Antonopoulos published a new article about Seeds...of Destruction!

πŸ†• MirosΕ‚aw PragΕ‚owski published a new article about Ractor - getting started

πŸ†• Saeloun Blog published a new article about Bulk Migrations by Passing validate(_check)_constraint through change_table

πŸ†• Piotr RomaΕ„czuk published a new article about Is your Rails application special?

πŸ†• Blazej published a new article about How I Stay Motivated While Learning Ruby (Even When It’s Hard)

πŸ†• Josef Strzibny published a new article about The pragmatic approach to testing Rails applications

πŸ†• Unagi Software published an article about Hotwire Turbo Frames: Add Seamless Loading Spinners in Rails

πŸ†• Mike Dalessio shared Open Source Update / March '25

πŸ†• Rich Steinmetz published a new article about How I use AI coding tools as a Rails dev

How-TOs πŸ“

πŸ“ Ender Ahmet Yurt published a new article about Adding SessionTestHelper to Existing Rails Project

πŸ“ Bill Tihen published a new article about Rails: Table Selection Form (Article 2 of 2)

πŸ“ Henry Maddocks published a new article about Build Ruby with YJIT and Rbenv

πŸ“ Vini Oyama published a new article about Building a Multi-Page Guided Tour in Ruby on Rails with Driver.js

✍️ Andrey Sitnik published a new article How to make web videos way smaller in 2025 using the AV1 codec

✍️ Jon Sully published a new article about The Developer's Guide to Avoiding PaaS Lock-in

Reply

or to participate.