#​738 — February 13, 2025

Read on the Web

Together with  Memetria

Ruby Weekly

Tiny JITs for a Faster FFI — FFI (Foreign Function Interface) lets Ruby call dynamically-linked native libraries, but it can impose a performance tax. Aaron Patterson demonstrates this ‘FFI tax’ and experiments with JIT-compiling FFI bindings to dramatically boost performance.

Aaron Patterson

The Role of Size Pools in Ruby Garbage Collection — Garbage collection improvements have fuelled a lot of the performance gains in Ruby 3.2 onwards. As a part of his Ruby Under a Microscope rewrite, Pat runs an experiment showing how Ruby uses size pools to speed up allocating memory for new objects.

Pat Shaughnessy

Memetria K/V: Efficient Redis & Valkey Hosting — Memetria K/V offers Ruby applications hosting for Redis OSS and Valkey, complete with large key tracking and detailed analytics for improved data oversight and performance.

Memetria sponsor

IN BRIEF:

Ruby Source Parsing — A look at several interesting ways to dynamically work with Ruby source and to extract useful information.

Brooke Kuhlmann

Flexible API Versioning with Rails — There are two truths about API versioning: 1. It’s required. 2. It’s hard to do right. Petr offers an example of how fast it can go wrong, followed by a more maintainable method to keep things sensible.

Petr Hlavicka

Fixing asdf 0.16.x Breakages — Last week, we mentioned that the popular asdf runtime version manager was entirely rewritten in Go. This caused Dave’s setup to break and here’s how he fixed it.

Dave Kimura

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

✏️ Electronic Signatures with Rails – Wrapping a JavaScript (written) signature library in a Stimulus controller and bringing it into a modern Rails app. Jeremy Smith

📄 Rails Async Queries by Example – Rails 7 introduced a way to run multiple Active Record queries concurrently using background threads. Julie Kent

📄 Ordinal Numbers in Rails: 1st, 2nd, 3rd, 4th – Rails’ ordinal and ordinalize methods are waiting for you. Andy Croll

📄 How to Implement Relationship-Based Access Control (ReBAC) in a Rails API Carla Urrea Stabile (Auth0)

📄 How to Customize IDs in URLs in Rails Apps Joël Quenneville

🛠 Code & Tools

Rhino Editor: An Action Text Compatible Rich Text Editor — As well as being a clean, simple rich text editor, a big selling point is being able to use ProseMirror and TipTap plugins, as well as some good docs page.

Konnor Rogers

🔭 Ephem: Track Positions of Space Objects Accurately in Ruby — From the creator of the Astronoby astrometry gem comes a new space-themed release for tracking the position and velocity of ‘major Solar System bodies’ using data supplied by NASA.

Rémy Hannequin

🫠 AI Isn’t Magic, and It Isn’t Here to Save You — It won’t fix messy workflows, tech debt, and shaky fundamentals on its own. AI doesn’t replace developers—it raises the bar for them.

Test Double sponsor

ImageProcessing 1.14: High-Level Image Processing Wrapper for libvips and ImageMagick“The goal of this project is to have a single gem that contains all the helper methods needed to resize and process images.”

Janko Marohnić

Ruby Boy: A Game Boy Emulator Written in Ruby — A fun one! You can play it in the browser, too, thanks to WebAssembly and ruby.wasm. (GitHub repo.)

sacckey

📰 Classifieds

Your codebase is a masterpiece. Your logs? Abstract expressionism. Make your data gallery-ready with Scout Monitoring.


☢️ Tech debt, performance or dev process problems in your app? Our Application Assessment service can help you figure out how to deal with them.


🔎 Know Your VehicleOur Specifications API decodes VINs to reveal trim, engine and more in seconds with over 250 data points! Try it now.


🧑‍💻 Need Ruby Developers? Hire expert LATAM talent—bilingual, time zone-aligned, and pre-vetted for fast results. Start interviewing today!

📢  Elsewhere

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