---
title: "It's a Rails (7.1) World"
publication: "Ruby Weekly"
issue: 672
published_at: "2023-10-05"
canonical_url: "https://rubyweekly.com/issues/672"
---

Plus thinking about object shapes, game jams, and saying ahoy. |        

#​672 — October 5, 2023 

[Read on the Web](https://rubyweekly.com/issues/672)  

Together with [![Memetria\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,w_600,h_145/e_make_transparent/co_white,e_outline:7/vvpdctzacmq3xehpvwps.png)](https://dashboard.memetria.com/rubyweekly/)   

Ruby Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/etwvmlop4waomppqjjr3.jpg)](https://rubyonrails.org/2023/10/5/Rails-7-1-0-has-been-released)  

[Rails 7.1 Released](https://rubyonrails.org/2023/10/5/Rails-7-1-0-has-been-released) — It’s a big week for Rails. The sold-out [Rails World 2023](https://rubyonrails.org/world) conference (above) has just started in Amsterdam, and unsurprisingly the latest version of Rails landed just in time for DHH’s keynote 😄 What's new? 

- Ready-to-run [Dockerfiles](https://fly.io/ruby-dispatch/rails-on-docker/).
- New features for [▶️ building auth systems.](https://gorails.com/episodes/rails-7-1-authentication-from-scratch)
- Extended [asynchronous query support.](https://github.com/rails/rails/pull/44446)
- Support for GitHub's [Trilogy](https://github.blog/2022-08-25-introducing-trilogy-a-new-database-adapter-for-ruby-on-rails/) MySQL adapter.
- Composite primary key support.
- Support for the [Bun](https://bun.sh/) JavaScript runtime. And check out [the release notes](https://edgeguides.rubyonrails.org/7_1_release_notes.html) for the _'much, much more..'_ 

Rafael Franca and the Rails Team   [![\](https://copm.s3.amazonaws.com/47b1a415.png)](https://dashboard.memetria.com/rubyweekly/) 

[Memetria: Secure, Scalable Redis 7 Hosting](https://dashboard.memetria.com/rubyweekly/) — High performance Redis hosting with large key tracking, detailed metrics, and a superior uptime record. 

Memetria sponsor    

[Writing Object Shape Friendly Code in Ruby](https://island94.org/2023/10/writing-object-shape-friendly-code-in-ruby) — A new optimization in Ruby 3.2 (with more to come in 3.3) involves how the VM accesses and caches instance variables, where being consistent with how you define these variables will yield performance benefits. Ben looks at how to optimize your own code for this concept of ‘object shapes’. 

Ben Sheldon   

💡 Jemma Issroff of the Ruby core team gave [▶️ a great talk about the implementation of these optimizations](https://www.youtube.com/watch?v=2aVyTtxs0GU) at Euruko last year.  

- 📺 The folks at Honeypot have released a [▶️ teaser trailer of a Ruby on Rails documentary](https://bit.ly/3MbW25x) that comes out next month. Grab the popcorn.
- 🎙️ Olly Headey (formerly of both FreeAgent and 37signals) joined the new _Ruby on Rails Podcast_ host Elise Shaffer to [discuss Ruby on Rails as a career choice](https://www.therubyonrailspodcast.com/490).
- 👾 Itching to build a game? The [Gosu Game Jam 5](https://itch.io/jam/gosu-game-jam-5) starts this weekend. You can use Ruby, mruby, Crystal, or C++, as [Gosu](https://www.libgosu.org/) supports them all.
- 🇺🇦 Victor Shepelev ponders [the many syntax enhancements made to Ruby](https://zverok.space/blog/2023-10-02-syntax-sugar.html) in recent years and promises a series of posts digging deep into each one.
- 💬 _“If you can run your application in a single process, SQLite is the best possible database engine you can use,”_ [says](https://twitter.com/fractaledmind/status/1709857450298626267) DHH.  

📕 Articles and Tutorials  

[A Very Basic Ruby HTTP Server from Scratch](https://www.mikeperham.com/2023/09/11/ruby-http-server-from-scratch/) — One of the (many) reasons for Sidekiq’s success could be Mike’s practical approach to building software, like this in-process HTTP server for Kubernetes health checks. 

Mike Perham   

[On Using Phlex](http://katafrakt.me/2023/10/03/on-using-phlex/) — _“The most important characteristic of Phlex in my opinion is that, at least for Rails, it’s a view layer we never had but always needed.”_ 

Paweł Świątkowski   

[A Simple Introduction to ConnectionPool](https://www.visuality.pl/posts/easy-introduction-to-connection-pool-in-ruby) — [ConnectionPool](https://github.com/mperham/connection_pool) by Sidekiq’s creator Mike Perham is one of my personal favorite libraries and provides a generic connection pooling mechanism you can use with (almost) anything. 

Michał Łęcicki   

[That’s Some Funky Stuff—Who’s Going to Work on That?](https://link.testdouble.com/funky-stuff) — Solving strange, complex problems in legacy codebases is our specialty. Let’s make things more maintainable. 

Test Double sponsor   

▶[Embedding Stripe Checkout into a Rails App](https://www.driftingruby.com/episodes/embedding-stripe-checkout) — A 20 minute screencast with all you need, complete with the Stimulus code to getting it working. 

David Kimura   

[How to Communicate Like a GitHub Engineer](https://github.blog/2023-10-04-how-to-communicate-like-a-github-engineer-our-principles-practices-and-tools/) — A little look behind the scenes. 
Balter and Matlack (GitHub)   

[Distributing Docker Images for Rails Apps with GitHub Actions](https://dennmart.com/articles/distributing-docker-images-for-rails-apps-with-github-actions/) 
Dennis Martinez   

▶[A Look at the New Health Check Endpoint in Rails 7.1](https://gorails.com/episodes/health-check-endpoint-in-rails-7-1) 
Colin Jilbert  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/lod6m7wdufucdgstsknn.jpg)](https://github.com/ankane/ahoy)  

📊 [Ahoy 5.0: Simple Headless Analytics for Rails Apps](https://github.com/ankane/ahoy) — Track visits and events in your app. By default, data is stored in your normal database. Now supports Rails 6.1 through 7.1. If you’re using a prior version, there’s an [upgrade guide.](https://github.com/ankane/ahoy#upgrading) If you want to see how it works, [▶️ this screencast](https://www.youtube.com/watch?v=OicvfL8kKds) from earlier in the year is particularly helpful. 

Andrew Kane   

💡 [Blazer](https://github.com/ankane/blazer) can be used to explore the data collected, and [Ahoy Captain](https://github.com/joshmn/ahoy_captain) is a third party dashboard that uses it too.  

[ColumnsTrace: Find Unnecessarily Selected Database Columns](https://github.com/fatkodima/columns_trace) — Detects unnecessary selected database columns in Rails controllers, ActiveJob and Sidekiq jobs, because taking more than you need [is bad for performance.](https://tanelpoder.com/posts/reasons-why-select-star-is-bad-for-sql-performance/) 

fatkodima   

[So There I Was, Using Your App, When Suddenly…🤯](https://www.honeybadger.io/blog/javascript-feedback-announcement/?utm_source=rubyweekly&utm_medium=email&utm_campaign=ruby) — Let users tell you what happened in their own words when encountering an error. See how it works! 

Honeybadger sponsor   

[Nokolexbor: A Faster Drop-in Replacement for Nokogiri](https://github.com/serpapi/nokolexbor) — I’ve not tested its performance claims (of being 5.2x faster at parsing HTML) but this [Lexbor](https://lexbor.com/)-based HTML5 parser certainly works – installed very quickly too – and provides another option. 

SerpApi   

[Audited 5.4: An Extension That Logs Changes to Rails Models](https://github.com/collectiveidea/audited) — Formerly known as `acts_as_audited`. Support for Rails 7.1 has just landed. 

Collective Idea   

[Ruby Units 4.0: A Unit Handling Library](https://github.com/olbrich/ruby-units) — Designed to simplify (and provide a structure around) the handling of units (such as for lengths, weights, or time) for scientific calculations. 

Kevin Olbrich   

[Logster: Log Viewer UI and Framework for Rack](https://github.com/discourse/logster) — An embedded Ruby ‘exception reporting service’ admins can view on live sites. 

Discourse   

- [HTTPX 1.0](https://gitlab.com/os85/httpx) – Ruby HTTP client with HTTP/2 support.
- [Hanami 2.1.0.beta2](https://hanamirb.org/blog/2023/10/04/hanami-210beta2/) – Previewing front end assets for Hanami 2.1 and a new CLI command: `hanami dev`
- [ValidEmail2 5.1](https://github.com/micke/valid_email2) – ActiveModel validation for email addresses.
- [ngx_mruby 2.4.0](https://github.com/matsumotory/ngx_mruby) – Extend Nginx with mruby.
- [Amoeba 3.3](https://github.com/amoeba-rb/amoeba) – Easy cloning of AR objects, including associations.
- [Aws::Record 2.12.0](https://github.com/aws/aws-sdk-ruby-record) – Abstraction for Amazon DynamoDB.
- [Fusuma 3.3](https://github.com/iberianpig/fusuma) – Multitouch gesture recognizition with `libinput`
- [Pagy 6.1](https://github.com/ddnexus/pagy) – Long standing pagination gem.    

Jobs  

[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       

“The mark of a mature programmer is willingness to throw out code you spent time on when you realize it's pointless.” 

___
Bram Cohen          

Curated by [Peter Cooper](https://twitter.com/cooperx86) 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 [Supporting Ukraine](https://linktr.ee/RazomForUkraine) 

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/).
