Short Ruby Newsletter - edition 125

The one where Andy Croll launches Ruby-themed t-shirts, Matt Swanson shares their GOAT pattern for Hotwire apps and you can learn about Array#bsearch from Kevin Lou

Table of Contents

(ad)

Pagecord: Independent Blogging for a #NoSocial World

Pagecord is an independent, free and open-source (micro)blogging platform for a #NoSocial world. Publish effortlessly to your own blog β€” readers follow via RSS or email.
No ads. No tracking. No VCs. No doomscrolling. Just writing, on your terms.

Why Pagecord?

βœ… Independently owned & open-source
βœ… Publish by email (or use the in-app editor)
βœ… Use your own domain
βœ… Email subscribers & automated weekly digests
βœ… Automatic media embeds (YouTube, Spotify, etc.)
βœ… Post upvotes
βœ… Built with Ruby on Rails ❀️

Short Ruby readers can get the first year of Pagecord Premium for only $12 (then $20/year) using the code SHORTRUBY at checkout. 

πŸš€ Launches and discounts

πŸš€ Andy Croll launched a Ruby-themed merch store

πŸ‘• Grab one from rubytshirts.com

πŸ“… Events

πŸ“… Balkan Ruby announced their complete lineup for the upcoming event 🀩

πŸ“… Rails Conf announced the availability of Supporter Tickets for Rails Conf 2025

🎟️ Here you can find the tickets: RailsConf 2025 Tickets

Source: @railsconf

πŸ‘‰ All about Code and Ruby

πŸ‘‰ Max Bernstein, Maxime Chevalier-Boisvert published an article about Interprocedural Sparse Conditional Type Propagation (check also the Github repo that shows a tool they built for this article):

πŸ‘‰ Henry Maddocks published a new article about Beginners Guide to Ruby on Rails Performance: Part 1 (you can also read part 2 here)

πŸ‘‰ Jean Boussier published a new article about What’s The Deal With Ractors?

πŸ’» Code Samples

πŸ’» Matt Swanson shared a Hotwire pattern using components and turbo_stream for better updates, instead of partials

Source: @_swanson (read it on Threadreader app)

He continued with more code samples demonstrating its usage;

Source: @_swanson (read it on Threadreader app)

πŸ’» David Heinemeier Hansson suggested simple local CI can be sufficient, citing HEY’s recent setup

Source: @dhh (read on Threadreader app)

And he also posted some stats based on the setup ⏳

Source: @dhh (read on Threadreader app)

Mark Hesketh shared a similar script in response to DHH’s post

Source: @markahesketh (read it on Threadreader app)

πŸ’»CΓ©dric Delalande shared how Ruby’s standard library can replace Dry::Struct

And Brandon Weaver added about the benefits of using Dry::Struct:

Source: β€ͺ@baweaver.bsky.social‬

πŸ’» Peter Bhat Harkins shared a handy Ruby irb snipped for identity/copy debugging

Source: @push.cx

πŸ’» Alex Yarotsky shared a PostgreSQL trick for faster Rails JSON serialization πŸ”§

οΈπŸ’» Kevin Luo shared a code sample about Ruby’s built-in method for binary search operations

πŸ‘€ For more details, go and check out the full article version: Ruby Binary Search

Source: @kevinluo201

οΈπŸ’» Ruby Cademy shared an example of Static Model in Rails for configuration management πŸ’‘

Source: @RubyCademy

Source: @RubyCademy

πŸ’» Lucian Ghinda posted a thread about the evolution of writing Ruby code (the code has a typo as it should be url: String => url)

πŸ“² You can read the entire thread on Bluesky for more details or on the blog

πŸ’» Ismael Celis showcased a two-step workflow pattern using commands, events and reactions in Ruby

οΈπŸ’» Ngan Pham shared how Gusto runs Brakeman without including it in the Gemfile πŸ”§

Source: @nganpham

οΈπŸ’» Deepak Mahakale shared a tip for setting up basic authentication in Rails

οΈπŸ’» Ruby Cademy shared a tip on creating reusable form components

Source: @RubyCademy

οΈπŸ’»Ismael Celis wrote a thread about mutable vs immutable data in the context of effective event handling

πŸ“ Thinking about Code Design

οΈπŸ“ Nithin Bekal shared that Sorbet added support for experimental RBS comments

⛓️ You can read all the details here: rbs-support

πŸ“ Ryan Bates reflected on preferring stateless class methods over traditional OOP

Source: @rbates.dev

and Jorge encouraged him to expand on his perspective in the near future ✨

Source: @jorgemanru

οΈπŸ“ Chris Oliver asked the community about the hardest aspects of Hotwire

Source: @excid3

Here are some of the replies πŸ“ž (go and read the replies on Bluesky or on Twitter)

Source: @_swanson

Source: @zg_dev

Source: @KellySutton

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

πŸ’‘ Nauman Tariq asked his network about their preferred charting libraries

Here are some community choices:

❀️ Why Choose Ruby and Rails

❀️ Mikel Lindsaar shared his appreciation for his dedicated team

Source: @lindsaar

❀️ Djah shared his joy of rediscovering Ruby after spending time in JavaScript development

Source: @Djahlor

❀️ Avi Flombaum emphasized Ruby’s continued relevance despite the dominance of other languages

Source: @aviflombaum

and Michael Chaney agreed Ruby’s community is a major strength πŸ’ͺ

❀️ Joe Masilotti expressed his love for Hotwire, highlighting the efficiency and simplicity of Ruby on Rails

Gems, Libraries, Tools and Updates

πŸ†• New Gems and Repos

πŸ†• Andrea Fomera created a new gem: solid_cache_dashboard

Source: @afomera.dev

πŸ†• Henrik Hauge BjΓΈrnskov created a new gem for Cloudflare Turnstile integration with Rails: turnstiled

Source: @henrik.fyi

🧰 Updates

🧰 John Nunemaker announced a new version of Flipper 1.3.3

🧰 Bozhidar Batsov (a.k.a. Bug) announced a new release of RuboCop 1.73

🧰 Justin Bowen announced an update for Active Agent

🀝 Jorge Manrubia shared an insight about software development

Source: @jorgemanru

🀝 Jason Swett posted his thougs the side effects of β€œtidyβ€œ code

Source: @JasonSwett

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

πŸ—ž Newsletters

πŸ—ž Andrey Eremin published a new edition about Static Ruby Monthly | Edition 2, February 2025

πŸ—ž Ruby Weekly published a new article about A fresh way to package Ruby apps as binaries

πŸ—žThis Week In Rails published a new article about Ignoring indexes in MySQL has never been so easy…

πŸ—ž Hotwire Weekly published a new article about Week 09 - Picture in Picture Videos, Hotwire Native Deep-links, and more!

πŸ—ž Awesome Ruby Newsletter published a new article about πŸ’Ž Issue 458 - Why Ruby on Rails still matters

πŸ—ž Ruby Central published a new article about The Ruby Central README: February 2025 Newsletter

🎧 Podcasts

🎧 Jason Swett shared a new podcast: The Code with Jason Podcast 250

🎧 Brendan Buckingham and Ryan Frischt published a new podcast: Navigating the Freelance and Product Development Landscape with Jason Swett

🎧 Joël Quenneville published a new episode of The Bikeshed: 456: Typescript with Jimmy Thigpen

🎧 Remote Ruby published two new episodes Annotating Models to Esbuild Challenges and Cyberpunk, Vite and Ruby Releases

πŸŽ₯ Videos

πŸŽ₯ Cameron Dutro posted a new video with his development experience: Neato Demo

πŸŽ₯ Andy Maleh published a new article about Montreal.rb February 2025 Design Patterns in Ruby

✍🏾 Articles

What’s new πŸ†•

πŸ†• Avo published a new article about Building an InertiaJS app with Rails

πŸ†• Rails Designer published a new article about Create a Animated Counter in Stimulus

πŸ†• Bill Tihen published a new article about Rails: Table Filtering & Sorting

πŸ†• Jean Boussier published a new article about There Isn’t Much Point to HTTP/2 Past The Load Balancer and about What’s The Deal With Ractors?

πŸ†•  Max Bernstein, Maxime Chevalier-Boisvert published a new article about Interprocedural Sparse Conditional Type Propagation

πŸ†• Mateus Pereira published a new article about A Tale of 3 Aliases

πŸ†• Rails Designer published a new article about Alternative to Ruby's Monkey Patching

πŸ†• Olly Headey shared an article about Migrating the Pagecord Rails app from AWS to Hetzner

πŸ†• Chandra Shettigar published a new article about Building Real-time Apps with Rails 8, Hotwire & ActionCable in Production

πŸ†• Daniel Lempesis published a new article about Advanced Queries in ActiveRecord

πŸ†• Harsh patel shared a new article about Essential Security Best Practices for Ruby on Rails

πŸ†• Andrey Novikov shared his slides about Generating OpenAPI schema from serializers throughout the Rails stack

πŸ†• Alexey shared a new article about Building a Multi-Connection Redis Server with Ruby

πŸ†• Dennis Paagman published an article about Deep link into apps with Hotwire Native and universal links (iOS)

πŸ†• Brad Gessler published a new article: Compile Ruby apps with Tebako

πŸ†• Mika Henriksson published a new article: Customizing Trix Editor with DaisyUI

πŸ†• Daniel Schoppmann published a new article about Use Rails I18n for more than translations

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

How-TOs πŸ“

πŸ“ Sami Birnbaum and Valeria Graffeo published a new article about about Zero-downtime with Rails credentials part III

πŸ“ Dennis Paagman published a new article about Deep link into apps with Hotwire Native and universal links (iOS)

πŸ“ Anusree Anilkumar shared a new article about Jekyll Github Pages Website - DEV Community

πŸ“ Davide Santangelo shared a tutorial about Building a simple URL Shortener with Rails 8: A Step-by-Step Guide

πŸ“ Jon Sullivan published a new article about Using Typora as a custom Buttondown front-end

πŸ“ Barry Hess published a new article about Fixing Broken Action Text Images in Atom Feeds

✍️ Bozhidar Batsov shared a new article: Automate the Creation of GitHub Releases

✍️ Test Double Blog published a new article about Want top talent and diversity? RTO mandates aren't the answer

Reply

or to participate.