#668 — September 7, 2023 |
Normal service has been restored – I'm back from my summer vacation 😅 If you haven't had an issue of Ruby Weekly for a few weeks, it's my fault, not yours, but we're now back all the way through till Christmas.. hopefully. There's a lot to catch up on, so let's go. |
|
Ruby Weekly |
Ruby Outperforms C: Breaking the Catch-22 — YJIT’s ability to improve performance by adapting to run-time behavior can increase the speed of our code in a way that dropping down to C can’t, demonstrates Aaron. This should encourage us to write as much pure Ruby as possible without needing to consider dropping down to C. Aaron 'tenderlove' Patterson |
Aaron went a step further on the performance train this week by demonstrating how to speed up |
Upgrading to Ruby 3 in Small Steps — Upgrading Ruby versions can be a challenging task for large applications and teams. This is how an engineer at Fullscript broke the problem down into many small deployments to get their application from Ruby 2.7 to 3.1. Explore our career page and discover the exciting possibilities that await you. Fullscript sponsor |
DHH: 'Turbo 8 is Dropping TypeScript' — As we might say in England, DHH knows how to “throw the cat among the pigeons” (explanation) and get people talking. This time, TypeScript is his target. He’s not a fan and he doesn’t want it in Rails’ Turbo. Unsurprisingly, this sent TypeScript-land into a tizzy on Twitter, but bad luck, it’s already been ripped out. David Heinemeier Hansson |
🎙️ If you want to hear more from DHH, he went on The Rails Changelog podcast to discuss Rails 8, Kamal, The Rails Foundation, and more. |
|
📕 Articles and Tutorials |
Let's Read the Turbo Source: What Happens When You Click a Link? — Code reading is one of the best ways to learn, in my experience, but it helps if you have someone guiding the process. This is a good tour. Akshay Khot |
Seven Ruby Techniques to Improve Your Debugging Skills — No universal platitudes here, these are all Ruby specific techniques, including working out where methods are in complex apps, getting backtraces, and ad-hoc monkey patching. Ashwini Sukale |
Free eBook: Advanced Database Programming with Rails and Postgres — Learn about subqueries, materialized views, and custom data types in Postgres and Rails. Realistic real-life examples, and source code so you can follow along. pganalyze sponsor |
Speed Up Your Rack Application with HTTP — If you’re using Rails, it does a lot of this HTTP header wrangling for you, but that doesn’t mean you shouldn’t understand how it works. Steve Polito (thoughtbot) |
Let's Implement Akshay Khot |
Appropriately Using Ben Sheldon |
Roda + Turbo Streams = ❤️ — You don’t have to use Rails to get Hotwire and Turbo Streams. Felipe Vogel |
Throttling Rails Logins with Rack::Attack — Middleware and Rack make some crucial things straightforward, like saving your app from DoS attacks. Greg Molnar |
Collecting Prometheus Metrics from Multi-Process Web Servers, The Ruby Case
|
▶ Adding System Tests to a Rails App
|
|
🛠 Code & Tools |
Flipper 1.0: A Feature Flag Solution for Rails — If you want to easily turn features on and off for different users or groups of users in your app, Flipper is for you. It began life while John worked at GitHub (he famously built an app that was acquired by GitHub) and now not only deserves its 1.0 milestone, but it’s now a more serious project and product overall, with Garrett Dimon coming on as a full-time developer on the project, and a new free tier to the Flipper Cloud hosted service. Onwards and upwards! John Nunemaker and Garrett Dimon |
Grape 1.8: Opinionated Framework for Creating REST-like APIs — Grape can run on Rack or be easily pulled into existing apps using Rails or Sinatra, say, and provides a neat DSL to build RESTful APIs. Michael Bleigh, Intridea Inc. et al. |
Ready for Rails 7.0.7? Need to Upgrade but Have No Time? We Can Help! — Whether you’re upgrading from one or five versions ago—we ensure a smooth process that doesn’t sacrifice your roadmap. Ruby on Rails upgrade services sponsor |
Dude Policy: Policy Objects from the 'Current User' POV — Tomas Valent |
PyCall: Call Python Functions from Ruby — A long standing library but that, as of now, supports Ruby 2.4+ and Python 3.7+. Kenta Murata |
|