- Short Ruby Newsletter
- Posts
- Short Ruby News - Edition #92
Short Ruby News - Edition #92
The one where we deep dive into frozen strings
You can jump directly to a section:
👉 All about Code and Ruby: 💻 Code, 📐Code Design,💡Around, ❤️ Why Choose Ruby
🧰 Gems, Libraries, and Updates: 🆕 New, 🧰 Updates and 👀 Keep an eye on
🤝 Related (but not Ruby-specific)
More content: 📚 🗞 🎧 🎥 ✍🏾 (articles, podcasts, videos, newsletters)
🚀 Launches
🚀 Stephen Margheim has listed the beta version of SQLite on Rails (affiliate link - use this if you want to support ShortRuby newsletter) on Gumroad:


🚀 Alex Rudall is releasing his new book RailsAI - Ship your AI MVP, fast !

🚀 Andrea Fomera launched a new project called RailsBuddy.com for pairing Rails developers together:

🚀 Mehdi Farsi launched RubyQuiz

📅 Events
📅 Ruby Kaigi announced the dates for RubyKaigi 2025!

📅 Visuality announced that ticket sales for Ruby Warsaw Community Conference - Summer 2024 has started.

📅 Balticruby announces 30% discount on “Personal” tickets

📅 Kevin Liebholz shared the event details for Ruby Frankfurt Meetup - Summer Edition

👉 All about Code and Ruby
👉 Xavier Noria warned about not deleting frozen string literal:

Jean Boussier added about the flag on CI:

Xavier Noria published a note where he details the frozen string literal and what the future holds for it. You should read it!

and later added:

👉 Maxime Chevalier shared about Rails performance:

👉 Satoshi Tagomori shared he’d be talking about Namespace on Read a proposal for Ruby at RubyKaigi and at 「Ruby Association Activity Report」 開催のお知らせ


👉 Xavier Noria shared his thoughts around the naming of the new feature

👉 Rob Zolkos shared a job from Apple where they describe that they are using Rails for Apple Music: (see job here)

Bram Jetten added:

💻 Code Samples
💻 Marc Köhlbrugge shared a Ruby script to manage Cloudflare domains

💻 Collin shared a code sample on Enumerable#partition

And this is how to use the same in code:

💻 Drew Bragg shared a code sample showing stack HEREDOCs:

💻 Yaroslav Shmarov shares an interesting code sample for ruby

💻 Ruby On Rails shares a streamlined method to both invalidate a cache and procure a fresh token in Rails 7.1

💻 John Mc Dowall shares on how you can quickly and dirtily grab a local PG database backup running as a Kamal accessory.

💻 Chris Oliver shares a pro tip for rake tasks in ruby

Here is a quick example:

💻 Prabin Poudel shares his learning about number_with_precision

💻 Ruby Cademy suggests to take advantage of accessed_fields and after_action callback to optimize high-traffic pages.

💻 Matt Swanson asked about making a View Helper faster:

Here are some replies:




💻 Charles Oliver Nutter shared about JVM and JRuby integration:

💻 Matt Swanson shared a code sample:

💻 Mikel Lindsaar shared a benchmark comparison from JRuby 10: Ruby 3.3 on the Modern JVM

📐 Thinking about Code Design
📐 Peter Solnica shares a benchmark on Rails vs Hanami vs Phoenix.


Adrien Poly added their stats to Peter's benchmark:

📐 Andrei Maxim has something to add in response to Nate’s post discussed on our last edition

📐 Benjamín Silva H. explains why he thinks rails server handle more than 1.5 requests per server per vCPU:

📐 James Tucker shared about the performance he’s getting on a single vCPU using Rails

📐 Joel Drapper shared his thoughts about how many requests a Ruby/Rails application can handle.

📐 Gavin Morrice shared his experience working on Rails applications with millions of monthly users.

📐 Lucian Ghinda shared a thought about supporting pattern matching in arguments :

💡 Around code (news, findings, books, and more - all about Ruby)
💡 David Heinemeier Hansson shared a zero-config alternative to tmux


💡 Akshay Birajdar shared his learnings from reading the Down gem’s codebase

💡 Joël Quenneville shared tips for working with Turbo

💡 David Heinemeier Hansson discusses why Kamal1 needs Traefik for gap-less deploys.

💡 Piotr Ch shares why he thinks it’s time for a new game-changing framework

💡 Scott Watermasysk shared Hide files VS Code extension

💡 Adam Mc Crea shares three intriguing thoughts on Sidekiq queues:



💡 Matt Swanson shares about <bundle update --conservative GEM>

💡 Andrei Kaleshka talks about why he thinks pattern matching in Ruby is amazing and how it helped him with implementing his complex business logic.

💡 Ruby Cademy provides insights on what happens internally when ActiveRecord::RecordInvalid error is raised.

❤️ Why Choose Ruby
❤️ Spilth shares why he loves Ruby

❤️ Allometry shared about what they missed in other frameworks and why they will go back in Rails:

❤️ Conner says that he prefers Rails for its “batteries included” mentality

❤️ Jon Yongfook speaks for a lot of us as he quotes:

❤️ Jonathan Clem shared how the talks about Ruby being too slow

🧰 Gems, Libraries, Tools and Updates
🆕 New Gems and Repos
🆕 David Heinemeier Hansson announced a new editors supporting Markdown coming in the next 37Signal product called Workbook:


🆕 kokuyouwind announced a new gem called rbs_goose - RBS type inferrer with LLM

🆕 De Silva announced a new ruby gem danger-gem_changes: A Danger plugin to assist with Gemfile dependency changes.

🆕 Masato Ohba released pbt: Property-Based Testing tool for Ruby, supporting multiple concurrency methods (Ractor, multiprocesses, multithreads).

🆕 Lewis Buckley shared a repo kamal-prometheus-example: An example Rails app demonstrating using Prometheus metrics with Kamal

🧰 Updates
🧰 David Heinemeier Hansson announced a new version of Release v0.9.0 · rails/propshaft and it is now the default in Rails 8

🧰 Stanislav Katkov announced a new version of Posh TUI 0.7

🧰 Mohammad A. Ali announced a new version of litestack - Litestack is a Ruby gem that provides both Ruby and Ruby on Rails applications an all-in-one solution for web application data infrastructure.

🧰 Bozhidar Batsov shared release of RuboCop 1.64 which is out with a bunch of new features and small improvements

🧰 Janko Marohnić happily shares that the Down gem, used for Streaming downloads using Net::HTTP, http.rb or HTTPX has reached 1K stars on Github

🧰 Yuichiro Kaneko announced a new version of Release v1.8.0 · ruby/racc. racc is Racc is an LALR(1) parser generator. It is written in Ruby itself, and generates ruby programs.

🧰 Rémy Hannequin announced a new version of Pull requests · rhannequin/astronoby , astronoby enables Ruby developers to compute astronomical data and events

🧰 Mike Dalessio announced a new version of Release 2.0.2 / 2024-05-23 · sparklemotion/sqlite3-ruby

🧰 Jeremy Evans announced a new version of ruby-warning 1.4.0 Released · jeremyevans ruby-warning · Discussion #23

🧰 Kevin Newton shared about Prism progress:

👀 Keep an eye on
👀 Hanami shared their Plans for Hanami 2.2. You are welcome to checkout the project board and contribute.

👀 Jason Fried shared a preview of the next ONCE product “Workbook”


🤝 Related (but not Ruby-specific)
🤝 Mohammad A. Ali announced a new version of SQLite Release 3.46.0 On 2024-05-23

🤝 Joshua Wood shared about inspiration:

🤝 William Kennedy shared about businesses:

🤝 Jose Farias shared about OOP:

More content: 📚 🗞 🎧 🎥 ✍🏾
Tomoya Ishida shared their slides Writing Weird Code
Charles Oliver Nutter shared their slides JRuby 10: Ruby 3.3 on the Modern JVM
🗞 Newsletters
🗞 Ruby Central published a new edition about May 2024 Newsletter
🗞 Hotwire Weekly published a new edition about Week 21 - Turbo Native book update, Turbo LSP, and more!
🗞 Ruby Weekly published a new edition about Strings can only get better
🗞 Greg Molnar published a new edition of This Week in Rails about Better error message, opt-in devcontainers and more!
🗞 Ruby LibHunt published a new edition of Awesome Ruby newsletter - issue 418
🎧 Podcasts
🎧 Founder Quest published a new podcast about RailsConf recap with John Nunemaker
🎧 The Ruby On Rails Podcast published Episode 516: Catching Up On The Rails Foundation with Amanda Perino
🎧 Andrew Atkinson published a new podcast about Speaker: Andrew Atkinson | POSETTE: An Event for Postgres 2024
🎧 Aaron Francis published a new podcast David Heinemeier Hansson | High Performance SQLite
📽️ 🎥 Videos
Screencasts
🎥 Jason Swett published a new video about Refactoring RSpec Request Specs to be More Understandable - Mentorship Session with Yain Porter and about How Do We Write Tests for Job Streaming? and about Changing How Build/Job Navigation Works - Live Coding on SaturnCI
🎥 Yaroslav Shmarov published a new video about Tailwind on Rails #168 Mobile footer navigation
🎥 Dean De Hart published a new video about Idempotency in Ruby on Rails
🎥 Irina Nazarova published a new video about SF Bay Area Ruby Meetup, March 2024: Ben Sheldon, Marco Roth, Daniel Farina, Vladimir Dementyev
🎥 Drifting Ruby published a new video about Episode 458 - Feature Toggle from Scratch
✍🏾 Articles
What’s new 🆕
🆕 Mari Imaizumi compiled a big list of articles about RubyKaigi 2024
🆕 Andy Croll published a new article about Railsconf Detroit 2024: A Co-chair’s Perspective
🆕 Lewis Buckley published an article about Prometheus metrics with Rails and Kamal
🆕 Adam McCrea published an article about Planning your Sidekiq queues
🆕 Jason Swett published a new article about Testing anti-pattern: accessing private properties
🆕 Maciej Mensfeld published an article about From Sleep to Speed: Making Rdkafka Sync Operations 16 Times Faster
🆕 Dr. Milan Milanović published a new article about Inside Shopify’s Modular Monolith
🆕 Jared White published an article about Expressive Class Hierarchies through Dynamically-Instantiated Support Objects.
🆕 Steven Harman shared his blog On Flaky Tests, Time Precision, and Order Dependence.
🆕 Maciej Mensfeld published a new article about From Sleep to Speed: Making Rdkafka Sync Operations 16 Times Faster
🆕 Aki published a new article RubyKaigi 2024 - From LALR to IELR: A Lrama's Next Step (Day3)
🆕 Martin Streicher published an article about Five Things to Avoid in Ruby
🆕 Prasanth Chaduvula published an article about Strict Loading Using :n_plus_one_only Mode Does Not Eagerly Load Child Associations In Rails 7.2
🆕 Joel Warrington published an article about Building a Ruby on Rails MVP
🆕 Steven Harman published an article about On Flaky Tests, Time Precision, and Order Dependence
🕵️ Deep-Dive
🕵️ Jason Swett shared Testing anti-pattern: merged setup data - Code with Jason.
🕵️ Krzysztof published an article about Hanami’s place in the world of Rails
How-TOs 📝
📝 Mohammad A. Ali published a new article about Full text search for Litestack Ruby apps with Litesearch
📝 Akshay Khot published an article about How to Setup Rails-like Integration Tests in Ruby
📝 Rails Designer published an article about Communicating between Stimulus Controllers using Outlets API
📝 Ahmed Nadar published an article about Normalization in Rails 7.1 era
📝 Roland Lopez published an article about Ruby on rails Cloudflare turnstile tutorial
📝 Ryan Bigg published an article on Scheduling with Ice Cube and about Thought Experiment: Without React or GraphQL
📝 Fito Von Zastrow published an article about Extension without Modification
📝 Jeffery Morhous published an article about Adding views to an API-only Rails app
📝 Cristian Molina published an article about Basic painting with Ruby: implementing a flood-fill algorithm with DragonRuby GTK
📝 Garrett Gregor published an article about Fakeish
📝 Nithin Bekal published an article about Blocking AI bots with robots.txt in Jekyll
📝 Povilas Jurčys published an article about How to use custom gems without changing the Gemfile
📝 Bill Tihen published an article about Rails 7.1.x - GraphDB App with AGE
Reply