#​634 — December 22, 2022

Read on the Web

This is the final issue of 2022 as we're taking a break for Christmas. We usually finish off the year with a roundup but there's been enough news we're doing things a bit differently. The top half of this issue is the normal news, with some 2022 roundups following on. Happy holidays!
__
Peter, Glenn, and the Cooperpress team

Together with  Courier logo

Ruby Weekly

Rails Making Docker a First Class Option — Despite being an opinionated framework, Rails has generally been less concerned over how you deploy it, so it’s interesting to see effort placed into making it easy to run Rails anywhere containers are welcome via ‘Docked Rails.’ (I think an opportunity was missed to call it Whaleway..) Dockerfiles will also be coming by default in future versions of Rails.

Ruby on Rails Project

On the topic of Rails, Emmanuel Hayford has put together a vast array of developments leading up to an eventual Rails 7.1 release.

The State of Notifications Report - User Preferences — What is preventing us from designing a notification system that facilitates a better experience? Nobody wants to receive marketing notifications, but they are upset if they miss important notifications. We can do better.

courier․com sponsor

RubyGems Introduces Hardware Security Token and Passkey Support — A way to keep gems secure is to ensure only the right people can publish new versions – now there are two new ways to ensure that. Once registered with RubyGems, a hardware token can be used as a second way to verify identity. Passkeys, built upon WebAuthn, provide a similar mechanism but without a separate physical device.

Colby Swandale (RubyGems)

Ruby 3.2 Introduces Enumerator.product — While we’re all awaiting the release of Ruby 3.2 on Christmas Day, why not learn about another new feature to easily get the Cartesian product of any number of enumerable objects?

Simon Chiu

QUICK BITS

Now it's time for a look back at some of the most popular items from 2022!

🏆 Top Articles and Features of 2022

Ruby Evolution: New Ruby Features Added in v2.0–v3.1 — Despite facing the onslaught of Russia's invasion of his country this year, Victor has done so much for the Ruby community including with this resource covering the key changes to the language in v2.0 onward. This is a fantastic way to check your knowledge of what you might call ‘modern’ Ruby.

Victor Shepelev

New to Ruby 3.2? Data.define — There was originally a proposal for bringing native value objects to Ruby but things progressed quickly and Data will appear in Ruby 3.2. Brandon shows us how it works.

Brandon Weaver

How to Build Your Own Rails Generator 👷🛠️🛤️ — Generators are a powerful feature you can use to automate routine tasks in Rails—but do you know how to make your own?

Honeybadger sponsor

How a Routine Gem Update Ended Up Creating $73k Worth of Subscriptions — The creators of a SaaS product noticed odd behavior after a seemingly innocuous update that exposed a major code smell in their source.

Julien Khaleghy

Why Ruby Has Symbols — We love articles like this where someone who clearly loves Ruby digs into a well-known and essential part of the language and exposes all the technical details of how it’s done. (Long-time Rubyists may even remember a pre-symbol era of Ruby..)

Dmitry Tsepelev

A Cookbook of Ruby One-Liners — Ruby is a fantastic language for one-liners, whether in IRB or from the command line. We’ve linked to this cookbook before but it continues to prove useful.

Sundeep Agarwal

🛠 Top Code & Tools of 2022

Sidekiq 7.0 — Ruby’s most popular background job execution system got a major release with some “splendiferous” new features, such as new graphs and metrics, and an embedded mode.

Mike Perham

Puma 6.0 'Sunflower'Puma is arguably the leading HTTP server for Rack based apps and 6.0 was a significant release with performance improvements, experimental Rack 3 support, support for Sidekiq 7 ‘capsules’, and more. Puma 6.0.1 just dropped yesterday, too.

Puma Contributors

Stuck on Heroku-18? Need to Upgrade but Don’t Have Time? Contact Us

FastRuby.io | Ruby and Rails Upgrade Services sponsor

rstfilter: VS Code Extension to See Execution Results Line by Line — It’s always interesting to see a new tool from a Ruby core team member and you might find this one useful if you’re a VS Code user and enjoy a bit of puts/p-style debugging.

Koichi 'ko1' Sasada

Hanami 2.0: The Better, Faster, Stronger Web Framework — v2.0 of the up and coming Ruby webapp framework represents a huge amount of work with a new router, improved app structure, type-safe app settings, and a lot more. Want to give it a spin? Here’s a ‘Getting Started’ guide.

Luca Guidi

RPush 7.0: The Push Notification Service — An abstraction over numerous push notification systems, including those from Apple, Google, Amazon, and more. This year's 7.0 release added Ruby 3.1 and Rails 7.0 support.

Ian Leitch

Don’t Let Your Issue Tracker Be a Four-Letter Word. Use Shortcut

Shortcut (formerly Clubhouse.io) sponsor

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. The examples here show it off nicely. GitHub repo.

Kamil Giszczak

Howitzer: An Acceptance Testing Framework for Webapps — Ruby powered but aims to be high level enough to work with webapps built pretty much using anything, whether PHP, Java, or .NET. You can pick from Cucumber, RSpec or Turnip for the BDD side of things. Provides a lot of structure. GitHub repo.

StronqQA LLC

Pitchfork: Shopify's Optimized Ruby HTTP Server — A pre-forking HTTP server for Rack apps designed to minimize memory usage by focusing on Copy-on-Write performance. Don’t rip out Puma from your apps just yet, though, as it’s still considered experimental. There’s more about the creator’s motivation in this thread.

Jean Boussier (Shopify)

Jobs

Software Development Educator — DPI (Full Time, Hybrid, Chicago) — Got a passion for software development, beginner focused education, and social impact? Join us in our mission to transform lives and diversify tech talent.
Discovery Partners Institute — University of Illinois System

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

📺 Top Videos of 2022

▶  Let’s Recreate Notion in Rails — It was great to see a well known name from the early days of Rails make an appearance. In this screencast he set out to create a note taking system in Rails 7.

Dr. Nic Williams

▶  Debugging Rails Apps with Visual Studio Code — Ruby 3.1 included a new debugging gem and one benefit is integrating with editors like VS Code. In this 20 minute screencast, Justin showed how to use debug.gem along with VS Code to work on a Rails app.

Justin Searls

▶  A Rails Performance Guidebook: From 0 to 1B Requests Per Day — A senior engineer at Zendesk gave a talk at RailsConf 2022 reflecting on Zendesk’s use of Rails and a variety of high level principles you can adopt when scaling your own apps (even if not quite so far).

Cristian Planas

▶  Roda: Simplicity, Reliability, Extensibility and Performance — The creator of Roda and Sequel gave a live online talk for RubyConf Pakistan about what Jeremy himself called ‘Ruby’s 4th most popular Web framework’ including its design approach and why you might want to use it.

Jeremy Evans