What is Ruby doing on Rails?
Hello, you're reading Infinum Ruby Drops, bringing you the latest Ruby and Rails related news straight to your inbox every week.
How Shopify Manages API Versioning and Breaking Changes
At Shopify, we have tens of thousands of partners building on our APIs that depend on us to ensure our merchants can run their businesses every day. In April of this year, we released the first official version of our API. All consumers of our APIs require stability and predictability and our API versioning scheme at Shopify allows us to continue to develop the platform while providing apps with stable API behavior and predictable timelines for adopting changes.
Read More
We spend about $3 million every year to run all the versions of Basecamp and our legacy applications. That spend is spread across several on-premise data centers and cloud operations. It does not include the budget for our 7-person strong operations team, this is just the cost of connectivity, machines, power, and such.
This week, I wanted to clue you in to 12 different "health indicators" or "benchmarks" that I use when consulting to evaluate the overall health of a Rails application. For each one, I'll share a little bit about how I came up with it, what it means, and how you can fix it if you're scoring poorly on it.
A number of customers have contacted me with a common problem:
"We run a multi-tenant system where our users can perform an action which results in a huge number of jobs being enqueued. When this happens, other users see significant delays in their jobs being processed while our Sidekiq cluster works through the backlog for that one user."
This is the 7th part of a series of blog posts about Shrine. In this part we will dive deeper into Shrine’s eager processing feature, showing some interesting use cases that are possible thanks to its advanced API.

Mry can help you avoid the two major problems that people experience on RuboCop upgrades:
  1. New offences coming from newly created cops
  2. Breaking changes to the configuration (e.g. cops or cop parameter were renamed)
Beyond Ruby
This is the second post in a series about asynchronous collaboration. By asynchronous, I mean “people on the team not always working at the exact same time.” This can occur when teams occupy different locations and different time zones.
A short tale about my struggle to comprehend why C# isn't a functional language.
Blast from the past
The money premise: we’re in this for the money. In software, money comes from shipping more value faster. TDD is the fastest current way to do that, regardless of the particular kind of value we need, as long as getting that value means changing layered branching logic.
Today, we’ll discuss how to use OOP’s best practices to make your code cleaner, more isolated, and more decoupled.
Gem of the week
Filterrific is a Rails Engine plugin that makes it easy to filter, search, and sort your ActiveRecord lists.