You can jump directly to a section:
👉 All about Code and Ruby: 💻 Code, 📐Code Design,💡Around, ❤️ Why Choose Ruby
🧰 Gems, Libraries, and Updates: 🆕 New, 🧰 Updates and 👀 Keep an eye on
🤝 Related (but not Ruby-specific)
More content: 📚 🗞 🎧 🎥 ✍🏾 (articles, podcasts, videos, newsletters)
🚀 Launches
🚀 Stephen Margheim has listed the beta version of SQLite on Rails (affiliate link - use this if you want to support ShortRuby newsletter) on Gumroad:
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70c3a63c-9514-407b-a0cd-b08f6c1d1131_1228x1008.png)
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cc0140f-98e9-4011-ba40-7233af4b9e5a_2090x614.png)
🚀 Alex Rudall is releasing his new book RailsAI - Ship your AI MVP, fast !
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30b56224-12b8-4112-af2d-d487f82f9827_998x344.png)
🚀 Andrea Fomera launched a new project called RailsBuddy.com for pairing Rails developers together:
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d36547f-9535-468f-9c4e-703cb838818d_3218x1514.png)
🚀 Mehdi Farsi launched RubyQuiz
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc00dee05-50de-47fc-b9e0-cebd9543ab27_2330x810.png)
📅 Events
📅 Ruby Kaigi announced the dates for RubyKaigi 2025!
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6d7b5d5-9b46-47c5-bf54-6167284caf76_1004x336.png)
📅 Visuality announced that ticket sales for Ruby Warsaw Community Conference - Summer 2024 has started.
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c8e6ec2-1136-4906-9b1c-8ea2f5828044_1008x1292.png)
📅 Balticruby announces 30% discount on “Personal” tickets
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36e8d52c-424e-410e-8711-97c9eff0e1d3_1004x1420.png)
📅 Kevin Liebholz shared the event details for Ruby Frankfurt Meetup - Summer Edition
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8de3b64a-fccc-4a70-a119-25bd1011eae5_1006x724.png)
👉 All about Code and Ruby
👉 Xavier Noria warned about not deleting frozen string literal:
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ec0fb4a-bee0-415e-b9f3-72d2944d3dc9_1218x536.png)
Jean Boussier added about the flag on CI:
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6f2abc6a-62d5-49e9-9954-277338b33cf2_1218x402.png)
Xavier Noria published a note where he details the frozen string literal and what the future holds for it. You should read it!
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9adb969d-8331-4b67-a57d-825c8118832a_1006x302.png)
and later added:
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b399481-99b6-48c5-89f8-c63ad67ce346_1300x1142.png)
👉 Maxime Chevalier shared about Rails performance:
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1381cc2a-27a6-4438-98ed-5b9ebd416f95_1236x580.png)
👉 Satoshi Tagomori shared he’d be talking about Namespace on Read a proposal for Ruby at RubyKaigi and at 「Ruby Association Activity Report」 開催のお知らせ
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb423bba4-2669-447b-8fd6-085a89c838df_1268x694.png)
👉 Yukihiro Matz shared "Namespace on read" for Ruby, FAQ
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F085d7faf-114f-4384-afbf-f0c4babb1a42_796x330.png)
👉 Xavier Noria shared his thoughts around the naming of the new feature
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb5ba7a3-85b3-4a11-85d7-babb524ba048_1270x908.png)
👉 Rob Zolkos shared a job from Apple where they describe that they are using Rails for Apple Music: (see job here)
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F446d01b7-02d9-4bea-bd1a-062a0e49a892_1228x546.png)
Bram Jetten added:
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00115f01-2d0e-44b4-bfd8-4633ec42032d_1226x244.png)
💻 Code Samples
💻 Marc Köhlbrugge shared a Ruby script to manage Cloudflare domains
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0e48095-84db-4f76-9f4a-49e20679acba_1132x1362.png)
💻 Collin shared a code sample on Enumerable#partition
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4347fa6-3266-4a83-b0a5-7420fc388842_1134x1128.png)
And this is how to use the same in code:
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe73cef8-6543-48ca-822d-6bb11665f3b1_1134x1064.png)
💻 Drew Bragg shared a code sample showing stack HEREDOCs:
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6886765a-9382-4e01-b48c-4c4d605b0617_1224x1672.png)
💻 Yaroslav Shmarov shares an interesting code sample for ruby
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e1680f6-cebc-4657-bad8-81b134202437_1006x714.png)
💻 Ruby On Rails shares a streamlined method to both invalidate a cache and procure a fresh token in Rails 7.1
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05f7bd86-d4d5-4332-929c-009f5f726841_974x830.png)
💻 John Mc Dowall shares on how you can quickly and dirtily grab a local PG database backup running as a Kamal accessory.
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ed053ab-6fa2-4043-91b4-38ea6886d0f0_1002x498.png)
💻 Chris Oliver shares a pro tip for rake tasks in ruby
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1906184-bbef-4591-93bc-8addaee019d6_1018x1008.png)
Here is a quick example:
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cc38397-b4cf-4003-a5cb-6d4f82dfa49e_998x954.png)
💻 Prabin Poudel shares his learning about number_with_precision
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff95d8832-4c47-4506-a59a-1b0f04a2a9f4_1014x908.png)
💻 Ruby Cademy suggests to take advantage of accessed_fields and after_action callback to optimize high-traffic pages.
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdecd6c76-0a98-4dd8-9240-77b3dea1e845_1002x1240.png)
💻 Matt Swanson asked about making a View Helper faster:
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5588bcb9-e98d-4aad-903a-32521230407e_1226x816.png)
Here are some replies:
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0344a49b-e57c-4091-9002-6a42e50528e4_1228x1098.png)
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84c9a524-ee51-497c-9dc2-498c9cd9232a_1220x346.png)
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8938fc80-4643-403c-bab9-3e391473b4df_1228x578.png)
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ea078ae-419d-426a-b887-db7cd1ebf63d_1228x386.png)
💻 Charles Oliver Nutter shared about JVM and JRuby integration:
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0071f897-6afc-4cdc-88d2-a7d8e0d0460b_1222x1004.png)
💻 Matt Swanson shared a code sample:
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f7b86de-aa80-43c3-a91c-02fbae3c975c_1238x1148.png)
💻 Mikel Lindsaar shared a benchmark comparison from JRuby 10: Ruby 3.3 on the Modern JVM
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b74ad00-439b-415a-bff4-611a6ce62d59_1230x1004.png)
📐 Thinking about Code Design
📐 Peter Solnica shares a benchmark on Rails vs Hanami vs Phoenix.
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36084df6-b359-4ae7-a835-072df51b2a4e_1134x968.png)
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F573b5eba-ffa0-4edd-84e5-869189882fa6_1218x442.png)
Adrien Poly added their stats to Peter's benchmark:
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F607b674e-58f7-4079-8bc0-a9750beacf93_1398x500.png)
📐 Andrei Maxim has something to add in response to Nate’s post discussed on our last edition
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb89c0682-ca6f-4dc4-a730-497e648060d1_1134x1398.png)
📐 Benjamín Silva H. explains why he thinks rails server handle more than 1.5 requests per server per vCPU:
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F461044db-2fca-4edc-9779-5e646e909cfd_656x1488.png)
📐 James Tucker shared about the performance he’s getting on a single vCPU using Rails
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29b5d6f7-0e0c-453d-8566-b038874d7ac0_1286x454.png)
📐 Joel Drapper shared his thoughts about how many requests a Ruby/Rails application can handle.
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a115da3-2c95-4261-91af-243759de192a_1260x480.png)
📐 Gavin Morrice shared his experience working on Rails applications with millions of monthly users.
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabac9df0-35a7-4719-bf96-3fed88c27929_1264x516.png)
📐 Lucian Ghinda shared a thought about supporting pattern matching in arguments :
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43689530-044d-4e57-96b2-d29b348b037f_1224x1002.png)
💡 Around code (news, findings, books, and more - all about Ruby)
💡 David Heinemeier Hansson shared a zero-config alternative to tmux
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F497d05fc-fbb7-4611-a9ac-51586c673f8b_1134x338.png)
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb23c5851-3015-406c-b4c0-8df3f06c3d86_2274x1518.png)
💡 Akshay Birajdar shared his learnings from reading the Down gem’s codebase
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F515a7e27-53de-4394-956d-05b8d24f6532_1124x1246.png)
💡 Joël Quenneville shared tips for working with Turbo
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4bbaa72-b22d-4915-833e-741a5ab78e94_1130x542.png)
💡 David Heinemeier Hansson discusses why Kamal1 needs Traefik for gap-less deploys.
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42ff3eac-1e51-45c8-83c6-46c99515826a_1128x364.png)
💡 Piotr Ch shares why he thinks it’s time for a new game-changing framework
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0f66cbe-4a05-43f6-b209-10ed895694b0_992x1060.png)
💡 Scott Watermasysk shared Hide files VS Code extension
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62210a3f-8248-42e2-8a1d-9fb0f4a10e3b_1006x1136.png)
💡 Adam Mc Crea shares three intriguing thoughts on Sidekiq queues:
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce13b409-2530-4292-908f-484e72c0d9bc_1002x1012.png)
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c7564e5-747d-4baa-bde9-ed5a0f0141b7_1000x376.png)
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F675bb0fa-c598-46b0-8da9-7dd80dca3e7c_976x864.png)
💡 Matt Swanson shares about <bundle update --conservative GEM>
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36b3a6ed-e798-4988-b9bd-7f038e4db7a2_1006x948.png)
💡 Andrei Kaleshka talks about why he thinks pattern matching in Ruby is amazing and how it helped him with implementing his complex business logic.
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdecc2cff-becf-45b8-9dcf-fad84c57394c_1006x1180.png)
💡 Ruby Cademy provides insights on what happens internally when ActiveRecord::RecordInvalid error is raised.
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15e60fc3-4bfe-48ac-a8c1-6d7f6a64f7cb_994x954.png)
❤️ Why Choose Ruby
❤️ Spilth shares why he loves Ruby
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e7041d7-4419-4304-8f5e-b51dae2e31ad_1274x422.png)
❤️ Allometry shared about what they missed in other frameworks and why they will go back in Rails:
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff464a106-b1d9-4244-a43e-ba3c7aeff9e0_1220x672.png)
❤️ Conner says that he prefers Rails for its “batteries included” mentality
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa72b273d-83eb-46aa-ba78-96f31fd9fa63_1016x410.png)
❤️ Jon Yongfook speaks for a lot of us as he quotes:
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11db0cc5-129e-47bd-b346-ca396ebdaab1_1002x210.png)
❤️ Jonathan Clem shared how the talks about Ruby being too slow
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3236f68f-9edf-43b7-88db-01ff8684ebfa_1270x340.png)
🧰 Gems, Libraries, Tools and Updates
🆕 New Gems and Repos
🆕 David Heinemeier Hansson announced a new editors supporting Markdown coming in the next 37Signal product called Workbook:
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F210ed59f-a961-41bc-9a02-0c925f6e4c85_1216x380.png)
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1bc6edb-15b4-44b2-bc77-437fdd2b0d5e_1216x1462.png)
🆕 kokuyouwind announced a new gem called rbs_goose - RBS type inferrer with LLM
🆕 De Silva announced a new ruby gem danger-gem_changes: A Danger plugin to assist with Gemfile dependency changes.
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9033493-3492-4bf1-b7fb-7444b0fbc2bc_1226x468.png)
🆕 Masato Ohba released pbt: Property-Based Testing tool for Ruby, supporting multiple concurrency methods (Ractor, multiprocesses, multithreads).
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63cf97bb-0e74-46be-bc5b-36be3a241933_1792x1488.png)
🆕 Lewis Buckley shared a repo kamal-prometheus-example: An example Rails app demonstrating using Prometheus metrics with Kamal
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4964d2f-0c00-41a3-9ac3-c5da8255c3a7_1230x350.png)
🧰 Updates
🧰 David Heinemeier Hansson announced a new version of Release v0.9.0 · rails/propshaft and it is now the default in Rails 8
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00deedbe-bf23-4535-ad0f-9213cc3d6022_1234x968.png)
🧰 Stanislav Katkov announced a new version of Posh TUI 0.7
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4dab95b-edc4-4196-b479-c072f05de133_1230x1190.png)
🧰 Mohammad A. Ali announced a new version of litestack - Litestack is a Ruby gem that provides both Ruby and Ruby on Rails applications an all-in-one solution for web application data infrastructure.
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2af8dd4-dea9-4499-ad26-6eef40137dc5_1308x1612.png)
🧰 Bozhidar Batsov shared release of RuboCop 1.64 which is out with a bunch of new features and small improvements
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F52e9df32-6b7a-4832-bf7b-fb2da1564e65_1720x530.png)
🧰 Janko Marohnić happily shares that the Down gem, used for Streaming downloads using Net::HTTP, http.rb or HTTPX has reached 1K stars on Github
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa99fabde-7f7a-465c-b68f-193cadce938b_1134x376.png)
🧰 Yuichiro Kaneko announced a new version of Release v1.8.0 · ruby/racc. racc is Racc is an LALR(1) parser generator. It is written in Ruby itself, and generates ruby programs.
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc6f1deb-8cfd-4e33-a0c7-72df502cfd16_1130x342.png)
🧰 Rémy Hannequin announced a new version of Pull requests · rhannequin/astronoby , astronoby enables Ruby developers to compute astronomical data and events
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4df3b78-b956-4b69-bab7-b44a7cc689b7_1192x474.png)
🧰 Mike Dalessio announced a new version of Release 2.0.2 / 2024-05-23 · sparklemotion/sqlite3-ruby
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcd95efe-28aa-4ad0-a2b8-d76c9040be71_1268x438.png)
🧰 Jeremy Evans announced a new version of ruby-warning 1.4.0 Released · jeremyevans ruby-warning · Discussion #23
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07414143-fffa-4ab9-9ca5-641ac4c07f91_1270x338.png)
🧰 Kevin Newton shared about Prism progress:
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9dfa7907-833f-4e18-8a52-b9203719b732_1254x1148.png)
👀 Keep an eye on
👀 Hanami shared their Plans for Hanami 2.2. You are welcome to checkout the project board and contribute.
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14875560-69ca-409d-899d-2de9066fbb2a_1256x592.png)
👀 Jason Fried shared a preview of the next ONCE product “Workbook”
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5f6eeaa-0efa-4eb3-9924-6868b14e6540_654x1264.png)
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe875b1bc-675b-47fe-9c41-750b4f6ff54c_1642x1506.png)
🤝 Related (but not Ruby-specific)
🤝 Mohammad A. Ali announced a new version of SQLite Release 3.46.0 On 2024-05-23
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcfdfa41b-a78d-4095-9dc0-5d1bc5111c17_1270x582.png)
🤝 Joshua Wood shared about inspiration:
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b4f1068-323a-480b-a9e9-99578c0fd0a0_1232x1456.png)
🤝 William Kennedy shared about businesses:
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2ccc483-ac73-445e-a85d-9e51bc3a1503_1234x692.png)
🤝 Jose Farias shared about OOP:
![](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80b3f4e7-11d8-48e8-9b42-7bd97092c041_1252x1094.png)
More content: 📚 🗞 🎧 🎥 ✍🏾
Tomoya Ishida shared their slides Writing Weird Code
Charles Oliver Nutter shared their slides JRuby 10: Ruby 3.3 on the Modern JVM
🗞 Newsletters
🗞 Ruby Central published a new edition about May 2024 Newsletter
🗞 Hotwire Weekly published a new edition about Week 21 - Turbo Native book update, Turbo LSP, and more!
🗞 Ruby Weekly published a new edition about Strings can only get better
🗞 Greg Molnar published a new edition of This Week in Rails about Better error message, opt-in devcontainers and more!
🗞 Ruby LibHunt published a new edition of Awesome Ruby newsletter - issue 418
🎧 Podcasts
🎧 Founder Quest published a new podcast about RailsConf recap with John Nunemaker
🎧 The Ruby On Rails Podcast published Episode 516: Catching Up On The Rails Foundation with Amanda Perino
🎧 Andrew Atkinson published a new podcast about Speaker: Andrew Atkinson | POSETTE: An Event for Postgres 2024
🎧 Aaron Francis published a new podcast David Heinemeier Hansson | High Performance SQLite
📽️ 🎥 Videos
Screencasts
🎥 Jason Swett published a new video about Refactoring RSpec Request Specs to be More Understandable - Mentorship Session with Yain Porter and about How Do We Write Tests for Job Streaming? and about Changing How Build/Job Navigation Works - Live Coding on SaturnCI
🎥 Yaroslav Shmarov published a new video about Tailwind on Rails #168 Mobile footer navigation
🎥 Dean De Hart published a new video about Idempotency in Ruby on Rails
🎥 Irina Nazarova published a new video about SF Bay Area Ruby Meetup, March 2024: Ben Sheldon, Marco Roth, Daniel Farina, Vladimir Dementyev
🎥 Drifting Ruby published a new video about Episode 458 - Feature Toggle from Scratch
✍🏾 Articles
What’s new 🆕
🆕 Mari Imaizumi compiled a big list of articles about RubyKaigi 2024
🆕 Andy Croll published a new article about Railsconf Detroit 2024: A Co-chair’s Perspective
🆕 Lewis Buckley published an article about Prometheus metrics with Rails and Kamal
🆕 Adam McCrea published an article about Planning your Sidekiq queues
🆕 Jason Swett published a new article about Testing anti-pattern: accessing private properties
🆕 Maciej Mensfeld published an article about From Sleep to Speed: Making Rdkafka Sync Operations 16 Times Faster
🆕 Dr. Milan Milanović published a new article about Inside Shopify’s Modular Monolith
🆕 Jared White published an article about Expressive Class Hierarchies through Dynamically-Instantiated Support Objects.
🆕 Steven Harman shared his blog On Flaky Tests, Time Precision, and Order Dependence.
🆕 Maciej Mensfeld published a new article about From Sleep to Speed: Making Rdkafka Sync Operations 16 Times Faster
🆕 Aki published a new article RubyKaigi 2024 - From LALR to IELR: A Lrama's Next Step (Day3)
🆕 Martin Streicher published an article about Five Things to Avoid in Ruby
🆕 Prasanth Chaduvula published an article about Strict Loading Using :n_plus_one_only Mode Does Not Eagerly Load Child Associations In Rails 7.2
🆕 Joel Warrington published an article about Building a Ruby on Rails MVP
🆕 Steven Harman published an article about On Flaky Tests, Time Precision, and Order Dependence
🕵️ Deep-Dive
🕵️ Jason Swett shared Testing anti-pattern: merged setup data - Code with Jason.
🕵️ Krzysztof published an article about Hanami’s place in the world of Rails
How-TOs 📝
📝 Mohammad A. Ali published a new article about Full text search for Litestack Ruby apps with Litesearch
📝 Akshay Khot published an article about How to Setup Rails-like Integration Tests in Ruby
📝 Rails Designer published an article about Communicating between Stimulus Controllers using Outlets API
📝 Ahmed Nadar published an article about Normalization in Rails 7.1 era
📝 Roland Lopez published an article about Ruby on rails Cloudflare turnstile tutorial
📝 Ryan Bigg published an article on Scheduling with Ice Cube and about Thought Experiment: Without React or GraphQL
📝 Fito Von Zastrow published an article about Extension without Modification
📝 Jeffery Morhous published an article about Adding views to an API-only Rails app
📝 Cristian Molina published an article about Basic painting with Ruby: implementing a flood-fill algorithm with DragonRuby GTK
📝 Garrett Gregor published an article about Fakeish
📝 Nithin Bekal published an article about Blocking AI bots with robots.txt in Jekyll
📝 Povilas Jurčys published an article about How to use custom gems without changing the Gemfile
📝 Bill Tihen published an article about Rails 7.1.x - GraphDB App with AGE