- Short Ruby Newsletter
- Posts
- Short Ruby News - Edition #36
Short Ruby News - Edition #36
Briefly about everything happening in Ruby world - week 13 of 2023
Notice:
Starting next week, I will split the newsletter into two sections and thus send two separate newsletters. Please read more about the why and how here
You can jump directly to a section:
More content: 🎥 🎧 🗞 (courses, books, articles, podcasts, videos, and newsletters)
🤗 Founding Members supporting this newsletter
For just a small amount of $1.5 per week (only $6.5 a month), you can become a valued paid subscriber and actively support the thriving Ruby community we all love!
By contributing, you'll be playing a pivotal role in fostering growth and maintaining the high standards of ShortRuby for everyone to enjoy.
👐 Our Community
A series of new Ruby versions were released last week: Ruby 2.7.8, Ruby 3.0.6, Ruby 3.1.4, Ruby 3.2.2 to fix two vulnerabilities:
Also, please notice Ruby 2.7 reached EOL:
👐 Friendly.rb conference announced a rolling CFP until 1st July. Checkout the website at friendlyrb.com
👐 Ruby Unconf shared more details about what an unconference means. Check out their website at 2023.rubyunconf.eu
👐 Rails Conf announced that the schedule for RailsConf 2023 was published. Checkout the agenda at railsconf2023.sessionize.com
👐 Andrew Hodson announced that Go Rails will start monthly Office Hours - Join their Discord to participate
👐 Greg Molnar announced they are starting a newsletter → A weekly newsletter with a Rails trick!
👉 All about Code and Ruby
👉 Postmodern shared about using Proc#[]
Here is the documentation for Proc#[] alias of Proc#call in Ruby 3.2
👉 Kay Rhodes shared a code sample showing how to define methods inside methods in Ruby:
He then added:
👉 Aaron Patterson shared a code sample showing how to use RubyVM to change the code at compile time:
👉 Shane Becker asked who wants to help and fix the issue Add support for create_operator · teoljungberg/fx
👉 Salma Elbadawi shared a thread with tips about Ruby data types:
👉 Noel Rappin shared about how File.join works:
Thanks to Keith Gable's suggestion here, I found this conversation on Twitter where Arron Patterson shared a similar reflection about File.join in 2017 when he discovered and fixed a bug related to File::SEPARATOR. Ryan Bigg shared the location where the separator is defined in the source code.
👉 Joel Drapper shared a code sample in a Github issue showing how to use Dry::Initializer with Phlex:
👉Jason Swett asked about the systematic approach to performance-profiling test suites:
Among the replies, Nate Matykiewicz shared a tip to disable logging while running tests:
👉Vinicius Stock announced that VSCode now includes Ruby LSP in their documentation about Ruby with Visual Studio Code
👉Shiva Kumar shared a thread about another Rails design pattern called the decorator pattern
👉Jeremy Smith asked about naming the state of the app when transitioning:
He then added:
It would be best if you read the conversation in the thread. There are some name proposals and solutions about how to deal with it. Here are some naming proposals:
“transitional state”
“liminal”
“StranglerFigApplication”
“LegacyDisplacement”
“Transitional Architecture”
They later added:
👉 Nate Hopkins shared a code sample showing how to use ActiveRecord to configure an in-memory SQLite database:
👉 Matt Swanson shared a code sample showing webhook processing:
👉 Greg Navis shared a Ruby code that is valid (please read this as an April Fool's Day joke)
🤞 I imagine that if you have read so far, you find value in this newsletter. Please consider becoming a paid subscriber to support this newsletter for just $1.5/week ($6.5/month). Your contribution aids growth and maintains the quality of ShortRuby for everybody:
If you consider upgrading and want more information, please read Why to subscribe to paid
🧰 Gems, Libraries, and Updates
🧰 Avo announced a new release of v.2.29.0, read the release notes here
🧰 Carl Mercier published a demo app showing a simple way to display a model with Hotwire cmer/ultimate-turbo-modal:
🧰 Sam Ruby announced a demo of Live Elements for Rails. Check out the tutorial , the Github Rails demo repository or directly to check the JS library
🧰 Stimulus Reflex announced a new version v5.0.0.rc1 Read the pre-release notes
🧰 Vladimir Dementyev announced that Rails will adopt Rubocop markdown snippets
🧰 Marco Roth announced an update for Phlexing.fun by launching version 0.4.0, read the release notes
🧰 DHH announced a new release of mrsk Release v0.10.0 · mrsked/mrsk
🧰 Prabin Poudel announced they added their first open-source PR to boring-generators. Check Adds Overcommit generator for RuboCop
🧰 Dima Fatko announced a new gem job_enqueue_logger: Log background jobs enqueued by your application (additionally with backtraces)
🧰 Heartcombo announced a new release of Devise. Read the changelog
🧰 Jeremy Evans announced a new version of Sequel v5.67.0 Read the changelog
Marian Posăceanu also shared a PR from yjit-bench (a small set of benchmarks and scripts for the YJIT Ruby JIT compiler) that Improve the Sequel benchmark to avoid many singleton classes. Here are two small benchamarks shared in the discussion from that PR:
🧰 Lázaro Nixon announced that authentication-zero added an email invitation strategy Read the changelog
🧰 Justin Searls announced a new version of standard v.1.26.0 Read the commit
🧰 tailwindcss-rails was updated to version 2.0.27 that now supports Tailwind CSS v3.3.1
🤝 Related (but not Ruby-specific)
🤝 Paul Mucur shared about the difference between urgency and importance:
🤝Adam Wathan announced the release of Tailwind CSS v3.3: Extended color palette, ESM/TS support, logical properties, and more
🤝 Tobias Petry shared a new SQL tip about Time Ranges without Overlapping - Database Tip
🤝 Chris Wanstrath shared a thread about the Github pricing model and free repos:
🤝 Eleftheria Batsou asked about anxiety for an interview:
And received a lot of answers where people shared how they felt.
🤝 Donn Felker asked about what is the first thing one does when joining a new codebase:
Here are just three of the answers received, but you should read the replies as they contain more strategies about how to get familiar with a new codebase:
“Read documentation if it exists, run tests and search about unfamiliar technologies and patterns” (@Zahra_HY)
“Intentionally break something and look at the stacktrace go brr. Can usually tell me more about the codebase than any docs can.” (@IanIsSoAwesome)
“Read by refactoring. Delete all the refactorings when I'm done” (@SDiamante13)
More content: 🎥 🎧 🗞
Courses and Books
👀 Pragmatic Bookshelf shared that Programming Ruby 3.2 has an update:
👀 Graceful.Dev announced their course about Reproducible Development with Containers is now free:
🗞 Newsletters
🗞 Women On Rails published a new edition Newsletter #46: what happens when typing in the terminal, sexism in tech in India, pixel art. There is also a French version, an Italian version and a Spanish version
🗞Justin Searls shared a new edition of Test Double Dispatch, March Newsletter
🗞Ruby On Rails published a new edition This Week in Rails: March 31st 2023 edition
🗞️ Ruby Weekly published a new edition: Progress on Ruby's newest parser
🗞️ Ruby LibHunt published a new edition of the Awesome Ruby Newsletter
Podcasts
🎧Hanami Mastery published a new episode about Behind the scenes of GoRails screencasts with Collin Jilbert
🎧 Rooftop Ruby published a new episode about 6: Favorite Developer Tools — Rooftop Ruby
🎧 Jason Swett published a new episode 176 - How to Build a Feature with Irina Nazarova, CEO of Evil Martians
🎧 The Ruby On Rails Podcast published a new episode about Episode 463: The Tightly Coupled Book Club (with Mina and Aji Slater)
🎧 The Rails Changelog published a new episode about 002: Rails 7.1 Preps For CPKs & Async Background Records Destruction
🎧 Ruby For All published a new episode about We Hired a Junior Dev with Mike Munroe
🎧 Ruby Rogues published a new episode with Jeremy Smith about Organizing Local Ruby Conferences (like Blue Ridge Ruby Conference)
🎧 Remote Ruby published a new episode about Jason and Andrew Brain Dump | RailsConf, Shoes, DragonRuby, ChatGPT4, Python, mRuby
Videos
Talks
📽️ Ayush shared that the video of their presentation about Turbo Native at The London Ruby User Group has been published
📽️ The Rubber Duck Dev Show published a new episode Hosting After Heroku With Chris Oliver
Screencasts
🎥 Aaron Patterson published a video about working on their LSP concept: LSP Hacking
🎥 Justin Searls published a new episode from their series Searls After Dark #6 - GPT 4 and Beyond!
🎥 Drifting Ruby published a new episode about Episode 394 - Push Notifications from Scratch
🎥 Avo published a video showing how to use the new release features Avo 2.29 - Search result path and better mount point discovery
🎥 Yaroslav Shmarov published a new episode about Ruby on Rails #121 Turbo Broadcasts CRUD Demystified
Articles
What’s new
Siddharth Shringi published an article about Rails 7.1 Improves Support for Custom Namespaces
Brad Gessler published an article where he used GPT-4 to create a Ruby script → Pairing with GPT-4
Fast Ruby published an article about The Two Different Approaches We Take to Upgrade an Application
Avdi Grimm published an article about Why grace matters (for software development)
Nathan Thomas published an article about Getting Started → “My coding journey began in 2018 when I heard Ruby on Rails discussed on a podcast. My brother taught himself to code, so why can’t I? Quitting my job was out of the question and paying for a bootcamp was out of my reach financially. Self-learning was the path for me.”
Vinicius Porto published a new article about Using Value Objects in Ruby on Rails
How-Tos
Rémi Mercier published an article about How to test your Rails models with RSpec → “We’ll cover the fundamental testing strategies with RSpec’s built-in features. And for fun, we’ll check some extra tools to amp up your models’ coverage”
Andrei Kaleshka published an article about Make your Ruby on Rails app 80x faster with SQL → “This article will explore the importance of SQL for Ruby on Rails experts. It will show why it’s a must-have skill in today’s development landscape”. The author published at https://github.com/widefix/demo-fast-sql
Avishek Jana published a new article about Set up an SSO Server in Rails 7
Baz published a new article about Using ViewComponents with stimulus controllers and import maps
Royce Threadgill published an article about Metaprogramming in Ruby: Intermediate Level
Justin Searls shared an article written by Vladimir Dementyev about RuboCoping with legacy: Bring your Ruby code up to Standard
Cassey Lottman published an article about CSV.generate behavior change in Ruby 3 vs Ruby 2.7
Abdullah Esmail published an article about how to use Custom fonts in production in Rails 7.0
Deep Dives:
Akshay published a new deep dive about Sessions in Rails: Everything You Need to Know → “In this post, we’ll learn about Rails sessions, including what is a session, why we need them, and why they're so important. I’ll also take you behind the scenes and show you how Rails implements sessions and where the `session` method actually comes from.”
Paweł Dąbrowski published a deep dive about Delegating things in Ruby → “This article is a deep dive into the delegation with Ruby to understand how we can implement it and when. There are a few ways to achieve delegation and it is good to know when to use which”
🤗 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
Reply