🇺🇦 #​606 — June 2, 2022

Read on the Web

Ruby Weekly

Shale: An Object Mapper and Serializer for JSON, YAML and XML — A library for converting JSON, YAML and XML into Ruby data structures as well as heading back the opposite way. It’s neat to have this all wrapped up into a single library and with schema support too. The examples here show it off nicely. GitHub repo.

Kamil Giszczak

To Thread or Not to Thread: An In-Depth Look at Ruby’s Execution Models — Jean lays down how Rails uses memory in both thread- and process-based contexts, which metrics are really useful, how to optimize Copy-on-Write, and what future changes will help. (Spoiler: Ractors is not our savior.)

Jean Boussier (Shopify)

A Complete DevOps Solution for Your Rails App — OpsCare is a DevOps solution for Rails apps. We give you 100% peace of mind Rails hosting and support. Built on our 12-factor stack, we provide deployment, scaling and monitoring tools, so you're in control, and we keep it performing, 24/7.

OpsCare by reinteractive sponsor

📊  The Success of Rails: Ensuring Growth for the Next 100 Years — A long-time Rails core team member and Shopify employee makes a compelling case for contributing to Rails from both individual and company contexts. The Rails evolution is unparalleled in software and its future is still bright. Note that this is just a slidedeck but goes into depth on how the team works, how to submit a PR, and similar practical concerns.

Eileen Uchitelle

Quick Bits:

Jobs

Sr. Full Stack Engineer (Product Focused) — We're a YC backed company that makes selling to government more fair. Customers include names like HP and Cisco and we're growing.
Govly

Ruby Full Stack Software Engineer (Paris or Remote) — Join a strong and collaborative team and have a direct impact on software used by top brands to manage their customer relationship.
RingCentral Engage Digital

Senior Ruby on Rails Developer (Remote-Friendly) — Build the next workplace social network with an international remote-first team (Rails/Stimulus/Tailwind/Heroku).
Candor

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

📕 Articles & Tutorials

▶  How I 100x'd Bulk Import Speed in Rails with Some Gnarly SQL — A deep explanation of improving bulk import performance on a large-scale Rails app to less than 1% of the original processing time. Digs into lots of Rails API areas and Postgres features too. It’s long but a detailed look behind the scenes of a tricky task. There’s a codebase provided you could use as an exercise with your own team too.

Ryan Townsend

Avoid Test Delays and Speed Up Your Dev Cycle by Mocking Callbacks — It takes more work to mock a method that has a callback block than one without, but it’s worth it, says Caleb.

Caleb Hearth

Using Hotwire with Rails ⚡🚄 — Hotwire is a way to build modern web applications without much JavaScript. Here’s a quick intro on how to use it.

Honeybadger sponsor

How Cookpad Improved Its Rails App’s Performance with Conditional GET Requests — As with most caching stories, the payoff is significant but the gotchas (cache invalidation is famously hard) are real, so tread carefully into these caching waters.

Gavin Morrice

▶  How to Build a Calculator with Hotwire and No JavaScript — Quick 5 minute screencast showing an interesting use of Hotwire for when you really want the server in the loop (or you just want to avoid writing JavaScript!)

Cezar Halmagean

Event Streaming in Rails with Kafka — Getting started with Kafka can be daunting, but this post will show you how easy it is to get a dev environment up so you can have a robust, isolated, flexible architecture.

David Sanchez (Honeybadger)

A Story About Test Coverage Metrics — A simple reminder that test coverage doesn’t equal good coverage of the problem space.

Sandro Duarte and Mauricio Menegaz

Why DSLs Are a Necessary Part of Learning Rails Testing
Jason Swett

🛠 Code & Tools

MITIE: Named-Entity Recognition for Ruby — For example, given a sentence like “Pat met Kelly at Walmart”, this library tags Pat and Kelly as ‘PERSON’ and Walmart as ‘LOCATION’. Be aware the models it relies upon are quite large and must be downloaded separately, but links are provided to models in English, Spanish and German.

Andrew Kane

Rouge 3.29.0: A Pure-Ruby, Pygments-Compatible Code Highlighter — This week’s release adds support for Idris, Lean, Syzlang and Syzprog. Ruby 3.1 is now also part of their CI.

rouge-ruby

Ruby Transactional Notification Management System Saves Time and Money

Courier sponsor

Paramoid: A New params Sanitization Library — Built on top of strong parameters as a way to sanitize complex params structures with a DSL. It’s early days for this (so the API may change) and the author is seeking feedback.

monade

Render API 0.1: A Ruby Interface for Render.com's API — Render is one of a new(ish) generation of hosting platforms/Heroku replacements.

Pat Allan

Forme 2.1: HTML Form Generation Library — A structured way to create HTML forms with no external dependencies and a simple API.

Jeremy Evans

Koala 3.2: A Ruby Library for Facebook's Graph, Marketing, Atlas, and Other APIs — If you need to work with Facebook in some way..

Alex Koppel

Sunspot: Solr-Powered Search for Ruby Objects“Provides a simple, intuitive, expressive DSL backed by powerful features for indexing objects and searching for them.”
Sunspot

postgres-copy: Simple Postgres COPY Command Support in Active Record
Diogo Biazus

Workflow 3.0: Finite State Machine-Inspired API for Modelling Workflows
Vladimir Dobriakov