#​695 — March 21, 2024

Read on the Web

Together with  reinteractive

Ruby Weekly

'Chilled Strings': Working Toward Frozen Strings by Default? — A language proposal that would introduce “chilled strings” that masquerade as frozen strings but issue a FrozenError warning when first modified (while allowing the modification). The goal here is to get closer to freezing all strings by default without immediate breakage.

Étienne Barrié and Jean Boussier

The Rails Guides Get a Facelift — Back in 2021, Rails 7.0 landed along with a major spring clean for the Rails brand and site design, but the ever useful Rails Guides didn't benefit from this. A new design and updated content is on the way and can be enjoyed via the Edge Guides for now.

The Rails Foundation

Get CodeCare Plus for Total Ruby on Rails Care — Streamline your Ruby on Rails projects with Get CodeCare Plus. Say goodbye to time-consuming bug fixes and stressful coding issues. Get CodeCare Plus for a seamless Ruby on Rails experience with expert support and bug resolution. Start today!

reinteractive/CodeCarePlus sponsor

TruffleRuby 24.0: Oracle's High Performance Ruby Implementation — Created by the late Chris Seaton, TruffleRuby is a Ruby implementation leaning on GraalVM and the broader Truffle framework, used for implementing a variety of dynamic languages, including Ruby. v24.0 adopts the Prism parser and boasts full Ruby 3.2 and 3.3 syntax support, including pattern matching.


📕 Articles & Tutorials

History of the end-less Method Syntax — An interesting look at the many proposals (both joking and serious) to rid Ruby of some/all instances of the end keyword. And, the end of ending ends may not be at an end, yet?

Lucian Ghinda

▶  SQLite on Rails: It's Serious — Stephen does a lot of work with SQLite and has helped push its use with Ruby forward with epic posts like 'How and Why to Run SQLite in Production'. Here, he spent an hour with Charles Max Wood and Valentino Stoll to win them over on the idea of SQLite as a serious database.

Stephen Margheim

🎤 Charles Max Wood also recently ▶️ caught up with Marc-Andre Cournoyer who experienced Rubyists might remember for his work on Thin back in the day.

Don't Know How to Pick Indexes for Postgres + Rails? Try Out pganalyze — The new pganalyze Index Advisor 3.0 finds missing indexes across your query workload. Configurable, with easy drill-down into the underlying model.

pganalyze sponsor

▶  Deploying a Rails App to Railway, Fly.io, and Render — A practical look at using three modern platforms for hosting a basic Rails app. We’ve used all of them and they’re all pretty good.

Dean DeHart

How to Deploy a Rails 7 App to Heroku — Gotta catch 'em all..

David Boureau

The Day Soft Deletes Caused Chaos — Using soft deletes where rows are marked as deleted without actually being deleted is often considered a best practice for data retention and integrity purposes, but Arjun is definitely not a fan..

Arjun Lall (Bemi)

Rails 8's allow_browser to Enforce Minimum Browser VersionThis is an odd approach, given user agent strings frequently mean little these days, and it uses the wrong HTTP status code for the purpose as well..

Jijo Bose

😏 Tracks That Didn't Make It Into RailsConf 2024..
Kevin Murphy

Understanding Ruby's defined? Keyword
Akshay Khot

🛠 Code & Tools

Introducing props_template: A Jbuilder AlternativeJbuilder is a popular Ruby DSL for creating JSON responses, but thoughtbot wanted more – they wanted layouts, more speed, and more flexibility, while keeping as close to Jbuilder as possible. Enter PropsTemplate

Johny Ho (thoughtbot)

Faiss-Ruby: Efficient Similarity Search and ClusteringFaiss provides a way to efficiently search and cluster dense vectors.

Andrew Kane

Config 5.4: Add Multi-Environment Settings to Ruby Projects — Using simple YAML config files, this provides a mechanism for adding a settings/configuration features to Ruby apps of all types (not just Rails!)

Ruby Config

Zero Downtime Rails Version Updates Are Within Reach 🎉 — Don’t put off version updates. Later means never. Check out quick-read blogs and a talk for an incremental approach.

Test Double sponsor

ActiveRecord-Import 1.6: Bulk Data Insertion with ActiveRecord — Does some clever things like generate the minimal amount of SQL inserts by analyzing associations.

Zach Dennis

Grover: Transform HTML into PDFs, PNGs or JPEGs — Google Puppeteer and Chromium do the heavy lifting. (Worth a look for the mascot alone.. 😆)


VideoInfo 4.2: Get Video Info from Dailymotion, Vimeo, Wistia, and YouTube URLs — Grabs metadata relevant to the videos, such as duration, date, thumbnail URLs, etc. Now recognizes YouTube ‘live’ and ‘shorts’ videos.

Thibaud Guillaume-Gentil