---
title: "#362: This week's Ruby and Rails news"
publication: "Ruby Weekly"
issue: 362
published_at: "2017-08-17"
canonical_url: "https://rubyweekly.com/issues/362"
---

#362: This week's Ruby and Rails news

This week's Ruby and Rails news[Read this e-mail on the Web](http://rubyweekly.com/issues/362)

Ruby WeeklyIssue 362 — August 17, 2017

Martian Chronicles[TestProf: A Doctor for Slow Ruby Tests](https://evilmartians.com/chronicles/testprof-a-good-doctor-for-slow-ruby-tests)TestProf is a test profiling toolbox containing tools for profiling by test type or database event as well as faking background jobs.


Tiago Farias[To Join or Not to Join?](https://goiabada.blog/to-join-or-not-to-join-an-act-of-includes-f6728fcefea3)A discussion of the various eager loading strategies in ActiveRecord including preload, eager_load, includes, and references.


CodeshipSponsored[Using Docker and Codeship for Ruby Development](https://resources.codeship.com/ebooks/docker-and-codeship-for-continuous-integration-ruby-aw?utm_source=email-sponsorship&utm_medium=cpc-ruby-weekly-primary&utm_campaign=cooper-ebook-ruby-docker-codeship)Check out this free eBook by Codeship Dev Evangelist Kelly Andrews and learn how to use Docker and Codeship to develop and test a Ruby app.

[![Codeship\](https://copm.s3.amazonaws.com/0d4a3326.png)](https://resources.codeship.com/ebooks/docker-and-codeship-for-continuous-integration-ruby-aw?utm_source=email-sponsorship&utm_medium=cpc-ruby-weekly-primary&utm_campaign=cooper-ebook-ruby-docker-codeship)


Practical Artificial Intelligence[Teaching An AI to Play A Simple Game Using Q-Learning](http://www.practicalai.io/teaching-ai-play-simple-game-using-q-learning/)The Q-learning algorithm is a learning reinforcement algorithm where rewards are based on prior experience.


Tom Copeland[Using 'synvert' to Rewrite and Refactor Code](https://thomasleecopeland.com/2017/08/15/automating-redirectto-flash-cleanup.html)If you have many instances of the same change throughout your code base (such as outdated idioms), [synvert](https://github.com/xinminlabs/synvert) can rewrite them all for you at once.


Richard Schneeman[Sending Massive Emails Considered Harmful](https://www.schneems.com/2017/08/15/sending-massive-emails-considered-harmful/)Another bug leading to a learning about understanding what your code does and what your user experiences.


Andrew Hao[Evented Rails: Decoupling Complex Domains in Rails with Events](http://blog.carbonfive.com/2017/07/18/evented-rails-decoupling-complex-domains-in-rails-with-domain-events/)Using the Publish-Subscribe pattern between contexts to decouple services and keep code cohesive.


Jobs

- [Developer - Web Technologies](https://www.raizlabs.com/careers/?utm_source=rubyweekly&utm_medium=email)Broaden your impact and hone your craft; build apps from scratch for expert clients. Pick your tools: Ruby, JavaScript, Elixir… Raizlabs
- [Senior Backend Engineer at Stash (New York City)](https://www.stashinvest.com/careers?gh_jid=745125&gh_src=abrgws1)We're looking for a Senior Backend Software Engineer with a passion for building reliable, scalable, and performant software. Stash
- [Senior Full-Stack Developer at Razeware (Remote)](https://authenticjobs.com/jobs/29672/senior-fullstack-developer?utm_source=rubyweekly&utm_medium=email)We're seeking an engineer to help overhaul [raywenderlich.com.](http://raywenderlich.com/) Join our team and help bring the site to the next level. Razeware LLC

In brief

- [New PragProg Ruby Book: 'Mastering Ruby Closures'](https://pragprog.com/book/btrubyclo/mastering-ruby-closures?utm_source=rubyweekly&utm_medium=email) news 
A ‘Guide to Blocks, Procs, and Lambdas’ by Benjamin Tan Wei Hao. The Pragmatic Bookshelf
- [Steven (Steph) Bristol Has Passed Away](http://lesseverything.com/blog/steve-bristol/?utm_source=rubyweekly&utm_medium=email) news 
Many in the Ruby community may remember Steve (later Steph). Allan Branch
- [Results of the Ruby Code Quality Tools Survey](http://rubyblog.pro/2017/08/results-of-the-code-quality-tools-survey?utm_source=rubyweekly&utm_medium=email) news 
Developers were asked about tools that help with code quality and complexity. Sergii Makagon
- [3 New Committers Join The Rails Team](http://weblog.rubyonrails.org/2017/8/15/three-new-committers/?utm_source=rubyweekly&utm_medium=email) news 
George Claghorn, Javan Makhmali, and Ryuta Kamizono are now part of the core team. David Heinemeier Hansson
- [#1 Way to Detect, Diagnose and Defeat Errors 🏆](https://rollbar.com/rubyweekly?utm_source=rubyweekly&utm_medium=email) 
Rollbar detects when code breaks in real-time. Get stack trace & diagnostic data to defeat Ruby errors. ROLLBARSponsored
- [Use Batching to Avoid N+1 Queries](https://engineering.universe.com/batching-a-powerful-way-to-solve-n-1-queries-every-rubyist-should-know-24e20c6e7b94?utm_source=rubyweekly&utm_medium=email) tutorial 
Batching is a little-known technique that mitigates N+1 queries using functional concepts. Universe Engineering
- [That One Time I Used Recursion to Solve A Problem](http://blog.arkency.com/that-one-time-i-used-recursion-to-solve-a-problem/?utm_source=rubyweekly&utm_medium=email) tutorial 
A real world example of using recursion to figure out notification intervals for customers. Arkency
- [How I Got RSpec to Boot 50 Times Faster](https://schwad.github.io/ruby/rails/testing/2017/08/14/50-times-faster-rspec-loading.html?utm_source=rubyweekly&utm_medium=email) tutorial Nick Schwaderer
- [A Guide to Using Polymorphic Associations in Rails](https://semaphoreci.com/blog/2017/08/16/polymorphic-associations-in-rails.html?utm_source=rubyweekly&utm_medium=email) tutorial Jovan Ivanović
- [Quick Tip: The Builder Design Pattern in Ruby](https://medium.com/kkempin/builder-design-pattern-in-ruby-dfa2d557ff1b?utm_source=rubyweekly&utm_medium=email) tutorial Krzysztof Kempiński
- [Using Encrypted Secrets on Rails 5.1](https://www.engineyard.com/blog/encrypted-rails-secrets-on-rails-5.1?utm_source=rubyweekly&utm_medium=email) tutorial Engine Yard
- [Evolution of the Heroku CLI: 2008-2017](https://blog.heroku.com/evolution-of-heroku-cli-2008-2017?utm_source=rubyweekly&utm_medium=email) story 
The Heroku command line interface started off, like many things do, in Ruby. Heroku
- [Fabrication vs FactoryGirl: Which is Faster?](https://ksylvest.com/posts/2017-08-12/fabrication-vs-factorygirl?utm_source=rubyweekly&utm_medium=email) tools Kevin Sylvestre
- [#1 Way to Detect, Diagnose and Defeat Errors 🏆](https://rollbar.com/rubyweekly?utm_source=rubyweekly&utm_medium=email) tools 
Rollbar detects when code breaks in real-time. Get stack trace & diagnostic data to defeat Ruby errors. ROLLBARSponsored
- [Hanami v1.1.0 Beta 1 Released](http://hanamirb.org/blog/2017/08/11/announcing-hanami-110beta1.html?utm_source=rubyweekly&utm_medium=email) code 
New associations, a rewritten CLI, extra behaviors for entity manual schema, and bug fixes. Luca Guidi
- [Rack::Attack: Rack Middleware for Blocking and Throttling](https://github.com/kickstarter/rack-attack?utm_source=rubyweekly&utm_medium=email) code Kickstarter
- [Staytus: An Open Source Service Status App](https://github.com/adamcooke/staytus?utm_source=rubyweekly&utm_medium=email) code Adam Cooke
- [bettercap: A Modular, Portable and Extensible MITM Framework](https://github.com/evilsocket/bettercap?utm_source=rubyweekly&utm_medium=email) code 
Manipulate HTTP, HTTPS and TCP traffic in realtime, sniff for credentials and more. Simone Margaritelli
- [ruby-knn: A Simple k-Nearest Neighbors (kNN) Classifier](https://github.com/JonMidhir/ruby-knn?utm_source=rubyweekly&utm_medium=email) code John Hope
- [Linux cloud hosting starting at 1GB of RAM for $5/mo](https://welcome.linode.com/ruby-weekly/?utm_source=cooperpress&utm_medium=sponsored&utm_campaign=ruby-weekly-sponsored) Linode Cloud HostingSponsored

Curated by [Peter Cooper](https://twitter.com/peterc) and [Glenn Goodrich](https://twitter.com/ruprict), and published by [Cooperpress](https://cooperpress.com/).
Send feedback by simply replying to this mail.
Want to sponsor an issue? See our [media kit.](https://cooperpress.com/mediakit)
Want to post a job? Email us or [use our self-serve system.](https://booking.cooperpress.com/jobs)

[Unsubscribe](*|UNSUB|*) | [Change email address](*|UPDATE_PROFILE|*) | [Read this issue on the Web](http://rubyweekly.com/issues/362)

© Cooperpress Ltd. Office 30, Lincoln Way, Louth, LN11 0LS, UK
[Email policy](https://cooperpress.com/spam.html) [Privacy policy](https://cooperpress.com/privacy.html)
