#​667 — August 17, 2023

Read on the Web

🏝️ I'm taking two weeks off and will be back on Thursday, September 7. So if you don't see the newsletter turn up for a while, rest assured it's not your fault ;-) Note that because I've had to prepare this issue a few days in advance, I'm including a variety of "golden oldies" and evergreen greats amongst the news.
__
Peter Cooper, your editor

Together with  pgAnalyze

Ruby Weekly

An Extensive Ruby 3.2 Changelog — Victor always does such a great job highlighting language changes (not implementation changes) that his regular Ruby update documents are pretty much a must-bookmark. If you haven’t checked this out yet, now’s the time.

Victor Shepelev

▶  How GitHub Builds GitHub with GitHub — A cute, well produced eight-minute video where an engineer at GitHub shows how the systems behind GitHub (many of which are written in Ruby) are put together using GitHub’s own tools, including generating Ruby with GitHub Copilot.

April Leonard (GitHub)

From earlier this year, Building GitHub with Ruby and Rails went into more depth on the Ruby and Rails side of things there.

Free eBook: Advanced Database Programming with Rails and Postgres — Learn about subqueries, materialized views, and custom data types in Postgres and Rails. We walk through realistic real-life examples, translating first into SQL, and then into Rails code. Every example comes with source code so you can follow along.

pganalyze sponsor

Using Zeitwerk Outside RailsZeitwerk is a thread-safe Ruby code loader supporting both autoloading and eager loading. It’s commonly associated with Rails, but can be used without it too.

Akshay Khot

Wandering in CRuby: An Introduction to Objects and Classes — The first in a promised series of posts digging into CRuby’s C-flavored parts to show how things are structured under the hood, starting with the basics of classes and objects.

Younes Serraj

  • 📅 Chicago Ruby is back. There's a meetup on August 24 near Irving Park.

  • 🚰 If you need your fill of Ruby links over the next few weeks, don't forget RubyFlow – it's a Ruby community linklog.

🏆 Top Items This Year.. So Far

We normally do a best of the year round up at the end of the year, but for reasons explained in the letter that opened this issue, we're going to look at a few now 😉

🤖 Improve Password Length Validation for BCrypt Compatibility — This title sounds boring but amazingly this Rails PR has had the most clicks of any Ruby Weekly link so far in 2023. Why? It marked the first time ChatGPT had a huge influence upon a contribution to Rails.

Rails GitHub Repo

A Look at Some Advanced Active Record Concepts — A tour of concepts including locking records to avoid conflicts, using UUIDs as primary keys, fulltext search, using database views, and working with geospatial data. I suspect it might end up with a 2024 update for vector similarity queries.. 😁

Paweł Dąbrowski

Upgrades Don’t Have to Suck — Nobody wants to do an upgrade. But let’s be real, later is never. Don’t do never.

Test Double sponsor

It's Official: The Standard Ruby VS Code ExtensionStandard is a Ruby style guide, linter and formatter created by TestDouble, and it now has a ‘distressingly fast’ VS Code extension to really up the ante for almost real-time code formatting.

Justin Searls (Test Double)

Gemfile of Dreams: The Libraries Evil Martians Use to Build Rails Apps — If martians (or, at least, the developers at Evil Martians) landed and demanded the perfect set of gems to build a Rails app, you could show them this detailed post and also learn about some new gems for your own apps.

Evil Martians

The Case Against Monkey Patching (From a Rails Core Team Member) — You seemed to enjoy Eileen making a solid case against monkey patching, what to do instead, and why refinements aren’t much better.

Eileen Uchitelle

📕 Articles and Tutorials

Tips for 'Golfing' in Ruby — In developer parlance, ‘golfing’ is the task of squeezing down code to as few bytes as possible. There are lots of tricks for doing this in each language, but this Q&A covers a variety of ideas for making Ruby code as dense as possible. You might not want to use these tricks in production, though.. 😅

Stack Exchange

Looking Up Options for Rails Helpers — Three ways to find what you’re looking for.

Julia Chan

Rails 7.1's New picture_tag Helper — The new picture_tag helper (explained in this Rails pull request) is used to create picture tags in HTML.

Alkesh Ghorpade

How Rails 7.1 Enhances Postgres Enum Functionality
Alkesh Ghorpade

Splitting Your Database seeds.rb by Rails Environment
Harrison Broadbent

How to Stop Rails From Setting a Session Cookie
Mike Coutermarsh

A Closer Look at N+1 Queries — Causes, workarounds, and caveats.
Paolo Veñegas

TIL: Turbo Stream and Personalized Content
James Adam

Jobs

TravelJoy | Senior Full Stack Engineer | Remote in USA/Canada | Full-Time — TravelJoy is the market network for leisure travel. Thousands of travel agents love and depend on our product every day.
TravelJoy - Bring the joy back into travel planning

Senior Backend Engineer (Backend) — 12M user devices sent us data daily last week, 6M of them opened the app. Apply your knowledge and help make our users healthier.
Sweatcoin

Find Ruby Jobs with Hired — Hired makes job hunting easy-instead of chasing recruiters, companies approach you with salary details up front. Create a free profile now.
Hired

🛠 Code & Tools

RSS 0.3: Ruby's RSS and Atom Feed Library — ‘rss’ is one of the standard libraries that was “gemified” and is now updated and released independently of CRuby itself. v0.3 is a minor bump improving support for itunes namespaced elements in particular (such as used by many podcast feeds).

Ruby Team

rspec-sidekiq 4.0: Use RSpec for Testing Sidekiq Jobs — After being in a self-described ‘ownership limbo for a few years’, this library is now getting some TLC.

Will Spurgin

Fixed Price Monthly Code Maintenance for Rails Apps — No time to do those small but critical updates and features? CodeCare will take care of necessary tweaks, bug fixes, upgrades and ongoing improvements for your app.

Reinteractive / CodeCare sponsor

Magnus 0.6: A Way to Build Gems with Rust — Magnus enables the creation of Ruby extensions using Rust by providing an interface via Ruby’s usual C API. You can also embed Ruby in a Rust program. Numerous gems are now implemented with Magnus, and thread safety has been improved with this release, among other improvements.

Mat Sadler

acli 0.6: A Command Line Client for Action Cable — Interesting because it’s an mruby app and because it lets you play with Action Cable channels in an easier way.

Vladimir Dementyev

Rails Brotli Cache 0.4.6: A Drop-in Enhancement for Rails' CacheBrotli is a data compression algorithm developed by Google, and you can take advantage of its improvements by slotting it into your Rails app.

Paweł Urbanek

👋 We'll be back in three weeks on September 7, 2023. See you soon! If you have anything to submit for the next issue, hit reply and let us know (but appreciate we may be slow to reply since we'll be on vacation 😉).