🇺🇦 #​597 — March 31, 2022

Read on the Web

Ruby Weekly

On Sorbet, Stripe’s Type Checker for RubySorbet isn’t new (it was open sourced in 2019) but Stripe is keen to share its successes with it and tell the story of why it's used over their entire Ruby codebase – some 15 million lines of code. Maybe it’s time to give it a try, if you haven’t yet?

Jake Zimmerman (Stripe)

How to Use Active Record in a Library — (or, more broadly, ‘not in a Rails app!') — While there are extensions to bring Active Record into things like Sinatra or Roda, what if you want to use AR in regular Ruby projects without any embellishments? It’s more work than you’d hope, but quite doable.

Postmodern

Video for Ruby: Build Video in Just Two API Calls — Mux is API-first video infrastructure for developers. Live and on-demand video stream beautifully to any device, plus analytics are built-in so you can track engagement.

Mux sponsor

IN BRIEF:

  • 🪦 Despite being under four years old, Ruby's 2.6 branch is, as of today, considered 'end of life' meaning it's "not supported by the ruby-core team any longer and does not receive any fixes."

  • Passenger 6.0.13 has been released, adding support for Rocky Linux, Alma Linux, and FreeBSD 13.

  • Registration for RailsConf 2022 is open with both in-person (Portland, Oregon) and virtual (your place!) ticket options.

SokoAdventure: A Ruby Powered Sokoban-Style Game — Push blocks, unlock doors, avoid enemies.. certainly more of a challenge than most Ruby programs ;-) The source is here and uses MiniGL and Gosu for rendering. If this gives you any hankering to do some gamedev of your own, the Ludum Dare game jam is on this weekend.

Victor DS

Mastodon 3.5: The Federated, Ruby-Powered Twitter-a-Like — The popular Rails-based ‘microblogging’ system continues to improve and has now gained a feature even Twitter doesn’t have.. the ability to edit posts! GitHub repo and release notes.

Mastodon Team

Jobs

AI & Software Engineers — Sticker Mule is the Internet's most "kick ass" brand. Our software team operates from 17 countries, and we're always looking for more exceptional engineers.
Sticker mule

Backend Engineer – Ruby on Rails (London or Remote) — Ctrl Group builds digital health products to bring personalised health care to everyone. Apply now to join our brilliant team.
Ctrl Group

The Freedom of Freelance with the Security of Full-Time — Top developers join Toptal for a flexible schedule, more free time, and great opportunities. Apply now.
Toptal

📕 Articles & Tutorials

Reducing Leaky Abstractions Introduced by Active Record — A demonstration of using a class method to tidy things up when you’re not quite ready to go all the way to creating query objects.

Josh Clayton

Switching From .env Files to Rails Credentials — Formerly known as secrets, ‘credentials’ provide a way to store secrets within a Rails app in a safe manner.

Marina Joranhezon

Five Tips to Design Transactions in Rails the Right Way — Transactions are a fundamental part of maintaining data integrity, but add another level of complexity that can introduce problems into your app.

Paweł Dąbrowski

A Rubyist's Walk Along the C-side (Part 8): Exceptions and Error Handling — Peter is back with the latest sea-front outing in his rather technical series on writing or working with C-based Ruby extensions.

Peter Zhu

Project Management for Software Teams Has Never Been Easier

Shortcut (formerly Clubhouse.io) sponsor

▶  An Hour's Interview with David Heinemeier Hansson — If you want a Rails or code heavy show, this one isn’t for you as it focuses more on topics like motor racing, politics, and the pros and cons of Twitter.

Code with Jason Podcast podcast

Rails 7's Support for Deferrable Foreign Key Constraints in Postgres
Murtaza Bagwala

🛠 Code & Tools

after_commit Everywhere: Use Active Record Transactional Callbacks Outside of Models — Not just outside of Active Record models but, well, anywhere in your app. Check the examples in the README to get the idea.

Andrey Novikov

ParallelTests 3.8: More Cores == Faster Tests — Speed up Test::Unit, RSpec, Cucumber, or Spinach by running in parallel across multiple cores. With 3.8, support is dropped for Ruby 2.5 and 2.6 but improved for 3.0 and 3.1.

Michael Grosser

“POST a JSON Payload” and You’re Done with Webhooks Right?😬 — Wrong! Hook Relay gives you reliable inbound and outbound webhooks with debugging in minutes. Learn why you need it now.

Hook Relay sponsor

Jekyll 3.9.2 Released — Say hello to Ruby 3.0 and 3.1 support in the popular static site generator.

Jekyll Core Team

Down 5.3: Streaming HTTP Downloads with 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ć

Avo 2.0: An Admin Panel/Dashboard System for Rails Apps — Powered by Hotwire. Commercial but the source available version can be used for noncommercial purposes for free.

Avo

Parallel: Parallel Processing Made Simple and Fast — Uses processes, threads, or Ractors (Ruby 3.0+ only) to cover all bases.

Michael Grosser

Thanos: A Prototype Ruby to Go Transpiler — Very early days here but I like the idea (yes, we have a sister Go newsletter).

Jonathan Paul Lukens

sidekiq-limit_fetch 4.0: Sidekiq Strategy to Support an Advanced Queue Control
Dean Perry

Fae 2.2: A Rails CMS Engine
FINE

Prometheus Instrumentation Library for Ruby Apps v4.0
Prometheus