---
title: "OK, this is a big week for Ruby"
publication: "Ruby Weekly"
issue: 630
published_at: "2022-11-24"
canonical_url: "https://rubyweekly.com/issues/630"
---

Pickaxe 5th edition, JRuby runs Rails 7, IRB 1.5, and what Rubyists are tweeting. |        

#​630 — November 24, 2022 

[Read on the Web](https://rubyweekly.com/issues/630) 🇺🇦   

Sorry for the attention grabbing subject but on this day of Thanksgiving for many, we also give thanks for a busy week of Ruby releases, from an all new JRuby to Hanami 2.0, plus improvements to good old `irb`

The fun doesn't stop there – we have an interview with the Pickaxe's _new_ author. Who's that? Read on to find out.. 😉
__
_Your editor, Peter Cooper_  

Together with [![pgAnalyze\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,e_trim,w_350,h_100/e_make_transparent/co_white,e_outline:7/lhwcvgc1asd4fzaahty4.png)](https://pganalyze.com/ebooks/advanced-database-programming-rails-postgres?utm_source=RubyWeeklyPrimary11242022)  

Ruby Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/cksmzshtqk6utzuqdvj9.jpg)](https://hanamirb.org/blog/2022/11/22/announcing-hanami-200/)   

[Hanami 2.0: The _Better, Faster, Stronger_ Web Framework](https://hanamirb.org/blog/2022/11/22/announcing-hanami-200/) — I love seeing new takes on classic concepts _especially_ when they're actively maintained and used. Hanami is a great example and 2.0 represents a lot of work. We get a ‘blazing fast’ new router, improved app structure, type-safe app settings, [and more.](https://discourse.hanamirb.org/t/highlights-of-hanami-2-0/728) Want to give it a spin? Enjoy [the v2 Getting Started guide](https://guides.hanamirb.org/v2.0/introduction/getting-started/). 

Tim Riley   

❓ If you're wondering _"yes, but **why** should I use Hanami?"_ hold that thought – we've got something for you next week ;-)  [![\](https://copm.s3.amazonaws.com/bcf00249.png)](https://pganalyze.com/ebooks/advanced-database-programming-rails-postgres?utm_source=RubyWeeklyPrimary11242022) 

[Free eBook: Advanced Database Programming with Rails and Postgres](https://pganalyze.com/ebooks/advanced-database-programming-rails-postgres?utm_source=RubyWeeklyPrimary11242022) — 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   

[JRuby 9.4 Released, Now with Ruby 3.1 Compatibility](https://www.jruby.org/2022/11/23/jruby-9-4-0-0.html) — An understated release post for a _huge_ release. The popular JVM-based implementation leaps up to supporting all of Ruby 3.1’s features (except ractors and the IO/lock/fiber scheduler interface). This means JRuby can now run Rails 7. 

The JRuby Team   

[Ruby Concurrency is Hard or 'How I Became a Rails Contributor'](https://mensfeld.pl/2022/11/ruby-concurrency-is-hard-how-i-became-a-ruby-on-rails-contributor/) — Concurrency is hard, but luckily the author is both brave and smart. He found an issue affecting the use of `Concurrent::Hash` and `Concurrent::Map` and came up with a fix for _several_ popular gems (that’s true concurrency, I guess) including those in Rails. A neat story. 

Maciej Mensfeld   

[Improving Your Rails and Ruby Versioning and Gemfile Policy](https://naildrivin5.com/blog/2022/11/17/your-rails-and-ruby-versioning-and-gemfile-policy.html) — The effects of having a solid versioning policy can spread far and wide, not just to users of your projects, but to your own peace of mind. It takes work but David outlines basic steps for good versioning hygiene here. 

David Bryant Copeland   

**QUICK BITS** 

- The [`cgi` gem has an update](https://www.ruby-lang.org/en/news/2022/11/22/http-response-splitting-in-cgi-cve-2021-33621/) including a security fix for an HTTP response splitting vulnerability.
- The release candidate of commercial Ruby IDE RubyMine 2022.3 [is out](https://blog.jetbrains.com/ruby/2022/11/rubymine-2022-3-release-candidate/).
- 😏 [_Maintainable Rails_](https://leanpub.com/maintain-rails/) author Ryan Bigg has launched ['The Gem Foundation'](https://ryanbigg.com/2022/11/the-gem-foundation) and has already donated more money than the new _Rails Foundation._ Grab the popcorn..
- Talking of Ryan Bigg, he has a neat writeup of [how strong parameters could be replaced/improved](https://ryanbigg.com/2022/11/a-replacement-for-strong-parameters) by way of [dry-schema](https://dry-rb.org/gems/dry-schema/1.10/).   

[Ruby 3.2's New `Data` Class Explained](https://blog.saeloun.com/2022/11/22/data-immutable-object) — The post accidentally says ‘Ruby 3.1’ but you’ll need to wait till Xmas Day for this feature for representing simple immutable value objects (think `Struct` but immutable and with several added niceties). 

Swaathi Kakarla   

[System Notifications with Noticed and CableReady in Rails](https://blog.appsignal.com/2022/11/23/system-notifications-with-noticed-and-cableready-in-rails.html) — The author of _Advanced CableReady_ walks through how to add database, browser, email, and other notifications to a Rails app to inform users of events in real time. 

Julian Rubisch   

[Fixed Price Monthly Code Maintenance and Upgrades for Rails Apps](https://reinteractive.com/service/code-care) 

reinteractive Pty Ltd sponsor   

[Scaling Mastodon in the Face of a Twitter Exodus](https://nora.codes/post/scaling-mastodon-in-the-face-of-an-exodus/) — How a Mastodon (which is a Rails app) server coped with the onrush of new users in the _#TwitterMigration_. It boiled down to a lot of Sidekiq and database configuration that will show you a way to handle scale with Sidekiq. 

Leonora Tindall   

[How to Ignore RuboCop Changes in `git blame`](https://blog.testdouble.com/posts/2022-11-21-rubocop-git-blame/) — You can hide refactoring commits by using `.git-blame-ignore-revs` 

Caleb Hearth   

[Verifying Content-Security Policy with Selenium and Cuprite](https://blog.arkency.com/verifying-content-security-policy-with-selenium-and-cuprite/) 

Pawel Pacana   

[Shortcut Brings Product and Engineering Together. Try It for Free](https://shortcut.com/?utm_source=cooperRubyWeekly&utm_medium=spon_nl&utm_campaign=prospecting&utm_content=pmeng) 

Shortcut (formerly Clubhouse.io) sponsor  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/jatoiuicbszeeqit2e4w.jpg)](https://twitter.com/_st0012/status/1594618676812345344)  

[IRB V1.5.0 Released](https://twitter.com/_st0012/status/1594618676812345344) — Ruby’s stalwart interactive REPL is always there for you and it continues to improve, too. v1.5 introduces two new commands: `edit` opens the file defining the thing you specify, `debug` runs `ruby/debug` from your current `binding.irb` breakpoint. [GitHub repo](https://github.com/ruby/irb). 

Stan Lo on Twitter   

[Magnus 0.4: Ruby Bindings for Rust](https://github.com/matsadler/magnus/releases/tag/0.4.0) — If you’ve been stepping a toe into the Rusty waters, why not use it to work with Ruby? With Magnus you can write Ruby extensions in Rust or even call Ruby code from Rust itself. 

Mat Sadler   

[og:image as a Service](https://mugshotbot.com/customize?utm_source=Newsletter-Campaign&utm_medium=Newsletter&utm_campaign=Ruby+Weekly+Sponsored&utm_id=Cooper-Newsletter) — Check how you can set up stunning link previews automatically on[mugshotbot.com](https://mugshotbot.com/customize?utm_source=Newsletter-Campaign&utm_medium=Newsletter&utm_campaign=Ruby+Weekly+Sponsored&utm_id=Cooper-Newsletter). 

Mugshot Bot sponsor   

- [Brakeman 5.4](https://github.com/presidentbeef/brakeman)
 ↳ Static security vuln scanner for Rails apps.
- [postgres-copy 1.7](https://github.com/diogob/postgres-copy)
 ↳ Postgres `COPY` support in Active Record.
- [Opal 1.6](https://github.com/opal/opal) – Ruby to JS transpiler.
- [httplog 1.6.2](https://github.com/trusche/httplog) – Log outgoing HTTP requests.
- [sqlite3-ruby 1.5.4](https://github.com/sparklemotion/sqlite3-ruby) – Updates to [SQLite 3.40.0](https://sqlite.org/releaselog/3_40_0.html)
- [Rack 3.0.1](https://github.com/rack/rack)
- [ruby-pg 1.4.5](https://github.com/ged/ruby-pg)       ![Richard Schneeman](https://res.cloudinary.com/cpress/image/upload/w_250,e_sharpen:60,q_auto/i8ptvkxp7gnhais1ipst.jpg) 

💬 A Q&A with…
Noel Rappin
Author of [_Programming Ruby 3.2_](https://pragprog.com/titles/ruby5/programming-ruby-3-2-5th-edition/) (the 'Pickaxe') and other Ruby and Rails books  

The 'Pickaxe', as it's affectionately called due to the cover image, is easily the best known pure Ruby book, and probably the best selling too. 

The first edition came out in 2001 as a joint effort between Dave Thomas and Andy Hunt. Future editions saw Chad Fowler come on board as co-author. A _fifth edition_, targeting Ruby 3.2, is now in beta form and set for final publication in 2023. We caught up with new lead author, Noel Rappin: 

The 'Pickaxe' is one of the classic Ruby books and well known as a collaboration between Dave Thomas, Andy Hunt and Chad Fowler. You're now the leading author. How did that change come about? 

The short version is that I asked Pragmatic about it. One of my roles at my current job is running Ruby onboarding, and when I recommended further resources, it was frustrating to keep saying "_Programming Ruby_ is a great book but it's a little out of date". 

I asked Pragmatic if they had any plans for a new version, and if not, if I could help. The CEO of the Pragmatic Press went back to the existing authors – I don't know the details of those conversations – and eventually they said they had no plans for an update but asked me to write a proposal for what a new version would entail. I did this and then there was some back and forth which eventually resulted in us signing a contract and getting started! 

1.9/2.0 to 3.2 is a huge jump between editions. What's new this time taround? 

Dave, Andy, and Chad wrote a great book, and the goal of this edition is to continue being a great book ten years later. 

In general, the new parts of the book are related to: 

- New features, all the way up to the latest Ruby 3.2 features
- New tooling, there's a focus on a different mix of prominent third-party tools
- Different expectations for the experiences readers are likely to have had, so a lot of references to Perl and C++ were replaced with references to Python and JavaScript
- Nine more years of understanding how Ruby devs use Ruby, which prompted some changes in what is considered foundational and belongs in the tutorial section and what is considered reference 

With a couple of exceptions, the book doesn't specify _when_ features were added (I find that gets confusing), so all the Ruby 3 stuff is there, but it doesn't have a "what's new in Ruby" kind of extra prominence. 

How did it work having Dave Thomas as a co-author? 

Dave has been in more of an advisory role (especially on the logistics, there's a lot of Ruby code that he wrote which supports the book's generation). He's given me clearance to make the changes that I think are necessary. 

Are you planning to write any more books, or if not, what topic do you think could entice you back one day? 

I always say each book is going to be my last. But I've taken on a second role as Ruby series editor for Pragmatic, so I'm helping other people who want to write about Ruby create their pitches. People should definitely reach out to me if they have a Ruby book idea.     

_Noel has a personal site at [noelrappin.com](https://noelrappin.com/), tweets [@noelrap](https://twitter.com/noelrap), and wants you to know that_ [Programming Ruby 3.2](https://pragprog.com/titles/ruby5/programming-ruby-3-2-5th-edition/) _is currently on Thanksgiving sale (in beta form) with 40% off if you use the code_ `turkeysale2022` _by November 29._     

**🐦 SEEN ON THE TWITTERS** 

- [Quit it with guilt tripping open source maintainers,](https://twitter.com/nateberkopec/status/1595101304338395136) says Puma's maintainer Nate Berkopec. We ❤️ Puma.
- Ryan Bates tells us [not to save models in callbacks.](https://twitter.com/rbates/status/1595445555831808000)
- Alan Bradburne, a _very_ long time Rubyist, [is looking for Rails contract leads](https://twitter.com/alanb/status/1595367377704669184) after losing a client. Solid developer here if you need one.
- Harry Llewelyn has [a tongue in cheek idea](https://twitter.com/mynameisharry/status/1595139222142619649) for a new Ruby podcast. Maybe Ryan Bigg could help fund it? 

If you like all things Ruby on Twitter, the [Short Ruby newsletter](https://newsletter.shortruby.com/p/edition-19-2022) (no relation) has a lot more where that came from.     

Jobs  

[Find Ruby Jobs Through Hired](https://hired.com/join/?utm_source=newsletter&utm_medium=sponsor&utm_campaign=%28b2c%29%28l-all%29%28r-all%29%28cooper-rubyweekly%29&utm_content=find-your-next-job) — Create a profile on Hired to connect with hiring managers at growing startups and Fortune 500 companies. It's free for job-seekers. 
Hired   

[Senior Ruby Developer](https://jobs.lever.co/Potloc/98c379fb-dd55-4d28-821e-77b2efaea93a) — Join a dynamic and collaborative team working remotely (EST) or hybrid (Montreal-based startup). 
Potloc           

Curated by Peter Cooper 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/).
