#​594 — March 10, 2022

Read on the Web

🇺🇦 Ukraine needs our help – more on this below.

Ruby Weekly

DHH and RailsConf Go Their Separate Ways (and Some Rails Core Members Step Back) — This is a complicated story but The New Stack attempts to tie some delicate threads together here. DHH, the original creator of Rails, wrote a post called No RailsConf summing up various Rails developments in 2021, before taking umbrage with a decision to not grant him the full main keynote session at RailsConf (as well as the removal of the 'web3' track). Unsurprisingly this has kicked off a lot of conversations in the community, and as a consequence, some core team members have stepped back or resigned.

Mike Melanson (The New Stack)

Bridgetown 1.0: A Modern Ruby (JAMstack) Web Framework — Bridgetown is a Ruby-based static-site generator ‘grown on the fertile soil of Rails and Jekyll’. It comes with a lot out of the box and offers much flexibility whether through template engines, components, plugins, or its zero-config build system if you want to go heavy on the JS. GitHub repo here. If you want to hear more about this release, the project’s creator was on last week’s Remote Ruby podcast.

Bridgetown

Scout: An APM Tool for Modern Development Teams — Scout allows your developers to find and fix performance issues in a record amount of time. With unlimited seats and an intuitive UI, Scout helps anyone become a performance expert in minutes. Start your 14-day free trail to learn more.

Scout APM sponsor

🇺🇦 A Rubyist in Ukraine Appeals to the Ruby Community — Did you know the popular Ruby Changes (a.k.a. Ruby Changelog) project is maintained by a Ukrainian Rubyist? He has a message to share about the invasion and how you can help by showing support, whether by words or actions. We have donated and will continue to do so. In related news, GitHub has also shared its response to the war.

Victor Shepelev

On Abstraction in Rails — There’s nothing that can’t be fixed by another level of abstraction, right? Jason cooks up this look at making better abstractions in Rails by picking on a couple of ‘anti-examples’ in public codebases.

Jason Swett

Rails 7.0.2.3, 6.1.4.7, 6.0.4.7, and 5.2.6.3 Released — As you can probably tell by the cumbersome version numbers, these are small security releases. They fix a possible code injection vulnerability with Active Storage if you are using image_processing and mini_magick.

Aaron 'tenderlove' Patterson

IN BRIEF:

Jobs

Lead Engineer (ROR) - Marketplace — 8+ years of Rails experience? Join a small, smart, badass team and help improve our marketplace, Afrikrea.
Anka

Senior Ruby on Rails Developer (London) — Join our agency to enjoy autonomy, personal growth, variety, creativity and interesting people. We make a meaningful impact in the world by delivering valuable solutions.
Unboxed

Work Remotely Forever — When you join Toptal, you get the freedom of freelance with the security of full-time. Take control of your career today.
Toptal

📕 Articles & Tutorials

▶  Roda: Simplicity, Reliability, Extensibility and Performance — The creator of Roda and Sequel gave a live online talk for RubyConf Pakistan about what Jeremy himself called ‘Ruby’s 4th most popular Web framework’ — including its design approach and why you might want to use it. This is a good pitch.

Jeremy Evans

How GitLab Automatically Fixed 1000s of Ruby 2.7 Deprecation Warnings — Warnings were added in Ruby 2.7 to prepare for a syntax change in Ruby 3.0, and GitLab was suddenly inundated with thousands of such warnings that they wanted to resolve. The fix involved Rubocop and Shopify’s Deprecation Toolkit.

Thong Kuah (GitLab)

Solidus: The Last eCommerce Back-End You’ll Ever Need — Get the freedom & flexibility to create unique, custom-built shopping experiences without making compromises.

Solidus sponsor

Mocking JavaScript Requests During Tests — Tools like VCR can be used to mock requests performed by your Ruby code, but what about requests initiated by front-end JavaScript?

Ariel Juodziukynas

▶  Remote Development Using.. A Chromebook? — You don’t need the latest tricked out computer to be an effective developer. A modestly priced Chromebook can do the job if you host much of your environment on a remote server, as shown here.

David Kimura

Rails 7 Allows Permitting Params with Numeric Keys
Siddharth Shringi

Inline Documentation – A Secret Habit of Successful Devs?
Seb Wilgosz

🛠 Code & Tools

Tantiny: Tiny Rust-Powered Full-Text Search for RubyTantivy is a Lucene-inspired full-text search engine written in Rust and Tantiny brings its power to us in Ruby.

Alexander Baygeldin

Extralite: An Extra-Lightweight Gem for Working with SQLite3 — Sharon has been putting a lot of work into this handy library which now supports prepared statements and includes SQLite 3.38.0 (which itself introduced some handy new operators for working with JSON columns).

Sharon Rosner

Project Management for Today's (And Tomorrow's) Software Team

Shortcut (formerly Clubhouse.io) sponsor

Artemis 0.7: A GraphQL Client for Rails That's Quick to Start Using“You’ll never have to make trivial decisions or spend time on boring setup. Start making a GraphQL request in literally 30s.” Now supports Ruby 3 and Rails 7, too.

Yuki Nishijima

rails-pg-extras 4.0: PostgreSQL Performance Insights for Rails Devs — This plugin lets you get quick info about locks, index usage, buffer cache hit ratios, vacuum stats and more.

Paweł Urbanek

ByStar: Query Active Record and Mongoid Objects Based on Time — Adds convenience methods like between_times, before, at_time and after.

Ryan Bigg

Letter Opener 1.8: Preview Mail in the Browser Instead of Sending
Ryan Bates

💡 Tip of the Week



The Rails console's sandbox mode

No tip from Jemma this week. However, I was on Twitter and Shino Kouda of BootRails mentioned a Rails feature I hadn't encountered before!

If you run rails console with the --sandbox flag, a transaction envelopes your session so that any database changes can be rolled back at the end – check out Shino's full tweet.

Beware that other side effects may occur separate to the transaction, however – such as the creation of background jobs. Thanks for the heads up, Shino!