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

This week's Ruby news, issue 335

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

Ruby WeeklyIssue 335 — February 9, 2017

Kjell-Magne Øierud[A Practical Event Sourcing Example in Ruby](http://oierud.net/bliki/EventSourcingInRuby.html)Rather than saving the current state of a system, you save events. The state of the system at any point in time can then be rebuilt by replaying these events.


Richard Schneeman[Ruby Debugging Magic Cheat Sheet](http://www.schneems.com/2016/01/25/ruby-debugging-magic-cheat-sheet.html)From last year, several handy tips on figuring out where methods are defined, opening a project’s dependencies, returning a ‘debugged’ gem to its pristine version, and more.


Sergey Dolganov[Ossert: Evaluating Ruby Gems as a Service](https://evilmartians.com/chronicles/open-source-software-whats-in-a-poke)A look at the ways in which you could judge Ruby gems based on their metadata, and how an attempt to do so led to a new site called [Ossert](https://ossert.evilmartians.io/).


BugsnagSponsored[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=trial-signup-primary&utm_campaign=&utm_term=ruby-weekly-20170209)The most practical way to improve software quality for your users. Automatically detect errors, and get the diagnostic data needed to reproduce and fix critical bugs. Getting started is easy with Bugsnag’s Ruby gem. [Start your free trial](https://www.bugsnag.com/platforms/rails/?utm_source=cooperpress&utm_medium=cpc&utm_content=trial-signup-primary&utm_campaign=&utm_term=ruby-weekly-20170209).

[![Bugsnag\](https://copm.s3.amazonaws.com/6dbacf67.jpg)](https://www.bugsnag.com/platforms/rails/?utm_source=cooperpress&utm_medium=cpc&utm_content=trial-signup-primary&utm_campaign=&utm_term=ruby-weekly-20170209)


Brian J Cardiff[Crystal: As Fast as C, As Slick as Ruby](https://www.youtube.com/watch?v=8FvrBLWUwxc)An hour long Google tech talk about [Crystal](https://crystal-lang.org/), a Ruby-esque language with type inference and native code compilation. _Warning: audio quality isn’t great._


Brad Grzesiak[The Tragedy of 'Maybe' and Ruby](http://bendyworks.com/blog/tragedy-maybe-monad-ruby)An explanation of the benefits of having a Maybe type and why it would never work in Ruby.


Andrei Beliankou and Contributors[Natural Language Processing Resources for Rubyists](http://rubynlp.org/)An epic list of practical, Ruby natural language processing resources from folks that work with it every day.


Tomas Valent[POST != Create and PUT != Update](http://www.eq8.eu/blogs/37-post-create-and-put-update)_“Think twice before using PUT in your routes,”_ says Tomas. When it comes to HTTP verbs if you `PUT` your faith in the wrong spot you may have to `PATCH` your app later.


Jobs

- [Head of Engineering at Newspaper Club (Glasgow, UK)](http://www.newspaperclub.com/support/about/head-of-engineering?utm_source=rubyweekly&utm_medium=email)We're looking for a friendly, experienced tech team leader who can help us transform newspaper printing. Newspaper Club
- [Senior Ruby Engineer at FreeAgent. Edinburgh or Remote UK](http://www.freeagent.com/company/careers/?utm_source=rubyweekly&utm_medium=email)Want to help over 55,000 small businesses carry out their finances? We have opportunities for Ruby engineers and tech leads. FreeAgent
- [Software Engineer - Mid to Senior Level (London, UK)](https://deliveroo.workable.com/jobs/29743?utm_source=rubyweekly&utm_medium=email)Have 2+years experience with Ruby on Rails and take pride in readable, well-designed & well-tested software? Deliveroo are hiring! Deliveroo

In brief

- [Sidekiq Celebrates 5 Years](http://www.mikeperham.com/2017/02/06/five-years/?utm_source=rubyweekly&utm_medium=email) news Mike Perham
- [Getting to Know and Love AWS Elastic Beanstalk Configuration Files](https://medium.com/trisfera/getting-to-know-and-love-aws-elastic-beanstalk-configuration-files-ebextensions-9a4502a26e3c?utm_source=rubyweekly&utm_medium=email) tutorial 
A deep look at using .ebextensions files to configure the EB environment for a Rails app. Maria Luisa Carrion D.
- [GoF Design Patterns Demonstrated and Explained with Ruby](https://github.com/davidgf/design-patterns-in-ruby?utm_source=rubyweekly&utm_medium=email) tutorial David García
- [Solving the 'Pair With Sum' Problem](http://routetomastery.com/blog/2017/01/08/has-pair-with-some-problem/?utm_source=rubyweekly&utm_medium=email) tutorial 
A common interview question approached and benchmarked using three different tactics. Rafik Bennacer
- [3 Tips for Scaling Your Database](http://blog.honeybadger.io/easy_rails_database_scaling_wins/?utm_source=rubyweekly&utm_medium=email) tutorial 
Use UUIDs, avoid counters, and warehouse old data. Starr Horne
- [Service Objects in Rails... And You](https://hackernoon.com/service-objects-in-ruby-on-rails-and-you-79ca8a1c946e#.sgutpzjvt?utm_source=rubyweekly&utm_medium=email) tutorial Rob Race
- [The Yield Default Object Pattern](http://blog.arkency.com/2017/02/yield-default-object/?utm_source=rubyweekly&utm_medium=email) tutorial 
A handy trick to override configuration options for a class. Robert Pankowecki
- [How to Monitor Delayed Jobs with Monit](https://www.linkedin.com/pulse/delayed-jobs-how-keep-them-running-monit-jason-brodie?utm_source=rubyweekly&utm_medium=email) tutorial Jason Brodie
- [Extending git with Ruby](https://revs.runtime-revolution.com/extending-git-with-ruby-874fddffd069?utm_source=rubyweekly&utm_medium=email) tutorial 
Tap into git’s hooks and commands to automate pieces of your git work flow. Filipe Correia
- [[Webinar\] How to be a Performance Driven Engineer](https://www.vividcortex.com/resources/how-to-be-a-performance-driven-engineer?utm_campaign=Ruby%20Weekly&utm_source=ppc) video 
Access this recording on guidelines, insights & principles for a performance-driven engineering mindset. VividCortexSponsored
- [Logging In As Another User with Devise Masquerade](https://gorails.com/episodes/devise-masquerade?utm_source=rubyweekly&utm_medium=email) video GoRails
- [Managing Servers with Ansible](https://www.driftingruby.com/episodes/managing-servers-with-ansible?utm_source=rubyweekly&utm_medium=email) video 
A 14 minute look at how a Rubyist manages deployments with Ansible. Drifting Ruby
- [heroku-ssl: Easily Add SSL to Your Herou App with Let's Encrypt](https://github.com/KMarshland/heroku-ssl?utm_source=rubyweekly&utm_medium=email) code Kai Marshland
- [opal-d3: Data Visualization in the Browser Using Ruby and D3](http://t-a-w.blogspot.co.uk/2017/02/opal-d3-for-in-browser-data.html?utm_source=rubyweekly&utm_medium=email) code 
Opal compiles Ruby to JavaScript so you can interact with things like [D3](https://d3js.org/). Tomasz Wegrzanowski
- [Are you also obsessed with clean code?](https://reinteractive.com/service/application-design-and-development?sid=111) 
We believe clean code results in confident software. Let us be your extended team and inherit good code. ReinteractiveSponsored
- [dry-view: A Functional View Rendering System for Ruby](http://dry-rb.org/news/2017/01/30/announcing-dry-view-a-functional-view-rendering-system-for-ruby/?utm_source=rubyweekly&utm_medium=email) code
- [Minicron: A Monitor, Manager and Web UI for cron Jobs](https://github.com/jamesrwhite/minicron?utm_source=rubyweekly&utm_medium=email) code James White
- [Faker: The Library for Generating Fake Data](https://github.com/stympy/faker?utm_source=rubyweekly&utm_medium=email) code 
Gets an update with [Faker::Demographic](https://github.com/stympy/faker/commit/63e0b0785572635dd7ac102b8bea49c99fc24cbd) which returns races, heights, demonyms, etc. Benjamin Curtis

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

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