---
title: "131 billion gems downloaded"
publication: "Ruby Weekly"
issue: 650
published_at: "2023-04-20"
canonical_url: "https://rubyweekly.com/issues/650"
---

Plus adventures in garbage collection, Mike Perham's story of success, and a Ruby game jam. |        

#​650 — April 20, 2023 

[Read on the Web](https://rubyweekly.com/issues/650)  

Together with [![Makandra\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,e_trim,w_250,h_100/e_make_transparent/co_white,e_outline:7/wrexuzvpv8efeghv2ucz.png)](https://railslts.com/)  

Ruby Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/dm9knhe4jepwhp8lvux0.jpg)](https://fly.io/ruby-dispatch/component-driven-development-on-rails-with-phlex/)  

[Component Driven Development on Rails with Phlex](https://fly.io/ruby-dispatch/component-driven-development-on-rails-with-phlex/) — You’ve likely heard of [Phlex](https://github.com/phlex-ruby/phlex), a pure-Ruby approach for building views for a web app (in contrast to ERB’s text/HTML based approach). Brad dives into why (and when) components work well as an option, with many examples providing exposure to the pros and cons. 

Brad Gessler (Fly․io)   

[Adventures in Garbage Collection: Improving GC Performance in Shopify's Monolith](https://shopify.engineering/adventures-in-garbage-collection) — Optimizing GC latency and making performance tweaks can have particularly outsized gains on larger apps, and Shopify's is about as large as it gets (in the Ruby world). Jean walks through the trial-and-error process Shopify undertook to realize their significant improvements. 

Jean Boussier (Shopify)   [![\](https://copm.s3.amazonaws.com/cd75f40d.png)](https://railslts.com/) 

[Long Term Support for Ruby on Rails](https://railslts.com/) — With Rails LTS you get extended support for old versions of Ruby on Rails. Drop-in gem replacements are available for Rails 5.2, Rails 4.2, Rails 3.2 and Rails 2.3. You can even run your old Rails app with modern Ruby versions. 

RailsLTS by makandra sponsor   

[Sidekiq's Mike Perham on the Journey from Employment to Independence](https://codecodeship.com/blog/2023-04-14-mike-perham) — The [Sidekiq](https://github.com/sidekiq/sidekiq) background job system is one of the best known tools in the modern Ruby ecosystem. Here, its creator Mike Perham shares the circumstances that led to Sidekiq and Sidekiq Pro, with some advice for those wanting to commercialize their own creations. 

Code Code Ship   

**QUICK BITS** 

- Gift Egwuenu gives us [a monthly update on the RubyGems project](https://blog.rubygems.org/2023/04/18/march-rubygems-updates.html) – it's mostly RubyGems releases and bug fixes for [RubyGems.org.](https://rubygems.org/) _(The total number of gem downloads has just passed 131 billion, by the way!)_
- The creators of the RubyMine IDE have a [roadmap for the next release of RubyMine](https://blog.jetbrains.com/ruby/2023/04/rubymine-roadmap-2023-1-2023-2/).
- 🕹 2D game development library [Gosu](https://www.libgosu.org/) is holding its [4th Game Jam](https://itch.io/jam/gosu-game-jam-4) over the next week or so. You can use Ruby, mruby, Crystal or C++.
- 🤖 If you fancy trying a real-time AI coding companion but don't want to spend the money for GitHub's [Copilot](https://github.com/features/copilot), Amazon's [CodeWhisperer](https://aws.amazon.com/blogs/aws/amazon-codewhisperer-free-for-individual-use-is-now-generally-available/) is now generally available, free for individual use, and supports Ruby.
- [AppSignal has joined the Rails Foundation](https://rubyonrails.org/2023/4/17/appsignal-is-newest-contributing-member-of-rails-foundation) as a contributing member.  

📕 Tutorials, Articles, and Videos 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/e18vrowsjvrtwhj1ov1k.jpg)](https://thoughtbot.com/blog/my-introduction-to-superglue-react-rails)  

[My Introduction to Superglue: React ❤️ Rails](https://thoughtbot.com/blog/my-introduction-to-superglue-react-rails) — [Superglue](https://thoughtbot.github.io/superglue/) is a React Redux starter/library inspired by Turbolinks that's designed to complement the 'classic' Rails paradigms. 

Dave Iverson (thoughtbot)   

[How Upgrading Ruby Broke JavaScript](https://thoughtbot.com/blog/how-upgrading-ruby-broke-javascript) — Be aware of the assumptions you’re making, both implicitly and explicitly, when a strange error surfaces. Chances are, you’re overlooking something: _“Sometimes, a bug is the culmination of a lengthy chain reaction of falling dominoes. We have to go back and find what caused the initial topple.”_ Also a reminder that a quick ‘minor version upgrade’ at 5pm isn’t necessarily the best idea. 

Matheus Richard (thoughtbot)   

[RailsConf Workshop 🚀 Upgrading Rails: The Dual-Boot Way](https://railsconf2023.sessionize.com/session/452881?utm_source=cooperpress&utm_medium=ruby-weekly&utm_campaign=railsconf&utm_term=upgrade&utm_content=ruby-rails) — FastRuby.io is conducting their popular, hands-on Rails upgrade workshop at RailsConf on Mon Apr 24th. Don’t miss it. 

FastRuby.io | Ruby and Rails Upgrade sponsor   

[How to Load Code in Ruby](https://blog.appsignal.com/2023/04/19/how-to-load-code-in-ruby.html) — It’s obvious: `require`? There are a couple of other ways it can be done worth considering.. 

Gernot Gradwohl   

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/u2pu5vuetkhtshgvrqzq.jpg)](https://www.macarthur.me/posts/memoization-with-tap-in-ruby)  

[Memoization with `.tap`?](https://www.macarthur.me/posts/memoization-with-tap-in-ruby) — There are a few different ways to memoize complicated chunks of code in Ruby. `tap` provides an option I certainly hadn’t considered before – though at first glance I'm not sure I'm keen. 

Alex MacArthur   

▶[Uploading Cover Images in Rails with ActiveStorage](https://gorails.com/episodes/upload-cover-images-in-rails-with-active-storage) — A 28-minute screencast covering the essentials of accepting uploads to a Rails app. 

Chris Oliver   

[Adding Auth to a Sinatra-Based API using Auth0](https://auth0.com/blog/add-authorization-to-sinatra-api-using-auth0/) 
Carla Urrea Stabile (Auth0)   

[Why Tests Flake More on CI Than Locally](https://www.codewithjason.com/why-tests-flake-more-on-ci-than-locally/) 
Jason Swett  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,h_300,e_sharpen:60,q_auto/s2lz72gnfo243md5xktz.jpg)](https://github.com/faker-ruby/faker)  

[Faker 3.2: A Library for Generating Fake Data](https://github.com/faker-ruby/faker) — The popular dummy data generator continues to improve. [v3.2.0](https://github.com/faker-ruby/faker/releases/tag/v3.2.0) changes the behavior of email and domain name generation [to be RFC 2606 compliant.](https://github.com/faker-ruby/faker/blob/main/doc/default/internet.md#about-faker-ruby-transition-to-be-rfc-2606-compliant) The `safe_email` and `free_email` methods have been deprecated and will be removed from October. 

Faker   

[Regexp::Parser 2.8: A Regular Expression Parser Library](https://github.com/ammar/regexp_parser) — Tokenize, parse and transform regular expressions right from Ruby. There’s a lot on offer here, and it’s used by projects like Capybara, Rubocop, and [JsRegex](https://github.com/jaynetics/js_regex) which converts Ruby regexes to JavaScript-ready ones. 

Ammar Ali   

[So There I Was, Using Your App, When Suddenly…🤯](https://www.honeybadger.io/blog/javascript-feedback-announcement/?utm_source=rubyweekly&utm_medium=email&utm_campaign=ruby) — Let users tell you what happened in their own words when encountering an error. [See how it works](https://www.honeybadger.io/blog/javascript-feedback-announcement/?utm_source=rubyweekly&utm_medium=email&utm_campaign=ruby). 

Honeybadger sponsor   

[ruby_whatsapp_sdk: Communicate with WhatsApp's API](https://github.com/ignacio-chiazzo/ruby_whatsapp_sdk) — Send text, messages, stickers, etc. in WhatsApp which offers 1000 free conversations per month via their Cloud API. 

Ignacio Chiazzo Cardarello   

[Rack Canonical Host: Middleware for Defining a Canonical Host Name](https://github.com/tylerhunt/rack-canonical-host) — Define a single host name as the canonical host for your application. Requests for other host names will then be redirected to the canonical host. 

Tyler Hunt    

Jobs  

[API Integration Expert Wanted: Join Uplisting's Remote Team as an Integrations Engineer](https://uplisting.homerun.co/integrations-engineer/en) — We’re seeking a talented Ruby dev with strong API integration experience to join our remote team and bring innovation to our vacation rental management service. 
Uplisting   

[Find Ruby Jobs with Hired](https://hired.com/join/?utm_source=newsletter&utm_medium=sponsor&utm_campaign=%28b2c%29%28l-all%29%28r-all%29%28cooper-rubyweekly%29&utm_content=easy-job-hunting) — Hired makes job hunting easy-instead of chasing recruiters, companies approach you with salary details up front. Create a free profile now. 
Hired      

- [CableReady 5.0](https://github.com/stimulusreflex/cable_ready)
 ↳ Trigger client-side DOM changes from server-side Ruby.
- [Dynamoid 3.9](https://github.com/Dynamoid/dynamoid)
 ↳ Ruby ORM for Amazon's DynamoDB.
- [valvat 1.3](https://github.com/yolk/valvat)
 ↳ Validates European VAT numbers.
- [rspec-openapi 0.8](https://github.com/exoego/rspec-openapi)
 ↳ Generate OpenAPI schema from RSpec request specs.
- [Dawnscanner 2.2](https://github.com/thesp0nge/dawnscanner)
 ↳ Static security analysis tool for Ruby webapps.
- [pygments.rb 2.4](https://github.com/pygments/pygments.rb)
 ↳ Wrapper for the Pygments syntax highlighter.
- [Dexter 0.5](https://github.com/ankane/dexter)
 ↳ Automatic indexer for Postgres.
- [Sidekiq 7.0.9](https://github.com/sidekiq/sidekiq/blob/main/Changes.md#709)
- [Puma 6.2.2](https://github.com/puma/puma)         

Curated by [Peter Cooper](https://twitter.com/cooperx86) and [Glenn Goodrich](https://twitter.com/ruprict).
Published by [Cooperpress](https://cooperpress.com/). 

[Change your email](https://rubyweekly.com/edit_subscription/*|UID|*) or [Stop getting this newsletter.](https://rubyweekly.com/leave/*|UID|*) 

© Cooper Press Ltd · Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom   

Other weekly newsletters we publish include [Postgres Weekly](https://postgresweekly.com/), [React Status](https://react.statuscode.com/), [Frontend Focus](https://frontendfoc.us/), and [JavaScript Weekly](https://javascriptweekly.com/).
