#​649 — April 13, 2023

Read on the Web

Together with  AppSignal logo

Ruby Weekly

Building GitHub with (the Latest) Ruby and Rails — GitHub is, arguably, the Rails monolith with two million lines of code and 1,000 engineers working on it daily. There’s little technical content here, but it’s interesting to learn GitHub upgrades Ruby and Rails almost every week. Ruby engineering maturity at its finest? "[This] allowed us to upgrade our monolith from Ruby 3.1 to Ruby 3.2 within a month of release."

Adam Hess (GitHub)

Smooth Logging for Ruby Developers — Unlock the power of logs with AppSignal. Find all the key information in a few clicks in our clean and intuitive interface. Monitoring doesn’t need to be a hassle, AppSignal is here to help.

AppSignal sponsor

Introducing Security Device Support for RubyGems’ CLI — Ruby’s package ecosystem doesn’t get attacked as much as npm, say, but it’s still possible to distribute malicious code via gems. The RubyGems project, then, has set out to make package distribution more secure and now you can use a registered security device as a multi-factor auth method with the RubyGems CLI.

Jenny Shen (RubyGems)

RubyGems 3.4.12 has been released to add support for the above.

📅 Rails World is ComingThe Rails Foundation announces its first-ever conference, Rails World, happening in Amsterdam on October 5-6. They are only planning to sell 650 tickets, so you’ll need to be fast when they drop. DHH also professed his enthusiasm about the conference, working with Amanda, and the future of Rails.

Amanda Perino


📕 Tutorials, Articles, and Videos

Humane Rails Forms Inputs — Brad’s fundamental point is that computers should work for us and be more forgiving of our inputs. To this end, he introduces Inputomatic, a gem that “defines a few casting behaviors” to make inputs friendlier.

Brad Gessler

Audit Logging Approaches — An exploration of some options to implement audit logs, including PaperTrail, Audited, AuditLog, AppSignal, as well as a custom implementation.

Darren Broemmer

The Rails App Review Is an Independent, Rapid, 9 Critical Point Audit — Including security, technical debt, performance and code giving you peace of mind and confidence about the state of your app.

reinteractive Pty Ltd sponsor

How We Upgraded Our Entire Rails Monolith in One Month — This brief story focuses on the frontend bits of the migration, moving to @hotwired/turbo, including the biggest snafus they encountered and what was done in each case. If you’re moving to Rails 7, this is a good read.

Jonathan Loos (Harled)

Why I Stopped Using Sorbet in All My Ruby Projects — A walled article on Medium so if you can’t read it, the TLDR is it’s down to bloated code, struggles to get buy-in, and tooling issues, which have proven too much of a trade off for the author.

Ashley Peacock

As an aside, publishing a blog post as a member-only story on Medium is a great way to limit its reach. I'll occasionally include interesting pieces like the above, but I figured I should let you know.

TIL: Avoid default_role as a Class Method Name — When updating a mature Rails project to use v6.1 defaults, an unexpected stack level too deep error was encountered. It turns out a name clash, around a default_role method, had occurred.

Domhnall Murphy

A Rubyist's Walk Along the C-Side (Part 10): Benchmarking — The latest instalment of Peter’s epic series on writing Ruby C extensions.

Peter Zhu

How to Decommission a Rails App — Did your organization decide to sunset a Rails app? The folks at Planet Argon have tackled such projects and have put together a basic way to approach the problem.

Robby Russell

🛠 Code & Tools

rack-mini-profiler 3.1: A Profiler for Rack Apps in Dev or Production — A popular piece of middleware that adds a ‘speed badge’ to pages in your app to show off database, call-stack and memory profiling data. Ruby performance guru Nate Berkopec seems to have become involved as of v3.1.0.

Sam Saffron et al.

Mechanize 2.9: A Library for Automated Web Interaction — Automatically stores and sends cookies, follows redirects, and can follow links and submit forms, etc. Now needs Ruby 2.6 or newer.

Sparkle Motion

Simplify Transactional Email Delivery in Your Ruby App - Free Guide — Integrate an email service provider, design your email template, test and preview, and send! Sample code included.

Courier.com sponsor

GemUpdater 6.0: Update Gems in Your Gemfile and Fetch Their Changelogs — The idea is that you don’t just want to update gems en masse, you want to know how they changed too.

Maxime Demolin

Forme 2.4: HTML Form Generation Library — A structured way to create HTML forms with no external dependencies and a simple API.

Jeremy Evans

ActionMailer Balancer: Send Mail Through One of Several Methods — If you need to migrate to a new mail provider or otherwise want to spread load between multiple providers, this could be a big help.



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.

Senior Backend Engineer (Remote - EMEA) — Booqable prides itself on being a global company with team members working together from across the world. We are remote-first, so you can join us from wherever you are.