#​682 — December 14, 2023

Read on the Web

✍️ 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

Ruby Weekly

Ruby 3.3.0 Release Candidate 1 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, though I note ‘code GC’ 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 — 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

Memetria: Secure, Scalable Redis Hosting — High performance Redis hosting with large key tracking, detailed metrics, and a superior uptime record.

Memetria sponsor

Exploring Ruby's Global Constants and Variables — 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) and this post runs through a variety.

Ariel Juodziukynas (FastRuby.io)

gemfile.directory: View the Gemfiles of Popular Apps — 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 in the Gemfiles. Early days, so get submitting.

Josh Pigford

📕 Articles & Tutorials

Mastodon: A Look Behind the Popular Rails-Powered Social AppMastodon 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 — 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 — Our big feature last week was about Ruby 3.4 landing support for it 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 — 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 — 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 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! — 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 — It’s not Ruby specific, but it’s interesting.

Luke Francl

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
Aaron Sumner

'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 — 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' — For when you want users to take things step by step.

ZomboCom

MiniLevenshtein: Simple Levenshtein Distance and Similarity Ratios

Delon R. Newman

GraphQL::Coverage: Calculate the Coverage of GraphQL Queries

Masataka Pocke Kuwabara

Jobs

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