#427 — November 29, 2018

Read on the Web

Ruby Weekly

Modulation: Explicit Dependency Management for Ruby — An interesting experiment that feels a bit like JavaScript’s import syntax. Intended for managing dependencies between source files inside Ruby apps and not for third-party dependencies.

Sharon Rosner

Bundler is Built Into Ruby 2.6 — What the inclusion of Bundler in Ruby means, including, what happens when you install Bundler as a gem. To me, this feels as big a step as when RubyGems became part of Ruby in 1.9.

Noah Gibbs

Monitoring and Distributed Tracing for Ruby Apps — Utilize flame graphs, search and analytics for distributed traces, and automated anomaly detection to optimize Ruby application performance. Monitor application data alongside infrastructure metrics and logs in real-time. Try Datadog free.

Datadog sponsor

Finding Ruby Performance Hotspots via Allocation Stats — An interesting walkthrough of how a developer discovered and fixed some performance issues in ruby_parser by investigating object allocations.

Justin Collins

Rails 4.2, 5.0, 5.1, and 5.2 Security Fix Releases — Rails 4.2.11, 5.0.7.1, 5.1.6.1 and 5.2.1.1 have been released with some important security fixed in these, so upgrade pronto.

Official Rails Blog

An Official 'Snap' Package of Ruby Now AvailableSnaps are self-contained software packages for Linux distributions that avoid some of the issues other package systems have with dependencies and now Ruby has its own official ‘snap’ package. Snapcraft link or GitHub repo.

Hiroshi Shibata

Securing Sensitive Data in Rails — A rather comprehensive look at what data is sensitive and how to secure the many ways of accessing and storing that data.

Andrew Kane

💻 Jobs

Senior Ruby Developer — We are a rapid growing startup in the construction space, helping companies to streamline field documentation and communication.

CompanyCam LLC

BackerKit Is Looking for a Sr. Developer (SF) — The leading platform for creators that want to focus on creating. We're building some neat stuff, join us. Check out our team values here.

Backerkit

Join Our Career Marketplace & Get Matched With A Job You Love — Through Hired, software engineers have transparency into salary offers, competing opportunities, and job details.

Hired

📘 Articles & Tutorials

Fibers and Enumerators in Ruby: Turning Blocks Inside Out — Lots of posts on fibers recently…here the focus is on flow control and how Fibers compare to Enumerables.

Julik Tarkhanov

Why On Earth Do Fibers Exist?“Fibers were created so one could implement generator pattern” What’s the generator pattern? Read on.

Nikita Misharin

Advanced Ruby Exception Handling — Did you know that, as of Ruby 2.1, Exception#cause lets you find the original exception that led to another?

Dimitrios Lisenko

How Well Do You Know Ruby's Exception System? — Ruby's exception system is more powerful than many people realize. Download our free eBook to level up from novice to expert. 🤘

Honeybadger sponsor

Stopping Slow Client DoS Attacks with Puma on Passenger 6 — A ‘slow client’ attack is when an attack opens up HTTP connections and then operates very slowly, consuming resources of the server. Passenger 6 makes it easy to avoid this problem.

Camden Narzt (Phusion)

How To Use Heredocs in RubyHeredocs (a.k.a. here documents) are document-style multiline string literals.

Jesus Castello

dup vs clone in Ruby: Understanding The Differences — Worth revising if you want to copy objects properly and not be surprised by the result.

Jesus Castello

Four Things About Pry, The Powerful Ruby REPL/Console — If you’re still not using Pry, maybe these benefits could sell you on the idea.

Bruno Jacquet

Rails Scaffolding and TDD Are Incompatible — Principally because scaffolding requires you write tests after. But this isn’t a big problem, says Jason.

Jason Swett

'We Don't Have Time to Write Tests'“No matter what your scenario, don’t fall into the fallacious belief that skipping tests saves time.”

Jason Swett

🔧 Code & Tools

JRuby 9.2.4.1 Released

The JRuby Team

MetaCLI: 'Lazy' Command-line Option Parsing — Dynamically figures out command line arguments and options from method definitions.

Roman Le Négrate

Video Encoding, Storage, and Delivery in A Single Platform

MUX sponsor

Rails 5.2.2.rc1 Released — The 5.2.2 release candidate is out now, and if no regressions are found, the final release can be expected early next week.

Official Rails Blog

Scenic: Versioned Database Views for Rails — Bring the power of SQL views to a Rails app without having to switch to a full SQL schema format.

Scenic

Instagram Crawler: An Instagram Photo Downloader — Be careful of TOS and data protection issues here and use responsibly.

Leon Ji

Rack::Attack: Rack Middleware for Blocking and Throttling — Continues to get frequent updates and releases.

Kickstarter