---
title: "This week's Ruby news, issue 339"
publication: "Ruby Weekly"
issue: 339
published_at: "2017-03-09"
canonical_url: "https://rubyweekly.com/issues/339"
---

This week's Ruby news, issue 339

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

Ruby WeeklyIssue 339 — March 9, 2017

Thijs Cadier[Concurrency Deep Dive: A Multi-Process Chat Server](http://blog.appsignal.com/2017/03/07/ruby-magic-concurrency-processes.html)How to create a chat server with a master process that manages many workers.


Thiago Silva[Towards Minimal, Idiomatic, and Performant Ruby](https://blog.codeminer42.com/towards-minimal-idiomatic-and-performant-ruby-code-f3fc6aed3c94#.hz895kl4u)Are attribute reader methods necessary? When does Ruby convert a block to a proc? Is extracting methods OK? The author wants to ‘debunk some popular Ruby idioms’.


Kevin Deisz[Writing An ActiveRecord ODBC Adapter](http://eng.localytics.com/odbc-and-writing-your-own-activerecord-adapter/)The story of building an ODBC ActiveRecord adapter from the ground-up that highlights AR extension points and some pros and cons of Ruby.


CodeshipSponsored[Try Codeship Basic: simple hosted CI that works out of the box](https://codeship.com/features/basic?utm_source=email-sponsorship&utm_medium=cpc-ruby-weekly-primary&utm_campaign=cooper-basic-features-signup-campaign)Get set up with our hosted Continuous Integration service in under 3 minutes with Codeship Basic. Join thousands of happy customers like InvisionApp & Whole Foods. Try it for free today!

[![Codeship\](https://copm.s3.amazonaws.com/ec3e7b3a.png)](https://codeship.com/features/basic?utm_source=email-sponsorship&utm_medium=cpc-ruby-weekly-primary&utm_campaign=cooper-basic-features-signup-campaign)


Richard Schneeman[Bundler Changed Where Your Canonical Ruby Information Lives](https://blog.heroku.com/bundler-and-canonical-ruby-version)It has to do with how the Gemfile and Gemfile.lock store the Ruby version.


Starr Horne[Unicode Normalization in Ruby](http://blog.honeybadger.io/ruby_unicode_normalization/)Unicode Normalization is an important and not well-understood topic. This post introduces the subject and why you should know about it.


Chirag Shah[IO#readlines Now Accepts 'Chomp' Flag As An Argument](http://blog.bigbinary.com/2017/03/07/io-readlines-now-accepts-chomp-flag-as-an-argument.html)Tired of mapping chomp over a file’s lines to remove newlines? Ruby 2.4 presents an alternative.


Barrett Clark[Ruby + PostgreSQL Database Tricks](https://www.youtube.com/watch?v=N08NHsyaoKM)A talk from RubyConf AU 2017 that focuses on Postgres-oriented tips and tricks, including PostGIS and EXPLAIN PLAN.


PackageCloud[When Micro-Optimizations Matter](https://blog.packagecloud.io/eng/2017/03/06/micro-optimizations-matter/)A look at how system calls can affect performance, including a Ruby example that gets 40% better performance when Ruby is configured slightly differently.


Jobs

- [Senior Ruby on Rails Developer at Catawiki (Amsterdam or Assen)](https://www.catawiki.com/jobs/job/senior-ruby-on-rails-developer?gh_jid=547808)Catawiki’s mission is to make special items available to everyone. We offer a unique opportunity to join our team in Amsterdam or Assen developing products and services used by our millions of customers. Catawiki
- [Senior Backend Developer (f/m) at Wimdu - Berlin ---](http://www.wimdujobs.de/?utm_source=rubyweekly&utm_medium=email)We're seeking a creative, hands-on, innovative problem solver who's eager to take on new challenges in a fast paced environment. Wimdu
- [Shopify + Kit: Hiring in the Bay Area](https://www.shopify.com/careers/senior-software-engineer-de960b?lever-source=114119)We’re building a 🤖 that makes our merchants more successful. 🎉 Join us: let’s take AI and chatbots to the next level! 🚀 Shopify

In brief

- [Ruby for Good: A Practical Ruby Event in Virginia, May 18-21](http://rubyforgood.org/?utm_source=rubyweekly&utm_medium=email) news 
The goal is to build projects that help communities and charities.
- [What's New in Jekyll 3.4.0](https://forestry.io/blog/post/what-s-new-in-jekyll-3-4-0/?utm_source=rubyweekly&utm_medium=email) news 
Lots of view and collection based utility enhancements. Colin Garvey
- [open-uri in Ruby 2.4 Allows HTTP to HTTPS Redirection](http://blog.bigbinary.com/2017/03/02/open-uri-in-ruby-2-4-allows-http-to-https-redirection.html?utm_source=rubyweekly&utm_medium=email) news Chirag Shah
- [A Look at Ruby Developer Salaries in the UK in 2017](https://hackernoon.com/uk-ruby-salary-bench-marking-2017-e852d1d7702e?utm_source=rubyweekly&utm_medium=email) news Louis Goff-Beardsley
- [[eBook\] Best Practices for Architecting Highly Monitorable Applications](https://www.vividcortex.com/resources/architecting-highly-monitorable-apps?utm_campaign=Ruby%20Weekly&utm_source=ppc) 
Monitoring is highly important in running apps at scale. Apply best practices from this book to avoid pitfalls. Vivid CortexSponsored
- [ActiveRecord Prepared Statements Can Cause Memory Leaks](https://medium.com/@devinburnette/be-prepared-7768d1a111e1?utm_source=rubyweekly&utm_medium=email) tutorial 
Basically, it fills up the prepared statement cache. Fixed in Rails 5, but if you aren’t there yet, read this. Devin Burnette
- [Using Bootstrap in Rails 5](https://medium.com/@rob__race/using-bootstrap-in-rails-5-969cbe423926?utm_source=rubyweekly&utm_medium=email) tutorial Rob Race
- [How to Use Heroku Buildpacks to Optimize Images Automagically](http://www.jasonfleetwoodboldt.com/writing/2017/02/20/how-to-get-your-heroku-app-to-optimize-your-images/?utm_source=rubyweekly&utm_medium=email) tutorial Jason Fleetwood-Boldt
- [Automatically Review Pull Requests with Pronto and RuboCop](https://christoph.luppri.ch/articles/2017/03/05/how-to-automatically-review-your-prs-for-style-violations-with-pronto-and-rubocop/?utm_source=rubyweekly&utm_medium=email) tutorial Christoph Lupprich
- ['In The Testing Weeds' with Sam Phippen and Justin Searls](http://www.techdoneright.io/004-testing-with-sam-and-justin?utm_source=rubyweekly&utm_medium=email) podcast 
Sam Phippen, Justin Searls, and Noel Rappin discuss the value of TDD. Table XI
- [8 Useful Ruby on Rails Gems We Couldn't Live Without](http://blog.planetargon.com/entries/8-useful-ruby-on-rails-gems-we-couldnt-live-without?utm_source=rubyweekly&utm_medium=email) opinion 
These posts are always good value. Erica Tafavoti
- [TDD Harms Architecture](http://blog.cleancoder.com/uncle-bob/2017/03/03/TDD-Harms-Architecture.html?utm_source=rubyweekly&utm_medium=email) opinion 
Uncle Bob reviews some of the learnings about TDD that have emerged over the last two decades. Robert C. Martin (Uncle Bob)
- [Catch Errors Before Your Users Do 💻](https://rollbar.com/rubyweekly?utm_source=rubyweekly&utm_medium=email) 
Rollbar detects and alerts you via Slack, HipChat when code breaks. Get stack trace and user data to help you defeat annoying Ruby errors. RollbarSponsored
- [Sinatra 2.0.0.rc1 Released](https://github.com/sinatra/sinatra/releases/tag/v2.0.0.rc1?utm_source=rubyweekly&utm_medium=email) code Sinatra
- [space_elevator: An ActionCable Client](https://github.com/preston/space_elevator?utm_source=rubyweekly&utm_medium=email) code 
A Ruby (not just Rails) gem for integrating to a remote ActionCable server. Preston Lee
- [Rack::Test::Body: Extensions for Rack::MockReponse For Dealing With Structured Data](https://github.com/ioquatix/rack-test-body?utm_source=rubyweekly&utm_medium=email) code Samuel G. D. Williams
- [invisible_captcha: Unobtrusive Spam Protection for Rails](https://github.com/markets/invisible_captcha?utm_source=rubyweekly&utm_medium=email) code Marc Anguera Insa
- [translate_enum: Easily Translate Enums in Rails](https://github.com/shlima/translate_enum?utm_source=rubyweekly&utm_medium=email) code 
Just add your enum text to the locale files. Aliaksandr

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

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