#476 — November 14, 2019

Read on the Web

Ruby Weekly

Ruby's Roots and Matz's Leadership — Noah summarizes a recent talk Ruby’s creator, Matz, gave about the history of Ruby, where he got various language feature ideas from, and what he thinks Ruby’s greatest invention was (psst.. blocks!)

Noah Gibbs

The Delegation Challenge of Ruby 2.7 — This is a somewhat odd situation where a change to arguments changes delegation so things are handled differently in Ruby 2.6, 2.7, and 3.0. It’s a tough nut to crack and a great example of language design related edge cases.

Benoit Daloze

Happy Rails Deployments — Cloud 66 for Rails is like your in-house DevOps team. It deploys Rails apps 2 million times a day for thousands of developers around the world and gets better every time. Use RubyWeekly code to get $50 free credits.

Cloud 66 sponsor

▶  Discussing Testing at Scale at Stripe — Nelson Elhage spent 7 years at Stripe spearheading developer productivity initiatives. In this 48 minute interview, he shares what he learnt and digs into why Stripe created the Sorbet Ruby type checker.

The Accidental Engineer Podcast podcast

Tomo: A Friendly CLI for Deploying Rails Apps — There’s a short tutorial for deploying Rails, and the documentation is thorough. Tomo is opinionated but extensible with a simple (not Rake dependent) plugin system.

Matt Brictson

💻 Jobs

Agave.com is hiring a CTO (Remote or SF Bay Area) — Help us build the modern hiring platform. World-class technical team with a top 250 Rails contributor. Competitive compensation.


What Will 🌆 City Life 🌆 Be Like in 2030? Want to Have a Say? — Join the coliving revolution in Paris as our tech lead - code, mentor a growing team, and change people's lives for the better.


Find a Job Through Vettery — Make a profile, name your salary, and connect with hiring managers from top employers. Vettery is completely free for job seekers.


📘 Articles & Tutorials

Solving Puzzles with the 'Ambiguous' Operatoramb is an ‘operator’ that “given a set of constraints and options to choose from, amb returns options satisfied by those constraints.” Some cute examples here.

Nikita Misharin

▶  How to Test Active Job Background Jobs — Active Job provides helper methods to make testing easy.

Go Rails

Handling Attachments in Action Text in Rails 6 — The second part of a two-part series on Action Text. This part focuses on blocking files by type, how files are rendered, and previewing PDFs.

Saeloun Blog

Build Video for Your Ruby App in Just Two API Calls — Easily build beautiful video experiences into your Ruby app. Create a free Mux account. No credit card required.

Mux sponsor

Go Celebrity Spotting with Twilio, WhatsApp, AWS Rekognition and Ruby — Let’s play ‘tie together as many services as possible’ :-) ..by building an app that lets you send an image to WhatsApp, analyze the image with AWS Rekognition and respond to say whether there are any celebrities in the picture.

Phil Nash (Twilio)

Is It Time to Replace Rake? — You can guess where the author stands, but it’s not quite as simple as that. Maybe we replace part of what Rake does, returning Rake to its initial objective.

Daniel Azuma

How to Write An Intercom Messenger App with RailsIntercom is a business/customer-service focused messaging system – naturally, it has an API you can use.

Kirill Shirinkin

Feedback About Writing A Technical (Ruby) Book — One author’s experience writing an “open source” book. The book in question is APIs on Rails, but this is more about lessons learned than APIs.

Alexandre Rousseau

Downloading Large Heroku Postgres Backups

Justin Searls

🛠 Code and Tools

Strings::Case: Convert Strings Between Different Cases — For when you want a little more than upcase, downcase and capitalize. This library supports camel case, const case, Pascale case, snake case, and more.

Piotr Murach

Reek: A High Level 'Code Smell' Detector for Ruby Code — It’ll detect things like vague variable names, unused parameters, overuse of constants and methods, and cohesion problems.

Timo Rößner

Invisible Captcha: Unobtrusive Spam Protection for Rails Forms — Your mileage may vary as ‘honeypot’ approaches can work well at first but are easily overcome by a determined abuser. It’s not a bad idea, though.

Marc Anguera Insa

Automate and Standardize Code Reviews for Ruby and 27 Other Languages

Codacy sponsor

Clearance 2.0: Email and Password-Based Rails Authentication

thoughtbot, inc.

activestorage-resumable: Resumable Support for ActiveStorage — Currently only supports Google Cloud Platform, but every great journey starts with a single step, etc.


Chartkick: Beautiful JavaScript Charts in One Line of Ruby — See some examples, along with code, here. Works fine with Rails 6 and Webpacker, etc.

Andrew Kane