Short Ruby News - Edition #71

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

You can jump directly to a section:

πŸš€ New Products & πŸ“… Events

[Sponsor ⬇] flippercloud.io

Are big launches stressing you out? Then you need feature flags. Flipper Cloud helps your team deploy the code now and then rollout features when you are good and ready. Get started for free at flippercloud.io

πŸš€ New Products

πŸš€ Jason Swett launched their Coaching for engineering leaders service:

πŸš€ Manu J launched Zest UI Kit For Ruby On Rails 

πŸš€ Garrett Dimon  launched a new book called  Frictionless Generators

πŸš€ Errol Schmidt launched SecretLink.org - The Secure Way to Share Sensitive Information

πŸš€ Joe Masilotti launched Daily Log

πŸ“… Events

πŸ“… Rubyfuza & Friends shared the CFP is open for RubyFuza 2024

πŸ“… Hexdevs announced Hacking with Ruby Prism happening on 15 December. RSVP here

πŸ‘‰ All about Code and Ruby

[Sponsor πŸ‘‡]

Flipper 1.1 is out, and it's a sturdy release. One of the most exciting bits is expressions. If you are already a flipper user, expressions are groups you can change at runtime (instead of statically defined in code). If you aren't using Flipper, get started free today!

πŸ‘‰ Takashi Kokubun  announced that `it` is accepted as default block parameter β†’ read about it here  Feature #18980: Re-reconsider numbered parameters: `it` as a default block parameter (Read the notes from the Dev Meeting discussion here )

I think Peter from RubyWeekly describes it well:

in case there are concerns about breaking RSpec, Joel shared this:

and Martin Spickermann shared a code sample with it:

πŸ‘‰ Jean Boussier shared Shopify is running Ruby 3.3.0-dev in production:

David Heinemeier Hansson shared they are also running Ruby 3.3.0-dev for Hey and Basecamp:

πŸ‘‰ More Advent of code solutions shared:

πŸ‘‰ Thiago Araujo shared a code sample showing how to chain Enumerable:

πŸ‘‰ Dhaval Singh shared a thread about Enumerable#each_cons (read the entire thread):

πŸ‘‰ Dave Copeland shared that Sustainable Web Development with Ruby on Rails is now updated to Rails 7.1:

πŸ‘‰ Joel Drapper shared about transitioning from ViewComponent to Phlex:

[P] flippercloud.io🐬 Using the open source version of Flipper to flip features? Switch to Cloud in a few minutes for support, audit history, finer-grained permissions, multi-environment sync, and all your projects in one place.Start with our free tier today at flippercloud.io

πŸ‘‰ Colleen Schnettler shared a thread about building an alert with Hotwire. Read the entire thread (alternatively read on nitter):

πŸ‘‰  Postmodern shared a code sample showing how to use  kramdown-man to add man pages to Ruby CLI:

πŸ‘‰ Gergely Orosz asked about big Ruby codebases:

Here are some of replies in the thread (read on nitter):

πŸ‘‰ Joel Drapper shared a code sample from their rainbow-unicorn gem:

πŸ‘‰ Jean Boussier shared about common real-life tasks that should be considered when running a benchmark:

πŸ‘‰ Joel Moss shared about the lack of a way to separate concerns from models and controllers:

πŸ‘‰ Brad Gessler asked about resources to learn about low level Ruby construct:

Here are the two recommendations:

πŸ‘‰ Nathan S. Robinson asked who is building in public with Ruby on Rails:

So far, at least 95 people have replied to this question. See all replies here or on nitter.

πŸ‘‰ Nick Schwaderer shared a code sample from Shoes:

πŸ‘‰ Kevin Newton shared a Ruby code sample showing various strings and their encodings:

πŸ‘‰ Ahmed Nadar shared a code sample from working at RapidRails UI Components for Ruby on Rails

πŸ‘‰ Josef Strzibny shared a code sample showing how they added Sitemap for their website:

πŸ‘‰ Stephen Margheim asked about real-world Rails application load:

Here are some of the replies:

  • β€œAvg: 1160 RPM = 19.3 RPS | Peak: 1780 RPM = 29.6 RPS” (source)

  • β€œavg 2200rpm, peak 4000rpm for a well-known newspaper site where most requests returns full HTML pages” (source)

  • β€œhttp://mynewsdesk.com does about 2k RPM (33 RPS) on average. Peaked around 7k RPM (116 RPS) in the last 7 days” (source)

  • β€œAverage: 66 RPS | Peak: 110 RPS | Running on Rails: 5.2.4.1 | Mysql: 5.7” (source)

  • β€œAverage: 2 RPS | Peak: 34 RPS” (source)

  • β€œ210.5 RPM for chaskiq.io” (source)

πŸ‘‰ Ruby Cademy shared about using install_if in Gemfile:

πŸ‘‰ Facundo Espinosa shared a code sample from Turbo::Frames::FrameRequest module automatically included in ApplicationController:

πŸ‘‰ Bram Jetten shared a code sample where they implemented a similar functionality as Rails find_signed

πŸ‘‰ Vladimir Dementyev shared a comparison of running RubyNext with/without Prism:

πŸ‘‰ Nate Berkopec shared a code sample showing how a memory leak can happen in Ruby:

πŸ‘‰ Joel Moss asked about why Ruby has elsif instead of elseif

I'm not sure if in the replies (read on nitter) there is a real explanation, but there are a lot of hypotheses.

πŸ‘‰ Andrew Mason shared they created a group on Snipd for Rubyists (premium plan)

πŸ‘‰ Ruby Cademy shared a code sample about private constants:

πŸ‘‰ I shared a thread about refactoring with endless method and here is the final refactoring form:

πŸ‘‰ Andrew Mason asked about Ruby on Rails as an option for a beginner:

Here are some replies, but you should read the entire thread (read on nitter):

πŸ‘‰ Ruby Cademy shared about using Rails safe_constantize method:

πŸ‘‰ Stanislav Katkov shared a code sample showing how to run tests forever (until they fail)

πŸ‘‰ I shared a thread where I reviewed the Mastodon open source app (read the thread on @ruby.social, or twitter or read it on nitter:

πŸ‘‰ David Alejandro shared a code sample about querying JSON fields:

πŸ‘‰ Adrian Oprea shared why they think Ruby is easy to learn:

πŸ‘‰ u/Leizzures asked why is Ruby used so much in Startup/scale-ups:

There are more than 100 replies, I will share here only three, but it is worth reading them all:

🧰 Gems, Libraries, Tools and Updates

🧰 Postmodern announced the release of Release 1.0.0 Β· postmodern/kramdown-man

🧰 Justin Collins announced a new release of  Brakeman: Brakeman 6.1.0 Released

🧰 John Nunemaker announced a new version of FlipperCloud:

🧰 Paul Mucur announced a new release of  GitHub - mudge/re2 at v2.5.0

πŸ†• 🧰 Samuel Williams announced a new gem async-actor

🧰 Joel Moss announced a new release for Release 0.4.0 Β· joelmoss/spaced

🧰 Chris Oliver announced a new version of pay-rails/pay

🧰 Chris Oliver announced a new version of Release v1.0.0 Β· acts_as_tenant

🧰 Xavier Noria announced they are thinking to implement an experimental null inflector for zeitwerk: Efficient and thread-safe code loader for Ruby

🀝 Related (but not Ruby-specific)

🀝 Jason Swett shared about how we should view testing:

🀝 Mohammad A. Ali shared JSONB branch is merged to SQLite β†’ SQLite: Timeline

🀝 Erwin Kroon shared about code reviews:

🀝 Brad Frost shared about working together:

🀝 William Kennedy shared about the advantages to hire a junior:

🀝 Adrian Oprea shared about building filter-able suggestion list with only HTML Standard

🀝 Dhaval Singh shared a trend of maybe hiring starting to slowly increase in tech:

🀝 Paul Graham shared a Replit graph about how many people go through each day of a tutorial:

🀝 Arian Celina shared about organising work:

🀝 Jason Swett asked a question about practical lessons people wish they learned in Computer Science school:

There are more than 21 replies (read on nitter) worth reading.

More content: πŸ“š πŸ—ž 🎧 πŸŽ₯ ✍🏾

πŸ—ž Newsletters

πŸ—ž Ruby Weekly published a new edition about Ruby 3.4 to get the 'it' factor

πŸ—ž Any Cable published a new edition about Any Cables Monthly #16

πŸ—ž Emmanuel Hayford published a new edition of This Week in Rails about Allow object_id as a column name for ActiveRecord and a lot more!

πŸ—ž Hotwire Weekly published a new edition about Week 49 - Stimulus Hotkeys, new Turbo Native app, and more!

πŸ—ž Awesome Ruby Newsletter published a new edition Issue 394 - Duke Libraries Drop Basecamp

🎧 Podcasts

🎧 Jason Swett published a new podcast about 203 - Simmon Li - The Code with Jason Podcast

🎧 The Rails Changelog published a new podcast about 016: Fireside chat with Rafael FranΓ§a

🎧 Matt Swanson published a new episode about Yagni | Programming Books W/ Aaron Francis

🎧 The Ruby on Rails Podcast published a new episode about Episode 498: Remote Ruby X The Ruby On Rails Podcast

πŸ“½οΈ πŸŽ₯ Videos

Screencasts

πŸŽ₯ Drifting Ruby published a new video about Episode 431 - Hotkeys

πŸŽ₯ I published a short video about A Good Use Case For The Endless Method Syntax

✍🏾 Articles

What’s new πŸ†•

Jiaqi Liu, Daniel RogartDaniel Rogart and Xin WuXin Wu published an article about Upgrading Github.com To MySQL 8.0

Apoorv Tiwari published an article about Ruby 3.3 Resolves The Range#Size Bug For Rational Endpoints

Ruby Central published an article about Ruby Central Welcomes New Board Members

Brandon Keepers, John Nunemaker published an article about Flipper 1.1.0

Deep Dives πŸ”

Sebastian Wilgosz published a new article about The underrated power of dry-schema

Ariel Juodziukynas published an article about Exploring Ruby's Global Constants And Variables

I published an article about Ruby on Rails Open Source: Mastodon

How-TOs πŸ“

Postmodern published an article about Postmodern How To Add A Man Page To Your Ruby Project

Akshay Khot published an article about How Respond To Method Works In Rails

Postmodern published an article about Postmodern Solving Advent Of Cyber 2023 Day 2 Using Ruby

Harshaan Nihal Khan published a new article about Optimizing System Performance by Implementing a Dual Database Setup in Rails

Andres Chacon published an article about Ruby Tip: Did You Know That Ruby Supports Pattern Matching?

Mario Alberto ChΓ‘vez CΓ‘rdenas published an article about Sound To Script: Using Open Ai’s Whisper Model And Whisper.Cpp

Aaron Sumner published an article about Write Resilient Tests With Matchers That Take Other Matchers

I published an article about An Endless Method Use Case

Related

Please consider becoming a paid subscriber to support this newsletter for just $1.8/week ($7.5/month), and you will receive an ad-free version. 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.