---
title: "Chilling out with Ruby strings"
publication: "Ruby Weekly"
issue: 695
published_at: "2024-03-21"
canonical_url: "https://rubyweekly.com/issues/695"
---

Plus TruffleRuby 24.0, Rails docs improvements, and Ruby Central gets a grant for open source ecosystem security. |        

#​695 — March 21, 2024 

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

Together with [![reinteractive\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,w_900,h_186/e_make_transparent/co_white,e_outline:9/goq5p4n0bj1gcxvxkfel.png)](https://reinteractive.com/services/code-care)   

Ruby Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/wftfjgvrfxziukr13hgm.jpg)](https://github.com/ruby/ruby/commit/12be40ae6be78ac41e8e3f3c313cc6f63e7fa6c4)  

['Chilled Strings': Working Toward Frozen Strings by Default?](https://github.com/ruby/ruby/commit/12be40ae6be78ac41e8e3f3c313cc6f63e7fa6c4) — 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](https://rubyonrails.org/2024/3/20/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](https://guides.rubyonrails.org/) didn't benefit from this. A new design and updated content is on the way and can be enjoyed via [the _Edge_ Guides](https://edgeguides.rubyonrails.org/) for now. 

The Rails Foundation   [![\](https://copm.s3.amazonaws.com/144b39fb.png)](https://reinteractive.com/services/code-care) 

[Get CodeCare Plus for Total Ruby on Rails Care](https://reinteractive.com/services/code-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!](https://reinteractive.com/services/code-care) 

reinteractive/CodeCarePlus sponsor   

[TruffleRuby 24.0: Oracle's High Performance Ruby Implementation](https://github.com/oracle/truffleruby/releases/tag/graal-24.0.0) — Created by the late [Chris Seaton](https://chrisseaton.com/), [TruffleRuby](https://www.graalvm.org/ruby/) is a Ruby implementation leaning on GraalVM and the broader [Truffle](https://docs.oracle.com/en/graalvm/enterprise/20/docs/graalvm-as-a-platform/language-implementation-framework/#truffle-language-implementation-framework) 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. 

Oracle   

- 💵 Ruby Central has [received a $250k grant](https://rubycentral.org/news/ruby-central-receives-alpha-omega-grant/) from _Alpha-Omega_, an initiative of the Open Source Security Foundation to help in the protection and security of open source ecosystems (RubyGems, in this case).
- 😱 Talking of security, Martin Emde shares [a tale of a password reset vulnerability](https://blog.rubygems.org/2024/03/15/password-reset-vulnerability.html) on [RubyGems.org](https://rubygems.org/) that originally seemed like a false alarm..
- 🔓 Ruby Core alerts us to [a buffer overread vulnerability in StringIO](https://www.ruby-lang.org/en/news/2024/03/21/buffer-overread-cve-2024-27280/) and [an RDoc vulnerability](https://www.ruby-lang.org/en/news/2024/03/21/rce-rdoc-cve-2024-27281/).
- 🍾 [Solid Queue 0.3](https://github.com/rails/solid_queue/releases/tag/v0.3.0) has been released and has ['graduated from its incubation'](https://twitter.com/dhh/status/1770590629149786189) under Basecamp's account to being a full fleged _Rails_ project. It's expected to become the default queue in Rails 8.
- 🇸🇪 [BalticRuby](https://balticruby.org/) takes place this June in Malmö, Sweden – [their CFP is open](https://www.papercall.io/balticruby) for another week if you want to speak.
- 🐦 Did you know that [`Time#utc` modifies its receiver?](https://twitter.com/RubyCademy/status/1768189755970265315)  

📕 Articles & Tutorials  

[History of the `end`-less Method Syntax](https://learn.shortruby.com/blog/history-of-endless-method) — 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](https://www.youtube.com/watch?v=6JTkkHf_VJw) — 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](https://fractaledmind.github.io/2023/12/23/rubyconftw/)'. 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](https://www.youtube.com/watch?v=3lDSuYe4GWQ) who experienced Rubyists might remember for his work on [Thin](https://github.com/macournoyer/thin) back in the day.  

[Don't Know How to Pick Indexes for Postgres + Rails? Try Out pganalyze](https://pganalyze.com/blog/index-advisor-v3?utm_source=RubyWeeklySecondary03212024) — 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](https://www.youtube.com/watch?v=PsS0bF_xmXQ) — 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](https://saaslit.com/blog/ruby/how-to-deploy-a-rails-7-app-to-heroku) — Gotta catch 'em all.. 

David Boureau   

[The Day Soft Deletes Caused Chaos](https://blog.bemi.io/soft-deleting-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 Version](https://blog.saeloun.com/2024/03/18/rails-8-adds-allow-browser-to-set-minimum-versions/) — [This](https://github.com/rails/rails/pull/50505) 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..](https://kevinjmurphy.com/posts/tracks-not-at-railsconf-2024/) 
Kevin Murphy   

[Understanding Ruby's `defined?` Keyword](https://www.writesoftwarewell.com/how-to-check-if-a-variable-is-defined-in-ruby/) 
Akshay Khot  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/hzdh7axoqu7za2xos8yh.jpg)](https://thoughtbot.com/blog/introducing-props-template)  

[Introducing `props_template`: A Jbuilder Alternative](https://thoughtbot.com/blog/introducing-props-template) — [Jbuilder](https://github.com/rails/jbuilder) 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](https://github.com/thoughtbot/props_template)… 

Johny Ho (thoughtbot)   

[Faiss-Ruby: Efficient Similarity Search and Clustering](https://github.com/ankane/faiss-ruby) — [Faiss](https://github.com/facebookresearch/faiss) provides a way to efficiently search and cluster dense vectors. 

Andrew Kane   

[Config 5.4: Add Multi-Environment Settings to Ruby Projects](https://github.com/rubyconfig/config) — 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 🎉](https://link.testdouble.com/lwd) — 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](https://github.com/zdennis/activerecord-import) — 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](https://github.com/Studiosity/grover) — Google Puppeteer and Chromium do the heavy lifting. (Worth a look for the mascot alone.. 😆) 

Studiosity   

[VideoInfo 4.2: Get Video Info from Dailymotion, Vimeo, Wistia, and YouTube URLs](https://github.com/thibaudgg/video_info) — Grabs metadata relevant to the videos, such as duration, date, thumbnail URLs, etc. Now recognizes YouTube ‘live’ and ‘shorts’ videos. 

Thibaud Guillaume-Gentil   

- [Kamal 1.4](https://github.com/basecamp/kamal/releases/tag/v1.4.0) – The container-based app deployer.
- [Heya 0.10](https://github.com/honeybadger-io/heya) – Like ActionMailer, but for timed email sequences.
- [Invisible Captcha 2.3](https://github.com/markets/invisible_captcha) – 'Honeypot' style protection for Rails apps.
- [Solid Cache 0.6](https://github.com/rails/solid_cache/releases/tag/v0.6.0) – Database-backed Active Support cache store.
- [Langchain.rb 0.10](https://github.com/andreibondarev/langchainrb) – Framework for building LLM-backed apps.
- [Rubocop-Sorbet 0.8](https://github.com/Shopify/rubocop-sorbet) – A collection of RuboCop rules for Sorbet
- [Nokogiri 1.16.3](https://github.com/sparklemotion/nokogiri) – XML and HTML processor extraordinaire.
- [ServiceActor 3.8](https://github.com/sunny/actor) – Composable Ruby service objects.
- [Ruby JSON Schema Validator 4.2](https://github.com/voxpupuli/json-schema)
- [Rack Canonical Host 1.3](https://github.com/tylerhunt/rack-canonical-host)         

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