#​581 — December 2, 2021

Read on the Web

😶 It's a verrrrry quiet week in the Ruby world, so this issue is mostly about the code and tools section. Instead, I am going to gently encourage you all to give Advent of Code a try..? 😆
Peter Cooper, your editor

Ruby Weekly

The Advent of Code 2021: 25 Days of Code Challenges — If you have a little time each day to do some programming puzzles, the Advent of Code is always fantastic and now in its seventh year. There’s a sub-Reddit where people share and discuss their solutions and I’ve picked up a fair few Ruby tricks from looking at other people’s approaches. Day one should take up less than 10 minutes of your time if you just want to get a feel for it.

The Advent of Code

The CableReady Language Implementation ProjectCableReady is a Ruby project for creating real-time Web experiences over ActionCable and commonly used with StimulusReflex. The project now aims to become a universal cross-language standard for controlling browsers from back-end servers with Python, Go, C# and other languages getting first class support in early 2022.. but they need your help.


Building a Reliable Webhook Delivery System Sucks — Skip the grunt work and let Hook Relay manage all your webhooks for you. Inbound and Outbound? ✅ Automated retries plus delivery history for your users? ✅ Visualize Stripe-quality webhooks for your app, now click here to make it a reality in minutes.

Hook Relay sponsor


  • 👾 In the past year we've mentioned Ruby platformer Super Bombinhas a few times, but now its creator has managed to get it on Steam as a commercial game. What an achievement, both for Victor and a Ruby game.

  • RubyMine 2021.3, the latest version of a popular commercial Ruby IDE, has been released.

🙈  DHH: 'Programmers Should Stop Celebrating Incompetence'? — As a response to the “even experienced devs don’t know what they are doing” trope, DHH encourages us to push for competence while accepting our boundaries. Given DHH’s usual blunt manner, this piece was unsurprisingly controversial on Twitter with some pointing out DHH himself once identified with ‘looking up code on the internet all the time’ 😆 Whatever you think, he knows how to get people talking..!

David Heinemeier Hansson

❓ It's wise to note here that inclusion in Ruby Weekly is not always endorsement. We link to controversial things from time to time if they are being discussed in the community. That is our job and we are equally happy to link to rebuttals!

JRuby Released — A small release of an older Ruby 2.5-compatible JRuby version to address a vulnerability around Date and DateTime parsing methods that use regexes. All JRuby 9.2 users are encouraged to upgrade.

JRuby Core Team


Software Engineer at Carbon Five (LA / SF / NYC / CHA) — Hiring full-stack developers at all levels to join our team of creative consultants. New tech, great clients, growth opps & more.
Carbon Five

Ruby on Rails Engineer at Apple (Vancouver, Canada) — The Apple Media Products Engineering team is looking for a proven software engineer to build and enhance algorithmic quality evaluation tools.

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

Throw, Catch, Raise, Rescue – I’m So Confused — Prolific Rubyist Avdi clears up the distinction between throw and catch, and raise and rescue.

Avdi Grimm

An Introduction to Rails Event Store — We’ve linked to articles in the past about RES (from the folks at Arkency) but this article lays out the ecosystem and some nice use cases.

Jan Dudulski (Monterail)

Remote Development with RubyMine 2021.3 — New functionality for writing, running, debugging, and deploying remote projects as if they were on your local machine.

JetBrains sponsor

Find Your Language’s Primitives — The author of Ruby Under a Microscope puts arrays on a slide in Ruby, Crystal, and assembly to try and understand primitives in each language.

Pat Shaughnessy

GDPR Compliance and Modelling Account Deletion — If your service has users in the EU, you may be bound to follow European privacy rules which can involve users having a ‘right to erasure’. This post covers the issue briefly and looks at how to model the process in a table.

Eric Favre

▶  Fix Slow Page Loads in a Rails App by Identifying N+1 Queries
Unnikrishnan KP

🛠 Code & Tools

RSyntaxTree: A Linguistic Syntax Tree Generator — You know how you can turn source code into a syntax tree? So it goes with natural languages too.

Yoichiro Hasebe

auto_html: Filters That Transform Plain Text Into HTML Code — For situations where even Markdown might be overkill (although it is an option..)

Dejan Simić

LambdaKiq: Use Amazon SQS and AWS Lambda with ActiveJob — This is aimed at Rails users running on AWS Lambda who want Sidekiq-like functionality but running on AWS services.

Custom Ink

Alba 1.5: The 'Fastest JSON Serializer' — Supports JRuby and TruffleRuby in addition to regular Ruby. This week’s release lets you apply a ‘layout’ to serialized JSON for use in broader contexts.

Okura Masafumi

Full-Featured API That Lets You Build Beautiful Video for Your Ruby App

Mux sponsor

Dalli: High Performance memcached Client — I’ve not thought about memcached much since jumping on the Redis train but it’s still in heavy use out there.

Peter Goldstein

Rails Mini Profiler 0.7.0: Performance Profiling for Rails Made Simple — Rails Mini Profiler provides detailed information about your requests to help you figure out why certain requests perform poorly. v0.7.0 adds trace filtering.

Hans-Jörg Schnedlitz

Forme 2.0: HTML Form Generation Library — A structured way to create HTML forms with no external dependencies and a simple API.

Jeremy Evans

RouteTranslator 12.0: Translate Your Rails App Routes to Various Languages — Manage the translations of your app routes with a simple dictionary format. Now Rails 5.2 and Rails 6.x only.

Enric Lluelles

ASMREPL: A REPL for x86 Assembly Language from Tenderlove — We featured this last week but it’s been doing the rounds on social this week and there’s a new version out already.

Aaron Patterson

Countries 4.1: Useful Info about Countries Packaged into a Gem — Need country info in an easily used form from Ruby? This gem contains info for each country covering standards ISO3166-1 (countries), ISO3166-2 (states/subdivisions), ISO4217 (currency) and E.164 (phone numbers).


espeak-ruby: Wrapper Library to Generate Text-to-Speech from Ruby — Uses espeak and lame under the hood.

Dejan Simić