🖐️ Short Ruby News - Edition #66

Discover the world of Ruby in this comprehensive newsletter covering week 44 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 & 📅 Events

More content: 📚 🗞 🎧 🎥 ✍🏾 (articles, podcasts, videos, newsletters)

🚀 New Products

🚀  Kevin Newton launched the documentation website for ruby.github.io/prism

🚀 Colleen Schnettler announced the launch of Get Podcast Leads

🚀 Chris Oliver announced the launch of a new learning path: The Ruby on Rails Learning Path

🚀 Andrei Bondarev  invited us to fill in the Ruby AI Survey 2023. I think it will be great to see where we are and what we use for Ruby AI:

📅 Events

📅 Friendly.Rb shared the conference’s after-movie Friendly.rb 2023 - Bucharest and also announced that tickets are on sale for next year's edition on September 18-19, 2024, in Bucharest → Tickets

📅 Helvetic Ruby announced the early-bird tickets are done but if you want to participate there is still time to buy the normal price tickets at helvetic-ruby.ch

📅  Honeypot announced the release of the Ruby on Rails documentary and Live Q&A. Register here for Q&A link

👉 All about Code and Ruby

👉 Jorge Manrubia shared a diff showing some Turbo 8 code:

👉 Emmanuel Hayford shared about dom_id don’t need an instantiated object:

👉 Stephen shared a code sample from the new project they are working on:

👉 David Heinemeier Hansson shared that 37signals website has no build step for CSS:

👉Postmodern asked and proposed a solution about defining static data in sub-class that the super-class will access:

👉 Stephen Margheim shared a code sample of a custom query builder:

👉 Andy Croll asked about approaches to test turbo responses working alongside their regular responses:

Here are some replies:

👉 Postmodern shared about IPAddr object supporting include

👉 Ahmed Nadar shared a tip about renaming to avoid conflicts:

👉 Xavier Noria asked about approaches for handling SQLite in production in Rails:

There is a great conversation going on there that I cannot include here as it will be long screenshots :) You should read all replies (or on nitter) as it is an example of a productive conversation in social media.

👉 Yuta Saito shared the grant results for 2023 Ruby Association Grant

All the selected applications seems very interesting. I specially like the idea of a Ruby Playground:

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.

👉 Kuba Suder shared an example of a commit description about fixing an SQLite lock issue:

👉 Paweł Swiątkowski shared a code sample about encrypting attributes when using ROM:

👉 Jason Swett shared that using words like “handle” or “manage” to name functions or classes is a code smell:

👉 Bhumi shared a code sample about Module prepand:

👉 Amree Zaid shared a code sample showing how to install a specific version of Rails:

👉 Naofumi Kagami 加々美直史 shared about why they consider Rails special:

👉 Jean Boussier shared a funny code sample:

👉 Errol Schmidt shared about the size of downloads of Mail gem and that might hint how much impact Rails had in the world:

👉 Andreas C. shared a big list of Kamal commands cheatsheet → Simple list of kamal commands

👉 Nate Hopkins shared about using look-ahead Regular expressions in Neovim to search/replace Ruby constant names:

👉 Evgeniy Demin shared a great example of how helpful Ruby community can be. I invite you to read Source: the conversation in the original thread (or read on nitter) to see an example of a friendly and helpful contribution from Xavier and Robert:

👉 Nate Berkopec shared about where the focus of improving latency should be in a Rails app:

👉 Bhumi shared about Active Support concerns works:

👉 Joel Moss shared a hypothetical code for reactive components in Ruby:

Andrew Cetinic shared as a reply a code sample using Turbo - see the repo at Turbo Component

👉 Andreas C. shared a code sample showing how to add a silencer for /up route:

👉 Salomón Charabati shared about connecting from a different DB from Rails:

Andrei Maxim replied with a code sample:

👉 Nate Hopkins shared about using a GPT plugin for Neovim:

👉 Greg Navis asked about reasons why people think Rails is a good choice for startups. There are some good replies (read them on nitter) if you want to use them to pitch Rails:

👉 u/aeum3893 asked about becoming a senior Rails developer and there are some good answers there:

👉 Nicolò shared about the preference for using if ! instead of unless

There are quite a lot of replies:

👉 Marian Posăceanu shared a tip about deploying to ARM64 from Apple Sillicon:

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

🧰 Tim Riley announced the release of  Hanami 2.1.0.rc1

🧰 The J Ruby Team announced the release of  JRuby 9.4.5.0 Released

🧰 Mike Perham shared a new feature being merged to Ruby about Feature #10602: Support multithreaded profiling - Ruby master

🧰 Avo announced a new release for Avo 2 and Avo 3 - read Avo Admin for Rails - Release changelog

🧰 Kevin Newton announced a new release for Release v0.16.0 · ruby/prism

🧰 Yuichiro Kaneko announced new versions for ruby/racc Release v1.7.2 · ruby/racc and Release v.1.7.3

🧰 Stefanni Brasil announced a new release for Release v3.2.2 · faker-ruby/faker

🤝 Related (but not Ruby-specific)

🤝 Xavier Noria shared about what does it mean to finish a task:

🤝  Joe Masilotti shared about using ChatGPT as a co-worker:

🤝 Naofumi Kagami shared about the difference between a library and a framework:

🤝 Flavio shared about using input field to take a picture, video or record your voice on mobile:

🤝 Kent Beck started a discussion about TDD:

🤝 Kent Beck also proposed the idea to remove code reviews:

🤝 Andy Hunt shared also about code reviews proposing a name change:

 🤝 Chris Wanstrath shared a thread about a moment when they deleted the production DB at Github:

🤝 Nate Hopkins shared about impact being different than busy:

🤝 Jorge Manrubia shared about developer happiness:

More content: 📚 🗞 🎧 🎥 ✍🏾

🗞 Newsletters

🗞 Ruby Weekly published a new edition about Ruby Weekly Issue 676: Pattern matching: 'A big feature, after all

🗞 Sara Jackson published a new edition about  This Week in Open Source (October 13, 2023)

🗞 Awesome Ruby Newsletter published a new edition about Issue 389 - Deploying Rails on a single server with Kamal

🗞 Matheus Richard published a new edition about This week in #dev (Oct 20, 2023)

🗞 Hotwire Weekly published a new edition about Week 44 - The Anatomy of Turbo Streams, Strada with Turbo Navigator, and more.

🗞 Ruby Radar published a new edition about Happy November!

🗞 Harrison Broadbent published a new edition about The Rails Notes Newsletter Issue #17

🎧 Podcasts

🎧 Adrian and Yaroslav published a new episode about E7 October Summary, Brovember Plans

🎧 Jason Swett published a new podcast about 201 - Remote Ruby Co-Host and Sin City Ruby 2024 Speaker Jason Charnes

🎧 Indie Rails published a new podcast about IndieRails | Bram Jetten - Building Spina & PlanGo

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

🎧 Ruby for All published a new episode about  The Art Of Conference Speaking With Kevin Murphy

🎧 Lucas Barret published a new podcast about GemRuby Show: Mohammed A. Ali, LiteStack

🎧 Matt Swanson published a new episode from Yagni | Friday Deploys W/ Charity Majors

🎧 The Rails Changelog published a new podcast about #14 Talking PostgreSQL with Andrew Atkinson

🎙️ Talks, Slides and Conference Talks

🎙️ Anubhav Jain published the video from Bengaluru Ruby Users Meetup Nov 2023

🎙️ Kaigi On Rails published the videos from Kaigi on Rails on YouTube at Kaigi on Rails 2023 (JP)

🎑 Andrey Novikov shared their slides from KaigiOnRails about Rails Executor

📽️ 🎥 Videos

Screencasts

🎥 GoRails published a new video series about HTML for Beginners

🎥 Yaroslav Shmarov published a new video about  Rails #148 Data Tables Without Page Refresh Using Hotwire Turbo Frames

🎥 Dean DeHart published a series of videos:

🎥 Drifting Ruby published a new video about Episode 426 - readonly?

🎥 Thoughtbot published a new video about Rails Development LIVE

🎥 Tim Morgan published a new video about Natalie Update: Nov 2023 | Ruby | Compilers

✍🏾 Articles

What’s new 🆕

Victor Shepelev continued their series about new Ruby features and published an article about “Useless Ruby Sugar”: Pattern Matching (Pt. 3/3) → “In two previous parts, we looked into Ruby’s pattern matching, introduced through a few recent language versions. We discussed how it was implemented and what problems and possibilities it brought to the language syntax and semantics. Now, let’s put it all into a broader context”

Brad Gessler published an article about SQLite Persistence Canary → “As the world boldly moves towards running SQLite in production, there’s a bit of a problem that looms in today’s container-based production environments: persistence”

I published an article about Zammad Ruby On Rails Open Source → “Zammad is an open-source ticketing system, that also offers an on-cloud product”

Matt Muller at AWS published an article about Announcing The End Of Support For Ruby Runtimes 2.3 And 2.4 for The Aws SDK For Ruby → “Starting November 24, 2023, AWS SDK for Ruby version 3 will no longer support these end of life (EOL) Ruby runtime versions: Ruby 2.3 and Ruby 2.4”

Brooke Kuhlmann published an article about Connascence → “You can’t eradicate coupling entirely but there are multiple ways to significantly reduce the burden. This is why knowing what connascence is and how to reduce it helps produce a robust architecture. This article will give you the vocabulary for deeper thought”

Radan Skoric published an article about Experiment: Fully Adding Sorbet And Rbs To A Small Project → “I used statically typed languages and liked the extra safety but I also really like Ruby for how elegant it is and the freedom it gives me. Will I regret adopting types?”

Vishnu M published an article about Rails 7.1 Comes With An Optimized Default SQLite3 Adapter Connection Configuration “The default SQLite3 Active Record adapter connection configuration has been updated in Rails 7.1 to better tune it to work for modern Rails applications”

Roy Tomeij published an article about Sponsoring Rails World: What Did It Cost, And Was It Worth It? → “Many individuals, particularly founders of other SaaS platforms built on Rails, have inquired about the cost of our Rails World 2023 sponsorship and its worth. While anyone can estimate our expenses based on publicly available data, we're happy to provide a detailed breakdown”

Sam Ruby published an article about Audience Of One“This blog post will show you how to build a Rails application that streams fly logs output to the browser”

Donn Felker published a new article about Native Where You Need It (Hybrid Mobile Apps)“NWYNI refers to the practice of using native mobile components only in areas of your app where they’re essential and optimal. In all other instances, web components (web views) are utilized. AKA: Hybrid Mobile Apps. Part of the app is web, and maybe, parts of it are native mobile, when needed”

Garrit Franke published an article about Tracking Sq Lite Database Changes In Git → “If you want to track changes and updates to a database using Git, you won't be able to see full diffs by default (…) So, is there a way around that? Turns out: there is!”

Dhaval Singh published a new article about Concurrency 101: Getting It Right Using Amdahl's Law “Some things are always inherently vague, like figuring out the exact amount of salt to put in a dish without a recipe. Setting the concurrency of your app might feel the same way!”

Ahmed Nadar published a new article about A Ruby Serenade for 99 Bottles of Beer “Today's session isn't about vocal ranges or hitting the perfect pitch, although I'm sure you have a lovely voice and I'd not stop your karaoke party. Instead, we're diving into a melody that echoes through the halls of coding exercises: "99 Bottles of Beer.”

Deep Dives 🔍

Julian Rubisch published an article about A Deep Dive Into Lite DB For Ruby On Rails → “In the second post of our series covering LiteStack (an alternative way to build Rails applications entirely based on SQLite), we'll explore the database's concepts of flexible typing and type affinity”

Dhaval Singh published a new article about Understanding Rails Callbacks & Common Pitfalls “Why you should be careful when using Callbacks in Rails and their hidden gotchas”

Steve Polito published a new article about Are you absolutely sure you know how to use the button element? “after working on a payment form for a client project, I realized that the <button> element is a robust, versatile and under utilized tool. Plus, knowing how to leverage forms and buttons will benefit you when using Turbo and Stimulus”

Cherry Ramatis published an article about Metaprogramming In Ruby → “This magic is on purpose and a quite special feature of ruby called metaprogramming, in this article we'll see more about the deep nested details of ruby and how to create magic APIs with metaprogramming!”

Peter Zhu published a new article about Rubyist's Walk Along the C-side (Part 11): Debugging “In this article, we’ll look at the various ways to deal with the inevitable scenario: our C extension crashes”

How-Tos 📝

Matt Brictson published an article about Simplify Your Capybara Selectors → “How to use a Ruby-friendly syntax alternative to esoteric CSS and xpath expressions. Plus, a trick for making Capybara automatically aware of data-testid attributes”

Cezary Kłos published a new article about GraphQL in Ruby on Rails: How to Extend Connections “To enable pagination, GraphQL utilizes a cursor-based system known as Connections. The specification states that each of the above can be extended with additional fields as the schema designer deems necessary. If you're interested in learning how to do this, continue reading”

Jared Norman published an article about Rails Domain Redirects“Is your Rails app available at multiple domains, but you only want to serve requests from one of them? Here's how to handle that at the app level”

Arun Dhir published a new article about Simplify Data Filtering in Ruby on Rails with Ransack “One of the common tasks in web applications is filtering and searching through data. This can be complex and time-consuming to implement from scratch, but luckily, there’s a fantastic gem called Ransack that simplifies this process”

Prasanth Chaduvula published an article about Rails 7.1 Introduces Active Record/Base/Normalization → “Using ActiveRecord::Base::Normalization we can specify unique normalization rules for model attributes. When an attribute is assigned or changed, normalization is applied, and the normalised value is stored in the database”

Alkesh Ghorpade published an article about Rails 7.1 Adds Support For Infinite Ranges For Length Validators → “Rails 7.1 adds support for infinite ranges for LengthValidators. You can pass an infinite range to the in and within options of the LengthValidators” and about Rails 7.1 Expands Its Support For Active Record Asynchronous Queries

Harrison Broadbent published an article about Rails Generate Mailer (Quick Breakdown) → “This is a short and sweet article covering rails generate mailer, the Rails generator for ActionMailer, plus all it's options. I cover it's basic usage to generate an ActionMailer mailer with some mailer methods, then dig into all the flags we can pass”

Daniel Hoelzgen published a new article about Enhancing Video Search & Discovery In A Rails Application By Using Whisper And Chat GPT “The general idea is simple: We transcribe the videos using Whisper, use GPT to generate summaries of its content, and calculate embeddings we can use for search and discovery”

Josef Strzibny published a new article about Deploying Rails on a single server with Kamal “Here’s one way of a cloud-independent deployment of Rails, Sidekiq, PostgreSQL, and Redis on single virtual server with Kamal”

kojix2 published an article about Mixing Ffi, Fiddle, And C Extension In Ruby → “If you're working with Ruby and need to invoke a function written in C language, there are some convenient gems available: Ruby-FFI and Fiddle”

Hernan Velasquez published an article about Be Careful When Using Assign Attributes With Has One Relations In Rails 7 → “Recently I was tasked to solve a bug on a feature that allows a user to mass import the relationships of an existing record of a model via a yml file”

Related

Adrian Oprea published a new article about Monolith is the new old fashion

Rachele Di Tullio published a new article about Autocomplete accessibility bookmarklet

Indie Hackers published a new article about Tony Dinh hit $22k in 11 days by decoupling input from output

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.