#​679 — November 23, 2023

Read on the Web

Together with  pgAnalyze

Ruby Weekly

TestProf III: Guided and Automated Ruby Test Profiling — TestProf is a long standing suite of tools to improve test suite performance, and it’s ‘back’ with lots of new features and enhancements. These include a playbook for getting started with test suite profiling, a new ‘autopilot’ CLI tool to automate the generation and merging of StackProf reports, and MemoryProf, a system that tracks memory usage during test runs.

Vladimir Dementyev

Free eBook: Advanced Database Programming with Rails and Postgres — Learn about subqueries, materialized views, and custom data types in Postgres and Rails. We walk through realistic real-life examples, translating first into SQL, and then into Rails code. Every example comes with source code so you can follow along.

pganalyze sponsor

Shaping the Future of Ruby and Kafka Together with rdkafka-ruby — After initially forking the rdkafka-ruby gem, the creator of Karafka (a popular Kafka processing framework for Ruby and Rails) is collaborating with AppSignal to govern and improve the core gem for Karafka and the Ruby community.

Maciej Mensfeld (AppSignal Blog)

📕 Articles & Tutorials

A Look into Feedbin, the Ruby Open Source RSS Reader — Lucian takes a dig into the source behind Feedbin (a popular, though not popular enough IMHO, feed reader) and looks at how its structured and what dependencies make it tick. If you can’t tell, I’m a huge fan of Feedbin and recommend you all sign up.

Lucian Ghinda

Three Ways to Model an Associated Collection in Rails — Comparing using Postgres’s array type and two join table based solutions.

Dimiter Petrov

On Building a Webhooks Service — Mike recently worked on building webhooks for PlanetScale, but here he shares the Rails models and basic approach used, in case it’s useful for you.

Mike Coutermarsh

Is Your Rails Version Lagging Behind? Try the Slow & Steady Way… 🐢 — Join the waitlist to Bonsai: Our fixed-cost, tech debt remediation service. Let us upgrade Ruby and Rails for you.

Rails Upgrades on Autopilot sponsor

What's a Counter Cache? — Running a separate query to count how many records are associated with another record is inefficient – counter caches have long made this situation more efficient.

Jose Blanco

For Clarity When Merging Hashes, Use with_defaults — Note that this is a Rails / Active Support-ism.

Andy Croll

Interactive Debugging Without the Need for Gems — Don’t forget that, with Binding and IRB, you have the ability to set breakpoints and step through code without requiring external gems.
Andres Chacon

You Don’t Need Services (Whatever This Word Means)“When it comes to Rails, if you enjoy it, then you’ll probably enjoy it even more if you restrain from introducing services, be it as a layer or as a system architecture.”
Ronan Limon Duparcmeur opinion

How to Use UUIDv7 for Primary Keys in Rails
Piotr Chmolowski

🛠 Code & Tools

Fuzzy Ruby Server: A Ruby Language Server for Large Codebases — If you think Solargraph is too slow and Ruby-LSP lacks features, this gem addresses those issues for VSCode and NeoVim users. Search for and peek at class, method, and variable definitions, find references, rename variables, and a few other tasks.

Joel Korpela

Split 4.0: Rack Based A/B Split-Testing Framework — A mature framework with robust configuration and multiple options for determining the winning option.


Got a Problem That Could Use a Rubber Duck Session? — Here’s one better. Request a pairing session with one of our senior devs. We’ll get you moving in the right direction.

Test Double sponsor

Universal ID: URL-Safe String Serialization for Any Object — The use cases here are exciting and include scenarios such as inter-service communication via a web boundary, UX state management across sessions, and audit logging, to name a few.

Nate Hopkins

A Script for Renaming a RubyGem — If you start working on a gem and then want to change the name, you might need to do this. But be sure to check your new name is available! Which leads us to..

Brad Gessler

Name Checker: Check if a Project Name is Taken — An online tool that checks a bunch of different package registries (npm, GitHub, GitLab, PyPI, Maven, RubyGems, Go packages, Rust crate, etc.) to see if the name is used by another project.

Todd Cooke


Find Ruby Jobs with Hired — Hired makes job hunting easy-instead of chasing recruiters, companies approach you with salary details up front. Create a free profile now.