<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Architecture on Marcello Barnaba</title>
    <link>https://sindro.me/it/tags/architecture/</link>
    <description>Recent content in Architecture on Marcello Barnaba</description>
    <generator>Hugo</generator>
    <language>it</language>
    <lastBuildDate>Sun, 12 Apr 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://sindro.me/it/tags/architecture/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Lo Stack Panmind: Architettura da 2020 Costruita nel 2010</title>
      <link>https://sindro.me/it/posts/2026-04-12-panmind-ahead-of-its-time/</link>
      <pubDate>Sun, 12 Apr 2026 00:00:00 +0000</pubDate>
      <guid>https://sindro.me/it/posts/2026-04-12-panmind-ahead-of-its-time/</guid>
      <description>&lt;p&gt;Nel 2009, un piccolo team a Roma iniziava a costruire &lt;a href=&#34;https://github.com/Panmind&#34; target=&#34;_blank&#34;&gt;Panmind&lt;/a&gt;, una piattaforma collaborativa per condividere e organizzare la conoscenza. L&amp;rsquo;azienda era &lt;a href=&#34;http://mind2mind.is/&#34; target=&#34;_blank&#34;&gt;Mind2Mind S.r.L.&lt;/a&gt;, fondata da Emanuele Caronia.&lt;/p&gt;&#xA;&lt;p&gt;Panmind di per sé non è sopravvissuto. Ma lo stack che abbiamo costruito ha fatto qualcosa di interessante: ha anticipato pattern architetturali che non sarebbero diventati mainstream per cinque o dieci anni. Stavamo costruendo single-page application prima che esistesse il termine, streaming analytics prima di Segment, e condividendo sessioni tra linguaggi diversi prima dei JWT.&lt;/p&gt;&#xA;&lt;p&gt;Ho &lt;a href=&#34;https://sindro.me/it/posts/2010-08-05-panmind-at-ruby-social-club/&#34;&gt;presentato alcuni dei nostri spin-off open source&lt;/a&gt; al Ruby Social Club di Milano nel 2010, ma quel post toccava solo la superficie — era una carrellata veloce di plugin Rails. Questa è la storia più approfondita: tre tecnologie, tre problemi risolti troppo presto, e come le stesse idee si sono ripresentate in ogni major framework che è venuto dopo.&lt;/p&gt;&#xA;&lt;h2 id=&#34;atto-1-jquery-ajax-nav--spa-prima-delle-spa&#34; id=&#34;atto-1-jquery-ajax-nav--spa-prima-delle-spa&#34;&gt;Atto 1: jquery-ajax-nav — SPA Prima delle SPA&lt;a class=&#34;heading-anchor&#34; href=&#34;#atto-1-jquery-ajax-nav--spa-prima-delle-spa&#34; aria-label=&#34;Link a questa sezione&#34;&gt;¶&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34;&#xA;    srcset=&#34;https://sindro.me/posts/2026-04-12-panmind-ahead-of-its-time/act1-ajax-nav_hu_f74790f9fea5874f.webp 768w, https://sindro.me/posts/2026-04-12-panmind-ahead-of-its-time/act1-ajax-nav_hu_43fb1f4e34d8393d.webp 1024w, https://sindro.me/posts/2026-04-12-panmind-ahead-of-its-time/act1-ajax-nav_hu_cd72c73c62ee28cd.webp 1536w, https://sindro.me/posts/2026-04-12-panmind-ahead-of-its-time/act1-ajax-nav_hu_a1b20eeb0b96a6be.webp 1920w&#34;&#xA;    sizes=&#34;(max-width: 599px) calc(100vw - 2rem), (max-width: 1199px) calc(100vw - 3rem), 47rem&#34;&gt;&#xA;  &lt;img src=&#34;https://sindro.me/posts/2026-04-12-panmind-ahead-of-its-time/act1-ajax-nav_hu_7772f317ffbc934b.jpg&#34;&#xA;    srcset=&#34;https://sindro.me/posts/2026-04-12-panmind-ahead-of-its-time/act1-ajax-nav_hu_7772f317ffbc934b.jpg 768w, https://sindro.me/posts/2026-04-12-panmind-ahead-of-its-time/act1-ajax-nav_hu_2dd194eba710bcc7.jpg 1024w, https://sindro.me/posts/2026-04-12-panmind-ahead-of-its-time/act1-ajax-nav_hu_a017208bac229054.jpg 1536w, https://sindro.me/posts/2026-04-12-panmind-ahead-of-its-time/act1-ajax-nav.jpg 1920w&#34;&#xA;    sizes=&#34;(max-width: 599px) calc(100vw - 2rem), (max-width: 1199px) calc(100vw - 3rem), 47rem&#34;&#xA;    width=&#34;768&#34; height=&#34;429&#34;&#xA;    alt=&#34;Routing basato su hash in un browser vintage — polling dei cambiamenti, iframe nascosti per IE, il fragment URL come unica parte programmabile della barra degli indirizzi&#34; loading=&#34;lazy&#34;&gt;&#xA;&lt;/picture&gt;&lt;/p&gt;&#xA;&lt;p&gt;Panmind doveva essere veloce. Cliccare un link non doveva ricaricare l&amp;rsquo;intera pagina — doveva sostituire solo l&amp;rsquo;area dei contenuti, istantaneamente. Nel 2023 avresti usato React, o Turbo, o HTMX. Nel 2009, nessuno di questi esisteva. Non c&amp;rsquo;era la History API. Non c&amp;rsquo;era &lt;code&gt;pushState&lt;/code&gt;. Il fragment dell&amp;rsquo;URL — la parte dopo &lt;code&gt;#&lt;/code&gt; — era l&amp;rsquo;unica porzione dell&amp;rsquo;URL che potevi modificare senza innescare un reload della pagina. Quindi abbiamo usato quello.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
