Short Ruby News - Edition #29
Briefly about everything happening in Ruby world - week 6 of 2023 (web edition)
You can jump directly to a section:
🧰 Gems, Libraries, and Updates
🤝 Related (but not Ruby-specific)
More content: 🎥 🎧 🗞 (articles, podcasts, videos, and newsletters)
🤗 Founding Members supporting this newsletter
You can subscribe for free
Or you can consider upgrading to paid
Investing in the Ruby Weekly Newsletter as a paid subscriber is a valuable way to support the community around you. For ~1.5$/week (6.5$ per month), you can support its growth and ensure that high-quality information about the latest developments in Ruby continues to be available to everyone, both paying and non-paying subscribers alike.
If you consider upgrading and want more information, please read Why to subscribe to paid
👐 Our Community
👐 We have to deal with hard truths, and one of these is an invasion happening in Ukraine, and we know at least one of our community members Victor Shepelev is there, facing complex challenges every day.
Yukihiro Matz Matsumoto shared Victor’s article that I invite you to read about Participating in programming language's evolution during interesting times
👐 🎉 Peter Cooper announced that Ruby Weekly reached 640 issues 🎉 Congrats, and I wish they would release at least 640 more numbers.
Read the 640th issue of Ruby Weekly
👐 Morgan Fogarty asked for recommendations of woman heroes in Rails community:
Here is the list of Twitter accounts from replies in a random order: @leenyburger, @amyhoy, @eileencodes, @adriannakchang, @sandimetz, @BrittJMartin, @saronyitbarek, @LiliVerrot, @JemmaIssroff, @nodunayo, @b0rk, @jessitron, @HeyChelseaTroy, @vaidehijoshi, @OngMaple, @womenonrails, @juuh42dias, @kytrinyx, @the_thagomizer, @lindaliukas
👐 Ruby Central announced they offer Coaching Sessions for people who want to talk at the conference. Register at Call for Proposal (CFP) Coaching Session
👐 RubyCentral published all videos from RubyConf 2022 Mini and Huston. Open the YouTube playlist
👐 Davis W. Frank shared an idea about creating a community for mid-sized Ruby on Rails organizations:
👐 Greg Molnar asked what the most challenging part when learning Ruby/Rails is:
Here are some of the responses:
Learning to think about Rails security
Outdated learning material
Not knowing how to go off the rails
Domain modeling, especially abstract models
Struggling to model what they’re building in Ruby / Rails. Going from idea to paper kind of thing
Advanced ActiveRecord queries
👉Rubyday Verona announced their Call for Papers are now open at rubyday.it
👐 Jeremy Smith announced a new podcast called IndieRails about Rails and indie business, having Jess Brown as co-host:
👐 Saroj Zoras called for participation in Ruby Google Season of Docs project. Read more about it here at github.com/rubygsoc:
👉 All about Code and Ruby
If you're to hire top Ruby on Rails talent, I'd like to introduce you to RailsDevs.com (referral link). This unique platform puts the power back in the hands of developers by allowing them to post their profiles and empowering companies to reach out to them. I believe in the value RailsDevs can bring to the hiring process, and I'm confident you will.
I invite you to use the referral link for RailsDevs.com so you can support this newsletter, too (it does not cost you anything extra).
👉Luca Guidi shared an excellent thread explaining with code samples how to create a Hanami web app using GraphQL:
You should read the entire thread, but in case you are curious about how the code looks like, here is step 9:
👉Emmanuel Hayford shared that Rails 7.1 now has support to pass options to explain:
👉Tekin Süleyman shared a code sample showing how to use the format sequence
If you want to read more, there is an entire section called Format Specifications on docs.ruby-lang.org
👉Noah Gibbs asked about what are some good Rubocop rules
Here are some replies from the conversation:
👉Rishi Pithadiya shared a code sample showing how to use assert_valid_keys from Rails to validate Hash keys:
👉 Chris Salzberg shared they built a demo rails app that isolated Rails application constants under a single top-level namespace rails_on_im
👉Noel Rappin started a discussion about what if Ruby would support other symbols at the end of the method name:
Here are some interesting gists from the replies:
👉Benoit asked about mixing concurrency in Ruby/Rails with parallelism on the DB part:
Here is one explanation of how this works:
👉Karol Bąk shared a quick Ruby tip for paginating APIs:
👉Joel Drapper shared that phlex-rails will have adapters for 184 Rails view helpers:
You can read the merged PR for more details about this.
👉Postmodern asked a question about the pattern of defining methods that return a value on success and nil on failure compared with methods that raise an exception on failure:
Here are some replies from the conversation:
You might also find interesting this code prototype shared by Noel Rappin in a gist
👉 Kevin Newton shared that ruby-syntax-tree can now help generate a mermaid diagram of a sea-of-nodes representation of Ruby code in Syntax Tree:
Here is what it looks like:
👉Jess Brown shared a code sample showing how to use provide the option to download as CSV in the same Rails controller action:
👉Kevin Newton shared a great infographic explaining what SyntaxTree does and how it fits into Ruby:
👉Greg Navis shared a thread about instrumentation API from ActiveSupport.
Here is one of the code samples he shared, but I suggest you read the entire thread:
👉Chris Oliver asked a great question about what Ruby or Rails feature should be more known:
Here are some of the answers but for the full context you should read the conversation:
The built-in authentication
TurboStreaming chunked HTTP requests from APIs
ActionController::Metal to ping endpoints
👉 Takashi Kokubun shared Chris Seaston RubyConf talk and announced they are continuing to implement some of Chris’ proposals: RubyConf 2022: Ruby’s Core Gem by Chris Seaton
👉Zilvinas Kucinskas shared a thread describing how they hosted bridgetownrb as a custom origin on a subdirectory path on Cloudfront:
👉Jess Brown shared a quick tip about how to add a new column and set default only for new records:
👉Lewis Youl shared some code samples showing how to use the Ruby
splat operator * to do array manipulations:
🧰 Gems, Libraries, and Updates
🧰 Ruby Weekly shared a gem fixture_champagne that has the purpose of doing:
🧰 Stan Lo shared they are starting to create a new Ruby tracer library. This seems to be the Github repo: st0012/ruby_tracer
🧰 Paul Bucur shared a Ruby library called browser that helps do browser detection with Ruby.
🧰 Joel Drapper shared Lookbook v2 that now has support for any other Rails renderable:
🧰 Carlos Silva announced they published a new gem rails-graphql
rails-graphql is a fresh new implementation of a GraphQL server, designed to be as close as possible to Rails architecture and interfaces, which implies that it has shortcuts, lots of syntax sugar, and direct connection with Rails features like ActiveRecord and ActionCable.
This gem has its own parser, written from scratch, using the C-API of Ruby, which empowers it with an outstanding performance. Plus, all the features provided were carefully developed so that everyone will feel comfortable and able to apply in all application sizes and patterns.
🧰 Joel Drapper announced the release of Phlex 1.3.2 and Phlex Rails 0.6:
🧰 Ada announced they published yarm: yet another Ruby monad gem:
Here is a code sample:
🧰 Nate Berkopec announced they published Release 6.1.0 The Way Up · puma/puma
🧰 Vladimir Dementyev shared their talk at RubyConf about their new gem mock-suey:
A collection of tools to keep mocks in line with real objects.
🧰 Jeremy Evans announced the release of their new gem by: Ruby Library Preloader
🧰 Andrew Kane announced fast tokenizers for Ruby tokenizers-ruby
🧰 A new Ruby version 3.2.1 was released. Read the changelog created by Hiroshi Shibata
🧰 Matt Swanson shared they merged a new feature to Rails 7.1 about Added option to show all headers for mailer previews
🧰Heartcombo announced that the PR that adds support for Hotwire/Turbo is not merged to the main:
🧰 Marco Roth announced the release of v.0.52.0 of stimulus-use containing a breaking change. Read about how to migrate here
🧰 Dragon Ruby announced their roadmap for Dragon Ruby in 2023. Checkout the announcement
🧰Dmitry Tsepelev announced their new gem rubocop-graphql - a Rubocop extension for enforcing GraphQL best practices.
🤝 Related (but not Ruby-specific)
🤝 Paul Bucur shared how to open iCalendar file as a subscription and not open the download file:
🤝David Stosik shared a piece of code showing how to use option -execdir for
🤝Stanislav (Stas) Katkov shared a thread about various ways to approach the purpose of a side project:
🤝Jason Swett shared why it is good to test your objects:
🤝Andy Budd talked about what they see as the biggest problems in product management:
🤝Josef Strzibny shared some Git tips about organizing stashes with names:
👉Nick Schwaderer shared a great quote from why:
More content: 🎥 🎧 🗞
📝 Nate Berkopec shared the slides they used at Tokyo Tech Meetup about How to contribute to Open Source
📚 Nate Berkopec announced they turned on Purchasing Power Parity for all their books Get them here
🗞Emmanuel Hayford announced a new edition of This Week in Rails Parameter filtering and an improved ActionView::Helpers::TagHelper#...
🗞 Nate Berkopec published a new edition of Ruby/Rails performance newsletter If queue times are getting long, consider optimizing the 95th percentile
🗞️ Ruby Weekly published a new edition: Everything new in Ruby 3.2
🗞 Ruby Radar published a new edition Ruby Radar #89 - RubyConf 2022 Videos and DHH is Cooking
🗞️ Ruby LibHunt published a new edition of the Awesome Ruby Newsletter
🗞 Women On Rails published a new edition Newsletter #43: the framework war, optimisation with Ruby, being promoted. The newsletter is available in French, Italian and Spanish.
🎧 Drew Bragg published a new episode of Code and the Coding Coders who Code it with Mike Munroe and Dave Kroondyk
🎧 Brittany Martin shared a new episode of The Ruby on Rails podcast: The Ruby’s Got You Covered World Tour with Kevin Murphy
🎧 Content For :Devs published a new episode about Streaming Magic with Christ Booth! - content_for :devs
🎧 Collin Donnell published the latest episode of Rooftop Ruby with Joel Drapper
🎧 Content For :Devs published a new episode Streaming Magic with Christ Booth! - content_for :devs
🎧 Remote Ruby published a new episode about Concurrency Problems Bro | Remote Ruby | Episode 217
🎧 Ruby Rogues published a new episode The Evolution of Opal
🎧 Ruby for All published a new episode about Favorite Ruby Methods: Part 2 - The Hash
📽️ Drew Bragg shared his talk at Ruby Conf Mini 2022: Who Wants to be a Ruby Engineer? by Drew Bragg. If you like discovering Ruby tips, this talk is excellent and entertaining
📽️ Boulder Ruby published a talk by Brooke Kuhlmann about Ruby Function Composition
📽️ Rubber Duck Dev Show published a new episode about Hobby programming with Nick Schwaderer
🎥 Deanin published a new video about Storing and Searching JSON in Ruby on Rails
🎥 Dave Kimura published a new video about Strict Locals
🎥 The Ruby Learning Center published two more videos streamed by Brandon Weaver for the two classes that are running now:
Thomas Fernandez published an article about Ruby Adds Support for WebAssembly: What Does This Mean for Ruby Developers?
Joe Masilotti published a new article about Progressively enhanced Turbo Native apps in the App Store
Murtaza Bagwala published a new article on Saeloun about Rails preserves entry TTL when incrementing or decrementing an integer value
Wilbur Suero published Getting Started with Ruby on Rails - A Beginner's Guide - [Beginner]
Yaroslav Shmarov published a new article about Omniauth without Devise
Sulman Baig published an article about How to send slack notifications from Rails app using sidekiq
Mattias Velamsson published the second part of this series about how to Organize Your Downloads Folder with Ruby #2
Akshay published an article about Docked Rails: Setup a Ruby on Rails Application on Docker
Younes Serraj published a new article explaining ActiveRecord: finally understand transactions.
Ivo Anjo published an article about Ruby’s unexpected I/O vs CPU unfairness - ivo's awfully random tech blog
Paweł Świątkowski published a new article explaining various ways to think about events and their benefits while showing some examples of code design based on events: Events, events, events
Lucian Ghinda published a new article about short methods and long methods: A method’s gravity
🤗 Founding Members supporting ShortRuby
Drew Bragg, host of Code and the Coding Coders who Code it
Avi Flombaum, the founder of Flatiron School, is a product engineer interested in full-time/contract work.
Adrian Marin, creator of Avo - a Ruby on Rails application building framework
Adam McCrea, creator of Judoscale (formerly Rails Autoscale)—the dead-simple autoscaler for Rails, Sidekiq, etc.
Stephen Ierodiaconou from www.diaconou.com
Read more about what is a Founding Member or about Why pay for ShortRuby newsletter