- Short Ruby Newsletter
- Posts
- Short Ruby Newsletter - edition 109
Short Ruby Newsletter - edition 109
The one with Ruby 3.4.0-preview2 launch, videos from Rails World published, Xavier explaining how Zeitwerk and namespacing work and inspiring Ruby code samples
Table of Contents
Streamline your development process with Pinataโs easy File API
Easy file uploads and retrieval in minutes
No complex setup or infrastructure needed
Focus on building, not configurations
๐ Launches and discounts
๐ Andy Croll launched usingrails.com - a directory to gather all organisations that are using Ruby on Rails:
Submit your company at https://usingrails.com
After creating a new account, you can submit a website directly via the web interface at https://usingrails.com/submissions/new.
๐ Prabin Poudel launched Zero Config Rails - Generators
Source: @coolprobn
๐ Greg Molnar launched Introducing Silk Rail
Source: @GregMolnar
๐ Alexandre Ruban launched a new ebook Cookie-based authentication with Rails
Source: @alexandre_ruban
๐ Events
๐ One month away until RubyConf 2024 if you plan to go now it is a good time to buy ticket and plan your trip:
๐ Tropical.Rb tickets will go on sale on October 30th, 2024! Donโt miss out and get ready to hit F5!
๐ Ruby Banitsa conf will be hosted on December 7th, 2024 in Sofia, Bulgaria with Kasper Timm Hansen as their international guest.
๐ Errol Schmidt invited leaders in Ruby community to an Exclusive Rubyconf Chicago Dinner: Network with Industry Leaders
Source: @eSquareDesign
๐ Here is a list of Meetups happening this week (source: rubyconferences.org/meetups)
October 14, 2024 โ London Ruby User Group - October 2024 Meeting
October 14, 2024 โ Orange County Ruby - Ruby Science October 2024
October 15, 2024 โ Boston Ruby Group - October 2024 meeting
October 15, 2024 โ RubyJax - Open Hax October 2024
October 15, 2024 โ VanRuby - Klue + Ruby - Past, Present & Future
October 16, 2024 โ Boulder Ruby - October 2024 Presentation Night
October 16, 2024 โ Geneva.rb - Developer Tooling for the Modern Rails & Hotwire era (Marco Roth)
October 16, 2024 โ Portland Ruby Brigade - Cocktails + Code October 2024
October 16, 2024 โ Rails Taiwan - ้ซ้ Rails Meetup October 2024
October 16, 2024 โ Rzeszow Ruby User Group - RRUG#40 Sidekiq. Git internals.
October 16, 2024 โ West Midlands Ruby User Group - Monthly Meetup October 2024
October 17, 2024 โ Christchurch Ruby Group - Monthly Meetup: TBD October 2024
October 17, 2024 โ Polish Ruby User Group - Ruby Warsaw Meetup AI Edition #October
October 17, 2024 โ RubyJax - Lightning Talks
October 17, 2024 โ ada.rb - Live: O que rolou na Rails World 2024?
October 18, 2024 โ Ruby and Rails Adelaide - Ruby Burgers October 2024
October 19, 2024 โ African Ruby Community - Kampala Chapter Mini workshop October 2024
October 19, 2024 โ Pune Ruby Users Group - October Meetup
๐ All about Code and Ruby
๐ ๏ธYui Naruse shared a new release of Ruby - 3.4.0.preview2
๏ธ๐ป Xavier Noria shared a long post about the new version of Zeitwerk explaining how it works. Here is just the first part of the post, but you should read it full.
Source: @fxn (Read the full thread at Threadreader)
He later added:
Source: @fxn
๐ป Code Samples
๐ป Saeloun shared Railsโs ability to ignore counter cache columns while they are backfilling
๏ธ๐ป ๏ธKyrylo Silin shares how importmap can check dependencies for vulnerabilities
๐ป ๏ธ Jorge Manrubia shared why loading Rails fixtures as part of seeding is a great idea!
๏ธ๐ป Deepak Mahakale shared the new addition on rails 8 that helps you drop multiple tables with a single command
๐ป Ruby Cademy shared Railsโs new added support for using hashes in select
Also, this is how you can take advantage of the rails runner command and Bash Heredocs
๐ป ๏ธMichael Chaney highlights the flexibility of Rails in handling attribute normalization
He also shared the following on query building:
๐ป Prabin Poudel shared a code sample to implement copy to clipboard feature with StimulusJS and TailwindCSS/DaisyUI
Source: @coolprobn (Read on Threadreader)
๏ธ๐ป Emmanuel Hayford shared about using the allow_browser:
๏ธ๐ป Tomoya Ishida shared ruby_syntax_fuzzer.rb
Source: tompng
๏ธ๐ป Ruby Cademy shared a code sample showing how to use extend on the same line:
Source: @RubyCademy
They shared some examples from MailCatcher or Capnp integration:
Source: @RubyCademy
๏ธ๐ป Gregory Brown shared about how to read code:
Source: @practicingdev
๏ธ๐ป David Alejandro reminded us that Turbo Mount can help with quickly using React/Vue/Svelte components with Hotwire:
Source: @itsdavidramos
๏ธ๐ป Igor Alexandrov shared how to get the Ruby version in Kamal from .ruby-version
file
Source: @igor_alexandrov
And you can then use it in the Dockerfile:
Source: @igor_alexandrov
๏ธ๐ป Joey Wang shared about how to debug Devise:
# Assuming we're inside the original current_user method
# Get the current method object
current_
method = method(__method__)
# Define the new method
new_method = proc do |*args|
puts "Entering modified current_user method"
result = current_method.call(*args)
puts "current_user result: #{result. inspect}"
# debugger
result
end
# Replace the method
self.class.send :define_method,__method__, new_method)
self.class.send :define_method, "old_#{__method__}", current _method)
# Restore the old method
old_method = method ("old_#{__method__}")
self.class.send(:define_method,__method__, old_method)
self.class.send(:undef_method, "old_#{__method
# Call the new method to continue execution
new_method.call
Source: @alazycoder2
๐ Thinking about Code Design
๏ธ๐ David Heinemeier Hansson shared about caching and no build strategy:
Source: @dhh
๐ Stephen Margheim shared Ruby benchmark script to test which way is faster to normalize a hash: stringify_keys! or symbolize_keys!
Source: @fractaledmind
They also shared Ruby benchmark script to test which way is faster to merge two arrays: Array + Array or Array << Entry
Source: @fractaledmind
Jean Boussier explained why the results are the way they look like:
Source: @_byroot (Read on Threadreader)
๏ธ๐๏ธ Steven R. Baker discusses on how Minitest is prefered over Rspec for its simplicity and portability
๏ธ๐ John Pollard asked about refactoring variables set in a view: ๏ธ
Source: @johnlpollard
Here are some replies:
Source: @robzolkos
Source: @marcoroth_
Source: @RailsQuest
Source: @tomrossi7
Source: @rebootxapp
Source: @lucianghinda
๐ David Backeus shared about performance for Rails + ActiveRecord:
Source: @dbackeus
Source: @dbackeus
๐ Mika Henriksson asked about using kamal-proxy with more than one server:
Source: @mhenrixon
Here are some replies:
Source: @GregMolnar
Source: @strzibnyj
๏ธ๐ Kacper Madej asked about using React with Ruby on Rails:
Source: @madejejej
Here are some replies:
Source: @adrienpoly
Source: @geetfun
Source: @ikristoph
Source: @Abe9000000
Source: @ehayes
Source: @fariastweets
Source: @geetfun
๐ Christopher Winslett shared about setting up data relationships in Ruby on Rails and Postgres:
Source: @winsletts
๏ธ๐ Kasper Timm Hansen shared a quote from Julian Rubisch newsletter about โTime spent riffling on your domain model or application architecture is time well spentโ
Source: @kaspth
๏ธ๐ Nate Berkopec shared about being a Ruby performance team:
Source: @nateberkopec
๏ธ๐ Yaroslav Shmarov shared they upgraded a Rails app from version 5 to Rails 7.2:
Source: @yarotheslav
๐กAround code (news, findings, books, and more - all about Ruby)
๐ก It was quite a big discussion last week on Hacker News about a submission for this article from AppSignal
Source: Kerrick on HackerNews
๐ก Ryan Bates shared a git tip to amend an earlier commit
๐ก Miguel Michelson shared about using Kamal2 with Hetzner server:
Source: @michelson
๏ธOn the same topic Sam Saffron shared about tests being more reliable:
Source: @samsaffron
And on the same topic Lรกzaro Nixon shared about deploying on Kamal 2 with nobuild:
Source: @lazaronixon
๐ก Brian Casel asked about who is building with Rails and if you want to improve your timeline you can see a lot of people in the replies:
Source: @CasJam
โค๏ธ Why Choose Ruby and Rails
โค๏ธ David Heinemeier Hansson shared about what makes Ruby special:
Source: @dhh
โค๏ธ Viktor Schmidt shared about discovering Ruby and Ruby on Rails:
Source: @viktorianer4
โค๏ธ Xaden Ryan is reflecting on their return to Ruby after spending a decade working with other languages and is amazed at how extendable RoR is.
โค๏ธ Christopher Winslett emphasises on the RORโs โno-buildโ implementation that makes new machine setup a cinch
โค๏ธ Emmanuel Hayford shared
Source: @siaw23
๐งฐ Gems, Libraries, Tools and Updates
๐ New Gems and Repos
๐ Kamil Nicieja announced the release of lammy - an LLM library for Ruby
Source: @kamil
๐ Christoph Lipautz announced release of test-map, a Rubygem to identify associated test-files for any code-file
๐ Janko Marohniฤ announced a new gem rodauth-openapi: Generate OpenAPI documentation for your Rodauth endpoints
Source: @jankomarohnic
๐ Paweล Strzaลkowski open sourced the repo for RubyEurope
๐ Kristjรกn Oddsson announced a new project koddsson/eslint-config-stimulus: A set of ESLint rules for authoring Stimulus controllers
Source: @koddsson
๐งฐ Updates
๐งฐ Kevin Newton announced a new version of Release v1.2.0 ยท ruby/prism
Source: @kddnewton
๐งฐ Jeremy Evans announced a new version of Roda 3.85.0 Released ยท jeremyevans/roda ยท Discussion #367 ยท GitHub
Source: @jeremyevans0
๐งฐ Janko Marohniฤ announced Release v0.5.0 ยท janko/rodauth-omniauth
Source: @jankomarohnic
๐งฐ Brad Gessler announced a new version of sitepress - file-backed website content management
Source: @bradgessler
๐งฐ Nishiki (้ฆ่ฏ๏ผannounced the release of Release v1.4.0 ยท nshki/chusaku - Annotate your Rails controllers with route info
Source: https://github.com/nshki/chusaku
๐งฐ Lรกzaro Nixon announced a new version of Comparing v3.0.2...v4.0.0 ยท lazaronixon/authentication-zero
Source: @lazaronixon
๐งฐ Donal McBreen announced a new version of Kamal 2 - v2.2.0
Source: github.com/basecamp/kamala
๐งฐ Nate Hopkins announced a new version of Smarter and faster template parsing by hopsoft ยท Pull Request #6 ยท hopsoft/fmt
Source: @hopsoft
๐งฐ Alex Rudall announced a new version of Release v7.2.0 ยท alexrudall/ruby-openai
๐งฐ Svyatoslav Kryukov announced a new version of Upgrade guide for v2.0 | Inertia Rails
Source: @skryukov_dev
๐งฐ Josef Strzibny announced a new version of Release v2.4.0 ยท strzibny/invoice_printer
Source: @strzibnyj
๐ค Jeffrey Emanuel asks what are the most important things people should keep in mind while interacting with LLM-based systems like ChatGPT
๐ค Mehrdad Farajtabar shared a paper about LLMs and Mathematical Reasoning:
Source: @MFarajtabar (read the thread on Threadreader)
๐ค Travis Hubbard talks about being a senior developer:
๐ค Felix Geisendรถrfer shares a git pro tip:
๐ค Yurii Rashkovskii shared about DRYing table definitions in Postgres:
Source: @yrashk
๐ค Andrew Atkinson shared about being a competent developer:
Source: @andatki
๐ค Nick Schwaderer shared about receiving feedback:
Source: @schwad_rb
More content: ๐ ๐ ๐ง ๐ฅ โ๐พ
๐ Sajjad Umar has released his new book "Ruby on Rails for Agile Web Development"
๐ Hotwire Weekly published a new edition about Week 41 - Celebrating 1 Year of Hotwire Weekly!
๐ Ruby On Rails published a new edition about Ruby on Rails - Lazy i18n watcher on boot and more
๐ Ruby Weekly published a new edition about Ruby 3.4 (preview 2) gets a new parser
๐ Ruby Libhunt published a new edition about Issue 438 - What's New in Ruby on Rails 8
๐ง Podcasts
๐ง Flagrant ยฎ published a new podcast about All Those Letters That You Do | Flagrant
๐ง Adrian Marin published a new podcast about Cirdes Henrique, Tropical on Rails 2025 organizer. Live from Rails World 2024
๐ง Ode To Rails Conf published a new podcast about Stephanie Minn
๐ง Code And The Coding Coders Who Code It published a new podcast about John Nunemaker
๐ง Indie Rails published a new podcast about IndieRails | Rails World 2024 Crossover
๐ง The Rails Changelog published a new podcast about The Rails Changelog | 026: Exploring Rails' Default Debugger with Stan Lo
๐ง Changelog published a new podcast about The Moneyball approach
๐ง Joshua Wood published a new podcast about FounderQuest | Acquiring Fireside with John Nunemaker
๐ง Remote Ruby published a new podcast about Rails World and SellRepo
๐ง The Ruby on Rails Podcast published a new podcast about Episode 525: Catching Up With Ruby Central with Marty Haught
๐ง The Bike Shed published a new podcast about 443: Rails World and Open Source with Stefanni Brasil
๐ฝ๏ธ ๐ฅ Videos
๐ฅ Ruby On Rails published the talks from the conference: Rails World 2024
๐ฅ Yaroslav Shmarov published a new video about SupeRails | Turbo Native 5. Conditional Rendering and about SupeRails | Turbo Native 6. Strada. Navigation Button Component
๐ฅ Chris Oliver published a new video about How To Add Impersonation To Rails Authentication Generator (Example) | GoRails
๐ฅ Jason Swett published a new video about Giving Cursor Another Try (It's Better Now)
๐ฅGraceful.Dev published a new video about Inline Rescue
๐ฅ Sahil Lavingia and Tony Ennis published a new video about Coding with Cursor: Rails vs Next Session 1
๐ฅ #Posette Conf published a new video about SaaS on Rails on PostgreSQL with Andrew Atkinson
๐ฅ Jeremy Smith published a new video about Building Liminal (see it on Threadreader)
โ๐พ Articles
Whatโs new ๐
๐Jon Sully published an article about How CDNs Work (Propshaft / Static Assets Pt. 2)
๐ Stanislav Katkov published a new article about Battling N+1 queries in Rails
๐ Damilola Olatunji published an article about published an article about Whatโs New in Ruby on Rails 8
๐ Elvinas Predkelis published a new article about Embracing the digital experience | Building a complex filtering system with Ruby on Rails
๐ Josef Strzibny published a new article about Avoiding environment conflicts with Kamal and Dotenv, Upgrading from Kamal 1 to Kamal 2 and about Running multiple apps on a single server with Kamal 2
๐ Greg Navis published a new article about Rails on OpenBSD: Motivation and Architecture
๐ Fullstack Ruby shared Top 10 Most Excellent Gems to Use in Any Ruby Web Application
๐ Prasanth Chaduvula published an article about Rails 7.1 Supports Multiple Preview Paths For Mailers
๐ BestWeb Ventures published an article about Why Ruby on Rails 8 is the Best Framework for Building MVPs: Speed, Scalability, and Simplicity, Understanding the 3 Solids in Rails 8: SolidQueue, SolidCache, and SolidCable Explained and about Mastering Thruster for Ruby on Rails: A Deep Dive for Beginners
๐ David Copeland published an article about A Simple Explanation of Postgres' <code>Timestamp with Time Zone</code>
๐ Greg Molnar published an article about Upgrading to Kamal 2
๐ Jeffery Morhous published an article about How Solid Queue works under the hood
๐ Philippe Creux published an article about Building a Robust Data Synchronization Framework with Rails
๐ Akshay Khot published an article about Not-Null Shortcut in Rails 8 Migration Generator
How-TOs ๐
๐Guillaume published an article about Build Magic link authentication for Devise natively in Rails 7.1 thanks to generates_token_for
๐ Tejas Bubane published an article about Redis pipelines to the rescue
๐ Rails Designer published an article about Smooth Transitions with Turbo Streams | Rails Designer
Ben Dicken published a new article about B-trees and database indexes
Scott Chacon published a new article about Why GitHub Actually Won
Reply