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

This week's Ruby news, issue 334

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

Ruby WeeklyIssue 334 — February 2, 2017

Aaron Patterson[Object IDs in MRI](http://tenderlovemaking.com/2017/02/01/object-id-in-mri.html)Aaron ‘tenderlove’ Patterson looks at the properties of Ruby’s object storage system, why all object IDs are divisible by 40, and how ‘special’ objects like integers fill in the gaps.


Piotr Solnica[ROM (Ruby Object Mapper) 3.0 Released](http://rom-rb.org/blog/rom-3-0-released/)[ROM](http://rom-rb.org/) is a persistence and mapping toolkit built for speed and simplicity. ROM 3 includes the first stable versions of rom-sql 1.0.0 and rom-repository 1.0.0.


Vladimir Dementyev[Lite Cable: A Lightweight ActionCable Implementation](https://github.com/palkan/litecable)A ‘Rails-free’ alternative to ActionCable that supports the JavaScript ActionCable client out of the box. The Sinatra based [sample chat app](https://github.com/palkan/litecable/tree/master/examples/sinatra) shows it in action.


Honeybadger Exception MonitoringSponsored[Mastering Ruby Exceptions](https://honeybadger.leadpages.co/exceptions/)How well do you know Ruby's exception system? This free thirty-nine-page book will take you from novice to expert.

[![Honeybadger Exception Monitoring\](https://copm.s3.amazonaws.com/b246ab9e.png)](https://honeybadger.leadpages.co/exceptions/?utm_source=rubyweekly&utm_medium=email)


Avdi Grimm[Two Ways to Eradicate 'nil' Values](https://www.rubytapas.com/2017/01/31/two-screencasts-two-ways-erradicate-ruby-nil-values)Learn two ways to avoid switching on nil in Rails apps, in this double feature from RubyTapas. (Also includes a nice deal for both RubyTapas and Upcase.)


Piotr Misiurek[Blazer: Simple Business Intelligence for Rails Apps](https://blog.ragnarson.com/2017/01/31/blazer-a-great-tool-to-see-what-data-you-get.html)Execute SQL queries on your database from a web panel and visualize the data in a convenient and clear way with charts and saved queries.


Pau Pérez[Percona Migrator: An ActiveRecord Adapter to Run Online MySQL Migrations](https://medium.com/@prez_pau/percona-migrator-announcement-6a32d5b7484c)An adapter that lets you alter tables from standard Rails migrations without any downtime or blocking.


Aboobacker MK[A Look Behind Hash Table Performance in Ruby 2.4](http://blog.redpanthers.co/behind-scenes-hash-table-performance-ruby-2-4/)The hash table improvements that arrived in 2.4 explained and contrasted with previous versions of Ruby.


Weston Ganger[Spreadsheet Architect: Convert Ruby Objects to Spreadsheets](https://github.com/westonganger/spreadsheet_architect)Can turn any ActiveRecord relation or PORO into an XLSX, ODS, or CSV spreadsheet. The project has matured over the past year and just switched from GPL to MIT.


Jobs

- [Opportunities abound on one of the UK's best Ruby/Rails apps!](http://www.freeagent.com/company/careers/?utm_source=rubyweekly&utm_medium=email)Want to help over 55,000 small businesses be awesome at doing their finances? We have many opportunities for Ruby engineers, tech leads and managers. FreeAgent
- [Senior Engineer at Code for America (San Francisco, CA)](https://www.codeforamerica.org/jobs?gh_jid=502640)Use Ruby for good. Join us and help millions of low-income Americans get an extra $150 / month for food. Code For America

In brief

- [Working with the Evernote API in Rails](https://blog.codeship.com/the-evernote-api-in-rails/?utm_source=rubyweekly&utm_medium=email) tutorial Daniel P. Clark
- [Evented GPIO on the Raspberry Pi with Ruby](http://tenderlovemaking.com/2017/01/17/evented-gpio-on-raspberry-pi-with-ruby.html?utm_source=rubyweekly&utm_medium=email) tutorial Aaron Patterson
- [How to Integrate Bootstrap 4 in Rails 5 Gem-Free](https://rubyplus.com/articles/4571-How-to-integrate-Bootstrap-4-in-Rails-5?utm_source=rubyweekly&utm_medium=email) tutorial Bala Paranj
- [How To Add Active Admin to a Rails 5 API Application](http://www.carlosramireziii.com/how-to-add-active-admin-to-a-rails-5-api-application.html?utm_source=rubyweekly&utm_medium=email) tutorial Carlos Ramirez III
- [Founders/CTOs: We upgrade Rails so that your team doesn't have to.](https://www.upgraderails.com/?utm_source=rubyweekly&utm_medium=email) 
UpgradeRails is a service from the founders of Hint.io and Honeybadger.io. Let our expert team keep your apps up to date so that you can focus on features, not maintenance. UpgradeRailsSponsored
- [Achieving Parallelism in MRI Using I/O-Bound Threads](https://blog.fluentz.io/learn-how-to-achieve-parallelism-with-ruby-i-o-bound-threads-a29c92aff58c#.m1ppaurh3?utm_source=rubyweekly&utm_medium=email) tutorial Mike Kim
- [Shameless: Engineering Our Schemaless Data Store](https://build.hoteltonight.com/a-shameless-plug-for-shameless-engineering-our-schemaless-data-store-681df9008512#.na4m52uh2?utm_source=rubyweekly&utm_medium=email) tutorial 
Shameless is a gem that abstracts sharding and schemaless access to MySQL. Olek Janiszewski
- [Turning a Specific Solution into a General Tool](https://www.saturnflyer.com/blog/turning-a-specific-solution-into-a-general-tool?utm_source=rubyweekly&utm_medium=email) tutorial 
Having written a “call-me-later” class for a specific use case, this post generalizes it for any need. Jim Gay
- [An Easier Way to Think About `self`](http://www.rubyletter.com/blog/2017/01/24/understanding-ruby-self.html?utm_source=rubyweekly&utm_medium=email) tutorial 
`self` is fundamental to understanding Ruby. Or To thine Ruby’s ‘self’, be true. Starr Horne
- [Elixir for Rubyists: A Gentle Introduction](https://startlearningelixir.com/elixir-for-rubyists?utm_source=rubyweekly&utm_medium=email) tutorial Ben Smith
- [Why Rails Developers Should Learn React](https://medium.com/statuscode/why-rails-developers-should-learn-react-5cd651eef6db?utm_source=rubyweekly&utm_medium=email) opinion Hrishi Mittal
- [3 Database Architectures for a Multi-Tenant Rails App](https://rubygarage.org/blog/three-database-architectures-for-a-multi-tenant-rails-based-saas-app?utm_source=rubyweekly&utm_medium=email) opinion 
One database per tenant vs one group of tables per tenant vs a shared schema for tenants. RubyGarage
- [The smartest way to detect and diagnose errors in your Rails apps](https://www.bugsnag.com/platforms/rails/?utm_source=cooperpress&utm_medium=cpc&utm_content=rails-platform-link&utm_campaign=&utm_term=ruby-weekly-20170202) tools 
Automatic Ruby error monitoring helps you prioritize and fix critical bugs and improve your user’s experience. BugsnagSponsored
- [StateInspector: Observe and Report State Changes](https://github.com/danielpclark/state_inspector?utm_source=rubyweekly&utm_medium=email) code 
Can fully inform on object method calls and parameters as well as instance variables before and after. Daniel P. Clark
- [cljs-rails: A ClojureScript Integration for Rails Inspired by webpack-rails](https://github.com/bogdan-dumitru/cljs-rails?utm_source=rubyweekly&utm_medium=email) code 
[ClojureScript](https://github.com/clojure/clojurescript) is a Clojure to JS compiler, well suited for functional programming. Bogdan Dumitru
- [TTY: The Ruby Terminal App Toolkit](http://piotrmurach.github.io/tty/?utm_source=rubyweekly&utm_medium=email) code 
A collection of libraries that offer a fluid interface to creating command line clients. Piotr Murach
- [Underlock: Dead Simple Encryption and Decryption for Your Data from Ruby](https://github.com/metaware/underlock?utm_source=rubyweekly&utm_medium=email) code Metaware Labs
- [Spicy::Proton: Generate Random English Adjective-Noun Word Pairs](https://github.com/schmich/spicy-proton?utm_source=rubyweekly&utm_medium=email) code Chris Schmich
- [Flutterby: A Flexible, Ruby-Powered Static Site Generator](http://www.flutterby.run/?utm_source=rubyweekly&utm_medium=email) code 
Use Markdown, Sass, Slim, etc. Add JSON, YAML or TOML data files and render it all to HTML. Hendrik Mans

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

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