#​653 — May 11, 2023

Read on the Web

Together with  Memetria

From the editor:

This is a re-send of yesterday's issue of Ruby Weekly. 'Google Safe Browsing' flagged RubyGems․org as a malware site in error and, because we linked to it, they decided our email was a problem too.

Many thanks to everyone who sent us notifications about yesterday's issue being tagged as malware or being sent to spam, but everything seems to be okay now. Maciej Mensfeld tweeted about the problem initially and it was resolved several hours ago. This issue also broke the entire use of RubyGems for numerous users using DNS systems protected by Google Safe Browsing, so we hope to feature some sort of post-mortem in the next issue.

If you received and enjoyed yesterday's issue, you can delete this one and enjoy the rest of your day. If you did not get yesterday's issue due to the above problem, here you are:

Ruby Weekly

A Few Words on the State of Ruby Type Annotations — If you spend much time on dev-oriented social media, static typing seems to be having quite the renaissance. Ruby, though, has remained fully dynamic, with the compromise being the addition of RBS, a way to describe type signatures for Ruby code, plus third party tools like Sorbet. Victor lays out the entire state of type annotations in Ruby and wants us to consider if there’s a sensible way forward.

Victor Shepelev 🇺🇦

🫣 DHH has been thinking about static typing too: he's definitely not a fan.

Shopify Layoffs Affect Ruby Teams and More — It’s sad when any layoffs occur and particularly so with Shopify having a strong reputation in the Ruby world through being a large Ruby shop, hiring many Ruby contributors, and funding programs like Ruby Shield. Ruby and Rails infrastructure (#) and YJIT teams have all been affected.


Memetria: Secure, Scalable, Full-Featured Redis 7 Hosting — The latest Redis features, instrumented and scaled with the tools teams need as they grow.

Memetria sponsor

▶  Exit(ing) Through the YJIT — Somehow this talk escaped my attention till now, but if you want to really understand the work going on with YJIT, one particular recent enhancement to its development, and how the Rust rewrite is going, this is for you. At just 29-minutes, the value per minute is high.

Eileen M Uchitelle


📕 Tutorials, Articles, and Videos

Solving a Critical Bug in the Default Rails Caching Library — A look at a flaw involving Dalli and memcached that results in incorrect HTML being returned from a cache. (If you’re not using Dalli and memcached, this wouldn’t have affected you.)

Andrew Jones

Let's Make a Blog with Bridgetown — Jekyll is probably the best known Ruby static site generator but Bridgetown is the best, claims Seb Wilgosz. See the basics either in an 8-minute screencast or the accompanying article.

Hanami Mastery

Five Easily Missed Performance Fixes for Rails Apps — A look at a few configuration and infrastructure-related tweaks that can have big performance impacts.

Paweł Urbanek

Free eBook: Advanced Database Programming with Rails and Postgres — Learn about subqueries, materialized views, and custom data types in Postgres & Rails and follow along with our examples.

pganalyze sponsor

Organize Business Logic in Your Rails App — A high level breeze through a few different approaches to structure.

Julian Rubisch

Should I Use Action Filters? — Mateusz makes the argument for restricting your use of filters and being more explicit about what your methods need.

Mateusz Woźniczka

Four Essential Tools to Level Up Your Rails Security
Ernesto Tagwerker (FastRuby)

Deploying a Jekyll-Powered Blog to AWS Amplify
Gowsik Vivekanandan

Revisiting Ruby's throw and catch
Akshay Khot

🛠 Code & Tools

Safely: Rescue and Report Exceptions in Non-Critical Code — The idea here is that while you may want to know about failures and exceptions, they don’t necessarily need to result in bailing out entirely.

Andrew Kane

Litestack 0.20: Embedded Services for Ruby Webapps — An interesting project that tries to provide an extended but contained environment for Ruby webapps with an SQLite backed database, job processing system, cache, and even pub/sub mechanism. v0.20 adds LiteCable, an SQLite driver for ActionCable opening up even more real-time opportunities.

Mohammad A. Ali

Fixed Price Monthly Code Maintenance for Rails Apps — No time to do those small but critical updates? CodeCare will take care of necessary tweaks, bug fixes, upgrades and ongoing improvements for your app.

reinteractive Pty Ltd sponsor

IoMonitor 1.0: A Way to Detect Potential Memory Bloat — Push this into your Rails app and get more insight into when a lot of I/O (through either Active Record or Net::HTTP for now) is resulting in relatively little output.

Dmitry Tsepelev

An AI-Powered Assistant Right in Your Rails Console — Would you appreciate an AI powered assistant helping you out right inside rails console? You need an OpenAI API key, but this does the rest.

Igor Kasyanchuk

Sending Tweets from Ruby using Twitter v2 OAuth2 — I’m very behind the times with Twitter’s API drama, but Jason sent this in and promised it would be useful to someone.

Jason Kotchoff


Find Ruby Jobs with Hired — Hired makes job hunting easy-instead of chasing recruiters, companies approach you with salary details up front. Create a free profile now.

Senior Backend Engineer (Remote - EMEA) — Booqable prides itself on being a global company with team members working together from across the world. We are remote-first, so you can join us from wherever you are.