#522 — October 8, 2020

Read on the Web

👍 Thanks for all of the feedback you gave last week – we're listening to it all. An occasional complaint was that we don't have enough pure Ruby (read: not Rails) stuff and as a Sinatra fan(!) I'm sensitive to this too. This issue is Rails heavy too, but I'm going to look at redressing this balance ASAP and encourage you to send in as much non-Rails Ruby stuff as you can! 😉
–––
Peter Cooper, your humble editor

Ruby Weekly

How's the Performance of Ruby 3.0.0-Preview1? — When compared to 2.7? It’s not a dramatic difference, but try to focus on the 70%+ speed up between 2.1 and today, right? 😄

Noah Gibbs

Ruby 2.7.2 Released — The latest release of the current version of Ruby is here and, ooh.. “This release contains intentional incompatibility.” But if you hate 2.7’s many deprecation warnings, you’ll be happy as they’ve been turned off by default. You can get them back with the -w or -W:deprecated options.

nagachika

Rails Configuration in Kubernetes — Rails configuration usually lives in YAML files, while in Kubernetes configuration settings are split one per file (using ConfigMaps or Secrets). We wanted to load configuration settings from a single YAML file or multiple individual files seamlessly.

Cloud 66 sponsor

Kuby: A Tool to Deploy Rails Apps the Easy Way — We’ve seen a lot of deployment approaches for Ruby and Rails apps over the years (from old school mod_ruby and FastCGI to Capistrano and PaaS platforms) and.. here’s another built around Docker and Kubernetes and compatible with the main cloud providers.

Cameron Dutro

Rails 6 and Stimulus.js: A Quick Launch — If you’ve yet to jump on the Stimulus.js (the decorate your HTML with JS functionality framework from Basecamp) train, this is a reasonable entry point.

Paweł Dąbrowski

⚡️ Quick bytes:

  • TypeProf is an experimental type-level Ruby interpreter/type analysis tool.
  • JRuby's Charles Nutter notes that all of the built-in gems in Ruby 2.6 are now properly released on rubygems.org, so JRuby 9.3 (due soon) will sourcing them from there.
  • The second release candidate of RubyGems 3.2 is out if you want to get ahead of what's new in the next version.
  • Rails 6.0.3.4, a minor security release ("possible XSS attack vector in Actionable Exceptions"), is out.

💻 Jobs

Senior Backend Engineer — With hundreds of millions of users, we face the challenge of building a top-class backend infrastructure and apps every day.

Runtastic

Senior Software Engineer at DaisyBill (NYC) — Don’t like view helpers or microservices? Join our profitable, growing company, building a complex product to solve work comp problems.

DaisyBill

Find Your Next Job Through Vettery — Create a profile on Vettery to connect with hiring managers at startups and Fortune 500 companies. It's free for job-seekers.

Vettery

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

📘 Articles & Tutorials

Getting Started with Tailwind CSS on Rails 6 — The Tailwind CSS framework has swept the front-end world by storm recently, even winning over the cynics, so you might want to give it a go with your Rails app if your existing styling approach has gotten a bit messy.

Axel Kee

PostGIS vs. Geocoder in Rails — Leigh runs through a few spatial queries using both options when possible. If you’re looking to geocode coordinates, this can help you locate an answer.

Leigh Halliday

Recurring Subscriptions in One Day with Rails and Stripe — An example of adding recurring Stripe subscriptions into a Rails-powered app.

Ryan Boland

Why You Might Migrate from Heroku Postgres to AWS RDS — If you’re using Heroku, their Postgres offering is pretty fantastic, but here are some arguments for not using it which, if you’re in Europe or worried about GDPR, may even have regulatory consequences.

Paweł Urbanek

Speeding up Rails with Memoization — Memoization speeds up your app by running less code. Learn how and when to use it, while also avoiding common pitfalls.

Honeybadger sponsor

How to Fix Postgres Performance Issues with PG Extras — An introduction to a tool you can use to spot Postgres related issues in Node, Elixir and Ruby contexts. node-postgres-extras is the repo you want.

Paweł Urbanek

Multitenancy with Postgres Schemas: Key Concepts Explained — If you have an interest in this topic, their What Surprised Us with Postgres-Schema Multitenancy article may also be of use.

Tomasz Wróbel

▶  Kuby and Rails Deployments with Cameron Dutro — Do we need a Active Deployment like we have Active Record and Active Storage? Cameron says yes and offers up Kuby, a convention-over-configuration deployment system for Rails apps (featured above).

The Ruby on Rails Podcast podcast

🛠 Code and Tools

Super Bombinhas: A Ruby-Powered Platform Game — We featured this six months ago but it has come a long way since then. It’s surprisingly slick and if you’re intrigued at making games (or maybe even just standalone graphical apps) in Ruby, the codebase is well worth scouring (as is the MiniGL library its creator has made).

Victor David Santos

i18n-coverage: See Coverage of I18n Keys Used During a Test Suite — Takes a SimpleCov-like approach to i18n config, using an app’s test suite to dynamically check that each key is truly in use, across all locales.

Hiptest

Find Bottlenecks in Your Rails Application With RoRvsWild 🔍

RORVSWILD sponsor

FasterS3Url: Optimized Generation of Public and Presigned AWS S3 GET URLs — The official Ruby AWS SDK is apparently slow at generating URLs to S3 objects (particularly pre-signed URLs) so.. this library was produced. Interestingly it has no dependencies (not even the AWS SDK).

Jonathan Rochkind

Shrine 3.3: A File Attachment Toolkit for Ruby Applications — Integrates with several ORMs, can do image processing (for thumbnails, say), resumable uploads, and can work with both Rails and standard Rack apps. v3.3.0 just came out.

Shrine

non_empty_array: An Ordered List Guaranteed to Have At Least One Element — No more if array.empty? checks required.

Robb Shecter

Rubyzip: A Library for Working with .zip Files — Create zip archives, open them up, add password protection..

The Rubyzip Team