#​551 — May 6, 2021

Read on the Web

😬 Last week I linked to what felt like a very tangential (to Ruby) story about Basecamp which I knew many in the Ruby community would be discussing, even if it wasn't about Ruby. Since then, the story has developed further with people leaving the Rails core team and DHH's role and leadership of the Rails project put into question. Therefore, we lead with it below.
__
Peter Cooper, editor

Ruby Weekly

The Effects of the Last Week on Rails — As mentioned in my intro paragraph (above), the past week has seen a lot of developments in the story around Basecamp:

  • Sam Stephenson, a true Ruby powerhouse driving projects like Sprockets, Turbolinks, Action Text, and Hotwire, has stepped away from working on all of his Basecamp-originated Ruby projects. He will be sorely missed.
  • George Claghorn resigned from the Rails core team.
  • The Rails Core Team has issued a statement on its governance stressing that no individual has 'sole control' over Rails and no policies can or will be enacted unilaterally.

Eric Schultz

Announcing Hanami v2.0.0.alpha2 — It might be "alpha2" but, Luca claims, also a revolutionary new vision for Hanami, a modern Web framework for Ruby. There’s too much to summarize here but Luca does a great job.

Luca Guidi

ButterCMS Melts into Your Ruby App. #1 Rated Headless CMS — ButterCMS is the #1 rated Headless CMS for Ruby. Let your marketing team blog, create landing pages and more w/ our easy to use dashboard. Fast content API for modern apps. Secure. Scalable. Less Code. Try free today for 30 days.

ButterCMS sponsor

Devise 4.8: The Rails + Warden Authentication System — A very popular and flexible auth solution for Rails. This 4.8 release adds support for OmniAuth 2+, Ruby 3, and Rails 6.1.

França et al.

Animated Graphics with Ruby and Voronoi Partitions — A Voronoi diagram is divided into sectors by how close each region is to a variety of starting points. You have to see it to get it. GitHub repo.

Mike Bourgeous

Quick Bits

📘 Articles & Tutorials

▶  A Day in the Life of a Ruby Object — Jemma clearly explains the Ruby heap, the Mark and Sweep GC algorithm, and incremental and generational garbage collection. This video will better your understanding of how Ruby handles objects and memory.

Jemma Issroff

Containerizing Rails Applications — Doximity is moving to Kubernetes, which means their apps must be in containers and are now sharing five solid lessons from this journey that you can use in your Rails apps.

Michael Orr

Using Angular with Rails 5 — From the Honeybadger Developer Blog. When errors strike, Honeybadger’s monitoring service has your back to defeat them ⚔️

Honeybadger sponsor

Quickly Exploring Data with uniq and tally — We covered tally in a recent tip of the week (they’re coming back, don’t worry) but it never hurts to cover it again because it’s so useful for counting the incidence of values in an enumerable.

Matt Swanson

Behind the Scenes of Rails UJS — Rails UJS (Unobtrusive JavaScript) was originally an add-on to Rails but got baked in to Action View back in the Rails 5 era. This post explains some of the inner workings.

Ariel Juodziukynas

Rails 6.1's invert_where Method — For inverting all scope conditions, e.g. User.active.invert_where would find, hopefully, the inactive users! I’m surprised this made it in, TBH.

Chimed Palden

StimulusReflex Patterns: Ready to Level Up Your StimulusReflex Game? — Julian teaches a course on StimulusReflex and has extracted a few patterns from said course for your real-time pleasure.

Julian Rubisch

Jobs

Backend Engineer - Talent Platform (Ruby on Rails, React) — Ship features that will be used by hundreds of thousands of talents and help us build THE career advisor for talent in Europe.
HeyJobs GmbH

Back-End Engineer — TED stages conferences and produces video media that it brings to millions of people worldwide. You’ll be responsible for the backend systems that power our user-facing experiences and our lasting archive of ideas.
TED Conferences

Find Ruby Jobs with Hired — Take 5 minutes to build your free profile & start getting interviews for your next job. Companies on Hired are actively hiring right now.
Hired

🛠 Code and Tools

jsonb_accessor: Typed jsonb Backed Fields to Your ActiveRecord Models — This gem goes beyond mere accessors and includes scopes, a better single-table inheritance, and more.

Tandem

MiniSql: A Minimal, Safe SQL Executor for Postgres — Basically makes things nicer if you’re using pg. I need to remember to use this as I’m a sucker for getting tangled up in pgs API.

Discourse

Application Dependencies Outdated? We Can Help

Hint sponsor

daemons 1.4: A Way to Daemonize Existing Ruby Code — A daemon being a background process. I remember using this library mannnny years ago so it’s nice to see an update.

Thomas Uehlinger

xsv: Fast, Lightweight XLSX (Excel) Parser for Ruby — Got spreadsheets? Want a quick, minimalist way to parse them?

Martijn Storck

Pygments.rb: A Ruby Wrapper for the Pygments Syntax HighlighterPygments is perhaps the gold standard of syntax highlighters but it’s written in Python. This library makes it easier to call out to it. Rouge is a good pure Ruby alternative, however.

Nyman, Gupta and Radchenko

Scientist 1.6: A Ruby Library for Carefully Refactoring Critical Paths — Scientist allows you to experiment with refactorings alongside the old code and publish the results. 1.6 dropped in March but we missed it till now.

GitHub

Licensed 3.0: Cache and Verify the Licenses of Dependencies — Currently being used at GitHub itself.

GitHub

Hurl.it: An Online Tool for Making Custom HTTP Requests (is Back) — The history is arguably more interesting the tool, given it was first created in 2009 by Chris Wanstrath (co-founder of GitHub) and Leah Culver for a Rails hackathon.

Hurl