#​741 — March 6, 2025

Read on the Web

Together with  Datadog

Ruby Weekly

What’s the Deal with Ractors? — Introduced in Ruby 3.0, Ractors provide an actor-based, truly parallel (bye GVL!) execution model, but they still remain experimental and any idea of their widespread use hasn’t panned out. Jean digs into what makes them tick, what they offer, and why they still have their uses, despite the current shortcomings.

Jean Boussier

💡 If you'd prefer a more introductory piece to ractors, this tutorial by Mirosław Pragłowski covers the practical bases of using them.

Optimize Ruby App Performance in Real-Time — Visualize Ruby performance using detailed flame graphs to identify bottlenecks and latency. Debug and optimize your code by tracing requests across web servers, databases, and services with Datadog APM. Start a free trial today.

Datadog sponsor

The Pitchfork Story — Rails core member and Shopify engineer Jean led the development of a Rack HTTP server called Pitchfork. Here, he goes into a lot of fascinating depth about the motivations behind Pitchfork’s creation, the memory efficiency it offers, and teaches us quite a bit about Ruby along the way.

Jean Boussier

IN BRIEF:

Rails Views, Web Components, React.. Why Make a Choice? — A novel take on choosing an approach for your app’s views. Most shops pick Rails+Hotwire or React SPAs, but Aha! looks at where each view framework excels and uses them all.

Jeremy Wells (Aha! Engineering)

Using Phlex for Emails: Action Mailer Without ERBPhlex has grown in popularity as a more OO ERB replacement and it suits emails pretty well too.

Camillo Visini

Keep Postgres Maintenance from Slowing Down Your Ruby App — Secure your spot to learn the proactive maintenance practices that uncover hidden database performance risks before they escalate.

pganalyze sponsor

📄 Migrating from Rails Secrets to Credentials – A lot of helpful advice if you need to tackle the same process. Daniela Baron

📄 A Tale of 3 Aliases – How to choose between alias, alias_method, and alias_attribute. Mateus Pereira

📄 Decorating Arrays with SimpleDelegator Ryan Bigg

📄 Seeds of Destruction – A look at testing your db/seeds.rb setup so those seeds don’t turn into pesky weeds.. Louis Antonopoulos

📄 Rails 8 Assets: How Propshaft and importmap-rails Work Together Radan Skorić

📄 Migrating from Sidekiq to Solid Queue Donn Felker

📄 Understanding Insertion Sort in Ruby Julie Kent

🛠 Code & Tools

Exeggutor: A Unified Interface for Managing Subprocesses — A library aiming to bring some added calm to dealing with the often fraught process of executing other programs from Ruby by way of exeg and exeg_async methods that can do it all.

Michael Eisel

🤖 OmniAI 2.0: A Unified Ruby API for Multiple AI Providers — If you’ve worked with hosted LLM platforms from Ruby before, you’ve probably used ruby-openai, but OmniAI abstracts things to support various platforms and their different features without shoehorning everything into the OpenAI approach. GitHub repo.

Kevin Sylvestre

Seamless Rails Upgrades: Expert Maintenance. Fixed Price — Upgrade RoR smoothly. We offer expert Rails maintenance at a fixed price. Secure, performant, minimal disruptions. Outdated gems? Breaking changes? We handle it.

reinteractive / CodeCare sponsor

ParallelTests 5.0: More Cores == Faster Tests — Speed up Minitest, RSpec, Turnip, Cucumber or Spinach by running in parallel across multiple cores. v5.0 brings Ruby 3.4 support.

Michael Grosser

The Git Gem 3.0: A git Wrapper for Use from Ruby — If you want to work with the git client from Ruby, this provides an interface.

Scott Chacon et al.

Phony: International Phone Number Normalizing and Formatting — For full, international E.164 standard numbers only.

Florian R. Hanke

📰 Classifieds

🐌 If your Rails team needs a little boost… We can augment your team with devs to help you keep up with your delivery schedule. Test us!


Tired of vehicle data that's older than the last movie franchise reboot? CarsXE: Fresh data, daily. (Except Sunday, I need a day off. JK!). Get Fresh Data Now!

📢  Elsewhere

A quick roundup of some of other interesting updates or useful resources in the broader developer landscape:

  • The term 'Ajax' was coined twenty years ago in this article. I still remember the early experiments of using XMLHttpRequest in Rails apps!

  • Support for functions is coming to CSS and can already be experimented with in Chrome Canary.

  • free-for.dev is a handy and huge (over 1000 items) list of hosted tools and online services with free developer tiers.

  • 🤯 Pierre is one of the most 'intensively designed' Web sites I've encountered in a long while..

  • TypeScript 5.8 has been released.