---
title: "Incredibly fast Ruby formatting"
publication: "Ruby Weekly"
issue: 642
published_at: "2023-02-23"
canonical_url: "https://rubyweekly.com/issues/642"
---

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](https://rubyweekly.com/issues/642)  

Together with [![AppSignal logo\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,e_trim,w_700,h_120/e_make_transparent/co_white,e_outline:7/lme8p344dw1aodshz9px.png)](https://blog.appsignal.com/2023/02/14/introducing-appsignal-for-hanami.html?utm_source=ruby-weekly-sponsored&utm_medium=email&utm_campaign=2023-02-14)  

Ruby Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/buhkngc39lavfzxnnutn.jpg)](https://shopify.engineering/the-case-against-monkey-patching)  

[The Case Against Monkey Patching (From a Rails Core Team Member)](https://shopify.engineering/the-case-against-monkey-patching) — Eileen (who we [interviewed a couple of years ago](https://rubyweekly.com/issues/475)) makes a solid case against monkey patching, what to do instead, and why [refinements](https://docs.ruby-lang.org/en/2.4.0/syntax/refinements_rdoc.html) _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](https://blog.testdouble.com/posts/2023-02-16-its-official-the-standard-ruby-vscode-extension/) — [_Standard_](https://github.com/testdouble/standard) is a Ruby style guide, linter and formatter created by TestDouble, and it now has a _‘distressingly fast’_ [VS Code extension](https://marketplace.visualstudio.com/items?itemName=testdouble.vscode-standard-ruby) to really up the ante for almost real-time code formatting. 

Justin Searls (Test Double)   [![\](https://copm.s3.amazonaws.com/8791d6ae.png)](https://blog.appsignal.com/2023/02/14/introducing-appsignal-for-hanami.html?utm_source=ruby-weekly-sponsored&utm_medium=email&utm_campaign=2023-02-14) 

[Introducing AppSignal for Hanami](https://blog.appsignal.com/2023/02/14/introducing-appsignal-for-hanami.html?utm_source=ruby-weekly-sponsored&utm_medium=email&utm_campaign=2023-02-14) — 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?'](https://www.infoworld.com/article/3687219/whatever-happened-to-ruby.html) — 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](https://kanehooper.hashnode.dev/creating-an-intelligent-knowledge-base-qa-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** 

- Remember how the [Rails Foundation](https://rubyonrails.org/2022/11/14/the-rails-foundation) was formed and was looking for an executive director? Formerly of Hashicorp, [Amanda Perino has landed the top job.](https://rubyonrails.org/2023/2/20/amanda-perino-is-our-executive-director) Congratulations, Amanda!
- Nick Schwaderer reported [a Ruby 2.7 to 3.2 performance regression](https://bugs.ruby-lang.org/issues/19438) that has yet to be analyzed – so if you're looking for something to do..
- 📅 [Friendly.rb](https://friendlyrb.com/) is a newly announced Ruby conference due to take place in Romania this September.
- 📅 _Helvetic Ruby 2023_ is a conference taking place in Switzerland this November and [their Call for Speakers](https://helvetic-ruby.ch/call-for-speakers/) is open till March 31.
- [RubyGems.org is deprecating its Dependency API](https://blog.rubygems.org/2023/02/22/dependency-api-deprecation.html) – it's the way Bundler _used_ to fetch dependency info between Bundler 1.1-1.12. If you've upgraded Bundler in the last several years and don't use the Dependency API directly in some unusual way, little will change for you.  

📕 Tutorials and Articles  

[How to Find a Memory Bloat in a Rails App Before It Happens](https://dmitrytsepelev.dev/finding-rails-memory-bloats-early) — 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](https://kevinjmurphy.com/posts/modify-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](https://www.debugbear.com/?utm_source=newsletter&utm_medium=sponsored&utm_campaign=ruby-weekly-2) — 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](https://www.akshaykhot.com/using-hotwire-without-rails/) — [Hotwire](https://hotwired.dev/), an ‘HTML over the wire’ approach to making Web pages more dynamic ([explained here](https://www.akshaykhot.com/introduction-to-hotwire/)), 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](https://blog.appsignal.com/2023/02/22/storing-ephemeral-ui-state-with-kredis-for-rails.html) — [Kredis](https://github.com/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'](https://world.hey.com/dhh/we-stand-to-save-7m-over-five-years-from-our-cloud-exit-53996caa) — 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](https://fly.io/ruby-dispatch/health-checks/) — Rails 7.1 is adding a discoverable [app health check](https://github.com/rails/rails/pull/46936) feature. 

Sam Ruby   

[Need to Upgrade Your Rails App but Don't Have the Time or Resources? We Can Help](https://reinteractive.com/service/ruby-and-rails-upgrade-support) 

reinteractive Pty Ltd sponsor   

[Writing JavaScript Without a Build System](https://jvns.ca/blog/2023/02/16/writing-javascript-without-a-build-system/) — Certainly something that appeals to me as a Rubyist. 

Julia Evans   

[Deploying Hanami Apps to Render](https://hanamimastery.com/episodes/41-deploying-to-render) 
Hanami Mastery   

[How Rails Authenticity Tokens Protect Against CSRF Vulnerabilities](https://www.akshaykhot.com/how-rails-authenticity-tokens-protect-against-csrf/) 
Akshay Khot   

[How This Year's RailsConf Tracks Can Help You Become a More Well Rounded Developer](https://rubycentral.org/news/railsconf-2023-has-a-new-feature-community-curated-tracks/) 
Ruby Central  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/htcvdk9n6e0izwpdbgay.jpg)](https://mensfeld.pl/2023/02/karafka-web-ui-your-ruby-and-rails-out-of-the-box-kafka-ui/)  

[Karafka Web UI: A New Way to Watch Karafka](https://mensfeld.pl/2023/02/karafka-web-ui-your-ruby-and-rails-out-of-the-box-kafka-ui/) — [Karafka](https://github.com/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](https://github.com/lazaronixon/authentication-zero) — 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](https://shortcut.com/?utm_source=cooperRubyWeekly&utm_medium=spon_nl&utm_campaign=prospecting&utm_content=fourletter) 

Shortcut (formerly Clubhouse.io) sponsor   

[Terrapin 1.0: Run Shell Commands Safely](https://github.com/thoughtbot/terrapin) — 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](https://github.com/Shopify/deprecation_toolkit) — Extends either Minitest or RSpec to track both existing and new deprecations. 

Shopify   

- [Phlex 1.4.0](https://github.com/joeldrapper/phlex/releases/tag/1.4.0)
 ↳ Write Web views in OO Ruby.
- [Devise 4.9](https://github.com/heartcombo/devise/blob/v4.9.0/CHANGELOG.md#490---2023-02-17)
 ↳ Popular Rails auth option adds Ruby 3.1/3.2 and Hotwire + Turbo support.
- [RubyMine 2023.1 EAP5](https://blog.jetbrains.com/ruby/2023/02/rubymine-2023-1-eap5-is-out/)
- [Thredded 1.1](https://github.com/thredded/thredded)
 ↳ Forum / message board Rails engine.
- [Ruby Graph Library (RGL) 0.6](https://github.com/monora/rgl)
 ↳ Graph data structures and algorithms.
- [Alba 2.2](https://github.com/okuramasafumi/alba)
 ↳ JSON serializer. Now with better Rails support.
- [StoreModel 1.6](https://github.com/DmitryTsepelev/store_model)
 ↳ ActiveModel-like classes for JSON-backed attributes.
- [sqlite3-ruby 1.6.1](https://github.com/sparklemotion/sqlite3-ruby)
 ↳ Ruby bindings for SQLite3 v3.41.0.    

Jobs  

[Software Engineer (Backend)](https://jobs.ashbyhq.com/stickermule/477eed3e-4aae-46e6-a8ab-0646dbfb11cd?utm_source=Cooperpress) — 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](https://hired.com/join/?utm_source=newsletter&utm_medium=sponsor&utm_campaign=%28b2c%29%28l-all%29%28r-all%29%28cooper-rubyweekly%29&utm_content=easy-job-hunting) — 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](https://twitter.com/swlkr/status/1628119391035334656): 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/clusnyozaih7fncrvdgt.jpg)](https://twitter.com/swlkr/status/1628119391035334656)  

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](https://twitter.com/swlkr/status/1628233198076588032), if you want it.)_        

Curated by [Peter Cooper](https://x86.social/@cooper) and [Glenn Goodrich](https://twitter.com/ruprict).
Published by [Cooperpress](https://cooperpress.com/). 

[Change your email](https://rubyweekly.com/edit_subscription/*|UID|*) or [Stop getting this newsletter.](https://rubyweekly.com/leave/*|UID|*) 

© Cooper Press Ltd · Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom   

Other weekly newsletters we publish include [Postgres Weekly](https://postgresweekly.com/), [React Status](https://react.statuscode.com/), [Frontend Focus](https://frontendfoc.us/), and [JavaScript Weekly](https://javascriptweekly.com/).
