#634 — December 22, 2022 |
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! |
|
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 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? Brandon Weaver |
|
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 |
|
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 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 |
|
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) |
|
📺 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 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 |