---
title: "Eleven sleeps away"
publication: "Ruby Weekly"
issue: 682
published_at: "2023-12-14"
canonical_url: "https://rubyweekly.com/issues/682"
---

Plus being nosy at other people's Gemfiles, how Mastodon's app is structured, and Nokogiri gets an update ready for Ruby 3.3. |        

#​682 — December 14, 2023 

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

✍️ Christmas is almost here, so we're preparing our annual roundup issue for next week, before we take some time off! Keep an eye out for that next Thursday :-)
__
_Your editor, Peter Cooper_ 

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/bzm3x2znzvxpxqngkmbc.jpg)](https://www.ruby-lang.org/en/news/2023/12/11/ruby-3-3-0-rc1-released/)  

[Ruby 3.3.0 Release Candidate 1 Released](https://www.ruby-lang.org/en/news/2023/12/11/ruby-3-3-0-rc1-released/) — We’re now just 11 days from the final release, but Shopify is already using this in production… 😅 There are few changes since [preview 3](https://www.ruby-lang.org/en/news/2023/11/12/ruby-3-3-0-preview3-released/), though I note ‘[code GC](https://news.ycombinator.com/item?id=38269797)’ is now disabled by default, but this seems like a good thing for performance in most cases. 

Yui Naruse   

[Everyday Performance Rules for Rails Developers](https://www.rorvswild.com/blog/2023/everyday-performance-rules-for-ruby-on-rails-developers) — It’s easy to point the finger at Ruby or Rails when performance drags, but often the issues are database-related or in how the code is written. Following some of these pointers could take you a few steps toward better performance. 

RoR vs Wild   [![\](https://copm.s3.amazonaws.com/4743feeb.png)](https://dashboard.memetria.com/rubyweekly/) 

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

Memetria sponsor    

[Exploring Ruby's Global Constants and Variables](https://www.fastruby.io/blog/exploring-global-constants-and-variables.html) — We can probably thank the influence of Perl for the myriad of variables and constants available to a Ruby process, but they can be incredibly useful or even just handy timesavers (e.g. `$<` has been my friend in [Advent of Code](https://adventofcode.com/)) and this post runs through a variety. 

Ariel Juodziukynas (FastRuby.io)   

[gemfile.directory: View the Gemfiles of Popular Apps](https://gemfile.directory/) — Such a simple idea, but fun to look around. It’s a presentation of submitted Gemfiles covering apps from folks like GitLab, PlanetScale, and Discourse. You can also look at [the top gems referenced](https://gemfile.directory/top-gems) in the Gemfiles. Early days, so get submitting. 

Josh Pigford   

- 🗣 An [interview with Noel Rappin](https://forum.devtalk.com/t/spotlight-noel-rappin-author/135742), the new lead author of the _Pickaxe_, a.k.a. _Programming Ruby_, of which the fifth edition drops imminently.
- 🇦🇺 RubyConf AU 2024 is taking place in Sydney, Australia, next April 11-12. No site yet, but [their CFP is already open](https://sessionize.com/rubyconf-au-2024/) if you want to speak – talk proposals are due by January 12.
- 🤝 Ruby Central has [welcomed four new board members](https://rubycentral.org/news/ruby-central-welcomes-new-board-members/) who also join its [new executive director](https://rubycentral.org/news/executive-director/), Adarsh Pandit.
- ❓ [Why do you need to prefix Ruby constants](https://stackoverflow.com/a/74501011/3951) with `::` sometimes?
- 🔠 Could we [rename the `ASCII-8BIT` encoding to `BINARY`](https://bugs.ruby-lang.org/issues/18576#note-27) in Ruby 3.4?  

📕 Articles & Tutorials  

[Mastodon: A Look Behind the Popular Rails-Powered Social App](https://allaboutcoding.ghinda.com/ruby-on-rails-open-source-mastodon) — [Mastodon](https://joinmastodon.org/) is a hugely popular federated Twitter-a-like social networking system and it’s built on Rails. Lucian casts a Rubyist's eye over the codebase looking at its basic structure, dependencies, and how its tests work. 

Lucian Ghinda   

[🌳 Ready for Ruby 3.3? Upgrade Smoothly with Bonsai by FastRuby.io](https://go.fastruby.io/htu) — Whether you’re on Roda, Sinatra, or Hanami, our fixed-cost, monthly upgrade service can help. One tiny PR at a time. 

Ruby Upgrades on Autopilot sponsor   

[Exploring the `it` Warning in Ruby 3.3](https://allaboutcoding.ghinda.com/exploring-it-default-block-param-warning-in-ruby-33) — Our big feature last week was about Ruby 3.4 landing [support for `it`](https://bugs.ruby-lang.org/issues/18980#note-47) as a alias for the first parameter in a block. To pave the way, Ruby 3.3 will merely _warn_ on its use, but that has some possible side effects as Lucian explores here. 

Lucian Ghinda   

[Ruby 3.3's `Range#overlap?` Method](https://blog.saeloun.com/2023/12/11/ruby-3-3-introduces-range-overlap/) — Compare two ranges to see if they overlap each other. 

Prasanth Chaduvula   

[How I Brought My Site's LCP Down to Under 350ms for Google-Referred Users](https://blog.pawelpokrywka.com/p/how-i-took-lcp-down-under-350ms) — An exploration of the techniques used to optimize performance on a high-traffic site with specific tips for Rails (and Next.js). LCP stands for [Largest Contentful Paint](https://web.dev/articles/lcp) and refers to the time it takes for the largest image/text block visible within the viewport to render. 

Paweł Pokrywka   

[Boosting Query Performance with Incremental Materialized Views!](https://docs.epsio.io/?utm_source=rubyweeklyDec) — Plug Epsio into your database and boost performance of your most complex queries. It constantly updates query results whenever the underlying data changes, without recalculating. 

Epsio sponsor   

▶[Lessons From Building GitHub Code Search](https://www.youtube.com/watch?v=CqZA_KmygKw) — It’s not Ruby specific, but it’s interesting. 

Luke Francl   

[Upgrading GitHub.com to MySQL 8.0](https://github.blog/2023-12-07-upgrading-github-com-to-mysql-8-0/) — Another GitHub story. Written up, this time :-) 

Liu, Rogart, and Wu (GitHub)   

[Write Resilient Tests with Matchers That Take Other Matchers](https://everydayrails.com/2023/12/07/rspec-resilient-matchers.html) 
Aaron Sumner   

['Service Objects are Poorly-Named Models'](https://dimiterpetrov.com/blog/service-objects-are-poorly-named-models/) 
Dimiter Petrov  

🛠 Code & Tools  

[online_migrations 0.10: Catch Unsafe Postgres Migrations in Dev and Run Them Easier in Prod](https://github.com/fatkodima/online_migrations) — The extensive README alone is worth the price of admission, but using the gem might save you a few headaches with dangerous migrations on large tables. 

Dima Fatko   

[Wicked: Turn a Rails Controller Into a 'Wizard'](https://github.com/zombocom/wicked) — For when you want users to take things step by step. 

ZomboCom   

[MiniLevenshtein: Simple Levenshtein Distance and Similarity Ratios](https://github.com/delonnewman/mini-levenshtein) 

Delon R. Newman   

[GraphQL::Coverage: Calculate the Coverage of GraphQL Queries](https://github.com/pocke/graphql-coverage) 

Masataka Pocke Kuwabara    

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      

- [Nokogiri 1.16.0.rc1](https://github.com/sparklemotion/nokogiri/releases/tag/v1.16.0.rc1) – Now with native gem support for Ruby 3.3.
- [db-query-matchers 0.12](https://github.com/sds/db-query-matchers) – RSpec matchers for database queries.
- [rspec-openapi 0.10](https://github.com/exoego/rspec-openapi) – Make OpenAPI schemas from RSpec request specs.
- [Sucker Punch 3.2](https://github.com/brandonhilkert/sucker_punch) – Single-process async processing library.
- [Scarpe 0.3](https://github.com/scarpe-team/scarpe) – Webview-based modern Shoes.
- [Active Admin 3.2](https://github.com/activeadmin/activeadmin) – Admin framework for Rails apps.
- [Haml 6.3](https://github.com/haml/haml) – HTML shorthand language.
- [Flipper 1.1](https://blog.flippercloud.io/flipper-1-1-0/) – Feature flag system.
- [debug 1.9](https://github.com/ruby/debug/releases/tag/v1.9.0) – In preparation for Ruby 3.3.         

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 

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