---
title: "This week's Ruby news, issue 330"
publication: "Ruby Weekly"
issue: 330
published_at: "2017-01-05"
canonical_url: "https://rubyweekly.com/issues/330"
---

This week's Ruby news, issue 330

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

Ruby WeeklyIssue 330 — January 5, 2017

Richard Schneeman[How Does Sprockets Load An Asset?](https://www.schneems.com/2016/12/20/how-the-f-does-sprockets-load-an-asset/?utm_term=0_17dc267687-e5c05868f0-222773573)An incredibly thorough post that demonstrates just how much work Sprockets, the Rack-based asset packaging system, does.


Jonathan Rochkind[A Look at Concurrency in Rails 5.0](https://bibwild.wordpress.com/2016/12/29/concurrency-in-rails-5-0/)A tour through some of the concurrency concepts and options available in Rails 5.


Starr Horne[Common Rails Idioms that Kill Database Performance](http://blog.honeybadger.io/common-rails-idioms-that-kill-database-performance/)A look at some of the biggest culprits when it comes to database queries bogging down your app.


Passenger EnterpriseSponsored[Supercharge your Servers with a Free Passenger Enterprise Trial](https://www.phusionpassenger.com/rubyweeklyjan2017)Companies of all sizes from startups to Apple trust Passenger to serve their web apps efficiently and reliably. Start a free trial of Passenger Enterprise now to see how much better devops is with live irb sessions, rolling restarts and multithreading.

[![Passenger Enterprise\](https://copm.s3.amazonaws.com/5a57b79c.png)](https://www.phusionpassenger.com/rubyweeklyjan2017?utm_source=rubyweekly&utm_medium=email)


Daniel P. Clark[Creating Advanced SQL Queries with Arel](https://blog.codeship.com/creating-advanced-active-record-db-queries-arel/)How to handle simple and complex SQL with Arel, the backbone of ActiveRecord’s SQL generation process.


Robert Pankowecki[On Upcoming Immutable String Literals in Ruby](http://blog.arkency.com/2017/01/on-upcoming-immutable-string-literals-in-ruby/)Using String.new in certain cases may become a common idiom: _“just be aware that in upcoming Ruby versions s = ‘’ and s = String.new might not be equal.”_


Ross Kaffenberger[Your First Progressive Web App on Rails](https://rossta.net/blog/make-your-rails-app-a-progressive-web-app.html)This tutorial demonstrates how to make a Progressive Web App on Rails using Service Workers via the [serviceworker-rails gem.](https://github.com/rossta/serviceworker-rails)


Jobs

- [(Senior) Full Stack Developer](http://jobs.roadtrippers.com/apply/pChjf0/Full-Stack-Developer?source=RubyWeekly)Roadtrippers is looking for creative problem solvers to write code that simplifies travel planning and discovery. Roadtrippers
- [Senior Ruby/Rails Developer at Backerkit](https://angel.co/backerkit/jobs/48867-senior-developer?utm_source=rubyweekly&utm_medium=email)Join our team and work on exciting, uncharted territory in the world of fulfillment and crowdfunding. Backerkit

In brief

- [Ruby 2.4 Adds Set#compare_by_identity & compare_by_identity? Methods](http://blog.bigbinary.com/2016/12/29/ruby-2-4-adds-compare-by-identity-functionality-for-sets.html?utm_source=rubyweekly&utm_medium=email) news Chirag Shah
- [Coderbyte Ruby Quiz #1](https://medium.com/coderbyte/ruby-quiz-1-ad412ebbbc7d?utm_source=rubyweekly&utm_medium=email) news 
The first in a series of coding quizzes. Can you figure out what the code does? Daniel Borowski
- [Want a Less Buggy Ruby App?](https://rollbar.com/?utm_source=rubyweekly&utm_medium=email-nl&utm_term=rubyweekly_1_5&utm_campaign=nl_sponsorship) 
Rollbar detects when code breaks in real-time and provides the source code & state to help you defeat Ruby errors. ROLLBARSponsored
- [Run Structure and Data Migrations Cleanly with Systematize](https://hackernoon.com/systematize-your-database-the-ruby-way-to-be-the-croupier-of-migrations-7c9d56bc628d#.7yx3le8dl?utm_source=rubyweekly&utm_medium=email) tutorial 
How you can shuffle your data and structure migrations; aligning them to run in the order they should. Hackernoon
- [Intro to Ruby Coercion Protocols](https://blog.dnsimple.com/2016/12/ruby-coercion-protocols-part-1/?utm_source=rubyweekly&utm_medium=email) tutorial 
Avoid using #is_a? and keep your library open for extension. Luca Guidi
- [Backing up Route53 with Ruby and Lambda](https://dashsoft.dk/da/blog/Route53_Lambda_Backups/?utm_source=rubyweekly&utm_medium=email) tutorial 
An example of using Ruby (with native gems!) on AWS Lambda to perform a recurring task. Henning Kristensen
- [The += Operator Appears to Modify a Frozen String?](http://stackoverflow.com/q/41375818/3951?utm_source=rubyweekly&utm_medium=email) tutorial 
In reality, += doesn’t do quite what the questioner suspects. Stack Overflow
- [Asynchronous Queries in Ruby](https://medium.com/@gauravbasti2006/async-mongo-queries-in-ruby-96a31b48b8f3?utm_source=rubyweekly&utm_medium=email) tutorial 
Use RxRuby to get callback-like functionality (a la Node). Gaurav Singh
- [Escaping Characters in Ruby](http://blog.appsignal.com/2016/12/21/ruby-magic-escaping-in-ruby.html?utm_source=rubyweekly&utm_medium=email) tutorial Tom de Bruijn
- [Implementing Soft Deletes From Scratch](http://patrikonrails.com/posts/3?utm_source=rubyweekly&utm_medium=email) tutorial Patrik Bóna
- [How To Spy on Your Ruby Methods](http://www.blackbytes.info/2017/01/spy-on-your-ruby-methods/?utm_source=rubyweekly&utm_medium=email) tutorial 
Use TracePoint to capture method call and return values in your code. Jesus Castello
- [Event Sourcing in Fewer Than 150 Lines of Code](http://blog.arkency.com/2016/12/event-sourced-domain-objects-in-less-than-150-loc/?utm_source=rubyweekly&utm_medium=email) tutorial Miroslaw Praglowski
- [Programming in the Small: Kids, Chickens, and Ruby](https://www.youtube.com/watch?v=Iah2t1_iSYE) video 
This video from RubyConf 2016 covers of all things, building a chicken coop monitoring system in Ruby. _38 minutes_. Coraline Clark and Jason Clark
- [Creating Periodic Tasks with sidekiq-cron](https://www.driftingruby.com/episodes/periodic-tasks-with-sidekiq-cron?utm_source=rubyweekly&utm_medium=email) video Drifting Ruby
- [Lightning-fast SSD Hosts for Your Ruby Project](https://welcome.linode.com/ruby-weekly/?utm_source=cooperpress&utm_medium=sponsored&utm_term=ruby&utm_campaign=ruby-weekly) tools 
Host Ruby 2.3.0 projects on Linode servers - the fastest cloud hosts available. Use promo code RUBY20 and get $20 credit. linodeSponsored
- [A Rails Security Checklist](https://github.com/eliotsykes/rails-security-checklist?utm_source=rubyweekly&utm_medium=email) tools 
A variety of points to consider. Your own additions are encouraged. Eliot Sykes
- [Field Test: A/B Testing for Rails](https://github.com/ankane/field_test?utm_source=rubyweekly&utm_medium=email) code 
Includes Bayesian statistics and a dashboard. Andrew Kane
- [PpSql: Pretty Printing of SQL](https://github.com/kvokka/pp_sql?utm_source=rubyweekly&utm_medium=email) code Mike Belyakov
- [google-assistant-ruby: Create Google Assistant Actions in Ruby](https://github.com/armilam/google-assistant-ruby?utm_source=rubyweekly&utm_medium=email) code Aaron Milam

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/330)

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