Short Ruby News - Edition #29

Briefly about everything happening in Ruby world - week 6 of 2023 (email version)

You can jump directly to a section:

πŸ‘ Our Community

More content: πŸŽ₯ 🎧 πŸ—ž (articles, podcasts, videos, and newsletters)

πŸ€— Founding Members supporting this newsletter

Consider upgrading to paid subscriber

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.

πŸ‘ πŸŽ‰ Peter Cooper announced that Ruby Weekly reached 640 issues πŸŽ‰ Congrats, and I wish they would release at least 640 more numbers.

πŸ‘ Morgan Fogarty asked for recommendations of woman heroes in Rails community:

πŸ‘ 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:

  • Asset management

  • 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:

πŸ‘‰ 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:

🧰 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 find

🀝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

πŸ—ž Newsletters

πŸ—ž 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 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.

Podcasts

🎧 Brittany Martin shared a new episode of The Ruby on Rails podcast: The Ruby’s Got You Covered World Tour with Kevin Murphy 

🎧 Collin Donnell published the latest episode of Rooftop Ruby with Joel Drapper

Videos

Talks

πŸ“½οΈ 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

Screencasts

πŸŽ₯ 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:

Articles

What’s new

How-Tos

Deep Dives

More general

  • 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

Read more about what is a Founding Member or about Why pay for ShortRuby newsletter

Reply

or to participate.