#​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 ExtensionStandard 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 HotwireHotwire, 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 RailsKredis (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 KarafkaKarafka 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.)