<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Germán Alberto Gimenez Silva</title>
    <description>The latest articles on Forem by Germán Alberto Gimenez Silva (@gsgermanok).</description>
    <link>https://forem.com/gsgermanok</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2829881%2F118e01a2-2b93-4ae8-b319-9eedbf972ab6.jpg</url>
      <title>Forem: Germán Alberto Gimenez Silva</title>
      <link>https://forem.com/gsgermanok</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/gsgermanok"/>
    <language>en</language>
    <item>
      <title>GitHub Deletes Your Traffic Logs Every 14 Days. Here’s How to Stop That with Ruby</title>
      <dc:creator>Germán Alberto Gimenez Silva</dc:creator>
      <pubDate>Tue, 31 Mar 2026 02:13:36 +0000</pubDate>
      <link>https://forem.com/gsgermanok/github-deletes-your-traffic-logs-every-14-days-heres-how-to-stop-that-with-ruby-55o6</link>
      <guid>https://forem.com/gsgermanok/github-deletes-your-traffic-logs-every-14-days-heres-how-to-stop-that-with-ruby-55o6</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4s0pzeh2ejiqndlh5ke8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4s0pzeh2ejiqndlh5ke8.png" alt="GitHub Deletes Your Traffic Logs Every 14 Days. Here's How to Stop That with Ruby" width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;GitHub Deletes Your Traffic Logs Every 14 Days. Here’s How to Stop That with Ruby&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;March 30, 2026&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Motivation:&lt;/strong&gt; I didn’t want to lose the metrics for &lt;strong&gt;&lt;em&gt;ruby-libgd&lt;/em&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;em&gt;libgd-gis&lt;/em&gt;&lt;/strong&gt;. So I built an app that stores all logs and generates custom charts using &lt;strong&gt;&lt;em&gt;ruby-libgd&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;


&lt;h3&gt;
  
  
  &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fltubpm8i4yezr0r6zmoo.png" alt="📊" width="72" height="72"&gt; What You’ll Get
&lt;/h3&gt;

&lt;p&gt;A dashboard like this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fohb90hehrtu7gz1pgzg9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fohb90hehrtu7gz1pgzg9.png" alt="Article content" width="800" height="433"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Historical metrics&lt;/strong&gt; (not just 14 days)&lt;/li&gt;
&lt;li&gt;Views and clones charts&lt;/li&gt;
&lt;li&gt;Top referral sources&lt;/li&gt;
&lt;li&gt;Daily automatic updates&lt;/li&gt;
&lt;/ul&gt;


&lt;h1&gt;
  
  
  👉 Read the full article.
&lt;/h1&gt;


&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
        &lt;div class="c-embed__cover"&gt;
          &lt;a href="https://rubystacknews.com/2026/03/30/github-deletes-your-traffic-logs-every-14-days-heres-how-to-stop-that-with-ruby/" class="c-link align-middle" rel="noopener noreferrer"&gt;
            &lt;img alt="" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Frubystacknews.com%2Fwp-content%2Fuploads%2F2026%2F03%2F1774922853223.png" height="450" class="m-0" width="800"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="c-embed__body"&gt;
        &lt;h2 class="fs-xl lh-tight"&gt;
          &lt;a href="https://rubystacknews.com/2026/03/30/github-deletes-your-traffic-logs-every-14-days-heres-how-to-stop-that-with-ruby/" rel="noopener noreferrer" class="c-link"&gt;
            GitHub Deletes Your Traffic Logs Every 14 Days. Here’s How to Stop That with Ruby – Linking Ruby knowledge from the most remote places in the world.
          &lt;/a&gt;
        &lt;/h2&gt;
          &lt;p class="truncate-at-3"&gt;
            GitHub Deletes Your Traffic Logs Every 14 Days. Here’s How to Stop That with Ruby March 30, 2026 Motivation: I didn’t want to lose the metrics for ruby-libgd and libgd-gis. So I built a…
          &lt;/p&gt;
        &lt;div class="color-secondary fs-s flex items-center"&gt;
            &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Frubystacknews.com%2Fwp-content%2Fuploads%2F2026%2F02%2Fcropped-icon-cremitae-bg.png%3Fw%3D32" width="32" height="32"&gt;
          rubystacknews.com
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;





&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj15v7duxie048gj7pib6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj15v7duxie048gj7pib6.png" alt="Article content" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>coding</category>
      <category>git</category>
      <category>hobbies</category>
      <category>programming</category>
    </item>
    <item>
      <title>ruby-libgd: The Modern Ruby Image Library You’ve Been Sleeping On</title>
      <dc:creator>Germán Alberto Gimenez Silva</dc:creator>
      <pubDate>Mon, 30 Mar 2026 13:01:49 +0000</pubDate>
      <link>https://forem.com/gsgermanok/ruby-libgd-the-modern-ruby-image-library-youve-been-sleeping-on-a09</link>
      <guid>https://forem.com/gsgermanok/ruby-libgd-the-modern-ruby-image-library-youve-been-sleeping-on-a09</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn230hnh7ahwfrddq0hwz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn230hnh7ahwfrddq0hwz.png" alt="ruby-libgd: The Modern Ruby Image Library You've Been Sleeping On" width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;ruby-libgd: The Modern Ruby Image Library You’ve Been Sleeping On&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;March 30, 2026&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reading time:&lt;/strong&gt; 8 minutes&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Status:&lt;/strong&gt; Benchmark-driven, production-ready&lt;/p&gt;


&lt;h3&gt;
  
  
  Executive Summary
&lt;/h3&gt;

&lt;p&gt;After extensive benchmarking against RMagick, ChunkyPNG, and ruby-vips, &lt;strong&gt;ruby-libgd demonstrates overwhelming superiority&lt;/strong&gt; in drawing operations (28x faster), pixel access (2.6x faster), sepia filtering (2.5x faster), and memory efficiency (3.7x less RAM).&lt;/p&gt;

&lt;p&gt;But speed is only part of the story. ruby-libgd offers &lt;strong&gt;unique capabilities&lt;/strong&gt; that no other Ruby image library provides: native GIF animation, advanced typography with kerning and line spacing, complex polygon rendering, and zero external process spawning.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The outdated documentation is wrong. The myths about GD are dead. Modern ruby-libgd is here, and it’s ready for production.&lt;/strong&gt;&lt;/p&gt;


&lt;h1&gt;
  
  
  👉 Read the full article.
&lt;/h1&gt;


&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
        &lt;div class="c-embed__cover"&gt;
          &lt;a href="https://rubystacknews.com/2026/03/30/ruby-libgd-the-modern-ruby-image-library-youve-been-sleeping-on/" class="c-link align-middle" rel="noopener noreferrer"&gt;
            &lt;img alt="" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Frubystacknews.com%2Fwp-content%2Fuploads%2F2026%2F03%2F1774875282924.png" height="450" class="m-0" width="800"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="c-embed__body"&gt;
        &lt;h2 class="fs-xl lh-tight"&gt;
          &lt;a href="https://rubystacknews.com/2026/03/30/ruby-libgd-the-modern-ruby-image-library-youve-been-sleeping-on/" rel="noopener noreferrer" class="c-link"&gt;
            ruby-libgd: The Modern Ruby Image Library You’ve Been Sleeping On – Linking Ruby knowledge from the most remote places in the world.
          &lt;/a&gt;
        &lt;/h2&gt;
          &lt;p class="truncate-at-3"&gt;
            ruby-libgd: The Modern Ruby Image Library You’ve Been Sleeping On March 30, 2026 Reading time: 8 minutes Status: Benchmark-driven, production-ready Executive Summary After extensive benchmark…
          &lt;/p&gt;
        &lt;div class="color-secondary fs-s flex items-center"&gt;
            &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Frubystacknews.com%2Fwp-content%2Fuploads%2F2026%2F02%2Fcropped-icon-cremitae-bg.png%3Fw%3D32" width="32" height="32"&gt;
          rubystacknews.com
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;





&lt;p&gt;&lt;em&gt;Benchmark results are reproducible. Run&lt;/em&gt; ruby comprehensive_benchmark.rb yourself.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;License: MIT&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhtl9wekm51028rbtu0b6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhtl9wekm51028rbtu0b6.png" alt="Article content" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>ruby</category>
      <category>rails</category>
      <category>servicessubscription</category>
    </item>
    <item>
      <title>libgd-gis: Filling Ruby’s Graphics Gap and Building an Ecosystem</title>
      <dc:creator>Germán Alberto Gimenez Silva</dc:creator>
      <pubDate>Fri, 27 Mar 2026 02:13:41 +0000</pubDate>
      <link>https://forem.com/gsgermanok/libgd-gis-filling-rubys-graphics-gap-and-building-an-ecosystem-45oh</link>
      <guid>https://forem.com/gsgermanok/libgd-gis-filling-rubys-graphics-gap-and-building-an-ecosystem-45oh</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm8jukyu1cbzf5tvjav2b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm8jukyu1cbzf5tvjav2b.png" alt="libgd-gis: Filling Ruby's Graphics Gap and Building an Ecosystem" width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;libgd-gis: Filling Ruby’s Graphics Gap and Building an Ecosystem&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;March 26, 2026&lt;/p&gt;

&lt;p&gt;For years, generating map tiles, GIS visualizations, and fast raster graphics in Ruby has been a painful experience. ImageMagick derivatives were slow. External services added latency and complexity. The old ruby-gd binding languished unmaintained. Then &lt;strong&gt;ruby-libgd&lt;/strong&gt; arrived – a modern, actively maintained binding to the GD library. But ruby-libgd alone addressed only part of the problem: it provided fast rendering, but lacked GIS-aware abstractions. Until recently, Ruby developers could render images efficiently, but &lt;em&gt;geographic&lt;/em&gt; visualization required custom glue code.&lt;/p&gt;

&lt;p&gt;Enter &lt;strong&gt;libgd-gis&lt;/strong&gt; —a native rendering engine built specifically for Ruby’s geospatial and graphics needs. More importantly, it’s catalyzing a shift in how the Ruby community approaches visualization and spatial data.&lt;/p&gt;


&lt;h1&gt;
  
  
  👉 Read the full article.
&lt;/h1&gt;


&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
        &lt;div class="c-embed__cover"&gt;
          &lt;a href="https://rubystacknews.com/2026/03/26/libgd-gis-filling-rubys-graphics-gap-and-building-an-ecosystem/" class="c-link align-middle" rel="noopener noreferrer"&gt;
            &lt;img alt="" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Frubystacknews.com%2Fwp-content%2Fuploads%2F2026%2F03%2F1774577310352.png" height="450" class="m-0" width="800"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="c-embed__body"&gt;
        &lt;h2 class="fs-xl lh-tight"&gt;
          &lt;a href="https://rubystacknews.com/2026/03/26/libgd-gis-filling-rubys-graphics-gap-and-building-an-ecosystem/" rel="noopener noreferrer" class="c-link"&gt;
            libgd-gis: Filling Ruby’s Graphics Gap and Building an Ecosystem – Linking Ruby knowledge from the most remote places in the world.
          &lt;/a&gt;
        &lt;/h2&gt;
          &lt;p class="truncate-at-3"&gt;
            libgd-gis: Filling Ruby’s Graphics Gap and Building an Ecosystem March 26, 2026 For years, generating map tiles, GIS visualizations, and fast raster graphics in Ruby has been a painful experi…
          &lt;/p&gt;
        &lt;div class="color-secondary fs-s flex items-center"&gt;
            &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Frubystacknews.com%2Fwp-content%2Fuploads%2F2026%2F02%2Fcropped-icon-cremitae-bg.png%3Fw%3D32" width="32" height="32"&gt;
          rubystacknews.com
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;





&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo8hsv4emua83sjuz6y6e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo8hsv4emua83sjuz6y6e.png" alt="Article content" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>ruby</category>
      <category>rails</category>
      <category>servicessubscription</category>
    </item>
    <item>
      <title>FFI: How Ruby Talks to C</title>
      <dc:creator>Germán Alberto Gimenez Silva</dc:creator>
      <pubDate>Thu, 26 Mar 2026 01:37:57 +0000</pubDate>
      <link>https://forem.com/gsgermanok/ffi-how-ruby-talks-to-c-5dj2</link>
      <guid>https://forem.com/gsgermanok/ffi-how-ruby-talks-to-c-5dj2</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn523yi159bydu07fxmx5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn523yi159bydu07fxmx5.png" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;March 25, 2026&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Published on RubyStackNews&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;Ruby is a high-level language. C is a low-level language. At some point, every serious Ruby application needs to cross that boundary.&lt;/p&gt;

&lt;p&gt;Maybe you need a cryptography library. Maybe a signal processing engine. Maybe a hardware interface. Maybe raw performance on a hot path.&lt;/p&gt;

&lt;p&gt;There are two ways to make Ruby speak C. This article covers both, explains when to use each, and shows you the code for real.&lt;/p&gt;




&lt;h1&gt;
  
  
  👉 Read the full article.
&lt;/h1&gt;


&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
        &lt;div class="c-embed__cover"&gt;
          &lt;a href="https://rubystacknews.com/2026/03/25/ffi-how-ruby-talks-to-c/" class="c-link align-middle" rel="noopener noreferrer"&gt;
            &lt;img alt="" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi0.wp.com%2Frubystacknews.com%2Fwp-content%2Fuploads%2F2026%2F03%2F1774488943845.png%3Ffit%3D1200%252C675%26ssl%3D1" height="675" class="m-0" width="1200"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="c-embed__body"&gt;
        &lt;h2 class="fs-xl lh-tight"&gt;
          &lt;a href="https://rubystacknews.com/2026/03/25/ffi-how-ruby-talks-to-c/" rel="noopener noreferrer" class="c-link"&gt;
            FFI: How Ruby Talks to C – Linking Ruby knowledge from the most remote places in the world.
          &lt;/a&gt;
        &lt;/h2&gt;
          &lt;p class="truncate-at-3"&gt;
            March 25, 2026 Published on RubyStackNews Ruby is a high-level language. C is a low-level language. At some point, every serious Ruby application needs to cross that boundary. Maybe you need a cryp…
          &lt;/p&gt;
        &lt;div class="color-secondary fs-s flex items-center"&gt;
            &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Frubystacknews.com%2Fwp-content%2Fuploads%2F2026%2F02%2Fcropped-icon-cremitae-bg.png%3Fw%3D32" width="32" height="32"&gt;
          rubystacknews.com
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;





&lt;p&gt;&lt;em&gt;German Silva ( @ruby_stack_news )&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6iaitq18ks33em1smu29.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6iaitq18ks33em1smu29.png" alt="Article content" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>coding</category>
      <category>programming</category>
      <category>ruby</category>
      <category>software</category>
    </item>
    <item>
      <title>The Odin Project: Why It’s One of the Best Ways to Learn Web Development</title>
      <dc:creator>Germán Alberto Gimenez Silva</dc:creator>
      <pubDate>Wed, 25 Mar 2026 02:02:46 +0000</pubDate>
      <link>https://forem.com/gsgermanok/the-odin-project-why-its-one-of-the-best-ways-to-learn-web-development-3oo7</link>
      <guid>https://forem.com/gsgermanok/the-odin-project-why-its-one-of-the-best-ways-to-learn-web-development-3oo7</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fohdqhz8ybn4ujpk1ounf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fohdqhz8ybn4ujpk1ounf.png" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;March 24, 2026&lt;/p&gt;

&lt;p&gt;If you’re looking for a structured, no-cost path into web development, The Odin Project consistently stands out as one of the most effective options available.&lt;/p&gt;

&lt;p&gt;It’s not just another collection of tutorials. It’s a curriculum designed to teach you how to &lt;em&gt;think and work like a developer&lt;/em&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  What Makes It Different
&lt;/h3&gt;

&lt;p&gt;Most learning platforms optimize for comfort:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;step-by-step instructions&lt;/li&gt;
&lt;li&gt;guided walkthroughs&lt;/li&gt;
&lt;li&gt;minimal friction&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Odin Project takes a different approach.&lt;/p&gt;

&lt;p&gt;It deliberately introduces friction.&lt;/p&gt;

&lt;p&gt;You’re expected to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;read documentation&lt;/li&gt;
&lt;li&gt;debug your own issues&lt;/li&gt;
&lt;li&gt;search for solutions&lt;/li&gt;
&lt;li&gt;connect concepts across multiple resources&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is much closer to real-world development than following polished tutorials.&lt;/p&gt;




&lt;h1&gt;
  
  
  👉 Read the full article.
&lt;/h1&gt;


&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
        &lt;div class="c-embed__cover"&gt;
          &lt;a href="https://rubystacknews.com/2026/03/24/the-odin-project-why-its-one-of-the-best-ways-to-learn-web-development/" class="c-link align-middle" rel="noopener noreferrer"&gt;
            &lt;img alt="" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi0.wp.com%2Frubystacknews.com%2Fwp-content%2Fuploads%2F2026%2F03%2F1774404000935.png%3Ffit%3D1200%252C675%26ssl%3D1" height="675" class="m-0" width="1200"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="c-embed__body"&gt;
        &lt;h2 class="fs-xl lh-tight"&gt;
          &lt;a href="https://rubystacknews.com/2026/03/24/the-odin-project-why-its-one-of-the-best-ways-to-learn-web-development/" rel="noopener noreferrer" class="c-link"&gt;
            The Odin Project: Why It’s One of the Best Ways to Learn Web Development – Linking Ruby knowledge from the most remote places in the world.
          &lt;/a&gt;
        &lt;/h2&gt;
          &lt;p class="truncate-at-3"&gt;
            March 24, 2026 If you’re looking for a structured, no-cost path into web development, The Odin Project consistently stands out as one of the most effective options available. It’s not just another …
          &lt;/p&gt;
        &lt;div class="color-secondary fs-s flex items-center"&gt;
            &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Frubystacknews.com%2Fwp-content%2Fuploads%2F2026%2F02%2Fcropped-icon-cremitae-bg.png%3Fw%3D32" width="32" height="32"&gt;
          rubystacknews.com
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;





&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpbcv5ejsfzc7ldifx152.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpbcv5ejsfzc7ldifx152.png" alt="Article content" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>ruby</category>
      <category>rails</category>
      <category>servicessubscription</category>
    </item>
    <item>
      <title>Ruby Sees the World: Automatic Measurement from Photos</title>
      <dc:creator>Germán Alberto Gimenez Silva</dc:creator>
      <pubDate>Tue, 24 Mar 2026 02:58:37 +0000</pubDate>
      <link>https://forem.com/gsgermanok/ruby-sees-the-world-automatic-measurement-from-photos-238p</link>
      <guid>https://forem.com/gsgermanok/ruby-sees-the-world-automatic-measurement-from-photos-238p</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmedia.licdn.com%2Fdms%2Fimage%2Fv2%2FD4D12AQH5afO7zXM11g%2Farticle-cover_image-shrink_720_1280%2FB4DZ0dvpitKoAI-%2F0%2F1774320524318%3Fe%3D1775692800%26v%3Dbeta%26t%3DABaBKLoXugmZU97rWqQsy03AoCbh8kkRDdfEFjAv5s0" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmedia.licdn.com%2Fdms%2Fimage%2Fv2%2FD4D12AQH5afO7zXM11g%2Farticle-cover_image-shrink_720_1280%2FB4DZ0dvpitKoAI-%2F0%2F1774320524318%3Fe%3D1775692800%26v%3Dbeta%26t%3DABaBKLoXugmZU97rWqQsy03AoCbh8kkRDdfEFjAv5s0" alt="Ruby Sees the World: Automatic Measurement from Photos"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Ruby Sees the World: Automatic Measurement from Photos&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;March 23, 2026&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Published on RubyStackNews&lt;/em&gt;&lt;/p&gt;



&lt;p&gt;What if Ruby could look at a photo of a house and tell you the width of the door, the height of the windows, and the total wall length?&lt;/p&gt;

&lt;p&gt;That is not science fiction. It is photogrammetry. And it is buildable in pure Ruby with ruby-libgd.&lt;/p&gt;

&lt;p&gt;This article walks through the full pipeline: edge detection, Hough transform, scale calibration from a credit card reference, and measurement overlay on the original photo.&lt;/p&gt;


&lt;h1&gt;
  
  
  👉 Read the full article.
&lt;/h1&gt;


&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
        &lt;div class="c-embed__cover"&gt;
          &lt;a href="https://rubystacknews.com/2026/03/23/ruby-sees-the-world-automatic-measurement-from-photos/" class="c-link align-middle" rel="noopener noreferrer"&gt;
            &lt;img alt="" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi0.wp.com%2Frubystacknews.com%2Fwp-content%2Fuploads%2F2026%2F03%2Fimage-6.png%3Ffit%3D1200%252C675%26ssl%3D1" height="auto" class="m-0"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="c-embed__body"&gt;
        &lt;h2 class="fs-xl lh-tight"&gt;
          &lt;a href="https://rubystacknews.com/2026/03/23/ruby-sees-the-world-automatic-measurement-from-photos/" rel="noopener noreferrer" class="c-link"&gt;
            Ruby Sees the World: Automatic Measurement from Photos – Linking Ruby knowledge from the most remote places in the world.
          &lt;/a&gt;
        &lt;/h2&gt;
          &lt;p class="truncate-at-3"&gt;
            Ruby Sees the World: Automatic Measurement from Photos March 23, 2026 Published on RubyStackNews What if Ruby could look at a photo of a house and tell you the width of the door, the height of the …
          &lt;/p&gt;
        &lt;div class="color-secondary fs-s flex items-center"&gt;
            &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Frubystacknews.com%2Fwp-content%2Fuploads%2F2026%2F02%2Fcropped-icon-cremitae-bg.png%3Fw%3D32"&gt;
          rubystacknews.com
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;





&lt;p&gt;&lt;em&gt;German Silva ( @ruby_stack_news )&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmedia.licdn.com%2Fdms%2Fimage%2Fv2%2FD4D12AQG7q1-n67RfhA%2Farticle-inline_image-shrink_1000_1488%2FB4DZ0dv3YvJoAQ-%2F0%2F1774320584870%3Fe%3D1775692800%26v%3Dbeta%26t%3D1N444b7LwFCBWKVTOZ5y3nmrZh777v1NYeZQt9sc2Bk" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmedia.licdn.com%2Fdms%2Fimage%2Fv2%2FD4D12AQG7q1-n67RfhA%2Farticle-inline_image-shrink_1000_1488%2FB4DZ0dv3YvJoAQ-%2F0%2F1774320584870%3Fe%3D1775692800%26v%3Dbeta%26t%3D1N444b7LwFCBWKVTOZ5y3nmrZh777v1NYeZQt9sc2Bk" alt="Article content"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>ruby</category>
      <category>rails</category>
      <category>softwaredevelopment</category>
    </item>
    <item>
      <title>Can Ruby Read an X-Ray? Building a Medical Image Processor</title>
      <dc:creator>Germán Alberto Gimenez Silva</dc:creator>
      <pubDate>Mon, 23 Mar 2026 03:03:39 +0000</pubDate>
      <link>https://forem.com/gsgermanok/can-ruby-read-an-x-ray-building-a-medical-image-processor-2596</link>
      <guid>https://forem.com/gsgermanok/can-ruby-read-an-x-ray-building-a-medical-image-processor-2596</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F12i2n035v3b6jg1g0g7d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F12i2n035v3b6jg1g0g7d.png" alt="Can Ruby Read an X-Ray? Building a Medical Image Processor"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Can Ruby Read an X-Ray? Building a Medical Image Processor&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;March 23, 2026&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Published on RubyStackNews&lt;/em&gt;&lt;/p&gt;



&lt;p&gt;Nobody expects Ruby to process medical images.&lt;/p&gt;

&lt;p&gt;That is exactly why I tried it.&lt;/p&gt;

&lt;p&gt;This article is about building a medical image analysis prototype in pure Ruby using ruby-libgd as the rendering and pixel manipulation engine. No Python. No OpenCV. No NumPy. Just Ruby, pixels, and math.&lt;/p&gt;

&lt;p&gt;The target: chest X-rays from the NIH public dataset. The goal: edge detection, region segmentation, and histogram analysis.&lt;/p&gt;

&lt;p&gt;Here is what happened.&lt;/p&gt;


&lt;h1&gt;
  
  
  👉 Read the full article.
&lt;/h1&gt;


&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
        &lt;div class="c-embed__cover"&gt;
          &lt;a href="https://rubystacknews.com/2026/03/23/can-ruby-read-an-x-ray-building-a-medical-image-processor/" class="c-link align-middle" rel="noopener noreferrer"&gt;
            &lt;img alt="" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi0.wp.com%2Frubystacknews.com%2Fwp-content%2Fuploads%2F2026%2F03%2F1774234487593.png%3Ffit%3D1200%252C675%26ssl%3D1" height="auto" class="m-0"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="c-embed__body"&gt;
        &lt;h2 class="fs-xl lh-tight"&gt;
          &lt;a href="https://rubystacknews.com/2026/03/23/can-ruby-read-an-x-ray-building-a-medical-image-processor/" rel="noopener noreferrer" class="c-link"&gt;
            Can Ruby Read an X-Ray? Building a Medical Image Processor – Linking Ruby knowledge from the most remote places in the world.
          &lt;/a&gt;
        &lt;/h2&gt;
          &lt;p class="truncate-at-3"&gt;
            Can Ruby Read an X-Ray? Building a Medical Image Processor March 23, 2026 Published on RubyStackNews Nobody expects Ruby to process medical images. That is exactly why I tried it. This article is a…
          &lt;/p&gt;
        &lt;div class="color-secondary fs-s flex items-center"&gt;
            &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Frubystacknews.com%2Fwp-content%2Fuploads%2F2026%2F02%2Fcropped-icon-cremitae-bg.png%3Fw%3D32"&gt;
          rubystacknews.com
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;





&lt;p&gt;&lt;em&gt;German Silva ( @ruby_stack_news )&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwo27ux5fb5oxnjfkkgq1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwo27ux5fb5oxnjfkkgq1.png" alt="Article content"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>hobbies</category>
      <category>programming</category>
      <category>ruby</category>
      <category>rails</category>
    </item>
    <item>
      <title>🤖 Ruby events this week</title>
      <dc:creator>Germán Alberto Gimenez Silva</dc:creator>
      <pubDate>Fri, 20 Mar 2026 11:42:27 +0000</pubDate>
      <link>https://forem.com/gsgermanok/ruby-events-this-week-4blk</link>
      <guid>https://forem.com/gsgermanok/ruby-events-this-week-4blk</guid>
      <description>&lt;p&gt;&lt;a href="https://rubystacknews.com/wp-content/uploads/2026/03/c3311e97ebf38dbe.png" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzgqezxefpj4j6c7ha3uk.png" width="800" height="419"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fabs-0.twimg.com%2Femoji%2Fv2%2Fsvg%2F1f916.svg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fabs-0.twimg.com%2Femoji%2Fv2%2Fsvg%2F1f916.svg" alt="🤖" width="36" height="36"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Generated automatically by RubyEventsBot using ruby-libgd. Updated every 7 days.&lt;br&gt;&lt;br&gt;
Updated by: &lt;a href="https://t.co/KV3uAixkxt" rel="noopener noreferrer"&gt;https://github.com/koxya&lt;/a&gt; | Twitter: &lt;a href="https://x.com/koxya" rel="noopener noreferrer"&gt;@koxya&lt;/a&gt;&lt;/p&gt;

</description>
      <category>docker</category>
      <category>gnulinux</category>
      <category>programming</category>
      <category>ruby</category>
    </item>
    <item>
      <title>FastImage Overview</title>
      <dc:creator>Germán Alberto Gimenez Silva</dc:creator>
      <pubDate>Fri, 20 Mar 2026 03:23:57 +0000</pubDate>
      <link>https://forem.com/gsgermanok/fastimage-overview-3815</link>
      <guid>https://forem.com/gsgermanok/fastimage-overview-3815</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh7ldtwa5islax62f0oyd.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh7ldtwa5islax62f0oyd.jpg" alt="FastImage Overview" width="711" height="400"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;FastImage Overview&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;March 20, 2026&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Gem:&lt;/strong&gt; Fetch image dimensions and type without downloading the entire file.&lt;/p&gt;
&lt;h3&gt;
  
  
  The Problem
&lt;/h3&gt;

&lt;p&gt;Your app needs image dimensions from remote URLs (S3, CDN, etc.). Downloading 5MB just to learn the size is wasteful.&lt;/p&gt;
&lt;h3&gt;
  
  
  The Solution
&lt;/h3&gt;

&lt;p&gt;FastImage reads only the file headers—typically 1-16KB—to determine size and type.&lt;/p&gt;
&lt;h3&gt;
  
  
  Key Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Pure Ruby, no dependencies (no ImageMagick)&lt;/li&gt;
&lt;li&gt;Supports 11 formats (GIF, JPEG, PNG, TIFF, BMP, ICO, SVG, WebP, etc.)&lt;/li&gt;
&lt;li&gt;Follows HTTP redirects&lt;/li&gt;
&lt;li&gt;Handles timeouts and proxies&lt;/li&gt;
&lt;li&gt;Reads EXIF orientation&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;👉 Read the full article.&lt;/p&gt;


&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
        &lt;div class="c-embed__cover"&gt;
          &lt;a href="https://rubystacknews.com/2026/03/20/fastimage-overview/" class="c-link align-middle" rel="noopener noreferrer"&gt;
            &lt;img alt="" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Frubystacknews.com%2Fwp-content%2Fuploads%2F2026%2F03%2F1773976845642.jpg" height="400" class="m-0" width="711"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="c-embed__body"&gt;
        &lt;h2 class="fs-xl lh-tight"&gt;
          &lt;a href="https://rubystacknews.com/2026/03/20/fastimage-overview/" rel="noopener noreferrer" class="c-link"&gt;
            FastImage Overview – Linking Ruby knowledge from the most remote places in the world.
          &lt;/a&gt;
        &lt;/h2&gt;
          &lt;p class="truncate-at-3"&gt;
            FastImage Overview March 20, 2026 The Gem: Fetch image dimensions and type without downloading the entire file. The Problem Your app needs image dimensions from remote URLs (S3, CDN, etc.). Downloa…
          &lt;/p&gt;
        &lt;div class="color-secondary fs-s flex items-center"&gt;
            &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Frubystacknews.com%2Fwp-content%2Fuploads%2F2026%2F02%2Fcropped-icon-cremitae-bg.png%3Fw%3D32" width="32" height="32"&gt;
          rubystacknews.com
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;





&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6fux21rqxpthy91gtpo9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6fux21rqxpthy91gtpo9.png" alt="Article content" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>ruby</category>
      <category>rails</category>
      <category>servicessubscription</category>
    </item>
    <item>
      <title>2D Histograms in Pure Ruby</title>
      <dc:creator>Germán Alberto Gimenez Silva</dc:creator>
      <pubDate>Thu, 19 Mar 2026 02:53:38 +0000</pubDate>
      <link>https://forem.com/gsgermanok/2d-histograms-in-pure-ruby-epn</link>
      <guid>https://forem.com/gsgermanok/2d-histograms-in-pure-ruby-epn</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9xczcp2ubg1yk5yvnzls.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9xczcp2ubg1yk5yvnzls.png" alt="2D Histograms in Pure Ruby" width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;2D Histograms in Pure Ruby&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;March 18, 2026&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Published on RubyStackNews&lt;/em&gt;&lt;/p&gt;



&lt;p&gt;One of the most useful tools in exploratory data analysis is the 2D histogram. Not the bar chart kind — the density map kind. Given a cloud of points, it answers a simple question: &lt;strong&gt;where do most of them live?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This article shows how to build one from scratch in pure Ruby using ruby-libgd, replicating a classic matplotlib example — and then taking it further with real CSV data.&lt;/p&gt;


&lt;h3&gt;
  
  
  What is a 2D histogram?
&lt;/h3&gt;

&lt;p&gt;A regular histogram divides one variable into bins and counts how many values fall in each bin. A 2D histogram does the same thing for two variables simultaneously.&lt;/p&gt;

&lt;p&gt;The result is a grid. Each cell covers a small region of the (x, y) plane, and its color represents how many data points landed there — light for few, dark for many.&lt;/p&gt;

&lt;p&gt;It is particularly useful when you have thousands of points and a scatter plot would just look like a solid blob. The density map reveals structure that raw scatter hides: clusters, correlations, gaps, and outliers all become visible at a glance.&lt;/p&gt;


&lt;h1&gt;
  
  
  👉 Read the full article.
&lt;/h1&gt;


&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
        &lt;div class="c-embed__cover"&gt;
          &lt;a href="https://rubystacknews.com/2026/03/18/2d-histograms-in-pure-ruby/" class="c-link align-middle" rel="noopener noreferrer"&gt;
            &lt;img alt="" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Frubystacknews.com%2Fwp-content%2Fuploads%2F2026%2F03%2F1773888501047.png" height="450" class="m-0" width="800"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="c-embed__body"&gt;
        &lt;h2 class="fs-xl lh-tight"&gt;
          &lt;a href="https://rubystacknews.com/2026/03/18/2d-histograms-in-pure-ruby/" rel="noopener noreferrer" class="c-link"&gt;
            2D Histograms in Pure Ruby – Linking Ruby knowledge from the most remote places in the world.
          &lt;/a&gt;
        &lt;/h2&gt;
          &lt;p class="truncate-at-3"&gt;
            2D Histograms in Pure Ruby March 18, 2026 Published on RubyStackNews One of the most useful tools in exploratory data analysis is the 2D histogram. Not the bar chart kind — the density map kind. Gi…
          &lt;/p&gt;
        &lt;div class="color-secondary fs-s flex items-center"&gt;
            &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Frubystacknews.com%2Fwp-content%2Fuploads%2F2026%2F02%2Fcropped-icon-cremitae-bg.png%3Fw%3D32" width="32" height="32"&gt;
          rubystacknews.com
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;





&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvgljwpz7luw7b86xvre2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvgljwpz7luw7b86xvre2.png" alt="Article content" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>git</category>
      <category>programming</category>
      <category>ruby</category>
      <category>rails</category>
    </item>
    <item>
      <title>Ruby on Rails — Complete Reference of Methods, Classes &amp; Features Not in Ruby</title>
      <dc:creator>Germán Alberto Gimenez Silva</dc:creator>
      <pubDate>Wed, 18 Mar 2026 02:15:10 +0000</pubDate>
      <link>https://forem.com/gsgermanok/ruby-on-rails-complete-reference-of-methods-classes-features-not-in-ruby-1i19</link>
      <guid>https://forem.com/gsgermanok/ruby-on-rails-complete-reference-of-methods-classes-features-not-in-ruby-1i19</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flfiuujzw6i5fcg9gobz7.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flfiuujzw6i5fcg9gobz7.jpg" alt="Ruby on Rails — Complete Reference of Methods, Classes &amp;amp; Features Not in Ruby" width="650" height="365"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Ruby on Rails — Complete Reference of Methods, Classes &amp;amp; Features Not in Ruby&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;March 17, 2026&lt;/p&gt;

&lt;p&gt;Rails is much more than a framework on top of Ruby — it adds hundreds of methods, classes, and abstractions that plain Ruby simply doesn’t have. This is a complete reference of everything Rails brings to the table, excluding external gems like ActiveRecord, Devise, or Pundit. All items come from Action Pack, Action View, Action Mailer, Action Cable, Active Support, Active Job, or Action Dispatch.&lt;/p&gt;


&lt;h1&gt;
  
  
  👉 Read the full article.
&lt;/h1&gt;


&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
        &lt;div class="c-embed__cover"&gt;
          &lt;a href="https://rubystacknews.com/2026/03/17/ruby-on-rails-complete-reference-of-methods-classes-features-not-in-ruby/" class="c-link align-middle" rel="noopener noreferrer"&gt;
            &lt;img alt="" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Frubystacknews.com%2Fwp-content%2Fuploads%2F2026%2F03%2F1773799858772.jpg" height="365" class="m-0" width="650"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="c-embed__body"&gt;
        &lt;h2 class="fs-xl lh-tight"&gt;
          &lt;a href="https://rubystacknews.com/2026/03/17/ruby-on-rails-complete-reference-of-methods-classes-features-not-in-ruby/" rel="noopener noreferrer" class="c-link"&gt;
            Ruby on Rails — Complete Reference of Methods, Classes &amp;amp; Features Not in Ruby – Linking Ruby knowledge from the most remote places in the world.
          &lt;/a&gt;
        &lt;/h2&gt;
          &lt;p class="truncate-at-3"&gt;
            Ruby on Rails — Complete Reference of Methods, Classes &amp;amp; Features Not in Ruby March 17, 2026 Rails is much more than a framework on top of Ruby — it adds hundreds of methods, classes, and abstr…
          &lt;/p&gt;
        &lt;div class="color-secondary fs-s flex items-center"&gt;
            &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Frubystacknews.com%2Fwp-content%2Fuploads%2F2026%2F02%2Fcropped-icon-cremitae-bg.png%3Fw%3D32" width="32" height="32"&gt;
          rubystacknews.com
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;





&lt;blockquote&gt;
&lt;p&gt;Rails built-ins only — ActiveRecord, Devise, Pundit, and all other gems are excluded by design.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4fs16iya8rtf9fxt74t3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4fs16iya8rtf9fxt74t3.png" alt="Article content" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>ruby</category>
      <category>rails</category>
      <category>servicessubscription</category>
    </item>
    <item>
      <title>SVG Generation in Ruby: A Practical Guide</title>
      <dc:creator>Germán Alberto Gimenez Silva</dc:creator>
      <pubDate>Tue, 17 Mar 2026 02:34:47 +0000</pubDate>
      <link>https://forem.com/gsgermanok/svg-generation-in-ruby-a-practical-guide-boa</link>
      <guid>https://forem.com/gsgermanok/svg-generation-in-ruby-a-practical-guide-boa</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkbskisiwm0kxd98l5jur.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkbskisiwm0kxd98l5jur.jpg" alt="SVG Generation in Ruby: A Practical Guide" width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;SVG Generation in Ruby: A Practical Guide&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;March 16, 2026&lt;/p&gt;

&lt;p&gt;Recently, I created &lt;strong&gt;ruby-libgd&lt;/strong&gt; and &lt;strong&gt;libgd-gis&lt;/strong&gt; for raster graphics generation in cartography. But as I worked on these tools, I realized the landscape of web graphics has shifted significantly. Today’s web demands interactive, scalable, responsive visualizations. That’s where &lt;strong&gt;SVG (Scalable Vector Graphics)&lt;/strong&gt; comes in.&lt;/p&gt;

&lt;p&gt;This article covers everything you need to know about generating SVG in Ruby: what it is, why it matters, the available tools, and how to use them with practical examples.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is SVG?
&lt;/h3&gt;

&lt;p&gt;SVG is an XML-based format for describing 2D graphics using geometric shapes and mathematical curves. Instead of storing pixels like raster formats (PNG, JPEG), SVG stores instructions: “draw a circle here,” “fill this polygon with blue,” “animate this element.”&lt;/p&gt;

&lt;p&gt;When a browser renders SVG, it interprets these instructions at whatever resolution the device has. A map defined in SVG looks crisp on a phone, tablet, or massive monitor. It scales infinitely without quality loss.&lt;/p&gt;




&lt;h1&gt;
  
  
  👉 Read the full article.
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://rubystacknews.com/2026/03/16/svg-generation-in-ruby-a-practical-guide/" rel="noopener noreferrer"&gt;https://rubystacknews.com/2026/03/16/svg-generation-in-ruby-a-practical-guide/&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F53ovfa96fmjlwzcvuf1c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F53ovfa96fmjlwzcvuf1c.png" alt="Article content" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>ruby</category>
      <category>rails</category>
      <category>servicessubscription</category>
    </item>
  </channel>
</rss>
