<br />
<b>Deprecated</b>:  The each() function is deprecated. This message will be suppressed on further calls in <b>/home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php</b> on line <b>456</b><br />
<?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>The final report on the 'RubyGems fracture'</title>
      <link>https://rubyweekly.com/issues/794</link>
      <description>

  

    
    
    
    
    
  




&lt;table border=0 cellpadding=0 cellspacing=0 align="center" border="0"&gt;
  &lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;p&gt;#​794 — April 2, 2026&lt;/p&gt;&lt;/td&gt;
&lt;td align="right" style="padding-right: 4px; font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;p&gt;&lt;a href="https://rubyweekly.com/link/183239/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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0; padding-right: 12px;  padding-left: 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;
  &lt;a href="https://rubyweekly.com/link/183288/rss" style=" color: #0055bb;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/wnt0xqiiwa2myqojb4hd.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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/183288/rss" title="rubycentral.org" style=" color: #0055bb;    font-size: 1.1em; line-height: 1.4em;"&gt;The '&lt;em&gt;RubyGems&lt;/em&gt; Fracture' Incident Report&lt;/a&gt;&lt;/span&gt; — A postmortem of the &lt;a href="https://rubyweekly.com/link/183289/rss" style=" color: #0055bb;   "&gt;Ruby Central vs Bundler story&lt;/a&gt; in late 2025 which resulted in the Ruby core team &lt;a href="https://rubyweekly.com/link/183290/rss" style=" color: #0055bb;   "&gt;taking stewardship&lt;/a&gt; of RubyGems and Bundler. The timeline of events is laid out in detail, but it’s unlikely to resolve the matter entirely (as demonstrated &lt;a href="https://rubyweekly.com/link/183291/rss" style=" color: #0055bb;   "&gt;in this Reddit comment&lt;/a&gt; by Mike Perham).&lt;/p&gt;
  &lt;p&gt;Richard Schneeman (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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;&lt;p&gt;💡 &lt;em&gt;The Register&lt;/em&gt; also has &lt;a href="https://rubyweekly.com/link/183292/rss" style=" color: #0055bb; font-weight: 600;   "&gt;a good independent take on this update&lt;/a&gt; factoring in some of the responses to it.&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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  &lt;a href="https://rubyweekly.com/link/183240/rss" style=" color: #0055bb;   "&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/1d33ebb2.png" width="150" height="150" 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/183240/rss" title="www.fastruby.io" style=" color: #0055bb;    font-size: 1.05em;"&gt;How a Solo SaaS Founder Stopped Worrying About Rails Maintenance&lt;/a&gt;&lt;/span&gt; — "FastRuby.io is the steady baseline behind everything. They've simplified my life and freed me up to focus on what's important." See how &lt;a href="https://rubyweekly.com/link/183241/rss" style=" color: #0055bb;   "&gt;Bonsai's fixed-cost monthly maintenance&lt;/a&gt; helped Tim go from chasing contractors to peace of mind.&lt;/p&gt;
  &lt;p&gt;Bonsai by FastRuby.io® &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #997 !important; padding-top: 1px; padding-right: 4px;  padding-left: 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/183242/rss" title="rubynative.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;Ruby Native 0.4: Your Rails App in the App Store&lt;/a&gt;&lt;/span&gt; — Think &lt;a href="https://rubyweekly.com/link/183243/rss" style=" color: #0055bb;   "&gt;Hotwire Native&lt;/a&gt; but without ever having to touch Swift, yet you still get native controls, navbars, menus, and iOS 26 styling. It’s now free right up to using &lt;em&gt;TestFlight&lt;/em&gt; with your first 100 users. You only pay once you want to go live in the &lt;em&gt;App Store&lt;/em&gt;.&lt;/p&gt;
  &lt;p&gt;Joe Masilotti &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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/183244/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Ruby 3.2.11 has been released&lt;/a&gt; to fix the recent &lt;a href="https://rubyweekly.com/link/183245/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;zlib vulnerability&lt;/a&gt;, much as &lt;a href="https://rubyweekly.com/link/183246/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Ruby 3.3.11&lt;/a&gt; did last week. Note that &lt;a href="https://rubyweekly.com/link/183247/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Ruby 3.2 is now EOL (End of Life).&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🔠 Looking for a new editor font? &lt;a href="https://rubyweekly.com/link/183248/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;CodingFont&lt;/a&gt; helps you find a good choice &lt;em&gt;visually&lt;/em&gt; using a bracket-style faceoff.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🤖 The &lt;a href="https://rubyweekly.com/link/183249/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;&lt;em&gt;Ruby AI News&lt;/em&gt; newsletter&lt;/a&gt; is celebrating its first birthday and is absolutely packed with stuff.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/183250/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Rubysyn&lt;/a&gt; is an interesting attempt to &lt;em&gt;'clarify Ruby's syntax and semantics'&lt;/em&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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/183251/rss" title="www.fastruby.io" style=" color: #0055bb;    font-size: 1.05em;"&gt;Rails Upgrade Methodology as Claude Code Skills&lt;/a&gt;&lt;/span&gt; — I actually used &lt;a href="https://rubyweekly.com/link/183252/rss" style=" color: #0055bb;   "&gt;the raw MD files&lt;/a&gt; last weekend to upgrade a Rails 6 app to Rails 8 and it went well.&lt;/p&gt;
  &lt;p&gt;Ernesto Tagwerker (FastRuby) &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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/183253/rss" title="railsatscale.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;Using Perfetto in ZJIT&lt;/a&gt;&lt;/span&gt; — 
The &lt;a href="https://rubyweekly.com/link/183254/rss" style=" color: #0055bb;   "&gt;ZJIT&lt;/a&gt; team has added &lt;a href="https://rubyweekly.com/link/183255/rss" style=" color: #0055bb;   "&gt;Perfetto&lt;/a&gt; tracing support to visualize and query slow events in Ruby's next-gen JIT. Deep technical content from the people building Ruby's performance future.
&lt;/p&gt;
  &lt;p&gt;Max Bernstein (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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/183256/rss" title="fandf.co" style=" color: #0055bb;    font-size: 1.05em;"&gt;CI was designed for 2015. Your deploy frequency wasn't.&lt;/a&gt;&lt;/span&gt; — Depot CI: 2-3s job starts, parallel steps, SSH debugging. Run &lt;code&gt;depot ci migrate&lt;/code&gt; to move your GitHub Actions in minutes.&lt;/p&gt;
  &lt;p&gt;Depot &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #997 !important; padding-top: 1px; padding-right: 4px;  padding-left: 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;📄 &lt;a href="https://rubyweekly.com/link/183257/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Migrating 9,000 Tests from RSpec to Minitest with AI Agents&lt;/a&gt;  &lt;cite&gt;Viktor Schmidt&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://rubyweekly.com/link/183258/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Improving on Sandi Metz's Gear Class from POODR&lt;/a&gt; – &lt;em&gt;*gasp!*&lt;/em&gt; &lt;cite&gt;Jason Swett&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://rubyweekly.com/link/183259/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Handling Uncountable Words in Rails Inflections&lt;/a&gt; – Like staff, metadata, feedback.. or maybe &lt;em&gt;sheep&lt;/em&gt;? &lt;cite&gt;Andy Croll&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://rubyweekly.com/link/183260/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Teach Rails Irregular Plurals with Inflections&lt;/a&gt; — So criterion becomes criteria, say. &lt;cite&gt;Andy Croll&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://rubyweekly.com/link/183261/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Fixtures on Purpose: From Accident to Artifact&lt;/a&gt; &lt;cite&gt;Mike Moore&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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0; padding-right: 0;  padding-left: 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;
  &lt;a href="https://rubyweekly.com/link/183262/rss" style=" color: #0055bb;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/zbuhms5xonomd1ahnu4z.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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/183262/rss" title="github.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;Holidays 9.0: Methods to Deal with Those Special Days&lt;/a&gt;&lt;/span&gt; — Just in time for Easter! Days off, vacations, public holidays.. whatever you call them, your app might need to know about them. &lt;em&gt;Holidays&lt;/em&gt; covers such days the world over using its &lt;a href="https://rubyweekly.com/link/183263/rss" style=" color: #0055bb;   "&gt;YAML-based definitions.&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;Holidays 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/183264/rss" title="www.tigerdata.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;Your Rails App and Your Analytics Belong in One DB&lt;/a&gt;&lt;/span&gt; — TimescaleDB extends Postgres so analytics runs on live data. No second database, no pipeline, no sync lag. Try free.&lt;/p&gt;
  &lt;p&gt;Tiger Data (creators of TimescaleDB) &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #997 !important; padding-top: 1px; padding-right: 4px;  padding-left: 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/183265/rss" title="github.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;Safely 1.0: Rescue and Report Exceptions in Non-Critical Code&lt;/a&gt;&lt;/span&gt; — The idea is that while you may want to &lt;em&gt;know&lt;/em&gt; about exceptions in certain blocks of code, they might not be serious enough to require crashing out. Sends exceptions to &lt;a href="https://rubyweekly.com/link/183266/rss" style=" color: #0055bb;   "&gt;a variety of services&lt;/a&gt; out of the box.&lt;/p&gt;
  &lt;p&gt;Andrew Kane &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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/183267/rss" title="github.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;re2 2.25: Ruby Bindings to Google's RE2 Regex Library&lt;/a&gt;&lt;/span&gt; — A safer alternative to backtracking regular expression engines. &lt;a href="https://rubyweekly.com/link/183268/rss" style=" color: #0055bb;   "&gt;v2.25&lt;/a&gt; adds a variety of new features including &lt;code&gt;RE2.extract&lt;/code&gt; which does a match-and-reformat in one step (so you provide a source text, regex, and the desired output format including backreferences).&lt;/p&gt;
  &lt;p&gt;Paul Mucur &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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 0px;  padding-left: 0px;"&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;🧐 A cheaper Heroku? Our &lt;a href="https://rubyweekly.com/link/183269/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;cost comparison calculator&lt;/a&gt; puts the PaaS alternatives head-to-head.&lt;/p&gt;
 
&lt;p&gt;SerpApi is a &lt;a href="https://rubyweekly.com/link/183270/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Web Search API&lt;/a&gt; that gives developers real-time, structured access to search engine results. Try SerpApi for free.&lt;/p&gt;
 
&lt;p&gt;Become an AI-first engineer. Gauntlet is a full-time fellowship, no cost. $200K+ roles. Next cohort starts 4/27. &lt;a href="https://rubyweekly.com/link/183271/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Apply Today.&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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/183272/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Inertia.js 3.0&lt;/a&gt; – Provides glue between React, Vue and Svelte SPAs and non-JS server-side frameworks like Rails and Django. &lt;a href="https://rubyweekly.com/link/183273/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;More on v3.&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🔎 &lt;a href="https://rubyweekly.com/link/183274/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;rbspy v0.45&lt;/a&gt; – Sampling profiler for Ruby processes that can be used without restarting them. Now supports Ruby 3.2.11 and 3.3.11.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/183275/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;ruby.wasm 2.9.0&lt;/a&gt; – An official collection of WebAssembly ports of CRuby. Here's a handy &lt;a href="https://rubyweekly.com/link/183276/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;cheat sheet.&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/183277/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;ActiveHash 4.1&lt;/a&gt; – Use hashes as a read-only data source for ActiveRecord-like models.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/183278/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Gemstash 2.8&lt;/a&gt; – Run your own local gem server and caching proxy for &lt;a href="https://rubyweekly.com/link/183279/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;RubyGems.org&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/183280/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Bunny 3.0/3.1&lt;/a&gt; –  RabbitMQ client library. Here's &lt;a href="https://rubyweekly.com/link/183281/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;what changed in v3.0.&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/183282/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;The Twitter (X) Ruby Gem 8.3&lt;/a&gt; – Ruby interface to the official X API.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/183283/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Parallel 1.28&lt;/a&gt; – Run code in parallel processes, threads, or ractors.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/183284/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Ruby-LSP 0.27 Beta 1&lt;/a&gt; (now using &lt;a href="https://rubyweekly.com/link/183285/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Rubydex&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/183286/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Rack 3.2.6&lt;/a&gt;, &lt;a href="https://rubyweekly.com/link/183287/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;BigDecimal 4.1&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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; 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/794/rss" width="1" height="1" /&gt;</description>
      <pubDate>Thu, 2 Apr 2026 00:00:00 +0000</pubDate>
      <guid>https://rubyweekly.com/issues/794</guid>
    </item>
    <item>
      <title>How to install a Ruby gem the hard way</title>
      <link>https://rubyweekly.com/issues/793</link>
      <description>

  

    
    
    
    
    
  




&lt;table border=0 cellpadding=0 cellspacing=0 align="center" border="0"&gt;
  &lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;p&gt;#​793 — March 26, 2026&lt;/p&gt;&lt;/td&gt;
&lt;td align="right" style="padding-right: 4px; font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;p&gt;&lt;a href="https://rubyweekly.com/link/182854/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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0; padding-right: 12px;  padding-left: 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;
  &lt;a href="https://rubyweekly.com/link/182856/rss" style=" color: #0055bb;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/jdm0tmdthhdb4zcdrj8g.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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/182856/rss" title="andre.arko.net" style=" color: #0055bb;    font-size: 1.1em; line-height: 1.4em;"&gt;How to Install a Gem (It's Harder Than It Sounds)&lt;/a&gt;&lt;/span&gt; — As one of the people behind Bundler 1.0 and a former maintainer of &lt;a href="https://rubyweekly.com/link/182857/rss" style=" color: #0055bb;   "&gt;RubyGems.org&lt;/a&gt;, and &lt;em&gt;now&lt;/em&gt; working on &lt;a href="https://rubyweekly.com/link/182858/rss" style=" color: #0055bb;   "&gt;gem.coop&lt;/a&gt; and &lt;a href="https://rubyweekly.com/link/182859/rss" style=" color: #0055bb;   "&gt;rv&lt;/a&gt;, André knows a few things about how gems tick &lt;em&gt;(big understatement)&lt;/em&gt;. This post is full of ‘aha’ moments as he walks through installing a gem &lt;em&gt;by hand&lt;/em&gt;, giving us an idea of what tools like &lt;code&gt;gem&lt;/code&gt; and &lt;code&gt;rv&lt;/code&gt; do for us.&lt;/p&gt;
  &lt;p&gt;André Arko &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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  &lt;a href="https://rubyweekly.com/link/182855/rss" style=" color: #0055bb;   "&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/e695ee0d.jpg" width="140" height="140" 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/182855/rss" title="go.fastruby.io" style=" color: #0055bb;    font-size: 1.05em;"&gt;A Solo Founder Story: 'I Got Fed Up Chasing Contractors'&lt;/a&gt;&lt;/span&gt; — Tim tried hiring and outsourcing, but nothing fit. Then he found Bonsai. Now he gets &lt;a href="https://rubyweekly.com/link/182860/rss" style=" color: #0055bb;   "&gt;reliable monthly Rails maintenance&lt;/a&gt; with almost no oversight. "FastRuby.io works independently. I can trust their work without worrying if something will break."&lt;/p&gt;
  &lt;p&gt;Bonsai by FastRuby.io® &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #997 !important; padding-top: 1px; padding-right: 4px;  padding-left: 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/182861/rss" title="evilmartians.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;Building Browser-Based Ruby Tutorials with Tutorialkit.rb&lt;/a&gt;&lt;/span&gt; — &lt;a href="https://rubyweekly.com/link/182911/rss" style=" color: #0055bb;   "&gt;TutorialKit.rb&lt;/a&gt; is a toolkit for building interactive Ruby (and Rails!) tutorials that &lt;em&gt;run in-browser&lt;/em&gt; with WebAssembly. This post tours building your own experiences, shares working examples right in the post, and explains the tech behind it all, including a custom Ruby WASM build that can run Rails.&lt;/p&gt;
  &lt;p&gt;Pazderin and Dementyev (Evil Martians) &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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/182862/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Ruby 3.3.11 has been released&lt;/a&gt; with a fix for the recent &lt;a href="https://rubyweekly.com/link/182863/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;zlib vulnerability&lt;/a&gt;. &lt;strong&gt;This is the final normal maintenance release of Ruby 3.3&lt;/strong&gt;, so it's time to plan an upgrade to 3.4 or 4.0.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/182864/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Early-bird tickets&lt;/a&gt; for &lt;a href="https://rubyweekly.com/link/182865/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;RubyConf 2026&lt;/a&gt; (taking place this July in Las Vegas) are available. Dave Thomas is one of the keynoters.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Lots of minor Rails releases this week: &lt;a href="https://rubyweekly.com/link/182866/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Rails 7.2.3.1, 8.0.4.1, and 8.1.2.1&lt;/a&gt; to fix a variety of security issues, and &lt;a href="https://rubyweekly.com/link/182867/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;8.0.5 and 8.1.3&lt;/a&gt; as regular bugfix releases.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🏴 &lt;a href="https://rubyweekly.com/link/182868/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Haggis Ruby 2026&lt;/a&gt; is a Scottish Ruby conference returning this April 23-24 with a fantastic lineup.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;JetBrains released &lt;a href="https://rubyweekly.com/link/182869/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;RubyMine 2026.1&lt;/a&gt;, the latest version of its Ruby IDE.&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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/182912/rss" title="thoughtbot.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;Meet Duck Typer: Your New Duck Typing Friend&lt;/a&gt;&lt;/span&gt; — Duck typing gives us polymorphism for free, but what if you want the interface to be &lt;em&gt;enforced?&lt;/em&gt; Duck Typer does just that, asserting that a set of classes share compatible public interfaces, catching signature drift and missing methods without fuss.&lt;/p&gt;
  &lt;p&gt;Thiago Araújo Silva (Thoughtbot) &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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/182870/rss" title="sinaptia.dev" style=" color: #0055bb;    font-size: 1.05em;"&gt;AI Shouldn't Cost More Than It Saves&lt;/a&gt;&lt;/span&gt; — We can find where LLMs pay off, validate with real data, and tune for cost/effectiveness. Need help from experts? &lt;a href="https://rubyweekly.com/link/182871/rss" style=" color: #0055bb;   "&gt;Let's talk&lt;/a&gt;.&lt;/p&gt;
  &lt;p&gt;SINAPTIA &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #997 !important; padding-top: 1px; padding-right: 4px;  padding-left: 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;📄 &lt;a href="https://rubyweekly.com/link/182872/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Ten Ways &lt;code&gt;CSV.read&lt;/code&gt; Can Silently Corrupt or Lose Your Data&lt;/a&gt; – Pitches &lt;a href="https://rubyweekly.com/link/182873/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;SmarterCSV&lt;/a&gt; (a library of 14 years' maturity) as the solution. &lt;cite&gt;Tilo Sloboda&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://rubyweekly.com/link/182874/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Transfer Manager Directory Support for AWS SDK for Ruby&lt;/a&gt; – The &lt;em&gt;AWS SDK for Ruby&lt;/em&gt; Transfer Manager now supports directory uploads and downloads. &lt;cite&gt;Juli Tera (AWS)&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://rubyweekly.com/link/182875/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Deploying a Rails 8 App with Kamal on Hetzner&lt;/a&gt; – An exhaustive step-by-step walkthrough of the process. &lt;cite&gt;Mooktakim Ahmed&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://rubyweekly.com/link/182876/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Migrating from Devise to Rails' Authentication Generator&lt;/a&gt;  &lt;cite&gt;Nithin Bekal&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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0; padding-right: 0;  padding-left: 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/182877/rss" title="github.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;Nokolexbor 0.7: A Faster Drop-in Replacement for Nokogiri&lt;/a&gt;&lt;/span&gt; — A &lt;a href="https://rubyweekly.com/link/182878/rss" style=" color: #0055bb;   "&gt;Lexbor&lt;/a&gt;-based HTML5 parser that’s multiple times faster than Nokogiri. Ruby 2.7 is dropped, but Ruby 4.0 is supported and gets precompiled gems (installed in &amp;lt;4 seconds on my machine).&lt;/p&gt;
  &lt;p&gt;SerpApi &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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/182879/rss" title="github.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;wreq-ruby: An HTTP Client with Real Browser TLS/HTTP2 Signatures&lt;/a&gt;&lt;/span&gt; — Uses the Rust-powered &lt;a href="https://rubyweekly.com/link/182880/rss" style=" color: #0055bb;   "&gt;wreq&lt;/a&gt; under the hood to make HTTP requests that appear as if they come from mainstream browsers by using the same headers, TLS extension and cipher suite ordering, HTTP/2 frame settings, etc.&lt;/p&gt;
  &lt;p&gt;SearchApi &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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/182881/rss" title="www.appsignal.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;Your Rails App Has an N+1 Problem. AppSignal Will Show You Where&lt;/a&gt;&lt;/span&gt; — Auto detect N+1 queries, slow ActiveRecord calls, and memory leaks in your app. One gem, and you're monitoring in minutes. Free 30-day trial, no card required.&lt;/p&gt;
  &lt;p&gt;AppSignal &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #997 !important; padding-top: 1px; padding-right: 4px;  padding-left: 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/182882/rss" title="github.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;Rubyx-py: A New Way to Call Python Code from Ruby&lt;/a&gt;&lt;/span&gt; — A Rust-powered bridge between Ruby and Python’s C APIs that brings Python into the same memory space as Ruby and shuttles objects back and forth (with no IPC or serialization) and uses &lt;a href="https://rubyweekly.com/link/182883/rss" style=" color: #0055bb;   "&gt;uv&lt;/a&gt; to manage dependencies.&lt;/p&gt;
  &lt;p&gt;yinho999 &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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;&lt;p&gt;💡 rubyx-py is clearly experimental, so I gave it a try. Segfaults-a-plenty till I used Ruby 4.0.2 compiled with &lt;code&gt;--enable-shared&lt;/code&gt;, but it works! I'll blog about this soon as it opens up some interesting capabilities.&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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/182884/rss" title="kevinjmurphy.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;simplecov-compare: Compare Coverage Reports Over Time&lt;/a&gt;&lt;/span&gt; — &lt;a href="https://rubyweekly.com/link/182885/rss" style=" color: #0055bb;   "&gt;SimpleCov&lt;/a&gt; reports show the test coverage of code at a point in time, but this will help you track changes over time.&lt;/p&gt;
  &lt;p&gt;Kevin Murphy &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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;🤖 &lt;a href="https://rubyweekly.com/link/182886/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;ruby-mcp-client 1.0&lt;/a&gt; – Ruby Model Context Protocol (MCP) client, now with latest spec support including support for audio content, OAuth 2.1 enhancements, and &lt;a href="https://rubyweekly.com/link/182887/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;a full RubyLLM integration example.&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🤐 &lt;a href="https://rubyweekly.com/link/182888/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Top Secret 1.0&lt;/a&gt; – Filter sensitive information from free text before sending it to external services or APIs.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🖼️ &lt;a href="https://rubyweekly.com/link/182889/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;pure-jpeg 0.3&lt;/a&gt; – My pure Ruby JPEG encoder/decoder library is now much faster (0.2s on a 1024x1024 image) thanks to some third-party contributors 🎉&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/182890/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;The Ultimate Turbo Modal for Rails (UTMR) 3.0&lt;/a&gt; – Tailwind or vanilla CSS modal dialog implementation for modern Rails apps.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/182891/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Chewy 8.0&lt;/a&gt; – A high level framework for Elasticsearch.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;💬 &lt;a href="https://rubyweekly.com/link/182893/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;telegram-bot-ruby 2.6&lt;/a&gt; – Ruby wrapper for &lt;a href="https://rubyweekly.com/link/182894/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Telegram's Bot API&lt;/a&gt; – now supporting &lt;a href="https://rubyweekly.com/link/182895/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Bot API 9.5&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/182896/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Avo 4 Open Beta&lt;/a&gt; – A popular framework for building Rails apps for internal tools.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;💳 &lt;a href="https://rubyweekly.com/link/182897/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Stripe Ruby Library 19.0&lt;/a&gt; – Stripe's official library.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/182898/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;RubyGems 4.0.9&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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 0px;  padding-left: 0px;"&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;🙋‍♂️ What’s next for Heroku? Jon &lt;a href="https://rubyweekly.com/link/182899/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;has some thoughts&lt;/a&gt;.&lt;/p&gt;
 
&lt;p&gt;♦️ Build Ruby apps that never lose state, even when things fail. Learn by building an app from scratch in a &lt;a href="https://rubyweekly.com/link/182900/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;free Temporal Ruby SDK course&lt;/a&gt;.&lt;/p&gt;
 
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/182901/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Help us save the German healthcare system&lt;/a&gt; - Develop the leading healthcare stats platform with a small dedicated team in a stress free environment (Cologne based).&lt;/p&gt;
 
&lt;p&gt;💎 &lt;a href="https://rubyweekly.com/link/182902/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Hiring Senior Ruby on Rails Engineers at EverAI&lt;/a&gt;: 50 million users, fully remote. 
Not used Ruby lately? That's okay, you can still apply!&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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0; padding-right: 0;  padding-left: 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;
  &lt;a href="https://rubyweekly.com/link/182903/rss" style=" color: #0055bb;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/qouk1w09lspr9hawiyuq.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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Four years ago, we first mentioned &lt;a href="https://rubyweekly.com/link/182903/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Thanos&lt;/a&gt;, an experimental Ruby to Go transpiler. Its author has recently wielded AI to 'finish the job'. I took it for a spin and it's very cool, but type inference demands and a lack of metaprogramming make many potential use cases a no-Go...? 😅&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;37signals made its &lt;a href="https://rubyweekly.com/link/182905/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Fizzy&lt;/a&gt; Kanban app, built in Rails, &lt;a href="https://rubyweekly.com/link/182906/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;'source available'&lt;/a&gt; a few months ago but maintained the paid, SaaS version. That paid version, however, is now entirely free to use.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🤖 GitHub has announced that, starting late April, data (including inputs and snippets) from  Free, Pro, and Pro+ Copilot users &lt;a href="https://rubyweekly.com/link/182907/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;will be used, by default, to help train future AI models&lt;/a&gt;. You can, however, opt out.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🔒 More than ever, it's essential to ensure no secrets have snuck into your repos. &lt;a href="https://rubyweekly.com/link/182908/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Secretlint&lt;/a&gt; is a linting tool dedicated entirely to the task. It's written in Node but can be used with Docker against projects of any language.&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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; 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/793/rss" width="1" height="1" /&gt;</description>
      <pubDate>Thu, 26 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://rubyweekly.com/issues/793</guid>
    </item>
    <item>
      <title>RubyGems' maintainer proposes cooldown feature</title>
      <link>https://rubyweekly.com/issues/792</link>
      <description>

  

    
    
    
    
    
  




&lt;table border=0 cellpadding=0 cellspacing=0 align="center" border="0"&gt;
  &lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;p&gt;#​792 — March 19, 2026&lt;/p&gt;&lt;/td&gt;
&lt;td align="right" style="padding-right: 4px; font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;p&gt;&lt;a href="https://rubyweekly.com/link/182462/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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0; padding-right: 12px;  padding-left: 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;
  &lt;a href="https://rubyweekly.com/link/182464/rss" style=" color: #0055bb;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/nzrmcyh6ioh7oxtgfrlj.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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/182464/rss" title="dev.to" style=" color: #0055bb;    font-size: 1.1em; line-height: 1.4em;"&gt;Should RubyGems/Bundler Have a 'Cooldown' Feature?&lt;/a&gt;&lt;/span&gt; — RubyGems’ maintainer reflects on the idea, quickly gathering steam with other package managers (&lt;a href="https://rubyweekly.com/link/182465/rss" style=" color: #0055bb;   "&gt;e.g.&lt;/a&gt;), of having a waiting period before newly released packages are installed. Hiroshi says &lt;em&gt;yes&lt;/em&gt;, but as an opt-in feature, as it's no silver bullet.&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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  &lt;a href="https://rubyweekly.com/link/182463/rss" style=" color: #0055bb;   "&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/b8d3c23b.png" width="134" height="134" 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/182463/rss" title="sinaptia.dev" style=" color: #0055bb;    font-size: 1.05em;"&gt;No AI Code in Production Directive&lt;/a&gt;&lt;/span&gt; — Have you heard Amazon now requires senior engineer approval for all AI-generated code after several severity-0 incidents? Should you ban it, too? We say: there's no such thing as AI code. There's just code.&lt;/p&gt;
  &lt;p&gt;SINAPTIA &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #997 !important; padding-top: 1px; padding-right: 4px;  padding-left: 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/182466/rss" title="www.ruby-lang.org" style=" color: #0055bb;    font-size: 1.05em;"&gt;Ruby 4.0.2 Released to Fix a Tricky YJIT Bug&lt;/a&gt;&lt;/span&gt; — A routine update with a fix for &lt;a href="https://rubyweekly.com/link/182467/rss" style=" color: #0055bb;   "&gt;a YJIT bug&lt;/a&gt; that crashed processes. It was &lt;a href="https://rubyweekly.com/link/182468/rss" style=" color: #0055bb;   "&gt;noticed when running Puma in cluster mode&lt;/a&gt; but affects any app where YJIT is enabled lazily and where local variables had escaped to the heap before YJIT started observing (there’s &lt;a href="https://rubyweekly.com/link/182469/rss" style=" color: #0055bb;   "&gt;a proof of concept&lt;/a&gt; in YJIT’s test suite). There's also a fix for &lt;a href="https://rubyweekly.com/link/182540/rss" style=" color: #0055bb;   "&gt;a GC-related perf regression.&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;Takashi Kokubun &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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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;code&gt;jemalloc&lt;/code&gt;, the malloc implementation, has long provided &lt;a href="https://rubyweekly.com/link/182470/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;an interesting performance remedy&lt;/a&gt; in the Ruby world but &lt;a href="https://rubyweekly.com/link/182471/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;it became unmaintained&lt;/a&gt; last year. Well.. &lt;a href="https://rubyweekly.com/link/182472/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Meta's investing in jemalloc and bringing it back.&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/182532/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;RBS 4.0&lt;/a&gt;, Ruby's type signature language, has been released with &lt;em&gt;experimental&lt;/em&gt; inline syntax support so you can write type annotations directly in Ruby code, a la &lt;a href="https://rubyweekly.com/link/182533/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;RBS::Inline&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Should Ruby &lt;a href="https://rubyweekly.com/link/182473/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;get its own built-in CPU time profiler?&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🇮🇹 &lt;a href="https://rubyweekly.com/link/182474/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Rubycon Italy&lt;/a&gt;, taking place this May 8, has just unveiled &lt;a href="https://rubyweekly.com/link/182475/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;its schedule&lt;/a&gt;, written in Ruby itself!&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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/182476/rss" title="railsatscale.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;How ZJIT Removes Redundant Object Loads and Stores&lt;/a&gt;&lt;/span&gt; — &lt;a href="https://rubyweekly.com/link/182477/rss" style=" color: #0055bb;   "&gt;ZJIT&lt;/a&gt;, optionally available in Ruby 4.0, is a new, alternative JIT compiler with the potential for being faster and easier to work on than YJIT over time. This article shows off some of how that potential is now bearing performance-shaped fruit.&lt;/p&gt;
  &lt;p&gt;Jacob Denbeaux &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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/182478/rss" title="go.fastruby.io" style=" color: #0055bb;    font-size: 1.05em;"&gt;How Much Time Could Your Team Save with 10x Faster CI?&lt;/a&gt;&lt;/span&gt; — We took a Rails 2.3 app to 8.1 and &lt;a href="https://rubyweekly.com/link/182479/rss" style=" color: #0055bb;   "&gt;cut CI from 40 to 4 minutes&lt;/a&gt;. Ready for steady upgrades and faster CI? Contact us 🚀&lt;/p&gt;
  &lt;p&gt;Bonsai by FastRuby.io® &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #997 !important; padding-top: 1px; padding-right: 4px;  padding-left: 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;📄 &lt;a href="https://rubyweekly.com/link/182480/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;I Quit Rails Core 4 Years Ago: Here’s What I’ve Been Up To&lt;/a&gt; – What happens to core members when they leave the core? &lt;cite&gt;Kasper Timm Hansen&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://rubyweekly.com/link/182481/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;How to Declare Acronyms in Rails Inflections&lt;/a&gt; – For when you don’t want &lt;code&gt;"api".camelize&lt;/code&gt; to be &lt;code&gt;"Api"&lt;/code&gt; but &lt;code&gt;"API"&lt;/code&gt;. &lt;cite&gt;Andy Croll&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;🤖 &lt;a href="https://rubyweekly.com/link/182526/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Claude Code for Semi-Reluctant Rails Developers&lt;/a&gt; – Helpful advice from a long-time Rails developer. &lt;cite&gt;Robby Russell&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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0; padding-right: 0;  padding-left: 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;
  &lt;a href="https://rubyweekly.com/link/182484/rss" style=" color: #0055bb;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/zz2ofe1xywfmfiidfbpu.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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/182484/rss" title="herb-tools.dev" style=" color: #0055bb;    font-size: 1.05em;"&gt;Herb v0.9: The Modern HTML + ERB Toolchain&lt;/a&gt;&lt;/span&gt; — Herb is an HTML+ERB toolchain (linter, rendering engine, LSP, formatter) supporting numerous languages (not just Ruby). v0.9 is a &lt;strong&gt;huge&lt;/strong&gt; release with Action View tag helper support, a new &lt;code&gt;Herb.parse_ruby&lt;/code&gt; API, a new default ‘strict’ parsing option, better error messages, and more. &lt;a href="https://rubyweekly.com/link/182485/rss" style=" color: #0055bb;   "&gt;Herb's site&lt;/a&gt; has a new &lt;a href="https://rubyweekly.com/link/182486/rss" style=" color: #0055bb;   "&gt;Prism playground&lt;/a&gt; which supports both Ruby and HTML+ERB. It's a great time to see what the Herb ecosystem offers.&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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/182487/rss" title="github.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;HTTP.rb / HTTP 'The Gem!' 6.0: The Flexible HTTP Client&lt;/a&gt;&lt;/span&gt; — I love the &lt;code&gt;http&lt;/code&gt; gem and its flexible, easy-to-remember API. v6 is the first major release in years, and adds RFC 7234-compliant &lt;a href="https://rubyweekly.com/link/182488/rss" style=" color: #0055bb;   "&gt;HTTP caching&lt;/a&gt;, &lt;a href="https://rubyweekly.com/link/182489/rss" style=" color: #0055bb;   "&gt;instrumentation hooks&lt;/a&gt;, &lt;a href="https://rubyweekly.com/link/182490/rss" style=" color: #0055bb;   "&gt;thread-safe request building&lt;/a&gt;, a &lt;a href="https://rubyweekly.com/link/182491/rss" style=" color: #0055bb;   "&gt;&lt;code&gt;base_uri&lt;/code&gt; option&lt;/a&gt;, and more.&lt;/p&gt;
  &lt;p&gt;http.rb 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/182492/rss" title="www.appsignal.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;AppSignal Monitors Your GVL (Yes, Really)&lt;/a&gt;&lt;/span&gt; — With 21 Ruby libraries instrumented out of the box, including Solid Queue, Puma, and ViewComponent. Written in Rust, so it stays out of your app's way. Free for 30 days. No credit card.&lt;/p&gt;
  &lt;p&gt;AppSignal &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #997 !important; padding-top: 1px; padding-right: 4px;  padding-left: 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/182493/rss" title="newsletter.masilotti.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;Ruby Native: The Tool I Wish I Had 25 Apps Ago&lt;/a&gt;&lt;/span&gt; — &lt;a href="https://rubyweekly.com/link/182494/rss" style=" color: #0055bb;   "&gt;Ruby Native&lt;/a&gt; is a commercial tool for turning Rails sites into iOS apps (think &lt;a href="https://rubyweekly.com/link/182495/rss" style=" color: #0055bb;   "&gt;Hotwire Native&lt;/a&gt; but without having to touch Swift). It’s currently in &lt;em&gt;preview&lt;/em&gt; but you can &lt;a href="https://rubyweekly.com/link/182496/rss" style=" color: #0055bb;   "&gt;try it out&lt;/a&gt;.&lt;/p&gt;
  &lt;p&gt;Joe Masilotti &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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;&lt;p&gt;💡 If you're interested in Rails, iOS, and Hotwire Native, &lt;a href="https://rubyweekly.com/link/182497/rss" style=" color: #0055bb; font-weight: 600;   "&gt;Joe's newsletter&lt;/a&gt; has a lot of high-value content, though only a limited amount can be read for free.&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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/182498/rss" title="once.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;37signals Open Sources Its &lt;em&gt;Writebook&lt;/em&gt; Rails App&lt;/a&gt;&lt;/span&gt; — Launched in 2024 in ‘source available’ form, 37signals has now opened up its Markdown Web book creator / renderer with the MIT license. &lt;a href="https://rubyweekly.com/link/182499/rss" style=" color: #0055bb;   "&gt;GitHub repo.&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;37signals / ONCE &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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;📈 &lt;a href="https://rubyweekly.com/link/182527/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;TestProf 1.6&lt;/a&gt; – Collection of tools to analyze and optimize Ruby test suite performance. Adds a TPS (tests-per-second) profiler and a GC profiling mode.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;⚛️ &lt;a href="https://rubyweekly.com/link/182528/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;React on Rails v16.4.0&lt;/a&gt; – Integrates React and Webpack with Rails, including server-side rendering of React.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🔎 &lt;a href="https://rubyweekly.com/link/182529/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;rbspy v0.44.0&lt;/a&gt; – Sampling profiler for Ruby processes. Adds Ruby 4.0.2 support, a macOS binary for Apple silicon, and a &lt;code&gt;--duration&lt;/code&gt; parameter to record for a specified number of seconds.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/182530/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;SmarterCSV v1.16&lt;/a&gt; – Performance-focused CSV reading/writing library. The recent CHANGELOG entries are &lt;em&gt;very&lt;/em&gt; thorough.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🧊 &lt;a href="https://rubyweekly.com/link/182510/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Refrigerator 1.9&lt;/a&gt; – Freezes Ruby core classes/modules to prevent runtime modifications. Now supports Ruby 4.0.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🌐 &lt;a href="https://rubyweekly.com/link/182502/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;RouteTranslator 16.0&lt;/a&gt; – Manage the translations of your Rails app's routes.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/182509/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Rails::Diff 0.7&lt;/a&gt; – Compare Rails-generated files with those in your repo.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/182531/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Brut 0.20&lt;/a&gt; – Raw, standards-based, HTML-first web framework.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/182514/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Devise 5.0.3&lt;/a&gt; lands an important security fix.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/182511/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;ruby-duckdb 1.5&lt;/a&gt; – Ruby client for &lt;a href="https://rubyweekly.com/link/182512/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;DuckDB&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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 0px;  padding-left: 0px;"&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;💥 Are your job queues resilient? Our &lt;a href="https://rubyweekly.com/link/182516/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Ultimate Guide To Scaling Sidekiq and Solid Queue&lt;/a&gt; shows you the way.&lt;/p&gt;
 
&lt;p&gt;🔬 "Absolutely essential for AI agent-written PRs." &lt;a href="https://rubyweekly.com/link/182517/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Undercover CI&lt;/a&gt; shows untested methods, right in your pull requests.&lt;/p&gt;
 
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/182518/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Help us save the German healthcare system&lt;/a&gt; - Develop the leading healthcare stats platform with a small dedicated team in a stress free environment (Cologne based).&lt;/p&gt;
 
&lt;p&gt;💎 &lt;a href="https://rubyweekly.com/link/182519/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Hiring Senior Ruby on Rails Engineers at EverAI&lt;/a&gt;: 50 million users, fully remote. 
Not used Ruby lately? That's okay, you can still apply!&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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0; padding-right: 0;  padding-left: 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;
  &lt;a href="https://rubyweekly.com/link/182520/rss" style=" color: #0055bb;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/vleephvykt5ci7kalfvc.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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;🤖 The Node.js community is wrestling with the role that LLM-produced code should play in its implementation, with the former creator of the &lt;em&gt;io.js&lt;/em&gt; fork &lt;a href="https://rubyweekly.com/link/182520/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;starting a petition to say 'no' to contributions built with AI assistance.&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Remember back in December when &lt;em&gt;WIRED&lt;/em&gt; published the widely-panned &lt;a href="https://rubyweekly.com/link/182521/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Ruby Is Not a Serious Programming Language&lt;/a&gt;? They're back at it, this time &lt;a href="https://rubyweekly.com/link/182522/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;calling COBOL the 'Asbestos of Programming Languages'&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;;?&lt;/strong&gt; Some analysis of how different programming languages (including Ruby) &lt;a href="https://rubyweekly.com/link/182523/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;handle a lack of mandatory semicolons.&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;One from the Postgres world: &lt;a href="https://rubyweekly.com/link/182524/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;how a single query blew up and consumed 2 terabytes of memory&lt;/a&gt; before being taken down by Linux's OOM killer.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🎂 Amazon's Sébastien Stormacq reflects on the ubiquitous &lt;a href="https://rubyweekly.com/link/182525/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;AWS S3 cloud storage system turning 20 years old.&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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; 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/792/rss" width="1" height="1" /&gt;</description>
      <pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://rubyweekly.com/issues/792</guid>
    </item>
    <item>
      <title>Shopify's push to make Bundler and RubyGems faster</title>
      <link>https://rubyweekly.com/issues/791</link>
      <description>

  

    
    
    
    
    
  




&lt;table border=0 cellpadding=0 cellspacing=0 align="center" border="0"&gt;
  &lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;p&gt;#​791 — March 12, 2026&lt;/p&gt;&lt;/td&gt;
&lt;td align="right" style="padding-right: 4px; font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;p&gt;&lt;a href="https://rubyweekly.com/link/182009/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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0; padding-right: 12px;  padding-left: 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;
  &lt;a href="https://rubyweekly.com/link/182118/rss" style=" color: #0055bb;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/wfylif0qdsarlilhhxno.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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/182118/rss" title="railsatscale.com" style=" color: #0055bb;    font-size: 1.1em; line-height: 1.4em;"&gt;Building a Faster &lt;em&gt;Bundler&lt;/em&gt;&lt;/a&gt;&lt;/span&gt; — The Shopify team has been working on improvements to Bundler and RubyGems with the goal of reducing &lt;code&gt;bundle install&lt;/code&gt; times. Increasing the HTTP connection pool size, parallel git clones, and optimizing hotspots in the codebase provide big wins, but they seek our help with another area in particular: precompiled gems.&lt;/p&gt;
  &lt;p&gt;Edouard Chin and Eileen Uchitelle &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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;&lt;p&gt;🛠️ As part of the above, Shopify has released &lt;a href="https://rubyweekly.com/link/182120/rss" style=" color: #0055bb; font-weight: 600;   "&gt;cibuildgem&lt;/a&gt;, a tool to help gem authors release precompiled gems that can be installed faster.&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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  &lt;a href="https://rubyweekly.com/link/182010/rss" style=" color: #0055bb;   "&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/a27f50db.png" width="130" height="130" 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/182010/rss" title="go.fastruby.io" style=" color: #0055bb;    font-size: 1.05em;"&gt;Leaving Heroku? Plan Your Migration with FastRuby.io® 💸&lt;/a&gt;&lt;/span&gt; — FastRuby analyzes your Rails app, add-ons, and infrastructure to map a migration to Hatchbox, Fly, or elsewhere. Get a step-by-step plan with cost estimates before you commit. Migrate confidently with our team of experts.&lt;/p&gt;
  &lt;p&gt;PaaS Migration Plans by FastRuby.io® &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #997 !important; padding-top: 1px; padding-right: 4px;  padding-left: 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/182012/rss" title="github.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;mruby 4.0 Enters Release Candidate Stage&lt;/a&gt;&lt;/span&gt; — &lt;a href="https://rubyweekly.com/link/182014/rss" style=" color: #0055bb;   "&gt;mruby&lt;/a&gt; is a lightweight, embeddable subset of Ruby to run in constrained environments and that, like CRuby, is &lt;a href="https://rubyweekly.com/link/182016/rss" style=" color: #0055bb;   "&gt;led by Matz.&lt;/a&gt; v4.0 adds support for pattern matching, &lt;em&gt;many&lt;/em&gt; GC, memory and VM improvements, &lt;a href="https://rubyweekly.com/link/182018/rss" style=" color: #0055bb;   "&gt;Cosmopolitan Libc&lt;/a&gt; support, a &lt;code&gt;mirb&lt;/code&gt; overhaul, and more.&lt;/p&gt;
  &lt;p&gt;Matz and 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/182020/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Ruby 3.4.9 has been released&lt;/a&gt; including a fix for &lt;a href="https://rubyweekly.com/link/182022/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;the &lt;code&gt;zlib&lt;/code&gt; vulnerability&lt;/a&gt; we mentioned last week.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🤖 With &lt;a href="https://rubyweekly.com/link/182023/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;this commit&lt;/a&gt;, the &lt;a href="https://rubyweekly.com/link/182025/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Rails homepage&lt;/a&gt; adopted a &lt;em&gt;'fresh pitch for the agentic age'&lt;/em&gt; focused on selling Rails' benefits for agentic development.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;We recently mentioned that the &lt;code&gt;mise&lt;/code&gt; version manager can now &lt;a href="https://rubyweekly.com/link/182026/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;download precompiled Ruby binaries&lt;/a&gt;. Jeff Dickey, the creator of Mise has &lt;a href="https://rubyweekly.com/link/182028/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;▶️ gone on the &lt;em&gt;Remote Ruby&lt;/em&gt; podcast&lt;/a&gt; to talk about the feature and Mise in general.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🌐 &lt;a href="https://rubyweekly.com/link/182030/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;RubyEvents.org&lt;/a&gt; has &lt;a href="https://rubyweekly.com/link/182032/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;shared a monthly update&lt;/a&gt; that includes future Ruby events and currently open CFPs.&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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/182034/rss" title="piechowski.io" style=" color: #0055bb;    font-size: 1.05em;"&gt;How I Audit a Legacy Rails Codebase&lt;/a&gt;&lt;/span&gt; — 
A methodical walkthrough of how to approach an inherited codebase, including checking versions, scanning the Gemfile for red flags, reviewing the schema, and identifying perf hotspots.
&lt;/p&gt;
  &lt;p&gt;Ally Piechowski &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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/182036/rss" title="mistral.ai" style=" color: #0055bb;    font-size: 1.05em;"&gt;Mistral's Attempt to Put Rails Testing on Autopilot&lt;/a&gt;&lt;/span&gt; — A post from France’s best-known AI shop detailing an autonomous agent they’ve built to work on RSpec suites in Rails apps. The end result is called &lt;a href="https://rubyweekly.com/link/182038/rss" style=" color: #0055bb;   "&gt;Mistral &lt;em&gt;Vibe&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;
  &lt;p&gt;Langelier and Grosmaitre (Mistral) &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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/182040/rss" title="sinaptia.dev" style=" color: #0055bb;    font-size: 1.05em;"&gt;AI Shouldn't Cost More Than It Saves&lt;/a&gt;&lt;/span&gt; — We can find where LLMs pay off, validate with real data, and tune for cost/effectiveness. Need help from experts? &lt;a href="https://rubyweekly.com/link/182042/rss" style=" color: #0055bb;   "&gt;Let's talk&lt;/a&gt;.&lt;/p&gt;
  &lt;p&gt;SINAPTIA &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #997 !important; padding-top: 1px; padding-right: 4px;  padding-left: 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;🤖 &lt;a href="https://rubyweekly.com/link/182044/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;How to Enable Ruby LSP in Claude Code&lt;/a&gt; – Claude Code has official support for &lt;a href="https://rubyweekly.com/link/182046/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Ruby LSP&lt;/a&gt; meaning it can navigate Ruby code more efficiently. &lt;cite&gt;Lucian Ghinda&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://rubyweekly.com/link/182048/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;How Gem Namespaces Work on &lt;code&gt;gem.coop&lt;/code&gt;&lt;/a&gt;  &lt;cite&gt;Kasper Timm Hansen and David Rodríguez&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://rubyweekly.com/link/182050/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Your Chat Bot Needs a Better Rate Limit Strategy&lt;/a&gt; – &lt;em&gt;“Don’t let one ambitious user trigger a denial of service.”&lt;/em&gt; &lt;cite&gt;Steve Polito (Thoughtbot)&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://rubyweekly.com/link/182052/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;From 40 Minutes to 4 with Tests Parallelization&lt;/a&gt;  &lt;cite&gt;Ariel Juodziukynas (Ombulabs)&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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0; padding-right: 0;  padding-left: 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;
  &lt;a href="https://rubyweekly.com/link/182054/rss" style=" color: #0055bb;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/awfsgrdg3d1cmt56me2s.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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/182054/rss" title="www.mikeperham.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;Kiq: An Official TUI Admin Interface for Sidekiq&lt;/a&gt;&lt;/span&gt; — Citing renewed interest in TUIs, Mike has created &lt;code&gt;kiq&lt;/code&gt; where you can monitor and (mostly) manage Sidekiq in the terminal. It’s built on top of &lt;a href="https://rubyweekly.com/link/182056/rss" style=" color: #0055bb;   "&gt;RatatuiRuby.&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;Mike Perham &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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/182058/rss" title="www.tigerdata.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;You Picked Postgres for a Reason. Don't Leave It for Analytics&lt;/a&gt;&lt;/span&gt; — TimescaleDB extends Postgres so analytics runs on live data. No second database, no pipeline. &lt;a href="https://rubyweekly.com/link/182058/rss" style=" color: #0055bb;   "&gt;Start for free&lt;/a&gt;.&lt;/p&gt;
  &lt;p&gt;Tiger Data (creators of TimescaleDB) &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #997 !important; padding-top: 1px; padding-right: 4px;  padding-left: 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/182060/rss" title="github.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;PureJPEG: A Pure Ruby JPEG Encoder and Decoder Library&lt;/a&gt;&lt;/span&gt; — Yes, this is one of mine! I wanted a pure Ruby way to work with JPEGs, including messing around with &lt;em&gt;how&lt;/em&gt; they're encoded (to get some crunchy late 90s effects). There’s a little behind the scenes story of its development in the README.&lt;/p&gt;
  &lt;p&gt;Peter Cooper &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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/182062/rss" title="github.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;WSDL 1.0: A WSDL Toolkit for Ruby&lt;/a&gt;&lt;/span&gt; — &lt;a href="https://rubyweekly.com/link/182064/rss" style=" color: #0055bb;   "&gt;WSDL&lt;/a&gt; (Web Services Description Language) is an XML language that describes, most commonly, SOAP-based web services, and this library provides full WSDL 1.1 support. It’s from the creator of &lt;a href="https://rubyweekly.com/link/182066/rss" style=" color: #0055bb;   "&gt;Savon&lt;/a&gt;, a well-used SOAP client library, so the author knows the space well.&lt;/p&gt;
  &lt;p&gt;rubiii &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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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/182068/rss" title="github.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;Rubydex: A Static Analysis Toolkit for Ruby&lt;/a&gt;&lt;/span&gt; — A new high-performance Ruby indexer with an MCP server designed for LLM tooling.&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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;🚦 &lt;a href="https://rubyweekly.com/link/182070/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Stoplight 5.8&lt;/a&gt; – Ruby implementation of the circuit breaker pattern to gracefully handle failures in external dependencies.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/182072/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Falcon 0.55&lt;/a&gt; – High-performance Ruby web server. Used in production by Shopify, this is the first release in some time.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/182074/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Typhoeus 1.6&lt;/a&gt; – &lt;code&gt;libcurl&lt;/code&gt;-wrapper optimized for parallel HTTP request use cases.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/182076/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;FactoryTrace 2.0&lt;/a&gt; – Finds and reports unused FactoryBot factories and traits.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/182078/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;FixtureBot 0.3&lt;/a&gt; – The speed of fixtures with the syntactic sugar of factories.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/182080/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Rage 1.22&lt;/a&gt; – High-performance fiber-based Rails-compatible framework.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/182082/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;AArch64 3.0&lt;/a&gt; – &lt;em&gt;Tenderlove&lt;/em&gt;'s pure Ruby ARM64 assembler.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/182084/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Async 2.38.0&lt;/a&gt; – The popular asynchronous I/O framework.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/182086/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Active Admin 3.5&lt;/a&gt; – Admin engine for Rails apps.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Plus there have been updates to a few core tools and libraries including &lt;a href="https://rubyweekly.com/link/182088/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;RubyGems 4.0.8&lt;/a&gt;, &lt;a href="https://rubyweekly.com/link/182090/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;JSON 2.19&lt;/a&gt;, &lt;a href="https://rubyweekly.com/link/182092/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;curses 1.6&lt;/a&gt; (which &lt;a href="https://rubyweekly.com/link/182094/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;now supports&lt;/a&gt; the ncurses extended colors API), and &lt;a href="https://rubyweekly.com/link/182096/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Timeout 0.6.1&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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 0px;  padding-left: 0px;"&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;🧐 Heroku alternatives? Our &lt;a href="https://rubyweekly.com/link/182098/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;cost comparison calculator&lt;/a&gt; puts them head-to-head.&lt;/p&gt;
 
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/182100/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Learn proven reliability patterns at Replay 2026&lt;/a&gt; for distributed systems, scale, and Durable Execution. Save with code RUBY80.&lt;/p&gt;
 
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/182129/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Help us save the German healthcare system&lt;/a&gt; - Develop the leading healthcare stats platform with a small dedicated team in a stress free environment (Cologne based).&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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0; padding-right: 0;  padding-left: 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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;
  &lt;a href="https://rubyweekly.com/link/182104/rss" style=" color: #0055bb;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/qdbi4pwfuupgbgvicckv.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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/182104/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Difftastic&lt;/a&gt; is a tool that can diff code files, not merely on a line-by-line basis like &lt;code&gt;diff&lt;/code&gt;, but based on &lt;em&gt;syntax&lt;/em&gt;. It &lt;a href="https://rubyweekly.com/link/182106/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;supports all popular languages&lt;/a&gt; including Ruby, natch. Marco Roth has &lt;a href="https://rubyweekly.com/link/182107/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;a Ruby wrapper for it&lt;/a&gt;, as well as &lt;a href="https://rubyweekly.com/link/182108/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Minitest::Difftastic&lt;/a&gt; for using it to show diffs in test runs.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/182109/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;GitHub addresses its recent availability and reliability issues&lt;/a&gt; of which there have been quite a few…&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/182110/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;JSLinux&lt;/a&gt; is Fabrice Bellard's JavaScript-powered Linux VM that runs in the browser. It's not new, but it now supports x86_64. I was happy to see Ruby is ready to go, too, if you drop into &lt;a href="https://rubyweekly.com/link/182111/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;this full Alpine Linux environment&lt;/a&gt;, though &lt;code&gt;irb&lt;/code&gt; is broken, alas.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Ruby core contributor Hiroshi Shibata is working to &lt;a href="https://rubyweekly.com/link/182112/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;eliminate RubyGems' dependency on &lt;code&gt;libyaml&lt;/code&gt;.&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/182114/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;The Hanami project thanks Mike Perham and Sidekiq&lt;/a&gt; for their continued support in 2026.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/182130/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Homebrew 5.1.0&lt;/a&gt; has been released.&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-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; 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/791/rss" width="1" height="1" /&gt;</description>
      <pubDate>Thu, 12 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://rubyweekly.com/issues/791</guid>
    </item>
  </channel>
</rss>
