---
title: "[TEST] How software transactional memory (STM) could improve Ruby concurrency"
publication: "Ruby Weekly"
issue: 525
published_at: "2020-10-29"
canonical_url: "https://rubyweekly.com/issues/525"
---

Plus more of this week's Ruby news, views, and libraries.       

#525 — October 29, 2020 

[Read on the Web](https://rubyweekly.com/issues/525)   

Ruby Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/vd621xkn65uaendhtbrp.jpg)](https://chrisseaton.com/truffleruby/ruby-stm/)  

[Examining a Proposal to Add Software Transactional Memory (STM) to Ruby](https://chrisseaton.com/truffleruby/ruby-stm/) — Chris Seaton was the founder of [TruffleRuby](https://github.com/oracle/truffleruby) (so he knows his stuff) and here he goes deep into a [STM proposal for Ruby](https://bugs.ruby-lang.org/issues/17261), explaining what STM is and why it could be useful. Get ready to bend your brain into fancy new shapes, but at the same time, it's quite accessible. 

Chris Seaton   

[What's the Best EC2 Instance Type for Rails Apps?](https://www.fastruby.io/blog/rails/performance/ruby/best-ec2-instance-for-rails-apps.html) — While there are perhaps 574 types of EC2 instance type (we exaggerate!) they’re broken down into a handful of families each with pros and cons for different workloads. So which to choose for your Rails apps? Noah provides some advice and some numbers here. 

Noah Gibbs   [![\](https://copm.s3.amazonaws.com/2183a2ef.png)](https://www.cloud66.com/campaigns/heroku/?utm_source=-&utm_medium=-&utm_campaign=RubyWeekly-q4-2) 

[Deploy Rails Apps with Cloud 66](https://www.cloud66.com/campaigns/heroku/?utm_source=-&utm_medium=-&utm_campaign=RubyWeekly-q4-2) — Deploy your Rails applications to any cloud in minutes. By running your apps on your own servers, you'll save up to 60% compared to Heroku while enjoying the same simplicity. 4-week free trial + extra $66 free credits with the code: ``Ruby-Weekly`'. 

Cloud 66 sponsor   

[Squash N+1 Queries Early with `n_plus_one_control` Test Matchers](https://evilmartians.com/chronicles/squash-n-plus-one-queries-early-with-n-plus-one-control-test-matchers-for-ruby-and-rails) — [n_plus_one_control](https://github.com/palkan/n_plus_one_control) was built to capture N+1 queries at test time (RSpec and Minitest) as well as to address some of the issues with the Bullet gem (false positives, etc.) 

Evil Martians   

▶[How to Quit Your Job and Leave Your Code in Good Hands](http://5by5.tv/rubyonrails/342) — Brittany Martin, the usual host of the Ruby on Rails Podcast, guested on the [Maintainable podcast](https://maintainable.fm/) to discuss the mistakes developers make when discussing technical debt with stakeholders and why it is important to write automated tests against a live/production API. 

Dan Benjamin and 5by5 Productions, LLC podcast  

📘 Articles & Tutorials  

[Counting Things in Active Record](https://longliveruby.com/articles/active-record-counting-records) — A comparison of the various methods for counting things: `count`, `size`, `length`, `any?`, `empty?`, `present?`. There are real implications for choosing one over the other. 

Paweł Dąbrowski   

[How to Check Where a Method is Defined](https://rubyyagi.com/where-method-defined/) — A quick tip on how to find the method, its owner, and its location. 

Axel Kee   

[The Arguments Forwarding Shorthand in Ruby 2.7](https://medium.com/rubycademy/the-arguments-forwarding-shorthand-in-ruby-2-7-af32d58c223b) — A dive into the `...` shorthand syntax accompanied by a method for manipulating arguments before forwarding to another class. 

Mehdi Farsi   

[12 Years Ago We Released Our First Agent: The Ruby Agent](https://blog.newrelic.com/product-news/simple-pricing/?utm_campaign=FY21-Q3-DEV-OBSV-AMER-RW-NL-SL-B_SP&utm_medium=NL&utm_source=RW&utm_content=B_SP&fiscal_year=FY21&quarter=Q3&gtm=DEV&program=OBSV&ad_type=SL&geo=AMER) — In celebration of more than a decade together we arranged a small gift for you: New Relic is free now. Yes, all of it. 

New Relic sponsor   

[How I Set Up a Rails Application for Testing](https://www.codewithjason.com/set-rails-application-testing/) — ‘Rails Testing’ might as well be Jason’s middle name, so I was certainly interested to see his approach here. It’s nothing surprising (and I’m a Minitest guy anyway) but you might find it useful guidance. 

Jason Swett   

[Re-Using SSH Config Inside Docker Containers with WSL2](https://avdi.codes/re-use-ssh-config-inside-docker-containers-with-wsl2/) 
Avdi Grimm   

[Using Signed URLs with Google Cloud Storage](https://blog.joshsoftware.com/2020/10/26/using-signed-urls-with-google-cloud-storage/) 
J. Austin Hughey  

💻 Jobs  

[Ruby on Rails Senior Software Engineer](https://recruiting2.ultipro.com/CIV1000CIPLI/JobBoard/79b093ad-bba9-48ba-b34d-f3900c56a15e/OpportunityDetail?opportunityId=da76dc31-dea5-42ad-ab2e-5a392fe7ac7e) — We're seeking an experienced Ruby on Rails developer to be part of the CivicPlus team to help local governments work better. 

CivicPlus   

[Senior Software Engineer (React + Rails) [Remote\]](https://apply.workable.com/fleetio/j/10106DAD9C/) — A modern fleet management software, remote-first culture, passionate about creating delightful user experiences for thousands of customers. 

Fleetio   

[Find Your Next Job Through Vettery](https://www.vettery.com/tech?utm_source=newsletter&utm_medium=cooper-rubyweekly&utm_term=tech&utm_content=grouped&utm_campaign=ad-77583) — 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](https://booking.cooperpress.com/jobs)_. 

🛠 Code and Tools  [![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/v1603975537/h1lrqfgu6pp4zbhp19rv.png)](https://github.com/radar/humanize) 

Fancy numbers.. but Humanize takes a different approach!   

[Humanize: A Library to Make Your Numbers More 'Fancy'](https://github.com/radar/humanize) — If by ‘fancy’ you mean turn into natural language versions, e.g. `15.humanize # => "fifteen"` .. it supports 13 languages out of the box from English and Spanish to Azerbaijani and Vietnamese. 

Ryan Bigg   

[Single Cov: Actionable Code Coverage](https://github.com/grosser/single_cov) — Catch coverage issues before making PRs or easily add coverage enforcement for legacy apps. 

Michael Grosser   

[Seamlessly Integrate Video into Your Ruby App](https://get.mux.com/3jA3plY) 

Mux sponsor   

[Rodauth 2.5: Ruby's 'Most Advanced' Auth Framework](https://github.com/jeremyevans/rodauth) — A authentication framework for any Rack-based webapp. Built with Roda and Sequel, Rodauth _can_ be used with other frameworks and database libs. [Here’s how it’s so advanced.](http://rodauth.jeremyevans.net/why.html) 

Jeremy Evans   

[jb: Simple, Fast JSON API Template Engine for Rails](https://github.com/amatsuda/jb) — An alternative way to render JSON documents from Rails apps. 

Akira Matsuda   

[Re:VIEW 5.0: A Ruby Powered Flexible Document Format/Conversion System](https://github.com/kmuto/review) — Put images, stylesheets, and markup in.. and get numerous output formats (HTML, ePUB, PDF, etc.) back. 

Kenshi Muto   

[BrowseEverything: Rails Engine Providing Access to Files in Cloud Storage](https://github.com/samvera/browse-everything)   

[rubocop-rails_config: A RuboCop Config Matching Rails' Official Style](https://github.com/toshimaru/rubocop-rails_config)   

[influxer: Use InfluxDB ActiveRecord-Style](https://github.com/palkan/influxer)   

[sequel-activerecord_connection 1.0: Let Sequel Reuse An ActiveRecord Connection.](https://github.com/janko/sequel-activerecord_connection)   

[Tomo 1.4: A Friendly CLI for Deploying Rails Apps](https://github.com/mattbrictson/tomo)         

Curated by [Peter Cooper](https://twitter.com/peterc), [Glenn Goodrich](https://twitter.com/ruprict) and [Cooperpress](https://cooperpress.com/). 

[Change your email address](https://rubyweekly.com/edit_subscription/*|UID|*) or[Stop getting this newsletter](https://rubyweekly.com/leave/*|UID|*) 

© Cooper Press Ltd · Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom
