👐 Short Ruby News - Edition #48

Discover the world of Ruby in this comprehensive newsletter covering week 25 of 2023. Find code samples, community updates, gems, resources, and thought-provoking discussions.

You can jump directly to a section:

More content: 🗞 🎧 🎥 ✍🏾 (articles, podcasts, videos, newsletters)

💸 For only $6.5 a month, you can upgrade to paid and contribute to the success of the flourishing Ruby community we all adore while receiving an ad-free version of the newsletter!

🪧 Have you considered inviting your company to sponsor this newsletter? If you are using Ruby on Rails, I think your company is a perfect fit :)

You can send the sponsorship packages info to your marketing, HR, or product management teams.

I'm happy to assist you with drafting an email. Send me a message at [email protected] I'll do my best to draft an email for you to send inside your organization.

👐 Our Community

👐 Adarsh shared an announcement from RubyCentral:

He also announced two more speakers:

  • Jason Charnes - “host of the Remote Ruby podcast and a pillar of the Ruby community.”

  • Jeremy Smith - organizer of Blue Ridge Ruby and co-organizer of the podcast IndieRails

👐 Women In Tech Cluj announced they are supporting Friendly.rb - Ruby conference:

👐 Ruby Conf India announced the dates for the conference:

👐 Taylor Otwell (creator of Laravel) shared the following:

👉 All about Code and Ruby

👉 Joel Drapper shared a gist showing how to use Paquito to encode Sidekiq job parameters (read the full gist here):

👉 Karl Oscar Weber shared a code sample about the beauty and flexibility of Ruby:

👉 Julian Rubisch published a new challenge for the Hotwire Club →  Challenge 5: Turbo Frames - Tabbed Navigation

👉 Hanami Mastery shared a code sample showing a new layout for their snippets. But I included this here as it is rare to see a Hanami 2 code sample shared on social media:

👉 Benito Serna shared a thread about truncating strings in Rails:

👉 Keith Pitt shared BuildKite engineering principles to work with Rails monolith:

👉 Nick Schwaderer announced a new theme color Spinel Light part of VSCode Shopify Ruby package

👉 Ruby Cademy shared a code sample showing how to use Hash#default_proc to create nested hashes

🤞 I imagine that if you have read this so far, you find value in this newsletter. If you can afford it, help me grow this project by upgrading to paid:

🧰 Gems, Libraries, Tools and Updates

🧰 Kevin Newton announced that YARP has been merged Read the PR

🧰 Andy Maleh announced a new update of Glimmer

🧰 Karl Oscar Weber announced the release of version 3.1 for camping. Here is a part of the announcement:

In this release we've rewritten the Reloader and formalized the directory structure for larger camping apps. The Reloader is now, just the loader, and it eager loads your camping apps in sequential, descending order. With the new Loader behaviour, you can reopen your Controller, Views, Helpers, and Model classes in a predictable manner. Ruby Gems are automatically loaded, so any Gem that adds an app can also have their constants reopened and redefined or modified.

We're very excited about this new release! I hope ya'll enjoy.

🧰 Igor announced that their PR about Support for Docker multistage build cache was merged to mrsk

Koichi Ito added that RuboCop - Visual Studio Marketplace has support for RuboCop LSP:

🧰 Adrien Poly shared a work in progress PR from Hotwire/Turbo about Support View Transition API for navigations

🧰 Xavier Noria announced a new PR merged to Rails about Introduce config.autoload_lib

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 while receiving an ad-free version:

If you consider upgrading and want more information, please read Why to subscribe to paid

🤝 Related (but not Ruby-specific)

🤝 Jason Swett shared that there is a relation between quality of codebase and quality of UI:

🤝 Jim Nielsen shared some thoughts about AR/VR devices displaying HTML content Thoughts from “Meet Safari for Spatial Computing”

🤝 Drew Bragg asked about for course about Semnatic HTML:

There are a couple of good recommendations. I will share here one of them recommended by Konnor Rogers → WAI-ARIA Roles - Accessibility

More content: 📚 🗞 🎧 🎥 ✍🏾

🗞 Newsletters

🗞 Women On Rails published a new edition of Newsletter Women On Rails [FR version]

🗞 Greg Molnar published a new edition of Rails Tricks → Offline Ruby and Rails documentation “The vacation season is starting and it can be helpful to have access without the internet to the documentation of Ruby, Rails, and the gems you use. If you are going on a trip and taking your laptop, you can prepare them in advance by following this little guide”

🗞 Allison Pike published a new edition of Once a Maintainer: Michael Grosser“Engineering Group Tech Lead at Zendesk and creator of multiple ruby gems, including single_cov, parallel, kennel, and ruco. We talked with Michael about moving from animation to programming, reading code you thought was dead, and building opinionated software”

🗞 Ruby Weekly published a new edition about Cataloging hundreds of Ruby videos

🗞️ Greg Molnar published a new edition of This Week in Rails: Rails World website and ticket sales, CPK improvements and more!

🗞 Sara Jackson published a new edition of This Week in Open Source (June 16, 2023) “This past week we saw updates to Administrate, Flightdeck, and Guides”

🗞 Ruby Radar published a new edition Amsterdam Dreamin'

🎧 Podcasts

🎧 Drew Bragg published a new episode of Code and the Coding Coders who Code It. with Episode 23 - Daniel Huss “Daniel is a Test Double agent and recently gave his first conference talk (Spoiler, it was great)! We talk about the differences between contract and product work, Dragon Ruby, and tending to your code like it's a garden. Daniel crush it on his first, of what I hope will be many, podcast appearances”

🎧 The Bike Shed published a new episode 389: Review Season “Review season is upon us. Stephanie and Joël think about growth and goals and talk about reviews: how to do them, how to write them for yourself, and how to write them for others”

🎧The Ruby On Rails Podcast published a new episode about The Return of Rocky Mountain Ruby with Spike Ilacqua “Rocky Mountain Ruby is baaaaaack! Conference organizer, Spike Ilacqua, joined Brittany to discuss why he was bringing the conference back to life in Boulder, CO on October 5th and 6th, 2023. They talk about the advice he has gotten, the open CFP and funding the conference. The wrap up talking about how Spike finds AI kinda cool and kinda scary.”

🎧 Remote Ruby published a new episode about Jason Goes to Infinity (and Beyond) “On this episode of Remote Ruby, Jason, Chris, and Andrew reunite after a hiatus, starting their conversation with a playful idea of starting a band and Andrew possibly recording a new podcast intro”

📽️ 🎥 Videos

Talks

Screencasts

🎥   Dean De Hart published a series of videos:

🎥 Pete Hawkins published new videos:

🎥 Drifting Ruby published new videos:"

✍🏾 Articles

What’s new

Julie Kent published an article about Intro to Propshaft: A new asset pipeline for RailsExplore the future of asset pipelines in Rails with Propshaft! Discover how this cutting-edge technology enhances the management and delivery of assets while simplifying your development workflow”

Gift Egwuenu published an article about May 2023 RubyGems Updates “As part of our efforts at Ruby Central, we publish a recap of the work that we’ve done the previous month. Read on to find out what updates were made to RubyGems and RubyGems.org in May”

Gavin Morrice published a new article about Avoid using SecureRandom when testing your Ruby code “using SecureRandom when writing tests for your Ruby code can make your tests harder to debug and more prone to flakiness.”

Deepak Mahakale published an article about Rails 7 extends enum support for Postgres adapter “Now, Rails 7 has extended the ability to rename an enum, add enum value and rename enum value for the Postgres database adapter”

Collin Donnell published an article about MVC Isn’t MVC “about where MVC started, the variations I've experienced on native and web, and some thoughts about that”

[Beginner] Gabrielle J. published a new article about Ruby: An Intro for the Curious-Minded “If you're new to programming, Ruby is a great language to start learning. Ruby is a general-purpose, object-oriented programming language known for its readability and flexibility”

Konnor Rogers published a new article about Pulling your dev.to posts down locally “I'm about to show you how I pulled all my writings on dev.to down locally into a new Bridgetown site I made”

How-Tos

Richard Huang wrote an article about Use call_helper to set rails config.load_defaults“Synvert provides the ability to write code snippets that can automatically rewrite your source code. This video demonstrates how to use call_helper to set rails config.load_defaults”

Akshay Khot wrote a new article about How to Split a List into N Equal Parts in Ruby (and Rails) “This article shows you can split (or chunk) a list of items into n-equally sized parts using the `each_slice` method in Ruby and `in_groups_of` method in Rails”

Mailsnag published an article about Rails 7 + Vuetify 3 (MPA Style) “In this article, we will demonstrate how to set up a Rails 7 project with Vuetify 3 (and Vue 3 ) using the MPA approach. We will also use Turbo Drive to get the performance benefits of SPA without the added complexity.”

Benito Serna published a new article about Truncate in the middle with truncate rails helper “Imagine that you want to truncate a filename, but you want to keep showing the extension of the file. Like “A big file name that…awesome.pdf”. How would you do it?”

Connor James and Tom de Bruijn published an article about Exceptional Error Reporting for Rails Exceptions “If you want insights into your application's exceptions but don't have time to invest in adding verbose logic to your code, we've got some exceptional news: The AppSignal for Ruby gem 3.4.1 now supports the Rails error reporter!”

Sam Ruby published an article about Around the World With SQLite3 and Rsync “Fly.io runs apps close to users around the world. This same infrastructure can be used to route requests to where the data resides”

Harrison Broadbent published an article about Custom Credentials in Your Rails App — Replacing .env with Rails credentials “In this article, we're going to dive into the basics of Rails credentials, explore the benefits and drawbacks of this approach, and demonstrate how easy it is to integrate this powerful tool into your Rails app development process”

Anton published a new article about The Service Object pattern in Ruby applications with unified approach“The purpose of this post is to demonstrate how to prepare the base for further development of uniform services in Ruby projects”

Ahmad Raza published a new article about Google Login in Rails 7 with devise “In this comprehensive guide, we'll walk you through the steps to integrate Google login into your Rails 7 app, allowing users to authenticate using their Google accounts”

Kevin Luo published a new article about Unleash Devise-Enabling All Modules “In this article, I will enable all 10 modules on the User model one by one. I suggest reading this article sequentially and also following the codes in each chapter”

Hùng Lê published a new article about Rails nested form (new gem with Stimulus) “When Stimulus is came out, Rails devs is suggested to use Stimulus as Javascript library in their projects. So, I created a gem for handling dynamic nested forms with Stimulus JS”

Deep Dives

Maciej Mensfeld published an article about Inside Kafka: Enhancing Data Reliability Through Transactional Offsets with Karafka “The crux of this article is about managing offsets - unique identifiers for messages within Kafka's partitions. Often, there's a need to manage offsets alongside database operations within a transaction, especially when handling potential process crashes and anomalies, minimizing the risk of double processing”

Cody Norman published a new article about Rails Console Deep Dive “Here are some handy tips and tricks to get the most from the Rails console”

Steve Polito published an article about Inspecting Ruby's inspect method “If you’ve ever worked with a class in Ruby’s Core Library or Rails, you might not realize that special care was taken to print useful information when used in the context of an IRB session”

Vishal Yadav published an article about Using enable-load-relative flag in building Ruby binaries “I'm working on building neetoCI, which is a CI/CD solution. While building pre-compiled Ruby binaries we ran into some challenges. This blog post explores the problems we faced and how we solved them”

Tobias L. Maier published an article about Comparing Pundit RSpec test Approaches “I found two approaches to test Pundit policies with RSpec. Both approaches are described in the Pundit README and I want to compare them in this post”

Darren Broemmer published an article about An Introduction to Lambdas in Ruby “In this article, we'll explore how you can use Lambda functions in Ruby to simplify your code and make it more powerful”

Paweł Dąbrowski published an article about Breaking down the Rails request cycle: “This article is a journey from a moment when the visitor submits the website address to a moment when a view in your Rails application is rendered. Jump on board!”

Related

Lucas Barret published a new article about Logged VS Unlogged table Performance in Postgres “To ensure this durability and consistency, relational databases use several techniques. One of these is to use a WAL file (Write-Ahead Log file). Let's see what this means and how it affects the performance of our read and writes operations. And determines what can suit more for an ETL process.”

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.

Reply

or to participate.