#​579 — November 18, 2021

Read on the Web

Ruby Weekly

Where is Ruby Headed As of 2021? — A look at where Ruby is going based on the talks at RubyConf 2021 where the dominating topics were static typing, performance, and concurrency, followed by what this future could mean for Ruby. Some of the points remind me of a piece I read earlier this week called ‘Selecting a programming language can be a form of premature optimization’ which was about Python but covers the idea of sticking to a single, familiar language (like Ruby, in our case) until you really need to switch.

Big Nerd Ranch

▶  How to Make a Gem of a Gem — From RubyConf 2021, a co-founder of Test Double and author of 39 gems (and counting) goes through the steps to create a gem (in just eight minutes) as well as the lessons he’s picked up over the years to make it good (the rest of the talk ;-)).

Justin Searls

Free eBook: Effective Indexing in Postgres — Learn how to create the best Postgres index for your queries. We provide a deep dive into index types, operators, data types and more. Creating the right indexes can often improve your query performance by 10x or even 100x.

pganalyze sponsor

Live Ruby Type Checking with TypeProf-IDE — An introduction to a VS Code extension providing real-time type analysis and feedback of Ruby 3.1 code, and how it can help you write more robust code in the long run.

Josh Justice (Big Nerd Ranch)

The Future of Ruby and Its AST Tooling — In a more technical vein of the feature item (top of issue), this is an exploration of a potential future for Ruby around how tooling around the manipulation of code (and ASTs) can become more useful, more precise, and open up more potential for things like transpiling, codemods and macros.

Brandon Weaver

Real-World Concurrency with Ruby and Polyphony: A Telnet Chat App — Polyphony has a concurrency model that is semantic and adds simple communication between fibers so your asynchronous apps look just like regular Ruby.

Sharon Rosner


Software Engineer, Ruby/Rails | Remote within MT (-3/+3 hours) | Full-Time — Build innovative telehealth and workflow tools for over 1.8 million clinicians (including 80% of all U.S. physicians).

Rails Engineering Manager @ Nebulab (Remote) — Join our distributed team and build high-volume eCommerce applications in a workplace made by developers for developers.

Find Ruby Jobs Through Hired — Create a profile on Hired to connect with hiring managers at growing startups and Fortune 500 companies. It's free for job-seekers.

📕 Articles & Tutorials

Keeping Time with TimescaleDB: Understanding and Integrating Time-Series Data from Rails — A nice tutorial that sets up TimescaleDB (a Postgres extension that improves its time-series support – we cover it frequently in Postgres Weekly) alongside a Rails 7 app and shows you how to track a couple of different metrics.

Misha Merkushin and Travis Turner

Meet Fiber, Thread's Cooperative Cousin — Fibers, a lightweight concurrency primitive, were introduced way back in Ruby 1.9 but aren’t particularly heavily used in code I see in the wild.

Thom Carter

The Ruby Compiler Survey — The creator of TruffleRuby is cataloging many of the compilers (like TruffleRuby) to preserve their designs and output, but not to benchmark or compare performance. The writeup on Rubinius is particularly technical and interesting.

Chris Seaton

Complete Peace of Mind Rails Hosting — If you need hands-off, rock solid hosting for your Rails app, OpsCare is for you. We keep your app running, 24 hours a day, 7 days a week with a worldwide team.

OpsCare by reinteractive sponsor

Practical Garbage Collection Tuning in Ruby — This is principally about how the GC’s configuration settings can be tweaked and what they’re for. Given the ‘interesting’ opening to this piece, we should link to Nate Berkopec’s Understanding Ruby GC Through GC.stat too.


Compiling Ruby to Native Code with Sorbet and LLVM — A slide deck from RubyConf 2021 shows how Stripe experiments with compiled Ruby on some of their servers to improve performance.

Stripe slidedeck

What Should I NOT Write Tests For?
Jason Swett

Setter Method Return Values in Ruby
Kevin Murphy

🛠 Code & Tools

PDF::Reader: A Spec Compliant PDF Document Parser — If you want to read PDFs from Ruby, this library aims to give you access to what you need, although you might need to take care given how flexible the format is.

James Healy

Pipeable Ruby (pru): Simpler Ruby One-Liners from the Shell — The aim here is to put grep, sed, and awk out of business, if you’re a Rubyist! If you’ve enjoyed Jemma’s recent tips on Ruby one-liners and command line flags, this essentially makes the syntax even simpler.

Michael Grosser

Put the “Flow” in Your Workflows with Shortcut

Shortcut (formerly Clubhouse.io) sponsor

Teams Connector: Publish Cards to Microsoft Teams Channels — We’re not Teams users ourselves but know it has become particularly popular during the past couple of years so this may be useful if you’re a user.


Avo: An Admin Panel/Dashboard System for Rails Apps — Powered by Hotwire. It’s commercial but the source available version can be used for noncommercial purposes for free.


Rails Multisite 4.0: Multi Tenancy for Rails Apps — Want each (customer/user) hostname used with an app to have its own database?

Sam Saffron