#502 — May 21, 2020

Read on the Web

💡 A very meaty Code & Tools section this week so don't forget to head down there if you're skimming through :-)

Ruby Weekly

How to Fix Slow Code in Ruby — How do you find slow code? Profile. How do you measure performance fixes? Benchmark. Here’s how Shopify, one of the biggest Ruby shops in the land, goes about the process.

Jay Lim and Gannon McGibbon (Shopify Engineering)

TruffleRuby 20.1.0 Released — Built on GraalVM, TruffleRuby is an up and coming high performance Ruby implementation that now passes all the RubyGems tests, is in production use at Shopify, and is now available in nightly builds. If there’s a time to give TruffleRuby a tentative go, it’s now (the README tells you how).

Oracle

Troubleshoot Ruby App Issues with End-To-End Distributed Tracing — Debug and optimize your code by tracing requests across web servers, databases, and services in your environment. Visualize Ruby application performance today with a free Datadog APM trial.

Datadog sponsor

Ruby Gaining a Lighter-Weight Scheduler for Improved Concurrency? — OK, it’s “accepted for experimentation” for now, but this is an interesting development around improving the concurrency of blocking operations (particularly for the library creators who are most likely to lean on this). The actual merge is here.

ruby-lang.org

Game of Life in One Ruby Statement.. Inspired by APL — APL is an old (but surprisingly powerful) programming language that likes multidimensional arrays, weird symbols, and concise code. Here’s what bringing some of those concepts to Ruby looks like.

Victor Shepelev

Why Fullstaq Ruby? — The creator of Fullstaq Ruby (also one of the geniuses behind Passenger) talks about the direction of this server-optimized version of Ruby. It’s all good stuff.

Hongli Lai

💻 Jobs

Find a Job Through Vettery — Vettery specializes in tech roles and is completely free for job seekers. Create a profile to get started.

Vettery

Ruby on Rails Developer (Remote) — Work with modern languages and frameworks alongside some of the best developers in the world.

FullStack Labs

ℹ️ Interested in running a job listing in Ruby Weekly? There's more info here.

📘 Articles & Tutorials

How to Migrate From Capybara Webkit to Webdrivers — This is all about modernization and moving existing integration tests to a better option, namely Webdrivers and a headless browser.

Ariel Juodziukynas

Assignments in Conditional Expressions — A Pythonista looks at assignments in conditionals and teaches us something interesting from the Ruby Style Guide.

Julien Chien

Binpacking SQS Batches — AWS’s queueing service (SQS) charges per request, not per message, so packing multiple messages into a request can be quite a win but there are some limitations and this is a neat exploration of working with them.

Wander Hillen

How We Helped Our Customers Get a 3x Performance Boost on Their Postgres DB

pganalyze sponsor

The Rocky Road to Implementing Link Prefetching in Rails — Link prefetching can make a site feel much faster, but implementing it in Rails involves getting around Turbolinks and a bit of code forensics.

Nicholas Goutay

A Chat with Brittany Martin — In case you missed it in last week’s issue, here’s our chat with Brittany Martin, host of the Ruby on Rails 5by5 Podcast.

Glenn Goodrich

🛠 Code and Tools

Sail 3.5: An Admin Panel for Managing Config Settings on a Live Rails App — Let’s say you have feature flags or other things to turn on/off, repeat, tweak parameters, etc. This gives you an interface to do that.

Vinicius Stock

Rails 5.2.4.3 and 6.0.3.1 Released — These are security fix releases.

Official Rails Blog

FCM 1.0: Ruby Bindings to Firebase Cloud Messaging — You’d use this if you want a Ruby-powered backend to send notifications to Android and iOS devices using Firebase Cloud Messaging.

DecisionLabs

Why Do Developers Choose Raygun Over New Relic? — Using Raygun’s detailed metrics and intuitive UI, discover and diagnose performance bottlenecks faster for a fraction of the cost.

Raygun sponsor

Foot Traffic: A DSL for Chrome Scripting Based on Ferrum — No Selenium required – hurrah! Worth a look if you want to control a fleet of Chrome windows or tabs to simulate real user interactions, say.

Le Wagon

Prophet.rb: Time Series Forecasting for Ruby — A Ruby port of Facebook's Python-based Prophet library.

Andrew Kane

AvroTurf 1.0: Improved Avro Serialization for RubyApache Avro is a JSON-based data serialization framework primarily used in Hadoop.

Daniel Schierbeck

Committee: Rack Middleware to Build Services with JSON Schema — For when you want to build services based upon JSON Schema, OpenAPI 2, or OpenAPI 3.

interagent

RBS: A Language for Ruby Type Signatures — Work continues on bringing typing to Ruby 3, including adding signatures to the stdlib.

The Ruby Core Team

awspec: RSpec Tests for Your AWS Resources

Ken’ichiro Oyama

BulkInsert 1.8.0: Efficient Bulk Inserts for Active Record

Jamis Buck and Mauro Berlanda