#483 — January 9, 2020

Read on the Web

Ruby Weekly

Ruby 2.7 Commentary from Two Ruby Core Team Members — Koichi Sasada (ko1) and Yusuke Endoh (mame) are employed full time by Cookpad Inc. to work on CRuby/MRI and a post they did in Japanese about all the new goodies in Ruby 2.7 has now been translated to English. There is a lot to enjoy here.. prepare a few cups of coffee.

ko1 and mame

The Ruby Reference (Now Updated for Ruby 2.7) — An attempt to bring together and extend core Ruby documentation for Ruby 2.7 in one place. This is a pretty neat resource to have to hand.


🤔 How Well Do You REALLY Know Ruby's Exception System? — Download your free copy of Starr Horne’s thirty-nine-page ebook and quickly level-up to Exception Master. 😎

Honeybadger sponsor

Ruby 2.7.0's Rails Ruby Bench Speed Unchanged from 2.6 — If you were hoping for huge performance gains for your Rails apps in 2.7 vs 2.6, “the 2.7.0 series is remarkable in how little the speed has changed.” I’ve seen improvements on purely Ruby benchmarks, though. But on the plus side, we can say we’re faster than Python 3! :-)

Noah Gibbs

Ruby 2.7 Reverts The Deprecation of The 'Flip-Flop' Operator — Ruby’s flip-flop operator isn’t seen in much production code (with good reason!) and you might not have even heard of it before.. but it’s now staying as a permanent Ruby feature.

Prajakta Tambe

The Top Ruby Links of 2019 — In case you missed our special end-of-the-year reflection issue in December, we’ve also put together an article linking to the top ten most clicked items in Ruby Weekly last year :-)

Chris Brandrick

💻 Jobs

Software Engineer, Full-Stack (Ruby/Rails/JS) — Health Tech, join our distributed engineering team in our quest to make doctors more effective using Ruby, Rails, Vue.js.


Senior Rails Developer - Amsterdam (Netherlands) — Media/tech/data company that aims to change the superyacht market through its unique intelligence system & marketing solutions.

SuperYacht Times

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


📘 Articles & Tutorials

On Ruby 2.7 Pattern Matching After 10 Months of Elixir — I’ll wager you will be pleasantly surprised at the verdict on Ruby pattern matching from an Elixir developer.

Josef Strzibny

More Fiber Benchmarking — More benchmarking fun from Noah. He has a guest benchmarker here that had me calling this article “The Falcon and the Benchmark Soldier.” See if you can figure out why.

Noah Gibbs

How to Migrate Large Database Tables Without Headaches“This is the story how we once migrated an in-house event store, that reached its limits, to Rails Event Store.”

Paweł Pacana

Extracting a Tidy PORO From a Messy Active Record Model — If you were in the Rails world 10+ years ago, you’ll have heard about the (sometimes controversial) idea of ‘skinny controllers, fat models’, but Jason says the new best practice is ‘skinny everything’.

Jason Swett

Are You Struggling to Upgrade to Rails 6? — If you need to upgrade your Rails Application or dependencies and need a skilled partner, reinteractive can help. Ask for a free quote.

reinteractive sponsor

Why Rails' default_scope Bad? — The Principle of Least Surprise comes to mind.

Alex Piechowski

Inheritance and Abstract Class Pattern for Rails Controllers — Some foundational OO to start the year.

Paweł Urbanek

Five Rails Performance Tips for Performance 'Noobs' — Some basic tips “that have worked well for me in my 9+ years of using Rails”.

Jason Swett

An Introduction to Ruby's 'Fibers' — I don’t think this is a truly ‘deep dive’ but I found them useful when doing last year’s Advent of Code for basic cooperative concurrency.

Abhinav Garg

🛠 Code and Tools

rails-pg-extras: Rails PostgreSQL Database Performance Insights — Locks, index usage, buffer cache hit ratios, vacuum stats and more.

Paweł Urbanek

ActiveRecord Adapter for Amazon Aurora Serverless — Mysql2 adapter extensions to allow Rails to use AWS Aurora Serverless via the Aws::RDSDataService::Client interface which might be handy if you’re using Lamby. (Psst.. I’d love to link to some tutorials on this stuff.)

Custom Ink

Forme: HTML Form Generation Library — A structured way to create HTML forms with no external dependencies and a simple API.

Jeremy Evans

Rack::Cache: Drop-in HTTP Caching for Ruby Webapps

Ryan Tomayko

Optimize Your Ruby Applications in One Place

Datadog APM sponsor

Down: Streaming HTTP Downloads using net/http, http.rb or wget

Janko Marohnić

FString: Python-esque 'F-Strings' for Ruby — An experimental gem bringing Python 3’s formatted string literals syntax to Ruby. I don’t think I’d switch to this approach but it’s interesting to look at.

Victor Shepelev

Reverse Markdown: Ruby Gem to Convert HTML into Markdown — There are a lot of libraries to convert Markdown into HTML, but what about the other way round?

Johannes Opper