#520 — September 24, 2020

Read on the Web

Ruby Weekly

▶  Triage with Me: 11 Issues and 2 PRs in 1.5 Hours — The creator of CodeTriage takes us behind the curtain to see how he triages and works with issues on open source projects. Well worth watching if you’re curious how to productively work on open source projects or are just curious how another experienced developer does so.

Richard Schneeman

Under Deconstruction: The State of Shopify’s Monolith — This is a long post about the status of Shopify’s move to modularity with some wonderful lessons learned and insights on how they got here and where they are going based on what they’ve learnt.

Shopify Engineering

Reduce Test Time Without Sacrificing Security 🚀 — Run your build infrastructure on your terms. Self-hosted agents mean the choice between the speed of cloud-native and security of on-prem is over. Buildkite works with all source code tools, languages and platforms, speeding up mobile tests at scale. Try now.

Buildkite sponsor

Puma 5: We Made Puma Faster With Sleep Sort — Puma 5 includes three experimental performance enhancements that should reduce latency at high loads and memory usage. They need people to try them and report back, so upgrade and get experimenting.

Nate Berkopec

▶  Russ Hanneman from Silicon Valley Loves StimulusReflex 3.3 — If you like the TV show Silicon Valley this will give you a laugh as the creators of StimulusReflex, a way to bring reactive, real-time features to Rails, got the Russ Hanneman character to endorse their 3.3 release 😂 The 3.3 release focuses on Morphs, a fresh way to think about how StimulusReflex updates your live pages. Even if you don't like this, it's always fun to see an open source project trying a novel way to get the word out. GitHub repo.

YouTube

💻 Jobs

Senior Software Engineer (SF/Remote) — Join our team, and help us make mortgage closings fast, secure, transparent, and error-free.

Snapdocs

Staff Engineer (SF) — Join our team, and help us make mortgage closings fast, secure, transparent, and error-free.

Snapdocs

Find a Job Through Vettery — Create a profile on Vettery to connect with hiring managers at startups and Fortune 500 companies. It's free for job-seekers.

Vettery

ℹ️ Interested in running a job listing in Ruby Weekly? There's more info here.

📘 Articles & Tutorials

Writing a Ractor Base Job Scheduler — Another Ractor article (which is great), this one focusing on the most parallel-worthy of tasks: job processing. There are some issues, but it’s still very promising.

Gustavo Caso

Interacting with NFC on a Raspberry Pi from Ruby with Taptag — Near Field Communications (NFC) is a wireless point-to-point protocol and Taptag works with the Waveshare PN532.

Justin Piotroski

Be Ahead of the Curve — Upgrade Your Rails Application — Snazz things up with Multiple Database support, Parallel Tests, better JavaScript ecosystem support and much much more.

Kodius sponsor

Tracking a PaperTrail Version from a Single Request with Correlation UUIDsPaperTrail provides a way to track/audit changes to data managed by Active Record models. Here’s how to go a step further from just tracking the history of an object to the specific request that caused changes.

Karol Galanciak

Modern Rails Flash Messages — A two-part series that uses ViewComponent, Tailwind CSS, and Stimulus to make nice flash messages complete with features like soft-delete.

Petr Hlavicka

The defined? Keyword in Rubyblock_given? may be slower than defined?(yield) but I know which is easier to read.

Mehdi Farsi

Automating Rails Server Provisioning and Deployment with Ansible and Capistrano

Axel Kee

Writing Good Test Descriptions

Guilherme Simões

🛠 Code and Tools

Browser 5.0: A Browser Detection Library — A handy API for browser detection from within Ruby. Pass in a user agent string and query it in various ways (e.g. browser.webkit? or browser.device.name). Includes ActionController integration, as well as optional Rack middleware for agent-based redirections.

Nando Vieira

Rubyspeed: Compile Basic Ruby Functions to C — Certainly an experimental work in progress, this project compiles (the most primitive of) Ruby functions to C which results in a sizable performance boost. A fun tangent is that the Hacker News post about this project turned into a big debate about the continuing relevance of Ruby (or not) 😏

Alexander Thiemann

Quickly Resolve Ruby App Issues in Datadog with Distributed Tracing

Datadog sponsor

Packwerk: Enforce Boundaries for More Modular Rails Apps — A gem created at Shopify that can be used to enforce boundaries and modularize Rails applications.

Shopify

Down 5.2: Streaming HTTP Downloads using net/http, http.rb or wget — If you need to download files from Ruby, this offers a more resilient option than most usual HTTP clients by letting you stream downloads or even call out to wget.

Janko Marohnić

Stripe::Rails 2.0: A Rails Engine for Integrating with Stripe

SengMing Tan