#456 — June 27, 2019

Read on the Web

Ruby Weekly

Sorbet – A Fast, Powerful Type Checker for Ruby – is Now Open Source — Stripe have been working on a type-checker for Ruby for quite some time now and it’s now publicly available and open source after undergoing rigorous testing at 30 companies. (Psst.. if you write up any good Sorbet related blog posts, let us know, we want to link to them!)


A Look at Instance Variable Performance — You know when tenderlove starts a post with “Let’s start today’s post with a weird Ruby benchmark..” you’re in for a fun read and will learn how the order in which you define instance variables can affect performance (under somewhat contrived circumstances).

Aaron Patterson

An In-Depth Look at Ruby's Exception System — Ruby's exception system is more powerful than many people realize. This book shows you how to get the most from it.

Honeybadger sponsor

Puma 4 Released: New I/O 4 Your HTTP Server — Puma, a popular Ruby/Rack web server, works using a ‘reactor’ and the new version 4 soups it up on Unix (sorry Windows) by using nio4r to significantly increase performance and concurrency.

Richard Schneeman

Impersonator: Ruby Library to Record and Replay Object Interactions — The best way to describe what impersonator does is in the README: “Familiar with VCR? Impersonator is like VCR but for Ruby objects instead of HTTP requests.”

Jorge Manrubia

Why is Ruby Slower on Mac? An Early Investigation — You might recall we recently linked to some benchmarks where Discourse’s Sam Saffron found that Ruby runs a lot slower on macOS. But why? Turns out trying to answer that is rather difficult.

Noah Gibbs

💻 Jobs

Senior Full Stack Ruby on Rails Engineer (Remote) — Currently on Rails 5.2. Other technologies include Angular, PostgreSQL, & Redis. Perks include strong remote work culture, competitive pay, company equity, & full benefits.


Senior Software Engineer - Knotel (San Francisco / Remote) — Want to be part of a small team focused on building sustainable applications?

Knotel / 42Floors

Find a Ruby Job on Vettery — Vettery specializes in tech roles and is completely free for job seekers.


🎧 Podcasts of the Week

There have been a few interesting Ruby related podcast episodes this week that are worth checking out if you have time:

▶  Discussing ActionView::Component with Joel Hawksley — Do you like your technical introductions in podcast form? Enjoy 30 minutes with the lead developer who’s bringing view components to Rails.

Ruby on Rails Podcast

▶  Chatting with Rails Core Team Member Eileen M. Uchitelle — Eileen covers how GitHub maintained a custom fork of Rails for years and how they moved off of it, as well as some of what’s coming up in Rails 6.

The Bike Shed

▶  Discussing the Life and Death of a Rails App with Olivier Lacan — Olivier Lacan talks about his experience in working on (and then sunsetting) CodeSchool’s apps before they were acquired by Pluralsight.

Ruby Rogues

📘 Articles & Tutorials

On Ruby and Type Checkers — Going along with the Sorbet news, here is one Rubyist’s thoughtful opinion on the subject.

Jorge Manrubia

Quick Tip: How to Relax Your Ruby Version Specification in Your Gemfile — A very simple tip but if you don’t know about ~>, you should.

Avdi Grimm

Rails 6 Adds Array#extract!extract! removes and returns elements for which the given block returns true (versus reject! which returns the array).

Amit Choudhary

How CircleCI's Distributed Team Communicates So No Context is Left Behind — Our distributed team of 10 asked: if we had a choice, would we choose to be a remote team across distant time zones, or would we rather be closer together?

CircleCI sponsor

How to Use Ruby's begin and rescue Keywords (with Examples)

Jesus Castello

A Step by Step Way to Backup a Heroku PostgreSQL Database to an AWS S3 Bucket — I don’t know about you, but I’m still a heavy Heroku user for deploying my Ruby webapps.

Paweł Urbanek

Testing ActionText Without JavaScript — The example here is very simple, but may fit your use case.

Toby Osbourn

'I'm Worried About Ruby's Future' — I am not sure how widespread this sentiment is, but the reasons cited here are valid, for sure.

Paweł Świątkowski

🔧 Code & Tools

sorbet-rails: Make the Sorbet Typechecker Work with Rails — If you haven’t seen the Sorbet feature at the very top of this issue, do that first. Then, if you’re using Rails and want to use Sorbet with it too, install this to make things easier.

Chan Zuckerberg Initiative

Learn RubyMine's Features with the IDE Features Trainer Plugin

JetBrains sponsor

AuthTrail: Track Devise Login Activity — v0.2.0 has just come out.

Andrew Kane

Square Unveils Its New Ruby SDK — Want to integrate Square payments into your app? square.rb is in beta for now.

Shannon Skipper (Square)

RuboCop Rails: A RuboCop Extension Focused on Enforcing Rails Best Practices and Coding Conventions

RuboCop Headquarters

AnnotateModels: Annotate Your Rails Classes with Schema and Routes Info — Having schema info at the top of your model files could be handy for quicker referencing while developing.

Cuong Tran