#474 — October 31st, 2019

Read on the Web

Ruby Weekly

HTTPX: A Ruby HTTP Library 'for Tomorrow' — httpx has a slew of features, the most interesting being HTTP/2 support and concurrent requests by default.

HoneyryderChuck

A Quick Speed Update on Ruby 2.7 Preview 2 — Last week we announced the release of Ruby 2.7 preview 2 (final due on Christmas Day as usual) and Ruby benchmarker extraordinaire Noah has already put it through its paces.. don’t get too excited, it’s barely faster than 2.6 so far.

Noah Gibbs

eBook: Best Practices for Optimizing Postgres Query Performance — Learn how to get a 3x performance improvement on your Postgres database and 500x reduced data loaded from disk in this free pganalyze eBook.

pganalyze sponsor

JRuby 9.2.9.0 Released — The popular JVM-based Ruby implementation takes a few more baby steps forward with the complete Ruby 2.5.7-level standard library, RubyGems 2.7.10, thread safety improvements, and better Java module support.

JRuby Core Team

Taming Large Rails Applications with Private ActiveRecord Models — The biggest gain here is a ‘privacy by default’ approach to models (and their underlying data) but there are peripheral benefits around simpler testing, among other things.

Kelly Sutton

Managing PostgreSQL's Partitioned Tables with Rubypg_partition_manager is a new gem for maintaining partitioned tables that need to be created and dropped over time as you add and expire time-based data in your app.

Benjamin Curtis

💻 Jobs

Senior Web Developer at Dr. Bill — Dr. Bill helps Canadian doctors save time by streamlining their billing. Help lead our team into the next phase of growth.

Dr.Bill

Have You Tried Vettery? — Vettery specializes in tech roles and is completely free for job seekers. Create a profile to get started.

Vettery

📘 Articles & Tutorials

Streaming Large ZIP Files in Rails — A thorough article that is download framework agnostic. I especially enjoyed the content around HTTP headers and how they affect the browser’s behavior.

Piotr Murach

Using Bind Parameters in Active Record for Security and Performance — Arel makes it possible to formulate such complex queries now that writing your own SQL is rarely necessary, but if you do..

Rohit Kumar

WebSockets: A Deep Dive into the Underlying Protocol of Action Cable — Learn about the nitty gritty technical details and limitations of WebSockets when building apps with Action Cable.

Ably sponsor

Improving Performance with Flame Graphs — This post explains a quick and easy set up for Rails alongside an explanation of how to read a flamegraph to find opportunities for optimization.

Howard Wilson

Ruby 2.7 Adds inherit As An Optional Argument to Module#autoload?

Romil Mehta

Go Is The New Ruby(?) — This is not so much a comparison to Ruby as it is to Rust, citing the happiness of a Ruby developer is analog to their Go counterpart.

Frank Denis

9 Industries Where Flagship Companies Choose Ruby on Rails — The list of industries is impressive, as are the companies within. Another arrow in the “Rails ain’t dead” quiver.

Rubyroid Labs

🛤 Small Things Rails 6 Added

The folks at BigBinary write frequent blog posts covering the non-headline features of Rails 6 (which came out two months ago now) and while we include them from time to time, they have so many that we're doing a round-up here 😄

🛠 Code and Tools

RubyCritic 4.2.0: Now With SimpleCov SupportRubyCritic is a tool for producing reports about your Ruby code’s quality. It uses other tools like Reek, Flay, Flog, and now SimpleCov to produce reports about things like complexity, code smells, and test coverage.

Fast Ruby Blog

full_request_logger: Make Full Request Logs Accessible Via Web UI — Writes Rails logs to an auto-expiring Redis key. “This is ideal for when you’re testing a feature in the wild with production-levels of data, which may reveal performance or other issues that you didn’t catch in development.”

Basecamp

Monitoring and Distributed Tracing for Ruby Apps. Try Datadog Free

Datadog APM sponsor

Slate: Beautiful Static Documentation for Your API — Built on top of Middleman, Slate is being used by an impressive list of companies, so it’s probably good for you, too.

Slate

Invisible: Override Methods While Maintaining Their Original Visibility — So, you can’t accidentally make a private method public by overriding it. Neat.

Chris Salzberg

Hashie 4.0: Classes and Mixins That Make Hashes More Powerful — Bring things like coercion, access methods, indifferent access, and more to hashes quickly. I’ve seen this used as a dependency in many libraries.

INTRIDEA Inc.