#​572 — September 30, 2021

Read on the Web

Ruby Weekly

Proposal to Merge YJIT Into CRuby / MRI — YJIT is a just-in-time compiler used by teams at Shopify and GitHub offering decent benchmark gains over vanilla CRuby. Its background was explained in this post back in June. This proposal is to merge it now to start getting core team feedback and prepare for an eventual 3.1 or 3.2 release, and Matz has already given the process his thumbs up.

Ruby Issue Tracking

Stimulus 3 + Turbo 7 = Hotwire 1.0 — DHH formally announces Hotwire 1.0, calling it the “ideal stack for front-end development” since it powers HEY, Basecamp 4, and JavaScript in Rails 7 as the industry benefits from “conceptual compression.” "HTML Over The Wire is the way," says David. There's also a specific Stimulus 3 release post too.

David Heinemeier Hansson

Try Scout’s New Error Monitoring Feature Add‑On for Free — Scout APM uses tracing logic that ties bottlenecks to source code so you know the exact line of code causing performance issues in minutes. See for yourself why Scout is a Ruby developers’s best friend with a free 14-day trial, no credit card needed.

Scout APM sponsor

Stamping Out Overflow Checks in Ruby — If you like digging into the weeds of optimizations and Ruby implementation details, you should read this post about stamps, masking, and how to squeeze a bit more performance out of TruffleRuby under certain conditions.

Chris Seaton



Full Stack Engineer (Rails, New York) — Dovetale helps Shopify merchants like KontrolFreek and Italic grow their creator community. Built in NYC and backed by Uber founders.

Senior Ruby Engineers | Remote US/EMEA | Full-Time — Orbit is building mission control for communities like Kubernetes and CircleCI. Join our remote team that values empathy and the occasional space pun.

Find Ruby Jobs Through Hired — Create a profile on Hired to connect with hiring managers at growing startups and Fortune 500 companies. It's free for job-seekers.

📕 Articles & Tutorials

More Ruby Magic — Noel walks us through a code experiment around interpreting dates using natural language that may not be overly useful but is kinda fun anyway.

Noel Rappin

Multi-Factor Authentication for Rails with WebAuthn and Devise — An introduction to setting up multi-factor auth in a Rails app leaning on the W3C WebAuth standard in particular.

Petr Hlavicka

Exploring Ruby’s clamp and minmax MethodsComparable#clamp and Enumerable#minmax, specifically.

Scott Bartell

Crunchy Bridge: Fully Managed Multi-Cloud Postgres — Crunchy Bridge users experience performance improvements, better developer workflow and seamless migration.

Crunchy Data sponsor

Lessons Learned in a Major Rails Upgrade: Tooling — The last post in a three-part upgrade series discussing the gems, scripts, and other tools that Invoca used to manage parallel versions and complete their large upgrade.

Luan Vieira (Invoca)

Custom Form Handling with Turbo — Turbo will be a default part of Rails from Rails 7, replacing Turbolinks and rails‑ujs.

Ollie Haydon-Mulligan

▶  Discussing Prettier, Parsing and Regex with Kevin Newton — Kevin Newton, a staff engineer at Shopify, talks about RubyKaigi, his Prettier plug‑in, and more.

The Ruby on Rails Podcast podcast

Code Golf: Conditionally Add To an Array — It’s not the code golf you might be expecting, maybe more code course management.

Kevin Murphy (Gnar)

▶  Discussing Using Docker with Ruby with Huzefa Biyawarwala

Ruby Rogues Podcast podcast

Rails 7 Replaces byebug with ruby/debug
Akhil G Krishnan

🛠 Code & Tools


Google Auth Library for Ruby 1.0
New Relic Ruby Agent 8.0
RouteTranslator 11.0 – Manage translation of Rails app routes.
RuboCop 1.22 – Code analyzer, formatter, and enforcer.
GoodJob 2.3 – Postgres-based, ActiveJob backend.

Code2flow: Generate Call Graphs for Dynamic Languages — Including JavaScript, Python, Ruby and PHP. Turns your source into ASTs, finds function definitions, where those functions are called, and turns that into diagrams.

Scott Rogowski

offline-sort: Sort Large Data Collections with Limited Memory Usage — Given an Enumerable and a sort_by proc, this breaks the input data into sorted chunks, persists them, and returns an Enumerator. Data read from this will be in the final sorted order. The idea is explained in this blog post from 2015.


A Better Way To Index Your Postgres Database: pganalyze Index Advisor

pganalyze sponsor

Ahoy Email 2.1.0: Email Analytics for Rails — Add the ability to track the emails you send from your Rails apps (log of what was sent, plus opens and clicks), as well as add UTM params to links included in them.

Andrew Kane

Unsubscribe 1.0: Offer an Auto Unsubscribe from Emails in Rails — The idea is explained in this tutorial.

Steve Polito