👉 Short Ruby News - Edition #64

Discover the world of Ruby in this comprehensive newsletter covering week 42 of 2023. Find code samples, community updates, gems, resources, and thought-provoking discussions.

Consider becoming a paid subscriber to support this newsletter for just $1.8/week ($7.5/month), and you will receive an ad-free version. Your contribution aids growth and maintains the quality of ShortRuby for everybody

You can jump directly to a section:

🚀 New Products

🚀 Georgie Boy announced a library of components built with Phlex → PhlexUI - Component Library

🚀 Thoughtbot announced an update of the Ruby Science book to work with Rails 7 and Ruby 3.2.2

🚀 Keshav Biswa launched a new programming language for fun called Confuscript

🚀 Dave Paola announced applications for the Agency of Learning are open at agencyoflearning.com

🚀 Ruby Cademy announced they are going to launch RubyCademy on 27 October:

đź“… Events

đź“… Rubyfuza & Friends shared they will organise a new conference in 2024 in Cape-Town:

👉 All about Code and Ruby

👉Benoit shared  a benchmark between Struct.new VS Data.define

👉 Emmanuel Hayford shared a Rails config to start the rails console in the sandbox by default:

👉 Dhaval Singh shared a good picture showing a high-level overview of how Ruby works:

👉 Joel Drapper shared about how to use ChatGPT to explain code from the book:

👉 Paul Mucur shared about how to get the client IP when using Cloudflare:

👉 Robert shared about bundler supporting an option to use a local gem file:

👉 Lucas Mendelowski shared about how to make Turbo work with View Transitions while keeping the header persistent:

👉 Brad Gessler shared how to generate Dockerfiles for Rails using dockerfile-rails gem:

👉 Joel Drapper shared a code sample from their new web framework Yippee!

👉 Stephen shared a new channel for SQLite on Join the Naming Things Discord Server!

🤝 David Heinemeier Hansson shared about Rails being fit for software entrepreneurship:

Support ShortRuby by subscribing for only $7.5/month ($1.8/week). Get an ad-free experience and help us maintain our quality for everyone.

👉  Irina Nazarova shared a thread (read it on nitter) about Rails world:

👉 Andrew Culver shared how to fix then rbenv install fails with LDFLAGS error:

👉 John Pollard shared a before and after refactoring code sample (the code screenshots are too big to include them here - you have to open the post on twitter or nitter):

👉 Chris Oliver shared that Jumstart Rails now also offers the option to use Stripe Checkout:

👉 Brad Gessler shared a code sample from the Superform showing how to build a UI with Ruby code:

👉 Vladimir Dementyev shared they added view transitions for AnyCable Docs (click on the post or on nitter to see the video of view transitions)

👉 Nate Berkopec shared how quickly a multi-million line Rails monolith starts:

👉 Ernest Anyewe Adonu shared their reasons why they chose Ruby on Rails for a project:

👉 Bram Jetten shared how they are avoiding N+1 queries with a mix of AR and Ruby processing:

👉 Chris Oliver asked the community about what questions they will like to ask DHH and got a lot of replies:

He also asked for questions for Jorge and Amanda:

I think it is good to read the replies. It shows a bit of some community concerns or questions.

👉 Nate Berkopec shared a quick tip to improve performance:

👉 David Alejandro shared about using local_time gem to display time in local users time:

 đź‘‰ John Nunemaker shared a use case for Github Copilot Chat:

👉 Stanislav Katkov shared two improvements when using Solid Cache:

👉 Brad Gessler shared about advantages and disadvantages when using Tailwind:

👉 Rob Zolkos shared they encountered an issue when using Turbo with route paths that contains dots:

Tony Messias explained why it does not work:

BenjamĂ­n Silva H. shared a possible solution:

👉 Samuel Cochran shared about reverting from GraphQL and React to Rails:

👉 David Alejandro shared a thread (read it all or on nitter) about printing to local printer from Rails with Turbo (this is just the first part of it):

👉 Lewis Youl shared about Rails mark_for_destruction:

👉 Bhumi shared a Ruby trick about associating a name for a class:

👉 Matt Swanson shared about using Rails core concepts:

👉 Amanda Brooke Perino shared a thread (read on nitter) about the purpose of Rails Foundation:

👉 Brad Gessler shared a perspective about Rails sessions:

👉 Nate Berkopec shared about collecting data with Resource Timing API:

👉 Akash Manohar shared a code sample showing how to load partial data for multiple rows of a table:

👉 Josef Strzibny shared a perspective about how to think about Kamal:

👉 Avo shared the discounted prices for Avo 3 are available until the final launch:

Please consider becoming a paid subscriber to support this newsletter for just $1.8/week ($7.5/month), and you will receive an ad-free version. Your contribution aids growth and maintains the quality of ShortRuby for everybody

🧰 Gems, Libraries, Tools and Updates

🧰 Andy Maleh published a new release of Glimmer Wordle:

🧰 JRuby released a new version of JRuby 9.4.4.0 version

🆕 🧰 Jeffrey Charles announced a new project called Ruvy - Ruvy aims to initialize the ruby VM using wizer and execute ruby code passed into the wasm

🧰 Dr Nic announced they are adding RBS signatures to tiktoken ruby gem → RBS signatures by drnic · Pull Request #16 · IAPark/tiktoken_ruby

🧰 RubyGems announced a new release 3.4.21 Released

🧰 David Heinemeier Hansson announced a new release of kredis → Release v1.6.0 · rails/kredis

🧰 Marco Roth announced a new release for stimulus-lsp Release v0.2.0 · marcoroth/stimulus-lsp

🧰 Maciej Mensfeld announced a new release of karafka version 2.2.8

🤝 Related (but not Ruby-specific)

🤝 Gergely Orosz shared about the influence of current economy on software engineering:

🤝 Tony Dinh shared about ChatGPT affecting Stack Overflow traffic (see the source for this data):

🤝 Chris Wanstrath shared a thread about how Github started:

🤝 Jason Swett asked a question about priorities in a software project:

🤝 Emma Bostian asked managers and engineers how to celebrate a job well done and received a lot of answers. Read the replies (read on nitter)

🤝 Daniel Vassallo shared a perspective about motivation:

🤝 Cameron Moll shared about their experience with Tailwind:

There is an interesting discussion with Adam Wathan (the creator of Tailwind):

🤝 Nate Hopkins shared about talking and doing when operating a business:

🤝 Irina Nazarova shared a thread about the important of documentation:

More content: 📚 🗞 🎧 🎥 ✍🏾

đź—ž Newsletters

đź—ž Greg Molnar published a new edition of This Week in Rails about Rails World Talks Online, Fix Of A 13 Years Old Bug And More!

đź—ž Awesome Ruby Newsletter published a new edition about Awesome Ruby Newsletter Issue 387, Oct 19, 2023

đź—ž Ruby Weekly published a new edition about The state of Ruby HTTP clients

đź—ž Harrison Broadbent published a new edition about The Rails Notes Newsletter Issue #15

đź—ž Ruby Radar published a new edition about Hacking at RubyConf 2023

🎧 Podcasts

🎧 Indie Rails published a new podcast about IndieRails | Greg Molnar - Security on Rails

🎧 Lucas Barret published a new episode about Gem Ruby Show: Stephen Margheim , Active Record Enhanced SQLite Adapter

🎧 Ruby For All published a new podcast about Plants, Zombies, and Pull Requests | Ruby for All | Episode 48

🎧 Remote Ruby published a new episode about Live With Adam Wathan At Rails World 2023

🎧 The Ruby on Rails Podcast published a new episode about The Ruby On Rails Podcast Episode 492: Vladimir Dementyev On Layered Design

🎧 Stephanie Minn and JoĂ«l Quenneville published a new episode about The Bike Shed: 404: Estimation

📽️ 🎥 Videos

🎙️ Conference Talks

🎙️ Euruko published the videos at https://2023.euruko.org/recordings

🎙️ Ruby On Rails published a new video about Rails World 2023 - Amsterdam - Oct 5 & 6

Screencasts

🎥 Dean DeHart published a series of videos:

🎥  Yaroslav Shmarov published a new video about Ruby on Rails #146 Generate Barcodes with JsBarcode. StimulusJS, Importmaps

🎥 Jason Swett published a new video about Building a Word Stemmer Part 2 (Ruby OOP + Testing)

🎥 Thoughtbot published a live video about  Rails Development

🎥 Drifting Ruby published a new video about Episode 424 - Solid Cache | Drifting Ruby

🎥 Steven R. Baker published a new video about The Shitshow 2: Adding AppSignal to a Rails 7 Application

✍🏾 Articles

What’s new 🆕

Victor Shepelev published another article in his series about new features in Ruby about â€śUseless Ruby Sugar”: Pattern Matching (Pt. 1) â†’ “The importance of this feature and its effect on the Ruby code is a source of severe disagreements. Some put it in the “mere syntax sugar” bin (which is how it ended up as a part of this series… which I already regret a bit because the feature is a huge thing to discuss!). At the opposite extremum, there are people who believe that pattern matching is a separate paradigm, and “if you want a language with one, you just switch to that language.”

Amanda Perino published an article about Rails World 2023: A Recap Of Two Days Of Rails â†’ “The first edition of Rails World in Amsterdam was a two-day, two track community conference featuring technical talks, demos, workshops, networking, and keynotes about the latest features and best practices in Rails development”

Miles published a new article about New App Sneak Peek → “The existing tools I found were more focused on tracking after eating which is great in terms of capturing data and measuring over time, but I found really didn’t help me with locking in a routine. I wanted to fix this and bring some of this planning side along with tracking into an easy to use app”

Craig Kerstiens published a new article about Postgres Goodies in Ruby on Rails 7.1 â†’ “In conversations with developers over the week, I had some notable takeaways from the newest version of Ruby on Rails that I just had to get written up”

Alkesh Ghorpade published an article about Rails Adds The Ability To Pass The Expires At Option To Active Storage/Blog#Signed â†’ “When using the expires_in option to generate an expiring URL, the URL will change each time it is generated. This means the browser cannot cache the URL, and the user will have to download the file each time they access it” and published an article about Ruby 3.3 Introduces Range Overlap? Method

Ruby Central published an article about September 2023 Monthly Update â†’ “During September, Ruby Central's open source work was supported by 35 different companies, including Fastly, Ruby member Zendesk and Ruby Shield sponsor Shopify”

Jeff Charles published an article about Introducing Ruvy (2023) â†’ “We’ve recently open sourced a project called Ruvy! Ruvy is a toolchain that takes Ruby code as input and creates a WebAssembly module that will execute that Ruby code”

I published an article about A Quest For A Method Defined In Main â†’ “Explore the question: Where is a method defined in Ruby when not defined inside an object?”

Ruby Gems published an article about September 2023 Ruby Gems Updates Ruby Gems Blog â†’ “Read on to find out what updates were made to RubyGems and RubyGems.org in September”

Vladimir Dementyev published an article about The Future Of Full Stack Rails: Turbo Morph Drive â†’ “In this two-part series, I’d like to explore these aforementioned frontend technologies and demonstrate how we can use them today with Turbo 7”

Stephan Hagemann published an update about their book  Message to Readers of Gradual Modularization → “A message I sent to the readers of Gradual Modularization for Ruby and Rails regarding the new update published today”

Deep Dives 🔍

Bill Tihen published an article about Rails Design: Protected Modules With Injection â†’ “Long-term Manageable Rails through Low Dependency/Entanglement and Loose Coupling”

Noel Rappin published an article about Better Know A Ruby Thing #1: Method Missing â†’ “I do think the way that Ruby uses method_missing to make infinite API’s not just possible but easy to write is very basic to what I think of as the Ruby aesthetic. It’s also not something that everybody loves, and it’s something that you can get into trouble with.”

Akshay Khot published an article about Understanding The Instrumentation Api In Rails â†’ “The Instrumentation API in ActiveSupport serves a dual purpose. You can use it to implement the observer (pub-sub) pattern, as well as benchmark how long it took to execute some action”

Radan Skoric published an article about Understand Rails Async Database Queries By Reimplementing Them In 51 Lines Of Simple Ruby â†’ “I’ve read the original PRs that added the async loading functionality and used the debugger to dig down to the actual raw happy path logic and summarised my findings here. So let’s peel away the layers from ActiveRecord async queries”

David Copeland published an article about The Katz Conjecture: You Must Understand What An Abstraction Abstracts â†’ “To effectively use any abstraction, you must—eventually—have a solid understanding of what it’s abstracting. I’m calling this the Katz Conjecture because Yehuda Katz made this statement in a conference talk”

How-Tos đź“ť

Mike Coutermarsh published an article about Easy Rails Controller Rate Limiting With Rails.Cache â†’ “Here's an easy trick I reach for when wanting to add simple rate limiting to an endpoint”

Brad Gessler published an article about Better Rails Forms With Superform â†’ “Superform is a new form helper library built from scratch on top of Phlex that makes building forms in Rails less tedious”

Josef Strzibny published an article about Adding Slugs To Active Record Models In Rails â†’ “Here’s how to implement a Sluggable module that turns an ActiveRecord model into one with a user-defined slug for nice page identifiers”

Ahmed Nadar published a new article about Mastering Rails Web Navigation with link_to and button_to Helpers â†’ “In Part 1 (you are reading), we'll explore the Rails web navigation system, understand how Rails handles requests, and delve deep into the world of middleware” and Mastering Rails Web Navigation With Link To And Button To Helpers Part 2

I published an article about Chat GPT, Github Copilot: How To Generate Tailwind Width Configuration â†’ “Examining the results of ChatGPT 4, Github Copilot and Chat and Phind in generating Tailwind width configurations utilizing the golden ratio”

Aestimo Kirina published an article about Advanced Usages Of Action Policy For Ruby On Rails â†’ “In part one of this series, we looked at some basic usages of Action Policy. Now we'll leverage Action Policy for more advanced authorization use cases”

Harrison Broadbent published an article about Action Mailer Console Script For Bulk Testing Mailers â†’ “Here's a handy ActionMailer console script for sending test emails locally (packaged up as a rake task)”

Hopper Gee published an article about Rest Man â†’ A visual guide about how to use the rest-man gem

Khash Sajadi published an article about Using Rails With SES, SNS And SQS To Avoid Bounce Rate â†’ “Using SES directly, you will not get some of the features you might need to control the bounce rate of your emails. In a perfect world, you'd want to monitor bounce rate of your emails and take them out of your email list so no further email is sent to those recipients”

Rishi Jain published an article about  I18n Gem Gotchas in Ruby 3.0: What You Need to Know â†’ “If you are using the i18n gem opens a new window with Ruby 3.0 or are planning to upgrade Ruby to 3.0 while using the i18n gem, this blog post will cover a gotcha that can be tricky to understand”

🔂 Related

Julia Evans published an article about Some Miscellaneous Git Facts â†’ “None of these things feel super surprising in retrospect, but I hadn’t thought about them clearly before”

Josef Strzibny published an article about Marketing My Book To 1000 Sales â†’ “Here’s a simple list of what I was doing on my way to 1000 sales of my book and how much success I had with them”

Please consider becoming a paid subscriber to support this newsletter for just $1.8/week ($7.5/month), and you will receive an ad-free version. Your contribution aids growth and maintains the quality of ShortRuby for everybody:

If you consider upgrading and want more information, please read Why to subscribe to paid.

Reply

or to participate.