---
title: "Here be Ruby dragons"
publication: "Ruby Weekly"
issue: 720
published_at: "2024-09-19"
canonical_url: "https://rubyweekly.com/issues/720"
---

Plus a refactoring adventure, DHH lets loose, and Ruby takes 9th place. |        

#​720 — September 19, 2024 

[Read on the Web](https://rubyweekly.com/issues/720)  

Together with [![reinteractive\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,w_900,h_186/e_make_transparent/co_white,e_outline:9/goq5p4n0bj1gcxvxkfel.png)](https://reinteractive.com/ai-proof-of-concept)   

Ruby Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/vqr2oznxb02gt9wqimcm.jpg)](https://dragonruby.org/toolkit/game)  

[DragonRuby: A Ruby-Based 2D Game Engine](https://dragonruby.org/toolkit/game) — Targeting Windows, Mac, Linux, WASM, iOS, Android and even _consoles_, DragonRuby is an interesting variant of Ruby coupled with a 2D game engine, meaning you can create striking games or [demos](https://www.youtube.com/watch?v=SigxxNUCxOw) with a language you already know. Apparently DHH hadn’t heard of it, so we wanted to feature it again, especially as [it’s available for free](https://itch.io/s/131293/friendlyrb-2024) for the next 36 hours (though it _is_commercial). 

DragonRuby LLP   

💡 Konnor Rogers' [Rendering 2.5 Million Tiles in DragonRuby Without Dropping Frames](https://www.konnorrogers.com/posts/2024/rendering-2.5million-tiles-in-dragonruby) shows off some of DragonRuby's power and the sort of code you could be writing for it.  [![\](https://copm.s3.amazonaws.com/2458f20b.png)](https://reinteractive.com/ai-proof-of-concept) 

[Rails + AI: Turn Ideas into Apps. Book a Meeting](https://reinteractive.com/ai-proof-of-concept) — Stuck on AI integration in Rails? We're experts in leveraging OpenAI, Claude, AWS Bedrock, and more to create powerful Rails applications. Let's discuss your project goals, guide you through the process and deliver exceptional results. 

reinteractive::Custom AI integrations with RoR sponsor   

[Ruby's Default Parser Switches from parse.y to Prism](https://github.com/ruby/ruby/pull/11497) — A few months ago, Kevin Newton [asked if CRuby could switch](https://bugs.ruby-lang.org/issues/20564) to the new [Prism Ruby parser](https://kddnewton.com/2024/01/23/prism.html), but Matz said there was still work to be done. It remains to be seen if this change will ‘stick’ for Ruby 3.4 this December, but if you’re running on Ruby’s master branch, you’ll be using it for now. 

The Ruby Core Team   

[The 'Gilded Rose' Refactoring Kata — As If It's 2024](https://zverok.space/blog/2024-09-19-gilded_rose.html) — Victor never fails to engage in his writing, even when it’s pecking through [a classic refactoring kata.](https://github.com/emilybache/GildedRose-Refactoring-Kata?tab=readme-ov-file#gilded-rose-refactoring-kata) Turning [a mess of `if` logic like this](https://github.com/emilybache/GildedRose-Refactoring-Kata/blob/main/ruby/gilded_rose.rb#L7-L54) into something easier on the eye is a common task, however, so it pays to practice it. 

Victor Shepelev   

**IN BRIEF:** 

- 📊 Developer analyst firm RedMonk has put out [a Q3 2024 ranking of programming languages](https://redmonk.com/sogrady/2024/09/12/language-rankings-6-24/) with Ruby at 9th place.
- 🏎️ If you're entertained by all things DHH, Rails' creator David Heinemeier Hansson [▶️ went on popular dev-streamer _ThePrimeagen_'s channel](https://www.youtube.com/watch?v=mTa2d3OLXhg) for a mammoth 2 hour unedited interview where he shared thoughts on Ruby, programming in general, racing, and parenthood.
- 🛠️ JetBrains has opened [its Early Access Program for RubyMine 2024.3.](https://blog.jetbrains.com/ruby/2024/09/the-rubymine-2024-3-early-access-program-is-open/)   

[Ruby-SAML 'Pwned' by XML Signature Wrapping Attacks](https://ssoready.com/blog/engineering/ruby-saml-pwned-by-xml-signature-wrapping-attacks/) — Even if you’re not using [SAML](https://en.wikipedia.org/wiki/Security_Assertion_Markup_Language) (commonly used in SSO systems), a lot of apps _are_, and this vulnerability is particularly nasty. _“Ignore Postel. When it comes to processing cryptographic signatures, loosey-goosey isn’t “liberal”, it’s libertine.”_ 

Ulysse Carion   

[Setting Up TOTP Two-Factor Authentication in a Rails App](https://blog.lunarlogic.com/2024/setting-up-totp-two-factor-authentication-in-rails) — Except for farming auth out to a third party service, using time-based one-time passwords (TOTPs) is probably the easiest way to add 2FA to your app. 

Mikołaj Bogucki   

[Win a Ticket to Rocky Mountain Ruby in October](https://www.honeybadger.io/blog/rocky-mountain-ruby-2024-giveaway/?utm_source=rubyweekly&utm_medium=email) — Rocky Mountain Ruby is back this year, and Honeybadger is a Sapphire sponsor! To celebrate, we're giving away a free conference ticket. Enter to win by 9/20 (that’s tomorrow!). 

Honeybadger sponsor   

[Shrinking Big Postgres Tables with 'Copy-Swap-Drop'](https://andyatkinson.com/copy-swap-drop-postgres-table-shrink) — If you’ve got a big unwieldy table with only a subset of its data in active use but you _don’t_ want to partition the table or perform lots of `DELETE` operations, you could copy the rows you want to keep into a new table, rename the new table, and drop the original one. 

Andrew Atkinson   

[RSpec Stubs the Object in Memory](https://kevinjmurphy.com/posts/rspec-stubs-object-in-memory/) — Just because you applied a stub to an object doesn’t mean your underlying code will be using the same object, particularly if it’s loaded just-in-time from a database. 

Kevin Murphy   

📄 [Rails 7.1's Partial Strict Locals and Their Gotchas](https://blog.appsignal.com/2024/09/11/ruby-on-rails-7-1-partial-strict-locals-and-their-gotchas.html) Ayush Newatia (AppSignal) 

📄 [Rails Adds Ability to Ignore Counter Cache Columns While They're Backfilling](https://blog.saeloun.com/2024/09/17/rails-adds-ability-to-ignore-counter-cache-column-while-backfilling/) Prasanth Chaduvula 

📄 [How We Upgrade Major Rails Versions](https://www.aha.io/engineering/articles/upgrading-rails) Shane Tully (Aha!)  

🛠 Code & Tools  

[Nextgen: Generate Your Next Rails App Interactively](https://github.com/mattbrictson/nextgen) — An interactive and flexible alternative to `rails new` that includes opt-in support for modern frontend development with Vite. It also now supports Rails 8 (in its alpha form). 

Matt Brictson   

[IOU: A Gem for Working with `io_uring`](https://github.com/digital-fabric/iou) — [io_uring](https://en.wikipedia.org/wiki/Io_uring) is a mechanism on Linux for handling asynchronous I/O. 

Digital Fabric   

[Hands on Postgres 17: What’s New & Impacting Performance](https://events.zoom.us/ev/AjLb_w35d6V0uvJM17v2isooPfEMVuT7FpFLYnZCG-B-lUm6VHzl~AvB1qUtba1p04S_MZtzzBBDIM7FkquMjOl6oz1Wtf4Oi0k2Sbckqwsd0AcehGmIdkOYRdpxNzJGpGB_F0O-nF1qCkA) — Join our webinar to see how Postgres 17’s updates improve both database and application performance. Register today! 

pganalyze sponsor   

- [Grape 2.2](https://github.com/ruby-grape/grape) – Long standing opinionated framework for creating REST-like APIs
- [ruby-duckdb 1.1.0](https://github.com/suketa/ruby-duckdb) – Ruby bindings for the [DuckDB](https://duckdb.org/) database system.
- [RBS::Inline 0.8](https://github.com/soutaro/rbs-inline) – Write RBS type declarations _inline_ with your code.
- [Transformers.rb 0.1.3](https://github.com/ankane/transformers-ruby) – State-of-the-art transformers for Ruby.
- [Faraday 2.12](https://github.com/lostisland/faraday/releases/tag/v2.12.0) – Flexible, multi-backend HTTP client library.
- [Rouge 4.4](https://github.com/rouge-ruby/rouge) – Pure Ruby code highlighting library.
- [Rage 1.10](https://github.com/rage-rb/rage/releases/tag/v1.10.0) – HTTP API framework compatible with Rails.
- [Good Job 4.3](https://github.com/bensheldon/good_job/releases/tag/v4.3.0) – Postgres-backed job queue for Rails.
- [MemoryProfiler 1.1](https://github.com/SamSaffron/memory_profiler) – A memory profiler for Ruby.
- [RubyGems 3.5.19](https://blog.rubygems.org/2024/09/18/3.5.19-released.html)         

Curated by [Peter Cooper](https://twitter.com/cooperx86) and [Glenn Goodrich](https://twitter.com/ruprict).
Published by [Cooperpress](https://cooperpress.com/). 

[Change your email](https://rubyweekly.com/edit_subscription/*|UID|*) or [Stop getting this newsletter.](https://rubyweekly.com/leave/*|UID|*) 

© Cooper Press Ltd · Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom 

Other weekly newsletters we publish include [Postgres Weekly](https://postgresweekly.com/), [React Status](https://react.statuscode.com/), [Frontend Focus](https://frontendfoc.us/), and [JavaScript Weekly](https://javascriptweekly.com/).
