Short Ruby Newsletter - edition 132

The one with several Ruby releases: 3.4.3, 3.5.0-preview1, and JRuby 10, where Marco Roth announces herb tools and Matz suggests that Ruby 4.0 may be released this Christmas.

In partnership with

Table of Contents

Find out why 1M+ professionals read Superhuman AI daily.

AI won't take over the world. People who know how to use AI will.

Here's how to stay ahead with AI:

  1. Sign up for Superhuman AI. The AI newsletter read by 1M+ pros.

  2. Master AI tools, tutorials, and news in just 3 minutes a day.

  3. Become 10X more productive using AI.

πŸš€ Launches and discounts

πŸš€ Rails Designer launched a new book about JavaScript for Rails Developers is out now. As a ShortRuby newsletter subscriber, you can get 10% off with code SHORTRUBY-FRIEND (valid until April 25).

πŸš€ Matt Solt announced the launch of a new AI newsletter - RoboRuby - Ruby AI News. You can subscribe and check out the first three editions at Ruby AI news

Source: @mattsolt

πŸš€ Marco Roth launched a new project β†’ herb - β€œπŸŒΏ Powerful and seamless HTML-aware ERB parsing and toolingβ€œ. For more details, check out the blog post for this announcement - Introducing Herb: A new HTML-Aware ERB Parser for smarting developer tooling and visit herb-tools.dev or the Github repo

πŸ“… Events

πŸ“… Friendly.rb announced that their CFP is open until July 1st, and they hint that early submissions have better chances of acceptance. Submit at friendlyrb.com/cfp πŸƒDon’t forget to buy your ticket πŸ™‚ the conference has limited seats.

πŸ“… Irina Nazarova invited Ruby developers to join the SF Ruby meetup on Wednesday, April 23, at Sentry HQ

Source: @inazarova

πŸ“… Javi Ramirez announced he's organizing a Ruby on Rails meetup near the beach in Lisbon in two weeks. If you’re interested, here is his group where you can keep in touch for more details β†’ Ruby on Waves πŸŒŠ

Source: @rameerez

πŸ“… Vienna.Rb announced their upcoming meetup on June 5th, promising an exciting event with great speakers and a mysterious surprise, with more details to be revealed soon

Source: @viennarb

πŸ‘‰ All about Code and Ruby

πŸ‘‰ ️Takashi Kokubun announced an update for Ruby 3.4.3 - Read the full details on Github

οΈπŸ‘‰ Yui Naruse announced a new release of Ruby 3.5.0 preview1

οΈπŸ‘‰ J Ruby Dev Team announced the release of a new version of JRuby 10.0.0.0

πŸ‘‰ Nate Berkopec shared reported exciting news from RubyKaigi: Matz confirmed that Ruby 4.0 is likely coming this Christmas

πŸ’» Code Samples

οΈοΈπŸ’» Hans Schnedlitz shared a tip about using HTTParty to create custom HTTP clients

οΈοΈπŸ’» Jamie Schembri shared a quick Ruby trick to serve files using just one line of code: β€œruby -run -e httpd”. This simple command comes from Ruby's standard library β†’ ruby/un - β€œUtilities to replace common UNIX commandsβ€œ

πŸ’» Brad Gessler proposed a more intuitive Email API for Rails, showcasing a simplified approach to email composition that consolidates everything into a single file

πŸ’» Gregory Brown shared Conway's Game of Life code with a bug, asking readers to spot what would go wrong. The issue is the code doesn't handle dead cells with numbers of neighbors other than exactly 3, causing pattern matching to fail in those cases. Check the full thread on Bluesky for more insights

And someone replied:

L️ater on Gregory said:

πŸ’» Hans Schnedlitz showcased how to shuffle arrays randomly but consistently in Ruby by using a seed value, allowing randomized content to appear the same for all users

οΈπŸ’» Ruby Cademy revealed a neat ActiveRecord trick: when a β€œRecordInvalid” exception is raised, you can access the invalid record using β€œexception.record”

Source: @RubyCademy

οΈπŸ’» Igor Alexandrov shared his Kamal commands cheat sheet, covering essential deployment tasks for Ruby apps

οΈπŸ’» Hans Schnedlitz shared a tip for Ruby developers: use circuit breakers to prevent your app from breaking when external services go down. He used for this β†’ circuitbox - β€œCircuit breaker built with large Ruby apps in mindβ€œ

Source: @hschnedlitz

οΈοΈπŸ’» Bhumi shared a handy Rails CLI tip: Running β€œbin/rails" shows available commands and aliases. Add β€œ--help” to any command for detailed usage instructions, like β€œbin/rails generate --help”

Source: @bhumi1102

οΈπŸ’» Ruby Cademy shared a pro tip about enhancing Rake tasks in Ruby, showing how to hook into existing tasks for additional actions like logging or notifications before or after task execution

Source: @RubyCademy

οΈπŸ’» Jamie Schembri highlighted Ruby's Etc module, a standard library feature that provides easy access to system data like user information, groups, and architecture.

οΈπŸ’» Nidhi Sarvaiya explored the new β€œparams.expect” feature in Rails 8, finding it offers more robust error handling by providing consistent and clear validation of parameter structures

πŸ“ Thinking about Code Design

οΈπŸ“οΈ Nate Berkopec highlights a common Cumulative Layout Shift (CLS) problem in Rails apps: missing image dimensions. He suggests storing image height and width with ActiveStorage to improve page stability and user experience. The reference for this statement here β†’ How to store image width & height in Rails ActiveStorage

Rob replied:

Source: @robzolkos

οΈπŸ“ Jose Farias shared a Ruby coding style tip: Indenting private methods makes it easy to quickly see access restrictions when reviewing code, especially in diffs with limited context

and Joel replied:

Source: @joel.drapper.me‬

Source: @joel.drapper.me‬

οΈπŸ“ Adam McCrea explained how job queues with different Service Level Objectives (SLOs) can dynamically scale worker processes. An urgent queue with a 5-second SLO scales down to 1 worker when idle, while a default queue with a 30-second SLO scales to zero workers when empty, helping optimize computational resources and costs

οΈπŸ“ Nate Berkopec shared his take on web application performance πŸ“ˆ

οΈπŸ“ Steven R. Baker suggested cleaning up old Rails migrations after they've been applied in production. For mature projects, keeping every migration becomes unnecessary and can complicate database management

Source: @srbaker

οΈπŸ“ JP Camara highlighted a performance improvement in Ruby's Ractor JSON parsing: Frozen interned strings are now stored in a lock-free hash, making the Ractor example twice as fast as the single-threaded version

All the resources from this thread are available here:

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

πŸ’‘Ruby Central announced that free RubyGem analytics are available to the community. For more details, check the blog post β†’ Announcing Ruby Gem analytics powered by ClickHouse and Ruby Central

πŸ’‘ Peter Cooper shared his early impressions of GPT 4.1, testing it with a Ruby library

Source: @cooperx86

Source: @cooperx86

Source: @cooperx86

❀️ Why Choose Ruby and Rails

❀️ Irina Nazarova shared a powerful quote highlighting Rails as a secret superpower, revealing how successful companies have been consistently building their products with Ruby on Rails. You can read the entire thread on the Threadreader

Source: @inazarova

She continued bringing relevant arguments on this take, showing how amazing Ruby ecosystem really is πŸ’•

Source: @inazarova

Source: @inazarova

Source: @inazarova

πŸ‡―πŸ‡΅ RubyKaigi 2025

We have grouped here all the news related to RubyKaigi 2025.

🀳 Posts

️🀳 Stephen Margheim highlighted Matz's RubyKaigi 2025 closing keynote, emphasizing Ruby's strong potential as a central language in the emerging AI era

🀳 Maciej Mensfeld shared exciting news from RubyKaigi: He developed a Ractor-based deserialization engine for Karafka, achieving a 30% performance boost without requiring any code changes from users

πŸ“ Notes

πŸ“ Mish shared a beautiful illustration with explanations about β€œHow Do Computers Understand Ruby?” during RubyKaigi 2025

Source: @mishmashtan

Source: @mishmashtan

And also some more notes β†’ β€œRuby Commiters and The World”. Feel free and check both posts to see each illustration in more detail:

Source: @mishmashtan

Source: @mishmashtan

πŸ‘Ύ Games and Trick 2025

πŸ‘Ύ Yusuke Endoh announced the publication of the winning entries for TRICK 2025, expressing gratitude to all participants, viewers, and judges. Check the GitHub repo to see each solutionβ†’ tric/trick2025

Source: @mametter

πŸ‘Ύ Vladimir Dementyev shared a game β†’ RubyKaigi Warrior 2025 - β€œGame written in Ruby for learning Ruby”. If you’re also interested, the game is available to play even if you were not at RubyKaigi 🀩

Source: @palkan_tula

οΈπŸ‘Ύ Sunao Hogelog Komuro posted an IRB Treasure Hunt game πŸ†and is available to try it here β†’ ruby-quiz2025 - IRB Treasure Hunt

Source: @hogelog

πŸ†• Launches and Updates

πŸ†• Marco Roth created a new gem β†’ herb - β€œπŸŒΏ Powerful and seamless HTML-aware ERB parsing and toolingβ€œ. For more details, check out the blog post for this announcement - Introducing Herb: A new HTML-Aware ERB Parser for smarting developer tooling

Source: @marcoroth_

πŸ†• Stephen Margheim created a new gem β†’ plume - β€œRuby library for working with SQLite elegantlyβ€œ

🧰 Takashi Kokubun announced that upstreamed ZJIT to CRuby. More details can be seen here β†’ ZJIT #13131

Source: @k0kubun

This is related to Maxime Chevalier-Boisvert proposal for next generation JIT for Ruby. For more details check out this issue β†’ Feature #21221 - Proposal to upstream ZJIT

πŸ”– RubyKaigi Slides

πŸ”– Yuta Saito published his slides from RubyKaigi 2025 β†’ The Evolution of the CRuby Build System

πŸ”– Takashi Kokubun published his slides from RubyKaigi 2025 β†’ Deoptimization: How YJIT Speeds Up Ruby by Slowing Down

πŸ”– Marco Roth published his slides from RubyKaigi 2025 β†’ Empowering Developers with HTML-Aware ERB Tooling

πŸ”– Yuichiro Kaneko published his slides from RubyKaigi 2025 β†’ Ruby’s Line Breaks

πŸ”– Mari Imaizumi published her slides from RubyKaigi 2025 β†’ Ruby Taught Me About Under the Hood

πŸ”– Yudai Takada / Ydah published his slides from RubyKaigi 2025 β†’ Dissecting and Reconstructing Ruby Syntactic Structures and Ruby on Railroad: The Power of Visualizing CFG

πŸ”– Makicamel published his slides from RubyKaigi 2025 β†’ Road to RubyKaigi: Making Tinny Chiptunes with Ruby

πŸ”– Jeremy Evans published his slides from RubyKaigi 2025 β†’ Eliminating Unnecessary Implicit Allocations

πŸ”– Ryuta Kamizono published his slides from RubyKaigi 2025 β†’ RuboCop: Modularity and AST Insights

πŸ”– Koichi Sasada published his slides from RubyKaigi 2025 β†’ Toward Ractor local GC

πŸ”– Peter Zhu published his slides from RubyKaigi 2025 β†’ Modular Garbage Collectors in Ruby

πŸ”– Charles Oliver Nutter published his slides from RubyKaigi 2025 β†’ Optimizing JRuby 10

πŸ”– Aaron Patterson published their slides from DevMeething at RubyKaigi β†’ RubyKaigi Dev Meeting 2025

πŸ”– Alex Rodionov published their slides β†’ Bazel for Ruby (RubyKaigi 2025)

πŸ”– Ryo Ishigaki published their slides β†’ Making a MIDI controller device with PicoRuby/R2P2 (RubyKaigi 2025 LT)

πŸ”– State of Namespace published their slides β†’ State of Namespace

πŸ”– Soutaro Matsumoto published their slides β†’ API for docs

🧰 Gems, Libraries, Tools and Updates

πŸ†• New Gems and Repos

πŸ†• Socket announced that Rubygems ecosystem support is now generally available. Check the blog post for more details β†’ Rubygems Ecosystem Support Now Generally Available

Source: @socket.dev

πŸ†• Stephen shared a new gem of Takumi Shotokuβ†’ rbs-trace - β€œRBS::Trace automatically collects argument and return types and saves RBS type declarations as RBS files or comments.β€œ

πŸ†• CΓ©dric Delalande created a new gem β†’ zed-test-toggle - β€œA small gem to toggle between source and test in the Zed editorβ€œ

πŸ†• OpenAI released a new gem β†’ openai-ruby - β€œOpenAI’s official Ruby SDKβ€œ

Source: @alexrudall

🧰 Updates

🧰 Justin Bowen announced a new version of activeagent - β€œActiveAgent Rails framework for Agent Appsβ€œ

🧰 Carmine Paolino released a new version of ruby_llm - β€œA delightful Ruby way to work with AI. No configuration madness, no complex callbacks, no handler hell – just beautiful, expressive Ruby codeβ€œ

Source: @paolino

🧰 Yudai Takada / Ydah released a new version of RuboCop RSpec v3.6.0 (RubyKaigi 2025 Edition🍊) - β€œCode style checking for RSpec filesβ€œ

🧰 Kasper Timm Hansen announced an update for oaken - β€œOaken upgrades your development seeds, lets you reuse them in tests & blends the best of fixtures & factories into one cohesive wholeβ€œ

🧰 David Heinemeier Hansson announced an update for Kamal - β€œDeploy web apps anywhereβ€œ. For more details, check out this PR β†’ Maintenance mode #1497

Source: @dhh

Source: @rubymine

🀝 Gregory Brown shared a critical insight about generative AI in coding. Here is just a part, you can check all details from this thread on Bluesky

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

οΈπŸ“š Irina Nazarova posted her slides from TropicalOnRails 2025 β†’ Startup on Rails

πŸ—ž Newsletters

πŸ—ž Ruby On Rails published a new edition of This Weekin Rails about Ruby on Rails’ Improved leap year counting performance and more!

πŸ—ž Hotwire Weekly published a new edition about Week 16 - Introducing Herb, JSX over the Wire, and more!

πŸ—ž Sajjad Umar published a new edition about Ruby on Rails β€” April 2025

πŸ—ž Awesome Ruby Newsletter published a new article about πŸ’Ž Issue 465 - Kotlin, Swift, and Ruby losing popularity

🎧 Podcasts

🎧 David Hill published a new podcast β†’ Ode to RailsConf - Jim Remsik

🎧 Brendan Buckingham published a new podcast β†’ Rails Business - John Nunemaker

🎧 Remote Ruby published a new podcast about β†’ John Nunemaker

🎧 The Bike Shed published a new podcast about β†’ 459: Paper Data Structures with Sally Hall

πŸŽ₯ Videos

πŸŽ₯ wrocloverb published the videos from the conference at wroc_love.rb 2025

✍🏾 Articles

What’s new πŸ†•

πŸ†• Abdelkader Boudih published a new article about LLMs and the Ossification of APIs: Are We Stuck with Prehistoric Patterns?

πŸ†• Mike Perham published a new article about Sidekiq 8.0: Profiling

πŸ†• Marco Roth published a new article about Introducing Herb: A new HTML-Aware ERB Parser for smarting developer tooling

πŸ†• Akshay Khot published a new article about Fix N+1 Queries Without Eager Loading Using SQL Subqueries

πŸ†• Philip Poots published a new article about HTML Gardening with Herb and about HTML Parsley with Herb

πŸ†• Henry Maddocks published a new article about Let’s talk about Type Coercion in Ruby

πŸ†• Jake Zimmerman published a new article about Typing instance variables in mixins

πŸ†• Josua Schmid published a new article about web-console and processes

πŸ†• Cody Brooks published a new article about Can YOU Still Receive Connections At REDIS_URL

πŸ†• Jeffery Morhous published a new article about Is No PaaS really a good idea for Rails?

πŸ†• Gavin Morrice published a new article about On the importance of syntax and semantics; How Ruby's power lies in its beauty

πŸ†• Jeffery Morhous published an article about Is No PaaS really a good idea for Rails? - Honeybadger Developer Blog

πŸ†• Thomas Riboulet published a new article about Pre-build a Secure Authentication Layer with Authentication Zero for Ruby on Rails

πŸ†• Jakob Skjerning published a new article about Driving View Transitions with Hotwired/Turbo

πŸ†• Joey Wang published a new article about Addressing Out-of-Order Updates in Concurrent Systems

How-TOs πŸ“

Mateus Pereira published a new article about Setting Up Rails with Dev Containers

πŸ“ Rodrigo Nogueira published a new article about Creating APIs with Grape and Rails: A Complete Journey - Part 2

πŸ“ Pete Hawkins published a new article about How to Supercharge Ruby on Rails Development with Cursor AI

πŸ“ Aaron Sumner published a new article about Old Ruby and Rails on new hardware with dev containers

πŸ“ Tejas Bubane published a new article about Add IP restriction on Rack app for specific accounts

πŸ“ Harrison Broadbent published a new article about Blogging with Ruby, Middleman and Tailwind CSS and about Add an RSS feed to your Middleman Blog

πŸ“ Nikhil published a new article about How to Use Enum Attributes in Rails Models for Cleaner Code

Avdi Grimm published a new article about How to Understand a New Codebase Quickly

Jamie Schembri published a new article about Your Dependencies Are Not Free

Sean Goedecke published a new article about A practical guide to coding securely with LLMs

Brooke Kuhlmann published a new article about Git Rebase Squash

Reply

or to participate.