#667 — August 17, 2023 |
🏝️ 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. |
|
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 Rails — Zeitwerk 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 |
|
🏆 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 |
|
It's Official: The Standard Ruby VS Code Extension — Standard 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 Alkesh Ghorpade |
How Rails 7.1 Enhances Postgres Enum Functionality
|
Splitting Your Database |
How to Stop Rails From Setting a Session Cookie
|
A Closer Look at N+1 Queries — Causes, workarounds, and caveats.
|
TIL: Turbo Stream and Personalized Content
|
|
🛠 Code & Tools |
RSS 0.3: Ruby's RSS and Atom Feed Library — ‘ 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' Cache — Brotli 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 😉). |