<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Ruby Weekly</title>
    <description>A free, once–weekly e-mail round-up of Ruby news and articles.</description>
    <link>https://rubyweekly.com/</link>
    <item>
      <title>Why RubyGems just revoked every legacy API key</title>
      <link>https://rubyweekly.com/issues/810</link>
      <description>

  

    
    
  




&lt;table border=0 cellpadding=0 cellspacing=0 align="center" border="0"&gt;
  &lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em;"&gt;
  &lt;div&gt;    
    &lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;
&lt;td align="left" style="padding-left: 4px; font-size: 15px; line-height: 1.48em;"&gt;&lt;p&gt;#​810 — July 23, 2026&lt;/p&gt;&lt;/td&gt;
&lt;td align="right" style="padding-right: 4px; font-size: 15px; line-height: 1.48em;"&gt;&lt;p&gt;&lt;a href="https://rubyweekly.com/link/188349/rss" style=" color: #0055bb;   "&gt;Read on the Web&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-size: 15px; line-height: 1.48em;"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
    
    &lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0 12px;"&gt;&lt;p&gt;Ruby Weekly&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em;"&gt;
  &lt;a href="https://rubyweekly.com/link/188303/rss" style=" color: #0055bb;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/bddtb2tsghzwsjwlzkys.jpg" width="640" style="    line-height: 100%;    "&gt;&lt;/a&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;span&gt;🔒&lt;/span&gt; &lt;a href="https://rubyweekly.com/link/188303/rss" title="blog.rubygems.org" style=" color: #0055bb;    font-size: 1.1em; line-height: 1.4em;"&gt;RubyGems Revokes Legacy API Keys After Possible Cache Leak&lt;/a&gt;&lt;/span&gt; — A CDN caching bug, which has existed for years, could have served accounts' legacy API keys to other users. There's no evidence of malicious use, but it's worth affected owners checking their gems over nonetheless.&lt;/p&gt;
  &lt;p&gt;Colby Swandale (Ruby Central) &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;&lt;p&gt;💡 Luke Marshall, from Truffle Security, discovered this bug and did &lt;a href="https://rubyweekly.com/link/188304/rss" style=" color: #0055bb; font-weight: 600;   "&gt;a full technical writeup&lt;/a&gt; of how the bug could have been exploited.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  &lt;a href="https://rubyweekly.com/link/188302/rss" style=" color: #0055bb;   "&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/ab08b8fa.png" width="120" height="120" style="padding-top: 12px; padding-left: 12px;     line-height: 100%; "&gt;&lt;/a&gt;
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/188302/rss" title="www.appsignal.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;All-in-One Ruby &amp;amp; Rails Monitoring — Errors + Performance&lt;/a&gt;&lt;/span&gt; — Track errors, N+1 queries, slow SQL, Sidekiq jobs, and host metrics — all in one Ruby gem. AppSignal gives Rails teams every feature on every plan, with predictable pricing and real engineers on support. &lt;a href="https://rubyweekly.com/link/188302/rss" style=" color: #0055bb;   "&gt;30-day free trial, no credit card&lt;/a&gt;.&lt;/p&gt;
  &lt;p&gt;AppSignal &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #997 !important; padding: 1px 4px; "&gt;sponsor&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/188305/rss" title="baweaver.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;Beyond Enumerable: Testing Membership with Bloom Filters&lt;/a&gt;&lt;/span&gt; — When &lt;code&gt;include?&lt;/code&gt; over a huge collection gets expensive, a &lt;a href="https://rubyweekly.com/link/188306/rss" style=" color: #0055bb;   "&gt;Bloom filter&lt;/a&gt; can answer 'definitely &lt;em&gt;not&lt;/em&gt; present' with fixed memory and constant-time lookups. Brandon builds one in Ruby, covering all the details.&lt;/p&gt;
  &lt;p&gt;Brandon Weaver &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;&lt;p&gt;💡 If you want to understand how Bloom filters work at a high level, &lt;a href="https://rubyweekly.com/link/188306/rss" style=" color: #0055bb; font-weight: 600;   "&gt;Sam Rose's visual Bloom filter explainer&lt;/a&gt; is fantastic.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
&lt;p&gt;&lt;strong&gt;⚡️ IN BRIEF:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Matz has accepted &lt;a href="https://rubyweekly.com/link/188307/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;a proposal to bring more bit-level operations to &lt;code&gt;String&lt;/code&gt;&lt;/a&gt;, including &lt;code&gt;bit_count&lt;/code&gt;, &lt;code&gt;bit_get&lt;/code&gt; and &lt;code&gt;bit_set&lt;/code&gt; (&lt;a href="https://rubyweekly.com/link/188308/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;PR here&lt;/a&gt;).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;No RubyConf videos &lt;em&gt;yet&lt;/em&gt;, but Confreaks has uploaded &lt;a href="https://rubyweekly.com/link/188309/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;seventeen videos from &lt;em&gt;Blastoff Rails 2026&lt;/em&gt;&lt;/a&gt;, an event that took place in Albuquerque last month.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/188310/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;RubyMine 2026.2 has been released&lt;/a&gt;. It's the latest version of JetBrains' commercial Ruby IDE with RBS, code insight, and AI-related enhancements.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The &lt;a href="https://rubyweekly.com/link/188311/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;CFP for &lt;em&gt;SF Ruby&lt;/em&gt;&lt;/a&gt;, taking place in San Francisco this November, closes on July 27 (next Monday). Tickets are now on sale too.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;▶  &lt;a href="https://rubyweekly.com/link/188312/rss" title="www.youtube.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;RuboCop 2.0: Where Do We Go Now?&lt;/a&gt;&lt;/span&gt; — At RubyConf Austria (&lt;a href="https://rubyweekly.com/link/188313/rss" style=" color: #0055bb;   "&gt;all the videos are here&lt;/a&gt;) the creator of &lt;a href="https://rubyweekly.com/link/188314/rss" style=" color: #0055bb;   "&gt;RuboCop&lt;/a&gt; gave a dense state of the union update on the project and how it's continuing to improve.&lt;/p&gt;
  &lt;p&gt;Bozhidar Batsov &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;span&gt;🤖&lt;/span&gt; &lt;a href="https://rubyweekly.com/link/188315/rss" title="danielabaron.me" style=" color: #0055bb;    font-size: 1.05em;"&gt;How I Stopped Running out of Tokens&lt;/a&gt;&lt;/span&gt; — A Rubyist whose company uses Claude Enterprise shares numerous tools you can use (such as &lt;a href="https://rubyweekly.com/link/188316/rss" style=" color: #0055bb;   "&gt;rtk&lt;/a&gt;) to get the most out of assigned limits.&lt;/p&gt;
  &lt;p&gt;Daniela Baron &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/188317/rss" title="sinaptia.dev" style=" color: #0055bb;    font-size: 1.05em;"&gt;Using OpenSpec in Rails Applications&lt;/a&gt;&lt;/span&gt; — See how OpenSpec is reshaping our Rails workflow. What paid off, what failed, and what we’d do differently.&lt;/p&gt;
  &lt;p&gt;SINAPTIA &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #997 !important; padding: 1px 4px; "&gt;sponsor&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
&lt;p&gt;📄 &lt;a href="https://rubyweekly.com/link/188318/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Active Model Conditional Validations&lt;/a&gt; – A tour of conditional validations, from &lt;a href="https://rubyweekly.com/link/188319/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;custom contexts&lt;/a&gt; to &lt;code&gt;validation_context&lt;/code&gt;, plus a case for splitting divergent behavior into separate classes instead. &lt;cite&gt;Kevin Murphy&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://rubyweekly.com/link/188320/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;A Proposal for Deprecating &lt;code&gt;ruby2_keywords&lt;/code&gt;&lt;/a&gt; – Dropping the compatibility mechanism introduced for the Ruby 2-to-3 keyword arguments separation seems obvious, but will have knock-on effects. &lt;cite&gt;Shugo Maeda&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://rubyweekly.com/link/188321/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;'Poor Man's Escape Analysis': A Proposed CRuby Optimization&lt;/a&gt; &lt;cite&gt;Yusuke Endoh&lt;/cite&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0;"&gt;&lt;p&gt;🛠 Code &amp;amp; Tools&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em;"&gt;
  &lt;a href="https://rubyweekly.com/link/188322/rss" style=" color: #0055bb;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/an0xnckaandro7uetvrt.jpg" width="640" style="        line-height: 100%;  "&gt;&lt;/a&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-size: 15px; line-height: 1.48em;"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/188322/rss" title="github.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;TableTennis 1.0: Stylish Terminal Tables&lt;/a&gt;&lt;/span&gt; — A library for printing tabular data on the terminal that includes theming, automatic layout, automatic formatting of dates and numbers, coloring of numeric values, and more.&lt;/p&gt;
  &lt;p&gt;Adam Doppelt &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/188323/rss" title="www.jruby.org" style=" color: #0055bb;    font-size: 1.05em;"&gt;JRuby 10.1.1.0: Faster Number Parsing and Security Fixes&lt;/a&gt;&lt;/span&gt; — The Ruby 4.0-targeting JVM implementation gains faster number parsing, OpenBSD support, and OpenSSL and ERB security fixes.&lt;/p&gt;
  &lt;p&gt;Charles Oliver Nutter et al. &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/188324/rss" title="go.fastruby.io" style=" color: #0055bb;    font-size: 1.05em;"&gt;Need More Rails Capacity? Speed Up Your Product Roadmap Next Week 🚀&lt;/a&gt;&lt;/span&gt; — Rails devs who integrate fast, ship quality code &amp;amp; help your team deliver more each sprint. We vet them, you ship more.&lt;/p&gt;
  &lt;p&gt;FastRuby.io® | Rails Staff Aug &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #997 !important; padding: 1px 4px; "&gt;sponsor&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/188325/rss" title="github.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;Audition: See if a Ruby Program Can Run Inside Ractors&lt;/a&gt;&lt;/span&gt; — A tool you can point at a Ruby script, gem, Rack or Rails app, and it tells you if it can run within &lt;a href="https://rubyweekly.com/link/188326/rss" style=" color: #0055bb;   "&gt;Ractors&lt;/a&gt;, Ruby's experimental actor-based parallel execution mechanism. And if not, it explains why.&lt;/p&gt;
  &lt;p&gt;Yaroslav Markin &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/188327/rss" title="rigor.typedduck.fail" style=" color: #0055bb;    font-size: 1.05em;"&gt;Rigor: Type-Aware Ruby Static Analyzer and Bug Finder&lt;/a&gt;&lt;/span&gt; — Unlike Sorbet or Steep, no annotations are required. Rigor infers types from the values your code produces, while treating any RBS you have as authoritative.&lt;/p&gt;
  &lt;p&gt;Usami et al. &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/188328/rss" title="github.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;Pygments.rb 5.0: A Ruby Wrapper for the Pygments Syntax Highlighter&lt;/a&gt;&lt;/span&gt; — &lt;a href="https://rubyweekly.com/link/188329/rss" style=" color: #0055bb;   "&gt;Pygments&lt;/a&gt; is one of the best syntax highlighters out there, but it's Python-based. This library makes it easier to call. v5.0 bumps Pygments up to the latest version.&lt;/p&gt;
  &lt;p&gt;Nyman, Gupta and Radchenko &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;&lt;p&gt;💡 Alternatively, &lt;a href="https://rubyweekly.com/link/188330/rss" style=" color: #0055bb; font-weight: 600;   "&gt;Rouge&lt;/a&gt; is a pure Ruby Pygments-compatible code highlighter.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/188331/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;React on Rails 17.0&lt;/a&gt; – A complete way to integrate React into Rails apps. Now with full support for React 19 and streaming server rendering. (&lt;a href="https://rubyweekly.com/link/188332/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Homepage&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/188333/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;RuboCop Minitest 0.40&lt;/a&gt; – Extension for enforcing Minitest best practices and coding conventions.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/188334/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Gemsmith 26.0&lt;/a&gt; – CLI tool for creating and managing Ruby gems following common best practices.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/188335/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Rack::Proxy 1.0&lt;/a&gt; – Request/response rewriting HTTP proxy for Rack apps.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/188336/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;RubyGems and Bundler 4.0.17&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-size: 15px; line-height: 1.48em;"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px;"&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-size: 15px; line-height: 1.48em;"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
&lt;p&gt;📰 Classifieds&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
&lt;p&gt;🤖 No vibes, just vitals. &lt;a href="https://rubyweekly.com/link/188337/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;AppSignal's MCP server&lt;/a&gt; brings Rails errors, traces &amp;amp; metrics into Claude, Cursor &amp;amp; Copilot. Debug in your editor.&lt;/p&gt;
 
&lt;p&gt;Your Rails app logs events all day. &lt;a href="https://rubyweekly.com/link/188338/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;TimescaleDB&lt;/a&gt; turns them into real-time analytics, right in the Postgres you already run.&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-size: 15px; line-height: 1.48em;"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0;"&gt;&lt;p&gt;😅  An Old/New Ruby Discovery of the Week&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
&lt;p&gt;I recently got the itch to see what I'm getting for Christmas. Well, what's coming in Ruby 4.1, anyway. It's not going to be a &lt;em&gt;big&lt;/em&gt; release syntax-wise, but there are a variety of new methods and features I'll share in coming weeks.&lt;/p&gt;
&lt;p&gt;My first surprise, though, was the enhancement of a method added back in Ruby 2.4 that I had not noticed: &lt;a href="https://rubyweekly.com/link/188339/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;&lt;code&gt;String#unpack1&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;unpack1&lt;/code&gt; is basically &lt;code&gt;unpack&lt;/code&gt; that only returns the first extracted value. You'd use these methods &lt;a href="https://rubyweekly.com/link/188340/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;when working with packed data&lt;/a&gt;, perhaps when parsing binary files, random protocols, network data, and the like.&lt;/p&gt;
&lt;p&gt;So if, like me, you didn't know about &lt;code&gt;unpack1&lt;/code&gt; or the Ruby docs' surprisingly thorough &lt;a href="https://rubyweekly.com/link/188341/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Packed Data page&lt;/a&gt; which is &lt;em&gt;*ahem*&lt;/em&gt; &lt;em&gt;packed&lt;/em&gt; with examples, now you do.&lt;/p&gt;
&lt;p&gt;The Ruby 4.1 change? &lt;code&gt;unpack&lt;/code&gt;/&lt;code&gt;unpack1&lt;/code&gt; are getting new directives:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;R&lt;/code&gt; for unsigned &lt;a href="https://rubyweekly.com/link/188342/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;LEB128&lt;/a&gt; (Little Endian Base 128) as used in DWARF and WASM.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;r&lt;/code&gt; for signed LEB128.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;^&lt;/code&gt; to return the current byte offset (more useful than it sounds).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;x!&lt;/code&gt; and &lt;code&gt;@!&lt;/code&gt; are new alignment directives to handle padding in binary formats by advancing the cursor to aligned byte positions, relative to the record's starting offset (e.g. &lt;code&gt;x!4&lt;/code&gt;) and the whole string (&lt;code&gt;@!4&lt;/code&gt;) respectively.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you're not tinkering around with packing and unpacking data, you might not have any use for these, but for my sins I enjoy low-level noodling with binary data in Ruby, so am looking forward to experimenting more.&lt;/p&gt;
&lt;p&gt;This is a niche topic, but I learnt something, this is my newsletter, and hopefully I'll get to some more useful Ruby 4.1 additions for you next time ;-)&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-size: 15px; line-height: 1.48em;"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
  &lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;




&lt;img src="https://rubyweekly.com/open/810/rss" width="1" height="1" /&gt;</description>
      <pubDate>Thu, 23 Jul 2026 00:00:00 +0000</pubDate>
      <guid>https://rubyweekly.com/issues/810</guid>
    </item>
    <item>
      <title>Matz's 'Extreme Vibe Coding' opens RubyConf</title>
      <link>https://rubyweekly.com/issues/809</link>
      <description>

  

    
    
  




&lt;table border=0 cellpadding=0 cellspacing=0 align="center" border="0"&gt;
  &lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em;"&gt;
  &lt;div&gt;    
    &lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;
&lt;td align="left" style="padding-left: 4px; font-size: 15px; line-height: 1.48em;"&gt;&lt;p&gt;#​809 — July 16, 2026&lt;/p&gt;&lt;/td&gt;
&lt;td align="right" style="padding-right: 4px; font-size: 15px; line-height: 1.48em;"&gt;&lt;p&gt;&lt;a href="https://rubyweekly.com/link/188080/rss" style=" color: #0055bb;   "&gt;Read on the Web&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-size: 15px; line-height: 1.48em;"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
    
    &lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0 12px;"&gt;&lt;p&gt;Ruby Weekly&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em;"&gt;
  &lt;a href="https://rubyweekly.com/link/188074/rss" style=" color: #0055bb;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/lrk9bsnienbuenrt2hqz.jpg" width="640" style="    line-height: 100%;    "&gt;&lt;/a&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/188074/rss" title="marcoroth.dev" style=" color: #0055bb;    font-size: 1.1em; line-height: 1.4em;"&gt;Introducing Insta: Snapshot Testing for Ruby&lt;/a&gt;&lt;/span&gt; — Instead of hand-writing expected values, tests assert against a &lt;em&gt;recorded snapshot&lt;/em&gt; of your code's output. When it changes, an interactive CLI shows the diff for you to accept or reject. Extracted from &lt;a href="https://rubyweekly.com/link/188075/rss" style=" color: #0055bb;   "&gt;Herb&lt;/a&gt; and supports Minitest and RSpec. &lt;a href="https://rubyweekly.com/link/188081/rss" style=" color: #0055bb;   "&gt;GitHub repo.&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;Marco Roth &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  &lt;a href="https://rubyweekly.com/link/188022/rss" style=" color: #0055bb;   "&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/05375153.png" width="110" height="110" style="padding-top: 12px; padding-left: 12px;     line-height: 100%; "&gt;&lt;/a&gt;
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/188022/rss" title="go.fastruby.io" style=" color: #0055bb;    font-size: 1.05em;"&gt;🚨 Behind on Rails? 7.2 Goes EOL in Less Than a Month…&lt;/a&gt;&lt;/span&gt; — Rails 7.2 reaches end of life next month. We've put 60,000+ hours into Rails upgrades, with real case studies and open source Claude Code skills. Upgrade with us or &lt;a href="https://rubyweekly.com/link/188023/rss" style=" color: #0055bb;   "&gt;add capacity to your engineering team&lt;/a&gt;. Rails upgrades by experts, not guesswork.&lt;/p&gt;
  &lt;p&gt;FastRuby.io | Rails Upgrade Services &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #997 !important; padding: 1px 4px; "&gt;sponsor&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/188024/rss" title="lobste.rs" style=" color: #0055bb;    font-size: 1.05em;"&gt;lobste.rs Migrates from MariaDB to SQLite&lt;/a&gt;&lt;/span&gt; — The &lt;a href="https://rubyweekly.com/link/188025/rss" style=" color: #0055bb;   "&gt;lobste.rs&lt;/a&gt; programming link aggregator is built on &lt;a href="https://rubyweekly.com/link/188026/rss" style=" color: #0055bb;   "&gt;an open source Rails app&lt;/a&gt; and, after a process spanning years, has now switched entirely to SQLite on a single instance. A good real-world case study for the Rails-on-SQLite era.&lt;/p&gt;
  &lt;p&gt;Dziedzic, Harkins, et al. &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;&lt;p&gt;💡 The Lobsters team wanted to detect when SQLite was doing inefficient full table scans. Aaron Patterson &lt;a href="https://rubyweekly.com/link/188027/rss" style=" color: #0055bb; font-weight: 600;   "&gt;comes to the rescue with how to do just that&lt;/a&gt;, wondering if it could be a useful warning in Rails generally.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
&lt;p&gt;&lt;strong&gt;⚡️ IN BRIEF:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/188033/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Ruby 4.0.6&lt;/a&gt; has been released as a minor routine release, while &lt;a href="https://rubyweekly.com/link/188034/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Ruby 3.3.12&lt;/a&gt; brings security fixes for &lt;code&gt;erb&lt;/code&gt; and &lt;code&gt;net-imap&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Matz opened &lt;a href="https://rubyweekly.com/link/188028/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;RubyConf&lt;/a&gt; this week with &lt;em&gt;"Extreme Vibe Coding"&lt;/em&gt; where he shared his take on AI's role in development work. No video yet but it's mentioned in &lt;a href="https://rubyweekly.com/link/188029/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;𝕏 posts here&lt;/a&gt;, &lt;a href="https://rubyweekly.com/link/188030/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;here&lt;/a&gt;, &lt;a href="https://rubyweekly.com/link/188031/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;here&lt;/a&gt;, and &lt;a href="https://rubyweekly.com/link/188032/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;here&lt;/a&gt;. Video as soon as we get it!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Spinel isn't just Matz's AOT Ruby compiler, it's also &lt;a href="https://rubyweekly.com/link/188035/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;the name of the Spinel Cooperative&lt;/a&gt;, a group of Rubyists working on &lt;a href="https://rubyweekly.com/link/188036/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;rv&lt;/a&gt; and other tools.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/188037/rss" title="guides.rubyevents.org" style=" color: #0055bb;    font-size: 1.05em;"&gt;How to Start a Ruby Meetup&lt;/a&gt;&lt;/span&gt; — Fantastic advice for putting on your own Ruby get-together. The guidance is generic enough to work for technical meetups of any flavor. If you do well, there's also &lt;a href="https://rubyweekly.com/link/188038/rss" style=" color: #0055bb;   "&gt;a guide to putting on a Ruby &lt;em&gt;conference&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;
  &lt;p&gt;The Ruby Events Team &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;&lt;p&gt;💡 If you'd rather &lt;em&gt;attend&lt;/em&gt; a Ruby event, &lt;a href="https://rubyweekly.com/link/188039/rss" style=" color: #0055bb; font-weight: 600;   "&gt;this RubyEvents.org page&lt;/a&gt; has you covered.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;▶  &lt;a href="https://rubyweekly.com/link/188040/rss" title="www.youtube.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;Ten Talks from Brighton Ruby 2026&lt;/a&gt;&lt;/span&gt; — Talks from last month's &lt;a href="https://rubyweekly.com/link/188041/rss" style=" color: #0055bb;   "&gt;Brighton Ruby&lt;/a&gt; event, including &lt;a href="https://rubyweekly.com/link/188042/rss" style=" color: #0055bb;   "&gt;
▶️ 10 Cool Things You Probably Didn't Know About Rails i18n&lt;/a&gt; and &lt;a href="https://rubyweekly.com/link/188043/rss" style=" color: #0055bb;   "&gt;▶️ From Rails 3.0 to Rails Edge&lt;/a&gt;, a 15 year Rails upgrade journey covering what it takes to get 300 engineers comfortable shipping on unreleased Rails versions.&lt;/p&gt;
  &lt;p&gt;YouTube &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/188044/rss" title="sinaptia.dev" style=" color: #0055bb;    font-size: 1.05em;"&gt;Where AI Belongs in a Rails Product&lt;/a&gt;&lt;/span&gt; — A Rails case study on RubyLLM agents, synthetic data, and knowing when not to use an LLM.&lt;/p&gt;
  &lt;p&gt;SINAPTIA &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #997 !important; padding: 1px 4px; "&gt;sponsor&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
&lt;p&gt;📄 &lt;a href="https://rubyweekly.com/link/188045/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Never Escape This Ruby Loop (Also, Here's How)&lt;/a&gt; – Is there a truly infinite loop in Ruby? Almost! Some fun poking here. &lt;cite&gt;Masataka Pocke Kuwabara&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://rubyweekly.com/link/188046/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Rails 8.1's Deprecated Associations and How to Fix Them&lt;/a&gt; – &lt;em&gt;"Rails 8.1 lets you explicitly mark outdated or obsolete associations as deprecated."&lt;/em&gt; &lt;cite&gt;Julio Lucero&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://rubyweekly.com/link/188047/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;A Gentle Introduction to Git Worktrees&lt;/a&gt; – For when you need to check out multiple branches into separate directories simultaneously. &lt;cite&gt;Nicholas C. Zakas&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://rubyweekly.com/link/188048/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;6 Security Settings Every GitHub Maintainer Should Enable This Week&lt;/a&gt;  &lt;cite&gt;Joseph Katsioloudes (GitHub)&lt;/cite&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0;"&gt;&lt;p&gt;🛠 Code &amp;amp; Tools&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em;"&gt;
  &lt;a href="https://rubyweekly.com/link/188076/rss" style=" color: #0055bb;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/bec9jocalnscznnmf29k.jpg" width="640" style="    line-height: 100%;      "&gt;&lt;/a&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/188077/rss" title="github.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;SimpleCov 1.0: Code Coverage for Ruby&lt;/a&gt;&lt;/span&gt; — The popular code coverage tool hits v1.0 after 15+ years at 0.x, bringing together a new report UI, redesigned configuration API, and improved parallel testing support. No release post means I might need to blog about this soon as it's a neat tool!&lt;/p&gt;
  &lt;p&gt;Berlin et al. &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/188051/rss" title="blog.appsignal.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;AppSignal for Startups: Up to 50% Off the Full Platform&lt;/a&gt;&lt;/span&gt; — Bootstrapped startups get up to 25% off ongoing; YC teams up to 50%. The full platform, not a cut-down tier.&lt;/p&gt;
  &lt;p&gt;AppSignal &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #997 !important; padding: 1px 4px; "&gt;sponsor&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/188049/rss" title="github.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;Shopify’s Ruby Style Guide 3.0&lt;/a&gt;&lt;/span&gt; — As one of the largest employers of Rubyists, Shopify is keen to enforce a particular way of writing Ruby there. This style guide is their attempt at that, and is also packed into a special RuboCop cop: &lt;code&gt;rubocop-shopify&lt;/code&gt;. The rules have &lt;a href="https://rubyweekly.com/link/188050/rss" style=" color: #0055bb;   "&gt;changed somewhat in this new version&lt;/a&gt;.&lt;/p&gt;
  &lt;p&gt;Shopify &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/188052/rss" title="github.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;minitest-strict: Stricter Assertions for Minitest&lt;/a&gt;&lt;/span&gt; — &lt;em&gt;"Minitest's built-in assertions are lenient in ways that can mask bugs"&lt;/em&gt;, says Erik, whose library redefines several assertions to require strict boolean values, plus adds &lt;code&gt;assert_true&lt;/code&gt;, &lt;code&gt;assert_false&lt;/code&gt; and &lt;code&gt;assert_eql&lt;/code&gt;.&lt;/p&gt;
  &lt;p&gt;Erik Berlin &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;&lt;p&gt;💡 As part of working on the &lt;a href="https://rubyweekly.com/link/188053/rss" style=" color: #0055bb; font-weight: 600;   "&gt;&lt;code&gt;http&lt;/code&gt; gem&lt;/a&gt;, Erik also made &lt;a href="https://rubyweekly.com/link/188054/rss" style=" color: #0055bb; font-weight: 600;   "&gt;minitest-memory&lt;/a&gt; which provides assertions for tracking memory allocations.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/188055/rss" title="github.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;BinData 3.0: A Declarative Way to Read/Write Binary Data&lt;/a&gt;&lt;/span&gt; — Rather than messing around with &lt;code&gt;unpack&lt;/code&gt;, this makes working with data at the bit/byte level declarative and Ruby-like (&lt;a href="https://rubyweekly.com/link/188056/rss" style=" color: #0055bb;   "&gt;example&lt;/a&gt;).&lt;/p&gt;
  &lt;p&gt;Dion Mendel &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/188057/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Torch.rb 0.25&lt;/a&gt; – LibTorch-powered deep learning library from Andrew Kane, the creator of pgvector.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/188058/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;The Git Gem 4.4&lt;/a&gt; – Wraps &lt;code&gt;git&lt;/code&gt; to enable easier access from Ruby.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/188059/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Shrine 3.9&lt;/a&gt; – Popular file attachment handling toolkit.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/188060/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;RubyGems and Bundler 4.0.16&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-size: 15px; line-height: 1.48em;"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px;"&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-size: 15px; line-height: 1.48em;"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
&lt;p&gt;📰 Classifieds&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
&lt;p&gt;🔬 Stop shipping untested AI code. Undercover CI shows &lt;a href="https://rubyweekly.com/link/188061/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;4 ways to catch it in your dev workflow&lt;/a&gt;.&lt;/p&gt;
 
&lt;p&gt;🚀 On Hatchbox? Add &lt;a href="https://rubyweekly.com/link/188062/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;AppSignal&lt;/a&gt; in two clicks for error tracking, host metrics &amp;amp; Sidekiq alerts. &lt;a href="https://rubyweekly.com/link/188062/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Hatchbox customers get 10% off&lt;/a&gt;.&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-size: 15px; line-height: 1.48em;"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0;"&gt;&lt;p&gt;📢  Elsewhere in the ecosystem&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em;"&gt;
  &lt;a href="https://rubyweekly.com/link/188063/rss" style=" color: #0055bb;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/ebjhrkuhptc4knqacmej.jpg" width="640" style="    line-height: 100%;      "&gt;&lt;/a&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;✨ This week, I stumbled upon &lt;a href="https://rubyweekly.com/link/188063/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;this table of the top 100 starred Ruby repos on GitHub&lt;/a&gt;. How far can you go before you find something new to you?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Adrian Marin recently unveiled a big &lt;a href="https://rubyweekly.com/link/188078/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Avo 4 release&lt;/a&gt; – &lt;a href="https://rubyweekly.com/link/188079/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Avo&lt;/a&gt; is a powerful commercial Rails admin framework/template, though with an LGPLv3 licensed core you can use for free on hobby/personal projects.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Ollie Williams does a feature-by-feature audit of what build tools still do for frontend developers in 2026 and asks: &lt;a href="https://rubyweekly.com/link/188066/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;do we still &lt;em&gt;need&lt;/em&gt; build tools?&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;GitHub's &lt;a href="https://rubyweekly.com/link/188064/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Dependabot is now giving packages a three-day default cooldown&lt;/a&gt; before opening version update PRs, though security fixes are exempt.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/188067/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;A scrolling visualization of the ~200ms life of an HTTP request.&lt;/a&gt; Goes surprisingly deep into the details.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-size: 15px; line-height: 1.48em;"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
  &lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;




&lt;img src="https://rubyweekly.com/open/809/rss" width="1" height="1" /&gt;</description>
      <pubDate>Thu, 16 Jul 2026 00:00:00 +0000</pubDate>
      <guid>https://rubyweekly.com/issues/809</guid>
    </item>
    <item>
      <title>Getting Mastodon on Spinel</title>
      <link>https://rubyweekly.com/issues/808</link>
      <description>

  

    
    
  




&lt;table border=0 cellpadding=0 cellspacing=0 align="center" border="0"&gt;
  &lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em;"&gt;
  &lt;div&gt;    
    &lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;
&lt;td align="left" style="padding-left: 4px; font-size: 15px; line-height: 1.48em;"&gt;&lt;p&gt;#​808 — July 9, 2026&lt;/p&gt;&lt;/td&gt;
&lt;td align="right" style="padding-right: 4px; font-size: 15px; line-height: 1.48em;"&gt;&lt;p&gt;&lt;a href="https://rubyweekly.com/link/187738/rss" style=" color: #0055bb;   "&gt;Read on the Web&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-size: 15px; line-height: 1.48em;"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
    
    &lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0 12px;"&gt;&lt;p&gt;Ruby Weekly&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em;"&gt;
  &lt;a href="https://rubyweekly.com/link/187678/rss" style=" color: #0055bb;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/e2jxcisxfp7kbvevxzsb.jpg" width="640" style="    line-height: 100%;    "&gt;&lt;/a&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/187678/rss" title="rubygems.org" style=" color: #0055bb;    font-size: 1.1em; line-height: 1.4em;"&gt;RubyGems.org Gets a New Design&lt;/a&gt;&lt;/span&gt; — The RubyGems site has received a major lick of fresh paint, much like the &lt;a href="https://rubyweekly.com/link/187679/rss" style=" color: #0055bb;   "&gt;official Ruby site&lt;/a&gt; several months earlier, with a new theme in both light and dark modes. You can see the work that went on in &lt;a href="https://rubyweekly.com/link/187680/rss" style=" color: #0055bb;   "&gt;these&lt;/a&gt; &lt;a href="https://rubyweekly.com/link/187681/rss" style=" color: #0055bb;   "&gt;pull&lt;/a&gt; &lt;a href="https://rubyweekly.com/link/187682/rss" style=" color: #0055bb;   "&gt;requests&lt;/a&gt;. I like it, though &lt;a href="https://rubyweekly.com/link/187683/rss" style=" color: #0055bb;   "&gt;𝕏 not everyone is a fan&lt;/a&gt;.&lt;/p&gt;
  &lt;p&gt;Rubygems․org &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;&lt;p&gt;📊 The new &lt;a href="https://rubyweekly.com/link/187739/rss" style=" color: #0055bb; font-weight: 600;   "&gt;stats page&lt;/a&gt; links to &lt;a href="https://rubyweekly.com/link/187740/rss" style=" color: #0055bb; font-weight: 600;   "&gt;ClickGems&lt;/a&gt;, a site by ClickHouse that aggregates gem statistics and provides visualizations of gem download data (&lt;a href="https://rubyweekly.com/link/187741/rss" style=" color: #0055bb; font-weight: 600;   "&gt;example&lt;/a&gt;).&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  &lt;a href="https://rubyweekly.com/link/187677/rss" style=" color: #0055bb;   "&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/042b31e7.png" width="153" height="110" style="padding-top: 12px; padding-left: 12px;     line-height: 100%; "&gt;&lt;/a&gt;
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/187677/rss" title="github.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;Full-Text Search in ActiveRecord Without a Second System&lt;/a&gt;&lt;/span&gt; — The official ParadeDB gem brings BM25 full-text search to ActiveRecord. Query your live Postgres tables with the speed and relevance ranking of Elasticsearch. No ETL, no sync jobs.&lt;/p&gt;
  &lt;p&gt;ParadeDB &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #997 !important; padding: 1px 4px; "&gt;sponsor&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/187684/rss" title="intertwingly.net" style=" color: #0055bb;    font-size: 1.05em;"&gt;Getting Mastodon Running on Spinel&lt;/a&gt;&lt;/span&gt; — Two weeks ago we featured Sam's work &lt;a href="https://rubyweekly.com/link/187685/rss" style=" color: #0055bb;   "&gt;on compiling a basic Rails app to run on Spinel&lt;/a&gt;, Matz's AOT Ruby compiler. But what about a &lt;em&gt;real&lt;/em&gt; and large app? Work to get &lt;a href="https://rubyweekly.com/link/187686/rss" style=" color: #0055bb;   "&gt;Mastodon&lt;/a&gt; running on Spinel is underway and has already yielded some neat byproducts including Spinel &lt;a href="https://rubyweekly.com/link/187687/rss" style=" color: #0055bb;   "&gt;Redis&lt;/a&gt; and &lt;a href="https://rubyweekly.com/link/187688/rss" style=" color: #0055bb;   "&gt;Postgres&lt;/a&gt; clients.&lt;/p&gt;
  &lt;p&gt;Sam Ruby &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
&lt;p&gt;&lt;strong&gt;⚡️ IN BRIEF:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;🇺🇸 The &lt;a href="https://rubyweekly.com/link/187689/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;SF Ruby conference&lt;/a&gt; is back in November, complete with an 8-bit-inspired site and a rebranding to &lt;em&gt;"San Francisco Ruby &lt;b&gt;Startup&lt;/b&gt; Conference"&lt;/em&gt; with Y Combinator's Garry Tan keynoting.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🌐 Not keen on San Francisco? We've included a global Ruby and Rails events list at the end of the issue! &lt;a href="https://rubyweekly.com/link/187690/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;RubyEvents.org&lt;/a&gt; also provides a good list.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Aaron 'tenderlove' Patterson &lt;a href="https://rubyweekly.com/link/187691/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;proposes adding a new YARV instruction to CRuby&lt;/a&gt; to let the VM allocate 'right-sized' strings without the overhead of &lt;code&gt;String.new&lt;/code&gt;'s method dispatch.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Meanwhile, Jean Boussier proposes that Ruby 4.1's &lt;a href="https://rubyweekly.com/link/187692/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;&lt;code&gt;Symbol#to_s&lt;/code&gt; should return frozen strings&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;span&gt;🤖&lt;/span&gt; &lt;a href="https://rubyweekly.com/link/187693/rss" title="danielabaron.me" style=" color: #0055bb;    font-size: 1.05em;"&gt;How to Audit a Rails Project with Thoughtbot's Audit Skill&lt;/a&gt;&lt;/span&gt; — A developer runs Thoughtbot's &lt;a href="https://rubyweekly.com/link/187694/rss" style=" color: #0055bb;   "&gt;&lt;em&gt;Rails Audit&lt;/em&gt; skill&lt;/a&gt; against a mature Rails app and shows how to turn the final report into labelled, prioritized GitHub issues.&lt;/p&gt;
  &lt;p&gt;Daniela Baron &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/187695/rss" title="judoscale.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;The Tale of Moving a Ruby App from Heroku to Render&lt;/a&gt;&lt;/span&gt; — A case study of moving a high traffic Ruby app. Compute costs fell but egress fees sent the bill up significantly. Render's founder &lt;a href="https://rubyweekly.com/link/187696/rss" style=" color: #0055bb;   "&gt;replied on X&lt;/a&gt; saying the post offers a "good overview" and confirmed improvements are on the way.&lt;/p&gt;
  &lt;p&gt;Jon Sully (Judoscale) &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;&lt;p&gt;💡 This is the first in a series of &lt;em&gt;"Judoscale on Tour"&lt;/em&gt; posts with Railway, Fly, Northflank, DigitalOcean, and AWS ECS getting the same treatment soon.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;span&gt;💬&lt;/span&gt; &lt;a href="https://rubyweekly.com/link/187697/rss" title="onceamaintainer.substack.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;Once a Maintainer: Mike Dalessio&lt;/a&gt;&lt;/span&gt; — A popular interview series catches up with Rails committer and Nokogiri maintainer Mike Dalessio on how AI has changed security work, plus maintainer burnout.&lt;/p&gt;
  &lt;p&gt;Allison Pike / Once a Maintainer &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/187698/rss" title="blog.appsignal.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;Rails, Django or Laravel: Which Is Cheapest to Vibe Code?&lt;/a&gt;&lt;/span&gt; — AI-generated Rails code hides N+1s until production. We tracked the real token costs of vibe coding.&lt;/p&gt;
  &lt;p&gt;AppSignal &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #997 !important; padding: 1px 4px; "&gt;sponsor&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
&lt;p&gt;📄 &lt;strong&gt;A new official Rails tutorial:&lt;/strong&gt; &lt;a href="https://rubyweekly.com/link/187699/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Product Reviews&lt;/a&gt; – Covers adding a reviews feature to the e-commerce app built in &lt;a href="https://rubyweekly.com/link/187700/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Getting Started with Rails&lt;/a&gt;. &lt;cite&gt;Chris Oliver&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://rubyweekly.com/link/187701/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Writing a Linter is Fun: Introducing Marcdouane&lt;/a&gt; – Using &lt;code&gt;dry/cli&lt;/code&gt;, &lt;code&gt;dry/configurable&lt;/code&gt;, &lt;code&gt;dry/events&lt;/code&gt; and &lt;code&gt;inkmark&lt;/code&gt;. &lt;cite&gt;Stéphane Maniaci&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://rubyweekly.com/link/187702/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Cinnamon Buns and Commit Bits: A RubyConf Story&lt;/a&gt; – &lt;em&gt;"I still think being a Rubyist matters and going to events like RubyConf matters."&lt;/em&gt; &lt;cite&gt;Richard Schneeman&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://rubyweekly.com/link/187703/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Surviving Rolling Deploys When Sidekiq Meets a Class It Doesn't Know Yet&lt;/a&gt;  &lt;cite&gt;Dmitry Tsepelev&lt;/cite&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0;"&gt;&lt;p&gt;🛠 Code &amp;amp; Tools&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em;"&gt;
  &lt;a href="https://rubyweekly.com/link/187704/rss" style=" color: #0055bb;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/xhgbue5ylonef6vvcacu.jpg" width="640" style="        line-height: 100%;  "&gt;&lt;/a&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/187704/rss" title="lexxy.dev" style=" color: #0055bb;    font-size: 1.05em;"&gt;Lexxy: A Modern Rich Text Editor for Rails&lt;/a&gt;&lt;/span&gt; — 37signals introduced &lt;a href="https://rubyweekly.com/link/187705/rss" style=" color: #0055bb;   "&gt;Lexxy&lt;/a&gt; as a replacement for &lt;a href="https://rubyweekly.com/link/187706/rss" style=" color: #0055bb;   "&gt;Trix&lt;/a&gt; a year ago. It's matured significantly since, is the main editor in Basecamp, and now has a homepage of its own. It comes with Markdown support, smart links, code highlighting, and integrates with &lt;a href="https://rubyweekly.com/link/187707/rss" style=" color: #0055bb;   "&gt;Action Text&lt;/a&gt;.&lt;/p&gt;
  &lt;p&gt;37signals &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/187708/rss" title="noteflakes.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;Extralite 3.0: A Fast, Featureful SQLite Wrapper&lt;/a&gt;&lt;/span&gt; — The &lt;em&gt;"Ruby on SQLite, but better"&lt;/em&gt; library is now.. betterer? It adds many things &lt;a href="https://rubyweekly.com/link/187709/rss" style=" color: #0055bb;   "&gt;sqlite3-ruby&lt;/a&gt; lacks, has good concurrency options, supports advanced SQLite features, and with v3.0 supports object graph transforms too, as demonstrated in this post.&lt;/p&gt;
  &lt;p&gt;Sharon Rosner &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/187710/rss" title="go.fastruby.io" style=" color: #0055bb;    font-size: 1.05em;"&gt;Behind on Your Product Roadmap? Scale Your Rails Team, Fast&lt;/a&gt;&lt;/span&gt; — Vetted Rails engineers embedded in your team in weeks, not months. They ship from day one. Flexible terms, no lock-in. 🚀&lt;/p&gt;
  &lt;p&gt;FastRuby.io® | Rails Staff Aug &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #997 !important; padding: 1px 4px; "&gt;sponsor&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/187711/rss" title="github.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;PL/Ruby 2.5: Ruby as a Procedural Language for Postgres&lt;/a&gt;&lt;/span&gt; — Lets you write functions, triggers, event triggers, and procedures for Postgres in Ruby. Intrigued what you could do? There's &lt;a href="https://rubyweekly.com/link/187712/rss" style=" color: #0055bb;   "&gt;a 'cookbook'&lt;/a&gt; covering things like email validation, triggers, and token generation.&lt;/p&gt;
  &lt;p&gt;Joshua D. Drake (Command Prompt Inc.) &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;&lt;p&gt;💡 If you're a Postgres user, check out &lt;a href="https://rubyweekly.com/link/187713/rss" style=" color: #0055bb; font-weight: 600;   "&gt;our Postgres Weekly newsletter&lt;/a&gt;.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/187714/rss" title="github.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;AASM 6.0: Add State Machines to Ruby Classes&lt;/a&gt;&lt;/span&gt; — Started life as the &lt;em&gt;acts_as_state_machine&lt;/em&gt; for Active Record, but AASM now supports plain Ruby classes as well as other libraries like Mongoid and Sequel. Ruby 2.x and Rails 6.x support are dropped in v6.0.&lt;/p&gt;
  &lt;p&gt;Barron, Böttger, et al. &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/187715/rss" title="github.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;phlex-reactive: Reactive Phlex Components for Rails&lt;/a&gt;&lt;/span&gt; — Get Livewire-style actions and live cross-tab updates without writing Stimulus controllers or hand-picking Turbo Stream targets.&lt;/p&gt;
  &lt;p&gt;Mikael Henriksson &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;📱 &lt;a href="https://rubyweekly.com/link/187716/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Hotwire Native 1.3&lt;/a&gt; – A big release for the framework that turns &lt;a href="https://rubyweekly.com/link/187717/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Hotwire&lt;/a&gt;-powered, server-rendered apps into native iOS and Android apps.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/187718/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Turbulence 1.4&lt;/a&gt; – Visualize Ruby code churn versus complexity, now with improved visualizations and a data recorder for your flight logs.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/187719/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Lograge 0.15.0&lt;/a&gt; – Tame Rails' default policy to log everything. Now fully tested up to Rails 8.1 and Ruby 4.0.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/187720/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Tilt 2.8&lt;/a&gt; – Generic interface for Ruby template engines.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/187721/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Nori 2.9&lt;/a&gt; – Long-standing Ruby XML-to-Hash parser.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px;"&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-size: 15px; line-height: 1.48em;"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
&lt;p&gt;📰 Classifieds&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
&lt;p&gt;🔌 Connect &lt;a href="https://rubyweekly.com/link/187722/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;AppSignal&lt;/a&gt; to Claude Code, Cursor &amp;amp; Copilot. Get Rails errors, traces &amp;amp; metrics in your AI editor.&lt;/p&gt;
 
&lt;p&gt;🔺 Made a library? Written a blog post? Found a useful tutorial? &lt;a href="https://rubyweekly.com/link/187723/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Share it with the Ruby community on RubyFlow&lt;/a&gt;, the Ruby and Rails community linklog.&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-size: 15px; line-height: 1.48em;"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px;"&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
&lt;p&gt;🗓  Upcoming Ruby Events&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;🇺🇸 &lt;a href="https://rubyweekly.com/link/187724/rss" style=" color: #0055bb; font-weight: 600;"&gt;RubyConf 2026 (July 14–16 in Las Vegas)&lt;/a&gt; — Taking place next week, the flagship US Ruby conference still has tickets available.&lt;/li&gt;
&lt;li&gt;🇯🇵 &lt;a href="https://rubyweekly.com/link/187725/rss" style=" color: #0055bb; font-weight: 600;"&gt;Kansai RubyKaigi 9 (July 18 in Otsu, Japan)&lt;/a&gt; — A regional Japanese Ruby event. Yui Naruse is one of the keynote speakers.&lt;/li&gt;
&lt;li&gt;🇰🇪 &lt;a href="https://rubyweekly.com/link/187726/rss" style=" color: #0055bb; font-weight: 600;"&gt;RubyConf Africa 2026 (August 21–22 in Nairobi, Kenya)&lt;/a&gt; — A two-day event featuring 13 talks and a keynote by Sanmi Amos.&lt;/li&gt;
&lt;li&gt;🇨🇿 &lt;a href="https://rubyweekly.com/link/187727/rss" style=" color: #0055bb; font-weight: 600;"&gt;EuRuKo 2026
 (September 17–18 in Brno, Czechia)&lt;/a&gt; — Europe's longest-running Ruby conference.&lt;/li&gt;
&lt;li&gt;🇺🇸 &lt;a href="https://rubyweekly.com/link/187728/rss" style=" color: #0055bb; font-weight: 600;"&gt;Rails World 2026
 (September 23–24 in Austin, TX)&lt;/a&gt; — The Rails Foundation's flagship event. &lt;a href="https://rubyweekly.com/link/187729/rss" style=" color: #0055bb; font-weight: 600;"&gt;The speaker lineup was announced in June.&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🇺🇸 &lt;a href="https://rubyweekly.com/link/187730/rss" style=" color: #0055bb; font-weight: 600;"&gt;Rocky Mountain Ruby 2026
 (September 28–29 in Boulder, CO)&lt;/a&gt; — A well-regarded regional US Ruby conference.&lt;/li&gt;
&lt;li&gt;🇯🇵 &lt;a href="https://rubyweekly.com/link/187731/rss" style=" color: #0055bb; font-weight: 600;"&gt;Kaigi on Rails 2026
 (October 16–17 in Tokyo / Online)&lt;/a&gt; — A Rails-focused Japanese conference. &lt;a href="https://rubyweekly.com/link/187732/rss" style=" color: #0055bb; font-weight: 600;"&gt;The CFP closes in just a few days&lt;/a&gt; (July 12).&lt;/li&gt;

&lt;/ul&gt;
&lt;p&gt;ℹ️ Note: &lt;em&gt;This list isn't exhaustive, but we'll continue to mention and promote other events over time.&lt;/em&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-size: 15px; line-height: 1.48em;"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
  &lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;




&lt;img src="https://rubyweekly.com/open/808/rss" width="1" height="1" /&gt;</description>
      <pubDate>Thu, 9 Jul 2026 00:00:00 +0000</pubDate>
      <guid>https://rubyweekly.com/issues/808</guid>
    </item>
    <item>
      <title>The tools RubyKaigi attendees are using</title>
      <link>https://rubyweekly.com/issues/807</link>
      <description>

  

    
    
  




&lt;table border=0 cellpadding=0 cellspacing=0 align="center" border="0"&gt;
  &lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em;"&gt;
  &lt;div&gt;    
    &lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;
&lt;td align="left" style="padding-left: 4px; font-size: 15px; line-height: 1.48em;"&gt;&lt;p&gt;#​807 — July 2, 2026&lt;/p&gt;&lt;/td&gt;
&lt;td align="right" style="padding-right: 4px; font-size: 15px; line-height: 1.48em;"&gt;&lt;p&gt;&lt;a href="https://rubyweekly.com/link/187430/rss" style=" color: #0055bb;   "&gt;Read on the Web&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-size: 15px; line-height: 1.48em;"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
    
    &lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0 12px;"&gt;&lt;p&gt;Ruby Weekly&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em;"&gt;
  &lt;a href="https://rubyweekly.com/link/187380/rss" style=" color: #0055bb;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/eamhj55rixun5ir9fzdr.jpg" width="640" style="    line-height: 100%;    "&gt;&lt;/a&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/187380/rss" title="dev.to" style=" color: #0055bb;    font-size: 1.1em; line-height: 1.4em;"&gt;What Active Rubyists at RubyKaigi Are Using in 2026&lt;/a&gt;&lt;/span&gt; — RubyGems's maintainer shares data based upon a survey of &lt;a href="https://rubyweekly.com/link/187381/rss" style=" color: #0055bb;   "&gt;RubyKaigi 2026&lt;/a&gt; attendees. It's an interesting sample, as RubyKaigi attendees tend to be active shippers, maintainers, and prominent Rubyists. Ruby 4.0 usage is strong, VS Code dominates, and most are using Claude Code and Docker Compose.&lt;/p&gt;
  &lt;p&gt;Hiroshi Shibata &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;&lt;p&gt;💡 On the topic of surveys, the &lt;a href="https://rubyweekly.com/link/187382/rss" style=" color: #0055bb; font-weight: 600;   "&gt;2026 Ruby on Rails Community Survey&lt;/a&gt; &lt;em&gt;closes tomorrow&lt;/em&gt;, so take it now if you can.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  &lt;a href="https://rubyweekly.com/link/187379/rss" style=" color: #0055bb;   "&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/3a72a0f4.png" width="145" height="145" style="padding-top: 12px; padding-left: 12px;     line-height: 100%; "&gt;&lt;/a&gt;
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/187379/rss" title="go.fastruby.io" style=" color: #0055bb;    font-size: 1.05em;"&gt;Rails Experts You Like &amp;amp; Trust, Now Embedded in Your Team 🚀&lt;/a&gt;&lt;/span&gt; — Since '17, companies have trusted FastRuby.io with their most complex Rails upgrades. Now those same engineers can scale your team fast: shipping features, fixing bugs, accelerating delivery, and integrating AI effectively. &lt;a href="https://rubyweekly.com/link/187379/rss" style=" color: #0055bb;   "&gt;Let's talk!&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;FastRuby.io® | Staff Augmentation &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #997 !important; padding: 1px 4px; "&gt;sponsor&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/187383/rss" title="hanakai.org" style=" color: #0055bb;    font-size: 1.05em;"&gt;Hanami 3.0: The Ruby Framework in Full Bloom&lt;/a&gt;&lt;/span&gt; — The popular modular app framework rolls out some major features, including mailers, i18n, and Minitest support, along with performance gains. The &lt;a href="https://rubyweekly.com/link/187384/rss" style=" color: #0055bb;   "&gt;new homepage&lt;/a&gt; does a great job of making Hanami's case. If you want a framework that’s super modular and lets you pick and choose what you need, it's a must-see.&lt;/p&gt;
  &lt;p&gt;Tim Riley &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
&lt;p&gt;&lt;strong&gt;⚡️ IN BRIEF:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/187385/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;RDoc 8.0 has been released&lt;/a&gt; and it's a big update for the Ruby documentation tool with Prism-based parsing, RBS signatures in docs, a live preview server, and more.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Shugo Maeda has &lt;a href="https://rubyweekly.com/link/187386/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;proposed Scala-like &lt;code&gt;for&lt;/code&gt; comprehensions&lt;/a&gt; for Ruby. He has a proof of concept ready to run, but the reactions so far are lukewarm at best.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/187387/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Async&lt;/a&gt; maintainer Samuel Williams proposes a fix so &lt;a href="https://rubyweekly.com/link/187388/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;CRuby's SIGINT handling no longer ignores &lt;code&gt;Thread.handle_interrupt&lt;/code&gt; masking&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/187389/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Ruby 3.4.10 has been released&lt;/a&gt; with a wide variety of &lt;a href="https://rubyweekly.com/link/187390/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;small bug fixes&lt;/a&gt;, plus a security update for &lt;code&gt;net-imap&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/187391/rss" title="baweaver.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;Rails, The Sharp Parts: A Polymorphic Type is Not a Foreign Key&lt;/a&gt;&lt;/span&gt; — Polymorphic associations aren’t real foreign keys, says Brandon, who shows off the sharp edges around their use. &lt;em&gt;“When people ask me about polymorphic relationships my answer is simply: Don’t.”&lt;/em&gt;&lt;/p&gt;
  &lt;p&gt;Brandon Weaver &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/187392/rss" title="toppa.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;Five Rules for Taming RSpec's &lt;code&gt;let&lt;/code&gt; Overuse Problem&lt;/a&gt;&lt;/span&gt; — Concrete, code-backed rules for using &lt;code&gt;let&lt;/code&gt; effectively, based on advice from RSpec maintainers and years of consulting. There’s also an agent skill you can use to enforce the idea.&lt;/p&gt;
  &lt;p&gt;Michael Toppa &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/187393/rss" title="blog.appsignal.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;Find the Slow Query Killing Your Rails App&lt;/a&gt;&lt;/span&gt; — AppSignal pinpoints N+1 queries and slow SQL in your Rails app, then shows you exactly what to fix.&lt;/p&gt;
  &lt;p&gt;AppSignal &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #997 !important; padding: 1px 4px; "&gt;sponsor&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
&lt;p&gt;📄 &lt;a href="https://rubyweekly.com/link/187394/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;An Introduction to Server Sent Events in Ruby&lt;/a&gt; – How to push data in real-time over a single request with Rack 3.0. &lt;cite&gt;Brooke Kuhlmann&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://rubyweekly.com/link/187395/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;The 'Constant Frozen at Boot' Bug: A Ruby Exercise for an Interview&lt;/a&gt; – A real production bug that makes for a good interview question. &lt;cite&gt;Evgeny Zhdanov&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://rubyweekly.com/link/187396/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;When Does an Active Record Query Actually Run?&lt;/a&gt; – &lt;em&gt;“An ActiveRecord::Relation is deferred query intent, not database truth.”&lt;/em&gt; &lt;cite&gt;Syed Aslam&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://rubyweekly.com/link/187397/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Getting Started with Claude Code, on macOS, with &lt;code&gt;chruby&lt;/code&gt; and RSpec&lt;/a&gt;  &lt;cite&gt;Jonathan Rochkind&lt;/cite&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0;"&gt;&lt;p&gt;🛠 Code &amp;amp; Tools&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em;"&gt;
  &lt;a href="https://rubyweekly.com/link/187398/rss" style=" color: #0055bb;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/kdgdghicmvq00lypmfmp.jpg" width="640" style="        line-height: 100%;  "&gt;&lt;/a&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/187398/rss" title="github.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;Skrift: A Pure Ruby TrueType Font Renderer&lt;/a&gt;&lt;/span&gt; — A port of the C-based &lt;a href="https://rubyweekly.com/link/187399/rss" style=" color: #0055bb;   "&gt;libschrift&lt;/a&gt; to Ruby that rasterises TrueType/OpenType outlines. The output can then be rendered in the terminal &lt;em&gt;(above)&lt;/em&gt; or saved to an image, etc.&lt;/p&gt;
  &lt;p&gt;Vidar Hokstad &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/187400/rss" title="github.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;Classifier: Bayesian and LSI Classification Algorithms&lt;/a&gt;&lt;/span&gt; — Covers Bayesian classification, logistic regression, LSI, KNN and TF-IDF, for when you want to create text classifiers (e.g. spam filtering or similarity checks) without dragging in a huge ML model.&lt;/p&gt;
  &lt;p&gt;Lucas Carlson &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/187401/rss" title="sinaptia.dev" style=" color: #0055bb;    font-size: 1.05em;"&gt;Jidoka: Automation with a Human Touch&lt;/a&gt;&lt;/span&gt; — Pair coding agents with senior engineers to modernize legacy code and ship faster with built-in quality.&lt;/p&gt;
  &lt;p&gt;JIDOKA by SINAPTIA &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #997 !important; padding: 1px 4px; "&gt;sponsor&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/187402/rss" title="github.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;jemalloc_rb: Reviving the Alternative Malloc for Ruby&lt;/a&gt;&lt;/span&gt; — Injects &lt;a href="https://rubyweekly.com/link/187403/rss" style=" color: #0055bb;   "&gt;jemalloc&lt;/a&gt; into CRuby apps for better memory usage. May be useful now that Meta has committed to &lt;a href="https://rubyweekly.com/link/187404/rss" style=" color: #0055bb;   "&gt;working on jemalloc again&lt;/a&gt;.&lt;/p&gt;
  &lt;p&gt;Henrique F. Teixeira et al. &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-size: 15px; line-height: 1.48em;"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em;"&gt;
  &lt;a href="https://rubyweekly.com/link/187405/rss" style=" color: #0055bb;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/nlv24jtx6uzgmlsadnas.jpg" width="640" style="    line-height: 100%;      "&gt;&lt;/a&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/187405/rss" title="activepad.app" style=" color: #0055bb;    font-size: 1.05em;"&gt;Activepad: A Rails 'Scratchpad' for macOS&lt;/a&gt;&lt;/span&gt; — A &lt;em&gt;paid&lt;/em&gt; app you point at a Rails project (local or remote) to get a tidy editor that provides a Rails console-like experience for building and running Ruby snippets.&lt;/p&gt;
  &lt;p&gt;Cengiz Gürtusgil &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/187406/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Rails Semantic Logger 5.0&lt;/a&gt; – Replaces the Rails default logger with &lt;a href="https://rubyweekly.com/link/187407/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Semantic Logger&lt;/a&gt; for structured logging.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/187408/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;pru 0.3&lt;/a&gt; – 'Pipeable Ruby' tool that can replace &lt;code&gt;grep&lt;/code&gt;/&lt;code&gt;sed&lt;/code&gt;/&lt;code&gt;awk&lt;/code&gt;, etc. and let you use Ruby expressions instead.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/187409/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Crass 1.0.7&lt;/a&gt; – Pure Ruby CSS parser that supports CSS Syntax Level 3 with tolerance for broken input.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/187410/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;rspec-openapi 0.30&lt;/a&gt; – Generate OpenAPI schemas from RSpec request specs.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/187411/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;wasmtime-rb 46.0&lt;/a&gt; – Ruby WebAssembly runtime powered by Wasmtime.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/187412/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;IRuby 0.8.3&lt;/a&gt; – Ruby kernel for Jupyter/IPython Notebook.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-size: 15px; line-height: 1.48em;"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px;"&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-size: 15px; line-height: 1.48em;"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
&lt;p&gt;📰 Classifieds&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
&lt;p&gt;🔬 Shipping AI code? &lt;a href="https://rubyweekly.com/link/187413/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Undercover CI&lt;/a&gt; catches untested methods in your PRs before you merge. Coverage percentages won't. Free for open source.&lt;/p&gt;
 
&lt;p&gt;🚂 Rails slow? &lt;a href="https://rubyweekly.com/link/187414/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;AppSignal&lt;/a&gt; finds N+1s &amp;amp; slow queries fast.&lt;/p&gt;
 
&lt;p&gt;Postgres is already your Rails database. &lt;a href="https://rubyweekly.com/link/187415/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;TimescaleDB&lt;/a&gt; makes it your analytics database too.&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-size: 15px; line-height: 1.48em;"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0;"&gt;&lt;p&gt;📢  Elsewhere in the ecosystem&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em;"&gt;
  &lt;a href="https://rubyweekly.com/link/187416/rss" style=" color: #0055bb;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/rytlhcnax7zu3mktavt0.jpg" width="640" style="    line-height: 100%;      "&gt;&lt;/a&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/187416/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Commit History&lt;/a&gt; is an online tool that creates a chart of a user's total GitHub commits over time. A neat addition to your &lt;a href="https://rubyweekly.com/link/187417/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;profile README&lt;/a&gt;, perhaps?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/187418/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Git 2.55 has been released&lt;/a&gt; with &lt;code&gt;git history fixup&lt;/code&gt; for 'fixing up' earlier commits, faster &lt;code&gt;git status&lt;/code&gt; on Linux, and more.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;GitHub is continuing with efforts to make project management less overwhelming in the agentic era. Now &lt;a href="https://rubyweekly.com/link/187419/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;you can restrict issue creation to collaborators with write access&lt;/a&gt;. They've also added &lt;a href="https://rubyweekly.com/link/187420/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;pull request limits&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;📊 Frank Denis wanted to &lt;a href="https://rubyweekly.com/link/187421/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;see the performance of WebAssembly runtimes in 2026&lt;/a&gt; and pitted nine options against one another.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Talking of WebAssembly, remember that you can &lt;a href="https://rubyweekly.com/link/187422/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;run CRuby on WASM&lt;/a&gt; – &lt;a href="https://rubyweekly.com/link/187423/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;this site provides a good example&lt;/a&gt; with Ruby 3.4 running in the browser.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-size: 15px; line-height: 1.48em;"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
  &lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;




&lt;img src="https://rubyweekly.com/open/807/rss" width="1" height="1" /&gt;</description>
      <pubDate>Thu, 2 Jul 2026 00:00:00 +0000</pubDate>
      <guid>https://rubyweekly.com/issues/807</guid>
    </item>
  </channel>
</rss>
