#​558 — June 24, 2021

Read on the Web

Ruby Weekly

Rhizome: A JIT for Ruby, Implemented in Pure Ruby — Described as a “pedagogical JIT compiler” (i.e. an experiment for learning purposes), Rhizome exists to let you dig deeper into how JIT works by providing experiments and documents you can run and read.

Chris Seaton

▶  Implicit to Explicit: Decoding Ruby's Magical Syntax — Does a Rails model or config file ever seem like 'magic'? Ruby’s implicitness makes it great for readability and DSLs, but can also lead to confusion to what’s going on under the hood. This is an engaging and easily followed 37-minute talk aimed at improving your Ruby reading comprehension, plus there are some Pry tips you can use to ‘demystify’ any Ruby code.

Justin Gordon

Spend Less Time Debugging and More Time Building with Scout — Scout APM uses tracing logic that ties bottlenecks to source code so you know the exact line of code causing performance issues in minutes. See for yourself why Scout is a Ruby developers’s best friend with a free 14-day trial, no credit card needed.

Scout APM sponsor

IN BRIEF:

  • RubyGems 3.2.21 has been released.

  • There's a new list of the best Ruby blogs and we're flattered to be #1 (despite not being a blog 😁) – some fine entries on the list, however.

  • Jeremy Evans' new Ruby book Polished Ruby Programming comes out in two weeks. We're hoping to review it soon, but you can already pre-order at your book seller of choice.

Custom 'Cops' for RuboCop: An Emergency Service for Your Ruby Code — Learn to write custom rules for RuboCop, test them, and extract into a gem for reuse.

Dmitry Tsepelev

▶  The Debut of The Ruby on Rails Podcast — The Ruby on Rails Podcast has been around since almost Rails’ inception in various guises (Scott Barron and Geoffrey Grosenbach were other hosts back in the day) and Brittany Martin has done a great job of hosting it in the past few years. Happily, the 5by5 podcast network has encouraged her to go independent and Brian Mariani joins as a regular co-host. We look forward to more shows.

Brittany Martin and Brian Mariani podcast

📕 Tutorials

A Story of Rails Encryption — The ‘nerve wracking’ story of adding database encryption to HEY (right before launch), Rails, and then to HEY again (well after launch) that shows how Rails gains from production projects like this.

Jorge Manrubia

Rails Security Threats: Authentication — Diogo Souza continues his series on Rails security by looking at broken authentication and sensitive data exposure, along with what you can do to avoid such issues.

Diogo Souza

▶  How to Determine Production Server Specs with Nate Berkopec — Nate seems to be on the podcast circuit right now (we linked to him on the Bike Shed podcast last week) but if you want to get up to speed with performance and deployment (on your own metal) matters, it’s time well spent.

Rails with Jason Podcast podcast

Complete Peace of Mind Rails Hosting — If you need 100% peace of mind Rails hosting, OpsCare is for you. We keep your application online and performing, 24 hours a day, 7 days a week.

OpsCare by reinteractive sponsor

▶  A GitHub Workflow For Automated Gem Releases — A brief 2-minute screencast demonstrating a pipeline Tom created for automating the release of one of his gems (in case you wish to replicate such a process). The code behind the action itself is here.

Tom Dalling

Using Tags with Sidekiq Jobs — Mike tells us about a feature added in Sidekiq 6. “I haven’t told people that tags exist. Oops. Here is your notification.”

Mike Perham

Speeding up Rails 7 Controller Actions with #load_asyncload_async uses a separate thread (from a background thread pool) to execute a query which can provide a healthy speedup in some scenarios.

Krishna Singh

How to Calculate the Mode and Median Averages of a Ruby Array
Andy Croll

Jobs

Senior Software Engineer (Remote in the US) — Snapdocs is now a Unicorn with a $1.5B+ valuation. We’re a SaaS product disrupting the mortgage and real-estate industry. Join our growing distributed team. ROR, Go, Postgres, React, AWS.
Snapdocs

Calling Sr. Software Engineers! SaaS + Growth + Culture @TeamSnap — Want to build a product with 25+ million users on a remote-first team? TeamSnap is the place for you! Party parrot emojis welcome.
TeamSnap

Find Ruby Jobs with Hired — Take 5 minutes to build your free profile & start getting interviews for your next job. Companies on Hired are actively hiring right now.
Hired

🛠 Code and Tools

d3-rails 7.0: Bringing D3.js to RailsD3 is perhaps the leading JavaScript data visualization library and something I’m more used to covering in JavaScript Weekly :-) This brings it more easily into your Rails projects, and this week’s update upgrades things to D3 7.0 standards.

Markus Fenske

Heya 0.5.0: A Campaign Mailer for Rails Apps — Think of it “like ActionMailer, but for timed email sequences.” AGPL licensed.

Honeybadger

Semantic Logger: A Logging Framework for Ruby and Rails — The goal here is to provide richer logs for both humans and machines complete with color, forwarding, and extensive contextual information available to add to the logs. GitHub repo.

Reid Morrison

Application Dependencies Outdated? We Can Help

Hint sponsor

InvoicePrinter: Super Simple PDF Invoicing — A server, command line program and pure Ruby library to generate PDF invoices. It’s been around years but continues to get updates.

Josef Strzibny

ActiveRecord::JSONValidator: Validate JSON Attributes Against a JSON Schema
Mirego

ActiveType: Make Any Object 'Quack' Like an Active Record Object
Makandra