Ruby Weekly
Plus a case against monkey patching, the Rails Foundation finds its executive director, and a way to generate auth systems in Rails apps. |

#​642 — February 23, 2023

Read on the Web

Together with  AppSignal logo

Ruby Weekly

The Case Against Monkey Patching (From a Rails Core Team Member) — Eileen (who we interviewed a couple of years ago) makes a solid case against monkey patching, what to do instead, and why refinements aren’t much better. She speaks from experience, so if you are living with a load of patches, follow Eileen out of the quagmire.

Eileen Uchitelle

It's Official: The Standard Ruby VS Code Extension — Standard is a Ruby style guide, linter and formatter created by TestDouble, and it now has a ‘distressingly fast’ VS Code extension to really up the ante for almost real-time code formatting.

Justin Searls (Test Double)

Introducing AppSignal for Hanami — AppSignal integrates seamlessly with Hanami 2.0 to provide action-level insights, making it easier for you to ensure a smooth-running application. Monitor your Hanami app with a stroopwafel in your hand 🍪

AppSignal sponsor

'Whatever Happened to Ruby?' — It’s not all sunshine and rainbows, but it’s always interesting to see a big outlet cover Ruby, and while Ruby isn’t exactly going to eat Java anymore, it has become entrenched in its niche. As Matthew Boeh is quoted: “Ruby is never going to be the Next Big New Thing again, but I think it’s here to stay.”

Josh Fruhlinger (Infoworld)

Creating an Intelligent Knowledge Base Q&A App with GPT-3 and Ruby — The example answers questions about a company by comparing the semantic values of questions to the text of different pages on the site, creating an AI-based FAQ of sorts.

Kane Hooper

QUICK BITS

📕 Tutorials and Articles

How to Find a Memory Bloat in a Rails App Before It Happens — Since most of the memory issues in an app happen around I/O (specifically, database I/O), if we ratio the data loaded to the response size, maybe we can find future sources of bloat?

Dmitry Tsepelev

Duped Into Modifying a Frozen Hash — Calling freeze on an object may not provide the immutability you expect. Kevin looks at a few nuances around freezing hashes and how HashWithIndifferentAccess can complicate matters.

Kevin Murphy

🚀 Monitor and Optimize Website Speed to Rank Higher in Google — Monitor Google's Core Web Vitals and optimize performance using in-depth reports built for developers. Improve SEO & UX.

DebugBear sponsor

You Don't Need Rails to Start Using Hotwire — Hotwire, an ‘HTML over the wire’ approach to making Web pages more dynamic (explained here), is closely tied to Rails, but Rails isn’t a must. Indeed, Akshay shows us how it can work on a totally static site here.

Akshay Khot

Storing Ephemeral UI State with Kredis for Rails — Kredis (Keyed Redis), an official Rails sub-project, wraps the usual Redis client library and simplifies working with structured data in the popular data store.

Julian Rubisch

How Basecamp Stands to Save Millions From 'Cloud Exit' — As 37signals runs some of the largest Rails apps out there, it’s interesting to see their rationale and plan to ‘leave the cloud’ for self-hosted infrastructure after many years on AWS.

David Heinemeier Hansson

How Fly.io Will Use Rails 7.1's New Health Checks Feature — Rails 7.1 is adding a discoverable app health check feature.

Sam Ruby

Need to Upgrade Your Rails App but Don't Have the Time or Resources? We Can Help

reinteractive Pty Ltd sponsor

Writing JavaScript Without a Build System — Certainly something that appeals to me as a Rubyist.

Julia Evans

Deploying Hanami Apps to Render
Hanami Mastery

How Rails Authenticity Tokens Protect Against CSRF Vulnerabilities
Akshay Khot

How This Year's RailsConf Tracks Can Help You Become a More Well Rounded Developer
Ruby Central

🛠 Code & Tools

Karafka Web UI: A New Way to Watch Karafka — Karafka is a popular Apache Kafka-based processing framework for Ruby and Rails, and it now includes a “Sidekiq-inspired” Web-based UI to give you more visibility into operations. It’s built using Roda and can be mounted into Rack and Rails apps.

Maciej Mensfeld

Authentication Zero: Auth System Generator for Rails — Rather than being an authentication library, this generates a pre-built authentication system within your app directly which you can then modify as you see fit.

Lázaro Nixon

Don’t Let Your Issue Tracker Be a Four-Letter Word. Use Shortcut

Shortcut (formerly Clubhouse.io) sponsor

Terrapin 1.0: Run Shell Commands Safely — A little extra abstraction for running shell commands that provides safer interpolation, particularly if using user-supplied values.

thoughtbot, inc.

Deprecation Toolkit: Eliminate Deprecations From Your Codebase — Extends either Minitest or RSpec to track both existing and new deprecations.

Shopify

Jobs

Software Engineer (Backend) — Join our "kick ass" team. Our software team operates from 17 countries and we're always looking for more exceptional engineers.
Sticker Mule

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.
Hired

💪 Rust is Easier than Ruby?

This comes from Sean Walker over on Twitter:

At the risk of playfully and deliberately misinterepreting the intended point, I'm temporarily going to feel good about using a harder language like Ruby for now.. 😁  (More context, if you want it.)

Issue 641 #642 Issue 643