Short Ruby News - Edition #33
Briefly about everything happening in Ruby world - week 10 of 2023 (web version)
You can jump directly to a section:
๐ย Our Community
๐ย All about Code and Ruby
๐งฐย Gems, Libraries, and Updates
๐คย Related (but not Ruby-specific)
More content: ๐ฅ ๐ง ๐ย (articles, podcasts, videos, and newsletters)
๐ค Founding Members supporting this newsletter
โ I am helping organize the Friendly.rb conference:
There are still a few (but not so many) early-bird tickets available and of course, the call for speakers is still open in case you are considering submitting a talk proposal.
๐ Our Community
๐ข Proud to announce that ShortRuby is growing bigger:
rubyandrails.info is now becoming part of ShortRuby. Read more in the announcement I published ๐
๐ James Adam asked for recommendations of accounts to be suggested on Ruby.social instance:

๐ Matt Valentine House shared they are the newest Ruby core committer:

๐ Wnb.Rb shared they are organizing a CfP working group session for Brighton Ruby. Subscribe at WNB.rb

๐ Brad Gessler shared that we should use Little Gestures of Confidence and from time to time focus on first-time experience with our projects and tools:

๐Euruko announced the dates for Euruko 2023 --> 21-23 Sept in Vilnius, Lithuania

If you like this content and want to receive it every week by email
๐ All about Code and Ruby
๐ Nate Berkopec shared a code sample showing Ruby code that causes memory growth over time:

๐Mudge shared a code sample showing how to duplicate active storage blobs from one record to another:

๐Prabin Poudel shared a benchmark about Rails object instantiation being 70 faster than OpenStruct

Among the replies, Benoit Daloze shared a pull request about improving performance of OpenStruct.
There are also good resources shared in that thread:
Lucian Ghinda (thatโs me) added the following:

๐ Andrea Rocca continues the series about Hotwire. Here is a screenshot from only one of the many tips shared this week:

Hotwire tip 16/30 JS-less tabbed navigation (source)
Hotwire tip 17/30 Twitter-style preview/undo/send tweet (source)
Hotwire tip 18/30 Markdown editor with live preview (source)
Hotwire tip 19/30 Pulse loading state (source)
Hotwire tip 20/30 Dynamic select fields (source)
Hotwire tip 21/30 Searchable dropdown (source)
Hotwire tip 22/30 Kanban board (source)
๐Jeremy Smith asked about what Rails blog post has been the most influential:

There were 3 resources shared:
Skinny Controller, Fat Model (2006)
Rails Hosting: Easy as Pie (2008)
๐Lewis Youl shared a code sample showing what does ActiveModel::Name does

๐Jeremy Smith shared two tips about refactoring Rails views:

๐The Rubber Duck Dev Show announced they are doing a Stream Tech Chat on their Rubber Duck Dev Show Discord:

๐Josias Schneider shared how the rake db:migrate works:

๐Josh Cheek shared a gist showing A program that is both a palindrome and a quine, made with hearts for Joe

๐Kevin Newton shared a code sample showing how pattern matching is used at ruby/assembler.rb at master
๐Dev shared a thread with Ruby books recommendations:

Here are the recommendations but you should read the thread as he also describes why he recommends each book:
๐Nate Berkopec shared that safe_constantize can sometimes appear as a bottleneck when used a lot:

Jean Boussier replied with a benchmark of const-get-bench.rb

The results look like this:
๐Carla Urrea Stabile asked a question about what improvements people look forward in the next Ruby versions:

Here are some of the replies:
Easy initialize ivars
Built-in memoization
PHP like construction promotion feature
Types
Better support for parallelism and distributed computing for fiber scheduler
default frozen literals
Better types tooling
Performance
๐Nate Berkopec shared a about how queueing Puma works (read the comment in the PR)

๐Vladimir Dementyev shared a code sample showing how they integrated Hanami with Phlex:

๐Moncef Belyamani shared commands to run when webpacker takes too much time to compile:

David Teren transformed that into a task:

๐Shiva shared a thread about string manipulation in Rails. Here is one of the code samples they shared:

๐ Stanislav (Stas) Katkov shared a preview of this new tool PoshTUI (API documentation browser in console for ruby developers)

๐Lucian Ghinda shared in the context of the discussion about Ruby safe navigation operator vs Rails try:

๐Jess Brown shared a thread about how to work with db schema changes:

๐Moncef Belyamani shared a code sample showing how expressive is Ruby:

๐Kevin Newton shared an update on the YARD:

๐Kirill Shevchenko shared a code sample about the iterator pattern:

๐ Samuel Williams shared a code sample about a deadlock bug in Async:

๐Thomas Riboulet shared a thread about Ruby and Docker:

๐Greg Navis shared about how to use as_json to control the keys:

๐ You can subscribe for free if you like this kind of content
Or you can consider upgrading to paid
Investing in the Ruby Weekly Newsletter as a paid subscriber is a valuable way to support the community around you. For ~1.5$/week (6.5$ per month), you can support its growth and ensure that high-quality information about the latest developments in Ruby continues to be available to everyone, both paying and non-paying subscribers alike.
If you consider upgrading and want more information, please read Why to subscribe to paid
๐งฐ Gems, Libraries, and Updates
๐งฐ Joel Drapper announced they released Phlex versions 1.5.0, 1.6.0 and 1.6.1. Read the release notes
๐งฐ Jared White announced they ported Preact Signals to Ruby. Checkout the signalize gem
๐งฐJoel Drapper shared a PR where someone describes how they plan to use Phlex to render PHP: A possible use-case for unsafe_raw and unescaped attributes ยท joeldrapper/phlex ยท Discussion #519
๐งฐ Ben Sheldon shared a gem called derailed_benchmarks that helps benchmark Rails or Ruby apps.
๐งฐ Justin Searls announced that the standardrb is now supported by lsp-zero plugin for Neovim. Read the pull request
๐งฐKasper Timm Hansen announced a new gem called showcase-rails that lets you build previews for your partials, components, view helpers, Stimulus controllers, and more:
๐งฐ Rubocop released a new version 1.48 adding two new cops: Style/DirEmpty and Style/FileEmpty. Read the full changelog for 1.48 here
๐งฐ Xavier Noria announced that Rails 7.1 will add Improve support for custom namespaces
๐งฐ Takashi Kokubun released a new JIT for Ruby RJIT by k0kubun ยท Pull Request #7448 ยท ruby/ruby
You can also read the ticket on Ruby tracker: feature 19420 and maybe you want to read the article Takashi published RJIT: A Pure-Ruby JIT for Ruby
๐งฐ Joel Drapper announced that turbo-rails has now support for rendering Phlex and ViewComponents Read the pull request here
๐งฐ Stan Lo announced that irb can now be independently updated as the following PR was merged Make irb a railties dependency
๐งฐ Vladimir Dementyev shared a PR about rspec-mocks not working well with Rails 7.1 breaks receive().with. There is already a fix merged to rspec-mocks
๐งฐ Konstantin Gredeskoul announced they created a PR for making puma-daemon to work with Puma v5+ Read the PR here
๐งฐ Mari Imaizumi announced the release of IRB v1.6.3 Read the changelog
๐งฐ Vinicius Stock announced the release of vscode-ruby-lsp v0.2.0 Read the changelog
๐งฐJoe Masilotti announced the release of TurboNavigator: A drop-in class for Turbo Native apps to handle common navigation flows.
๐งฐDHH announced the release of mrsk v0.9.0 Read the release notes
๐งฐ Andrew Culver shared a PR that shows how to integrate Nice Partials into bullet train Update callers to Nice Partials method accessors
๐งฐ Nate Hopkins announced a new gem composite_cache_store a composite cache store comprised of 2 ActiveSupport: :Store instances
๐ค Related (but not Ruby-specific)
๐คEric Berry shared a configuration to change the Discord window

๐คEmma Bostian asked an excellent question about the mood we are in now.

๐คDrew Bragg shared a funny take about hard things in computer science:

๐ค Shiva shared a thread about working with Redis. Here is one of the posts:

You should also read the second thread about Redis.
๐ค Wes Bos shared a tip about configuring ngrok-like behavior via Cloudflare:

If you like this content and want to receive it every week by email:
More content: ๐ฅ ๐ง ๐
๐ Newsletters
๐ Greg Molnar published a new edition of This Week in Rails: Improve custom namespace autoloading, Object#with and more!
๐๏ธย Ruby Weeklyย published a new edition:ย RubyGems' answer to npx
๐ Ruby Radar published a new edition Ruby Radar #93 - IRB Making Waves
๐๏ธย Ruby LibHuntย published a new edition of theย Awesome Ruby Newsletter
Podcasts
๐ง Joel Drapper published a new episode of Rooftop Ruby 4: Green Dots and Boogie
๐ง Code And The Coding Coders Who Code It published a new episode with Andrew Mason
๐ง Jeremy Smith published a new episode IndieRails | Colin Keeley - How/Why to buy or sell a business
๐ง The Ruby On Rails Podcast published a new episode about Episode 460: The State of Rails Hiring in 2023 (Brittany + Brian)
๐งContent For :Devs published a new episode #007 - Behind the scenes of GoRails screencasts with Collin Jilbert - content_for :devs
๐งMaintainable Software Podcast published a new episode about Henrik Warne - There is No Software Maintenance
๐งJason Swett published a new episode about 175 - Preventing Software Defects with Vitor Oliveira - The Code with Jason Podcast
๐ง Ruby For All published a new episode about Development Gems | Ruby for All | Episode 33
๐ง Remote Ruby published a new episode about Ruby Language Server with Vinicius Stock | Remote Ruby | Episode 221
Videos
Talks
๐ฝ๏ธ Jason Swett published a new episode about Organizing Rails code with Jorge Manrubia of 37signals
๐ฝ๏ธ Creston Jamison published a new episode about Failing In Public | Rubber Duck Dev Show 76
๐ฝ๏ธ Joe Masilotti published a live video about Launching TurboNavigationController
๐ฝ๏ธ Prabin Poudel shared their video about Maintaining Code Standards
๐ฝ๏ธ The Rubber Duck Dev Show published a new episode about Monetizing Dev Content
๐ฝ๏ธ Jason Swett published a new episode about What causes flaky tests (2023-03-09 Code with Jason Meetup session)
Screencasts
๐ฅ Justin Searls published the third episode of their series called Searls after Dark where he build an AI chat app with Ruby on Rails #3 - Going end-to-end
๐ฅ Ruby Weekly shared a new video from WebCrunch showing how to implement Ruby on Rails Drag and Drop Uploads with Active Storage, Stimulus.js
๐ฅ Dave Kimura published a new episode about MRSK in Depth | Drifting Ruby
๐ฅ Hanami Mastery published a new episode about Best way to work with Front Matter in Ruby!
๐ฅ Phil Smy published a new episode about Rails 7: Tabulator & Stimulus - Ruby on Rails Tutorial
๐ฅ Pete Hawkins published a new episode about Simplify your VIEW COMPONENTS with dry-initializer
๐ฅ The Rubber Duck Dev Show published a new episode doing Crash of Code The Big 5-0 Birthday Bash / Clash of Code - Coding with Chris
๐ฅ Deanin published a series of videos:
๐ฅ Pete Hawkins shared a short video on Twitter about Free custom error page templates for your Rails app (he also shared the code here)
๐ฅ Yaroslav Shmarov published new episodes:
Ruby on Rails #116 Custom error pages (404 Not found and 500 Internal server error)
CertificateOwl day2 - building a proof-of-concept (POC) app with Ruby on Rails
Articles
Whatโs new
Paweล ลwiฤ tkowski published a new article about Underrated pattern of an inline event dispatcher
Cameron Youngblood published a new article about Intro | Junior Rails Review
How-Tos
Sam Ruby published an article explaining how to run systems tests on CI/CD
Lucas Barret published a new article about Rails Generator for GraphQL queries
Equivalent published a new article about Rails's .try vs Ruby's &. (a.k.a safe navigation)
Takashi Kokubun published a new article about RJIT: A Pure-Ruby JIT for Ruby
Deep Dives
William Neal shared an older article (2022) about Minitest vs. RSpec in Rails
Nate Berkopec shared an older article (2020) written by Konstantin Gredeskoul about Test your Understanding of Ruby Concurrency
Ruby Lib Hunt shared an article about Ruby 3.2's WASI Integration: A Closer Look
Related
Test Double published an article about How we support Double Agents with onboarding buddies
๐ค Founding Members supporting ShortRuby
Drew Bragg, host of Code and the Coding Coders who Code it
Avi Flombaum, the founder of Flatiron School, is a product engineer interested in full-time/contract work.
Adrian Marin, creator of Avo - a Ruby on Rails application building framework
Adam McCrea, creator of Judoscale (formerly Rails Autoscale)โtheย dead-simple autoscalerย for Rails, Sidekiq, etc.
Stephen Ierodiaconou from www.diaconou.com
Harry Lascelles
Jason Charnesย from Remote Ruby
Andy Croll fromย One Ruby Thingย and FirstRubyFriend
Read more about what is a Founding Member or about Why pay for ShortRuby newsletter